{"_id":"@bacnh85/pi-model-tools","_rev":"28-c55573a9abf74a5fc21c53fc496e9823","name":"@bacnh85/pi-model-tools","dist-tags":{"latest":"0.9.4"},"versions":{"0.2.0":{"name":"@bacnh85/pi-model-tools","version":"0.2.0","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.2.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"269d2a61327ac3ac16ec32d7769b216c5f917581","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.2.0.tgz","fileCount":9,"integrity":"sha512-ZMA0Bjmps6h4AOggSXOutK1epXrTJzFrsTs+CFcl0Cu9roIbwJMXW7c5GD8ZqDzwf+re2QPXOsPhQUF3VbxuEw==","signatures":[{"sig":"MEYCIQDJ/4yYQ2AcZZsJ35oVE1BxRsiZq65aPqAt3DcYrHOuugIhAO+HKV7B9pEVNVzQSs2GyaGiPc/nHp7o1JVi35x+ioO2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63786},"type":"module","gitHead":"9554e3b8462dd703729d5ed79e2e4abe8869ef3e","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, and defensive leak-cleaning for DeepSeek V4 and GLM model families from any provider.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.2.0_1785117136586_0.42927892290577274","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bacnh85/pi-model-tools","version":"0.3.0","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.3.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"b8b2b5b203be1677ddbb6c7df2cafd57c684ec85","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.3.0.tgz","fileCount":11,"integrity":"sha512-OlYEvpdl6OZeyICp0MlAC2ydYTA4jUpCwjIJOw6tsbl/9pp6fZqC9rYEzWLHdVQxfO30uuVY1hSI0TkT9TMzIw==","signatures":[{"sig":"MEMCICim6ZaEytQXMXBfXlodWUeqcJxHMAANJ2GCqbWrMFBCAh8whfeASV9dyNbkqArRLGk0K1oWNkD3QqNS7zTsjl9h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96712},"type":"module","gitHead":"bed46c86de8b6d57b55747ca30ba87867e551d3d","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.3.0_1785248093089_0.567221215848428","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bacnh85/pi-model-tools","version":"0.3.1","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.3.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"16dea0dabd119d033d0cda4542def0374190e471","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.3.1.tgz","fileCount":11,"integrity":"sha512-5+1Ou9W3fpx/9K4mGSM7D2zXAIrALtOC3Vvp7bGuG5xyWiMqPjhxkINj70YfSQY7TFaus9fA1PGnuPOuJpAJ8g==","signatures":[{"sig":"MEYCIQD8QTNfqafh7Bp8qaHh8j64IwczaDWzr/gFMXWdp3rmIgIhAIOn9flOacAl21DcCICwhG0hWa/QiwaKuY8KR7OTmIiS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98527},"type":"module","gitHead":"1ad85302f1e04110b1359adb4b3aa8eeddc3a6fa","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.3.1_1785251159340_0.8425411779136289","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bacnh85/pi-model-tools","version":"0.3.2","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.3.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"8386473ed6beb20c618755f7ef4f29e18851a746","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.3.2.tgz","fileCount":11,"integrity":"sha512-vo+EN09y5Vw/+Fo897Vrbrk92nxJ7RAtOraYx862fEDUjXCA+S3R18LFRzUSu9kNsiW/BLdUmpnvT+6E3FCnAA==","signatures":[{"sig":"MEUCICxhmpxmcbqngSWqK7t+9VaNwnKOvXud2F7Xu/dWo1BXAiEAn7a6SHUacMe/SDtCffFudK4JkJOizKjCmO/ANH41uh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99135},"type":"module","gitHead":"5d9c209d573dba939baed9a3e40b1369e83a5f2d","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.3.2_1785306483718_0.35302377148540187","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@bacnh85/pi-model-tools","version":"0.3.3","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.3.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"47e97c30734b3ae8939cd3de7daf82a39e0f9405","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.3.3.tgz","fileCount":12,"integrity":"sha512-Ow+efzF6To3YFJaj7JIn5HHjUEIK7M3NnLWBQe6VgnGtnIEuEMML4SIjOQ1Gs9usoe7KftqapNHzqhMj0yMCKg==","signatures":[{"sig":"MEQCIF3s0YlCHwP30ArWe9dP7A463VhfivV/2M535VC2kbyrAiANAjkvHrEbcmEdhBfZRnjVO6RT4zx+zHlI2WOpysbB9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99768},"type":"module","gitHead":"92c3ed2b01c74685201a903655a39a7c7ddff2dc","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.3.3_1785378626755_0.8585143175314678","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bacnh85/pi-model-tools","version":"0.4.0","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.4.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"12dd4e265ecc9ff93d3c9bbce34bfed01a257553","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.4.0.tgz","fileCount":12,"integrity":"sha512-icmzVJFtN771ZTosZKTvUEQOANijfw6FA2ZlbAJ3fWrxZVfIHlFrypB4j544TMfHFXAuLymETy7Ne2cMNbCbuQ==","signatures":[{"sig":"MEUCIFKumXQlDg+Wn4quPW6qnIBFlos/THaAYFP6kSS/t38vAiEA9IXwS8mndTZ8FVBN5IxFRUIQus6nTTj6OOO614ge760=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101315},"type":"module","gitHead":"832e105282731cf71369bbf9fc454c253b63451c","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.4.0_1785413211365_0.8535726102443728","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@bacnh85/pi-model-tools","version":"0.4.1","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.4.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"aaa41e431933793a75057b7117defd66e8ac3369","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.4.1.tgz","fileCount":12,"integrity":"sha512-WnP9Zqa1pS96VNGSgVywL1ZCWpvlVRKA/gjBo8ymnVFwFDthox/SrBvxczMrnU2bR6RLhE48Ant9VT1AnxK/dQ==","signatures":[{"sig":"MEUCIQCC76/yYlkweLPPB6r0OSyMLfI/T0NWxeYewxJGpCljnAIgLQ9o+m7lrWqOojE7lEAenY/u2DFZwMVPjRnioS3oOtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103839},"type":"module","gitHead":"c6a8cb23ed0fbf4ed572d02fa742599744dd2813","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.4.1_1785624070870_0.3362909170545316","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@bacnh85/pi-model-tools","version":"0.5.2","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.5.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"c66ce4ad4f0d01865f2ab2aa1b41ddca36b1a4a1","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.5.2.tgz","fileCount":12,"integrity":"sha512-2uH9Axgp8RkPEFMNm2YgIz7WaFE1veC/D0eIfMkGbVbGnvWJlzybk5hBnHg6bAJ5bxFMKbXhiI3zboH/2HDhuQ==","signatures":[{"sig":"MEQCIEJ6tNWo6OMak8jP/+n6Kf5T0IsS/+3wDPDdJ804bGgsAiAiR7NXabPUHaUAoincrTiBo/IBY+0nEsXiyfPjEIxN6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123476},"type":"module","gitHead":"65a6d8eb812f8bba93945641a63df076584a42ad","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.5.2_1785822382969_0.6911143702047136","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@bacnh85/pi-model-tools","version":"0.5.3","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.5.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"4681094bf588aab9c8c4665cf2eaad1c5a860e96","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.5.3.tgz","fileCount":12,"integrity":"sha512-YOUASm1NkVsQuu+yaxeTTcTkyvu6+7J+JxCXS5LhoxySuMfzNlMRnAzG6eqjrfUhQv+QQun6athD+MplJAfghg==","signatures":[{"sig":"MEUCIQDxIDiRm7QbALocy+K49KpYln/R3O/RNFCtSg3+vkCy0wIgHL0dGyR4YTVVTGMqIx0iEMcneF41kvNOZoNgDsm/1cE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126949},"type":"module","gitHead":"3fee97c454aa80ed030eef35f15fe6b534f89fa4","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.5.3_1785846832419_0.11757274995408995","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@bacnh85/pi-model-tools","version":"0.5.4","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.5.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"fdff5eddcea6c29e8fc823ba1e1b804d4fe73e6a","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.5.4.tgz","fileCount":12,"integrity":"sha512-GVKQViQFbu0sPa32kSro/2OrPmmQtLovFtWnRUu2d4tbKZAjBGKVbSIcly8Y5xzMQrNfLRlxk2R94gh/LyKlzg==","signatures":[{"sig":"MEUCIQD7FBvq+34wzUZRZZvad8qMaU8KklgJWRm7/xUuy4MtyAIgUkQX+y4reIUpgb9AbkG0E93stTuP4Tgb3zVExuxRAOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130021},"type":"module","gitHead":"10ff7541a583497b33f8fec95462330f86f1eba7","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.5.4_1785854265358_0.5827791819218009","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@bacnh85/pi-model-tools","version":"0.5.5","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.5.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"d6ed102ff07ea018328e3c34ea777c02f5c56131","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.5.5.tgz","fileCount":12,"integrity":"sha512-UFk7feMa3Zn4I4+NptIo6/8aa7A3cQXbpJ+Y8F/W/QD0x3qMRzuIght3v01/oLG8HwInNryioZQjEKfspOIkIg==","signatures":[{"sig":"MEYCIQCxOvmf0RuSD0WqGs6DUkh+e6itvaKIDaV5NEhcVsakXQIhAJuVnUrR8zMat+JTe6bY85HNT/0zy30vhzQYHFJsBGh8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130153},"type":"module","gitHead":"b6dc2aa08224976862793b502d6ec946c2b9b2d4","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.5.5_1785926426890_0.6755564533688105","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bacnh85/pi-model-tools","version":"0.6.0","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.6.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"f9f61c78e7c01b2be69ceed3ae5e84a448e58c4b","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.6.0.tgz","fileCount":14,"integrity":"sha512-rRanKE1yJz2Rmq+PL/GLyVsWTNqzRdXNmyXyse082kzCHtxwIIJ17/RduuRmQ5/ePARWwtASk/9j5PQMVmuPQA==","signatures":[{"sig":"MEUCIQCwHiUBoBPdnHuk239NTQj9IjMxAUYc8IiK4CGpO5jPwwIgCatyCLP/25sHMIFBBjbabNyYFLDWT2lBcCEAmANS33s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174881},"type":"module","gitHead":"aa7d971000a0878ccd56ece46669b42c022a0978","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.6.0_1786866327705_0.534018930755664","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@bacnh85/pi-model-tools","version":"0.6.1","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.6.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"7c7a5cbbb8b61015d04b406208a87a277d74aab1","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.6.1.tgz","fileCount":14,"integrity":"sha512-ii3j3/EmVWRgRS58o7ItnSNoL9bVaRGj+0/+fS/4VW9GFp0EcOPJ+jSEs+y8JV36OEqoreDGZR/3eFBWchushA==","signatures":[{"sig":"MEUCIEcNqDoBVNKqxwpwWYz5uL5IOpH0uzeVeSr5dMxFmHQiAiEAttlk34tULA1nj+3hkrYIHgT8/vSLs3/2AhADyUyomYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175523},"type":"module","gitHead":"0b4522bd81eef736f5768ad21c31b7ea86c8eb92","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.6.1_1787670928741_0.8301012779782613","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@bacnh85/pi-model-tools","version":"0.7.1","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.7.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"c87449b4b333ffb68bc8f47c1f57ebddafe3d482","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.7.1.tgz","fileCount":15,"integrity":"sha512-kcdbQLL5FSAXPGAswPjjiW38iqJ8Cb+N98/Gls8fnf9SFmDfXs98OV87D9E8L+3t4J2oN5miMPSwjBKOH509Zg==","signatures":[{"sig":"MEYCIQC3wZ60HWJl+dk7UH3r5OufRhg2vUnrWiWdqyPbj4CTzgIhANxwctvhNq0M/2UXADMYx32ujojj3yG1+ZEHH0dfOE9h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193077},"type":"module","gitHead":"8118cef39c3a990dfa4dd1e99dea428c35aaadc9","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43","@earendil-works/pi-server":"^0.85.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.7.1_1788661231773_0.35871862533574683","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@bacnh85/pi-model-tools","version":"0.8.0","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"76473d61596ed3333f83be844215c99734562960","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.0.tgz","fileCount":16,"integrity":"sha512-lYsU1bYUXxDEQQ0tMcWbDHFRnm8uCTQipZua+sUwPSA0TggLytqvd/JUQQ6i5ti5LRR1C75NBL/zb4ZyO7J0bw==","signatures":[{"sig":"MEYCIQDbTwLAL7lZuYy/cjyuT9tmsVqcbi1YuRL/+7UOxkjisQIhAJO+LQY+TDDNGXdyzfWRQHMC6J1YR5igR/X05a0f67nb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225926},"type":"module","gitHead":"a173f7a3acaba61236f4ebc0a968bf83d3490b93","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43","@earendil-works/pi-server":"^0.85.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.0_1788680692175_0.655186061029156","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@bacnh85/pi-model-tools","version":"0.8.1","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"b06490000afbd9b4dd03b8fd0020069ee56dfba1","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.1.tgz","fileCount":16,"integrity":"sha512-N4vm7apAP+ghmQOKzzvNyyz+0O3Nudpn7T5QT1YHHwNdrM5gt+aeVxm7/7njoksLctN5rtJUDvllZcAsYW0CnQ==","signatures":[{"sig":"MEUCICXC+YzlBJj/1BfQ17EIrWpZoV/CJ6LEq5AzUvMQ+voXAiEAnrwDKQ1rpM9uPnrDrr8iV30eqwLMuLHTrm6WYfZMnQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAdviSDw0by59B70wDUucebHAqeOLAffBCOfAsoTAL18AiBYam40ZlIqOAqJ1O9ApHia/lYgzUy7DSoIiP88lLB77w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232438},"type":"module","gitHead":"5f04d89328761844538b34dcc8443c61e9dc09bb","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.1_1789086724860_0.8854226873315663","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@bacnh85/pi-model-tools","version":"0.8.2","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"c3f30a6abfc6967b9552d204c7c49c321ed4c0ef","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.2.tgz","fileCount":16,"integrity":"sha512-ByXw7mPhqSg/g5l7f6vmeLiGMteftciR7QxWQFEJNm80IFWFeKWhkmW8ZTGXvfENajXta7PeC8V2e9xG4JkWNA==","signatures":[{"sig":"MEYCIQCS+fyVmWGlv+LFOHrTY1TMvjAKmo82X5GiOn+sMku+dAIhANu3P6V3c6htr5BICKFCSyPDGJ7/dfoeqksEjlw7CIC0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCnASG9hx9jDdNsHgmDnGuXhIo2MB+LbH+sBu4rXo8fDgIgYIYO3e/9DD57NTPqv5isM9ghFQTjy1AL7GxKUCUkc/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233020},"type":"module","gitHead":"fc25702c6bed994da1dd5071c5ec8071bfd28393","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.2_1789204350856_0.3207066532934124","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@bacnh85/pi-model-tools","version":"0.8.3","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"948281464f696cb66a5256c0acfaf659f9724497","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.3.tgz","fileCount":16,"integrity":"sha512-drn/v7I2sB4oGKbH6lHCLDcQy+ncITSz9Pj6/KOg/RHNcndtvrq0/Ui1GcAGEoY08REvMyjZXRm5HPYfGRzKSw==","signatures":[{"sig":"MEQCIE1L5XoxE2ijXm43o2jY93uJzaiUwOXArB0xblIcElSpAiAqpskbfhqhDIgSX2eG5O3lbGcK201ff1fI1mMmCfGv2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkjExx/94HSlyddQhCL73kw8L1bTSlNEcPGzdqX5DavgIgPwSpNCxEAz5GJG7mzQ0lr2sZKtktygJ2jZqdo16dRW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233685},"type":"module","gitHead":"740c779955398732bb0f7e0a49282188041b9f2a","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.3_1789392111014_0.6953511841909541","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@bacnh85/pi-model-tools","version":"0.8.4","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"e8600f24c018930a973ec10a953be27c1b462a6c","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.4.tgz","fileCount":17,"integrity":"sha512-bvCZg9s3lC3VLMqh5SP01E28pQTZ3TxR3f5SnF5JFQbAEE5gL5sA3AK4aXCLykYkAHLsAq+N0Kkp/PdkzbGtbA==","signatures":[{"sig":"MEYCIQDmHT3sl9xjzwlSqM9sWVxwUrY9c5u1tptuaIOyGBf5ngIhAN5Pnd2Nqv9Ec/tMxcouQubc9aU0PBFFqfNleOpznKua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDhByXkBf6eGt4/qoa2Z6J38kAa1EFwWJsBIXBYXW01gIgekpUEyU1ph9S7USS5ymD79SvTytOPa+7jaKi74z8ttE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244262},"type":"module","gitHead":"128f03d89d6ef8e2ff513dfe8e85c8a735f194f4","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.4_1789437059388_0.6015246482150909","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@bacnh85/pi-model-tools","version":"0.8.5","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"0a5f7793959a9614a80cfb1a3d38ecf1c37ec10b","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.5.tgz","fileCount":17,"integrity":"sha512-adgsg6Wjjw0zxvbCJlmE3VTSp1zxBkxcqqGfOHYdQArEYzmtGzcRiXQiG2ht+cn0bGK8CdMcS0mVc486hMJjjQ==","signatures":[{"sig":"MEQCIGOLSROvyszVNPqiYipBUdBtpK4yTICgElvF4zIqP1EkAiA52MSZorjuYRHa7im63fhOC5bByHr8Zix79sjMsvkS0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAblR1BOBqUPrXVrfiyQmttJS4pTq36VcZMe7s5XePyQAiEA7q4Px5bR4L7IPad9xkkTLnaH8sGVzN8Jm3gEW8b/3b8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245033},"type":"module","gitHead":"fdf44f60a4ad34359a855de70f0de2edb64c7f2b","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.5_1789784513853_0.1588760279636552","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@bacnh85/pi-model-tools","version":"0.8.6","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.6","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"f862ee5a124f4701a0e2d52a54a73944f9c319a8","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.6.tgz","fileCount":17,"integrity":"sha512-IE/DZ+Ri5Gb9Wj3PxWm5UdgXfiTsQ0ggGQIgM0bAppsCXNoaa1lMGlMHABtvSdraEAc3LjDMenAn/iVZoLjHuA==","signatures":[{"sig":"MEUCIQDhDcEodZjfMFe2+5RvUssCMdYYAtRilMqnsqihAmHtJwIgO/PIekEGvSiAF4HIeycKY+58e2ZIXbayO/hheYhygUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGSn/EzesfUL+Fwv8w0sPpsDTGuwllDRApWoFSFAowJBAiAlhKuW0xkrgAFws2yL9Uk3XHS9DMUMIpj/IQ0o88DJWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245112},"type":"module","gitHead":"d00c3deaa5f3423b44adc2e160397b2feaf8465f","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.6_1789881026238_0.6844903850535256","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@bacnh85/pi-model-tools","version":"0.8.7","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.7","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"9b2cc4e4393c75710092f97a10edac5545ddd464","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.7.tgz","fileCount":17,"integrity":"sha512-lpzgH7yuuoncgs+9A0g05/GOi7cO5gJpsGOrjxu8tvlsn78rXyBqB3SNbK71dtO6moD5Hc1vIrtY+WcPiJ9maA==","signatures":[{"sig":"MEUCIAtsjSdgobB/IKylEr7z4rAi92yQI4ZP/VamIg/kH20YAiEAwd1/QwiP25at4aInNzn/egkUVGldln98LY0MAcgHoXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDdDOseyiK6DaQ+c9KH9+P3jMyeMZiqIok0mR/CSP2B4AIgPatktqLReGToQns0iUzgY+uqPVDqqwO2kAqSczxGfWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245566},"type":"module","gitHead":"b5330ac3d014f92dff97a2b90cd9ebdbf0de22fd","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.7_1789962652506_0.1667676438848984","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@bacnh85/pi-model-tools","version":"0.8.8","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.8.8","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"5ec70f1c0b54ec810a592da2c336a1a5c119a487","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.8.8.tgz","fileCount":17,"integrity":"sha512-r2sen82uO5CPsZrABkhkHAfnOJrNEkKwpc9KIXcIbybojToxBp6si7bOAxA09oTIZ4u38tI5Tp/j7Ix0nHTNzg==","signatures":[{"sig":"MEUCIF5gDrXn2goP5Ik520GARubBgp3AG5KAVVVY7LBiq/pzAiEA+oG40Yq2GslGYYXhXgTdZfGiExltfbFxRNy+fSxMhL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHaeRLkTi+aEx68fxzQhlIesqxXKdEa58pSFFwrIEoZaAiBaV6r2wFzaZvcekKDvFI2LzLHUZR5uioOpprc5uxAOHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245730},"type":"module","gitHead":"e0ab9215e2df54e5fa42f1c6cc6f616124fdea95","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.8.8_1790123348656_0.06471625071650311","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@bacnh85/pi-model-tools","version":"0.9.0","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.9.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"78be1b1e59e0dfda951f6af288e67352f3526528","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.9.0.tgz","fileCount":18,"integrity":"sha512-yLMecTNkgHab2vzC9gLVlSJcitj9vy04wxhp/X5LQgCa76A5bbran6FwXr2R0DUmwfol9ZRHx4p8PDprf1THMw==","signatures":[{"sig":"MEUCIBXyQD192QNrzOhxTOTwdHDeCYEX0laz2l6FWtkRyiEjAiEA6wtO0G3pXdCF65xvQctr+Q/I4cRMoC9eAKrwJVU9K0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD2k2Dzin9owUF3IybI0MMM2jVO1/0mwbF1JX3lAexBbwIhAJnncaDBufbHQsGxEDfixJjELIepFBM4jLQjbtbdf0Vr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265132},"type":"module","gitHead":"ba56b67764230b6e8f15904aa24f95391d2f70e4","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.9.0_1790161746917_0.09819452158568209","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@bacnh85/pi-model-tools","version":"0.9.1","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.9.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"2b7c8d97746c42b5cf84059ad2f4011adcc56c31","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.9.1.tgz","fileCount":18,"integrity":"sha512-J5ldfwybu7DTYzRtGHvck2F4pknjY4lOXNrkeRdpZdzUIBrDSBvb6y3itouSS8NMlExqcr2hjjVR+9CMoYVD3A==","signatures":[{"sig":"MEUCIQDkHALH0Y4bWgw8tIORDRltFo61i5xAxm43H5zDVl0A6QIgBPyWvDax6sCAiOnnaUbbOZR/zxgiXSRjkjXN7Gw42ck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVHZZMeZ+G0N4jUYBFL09HtftYHywH25xhNAsdSPM+ZwIgOPirB4H/ThspPs7lus+h8t/8fsF4LrcxUM2GLCjz8gE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265453},"type":"module","gitHead":"47ee5073837a97916572d769f13d86f55d54ef00","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.9.1_1790209635934_0.5085962931556958","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@bacnh85/pi-model-tools","version":"0.9.2","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.9.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"617ea2cbf90ad5ff35a0d1d86395ef3758e1230d","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.9.2.tgz","fileCount":18,"integrity":"sha512-iW5lL+ZyZaWagC+5et8AwH1nR/aQEO+3TX6kppKW5BourmYryTPfLV1lbp3bXEEmGhzTL6tpsGGeOEFZQPdKBg==","signatures":[{"sig":"MEQCIH1927Zd2K4Odr8Qtl3HE0K4RnPaN5zfCUnm4ob5++PiAiBsw89wTcjTD1SUbHmjH6qUi1jS56gJYhfuGu//UAu9Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3DZf+7MjwNT2GGOOyb0JjWvdeYU/IxFZ2cM94Xj24eQIhAKH9p6YIJ0OXeJMtvv4UmBrTINxF84jAAIw/loVymznK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265442},"type":"module","gitHead":"edad246dd00bc061afdca0cd50782d3883535f96","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.9.2_1790387059430_0.6675508208355805","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@bacnh85/pi-model-tools","version":"0.9.3","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"license":"MIT","_id":"@bacnh85/pi-model-tools@0.9.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"ee0b64c12137301253afd51cc5aefd6944be07bb","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.9.3.tgz","fileCount":18,"integrity":"sha512-9+i5mfY5pQSdC3E6v2XTmlWJOLv4DrEvjc8E749k9wExbIZOdDCusVhQbFHb+yjN6gTmBYrEpv4oMq11E2Z1fg==","signatures":[{"sig":"MEQCIDpnaCJciMPAKX5tVUYbJQdf10VTcseUFUuM26WMXAJ1AiBunm6i1LzWUrAhT2oD/zPJR6wkrzCOIa/4+O+skl2XLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCnrXPUwKhhOMO+ld4OeIwd7iCBVwXJiXS8rnngyxyraQIgRyKqmkkQE2rNWWY5S1UQh8mO8/UafmKN3p56l22Sb3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269953},"type":"module","gitHead":"9064b17618c9ef1669d0dc6f36fcd63f673e4456","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-model-tools_0.9.3_1790496004911_0.08614389261298228","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"pi":{"extensions":["./extensions/index.ts"]},"_id":"@bacnh85/pi-model-tools@0.9.4","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"dist":{"shasum":"046963a4cfb34462db1cb925705b4cd5194600ce","tarball":"https://registry.npmjs.org/@bacnh85/pi-model-tools/-/pi-model-tools-0.9.4.tgz","fileCount":18,"integrity":"sha512-eEkNjFVq31Nrn9YJSDT8k20zp4N9rXAZqfelazRSPdhwV48PgcsmdT+FvuO+/tfjxx0zOdpQneZmEAyDGAk3gg==","signatures":[{"sig":"MEQCIDCsBlMsBevEWJjOPP0Zp2r0XToLRn41OCNQAjKZTNZtAiBOoeTjstHg1nNSv/1gHUQwNnjD3rDRRH8ODoDF3bqO2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEBQJi6iIEjmBlHiOm6/8jM+1DcNhTNLNG6O49+avXD7AiBL7rJrY/3/CeThzUJuB8fqIP91viISGqP8OVJTr+g6Sg=="}],"unpackedSize":270362},"name":"@bacnh85/pi-model-tools","type":"module","gitHead":"90930b50f5fc0a4491a748ee1692db40f7ec358a","license":"MIT","scripts":{"test":"node --import tsx --test extensions/test/unit/*.test.ts","typecheck":"tsc --noEmit"},"version":"0.9.4","_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"_npmVersion":"10.9.8","description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","directories":{},"maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.9.3","@types/node":"^20.19.43"},"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-model-tools_0.9.4_1790555332221_0.5419331253989415"}}},"time":{"created":"2026-07-27T01:52:16.427Z","modified":"2026-09-28T00:28:52.527Z","0.2.0":"2026-07-27T01:52:16.729Z","0.3.0":"2026-07-28T14:14:53.253Z","0.3.1":"2026-07-28T15:05:59.505Z","0.3.2":"2026-07-29T06:28:03.856Z","0.3.3":"2026-07-30T02:30:26.911Z","0.4.0":"2026-07-30T12:06:51.512Z","0.4.1":"2026-08-01T22:41:11.024Z","0.5.2":"2026-08-04T05:46:23.151Z","0.5.3":"2026-08-04T12:33:52.578Z","0.5.4":"2026-08-04T14:37:45.529Z","0.5.5":"2026-08-05T10:40:27.038Z","0.6.0":"2026-08-16T07:45:27.857Z","0.6.1":"2026-08-25T15:15:28.890Z","0.7.1":"2026-09-06T02:20:31.943Z","0.8.0":"2026-09-06T07:44:52.339Z","0.8.1":"2026-09-11T00:32:04.963Z","0.8.2":"2026-09-12T09:12:30.950Z","0.8.3":"2026-09-14T13:21:51.098Z","0.8.4":"2026-09-15T01:50:59.481Z","0.8.5":"2026-09-19T02:21:53.939Z","0.8.6":"2026-09-20T05:10:26.335Z","0.8.7":"2026-09-21T03:50:52.688Z","0.8.8":"2026-09-23T00:29:08.757Z","0.9.0":"2026-09-23T11:09:07.022Z","0.9.1":"2026-09-24T00:27:16.026Z","0.9.2":"2026-09-26T01:44:19.521Z","0.9.3":"2026-09-27T08:00:04.998Z","0.9.4":"2026-09-28T00:28:52.344Z"},"bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"license":"MIT","homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-model-tools","keywords":["pi","pi-extension","tool-calling","argument-repair","deepseek","deepseek-v4","glm","super-power","selection-guidance","agent-tools","reasoning","apply-patch","diff-edit","edit-repair"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git","directory":"pi-model-tools"},"description":"Unified tool-wrapping, argument repair, reasoning management, DeepSeek V4 guidance + Super Power Mode, defensive leak-cleaning, edit mismatch repair (read-notice stripping + trim-tolerant retry), and a Codex-style apply_patch diff tool for DeepSeek V4 and","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"readme":"# @bacnh85/pi-model-tools\n\n**Unified model-family support for Pi** — tool-wrapping, argument repair,\nreasoning management, defensive leak-cleaning, DeepSeek V4 selection guidance,\nand Super Power Mode, all in one extension. Currently supports **DeepSeek V4**\nand **GLM** (GLM-4.5 through GLM-5.3) from any provider.\n\nThis is the **single source of tool-wrapping** for these families. It registers\nthe 8 built-in Pi tools (read, write, edit, grep, find, ls, bash,\nstr_replace_editor) exactly once and routes behavior by detected model family.\n\n> **Merged package (v0.2.0).** This package now absorbs the former\n> `pi-deepseek-tools` and `pi-glm` extensions. Those packages are deprecated;\n> their last published versions remain on npm but receive no further updates.\n> All configuration is unified under the `PI_MODEL_TOOLS_*` namespace (the old\n> `PI_DEEPSEEK_TOOLS_*` / `PI_GLM_*` names are no longer read).\n\n## Why one package\n\nPi's `ExtensionAPI` cannot conditionally register tools — `registerTool()`\nruns at load time, conflicts are detected post-load (uncatchable), and there is\nno `unregisterTool()`. The previous three-package split (pi-model-tools for\ntool-wrapping + pi-deepseek-tools + pi-glm for hooks) duplicated substantial\ncode across packages. Merging into one extension eliminates the duplication and\nthe \"load three packages\" ceremony while keeping every behavior.\n\n## Model family detection\n\nProvider-agnostic. Captures `sessionModel` at `session_start` for proxy-fallback\ncompatibility (e.g. opencode-go → 9router → GLM), so detection works against the\n*requested* model even when a proxy rewrites `ctx.model` to the served one.\n\n```typescript\ndetectFamily({ id: \"glm-5.2\", provider: \"zai\" })            // → \"glm\"\ndetectFamily({ id: \"deepseek-v4-flash\", provider: \"ocg\" })   // → \"deepseek-v4\"\ndetectFamily({ id: \"claude-opus-4.8\" })                      // → null\n```\n\nDeepSeek V4 matches any id containing `deepseek` plus either the word `v4`\n(any `deepseek-v4*`, incl. `v4.1`) or a `-flash` suffix segment (so the\nV4.1 Flash canonical id `deepseek-flash` and prefixed variants like\n`ds/deepseek-flash` are recognized). GLM matches\nany id containing `glm`. Schema-driven argument repair is enabled for **all**\nmodels (it is deterministic and model-agnostic); leak-clean and steering stay\nfamily-gated — non-matching models get neither, and everything degrades\ngracefully to a no-op otherwise.\n\n## Features\n\n### Shared (all detected families)\n\n| Feature | What it does |\n|---------|-------------|\n| **Tool argument repair** | Fixes invalid JSON, trailing commas, unquoted keys, JSON-string→object, top-level string→object (GLM-4.7 bug), **truncated-JSON auto-close** (DeepSeek mid-generation truncation — unterminated strings and unclosed brackets are closed), optional-null deletion, markdown autolinks in path fields, **param-name aliases** (cross-harness schemas — e.g. Claude-Code-style `file_path`→`path`, `file_text`→`content` — repaired for the wrapped built-ins when the aliased target is required and missing) |\n| **Prompt cache stats** | Tracks per-turn `usage.cacheRead`/`cacheWrite`/`input` and reports the session cache hit rate in `/model-tools-status` (Pi core already computes these; this surfaces them) |\n| **Leaked-content cleaning** | Strips leaked thinking headers and `` `tool_name(args)` `` prose from assistant messages (always on for detected families) |\n| **Reasoning strip** | Removes accumulated `reasoning_content` from prior turns to prevent provider 400s on long sessions (on by default) |\n| **Dangerous command guard** | Blocks forced recursive delete of absolute paths (`rm -rf /`) and destructive `dd` writes |\n| **Read-on-guessed-path blocking** | Blocks `read` on a non-existent code-file path, suggests `find` first |\n| **Prompt-aware first-tool hints** | Forces the correct first tool: `bash`-first for RUN/BUILD/EXECUTE tasks, `bash` git-clone-first for analyze-a-repo-URL tasks, and `find`-first for bare-filename reads. Targeted (only fires on matching intent) and applied to all detected families. Injected into the current user message on the **first provider round of the turn only** — never re-appended mid-turn after tool results (a repeated \"FIRST tool call MUST be bash\" next to tool output loops strict models into re-running bash), and never into the system prompt, keeping the prefix-cache head byte-stable for both DeepSeek (exact-prefix cache) and GLM (Z.ai automatic content-similarity cache). |\n| **Error categorization** | Classifies tool errors and injects recovery hints on the next turn. Also detects provider 400s caused by accumulated `reasoning_content` (long-session reasoning-accumulation) and injects an actionable hint — `PI_MODEL_TOOLS_STRIP_REASONING=1` — so the rare trigger is self-documenting. |\n| **Edit mismatch repair** | Strips `read`-tool truncation notices (`[Showing lines … Use offset=N to continue.]`, etc.) that models copy into `edit` oldText — the documented root cause of \"Could not find the exact text\" failures. On a match failure, retries once with whitespace-tolerant matching (copying the file's real indentation); on unresolvable matches, enriches the error with the nearest numbered region. Always on. |\n| **`apply_patch` tool** | A Codex-style V4D diff/patch tool: emit only `@@` context + `-`/`+` change lines instead of large verbatim oldText blocks. Robust for multi-line/multi-file edits across all models. DeepSeek/GLM get steering to prefer it for non-trivial edits. |\n\n### Prompt caching\n\nBoth supported families use **automatic prefix caching** — no explicit\n`cache_control` field is sent (Zhipu actively rejects it with a 400, and Pi\ncore's zai compat leaves it off). The cache is keyed on the byte-stable\n**system prompt + conversation history**:\n\n- **DeepSeek V4** — exact prefix cache.\n- **GLM** (GLM-4.5–5.3) — Z.ai automatic content-similarity cache\n  ([docs](https://docs.z.ai/guides/capabilities/cache)); reported via\n  `usage.prompt_tokens_details.cached_tokens`, which Pi core maps to\n  `usage.cacheRead`.\n\nThe extension keeps that prefix byte-identical across turns so the cache stays\nwarm for both families:\n\n- **Reasoning strip** (on by default) — replaces accumulated `reasoning_content`\n  with `\"\"` on prior assistant turns, removing non-deterministic bytes that grow\n  the prefix differently each turn (the biggest single cache-stability factor;\n  GLM's docs note history length affects the hit rate).\n- **Dynamic guidance → user-message tail** — first-tool hints, error notes, and\n  periodic reinforcement are appended to the *current* user message (the request\n  tail), never the system prompt (the cache head).\n- **Leaked-content cleaning** (always on) — strips `Reasoning:` headers and\n  `` `tool_name(args)` `` prose, keeping formatting stable (GLM's docs note\n  formatting differences affect the hit rate).\n\n`/model-tools-status` reports the session hit rate\n(`input`/`cached`/`written` tokens + `hitTurns`/`missTurns`) for whichever\nfamily is active.\n\n### GLM via the Anthropic endpoint (ZCode parity)\n\nZCode (Z.ai's desktop agent) reaches GLM-5.x through the **Anthropic Messages\nAPI** (`https://api.z.ai/api/anthropic`), not the OpenAI-compatible\n`/api/coding/paas/v4` endpoint that Pi's built-in `zai`/`zai-coding-cn`\nproviders use. The Anthropic surface has three levers the OpenAI surface lacks:\nexplicit prompt caching (`cache_control` markers), a fast serving tier\n(`speed: \"fast\"`), and effort-based reasoning (`output_config.effort`). This\nextension registers a `zai-anthropic` provider using it — measured live:\nprompt re-reads drop from 675 → 35 input tokens (cache_read 640), and fast mode\nstreamed 63.5 tok/s vs 38.6 standard.\n\nSetup:\n\n```bash\nexport ZAI_ANTHROPIC_API_KEY=<your Z.ai coding-plan key>   # or /login zai-anthropic\n```\n\nThen pick `zai-anthropic/glm-5.3` (or `glm-5.3-flash` — vision-capable — or\n`glm-5-turbo`) in `/model`. The provider registers unconditionally — the key\nresolves from auth.json (`/login zai-anthropic`) or the env var at request\ntime. Other plan endpoints: `ZAI_ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic`\n(BigModel plan), `https://zcode.z.ai/api/v1/ultra-zai/anthropic` (ZCode ultra\nroute), or `https://zcode.z.ai/api/v1/zcode-plan/anthropic` (ZCode Start Plan JWT).\n\n#### ZCode parity mode (Client-Signing V4) — on by default\n\nEvery `zai-anthropic` request carries ZCode desktop parity by default: ZCode\nidentity headers (`User-Agent: ZCode/…`, `X-Device-Mid`, `X-Title`, …), a\nstable `X-Session-Id`, and per-request **Ed25519 signatures + proof-of-work**\n(`X-Client-*` headers) exactly as ZCode 3.9+ sends them. The signing key is\nprovisioned by Z.ai's handshake to your own two-part coding-plan key — no\nseparate login. Fail-open everywhere: gate off/unreachable, handshake\nfailure, or a legacy single-part key simply sends unsigned. Set\n`ZAI_ANTHROPIC_SIGNING=0` to disable.\n\nFor the full ZCode route also point the endpoint at the server-mapped ultra\nupstream (this is the URL the server's `agent/configs` mapping hands ZCode\ntoday):\n\n```bash\nexport ZAI_ANTHROPIC_BASE_URL=https://zcode.z.ai/api/v1/ultra-zai/anthropic\n```\n\nSigning is harmless on the default `api.z.ai` route too (the server ignores\n`X-Client-*` there). Ported from TriDefender/zcode-api (MIT).\n\n| Variable | Default | Purpose |\n|----------|---------|----------|\n| `ZAI_ANTHROPIC_API_KEY` | unset | Z.ai coding-plan key; always visible, enter via `/login zai-anthropic` or env |\n| `ZAI_ANTHROPIC_BASE_URL` | `https://api.z.ai/api/anthropic` | Anthropic-compatible endpoint |\n| `ZAI_ANTHROPIC_SPEED` | `fast` | `standard` to disable the fast serving tier (on pay-per-token plans fast ≈ 6× input price) |\n| `ZAI_ANTHROPIC_SIGNING` | **on** | ZCode parity: identity headers + Client-Signing V4 (Ed25519+PoW) on every request. `0` to disable |\n| `ZAI_ANTHROPIC_MIN_INTERVAL_MS` | `1000` | Cross-process dispatch gate (Z.ai 429/1302 request-rate limit): minimum spacing between request starts across all Pi processes on this machine. `0` disables |\n\nNote: `reasoning strip`/`reasoning_content` handling applies only to the OpenAI\npath — on the Anthropic surface thinking arrives as native thinking blocks and\nPi replays them correctly. No-code alternative on the existing OpenAI path:\n`zai-coding-cn/glm-5.3-highspeed` (plan-included speed variant).\n\n### DeepSeek V4 only (verbose steering the Flash model needs)\n\n| Feature | What it does |\n|---------|-------------|\n| **Selection guidance** | Injects a first-tool quick-map (intent → tool) via `before_agent_start` to raise first-tool accuracy. Static per session (depends only on the active-tool set), so it stays in the system prompt without hurting the cache. |\n| **ds-anchor (v4-pro)** | **Minimal-mode two-phase bootstrap.** Request #1 of a `deepseek-v4-pro` session replaces the system prompt with the byte-identical DSH Minimal persona (`You are a helpful software engineer assistant.`) and exposes only `bash`+`str_replace_editor` (the real Minimal pair); after the first durable assistant message the session promotes to the full prompt + catalog + all guidance. See [DeepSeek v4 Pro minimal-mode anchor](#deepseek-v4-pro-minimal-mode-anchor). |\n| **Semantic-miss steering** | Blocks bash/grep for code symbols → suggests the right Serena tool instead |\n| **Strict Serena mode** | Optionally hard-blocks simple `bash` substitutes (`ls`, `grep`, `cat`, `find`, `head`, `tail`) for dedicated tools |\n| **Super Power Mode** | Prepends an unrestricted capability prompt each DeepSeek session (see below) |\n\n## Installation\n\n```bash\npi install npm:@bacnh85/pi-model-tools\n```\n\n## `apply_patch` — diff-based editing\n\n`apply_patch` is a Codex-style V4D patch tool. Instead of reproducing a large\nverbatim `oldText` block (where weaker models drift on indentation/quotes),\nyou emit only the changed lines plus a little surrounding context:\n\n```\n*** Begin Patch\n*** Update File: src/foo.ts\n@@ export function foo() {\n-  return 1;\n+  return 2;\n*** End Patch\n```\n\nRules:\n- `*** Add File: <path>` — one `+` line per content line (creates the file).\n- `*** Delete File: <path>` — no payload lines.\n- `*** Update File: <path>` — hunks; also `*** Update File: <old> → <new>` to rename.\n- Each Update hunk starts with a `@@ <unchanged context line>` anchor, then\n  `-` removed lines and `+` added lines. Leading-space context lines (` `) are\n  also accepted.\n- Context+removed must match **uniquely** in the file (diverges from Codex's\n  first-match for safety, matching `edit`'s philosophy). Add more context lines\n  if a match is ambiguous.\n- If the `@@` anchor text repeats as the immediately-following context or\n  removed line (common when models treat `@@` as a diff-style locator header),\n  the duplicate is auto-collapsed — only one occurrence is matched.\n- Matching is progressive-fuzzy (exact → strip-trailing-ws → strip-both-ws →\n  Unicode-normalize), so minor whitespace/Unicode differences still apply.\n\nDeepSeek and GLM are steered to prefer `apply_patch` for multi-line/multi-hunk\nedits; Claude/OpenAI keep using `edit` (they're already reliable with it).\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `/model-tools-status` | Shows detected family, repair counts, error history, prompt-cache stats (input/cached/written tokens + hit rate), and DeepSeek Super Power Mode + turn count |\n\n## Background long commands (OMP-style)\n\nThe bash tool always carries a static anti-poll clause: never wait by looping\n`sleep`/`ps`/`pgrep`/`top` — every poll is a full provider round (whole-context\nre-read). This alone measurably cuts cost in fully-autonomous runs (cron jobs,\nA2A tasks) where the model used to sit in poll loops.\n\nSet `PI_MODEL_TOOLS_BASH_AUTO_BG=1` to also enable the mechanism (oh-my-pi\n18.2.8 parity): a foreground call still running after\n`PI_MODEL_TOOLS_BASH_AUTO_BG_SECS` (default 120) returns a receipt immediately;\nthe command keeps running (nohup-like, survives turn abort), its output is\nteed to a temp log, and the result is delivered as a follow-up turn when it\nsettles. A caller-set `timeout` still applies as a total-runtime kill. At most\n4 jobs run concurrently — over that, calls stay foreground. `PI_MODEL_TOOLS_BASH_AUTO_BG` is read once at startup; the bash description switches to\nthe \"you will be woken — NEVER poll\" contract for the whole session.\n\n## Configuration\n\nAll toggles live under the `PI_MODEL_TOOLS_*` namespace.\n\n### Shared\n\n| Variable | Default | Purpose |\n|----------|---------|---------|\n| `PI_MODEL_TOOLS_REPAIR_ENABLED` | 1 | Tool argument repair (`0`/`off`/`false` to disable) |\n| `PI_MODEL_TOOLS_STRIP_REASONING` | 1 | Strip accumulated reasoning from prior turns (`0`/`off`/`false`/`no` to disable) |\n| `PI_MODEL_TOOLS_REASONING_MAX_CHARS` | unlimited | Truncate long reasoning fields to N characters |\n| `PI_MODEL_TOOLS_BLOCK_DANGEROUS_COMMANDS` | 1 | Safety guard (on by default) |\n| `PI_MODEL_TOOLS_AUTO_BLOCK_AFTER_REMINDERS` | 0 | Auto-block tool-selection misses after N reminders |\n| `PI_MODEL_TOOLS_NO_FIRST_TOOL_HINTS` | 0 | `1` disables the prompt-aware first-tool hints (bash-first / find-first / clone-first) — A/B testing knob |\n| `PI_MODEL_TOOLS_MAX_ERROR_HISTORY` | 100 | Maximum tracked tool errors |\n| `PI_MODEL_TOOLS_BASH_AUTO_BG` | 0 | Auto-background bash calls still running after the threshold; output delivered as a follow-up turn (`1`/`on` to enable) |\n| `PI_MODEL_TOOLS_BASH_AUTO_BG_SECS` | 120 | Foreground threshold in seconds before a bash call auto-backgrounds |\n| `PI_MODEL_TOOLS_DEBUG` | 0 | stderr diagnostic logging |\n| `PI_MODEL_TOOLS_LOG_FORMAT` | plain | `json` for structured log lines |\n\n### DeepSeek V4 only\n\n| Variable | Default | Purpose |\n|----------|---------|---------|\n| `PI_MODEL_TOOLS_SELECTION_GUIDANCE` | on | `0`/`off`/`false` to disable the compact first-tool routing table (DeepSeek V4 only) |\n| `PI_MODEL_TOOLS_STRICT_SERENA` | off | `1`/`on`/`true` to hard-block simple bash substitutes |\n| `PI_MODEL_TOOLS_SUPERPOWER_MODE` | off | `1`/`on`/`true` to enable Super Power Mode (off by default — the global AGENTS.md already enforces the same behavior, and the persona prompt adds permanent prefix-cache cost) |\n| `PI_MODEL_TOOLS_DS_ANCHOR` | on | `0`/`off`/`false` to disable the DeepSeek v4 Pro minimal-mode two-phase bootstrap |\n| `PI_MODEL_TOOLS_DS_ANCHOR_WE_NEED` | off | `1`/`on`/`true` to prepend the \"We need…\" thinking directive to the bootstrap prompt (A/B knob) |\n| `PI_MODEL_TOOLS_CUSTOM_SUPERPOWER_PROMPT` | unset | Custom Super Power prompt (overrides the built-in one) |\n\n> **Note:** The former `PI_DEEPSEEK_TOOLS_THINKING_BUDGET` toggle has been\n> removed. It was dead code (never wired into any hook). Pi 0.80.6+ manages\n> thinking natively via `thinkingLevelMap` (DeepSeek V4 supports `off`/`high`/`max`),\n> selected through Shift+Tab, `/settings`, or `--thinking`.\n\n## Super Power Mode\n\nOpt-in: set `PI_MODEL_TOOLS_SUPERPOWER_MODE=1` (for DeepSeek V4 sessions). It prepends an unrestricted\ncapability prompt at the top of the system prompt (before the selection\nguidance and the base prompt), removes content filters, and engages maximum\nreasoning effort. A light reinforcement is appended every 10 turns.\n\n```bash\n# Enable (off by default)\nexport PI_MODEL_TOOLS_SUPERPOWER_MODE=1\n\n# Use a custom prompt instead of the built-in one\nexport PI_MODEL_TOOLS_CUSTOM_SUPERPOWER_PROMPT=\"You are an elite coder. No limits.\"\n```\n\n`/model-tools-status` reports whether Super Power Mode is on, whether a custom\nprompt is in use, and the current turn count.\n\n## DeepSeek v4 Pro minimal-mode anchor\n\nCommunity finding (r/DeepSeek 1vovxxc, confirmed by DeepSeek staff): DeepSeek\nv4 Pro GA is overfitted to DeepSeek Harness (DSH) *minimal mode* — a one-line\nsystem prompt with only `bash` + an editor tool exposed. Sessions that start\nin that exact distribution consistently reach the model's benchmark-level\nperformance; sessions that start with a large harness prompt can degrade into\nloops.\n\n**How it works** (default on for model ids containing `deepseek-v4-pro`):\n\n1. **Bootstrap (request #1)** — the system prompt is replaced byte-identically\n   with `You are a helpful software engineer assistant.` and the provider\n   payload's tools are narrowed to the **real DSH Minimal pair**: `bash` +\n   `str_replace_editor` (a faithful port of DSH's view/create/str_replace/\n   insert editor, byte-identical name/schema/description). All other guidance\n   (Super Power, selection guidance, first-tool hints, steering) is suppressed\n   for this request. The dangerous-command guard stays active.\n2. **Promotion** — after the first durable assistant message (tool call or\ntext), the session promotes: full Pi system prompt, full tool catalog, and all\nexisting pi-model-tools guidance apply unchanged from request #2 on.\n\nThe tool pair is NOT arbitrary — it is the measured anchor lever\n(dsh-anchored-standard issue #11): the real Minimal schema\n(`bash`+`str_replace_editor`) produced `We need…` first lines **5/5**, while\n`pwsh`/`read` and `bash`/`read` substitutions produced standard-like `The\nuser…` first lines **11/11**. Earlier community ports used `bash`+`read`;\nthose do not anchor — a session whose first thinking starts with \"The user\nsays…\" instead of \"we need…\" is running a non-anchoring schema.\n\n**Semantics:**\n\n- Promotion is derived from durable session entries — resuming an\n  already-replied session is instantly promoted; forks re-derive from their own\n  entries (append-only).\n- `/model` switches to/from a pro model re-init correctly (a session switched\n  into pro after replies exist starts promoted — exact bootstrap experiments\n  need a fresh session).\n- Tools hallucinated during bootstrap (anything outside `bash`/`str_replace_editor`)\n  are blocked with a clear reason.\n- `str_replace_editor` is registered unconditionally (it is a generally useful\n  view/create/replace/insert editor, independent of the anchor) and stays in\n  the promoted catalog. If you don't want it, disable it per-session via\n  `/tools` — disabling the anchor does not remove it.\n- Everything fail-opens to the full catalog on surprise (no session access,\n  malformed payload, missing `bash`/`str_replace_editor`) with a one-time warning.\n- Recommend `/thinking max` — the community recipe pairs minimal mode with max\n  thinking for full effect.\n\n**Caveats:** other extensions that rewrite the system prompt or tool list after\nthis one break byte-identity of request #1 — load pi-model-tools **last** for\nexact anchoring (check `/model-tools-status` → `ds-anchor: bootstrapping` to\nconfirm it took). Proxy-rewritten sessions (requested as another model, served\nas `deepseek-v4-pro`) are handled: the target check runs per hook, so the\nbootstrap engages on the served model even when `model_select` never fires.\n\n**Verifying the bootstrap actually happened:** run `/model-tools-status` after\nthe first turn — the `ds-anchor trace` section shows the session's anchor\nactivity:\n\n```\nds-anchor (v4-pro): promoted\n\nds-anchor trace:\n  12:00:01 session_start: requested=deepseek-v4-pro → target\n  12:00:02 bootstrap: minimal prompt engaged (model=deepseek-v4-pro)\n  12:00:03 payload: tools=[bash,str_replace_editor] sent to deepseek-v4-pro\n  12:00:12 promoted: first durable assistant reply received\n```\n\nIf the trace shows `bootstrap: minimal prompt engaged` + `payload:\ntools=[bash,str_replace_editor]` on turn 1, the anchor reached the model. If\nthe thinking still doesn't start \"We need…\" with that confirmed, the served\nmodel route itself is the variable (different checkpoint/quantization than the\ncommunity benchmarked), not the anchor. With `PI_MODEL_TOOLS_DEBUG=1` the same\ndecisions also print to stderr with the exact system prompt + tool schemas.\n\n**A/B knob — the portable \"we need…\" directive:** the community's portable\nvariant adds an explicit thinking directive on top of the minimal prompt. It is\nNOT part of the byte-identical DSH recipe (which the 98/99 runs used without\nit), but on routes where the pure prompt doesn't reproduce the trajectory,\n`PI_MODEL_TOOLS_DS_ANCHOR_WE_NEED=1` prepends\n`When you think, start each thinking paragraph with \"We need…\".` to the\nbootstrap prompt. The trace shows `+we-need directive` when active.\n\n**Thinking level:** the recipe requires **max** thinking\n(`/thinking max`). `/model-tools-status` now shows the current level and flags\n`(recipe wants max)` when an anchored session is below max.\n\n**Output budget:** the bootstrap request pins `max_tokens: 256000` — the exact\nbudget in DSH's captured minimal-mode payload (issue #11 isolated the output\nbudget as a trajectory lever). The pin applies to request #1 only; promoted\nrequests revert to the model's configured budget. If the first thinking still\nreads standard-like with the pin in place, the served model route (checkpoint\nor quantization) is the remaining variable.\n\nDesign ported from [hank9999/pi-ds-anchored](https://github.com/hank9999/pi-ds-anchored)\n(MIT), from [xiaobright/dsh-anchored-standard](https://github.com/xiaobright/dsh-anchored-standard)\n(Project2 benchmark: 98/99).\n\n```bash\n# Disable (default on)\nexport PI_MODEL_TOOLS_DS_ANCHOR=0\n```\n\n## Development & Testing\n\n```bash\nnpm test        # unit tests\nnpm run typecheck\nnpm pack --dry-run\n```\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n|---------|-------|-----|\n| Guidance not injected | `PI_MODEL_TOOLS_SELECTION_GUIDANCE=0`, or model is not DeepSeek V4 | Verify model id contains `deepseek` and `v4` |\n| Reasoning 400 errors | Provider rejects accumulated reasoning fields | `PI_MODEL_TOOLS_STRIP_REASONING=1` |\n| Reasoning 400 only on long responses | Provider content-length limit | `PI_MODEL_TOOLS_REASONING_MAX_CHARS=4096` |\n| Excessive reminder messages | Model consistently mis-selects tools | `PI_MODEL_TOOLS_STRICT_SERENA=1` |\n| `/model-tools-status` not found | Extension not loaded | Check settings and run `/reload` |\n| Super Power prompt not injecting | `PI_MODEL_TOOLS_SUPERPOWER_MODE` not `1`/`on`/`true`, or model is not DeepSeek V4 | Set `=1` and verify the model id contains `deepseek` and `v4` |\n| Custom Super Power prompt not loading | `PI_MODEL_TOOLS_CUSTOM_SUPERPOWER_PROMPT` unset | Set the env var to your prompt text |\n| Old config ignored | Still using `PI_DEEPSEEK_TOOLS_*` / `PI_GLM_*` names | Rename to `PI_MODEL_TOOLS_*` (see tables above) |\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for release history.\n\n## Related\n\n- [pi-serena](https://github.com/bacnh85/pi-extensions/tree/main/pi-serena) — Serena semantic code tools (used by DeepSeek steering)\n","readmeFilename":"README.md"}