{"_id":"@deepseek-ai/dsh-tool-todo","_rev":"6052494-6a7db6a3fd4614a09501dc37","dist-tags":{"latest":"0.0.1-rc.1","next":"0.1.1-rc.2"},"name":"@deepseek-ai/dsh-tool-todo","time":{"created":"2026-08-13T12:20:51.601Z","modified":"2026-08-21T12:37:46.235Z","0.0.1-rc.1":"2026-08-10T19:37:29.252Z","0.0.1-rc.3":"2026-08-12T20:34:24.515Z","0.1.0-rc.6":"2026-08-13T12:20:36.487Z","0.0.1-rc.2":"2026-08-11T15:19:33.023Z","0.1.0-rc.2":"2026-08-13T09:40:40.248Z","0.1.0-rc.3":"2026-08-13T11:07:59.112Z","0.0.1-rc.5":"2026-08-12T22:31:35.577Z","0.1.0-rc.7":"2026-08-17T11:44:56.960Z","0.1.0-rc.8":"2026-08-19T15:36:24.129Z","0.1.1-rc.1":"2026-08-21T06:44:24.793Z","0.1.1-rc.2":"2026-08-21T12:37:31.262Z"},"versions":{"0.0.1-rc.1":{"name":"@deepseek-ai/dsh-tool-todo","version":"0.0.1-rc.1","license":"BSD-3-Clause","_id":"@deepseek-ai/dsh-tool-todo@0.0.1-rc.1","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"5435034117b7c54e4112e2b8d35f1105293262e7","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.0.1-rc.1.tgz","fileCount":15,"integrity":"sha512-+izvrd5O39jMKdkOArDqlqZOfvsX11SJv8jX29bBYVdsoyLlpYS8SUhVm730AB1x9VqIuuPJDlbRw/nNS87v/w==","signatures":[{"sig":"MEUCIDxRkcCDDJ/CF5EerBkLHpU3d+SZh1wjH/mjMdxXJZNQAiEA3Xp0JqDaU/yW28fk3FMpFSQ7PBoBfhedtNMqfPGgLKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42466,"size":13725},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.1.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.1.tgz","_integrity":"sha512-+izvrd5O39jMKdkOArDqlqZOfvsX11SJv8jX29bBYVdsoyLlpYS8SUhVm730AB1x9VqIuuPJDlbRw/nNS87v/w==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_npmVersion":"11.16.0","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1-rc.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/dsh-session":"^0.0.1-rc.1","@deepseek-ai/dsh-agent-loop":"^0.0.1-rc.1","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1","@deepseek-ai/dsh-host-apiproxy":"^0.0.1-rc.1","@deepseek-ai/dsh-system-prompt":"^0.0.1-rc.1","@deepseek-ai/cordis-plugin-loader":"^1.0.1-rc.1","@deepseek-ai/dsh-user-interaction":"^0.0.1-rc.1","@deepseek-ai/cordis-plugin-include":"^1.0.5-rc.1","@deepseek-ai/dsh-agent-loop-testkit":"^0.0.1-rc.1","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/dsh-session":"^0.0.1-rc.1","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-todo_0.0.1-rc.1_1786390649101_0.3133781019806332","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-10T19:37:29.252Z","publish_time":1786390649252,"_source_registry_name":"default"},"0.0.1-rc.3":{"name":"@deepseek-ai/dsh-tool-todo","version":"0.0.1-rc.3","license":"BSD-3-Clause","_id":"@deepseek-ai/dsh-tool-todo@0.0.1-rc.3","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"9be376ae913aa81fa488e352f555c0ac5c5745f9","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.0.1-rc.3.tgz","fileCount":15,"integrity":"sha512-2FmGmzB/9HSsIzb2FBkU795MjocnlinAKipb270tsCh7PpyTRVm+jgx8SJh74BEe9uzLgyipDQ3VOMCmL+bfnw==","signatures":[{"sig":"MEQCIDzaBJGp6iUDGAuwI6PY5vaOS6Y2KIuEIz4aj8AVQPMnAiATlBWD0ILaqwgHeOIgwq0qDLUsCW+RiaJI+xTNJ6luxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42440,"size":13707},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.3.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.3.tgz","_integrity":"sha512-2FmGmzB/9HSsIzb2FBkU795MjocnlinAKipb270tsCh7PpyTRVm+jgx8SJh74BEe9uzLgyipDQ3VOMCmL+bfnw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_npmVersion":"11.16.0","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1-rc.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.3","@deepseek-ai/dsh-agent":"^0.0.1-rc.3","@deepseek-ai/dsh-tools":"^0.0.1-rc.3","@deepseek-ai/dsh-session":"^0.0.1-rc.3","@deepseek-ai/dsh-agent-loop":"^0.0.1-rc.3","@deepseek-ai/dsh-invariants":"^0.0.1-rc.3","@deepseek-ai/dsh-host-apiproxy":"^0.0.1-rc.3","@deepseek-ai/dsh-system-prompt":"^0.0.1-rc.3","@deepseek-ai/dsh-user-questions":"^0.0.1-rc.3","@deepseek-ai/cordis-plugin-loader":"^1.0.1-rc.1","@deepseek-ai/cordis-plugin-include":"^1.0.5-rc.1","@deepseek-ai/dsh-agent-loop-testkit":"^0.0.1-rc.3","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.0.1-rc.3","@deepseek-ai/dsh-tools":"^0.0.1-rc.3","@deepseek-ai/dsh-session":"^0.0.1-rc.3","@deepseek-ai/dsh-invariants":"^0.0.1-rc.3","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.3"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-todo_0.0.1-rc.3_1786566864356_0.9427210434040747","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-12T20:34:24.515Z","publish_time":1786566864515,"_source_registry_name":"default"},"0.1.0-rc.6":{"name":"@deepseek-ai/dsh-tool-todo","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","version":"0.1.0-rc.6","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/todo/tool-todo"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-invariants":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/cordis":"^4.0.1"},"devDependencies":{"@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-loop":"^0.1.0-rc.6","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.0-rc.6","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.6","@deepseek-ai/dsh-invariants":"^0.1.0-rc.6","@deepseek-ai/dsh-llm":"^0.1.0-rc.6","@deepseek-ai/dsh-session":"^0.1.0-rc.6","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.6","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.6","@deepseek-ai/dsh-tools":"^0.1.0-rc.6","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.6"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-tool-todo@0.1.0-rc.6","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-ll9xmgkrV6nsxjEZn5+YkNwQei7WrMMisnbr9mAKmqN5vpyOVHXisLvKdiASEmgpm4rsicnR8Y0wcBUfbeJTxA==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.6.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.6.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-ll9xmgkrV6nsxjEZn5+YkNwQei7WrMMisnbr9mAKmqN5vpyOVHXisLvKdiASEmgpm4rsicnR8Y0wcBUfbeJTxA==","shasum":"136c32113c2fd4e3e22627bfc63b8da95c3cf8a5","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.0-rc.6.tgz","fileCount":15,"unpackedSize":41972,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAGg4RaZgnqLGNSUc10dd8ywOSHtnzrTVbe5iQioYIAjAiEAr/COPB12CSXc1IhwZL6UVUNOvPQwXo1kqyvrHQ3loGs="}],"size":13502},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-tool-todo_0.1.0-rc.6_1786623636344_0.22421346263992104"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-13T12:20:36.487Z","publish_time":1786623636487,"_source_registry_name":"default"},"0.0.1-rc.2":{"name":"@deepseek-ai/dsh-tool-todo","version":"0.0.1-rc.2","license":"BSD-3-Clause","_id":"@deepseek-ai/dsh-tool-todo@0.0.1-rc.2","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"aaf955d4a94aa55dce9cbdb6ff8d74631e7719d3","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.0.1-rc.2.tgz","fileCount":15,"integrity":"sha512-1iFl85qlJrURU0MsqzdZmvJ4JO90zRimsu8L1+NEzqVLTCEDRoSrJLppT1981a1TKiokLsN6h8u2iYnCWWCd3Q==","signatures":[{"sig":"MEQCIF442PuTic/yWOpNJK8NlHoFVieH2fKXDuu+dfEOCgoeAiA7Jc7DhCzWFC4HWcTtveJMHAJJH/IkaGbwup3Qa2h8BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42466,"size":13721},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.2.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.2.tgz","_integrity":"sha512-1iFl85qlJrURU0MsqzdZmvJ4JO90zRimsu8L1+NEzqVLTCEDRoSrJLppT1981a1TKiokLsN6h8u2iYnCWWCd3Q==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_npmVersion":"11.16.0","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1-rc.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.1","@deepseek-ai/dsh-llm":"^0.0.1-rc.2","@deepseek-ai/dsh-agent":"^0.0.1-rc.2","@deepseek-ai/dsh-tools":"^0.0.1-rc.2","@deepseek-ai/dsh-session":"^0.0.1-rc.2","@deepseek-ai/dsh-agent-loop":"^0.0.1-rc.2","@deepseek-ai/dsh-invariants":"^0.0.1-rc.2","@deepseek-ai/dsh-host-apiproxy":"^0.0.1-rc.2","@deepseek-ai/dsh-system-prompt":"^0.0.1-rc.2","@deepseek-ai/cordis-plugin-loader":"^1.0.1-rc.1","@deepseek-ai/dsh-user-interaction":"^0.0.1-rc.2","@deepseek-ai/cordis-plugin-include":"^1.0.5-rc.1","@deepseek-ai/dsh-agent-loop-testkit":"^0.0.1-rc.2","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.1","@deepseek-ai/dsh-agent":"^0.0.1-rc.2","@deepseek-ai/dsh-tools":"^0.0.1-rc.2","@deepseek-ai/dsh-session":"^0.0.1-rc.2","@deepseek-ai/dsh-invariants":"^0.0.1-rc.2","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-todo_0.0.1-rc.2_1786461572870_0.631859183170808","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-11T15:19:33.023Z","publish_time":1786461573023,"_source_registry_name":"default"},"0.1.0-rc.2":{"name":"@deepseek-ai/dsh-tool-todo","version":"0.1.0-rc.2","license":"MIT","_id":"@deepseek-ai/dsh-tool-todo@0.1.0-rc.2","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"03f40456b891c683d6e1cc44f1f0cf5b8fea2d8c","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.0-rc.2.tgz","fileCount":15,"integrity":"sha512-TufUixdCOMx9L5krVV9miSBXKeWJANS8rSLicpb/DnLSExlG+YLOWMBx/KMlAFmpAkiUGfvJGPpK5alx5oKHHw==","signatures":[{"sig":"MEUCIQC1OxsiTgmy4oudgI6goRvCaKNfgwbpVF05tN0NQ7aSgAIgXcWfhmYd5wBJLzADy7JUpo4iLo/dgVgHYRnbAsg2sxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41976,"size":13505},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.2.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.2.tgz","_integrity":"sha512-TufUixdCOMx9L5krVV9miSBXKeWJANS8rSLicpb/DnLSExlG+YLOWMBx/KMlAFmpAkiUGfvJGPpK5alx5oKHHw==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_npmVersion":"11.16.0","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.2","@deepseek-ai/dsh-agent":"^0.1.0-rc.2","@deepseek-ai/dsh-tools":"^0.1.0-rc.2","@deepseek-ai/dsh-session":"^0.1.0-rc.2","@deepseek-ai/dsh-agent-loop":"^0.1.0-rc.2","@deepseek-ai/dsh-invariants":"^0.1.0-rc.2","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.2","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.2","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.0-rc.2","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.2","@deepseek-ai/dsh-tools":"^0.1.0-rc.2","@deepseek-ai/dsh-session":"^0.1.0-rc.2","@deepseek-ai/dsh-invariants":"^0.1.0-rc.2","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-todo_0.1.0-rc.2_1786614040113_0.7500016030264942","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-13T09:40:40.248Z","publish_time":1786614040248,"_source_registry_name":"default"},"0.1.0-rc.3":{"name":"@deepseek-ai/dsh-tool-todo","version":"0.1.0-rc.3","license":"MIT","_id":"@deepseek-ai/dsh-tool-todo@0.1.0-rc.3","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"d369da76f41e26d7570f13712333f209d5eb245f","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.0-rc.3.tgz","fileCount":15,"integrity":"sha512-SIK8sTgBtSa73RvSnP23X1SUfpPygAFkKZIVKhBNAlyFE9B4GiBKM4as8cRuht+ZIUgV0n/d3auzU0Cjt3F3XQ==","signatures":[{"sig":"MEQCIH8z0RnCxaiHZ4PyDqumXwhXRgmy0AxJ/isEpfbxkwNyAiBKPO0pT4c61gJ56ScjDBQfORGQ9GOlwH8rftjjE8AkUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41976,"size":13507},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.3.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.3.tgz","_integrity":"sha512-SIK8sTgBtSa73RvSnP23X1SUfpPygAFkKZIVKhBNAlyFE9B4GiBKM4as8cRuht+ZIUgV0n/d3auzU0Cjt3F3XQ==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_npmVersion":"11.16.0","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.3","@deepseek-ai/dsh-agent":"^0.1.0-rc.3","@deepseek-ai/dsh-tools":"^0.1.0-rc.3","@deepseek-ai/dsh-session":"^0.1.0-rc.3","@deepseek-ai/dsh-agent-loop":"^0.1.0-rc.3","@deepseek-ai/dsh-invariants":"^0.1.0-rc.3","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.3","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.3","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.3","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.0-rc.3","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.3","@deepseek-ai/dsh-tools":"^0.1.0-rc.3","@deepseek-ai/dsh-session":"^0.1.0-rc.3","@deepseek-ai/dsh-invariants":"^0.1.0-rc.3","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.3"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-todo_0.1.0-rc.3_1786619278965_0.7342296234197578","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-13T11:07:59.112Z","publish_time":1786619279112,"_source_registry_name":"default"},"0.0.1-rc.5":{"name":"@deepseek-ai/dsh-tool-todo","version":"0.0.1-rc.5","license":"BSD-3-Clause","_id":"@deepseek-ai/dsh-tool-todo@0.0.1-rc.5","maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"dist":{"shasum":"4c93a93e619f8d2f56f4f90a97865eec491d0e76","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.0.1-rc.5.tgz","fileCount":15,"integrity":"sha512-c4iZnuUmvl1Gh11ZP0iIQI6l/2771Mo9pNsMy69gVxknHBDGusL3QvekywF0iWsyDbv94bFpQgmSrIIPO2qzLQ==","signatures":[{"sig":"MEUCIBrWw5r3ihRf7Y2L8zlGm7BnY2Ymla3vnxcE5dbZnj31AiEA8X/beacOhQJvO2ZL1BNppOGpwE4DkH9HI5NQqI73DZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42440,"size":13710},"main":"lib/index.js","type":"module","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.5.tgz","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.0.1-rc.5.tgz","_integrity":"sha512-c4iZnuUmvl1Gh11ZP0iIQI6l/2771Mo9pNsMy69gVxknHBDGusL3QvekywF0iWsyDbv94bFpQgmSrIIPO2qzLQ==","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_npmVersion":"11.16.0","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1-rc.4"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"readmeFilename":"README.zh.md","devDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.4","@deepseek-ai/dsh-llm":"^0.0.1-rc.5","@deepseek-ai/dsh-agent":"^0.0.1-rc.5","@deepseek-ai/dsh-tools":"^0.0.1-rc.5","@deepseek-ai/dsh-session":"^0.0.1-rc.5","@deepseek-ai/dsh-agent-loop":"^0.0.1-rc.5","@deepseek-ai/dsh-invariants":"^0.0.1-rc.5","@deepseek-ai/dsh-host-apiproxy":"^0.0.1-rc.5","@deepseek-ai/dsh-system-prompt":"^0.0.1-rc.5","@deepseek-ai/dsh-user-questions":"^0.0.1-rc.5","@deepseek-ai/cordis-plugin-loader":"^1.0.2-rc.4","@deepseek-ai/cordis-plugin-include":"^1.0.6-rc.4","@deepseek-ai/dsh-agent-loop-testkit":"^0.0.1-rc.5","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1-rc.4","@deepseek-ai/dsh-agent":"^0.0.1-rc.5","@deepseek-ai/dsh-tools":"^0.0.1-rc.5","@deepseek-ai/dsh-session":"^0.0.1-rc.5","@deepseek-ai/dsh-invariants":"^0.0.1-rc.5","@deepseek-ai/dsh-session-projection":"^0.0.1-rc.5"},"_npmOperationalInternal":{"tmp":"tmp/dsh-tool-todo_0.0.1-rc.5_1786573895391_0.9209286420699281","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-08-12T22:31:35.577Z","publish_time":1786573895577,"_source_registry_name":"default"},"0.1.0-rc.7":{"name":"@deepseek-ai/dsh-tool-todo","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/todo/tool-todo"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-agent":"^0.1.0-rc.7","@deepseek-ai/dsh-tools":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.7"},"devDependencies":{"@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-agent":"^0.1.0-rc.7","@deepseek-ai/dsh-agent-loop":"^0.1.0-rc.7","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.0-rc.7","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-session":"^0.1.0-rc.7","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.7","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.7","@deepseek-ai/dsh-tools":"^0.1.0-rc.7","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.7"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-tool-todo@0.1.0-rc.7","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-Jm00eSYvNq8Qj5GmXdsC7EY3Q6TLSzBTiODNAu2bs5HxEqE5ssQ/fdcxuAXAfSFmh2Vq0ENLZckDg3q5Xvj6Qg==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.7.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.7.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-Jm00eSYvNq8Qj5GmXdsC7EY3Q6TLSzBTiODNAu2bs5HxEqE5ssQ/fdcxuAXAfSFmh2Vq0ENLZckDg3q5Xvj6Qg==","shasum":"32b98e0ddcb3b4dbeed0d79d0541de8e92b04243","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.0-rc.7.tgz","fileCount":15,"unpackedSize":41972,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHncRfdhn1sjhH75bvlAL1kzYBQ3nBp0aUw4SFCm3ydNAiAt8hgMyFyq57iFmipYqHqIqX7DWR+CnJegght69PpF2w=="}],"size":13507},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-tool-todo_0.1.0-rc.7_1786967096812_0.5261524077755861"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-17T11:44:56.960Z","publish_time":1786967096960,"_source_registry_name":"default"},"0.1.0-rc.8":{"name":"@deepseek-ai/dsh-tool-todo","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","version":"0.1.0-rc.8","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/todo/tool-todo"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.8","@deepseek-ai/dsh-session":"^0.1.0-rc.8","@deepseek-ai/dsh-agent":"^0.1.0-rc.8","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.8","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8"},"devDependencies":{"@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-agent":"^0.1.0-rc.8","@deepseek-ai/dsh-agent-loop":"^0.1.0-rc.8","@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.0-rc.8","@deepseek-ai/dsh-host-apiproxy":"^0.1.0-rc.8","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-session-projection":"^0.1.0-rc.8","@deepseek-ai/dsh-session":"^0.1.0-rc.8","@deepseek-ai/dsh-system-prompt":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@deepseek-ai/dsh-user-questions":"^0.1.0-rc.8","@deepseek-ai/cordis":"^4.0.1"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-tool-todo@0.1.0-rc.8","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-eWxwTeX5WsQPSsz1qyJq+UMiASYB5UHLdObVd4vFLYKbFOoglUK0X+Ie5OjlAkFTP+OzCQMAzUl2gJMwJPWKig==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.8.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.0-rc.8.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-eWxwTeX5WsQPSsz1qyJq+UMiASYB5UHLdObVd4vFLYKbFOoglUK0X+Ie5OjlAkFTP+OzCQMAzUl2gJMwJPWKig==","shasum":"ee3448b30d29c291789a55c932372fc32a95bcdf","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.0-rc.8.tgz","fileCount":15,"unpackedSize":41972,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDnoKTTYXFmSRIy8Tf7MwyAa4kIfeeUhcsrK0blRuGRYAiBZmOfw7RK45ozMD58DUUgPdTNrvRBjBoa54tPG8yhm3g=="}],"size":13510},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-tool-todo_0.1.0-rc.8_1787153783975_0.7595263709231179"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-19T15:36:24.129Z","publish_time":1787153784129,"_source_registry_name":"default"},"0.1.1-rc.1":{"name":"@deepseek-ai/dsh-tool-todo","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","version":"0.1.1-rc.1","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/todo/tool-todo"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.1-rc.1","@deepseek-ai/dsh-session":"^0.1.1-rc.1","@deepseek-ai/dsh-invariants":"^0.1.1-rc.1","@deepseek-ai/dsh-tools":"^0.1.1-rc.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session-projection":"^0.1.1-rc.1"},"devDependencies":{"@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.1","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.1-rc.1","@deepseek-ai/dsh-agent-loop":"^0.1.1-rc.1","@deepseek-ai/dsh-invariants":"^0.1.1-rc.1","@deepseek-ai/dsh-host-apiproxy":"^0.1.1-rc.1","@deepseek-ai/dsh-llm":"^0.1.1-rc.1","@deepseek-ai/dsh-session":"^0.1.1-rc.1","@deepseek-ai/dsh-session-projection":"^0.1.1-rc.1","@deepseek-ai/dsh-system-prompt":"^0.1.1-rc.1","@deepseek-ai/dsh-tools":"^0.1.1-rc.1","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.1","@deepseek-ai/cordis":"^4.0.1"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-tool-todo@0.1.1-rc.1","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-j3gZX+p1vJYrJpPFaXiyYSEQf8rpWbQ7sNJASRCFR2Q3a3rGHXrcFVr4A7WXH7zgIHwcNKK4FHv7aDAk2JuMrQ==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.1-rc.1.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.1-rc.1.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-j3gZX+p1vJYrJpPFaXiyYSEQf8rpWbQ7sNJASRCFR2Q3a3rGHXrcFVr4A7WXH7zgIHwcNKK4FHv7aDAk2JuMrQ==","shasum":"9560b1977e4db19ba4ed6015f5c3f2a306836652","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.1-rc.1.tgz","fileCount":15,"unpackedSize":42183,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDutcq3HZVVerS8JWk6Iss3AM0Ss1BxBcCuusr7a0aKfQIgALXbAdnXN2j5kK2bdFQ/6+tW8dZdrh1MOa69l9mvpXE="}],"size":13569},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-tool-todo_0.1.1-rc.1_1787294664664_0.6145948023523538"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-21T06:44:24.793Z","publish_time":1787294664793,"_source_registry_name":"default"},"0.1.1-rc.2":{"name":"@deepseek-ai/dsh-tool-todo","description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","version":"0.1.1-rc.2","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/deepseek-ai/deepseek-harness.git","directory":"packages/todo/tool-todo"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-session-projection":"^0.1.1-rc.2","@deepseek-ai/dsh-tools":"^0.1.1-rc.2","@deepseek-ai/cordis":"^4.0.1"},"devDependencies":{"@deepseek-ai/cordis-plugin-include":"^1.0.6","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-agent-loop":"^0.1.1-rc.2","@deepseek-ai/dsh-agent-loop-testkit":"^0.1.1-rc.2","@deepseek-ai/dsh-agent":"^0.1.1-rc.2","@deepseek-ai/dsh-host-apiproxy":"^0.1.1-rc.2","@deepseek-ai/dsh-llm":"^0.1.1-rc.2","@deepseek-ai/dsh-session":"^0.1.1-rc.2","@deepseek-ai/dsh-session-projection":"^0.1.1-rc.2","@deepseek-ai/dsh-invariants":"^0.1.1-rc.2","@deepseek-ai/dsh-user-questions":"^0.1.1-rc.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.1-rc.2","@deepseek-ai/dsh-system-prompt":"^0.1.1-rc.2"},"readmeFilename":"README.zh.md","_id":"@deepseek-ai/dsh-tool-todo@0.1.1-rc.2","bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","_integrity":"sha512-YKP77X/fiKxva/ZzcqkDy6WhNUWYA9oTrAPLAVf3GP+ubIu+r4/cPxu6f2+/8rXLYSi47HXAHajeqQbw2UNXnQ==","_resolved":"/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.1-rc.2.tgz","_from":"file:/home/runner/work/deepseek-harness/deepseek-harness/dist/npm/deepseek-ai-dsh-tool-todo-0.1.1-rc.2.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-YKP77X/fiKxva/ZzcqkDy6WhNUWYA9oTrAPLAVf3GP+ubIu+r4/cPxu6f2+/8rXLYSi47HXAHajeqQbw2UNXnQ==","shasum":"6c0294f67ef2dce235ddf68e7824d5687930e5ec","tarball":"https://registry.npmmirror.com/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.1-rc.2.tgz","fileCount":15,"unpackedSize":42183,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCB1Ui4rUg8L47Zjs4D+3FXz4W3z6PNpdqmHXSZFRgpPQIhANVjfW5+TCPhH98Mh2qiHdMvkpTrtzPItUSEtF6At4eK"}],"size":13569},"_npmUser":{"name":"imccyu","email":"imccyu@gmail.com"},"directories":{},"maintainers":[{"name":"imccyu","email":"imccyu@gmail.com"},{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-tool-todo_0.1.1-rc.2_1787315851123_0.5026151377806685"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-08-21T12:37:31.262Z","publish_time":1787315851262,"_source_registry_name":"default"}},"bugs":{"url":"https://github.com/deepseek-ai/deepseek-harness/issues"},"description":"Model-facing todo_write tool over the DeepSeek Harness event-sourced session log","homepage":"https://github.com/deepseek-ai/deepseek-harness#readme","license":"BSD-3-Clause","maintainers":[{"name":"tianyicui-deepseek","email":"tianyi@deepseek.com"},{"name":"imccyu","email":"imccyu@gmail.com"}],"readme":"# @deepseek-ai/dsh-tool-todo\n\nEnglish | [中文](README.zh.md)\n\nThe model-facing `todo_write` tool: the agent's whole task list, replaced wholesale on each call.\n\n## What it does\n\nRegisters one tool, `todo_write(todos: [{ content, status }])`, on `ctx.tools`. The model sends the ENTIRE list every call — there are no partial updates or per-item edits. Each call appends a `todo/write` event (the full list snapshot) to the calling agent's session log via `agent.session.append('todo/write', { todos })`; the current list is the most recent such event (last-write-wins on replay).\n\n`status` is one of `pending`, `in_progress`, or `completed`.\n\n## Single owner\n\nThe list belongs to the ONE agent session that called the tool. There is no subagent/shared/swarm scope: a non-agent caller (no `exec.agent`) has nowhere to write the list and is rejected. This is a deliberate scope limit — see the Agent Note.\n\n## Configuration\n\n`allowParallelInProgress` is required: every composition must choose whether several todos may be `in_progress` at once. It is a deployment choice, not a fixed rule: whether concurrent active tasks are legitimate depends on runtime concurrency the tool cannot observe. Use `true` for agents that may fan out work and `false` to enforce the single-active discipline.\n\nThe flag moves the model-facing instruction and the accepted input together — `true` asks the model to mark every actively worked task and accepts any number, `false` asks for exactly one and rejects a call marking more with `Error: invalid todos: at most one task may be in_progress (got <n>)`. The durable-log invariant does NOT follow it: a log written while parallel work was allowed must still replay after a deployment tightens the policy, so the invariant stays silent on the active count.\n\n## Validation\n\nBeyond the schema's type/required/enum checks, `execute` rejects an empty or duplicate `content`, and any item key beyond `content`/`status` — an extended item shape (ids, nesting) fails loud instead of silently flattening, keeping the logged snapshot equal to what the model believes it wrote. How many tasks may be `in_progress` at once is the deployment's call (§ Configuration): a composition that chooses `true` permits parallel work (concurrent subagents, background commands) to mark several tasks simultaneously. Ordering and the discipline of keeping the list current are left to the model via the tool description.\n\n## Rendering\n\nThe canonical result is `{ todos, counts: { pending, inProgress, completed } }`; its Native renderer returns the compact update acknowledgement. The tool also writes the full `todo/write` session event. UIs subscribe to the event stream and render that durable list themselves: the [web client](../../client/ui-conversation) shows a plan strip plus a dedicated tool row off the standing plan — latest `todo/write` with no later `turn/start` ([display](../../../.agents/notes/implemented/feature/2026-07-23-web-todo-display.md), [lifetime](../../../.agents/notes/implemented/feature/2026-07-28-todo-plan-clears-on-next-turn.md)).\n\n## Session projection\n\nWhen the composition mounts `ctx.sessionProjections` ([`@deepseek-ai/dsh-session-projection`](../../session/session-projection/README.md)), this package registers the `todos` projection unit under an injected child: `init` = `null` (no write yet), `apply` = take the whole list from each `todo/write` and clear to `null` on each `turn/start` (standing plan; `turn/end` keeps the finished checklist; every other event returns the same state reference), `view` = identity, `stateVersion` = 2. The key merges into `SessionProjectionMap` here (via the Service Definition package's `/types` outlet); the framework drives the unit and carriers serve the value on the history tail page and the `session/projection` push frame. Compositions without the registry are unaffected. Lifetime rationale: [todo plan clears on next turn](../../../.agents/notes/implemented/feature/2026-07-28-todo-plan-clears-on-next-turn.md).\n\n## Export shape\n\nA function/namespace plugin: it exports `name` / `inject` / `apply` and NO default. A stray `export default` would collapse the module via the Loader's `unwrapExports` and drop `inject` (see [docs/postmortem/0001](../../../docs/postmortem/0001-acp-default-export-drops-inject.md)).\n\n## Model Experience\n\n### Tool schema\n\n#### What the model sees\n\nThe model sees the generated [`todo_write` schema](../../../docs/tool-catalog.md#deepseek-aidsh-tool-todo).\n\n#### Token effect\n\nFixed schema cost on every request where the tool is visible.\n\n#### KV Cache effect\n\nPrefix-stable while the definition and visibility are unchanged. Plugin lifecycle or scoped restrictions may invalidate reuse from this schema.\n\n### Tool-call history and result\n\n#### What the model sees\n\nEach assistant tool call retains the entire replacement list in its arguments. Success returns exactly `Updated todo list: <pending> pending, <inProgress> in progress, <completed> completed.` Stable failures are ``Error: invalid todo: `content` must be a non-empty string``, `Error: invalid todos: duplicate content \"<content>\"`, `Error: todo_write requires an owning agent session`, and — only where the deployment set `allowParallelInProgress: false` — `Error: invalid todos: at most one task may be in_progress (got <n>)`. The full `todo/write` session event is UI and replay state, not a second model message.\n\n#### Token effect\n\nToken growth scales with every full list the model submits, and those call arguments remain until compaction. The result itself is small and fixed-shape.\n\n#### KV Cache effect\n\nAppend-only; newly visible content follows the reusable request prefix and does not invalidate existing KV-cache entries.\n\n## Known Limitations and Deferred Work\n\n- **Single-owner scope only** — the list belongs to the one calling agent session; subagent/shared/swarm scopes are a deliberate cut (see § Single owner), and a non-agent caller is rejected.\n- **The item shape is deliberately minimal** — `content` plus three-state `status`; whole-list replacement needs no stable id, priority, or active-form fields.\n- **Whole-list replacement is the only operation** — no partial updates, no read-back tool; the model must resend the entire list each call.\n","repository":{"url":"git+https://github.com/deepseek-ai/deepseek-harness.git","type":"git","directory":"packages/todo/tool-todo"},"_source_registry_name":"default"}