{"_id":"@atape/adapter-opencode","_rev":"3-2c459d1fb00579c169500ce7bf8ad892","name":"@atape/adapter-opencode","dist-tags":{"latest":"0.5.2"},"versions":{"0.5.0":{"name":"@atape/adapter-opencode","version":"0.5.0","license":"MIT","_id":"@atape/adapter-opencode@0.5.0","maintainers":[{"name":"jacksooon.0113","email":"singlemai0113@gmail.com"}],"homepage":"https://github.com/SingleMai/ATape#readme","bugs":{"url":"https://github.com/SingleMai/ATape/issues"},"dist":{"shasum":"640e961e0bc51e84ef7e265b0f0baeb9622b8020","tarball":"https://registry.npmjs.org/@atape/adapter-opencode/-/adapter-opencode-0.5.0.tgz","fileCount":4,"integrity":"sha512-rxZc7T12h8QbuJqRrY+xRsukfPxF5yDOSid11hDw81Qi2AZSOxsoTOtkzl4Q7Yyw0BR5jjP2sbH84McO+24yug==","signatures":[{"sig":"MEUCIQC01U6DPAMsaNTyKGCJHokCQ3AFuDLFZejloWE8UWCkDQIgexpQbIGl3dOZvG8z+5p8SpMH3jFVyYggU+kEXKjEhEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":721267},"type":"module","_from":"file:/Users/liying/.codex/worktrees/1199/ATape-opencode-release/release/atape-adapter-opencode-0.5.0.tgz","engines":{"node":">=24"},"exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","prepack":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","pack:release":"node ../../scripts/pack-adapter.mjs","verify:package":"node scripts/verify-package.mjs"},"_npmUser":{"name":"jacksooon.0113","email":"singlemai0113@gmail.com"},"_resolved":"/Users/liying/.codex/worktrees/1199/ATape-opencode-release/release/atape-adapter-opencode-0.5.0.tgz","_integrity":"sha512-rxZc7T12h8QbuJqRrY+xRsukfPxF5yDOSid11hDw81Qi2AZSOxsoTOtkzl4Q7Yyw0BR5jjP2sbH84McO+24yug==","repository":{"url":"git+https://github.com/SingleMai/ATape.git","type":"git","directory":"adapters/opencode"},"_npmVersion":"11.16.0","description":"ATape Adapter for local OpenCode SQLite history","directories":{},"_nodeVersion":"24.18.0","atapeAdapter":{"entry":"./dist/index.js","adapterId":"opencode","harnesses":["OpenCode"],"displayName":"OpenCode","sourceCapture":"atape.source-capture.v1","gitAttribution":"atape.git-attribution.v1","protocolVersion":"atape.adapter.v1alpha1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"effect":"catalog:","vitest":"catalog:build","esbuild":"catalog:build","typescript":"catalog:build","@types/node":"^24.0.0","@atape/domain":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/adapter-opencode_0.5.0_1789111842007_0.6976414399516113","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@atape/adapter-opencode","version":"0.5.1","license":"MIT","_id":"@atape/adapter-opencode@0.5.1","maintainers":[{"name":"jacksooon.0113","email":"singlemai0113@gmail.com"}],"homepage":"https://github.com/SingleMai/ATape#readme","bugs":{"url":"https://github.com/SingleMai/ATape/issues"},"dist":{"shasum":"18e1184edb6343274171dc7a80c1aabe5e25124c","tarball":"https://registry.npmjs.org/@atape/adapter-opencode/-/adapter-opencode-0.5.1.tgz","fileCount":4,"integrity":"sha512-EEVrSW3+Qscw6o9A+za63CDSJXLStErQI/bEI+lTuM13a60XNy4p20S5I9+59Mnd7j4ro28uCLL+06/H8u3bcA==","signatures":[{"sig":"MEUCIQDTsXSQphpp48nTQ+D1/cTLV/SN0x1N7kV+uraGaxgJWAIgaYpsazWiPD7GGi1yBCmDauU8Zjrq79tYhXApam3Fai8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atape%2fadapter-opencode@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":721510},"type":"module","_from":"file:/home/runner/work/ATape/ATape/release/atape-adapter-opencode-0.5.1.tgz","engines":{"node":">=24"},"exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"node scripts/build.mjs","prepack":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","pack:release":"node ../../scripts/pack-adapter.mjs","verify:package":"node scripts/verify-package.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:499fa995-306c-44ed-9aec-98dc61163cb8"}},"_resolved":"/home/runner/work/ATape/ATape/release/atape-adapter-opencode-0.5.1.tgz","_integrity":"sha512-EEVrSW3+Qscw6o9A+za63CDSJXLStErQI/bEI+lTuM13a60XNy4p20S5I9+59Mnd7j4ro28uCLL+06/H8u3bcA==","repository":{"url":"git+https://github.com/SingleMai/ATape.git","type":"git","directory":"adapters/opencode"},"_npmVersion":"11.19.0","description":"ATape Adapter for local OpenCode SQLite history","directories":{},"_nodeVersion":"24.20.0","atapeAdapter":{"entry":"./dist/index.js","adapterId":"opencode","harnesses":["OpenCode"],"displayName":"OpenCode","sourceCapture":"atape.source-capture.v1","gitAttribution":"atape.git-attribution.v1","protocolVersion":"atape.adapter.v1alpha1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"effect":"catalog:","vitest":"catalog:build","esbuild":"catalog:build","typescript":"catalog:build","@types/node":"^24.0.0","@atape/domain":"workspace:*","@atape/adapter-catalog":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/adapter-opencode_0.5.1_1789189663659_0.2106286988359014","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@atape/adapter-opencode","version":"0.5.2","type":"module","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","typecheck":"tsc -p tsconfig.json","build":"node scripts/build.mjs","prepack":"node scripts/build.mjs","verify:package":"node scripts/verify-package.mjs","pack:release":"node ../../scripts/pack-adapter.mjs"},"devDependencies":{"@types/node":"^24.0.0","typescript":"catalog:build","vitest":"catalog:build","effect":"catalog:","@atape/domain":"workspace:*","esbuild":"catalog:build","@atape/adapter-catalog":"workspace:*"},"description":"ATape Adapter for local OpenCode SQLite history","license":"MIT","engines":{"node":">=24"},"atapeAdapter":{"protocolVersion":"atape.adapter.v1alpha1","gitAttribution":"atape.git-attribution.v1","sourceCapture":"atape.source-capture.v1","adapterId":"opencode","displayName":"OpenCode","entry":"./dist/index.js","harnesses":["OpenCode"]},"repository":{"type":"git","url":"git+https://github.com/SingleMai/ATape.git","directory":"adapters/opencode"},"homepage":"https://github.com/SingleMai/ATape#readme","bugs":{"url":"https://github.com/SingleMai/ATape/issues"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_id":"@atape/adapter-opencode@0.5.2","_integrity":"sha512-4kxZnAFQIhDo82bp+DgjYT3Zq+pR0XilRfBa4Ycp95wr2ie2N+s/4gS+0RvAMBAXprJyVRVFDE3Ur63eCUpjHQ==","_resolved":"/Users/liying/.codex/worktrees/e1e9/ATape/release/atape-adapter-opencode-0.5.2.tgz","_from":"file:/Users/liying/.codex/worktrees/e1e9/ATape/release/atape-adapter-opencode-0.5.2.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-4kxZnAFQIhDo82bp+DgjYT3Zq+pR0XilRfBa4Ycp95wr2ie2N+s/4gS+0RvAMBAXprJyVRVFDE3Ur63eCUpjHQ==","shasum":"ed23433d5bffac5dca520b7484c74b242def1a3a","tarball":"https://registry.npmjs.org/@atape/adapter-opencode/-/adapter-opencode-0.5.2.tgz","fileCount":4,"unpackedSize":721595,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD83aIrV6+pOkawRWUFgCWZWmQeTxYJHGa7UaI5vIIj3wIhAJp01xjtlFFgyMSsAlJkJpMGBdwXWRAduQhmiTxXoY+V"}]},"_npmUser":{"name":"jacksooon.0113","email":"singlemai0113@gmail.com"},"directories":{},"maintainers":[{"name":"jacksooon.0113","email":"singlemai0113@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapter-opencode_0.5.2_1789315670097_0.44735995723072586"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-11T07:30:41.770Z","modified":"2026-09-13T16:07:50.410Z","0.5.0":"2026-09-11T07:30:42.156Z","0.5.1":"2026-09-12T05:07:43.794Z","0.5.2":"2026-09-13T16:07:50.234Z"},"bugs":{"url":"https://github.com/SingleMai/ATape/issues"},"license":"MIT","homepage":"https://github.com/SingleMai/ATape#readme","repository":{"type":"git","url":"git+https://github.com/SingleMai/ATape.git","directory":"adapters/opencode"},"description":"ATape Adapter for local OpenCode SQLite history","maintainers":[{"name":"jacksooon.0113","email":"singlemai0113@gmail.com"}],"readme":"# ATape OpenCode Adapter\n\n`@atape/adapter-opencode` reads local OpenCode SQLite history through the\nHost-owned bounded source-capture Interface. It is self-contained ESM for Node.js\n24 or later and participates in ATape's coordinated release package set.\n\nThe first supported source is **OpenCode 1.18.30 local v1 SQLite**, verified on\n**macOS arm64 and Linux arm64 with glibc**. Other versions, architectures,\nnonempty v2 storage, mixed history and old JSON-only history have no support\nclaim. Missing or unsupported sources fail explicitly. The Adapter does not\nmigrate history, run OpenCode or invoke an export fallback.\n\n## Enable collection\n\nIn ATape's **Tools and updates** screen, add OpenCode to your existing selection\nand review the affected Projects. The same selection applies to all connected\nProjects. Installing a package alone does not enable collection or start sync.\nThe Server must expose `atape.publication.v1` with configured publication admission.\n\nFor a locally built release candidate, install its package before selecting it:\n\n```sh\natape\natape\n```\n\nRepository integration does not publish this package to npm or deploy the Server.\nOnce published, normal tool setup can install the registry package. The CLI and\nAdapter should use the same coordinated release version.\n\n## Source and attribution\n\nThe default source is `$XDG_DATA_HOME/opencode/opencode.db`, or\n`~/.local/share/opencode/opencode.db` when `XDG_DATA_HOME` is unset. `OPENCODE_DB`\nselects an absolute file or a filename relative to that native data directory.\n`:memory:` is not a durable local source. Setup detects regular files using\nmetadata only; it does not open history or promise schema compatibility.\n\nSource access is read-only. Native platform checks preserve database and WAL\ncontent; SQLite may update SHM lock metadata during reads. Project attribution\nuses original creation evidence. The Host resolves that original directory through\nshared Git attribution and current Server authorization, including worktrees and\nother checkouts of the same repository. Later directory changes do not move the\nCaptured Session. Foreign repositories are excluded; missing origins without\nestablished evidence remain unknown.\n\n## Delivery and limits\n\nThe Collector supplies bounded defaults without an environment override. It\nfreezes validated, redacted delivery bytes before content upload and atomically\nselects the complete Canonical revision. Raw delivery is independent and follows\nthe current Host policy; unresolved frozen bytes recover without rereading the\nsource. Raw-off does not retain full source JSON for later archival, and re-enable\ndoes not change existing Event provenance merely to add Raw.\n\nLimits are independent admission ceilings, not guarantees about history size,\nresident memory or physical SQLite file size. Oversized or unsupported sources\nreport a failure while retaining published history. This package uploads no\ncontent and stores no credentials itself.\n\n## Verification\n\n```sh\npnpm --filter @atape/adapter-opencode verify:package\n```\n\nThis packs and installs the artifact offline outside the checkout, then verifies\nbounded native discovery/projection, Raw policy, lifetime cancellation and\nread-only source access in a fresh Node process. Release verification repeats\nthose checks against the exact checksummed tarball. Actual CLI/HTTP/PostgreSQL\nacceptance covers background capture and package replacement preserving history.\nTests use controlled data, never personal history.\n\nSee the [feature guide](https://github.com/SingleMai/ATape/blob/main/docs/adapters/opencode.md)\nfor limits, native evidence, failure recovery and remaining scope.\n\nFor release tarballs, install the full archive path in Tools and updates → Integration maintenance, then choose OpenCode in Choose tools to sync.\n","readmeFilename":"README.md"}