{"_id":"@blackbelt-technology/pi-dashboard-document-converter","_rev":"5-936fe09e3a32e113b0fda2c1d832f7dc","name":"@blackbelt-technology/pi-dashboard-document-converter","dist-tags":{"latest":"0.8.0"},"versions":{"0.5.4":{"name":"@blackbelt-technology/pi-dashboard-document-converter","version":"0.5.4","keywords":["pi-package","pi-skill","document-conversion","docling","docx","pdf","markdown","ocr","kb","pi"],"license":"MIT","_id":"@blackbelt-technology/pi-dashboard-document-converter@0.5.4","maintainers":[{"name":"mbotond","email":"botond.molnar@blackbelt.hu"},{"name":"mrbence","email":"dbence10@gmail.com"},{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},{"name":"norbert.herczeg","email":"norbert.herczeg@blackbelt.hu"}],"homepage":"https://github.com/BlackBeltTechnology/pi-agent-dashboard#readme","bugs":{"url":"https://github.com/BlackBeltTechnology/pi-agent-dashboard/issues"},"pi":{"skills":[".pi/skills/document-converter"]},"dist":{"shasum":"d6c7a291c4f0f6e79fd8852b11e6ed52b66a6055","tarball":"https://registry.npmjs.org/@blackbelt-technology/pi-dashboard-document-converter/-/pi-dashboard-document-converter-0.5.4.tgz","fileCount":72,"integrity":"sha512-F6u/NzM+cSRj0pqljd9ySwF5DNDbZFTU8kknKkdAtWJ/vheUA+qzhF1h/fB4d3YTJhIqH+V1cv/KwYJYt95Osw==","signatures":[{"sig":"MEYCIQDsV9MR5Jz3P6w3E+qXiOiV10M5qW9pzI4j42VRiJ580gIhANOrXN0PcDdgEzik1sZX895xnaprSCisMM4ZWv1edDai","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":710975},"type":"module","engines":{"node":">=22.5.0"},"exports":{".":"./src/index.ts","./schema":"./src/schema.ts"},"gitHead":"fd2becebcf471236b70e0862c79e97bbc5a00c14","scripts":{"test":"vitest run","build:image":"./engine/build-image.sh"},"_npmUser":{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},"repository":{"url":"git+https://github.com/BlackBeltTechnology/pi-agent-dashboard.git","type":"git","directory":"packages/document-converter"},"_npmVersion":"10.9.3","description":"TypeScript facade over a Dockerized Python document engine (pi-doc-engine). Bidirectional: ingest any format to provenance-stamped Markdown for kb, produce templated DOCX/PDF with diagrams. Engine quarantined in Docker; TS is the only call surface.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@blackbelt-technology/pi-dashboard-shared":"^0.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-dashboard-document-converter_0.5.4_1782437281310_0.3217868577258318","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@blackbelt-technology/pi-dashboard-document-converter","version":"0.6.0","keywords":["pi-package","pi-skill","document-conversion","docling","docx","pdf","markdown","ocr","kb","pi"],"license":"MIT","_id":"@blackbelt-technology/pi-dashboard-document-converter@0.6.0","maintainers":[{"name":"mbotond","email":"botond.molnar@blackbelt.hu"},{"name":"mrbence","email":"dbence10@gmail.com"},{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},{"name":"norbert.herczeg","email":"norbert.herczeg@blackbelt.hu"}],"homepage":"https://github.com/BlackBeltTechnology/pi-agent-dashboard#readme","bugs":{"url":"https://github.com/BlackBeltTechnology/pi-agent-dashboard/issues"},"pi":{"skills":[".pi/skills/document-converter",".pi/skills/doc-summarizer"]},"dist":{"shasum":"bbcb2ebad0deb8f537e6db278aa730e7b1915042","tarball":"https://registry.npmjs.org/@blackbelt-technology/pi-dashboard-document-converter/-/pi-dashboard-document-converter-0.6.0.tgz","fileCount":74,"integrity":"sha512-tCjqPmdQFXin83VoB1uoz9bXJ1QqSulDWNWTACnSVlqHPWfC4RRIoVj8V5Szrwt4xfMDJCl3ElkQrs3XeFkqYQ==","signatures":[{"sig":"MEQCIASqQdkRdZK/pWJ+yr5/DHiCrgxDfYfPpT9y8UiDQYGqAiAf/JC/MavxKODlQPPY+0eIEav7CCAqMD8l0T/z056W6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blackbelt-technology%2fpi-dashboard-document-converter@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":720852},"type":"module","engines":{"node":">=22.5.0"},"exports":{".":"./src/index.ts","./schema":"./src/schema.ts"},"gitHead":"53c737b1bae56fcd8e02a93ae921b83de19df343","scripts":{"test":"vitest run","build:image":"./engine/build-image.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14fffa6a-f548-4225-b4d4-820565a43a92"}},"repository":{"url":"git+https://github.com/BlackBeltTechnology/pi-agent-dashboard.git","type":"git","directory":"packages/document-converter"},"_npmVersion":"11.12.1","description":"TypeScript facade over a Dockerized Python document engine (pi-doc-engine). Bidirectional: ingest any format to provenance-stamped Markdown for kb, produce templated DOCX/PDF with diagrams. Engine quarantined in Docker; TS is the only call surface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@blackbelt-technology/pi-dashboard-shared":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-dashboard-document-converter_0.6.0_1784567266474_0.9236744148379403","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@blackbelt-technology/pi-dashboard-document-converter","version":"0.6.1","keywords":["pi-package","pi-skill","document-conversion","docling","docx","pdf","markdown","ocr","kb","pi"],"license":"MIT","_id":"@blackbelt-technology/pi-dashboard-document-converter@0.6.1","maintainers":[{"name":"mbotond","email":"botond.molnar@blackbelt.hu"},{"name":"mrbence","email":"dbence10@gmail.com"},{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},{"name":"norbert.herczeg","email":"norbert.herczeg@blackbelt.hu"}],"homepage":"https://github.com/BlackBeltTechnology/pi-agent-dashboard#readme","bugs":{"url":"https://github.com/BlackBeltTechnology/pi-agent-dashboard/issues"},"pi":{"skills":[".pi/skills/document-converter",".pi/skills/doc-summarizer"]},"dist":{"shasum":"317205cdd85d88ccbe119c5e85bae23fd5b4082b","tarball":"https://registry.npmjs.org/@blackbelt-technology/pi-dashboard-document-converter/-/pi-dashboard-document-converter-0.6.1.tgz","fileCount":74,"integrity":"sha512-5TtNFIlQ9OuxENuQ2hoRdLWGpdbzsion4GGq10ik8eWMN7Gl4IMF/ZcXJ7crnd0uTaJlgJY6MN5FtMT4vDtmEg==","signatures":[{"sig":"MEUCIQDU4fCODIPqo5VJVc/EUQgVZBBRhZEBThjX3rHdPlFoCgIgc3f54TV6/X4MiXRid2mMVeSRwn+CNtZSQSE67qn4Big=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blackbelt-technology%2fpi-dashboard-document-converter@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":720852},"type":"module","engines":{"node":">=22.5.0"},"exports":{".":"./src/index.ts","./schema":"./src/schema.ts"},"gitHead":"88a0cf3cc7d7c7c4e44eb61df3cceff19ed919ad","scripts":{"test":"vitest run","build:image":"./engine/build-image.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14fffa6a-f548-4225-b4d4-820565a43a92"}},"repository":{"url":"git+https://github.com/BlackBeltTechnology/pi-agent-dashboard.git","type":"git","directory":"packages/document-converter"},"_npmVersion":"11.12.1","description":"TypeScript facade over a Dockerized Python document engine (pi-doc-engine). Bidirectional: ingest any format to provenance-stamped Markdown for kb, produce templated DOCX/PDF with diagrams. Engine quarantined in Docker; TS is the only call surface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@blackbelt-technology/pi-dashboard-shared":"^0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-dashboard-document-converter_0.6.1_1784571742569_0.6193009501893036","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@blackbelt-technology/pi-dashboard-document-converter","version":"0.7.0","keywords":["pi-package","pi-skill","document-conversion","docling","docx","pdf","markdown","ocr","kb","pi"],"license":"MIT","_id":"@blackbelt-technology/pi-dashboard-document-converter@0.7.0","maintainers":[{"name":"mbotond","email":"botond.molnar@blackbelt.hu"},{"name":"mrbence","email":"dbence10@gmail.com"},{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},{"name":"norbert.herczeg","email":"norbert.herczeg@blackbelt.hu"}],"homepage":"https://github.com/BlackBeltTechnology/pi-agent-dashboard#readme","bugs":{"url":"https://github.com/BlackBeltTechnology/pi-agent-dashboard/issues"},"pi":{"skills":[".pi/skills/document-converter",".pi/skills/doc-summarizer"]},"dist":{"shasum":"34baabca3effe8788c5888e6fe94cc1a1d2054e4","tarball":"https://registry.npmjs.org/@blackbelt-technology/pi-dashboard-document-converter/-/pi-dashboard-document-converter-0.7.0.tgz","fileCount":74,"integrity":"sha512-lUe5L1qnXX5Anj79gJeNTHUL60emsvBW1doXoehV8W1sa4WGgnK9XCXTLPPjVgYRKAZIjXlQPgP3dnneIIjFtg==","signatures":[{"sig":"MEYCIQC6/8QN+RkqSGcjfYef9FJz0zZgBNEPucA7ET1hNU2R3AIhAKQR0opbAHiMAflCZxzYrpM+IfaDxTs6gdnz6ZZGWQLs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blackbelt-technology%2fpi-dashboard-document-converter@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":721175},"type":"module","engines":{"node":">=22.5.0"},"exports":{".":"./src/index.ts","./schema":"./src/schema.ts"},"gitHead":"9203d6a89f1b81c516e9351072ee5cb4c6579e0a","scripts":{"test":"vitest run","build:image":"./engine/build-image.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14fffa6a-f548-4225-b4d4-820565a43a92"}},"repository":{"url":"git+https://github.com/BlackBeltTechnology/pi-agent-dashboard.git","type":"git","directory":"packages/document-converter"},"_npmVersion":"12.0.1","description":"TypeScript facade over a Dockerized Python document engine (pi-doc-engine). Bidirectional: ingest any format to provenance-stamped Markdown for kb, produce templated DOCX/PDF with diagrams. Engine quarantined in Docker; TS is the only call surface.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@blackbelt-technology/pi-dashboard-shared":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-dashboard-document-converter_0.7.0_1784899127076_0.22603642442471683","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@blackbelt-technology/pi-dashboard-document-converter","version":"0.8.0","description":"TypeScript facade over a Dockerized Python document engine (pi-doc-engine). Bidirectional: ingest any format to provenance-stamped Markdown for kb, produce templated DOCX/PDF with diagrams. Engine quarantined in Docker; TS is the only call surface.","type":"module","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/BlackBeltTechnology/pi-agent-dashboard.git","directory":"packages/document-converter"},"pi":{"skills":[".pi/skills/document-converter",".pi/skills/doc-summarizer"]},"exports":{".":"./src/index.ts","./schema":"./src/schema.ts"},"engines":{"node":">=22.5.0"},"scripts":{"build:image":"./engine/build-image.sh","test":"vitest run"},"dependencies":{"@blackbelt-technology/pi-dashboard-shared":"^0.8.0"},"keywords":["pi-package","pi-skill","document-conversion","docling","docx","pdf","markdown","ocr","kb","pi"],"gitHead":"9373dfa416660a285475febc0383608fe14270b1","_id":"@blackbelt-technology/pi-dashboard-document-converter@0.8.0","bugs":{"url":"https://github.com/BlackBeltTechnology/pi-agent-dashboard/issues"},"homepage":"https://github.com/BlackBeltTechnology/pi-agent-dashboard#readme","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-84KD5kmCcyZQLAGECmycE1mnecL9N3rG71W7036OGVBLpnnhY+fw9cGG4jtaMb8HdBsHCMYLmiHbM51IKpCaJQ==","shasum":"a624c1ca530a17b00a1565eaf37e88a5d01247c0","tarball":"https://registry.npmjs.org/@blackbelt-technology/pi-dashboard-document-converter/-/pi-dashboard-document-converter-0.8.0.tgz","fileCount":66,"unpackedSize":703471,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blackbelt-technology%2fpi-dashboard-document-converter@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCGkrHXp5vfdsSnfdCZrLWp74J6jiIgQsr6k+oH9bb+LQIhAL9x0CjkDnWumOuxebQYqHo8xYVJXMKS2GLbw0Zt2eH/"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14fffa6a-f548-4225-b4d4-820565a43a92"}},"directories":{},"maintainers":[{"name":"mbotond","email":"botond.molnar@blackbelt.hu"},{"name":"mrbence","email":"dbence10@gmail.com"},{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},{"name":"norbert.herczeg","email":"norbert.herczeg@blackbelt.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-dashboard-document-converter_0.8.0_1787746029546_0.8328480581217552"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-26T01:28:01.126Z","modified":"2026-08-26T12:07:10.005Z","0.5.4":"2026-06-26T01:28:01.494Z","0.6.0":"2026-07-20T17:07:46.694Z","0.6.1":"2026-07-20T18:22:22.756Z","0.7.0":"2026-07-24T13:18:47.259Z","0.8.0":"2026-08-26T12:07:09.687Z"},"bugs":{"url":"https://github.com/BlackBeltTechnology/pi-agent-dashboard/issues"},"license":"MIT","homepage":"https://github.com/BlackBeltTechnology/pi-agent-dashboard#readme","keywords":["pi-package","pi-skill","document-conversion","docling","docx","pdf","markdown","ocr","kb","pi"],"repository":{"type":"git","url":"git+https://github.com/BlackBeltTechnology/pi-agent-dashboard.git","directory":"packages/document-converter"},"description":"TypeScript facade over a Dockerized Python document engine (pi-doc-engine). Bidirectional: ingest any format to provenance-stamped Markdown for kb, produce templated DOCX/PDF with diagrams. Engine quarantined in Docker; TS is the only call surface.","maintainers":[{"name":"mbotond","email":"botond.molnar@blackbelt.hu"},{"name":"mrbence","email":"dbence10@gmail.com"},{"name":"robertcsakany","email":"robert.csakany@blackbelt.hu"},{"name":"norbert.herczeg","email":"norbert.herczeg@blackbelt.hu"}],"readme":"# @blackbelt-technology/pi-dashboard-document-converter\n\nTypeScript facade over a Dockerized Python document engine (`pi-doc-engine`).\nThe **only** call surface for document conversion in the repo. Callers never\ntouch Python, docling, pandoc, or the nano-banana CLI.\n\n- **Ingest** (feeds kb): PDF/DOCX/PPTX/XLSX → provenance-stamped Markdown.\n- **Produce**: Markdown → templated DOCX/PDF, diagrams, round-trip edit/merge.\n- Engine quarantined in Docker; TS is the contract + orchestrator.\n\n## Facade API\n\n```ts\nimport { createDocumentConverter } from \"@blackbelt-technology/pi-dashboard-document-converter\";\n\nconst dc = createDocumentConverter({\n  image: \"pi-doc-engine:0.1.0\",\n  stagingDir: \"/abs/kb-staging\",\n});\n\n// Ingest -> Markdown with provenance frontmatter (written into stagingDir).\nconst { output, provenance } = await dc.convertToMarkdown(\"/docs/report.pdf\", {\n  ocr: { mode: \"auto\", lang: [\"hungarian\", \"english\"], engine: \"tesseract\" },\n});\n\n// Produce -> templated DOCX (styled diagrams opt-in via nanoBanana).\nawait dc.renderDocx(\"/docs/spec.md\", {\n  output: \"/out/spec.docx\",\n  template: \"default\",\n  nanoBanana: { enabled: true, style: \"ros-3d\" },\n});\n\nawait dc.renderPdf(\"/out/spec.docx\", { output: \"/out/spec.pdf\", pageSize: \"a4\" });\n\n// Round-trip.\nconst { meta } = await dc.extractForEdit(\"/in.docx\", \"/edit.md\");\nawait dc.mergeBack(\"/in.docx\", \"/edit.md\", { output: \"/out.docx\", meta });\n\n// Frontmatter tooling over the unified schema.\nawait dc.fillFrontmatter([\"spec/**/*.md\"], { language: \"hu\" });\nawait dc.profileTables([\"spec/**/*.md\"]);\n```\n\nEvery method returns a typed result or rejects with `DocConverterError`\n(`.code`, `.stderr`, `.exitCode`). OCR canonical language names are mapped to\nper-engine codes (`mapOcrCodes`); an unsupported name/engine raises\n`OCR_LANG_UNSUPPORTED` before the engine runs.\n\n## Unified frontmatter schema\n\n`./schema` (also `src/schema.json`) is the single contract every stage reads/\nwrites: template vars (frontmatter-filler) · `table_profiles` (table profiler) ·\n`nano_banana` (styled diagrams) · `provenance` (ingest, read by kb).\n\n## kb consumption seam (kb is NOT modified)\n\nIngest writes provenance-stamped `.md` into `stagingDir`. kb consumes it via its\nexisting `filesystem` source — no kb code change:\n\n```bash\n# Point a kb filesystem source at the staging dir and index it.\nkb index  --source /abs/kb-staging\nkb search \"deferred tax liabilities\" --source /abs/kb-staging\n```\n\nThe `provenance` frontmatter (`source_path`, `sha256`, `doc_type`,\n`converted_at`, optional `page`/`slide`) lets kb chunks trace back to the\noriginating file. Re-ingesting an unchanged file yields the same `sha256`, so\nstaging output is byte-stable (idempotent by hash).\n\n## Templates (runtime-mounted, not baked)\n\nDOCX templates are NOT baked into the image — pass `templatesDir` (an absolute\nhost dir containing `<template>/template.docx`); the facade bind-mounts it. Keeps\nbranded/template assets out of the image and the repo.\n\n## Engine image\n\nBuilt from `engine/` (vendored Python; see `engine/VENDOR.md`):\n\n```bash\nnpm run build:image   # -> pi-doc-engine:$(cat engine/IMAGE_VERSION)\n```\n\nHeavy (docling ML models + LibreOffice + pandoc + chrome-headless-shell). The\nimage runs as root, so an `mmdc` shim injects `--no-sandbox`; opencv needs\n`libgl1`; `@puppeteer/browsers` needs `unzip` (all handled in the Dockerfile).\nSee `engine/README.md` for the JSON `docker run` contract.\n\n## Integration test (opt-in)\n\nVerified green against `pi-doc-engine:0.1.0`. Build the image, then:\n\n```bash\nDOC_ENGINE_IMAGE=pi-doc-engine:0.1.0 \\\n  DOC_ENGINE_PDF=/abs/sample.pdf \\\n  DOC_ENGINE_TEMPLATES=/abs/templates \\\n  npx vitest run integration\n```\n\n## Tests\n\n```bash\nnpm test                                          # TS facade unit tests (vitest)\npython -m pytest engine/tests -q                  # engine styled-diagram/cache tests\n```\n","readmeFilename":"README.md"}