{"_id":"@aiwayds/dsh-llmwiki-memory","_rev":"7-f86d304e50575fd9c2eb4cdc996b7a29","name":"@aiwayds/dsh-llmwiki-memory","dist-tags":{"latest":"0.5.0"},"versions":{"0.2.0":{"name":"@aiwayds/dsh-llmwiki-memory","version":"0.2.0","keywords":["dsh","dsh-plugin","plugin","llm-wiki","okf","open-knowledge-format","memory","topic"],"license":"MIT","_id":"@aiwayds/dsh-llmwiki-memory@0.2.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llmwiki-memory","bugs":{"url":"https://github.com/fan56/dsh-llmwiki-memory/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"1cf46ea75409eb16d92b863d6718fa7744134011","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llmwiki-memory/-/dsh-llmwiki-memory-0.2.0.tgz","fileCount":60,"integrity":"sha512-vbm9NGEs/as2kYS2IYBiCv/UcQ/+bwLcOOKVavFBX7h7pxQDSVhseil4da3F0zFfHVTrzEUITkXlsA8w557JxA==","signatures":[{"sig":"MEUCICy8cdpDb3dLo/CHo5PlxGZ9OMBF9BVl6Mjn7fTEdhIaAiEArwP6NRiKNCVaGPM8y3wupW1y/muySjNYH+IYQ2KQZTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409640},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"613c3aba47c04a47cbcaceb1058144d5e93561c7","scripts":{"test":"node --test test/yaml.test.mjs test/okf.test.mjs test/retrieval.test.mjs test/digest.test.mjs test/ilog.test.mjs test/store.test.mjs test/git.test.mjs test/sync.test.mjs test/tools.test.mjs test/commands.test.mjs test/onboard.test.mjs test/delegation.test.mjs test/observer.test.mjs test/distill.test.mjs test/viz.test.mjs test/corpus.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"tsc -p tsconfig.json"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"deprecated":"Renamed to @aiwayds/dsh-topics-memory","repository":{"url":"git+https://github.com/fan56/dsh-llmwiki-memory.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: OKF v0.2 topic memory — local-first git-tracked bundle, hot-path LLM-free injection, two-stage observer with background distill","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^22.19.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-agent":"0.1.1-rc.2","@deepseek-ai/dsh-brand":"0.1.1-rc.2","@deepseek-ai/dsh-scope":"0.1.1-rc.2","@deepseek-ai/dsh-tools":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/dsh-timeout":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1","@deepseek-ai/dsh-commands":"0.1.1-rc.2","@deepseek-ai/dsh-attachment":"0.1.1-rc.2","@deepseek-ai/dsh-invariants":"0.1.1-rc.2","@deepseek-ai/dsh-code-runtime":"0.1.1-rc.2","@deepseek-ai/dsh-system-prompt":"0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.0","@deepseek-ai/dsh-llm":">=0.1.1-rc.2","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=0.0.1","@deepseek-ai/dsh-commands":">=0.1.1-rc.2","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"peerDependenciesMeta":{"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-commands":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llmwiki-memory_0.2.0_1788227530016_0.4518310990403005","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aiwayds/dsh-llmwiki-memory","version":"0.2.1","keywords":["dsh","dsh-plugin","plugin","llm-wiki","okf","open-knowledge-format","memory","topic"],"license":"MIT","_id":"@aiwayds/dsh-llmwiki-memory@0.2.1","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llmwiki-memory","bugs":{"url":"https://github.com/fan56/dsh-llmwiki-memory/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"fbfb46cb9dff3650bea5859519c7f7afb75715ac","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llmwiki-memory/-/dsh-llmwiki-memory-0.2.1.tgz","fileCount":60,"integrity":"sha512-EaDBZbF+syuQ4x1yGf1sjYPLwRqhHN4O5PyjTL33X9FZC/eTp9KNPrIy7eKP3HMHRku816Y9IjRvuZfBNKP0lA==","signatures":[{"sig":"MEQCIAtYkU+tITvtgfENf6a403t3gSPLaT8rCVRrYtPIT45eAiBTKxW+cFJ7aVYNSWE5um3CgcbXRQbyKjTHY/iy8nTh4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410867},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"3f8bbd8137721d077835ed378eb619439d880f44","scripts":{"test":"node --test test/yaml.test.mjs test/okf.test.mjs test/retrieval.test.mjs test/digest.test.mjs test/ilog.test.mjs test/store.test.mjs test/git.test.mjs test/sync.test.mjs test/tools.test.mjs test/commands.test.mjs test/onboard.test.mjs test/delegation.test.mjs test/observer.test.mjs test/distill.test.mjs test/viz.test.mjs test/corpus.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"tsc -p tsconfig.json"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"deprecated":"Renamed to @aiwayds/dsh-topics-memory","repository":{"url":"git+https://github.com/fan56/dsh-llmwiki-memory.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: OKF v0.2 topic memory — local-first git-tracked bundle, hot-path LLM-free injection, two-stage observer with background distill","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^22.19.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-agent":"0.1.1-rc.2","@deepseek-ai/dsh-brand":"0.1.1-rc.2","@deepseek-ai/dsh-scope":"0.1.1-rc.2","@deepseek-ai/dsh-tools":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/dsh-timeout":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1","@deepseek-ai/dsh-commands":"0.1.1-rc.2","@deepseek-ai/dsh-attachment":"0.1.1-rc.2","@deepseek-ai/dsh-invariants":"0.1.1-rc.2","@deepseek-ai/dsh-code-runtime":"0.1.1-rc.2","@deepseek-ai/dsh-system-prompt":"0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.0","@deepseek-ai/dsh-llm":">=0.1.1-rc.2","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=0.0.1","@deepseek-ai/dsh-commands":">=0.1.1-rc.2","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"peerDependenciesMeta":{"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-commands":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llmwiki-memory_0.2.1_1788230715554_0.1718584803964942","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aiwayds/dsh-llmwiki-memory","version":"0.3.0","keywords":["dsh","dsh-plugin","plugin","llm-wiki","okf","open-knowledge-format","memory","topic"],"license":"MIT","_id":"@aiwayds/dsh-llmwiki-memory@0.3.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llmwiki-memory","bugs":{"url":"https://github.com/fan56/dsh-llmwiki-memory/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"363fecb0f62ac02d614b4544aafb452283f071df","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llmwiki-memory/-/dsh-llmwiki-memory-0.3.0.tgz","fileCount":61,"integrity":"sha512-xyPVl3bFLKAOJobU0iCeN5scSynmWn9TAIY+V0IT2Y3vQhsT/zYQ8BeRdEEhvpWaru+bVjxSnjRGQ81wfgp9+Q==","signatures":[{"sig":"MEYCIQCGBjWfmiDcCrpSiB5e+rnFnyKjTxUJ107wu9Zb0Cl7kwIhALIGx/cJgyPlRbRilPDjLGP1iR7wSaF/BFGUocWl1bqk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":471260},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"5460613e2677cff486680c92b1f87c1ee5d8dfac","scripts":{"test":"node --test test/yaml.test.mjs test/okf.test.mjs test/retrieval.test.mjs test/digest.test.mjs test/ilog.test.mjs test/store.test.mjs test/git.test.mjs test/sync.test.mjs test/tools.test.mjs test/dedup.test.mjs test/commands.test.mjs test/onboard.test.mjs test/delegation.test.mjs test/observer.test.mjs test/distill.test.mjs test/viz.test.mjs test/corpus.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"tsc -p tsconfig.json"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"deprecated":"Renamed to @aiwayds/dsh-topics-memory","repository":{"url":"git+https://github.com/fan56/dsh-llmwiki-memory.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh-plugin: OKF v0.2 topic memory for dsh - local-first git-tracked bundle, hot-path LLM-free injection, two-stage observer with background distill","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^22.19.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-agent":"0.1.1-rc.2","@deepseek-ai/dsh-brand":"0.1.1-rc.2","@deepseek-ai/dsh-scope":"0.1.1-rc.2","@deepseek-ai/dsh-tools":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/dsh-timeout":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1","@deepseek-ai/dsh-commands":"0.1.1-rc.2","@deepseek-ai/dsh-attachment":"0.1.1-rc.2","@deepseek-ai/dsh-invariants":"0.1.1-rc.2","@deepseek-ai/dsh-code-runtime":"0.1.1-rc.2","@deepseek-ai/dsh-system-prompt":"0.1.1-rc.2","@deepseek-ai/dsh-user-approval":"0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.0","@deepseek-ai/dsh-llm":">=0.1.1-rc.2","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=0.0.1","@deepseek-ai/dsh-commands":">=0.1.1-rc.2","@deepseek-ai/dsh-settings":">=0.1.0-rc.6"},"peerDependenciesMeta":{"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-commands":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llmwiki-memory_0.3.0_1788261649585_0.6930849745792234","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aiwayds/dsh-llmwiki-memory","version":"0.4.0","keywords":["dsh","dsh-plugin","plugin","llm-wiki","okf","open-knowledge-format","memory","topic"],"license":"MIT","_id":"@aiwayds/dsh-llmwiki-memory@0.4.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llmwiki-memory","bugs":{"url":"https://github.com/fan56/dsh-llmwiki-memory/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"f88dd86594d1a7568907d34bd3169efa90426c94","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llmwiki-memory/-/dsh-llmwiki-memory-0.4.0.tgz","fileCount":61,"integrity":"sha512-hKSkqQsQf1eLYyBmaFISsDGpM7D1fHEo2M3qPmxrM/BmFCxSpdmIC1VEFR1Eq690cb7p1nhy4CG5x2cQJIWK6Q==","signatures":[{"sig":"MEQCIHaDYkvq4VAusxg978ec9cHv1wEMhGaH1yWd0+nSvKpbAiAwjlhDhZRVBCB2AqfGjB+nM9m1THckFxaC/460GVn0JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474287},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"5c93d908bfd3928132ce2ddbbccbb28ba395e76a","scripts":{"test":"node --test test/yaml.test.mjs test/okf.test.mjs test/retrieval.test.mjs test/digest.test.mjs test/ilog.test.mjs test/store.test.mjs test/git.test.mjs test/sync.test.mjs test/tools.test.mjs test/dedup.test.mjs test/commands.test.mjs test/onboard.test.mjs test/delegation.test.mjs test/observer.test.mjs test/distill.test.mjs test/viz.test.mjs test/corpus.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"tsc -p tsconfig.json"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"deprecated":"Renamed to @aiwayds/dsh-topics-memory","repository":{"url":"git+https://github.com/fan56/dsh-llmwiki-memory.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh-plugin: OKF v0.2 topic memory for dsh - local-first git-tracked bundle, hot-path LLM-free injection, two-stage observer with background distill","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^22.19.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.2-alpha.3","@deepseek-ai/dsh-agent":"0.1.2-alpha.3","@deepseek-ai/dsh-brand":"0.1.2-alpha.3","@deepseek-ai/dsh-scope":"0.1.2-alpha.3","@deepseek-ai/dsh-tools":"0.1.2-alpha.3","@deepseek-ai/dsh-session":"0.1.2-alpha.3","@deepseek-ai/dsh-timeout":"0.1.2-alpha.3","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.2-alpha.3","@deepseek-ai/dsh-settings":"0.1.2-alpha.3","@deepseek-ai/dsh-attachment":"0.1.2-alpha.3","@deepseek-ai/dsh-invariants":"0.1.2-alpha.3","@deepseek-ai/dsh-util-values":"0.1.2-alpha.3","@deepseek-ai/dsh-code-runtime":"0.1.2-alpha.3","@deepseek-ai/dsh-system-prompt":"0.1.2-alpha.3","@deepseek-ai/dsh-user-approval":"0.1.2-alpha.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.2","@deepseek-ai/dsh-llm":">=0.1.2-alpha.3","@deepseek-ai/dsh-tools":">=0.1.2-alpha.3","@deepseek-ai/schemastery":"^3.18.2","@deepseek-ai/dsh-commands":">=0.1.2-alpha.3","@deepseek-ai/dsh-settings":">=0.1.2-alpha.3","@deepseek-ai/dsh-util-values":">=0.1.2-alpha.3"},"peerDependenciesMeta":{"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-commands":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-util-values":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llmwiki-memory_0.4.0_1788281750540_0.33617255056092765","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aiwayds/dsh-llmwiki-memory","version":"0.5.0","keywords":["dsh","dsh-plugin","plugin","llm-wiki","okf","open-knowledge-format","memory","topic"],"license":"MIT","_id":"@aiwayds/dsh-llmwiki-memory@0.5.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llmwiki-memory","bugs":{"url":"https://github.com/fan56/dsh-llmwiki-memory/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"5018edcb0c489935a7ebd6fa4ec8fb135dbef27e","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llmwiki-memory/-/dsh-llmwiki-memory-0.5.0.tgz","fileCount":61,"integrity":"sha512-1/L3ecQdYN3756Rz22FdDAQYzf6kv4nHmiWNwhNY2t6rrOYutXSTZPinwsEhjzT6rsRzco/0tmKvWAS2Skea6g==","signatures":[{"sig":"MEYCIQCKwrVkwAtQnFYrvsAztUxI0Za0sFaopsDJcmcUDyYsxQIhAOMPK4cCjaXYERHp0ihQ6YGYrJyKqkPjSxYYSnW0VCBX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":563416},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"1441fa847ec3318037fc1ab5a58e59b52e839743","scripts":{"test":"node --test test/yaml.test.mjs test/okf.test.mjs test/retrieval.test.mjs test/digest.test.mjs test/ilog.test.mjs test/store.test.mjs test/git.test.mjs test/sync.test.mjs test/tools.test.mjs test/dedup.test.mjs test/commands.test.mjs test/onboard.test.mjs test/delegation.test.mjs test/observer.test.mjs test/distill.test.mjs test/viz.test.mjs test/corpus.test.mjs test/llm-scope.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"tsc -p tsconfig.json"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"deprecated":"Renamed to @aiwayds/dsh-topics-memory","repository":{"url":"git+https://github.com/fan56/dsh-llmwiki-memory.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh-plugin: OKF v0.2 topic memory for dsh - local-first git-tracked bundle, hot-path LLM-free injection, two-stage observer with background distill","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^22.19.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.2-alpha.4","@deepseek-ai/dsh-agent":"0.1.2-alpha.4","@deepseek-ai/dsh-brand":"0.1.2-alpha.4","@deepseek-ai/dsh-scope":"0.1.2-alpha.4","@deepseek-ai/dsh-tools":"0.1.2-alpha.4","@deepseek-ai/dsh-session":"0.1.2-alpha.4","@deepseek-ai/dsh-timeout":"0.1.2-alpha.4","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.2-alpha.4","@deepseek-ai/dsh-settings":"0.1.2-alpha.4","@deepseek-ai/dsh-attachment":"0.1.2-alpha.4","@deepseek-ai/dsh-invariants":"0.1.2-alpha.4","@deepseek-ai/dsh-util-values":"0.1.2-alpha.4","@deepseek-ai/dsh-code-runtime":"0.1.2-alpha.4","@deepseek-ai/dsh-system-prompt":"0.1.2-alpha.4","@deepseek-ai/dsh-user-approval":"0.1.2-alpha.4"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.2","@deepseek-ai/dsh-llm":">=0.1.2-alpha.4","@deepseek-ai/dsh-tools":">=0.1.2-alpha.4","@deepseek-ai/schemastery":"^3.18.2","@deepseek-ai/dsh-commands":">=0.1.2-alpha.4","@deepseek-ai/dsh-settings":">=0.1.2-alpha.4","@deepseek-ai/dsh-util-values":">=0.1.2-alpha.4"},"peerDependenciesMeta":{"@deepseek-ai/cordis":{"optional":true},"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/dsh-tools":{"optional":true},"@deepseek-ai/schemastery":{"optional":true},"@deepseek-ai/dsh-commands":{"optional":true},"@deepseek-ai/dsh-settings":{"optional":true},"@deepseek-ai/dsh-util-values":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llmwiki-memory_0.5.0_1788354486870_0.00440944316677383","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-09-01T01:52:09.833Z","modified":"2026-09-03T11:16:10.864Z","0.2.0":"2026-09-01T01:52:10.168Z","0.2.1":"2026-09-01T02:45:15.741Z","0.3.0":"2026-09-01T11:20:49.709Z","0.4.0":"2026-09-01T16:55:50.719Z","0.5.0":"2026-09-02T13:08:07.007Z"},"bugs":{"url":"https://github.com/fan56/dsh-llmwiki-memory/issues"},"license":"MIT","homepage":"https://github.com/fan56/dsh-llmwiki-memory","keywords":["dsh","dsh-plugin","plugin","llm-wiki","okf","open-knowledge-format","memory","topic"],"repository":{"url":"git+https://github.com/fan56/dsh-llmwiki-memory.git","type":"git"},"description":"dsh-plugin: OKF v0.2 topic memory for dsh - local-first git-tracked bundle, hot-path LLM-free injection, two-stage observer with background distill","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"readme":"# dsh-llmwiki-memory\n\n[English](README.md) | 中文\n\n一个 dsh 插件：把「工作 topic 记忆」维护成 [OKF 标准（Open Knowledge Format v0.2）](https://github.com/GoogleCloudPlatform/open-knowledge-format)的知识 bundle，持久化在本地 git 仓库（可选同步到 GitHub 私有仓库），利用 git 历史提供结论可追溯性，自动观察会话沉淀知识，并在每轮对话前向模型注入相关 Topic。\n\n> **Requires dsh >= 0.1.2-alpha.4**（适配 dsh 0.1.2-alpha.4 的 settings 命名空间与 LLM seam；不再兼容 rc 线宿主）。\n\n## 它解决什么问题\n\n长会话会失忆，跨会话更会。本插件维护一份**结构化的 topic 记忆**：每个 Topic 记录一件事的**名字、依赖、未决问题、目前结论、影响、建议**。结论变了就改文件、打 commit——`git log` 直接回答「这个结论什么时候、被谁、为什么改的」。\n\n## 核心特性\n\n- **OKF v0.2 严格合规**：每个 Topic 是 `markdown + YAML frontmatter` 的 concept 文档（`type: Topic`），可被 Obsidian、OKF 校验器等整个生态直接消费；自带 provenance（`sources`）、trust（`generated`/`verified`）、lifecycle（`status`/`stale_after`）三族字段。\n- **git 可追溯**：一次结论变更 = 一个 commit（写穿）；`topic_history` 工具和 `/wiki history` 把变更史工具化。\n- **local-first**：默认 local-only 模式（`~/.dsh/llmwiki/`），零配置零凭据；配置 `repo` 后启用 GitHub 同步（单库单 Bundle 单 main，写穿 + 去抖推送，rebase 冲突标记降权等人解，不做自动智能合并）。\n- **免 LLM 热路径注入**：每轮输入做词法匹配（CJK bigram + 词 + tag 加权 + `depends` 图游走），毫秒级；无命中零注入；per-topic 摘要 ≤300 token、top-K ≤4、总预算 ≤1.5k token，全部可配。\n- **注入可观测可调参**：每轮落 Injection Log（命中、得分、near-miss、预算占用），`/wiki stats` 给出 hit rate、top-N、near-miss 分布和阈值调参建议——调参看证据，不拍脑袋。\n- **知识连接成图**：`depends`（机器可读的有向依赖边）+ 正文 `[[wikilink]]` 与 markdown 链接（人写边）共同构成图；检索命中后沿图双向游走（每层衰减一半、深度可配），一次命中带入一个知识子图；每次写入自动重建 `meta/backlinks.json` 反向引用索引，`/wiki show` 直接列出「谁引用了我、怎么引用的」——改一条结论前先看牵连面。\n- **两段式观察（M2）**：主模型用 `topic_observe` 随手记原子观察，后台蒸馏 lane（session end + 每 N 轮，模型可配）把观察批量蒸馏成正式 Topic；主模型认为值得记时直接 `topic_save`。\n\n## 工具与命令\n\n| 模型工具 | 用途 |\n|---|---|\n| `topic_save` | 沉淀/修订一个 Topic（名字/依赖/未决问题/结论/影响/建议） |\n| `topic_observe` | 随手记一条原子观察（decision/finding/constraint/question），等蒸馏 |\n| `topic_search` | 免 LLM 关键词检索记忆 |\n| `topic_history` | 某 Topic 的结论变更史（git log 工具化） |\n\n| 命令 | 用途 |\n|---|---|\n| `/wiki onboard` | 交互式配置向导：唤起 dsh 原生 ask-user 面板逐项问答（模式 / 仓库 / 蒸馏 / 注入档位 / 自动观察），末步确认才写入；无 ask-user UI 的环境自动退化为逐条输入 |\n| `/wiki status` | bundle 健康：topic 数、观察积压、冲突、最近蒸馏结果、同步状态 |\n| `/wiki distill` | 手动触发一次蒸馏 run（复用现有 lane 与 in-flight 守卫；输出摘要与 distill-state 字段一一对应） |\n| `/wiki stats` | 注入统计：hit rate、top-N、near-miss 分布与调参建议 |\n| `/wiki list` / `show` / `history` | 浏览 Topic、反向引用与变更史 |\n| `/wiki graph` | 生成关系图网页（力导向、可拖拽缩放、悬停看结论）并自动在浏览器打开 |\n| `/wiki sync [pull\\|push]` | GitHub 模式手动同步 |\n| `/wiki config` / `set <key> <value>` | 查看与修改配置（阈值、预算、蒸馏模型等） |\n\n## 安装\n\n```bash\ndsh plugin --profile <你的profile> add @aiwayds/dsh-llmwiki-memory\n```\n\nBundle 默认在 `~/.dsh/llmwiki/`（`$DSH_LLMWIKI_HOME` 可覆盖）。装好后的第一件事：跑 `/wiki onboard`——直接弹出 dsh 原生 ask-user 交互面板逐项问答（TUI 面板 / 浏览器会话 / 飞书卡自动适配，feishu 侧装了 dsh-ask-router 还能双端竞答）。GitHub 同步：`/wiki set repo <owner/name>`（建议仓库名 `dsh-wiki-memory`，与插件源码仓区分开），凭据走 `$GITHUB_TOKEN` 或已登录的 gh CLI（登录不是本插件职责）。\n\n## 快速上手\n\n1. 安装（上方命令），重启 dsh；\n2. 跑 `/wiki onboard`，在 ask-user 面板里走完 模式 / 仓库 / 蒸馏模型 / 注入档位 / 自动观察 五个决定——末步确认才写入；\n3. 正常干活：相关结论每轮自动注入；说「记住…」让模型 `topic_save`；`/wiki status` 看健康，`/wiki stats` 看注入命中。\n\n## 配置\n\n首次配置交给 `/wiki onboard`；日常微调用 `/wiki set <key> <value>`（写 `settings.yaml` 的 `llmwiki` namespace，下次会话启动生效）。全部键与默认值：\n\n| 键 | 默认 | 说明 |\n|---|---|---|\n| `repo` | 空（local-only） | GitHub 同步仓 `owner/name`；建议 `dsh-wiki-memory`；置空回 local-only |\n| `autoInject` | `true` | 每轮注入总开关 |\n| `injectDedup` | `true` | 会话级注入去重：本会话已实际注入过的 Topic 不重注（会话结束清空注册表；被预算丢弃的仍可注入；被去重占用的 topK 名额不回填）——见 ADR 0012 |\n| `topK` | `4` | 每轮最多注入的 Topic 数 |\n| `perTopicBudget` | `300` | 单 Topic 摘要 token 预算 |\n| `totalBudget` | `1500` | 每轮注入总预算 |\n| `matchThreshold` | `0.3` | 命中阈值；按 `/wiki stats` 的 near-miss 证据调 |\n| `tagBoost` | `0.15` | tag 命中加成 |\n| `graphDepth` | `2` | `depends` 图双向游走深度（0 关闭） |\n| `recencyWindowDays` | `7` | 近因加分窗口（+0.2） |\n| `autoObserve` | `true` | 每轮自动抓原子观察 |\n| `includeSubagents` | `true` | 注入与观察是否作用于子代理会话（ADR 0011）；`off` = 子代理整体跳过 |\n| `observationMaxChars` | `2000` | 每侧每轮观察截断长度 |\n| `distillProvider` / `distillModel` | 空（蒸馏关闭） | 蒸馏 lane 模型路由，两者都设置才启用。有 UI 时 `/wiki set distill-provider` / `distill-model` 不带值会弹选择面板（provider 列表 → 该 provider 的模型目录）；带值时 `distill-model` 支持 `provider model` 或 `provider/model` 混写自动拆成两个键 |\n| `distillEveryTurns` | `5` | 长 session 每 N 轮触发一次蒸馏 |\n| `distillOnSessionEnd` | `true` | session 结束时蒸馏一次 |\n| `distillBatchSize` | `40` | 每次蒸馏模型调用携带的观察条数。遇输出上限（`max-tokens`）失败自动减半重试（下限 5），失败批次不再活锁积压；缩小状态跨 run 保持，直到插件重载或配置变更。注意：`/wiki set distillBatchSize` 重设为同值不触发复位，需设为不同值或重载插件 |\n| `distillMaxModelCalls` | `8` | 单次蒸馏 run 的模型调用预算，含 ops 未回显有效 `observed_ids` 时的纠错重试（至多一次，预算放不下即零消费停机）。预算耗尽即停，已成功的批次照常 markDistilled（部分前进优于零前进），distill state 记 `partial: …` |\n| `pushDebounceSeconds` | `45` | GitHub 模式去抖推送间隔 |\n\n## Acknowledgements\n\n本项目的形态直接受以下项目的启发与支撑：\n\n- **[zosmaai/pi-llm-wiki](https://github.com/zosmaai/pi-llm-wiki)** — pi 上的原生 OKF v0.2 知识库扩展，本项目的直接灵感来源。其两段式观察（便宜的原子观察 + 后台蒸馏）、缓存安全注入（易变内容不进 system prompt）、分层 vault 与 ownership 模型都被本设计吸收。\n- **[GoogleCloudPlatform/open-knowledge-format](https://github.com/GoogleCloudPlatform/open-knowledge-format)** — Open Knowledge Format (OKF) v0.2 规范，本项目 Bundle 格式严格遵循的标准。\n- **[Karpathy 的 LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)** — 整个 LLM 维护个人知识库方法论 的起点。\n- **[fan56/pi-topic-memory](https://github.com/fan56/pi-topic-memory)** — 同作者的前作：pi 上的工作 topic 台账与静默注入扩展，其热路径免 LLM 匹配与注入时序经验是本项目的直接技术前身。\n- **[chancelu/dsh-llmwiki](https://github.com/chancelu/dsh-llmwiki)** — dsh 生态的同类先例，本项目的同轮注入 seam（`agent/inbox/spliced` + `systemPrompt.context()`）沿用了它在真实 dsh 上验证过的机制。\n\n## 已知边界\n\n- **子代理默认参与记忆，可整体关掉**：默认（`include-subagents` 开）注入与观察同样作用于子代理会话。`/wiki set include-subagents off` 后，delegation depth > 0 的子代理会话被整体跳过——不注入、不观察、不触发蒸馏；topic 工具始终在全局层（子代理显式 `topic_save` 不受开关影响）。跨进程子代理（claude-code/codex 等 provider）本就不加载本插件。\n- **headless 单发会话里的 session-end 蒸馏**：插件 disposer 现在会等待退出触发的末次蒸馏落盘（有界等待，上限 90s；挂死的模型调用在超时后放弃、退出照常进行），headless 进程默认不再输掉这场竞速。90s 窗口内退出 run 可能只完成部分调用预算，剩余积压留待下次触发。已有 session-end run 在跑时退出触发整体跳过（否则同一全局队头批次会被双份喂给模型）。会话内 `/wiki distill` 手动触发则完全绕开竞速；`meta/distill-state.json` 记录每次 lane 的结局，`/wiki status` 可查。\n- **观察 GC（三振删除）**：被模型实际评估（返回了可解析应答，无论内容有无价值）却未被任何 op 消费的观察记一次 failed attempt，连续 3 次即物理删除（用户已明确授权删除 lane 确实无法处理的原始观察）。模型从未评估过的批次永不计数：基础设施失败（网络错误、蒸馏路由未配置 → 可读 `no-model` 短路）与输出不可解析（`invalid-output`）豁免；输出上限减半重试中的批次只有到达裁决（成功 / 触底 / stalled / 明确跳过）才计一次。删除立即 commit（数据销毁 git 可追溯），纯计数沿用 flush 节奏。\n- **配置读取时机**：`/wiki set` 与 settings.yaml 修改在下次会话启动后生效最稳。\n- **蒸馏选模型**：`/wiki onboard` 的蒸馏一步拆成两问（先 provider 后 model，模型列表取自该 provider 的目录），选完经 `resolveModelInfo` 预校验——provider 无活路由会阻断重选，模型目录校验非 NO_ADAPTER 失败（目录外，可能仍可用）则警告但放行；无 ask UI 或无可用模型路由的环境自动退回文本输入。`/wiki set` 的选择面板走同一套校验。\n\n## 设计文档\n\n- [CONTEXT.md](CONTEXT.md) — 领域术语表\n- [docs/adr/](docs/adr/) — 0001–0012：OKF 合规、Remote 形态、同步策略、两段式 Observer、Bundle 布局、注入默认值、可观测与调参、双模式持久化、配置向导、子代理隔离、include-subagents 开关、注入去重默认开\n\n## License\n\nMIT\n","readmeFilename":"README.zh.md"}