{"_id":"@bestzyq/reasonix","_rev":"6-c55e0bc384c3329264959f05988786ca","name":"@bestzyq/reasonix","dist-tags":{"latest":"0.54.2"},"versions":{"0.52.0":{"name":"@bestzyq/reasonix","version":"0.52.0","keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"author":{"name":"esengine"},"license":"MIT","_id":"@bestzyq/reasonix@0.52.0","maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"bin":{"dsnix":"dist/cli/index.js","reasonix":"dist/cli/index.js"},"dist":{"shasum":"b4df0f8834ff2fdedb2179801f7be0099d3778ae","tarball":"https://registry.npmjs.org/@bestzyq/reasonix/-/reasonix-0.52.0.tgz","fileCount":365,"integrity":"sha512-vPhUjwBI1witTeNPoSuOAavewY4ELSIXDJUE/5LzcdCQsIPfTpxV1nVdACzOzmOd0spgKuKpe5D8iG7SS0EN6Q==","signatures":[{"sig":"MEQCIAKSj0J7l0HcoL024PHElYuiyfvp4kmRLSbsHGi+O5SSAiAxtUJT+OwSy5yquHS+AC4KhLwRAPhbXpP5mNeZog3qRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48910859},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6d3175ab19b9d02801e142fa509b87b41fd82a5f","scripts":{"dev":"tsx src/cli/index.ts","chat":"tsx src/cli/index.ts chat","lint":"biome check src tests","test":"vitest run","build":"npm run build:dashboard && tsup && node scripts/copy-dashboard-vendor-css.mjs && node scripts/copy-tree-sitter-grammars.mjs","format":"biome format --write src tests","verify":"npm run build && npm run lint && npm run typecheck && npm run test --silent","prepare":"simple-git-hooks || true","lint:fix":"biome check --write src tests","pitch:pdf":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pdf --allow-local-files","typecheck":"tsc --noEmit && tsc --noEmit -p dashboard","pitch:html":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.html --allow-local-files","pitch:pptx":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pptx --allow-local-files","test:watch":"vitest","pitch:watch":"npx -y @marp-team/marp-cli pitch/pitch.md --preview --watch --allow-local-files","postinstall":"node scripts/postinstall.mjs","test:coverage":"vitest run --coverage","test:mutation":"stryker run","prepublishOnly":"npm run lint && npm run typecheck && npm run build","build:dashboard":"npm --prefix dashboard run build"},"_npmUser":{"name":"bestzyq","email":"jsbyzyq@gmail.com"},"repository":{"url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.3","description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ws":"^8.20.1","zod":"^4.4.1","chalk":"^5.3.0","react":"^19.2.6","grammy":"^1.43.0","ignore":"^7.0.5","qrcode":"^1.5.4","semver":"^7.6.3","undici":"^8.2.0","bidi-js":"^1.0.3","auto-bind":"^5.0.1","cli-boxes":"^4.0.1","commander":"^12.1.0","lodash-es":"^4.17.21","picomatch":"^4.0.4","wrap-ansi":"^9.0.0","iconv-lite":"^0.7.2","slice-ansi":"^7.1.0","strip-ansi":"^7.1.0","emoji-regex":"^10.4.0","signal-exit":"^4.1.0","stack-utils":"^2.0.6","usehooks-ts":"^3.1.0","yoga-layout":"^3.2.1","code-excerpt":"^4.0.0","string-width":"^7.2.0","cli-highlight":"^2.1.11","indent-string":"^5.0.0","web-tree-sitter":"^0.26.9","node-html-parser":"^7.1.0","react-reconciler":"^0.32.0","eventsource-parser":"^3.0.0","supports-hyperlinks":"^4.0.0","get-east-asian-width":"^1.3.0","@alcalzone/ansi-tokenize":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.2","tsup":"^8.3.5","jsdom":"^29.1.1","uplot":"^1.6.31","marked":"^15.0.12","preact":"^10.22.0","vitest":"^2.1.5","esbuild":"^0.21.5","@types/ws":"^8.18.1","strip-ansi":"^7.1.0","typescript":"^5.6.3","@types/node":"^22.9.0","@types/react":"^19.2.14","highlight.js":"^11.10.0","@types/qrcode":"^1.5.6","@biomejs/biome":"^1.9.4","tree-sitter-go":"^0.25.0","@types/picomatch":"^4.0.3","simple-git-hooks":"^2.13.1","tree-sitter-java":"^0.23.5","tree-sitter-rust":"^0.24.0","tree-sitter-python":"^0.25.0","@vitest/coverage-v8":"^2.1.5","ink-testing-library":"^4.0.0","react-test-renderer":"^19.2.6","@stryker-mutator/core":"^9.6.1","@testing-library/react":"^16.3.2","tree-sitter-javascript":"^0.25.0","tree-sitter-typescript":"^0.23.2","@stryker-mutator/vitest-runner":"^9.6.1"},"simple-git-hooks":{"pre-push":"npm run verify","pre-commit":"npm run lint"},"_npmOperationalInternal":{"tmp":"tmp/reasonix_0.52.0_1781607165591_0.9015384031613118","host":"s3://npm-registry-packages-npm-production"}},"0.52.4":{"name":"@bestzyq/reasonix","version":"0.52.4","keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"author":{"name":"esengine"},"license":"MIT","_id":"@bestzyq/reasonix@0.52.4","maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"bin":{"dsnix":"dist/cli/index.js","reasonix":"dist/cli/index.js"},"dist":{"shasum":"b01a6042de0af71290007d19081941eb8c599ed3","tarball":"https://registry.npmjs.org/@bestzyq/reasonix/-/reasonix-0.52.4.tgz","fileCount":365,"integrity":"sha512-t2uSQHHu+Sm3JfeElmW2cByQ5NQAyoXpxmve6+X8eQCeTDrSCGKK0Qu9R74ikBv4pBvWuhe9v9OEmMjsc7Ejvw==","signatures":[{"sig":"MEUCIF8/H90BlOXWkakZmaetWv77JBrfll8YtXRiudQbQYIjAiEA0g3EX6yWsuyilWF/XNg1ww7v1ik0USA7iI1I+bH+oHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48910859},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6d3175ab19b9d02801e142fa509b87b41fd82a5f","scripts":{"dev":"tsx src/cli/index.ts","chat":"tsx src/cli/index.ts chat","lint":"biome check src tests","test":"vitest run","build":"npm run build:dashboard && tsup && node scripts/copy-dashboard-vendor-css.mjs && node scripts/copy-tree-sitter-grammars.mjs","format":"biome format --write src tests","verify":"npm run build && npm run lint && npm run typecheck && npm run test --silent","prepare":"simple-git-hooks || true","lint:fix":"biome check --write src tests","pitch:pdf":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pdf --allow-local-files","typecheck":"tsc --noEmit && tsc --noEmit -p dashboard","pitch:html":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.html --allow-local-files","pitch:pptx":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pptx --allow-local-files","test:watch":"vitest","pitch:watch":"npx -y @marp-team/marp-cli pitch/pitch.md --preview --watch --allow-local-files","postinstall":"node scripts/postinstall.mjs","test:coverage":"vitest run --coverage","test:mutation":"stryker run","prepublishOnly":"npm run lint && npm run typecheck && npm run build","build:dashboard":"npm --prefix dashboard run build"},"_npmUser":{"name":"bestzyq","email":"jsbyzyq@gmail.com"},"repository":{"url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.3","description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ws":"^8.20.1","zod":"^4.4.1","chalk":"^5.3.0","react":"^19.2.6","grammy":"^1.43.0","ignore":"^7.0.5","qrcode":"^1.5.4","semver":"^7.6.3","undici":"^8.2.0","bidi-js":"^1.0.3","auto-bind":"^5.0.1","cli-boxes":"^4.0.1","commander":"^12.1.0","lodash-es":"^4.17.21","picomatch":"^4.0.4","wrap-ansi":"^9.0.0","iconv-lite":"^0.7.2","slice-ansi":"^7.1.0","strip-ansi":"^7.1.0","emoji-regex":"^10.4.0","signal-exit":"^4.1.0","stack-utils":"^2.0.6","usehooks-ts":"^3.1.0","yoga-layout":"^3.2.1","code-excerpt":"^4.0.0","string-width":"^7.2.0","cli-highlight":"^2.1.11","indent-string":"^5.0.0","web-tree-sitter":"^0.26.9","node-html-parser":"^7.1.0","react-reconciler":"^0.32.0","eventsource-parser":"^3.0.0","supports-hyperlinks":"^4.0.0","get-east-asian-width":"^1.3.0","@alcalzone/ansi-tokenize":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.2","tsup":"^8.3.5","jsdom":"^29.1.1","uplot":"^1.6.31","marked":"^15.0.12","preact":"^10.22.0","vitest":"^2.1.5","esbuild":"^0.21.5","@types/ws":"^8.18.1","strip-ansi":"^7.1.0","typescript":"^5.6.3","@types/node":"^22.9.0","@types/react":"^19.2.14","highlight.js":"^11.10.0","@types/qrcode":"^1.5.6","@biomejs/biome":"^1.9.4","tree-sitter-go":"^0.25.0","@types/picomatch":"^4.0.3","simple-git-hooks":"^2.13.1","tree-sitter-java":"^0.23.5","tree-sitter-rust":"^0.24.0","tree-sitter-python":"^0.25.0","@vitest/coverage-v8":"^2.1.5","ink-testing-library":"^4.0.0","react-test-renderer":"^19.2.6","@stryker-mutator/core":"^9.6.1","@testing-library/react":"^16.3.2","tree-sitter-javascript":"^0.25.0","tree-sitter-typescript":"^0.23.2","@stryker-mutator/vitest-runner":"^9.6.1"},"simple-git-hooks":{"pre-push":"npm run verify","pre-commit":"npm run lint"},"_npmOperationalInternal":{"tmp":"tmp/reasonix_0.52.4_1781607232902_0.5760643972724742","host":"s3://npm-registry-packages-npm-production"}},"0.53.1":{"name":"@bestzyq/reasonix","version":"0.53.1","keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"author":{"name":"esengine"},"license":"MIT","_id":"@bestzyq/reasonix@0.53.1","maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"bin":{"dsnix":"dist/cli/index.js","reasonix":"dist/cli/index.js"},"dist":{"shasum":"afb8bf1719f0ad17bfb3008165b7612cff79df54","tarball":"https://registry.npmjs.org/@bestzyq/reasonix/-/reasonix-0.53.1.tgz","fileCount":365,"integrity":"sha512-bZ/lCaiieFwEYhWCjDvemn5L3/X7JAnOla7PSyq5wPk6BG5SuFhRkEEA6JLmAVUGiPu7hUlL/Q2/UYy7Qqr7Lg==","signatures":[{"sig":"MEUCIGZQiy7m6HMvbvxxRa76WrqYpjbRhBlk/Jwgq6FSOdcWAiEAhmLEbrK+sKh0O6MudSgcxRlnai23xpIxJFkLzHraQqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48910694},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6d3175ab19b9d02801e142fa509b87b41fd82a5f","scripts":{"dev":"tsx src/cli/index.ts","chat":"tsx src/cli/index.ts chat","lint":"biome check src tests","test":"vitest run","build":"npm run build:dashboard && tsup && node scripts/copy-dashboard-vendor-css.mjs && node scripts/copy-tree-sitter-grammars.mjs","format":"biome format --write src tests","verify":"npm run build && npm run lint && npm run typecheck && npm run test --silent","prepare":"simple-git-hooks || true","lint:fix":"biome check --write src tests","pitch:pdf":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pdf --allow-local-files","typecheck":"tsc --noEmit && tsc --noEmit -p dashboard","pitch:html":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.html --allow-local-files","pitch:pptx":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pptx --allow-local-files","test:watch":"vitest","pitch:watch":"npx -y @marp-team/marp-cli pitch/pitch.md --preview --watch --allow-local-files","postinstall":"node scripts/postinstall.mjs","test:coverage":"vitest run --coverage","test:mutation":"stryker run","prepublishOnly":"npm run lint && npm run typecheck && npm run build","build:dashboard":"npm --prefix dashboard run build"},"_npmUser":{"name":"bestzyq","email":"jsbyzyq@gmail.com"},"repository":{"url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.2.5","description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"ws":"^8.20.1","zod":"^4.4.1","chalk":"^5.3.0","react":"^19.2.6","grammy":"^1.43.0","ignore":"^7.0.5","qrcode":"^1.5.4","semver":"^7.6.3","undici":"^8.2.0","bidi-js":"^1.0.3","auto-bind":"^5.0.1","cli-boxes":"^4.0.1","commander":"^12.1.0","lodash-es":"^4.17.21","picomatch":"^4.0.4","wrap-ansi":"^9.0.0","iconv-lite":"^0.7.2","slice-ansi":"^7.1.0","strip-ansi":"^7.1.0","emoji-regex":"^10.4.0","signal-exit":"^4.1.0","stack-utils":"^2.0.6","usehooks-ts":"^3.1.0","yoga-layout":"^3.2.1","code-excerpt":"^4.0.0","string-width":"^7.2.0","cli-highlight":"^2.1.11","indent-string":"^5.0.0","web-tree-sitter":"^0.26.9","node-html-parser":"^7.1.0","react-reconciler":"^0.32.0","eventsource-parser":"^3.0.0","supports-hyperlinks":"^4.0.0","get-east-asian-width":"^1.3.0","@alcalzone/ansi-tokenize":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.2","tsup":"^8.3.5","jsdom":"^29.1.1","uplot":"^1.6.31","marked":"^15.0.12","preact":"^10.22.0","vitest":"^2.1.5","esbuild":"^0.21.5","@types/ws":"^8.18.1","strip-ansi":"^7.1.0","typescript":"^5.6.3","@types/node":"^22.9.0","@types/react":"^19.2.14","highlight.js":"^11.10.0","@types/qrcode":"^1.5.6","@biomejs/biome":"^1.9.4","tree-sitter-go":"^0.25.0","@types/picomatch":"^4.0.3","simple-git-hooks":"^2.13.1","tree-sitter-java":"^0.23.5","tree-sitter-rust":"^0.24.0","tree-sitter-python":"^0.25.0","@vitest/coverage-v8":"^2.1.5","ink-testing-library":"^4.0.0","react-test-renderer":"^19.2.6","@stryker-mutator/core":"^9.6.1","@testing-library/react":"^16.3.2","tree-sitter-javascript":"^0.25.0","tree-sitter-typescript":"^0.23.2","@stryker-mutator/vitest-runner":"^9.6.1"},"simple-git-hooks":{"pre-push":"npm run verify","pre-commit":"npm run lint"},"_npmOperationalInternal":{"tmp":"tmp/reasonix_0.53.1_1781607719780_0.658036830438941","host":"s3://npm-registry-packages-npm-production"}},"0.54.0":{"name":"@bestzyq/reasonix","version":"0.54.0","keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"author":{"name":"esengine"},"license":"MIT","_id":"@bestzyq/reasonix@0.54.0","maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"bin":{"dsnix":"dist/cli/index.js","reasonix":"dist/cli/index.js"},"dist":{"shasum":"fa370da9bbe7e0b40cf5863ffc37d3593bfdd60a","tarball":"https://registry.npmjs.org/@bestzyq/reasonix/-/reasonix-0.54.0.tgz","fileCount":365,"integrity":"sha512-N2NXbvpjRKb3IQVpWO+S65RAmDpMJt52b972Kh2GAuMikTuvoTww+qROp1owBaNdOWHFYc6yQXYdeCAfcItGNQ==","signatures":[{"sig":"MEYCIQCW9aPr4LZYJ+kkKNsXNd0PxlVanISEjAjK8p7PqnpO4wIhAOzqRTxqO/+z+TusVelX6+X5nQLswzX5n+CqYLAkq209","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48912304},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"20f9c21870b0da0053d54c388c3bcdda20aa8228","scripts":{"dev":"tsx src/cli/index.ts","chat":"tsx src/cli/index.ts chat","lint":"biome check src tests","test":"vitest run","build":"npm run build:dashboard && tsup && node scripts/copy-dashboard-vendor-css.mjs && node scripts/copy-tree-sitter-grammars.mjs","format":"biome format --write src tests","verify":"npm run build && npm run lint && npm run typecheck && npm run test --silent","prepare":"simple-git-hooks || true","lint:fix":"biome check --write src tests","pitch:pdf":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pdf --allow-local-files","typecheck":"tsc --noEmit && tsc --noEmit -p dashboard","pitch:html":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.html --allow-local-files","pitch:pptx":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pptx --allow-local-files","test:watch":"vitest","pitch:watch":"npx -y @marp-team/marp-cli pitch/pitch.md --preview --watch --allow-local-files","postinstall":"node scripts/postinstall.mjs","test:coverage":"vitest run --coverage","test:mutation":"stryker run","prepublishOnly":"npm run lint && npm run typecheck && npm run build","build:dashboard":"npm --prefix dashboard run build"},"_npmUser":{"name":"bestzyq","email":"jsbyzyq@gmail.com"},"repository":{"url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.2.5","description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"ws":"^8.20.1","zod":"^4.4.1","chalk":"^5.3.0","react":"^19.2.6","grammy":"^1.43.0","ignore":"^7.0.5","qrcode":"^1.5.4","semver":"^7.6.3","undici":"^8.2.0","bidi-js":"^1.0.3","auto-bind":"^5.0.1","cli-boxes":"^4.0.1","commander":"^12.1.0","lodash-es":"^4.17.21","picomatch":"^4.0.4","wrap-ansi":"^9.0.0","iconv-lite":"^0.7.2","slice-ansi":"^7.1.0","strip-ansi":"^7.1.0","emoji-regex":"^10.4.0","signal-exit":"^4.1.0","stack-utils":"^2.0.6","usehooks-ts":"^3.1.0","yoga-layout":"^3.2.1","code-excerpt":"^4.0.0","string-width":"^7.2.0","cli-highlight":"^2.1.11","indent-string":"^5.0.0","web-tree-sitter":"^0.26.9","node-html-parser":"^7.1.0","react-reconciler":"^0.32.0","eventsource-parser":"^3.0.0","supports-hyperlinks":"^4.0.0","get-east-asian-width":"^1.3.0","@alcalzone/ansi-tokenize":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.2","tsup":"^8.3.5","jsdom":"^29.1.1","uplot":"^1.6.31","marked":"^15.0.12","preact":"^10.22.0","vitest":"^2.1.5","esbuild":"^0.21.5","@types/ws":"^8.18.1","strip-ansi":"^7.1.0","typescript":"^5.6.3","@types/node":"^22.9.0","@types/react":"^19.2.14","highlight.js":"^11.10.0","@types/qrcode":"^1.5.6","@biomejs/biome":"^1.9.4","tree-sitter-go":"^0.25.0","@types/picomatch":"^4.0.3","simple-git-hooks":"^2.13.1","tree-sitter-java":"^0.23.5","tree-sitter-rust":"^0.24.0","tree-sitter-python":"^0.25.0","@vitest/coverage-v8":"^2.1.5","ink-testing-library":"^4.0.0","react-test-renderer":"^19.2.6","@stryker-mutator/core":"^9.6.1","@testing-library/react":"^16.3.2","tree-sitter-javascript":"^0.25.0","tree-sitter-typescript":"^0.23.2","@stryker-mutator/vitest-runner":"^9.6.1"},"simple-git-hooks":{"pre-push":"npm run verify","pre-commit":"npm run lint"},"_npmOperationalInternal":{"tmp":"tmp/reasonix_0.54.0_1781610391317_0.6477836598546349","host":"s3://npm-registry-packages-npm-production"}},"0.54.1":{"name":"@bestzyq/reasonix","version":"0.54.1","keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"author":{"name":"esengine"},"license":"MIT","_id":"@bestzyq/reasonix@0.54.1","maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"bin":{"dsnix":"dist/cli/index.js","reasonix":"dist/cli/index.js"},"dist":{"shasum":"d2e102271cfc29e0cbc71c8e541c7be8d95f48d2","tarball":"https://registry.npmjs.org/@bestzyq/reasonix/-/reasonix-0.54.1.tgz","fileCount":365,"integrity":"sha512-D7EcdnFQcomXzM69GneumNYiAJ79441OsTODE86sU6pkos+JJuPCgnNhDybqKXVjeMzeUlbm/K3mmF56GkviAw==","signatures":[{"sig":"MEUCIHgeQVLPV3liEf+T9NbMIzxy0sjITzIr7Umy5ZAPKVo/AiEAgC2OcUtJWPxThI/nZhOHe3YI8g6nL1ZzcoGtM6+KDaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48912606},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e3b8293879882e05d4df6e886043b3bd2f33b9df","scripts":{"dev":"tsx src/cli/index.ts","chat":"tsx src/cli/index.ts chat","lint":"biome check src tests","test":"vitest run","build":"npm run build:dashboard && tsup && node scripts/copy-dashboard-vendor-css.mjs && node scripts/copy-tree-sitter-grammars.mjs","format":"biome format --write src tests","verify":"npm run build && npm run lint && npm run typecheck && npm run test --silent","prepare":"simple-git-hooks || true","lint:fix":"biome check --write src tests","pitch:pdf":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pdf --allow-local-files","typecheck":"tsc --noEmit && tsc --noEmit -p dashboard","pitch:html":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.html --allow-local-files","pitch:pptx":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pptx --allow-local-files","test:watch":"vitest","pitch:watch":"npx -y @marp-team/marp-cli pitch/pitch.md --preview --watch --allow-local-files","postinstall":"node scripts/postinstall.mjs","test:coverage":"vitest run --coverage","test:mutation":"stryker run","prepublishOnly":"npm run lint && npm run typecheck && npm run build","build:dashboard":"npm --prefix dashboard run build"},"_npmUser":{"name":"bestzyq","email":"jsbyzyq@gmail.com"},"repository":{"url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.2.5","description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"ws":"^8.20.1","zod":"^4.4.1","chalk":"^5.3.0","react":"^19.2.6","grammy":"^1.43.0","ignore":"^7.0.5","qrcode":"^1.5.4","semver":"^7.6.3","undici":"^8.2.0","bidi-js":"^1.0.3","auto-bind":"^5.0.1","cli-boxes":"^4.0.1","commander":"^12.1.0","lodash-es":"^4.17.21","picomatch":"^4.0.4","wrap-ansi":"^9.0.0","iconv-lite":"^0.7.2","slice-ansi":"^7.1.0","strip-ansi":"^7.1.0","emoji-regex":"^10.4.0","signal-exit":"^4.1.0","stack-utils":"^2.0.6","usehooks-ts":"^3.1.0","yoga-layout":"^3.2.1","code-excerpt":"^4.0.0","string-width":"^7.2.0","cli-highlight":"^2.1.11","indent-string":"^5.0.0","web-tree-sitter":"^0.26.9","node-html-parser":"^7.1.0","react-reconciler":"^0.32.0","eventsource-parser":"^3.0.0","supports-hyperlinks":"^4.0.0","get-east-asian-width":"^1.3.0","@alcalzone/ansi-tokenize":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"htm":"^3.1.1","tsx":"^4.19.2","tsup":"^8.3.5","jsdom":"^29.1.1","uplot":"^1.6.31","marked":"^15.0.12","preact":"^10.22.0","vitest":"^2.1.5","esbuild":"^0.21.5","@types/ws":"^8.18.1","strip-ansi":"^7.1.0","typescript":"^5.6.3","@types/node":"^22.9.0","@types/react":"^19.2.14","highlight.js":"^11.10.0","@types/qrcode":"^1.5.6","@biomejs/biome":"^1.9.4","tree-sitter-go":"^0.25.0","@types/picomatch":"^4.0.3","simple-git-hooks":"^2.13.1","tree-sitter-java":"^0.23.5","tree-sitter-rust":"^0.24.0","tree-sitter-python":"^0.25.0","@vitest/coverage-v8":"^2.1.5","ink-testing-library":"^4.0.0","react-test-renderer":"^19.2.6","@stryker-mutator/core":"^9.6.1","@testing-library/react":"^16.3.2","tree-sitter-javascript":"^0.25.0","tree-sitter-typescript":"^0.23.2","@stryker-mutator/vitest-runner":"^9.6.1"},"simple-git-hooks":{"pre-push":"npm run verify","pre-commit":"npm run lint"},"_npmOperationalInternal":{"tmp":"tmp/reasonix_0.54.1_1781617063575_0.7933721749138452","host":"s3://npm-registry-packages-npm-production"}},"0.54.2":{"name":"@bestzyq/reasonix","version":"0.54.2","description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","type":"module","bin":{"reasonix":"dist/cli/index.js","dsnix":"dist/cli/index.js"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"workspaces":["packages/*"],"scripts":{"postinstall":"node scripts/postinstall.mjs","build:dashboard":"npm --prefix dashboard run build","build":"npm run build:dashboard && tsup && node scripts/copy-dashboard-vendor-css.mjs && node scripts/copy-tree-sitter-grammars.mjs","dev":"tsx src/cli/index.ts","chat":"tsx src/cli/index.ts chat","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:mutation":"stryker run","lint":"biome check src tests","lint:fix":"biome check --write src tests","format":"biome format --write src tests","typecheck":"tsc --noEmit && tsc --noEmit -p dashboard","verify":"npm run build && npm run lint && npm run typecheck && npm run test --silent","prepare":"simple-git-hooks || true","prepublishOnly":"npm run lint && npm run typecheck && npm run build","pitch:pptx":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pptx --allow-local-files","pitch:pdf":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.pdf --allow-local-files","pitch:html":"npx -y @marp-team/marp-cli pitch/pitch.md -o pitch/dist/pitch.html --allow-local-files","pitch:watch":"npx -y @marp-team/marp-cli pitch/pitch.md --preview --watch --allow-local-files"},"simple-git-hooks":{"pre-commit":"npm run lint","pre-push":"npm run verify"},"keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"author":{"name":"esengine"},"license":"MIT","repository":{"type":"git","url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git"},"bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","engines":{"node":">=22"},"dependencies":{"@alcalzone/ansi-tokenize":"^0.3.0","auto-bind":"^5.0.1","bidi-js":"^1.0.3","chalk":"^5.3.0","cli-boxes":"^4.0.1","cli-highlight":"^2.1.11","code-excerpt":"^4.0.0","commander":"^12.1.0","emoji-regex":"^10.4.0","eventsource-parser":"^3.0.0","get-east-asian-width":"^1.3.0","grammy":"^1.43.0","iconv-lite":"^0.7.2","ignore":"^7.0.5","indent-string":"^5.0.0","lodash-es":"^4.17.21","node-html-parser":"^7.1.0","picomatch":"^4.0.4","qrcode":"^1.5.4","react":"^19.2.6","react-reconciler":"^0.32.0","semver":"^7.6.3","signal-exit":"^4.1.0","slice-ansi":"^7.1.0","stack-utils":"^2.0.6","string-width":"^7.2.0","strip-ansi":"^7.1.0","supports-hyperlinks":"^4.0.0","undici":"^8.2.0","usehooks-ts":"^3.1.0","web-tree-sitter":"^0.26.9","wrap-ansi":"^9.0.0","ws":"^8.20.1","yoga-layout":"^3.2.1","zod":"^4.4.1"},"devDependencies":{"@biomejs/biome":"^1.9.4","@stryker-mutator/core":"^9.6.1","@stryker-mutator/vitest-runner":"^9.6.1","@testing-library/react":"^16.3.2","@types/node":"^22.9.0","@types/picomatch":"^4.0.3","@types/qrcode":"^1.5.6","@types/react":"^19.2.14","@types/ws":"^8.18.1","@vitest/coverage-v8":"^2.1.5","esbuild":"^0.21.5","highlight.js":"^11.10.0","htm":"^3.1.1","ink-testing-library":"^4.0.0","jsdom":"^29.1.1","marked":"^15.0.12","preact":"^10.22.0","react-test-renderer":"^19.2.6","simple-git-hooks":"^2.13.1","strip-ansi":"^7.1.0","tree-sitter-go":"^0.25.0","tree-sitter-java":"^0.23.5","tree-sitter-javascript":"^0.25.0","tree-sitter-python":"^0.25.0","tree-sitter-rust":"^0.24.0","tree-sitter-typescript":"^0.23.2","tsup":"^8.3.5","tsx":"^4.19.2","typescript":"^5.6.3","uplot":"^1.6.31","vitest":"^2.1.5"},"_id":"@bestzyq/reasonix@0.54.2","gitHead":"d487dcc649c821dacb026286ecd5520ed54b1ca0","_nodeVersion":"20.15.1","_npmVersion":"10.2.5","dist":{"integrity":"sha512-9W/sPZvCxkC0F3RQIYfjT9gYuwKQD0Hj5/eqP0nswAHvJOKpiTe0OuMQjbE7joFSTpjU/vM00apmKoz9ME+C/Q==","shasum":"1aef0ff1d08640fbf61406458fdcb2087092ce38","tarball":"https://registry.npmjs.org/@bestzyq/reasonix/-/reasonix-0.54.2.tgz","fileCount":365,"unpackedSize":48912606,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC+BT6ngn7JtSoiAe+E659XojNCAsaWSW24Mn6SgrQ/oQIgawZCq/PW1G+4m/aOQGqzM9DRE343ryf1bimyubKCCfQ="}]},"_npmUser":{"name":"bestzyq","email":"jsbyzyq@gmail.com"},"directories":{},"maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reasonix_0.54.2_1781618068148_0.8472935535927257"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T10:52:45.398Z","modified":"2026-06-16T13:54:28.558Z","0.52.0":"2026-06-16T10:52:45.926Z","0.52.4":"2026-06-16T10:53:53.257Z","0.53.1":"2026-06-16T11:02:00.161Z","0.54.0":"2026-06-16T11:46:31.653Z","0.54.1":"2026-06-16T13:37:43.971Z","0.54.2":"2026-06-16T13:54:28.457Z"},"bugs":{"url":"https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues"},"author":{"name":"esengine"},"license":"MIT","homepage":"https://cnb.cool/bestzyq/DeepSeek-Reasonix#readme","keywords":["agent","llm","deepseek","r1","tool-use","prompt-cache","cli","tui"],"repository":{"type":"git","url":"git+https://cnb.cool/bestzyq/DeepSeek-Reasonix.git"},"description":"DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.","maintainers":[{"name":"bestzyq","email":"jsbyzyq@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"docs/logo.svg\" alt=\"Reasonix\" width=\"640\"/>\n</p>\n\n> [!NOTE]\n> **这是 [Reasonix](https://github.com/esengine/DeepSeek-Reasonix) 的 CNB 托管分支** —— 基于 [esengine](https://github.com/esengine) 原版代码，增加了 CNB 专用打包和制品库配置。原版仓库见 [esengine/DeepSeek-Reasonix](https://github.com/esengine/DeepSeek-Reasonix)。\n\n\n<p align=\"center\">\n  <a href=\"./README.md\">English</a>\n  &nbsp;·&nbsp;\n  <strong>简体中文</strong>\n  &nbsp;·&nbsp;\n  <a href=\"https://esengine.github.io/DeepSeek-Reasonix/\">官方网站</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh\">配置指南</a>\n  &nbsp;·&nbsp;\n  <a href=\"./docs/ARCHITECTURE.md\">架构文档</a>\n  &nbsp;·&nbsp;\n  <a href=\"./benchmarks/\">基准测试</a>\n  &nbsp;·&nbsp;\n  <strong><a href=\"https://discord.gg/XF78rEME2D\">Discord</a></strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/reasonix\"><img src=\"https://img.shields.io/npm/v/reasonix.svg?style=flat-square&color=cb3837&labelColor=161b22&logo=npm&logoColor=white\" alt=\"npm version\"/></a>\n  <a href=\"https://github.com/esengine/reasonix/actions/workflows/ci.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/esengine/reasonix/ci.yml?style=flat-square&label=ci&labelColor=161b22&logo=githubactions&logoColor=white\" alt=\"CI\"/></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/npm/l/reasonix.svg?style=flat-square&color=8b949e&labelColor=161b22\" alt=\"license\"/></a>\n  <a href=\"https://www.npmjs.com/package/reasonix\"><img src=\"https://img.shields.io/npm/dm/reasonix.svg?style=flat-square&color=3fb950&labelColor=161b22&label=downloads\" alt=\"downloads\"/></a>\n  <a href=\"./package.json\"><img src=\"https://img.shields.io/node/v/reasonix.svg?style=flat-square&color=5fa04e&labelColor=161b22&logo=nodedotjs&logoColor=white\" alt=\"node\"/></a>\n</p>\n\n<br/>\n\n<h3 align=\"center\">DeepSeek 原生的终端 AI 编程代理。</h3>\n<p align=\"center\">围绕前缀缓存稳定性设计 —— 长会话下 token 成本始终低位运行，可以一直开着。</p>\n\n<br/>\n\n<p align=\"center\">\n  <img src=\"docs/assets/hero-terminal.zh-CN.svg\" alt=\"Reasonix code 模式预览 — 助手提出 SEARCH/REPLACE 编辑，未 /apply 不落盘\" width=\"860\"/>\n</p>\n\n<br/>\n\n> [!TIP]\n> **缓存稳定不是开关，而是循环要围绕设计的不变量。** 这就是 Reasonix 只支持 DeepSeek 的根本原因 —— 每一层都为 DeepSeek 字节稳定的前缀缓存机制调过。\n\n> [!IMPORTANT]\n> **加入社区 · Community** — 中英双语 Discord，频道包括 `#求助` / `#help`、`#分享` / `#showcase`、`#想法反馈`、贡献者专属 PR 协调区。在群内绑定 GitHub 后自动识别贡献者身份。→ **<https://discord.gg/XF78rEME2D>**\n\n<br/>\n\n## 安装\n\n要求 Node ≥ 22。在 macOS · Linux · Windows（PowerShell · Git Bash · Windows Terminal）都跑得顺。\n\n### 安装\n\nReasonix 发布在 **npm** 上，直接安装即可：\n\n~~~bash\n# 全局安装 —— `reasonix` 命令直接可用\nnpm install -g @bestzyq/reasonix\nreasonix code my-project   # 首次运行粘贴 DeepSeek API Key，之后会记住\n\n# 或者不装，直接用 npx 跑一次\ncd my-project\nnpx @bestzyq/reasonix code          # 每次都拿最新版\n~~~\n\n| 命令 | 何时用 |\n|---|---|\n| `reasonix code [dir]` | 编码 agent。**先用这个。** |\n| `reasonix chat` | 纯聊天 —— 不挂文件系统 / shell 工具。 |\n| `reasonix run \"task\"` | 一次性，结果流到 stdout。适合 shell 管道。 |\n| `reasonix doctor` | 体检：Node 版本、API Key、MCP 接线。 |\n| `reasonix update` | 升级 Reasonix 本身。 |\n\n其他子命令（`replay` · `diff` · `events` · `stats` · `index` · `mcp` · `prune-sessions`）在 `reasonix --help` 和 [CLI 参考](https://esengine.github.io/DeepSeek-Reasonix/#cli)。\n\n### QQ 通道\n\nReasonix 可以把现有的 `chat`、`code` 或桌面端会话延伸到 QQ 上，作为远程通道使用；它扩展的是当前会话，不是独立的新运行模式。\n\n- CLI：先启动会话，再执行 `/qq connect`\n- 桌面端：打开 `设置 -> 通用 -> QQ通道`\n\n连接成功后，QQ 消息可以进入当前会话，助手回复会回到 QQ，后续确认和跟进交互也可以继续在 QQ 上完成。\n\n完整配置、桌面端快速上手与排障说明见：[QQ 连接指南](./docs/qq-connect.zh-CN.md)。\n\n<details>\n<summary><strong>切换工作区 · chat vs. code · 写第一个 Skill</strong></summary>\n\n**切换工作区。** Reasonix 把文件系统工具作用域绑定在启动目录，传 `--dir` 可以指别处。中途切换是有意不支持的（消息日志和 memory 路径会和旧根目录混在一起）—— 退出再启动。\n\n~~~bash\nnpx reasonix code --dir /path/to/project\n~~~\n\n**`chat` 还是 `code`？** `code` 是默认入口、唯一带文件系统 / shell 工具和 SEARCH/REPLACE 审阅的模式。`chat` 是更轻量的纯对话壳——想要一个挂着 MCP 但没有磁盘权限的“思路助手”时用它。\n\n| 你拿到什么 | `code` | `chat` |\n|---|---|---|\n| 文件系统工具 + `edit_file` | ✓ | — |\n| SEARCH/REPLACE → `/apply` 审阅 | ✓ | — |\n| Shell 工具（带 gate） | ✓ | — |\n| Plan 模式 · `/todo` · `/skill new` · `/mcp add` | ✓ | — |\n| Memory（`remember` / `recall_memory`） | 项目 + 全局 | 仅全局 |\n| 配置里的 MCP · web 搜索 · `ask_choice` | ✓ | ✓ |\n| 编码导向系统提示词 | ✓ | 通用 |\n| Session 作用域 | 按目录 | 共享默认 |\n\n**写第一个 Skill。** 暂无在线市场——自己写。编辑文件（`description:` frontmatter + 正文），然后 `/skill list` 就能看到。frontmatter 加 `runAs: subagent` 会以隔离 subagent 跑，而不是把正文内联进父 prompt。\n\n~~~bash\n/skill new my-skill              # <project>/.reasonix/skills/my-skill.md\n/skill new my-skill --global     # ~/.reasonix/skills，跨项目共用\n~~~\n\n</details>\n\n<br/>\n\n## 配置\n\n一个全局 JSON 文件 `~/.reasonix/config.json`，加上项目级 `<project>/.reasonix/` 下的覆盖。完整的双语参考 —— 每一个 key、每一条斜杠命令、skills / memory / hooks 在磁盘上的形状 —— 都在这里：\n\n> 📘 **[配置指南](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh)** · [English](https://esengine.github.io/DeepSeek-Reasonix/configuration.html)\n\n| 主题 | 速读 |\n|---|---|\n| [MCP 服务器](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#mcp) | stdio · SSE · Streamable HTTP。`config.json` 和 `--mcp` 共用同一种 spec 格式。 |\n| [Skills](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#skills) | 模型可以调用的 markdown 剧本。`inline` 或 `subagent` 两种模式。 |\n| [Memory](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#memory) | 用户私有的知识，钉进前缀。`user` / `feedback` / `project` / `reference` 四类。 |\n| [Hooks](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#hooks) | 生命周期事件触发的 shell 命令。`PreToolUse`（拦截）· `PostToolUse` · `UserPromptSubmit` · `Stop`。 |\n| [权限](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#permissions) | 按工作区的 shell 白名单，精确前缀匹配。 |\n| [Web 搜索](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#search) | 默认 Bing；可用 `/search-engine` 切到百度 AI Search、自托管 SearXNG、Metaso、Tavily、Perplexity、Exa、Brave 或 Ollama。 |\n| [语义索引](https://esengine.github.io/DeepSeek-Reasonix/configuration.html?lang=zh#index) | `reasonix index` —— 本地 Ollama，或任何 OpenAI 兼容的 embedding 接口。 |\n\n<br/>\n\n## Reasonix 的不同之处\n\n整个循环围绕三根支柱组织。每一根解决的都是通用 agent 框架根本看不见的问题 —— 因为它们是为另一种缓存机制设计的。\n\n<sub align=\"center\">\n\n各支柱完整说明 → [Pillar 1 — 缓存优先循环](./docs/ARCHITECTURE.md#pillar-1--cache-first-loop) · [Pillar 2 — 工具调用修复](./docs/ARCHITECTURE.md#pillar-2--tool-call-repair) · [Pillar 3 — 成本控制](./docs/ARCHITECTURE.md#pillar-3--cost-control-v06)\n\n</sub>\n\n<br/>\n\n## 能力一览\n\n<p align=\"center\">\n  <img src=\"docs/assets/feature-grid.zh-CN.svg\" alt=\"Reasonix 能力一览 — cell-diff 渲染器、MCP、计划模式、权限、仪表盘、持久化会话、Hooks/Skills/Memory、语义检索、自动 checkpoint、/effort 旋钮、transcript 重放、事件日志\" width=\"880\"/>\n</p>\n\n<br/>\n\n## 横向对比\n\n|                            | Reasonix          | Claude Code       | Cursor              | Aider              |\n|----------------------------|-------------------|-------------------|---------------------|--------------------|\n| 后端                       | DeepSeek          | Anthropic         | OpenAI / Anthropic  | 任意（OpenRouter） |\n| 协议                       | **MIT**           | 闭源              | 闭源                | Apache 2           |\n| 单任务成本                 | **低**            | 高                | 订阅 + 用量         | 不一               |\n| DeepSeek 前缀缓存          | **专门工程化**    | 不适用            | 不适用              | 偶发命中           |\n| 内嵌 web 仪表盘            | 支持              | —                 | 不适用 (IDE)        | —                  |\n| 持久化的工作区会话         | 支持              | 部分              | 不适用              | —                  |\n| 计划模式 · MCP · Hooks     | 支持              | 支持              | 支持                | 部分               |\n| 开放社区共建               | 支持              | —                 | —                   | 支持               |\n\n实测缓存命中率、成本、方法论看 [`benchmarks/`](./benchmarks/) —— 这些数会随模型定价变化，所以归在 harness 里，不进 README。\n\n<br/>\n\n## 文档\n\n- [**架构**](./docs/ARCHITECTURE.md) —— 四大支柱、缓存优先循环、思维提取、脚手架\n- [**CLI 参考**](./docs/CLI-REFERENCE.md) —— 每个 shell 子命令、每个 slash 命令、每个快捷键\n- [**QQ 连接指南**](./docs/qq-connect.zh-CN.md) —— CLI 首次连接流程、桌面端入口和 QQ 开放平台凭据\n- [**基准测试**](./benchmarks/) —— τ-bench-lite harness、transcript、成本方法论\n- [**官方网站**](https://esengine.github.io/DeepSeek-Reasonix/) —— 入门、Dashboard 设计稿、TUI 设计稿\n- [**贡献指南**](./AGENTS.md) —— 注释规则、错误处理、用现成库不手写\n- [**行为准则**](./CODE_OF_CONDUCT.md) · [**安全策略**](./SECURITY.md)\n\n<br/>\n\n## 社区\n\n> [!NOTE]\n> Reasonix 是开源、社区共建的项目。文末\"致谢\"那面贡献者墙上的每一个头像，都对应一次真实合并的 PR。\n\n给新手准备的入门 issue 见 [CNB Issues](https://cnb.cool/bestzyq/DeepSeek-Reasonix/-/issues)。\n\n**这是 CNB 分支**，原版讨论、Issue 和贡献见 [esengine/DeepSeek-Reasonix](https://github.com/esengine/DeepSeek-Reasonix)。\n\n<p align=\"center\">\n  <a href=\"https://github.com/esengine/reasonix/discussions/categories/show-and-tell\">\n    <img src=\"https://img.shields.io/badge/REASONIX-📣%20ADVOCATE-c4b5fd?style=for-the-badge&labelColor=0d1117\" alt=\"Reasonix Advocate 徽章 —— 授予持续参与传播的用户\"/>\n  </a>\n</p>\n\n**第一次提 PR 之前**：先读 [`AGENTS.md`](./AGENTS.md) —— 短小、严格的项目规则（注释、错误处理、用现成库不手写）。`tests/comment-policy.test.ts` 静态强制执行注释那部分，`npm run verify` 是 push 前的闸。参与本项目即同意 [行为准则](./CODE_OF_CONDUCT.md)。安全相关问题请走 [SECURITY.md](./SECURITY.md)。\n\n<br/>\n\n## 不做的事\n\n> [!IMPORTANT]\n> Reasonix 是有立场的。有些事它故意 *不做* —— 列在这里方便你为自己的工作挑对工具。\n\n- **多供应商灵活性。** 故意只做 DeepSeek。绑死一个后端是 feature，不是限制。\n- **IDE 集成。** 终端优先。diff 在 `git diff`，文件树在 `ls`。仪表盘是 TUI 的伴生，不是 Cursor 的替代。\n- **追最难的 reasoning 榜单。** Claude Opus 在某些榜单上还是赢家。DeepSeek 在编程任务上有竞争力；如果你的工作是\"解一个 PhD 级证明\"而不是\"修个 auth bug\"，先用 Claude。\n- **完全离线 / 永远免费。** Reasonix 需要付费的 DeepSeek API Key。要离线 / 零成本，看 Aider + Ollama 或 [Continue](https://continue.dev)。\n\n<br/>\n\n## 致谢\n\n下面这些朋友的工作塑造了 Reasonix 今天的样子 —— 综合 commit 数和代码量两个维度。\n**按字母顺序排列，排名不分先后。** 完整贡献者列表在\n[CNB](https://cnb.cool/bestzyq/DeepSeek-Reasonix/graphs/contributors)。\n\n- [**ctharvey**](https://github.com/ctharvey)\n- [**dimasd-angga**](https://github.com/dimasd-angga)（Dimas D. Angga）\n- [**Evan-Pycraft**](https://github.com/Evan-Pycraft)\n- [**ForeverYoungPp**](https://github.com/ForeverYoungPp)\n- [**GTC2080**](https://github.com/GTC2080)（TaoMu）\n- [**kabaka9527**](https://github.com/kabaka9527)\n- [**lisniuse**](https://github.com/lisniuse)（Richie）\n- [**wade19990814-hue**](https://github.com/wade19990814-hue)\n- [**wviana**](https://github.com/wviana)（Wesley Viana）\n\n另外特别感谢 [**Bernardxu123**](https://github.com/Bernardxu123) 设计的项目 logo\n（见 [`docs/brand/`](./docs/brand/)），以及 [AIGC Link](https://xhslink.com/m/80ngts127cA) 在小红书上的推广。\n\n<br/>\n\n---\n\n<p align=\"center\">\n  <sub>MIT —— 见 <a href=\"./LICENSE\">LICENSE</a></sub>\n  <br/>\n  <sub>社区共建。基于 <a href=\"https://github.com/esengine/DeepSeek-Reasonix\">esengine/DeepSeek-Reasonix</a></sub>\n</p>\n","readmeFilename":"README.zh-CN.md"}