{"_id":"@actionmanifest/adapter-xberg","name":"@actionmanifest/adapter-xberg","dist-tags":{"next":"0.9.0-rc.0","latest":"0.9.0-rc.0"},"versions":{"0.9.0-rc.0":{"name":"@actionmanifest/adapter-xberg","version":"0.9.0-rc.0","description":"Xberg reference adapter: Xberg ExtractionResult → CanonicalDocument. The native Xberg dependency is isolated in this package; ActionManifest Core stays parser-free.","license":"Apache-2.0","type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"engines":{"node":">=22"},"repository":{"type":"git","url":"git+https://github.com/hello-ai-company/ActionManifest.git","directory":"packages/adapter-xberg"},"homepage":"https://github.com/hello-ai-company/ActionManifest/tree/main/packages/adapter-xberg#readme","bugs":{"url":"https://github.com/hello-ai-company/ActionManifest/issues"},"publishConfig":{"access":"public"},"dependencies":{"@actionmanifest/adapters":"0.9.0-rc.0","@actionmanifest/core":"0.9.0-rc.0","@xberg-io/xberg":"1.1.3"},"scripts":{"build":"tsc -b"},"_id":"@actionmanifest/adapter-xberg@0.9.0-rc.0","_integrity":"sha512-QuQZB7p9MiTFnpqQX3H1R624+YXCEz+eR7E6b9mypkb970NZLMuof74y6XMwQV2MR1QLpIA5He9XIlmUv6yxcw==","_resolved":"/tmp/actionmanifest-canonical-publish.06nY0g/tarballs/actionmanifest-adapter-xberg-0.9.0-rc.0.tgz","_from":"file:/tmp/actionmanifest-canonical-publish.06nY0g/tarballs/actionmanifest-adapter-xberg-0.9.0-rc.0.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-QuQZB7p9MiTFnpqQX3H1R624+YXCEz+eR7E6b9mypkb970NZLMuof74y6XMwQV2MR1QLpIA5He9XIlmUv6yxcw==","shasum":"59429adee5980b443326b4be1a5f537178178027","tarball":"https://registry.npmjs.org/@actionmanifest/adapter-xberg/-/adapter-xberg-0.9.0-rc.0.tgz","fileCount":20,"unpackedSize":47529,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD9TzV3jVtIbsKHm75JBLXbZmdUQzlk7fPHP0sZ560O6AIgGFY0EcNm3c7c1PpnUB9DHwzpN2fvAjR8O0k99Dg7wzM="}]},"_npmUser":{"name":"yuki-s-code","email":"yukitokinako3@gmail.com"},"directories":{},"maintainers":[{"name":"yuki-s-code","email":"yukitokinako3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapter-xberg_0.9.0-rc.0_1789125170337_0.5738837334305895"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-11T11:12:50.239Z","0.9.0-rc.0":"2026-09-11T11:12:50.484Z","modified":"2026-09-11T11:12:50.775Z"},"maintainers":[{"name":"yuki-s-code","email":"yukitokinako3@gmail.com"}],"description":"Xberg reference adapter: Xberg ExtractionResult → CanonicalDocument. The native Xberg dependency is isolated in this package; ActionManifest Core stays parser-free.","homepage":"https://github.com/hello-ai-company/ActionManifest/tree/main/packages/adapter-xberg#readme","repository":{"type":"git","url":"git+https://github.com/hello-ai-company/ActionManifest.git","directory":"packages/adapter-xberg"},"bugs":{"url":"https://github.com/hello-ai-company/ActionManifest/issues"},"license":"Apache-2.0","readme":"# @actionmanifest/adapter-xberg\n\nXberg reference adapter: `Xberg ExtractionResult → CanonicalDocument`. The\n**optional** second parser that proves the CanonicalDocument boundary is\nparser-independent. The native Xberg binding is isolated in this package —\nno other `@actionmanifest/*` package depends on it (enforced by CI).\n\n> **Release status:** release-candidate preparation — not yet published to\n> npm. First release: `0.9.0-rc.1`. Verified against `@xberg-io/xberg`\n> **1.1.3 exactly** (pinned; see\n> [ADR 0007](../../docs/adr/0007-release-versioning-and-supply-chain.md)).\n>\n> **Stability split (0.x):**\n> - **Layer A — `mapXbergResultToCanonical`** is the *stable structural\n>   mapper*: pure validation + mapping of a serialized `ExtractionResult`,\n>   no native binding, no network. Normal 0.x policy.\n> - **Layer B — `XbergAdapter` runtime bridge** is **experimental**\n>   (`@experimental` in JSDoc): it dynamically imports the native NAPI\n>   binding, requires Node >= 22, and its live behavior is covered by opt-in\n>   integration tests (`pnpm xberg:integration`), not the default CI matrix.\n>   The bridge API may change between 0.x minors.\n\n```bash\nnpm install @actionmanifest/adapter-xberg   # once published — opt-in\n```\n\nRequires Node.js >= 22 (Xberg's own requirement; every other\nActionManifest package is >= 20).\n\n## Two layers\n\n```ts\n// Layer A — pure mapping, no native binding, no network. Use this if you\n// already ran Xberg yourself:\nimport { mapXbergResultToCanonical } from \"@actionmanifest/adapter-xberg\";\nconst doc = mapXbergResultToCanonical(serializedExtractionResult, { sourceId: \"doc-1\" });\n\n// Layer B — runtime bridge; dynamically imports the native engine:\nimport { XbergAdapter } from \"@actionmanifest/adapter-xberg\";\nconst adapter = new XbergAdapter();\nconst doc2 = await adapter.toCanonical({ kind: \"xberg-uri\", sourceId: \"doc-2\", uri });\n```\n\nRemote URLs are never fetched unless you pass `allowRemote: true`.\n\n## Contract notes\n\n- Source identity is caller-supplied (`sourceId`); Xberg element/result ids\n  are locators (`sourceReference`), never document identity.\n- Pages map only when upstream provides per-page content; **bbox is omitted**\n  (unknown coordinate system — unknown stays unknown).\n- Multi-document results are rejected (`MULTIPLE_DOCUMENTS`).\n\nFull mapping table: [docs/ADAPTER-XBERG.md](../../docs/ADAPTER-XBERG.md).\n\n## Links\n\n- Repository: <https://github.com/hello-ai-company/ActionManifest> (this\n  package: `packages/adapter-xberg`)\n- Parser independence proof: [docs/PARSER-INDEPENDENCE.md](../../docs/PARSER-INDEPENDENCE.md)\n\nApache-2.0.\n","readmeFilename":"README.md","_rev":"1-255dca1efccb40b9b1440b3a54288a7c"}