{"_id":"@bleed00/dsh-claude-mem","_rev":"6-c04803f54172079c1c93b7ac5009d04e","name":"@bleed00/dsh-claude-mem","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@bleed00/dsh-claude-mem","version":"0.1.0","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"author":{"name":"Bleed00"},"license":"Apache-2.0","_id":"@bleed00/dsh-claude-mem@0.1.0","maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"e4a39b488084fcb81391c8a109bfcfa2a98d310f","tarball":"https://registry.npmjs.org/@bleed00/dsh-claude-mem/-/dsh-claude-mem-0.1.0.tgz","fileCount":17,"integrity":"sha512-Y7Qawx4intqvNt2fqTPJMwSDdWAZVcKZfQ3chHJ7MTWiDNPBjCUtMHIX1eQExIAbowN++/oFGqOyrRnkzq30Iw==","signatures":[{"sig":"MEQCIGYev7SDCXdCzT57BV/yhmsFutIZ65tTX+8ciIJNIdGqAiBiuAZWS/X3wSppuhtlHjFQ3TlTLfpuQ+5mcW0j4VnmxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80450},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","gitHead":"36dfef5ec6fd944fb4ed099f7e87c40e16509524","scripts":{"test":"vitest run","build":"npm run prepare","prepare":"tsc -p tsconfig.json && tsdown"},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"repository":{"url":"git+https://github.com/Bleed00/dsh-claude-mem.git","type":"git"},"_npmVersion":"12.0.2","description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.0","typescript":"^6.0.0","@types/node":"^26.2.0","@deepseek-ai/cordis":">=0.0.0","@deepseek-ai/dsh-llm":">=0.0.0","@deepseek-ai/dsh-agent":">=0.0.0","@deepseek-ai/dsh-skill":">=0.0.0","@deepseek-ai/dsh-tools":">=0.0.0","@deepseek-ai/schemastery":">=0.0.0"},"peerDependencies":{"@deepseek-ai/cordis":">=0.0.0","@deepseek-ai/dsh-llm":">=0.0.0","@deepseek-ai/dsh-agent":">=0.0.0","@deepseek-ai/dsh-skill":">=0.0.0","@deepseek-ai/dsh-tools":">=0.0.0","@deepseek-ai/schemastery":">=0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-claude-mem_0.1.0_1786661322783_0.8959495889179767","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bleed00/dsh-claude-mem","version":"0.1.1","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"author":{"name":"Bleed00"},"license":"Apache-2.0","_id":"@bleed00/dsh-claude-mem@0.1.1","maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"73162c8d8262e7e79ac933b19d33f10c44c1c6f5","tarball":"https://registry.npmjs.org/@bleed00/dsh-claude-mem/-/dsh-claude-mem-0.1.1.tgz","fileCount":17,"integrity":"sha512-6d4/XXkjUCmnncaL8wPhtc/CbEL4OP88qBdtY/zxKZGwV1YN4jl2lUkkN+DQiQMxD//tZ+97zSI3G0Gq5zUW8w==","signatures":[{"sig":"MEYCIQDC+s8KlBeiEKNdK2OA+JJ2WEBZ/3elUdD0ABpB5KnTfQIhALf7mwvygtj67dmLSfaytXUEd3nFQm6WDwm88cS1yK9n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82988},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":">=20.12.0"},"gitHead":"5413ed45f18945a1d5d8cd47f4597a7eb92bf4d5","scripts":{"test":"vitest run","build":"npm run prepare","prepare":"tsc -p tsconfig.json && tsdown"},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"repository":{"url":"git+https://github.com/Bleed00/dsh-claude-mem.git","type":"git"},"_npmVersion":"12.0.2","description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.0","typescript":"^6.0.0","@types/node":"^26.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-skill":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.0","@deepseek-ai/dsh-llm":">=0.0.1-rc.1","@deepseek-ai/dsh-agent":">=0.1.0-rc.6","@deepseek-ai/dsh-skill":">=0.0.1-rc.1","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=3.18.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-claude-mem_0.1.1_1786662147889_0.5674666980550271","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bleed00/dsh-claude-mem","version":"0.1.2","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"author":{"name":"Bleed00"},"license":"Apache-2.0","_id":"@bleed00/dsh-claude-mem@0.1.2","maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"77600b6375bf00fb555fa8f4f211dcfd54fca870","tarball":"https://registry.npmjs.org/@bleed00/dsh-claude-mem/-/dsh-claude-mem-0.1.2.tgz","fileCount":17,"integrity":"sha512-ij40JOe4cKybyPpgagAkYF4jMs4m3KzJi/UAnY88AcbhdIni6Y3B3i8nj+IS0vwej58UkX0VXHeF8flCA1/7qw==","signatures":[{"sig":"MEYCIQC/i51nwflLtE6q1vGmh+xmY98EpZ0fqfQe9kv2XMts1AIhAOM9HsSy2gsmCafKuN5L+wu4JSjSN1LHf0N6r07jgc5U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82926},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":">=20.12.0"},"gitHead":"8fccb3aff75ecbeb51cc414dfe33e6e138a3b234","scripts":{"test":"vitest run","build":"npm run prepare","prepare":"tsc -p tsconfig.json && tsdown"},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"repository":{"url":"git+https://github.com/Bleed00/dsh-claude-mem.git","type":"git"},"_npmVersion":"12.0.2","description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.0","typescript":"^6.0.0","@types/node":"^26.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-skill":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.0","@deepseek-ai/dsh-llm":">=0.0.1-rc.1","@deepseek-ai/dsh-agent":">=0.1.0-rc.6","@deepseek-ai/dsh-skill":">=0.0.1-rc.1","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=3.18.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-claude-mem_0.1.2_1786665484513_0.7803392312989101","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bleed00/dsh-claude-mem","version":"0.1.3","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"author":{"name":"Bleed00"},"license":"Apache-2.0","_id":"@bleed00/dsh-claude-mem@0.1.3","maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"00af4527ae1af8a4336d66f70a28690a30a1bf4b","tarball":"https://registry.npmjs.org/@bleed00/dsh-claude-mem/-/dsh-claude-mem-0.1.3.tgz","fileCount":17,"integrity":"sha512-a+KiNGlp9JOj8bxjCMGCEwSc7chveleXL4ZFb1vE/aEotN+xuWgWG4BgaHehdNIdJq1Ju31QDnraoLG2+NBXkA==","signatures":[{"sig":"MEUCIQCHBqdnWv9Vkyikk+LU6F53zObhk+kgENHMrcZoWciiWAIgMgqodRwrwLxX+fo0LDxa8xR2D79ZXD7cLckXLwpnEQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101825},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":">=20.12.0"},"gitHead":"d1474989f50c61295927575f5c7202986c6038b7","scripts":{"test":"vitest run","build":"npm run prepare","prepare":"tsc -p tsconfig.json && tsdown"},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"repository":{"url":"git+https://github.com/Bleed00/dsh-claude-mem.git","type":"git"},"_npmVersion":"12.0.2","description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.0","typescript":"^6.0.0","@types/node":"^26.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-skill":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.0","@deepseek-ai/dsh-llm":">=0.0.1-rc.1","@deepseek-ai/dsh-agent":">=0.1.0-rc.6","@deepseek-ai/dsh-skill":">=0.0.1-rc.1","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=3.18.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-claude-mem_0.1.3_1786666895286_0.22901541813343052","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bleed00/dsh-claude-mem","version":"0.1.4","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"author":{"name":"Bleed00"},"license":"Apache-2.0","_id":"@bleed00/dsh-claude-mem@0.1.4","maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"43ea34e1744937197a93ac4f2f865d0667b870c2","tarball":"https://registry.npmjs.org/@bleed00/dsh-claude-mem/-/dsh-claude-mem-0.1.4.tgz","fileCount":19,"integrity":"sha512-hdafPdRzrnR8IBUmdiRjhmXCjH7+CtTeprLSCEdDdY+CYaGvZ3wf78sAqzhoZMiqRDzcuaAEKHJKztdBHCaomg==","signatures":[{"sig":"MEQCIG39kOehmRvfZo7Fsx38hhMDnU5m0RNj7ZXErgrJOijnAiAURByefuXQkPHaA4akYL8TNKPvdhOLT23cqAqSRTVeTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114589},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":">=20.12.0"},"gitHead":"d1474989f50c61295927575f5c7202986c6038b7","scripts":{"test":"vitest run","build":"npm run prepare","prepare":"tsc -p tsconfig.json && tsdown"},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"repository":{"url":"git+https://github.com/Bleed00/dsh-claude-mem.git","type":"git"},"_npmVersion":"12.0.2","description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.0","vitest":"^4.1.0","typescript":"^6.0.0","@types/node":"^26.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-skill":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.0","@deepseek-ai/dsh-llm":">=0.0.1-rc.1","@deepseek-ai/dsh-agent":">=0.1.0-rc.6","@deepseek-ai/dsh-skill":">=0.0.1-rc.1","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=3.18.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-claude-mem_0.1.4_1786668206304_0.6670371476095096","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bleed00/dsh-claude-mem","version":"0.1.5","description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"license":"Apache-2.0","author":{"name":"Bleed00"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Bleed00/dsh-claude-mem.git"},"bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","engines":{"node":">=20.12.0"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"scripts":{"prepare":"tsc -p tsconfig.json && tsdown","build":"npm run prepare","test":"vitest run"},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.0","@deepseek-ai/dsh-agent":">=0.1.0-rc.6","@deepseek-ai/dsh-llm":">=0.0.1-rc.1","@deepseek-ai/dsh-skill":">=0.0.1-rc.1","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=3.18.0"},"devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-llm":"^0.0.1-rc.1","@deepseek-ai/dsh-skill":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1","@types/node":"^26.2.0","tsdown":"^0.22.0","typescript":"^6.0.0","vitest":"^4.1.0"},"gitHead":"20188b4ad6c47f66b31b5fe9ef2584bb847891e0","_id":"@bleed00/dsh-claude-mem@0.1.5","_nodeVersion":"24.15.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-pJDQH7M/DQrJMwRdMTEehU28uHnpqN9kq+4VSwvJuGov2zH0DjuwdaKKzRZF7cVLND3BzWRlB4T4G7nQEHmeFQ==","shasum":"a19f96d4f972c212130f16410d556166ec3c4b41","tarball":"https://registry.npmjs.org/@bleed00/dsh-claude-mem/-/dsh-claude-mem-0.1.5.tgz","fileCount":19,"unpackedSize":114991,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCeLAQLuXA6ZVu4Jp3wZnmMZidQO4ZcKIds4ll6PvKDUgIgSVfSVtIObnWJpG5IsOKH7bAkTJgNpqLOGP3kS4YasQU="}]},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"directories":{},"maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-claude-mem_0.1.5_1786668739242_0.47847167780265387"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-13T22:48:42.613Z","modified":"2026-08-14T00:52:19.556Z","0.1.0":"2026-08-13T22:48:42.948Z","0.1.1":"2026-08-13T23:02:28.036Z","0.1.2":"2026-08-13T23:58:04.637Z","0.1.3":"2026-08-14T00:21:35.430Z","0.1.4":"2026-08-14T00:43:26.498Z","0.1.5":"2026-08-14T00:52:19.401Z"},"bugs":{"url":"https://github.com/Bleed00/dsh-claude-mem/issues"},"author":{"name":"Bleed00"},"license":"Apache-2.0","homepage":"https://github.com/Bleed00/dsh-claude-mem#readme","keywords":["dsh-plugin","claude-mem","memory","deepseek-harness"],"repository":{"type":"git","url":"git+https://github.com/Bleed00/dsh-claude-mem.git"},"description":"A DeepSeek Harness plugin that integrates claude-mem: query, context injection, manual save, and session lifecycle over a local claude-mem worker's HTTP API","maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"readme":"# dsh-claude-mem\n\nA [DeepSeek Harness](https://github.com/deepseek-ai) plugin that integrates [claude-mem](https://github.com/thedotmack/claude-mem): query persisted cross-session memory, inject per-project context at session start, save manual memories, and drive session summarization — all through a local claude-mem worker's HTTP API.\n\n[![npm](https://img.shields.io/npm/v/@bleed00/dsh-claude-mem?label=npm&logo=npm)](https://www.npmjs.com/package/@bleed00/dsh-claude-mem)\n[![npm downloads](https://img.shields.io/npm/dm/@bleed00/dsh-claude-mem?logo=npm)](https://www.npmjs.com/package/@bleed00/dsh-claude-mem)\n[![GitHub](https://img.shields.io/badge/github-Bleed00%2Fdsh--claude--mem-181717?logo=github)](https://github.com/Bleed00/dsh-claude-mem)\n[![CI](https://github.com/Bleed00/dsh-claude-mem/actions/workflows/ci.yml/badge.svg)](https://github.com/Bleed00/dsh-claude-mem/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-6.0-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Node.js](https://img.shields.io/badge/Node.js-%E2%89%A520.12-339933?logo=node.js&logoColor=white)](https://nodejs.org/)\n[![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-dsh--plugin-4D6BFE)](https://github.com/deepseek-ai)\n[![dsh-plugin](https://img.shields.io/badge/topic-dsh--plugin-555555)](https://github.com/topics/dsh-plugin)\n\nIt registers the model-facing tools `mem_search`, `mem_timeline`, `mem_get_observations`, `mem_save`, and `mem_context`, the `mem-search` skill, and the lifecycle hooks (`agent/session-start` context injection, optional `tools/post-execute` ingestion, optional `agent/turn-stopping` summarization). It is a single self-contained package with no monorepo-only dependencies.\n\n## Install\n\nOne-liner with `npx` (no global install — `npx` fetches the `dsh` launcher and\n`dsh plugin` forwards `add` to pnpm in the target profile):\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem\n```\n\nIf you already have `dsh` on `PATH`, the same command without `npx`:\n\n```sh\ndsh plugin --profile demo add @bleed00/dsh-claude-mem\n```\n\n**npm** (recommended — ships prebuilt `lib/`, no build permission needed):\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem\n```\n\n**GitHub** (sources; runs a `prepare` build on first install):\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile demo add github:Bleed00/dsh-claude-mem\n```\n\nA GitHub install fetches sources, not build output, so pnpm runs this package's `prepare` script to build from `src/`. pnpm ≥10 refuses to run a git dependency's `prepare` until it is allowlisted; the first `add` fails and points at the fix — copy the exact package key pnpm printed into the profile's `pnpm-workspace.yaml`:\n\n```yaml\nallowBuilds:\n  '@bleed00/dsh-claude-mem': true\n```\n\nthen re-run the `add`. Treat that allowance as permission to run this package's code at install time; pin a commit for reproducible installs:\n\n```sh\ndsh plugin --profile demo add github:Bleed00/dsh-claude-mem#<sha>\n```\n\n**Local checkout**:\n\n```sh\ndsh plugin --profile demo add ./dsh-claude-mem\n```\n\n## Requirements\n\n- A [DeepSeek Harness](https://github.com/deepseek-ai) installation with `dsh` on `PATH`.\n- The claude-mem worker already running on its default port (`http://127.0.0.1:37700`). Override with the `baseUrl` config or the `DSH_MEM_BASE_URL` environment variable.\n\n## Config\n\n| Field | Default | Description |\n|---|---|---|\n| `baseUrl` | `http://127.0.0.1:<37700 + uid % 100>` | Worker base URL. |\n| `timeoutMs` | `30000` | Per-request timeout (ms). |\n| `dedupe` | `true` | Collapse duplicate observations in query results (content fingerprint, never identity). |\n| `platformSource` | unset | Optional platform filter; omitted = search all memory. |\n| `project` | unset | Project name; defaults to the session cwd basename. |\n| `injectContext` | `true` | Inject session-start context. |\n| `ingest` | `false` | Save observed tool results as memories. |\n| `summarize` | `false` | Summarize sessions on turn stop. |\n| `toolFilter.names` | `read, write, edit, bash` | Tools observed when `ingest` is true. |\n\nPlatform scoping is a **signal, never a restriction**: default requests are unfiltered, and `platformSource` only adds an opt-in filter.\n\n### Duplicate handling\n\nThe worker can persist the same observation many times (a boilerplate \"session\ninitiated\" record, or a re-run tool result) — identical content, different `id`.\nWith `dedupe: true` (the default), query results collapse those copies: an\nobservation's **content fingerprint** is built from `title` + `subtitle` +\n`text` + `narrative` + `facts` (normalized), so two entries that merely share a\ngenerated title but differ in narrative are kept. The first copy (lowest `id`)\nis retained. Structured results (`mem_get_observations`) are deduplicated by\nfingerprint; rendered index/text results are deduplicated by exact rendered\nrow. Set `dedupe: false` to see the raw, unfiltered results.\n\n### Example override in the profile's `cordis.patch.yml`\n\n```yaml\n- id: claude-mem\n  config:\n    baseUrl: http://127.0.0.1:37700\n    platformSource: dsh\n    ingest: true\n    summarize: true\n```\n\n## Tools\n\n| Tool | Purpose |\n|---|---|\n| `mem_search` | Search memory; returns an index (ids, titles, types). |\n| `mem_timeline` | Get context around one observation. |\n| `mem_get_observations` | Fetch full details for ids. |\n| `mem_save` | Save one manual memory. |\n| `mem_context` | Render the worker's session-start context text. |\n\nThe `mem-search` skill teaches the model the `search → filter → fetch` workflow that keeps token usage low.\n\n## Development\n\n```sh\npnpm install\npnpm run build   # tsc + tsdown → lib/index.js\npnpm test\n```\n\nThe package targets Node ≥ 20.12, TypeScript 6.0, and is authored against the `@deepseek-ai/*` framework packages (cordis, schemastery, dsh-tools, dsh-llm, dsh-skill, dsh-agent).\n\n## License\n\n[Apache-2.0](LICENSE) © Bleed00\n","readmeFilename":"README.md"}