{"block_close_oss.c33fd1fe9c":"Community and ecosystem","core-extras.96d330537a":"Base IR","core-extras.bee831a169":"Substrate","core-extras.61a0822826":"Apps on Core","core-extras.15438cc098":"not supported","core-extras.ad565d9d01":"Feature","core-extras.0155bf03e5":"Segment legend","core-extras.8b7110078e":"Algorithm groups by data type","core-extras.25ab4276a6":"Scrollable capability matrix","open-source-bindery.94b86b0e64":"Knowledge governance built on parsed documents.","open-source-bindery.4a86080d67":"Spindle","open-source-bindery.fe0a091fdb":"Products","open-source-bindery.59024dcb18":"Index parsed documents for retrieval.","open-source-bindery.c91597c8b9":"BitWeave","open-source-bindery.6cc3364a24":"Project","open-source-bindery.af077aefc2":"Parse and content-address text and code.","open-source-bindery.188fb5d6cf":"Reed","open-source-bindery.d5d6e83bf2":"Continue exploring","open-source-bindery.029b7c0b8c":"Bindery","open-source-bindery.650fabe787":"Projects","open-source-bindery.75e393a1ac":"Explore the project","open-source-bindery.f9743247fa":"Read the documentation","open-source-bindery.129bdc4e11":"See the format map","open-source-bindery.e286efaef4":"Add Bindery to your project. Open any supported document with one API.","open-source-bindery.fa30d9444b":"Open the project","open-source-bindery.64fbe676f8":"One parser, every office format","open-source-bindery.3ebab182e7":"Bindery for document operations","open-source-bindery.b568d47f2e":"Input","open-source-bindery.7141cefffa":"Mixed office and document formats","open-source-bindery.cce3962ad0":"Detection","open-source-bindery.35e8451386":"File contents, not names alone","open-source-bindery.cffa2af0a3":"Reading","open-source-bindery.42d1318310":"One structured document model","open-source-bindery.1d4d43cc6f":"Use","open-source-bindery.1307d84292":"Query and transform consistently","open-source-bindery.4bed336194":"Output","open-source-bindery.e8c26d5dfb":"Write where supported","open-source-bindery.e63451d3cf":"Processing","open-source-bindery.3a8513e8bd":"Inside your environment","open-source-bindery.db22102b72":"One entry point","open-source-bindery.38011e26fd":"Processing close to documents","open-source-bindery.2bb4b65f40":"Clear onward handoff","open-source-bindery.caaf2e7892":"Let Fabric open the papers you already have","open-source-bindery.34e1aaeaca":"Bindery works underneath Fabric to identify and read the documents you choose, so Fabric can use their real contents without asking you to manage formats or readers.","open-source-bindery.c7677e7b98":"See Fabric","open-source-bindery.5224070080":"See what happens","open-source-bindery.e4275d900e":"Give every document one clear route","open-source-bindery.a5e8ce7729":"Start with the mix of documents your team already handles. Move them through one intake path, one structured model and a controlled handoff, while keeping format-specific work at the boundary.","open-source-bindery.c5b70d1879":"Review the operating flow","open-source-bindery.90e40d5043":"Get started","open-source-bindery.4f6a0681e6":"Workspace where users drop documents in.","open-source-bindery.a010de5c61":"Fabric","open-source-bindery.20d203e647":"Knowledge governance over Bindery-extracted documents.","open-source-bindery.5f1149699f":"Parse code, configuration and documents into Merkle trees.","open-source-bindery.9c9c867837":"Pair with","open-source-bindery.6af762f0d4":"Bindery","open-source-bindery.13f71ffcde":"No external service","open-source-bindery.6b5eb5323e":"17 format readers","open-source-bindery.e3b39617b0":"one binary","open-source-bindery.4aab8bc9ca":"bindery convert / query / inspect. Composable with shell pipelines.","open-source-bindery.700b401ca5":"CLI","open-source-bindery.aaaba6a7b0":"PyO3","open-source-bindery.743e0a495d":"Python bindings. Same engine, idiomatic Python API.","open-source-bindery.ee78a232ed":"Python (PyO3)","open-source-bindery.5627d44f80":"Native API for embedding in services. Zero-copy where formats allow.","open-source-bindery.0cbc58f0cf":"Rust crate","open-source-bindery.66e1bbd386":"Pick your entry point","open-source-bindery.474e7b8777":"INTEGRATION MODES","open-source-bindery.579a6a6fa9":"FABRIC","open-source-bindery.7830a84714":"SPINDLE","open-source-bindery.e46008c8ce":"BITWEAVE","open-source-bindery.6bfd5ebd45":"REED","open-source-bindery.07ac377e24":"Bindery extracts structured content from documents. Pair it with the retrieval and governance layers to build a complete knowledge pipeline.","open-source-bindery.06f0f9bb02":"The stack does the rest","open-source-bindery.564af09132":"Bindery parses","open-source-bindery.6d08f088df":"No GPU","open-source-bindery.98c200b9c5":"Standard CPU","open-source-bindery.9fc7ab519d":"Under 100 MB. Annual reports and big PDFs.","open-source-bindery.738fd1d245":"Large","open-source-bindery.01fb462e10":"Under 10 MB. Large workbooks and slide decks.","open-source-bindery.d404968ea9":"Medium","open-source-bindery.9dda434044":"Under 100 KB. Most spreadsheets and Word files.","open-source-bindery.c74fd9714e":"Small","open-source-bindery.5e4b227087":"By document size","open-source-bindery.3628921e75":"PARSE BUDGET","open-source-bindery.e7bcefab05":"BOUNDED MEM","open-source-bindery.0247ce357c":"STREAMING","open-source-bindery.6de691384f":"SIMD","open-source-bindery.054510acf7":"SIZE TIERS","open-source-bindery.6ec26a3493":"The documented parse budgets are size-tiered: small under one millisecond, medium under fifty, large under five hundred. Streaming parse keeps memory bounded by structure, and SIMD accelerates the hot path. No GPU.","open-source-bindery.c5534844dc":"Sub-second on standard CPUs","open-source-bindery.d55dc07736":"Open and parse","open-source-bindery.63c9045599":"Performance","open-source-bindery.1d5b2306ba":"Rust 2024, standard CPUs","open-source-bindery.fef8e889dc":"Coverage","open-source-bindery.ac28789438":"SQL-like across the unified doc model.","open-source-bindery.a618b4be8d":"Query","open-source-bindery.f949cc75ef":"DocQL","open-source-bindery.c84438e526":"Excel-compatible formula engine.","open-source-bindery.2b961dea1d":"Functions","open-source-bindery.757b2be57c":"docx, xlsx, pptx, pdf, iWork, ODF, RTF plus encrypted.","open-source-bindery.2804d9f16a":"Formats","open-source-bindery.e0c97bd053":"What ships","open-source-bindery.6f19d16ea8":"PROJECT STAT","open-source-bindery.c968638a6e":"AUTO-DETECT","open-source-bindery.6d910ec96c":"300+ FN","open-source-bindery.987173125f":"17 FORMATS","open-source-bindery.b0072e36b7":"One crate, 17 formats, 300+ formulas, DocQL, full read and write. Fast on standard CPUs. The document layer for the Dweve stack.","open-source-bindery.8e0c05ab56":"Rust and Python","open-source-bindery.a55e5a1229":"Native crate","open-source-bindery.fca77b7e3a":"Seventeen formats, one contract","open-source-bindery.fb8a98f219":"PyO3 bindings","open-source-bindery.0a9d2d86c6":"Writers","open-source-bindery.e214b8a299":"Document","open-source-bindery.ce51f5620f":"ODF","open-source-bindery.ebebfa47b9":"iWork","open-source-bindery.fb74bcaf76":"Legacy","open-source-bindery.a4313c8888":"OOXML","open-source-bindery.db918d7356":"17 formats, one API","open-source-bindery.7f79764248":"FORMAT CENSUS","open-source-bindery.0468a5b797":"ARCHIVE CONVERSION","open-source-bindery.f37b9e1aa4":"FINANCE","open-source-bindery.c4d9bc6083":"COMPLIANCE","open-source-bindery.7f123bd718":"INGEST","open-source-bindery.b73dbbf66d":"Knowledge ingestion, regulatory analysis, financial document processing, e-discovery, archival and code-doc tooling all begin with office formats as input and structured data as output. Every document opens through the same three lines of Rust.","open-source-bindery.017082c953":"are the data","open-source-bindery.827a38a734":"Where documents","open-source-bindery.14a29ba383":"Use cases","open-source-bindery.4e5ce6399c":"docx, xlsx, pptx, pdf, iWork, ODF, RTF plus encrypted","open-source-bindery.6489fbc44a":"17 format readers","open-source-bindery.a2bf219433":"Detect, parse, query, write","open-source-bindery.2fac3518f7":"Bindery engine","open-source-bindery.330baa9f56":"bindery convert / query","open-source-bindery.1f0a9eda02":"publishing in the seventh round","open-source-bindery.6fae63a153":"Native API, zero copy","open-source-bindery.7253c785e8":"Where Bindery plugs in","open-source-bindery.07a56cd0db":"INTEGRATION GRAPH","open-source-bindery.8b21c0e40c":"PYTHON","open-source-bindery.d59ed14bf9":"RUST","open-source-bindery.12070a922d":"Native Rust API for embedding. PyO3 bindings for Python pipelines. A CLI for one-shot inspection, conversion, and queries. The same engine behind all three.","open-source-bindery.f54acdb5a1":"PyO3 bindings","open-source-bindery.41a1c1c379":"Rust crate","open-source-bindery.899e5920ef":"One document model, every surface","open-source-bindery.b65a9a60ee":"Round-trip otherwise","open-source-bindery.591950d7bc":"Lossy where flagged","open-source-bindery.8a0ab1932a":"EPUB / LaTeX / MD","open-source-bindery.ac98f252c1":"RTF","open-source-bindery.d613d88cb2":"PDF","open-source-bindery.328a8a58c1":"Legacy (xls, doc, ppt)","open-source-bindery.be8d1e9fd1":"ODF (ods, odt, odp)","open-source-bindery.06397cc97e":"OOXML (xlsx, docx, pptx)","open-source-bindery.6c3a72eaf6":"Office","open-source-bindery.918fcc20eb":"Query target","open-source-bindery.7e008077a0":"Round-trip","open-source-bindery.4a48932789":"Write","open-source-bindery.84dc1a571f":"Parse fidelity","open-source-bindery.852b438f91":"Read","open-source-bindery.bb5aa0545b":"What we promise","open-source-bindery.5ba779605e":"FORMAT x CAPABILITY","open-source-bindery.7f464ff72d":"EPUB","open-source-bindery.3551fa9b3c":"One library, 17 formats. OOXML and ODF are first-class read, write and query surfaces. PDF and RTF read fully and write best-effort. EPUB, LaTeX and Markdown are writer outputs. The matrix states what every format promises.","open-source-bindery.7e4a70f612":"PDF, RTF, EPUB","open-source-bindery.586311107f":"Office, Open Document,","open-source-bindery.6d542b3463":"Format matrix","open-source-bindery.87d704254a":"Excel-compatible","open-source-bindery.5397170353":"NPV, IRR, PMT, loan tables.","open-source-bindery.bd91f0161b":"Financial","open-source-bindery.cb8cb8de63":"IFS, LET, LAMBDA, SWITCH.","open-source-bindery.37a4a4b1ee":"Logic and array","open-source-bindery.925c61af2f":"VLOOKUP, INDEX/MATCH, XLOOKUP.","open-source-bindery.db1c784524":"Reference","open-source-bindery.6de79a1aed":"WORKDAY, NETWORKDAYS, EOMONTH.","open-source-bindery.c5e455ba32":"Time and business","open-source-bindery.074a71e9ac":"SUBSTITUTE, REGEX, TEXTJOIN.","open-source-bindery.cbee025715":"String and regex","open-source-bindery.a2e99d4457":"SUM, AVG, STDEV, matrix functions.","open-source-bindery.556a7b72a4":"Maths and stats","open-source-bindery.6b8bf7dcee":"300+ Excel-compat functions","open-source-bindery.f622efa042":"FUNCTION TIERS","open-source-bindery.fdcf83af06":"DOCQL","open-source-bindery.cb44c5137c":"The formula engine evaluates 300+ Excel-compatible functions. DocQL is a SQL-like query language for the unified document model: find references, evaluate formulas, walk tables, filter shapes.","open-source-bindery.c9f40c4659":"One query language","open-source-bindery.4404604413":"300+ functions","open-source-bindery.e79b7a30cf":"Formulas and DocQL","open-source-bindery.650ee301c6":"Bindery replaces the portfolio with one Rust crate: one API, one query language and one update cadence across 17 formats.","open-source-bindery.ce2196f9dd":"The glue layer becomes the project.","open-source-bindery.238ac67410":"One parser per format, one API per format, one update cycle per format. The maintenance surface expands faster than the product ships.","open-source-bindery.7a02470546":"Many formats","open-source-bindery.5bf6be36ea":"One model","open-source-bindery.281f3e7a0b":"Writer emits to a supported format.","open-source-bindery.1a193eb9c9":"DocQL, SQL-like queries over DocModel.","open-source-bindery.bb8ba2f67b":"Reader produces a unified DocModel.","open-source-bindery.b7e45a36ff":"Parse","open-source-bindery.e0b791ff70":"Sniff bytes, choose reader, ignore extension lies.","open-source-bindery.80628bd746":"Detect","open-source-bindery.73894e6b1a":"Bytes to docs to answers","open-source-bindery.e0647adaff":"PIPELINE","open-source-bindery.27ad330619":"WRITE","open-source-bindery.4ae694911c":"QUERY","open-source-bindery.da04370db0":"PARSE","open-source-bindery.9a79079c97":"DETECT","open-source-bindery.99422bffe4":"Format detection picks the right reader. Parsers normalise everything to a unified document model. DocQL queries that model with SQL-like syntax. Writers emit back to OOXML, ODF, LaTeX, EPUB, and Markdown.","open-source-bindery.f293b455d7":"Parse. Query. Write","open-source-bindery.6c03df4299":"Detect","open-source-bindery.b040b4179b":"Architecture","open-source-bindery.4ea314b762":"Bindery removes the glue","open-source-bindery.a47dace3f8":"Glue eats time","open-source-bindery.fbd224d6c0":"Most parsers read. Few round-trip.","open-source-bindery.9be33fae76":"No write path","open-source-bindery.45f5e99815":"forked tools","open-source-bindery.f90d1075d6":"Cannot ask one question across formats.","open-source-bindery.d6318cb336":"No shared query","open-source-bindery.624a36005b":"wrong file","open-source-bindery.a9c33e1ad0":"Files lie about extensions. Auto-detect needed.","open-source-bindery.8acc09c18e":"Format ambiguity","open-source-bindery.73d68ab5cc":"N libs","open-source-bindery.dd07322ba8":"Different crate per format, different API.","open-source-bindery.7456aaea5a":"Per-format library","open-source-bindery.6108d1e410":"Why pipelines wobble","open-source-bindery.1da7c15149":"GLUE PAIN","open-source-bindery.ed34a3f7b4":"BRITTLE","open-source-bindery.d16680a4ad":"INCOMPATIBLE","open-source-bindery.2831321def":"FRAGMENTED","open-source-bindery.c35cea3348":"Most Rust and Python pipelines stitch together a different library per format, each with its own API, its own bugs, its own maintenance window. The glue layer becomes the project.","open-source-bindery.31c96fe1f6":"A glue project per pipeline","open-source-bindery.6e25c3c779":"One parser per format","open-source-bindery.8a9400005c":"Every format adds another seam","open-source-bindery.6b5630d1e0":"Format detection reads magic bytes and structure cues. Extension is a hint, not the truth.","open-source-bindery.578172fdda":"Sheet1!B4, Sheet1!D12, Sheet3!A1  (3 results)","open-source-bindery.908b703df3":"bindery query 'SELECT cells WHERE refs CONTAINS \"Sheet2.A1\"'","open-source-bindery.c3411e19c3":"DocQL: find every cell referencing Sheet2.A1","open-source-bindery.85c6f5f15c":"sheets: 3, rows: 12847, formulas: 4193","open-source-bindery.4612217339":"detected: xlsx (extension was .doc)","open-source-bindery.702e8abeb2":"bindery inspect mystery_file.doc","open-source-bindery.3eec7dcba1":"open any file. Format detected from bytes, not extension","open-source-bindery.faaea3ee07":"    Finished in 3.2s","open-source-bindery.828d3f85cb":"   Compiling dweve-bindery","open-source-bindery.deb1b86ec0":"publishing in the seventh round","open-source-bindery.8f0c169ccd":"add the crate","open-source-bindery.9737f612e1":"bindery: open any document","open-source-bindery.aab50eb6e3":"No GPU needed","open-source-bindery.fd1224c213":"Decryption at the read boundary.","open-source-bindery.bfb7535aaa":"at the boundary","open-source-bindery.a8a49cfcd4":"Encrypted (AES-256)","open-source-bindery.5c35451ec2":"Annual reports and big PDFs.","open-source-bindery.61d14cafeb":"<500 ms","open-source-bindery.e9ed98c0d2":"Large (<100 MB)","open-source-bindery.faa684f7e7":"Large workbooks and slide decks.","open-source-bindery.0b9d702bc2":"<50 ms","open-source-bindery.c198533d97":"Medium (<10 MB)","open-source-bindery.b87be8e53e":"Most spreadsheets and Word files.","open-source-bindery.daf7ee7f17":"<1 ms","open-source-bindery.524c9611ab":"Small (<100 KB)","open-source-bindery.ab04f1d868":"Per document size, standard CPU","open-source-bindery.d848196a55":"PARSE TIMES","open-source-bindery.10b8118a93":"CARGO ADD","open-source-bindery.f33919a2dd":"Add the crate, call open and read the document model. The same three lines work on Word, Excel, PDF and every other supported format. Detection starts from the file signature rather than trusting the extension.","open-source-bindery.37356c9332":"Any format opens","open-source-bindery.6fe8f78f0a":"Three lines","open-source-bindery.edf95cc67a":"European by default","open-source-bindery.84544389ec":"Write a supported output or pass the structured model onward.","open-source-bindery.24a2112a54":"Hand off","open-source-bindery.f7e3efbaa9":"Detect, read, query and transform in the chosen environment.","open-source-bindery.43f43cd6d0":"Process","open-source-bindery.2c3fa1d8d6":"Files enter through the document boundary you operate.","open-source-bindery.723ebaba4d":"Receive","open-source-bindery.2295319311":"From arrival to onward use","open-source-bindery.40b3e009bb":"THE CONTROLLED PATH","open-source-bindery.ffdd3be93c":"CHOSEN OUTPUTS","open-source-bindery.2f51e499f5":"NO EXTERNAL READER","open-source-bindery.82af9b29e3":"LOCAL PROCESSING","open-source-bindery.74f1e13edc":"Bindery can run where documents already arrive and where the next system expects them. Detection, reading, querying and transformation stay close to the workflow, while the final handoff produces structured content or a supported output format.","open-source-bindery.379c34cf7a":"close to the work","open-source-bindery.a87e00aaf7":"Keep document processing","open-source-bindery.1bce34771d":"The processing boundary","open-source-bindery.7682cc4288":"One path","open-source-bindery.5cfe19ba7a":"Different jobs","open-source-bindery.9495067e56":"Sensitive documents open on your own hardware, so they never leave to be read.","open-source-bindery.5e2d8af38a":"Compliance review","open-source-bindery.4210c86eff":"Legacy, Apple and OpenDocument files all open, so old archives stay readable.","open-source-bindery.aa04577602":"Archive and migration","open-source-bindery.a24da5b9b4":"Files are identified by their contents, so a wrongly named file no longer stalls the queue.","open-source-bindery.73a525b812":"Document intake","open-source-bindery.8af80ee613":"The same operating model","open-source-bindery.5cdee1fe43":"THREE DOCUMENT FLOWS","open-source-bindery.871dab7bde":"MIXED INTAKE","open-source-bindery.1871278a74":"The same document flow supports mixed intake, archive conversion and controlled review. Files are detected and opened consistently, then exposed as structured information for the task at hand. The operating model stays familiar even when the document mix changes.","open-source-bindery.b7da30ceda":"to usable operating input","open-source-bindery.3b96178dde":"From incoming files","open-source-bindery.e7a6160c8c":"Day-to-day document work","open-source-bindery.538897f728":"Controlled boundary","open-source-bindery.8a4752fff0":"Format branches","open-source-bindery.cd0d845711":"Downstream systems inherit a different structure for each file family.","open-source-bindery.c05a4bc8e6":"Variable handoffs","open-source-bindery.1e93629b59":"A read-only path creates another step when a new output is needed.","open-source-bindery.601dcc1c87":"One-way conversions","open-source-bindery.780c25d444":"The same task behaves differently across separate format integrations.","open-source-bindery.d5bbc494c6":"Reader divergence","open-source-bindery.36367ee931":"Routing by extension can select the wrong document path.","open-source-bindery.a774a7ba43":"Misnamed files","open-source-bindery.29a4b99f7b":"Small differences that spread downstream","open-source-bindery.70d61a9e84":"WHERE EXCEPTIONS BEGIN","open-source-bindery.dc31853b34":"KNOWN BOUNDARIES","open-source-bindery.1c95b1c70e":"SHARED DOCUMENT MODEL","open-source-bindery.3f44068c3f":"DETECT BY CONTENT","open-source-bindery.673cf7f2a3":"A wrong extension, a separate reader or a one-way conversion can introduce another branch into document operations. Bindery detects from content, exposes one queryable model and writes through supported output paths, leaving fewer format-specific cases to test and operate.","open-source-bindery.5498932803":"stop at a controlled boundary","open-source-bindery.857e337412":"Make format differences","open-source-bindery.12f5f9be6f":"Exception control","open-source-bindery.6a5d2853c2":"Consistent document model","open-source-bindery.1723a6814e":"Format-specific input","open-source-bindery.5ff9023130":"Downstream systems receive consistent structure.","open-source-bindery.d1dfbfd798":"Handoff shapes","open-source-bindery.fcd2ca639a":"Questions run against one document model.","open-source-bindery.bc35018226":"Query patterns","open-source-bindery.1c921fc294":"Supported formats open through one interface.","open-source-bindery.619ed1afbc":"Read paths","open-source-bindery.2c4eff85cc":"Format-specific paths become one","open-source-bindery.de29125c54":"WHAT CONVERGES","open-source-bindery.53dba875d5":"SUPPORTED WRITERS","open-source-bindery.83f06b1472":"ONE DOCUMENT MODEL","open-source-bindery.c0aa67857c":"Word documents, spreadsheets, slide decks, PDFs and other supported files begin with different internal structures. Bindery normalises them into one document model, so queries, transformations and downstream integrations can use a consistent structure.","open-source-bindery.99fbb3d9c3":"the format stops driving the work","open-source-bindery.8160e6c799":"Once the file is open","open-source-bindery.b261892724":"The common document model","open-source-bindery.143299f958":"Content becomes one structured document model.","open-source-bindery.220c94c342":"Open","open-source-bindery.57dc57aa0f":"File signatures and structural cues select the appropriate reader.","open-source-bindery.870c4d024a":"Detect","open-source-bindery.a51e36a110":"Mixed office files enter through the same document boundary.","open-source-bindery.3c63f47047":"Receive","open-source-bindery.13622bee2b":"From arrival to usable structure","open-source-bindery.fcdd6b2cfe":"DOCUMENT INTAKE","open-source-bindery.c82d1b09cf":"LOCAL PROCESSING","open-source-bindery.3115880727":"SHARED DOCUMENT MODEL","open-source-bindery.825b742371":"ONE INTAKE","open-source-bindery.43a1303b40":"Documents rarely enter operations in a neat, uniform set. Bindery identifies supported formats from file contents and opens them through one interface. The result is a structured document model ready for the next task.","open-source-bindery.78ce3b4064":"one intake path takes over","open-source-bindery.3d1e7bdec2":"Mixed documents arrive","open-source-bindery.c195c71562":"The intake boundary","open-source-bindery.c93d273ae7":"No fine print","open-source-bindery.8be7afd0af":"Plain words","open-source-bindery.62bc7ea6b6":"The reader runs inside the app, without a separate account or outside document service.","open-source-bindery.5d8064b85c":"For anyone","open-source-bindery.75f527181b":"Free","open-source-bindery.9db9913d01":"It reads close to your files, on your side.","open-source-bindery.b85bba40a2":"Papers","open-source-bindery.755844bc39":"Yours","open-source-bindery.63518197d4":"It opens letters, sheets, forms, and slides alike.","open-source-bindery.322444d3bb":"Any","open-source-bindery.1a3b008773":"The same answer on every computer, today and tomorrow.","open-source-bindery.748288fd12":"Every time","open-source-bindery.b76aee974c":"Same","open-source-bindery.efffac7f8e":"On your side","open-source-bindery.f31727ff20":"ONE LIBRARY, NOT SEVENTEEN","open-source-bindery.4a9768fab0":"FREE","open-source-bindery.b0b7ba4666":"PRIVATE","open-source-bindery.d1e85fd82d":"ANY FILE","open-source-bindery.b00a146670":"SAME ANSWER","open-source-bindery.679c07a235":"You do not need to understand how it works to feel what it does for you. It gives the same answer on every computer, it opens documents whatever made them and it reads in private on your side. Once Bindery publishes in the seventh round, you can inspect the implementation yourself.","open-source-bindery.3f18109144":"answered plainly","open-source-bindery.992f862847":"Small worries,","open-source-bindery.5f32c7c01f":"Your documents stay yours","open-source-bindery.da671d6565":"Your real papers","open-source-bindery.f77e0075de":"No guessing","open-source-bindery.a510773bf6":"It comes from your real paper, the same way every time.","open-source-bindery.1ff61173ec":"The answer is about you","open-source-bindery.aa911eb0c0":"Bindery opens the real document and reads what is inside.","open-source-bindery.82f798e2e2":"The reader opens your papers","open-source-bindery.a7eb7b2dc6":"About your own letter, sheet, or form, in your own words.","open-source-bindery.251d849bf0":"You ask a plain question","open-source-bindery.54bb949160":"Three quiet steps","open-source-bindery.40fa4d5e22":"WHAT HAPPENS WHEN YOU ASK","open-source-bindery.130ae09e99":"REAL ANSWER","open-source-bindery.e5640b15ab":"IT READS","open-source-bindery.51138d4247":"ASK","open-source-bindery.90eadbd2c0":"When you ask a computer about your own documents, something first has to open them and read what is truly inside. Without that, you only get a polite guess. Bindery is the part that opens your real papers first, so the answer is about them and not about nothing.","open-source-bindery.a61f3bb8b0":"about your real papers","open-source-bindery.8d3d4eecdb":"A real answer","open-source-bindery.ef37b51f4e":"When you ask the computer","open-source-bindery.55b86af0bf":"One quiet reader","open-source-bindery.6e10fdf020":"Different programs","open-source-bindery.e83e8a1547":"Frozen pages that look the same everywhere.","open-source-bindery.ee19a16b3b":"Printed","open-source-bindery.4bec957572":"Forms","open-source-bindery.d32387da22":"Slideshows of words and photos on pages.","open-source-bindery.e746f39d52":"And pictures","open-source-bindery.1e35470a39":"Slides","open-source-bindery.1452860eea":"Budgets and lists laid out in little boxes.","open-source-bindery.c95cc671b1":"Of numbers","open-source-bindery.3a97f965c7":"Sheets","open-source-bindery.5faf79e54a":"The notes and letters you wrote and saved over the years.","open-source-bindery.65922c6bca":"You typed","open-source-bindery.6a37a6819c":"Letters","open-source-bindery.1f39dbbf9b":"One helper, many shapes","open-source-bindery.eecf5f0ff3":"ALL OPEN THE SAME WAY","open-source-bindery.2f0bd29d08":"FORMS","open-source-bindery.0ed4831964":"SLIDES","open-source-bindery.c0c0fa9084":"SHEETS","open-source-bindery.8753fd6c3b":"LETTERS","open-source-bindery.7f208592a6":"A letter, a budget sheet, a slideshow, a printed form. They were each made by a different program, and they each look different inside. The quiet helper opens every one of them the same way and finds the words. Tap any card on the left to peek inside that kind of paper.","open-source-bindery.86cc8420c2":"what made a file","open-source-bindery.1eb0b5a527":"It does not matter","open-source-bindery.d6e9b822c4":"The shapes of paper","open-source-bindery.ca1375e97a":"Always there","open-source-bindery.1045b8472c":"Quiet helper","open-source-bindery.f72aab1b2f":"When you ask a computer about your papers, it answers about your real papers.","open-source-bindery.1691651549":"Bindery opens each one and finds the words inside, no matter what made it.","open-source-bindery.0cb0cbb176":"The helper reads them","open-source-bindery.980360c3e1":"All your documents, in all their different shapes, saved over the years.","open-source-bindery.e186caa8b0":"You keep your papers","open-source-bindery.dd19a1df05":"Three simple steps","open-source-bindery.a633e231d6":"HOW IT HELPS YOU","open-source-bindery.74f2a6564d":"Over the years you collect letters, forms, lists, and printouts. They come in every shape, and some open one way and some another. Bindery is the quiet helper inside a computer that can open any of them and read what is inside, whatever made them. You never have to pick the right tool. It figures the document out for you.","open-source-bindery.c55296f15f":"filing cabinet","open-source-bindery.b1a61ab2eb":"Think of an old","open-source-bindery.704869f20f":"In plain words","open-source-bindery.e03947cc0c":"Sovereignty","open-source-bindery.45240f7ab7":"Not required","open-source-bindery.a976c38efb":"External service","open-source-bindery.442035ceb7":"Standard computers","open-source-bindery.5703321d0e":"Runs on","open-source-bindery.6eef664840":"None","open-source-bindery.1ef1565eea":"Vendor lock-in","open-source-bindery.46b0347db6":"17 office formats","open-source-bindery.e89a1996f1":"One, not many","open-source-bindery.4133ccc547":"Tools to buy","open-source-bindery.525f61b672":"Where","open-source-bindery.6f696724c6":"Document flow","open-source-bindery.f6ad495c91":"Follow the document flow","open-source-bindery.40a1a12d5a":"Bindery gives supported office and document formats one consistent route: detect, read, query, transform and write. Format differences stay at the intake boundary, while downstream systems receive usable structure through predictable handoffs inside the environment you control.","open-source-bindery.8688e80ade":"No vendor lock-in.","open-source-bindery.0de1f66a30":"Structured information out","open-source-bindery.db2b36396d":"Mixed documents in","open-source-bindery.0618f2bc61":"Bindery","open-source-bindery.9b5641a96c":"Anyone","open-source-bindery.85bc889794":"Who can check it","open-source-bindery.72de9496a5":"No separate reader account","open-source-bindery.1219b04dc6":"Cost to you","open-source-bindery.6524129897":"Stay your papers","open-source-bindery.aca6dd17f0":"Your papers","open-source-bindery.0c371f9da6":"On every machine","open-source-bindery.3477f4d91d":"Same answer","open-source-bindery.34e0b68566":"Never, it is quiet","open-source-bindery.9cb465ee8d":"When you see it","open-source-bindery.9a6215377d":"On your computer","open-source-bindery.11d28b6fc4":"Where it works","open-source-bindery.df007ab8b3":"Letters, sheets, forms","open-source-bindery.188f52fe47":"What it opens","open-source-bindery.d44174f2a7":"A document reader","open-source-bindery.f8c94a3b4b":"What it is","open-source-bindery.878206a0d8":"See how it helps you","open-source-bindery.089d76a309":"Bindery opens letters, budget sheets, presentations, forms, and other documents through one quiet component. The apps you use can then answer questions about your own files, whatever created them, without sending each format through a different service.","open-source-bindery.454259aed5":"Whatever made them.","open-source-bindery.3f350bfd06":"every document you keep","open-source-bindery.04e3b42c43":"Bindery opens","open-source-bindery.6ed1301b23":"Small <1 ms, large <500 ms","open-source-bindery.6e3604888c":"Python","open-source-bindery.7fc8028ffc":"RC4 and AES-256","open-source-bindery.0af149c2ed":"Encryption","open-source-bindery.1388ee4125":"Magic-byte format ID","open-source-bindery.db7ab80468":"DocQL (SQL-like)","open-source-bindery.f8d1a2264b":"Query language","open-source-bindery.f76286b541":"300+ functions","open-source-bindery.8ffb196ff9":"Formula engine","open-source-bindery.d18284f699":"Rust 2024","open-source-bindery.89b86ab0e6":"Language","open-source-bindery.942587e61e":"Project sheet","open-source-bindery.d4a74b503a":"Read the docs","open-source-bindery.42f8c90a17":"Bindery is a Rust document parser for Word, Excel, PowerPoint, PDF, iWork, ODF and RTF behind one API. It detects formats from file signatures, evaluates 300+ Excel functions, exposes DocQL for document queries and supports full read and write where the format allows it.","open-source-bindery.dda8f1a5c3":"17 formats. No configuration","open-source-bindery.686e84e841":" with one API","open-source-bindery.2fab01bf73":"Read any office document","open-source-bindery.989716267f":"01","open-source-bindery.5cc3d9acb6":"02","open-source-bindery.9aafa12fb7":"03","open-source-bindery.48febbef47":"Many to one","open-source-bindery.b364ddd61f":"Many to one","open-source-bindery.1dabba21cd":"✓","open-source-bindery.ad8ac07c20":"MATH","open-source-bindery.e4ba216b53":"TEXT","open-source-bindery.17f9a0a512":"DATE","open-source-bindery.f3e98eaecc":"LOOKUP","open-source-bindery.5d6aef33dc":"LOGIC","open-source-bindery.7ab4f62d32":"FIN","open-source-bindery.584cb925e6":"docx","open-source-bindery.1c980b22bc":"xlsx","open-source-bindery.8cb7059d7d":"xlsb","open-source-bindery.1512e97a4b":"pptx","open-source-bindery.139d544b82":"doc","open-source-bindery.2f3fa3fa3b":"xls","open-source-bindery.fd17c22aa1":"ppt","open-source-bindery.bfa062de04":"pages","open-source-bindery.f3c7807d47":"numbers","open-source-bindery.2c70e12b7a":"key","open-source-bindery.8197ad0f41":"odt","open-source-bindery.96650eeb78":"ods","open-source-bindery.0f35911617":"odp","open-source-bindery.c35b21d6ca":"pdf","open-source-bindery.b97d62f2e9":"rtf","open-source-bindery.83e895b8f0":"epub","open-source-bindery.a0b04eaca7":"tex","open-source-bindery.21262a3cb5":"md","open-source-bindery.c628c190b8":"<1 ms","open-source-bindery.04af2f99ee":"<50 ms","open-source-bindery.7649b8ea11":"<500 ms","open-source-bindery.789e46d795":"round seven","open-source-bindery.264fbe323a":"EVERYDAY","open-source-bindery.00db09ab06":"PLAIN","open-source-bindery.033c2b18a0":"FLOW","open-source-bindery.5d0b2f6bd4":"OBSERVED","open-source-bindery.8de6e8d6c6":"OPERATIONS","open-source-bindery.4d7e561a43":"LOCAL","open-source-bindery.436c3dfb67":"DOCUMENTED","open-source-bindery.8215b59ccb":"ENGINE","open-source-bindery.35e0d0360a":"LIVE","open-source-bindery.6e10953f3e":"OPEN","open-source-bindery.hero.eyebrow":"The document runtime","open-source-bindery.hero.title.lead":"Open, edit and recalculate","open-source-bindery.hero.title.accent":"documents in Rust.","open-source-bindery.hero.technical.lede":"Bindery publishes in the seventh round of Dweve's foundation release programme, with its documentation at docs.dweve.com the same day. It is a Rust document runtime under Apache-2.0, not only a parser: every supported format enters through its native container and becomes a structured document, workbook or presentation whose elements can be addressed, queried, generated and changed.","open-source-bindery.hero.technical.action.primary":"Ask about the release","open-source-bindery.hero.technical.action.secondary":"Read the documentation","open-source-bindery.hero.technical.ledger.label":"The runtime","open-source-bindery.hero.technical.ledger.pill":"Bindery","open-source-bindery.hero.technical.ledger.row.engine.label":"Engine","open-source-bindery.hero.technical.ledger.row.engine.value":"Rust crate, Python bindings, CLI and MCP","open-source-bindery.hero.technical.ledger.row.intake.label":"Intake","open-source-bindery.hero.technical.ledger.row.intake.value":"the bytes identify the family","open-source-bindery.hero.technical.ledger.row.model.label":"Model","open-source-bindery.hero.technical.ledger.row.model.value":"one canonical document model","open-source-bindery.hero.technical.ledger.row.operations.label":"Operations","open-source-bindery.hero.technical.ledger.row.operations.value":"open, query, edit, generate, compare, calculate and write","open-source-bindery.hero.technical.ledger.row.workbooks.label":"Workbooks","open-source-bindery.hero.technical.ledger.row.workbooks.value":"a formula engine over the dependency graph","open-source-bindery.hero.technical.ledger.row.safety.label":"Active content","open-source-bindery.hero.technical.ledger.row.safety.value":"parsed and preserved, never executed","open-source-bindery.hero.technical.ledger.row.repository.label":"Repository","open-source-bindery.hero.technical.ledger.row.repository.value":"Publishes in round seven","open-source-bindery.hero.technical.ledger.row.runs.label":"Runs","open-source-bindery.hero.technical.ledger.row.runs.value":"locally, inside your own process","open-source-bindery.hero.business.lede":"Bindery publishes in the seventh round of Dweve's foundation release programme, as a Rust document-processing library under Apache-2.0 for DOCX, XLSX, PPTX, PDF and HTML. It gives teams one programmable layer for reading, generating, editing, recalculating and exporting documents on infrastructure they control.","open-source-bindery.hero.business.action.primary":"See the estate argument","open-source-bindery.hero.business.action.secondary":"How to adopt","open-source-bindery.hero.business.ledger.label":"The estate","open-source-bindery.hero.business.ledger.pill":"Bindery","open-source-bindery.hero.business.ledger.row.estate.label":"Estate","open-source-bindery.hero.business.ledger.row.estate.value":"every era of office document","open-source-bindery.hero.business.ledger.row.stack.label":"Stack","open-source-bindery.hero.business.ledger.row.stack.value":"one semantic operation layer","open-source-bindery.hero.business.ledger.row.outputs.label":"Outputs","open-source-bindery.hero.business.ledger.row.outputs.value":"native DOCX, XLSX, PPTX, PDF and HTML","open-source-bindery.hero.business.ledger.row.agents.label":"Agents","open-source-bindery.hero.business.ledger.row.agents.value":"MCP tools with previews and version checks","open-source-bindery.hero.business.ledger.row.migration.label":"Migration","open-source-bindery.hero.business.ledger.row.migration.value":"a fidelity ledger with every conversion","open-source-bindery.hero.business.ledger.row.processing.label":"Processing","open-source-bindery.hero.business.ledger.row.processing.value":"on infrastructure you control","open-source-bindery.hero.business.ledger.row.adoption.label":"Adoption","open-source-bindery.hero.business.ledger.row.adoption.value":"evaluate on your own difficult files","open-source-bindery.hero.consumer.lede":"Bindery is the document engine inside other software. It opens old and new files, keeps their structure, changes exact parts, recalculates spreadsheets and writes useful documents without sending them to a conversion website. Bindery publishes under Apache-2.0 in the seventh round of Dweve's foundation release programme.","open-source-bindery.hero.consumer.action.primary":"Start in plain words","open-source-bindery.hero.consumer.action.secondary":"Explore the project","open-source-bindery.hero.consumer.ledger.label":"In plain words","open-source-bindery.hero.consumer.ledger.pill":"Bindery","open-source-bindery.hero.consumer.ledger.row.files.label":"Files","open-source-bindery.hero.consumer.ledger.row.files.value":"old and new office documents","open-source-bindery.hero.consumer.ledger.row.keeps.label":"Keeps","open-source-bindery.hero.consumer.ledger.row.keeps.value":"words, tables, formulas, charts and notes","open-source-bindery.hero.consumer.ledger.row.changes.label":"Changes","open-source-bindery.hero.consumer.ledger.row.changes.value":"one exact part, the rest preserved","open-source-bindery.hero.consumer.ledger.row.totals.label":"Spreadsheets","open-source-bindery.hero.consumer.ledger.row.totals.value":"totals worked again from the formulas","open-source-bindery.hero.consumer.ledger.row.where.label":"Where","open-source-bindery.hero.consumer.ledger.row.where.value":"the computer that already holds the file","open-source-bindery.breadcrumb.home":"Open Source","open-source-bindery.close.accent":"and keep every file where it already is","open-source-bindery.close.panel.title":"Before Bindery publishes","open-source-bindery.close.panel.tag":"ONE LAYER","open-source-bindery.close.panel.row.0.label":"Formats","open-source-bindery.close.panel.row.0.value":"Seventeen office formats, one interface","open-source-bindery.close.panel.row.1.label":"Surfaces","open-source-bindery.close.panel.row.1.value":"Rust, Python, command line and MCP","open-source-bindery.close.panel.row.2.label":"Where it runs","open-source-bindery.close.panel.row.2.value":"In your process, nothing uploaded","open-source-bindery.close.panel.row.3.label":"Terms","open-source-bindery.close.panel.row.3.value":"Apache-2.0, round seven","open-source-bindery.close.panel.foot":"Publication is planned in fortnightly rounds; the repository and its documentation go live together.","open-source-bindery.breadcrumb.current":"Bindery","open-source-bindery.close.label":"Get started","open-source-bindery.close.headline":"Add Bindery to your project","open-source-bindery.close.body":"When Bindery publishes in the seventh round, open any supported document through one operation layer: parse, query, edit, generate, recalculate, compare and write, locally, above native readers and writers. The crate, the Python package, the command line and the MCP server all exercise the same engine.","open-source-bindery.close.action.primary":"Ask about the release","open-source-bindery.close.action.secondary":"Read the documentation","open-source-bindery.next.eyebrow":"Continue exploring","open-source-bindery.next.bitweave.category":"Related project","open-source-bindery.next.bitweave.title":"BitWeave","open-source-bindery.next.bitweave.description":"A binary hypervector engine in Rust for computable meaning across text, images and audio.","open-source-bindery.next.reed.category":"Related project","open-source-bindery.next.reed.title":"Reed","open-source-bindery.next.reed.description":"Parse and content-address text and code.","open-source-bindery.next.spindle.category":"Products","open-source-bindery.next.spindle.title":"Spindle","open-source-bindery.next.spindle.description":"Knowledge governance built on parsed documents.","open-source-bindery.section.bnd-eng-intake.eyebrow":"The first decision","open-source-bindery.section.bnd-eng-intake.headlineLead":"The extension is a hint","open-source-bindery.section.bnd-eng-intake.headlineAccent":"the bytes make the decision","open-source-bindery.section.bnd-eng-intake.body":"Bindery begins with the file rather than its name. Signatures distinguish compound files, packaged documents, PDF, Rich Text and structured text. Container members then settle which application family produced it. The result is not a parser handle. It is a document, workbook, presentation or fixed-layout document already connected to its source parts.","open-source-bindery.section.bnd-eng-intake.secondaryKicker":"Why two checks","open-source-bindery.section.bnd-eng-intake.secondaryBody":"A ZIP signature identifies a container, not whether the package is Word, Excel, PowerPoint, OpenDocument or iWork. Bindery therefore reads the minimum package metadata needed to classify the family and validates the relationships that declare the root object. The same principle applies to legacy compound files: the container header opens the storage, then named streams and internal records identify the actual application format. A misleading extension never gets a vote.","open-source-bindery.section.bnd-eng-intake.tertiaryKicker":"The detected format remains evidence","open-source-bindery.section.bnd-eng-intake.tertiaryBody":"The detection result is stored with the open session rather than discarded after dispatch. That record includes the original file identity, byte hash, detected family, parser path, protection state and any contradiction between extension, MIME hint and actual contents. Later extracts, edits and outputs can therefore state which reader produced them. A batch report can distinguish a mislabelled but valid file from a corrupted file, and an agent can cite the detected format without inferring it from the filename.","open-source-bindery.section.bnd-eng-intake.pill.1":"CONTENT DETECTION","open-source-bindery.section.bnd-eng-intake.pill.2":"ONE OPEN","open-source-bindery.section.bnd-eng-intake.pill.3":"SOURCE IDENTITY","open-source-bindery.section.bnd-eng-intake.footer":"The reader now knows the family. The next layer has to open containers designed in four different eras.","open-source-bindery.section.bnd-eng-containers.eyebrow":"Native readers underneath","open-source-bindery.section.bnd-eng-containers.headlineLead":"Four container families","open-source-bindery.section.bnd-eng-containers.headlineAccent":"and none is treated as another","open-source-bindery.section.bnd-eng-containers.body":"Legacy Office is a sector-addressed file system. OOXML and OpenDocument are relationship-bearing package formats. iWork is a bundle whose index contains framed compressed messages. RTF is a control-word stream, and PDF is an object graph with content streams. Bindery gives every family the reader its structure requires, then maps the result into the common document model.","open-source-bindery.section.bnd-eng-containers.secondaryKicker":"Exact below, common above","open-source-bindery.section.bnd-eng-containers.secondaryBody":"The common model is not an excuse to share the wrong parser. OLE readers validate headers, allocation tables, directory trees and chained streams. Package readers follow content types and relationships rather than unpacking everything. iWork readers decode the bundle, index archive, framed compression and message graph. RTF maintains groups, destinations and character sets. PDF follows object references, page trees, resources and content operators. Commonality begins only after the native structure has been honoured.","open-source-bindery.section.bnd-eng-containers.tertiaryKicker":"Writers mirror the native families","open-source-bindery.section.bnd-eng-containers.tertiaryBody":"The same separation applies in reverse. Legacy Office writers construct sector allocation, directory and application records. Package writers create parts, content types, relationships and manifests. iWork writers produce bundles, archives, metadata and object indexes. RTF and PDF writers emit their native streams. The canonical model does not generate generic XML and hope another tool accepts it. Every writer is responsible for the literal container contract of its target family.","open-source-bindery.section.bnd-eng-containers.pill.1":"NATIVE READERS","open-source-bindery.section.bnd-eng-containers.pill.2":"ONE CONTRACT","open-source-bindery.section.bnd-eng-containers.pill.3":"NO FLATTENING","open-source-bindery.section.bnd-eng-containers.footer":"Native parsing gets the bytes right. The common model decides whether the document remains useful.","open-source-bindery.section.bnd-eng-model.eyebrow":"Above every format","open-source-bindery.section.bnd-eng-model.headlineLead":"One model for meaning","open-source-bindery.section.bnd-eng-model.headlineAccent":"no lowest common denominator","open-source-bindery.section.bnd-eng-model.body":"Bindery's canonical model records the things document operations are actually about: sections, paragraphs, tables, cells, formulas, slides, shapes, charts, relationships, equations, media, comments, revisions and metadata. Each node has a stable identity inside the open session, a semantic type, ordered children, properties, style references and provenance back to its source.","open-source-bindery.section.bnd-eng-model.secondaryKicker":"Common meaning, retained extensions","open-source-bindery.section.bnd-eng-model.secondaryBody":"A chart is a chart whether it arrived from Excel, PowerPoint, Word, Numbers or Keynote, but each family may carry properties the others cannot express. The common node therefore holds the shared chart model and a format extension for the source-specific details required for round trip. The same applies to SmartArt, OLE objects, content controls, fields, animations, pivots and other features that disappear when a library reduces a file to paragraphs and cells.","open-source-bindery.section.bnd-eng-model.tertiaryKicker":"Identity supports citations and later edits","open-source-bindery.section.bnd-eng-model.tertiaryBody":"A caller can retain an element reference after inspection and use it in a later operation under an expected document version. Human-facing locations such as page, slide, sheet, cell, heading and table caption travel beside machine identities. When layout changes move a paragraph to another page, the semantic identity can remain while the rendered location updates. This distinction is essential for document interpretation, citations and agent workflows that must survive more than one edit.","open-source-bindery.section.bnd-eng-model.pill.1":"SEMANTIC NODES","open-source-bindery.section.bnd-eng-model.pill.2":"SOURCE BACKED","open-source-bindery.section.bnd-eng-model.pill.3":"EXTENSIBLE","open-source-bindery.section.bnd-eng-model.footer":"A stable node is what lets an edit be precise. Precision is what makes in-place editing different from conversion.","open-source-bindery.section.bnd-eng-edit.eyebrow":"In-place document editing","open-source-bindery.section.bnd-eng-edit.headlineLead":"Change one element","open-source-bindery.section.bnd-eng-edit.headlineAccent":"and preserve everything else","open-source-bindery.section.bnd-eng-edit.body":"Bindery edits the canonical model and records which nodes and source parts became dirty. Writers then regenerate the smallest native structures required by those changes. Replacing one paragraph does not rebuild every image. Updating a formula does not discard workbook names. Changing one slide title does not flatten the master, animations or embedded objects around it.","open-source-bindery.section.bnd-eng-edit.secondaryKicker":"Minimal change as a contract","open-source-bindery.section.bnd-eng-edit.secondaryBody":"The operation starts with resolution: an exact node identity, a structural selector or a semantic path. Bindery returns the resolved element and a preview before mutation where the caller requests one. After the change, validation checks parent-child constraints, references, styles and destination capabilities. The writer preserves untouched bytes or native parts where the format permits it, reuses relationship identities and retains unknown extensions instead of normalising the entire file through the common model.","open-source-bindery.section.bnd-eng-edit.tertiaryKicker":"Change policy is explicit","open-source-bindery.section.bnd-eng-edit.tertiaryBody":"Callers decide whether metadata such as modified time, application name, revision counters or calculation flags should change with the edit. They also decide whether to preserve unknown extensions byte-for-byte, normalise them through a writer or refuse a write that cannot guarantee retention. The operation result records those choices. A deterministic mutation plan can therefore be reviewed before bytes move and replayed against the same document version.","open-source-bindery.section.bnd-eng-edit.pill.1":"EXACT TARGET","open-source-bindery.section.bnd-eng-edit.pill.2":"MINIMAL WRITE","open-source-bindery.section.bnd-eng-edit.pill.3":"UNKNOWN DATA KEPT","open-source-bindery.section.bnd-eng-edit.footer":"Editing preserves a document that already exists. Generation starts with structure and has to create every part deliberately.","open-source-bindery.section.bnd-eng-fidelity.eyebrow":"The elements flatteners lose","open-source-bindery.section.bnd-eng-fidelity.headlineLead":"A chart is not an image","open-source-bindery.section.bnd-eng-fidelity.headlineAccent":"and SmartArt is not a text box","open-source-bindery.section.bnd-eng-fidelity.body":"Bindery represents visual and embedded content as structured elements. Charts retain their data sources, series, axes, labels, legends and styles. SmartArt retains its data model, layout relationship and generated shapes. OLE objects retain their relationship, class identity, preview and embedded payload. Equations remain syntax trees. Drawings retain vector geometry and anchors.","open-source-bindery.section.bnd-eng-fidelity.secondaryKicker":"Why interpretation depends on fidelity","open-source-bindery.section.bnd-eng-fidelity.secondaryBody":"A chart can be interpreted only when its plotted values and labels are available. A SmartArt process can be edited only when the nodes and edges behind the rendering survive. An OLE object can be inventoried only when the embedded payload remains distinguishable from its preview image. The same principle covers comments, revisions, hidden slides, speaker notes, content controls, fields, footnotes and formulas: visible text alone is not the document's meaning.","open-source-bindery.section.bnd-eng-fidelity.tertiaryKicker":"Visual interpretation uses the same objects","open-source-bindery.section.bnd-eng-fidelity.tertiaryBody":"Bindery can describe which range feeds a chart, which labels are displayed, which SmartArt node connects to which other node and which embedded payload sits behind an icon. The interpretive output points back to the same element identities used for editing. There is no separate AI extraction model that sees a simplified document and a writer that sees the real one. Explanation and mutation operate on the same structure.","open-source-bindery.section.bnd-eng-fidelity.pill.1":"CHART DATA","open-source-bindery.section.bnd-eng-fidelity.pill.2":"SMARTART GRAPH","open-source-bindery.section.bnd-eng-fidelity.pill.3":"OLE PAYLOAD","open-source-bindery.section.bnd-eng-fidelity.footer":"A document with all of its parts intact is now more than readable. It is a programmable object.","open-source-bindery.section.bnd-eng-generate.eyebrow":"Document generation","open-source-bindery.section.bnd-eng-generate.headlineLead":"Create the document model","open-source-bindery.section.bnd-eng-generate.headlineAccent":"the writer creates the format","open-source-bindery.section.bnd-eng-generate.body":"Bindery generates documents by constructing the same semantic objects its readers produce. A report is sections, styles, paragraphs, fields, tables, charts and references before it is DOCX, ODT, PDF or HTML. A workbook is sheets, names, formulas, tables and charts before it is XLSX, XLSB, ODS or Numbers. A deck is masters, layouts, slides and visual elements before it is PPTX, ODP or Keynote.","open-source-bindery.section.bnd-eng-generate.secondaryKicker":"Templates remain useful, but they stop being the model","open-source-bindery.section.bnd-eng-generate.secondaryBody":"Bindery can load a template, resolve named placeholders, repeat sections, bind table rows and chart series, conditionally include blocks and preserve everything the template already contains. It can also start from an empty document and create the entire structure programmatically. In both cases the writer sees the same model, so generation, editing and conversion share validation, style resolution, media handling, formula calculation and output diagnostics.","open-source-bindery.section.bnd-eng-generate.tertiaryKicker":"Layout and accessibility are part of generation","open-source-bindery.section.bnd-eng-generate.tertiaryBody":"Generation can apply document-wide style systems, page and section rules, reusable slide masters, workbook themes, alternative text, reading order, language tags, captions and document metadata. These are model properties rather than afterthoughts in a target-specific template. A generated document can therefore be checked for required structure before writing, and the target writer can report where a destination format cannot represent one of those requirements exactly.","open-source-bindery.section.bnd-eng-generate.pill.1":"MODEL FIRST","open-source-bindery.section.bnd-eng-generate.pill.2":"TEMPLATE OR EMPTY","open-source-bindery.section.bnd-eng-generate.pill.3":"MANY TARGETS","open-source-bindery.section.bnd-eng-generate.footer":"Generation creates elements. DocQL turns every element into something that can be queried and changed.","open-source-bindery.section.bnd-eng-docql.eyebrow":"The full declarative surface","open-source-bindery.section.bnd-eng-docql.headlineLead":"Documents become collections","open-source-bindery.section.bnd-eng-docql.headlineAccent":"without becoming tables","open-source-bindery.section.bnd-eng-docql.body":"DocQL presents paragraphs, runs, tables, cells, sheets, slides, shapes, comments, revisions, charts, media and relationships as typed collections. The relational surface makes filtering, grouping and joining familiar, while document-domain types preserve hierarchy, order, style, geometry, formulas and element identity.","open-source-bindery.section.bnd-eng-docql.secondaryKicker":"Query, manipulate and operate","open-source-bindery.section.bnd-eng-docql.secondaryBody":"SELECT answers questions. INSERT, UPDATE and DELETE change elements under capability checks. Document operations create, convert, merge, compare, extract, generate and protect files. Transactions give each statement a consistent snapshot, and explicit batches allow several operations to commit or roll back together. The planner checks a format connector's capabilities before execution, so a request to perform an unsupported write is rejected at analysis time with the target element and capability named.","open-source-bindery.section.bnd-eng-docql.tertiaryKicker":"Cross-document work keeps source boundaries","open-source-bindery.section.bnd-eng-docql.tertiaryBody":"Joins may connect a contract table to workbook cells or match slide claims to supporting document paragraphs, but result rows retain the originating file and element identity for every side. Updates cannot accidentally cross from a query result into all joined sources without an explicit target. This keeps a powerful relational surface from erasing the boundaries that matter to document ownership and review. A join can read across two files, but a write still names the single file it is allowed to change.","open-source-bindery.section.bnd-eng-docql.pill.1":"SELECT","open-source-bindery.section.bnd-eng-docql.pill.2":"DML","open-source-bindery.section.bnd-eng-docql.pill.3":"DOCUMENT OPERATIONS","open-source-bindery.section.bnd-eng-docql.pill.4":"SNAPSHOT","open-source-bindery.section.bnd-eng-docql.footer":"DocQL is the full language. Agents need the same precision in far fewer tokens.","open-source-bindery.section.bnd-eng-dsl.eyebrow":"Precise operations at context scale","open-source-bindery.section.bnd-eng-dsl.headlineLead":"Name the element","open-source-bindery.section.bnd-eng-dsl.headlineAccent":"without serialising the tree","open-source-bindery.section.bnd-eng-dsl.body":"The compact DSL compresses document operations into semantic paths. It is not a second execution engine. Each path resolves to the same canonical node identities, capability checks, previews and mutation plan used by DocQL and the native APIs. The difference is how much context is required to say what should happen.","open-source-bindery.section.bnd-eng-dsl.secondaryKicker":"Resolution is explicit","open-source-bindery.section.bnd-eng-dsl.secondaryBody":"A path may identify a document section by heading, a table by caption, a sheet and cell by address, a chart by name and series, a slide by number or stable identity, a shape by semantic role, or an embedded object by relationship. Ambiguous paths do not select the first textual match. They return the candidates and the fields that distinguish them. Once resolved, the compact identity can be reused across later calls without repeating the selector.","open-source-bindery.section.bnd-eng-dsl.tertiaryKicker":"Compact does not mean informal","open-source-bindery.section.bnd-eng-dsl.tertiaryBody":"The DSL has typed arguments, escaped literals, document-domain values and explicit operation results. It supports variables for previously resolved elements, batches, assertions and dry-run modes. An agent can require that a selector resolve to exactly one chart, that a cell still contain an expected formula or that a paragraph version still match before applying a change. Short syntax therefore carries stronger safeguards than a natural-language instruction alone.","open-source-bindery.section.bnd-eng-dsl.pill.1":"COMPACT","open-source-bindery.section.bnd-eng-dsl.pill.2":"SEMANTIC PATHS","open-source-bindery.section.bnd-eng-dsl.pill.3":"AMBIGUITY RETURNED","open-source-bindery.section.bnd-eng-dsl.footer":"A compact language lets an agent describe the change. MCP lets the agent discover and perform it as a governed tool call.","open-source-bindery.section.bnd-eng-mcp.eyebrow":"Agent-native document work","open-source-bindery.section.bnd-eng-mcp.headlineLead":"The agent sees a resource","open-source-bindery.section.bnd-eng-mcp.headlineAccent":"not a base64 file and a prayer","open-source-bindery.section.bnd-eng-mcp.body":"Bindery's MCP surface exposes open documents, workbooks and presentations as resources with stable session identities. Tools inspect structure, retrieve focused content, resolve selectors, preview edits, apply operations, recalculate workbooks, compare versions and write output. The agent requests only the material required for the current decision.","open-source-bindery.section.bnd-eng-mcp.secondaryKicker":"Context stays bounded","open-source-bindery.section.bnd-eng-mcp.secondaryBody":"A document outline can be listed without its body. A table can be retrieved without every image in the file. A slide can return its elements, notes and relationships without serialising the remaining deck. Changes use resolved element identities and expected versions, so a tool call can fail cleanly when the document changed between inspection and write. The output includes warnings, losses, dirty parts and the written artefact identity.","open-source-bindery.section.bnd-eng-mcp.tertiaryKicker":"Resources can remain open without remaining in context","open-source-bindery.section.bnd-eng-mcp.tertiaryBody":"The server keeps parser state, lazy parts, indexes and dirty-node information behind a session resource. The client receives handles and selected content, not raw internal memory. Sessions can be read-only or writable, carry resource and operation budgets and close without writing. A write requires an explicit target path and returns the completed artefact as a new resource, preserving the input for comparison or rollback.","open-source-bindery.section.bnd-eng-mcp.pill.1":"RESOURCES","open-source-bindery.section.bnd-eng-mcp.pill.2":"TOOLS","open-source-bindery.section.bnd-eng-mcp.pill.3":"PREVIEW","open-source-bindery.section.bnd-eng-mcp.pill.4":"VERSION CHECK","open-source-bindery.section.bnd-eng-mcp.footer":"Agents and people both eventually depend on the workbook's numbers. Those numbers are recalculated from the graph.","open-source-bindery.section.bnd-eng-calc.eyebrow":"Spreadsheet semantics","open-source-bindery.section.bnd-eng-calc.headlineLead":"Cells are nodes","open-source-bindery.section.bnd-eng-calc.headlineAccent":"formulas are edges","open-source-bindery.section.bnd-eng-calc.body":"Bindery parses formulas into typed expressions, resolves references and names, builds the dependency graph and evaluates in dependency order. Stored values remain beside calculated values. A change to one input invalidates the affected closure rather than forcing the whole workbook through an indiscriminate pass. Where a workbook depends on values the current run cannot reach, that is reported rather than guessed.","open-source-bindery.section.bnd-eng-calc.secondaryKicker":"The workbook remains a workbook","open-source-bindery.section.bnd-eng-calc.secondaryBody":"The engine understands sheet-local and workbook names, cross-sheet ranges, tables, arrays, dynamic results, error values, calculation settings and current formula families. Unsupported functions produce explicit spreadsheet errors at the cells that use them and propagate through dependent cells, while unrelated regions continue. Chart sources, conditional formats and other consumers of calculated ranges see the recalculated values through the same workbook state.","open-source-bindery.section.bnd-eng-calc.tertiaryKicker":"Calculation policy is part of the workbook state","open-source-bindery.section.bnd-eng-calc.tertiaryBody":"Volatile functions, iterative calculation, circular references, external links and date systems require declared behaviour. Bindery records the calculation mode and reports when a workbook depends on values not available in the current run. Callers can provide controlled external values, preserve unresolved links, freeze them to known inputs or refuse calculation. A result is therefore accompanied by the conditions under which it was produced.","open-source-bindery.section.bnd-eng-calc.pill.1":"DEPENDENCY GRAPH","open-source-bindery.section.bnd-eng-calc.pill.2":"INCREMENTAL RECALC","open-source-bindery.section.bnd-eng-calc.footer":"Calculation interprets active document logic. Security begins by ensuring active content is never executed merely because it was parsed.","open-source-bindery.section.bnd-eng-safety.eyebrow":"Document input is untrusted input","open-source-bindery.section.bnd-eng-safety.headlineLead":"Parse the active content","open-source-bindery.section.bnd-eng-safety.headlineAccent":"never run it","open-source-bindery.section.bnd-eng-safety.body":"Macros, scripts, OLE payloads, external links and active document features are represented, inventoried and preserved according to policy, but Bindery does not execute them. A workbook macro remains a macro stream. An embedded executable remains an OLE payload. A PDF action remains an action dictionary. Reading the document cannot turn data into authority.","open-source-bindery.section.bnd-eng-safety.secondaryKicker":"Limits and partial results are part of the API","open-source-bindery.section.bnd-eng-safety.secondaryBody":"Container declarations are checked before allocation or traversal. Decompression, object counts, stream sizes, recursion, relationship paths and input sizes are bounded. Cycles are reported with their path. Protected files return a typed protected state until a key is supplied. Recoverable content may be returned with warnings and explicit completeness. Callers can require a complete parse, accept a partial one or inspect the skipped elements before proceeding.","open-source-bindery.section.bnd-eng-safety.tertiaryKicker":"Unknown does not mean discarded","open-source-bindery.section.bnd-eng-safety.tertiaryBody":"When an element is well-bounded but unsupported, Bindery can retain the original stream, package part or record as an opaque extension attached to its parent. The caller can inventory it, preserve it through a compatible write or choose to omit it under an explicit policy. This separates unsupported semantics from unsafe structure and avoids forcing every new vendor extension into the same failure state as corruption.","open-source-bindery.section.bnd-eng-safety.pill.1":"NO EXECUTION","open-source-bindery.section.bnd-eng-safety.pill.2":"BOUNDED","open-source-bindery.section.bnd-eng-safety.pill.3":"PARTIAL IS MARKED","open-source-bindery.section.bnd-eng-safety.footer":"Safety protects the intake. The final engineering question is how the same engine reaches each application surface.","open-source-bindery.section.bnd-eng-surfaces.eyebrow":"How Bindery ships","open-source-bindery.section.bnd-eng-surfaces.headlineLead":"Rust at the centre","open-source-bindery.section.bnd-eng-surfaces.headlineAccent":"the right surface around it","open-source-bindery.section.bnd-eng-surfaces.body":"The Rust crate exposes the complete model, readers, writers and operation engine. Python bindings provide idiomatic document, workbook and presentation objects for automation and data work. The command line executes conversions, statements, comparisons and batch jobs. The MCP server and compact DSL expose bounded document operations to agents.","open-source-bindery.section.bnd-eng-surfaces.secondaryKicker":"Performance follows the work","open-source-bindery.section.bnd-eng-surfaces.secondaryBody":"Format detection reads only enough bytes to classify the container. Package discovery follows relationships and decompresses selected parts. Large XML and PDF streams are processed incrementally. Workbook evaluation follows the dependency closure. Batch parsing can run in parallel, and Python batch operations release the interpreter lock. SIMD and specialised byte paths accelerate scanning, numeric conversion, checksums and format-specific hot loops where the current target provides them. Users of Bindery choose the deployment, document limits, enabled formats, accepted partial states and output policies. Apache-2.0 makes those choices part of their product rather than terms negotiated with a document conversion provider.","open-source-bindery.section.bnd-eng-surfaces.tertiaryKicker":"Capability discovery is consistent","open-source-bindery.section.bnd-eng-surfaces.tertiaryBody":"Every surface can ask which formats, element families, writers, formula functions and operations are present in the current build. The answer is generated from the same capability registry used by the planner. Documentation, MCP tool descriptions, CLI help and Python feature checks can therefore agree with the compiled binary instead of preserving stale counts in separate prose. A build that leaves out a format family or a writer says so through that same registry, so a caller can test for the capability rather than discover its absence at write time. The planner reads the same answers, which is how an unsupported write is rejected at analysis time with the target element and the missing capability named.","open-source-bindery.section.bnd-eng-surfaces.pill.1":"RUST","open-source-bindery.section.bnd-eng-surfaces.pill.2":"PYTHON","open-source-bindery.section.bnd-eng-surfaces.pill.3":"CLI","open-source-bindery.section.bnd-eng-surfaces.pill.4":"MCP","open-source-bindery.section.bnd-eng-surfaces.footer":"Four surfaces, one operation layer, and one document that remains addressable from intake to output.","open-source-bindery.section.bnd-biz-estate.eyebrow":"The estate already exists","open-source-bindery.section.bnd-biz-estate.headlineLead":"Your documents are one estate","open-source-bindery.section.bnd-biz-estate.headlineAccent":"your tools made them separate","open-source-bindery.section.bnd-biz-estate.body":"Contracts live in Word, budgets in Excel, board packs in PowerPoint, technical reports in PDF, collaborative material in OpenDocument and creative work in Pages, Numbers and Keynote. The organisation treats them as one body of work. Its software usually treats them as unrelated products with separate parsers, generators, conversion services and automation scripts. Each of those carries its own owner, its own release cycle and its own list of things it cannot do.","open-source-bindery.section.bnd-biz-estate.secondaryKicker":"What Bindery changes","open-source-bindery.section.bnd-biz-estate.secondaryBody":"Bindery gives every document family one programmable intake and one semantic operation layer. The archive can be searched, generated, edited, compared, recalculated and converted without first assigning a different technical owner to every extension. Old binary documents and current packages enter the same plan, so the difficult twenty per cent of an archive does not remain a manual exception after the easy eighty per cent has moved.","open-source-bindery.section.bnd-biz-estate.tertiaryKicker":"The first useful inventory is operational","open-source-bindery.section.bnd-biz-estate.tertiaryBody":"A useful estate assessment does not only count extensions. It asks which documents must be generated, edited, recalculated, searched, compared, protected or kept visually faithful. Bindery's capability report can place those operations beside each format and expose genuine gaps before a migration or product commitment begins. The business case becomes a matrix of real work rather than a logo wall of formats a vendor claims to recognise.","open-source-bindery.section.bnd-biz-estate.pill.1":"ONE ESTATE","open-source-bindery.section.bnd-biz-estate.pill.2":"ONE PROGRAMMABLE LAYER","open-source-bindery.section.bnd-biz-estate.pill.3":"EVERY ERA","open-source-bindery.section.bnd-biz-estate.footer":"The estate is one problem. The next cost is maintaining every route that currently touches it.","open-source-bindery.section.bnd-biz-stack.eyebrow":"What comes off the supplier list","open-source-bindery.section.bnd-biz-stack.headlineLead":"Parsing is one line item","open-source-bindery.section.bnd-biz-stack.headlineAccent":"document work usually has seven","open-source-bindery.section.bnd-biz-stack.body":"A production document stack commonly has one library for PDF, one for Office parsing, desktop automation for difficult edits, a service for conversion, a template product for generation, spreadsheet code for formulas and a separate integration for agents. Every route has its own API, release cycle, security posture and definition of what a paragraph or table is.","open-source-bindery.section.bnd-biz-stack.secondaryKicker":"The consolidation is semantic","open-source-bindery.section.bnd-biz-stack.secondaryBody":"Replacing six APIs with one thin wrapper would not solve the problem. Bindery replaces the repeated document models beneath them. Reading, generation, in-place editing, extraction, comparison, workbook calculation and agent operations use one set of element types, capabilities and warnings. An issue fixed in chart handling benefits ingestion, generation and MCP editing at once because there is only one chart object to fix.","open-source-bindery.section.bnd-biz-stack.tertiaryKicker":"One issue can be fixed once","open-source-bindery.section.bnd-biz-stack.tertiaryBody":"A chart-label bug in a fragmented stack may exist separately in parsing, generation, conversion and agent editing. In Bindery the chart model and writer contract are shared. The fix is tested through every surface against the same semantic object. This reduces duplicated defects as well as duplicated licences, and it makes ownership clear when a document feature behaves incorrectly.","open-source-bindery.section.bnd-biz-stack.pill.1":"ONE MODEL","open-source-bindery.section.bnd-biz-stack.pill.2":"ONE CAPABILITY SYSTEM","open-source-bindery.section.bnd-biz-stack.pill.3":"ONE RELEASE","open-source-bindery.section.bnd-biz-stack.footer":"Consolidation lowers operating cost. Generation is where it starts creating new value.","open-source-bindery.section.bnd-biz-generate.eyebrow":"Document generation","open-source-bindery.section.bnd-biz-generate.headlineLead":"One report definition","open-source-bindery.section.bnd-biz-generate.headlineAccent":"native output for every audience","open-source-bindery.section.bnd-biz-generate.body":"A board pack, customer report, regulatory submission and technical appendix often contain the same facts but require different document forms. Today that becomes separate templates, separate rendering code and separate corrections. Bindery builds each output from one structured document model, then lets the target writer encode it as an editable Office file, an OpenDocument file, a fixed PDF, HTML, Markdown, LaTeX or another supported destination.","open-source-bindery.section.bnd-biz-generate.secondaryKicker":"Native output rather than a screenshot","open-source-bindery.section.bnd-biz-generate.secondaryBody":"Tables remain tables. Workbook formulas remain formulas. Charts remain connected to their source data. Equations remain editable. Presentation output uses masters and layouts. Word-processing output uses sections, styles, fields and references. The result opens in the software the recipient already uses and can continue to be edited there, rather than arriving as a picture of a report produced somewhere else.","open-source-bindery.section.bnd-biz-generate.tertiaryKicker":"The same model supports localisation and variants","open-source-bindery.section.bnd-biz-generate.tertiaryBody":"Language, regional formatting, disclosure blocks, brand systems and audience-specific sections can be expressed as document-model choices rather than copied templates. A European report can use local date, number and delimiter conventions while retaining the same approved content logic. Variants remain comparable because they share element identities and generation provenance even where the visible pages differ.","open-source-bindery.section.bnd-biz-generate.pill.1":"ONE MODEL","open-source-bindery.section.bnd-biz-generate.pill.2":"NATIVE OUTPUT","open-source-bindery.section.bnd-biz-generate.pill.3":"EDITABLE","open-source-bindery.section.bnd-biz-generate.footer":"Generating the first version is valuable. Most business documents spend longer being changed than being created.","open-source-bindery.section.bnd-biz-edit.eyebrow":"The cost of a small change","open-source-bindery.section.bnd-biz-edit.headlineLead":"Change the clause","open-source-bindery.section.bnd-biz-edit.headlineAccent":"not the document around it","open-source-bindery.section.bnd-biz-edit.body":"A small automated change often causes a full document rewrite. The visible sentence is right, but comments disappear, fields are resolved, unknown extensions are dropped, charts become images or styles are normalised. The file still opens, so the loss is discovered only when the next person tries to work on it.","open-source-bindery.section.bnd-biz-edit.secondaryKicker":"Bindery changes the semantic target","open-source-bindery.section.bnd-biz-edit.secondaryBody":"A Bindery operation resolves the exact paragraph, cell, chart series, slide object, note, revision or embedded relationship being changed. It previews the target, checks what the source format can write and marks the minimum native parts as dirty. Everything else remains the document it already was. That makes automated editing suitable for living documents rather than only for disposable conversions.","open-source-bindery.section.bnd-biz-edit.tertiaryKicker":"Review becomes part of automation","open-source-bindery.section.bnd-biz-edit.tertiaryBody":"A preview can be stored as a change plan listing the source version, selectors, resolved elements, before-and-after values, expected writer capabilities and affected native parts. A person or policy engine can approve that plan before application. The applied result can then be compared against the plan, which gives bulk document automation a review surface closer to a code change than to an opaque macro.","open-source-bindery.section.bnd-biz-edit.pill.1":"PREVIEW FIRST","open-source-bindery.section.bnd-biz-edit.pill.2":"MINIMAL DIFF","open-source-bindery.section.bnd-biz-edit.pill.3":"ROUND TRIP","open-source-bindery.section.bnd-biz-edit.footer":"A small change should stay small. The cost of ignoring that appears across the whole document programme.","open-source-bindery.section.bnd-biz-agents.eyebrow":"Agent-driven document operations","open-source-bindery.section.bnd-biz-agents.headlineLead":"Give the agent an element","open-source-bindery.section.bnd-biz-agents.headlineAccent":"not the whole file as text","open-source-bindery.section.bnd-biz-agents.body":"AI document workflows often begin by extracting all text and end by recreating a file from scratch. That works for summarisation and fails for precise work. The agent cannot see which paragraph owns a comment, which chart uses a range, which slide object belongs to a master or which revision changed a clause. It can describe the desired result but cannot safely modify the original.","open-source-bindery.section.bnd-biz-agents.secondaryKicker":"Bindery supplies a bounded working surface","open-source-bindery.section.bnd-biz-agents.secondaryBody":"Through MCP and the compact DSL, an agent can list the structure, fetch only the relevant element and its local context, resolve an exact target, request a preview and apply a version-checked change. The agent uses semantic paths such as a heading, table caption, cell address, chart series or slide identity. The operation returns a structural comparison, warnings and the output identity. Context use stays small and the change remains inspectable.","open-source-bindery.section.bnd-biz-agents.tertiaryKicker":"The agent can ask the document what it supports","open-source-bindery.section.bnd-biz-agents.tertiaryBody":"Before proposing a change, the agent can inspect format and element capabilities. It can learn that a source is read-only, that a target writer preserves charts but renders a particular animation or that a workbook contains protected cells. This makes refusal a useful planning result and prevents the agent from discovering format limitations only after generating a replacement file.","open-source-bindery.section.bnd-biz-agents.pill.1":"MCP","open-source-bindery.section.bnd-biz-agents.pill.2":"TOKEN-EFFICIENT DSL","open-source-bindery.section.bnd-biz-agents.pill.3":"EXACT ELEMENTS","open-source-bindery.section.bnd-biz-agents.footer":"Agents create speed. Migration determines whether the estate remains faithful after that speed is applied at scale.","open-source-bindery.section.bnd-biz-migration.eyebrow":"Moving an estate","open-source-bindery.section.bnd-biz-migration.headlineLead":"Every conversion says","open-source-bindery.section.bnd-biz-migration.headlineAccent":"what survived and what changed","open-source-bindery.section.bnd-biz-migration.body":"Document conversion is never only an input and an output extension. A destination may lack an equivalent for a source feature, may support it only as a rendered object or may require a different structural representation. Silent conversion hides those decisions inside the file.","open-source-bindery.section.bnd-biz-migration.secondaryKicker":"The fidelity ledger travels with the run","open-source-bindery.section.bnd-biz-migration.secondaryBody":"Bindery classifies each significant element as preserved, transformed, approximated, rendered, omitted or unsupported. The result names the source identity, target identity, conversion rule and warning. A live chart becoming a static vector in PDF is recorded as an intentional rendering. A SmartArt layout becoming grouped shapes is recorded as a transformation. An unsupported animation is named rather than disappearing. Migration teams can therefore route only the real exceptions to people.","open-source-bindery.section.bnd-biz-migration.tertiaryKicker":"Acceptance criteria can be machine-readable","open-source-bindery.section.bnd-biz-migration.tertiaryBody":"A migration can require that all equations remain editable, all comments retain anchors, every chart preserve its data binding and no OLE payload be omitted. Bindery evaluates the output against those requirements and classifies the file accordingly. Teams can approve high-volume files automatically and reserve human review for outputs whose ledger contains a prohibited transformation or unsupported element.","open-source-bindery.section.bnd-biz-migration.pill.1":"PRESERVED","open-source-bindery.section.bnd-biz-migration.pill.2":"TRANSFORMED","open-source-bindery.section.bnd-biz-migration.pill.3":"LOSS NAMED","open-source-bindery.section.bnd-biz-migration.footer":"A faithful migration preserves the document. A workbook migration also has to preserve what the formulas mean today.","open-source-bindery.section.bnd-biz-workbooks.eyebrow":"Spreadsheet assurance","open-source-bindery.section.bnd-biz-workbooks.headlineLead":"The workbook has two answers","open-source-bindery.section.bnd-biz-workbooks.headlineAccent":"you see both","open-source-bindery.section.bnd-biz-workbooks.body":"Formula cells store the expression and a cached value. Those values can differ because calculation was disabled, an external link was unavailable, a range changed or a user pasted a value over a formula. A migration that merely preserves the cache can faithfully move a stale answer into a new format.","open-source-bindery.section.bnd-biz-workbooks.secondaryKicker":"Calculation becomes part of intake","open-source-bindery.section.bnd-biz-workbooks.secondaryBody":"Bindery builds the dependency graph, evaluates the workbook and compares stored with computed values. Differences are returned with sheet, cell, formula, old value, new value and dependency context. A changed assumption can recalculate only its affected closure. Unsupported functions remain typed spreadsheet errors rather than stopping the entire batch. Finance and audit teams receive a short list of actual discrepancies instead of manually opening every workbook.","open-source-bindery.section.bnd-biz-workbooks.tertiaryKicker":"The review can be repeated after later changes","open-source-bindery.section.bnd-biz-workbooks.tertiaryBody":"The dependency report and calculation conditions can be archived with the workbook. When another input changes, the same review can run again and show which previous discrepancies closed, which remain and which new cells entered the affected closure. This turns spreadsheet assurance from a one-time manual inspection into a repeatable document operation.","open-source-bindery.section.bnd-biz-workbooks.pill.1":"STORED VALUE","open-source-bindery.section.bnd-biz-workbooks.pill.2":"COMPUTED VALUE","open-source-bindery.section.bnd-biz-workbooks.pill.3":"DEPENDENCIES","open-source-bindery.section.bnd-biz-workbooks.footer":"Workbooks carry active logic. All document families may carry sensitive or executable content, so locality and policy remain central.","open-source-bindery.section.bnd-biz-control.eyebrow":"Where documents are processed","open-source-bindery.section.bnd-biz-control.headlineLead":"Files stay on your systems","open-source-bindery.section.bnd-biz-control.headlineAccent":"active content stays data","open-source-bindery.section.bnd-biz-control.body":"Bindery runs in the application, service, workstation or air-gapped environment that already holds the file. There is no hosted conversion path, no per-document upload and no external office application required for normal processing. The organisation chooses where inputs, temporary material and outputs reside. The same holds on a workstation with no network at all, because normal processing never reaches for one.","open-source-bindery.section.bnd-biz-control.secondaryKicker":"Reading is not execution","open-source-bindery.section.bnd-biz-control.secondaryBody":"Macros, scripts, OLE payloads, external links and PDF actions can be inventoried and governed without being run. Protected files are identified before content access and opened only when the caller supplies the required key. Hostile container declarations are bounded before allocation or decompression. Complete, partial, protected and refused states are visible to the workflow, so an incomplete document cannot quietly enter a process as though it were complete.","open-source-bindery.section.bnd-biz-control.tertiaryKicker":"Deployment can match the document boundary","open-source-bindery.section.bnd-biz-control.tertiaryBody":"The same component can run inside a desktop product, an internal service, a controlled upload pipeline or an air-gapped archive workstation. Format families and write capabilities can be excluded from builds that do not need them. The organisation therefore controls not only where the file is processed but also which document operations exist in that deployment.","open-source-bindery.section.bnd-biz-control.pill.1":"SELF-HOSTED","open-source-bindery.section.bnd-biz-control.pill.2":"NOTHING EXECUTED","open-source-bindery.section.bnd-biz-control.pill.3":"TYPED STATES","open-source-bindery.section.bnd-biz-control.footer":"Control makes the operation acceptable. Scale determines whether it remains practical across the estate.","open-source-bindery.section.bnd-biz-operations.eyebrow":"Operational document intelligence","open-source-bindery.section.bnd-biz-operations.headlineLead":"Ask one question","open-source-bindery.section.bnd-biz-operations.headlineAccent":"across every document family","open-source-bindery.section.bnd-biz-operations.body":"Archive work is rarely only conversion. Teams need every contract containing a liability phrase, every workbook where a total changed after recalculation, every slide with an outdated product name, every document carrying comments or personal metadata, and every embedded object in a release package.","open-source-bindery.section.bnd-biz-operations.secondaryKicker":"DocQL and the batch engine turn those into jobs","open-source-bindery.section.bnd-biz-operations.secondaryBody":"Queries operate over semantic collections rather than extension-specific parsers. Results retain file, element type, structural path, source identity and completeness. Comparisons group added, removed, modified and unchanged elements. Extracts can write media, tables, formulas, comments, metadata, structure or styles to files, folders or streaming results. Interpretive reports can explain chart sources, workbook dependency paths, document metadata and unsupported features without opening desktop software.","open-source-bindery.section.bnd-biz-operations.tertiaryKicker":"Search results remain document-aware","open-source-bindery.section.bnd-biz-operations.tertiaryBody":"A phrase found in a deleted revision is different from the same phrase in visible body text. A number in speaker notes is different from a chart label. A formula result is different from a typed constant. Bindery carries those distinctions into search and extraction results, allowing compliance, discovery and knowledge workflows to filter by the role the content plays rather than only by the characters it contains. Those distinctions survive extraction as well, so a result set handed to a reviewer still says which file each hit came from and which part of the document it belonged to.","open-source-bindery.section.bnd-biz-operations.pill.1":"ARCHIVE QUERY","open-source-bindery.section.bnd-biz-operations.pill.2":"STRUCTURAL COMPARE","open-source-bindery.section.bnd-biz-operations.pill.3":"EXPLAINED","open-source-bindery.section.bnd-biz-operations.footer":"The operating model is now clear. Adoption should be a technical fit test, not a commercial negotiation.","open-source-bindery.section.bnd-biz-adopt.eyebrow":"Adopting Bindery","open-source-bindery.section.bnd-biz-adopt.headlineLead":"Every surface is the same engine","open-source-bindery.section.bnd-biz-adopt.headlineAccent":"so the pilot is the product","open-source-bindery.section.bnd-biz-adopt.body":"Bindery publishes under Apache-2.0 in the seventh round of the foundation release programme. Product teams use the Rust crate. Automation and data teams use Python. Operations use the command line and DocQL. Agent systems use MCP and the compact DSL. All of them exercise the same readers, writers, document model and operation engine, so nothing is reimplemented per surface and a fix made once is a fix everywhere.","open-source-bindery.section.bnd-biz-adopt.secondaryKicker":"Evaluate with your own difficult files","open-source-bindery.section.bnd-biz-adopt.secondaryBody":"The useful proof is not a polished sample document. It is the oldest contract, the workbook with custom formulas, the deck with SmartArt and OLE, the Pages file from a former design team and the protected package in the archive. Open them, inspect the completeness report, perform one exact edit, generate one target and compare the result. There is no seat count, conversion allowance or per-document price to model before that test can begin.","open-source-bindery.section.bnd-biz-adopt.tertiaryKicker":"The evaluation build is the production engine","open-source-bindery.section.bnd-biz-adopt.tertiaryBody":"There is no reduced parser used for a pilot and a different hosted implementation used later. The same engine can be embedded in the product or deployment that was evaluated. The remaining decisions are operational: which capabilities to compile, which limits to configure, which surfaces to expose and which document acceptance policies to enforce. Those are configuration decisions inside your own build rather than terms to agree with anyone before the work can start.","open-source-bindery.section.bnd-biz-adopt.quaternaryKicker":"What a proof of value should measure","open-source-bindery.section.bnd-biz-adopt.quaternaryBody":"A useful evaluation records open success, completeness, feature inventory, exact edit fidelity, recalculation differences, output warnings and round-trip comparison on representative documents. It should include hostile, protected and mislabelled files as well as polished examples. The resulting capability matrix becomes the production acceptance policy, so the proof of value produces an operating artefact rather than a demonstration that is discarded after procurement.","open-source-bindery.section.bnd-biz-adopt.pill.1":"APACHE-2.0","open-source-bindery.section.bnd-biz-adopt.pill.2":"RUST","open-source-bindery.section.bnd-biz-adopt.pill.3":"PYTHON","open-source-bindery.section.bnd-biz-adopt.pill.4":"CLI","open-source-bindery.section.bnd-biz-adopt.pill.5":"MCP","open-source-bindery.section.bnd-biz-adopt.footer":"The business decision is one operation layer. For an ordinary person, the benefit is simpler: the document keeps being a document.","open-source-bindery.section.bnd-con-document.eyebrow":"In plain words","open-source-bindery.section.bnd-con-document.headlineLead":"The words are only","open-source-bindery.section.bnd-con-document.headlineAccent":"one part of the document","open-source-bindery.section.bnd-con-document.body":"A letter has paragraphs and footnotes. A budget has formulas and charts. A presentation has slides, notes and pictures arranged in a deliberate order. Bindery opens the file and keeps those parts as the things they are. It does not pour everything into one long stream of text and ask another program to guess which words used to belong together.","open-source-bindery.section.bnd-con-document.secondaryKicker":"Why that changes what software can do","open-source-bindery.section.bnd-con-document.secondaryBody":"When the structure survives, the program using Bindery can answer useful questions. It can tell which sentence is a heading, which number is the total, which cells produced it, which chart is showing those cells, which note belongs to a slide and which comment belongs to a clause. It can also change one of those things without redrawing the whole file around it.","open-source-bindery.section.bnd-con-document.tertiaryKicker":"The parts help people with different needs","open-source-bindery.section.bnd-con-document.tertiaryBody":"A screen reader needs reading order and alternative text. A person reviewing a contract needs comments and revisions. Someone checking a spreadsheet needs formulas. A presenter needs speaker notes. Keeping these parts separate is not only a technical detail. It is what allows the same document to remain useful to the people who rely on different parts of it.","open-source-bindery.section.bnd-con-document.pill.1":"WORDS","open-source-bindery.section.bnd-con-document.pill.2":"TABLES","open-source-bindery.section.bnd-con-document.pill.3":"FORMULAS","open-source-bindery.section.bnd-con-document.pill.4":"SLIDES","open-source-bindery.section.bnd-con-document.footer":"Keeping the parts makes an old file useful. First, the file still has to open.","open-source-bindery.section.bnd-con-formats.eyebrow":"The files people actually keep","open-source-bindery.section.bnd-con-formats.headlineLead":"A document from 1998","open-source-bindery.section.bnd-con-formats.headlineAccent":"and one from this morning","open-source-bindery.section.bnd-con-formats.body":"Old Word, Excel and PowerPoint files were built differently from the ones created today. Apple Pages, Numbers and Keynote are different again. OpenDocument uses its own formats. PDF is built from fixed pages. Bindery knows each of those families and gives the program using it one way to open them. That one way is the same call for every family, so a program does not need a separate code path for each era of file it meets.","open-source-bindery.section.bnd-con-formats.secondaryKicker":"The file name does not decide","open-source-bindery.section.bnd-con-formats.secondaryBody":"A file can be renamed, lose its ending or be exported with the wrong one. Bindery looks inside the file to find out what it is. A spreadsheet called a document still opens as a spreadsheet. A presentation with no ending still opens as a presentation. This is both convenient and careful: the person who named the file does not get to decide how the computer treats its contents.","open-source-bindery.section.bnd-con-formats.tertiaryKicker":"The old file can leave in a current form","open-source-bindery.section.bnd-con-formats.tertiaryBody":"Once opened, the document can be saved in a format that is easier to keep using. The important parts can move with it, and anything the new format cannot hold can be named rather than silently lost. This makes the old copy readable now and gives the person a practical copy for the years ahead. Whatever could not be carried across is listed by name, so nothing disappears quietly between the old file and the new one.","open-source-bindery.section.bnd-con-formats.pill.1":"OLD OFFICE","open-source-bindery.section.bnd-con-formats.pill.2":"NEW OFFICE","open-source-bindery.section.bnd-con-formats.pill.3":"IWORK","open-source-bindery.section.bnd-con-formats.pill.4":"OPEN DOCUMENT","open-source-bindery.section.bnd-con-formats.footer":"Opening the file keeps the past available. Editing it safely is what lets the document continue into the future.","open-source-bindery.section.bnd-con-edit.eyebrow":"Careful editing","open-source-bindery.section.bnd-con-edit.headlineLead":"Change one sentence","open-source-bindery.section.bnd-con-edit.headlineAccent":"without rebuilding every page","open-source-bindery.section.bnd-con-edit.body":"A program may need to update a name in a contract, a number in a budget or a chart in a presentation. The careless way is to rebuild the whole file and hope everything else comes back. Bindery finds the exact part, shows what it is about to change and keeps the rest of the document where it was.","open-source-bindery.section.bnd-con-edit.secondaryKicker":"The hidden parts count too","open-source-bindery.section.bnd-con-edit.secondaryBody":"The rest includes things a person may not see at first glance: comments, previous edits, footnotes, links, formulas, slide notes, animations, diagrams and objects embedded inside the file. Those should not disappear because one sentence changed. Bindery keeps track of which part was touched and writes the smallest part of the file needed to make that change real.","open-source-bindery.section.bnd-con-edit.tertiaryKicker":"The program can show the change first","open-source-bindery.section.bnd-con-edit.tertiaryBody":"Before writing, software using Bindery can present the exact sentence, cell, chart or note it found and show the proposed replacement. When more than one thing matches, it can ask rather than guessing. That makes automated document work feel less like handing the whole file to a black box and more like approving a visible edit.","open-source-bindery.section.bnd-con-edit.pill.1":"EXACT PART","open-source-bindery.section.bnd-con-edit.pill.2":"PREVIEW","open-source-bindery.section.bnd-con-edit.pill.3":"REST KEPT","open-source-bindery.section.bnd-con-edit.footer":"Text can be checked by reading it. Spreadsheet totals need the sums to be worked again.","open-source-bindery.section.bnd-con-workbook.eyebrow":"Before relying on a total","open-source-bindery.section.bnd-con-workbook.headlineLead":"The saved answer","open-source-bindery.section.bnd-con-workbook.headlineAccent":"is not always the current one","open-source-bindery.section.bnd-con-workbook.body":"A spreadsheet saves the formula and the answer the last program worked out. If somebody changed a row without recalculating, turned calculation off or pasted a number over a formula, the answer at the bottom may be old even though the sheet looks normal. Bindery works the formulas again and keeps both answers so the difference can be seen.","open-source-bindery.section.bnd-con-workbook.secondaryKicker":"It also shows where the difference began","open-source-bindery.section.bnd-con-workbook.secondaryBody":"The useful result is not only that two totals differ. Bindery follows the chain of cells and names the input or formula that changed the answer. Charts using those cells receive the new values too. A function it does not understand marks the cells that depend on it, while the rest of the workbook continues to be calculated.","open-source-bindery.section.bnd-con-workbook.tertiaryKicker":"One broken formula need not hide the rest","open-source-bindery.section.bnd-con-workbook.tertiaryBody":"A workbook can contain a special function from another system. Bindery can mark that cell and the totals depending on it while still calculating the parts that do not depend on it. The person receives a useful sheet and a clear place to investigate instead of a single message saying the entire file failed.","open-source-bindery.section.bnd-con-workbook.pill.1":"FORMULA","open-source-bindery.section.bnd-con-workbook.pill.2":"OLD ANSWER","open-source-bindery.section.bnd-con-workbook.pill.3":"CURRENT ANSWER","open-source-bindery.section.bnd-con-workbook.footer":"Numbers can be recalculated. Charts, diagrams and equations have to remain more than pictures if they are to be edited later.","open-source-bindery.section.bnd-con-visuals.eyebrow":"What usually becomes a picture","open-source-bindery.section.bnd-con-visuals.headlineLead":"A chart keeps its numbers","open-source-bindery.section.bnd-con-visuals.headlineAccent":"a diagram keeps its parts","open-source-bindery.section.bnd-con-visuals.body":"When documents are converted or processed badly, charts and diagrams often become pictures. They may look right, but the values, labels and relationships behind them are gone. Bindery keeps a chart connected to its data and keeps SmartArt as a set of connected ideas rather than a screenshot.","open-source-bindery.section.bnd-con-visuals.secondaryKicker":"The same is true for equations and embedded files","open-source-bindery.section.bnd-con-visuals.secondaryBody":"An equation remains something that can be changed, searched or moved into LaTeX. An embedded spreadsheet remains a file object with a preview, not only the preview image. Shapes keep their order and connections. This is why a document can still be worked on after another program has opened or changed it through Bindery.","open-source-bindery.section.bnd-con-visuals.tertiaryKicker":"Meaning survives conversion better than pixels","open-source-bindery.section.bnd-con-visuals.tertiaryBody":"A chart moved into another editable document can keep its series and labels even when the new program stores them differently. A diagram can keep its steps and connections. Where the destination can only keep the appearance, the result can say that the object became a picture. The person then knows what can still be edited and what cannot.","open-source-bindery.section.bnd-con-visuals.pill.1":"LIVE CHARTS","open-source-bindery.section.bnd-con-visuals.pill.2":"CONNECTED DIAGRAMS","open-source-bindery.section.bnd-con-visuals.pill.3":"EDITABLE","open-source-bindery.section.bnd-con-visuals.footer":"Keeping the document useful is one promise. Keeping the file on your own computer is another.","open-source-bindery.section.bnd-con-local.eyebrow":"Where the work happens","open-source-bindery.section.bnd-con-local.headlineLead":"No upload is needed","open-source-bindery.section.bnd-con-local.headlineAccent":"to open or change the file","open-source-bindery.section.bnd-con-local.body":"Bindery is software inside another program. It reads the file on the computer or system already holding it. There is no conversion website in the middle, no account to make and no charge each time another document is opened. It can work on a disconnected machine, because nothing about opening a document depends on a service being reachable.","open-source-bindery.section.bnd-con-local.secondaryKicker":"Reading does not run what is inside","open-source-bindery.section.bnd-con-local.secondaryBody":"Documents can contain macros, scripts, links and embedded objects. Bindery can identify and preserve those things, but it does not execute them merely because the file was opened. Files that claim to be enormous when unpacked, point at themselves in circles or contain broken structures are stopped or returned with clear warnings rather than being trusted.","open-source-bindery.section.bnd-con-local.tertiaryKicker":"The program using Bindery remains responsible","open-source-bindery.section.bnd-con-local.tertiaryBody":"Bindery does not decide where another application later stores or sends its output. What it guarantees about its own work is simpler: opening, understanding, calculating and writing the document require no remote Bindery service. The application can keep the entire operation inside the boundary its operator chose. Bindery publishes under the Apache-2.0 licence in the seventh round of the foundation release programme. Once it publishes, you can inspect what it does to a file.","open-source-bindery.section.bnd-con-local.pill.1":"LOCAL","open-source-bindery.section.bnd-con-local.pill.2":"OFFLINE","open-source-bindery.section.bnd-con-local.pill.3":"NO ACTIVE CODE RUN","open-source-bindery.section.bnd-con-local.footer":"The result is simple: the format may be old or unusual, but the document can remain usable.","open-source-bindery.banner.bnd-biz-cost.eyebrow":"Where document programmes become permanent","open-source-bindery.banner.bnd-biz-cost.lead":"One file is easy.","open-source-bindery.banner.bnd-biz-cost.leadAccent":"The estate sets the bill.","open-source-bindery.banner.bnd-biz-cost.paragraph.1":"The first document parser is rarely expensive. The cost arrives later: the second format, generation, edits, protected files, spreadsheet calculation, a new agent workflow, another migration, a fidelity bug in charts, and a release process that has to test the same business operation through six separate document models.","open-source-bindery.banner.bnd-biz-cost.paragraph.2":"Bindery makes the unit of ownership the document operation rather than the format. Open, query, change, generate, compare, calculate, interpret and write are implemented once above native readers and writers. New format support enters beneath that layer. New automation enters above it. Neither requires the other side to be rebuilt.","open-source-bindery.banner.bnd-biz-cost.paragraph.3":"The same logic applies to teams. Document specialists can improve a format connector while product teams build workflows against stable semantic operations. Automation teams do not need to become experts in OLE sector chains or OOXML relationships. Format expertise remains concentrated where it belongs, and business logic stops carrying it from project to project.","open-source-bindery.banner.bnd-biz-cost.panelHeader":"What normally multiplies","open-source-bindery.banner.bnd-biz-cost.panelTag":"collapsed into one operation layer","open-source-bindery.banner.bnd-biz-cost.check.1.label":"formats","open-source-bindery.banner.bnd-biz-cost.check.1.marker":"one business API","open-source-bindery.banner.bnd-biz-cost.check.2.label":"read and write","open-source-bindery.banner.bnd-biz-cost.check.2.marker":"one model","open-source-bindery.banner.bnd-biz-cost.check.3.label":"generation and editing","open-source-bindery.banner.bnd-biz-cost.check.3.marker":"one model","open-source-bindery.banner.bnd-biz-cost.check.4.label":"people and agents","open-source-bindery.banner.bnd-biz-cost.check.4.marker":"one model","open-source-bindery.banner.bnd-biz-cost.check.5.label":"formula calculation","open-source-bindery.banner.bnd-biz-cost.check.5.marker":"one workbook state","open-source-bindery.banner.bnd-biz-cost.check.6.label":"warnings and provenance","open-source-bindery.banner.bnd-biz-cost.check.6.marker":"one result contract","open-source-bindery.banner.bnd-biz-cost.verdict.label":"the programme stops growing a new architecture for every document request","open-source-bindery.banner.bnd-biz-cost.verdict.marker":"one layer","open-source-bindery.banner.bnd-biz-cost.footline":"native format code remains specialised; business operations stop being duplicated","open-source-bindery.banner.bnd-con-close.eyebrow":"The whole promise","open-source-bindery.banner.bnd-con-close.lead":"Open the file.","open-source-bindery.banner.bnd-con-close.leadAccent":"Keep the document.","open-source-bindery.banner.bnd-con-close.paragraph.1":"Bindery lets other software open Word, Excel, PowerPoint, OpenDocument, iWork, Rich Text, PDF and publishing formats without treating every one as a separate world. Old and new files enter through the right reader, but what comes back still has paragraphs, sheets, slides, formulas, charts, diagrams, comments, notes and embedded material.","open-source-bindery.banner.bnd-con-close.paragraph.2":"That structure is why the document can be searched, explained, recalculated, changed or written in another useful form. The file stays on the machine that already holds it. Active content stays data. One requested edit does not have to erase everything around it.","open-source-bindery.banner.bnd-con-close.paragraph.3":"The benefit appears inside other software rather than as another office application. A records system can open an old contract, a finance tool can recalculate a workbook, a publishing tool can generate a report and an assistant can update one slide, all while the person continues working with familiar documents.","open-source-bindery.banner.bnd-con-close.panelHeader":"What remains","open-source-bindery.banner.bnd-con-close.panelTag":"after the format is opened","open-source-bindery.banner.bnd-con-close.check.1.label":"the words","open-source-bindery.banner.bnd-con-close.check.1.marker":"in their place","open-source-bindery.banner.bnd-con-close.check.2.label":"the tables","open-source-bindery.banner.bnd-con-close.check.2.marker":"with rows and columns","open-source-bindery.banner.bnd-con-close.check.3.label":"the sums","open-source-bindery.banner.bnd-con-close.check.3.marker":"with their formulas","open-source-bindery.banner.bnd-con-close.check.4.label":"the charts","open-source-bindery.banner.bnd-con-close.check.4.marker":"with their data","open-source-bindery.banner.bnd-con-close.check.5.label":"the diagrams","open-source-bindery.banner.bnd-con-close.check.5.marker":"with their connections","open-source-bindery.banner.bnd-con-close.check.6.label":"the notes and comments","open-source-bindery.banner.bnd-con-close.check.6.marker":"with their targets","open-source-bindery.banner.bnd-con-close.check.7.label":"the embedded material","open-source-bindery.banner.bnd-con-close.check.7.marker":"as real objects","open-source-bindery.banner.bnd-con-close.check.8.label":"the document","open-source-bindery.banner.bnd-con-close.check.8.marker":"still usable","open-source-bindery.banner.bnd-con-close.verdict.label":"the program does not merely read the file; it keeps the document alive","open-source-bindery.banner.bnd-con-close.verdict.marker":"kept","open-source-bindery.banner.bnd-con-close.footline":"documents made programmable, on the machine that already owns them","oss-bindery-active-inventory.chrome.path":"Active content","oss-bindery-active-inventory.chrome.status":"nothing executed","oss-bindery-active-inventory.chrome.meta":"illustrative","oss-bindery-active-inventory.workbook.file":"budget-2026.xlsm","oss-bindery-active-inventory.workbook.kind":"macro-enabled workbook, opened as an inventory","oss-bindery-active-inventory.workbook.content.head":"workbook content","oss-bindery-active-inventory.workbook.content.worksheets.name":"worksheets","oss-bindery-active-inventory.workbook.content.worksheets.count":"12","oss-bindery-active-inventory.workbook.content.formulas.name":"formulas","oss-bindery-active-inventory.workbook.content.formulas.count":"1,840","oss-bindery-active-inventory.workbook.content.charts.name":"charts","oss-bindery-active-inventory.workbook.content.charts.count":"3","oss-bindery-active-inventory.workbook.content.available":"available","oss-bindery-active-inventory.workbook.policy.head":"active content policy","oss-bindery-active-inventory.workbook.policy.vba.name":"VBA project","oss-bindery-active-inventory.workbook.policy.vba.count":"1","oss-bindery-active-inventory.workbook.policy.ole.name":"OLE objects","oss-bindery-active-inventory.workbook.policy.ole.count":"2","oss-bindery-active-inventory.workbook.policy.links.name":"external links","oss-bindery-active-inventory.workbook.policy.links.count":"3","oss-bindery-active-inventory.workbook.policy.signature.name":"digital signature","oss-bindery-active-inventory.workbook.policy.signature.count":"1","oss-bindery-active-inventory.workbook.policy.chips.parsed":"parsed","oss-bindery-active-inventory.workbook.policy.chips.preserved":"preserved","oss-bindery-active-inventory.workbook.policy.chips.blocked":"blocked from execution","oss-bindery-active-inventory.zip.file":"export-bundle.zip","oss-bindery-active-inventory.zip.verdict":"stopped before inflation","oss-bindery-active-inventory.zip.member.k":"member","oss-bindery-active-inventory.zip.member.v":"payload.bin","oss-bindery-active-inventory.zip.declared.k":"declared","oss-bindery-active-inventory.zip.declared.v":"4.2 GB","oss-bindery-active-inventory.zip.ceiling.k":"ceiling","oss-bindery-active-inventory.zip.ceiling.v":"2.0 GB","oss-bindery-active-inventory.partial.file":"ops-model.xlsx","oss-bindery-active-inventory.partial.state":"partial","oss-bindery-active-inventory.partial.warning":"one malformed drawing skipped at Sheet4, drawing rId7","oss-bindery-active-inventory.partial.note":"The rest of the workbook remains accessible.","oss-bindery-active-inventory.band.left":"active content is parsed and preserved, never run","oss-bindery-active-inventory.band.right":"partial is marked, not hidden","oss-bindery-adoption-facts.kicker.label":"Decision","oss-bindery-adoption-facts.kicker.sub":"the facts procurement and engineering need","oss-bindery-adoption-facts.tag":"ADOPT","oss-bindery-adoption-facts.fact.licence.fact":"Licence","oss-bindery-adoption-facts.fact.licence.name":"Apache-2.0","oss-bindery-adoption-facts.fact.licence.body":"Use, modify, embed and distribute under a familiar permissive licence.","oss-bindery-adoption-facts.fact.deployment.fact":"Deployment","oss-bindery-adoption-facts.fact.deployment.name":"Local","oss-bindery-adoption-facts.fact.deployment.body":"No hosted processor, office application or per-document service required.","oss-bindery-adoption-facts.fact.surfaces.fact":"Surfaces","oss-bindery-adoption-facts.fact.surfaces.name":"Several, one engine","oss-bindery-adoption-facts.fact.surfaces.body":"Rust, Python, CLI, DocQL, compact DSL and MCP.","oss-bindery-adoption-facts.fact.scope.fact":"Scope","oss-bindery-adoption-facts.fact.scope.name":"Build-selected","oss-bindery-adoption-facts.fact.scope.body":"Include the format and operation families the deployment actually needs.","oss-bindery-adoption-facts.footline.left":"the pilot uses your files","oss-bindery-adoption-facts.footline.right":"the production component is the same engine","oss-bindery-adoption-set.chrome.path":"Difficult files","oss-bindery-adoption-set.chrome.status":"proof of value","oss-bindery-adoption-set.chrome.meta":"illustrative","oss-bindery-adoption-set.column.file":"difficult file","oss-bindery-adoption-set.test.open":"open and completeness","oss-bindery-adoption-set.test.query":"focused query","oss-bindery-adoption-set.test.edit":"exact edit with preview","oss-bindery-adoption-set.test.write":"native write and compare","oss-bindery-adoption-set.legend.supported":"supported","oss-bindery-adoption-set.legend.warning":"warning","oss-bindery-adoption-set.legend.refused":"refused","oss-bindery-adoption-set.file.doc.file":"letter-1998.doc","oss-bindery-adoption-set.file.doc.note":"compound binary, previous century","oss-bindery-adoption-set.file.doc.detail":"Open, query, edit and write all supported across the legacy feature set.","oss-bindery-adoption-set.file.xlsb.file":"treasury-model.xlsb","oss-bindery-adoption-set.file.xlsb.note":"binary workbook, custom functions","oss-bindery-adoption-set.file.xlsb.detail":"One custom function outside the registry stays a typed spreadsheet error; everything else recalculates.","oss-bindery-adoption-set.file.pptx.file":"roadshow.pptx","oss-bindery-adoption-set.file.pptx.note":"SmartArt and an embedded workbook","oss-bindery-adoption-set.file.pptx.detail":"SmartArt edits land as node changes; the embedded workbook is preserved as an OLE payload on write.","oss-bindery-adoption-set.file.key.file":"design-2016.key","oss-bindery-adoption-set.file.key.note":"iWork bundle","oss-bindery-adoption-set.file.key.detail":"Complete reading and querying; writing is selected, so the edit and write tests record warnings.","oss-bindery-adoption-set.file.protected.file":"archive-contract.docx","oss-bindery-adoption-set.file.protected.note":"protected package","oss-bindery-adoption-set.file.protected.detail":"Identified before content access. Every operation waits for the caller's key.","oss-bindery-adoption-set.question":"Does this cover the documents and operations the product actually needs?","oss-bindery-adoption-set.band.left":"the evaluation build is the production engine","oss-bindery-adoption-set.band.right":"the matrix becomes the acceptance policy","oss-bindery-agent-review.chrome.path":"Agent review","oss-bindery-agent-review.chrome.status":"four previews, stable identities","oss-bindery-agent-review.chrome.meta":"illustrative, no model-cost claim","oss-bindery-agent-review.task.chip":"agent task","oss-bindery-agent-review.task.text":"Update the policy clause and every slide that quotes it.","oss-bindery-agent-review.step.resources.name":"Resource list","oss-bindery-agent-review.step.focusedRead.name":"Focused clause read","oss-bindery-agent-review.step.focusedRead.chip.paragraph":"clause paragraph","oss-bindery-agent-review.step.focusedRead.chip.comment":"margin comment","oss-bindery-agent-review.step.focusedRead.chip.revision":"revision","oss-bindery-agent-review.step.focusedRead.chip.reference":"cross-reference","oss-bindery-agent-review.step.docql.name":"Cross-document DocQL","oss-bindery-agent-review.step.docql.chip.slide4":"slide 4 text element","oss-bindery-agent-review.step.docql.chip.slide7":"slide 7 text element","oss-bindery-agent-review.step.docql.smartart":"slide 9 quote inside SmartArt, returned as a SmartArt node","oss-bindery-agent-review.step.previews.name":"Four previews","oss-bindery-agent-review.step.previews.chip.clause":"clause, stable id","oss-bindery-agent-review.step.previews.chip.slide4":"slide 4, stable id","oss-bindery-agent-review.step.previews.chip.slide7":"slide 7, stable id","oss-bindery-agent-review.step.previews.chip.smartart":"SmartArt node, stable id","oss-bindery-agent-review.compare.head":"comparison, grouped by source and type","oss-bindery-agent-review.compare.contract":"clause text modified","oss-bindery-agent-review.compare.deckText":"two text elements modified","oss-bindery-agent-review.compare.deckSmartart":"one SmartArt node modified","oss-bindery-agent-review.tokens.full":"both files serialised","oss-bindery-agent-review.tokens.focused":"focused reads and previews","oss-bindery-agent-review.tokens.note":"relative token use only","oss-bindery-agent-review.band.text":"the agent changes elements, not files","oss-bindery-agent-review.band.meta":"MCP + compact DSL","oss-bindery-agent-tasks.head.label":"Agent task","oss-bindery-agent-tasks.head.sub":"what the tool exposes","oss-bindery-agent-tasks.head.tag":"MCP","oss-bindery-agent-tasks.row.review.name":"Read focused structure","oss-bindery-agent-tasks.row.review.body":"Clause, comments, revisions, references and surrounding paragraphs only.","oss-bindery-agent-tasks.row.update.name":"Edit exact elements","oss-bindery-agent-tasks.row.update.body":"Resolved identities, expected versions, previews and capability checks.","oss-bindery-agent-tasks.row.build.name":"Generate native output","oss-bindery-agent-tasks.row.build.body":"Document model, styles, charts, formulas and destination warnings.","oss-bindery-agent-tasks.row.explain.name":"Interpret document systems","oss-bindery-agent-tasks.row.explain.body":"Formula lineage, chart sources, embedded objects and hidden metadata.","oss-bindery-agent-tasks.foot.left":"less context than the whole file","oss-bindery-agent-tasks.foot.right":"more precision than flattened text","oss-bindery-archive-questions.kicker.label":"Question","oss-bindery-archive-questions.kicker.sub":"what the result retains","oss-bindery-archive-questions.tag":"OPERATE","oss-bindery-archive-questions.question.find.verb":"Find","oss-bindery-archive-questions.question.find.name":"Content and structure","oss-bindery-archive-questions.question.find.body":"Exact file, element, path, surrounding context and matched property.","oss-bindery-archive-questions.question.compare.verb":"Compare","oss-bindery-archive-questions.question.compare.name":"Document differences","oss-bindery-archive-questions.question.compare.body":"Typed additions, removals and modifications with both element identities.","oss-bindery-archive-questions.question.extract.verb":"Extract","oss-bindery-archive-questions.question.extract.name":"Reusable assets and data","oss-bindery-archive-questions.question.extract.body":"Tables, media, formulas, comments, metadata, styles or full structure.","oss-bindery-archive-questions.question.explain.verb":"Explain","oss-bindery-archive-questions.question.explain.name":"Document behaviour","oss-bindery-archive-questions.question.explain.body":"Formula lineage, chart sources, hidden content, revisions and embedded objects.","oss-bindery-archive-questions.footline.left":"one query across formats","oss-bindery-archive-questions.footline.right":"results remain traceable to the document","oss-bindery-archive-run.chrome.path":"Archive questions","oss-bindery-archive-run.chrome.status":"one result shape","oss-bindery-archive-run.chrome.meta":"illustrative","oss-bindery-archive-run.column.statements":"four statements","oss-bindery-archive-run.column.results":"one typed table","oss-bindery-archive-run.statement.clauses.text":"SELECT paragraphs WHERE text MATCHES 'liability'","oss-bindery-archive-run.statement.clauses.scope":"doc, docx, odt, rtf, pdf","oss-bindery-archive-run.statement.totals.text":"SELECT cells WHERE stored <> computed","oss-bindery-archive-run.statement.totals.scope":"xls, xlsx, xlsb, ods, numbers","oss-bindery-archive-run.statement.brand.text":"SELECT slide elements WHERE text MATCHES 'previous brand name'","oss-bindery-archive-run.statement.brand.scope":"ppt, pptx, odp, key","oss-bindery-archive-run.statement.inventory.text":"INVENTORY ole objects, macros","oss-bindery-archive-run.statement.inventory.scope":"release packages","oss-bindery-archive-run.table.format":"format","oss-bindery-archive-run.table.file":"file","oss-bindery-archive-run.table.element":"element","oss-bindery-archive-run.table.completeness":"completeness","oss-bindery-archive-run.table.action":"action","oss-bindery-archive-run.result.clause-docx.format":"docx","oss-bindery-archive-run.result.clause-docx.file":"supply-agreement.docx","oss-bindery-archive-run.result.clause-docx.element":"section Liability, paragraph 3","oss-bindery-archive-run.result.clause-docx.completeness":"complete","oss-bindery-archive-run.result.clause-docx.action":"review","oss-bindery-archive-run.result.clause-odt.format":"odt","oss-bindery-archive-run.result.clause-odt.file":"vendor-terms.odt","oss-bindery-archive-run.result.clause-odt.element":"clause 9.2","oss-bindery-archive-run.result.clause-odt.completeness":"complete","oss-bindery-archive-run.result.clause-odt.action":"review","oss-bindery-archive-run.result.total-xlsb.format":"xlsb","oss-bindery-archive-run.result.total-xlsb.file":"treasury-model.xlsb","oss-bindery-archive-run.result.total-xlsb.element":"Totals!F27","oss-bindery-archive-run.result.total-xlsb.completeness":"recalculated","oss-bindery-archive-run.result.total-xlsb.action":"recheck","oss-bindery-archive-run.result.brand-pptx.format":"pptx","oss-bindery-archive-run.result.brand-pptx.file":"roadshow.pptx","oss-bindery-archive-run.result.brand-pptx.element":"slide 12, SmartArt node","oss-bindery-archive-run.result.brand-pptx.completeness":"complete","oss-bindery-archive-run.result.brand-pptx.action":"extract","oss-bindery-archive-run.result.clause-pdf.format":"pdf","oss-bindery-archive-run.result.clause-pdf.file":"scan-042.pdf","oss-bindery-archive-run.result.clause-pdf.element":"page 4, paragraph 2","oss-bindery-archive-run.result.clause-pdf.completeness":"partial","oss-bindery-archive-run.result.clause-pdf.action":"review","oss-bindery-archive-run.result.macro-xlsm.format":"xlsm","oss-bindery-archive-run.result.macro-xlsm.file":"legacy-rollup.xlsm","oss-bindery-archive-run.result.macro-xlsm.element":"vba project, 2 modules","oss-bindery-archive-run.result.macro-xlsm.completeness":"complete","oss-bindery-archive-run.result.macro-xlsm.action":"inventoried","oss-bindery-archive-run.result-note":"One table across every family. The shared result shape is the point, not a file count.","oss-bindery-archive-run.band.left":"search results remain document-aware","oss-bindery-archive-run.band.right":"file, element, path, completeness","oss-bindery-ask-flow.251d849bf0":"You ask a plain question","oss-bindery-ask-flow.e18eff3d23":"Something like, \"What did I spend on heating last winter?\" You are asking about your own budget sheet, the one you saved on this very computer.","oss-bindery-ask-flow.a16295bfb5":"The reader opens your papers first","oss-bindery-ask-flow.97534cc9d7":"Before the computer can answer, something has to open that sheet and read the real numbers inside. That something is Bindery. It does this quietly, in the background.","oss-bindery-ask-flow.c12a677f3b":"The answer is about your real papers","oss-bindery-ask-flow.7965f3d39a":"Now the answer comes from your actual sheet, not a guess. The same question gives the same answer every time, because it is reading the same real document.","oss-bindery-ask-flow.d1803309e2":"Without a reader","oss-bindery-ask-flow.7c02e8ed27":"What did I spend on heating last winter?","oss-bindery-ask-flow.e0cc518075":"I am not able to see your budget sheet, so I can only give a general guess.","oss-bindery-ask-flow.b653c4ff2f":"Nothing opened your real document, so the answer is vague.","oss-bindery-ask-flow.5a2fc1a2ca":"With the quiet reader","oss-bindery-ask-flow.706b8f8461":"Opened budget-2025.xlsx, read the heating row","oss-bindery-ask-flow.c5af880d91":"Your sheet shows 148.20 on heating across last winter, in three payments.","oss-bindery-ask-flow.c36f8be21b":"The reader opened your real sheet, so the answer is your real answer.","oss-bindery-budget-difference.chrome.path":"The budget, worked again","oss-bindery-budget-difference.chrome.status":"both answers kept","oss-bindery-budget-difference.chrome.meta":"illustrative figures","oss-bindery-budget-difference.sheet.head":"the household budget","oss-bindery-budget-difference.row.rent":"Rent","oss-bindery-budget-difference.row.childcare":"Childcare","oss-bindery-budget-difference.row.groceries":"Groceries","oss-bindery-budget-difference.row.savings":"Savings","oss-bindery-budget-difference.row.travel":"Travel","oss-bindery-budget-difference.row.insurance":"Insurance","oss-bindery-budget-difference.row.phone":"Phone","oss-bindery-budget-difference.row.buffer":"Buffer","oss-bindery-budget-difference.row.schoolTrip":"School trip","oss-bindery-budget-difference.mark.pasted":"a number pasted over the formula","oss-bindery-budget-difference.mark.below":"added below the old sum range","oss-bindery-budget-difference.total.label":"total saved in the file","oss-bindery-budget-difference.compare.saved.label":"the saved answer","oss-bindery-budget-difference.compare.current.label":"worked again","oss-bindery-budget-difference.compare.gap":"105 apart","oss-bindery-budget-difference.chart.home":"home","oss-bindery-budget-difference.chart.food":"food","oss-bindery-budget-difference.chart.other":"other","oss-bindery-budget-difference.chart.note":"the chart takes the new values","oss-bindery-budget-difference.note":"the old number stays on record, next to the reason it changed","oss-bindery-budget-difference.band.text":"the working can be shown, not only the total","oss-bindery-budget-difference.band.meta":"saved 4,820, current 4,715","oss-bindery-business-glyph.7c05b3704d":"end to end","oss-bindery-business-glyph.65cfa78989":"One path","oss-bindery-business-glyph.13f71ffcde":"Write where supported","oss-bindery-business-glyph.edf95cc67a":"Process locally","oss-bindery-business-glyph.6b5eb5323e":"Detect by content","oss-bindery-business-glyph.6f696724c6":"What the flow changes","oss-bindery-business-glyph.4a7a37c1a1":"One document model","oss-bindery-business-glyph.39410cc40c":"Detect, read, query, transform and write supported documents through one consistent interface.","oss-bindery-business-glyph.029b7c0b8c":"Bindery","oss-bindery-business-glyph.9fc93ca9ce":"Many formats enter","oss-bindery-business-glyph.6cc3364a24":"Operational","oss-bindery-business-glyph.2fb7636b66":"Bindery flow board","oss-bindery-business-glyph.143299f958":"Write where supported or pass structured content to the next system.","oss-bindery-business-glyph.220c94c342":"Predictable handoffs","oss-bindery-business-glyph.979c528d8f":"Controls","oss-bindery-business-glyph.28b338f84b":"Read, query and transform content through one shared model.","oss-bindery-business-glyph.870c4d024a":"Usable document information","oss-bindery-business-glyph.7907ede934":"Structures","oss-bindery-business-glyph.a10b3f9333":"Detect and open supported documents through the same entry point.","oss-bindery-business-glyph.3c63f47047":"One intake path","oss-bindery-business-glyph.6a29f08e06":"Standardises","oss-bindery-business-glyph.dd7ed1f3d7":"Apple and OpenDocument files","oss-bindery-business-glyph.eb320c2e18":"PDFs and forms","oss-bindery-business-glyph.3fb1d9c2d9":"Slide decks","oss-bindery-business-glyph.c8fb5c2fe2":"Spreadsheets","oss-bindery-business-glyph.8423006e5f":"Word documents","oss-bindery-business-glyph.11d4a0351f":"Same intake","oss-bindery-business-glyph.d1061ae503":"Follow one path","oss-bindery-business-outputs.head.label":"One source model","oss-bindery-business-outputs.head.sub":"four business outputs","oss-bindery-business-outputs.head.tag":"GENERATE","oss-bindery-business-outputs.out.docx.name":"Reviewable report","oss-bindery-business-outputs.out.docx.body":"Comments, revisions, fields, tables, charts and references remain editable.","oss-bindery-business-outputs.out.xlsx.name":"Working model","oss-bindery-business-outputs.out.xlsx.body":"Formulas, named ranges, tables, validations and charts remain live.","oss-bindery-business-outputs.out.pptx.name":"Presentation","oss-bindery-business-outputs.out.pptx.body":"Masters, layouts, notes, charts, SmartArt and media remain native.","oss-bindery-business-outputs.out.pdfHtml.name":"Distribution","oss-bindery-business-outputs.out.pdfHtml.body":"Fixed or web output generated from the same approved structure.","oss-bindery-business-outputs.foot.left":"one approved content model","oss-bindery-business-outputs.foot.right":"the right native document for each use","oss-bindery-cadence-banners.canonicalModel.eyebrow":"Bindery / native document route","oss-bindery-cadence-banners.canonicalModel.lead":"Four container families","oss-bindery-cadence-banners.canonicalModel.accent":"meet in one document model","oss-bindery-cadence-banners.canonicalModel.body.one":"A native reader first honours the container and its relationships. It then exposes paragraphs, cells, charts, objects and revisions as semantic nodes rather than flattening them into one text stream.","oss-bindery-cadence-banners.canonicalModel.body.two":"Edits target those nodes. The connector writes the smallest native change it can support and preserves everything outside the requested operation.","oss-bindery-cadence-banners.canonicalModel.panel":"Read, model and write route","oss-bindery-cadence-banners.canonicalModel.tag":"NATIVE","oss-bindery-cadence-banners.canonicalModel.item.bytes.label":"Inspect the bytes","oss-bindery-cadence-banners.canonicalModel.item.bytes.detail":"The file identifies its real container before parsing.","oss-bindery-cadence-banners.canonicalModel.item.bytes.status":"SNIFFED","oss-bindery-cadence-banners.canonicalModel.item.container.label":"Use the native connector","oss-bindery-cadence-banners.canonicalModel.item.container.detail":"Package parts and relationships remain available.","oss-bindery-cadence-banners.canonicalModel.item.container.status":"OPEN","oss-bindery-cadence-banners.canonicalModel.item.nodes.label":"Expose semantic nodes","oss-bindery-cadence-banners.canonicalModel.item.nodes.detail":"One operation vocabulary spans the supported formats.","oss-bindery-cadence-banners.canonicalModel.item.nodes.status":"MODELLED","oss-bindery-cadence-banners.canonicalModel.item.write.label":"Write through the connector","oss-bindery-cadence-banners.canonicalModel.item.write.detail":"Only the requested native parts are changed.","oss-bindery-cadence-banners.canonicalModel.item.write.status":"MINIMAL","oss-bindery-cadence-banners.canonicalModel.verdict":"the format changes, while the document operation keeps one meaning","oss-bindery-cadence-banners.canonicalModel.footer":"container fidelity surrounds one canonical semantic model","oss-bindery-cadence-banners.operationSurface.eyebrow":"Bindery / one operation contract","oss-bindery-cadence-banners.operationSurface.lead":"A query becomes useful","oss-bindery-cadence-banners.operationSurface.accent":"when the write plan stays explicit","oss-bindery-cadence-banners.operationSurface.body.one":"DocQL and the compact DSL select the same semantic nodes that Rust, Python, MCP and the command line expose. The surface changes how an operation is requested, not what the operation means.","oss-bindery-cadence-banners.operationSurface.body.two":"Before a write transaction opens, the planner checks connector capability. Unsupported mutations are refused with a reason instead of being approximated through a lossy fallback.","oss-bindery-cadence-banners.operationSurface.panel":"Operation planning route","oss-bindery-cadence-banners.operationSurface.tag":"PLANNED","oss-bindery-cadence-banners.operationSurface.item.select.label":"Select semantic nodes","oss-bindery-cadence-banners.operationSurface.item.select.detail":"DocQL, DSL or an API call resolves to the same objects.","oss-bindery-cadence-banners.operationSurface.item.select.status":"SELECTED","oss-bindery-cadence-banners.operationSurface.item.plan.label":"Build the mutation plan","oss-bindery-cadence-banners.operationSurface.item.plan.detail":"The requested changes and affected parts are named.","oss-bindery-cadence-banners.operationSurface.item.plan.status":"PLANNED","oss-bindery-cadence-banners.operationSurface.item.capability.label":"Check connector capability","oss-bindery-cadence-banners.operationSurface.item.capability.detail":"The format must support every requested mutation.","oss-bindery-cadence-banners.operationSurface.item.capability.status":"CHECKED","oss-bindery-cadence-banners.operationSurface.item.commit.label":"Commit the native write","oss-bindery-cadence-banners.operationSurface.item.commit.detail":"The connector preserves unrelated document state.","oss-bindery-cadence-banners.operationSurface.item.commit.status":"WRITTEN","oss-bindery-cadence-banners.operationSurface.verdict":"several public surfaces resolve to one capability-checked operation","oss-bindery-cadence-banners.operationSurface.footer":"the request surface is replaceable; the document contract remains","oss-bindery-cadence-banners.safety.eyebrow":"Bindery / hostile document boundary","oss-bindery-cadence-banners.safety.lead":"A document stays data","oss-bindery-cadence-banners.safety.accent":"until policy permits more","oss-bindery-cadence-banners.safety.body.one":"Archive limits, path checks and active-content inventory happen before a document is treated as safe to process. Inspecting a package does not authorise macros, links or embedded objects to run.","oss-bindery-cadence-banners.safety.body.two":"Workbook recalculation has its own capability and error states. When a function or mutation is unsupported, Bindery keeps that boundary visible rather than returning a plausible but unearned result.","oss-bindery-cadence-banners.safety.panel":"Pre-write safety gates","oss-bindery-cadence-banners.safety.tag":"CONTROLLED","oss-bindery-cadence-banners.safety.item.archive.label":"Bound archive expansion","oss-bindery-cadence-banners.safety.item.archive.detail":"Package size, paths and nesting are checked.","oss-bindery-cadence-banners.safety.item.archive.status":"BOUNDED","oss-bindery-cadence-banners.safety.item.active.label":"Inventory active content","oss-bindery-cadence-banners.safety.item.active.detail":"Macros, links and embedded objects remain inert by default.","oss-bindery-cadence-banners.safety.item.active.status":"INERT","oss-bindery-cadence-banners.safety.item.formula.label":"Declare calculation support","oss-bindery-cadence-banners.safety.item.formula.detail":"Workbook functions carry explicit capability states.","oss-bindery-cadence-banners.safety.item.formula.status":"DECLARED","oss-bindery-cadence-banners.safety.item.refusal.label":"Refuse unsupported work","oss-bindery-cadence-banners.safety.item.refusal.detail":"No silent flattening or invented value crosses the boundary.","oss-bindery-cadence-banners.safety.item.refusal.status":"STOP","oss-bindery-cadence-banners.safety.verdict":"inspection, execution and mutation remain separate permissions","oss-bindery-cadence-banners.safety.footer":"a file may be readable without being safe to execute or change","oss-bindery-cadence-banners.estate.eyebrow":"Bindery / document estate","oss-bindery-cadence-banners.estate.lead":"Replace the repeated stack","oss-bindery-cadence-banners.estate.accent":"without replacing every document","oss-bindery-cadence-banners.estate.body.one":"A mixed estate usually carries separate readers, generators, query helpers and edit paths for each format. The operating cost sits in those repeated decisions, not only in opening a file.","oss-bindery-cadence-banners.estate.body.two":"Bindery keeps the native files and consolidates the operation layer around one semantic model. Format-specific behaviour remains in the connectors where it can be tested and owned.","oss-bindery-cadence-banners.estate.panel":"Consolidation record","oss-bindery-cadence-banners.estate.tag":"ONE LAYER","oss-bindery-cadence-banners.estate.item.formats.label":"Existing native formats","oss-bindery-cadence-banners.estate.item.formats.detail":"Documents remain in the containers teams already use.","oss-bindery-cadence-banners.estate.item.formats.status":"RETAINED","oss-bindery-cadence-banners.estate.item.model.label":"Canonical document model","oss-bindery-cadence-banners.estate.item.model.detail":"Paragraphs, cells and visual objects share one vocabulary.","oss-bindery-cadence-banners.estate.item.model.status":"SHARED","oss-bindery-cadence-banners.estate.item.operations.label":"Common operation contract","oss-bindery-cadence-banners.estate.item.operations.detail":"Read, query, generate and edit use the same nodes.","oss-bindery-cadence-banners.estate.item.operations.status":"SHARED","oss-bindery-cadence-banners.estate.item.stack.label":"Format connectors","oss-bindery-cadence-banners.estate.item.stack.detail":"Native differences stay isolated at the file boundary.","oss-bindery-cadence-banners.estate.item.stack.status":"BOUNDED","oss-bindery-cadence-banners.estate.verdict":"the estate keeps its files and loses repeated operation stacks","oss-bindery-cadence-banners.estate.footer":"consolidation happens around the documents, not by flattening them","oss-bindery-cadence-banners.migration.eyebrow":"Bindery / controlled migration","oss-bindery-cadence-banners.migration.lead":"Cut over after","oss-bindery-cadence-banners.migration.accent":"the document differences are accounted for","oss-bindery-cadence-banners.migration.body.one":"A migration needs more than a successful open-and-save test. It should inventory formats and features, establish fidelity baselines and compare the exact document parts that matter to each workflow.","oss-bindery-cadence-banners.migration.body.two":"A dual run keeps the existing path available while differences are classified. Cutover follows accepted evidence, with unsupported features left visible instead of hidden in a conversion count.","oss-bindery-cadence-banners.migration.panel":"Migration evidence path","oss-bindery-cadence-banners.migration.tag":"GATED","oss-bindery-cadence-banners.migration.item.inventory.label":"Inventory the estate","oss-bindery-cadence-banners.migration.item.inventory.detail":"Formats, features and active content are counted.","oss-bindery-cadence-banners.migration.item.inventory.status":"01","oss-bindery-cadence-banners.migration.item.baseline.label":"Set fidelity baselines","oss-bindery-cadence-banners.migration.item.baseline.detail":"Required document properties become acceptance checks.","oss-bindery-cadence-banners.migration.item.baseline.status":"02","oss-bindery-cadence-banners.migration.item.compare.label":"Run both paths","oss-bindery-cadence-banners.migration.item.compare.detail":"Changed nodes and native parts are compared.","oss-bindery-cadence-banners.migration.item.compare.status":"03","oss-bindery-cadence-banners.migration.item.cutover.label":"Approve the cutover","oss-bindery-cadence-banners.migration.item.cutover.detail":"Exceptions and owners remain in the ledger.","oss-bindery-cadence-banners.migration.item.cutover.status":"04","oss-bindery-cadence-banners.migration.verdict":"the migration ends when required fidelity is evidenced, not when files merely open","oss-bindery-cadence-banners.migration.footer":"the ledger turns document differences into explicit decisions","oss-bindery-cadence-banners.preciseEdit.eyebrow":"Bindery / an ordinary document change","oss-bindery-cadence-banners.preciseEdit.lead":"Change the sentence","oss-bindery-cadence-banners.preciseEdit.accent":"without remaking the document","oss-bindery-cadence-banners.preciseEdit.body.one":"Bindery opens the native file, finds the paragraph, cell or object you named and changes that semantic node. The rest of the document stays outside the edit.","oss-bindery-cadence-banners.preciseEdit.body.two":"The connector then writes the result back to the original format. Layout, relationships and editable visual elements remain document parts rather than screenshots around new text.","oss-bindery-cadence-banners.preciseEdit.panel":"One precise edit","oss-bindery-cadence-banners.preciseEdit.tag":"MINIMAL","oss-bindery-cadence-banners.preciseEdit.item.open.label":"Open the native document","oss-bindery-cadence-banners.preciseEdit.item.open.detail":"The real container and its structure are retained.","oss-bindery-cadence-banners.preciseEdit.item.open.status":"OPEN","oss-bindery-cadence-banners.preciseEdit.item.find.label":"Find the intended part","oss-bindery-cadence-banners.preciseEdit.item.find.detail":"A paragraph, cell or object is addressed directly.","oss-bindery-cadence-banners.preciseEdit.item.find.status":"FOUND","oss-bindery-cadence-banners.preciseEdit.item.change.label":"Apply the requested change","oss-bindery-cadence-banners.preciseEdit.item.change.detail":"Unrelated document nodes stay untouched.","oss-bindery-cadence-banners.preciseEdit.item.change.status":"CHANGED","oss-bindery-cadence-banners.preciseEdit.item.save.label":"Write the original format","oss-bindery-cadence-banners.preciseEdit.item.save.detail":"The document remains editable in its usual application.","oss-bindery-cadence-banners.preciseEdit.item.save.status":"SAVED","oss-bindery-cadence-banners.preciseEdit.verdict":"one document part changes and the native document continues","oss-bindery-cadence-banners.preciseEdit.footer":"the format stays familiar because the edit stays narrow","oss-bindery-calc-state.kicker.label":"Each formula cell","oss-bindery-calc-state.kicker.sub":"what Bindery keeps","oss-bindery-calc-state.tag":"WORKBOOK","oss-bindery-calc-state.rows.formula.property":"formula","oss-bindery-calc-state.rows.formula.name":"The expression","oss-bindery-calc-state.rows.formula.body":"Parsed tokens, functions, operators, references, arrays and literals.","oss-bindery-calc-state.rows.stored.property":"stored","oss-bindery-calc-state.rows.stored.name":"The cached value","oss-bindery-calc-state.rows.stored.body":"What the last application saved beside the formula.","oss-bindery-calc-state.rows.computed.property":"computed","oss-bindery-calc-state.rows.computed.name":"The current result","oss-bindery-calc-state.rows.computed.body":"What the dependency graph and current inputs produce now.","oss-bindery-calc-state.rows.status.property":"status","oss-bindery-calc-state.rows.status.name":"The reason","oss-bindery-calc-state.rows.status.body":"Clean, stale, changed, unsupported, circular or another typed state.","oss-bindery-calc-state.footline.left":"the workbook claims a value","oss-bindery-calc-state.footline.right":"its formulas can be asked again","oss-bindery-clause-change.chrome.path":"Clause change","oss-bindery-clause-change.chrome.status":"four relationships retained","oss-bindery-clause-change.chrome.meta":"preview before write","oss-bindery-clause-change.request.chip":"change request","oss-bindery-clause-change.request.target":"Liability, paragraph 3","oss-bindery-clause-change.request.preview":"preview returns one node","oss-bindery-clause-change.page.head":"supply-agreement.docx","oss-bindery-clause-change.page.heading":"Liability","oss-bindery-clause-change.page.clauseTag":"clause changes","oss-bindery-clause-change.page.comment":"margin comment","oss-bindery-clause-change.page.reference":"see clause 9.2","oss-bindery-clause-change.page.struckTag":"tracked deletion kept","oss-bindery-clause-change.rel.comment":"Comment anchor","oss-bindery-clause-change.rel.footnote":"Footnote number","oss-bindery-clause-change.rel.reference":"Cross-reference target","oss-bindery-clause-change.rel.revision":"Unrelated revision","oss-bindery-clause-change.map.keptHead":"after the in-place write","oss-bindery-clause-change.map.keptState":"identity retained","oss-bindery-clause-change.map.brokenHead":"the full-conversion route","oss-bindery-clause-change.map.brokenState":"broken or renumbered","oss-bindery-clause-change.band.text":"the clause changed; the document around it did not","oss-bindery-clause-change.band.meta":"minimal diff, round trip","oss-bindery-consolidation.13f71ffcde":"Supported outputs","oss-bindery-consolidation.5b609e94fd":"Structured document","oss-bindery-consolidation.6b5eb5323e":"Content detected","oss-bindery-consolidation.7e2a1c0b8f":"Detect, read, query, transform and write through one consistent interface across supported formats.","oss-bindery-consolidation.029b7c0b8c":"Bindery","oss-bindery-consolidation.db2b36396d":"One document model","oss-bindery-consolidation.a58f418158":"Each branch carries its own interface","oss-bindery-consolidation.8cf0dd4958":"Format-specific branches","oss-bindery-consolidation.7552c8476f":"format branches converge at intake","oss-bindery-consolidation.893c268341":"document paths","oss-bindery-consolidation.35a91d1529":"Systems receive consistent structure instead of format-specific payloads.","oss-bindery-consolidation.395b6c15fd":"One downstream contract","oss-bindery-consolidation.cf3e67bbcd":"Changes begin from one structured representation.","oss-bindery-consolidation.c44cf21033":"One way to transform","oss-bindery-consolidation.7ce02814bf":"Queries run against the same model regardless of the source format.","oss-bindery-consolidation.39598b0036":"One way to ask","oss-bindery-consolidation.546622f2ca":"Edge-format branch","oss-bindery-consolidation.b85b8061f8":"Apple and ODF files","oss-bindery-consolidation.e52da9850d":"Separate extraction path","oss-bindery-consolidation.04ce27b847":"PDF forms","oss-bindery-consolidation.c1f650c3ab":"Separate slide and shape handling","oss-bindery-consolidation.a5ca950f0c":"Slide decks","oss-bindery-consolidation.3190dc67b5":"Separate cell and formula handling","oss-bindery-consolidation.e8a0fe95bc":"Spreadsheets","oss-bindery-consolidation.2e5c84e9b7":"Dedicated reader path","oss-bindery-consolidation.3b2e67ae4e":"Word documents","oss-bindery-consolidation.8bc92875f6":"Normalise","oss-bindery-consumer-glyph.4dcda32940":"Publishes in the seventh round","oss-bindery-consumer-glyph.43db414b40":"Same answer every time","oss-bindery-consumer-glyph.8d2d5afbc0":"Stays on your computer","oss-bindery-consumer-glyph.8d3d4eecdb":"A real answer","oss-bindery-consumer-glyph.0dcd182491":"It opens each one and reads what is inside, so the answer is about your real papers.","oss-bindery-consumer-glyph.c46ff46576":"The quiet helper","oss-bindery-consumer-glyph.9129982c5c":"All open the same way","oss-bindery-consumer-glyph.21c899006f":"Whatever made them","oss-bindery-consumer-glyph.2e49bf2520":"Your papers, all in one place","oss-bindery-consumer-glyph.ee19a16b3b":"Printed","oss-bindery-consumer-glyph.e0ecf34feb":"A form","oss-bindery-consumer-glyph.f19ce3fada":"Words and photos","oss-bindery-consumer-glyph.f2e902561d":"A slideshow","oss-bindery-consumer-glyph.c95cc671b1":"Of numbers","oss-bindery-consumer-glyph.3feb4a470e":"A sheet","oss-bindery-consumer-glyph.1ad89a7e69":"You typed it","oss-bindery-consumer-glyph.cfd76febbb":"A letter","oss-bindery-container-families.kicker.label":"Family","oss-bindery-container-families.kicker.sub":"what the reader follows","oss-bindery-container-families.tag":"NATIVE","oss-bindery-container-families.family.ole.name":"Sector graph","oss-bindery-container-families.family.ole.body":"Header, FAT, mini-FAT, directory, streams and application records.","oss-bindery-container-families.family.packages.name":"Relationship graph","oss-bindery-container-families.family.packages.body":"Content types, root relationships, part relationships and selected decompression.","oss-bindery-container-families.family.iwork.name":"Message graph","oss-bindery-container-families.family.iwork.body":"Bundle, IWA index, framed compression, object index and references.","oss-bindery-container-families.family.streams.name":"Grammar or object graph","oss-bindery-container-families.family.streams.body":"RTF groups and destinations; PDF objects, resources and operators.","oss-bindery-container-families.foot.left":"each family keeps its own truth","oss-bindery-container-families.foot.right":"all of them meet above it","oss-bindery-control-questions.kicker.label":"Control","oss-bindery-control-questions.kicker.sub":"the answer Bindery supplies","oss-bindery-control-questions.tag":"LOCAL","oss-bindery-control-questions.question.where.question":"Where?","oss-bindery-control-questions.question.where.name":"Your process","oss-bindery-control-questions.question.where.body":"The document is parsed and changed where the application is running.","oss-bindery-control-questions.question.ran.question":"What ran?","oss-bindery-control-questions.question.ran.name":"No active document code","oss-bindery-control-questions.question.ran.body":"Embedded code is represented and inventoried, never executed by the parser.","oss-bindery-control-questions.question.complete.question":"Was it complete?","oss-bindery-control-questions.question.complete.name":"Typed result state","oss-bindery-control-questions.question.complete.body":"Complete, partial, protected or refused with exact warnings.","oss-bindery-control-questions.question.changed.question":"What changed?","oss-bindery-control-questions.question.changed.name":"Structural comparison","oss-bindery-control-questions.question.changed.body":"Element identities, dirty parts, losses and output identity returned.","oss-bindery-control-questions.footline.left":"locality is architectural","oss-bindery-control-questions.footline.right":"not a privacy option on a service","oss-bindery-controlled-intake.chrome.path":"Controlled intake","oss-bindery-controlled-intake.chrome.status":"inside the boundary","oss-bindery-controlled-intake.chrome.meta":"illustrative","oss-bindery-controlled-intake.boundary.label":"organisation boundary","oss-bindery-controlled-intake.pipeline.upload":"upload","oss-bindery-controlled-intake.pipeline.parser":"bounded parser","oss-bindery-controlled-intake.pipeline.inventory":"structure and inventory","oss-bindery-controlled-intake.pipeline.policy":"policy","oss-bindery-controlled-intake.route.macro.file":"q4-budget.xlsm","oss-bindery-controlled-intake.route.macro.note":"Macros inventoried and preserved as data.","oss-bindery-controlled-intake.route.macro.state":"accepted, never executed","oss-bindery-controlled-intake.route.protected.file":"msa-draft.docx","oss-bindery-controlled-intake.route.protected.note":"Identified as protected before any content access.","oss-bindery-controlled-intake.route.protected.state":"waiting for key","oss-bindery-controlled-intake.route.bomb.file":"legacy-bundle.zip","oss-bindery-controlled-intake.route.bomb.note":"Expansion claim beyond the configured ceiling.","oss-bindery-controlled-intake.route.bomb.state":"refused before inflation","oss-bindery-controlled-intake.route.partial.file":"scan-batch-7.pdf","oss-bindery-controlled-intake.route.partial.note":"Image-only pages marked in the result.","oss-bindery-controlled-intake.route.partial.state":"partial, routed accordingly","oss-bindery-controlled-intake.verdict":"Every route ends in an explicit state. Nothing leaves the boundary.","oss-bindery-controlled-intake.band.left":"reading is not execution","oss-bindery-controlled-intake.band.right":"parsed, preserved, never run","oss-bindery-dependency-closure.chrome.path":"Calculation closure","oss-bindery-dependency-closure.chrome.status":"closure recalculated","oss-bindery-dependency-closure.chrome.meta":"illustrative","oss-bindery-dependency-closure.graph.aria":"Dependency graph of a finance workbook across the Inputs, Model and Summary sheets. One changed input fans into eighteen formulas, two totals and three chart series.","oss-bindery-dependency-closure.sheets.inputs":"Inputs","oss-bindery-dependency-closure.sheets.model":"Model","oss-bindery-dependency-closure.sheets.summary":"Summary","oss-bindery-dependency-closure.legend.closure":"affected closure, 18 formulas, 2 totals, 3 chart series","oss-bindery-dependency-closure.legend.retained":"unrelated cells retained","oss-bindery-dependency-closure.legend.error":"unsupported function, contained to its branch","oss-bindery-dependency-closure.error.label":"unsupported function","oss-bindery-dependency-closure.chart.label":"summary chart","oss-bindery-dependency-closure.chart.note":"The summary chart updates from the recomputed range without being separately edited.","oss-bindery-dependency-closure.table.title":"stored, recomputed and difference for the cells whose values changed","oss-bindery-dependency-closure.table.head.cell":"cell","oss-bindery-dependency-closure.table.head.stored":"stored","oss-bindery-dependency-closure.table.head.recomputed":"recomputed","oss-bindery-dependency-closure.table.head.diff":"difference","oss-bindery-dependency-closure.table.rows.f27.cell":"Model!F27","oss-bindery-dependency-closure.table.rows.f27.stored":"41,287.06","oss-bindery-dependency-closure.table.rows.f27.recomputed":"41,402.18","oss-bindery-dependency-closure.table.rows.f27.diff":"+115.12","oss-bindery-dependency-closure.table.rows.f31.cell":"Model!F31","oss-bindery-dependency-closure.table.rows.f31.stored":"12,940.00","oss-bindery-dependency-closure.table.rows.f31.recomputed":"12,955.20","oss-bindery-dependency-closure.table.rows.f31.diff":"+15.20","oss-bindery-dependency-closure.table.rows.c4.cell":"Summary!C4","oss-bindery-dependency-closure.table.rows.c4.stored":"108,512.40","oss-bindery-dependency-closure.table.rows.c4.recomputed":"108,782.66","oss-bindery-dependency-closure.table.rows.c4.diff":"+270.26","oss-bindery-dependency-closure.table.rows.c9.cell":"Summary!C9","oss-bindery-dependency-closure.table.rows.c9.stored":"6.4%","oss-bindery-dependency-closure.table.rows.c9.recomputed":"6.6%","oss-bindery-dependency-closure.table.rows.c9.diff":"+0.2 pt","oss-bindery-dependency-closure.band.left":"one changed input moved only its dependency closure","oss-bindery-dependency-closure.band.right":"stored kept beside computed","oss-bindery-detect-flow.64e02dbe9b":"STEP 1","oss-bindery-detect-flow.80628bd746":"Detect","oss-bindery-detect-flow.440c864c5b":"Read the magic bytes and structure cues. The extension is a hint, never the truth.","oss-bindery-detect-flow.972cfd1299":"A file named report.doc that is really an OOXML xlsx is routed to the xlsx reader, not the legacy doc reader.","oss-bindery-detect-flow.b2ad896a1c":"STEP 2","oss-bindery-detect-flow.b7e45a36ff":"Parse","oss-bindery-detect-flow.f9b448ee3d":"The chosen reader normalises every format into one unified document model.","oss-bindery-detect-flow.f7e658a3b8":"Tables, paragraphs, slides, and formulas all land in the same DocModel shape regardless of the source format.","oss-bindery-detect-flow.6be00e946a":"STEP 3","oss-bindery-detect-flow.a618b4be8d":"Query","oss-bindery-detect-flow.1e0ba1734e":"docql! { SELECT cells WHERE ... }","oss-bindery-detect-flow.1c73fdaa15":"DocQL is SQL like. Walk tables, evaluate formulas, find references, filter shapes.","oss-bindery-detect-flow.c36ed6e9c3":"One query language across the corpus, no per format code to walk a Word table versus an Excel sheet.","oss-bindery-detect-flow.044adfd9ed":"STEP 4","oss-bindery-detect-flow.4a48932789":"Write","oss-bindery-detect-flow.784fe59285":"doc.write_as(\"xlsx\", &mut out)","oss-bindery-detect-flow.9e9d66050a":"Writers emit back to OOXML, ODF, LaTeX, EPUB, and Markdown. Round trip where the format allows.","oss-bindery-detect-flow.737adcdf7f":"Lossy conversions are flagged before they happen. No silent format coercion in production.","oss-bindery-detect-flow.50c74f7d8f":"4 stages, 1 model","oss-bindery-detect-flow.a46034aa75":"bytes to docs to answers","oss-bindery-dirty-set.kicker.label":"One edit","oss-bindery-dirty-set.kicker.sub":"what becomes dirty","oss-bindery-dirty-set.tag":"IN PLACE","oss-bindery-dirty-set.scope.node.name":"The target","oss-bindery-dirty-set.scope.node.body":"One paragraph, cell, shape, note, chart series or other resolved element.","oss-bindery-dirty-set.scope.parents.name":"Required containers","oss-bindery-dirty-set.scope.parents.body":"Only ancestors whose lengths, indexes or relationships must change.","oss-bindery-dirty-set.scope.parts.name":"Native output","oss-bindery-dirty-set.scope.parts.body":"The package parts or legacy streams affected by the semantic change.","oss-bindery-dirty-set.scope.rest.name":"Preserved","oss-bindery-dirty-set.scope.rest.body":"Untouched media, styles, extensions, macros and relationships remain intact.","oss-bindery-dirty-set.foot.left":"dirty state is explicit","oss-bindery-dirty-set.foot.right":"the writer follows it","oss-bindery-doc-ql.329d9cf466":"Cross reference","oss-bindery-doc-ql.675dc160a4":"refs CONTAINS \"Sheet2.A1\"","oss-bindery-doc-ql.5c68ec4318":"Sheet1!B4","oss-bindery-doc-ql.24288841fb":"Sheet1!D12","oss-bindery-doc-ql.db35a47634":"Sheet3!A1","oss-bindery-doc-ql.77f5a8189a":"3 cells, evaluated across 3 sheets","oss-bindery-doc-ql.8f73c9e02c":"Evaluate formula","oss-bindery-doc-ql.eedb6d1e2a":"value, formula","oss-bindery-doc-ql.3f95142328":"workbook.Sheet1","oss-bindery-doc-ql.9046ea5e1f":"cell = \"F23\"","oss-bindery-doc-ql.51a46fa65e":"= NPV(0.08, B2:B13)","oss-bindery-doc-ql.ae3f543d54":"300+ Excel compatible functions, evaluated in Rust","oss-bindery-doc-ql.1b87f8a819":"Walk tables","oss-bindery-doc-ql.98eb61976a":"style = \"Heading 1\"","oss-bindery-doc-ql.4651a34e4d":"Scope","oss-bindery-doc-ql.b509d96b12":"Methodology","oss-bindery-doc-ql.ca9b7e7e1f":"Findings","oss-bindery-doc-ql.decc347fcf":"Annex A","oss-bindery-doc-ql.58c2cccff1":"4 headings, reading order preserved","oss-bindery-doc-ql.556a7b72a4":"Maths and stats","oss-bindery-doc-ql.57d52ff454":"SUM, AVG, STDEV, matrix functions","oss-bindery-doc-ql.cbee025715":"String and regex","oss-bindery-doc-ql.105823cfe9":"SUBSTITUTE, REGEX, TEXTJOIN","oss-bindery-doc-ql.c5e455ba32":"Time and business","oss-bindery-doc-ql.9a27598062":"WORKDAY, NETWORKDAYS, EOMONTH","oss-bindery-doc-ql.db1c784524":"Reference","oss-bindery-doc-ql.e4252ec91a":"VLOOKUP, INDEX, MATCH, XLOOKUP","oss-bindery-doc-ql.37a4a4b1ee":"Logic and array","oss-bindery-doc-ql.a49c10d9e6":"IFS, LET, LAMBDA, SWITCH","oss-bindery-doc-ql.bd91f0161b":"Financial","oss-bindery-doc-ql.e6c58e67b3":"NPV, IRR, PMT, loan tables","oss-bindery-doc-ql.0ca6d23618":"docql console","oss-bindery-doc-ql.b6f2ae58de":"parsed, ready","oss-bindery-doc-ql.96baa70fb2":"SELECT over DocModel","oss-bindery-doc-ql.ee489284e8":"DocQL queries","oss-bindery-doc-ql.a4942c26d0":"SELECT","oss-bindery-doc-ql.8e7f00cffd":"FROM","oss-bindery-doc-ql.1c255b91e7":"WHERE","oss-bindery-doc-ql.5faa59d4bc":"Result","oss-bindery-doc-ql.c245916397":"Formula engine, 300+ Excel compatible functions","oss-bindery-doc-ql.b3087e92a3":"One query language for cells, paragraphs, slides, and shapes. JOIN across documents in the corpus.","oss-bindery-doc-ql.6bd0249a93":"DocQL, SQL like","oss-bindery-docql-plan.chrome.path":"Query plan","oss-bindery-docql-plan.chrome.status":"capability checked","oss-bindery-docql-plan.chrome.meta":"illustrative","oss-bindery-docql-plan.statement.label":"mutation statement","oss-bindery-docql-plan.statement.line1.kw":"UPDATE","oss-bindery-docql-plan.statement.line1.rest":"slides","oss-bindery-docql-plan.statement.line2.kw":"SET","oss-bindery-docql-plan.statement.line2.rest":"title = 'European operations'","oss-bindery-docql-plan.statement.line3.kw":"WHERE","oss-bindery-docql-plan.statement.line3.rest":"deck = 'board.pptx'","oss-bindery-docql-plan.statement.line4.kw":"AND","oss-bindery-docql-plan.statement.line4.rest":"title = 'International operations'","oss-bindery-docql-plan.statement.line5.kw":"RETURNING","oss-bindery-docql-plan.statement.line5.rest":"slide_number, element_id, source_part;","oss-bindery-docql-plan.stages.tokens.label":"tokens","oss-bindery-docql-plan.stages.tokens.chips.update":"UPDATE","oss-bindery-docql-plan.stages.tokens.chips.slides":"slides","oss-bindery-docql-plan.stages.tokens.chips.set":"SET","oss-bindery-docql-plan.stages.tokens.chips.title-eq":"title =","oss-bindery-docql-plan.stages.tokens.chips.new-title":"'European operations'","oss-bindery-docql-plan.stages.tokens.chips.where":"WHERE","oss-bindery-docql-plan.stages.tokens.chips.deck-eq":"deck =","oss-bindery-docql-plan.stages.tokens.chips.deck-name":"'board.pptx'","oss-bindery-docql-plan.stages.tokens.chips.and-title-eq":"AND title =","oss-bindery-docql-plan.stages.tokens.chips.old-title":"'International operations'","oss-bindery-docql-plan.stages.tokens.chips.returning":"RETURNING","oss-bindery-docql-plan.stages.ast.label":"typed AST","oss-bindery-docql-plan.stages.ast.root":"update","oss-bindery-docql-plan.stages.ast.target.k":"target","oss-bindery-docql-plan.stages.ast.target.v":"slides","oss-bindery-docql-plan.stages.ast.set.k":"set","oss-bindery-docql-plan.stages.ast.set.v":"title = 'European operations'","oss-bindery-docql-plan.stages.ast.where.k":"where","oss-bindery-docql-plan.stages.ast.where.v":"deck = 'board.pptx' AND title = 'International operations'","oss-bindery-docql-plan.stages.capability.label":"capability analysis","oss-bindery-docql-plan.stages.capability.head":"pptx connector manifest","oss-bindery-docql-plan.stages.capability.rows.slide-title.name":"slide title text","oss-bindery-docql-plan.stages.capability.rows.slide-title.state":"writable","oss-bindery-docql-plan.stages.capability.rows.slide-master.name":"slide master","oss-bindery-docql-plan.stages.capability.rows.slide-master.state":"untouched","oss-bindery-docql-plan.stages.capability.rows.source-part.name":"source part preservation","oss-bindery-docql-plan.stages.capability.rows.source-part.state":"supported","oss-bindery-docql-plan.stages.plan.label":"physical plan","oss-bindery-docql-plan.stages.plan.steps.open":"open the package and resolve the slide parts","oss-bindery-docql-plan.stages.plan.steps.rewrite":"rewrite the title runs on the two matched slides","oss-bindery-docql-plan.stages.plan.steps.preserve":"preserve every unrelated part as is","oss-bindery-docql-plan.stages.preview.label":"mutation preview","oss-bindery-docql-plan.stages.preview.slides.first.name":"slide 3","oss-bindery-docql-plan.stages.preview.slides.first.id":"el_8c21","oss-bindery-docql-plan.stages.preview.slides.first.part":"ppt/slides/slide3.xml","oss-bindery-docql-plan.stages.preview.slides.second.name":"slide 12","oss-bindery-docql-plan.stages.preview.slides.second.id":"el_9f04","oss-bindery-docql-plan.stages.preview.slides.second.part":"ppt/slides/slide12.xml","oss-bindery-docql-plan.refused.label":"second statement, read-only input format","oss-bindery-docql-plan.refused.sql":"UPDATE slides SET transition = 'morph' WHERE deck = 'archive.ppt';","oss-bindery-docql-plan.refused.diagnostic.title":"diagnostic","oss-bindery-docql-plan.refused.diagnostic.code.k":"code","oss-bindery-docql-plan.refused.diagnostic.code.v":"DOCQL-CAP-118","oss-bindery-docql-plan.refused.diagnostic.severity.k":"severity","oss-bindery-docql-plan.refused.diagnostic.severity.v":"error","oss-bindery-docql-plan.refused.diagnostic.line.k":"line","oss-bindery-docql-plan.refused.diagnostic.line.v":"1","oss-bindery-docql-plan.refused.diagnostic.column.k":"column","oss-bindery-docql-plan.refused.diagnostic.column.v":"14","oss-bindery-docql-plan.refused.diagnostic.path.k":"element path","oss-bindery-docql-plan.refused.diagnostic.path.v":"slides[*].transition","oss-bindery-docql-plan.refused.diagnostic.capability.k":"required capability","oss-bindery-docql-plan.refused.diagnostic.capability.v":"ppt.animation.transition.write","oss-bindery-docql-plan.refused.note":"Rejected at analysis time. The file is never opened for writing.","oss-bindery-docql-plan.band.left":"the planner checks capabilities before the file is opened for writing","oss-bindery-docql-plan.band.right":"analysis time, not write time","oss-bindery-docql-surface.kicker.label":"Surface","oss-bindery-docql-surface.kicker.sub":"three kinds of statement","oss-bindery-docql-surface.tag":"DOCQL","oss-bindery-docql-surface.rows.dql.family":"DQL","oss-bindery-docql-surface.rows.dql.name":"Read","oss-bindery-docql-surface.rows.dql.body":"Select, filter, traverse, join, aggregate, order, window and recurse.","oss-bindery-docql-surface.rows.dml.family":"DML","oss-bindery-docql-surface.rows.dml.name":"Change","oss-bindery-docql-surface.rows.dml.body":"Insert, update and delete typed elements with returning results and safeguards.","oss-bindery-docql-surface.rows.dol.family":"DOL","oss-bindery-docql-surface.rows.dol.name":"Operate","oss-bindery-docql-surface.rows.dol.body":"Create, convert, merge, compare, extract, generate and protect documents.","oss-bindery-docql-surface.rows.tx.family":"TX","oss-bindery-docql-surface.rows.tx.name":"Control","oss-bindery-docql-surface.rows.tx.body":"Snapshot reads, automatic statements, explicit batches, commit and rollback.","oss-bindery-docql-surface.footline.left":"the query is declarative","oss-bindery-docql-surface.footline.right":"the plan is document-aware","oss-bindery-document-parts.kicker.label":"One document","oss-bindery-document-parts.kicker.sub":"the parts that stay separate","oss-bindery-document-parts.tag":"PLAIN","oss-bindery-document-parts.part.text.name":"Words in their place","oss-bindery-document-parts.part.text.body":"Headings, paragraphs, notes, comments, footnotes and revisions remain distinct.","oss-bindery-document-parts.part.data.name":"Tables and formulas","oss-bindery-document-parts.part.data.body":"Rows, cells, calculations, chart sources and totals remain connected.","oss-bindery-document-parts.part.visuals.name":"Shapes and media","oss-bindery-document-parts.part.visuals.body":"Pictures, charts, diagrams, SmartArt and embedded objects keep their role.","oss-bindery-document-parts.part.order.name":"How it is meant to be read","oss-bindery-document-parts.part.order.body":"Sections, sheets, slides, pages, layers and relationships remain in sequence.","oss-bindery-document-parts.part.chip":"kept","oss-bindery-document-parts.foot.left":"the document keeps its parts","oss-bindery-document-parts.foot.right":"so another program can work with them","oss-bindery-dsl-budget.chrome.path":"Compact instruction","oss-bindery-dsl-budget.chrome.status":"same element identity","oss-bindery-dsl-budget.chrome.meta":"illustrative","oss-bindery-dsl-budget.tree.label":"serialised document tree","oss-bindery-dsl-budget.tree.tokens":"approx. 420 tokens","oss-bindery-dsl-budget.tree.line1":"{ \"presentation\": { \"slides\": [ { \"index\": 12,","oss-bindery-dsl-budget.tree.line2":"\"shapes\": [ { \"id\": 3, \"type\": \"chart\",","oss-bindery-dsl-budget.tree.line3":"\"geometry\": { \"x\": 912400, \"y\": 685800, \"cx\": 4876800 },","oss-bindery-dsl-budget.tree.line4":"\"style\": { \"fill\": \"scheme accent1\", \"line\": \"hairline\" },","oss-bindery-dsl-budget.tree.line5":"\"chart\": { \"title\": \"Revenue\", \"series\": [","oss-bindery-dsl-budget.tree.line6":"{ \"name\": \"Actual\", \"source\": \"Data!B2:B11\" }","oss-bindery-dsl-budget.tree.fold":"34 more lines of geometry, styles and sibling shapes","oss-bindery-dsl-budget.dsl.label":"compact DSL path","oss-bindery-dsl-budget.dsl.tokens":"11 tokens","oss-bindery-dsl-budget.dsl.line1":"deck(\"board.pptx\").slide(12).chart(\"Revenue\").series(\"Actual\")","oss-bindery-dsl-budget.dsl.line2":".source(\"Data!B2:B13\")","oss-bindery-dsl-budget.identity.note":"both forms resolve to one identity","oss-bindery-dsl-budget.identity.id":"el_7f3c","oss-bindery-dsl-budget.identity.part":"ppt/charts/chart1.xml","oss-bindery-dsl-budget.preview.title":"preview returned with the compact path","oss-bindery-dsl-budget.preview.slide.k":"slide","oss-bindery-dsl-budget.preview.slide.v":"12","oss-bindery-dsl-budget.preview.chart.k":"chart","oss-bindery-dsl-budget.preview.chart.v":"Revenue","oss-bindery-dsl-budget.preview.old.k":"old range","oss-bindery-dsl-budget.preview.old.v":"Data!B2:B11","oss-bindery-dsl-budget.preview.new.k":"new range","oss-bindery-dsl-budget.preview.new.v":"Data!B2:B13","oss-bindery-dsl-budget.ambiguity.title":"two candidates, no mutation","oss-bindery-dsl-budget.ambiguity.path":"deck(\"board.pptx\").slide(4).chart().series(\"Actual\")","oss-bindery-dsl-budget.ambiguity.candidate-a":"slide 4, shape 3, untitled chart","oss-bindery-dsl-budget.ambiguity.candidate-b":"slide 4, shape 5, untitled chart","oss-bindery-dsl-budget.ambiguity.note":"An ambiguous short path returns the candidates and the fields that distinguish them. Neither chart is mutated.","oss-bindery-dsl-budget.band.left":"the short form keeps the same refusal and preview semantics","oss-bindery-dsl-budget.band.right":"same identity, fewer tokens","oss-bindery-dsl-forms.kicker.label":"Path","oss-bindery-dsl-forms.kicker.sub":"what it can name","oss-bindery-dsl-forms.tag":"DSL","oss-bindery-dsl-forms.rows.doc.token":"doc","oss-bindery-dsl-forms.rows.doc.name":"Document structure","oss-bindery-dsl-forms.rows.doc.body":"Section, heading, paragraph, table, comment, revision, field or equation.","oss-bindery-dsl-forms.rows.sheet.token":"sheet","oss-bindery-dsl-forms.rows.sheet.name":"Workbook structure","oss-bindery-dsl-forms.rows.sheet.body":"Sheet, table, range, cell, name, formula, chart, pivot or validation.","oss-bindery-dsl-forms.rows.slide.token":"slide","oss-bindery-dsl-forms.rows.slide.name":"Presentation structure","oss-bindery-dsl-forms.rows.slide.body":"Slide, master, layout, placeholder, notes, shape, chart or animation.","oss-bindery-dsl-forms.rows.asset.token":"asset","oss-bindery-dsl-forms.rows.asset.name":"Shared content","oss-bindery-dsl-forms.rows.asset.body":"Image, media, font, OLE payload, relationship or package resource.","oss-bindery-dsl-forms.footline.left":"short enough for an agent","oss-bindery-dsl-forms.footline.right":"exact enough for a writer","oss-bindery-edit-cases.head.label":"Typical change","oss-bindery-edit-cases.head.sub":"what stays untouched","oss-bindery-edit-cases.head.tag":"EDIT","oss-bindery-edit-cases.row.contract.change":"Contract","oss-bindery-edit-cases.row.contract.name":"Replace one clause","oss-bindery-edit-cases.row.contract.body":"Comments, revisions, numbering, footnotes, fields and other sections remain.","oss-bindery-edit-cases.row.workbook.change":"Workbook","oss-bindery-edit-cases.row.workbook.name":"Update an assumption","oss-bindery-edit-cases.row.workbook.body":"Formulas recalculate; names, charts, validations and unrelated sheets remain.","oss-bindery-edit-cases.row.deck.change":"Deck","oss-bindery-edit-cases.row.deck.name":"Refresh a chart","oss-bindery-edit-cases.row.deck.body":"Master, notes, builds, SmartArt, OLE objects and other slides remain.","oss-bindery-edit-cases.row.archive.change":"Archive","oss-bindery-edit-cases.row.archive.name":"Strip release metadata","oss-bindery-edit-cases.row.archive.body":"Document content and visual structure remain while selected fields change.","oss-bindery-edit-cases.state":"remains","oss-bindery-edit-cases.foot.left":"the requested change is explicit","oss-bindery-edit-cases.foot.right":"so the untouched document can remain untouched","oss-bindery-eng-close-banner.eyebrow":"The whole engineering argument","oss-bindery-eng-close-banner.lead":"Open it once.","oss-bindery-eng-close-banner.leadAccent":"Keep working on the document.","oss-bindery-eng-close-banner.paragraphs.p1":"Native readers honour the container. The canonical model preserves the document. Minimal writes preserve everything outside the requested change. Generators create the same semantic objects that readers return. DocQL, the compact DSL, MCP, Rust, Python and the command line all address the same nodes and use the same capability checks.","oss-bindery-eng-close-banner.paragraphs.p2":"Bindery is more than a format parser. The format decides how bytes are read and written. It does not decide how a developer, operator or agent has to ask for a paragraph, cell, chart, SmartArt node, embedded object, equation, comment, revision or relationship.","oss-bindery-eng-close-banner.paragraphs.p3":"Capability discovery closes the loop. The current build can state which formats, features and mutations it supports, and the planner uses that answer before opening a write transaction. The public surface can be ambitious without becoming vague because every operation ultimately resolves to a connector capability, a semantic node and a native write plan.","oss-bindery-eng-close-banner.panel.header":"One canonical model","oss-bindery-eng-close-banner.panel.tag":"the continuing document","oss-bindery-eng-close-banner.chips.read":"read native formats","oss-bindery-eng-close-banner.chips.interpret":"interpret structure","oss-bindery-eng-close-banner.chips.edit":"edit in place","oss-bindery-eng-close-banner.chips.generate":"generate new files","oss-bindery-eng-close-banner.chips.query":"query and compare","oss-bindery-eng-close-banner.chips.recalculate":"recalculate workbooks","oss-bindery-eng-close-banner.chips.agents":"operate through agents","oss-bindery-eng-close-banner.chips.write":"write native formats","oss-bindery-eng-close-banner.chips.mark":"one model","oss-bindery-eng-close-banner.verdict":"the file format changes, the document operation does not","oss-bindery-eng-close-banner.footline":"documents made programmable, without reducing them to text","oss-bindery-estate-kinds.head.label":"Estate","oss-bindery-estate-kinds.head.sub":"what one organisation actually holds","oss-bindery-estate-kinds.head.tag":"BUSINESS","oss-bindery-estate-kinds.row.legal.area":"Legal","oss-bindery-estate-kinds.row.legal.name":"Contracts and policies","oss-bindery-estate-kinds.row.legal.body":"DOC, DOCX, PDF, RTF and OpenDocument text across several decades.","oss-bindery-estate-kinds.row.finance.area":"Finance","oss-bindery-estate-kinds.row.finance.name":"Models and reports","oss-bindery-estate-kinds.row.finance.body":"XLS, XLSX, XLSB, ODS, Numbers and exported tables.","oss-bindery-estate-kinds.row.leadership.area":"Leadership","oss-bindery-estate-kinds.row.leadership.name":"Presentations","oss-bindery-estate-kinds.row.leadership.body":"PPT, PPTX, ODP and Keynote with charts, notes and embedded objects.","oss-bindery-estate-kinds.row.publishing.area":"Publishing","oss-bindery-estate-kinds.row.publishing.name":"Output and exchange","oss-bindery-estate-kinds.row.publishing.body":"PDF, HTML, EPUB, LaTeX, Markdown and delimited data.","oss-bindery-estate-kinds.foot.left":"the business sees one estate","oss-bindery-estate-kinds.foot.right":"Bindery finally does too","oss-bindery-estate-map.chrome.path":"Document estate","oss-bindery-estate-map.chrome.status":"every document meets one edge","oss-bindery-estate-map.chrome.meta":"six current routes","oss-bindery-estate-map.dept.legal.name":"Legal","oss-bindery-estate-map.dept.finance.name":"Finance","oss-bindery-estate-map.dept.leadership.name":"Leadership","oss-bindery-estate-map.dept.publishing.name":"Publishing","oss-bindery-estate-map.today.head":"Today: six technical routes for one estate","oss-bindery-estate-map.route.desktop":"Vendor desktop automation","oss-bindery-estate-map.route.pdfService":"PDF service","oss-bindery-estate-map.route.sheetScripts":"Spreadsheet scripts","oss-bindery-estate-map.route.iworkManual":"iWork manual step","oss-bindery-estate-map.route.genVendor":"Document-generation vendor","oss-bindery-estate-map.route.convertFolder":"Conversion utilities folder","oss-bindery-estate-map.edge.head":"With Bindery","oss-bindery-estate-map.edge.name":"Bindery","oss-bindery-estate-map.edge.tag":"one common edge, not another route","oss-bindery-estate-map.op.open":"OPEN","oss-bindery-estate-map.op.query":"QUERY","oss-bindery-estate-map.op.edit":"EDIT","oss-bindery-estate-map.op.generate":"GENERATE","oss-bindery-estate-map.op.compare":"COMPARE","oss-bindery-estate-map.op.export":"EXPORT","oss-bindery-estate-map.band.text":"the routes were the complexity, not the documents","oss-bindery-estate-map.band.meta":"one programmable layer","oss-bindery-everyday-card.ce788a49be":"The kind you write","oss-bindery-everyday-card.e1af701eb7":"Numbers in boxes","oss-bindery-everyday-card.81afef88b2":"Pictures and words","oss-bindery-everyday-card.578657ab89":"The frozen page","oss-bindery-everyday-card.e9050cd2aa":"Plain typed text","oss-bindery-everyday-card.dcb7ce81fe":"A photo of paper","oss-bindery-everyday-card.d8863607e0":"Think of an old filing cabinet","oss-bindery-everyday-card.946f6212b5":"Over the years you collect letters, forms, lists, and printouts. They come in every shape. Some open one way, some another. Finding the right thing is a chore.","oss-bindery-everyday-card.cc2fe9ea69":"Bindery is the helper who reads them all","oss-bindery-everyday-card.d7bacdb83e":"It is the small, quiet part inside a computer that can open any of those documents and read what is inside, no matter what made them. You never see it. It just works in the background.","oss-bindery-everyday-card.4c70375485":"So the AI can answer about your papers","oss-bindery-everyday-card.606e912e28":"When you ask a computer a question about your own documents, something first has to read them. That something is Bindery. It hands the words over, cleanly, so the answer can be about your real papers.","oss-bindery-everyday-card.4a2c8c18e2":"Many shapes of paper","oss-bindery-everyday-card.06489d56da":"One quiet helper reads them all","oss-bindery-everyday-card.23382e7ddb":"The reader","oss-bindery-everyday-card.f9cde053de":"Opens every one","oss-bindery-everyday-card.d6df2de0b0":"You do not pick the right tool. It figures the document out for you.","oss-bindery-everyday-formats.kicker.label":"Files","oss-bindery-everyday-formats.kicker.sub":"the ordinary names people recognise","oss-bindery-everyday-formats.tag":"OPEN","oss-bindery-everyday-formats.kind.documents.name":"Documents","oss-bindery-everyday-formats.kind.documents.formats":"Word, OpenDocument, Pages, RTF and PDF","oss-bindery-everyday-formats.kind.documents.body":"Letters, policies, reports, forms and fixed pages.","oss-bindery-everyday-formats.kind.spreadsheets.name":"Spreadsheets","oss-bindery-everyday-formats.kind.spreadsheets.formats":"Excel, OpenDocument and Numbers","oss-bindery-everyday-formats.kind.spreadsheets.body":"Budgets, plans, lists, calculations and charts.","oss-bindery-everyday-formats.kind.presentations.name":"Presentations","oss-bindery-everyday-formats.kind.presentations.formats":"PowerPoint, OpenDocument and Keynote","oss-bindery-everyday-formats.kind.presentations.body":"Slides, notes, diagrams, video and speaker material.","oss-bindery-everyday-formats.kind.publishing.name":"Publishing","oss-bindery-everyday-formats.kind.publishing.formats":"EPUB, LaTeX, Markdown and HTML","oss-bindery-everyday-formats.kind.publishing.body":"Books, technical writing, websites and portable text.","oss-bindery-everyday-formats.foot.left":"different kinds of file","oss-bindery-everyday-formats.foot.right":"one way for another program to open them","oss-bindery-fidelity-states.kicker.label":"State","oss-bindery-fidelity-states.kicker.sub":"what happened to an element","oss-bindery-fidelity-states.tag":"MIGRATE","oss-bindery-fidelity-states.state.preserved.token":"preserved","oss-bindery-fidelity-states.state.preserved.name":"Native equivalent","oss-bindery-fidelity-states.state.preserved.body":"Meaning and editability retained in the destination representation.","oss-bindery-fidelity-states.state.transformed.token":"transformed","oss-bindery-fidelity-states.state.transformed.name":"Different native form","oss-bindery-fidelity-states.state.transformed.body":"Meaning retained through an explicit structural conversion.","oss-bindery-fidelity-states.state.rendered.token":"rendered","oss-bindery-fidelity-states.state.rendered.name":"Visual form","oss-bindery-fidelity-states.state.rendered.body":"Appearance retained where the destination has no editable equivalent.","oss-bindery-fidelity-states.state.omitted.token":"omitted","oss-bindery-fidelity-states.state.omitted.name":"Not represented","oss-bindery-fidelity-states.state.omitted.body":"The exact element, reason and destination limitation are reported.","oss-bindery-fidelity-states.footline.left":"conversion produces a file","oss-bindery-fidelity-states.footline.right":"the ledger explains the file","oss-bindery-file-shelf.console.title":"File shelf","oss-bindery-file-shelf.console.subtitle":"Six documents open into the structures they contain.","oss-bindery-file-shelf.chrome.path":"Four decades, one shelf","oss-bindery-file-shelf.chrome.status":"all six open","oss-bindery-file-shelf.chrome.meta":"illustrative figures","oss-bindery-file-shelf.file.letter.kind":"A letter","oss-bindery-file-shelf.file.letter.year":"1998","oss-bindery-file-shelf.file.letter.name":"notes.doc","oss-bindery-file-shelf.file.letter.note":"the name says .doc, the contents are Rich Text","oss-bindery-file-shelf.file.letter.chip":"opens correctly","oss-bindery-file-shelf.file.budget.kind":"A household budget","oss-bindery-file-shelf.file.budget.year":"2007","oss-bindery-file-shelf.file.deck.kind":"A Keynote deck","oss-bindery-file-shelf.file.deck.year":"2016","oss-bindery-file-shelf.file.contract.kind":"A modern contract","oss-bindery-file-shelf.file.contract.year":"this morning","oss-bindery-file-shelf.file.policy.kind":"A shared policy","oss-bindery-file-shelf.file.policy.year":"OpenDocument","oss-bindery-file-shelf.file.form.kind":"A printed form","oss-bindery-file-shelf.file.form.year":"fixed pages","oss-bindery-file-shelf.summary.outline":"outline","oss-bindery-file-shelf.summary.workbook":"sheets","oss-bindery-file-shelf.summary.slides":"slides","oss-bindery-file-shelf.summary.sections":"sections","oss-bindery-file-shelf.summary.headings":"headings","oss-bindery-file-shelf.summary.pages":"fixed pages","oss-bindery-file-shelf.rail.label":"one reading surface","oss-bindery-file-shelf.band.text":"every file opens as what it is, not as what it is called","oss-bindery-file-shelf.band.meta":"four decades, one door","oss-bindery-format-matrix.041a5dec48":"Format","oss-bindery-format-matrix.7862cc5510":"read, write, query","oss-bindery-format-matrix.d5956c7905":"17 formats, one API","oss-bindery-format-matrix.918fcc20eb":"Query target","oss-bindery-format-matrix.f949cc75ef":"DocQL","oss-bindery-format-matrix.592789518f":"Round trip","oss-bindery-format-matrix.4a48932789":"Write","oss-bindery-format-matrix.84dc1a571f":"Parse fidelity","oss-bindery-format-matrix.852b438f91":"Read","oss-bindery-format-matrix.5594e5668b":"Emit structured content to LaTeX and Markdown for downstream tooling.","oss-bindery-format-matrix.e4a15cd861":"tex, md","oss-bindery-format-matrix.f498930311":"LaTeX, Markdown","oss-bindery-format-matrix.38ec68fd67":"Writer only, full EPUB 3.0 generation with navigation and metadata.","oss-bindery-format-matrix.f3d232e87e":"EPUB 3.0","oss-bindery-format-matrix.18cafb6071":"Writers (output)","oss-bindery-format-matrix.90893baa74":"Paragraphs, tables and fields parsed; RTF dialects vary.","oss-bindery-format-matrix.ac98f252c1":"RTF","oss-bindery-format-matrix.f56c8cce21":"Text, structure, and tables extracted, scanned PDFs need OCR (separate).","oss-bindery-format-matrix.d613d88cb2":"PDF","oss-bindery-format-matrix.e214b8a299":"Document","oss-bindery-format-matrix.bfb1e1225b":"iWork Archive parsed for read and query, no write path.","oss-bindery-format-matrix.1454350f12":"pages, numbers, key","oss-bindery-format-matrix.ebebfa47b9":"iWork","oss-bindery-format-matrix.24b522c6cd":"Read fidelity full, write back is partial.","oss-bindery-format-matrix.de290a6e2d":"doc, xls, ppt","oss-bindery-format-matrix.9f209a086a":"Legacy MS","oss-bindery-format-matrix.d5b563ac6e":"Legacy and iWork","oss-bindery-format-matrix.b0a038b489":"Round trip preserves namespaces, custom OOo plugins flagged.","oss-bindery-format-matrix.426c945f8e":"odt, ods, odp","oss-bindery-format-matrix.ce51f5620f":"ODF","oss-bindery-format-matrix.eab906fab1":"Open Document","oss-bindery-format-matrix.55db2e11ea":"Binary workbook stream parsed, write is best effort.","oss-bindery-format-matrix.2161d29155":"Excel binary","oss-bindery-format-matrix.dd325fae30":"Format-specific extensions surfaced, not dropped.","oss-bindery-format-matrix.15c6313344":"docx, xlsx, pptx","oss-bindery-format-matrix.44363ccb82":"Word","oss-bindery-format-matrix.a4313c8888":"OOXML","oss-bindery-four-native-paths.chrome.path":"Native readers","oss-bindery-four-native-paths.chrome.status":"four native paths, one record shape","oss-bindery-four-native-paths.chrome.meta":"native readers","oss-bindery-four-native-paths.path.ole.name":"OLE compound","oss-bindery-four-native-paths.path.ole.diagnostic":"bad chain link stops in the OLE reader","oss-bindery-four-native-paths.path.package.name":"Package","oss-bindery-four-native-paths.path.package.diagnostic":"undeclared relationship stops in the package reader","oss-bindery-four-native-paths.path.iwork.name":"iWork bundle","oss-bindery-four-native-paths.path.iwork.diagnostic":"truncated frame stops in the iWork reader","oss-bindery-four-native-paths.path.streams.name":"RTF / PDF streams","oss-bindery-four-native-paths.path.streams.diagnostic":"unbalanced group stops in the stream reader","oss-bindery-four-native-paths.record.label":"source element record","oss-bindery-four-native-paths.fields.head":"the same six fields at every end","oss-bindery-four-native-paths.record.kind":"semantic kind","oss-bindery-four-native-paths.record.identity":"local identity","oss-bindery-four-native-paths.record.span":"source span or part","oss-bindery-four-native-paths.record.style":"style reference","oss-bindery-four-native-paths.record.parent":"parent","oss-bindery-four-native-paths.record.children":"children","oss-bindery-four-native-paths.band.left":"commonality begins after the native structure is honoured","oss-bindery-four-native-paths.band.right":"exact below, common above","oss-bindery-generation-layers.kicker.label":"Generation","oss-bindery-generation-layers.kicker.sub":"what is decided where","oss-bindery-generation-layers.tag":"CREATE","oss-bindery-generation-layers.layer.content.name":"What the document says","oss-bindery-generation-layers.layer.content.body":"Text, values, formulas, media, equations and references.","oss-bindery-generation-layers.layer.semantics.name":"What each element is","oss-bindery-generation-layers.layer.semantics.body":"Heading, table, chart, note, field, relationship or another typed object.","oss-bindery-generation-layers.layer.presentation.name":"How it appears","oss-bindery-generation-layers.layer.presentation.body":"Styles, masters, layouts, geometry, numbering and print configuration.","oss-bindery-generation-layers.layer.writer.name":"How the target stores it","oss-bindery-generation-layers.layer.writer.body":"Parts, streams, relationships, indexes, manifests and native records.","oss-bindery-generation-layers.foot.left":"meaning is chosen once","oss-bindery-generation-layers.foot.right":"encoding belongs to the writer","oss-bindery-glance.5ff47dfe86":"Compare approaches","oss-bindery-glance.6b5eb5323e":"Rust crate","oss-bindery-glance.9515a2fec1":"one crate, the whole layer","oss-bindery-glance.aaaba6a7b0":"PyO3","oss-bindery-glance.6e3604888c":"Python","oss-bindery-glance.d18284f699":"Rust 2024","oss-bindery-glance.89b86ab0e6":"Language","oss-bindery-glance.fef8e889dc":"Core","oss-bindery-glance.f949cc75ef":"DocQL","oss-bindery-glance.a618b4be8d":"Query","oss-bindery-glance.2b961dea1d":"Functions","oss-bindery-glance.2804d9f16a":"Formats","oss-bindery-glance.64ca49dfd9":"Auto format detection","oss-bindery-glance.7d1ce8842f":"Round trip read and write","oss-bindery-glance.6a1dd853b7":"DocQL across the corpus","oss-bindery-glance.d5956c7905":"17 formats, one API","oss-bindery-glance.93739feed1":"One API spans 17 formats. DocQL queries work across the corpus, round trips preserve supported features and format detection is on by default.","oss-bindery-glance.c3d815e51c":"One parser, one query language","oss-bindery-glance.029b7c0b8c":"Bindery","oss-bindery-glance.baa58ac0d3":"Auto detect not standard","oss-bindery-glance.ad30ab3079":"Round trip varies per format","oss-bindery-glance.8ad8e1c5b1":"No shared query language","oss-bindery-glance.eda069ebf1":"N libraries to upgrade","oss-bindery-glance.08c5fb0272":"Different crate per format. Different API. Different update cadence. The glue layer ends up as half the codebase.","oss-bindery-glance.fb25fc6f15":"A different parser per file type","oss-bindery-glance.8373930a0a":"Per format glue","oss-bindery-glue-pile.e4058af47b":"crate A, own API","oss-bindery-glue-pile.511e78ded4":"crate B, own API","oss-bindery-glue-pile.8b44fd3ec7":"crate C, own API","oss-bindery-glue-pile.521a23ef18":"crate D, read only","oss-bindery-glue-pile.00d9ef565f":"crate E, own quirks","oss-bindery-glue-pile.056f7ba2c2":"crate F, dialects","oss-bindery-glue-pile.a979f7859c":"Library per format","oss-bindery-glue-pile.c62e051bb2":"You glue parsers together","oss-bindery-glue-pile.75bb140b58":"Word goes through one library, Excel through another, PDF through a third. Each has its own update cadence and quirks. Maintenance becomes a portfolio job.","oss-bindery-glue-pile.2d3231ce48":"Ambiguity","oss-bindery-glue-pile.3f31094da7":"Extensions lie","oss-bindery-glue-pile.54195e0d90":"A .docx that is actually a .doc. A PDF that is really a JPEG inside a wrapper. Without auto detect, you spend the morning debugging.","oss-bindery-glue-pile.a618b4be8d":"Query","oss-bindery-glue-pile.aa5493ca9c":"No one query language","oss-bindery-glue-pile.674843dd99":"Find every cell that depends on Sheet2.A1 across every spreadsheet in the corpus? That is custom code per format.","oss-bindery-glue-pile.592789518f":"Round trip","oss-bindery-glue-pile.24b66d4154":"Read only is half a job","oss-bindery-glue-pile.3ece08ec2b":"Most parsers can extract, few can write back. Generating documents from data still needs a separate stack.","oss-bindery-glue-pile.80833e3447":"The glue layer","oss-bindery-glue-pile.2d2a63e864":"N crates, N APIs, N update windows","oss-bindery-glue-pile.00e3cf8504":"owns every bug","oss-bindery-glue-pile.d48556f641":"The maintenance surface grows faster than the product ships.","oss-bindery-glue-pile.194b62812b":"Bindery replaces the portfolio with one Rust crate, one API and one update cadence across 17 formats.","oss-bindery-hero-glyph.chrome.title":"Document model","oss-bindery-hero-glyph.brandLabel":"Bindery","oss-bindery-hero-glyph.3fe7888fed":"round seven","oss-bindery-hero-glyph.6b5eb5323e":"Automatic detection","oss-bindery-hero-glyph.d5956c7905":"Many formats, one API","oss-bindery-hero-glyph.e2ae20d9ae":"Rust","oss-bindery-hero-glyph.bff628cf03":"Readers","oss-bindery-hero-glyph.699e5155da":"Unified API","oss-bindery-hero-glyph.6e875951a6":"Presentation","oss-bindery-hero-glyph.cc6fdf1b09":"Spreadsheet","oss-bindery-hero-glyph.e214b8a299":"Document","oss-bindery-hero-glyph.34fa9578a0":"      // 12 tables","oss-bindery-hero-glyph.00b2aad45d":"Some","oss-bindery-hero-glyph.8ff1364169":"          // 48 312 chars","oss-bindery-hero-glyph.d91dcecb53":"// one API opens .doc, .docx, .odt, .rtf, .pages","oss-bindery-hero-glyph.8a36fddbde":"// => Some(FileFormat::Docx)","oss-bindery-hero-glyph.6ea2471315":"// format is read from the magic bytes, not the extension","oss-bindery-intake-contract.kicker.label":"One intake","oss-bindery-intake-contract.kicker.sub":"four outcomes","oss-bindery-intake-contract.tag":"DETECTED","oss-bindery-intake-contract.outcome.document.name":"Document","oss-bindery-intake-contract.outcome.document.body":"Word, OpenDocument text, Pages, RTF and the other flowing document forms.","oss-bindery-intake-contract.outcome.workbook.name":"Workbook","oss-bindery-intake-contract.outcome.workbook.body":"Excel, XLSB, OpenDocument spreadsheet and Numbers.","oss-bindery-intake-contract.outcome.presentation.name":"Presentation","oss-bindery-intake-contract.outcome.presentation.body":"PowerPoint, OpenDocument presentation and Keynote.","oss-bindery-intake-contract.outcome.fixed-layout.name":"Fixed layout","oss-bindery-intake-contract.outcome.fixed-layout.body":"PDF pages, objects, text, vectors, annotations and resources.","oss-bindery-intake-contract.foot.left":"the bytes identify the family","oss-bindery-intake-contract.foot.right":"the model identifies the work","oss-bindery-intake-evidence.chrome.path":"File intake","oss-bindery-intake-evidence.chrome.status":"five files identified by their bytes","oss-bindery-intake-evidence.chrome.meta":"detection kept as evidence","oss-bindery-intake-evidence.strip.signature":"signature","oss-bindery-intake-evidence.strip.member":"settled by","oss-bindery-intake-evidence.false-pdf.note":"named pdf, bytes say workbook","oss-bindery-intake-evidence.edge.label":"one intake edge","oss-bindery-intake-evidence.handle.source":"source identity attached","oss-bindery-intake-evidence.invariant":"Detection changes which reader runs, never which operation API the caller receives.","oss-bindery-intake-evidence.band.left":"the evidence travels with the open session","oss-bindery-intake-evidence.band.right":"the reader follows the evidence","oss-bindery-integration.0cbc58f0cf":"Rust crate","oss-bindery-integration.8da8d88752":"Native API for embedding in services. Zero copy where the format allows.","oss-bindery-integration.deb1b86ec0":"publishing in the seventh round","oss-bindery-integration.c83cd4e1af":"use dweve_bindery::open;","oss-bindery-integration.0d2391bee0":"let doc = open(\"report.xlsx\")?;","oss-bindery-integration.4781adc741":"for cell in doc.cells() { /* ... */ }","oss-bindery-integration.ee78a232ed":"Python (PyO3)","oss-bindery-integration.a32ee321e1":"PyO3 bindings ship the same engine with an idiomatic Python API for data pipelines.","oss-bindery-integration.1f0a9eda02":"publishing in the seventh round","oss-bindery-integration.f0ff45cbab":"import dweve_bindery as bd","oss-bindery-integration.9f8a297387":"doc = bd.open(\"report.xlsx\")","oss-bindery-integration.86e6a493f5":"rows = doc.query(\"SELECT cells\")","oss-bindery-integration.700b401ca5":"CLI","oss-bindery-integration.1fb29341eb":"The docql binary for one shot inspection, conversion, and queries in shell pipelines.","oss-bindery-integration.111f48664b":"bindery inspect mystery.doc","oss-bindery-integration.7af50abba5":"# detected from magic bytes","oss-bindery-integration.02d0513cdd":"bindery convert in.docx out.md","oss-bindery-integration.c53db4753d":"docql 'SELECT cells WHERE ...'","oss-bindery-integration.cafaaf43f2":"integration surfaces","oss-bindery-integration.9cba7e2fd3":"one engine, three surfaces","oss-bindery-integration.19f7b58dae":"no external service","oss-bindery-integration.4abeadc1f9":"Same detect, parse, query, write engine behind every surface.","oss-bindery-integration.73972c59f7":"Start with one document flow","oss-bindery-living-visuals.chrome.path":"One slide, four living objects","oss-bindery-living-visuals.chrome.status":"still editable","oss-bindery-living-visuals.chrome.meta":"illustrative figures","oss-bindery-living-visuals.chart.name":"A chart","oss-bindery-living-visuals.chart.behind":"the numbers and labels behind the bars","oss-bindery-living-visuals.chart.change":"a label renamed, the slide updates","oss-bindery-living-visuals.diagram.name":"A diagram","oss-bindery-living-visuals.diagram.behind":"four ideas and the links between them","oss-bindery-living-visuals.diagram.change":"a step renamed, the slide updates","oss-bindery-living-visuals.equation.name":"An equation","oss-bindery-living-visuals.equation.behind":"the expression as editable text","oss-bindery-living-visuals.equation.change":"a symbol changed, the slide updates","oss-bindery-living-visuals.embedded.name":"An embedded file","oss-bindery-living-visuals.embedded.behind":"the real workbook and its preview","oss-bindery-living-visuals.embedded.change":"a file name corrected, the slide updates","oss-bindery-living-visuals.front.label":"on the slide","oss-bindery-living-visuals.behind.label":"behind it","oss-bindery-living-visuals.flat.head":"the same slide flattened","oss-bindery-living-visuals.flat.caption":"one picture: no part can be changed on its own","oss-bindery-living-visuals.band.text":"a change to the part is a change to the slide","oss-bindery-living-visuals.band.meta":"objects, not pixels","oss-bindery-local-promise.kicker.label":"What happens","oss-bindery-local-promise.kicker.sub":"and what does not","oss-bindery-local-promise.tag":"PRIVATE","oss-bindery-local-promise.group.happens":"happens","oss-bindery-local-promise.group.doesNot":"does not","oss-bindery-local-promise.read.name":"The file is read locally","oss-bindery-local-promise.read.body":"The program already holding it receives the structure directly.","oss-bindery-local-promise.change.name":"The document can be changed","oss-bindery-local-promise.change.body":"The exact requested elements are written back under the caller’s control.","oss-bindery-local-promise.upload.name":"No upload is required","oss-bindery-local-promise.upload.body":"No hosted document processor receives a copy as part of the operation.","oss-bindery-local-promise.code.name":"Embedded code is not run","oss-bindery-local-promise.code.body":"Macros, scripts and active objects remain data unless another program chooses otherwise.","oss-bindery-local-promise.foot.left":"the document stays in the same boundary","oss-bindery-local-promise.foot.right":"and opening is not execution","oss-bindery-mcp-session.console.title":"Focused MCP session","oss-bindery-mcp-session.console.subtitle":"Eleven focused calls update a deck without sending whole files.","oss-bindery-mcp-session.chrome.path":"MCP session","oss-bindery-mcp-session.chrome.status":"written and compared","oss-bindery-mcp-session.chrome.meta":"illustrative","oss-bindery-mcp-session.task.label":"agent task","oss-bindery-mcp-session.task.text":"Update the executive summary and the chart on slide 8 using the figures in Forecast.xlsx.","oss-bindery-mcp-session.calls.01.method":"resources/list","oss-bindery-mcp-session.calls.01.note":"workbook and deck registered","oss-bindery-mcp-session.calls.01.size":"0.6 KB","oss-bindery-mcp-session.calls.02.method":"workbook/sheets","oss-bindery-mcp-session.calls.02.note":"4 sheets listed","oss-bindery-mcp-session.calls.02.size":"0.3 KB","oss-bindery-mcp-session.calls.03.method":"deck/slides","oss-bindery-mcp-session.calls.03.note":"24 slides listed","oss-bindery-mcp-session.calls.03.size":"0.8 KB","oss-bindery-mcp-session.calls.04.method":"cells/read","oss-bindery-mcp-session.calls.04.note":"Forecast!B2:F13 only","oss-bindery-mcp-session.calls.04.size":"1.9 KB","oss-bindery-mcp-session.calls.05.method":"slide/inspect","oss-bindery-mcp-session.calls.05.note":"slide 8 elements, notes and relationships","oss-bindery-mcp-session.calls.05.size":"2.4 KB","oss-bindery-mcp-session.calls.06.method":"chart/resolve","oss-bindery-mcp-session.calls.06.note":"series Actual, identity el_51ab","oss-bindery-mcp-session.calls.06.size":"0.4 KB","oss-bindery-mcp-session.calls.07.method":"edit/preview","oss-bindery-mcp-session.calls.07.note":"2 targets, 1 warning","oss-bindery-mcp-session.calls.07.size":"1.1 KB","oss-bindery-mcp-session.calls.08.method":"edit/apply","oss-bindery-mcp-session.calls.08.note":"expected v17, actual v19","oss-bindery-mcp-session.calls.08.size":"version changed","oss-bindery-mcp-session.calls.09.method":"cells/read","oss-bindery-mcp-session.calls.09.note":"same range, refreshed","oss-bindery-mcp-session.calls.09.size":"1.9 KB","oss-bindery-mcp-session.calls.10.method":"edit/apply","oss-bindery-mcp-session.calls.10.note":"expected v19, applied","oss-bindery-mcp-session.calls.10.size":"0.9 KB","oss-bindery-mcp-session.calls.11.method":"document/compare","oss-bindery-mcp-session.calls.11.note":"structural difference returned","oss-bindery-mcp-session.calls.11.size":"1.3 KB","oss-bindery-mcp-session.context.title":"context received","oss-bindery-mcp-session.context.workbook.name":"full workbook","oss-bindery-mcp-session.context.workbook.size":"3.1 MB","oss-bindery-mcp-session.context.deck.name":"full deck","oss-bindery-mcp-session.context.deck.size":"18.4 MB","oss-bindery-mcp-session.context.never":"never in context","oss-bindery-mcp-session.context.received.name":"eleven calls received","oss-bindery-mcp-session.context.received.size":"11.6 KB","oss-bindery-mcp-session.context.received.note":"everything the agent saw","oss-bindery-mcp-session.result.title":"final result","oss-bindery-mcp-session.result.cells.k":"modified cells","oss-bindery-mcp-session.result.cells.v":"Forecast!B4, C4, D7, E11","oss-bindery-mcp-session.result.series.k":"chart series","oss-bindery-mcp-session.result.series.v":"Revenue, Actual","oss-bindery-mcp-session.result.part.k":"slide part","oss-bindery-mcp-session.result.part.v":"ppt/slides/slide8.xml","oss-bindery-mcp-session.result.hashes.k":"output hashes","oss-bindery-mcp-session.result.hashes.v":"pptx 77d2 5f18, comparison 0c3a 9e61","oss-bindery-mcp-session.band.left":"the full workbook and deck never entered the context","oss-bindery-mcp-session.band.right":"version checked, then written","oss-bindery-mcp-surface.console.title":"MCP work cycle","oss-bindery-mcp-surface.console.subtitle":"Inspect, focus, plan, then apply a precise document change.","oss-bindery-mcp-surface.kicker.label":"MCP","oss-bindery-mcp-surface.kicker.sub":"the common work cycle","oss-bindery-mcp-surface.tag":"AGENT","oss-bindery-mcp-surface.steps.inspect.name":"Inspect","oss-bindery-mcp-surface.steps.inspect.body":"List documents, outlines, sheets, slides, styles, assets and capabilities.","oss-bindery-mcp-surface.steps.focus.name":"Focus","oss-bindery-mcp-surface.steps.focus.body":"Fetch exact elements and their local context rather than the entire file.","oss-bindery-mcp-surface.steps.plan.name":"Plan","oss-bindery-mcp-surface.steps.plan.body":"Resolve a DSL path or statement and return targets, warnings and expected changes.","oss-bindery-mcp-surface.steps.apply.name":"Apply","oss-bindery-mcp-surface.steps.apply.body":"Write under an expected version, then return the new identity and comparison.","oss-bindery-mcp-surface.footline.left":"small context in","oss-bindery-mcp-surface.footline.right":"precise document work out","oss-bindery-migration-ledger.chrome.path":"Migration ledger","oss-bindery-migration-ledger.chrome.status":"five features followed","oss-bindery-migration-ledger.chrome.meta":"illustrative","oss-bindery-migration-ledger.source.name":"Keynote deck","oss-bindery-migration-ledger.source.sub":"one source, five features followed","oss-bindery-migration-ledger.destination.pptx.label":"PPTX","oss-bindery-migration-ledger.destination.pptx.run":"run one, native package","oss-bindery-migration-ledger.destination.pptx.notes":"one ledger note","oss-bindery-migration-ledger.destination.pptx.readout":"Text and chart arrive preserved. The diagram becomes native SmartArt where mappings exist, the transition is transformed to the nearest supported type, and one unsupported media control is retained as media with a warning.","oss-bindery-migration-ledger.destination.pdf.label":"PDF","oss-bindery-migration-ledger.destination.pdf.run":"run two, fixed layout","oss-bindery-migration-ledger.destination.pdf.notes":"four ledger notes","oss-bindery-migration-ledger.destination.pdf.readout":"The same deck tells a different truth against a fixed destination. The chart and diagram are rendered, the transition is omitted with its reason named, and the media control becomes a still image.","oss-bindery-migration-ledger.ledger.source-column":"source element","oss-bindery-migration-ledger.ledger.status-column":"ledger status","oss-bindery-migration-ledger.status.preserved":"preserved","oss-bindery-migration-ledger.status.transformed":"transformed","oss-bindery-migration-ledger.status.rendered":"rendered","oss-bindery-migration-ledger.status.omitted":"omitted","oss-bindery-migration-ledger.feature.text.name":"Body text","oss-bindery-migration-ledger.feature.text.source":"slide 4, text frame","oss-bindery-migration-ledger.feature.text.pptx.destination":"slide 4, text frame","oss-bindery-migration-ledger.feature.text.pptx.note":"runs and styles retained","oss-bindery-migration-ledger.feature.text.pdf.destination":"page 4, text runs","oss-bindery-migration-ledger.feature.text.pdf.note":"text runs retained on a fixed page","oss-bindery-migration-ledger.feature.chart.name":"Chart","oss-bindery-migration-ledger.feature.chart.source":"slide 6, chart Regional share","oss-bindery-migration-ledger.feature.chart.pptx.destination":"slide 6, native chart","oss-bindery-migration-ledger.feature.chart.pptx.note":"live series and source ranges","oss-bindery-migration-ledger.feature.chart.pdf.destination":"page 6, vector graphic","oss-bindery-migration-ledger.feature.chart.pdf.note":"appearance kept, data binding reported","oss-bindery-migration-ledger.feature.diagram.name":"Diagram","oss-bindery-migration-ledger.feature.diagram.source":"slide 9, node graph","oss-bindery-migration-ledger.feature.diagram.pptx.destination":"slide 9, SmartArt","oss-bindery-migration-ledger.feature.diagram.pptx.note":"native SmartArt where mappings exist","oss-bindery-migration-ledger.feature.diagram.pdf.destination":"page 9, vector graphic","oss-bindery-migration-ledger.feature.diagram.pdf.note":"appearance kept, editability reported","oss-bindery-migration-ledger.feature.transition.name":"Transition","oss-bindery-migration-ledger.feature.transition.source":"slide 6, push 0.4 s","oss-bindery-migration-ledger.feature.transition.pptx.destination":"slide 6, fade","oss-bindery-migration-ledger.feature.transition.pptx.note":"nearest supported type","oss-bindery-migration-ledger.feature.transition.pdf.destination":"page 6, none","oss-bindery-migration-ledger.feature.transition.pdf.note":"fixed layout carries no timing","oss-bindery-migration-ledger.feature.media.name":"Embedded media","oss-bindery-migration-ledger.feature.media.source":"slide 11, media control","oss-bindery-migration-ledger.feature.media.pptx.destination":"slide 11, media","oss-bindery-migration-ledger.feature.media.pptx.note":"unsupported control retained as media, with a warning","oss-bindery-migration-ledger.feature.media.pdf.destination":"page 11, still image","oss-bindery-migration-ledger.feature.media.pdf.note":"a fixed page holds the image, not the control","oss-bindery-migration-ledger.band.left":"the fidelity ledger travels with the run","oss-bindery-migration-ledger.band.right":"destination-aware truth","oss-bindery-minimal-write.chrome.path":"Minimal write","oss-bindery-minimal-write.chrome.status":"one edit, two write paths","oss-bindery-minimal-write.chrome.meta":"illustrative","oss-bindery-minimal-write.instruction.label":"the instruction","oss-bindery-minimal-write.instruction.edit":"replace the title on slide 12","oss-bindery-minimal-write.path.minimal.name":"minimal write","oss-bindery-minimal-write.path.rebuild.name":"convert and rebuild","oss-bindery-minimal-write.part.rels.note":"only if the edit introduces a link","oss-bindery-minimal-write.part.core.note":"only if modified time is configured","oss-bindery-minimal-write.field.more":"220 parts in the package","oss-bindery-minimal-write.count.minimal":"3 of 220 parts","oss-bindery-minimal-write.count.rebuild":"220 of 220 parts","oss-bindery-minimal-write.counts.note":"The counts show the scope of semantic risk, not performance.","oss-bindery-minimal-write.readout.minimal":"The writer regenerates the slide part, touches its relationship part only if the edit introduces a link, and updates package metadata only if the modified time is configured to change. Masters, layouts, notes, media, charts, SmartArt data, embeddings and every other slide keep their bytes.","oss-bindery-minimal-write.readout.rebuild":"The same change through a convert-and-rebuild path passes every part through a full serialisation. All 220 parts move, and every relationship, style and extension is re-expressed for the sake of one title.","oss-bindery-minimal-write.band.left":"untouched bytes are preserved where the format permits it","oss-bindery-minimal-write.band.right":"the dirty set decides the write","oss-bindery-more-than-text-banner.eyebrow":"The entire argument in one page","oss-bindery-more-than-text-banner.lead":"The words are content.","oss-bindery-more-than-text-banner.accent":"Structure makes the document.","oss-bindery-more-than-text-banner.para.1":"Flatten a contract and the clauses remain while the comments, revisions, cross-references, footnotes and content controls disappear. Flatten a workbook and the displayed values remain while the formulas, validations, names, tables, charts and dependency graph disappear. Flatten a presentation and the visible text remains while the master, notes, timing, animation, media and visual hierarchy disappear.","oss-bindery-more-than-text-banner.para.2":"Bindery keeps the content and the system around it. That is why the same engine can answer a question, apply an exact edit, generate a new document, calculate a workbook, explain an embedded object and write the result back. It did not first turn the file into text and then try to reconstruct what the text used to mean.","oss-bindery-more-than-text-banner.para.3":"The distinction also changes performance. A caller that needs one table, one chart series or one comment can request that object without materialising every visible word and asset. A writer that changes one element can retain untouched parts rather than reconstructing them. Preserving structure is therefore not only a fidelity choice. It is what makes focused document work possible.","oss-bindery-more-than-text-banner.panel.title":"One document","oss-bindery-more-than-text-banner.panel.tag":"not one text stream","oss-bindery-more-than-text-banner.chip.words":"words and values","oss-bindery-more-than-text-banner.chip.sections":"sections, sheets and slides","oss-bindery-more-than-text-banner.chip.styles":"styles and layout","oss-bindery-more-than-text-banner.chip.comments":"comments and revisions","oss-bindery-more-than-text-banner.chip.charts":"charts and SmartArt","oss-bindery-more-than-text-banner.chip.equations":"equations and formulas","oss-bindery-more-than-text-banner.chip.media":"media and OLE objects","oss-bindery-more-than-text-banner.chip.provenance":"source identity and provenance","oss-bindery-more-than-text-banner.chip.state":"retained","oss-bindery-more-than-text-banner.verdict":"the file becomes structure without becoming less of a document","oss-bindery-more-than-text-banner.footline":"read it, reason over it, change it and write it back through the same model","oss-bindery-no-service.chrome.path":"on your computer","oss-bindery-no-service.chrome.status":"everything happens inside the room","oss-bindery-no-service.chrome.meta":"no upload","oss-bindery-no-service.room.label":"Inside your computer","oss-bindery-no-service.flow.file":"Your file","oss-bindery-no-service.flow.app":"The app you already use","oss-bindery-no-service.flow.structure":"Opened as structure","oss-bindery-no-service.flow.saved":"Your changes are saved","oss-bindery-no-service.inventory.head":"Inside the file, kept but never run","oss-bindery-no-service.inventory.macro":"macro: not run","oss-bindery-no-service.inventory.embedded":"embedded object: not run","oss-bindery-no-service.stopped.text":"A damaged file stops here, with the reason named.","oss-bindery-no-service.stopped.chip":"declared limit","oss-bindery-no-service.ghosts.head":"What never happens","oss-bindery-no-service.ghost.upload":"upload","oss-bindery-no-service.ghost.queue":"queue","oss-bindery-no-service.ghost.conversion":"remote conversion","oss-bindery-no-service.ghost.download":"download","oss-bindery-no-service.ghost.account":"account","oss-bindery-no-service.ghost.counter":"per-file counter","oss-bindery-no-service.ghosts.note":"No conversion website in the middle, no account to make and no charge each time another document is opened.","oss-bindery-no-service.band.text":"The file opens and changes right where it already lives.","oss-bindery-no-service.band.meta":"no upload needed","oss-bindery-node-identity.kicker.label":"Every node","oss-bindery-node-identity.kicker.sub":"what travels with it","oss-bindery-node-identity.tag":"MODEL","oss-bindery-node-identity.record.head":"one node","oss-bindery-node-identity.field.meaning.name":"Meaning","oss-bindery-node-identity.field.meaning.body":"Paragraph, cell, chart, revision, note, object, relationship or another typed kind.","oss-bindery-node-identity.field.identity.name":"Identity","oss-bindery-node-identity.field.identity.body":"A stable session identity and the source part or span that created it.","oss-bindery-node-identity.field.presentation.name":"Presentation","oss-bindery-node-identity.field.presentation.body":"Styles, layout, geometry, ordering, visibility and accessibility metadata.","oss-bindery-node-identity.field.extension.name":"Extension","oss-bindery-node-identity.field.extension.body":"Source-specific data retained when the common model has no equivalent property.","oss-bindery-node-identity.foot.left":"one model for operations","oss-bindery-node-identity.foot.right":"no need to erase the source","oss-bindery-not-an-image.chrome.path":"Objects, not pixels","oss-bindery-not-an-image.chrome.status":"four objects open as structure","oss-bindery-not-an-image.chrome.meta":"structure, never pixels","oss-bindery-not-an-image.structure.label":"opened","oss-bindery-not-an-image.object.chart.name":"Bar chart","oss-bindery-not-an-image.object.chart.structure":"series Actual -> Data!B2:B13; series Planned -> Data!C2:C13","oss-bindery-not-an-image.object.chart.instruction":"change one value: the bars update from the range","oss-bindery-not-an-image.object.smartart.name":"SmartArt cycle","oss-bindery-not-an-image.object.smartart.structure":"four nodes, each joined to the next","oss-bindery-not-an-image.object.smartart.instruction":"rename one node: the shape text updates from the graph","oss-bindery-not-an-image.object.ole.name":"Embedded workbook","oss-bindery-not-an-image.object.ole.structure":"preview in front, payload part behind, one relationship","oss-bindery-not-an-image.object.ole.instruction":"inventory the payload: the bytes answer apart from the icon","oss-bindery-not-an-image.object.equation.name":"Equation","oss-bindery-not-an-image.object.equation.structure":"fraction over twice a; root of b squared minus 4ac","oss-bindery-not-an-image.object.equation.instruction":"edit one symbol: the rendering updates from the tree","oss-bindery-not-an-image.band.left":"usually kept as pictures; here the structure survives, so the work continues","oss-bindery-not-an-image.band.right":"a chart is not an image","oss-bindery-not-one-text-stream.chrome.path":"The report and its parts","oss-bindery-not-one-text-stream.chrome.status":"parts intact","oss-bindery-not-one-text-stream.chrome.meta":"illustrative figures","oss-bindery-not-one-text-stream.page.head":"The page as it was made","oss-bindery-not-one-text-stream.contents.head":"What Bindery hands back","oss-bindery-not-one-text-stream.part.title":"Title","oss-bindery-not-one-text-stream.part.paragraph":"Paragraph","oss-bindery-not-one-text-stream.part.table":"Table","oss-bindery-not-one-text-stream.part.chart":"Chart","oss-bindery-not-one-text-stream.part.footnote":"Footnote","oss-bindery-not-one-text-stream.part.comment":"Comment","oss-bindery-not-one-text-stream.contents.chip":"kept","oss-bindery-not-one-text-stream.qa.question":"Which month has the tallest bar?","oss-bindery-not-one-text-stream.qa.answer":"February, 62","oss-bindery-not-one-text-stream.qa.note":"answered from the chart’s values, not from the picture","oss-bindery-not-one-text-stream.stream.head":"Poured into one stream","oss-bindery-not-one-text-stream.stream.note":"the same words and numbers, with nothing saying what belonged where","oss-bindery-not-one-text-stream.band.text":"every part stays connected to its place on the page","oss-bindery-not-one-text-stream.band.meta":"structure answers, pixels guess","oss-bindery-one-layer-banner.eyebrow":"The business argument","oss-bindery-one-layer-banner.lead":"Every format stays native.","oss-bindery-one-layer-banner.lead-accent":"Operations become common.","oss-bindery-one-layer-banner.paragraph.one":"The organisation keeps using Word, Excel, PowerPoint, OpenDocument, iWork, PDF and structured publishing formats because different work needs different documents. Bindery does not require a standardisation project before value appears. It gives those formats one operational surface while preserving their native features.","oss-bindery-one-layer-banner.paragraph.two":"Reading, generation, in-place editing, calculation, extraction, comparison, conversion and agent work become capabilities of one document layer. Procurement sees fewer suppliers. Engineering sees one model. Operations sees one result taxonomy. Users continue receiving the file types they already know.","oss-bindery-one-layer-banner.paragraph.three":"One common document layer creates comparable evidence across an estate. A generated report, a repaired workbook and an agent-edited presentation can all return the source version, operation plan, changed elements, fidelity warnings and output identity in one result shape. Governance no longer needs a separate audit vocabulary for every document tool.","oss-bindery-one-layer-banner.panel.header":"One layer","oss-bindery-one-layer-banner.panel.tag":"the estate remains diverse","oss-bindery-one-layer-banner.panel.layer":"one operation layer","oss-bindery-one-layer-banner.panel.marker":"common","oss-bindery-one-layer-banner.format.word":"Word","oss-bindery-one-layer-banner.format.excel":"Excel","oss-bindery-one-layer-banner.format.powerpoint":"PowerPoint","oss-bindery-one-layer-banner.format.opendocument":"OpenDocument","oss-bindery-one-layer-banner.format.iwork":"iWork","oss-bindery-one-layer-banner.format.pdf":"PDF","oss-bindery-one-layer-banner.format.publishing":"publishing","oss-bindery-one-layer-banner.capability.open":"open every era","oss-bindery-one-layer-banner.capability.generate":"generate native files","oss-bindery-one-layer-banner.capability.edit":"edit exact elements","oss-bindery-one-layer-banner.capability.query":"query and extract","oss-bindery-one-layer-banner.capability.recalculate":"recalculate workbooks","oss-bindery-one-layer-banner.capability.compare":"compare and migrate","oss-bindery-one-layer-banner.capability.serve":"serve people and agents","oss-bindery-one-layer-banner.capability.run":"run on owned infrastructure","oss-bindery-one-layer-banner.verdict":"the estate stops requiring a separate architecture for every document request","oss-bindery-one-layer-banner.footline":"format diversity remains a user feature instead of an engineering tax","oss-bindery-one-object-many-formats.chrome.path":"One chart, three formats","oss-bindery-one-object-many-formats.chrome.status":"one chart, three native sources","oss-bindery-one-object-many-formats.chrome.meta":"round trip kept","oss-bindery-one-object-many-formats.source.xlsx.name":"XLSX sheet","oss-bindery-one-object-many-formats.source.pptx.name":"PPTX slide","oss-bindery-one-object-many-formats.source.numbers.name":"Numbers table","oss-bindery-one-object-many-formats.canonical.title":"canonical chart object","oss-bindery-one-object-many-formats.field.chart-type":"chart type","oss-bindery-one-object-many-formats.field.series":"series","oss-bindery-one-object-many-formats.field.axes":"axes","oss-bindery-one-object-many-formats.field.legend":"legend","oss-bindery-one-object-many-formats.field.binding":"source binding","oss-bindery-one-object-many-formats.ext.xlsx":"xlsx extension","oss-bindery-one-object-many-formats.ext.pptx":"pptx extension","oss-bindery-one-object-many-formats.ext.numbers":"numbers extension","oss-bindery-one-object-many-formats.edit.instruction":"edit the series title","oss-bindery-one-object-many-formats.edit.landing":"one change on the canonical object","oss-bindery-one-object-many-formats.write.xlsx":"XLSX chart part","oss-bindery-one-object-many-formats.write.pptx":"PPTX chart part","oss-bindery-one-object-many-formats.write.numbers":"Numbers series label","oss-bindery-one-object-many-formats.readout.xlsx":"The chart arrived from a worksheet range, and that binding stays visible beside the shared object. The series title edit lands once on the canonical chart and resolves to the chart part inside the workbook package, with no conversion through another family.","oss-bindery-one-object-many-formats.readout.pptx":"The chart arrived embedded in a slide, and the slide structure stays in view. The same edit lands once and resolves to the chart part inside the presentation package, written in the deck's own native form.","oss-bindery-one-object-many-formats.readout.numbers":"The chart arrived from a Numbers table, and the table stays visible behind it. The same edit lands once and resolves to the series label inside the bundle's native records.","oss-bindery-one-object-many-formats.band.left":"one edit lands once; each family writes its own native form","oss-bindery-one-object-many-formats.band.right":"no conversion between sources","oss-bindery-one-operation-four-ways.chrome.path":"One operation, four ways","oss-bindery-one-operation-four-ways.chrome.status":"one shared plan","oss-bindery-one-operation-four-ways.chrome.meta":"illustrative","oss-bindery-one-operation-four-ways.operation.label":"one operation","oss-bindery-one-operation-four-ways.operation.text":"Remove comments and tracked changes from contract.docx.","oss-bindery-one-operation-four-ways.surfaces.rust.name":"Rust","oss-bindery-one-operation-four-ways.surfaces.rust.code1":"let plan = doc.plan(Operation::StripAnnotations)?;","oss-bindery-one-operation-four-ways.surfaces.rust.code2":"doc.apply(&plan, WriteOptions::preserve())?;","oss-bindery-one-operation-four-ways.surfaces.rust.prose":"The crate call names the operation and the target document. The plan comes back before any byte moves.","oss-bindery-one-operation-four-ways.surfaces.python.name":"Python","oss-bindery-one-operation-four-ways.surfaces.python.code1":"plan = doc.plan(\"strip_annotations\")","oss-bindery-one-operation-four-ways.surfaces.python.code2":"doc.apply(plan)","oss-bindery-one-operation-four-ways.surfaces.python.prose":"Python wraps the same document objects and the same plan, with no subprocess conversion in between.","oss-bindery-one-operation-four-ways.surfaces.cli.name":"CLI + DocQL","oss-bindery-one-operation-four-ways.surfaces.cli.code1":"UPDATE documents REMOVE comments, revisions","oss-bindery-one-operation-four-ways.surfaces.cli.code2":"WHERE file = 'contract.docx';","oss-bindery-one-operation-four-ways.surfaces.cli.prose":"The statement parses into the identical plan the library calls produce.","oss-bindery-one-operation-four-ways.surfaces.mcp.name":"MCP + DSL","oss-bindery-one-operation-four-ways.surfaces.mcp.code1":"doc(\"contract.docx\").strip(comments, revisions)","oss-bindery-one-operation-four-ways.surfaces.mcp.prose":"The agent's compact path resolves to the same nodes, the same capability checks and the same preview.","oss-bindery-one-operation-four-ways.plan.title":"shared operation plan","oss-bindery-one-operation-four-ways.plan.version.k":"document version","oss-bindery-one-operation-four-ways.plan.version.v":"v23","oss-bindery-one-operation-four-ways.plan.nodes.k":"affected nodes","oss-bindery-one-operation-four-ways.plan.nodes.v":"14 comments, 9 revisions","oss-bindery-one-operation-four-ways.plan.parts.k":"dirty parts","oss-bindery-one-operation-four-ways.plan.parts.v":"word/document.xml, word/comments.xml","oss-bindery-one-operation-four-ways.plan.policy.k":"output policy","oss-bindery-one-operation-four-ways.plan.policy.v":"preserve unknown extensions","oss-bindery-one-operation-four-ways.plan.caption":"Identical from every surface.","oss-bindery-one-operation-four-ways.result.comparison.k":"structural comparison","oss-bindery-one-operation-four-ways.result.comparison.v":"23 nodes removed, nothing else changed","oss-bindery-one-operation-four-ways.result.hash.k":"output hash","oss-bindery-one-operation-four-ways.result.hash.v":"sha256 4be2 f70a 91cd 33e0","oss-bindery-one-operation-four-ways.band.left":"four surfaces resolve to one operation plan","oss-bindery-one-operation-four-ways.band.right":"one comparison, one hash","oss-bindery-one-report-many-targets.chrome.path":"One report, four outputs","oss-bindery-one-report-many-targets.chrome.status":"one model, four native outputs","oss-bindery-one-report-many-targets.chrome.meta":"the writer decides the encoding","oss-bindery-one-report-many-targets.model.head":"quarterly report model","oss-bindery-one-report-many-targets.model.title-page":"Title page","oss-bindery-one-report-many-targets.model.summary":"Executive summary","oss-bindery-one-report-many-targets.model.sections":"Three sections","oss-bindery-one-report-many-targets.model.table":"Workbook-derived table","oss-bindery-one-report-many-targets.model.chart":"Chart","oss-bindery-one-report-many-targets.model.equations":"Two equations","oss-bindery-one-report-many-targets.model.citations":"Citations","oss-bindery-one-report-many-targets.model.appendix":"Appendix","oss-bindery-one-report-many-targets.decision.flowing":"flowing sections","oss-bindery-one-report-many-targets.decision.fixed-pages":"fixed pages","oss-bindery-one-report-many-targets.decision.editable-chart":"editable chart","oss-bindery-one-report-many-targets.decision.rendered-chart":"rendered chart","oss-bindery-one-report-many-targets.decision.live-fields":"live fields","oss-bindery-one-report-many-targets.decision.resolved-values":"resolved values","oss-bindery-one-report-many-targets.output.pdf.warning":"editable field became fixed text","oss-bindery-one-report-many-targets.output.pdf.warning-tag":"part of the result","oss-bindery-one-report-many-targets.output.clean":"no loss","oss-bindery-one-report-many-targets.band.left":"generation, editing and conversion share validation and style resolution","oss-bindery-one-report-many-targets.band.right":"the writer creates the format","oss-bindery-one-sentence.chrome.path":"One sentence, changed","oss-bindery-one-sentence.chrome.status":"comment intact","oss-bindery-one-sentence.chrome.meta":"illustrative figures","oss-bindery-one-sentence.before.head":"Before","oss-bindery-one-sentence.contract.heading":"Liability","oss-bindery-one-sentence.contract.sentenceOld":"The supplier may end this agreement with thirty days of written notice.","oss-bindery-one-sentence.contract.sentenceNew":"The supplier may end this agreement with sixty days of written notice.","oss-bindery-one-sentence.contract.comment":"Check this notice period before signing.","oss-bindery-one-sentence.contract.footnote":"1 Notice periods are set out in schedule B.","oss-bindery-one-sentence.preview.head":"The program shows this first","oss-bindery-one-sentence.preview.found.label":"Found","oss-bindery-one-sentence.preview.found.value":"heading Liability, paragraph 3","oss-bindery-one-sentence.preview.old.label":"Old text","oss-bindery-one-sentence.preview.old.value":"with thirty days of written notice","oss-bindery-one-sentence.preview.new.label":"New text","oss-bindery-one-sentence.preview.new.value":"with sixty days of written notice","oss-bindery-one-sentence.preview.note":"nothing else is touched","oss-bindery-one-sentence.after.head":"After","oss-bindery-one-sentence.after.commentKept":"still attached","oss-bindery-one-sentence.after.footnoteKept":"unchanged","oss-bindery-one-sentence.rebuilt.head":"Rebuilt from scratch instead","oss-bindery-one-sentence.rebuilt.comment":"the comment is no longer attached","oss-bindery-one-sentence.rebuilt.footnote":"4 Notice periods are set out in schedule B.","oss-bindery-one-sentence.rebuilt.caption":"the careless route loses the comment and renumbers the footnote","oss-bindery-one-sentence.band.text":"the comment stays anchored to the sentence","oss-bindery-one-sentence.band.meta":"one sentence changes, the rest remains","oss-bindery-ops-scenarios.73a525b812":"Document intake","oss-bindery-ops-scenarios.2b3366c47c":"Contracts, workbooks, forms and notes arrive together, and their names do not always identify what they contain.","oss-bindery-ops-scenarios.ce452a6e85":"notes (1)","oss-bindery-ops-scenarios.bb794bcbcd":"Bindery detects each document from its contents, opens it through the same path and exposes consistent structure to the next system.","oss-bindery-ops-scenarios.c32862cf4e":"Identified by","oss-bindery-ops-scenarios.b5bbec8854":"Its contents","oss-bindery-ops-scenarios.5165370258":"Intake path","oss-bindery-ops-scenarios.b5e77c5c02":"One","oss-bindery-ops-scenarios.20977dcc1d":"Handoff","oss-bindery-ops-scenarios.b58b5a8ced":"Structured document","oss-bindery-ops-scenarios.aa04577602":"Archive conversion","oss-bindery-ops-scenarios.332c17a6b0":"Older slide decks, documents and spreadsheets need to be opened, queried or moved into supported output formats.","oss-bindery-ops-scenarios.4f580c843c":"The same library reads legacy, Apple and OpenDocument formats, while supported writers provide a controlled route into the next format.","oss-bindery-ops-scenarios.6674b9c00b":"Read path","oss-bindery-ops-scenarios.3d679078a6":"Shared","oss-bindery-ops-scenarios.e574617dd3":"Transform","oss-bindery-ops-scenarios.0bf8509ba5":"From one model","oss-bindery-ops-scenarios.b4191a2cf5":"Write","oss-bindery-ops-scenarios.2518be9b9c":"Where supported","oss-bindery-ops-scenarios.5e2d8af38a":"Controlled review","oss-bindery-ops-scenarios.0c0928ad16":"Contracts, statements and workbooks contain sensitive material that needs to be inspected without leaving the chosen environment.","oss-bindery-ops-scenarios.e41342bd81":"Documents are detected, read and queried locally, then handed to the review workflow as structured information.","oss-bindery-ops-scenarios.98127aff5a":"Processing","oss-bindery-ops-scenarios.80c3052d33":"Local","oss-bindery-ops-scenarios.5703321d0e":"Query model","oss-bindery-ops-scenarios.052da604bc":"Consistent","oss-bindery-ops-scenarios.adac69379a":"Handoff","oss-bindery-ops-scenarios.45ac82f360":"Review-ready structure","oss-bindery-ops-scenarios.066b147e3b":"Document flows","oss-bindery-ops-scenarios.791648607a":"What arrives","oss-bindery-ops-scenarios.b0eab5d82b":"What moves forward","oss-bindery-ops-scenarios.fc1f6f0f9b":"Different document jobs, one operating path","oss-bindery-ownership.0cf002555f":"Handoffs stay explicit","oss-bindery-ownership.3915907107":"Documents stay in place","oss-bindery-ownership.277bc534ba":"Controlled","oss-bindery-ownership.d5f98d7b88":"Bindery does not require an external service to open a document, so the workflow can stay close to the systems that already hold and use it.","oss-bindery-ownership.fb151cfcab":"Keep intake, processing and output in one chosen environment","oss-bindery-ownership.edf95cc67a":"Controlled document boundary","oss-bindery-ownership.9fbe4d2ff1":"Supported writers create the intended format, or the structured model passes directly to the next system.","oss-bindery-ownership.3d64012697":"Outputs go where planned","oss-bindery-ownership.c93a8b9b79":"Queries and transformations run against the same document model beside the workflow that uses it.","oss-bindery-ownership.aeeb3076c1":"Processing stays local","oss-bindery-ownership.df01c2c627":"Documents can be detected and read in the environment where they already live, without an external reading step.","oss-bindery-ownership.aa318dd6d1":"Inputs stay close","oss-bindery-ownership.6a8f624989":"Processing stays local","oss-bindery-paper-gallery.0809cb9985":"You never have to know which program made a file. The reader works that out on its own.","oss-bindery-paper-gallery.cd2613b6f5":"The words come out clean","oss-bindery-paper-gallery.02031d9c95":"the same as all the rest","oss-bindery-paper-gallery.1c6674de39":"Reads","oss-bindery-paper-gallery.23382e7ddb":"The reader","oss-bindery-paper-gallery.25a89f8e4c":"Tap any card. The same quiet reader opens every one of them.","oss-bindery-paper-gallery.073207bca9":"Pick a kind of paper","oss-bindery-paper-gallery.e9a1927052":"Signature: _______","oss-bindery-paper-gallery.811d28220f":"Date: ____________","oss-bindery-paper-gallery.b66fa3d761":"Name: ____________","oss-bindery-paper-gallery.3d681d6232":"PENSION CLAIM FORM","oss-bindery-paper-gallery.87b3aca03b":"A page that looks the same everywhere","oss-bindery-paper-gallery.cb79808be9":"A frozen page","oss-bindery-paper-gallery.959a5d52a1":"   2. The lighthouse walk","oss-bindery-paper-gallery.70a79c9bdd":"   1. The harbour","oss-bindery-paper-gallery.8e819351fd":"Our trip to the coast","oss-bindery-paper-gallery.0a38e59c9d":"Big words and pictures on pages","oss-bindery-paper-gallery.d6d8162d70":"A slides program","oss-bindery-paper-gallery.ba91a07a6a":"Total          488.75","oss-bindery-paper-gallery.14c878aad8":"Phone           28.00","oss-bindery-paper-gallery.7fef07a864":"Groceries      312.55","oss-bindery-paper-gallery.aa8c73d44a":"Heating        148.20","oss-bindery-paper-gallery.8a0ae5e711":"Numbers laid out in little boxes","oss-bindery-paper-gallery.1034193065":"A numbers program","oss-bindery-paper-gallery.917ec22007":"safely last week. Warm wishes,","oss-bindery-paper-gallery.8e0092cd59":"from the summer. They arrived","oss-bindery-paper-gallery.a36eb262e0":"Thank you for the photographs","oss-bindery-paper-gallery.c9ac1fb10f":"Dear Margaret,","oss-bindery-paper-gallery.9bc5accc09":"The kind you type and print","oss-bindery-paper-gallery.48a57b7914":"A word program","oss-bindery-perf.c74fd9714e":"Small","oss-bindery-perf.daf7ee7f17":"<1 ms","oss-bindery-perf.b87be8e53e":"Most spreadsheets and Word files.","oss-bindery-perf.d404968ea9":"Medium","oss-bindery-perf.0b9d702bc2":"<50 ms","oss-bindery-perf.faa684f7e7":"Large workbooks and slide decks.","oss-bindery-perf.738fd1d245":"Large","oss-bindery-perf.61d14cafeb":"<500 ms","oss-bindery-perf.5c35451ec2":"Annual reports and big PDFs.","oss-bindery-perf.ed5bbcee4e":"SIMD parsing","oss-bindery-perf.113b799712":"SIMD accelerated tokenising for the numeric and text heavy streams in a workbook.","oss-bindery-perf.3cf1e19986":"Dirty set formulas","oss-bindery-perf.5a871aab73":"Topological sort plus localised invalidation. An edit touches only its dependents.","oss-bindery-perf.f565786c2a":"Bounded memory","oss-bindery-perf.9e2ed11a57":"Streaming parse for large workbooks. Memory tracks structure, not raw cell count.","oss-bindery-perf.c9877e08ae":"Flagged round trip","oss-bindery-perf.a32fca4667":"Where a round trip is lossy, the diverging properties are flagged before they go missing.","oss-bindery-perf.7c99f2611a":"parse budget","oss-bindery-perf.3d2ebe37d8":"standard CPU, no GPU","oss-bindery-perf.1b908ae69c":"per document size","oss-bindery-perf.d7d83e8255":"larger documents, more time","oss-bindery-perf.0b463d0bc4":", parse budget","oss-bindery-perf.151469f919":"Budgets are the documented size tiers. The slow path surfaces in EXPLAIN, never as a mystery slowdown.","oss-bindery-perf.dff8973699":"standard CPU","oss-bindery-plain-promise.eb9dc32da9":"You never have to see any of this. It works in the background, the way a good helper does.","oss-bindery-plain-promise.27b94bbf80":"Four small worries, answered in plain words.","oss-bindery-plain-promise.b15f53b20f":"What it quietly does for you","oss-bindery-plain-promise.3f32a235f0":"The reader runs inside the app you are already using. There is no separate reader account and your papers do not have to visit an outside document service.","oss-bindery-plain-promise.f815f95dbb":"Free for anyone to use and check","oss-bindery-plain-promise.f619ac285c":"Who really owns this?","oss-bindery-plain-promise.b97fe6cbcb":"The reader does its work right there, close to your documents. It opens the page, hands over the words, and stops. It does not need to phone anywhere to do its job.","oss-bindery-plain-promise.8b5f9b52c1":"It reads in private, on your side","oss-bindery-plain-promise.e9deb8d3f4":"Is my paperwork safe?","oss-bindery-plain-promise.39b2dc8359":"A letter from years ago, a budget sheet, a printed form, a slideshow. It does not matter which program made them. The reader opens each one and finds the words inside, so nothing you saved is ever stuck shut.","oss-bindery-plain-promise.72af4c4363":"Your documents open, whatever made them","oss-bindery-plain-promise.988c214cea":"What if my old files will not open?","oss-bindery-plain-promise.eeb444944a":"When the computer reads your papers, it reads them the same careful way every single time. Ask the same question tomorrow, on a different machine, and you get the same answer. Nothing wanders.","oss-bindery-plain-promise.3eb717ad42":"The same answer on every computer","oss-bindery-plain-promise.78662e2efa":"Will I get a different answer each time?","oss-bindery-quarterly-pack.chrome.path":"Quarterly pack","oss-bindery-quarterly-pack.chrome.status":"one correction reaches all four","oss-bindery-quarterly-pack.chrome.meta":"four native outputs","oss-bindery-quarterly-pack.dataset.head":"Quarterly dataset","oss-bindery-quarterly-pack.dataset.revenue":"Revenue, Q3","oss-bindery-quarterly-pack.dataset.costs":"Costs, Q3","oss-bindery-quarterly-pack.dataset.headcount":"Headcount","oss-bindery-quarterly-pack.dataset.forecast":"Forecast","oss-bindery-quarterly-pack.dataset.correctedTag":"corrected","oss-bindery-quarterly-pack.model.head":"One semantic report model","oss-bindery-quarterly-pack.model.narrative":"Narrative sections","oss-bindery-quarterly-pack.model.table":"Financial table","oss-bindery-quarterly-pack.model.charts":"Two chart definitions","oss-bindery-quarterly-pack.model.equation":"Equation","oss-bindery-quarterly-pack.model.citations":"Citations","oss-bindery-quarterly-pack.model.appendix":"Appendix","oss-bindery-quarterly-pack.outputs.head":"Four native outputs","oss-bindery-quarterly-pack.out.docx.name":"Review in place","oss-bindery-quarterly-pack.out.docx.note":"Comments and tracked review travel with the report.","oss-bindery-quarterly-pack.out.xlsx.name":"Live working model","oss-bindery-quarterly-pack.out.xlsx.note":"Formulas and chart ranges stay live.","oss-bindery-quarterly-pack.out.pptx.name":"Board deck","oss-bindery-quarterly-pack.out.pptx.note":"The same charts arrive through the master.","oss-bindery-quarterly-pack.out.pdf.name":"Fixed distribution","oss-bindery-quarterly-pack.out.pdf.note":"Fixed pages from the same approved structure.","oss-bindery-quarterly-pack.correction.chip":"one source figure corrected","oss-bindery-quarterly-pack.band.text":"every output derived from one approved model","oss-bindery-quarterly-pack.band.meta":"DOCX, XLSX, PPTX, PDF","oss-bindery-rich-elements.kicker.label":"Element","oss-bindery-rich-elements.kicker.sub":"what remains addressable","oss-bindery-rich-elements.tag":"FIDELITY","oss-bindery-rich-elements.element.chart.name":"Data and presentation","oss-bindery-rich-elements.element.chart.body":"Series, source ranges, axes, labels, legend, plot and styling.","oss-bindery-rich-elements.element.smartart.name":"Data and layout","oss-bindery-rich-elements.element.smartart.body":"Nodes, relationships, layout choice, generated shapes and text.","oss-bindery-rich-elements.element.ole.name":"Object and preview","oss-bindery-rich-elements.element.ole.body":"Class, embedded bytes, relationship, icon or rendered preview.","oss-bindery-rich-elements.element.equation.name":"Meaning and notation","oss-bindery-rich-elements.element.equation.body":"One syntax tree across Office MathML, MathType and LaTeX.","oss-bindery-rich-elements.foot.left":"not screenshots of features","oss-bindery-rich-elements.foot.right":"the features themselves","oss-bindery-risk-reversal.921bd38ce1":"Fewer branches, clearer operating boundaries","oss-bindery-risk-reversal.49e194f5fd":"Consistent document flow","oss-bindery-risk-reversal.2dcbf224f7":"Format-led handling","oss-bindery-risk-reversal.cbdcd36e08":"Write where supported or pass the structured model onward","oss-bindery-risk-reversal.6162d71f33":"Create a custom handoff for every file family","oss-bindery-risk-reversal.de78731a18":"Output","oss-bindery-risk-reversal.8c4d38c333":"Transform from shared structure","oss-bindery-risk-reversal.7eec63fd08":"Build format-specific conversion steps","oss-bindery-risk-reversal.69757af4c7":"Changes","oss-bindery-risk-reversal.f0702f8168":"Query one document model","oss-bindery-risk-reversal.3e5fc832a7":"Traverse each format differently","oss-bindery-risk-reversal.49dadede4d":"Questions","oss-bindery-risk-reversal.2f6b7bc3ca":"Use one read path","oss-bindery-risk-reversal.3afc94cc48":"Choose a reader for each format","oss-bindery-risk-reversal.80b0d06e3f":"Opening","oss-bindery-risk-reversal.c3ae33306a":"Detect from file contents","oss-bindery-risk-reversal.8ea6460cf0":"Route by filename or extension","oss-bindery-risk-reversal.68a999f7ad":"File identification","oss-bindery-safety-states.kicker.label":"Result state","oss-bindery-safety-states.kicker.sub":"not one generic failure","oss-bindery-safety-states.tag":"UNTRUSTED","oss-bindery-safety-states.rows.complete.state":"complete","oss-bindery-safety-states.rows.complete.name":"Faithful parse","oss-bindery-safety-states.rows.complete.body":"All required structures opened and represented under the requested policy.","oss-bindery-safety-states.rows.partial.state":"partial","oss-bindery-safety-states.rows.partial.name":"Usable with warnings","oss-bindery-safety-states.rows.partial.body":"Content returned, skipped or uncertain elements attached to exact locations.","oss-bindery-safety-states.rows.protected.state":"protected","oss-bindery-safety-states.rows.protected.name":"Key required","oss-bindery-safety-states.rows.protected.body":"Format and protection identified without pretending the content was opened.","oss-bindery-safety-states.rows.refused.state":"refused","oss-bindery-safety-states.rows.refused.name":"Limit or corruption","oss-bindery-safety-states.rows.refused.body":"The declaration, path, limit and native structure that caused refusal.","oss-bindery-safety-states.footline.left":"the caller knows what it has","oss-bindery-safety-states.footline.right":"before another system trusts it","oss-bindery-small-changes.kicker.label":"Small change","oss-bindery-small-changes.kicker.sub":"what remains","oss-bindery-small-changes.tag":"CAREFUL","oss-bindery-small-changes.change.name.change":"A name","oss-bindery-small-changes.change.name.scope":"One paragraph","oss-bindery-small-changes.change.name.body":"Comments, footnotes, numbering and the other sections stay where they were.","oss-bindery-small-changes.change.value.change":"A value","oss-bindery-small-changes.change.value.scope":"One workbook input","oss-bindery-small-changes.change.value.body":"The formulas that depend on it update; unrelated sheets stay untouched.","oss-bindery-small-changes.change.chart.change":"A chart","oss-bindery-small-changes.change.chart.scope":"One series","oss-bindery-small-changes.change.chart.body":"The slide master, notes, diagrams and other series remain native.","oss-bindery-small-changes.change.note.change":"A note","oss-bindery-small-changes.change.note.scope":"One slide’s speaker notes","oss-bindery-small-changes.change.note.body":"The visible slide and the rest of the deck do not need rebuilding.","oss-bindery-small-changes.foot.left":"the requested part changes","oss-bindery-small-changes.foot.right":"the rest remains the document you had","oss-bindery-stack-removed.head.label":"Route","oss-bindery-stack-removed.head.sub":"what Bindery absorbs","oss-bindery-stack-removed.head.tag":"CONSOLIDATE","oss-bindery-stack-removed.row.reader.name":"Open and interpret","oss-bindery-stack-removed.row.reader.body":"Format detection, native parsing, structure, metadata and provenance.","oss-bindery-stack-removed.row.generator.name":"Create and write","oss-bindery-stack-removed.row.generator.body":"Models, templates, styles, charts, equations, packages and fixed pages.","oss-bindery-stack-removed.row.editor.name":"Change in place","oss-bindery-stack-removed.row.editor.body":"Exact targeting, previews, capability checks and minimal native writes.","oss-bindery-stack-removed.row.automation.name":"Query and agents","oss-bindery-stack-removed.row.automation.body":"DocQL, compact DSL, MCP, Python and command-line operations.","oss-bindery-stack-removed.foot.left":"fewer vendors is useful","oss-bindery-stack-removed.foot.right":"one document model is the real saving","oss-bindery-supplier-ledger.chrome.path":"Supplier stack","oss-bindery-supplier-ledger.chrome.status":"seven routes, one component","oss-bindery-supplier-ledger.chrome.meta":"illustrative, no euro figures","oss-bindery-supplier-ledger.head.route":"Route and terms","oss-bindery-supplier-ledger.row.pdfLibrary.name":"PDF library","oss-bindery-supplier-ledger.row.pdfLibrary.terms":"Per-developer licence, per seat, platform team","oss-bindery-supplier-ledger.row.officeParser.name":"Office parser","oss-bindery-supplier-ledger.row.officeParser.terms":"Per-developer licence, per seat, platform team","oss-bindery-supplier-ledger.row.desktopAutomation.name":"Desktop automation","oss-bindery-supplier-ledger.row.desktopAutomation.terms":"Per-machine licence, per desktop, operations team","oss-bindery-supplier-ledger.row.conversionService.name":"Conversion service","oss-bindery-supplier-ledger.row.conversionService.terms":"Subscription, per document, integration team","oss-bindery-supplier-ledger.row.templateProduct.name":"Template product","oss-bindery-supplier-ledger.row.templateProduct.terms":"Subscription, per template, reporting team","oss-bindery-supplier-ledger.row.spreadsheetCode.name":"Spreadsheet scripts","oss-bindery-supplier-ledger.row.spreadsheetCode.terms":"Internal build, per script, finance team","oss-bindery-supplier-ledger.row.agentIntegration.name":"Agent integration","oss-bindery-supplier-ledger.row.agentIntegration.terms":"Usage-metered, per token, AI platform team","oss-bindery-supplier-ledger.flattened":"all formats flattened to text","oss-bindery-supplier-ledger.note.docx":"3 routes overlap","oss-bindery-supplier-ledger.note.xlsx":"partial only","oss-bindery-supplier-ledger.note.oldPpt":"no full cover","oss-bindery-supplier-ledger.note.keynote":"no cover","oss-bindery-supplier-ledger.note.pdf":"covered","oss-bindery-supplier-ledger.one.name":"Bindery","oss-bindery-supplier-ledger.one.line":"One Apache-2.0 component on owned infrastructure, with feature families selected by build.","oss-bindery-supplier-ledger.one.note":"structure stays native in every family","oss-bindery-supplier-ledger.count.contracts":"Contracts","oss-bindery-supplier-ledger.count.apis":"APIs","oss-bindery-supplier-ledger.count.models":"Document models","oss-bindery-supplier-ledger.count.releases":"Release paths","oss-bindery-supplier-ledger.band.text":"the ledger counts contracts and models, not euros","oss-bindery-supplier-ledger.band.meta":"7 routes, 1 component","oss-bindery-surfaces.kicker.label":"Surface","oss-bindery-surfaces.kicker.sub":"who it serves","oss-bindery-surfaces.tag":"SHIP","oss-bindery-surfaces.rows.crate.surface":"crate","oss-bindery-surfaces.rows.crate.name":"Applications and libraries","oss-bindery-surfaces.rows.crate.body":"Full typed API, format capabilities, model access and extension points.","oss-bindery-surfaces.rows.python.surface":"Python","oss-bindery-surfaces.rows.python.name":"Automation and analytics","oss-bindery-surfaces.rows.python.body":"Natural objects, batch processing and no subprocess conversion service.","oss-bindery-surfaces.rows.cli.surface":"CLI","oss-bindery-surfaces.rows.cli.name":"Operators and pipelines","oss-bindery-surfaces.rows.cli.body":"Files, folders, statements, reports, previews and reproducible jobs.","oss-bindery-surfaces.rows.mcp.surface":"MCP + DSL","oss-bindery-surfaces.rows.mcp.name":"Agents","oss-bindery-surfaces.rows.mcp.body":"Resource discovery, focused context, exact paths and governed mutations.","oss-bindery-surfaces.footline.left":"one engine underneath","oss-bindery-surfaces.footline.right":"no surface invents a second document model","oss-bindery-use-cases.65732f5d5a":"17 readers, 1 API","oss-bindery-use-cases.53787208d9":"Compliance archive, financial model, or research corpus, every document opens through the same three lines.","oss-bindery-use-cases.d3f0610632":"Outcome","oss-bindery-use-cases.b568d47f2e":"Input","oss-bindery-use-cases.0eb12b363b":"3 lines of Rust each","oss-bindery-use-cases.fb1337b621":"one input, structured output","oss-bindery-use-cases.280fee96a4":"where documents are the data","oss-bindery-use-cases.e0b33fd55e":"Read and write paths share one document model.","oss-bindery-use-cases.882adc25ee":"Author tools and linters","oss-bindery-use-cases.f60f60bfae":"Doc tooling","oss-bindery-use-cases.4c97c43953":"Round trip to ODF for regulator friendly storage.","oss-bindery-use-cases.c3e051d248":"Long term storage","oss-bindery-use-cases.5901351ed8":"Archival","oss-bindery-use-cases.8f73ec764c":"Magic byte detection handles mislabelled files quietly.","oss-bindery-use-cases.4d3adf8a4a":"Bulk document processing","oss-bindery-use-cases.8e34cf262b":"E-discovery","oss-bindery-use-cases.892b1dd36c":"300+ Excel compatible formulas evaluate at Rust speed.","oss-bindery-use-cases.ada2064e68":"Spreadsheet driven models","oss-bindery-use-cases.1b48d3f014":"Finance","oss-bindery-use-cases.8d653afcca":"Cross format DocQL finds references everywhere at once.","oss-bindery-use-cases.d4f72da2db":"Read filings and annexes","oss-bindery-use-cases.9039ffaa20":"Regulatory analysis","oss-bindery-use-cases.26e63dd8f4":"The same API for every format, far less glue to maintain.","oss-bindery-use-cases.9bf68c976b":"Pull documents into AI pipelines","oss-bindery-use-cases.6711d5c8b4":"Knowledge ingestion","oss-bindery-value-ledger.136e840451":"Structured information out","oss-bindery-value-ledger.395b6c15fd":"Mixed formats, one intake","oss-bindery-value-ledger.029b7c0b8c":"Bindery","oss-bindery-value-ledger.346913bdce":"five checks, one route","oss-bindery-value-ledger.d0093ddacc":"intake checklist","oss-bindery-value-ledger.0daaf4c5b1":"Ready","oss-bindery-value-ledger.64df9282ec":"Transform the document and write to a supported output, or pass the structured model onward.","oss-bindery-value-ledger.26ef011865":"Prepare the handoff","oss-bindery-value-ledger.cbd17d59ba":"Queryable","oss-bindery-value-ledger.555c2ee77f":"Query the shared model without rebuilding the question for each format.","oss-bindery-value-ledger.870c4d024a":"Ask the same way","oss-bindery-value-ledger.dc5eb704bb":"Structured","oss-bindery-value-ledger.c5a098e51a":"Represent document content in one shared model for downstream work.","oss-bindery-value-ledger.b89ab9ee88":"Create usable structure","oss-bindery-value-ledger.6b5eb5323e":"Consistent","oss-bindery-value-ledger.c0ae241670":"Use the same document entry point across supported formats.","oss-bindery-value-ledger.1953de1c73":"Open through one intake","oss-bindery-value-ledger.cf9b77061f":"Detected","oss-bindery-value-ledger.dc9d183d12":"Inspect the file signature and structure cues instead of relying on the extension alone.","oss-bindery-value-ledger.73de662824":"Identify the actual format","oss-bindery-visual-meaning.kicker.label":"Visible object","oss-bindery-visual-meaning.kicker.sub":"what remains behind it","oss-bindery-visual-meaning.tag":"USEFUL","oss-bindery-visual-meaning.chart.object":"Chart","oss-bindery-visual-meaning.chart.name":"Values and labels","oss-bindery-visual-meaning.chart.body":"Data series, categories, axes, legend and styles remain available.","oss-bindery-visual-meaning.smartart.object":"SmartArt","oss-bindery-visual-meaning.smartart.name":"Ideas and links","oss-bindery-visual-meaning.smartart.body":"Nodes, order and relationships remain behind the rendered diagram.","oss-bindery-visual-meaning.equation.object":"Equation","oss-bindery-visual-meaning.equation.name":"Mathematical structure","oss-bindery-visual-meaning.equation.body":"The expression remains editable across Office, MathType and LaTeX forms.","oss-bindery-visual-meaning.embedded.object":"Embedded file","oss-bindery-visual-meaning.embedded.name":"The actual payload","oss-bindery-visual-meaning.embedded.body":"The file, its relationship and the preview stay distinguishable.","oss-bindery-visual-meaning.foot.left":"not merely what the page looked like","oss-bindery-visual-meaning.foot.right":"what the object still is","oss-bindery-workbook-answers.kicker.label":"One total","oss-bindery-workbook-answers.kicker.sub":"three things beside it","oss-bindery-workbook-answers.tag":"PLAIN","oss-bindery-workbook-answers.formula.key":"formula","oss-bindery-workbook-answers.formula.name":"The working","oss-bindery-workbook-answers.formula.body":"The expression and the cells it depends on.","oss-bindery-workbook-answers.saved.key":"saved","oss-bindery-workbook-answers.saved.name":"The old answer","oss-bindery-workbook-answers.saved.body":"What the last application wrote into the file.","oss-bindery-workbook-answers.current.key":"current","oss-bindery-workbook-answers.current.name":"The answer now","oss-bindery-workbook-answers.current.body":"What the formulas and current inputs produce when worked again.","oss-bindery-workbook-answers.reason.key":"reason","oss-bindery-workbook-answers.reason.name":"Where they parted","oss-bindery-workbook-answers.reason.body":"The changed row, pasted value, missing link or unsupported function.","oss-bindery-workbook-answers.foot.left":"the old number remains visible","oss-bindery-workbook-answers.foot.right":"the workbook can be asked again","oss-bindery-workbook-audit.chrome.path":"Workbook review","oss-bindery-workbook-audit.chrome.status":"8 of 8 accounted","oss-bindery-workbook-audit.chrome.meta":"illustrative","oss-bindery-workbook-audit.column.file":"file","oss-bindery-workbook-audit.column.result":"result","oss-bindery-workbook-audit.column.owner":"owner","oss-bindery-workbook-audit.quiet.payroll.file":"payroll-north.xlsx","oss-bindery-workbook-audit.quiet.ledger.file":"ledger-2019.xls","oss-bindery-workbook-audit.quiet.stock.file":"stock-count.ods","oss-bindery-workbook-audit.quiet.sales.file":"field-sales.numbers","oss-bindery-workbook-audit.quiet.result":"stored values agree","oss-bindery-workbook-audit.quiet.owner":"none needed","oss-bindery-workbook-audit.finding.stale.file":"board-pack.xlsx","oss-bindery-workbook-audit.finding.stale.kind":"stale formula","oss-bindery-workbook-audit.finding.stale.owner":"FP&A","oss-bindery-workbook-audit.finding.stale.where":"Summary!C12","oss-bindery-workbook-audit.finding.stale.formula":"=SUM(C4:C11)","oss-bindery-workbook-audit.finding.stale.stored":"1,284,500","oss-bindery-workbook-audit.finding.stale.current":"1,271,940","oss-bindery-workbook-audit.finding.stale.difference":"12,560","oss-bindery-workbook-audit.finding.stale.dependent":"board chart, series Actual","oss-bindery-workbook-audit.finding.pasted.file":"reg-return.xlsx","oss-bindery-workbook-audit.finding.pasted.kind":"pasted value","oss-bindery-workbook-audit.finding.pasted.owner":"regulatory reporting","oss-bindery-workbook-audit.finding.pasted.where":"Totals!F27","oss-bindery-workbook-audit.finding.pasted.formula":"value pasted over =SUM(F12:F26)","oss-bindery-workbook-audit.finding.pasted.stored":"96,400","oss-bindery-workbook-audit.finding.pasted.current":"94,118","oss-bindery-workbook-audit.finding.pasted.difference":"2,282","oss-bindery-workbook-audit.finding.pasted.dependent":"regulatory total","oss-bindery-workbook-audit.finding.link.file":"plan-model.xlsb","oss-bindery-workbook-audit.finding.link.kind":"external link","oss-bindery-workbook-audit.finding.link.owner":"treasury","oss-bindery-workbook-audit.finding.link.where":"Assumptions!B7","oss-bindery-workbook-audit.finding.link.formula":"=[rates-2024.xlsx]Base!C3","oss-bindery-workbook-audit.finding.link.stored":"2.85 cached","oss-bindery-workbook-audit.finding.link.current":"not recomputed","oss-bindery-workbook-audit.finding.link.difference":"link unresolved","oss-bindery-workbook-audit.finding.link.dependent":"forecast rows 12 to 40","oss-bindery-workbook-audit.finding.custom.file":"actuarial-model.xlsb","oss-bindery-workbook-audit.finding.custom.kind":"unsupported function","oss-bindery-workbook-audit.finding.custom.owner":"platform team","oss-bindery-workbook-audit.finding.custom.where":"Model!D18","oss-bindery-workbook-audit.finding.custom.formula":"custom function outside the registry","oss-bindery-workbook-audit.finding.custom.stored":"cached value kept","oss-bindery-workbook-audit.finding.custom.current":"typed error","oss-bindery-workbook-audit.finding.custom.difference":"batch continues","oss-bindery-workbook-audit.finding.custom.dependent":"sheet Model only","oss-bindery-workbook-audit.detail.where":"where","oss-bindery-workbook-audit.detail.formula":"formula","oss-bindery-workbook-audit.detail.stored":"stored","oss-bindery-workbook-audit.detail.current":"current","oss-bindery-workbook-audit.detail.difference":"difference","oss-bindery-workbook-audit.detail.dependent":"affects","oss-bindery-workbook-audit.summary.files":"8 files examined","oss-bindery-workbook-audit.summary.agree":"4 stored values agree","oss-bindery-workbook-audit.summary.findings":"4 findings with owners","oss-bindery-workbook-audit.summary.accounted":"every file accounted for","oss-bindery-workbook-audit.band.left":"the review can be repeated after later changes","oss-bindery-workbook-audit.band.right":"stored beside computed, never silently","oss-bindery-workbook-review.kicker.label":"Finding","oss-bindery-workbook-review.kicker.sub":"what a reviewer receives","oss-bindery-workbook-review.tag":"CALCULATE","oss-bindery-workbook-review.finding.where.field":"where","oss-bindery-workbook-review.finding.where.name":"Sheet and cell","oss-bindery-workbook-review.finding.where.body":"The exact location, table or named range involved.","oss-bindery-workbook-review.finding.why.field":"why","oss-bindery-workbook-review.finding.why.name":"Formula and dependencies","oss-bindery-workbook-review.finding.why.body":"The expression and the inputs that produced the recalculated result.","oss-bindery-workbook-review.finding.what.field":"what","oss-bindery-workbook-review.finding.what.name":"Stored versus current","oss-bindery-workbook-review.finding.what.body":"Both values and the difference, never one replacing the other silently.","oss-bindery-workbook-review.finding.impact.field":"impact","oss-bindery-workbook-review.finding.impact.name":"Dependent closure","oss-bindery-workbook-review.finding.impact.body":"The totals, charts and downstream cells affected by the discrepancy.","oss-bindery-workbook-review.footline.left":"the workbook remains evidence","oss-bindery-workbook-review.footline.right":"because its working is still present","page-breadcrumb.c766e66518":"Breadcrumb","page-toc.7e439c353e":"On this page","section_st_a1_display-split.7c9a7c0610":"Detail","section_st_f1_cta-dark.90e40d5043":"Get started","toc-rail.f5cbdf6bfb":"Contents"}
