pybao-cli 1.4.81 → 1.4.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/REPL-KB5JZS6S.js +49 -0
- package/dist/{acp-YXMNP56B.js → acp-5G23YRZD.js} +79 -32
- package/dist/acp-5G23YRZD.js.map +7 -0
- package/dist/{agentsValidate-LQFWOCPZ.js → agentsValidate-Y3JGFZPX.js} +7 -7
- package/dist/ask-DNEJAFQM.js +143 -0
- package/dist/ask-DNEJAFQM.js.map +7 -0
- package/dist/{autoUpdater-DEH233RT.js → autoUpdater-NBXSZEKC.js} +3 -3
- package/dist/{chunk-MKNRYFQR.js → chunk-53LVQG4V.js} +6 -22
- package/dist/{chunk-MKNRYFQR.js.map → chunk-53LVQG4V.js.map} +3 -3
- package/dist/{chunk-KH3U5BR5.js → chunk-5KEKIQVC.js} +3 -3
- package/dist/{chunk-JVF6KNE3.js → chunk-5MEGIDN7.js} +1 -1
- package/dist/{chunk-2NFKKANF.js → chunk-5MZZCUQX.js} +2 -2
- package/dist/{chunk-HIZXCXUG.js → chunk-7UTUKVKM.js} +4 -4
- package/dist/{chunk-4NNDWUSZ.js → chunk-A5LLPMGS.js} +2 -2
- package/dist/{chunk-5KAIY3II.js → chunk-CFX5VEY5.js} +3 -3
- package/dist/{chunk-CLGB56HY.js → chunk-DHJEENK5.js} +36 -2
- package/dist/{chunk-CLGB56HY.js.map → chunk-DHJEENK5.js.map} +2 -2
- package/dist/{chunk-VW3NZKCP.js → chunk-EINLEUKA.js} +1 -1
- package/dist/{chunk-H44O47XJ.js → chunk-EUHKG6AJ.js} +11 -1
- package/dist/chunk-EUHKG6AJ.js.map +7 -0
- package/dist/chunk-F4AXICO7.js +28 -0
- package/dist/chunk-F4AXICO7.js.map +7 -0
- package/dist/{chunk-EYY3QDKX.js → chunk-FPCH7C5K.js} +2 -2
- package/dist/{chunk-FDGIVQNE.js → chunk-FQL6V43W.js} +1 -1
- package/dist/{chunk-BX6HNPWQ.js → chunk-FVR53MZY.js} +3 -3
- package/dist/{chunk-TVUG5GLX.js → chunk-GKBRHNMB.js} +383 -161
- package/dist/chunk-GKBRHNMB.js.map +7 -0
- package/dist/{chunk-CCF52HVZ.js → chunk-GRQ32HWG.js} +1 -1
- package/dist/{chunk-CCF52HVZ.js.map → chunk-GRQ32HWG.js.map} +1 -1
- package/dist/{chunk-4VUECEM6.js → chunk-IDJMJZP4.js} +2 -2
- package/dist/{chunk-4SWM6FWR.js → chunk-IIZXV4HL.js} +2 -2
- package/dist/{chunk-37ZXN5M4.js → chunk-KSCBNFN7.js} +1 -1
- package/dist/{chunk-AB3F7T5N.js → chunk-LIFJX3UL.js} +3 -3
- package/dist/{chunk-6XINCIUI.js → chunk-MBIKKOOW.js} +1 -1
- package/dist/{chunk-B3NR3UMC.js → chunk-MKSTJEGS.js} +4 -4
- package/dist/{chunk-Z73SPR4B.js → chunk-OCIKBYQ4.js} +3 -3
- package/dist/{chunk-BJMVIICS.js → chunk-OUOB2RBI.js} +4 -4
- package/dist/chunk-RMZABYAD.js +262 -0
- package/dist/chunk-RMZABYAD.js.map +7 -0
- package/dist/{chunk-HNHWG52B.js → chunk-SUHM4MYA.js} +1 -1
- package/dist/{chunk-GMKASRN7.js → chunk-TKPY5LGF.js} +1 -1
- package/dist/{chunk-PRRYL2E2.js → chunk-V37R5FE5.js} +16 -16
- package/dist/{chunk-UUS77RPP.js → chunk-VRRJXBF3.js} +1 -1
- package/dist/{chunk-7ANXEZRS.js → chunk-WGGELTRR.js} +3 -3
- package/dist/{chunk-ZE75JZFY.js → chunk-WSP4AYLZ.js} +3 -3
- package/dist/{chunk-GS4PRJHV.js → chunk-XHQMUJIS.js} +4 -4
- package/dist/chunk-XKYHFZEC.js +68 -0
- package/dist/chunk-XKYHFZEC.js.map +7 -0
- package/dist/{cli-VNT2RTPP.js → cli-7JVEUFE2.js} +399 -379
- package/dist/cli-7JVEUFE2.js.map +7 -0
- package/dist/commands-FPZREXUW.js +53 -0
- package/dist/{config-VK55G2IB.js → config-YGHZ7OZB.js} +4 -4
- package/dist/{context-QHTEENJ6.js → context-SNUVPSIW.js} +6 -6
- package/dist/conversationTracker-IXJWSKYY.js +17 -0
- package/dist/{customCommands-HRHE7ZIM.js → customCommands-2YZVCPNF.js} +4 -4
- package/dist/{env-GGYUE5V7.js → env-SPCTS7IU.js} +2 -2
- package/dist/{file-KHYC624L.js → file-MRX573XM.js} +4 -4
- package/dist/index.js +3 -3
- package/dist/{llm-A3S75CLF.js → llm-VAN6WS52.js} +32 -29
- package/dist/{llm-A3S75CLF.js.map → llm-VAN6WS52.js.map} +1 -1
- package/dist/{llmLazy-USVVGSVL.js → llmLazy-II5PXLQI.js} +1 -1
- package/dist/{loader-JPKYTFFC.js → loader-EV4REQWE.js} +4 -4
- package/dist/{lsp-B7QJVI2U.js → lsp-O2TLN3AD.js} +6 -6
- package/dist/{lspAnchor-JJJ2WKI7.js → lspAnchor-BLB7II5Y.js} +6 -6
- package/dist/{mcp-YOR7UMEZ.js → mcp-OJPHPVNM.js} +7 -7
- package/dist/{mentionProcessor-5CYA4NR4.js → mentionProcessor-BXCFLUXL.js} +5 -5
- package/dist/{messages-ICKAWGUW.js → messages-CUNARS37.js} +5 -1
- package/dist/{model-P33QONA2.js → model-OUTGOGMR.js} +5 -5
- package/dist/{openai-POLCH476.js → openai-WTOKA74W.js} +6 -5
- package/dist/{outputStyles-EZGCOEE2.js → outputStyles-K5O5RB33.js} +4 -4
- package/dist/{pluginRuntime-KJ3YFO2O.js → pluginRuntime-JEJXUSFZ.js} +6 -6
- package/dist/{pluginValidation-MR5GV7PL.js → pluginValidation-S4VSNYHJ.js} +6 -6
- package/dist/prompts-XUL3MGVE.js +55 -0
- package/dist/{pybAgentSessionLoad-TRSWA62U.js → pybAgentSessionLoad-I7MI2W5O.js} +4 -4
- package/dist/{pybAgentSessionResume-3IRNTCVI.js → pybAgentSessionResume-CMC5D4IX.js} +4 -4
- package/dist/{pybAgentStreamJsonSession-5IBYEXS5.js → pybAgentStreamJsonSession-FUT6NUZG.js} +3 -3
- package/dist/pybAgentStreamJsonSession-FUT6NUZG.js.map +7 -0
- package/dist/{pybHooks-HFAKEYDS.js → pybHooks-I4C2HCMR.js} +4 -4
- package/dist/query-HKFFVARD.js +57 -0
- package/dist/{registry-LOKL3JBE.js → registry-HA4GULY4.js} +5 -5
- package/dist/replSessionBridge-EBXNFUAD.js +10 -0
- package/dist/{ripgrep-X4LOQHA7.js → ripgrep-4F2VOLSN.js} +3 -3
- package/dist/{skillMarketplace-UITGQNZD.js → skillMarketplace-73JWYMAT.js} +3 -3
- package/dist/{state-I7LIGIFJ.js → state-WVRITIDZ.js} +2 -2
- package/dist/{theme-RVIXXPSQ.js → theme-BPZWU5M7.js} +5 -5
- package/dist/{toolPermissionSettings-TALALPH3.js → toolPermissionSettings-UOQTLVV5.js} +6 -6
- package/dist/toolPermissionSettings-UOQTLVV5.js.map +7 -0
- package/dist/tools-3OMW2SOR.js +54 -0
- package/dist/tools-3OMW2SOR.js.map +7 -0
- package/dist/{userInput-WFPUGJ4L.js → userInput-TQYQIWBV.js} +40 -36
- package/dist/userInput-TQYQIWBV.js.map +7 -0
- package/package.json +1 -1
- package/dist/REPL-WXPYXBW2.js +0 -46
- package/dist/acp-YXMNP56B.js.map +0 -7
- package/dist/ask-CUR6IJ2W.js +0 -129
- package/dist/ask-CUR6IJ2W.js.map +0 -7
- package/dist/chunk-H44O47XJ.js.map +0 -7
- package/dist/chunk-TVUG5GLX.js.map +0 -7
- package/dist/cli-VNT2RTPP.js.map +0 -7
- package/dist/commands-LAZD5O4M.js +0 -50
- package/dist/prompts-P4JU57HZ.js +0 -52
- package/dist/pybAgentStreamJsonSession-5IBYEXS5.js.map +0 -7
- package/dist/query-NHQFKSCC.js +0 -54
- package/dist/tools-HVGZBEHZ.js +0 -51
- package/dist/userInput-WFPUGJ4L.js.map +0 -7
- /package/dist/{REPL-WXPYXBW2.js.map → REPL-KB5JZS6S.js.map} +0 -0
- /package/dist/{agentsValidate-LQFWOCPZ.js.map → agentsValidate-Y3JGFZPX.js.map} +0 -0
- /package/dist/{autoUpdater-DEH233RT.js.map → autoUpdater-NBXSZEKC.js.map} +0 -0
- /package/dist/{chunk-KH3U5BR5.js.map → chunk-5KEKIQVC.js.map} +0 -0
- /package/dist/{chunk-JVF6KNE3.js.map → chunk-5MEGIDN7.js.map} +0 -0
- /package/dist/{chunk-2NFKKANF.js.map → chunk-5MZZCUQX.js.map} +0 -0
- /package/dist/{chunk-HIZXCXUG.js.map → chunk-7UTUKVKM.js.map} +0 -0
- /package/dist/{chunk-4NNDWUSZ.js.map → chunk-A5LLPMGS.js.map} +0 -0
- /package/dist/{chunk-5KAIY3II.js.map → chunk-CFX5VEY5.js.map} +0 -0
- /package/dist/{chunk-VW3NZKCP.js.map → chunk-EINLEUKA.js.map} +0 -0
- /package/dist/{chunk-EYY3QDKX.js.map → chunk-FPCH7C5K.js.map} +0 -0
- /package/dist/{chunk-FDGIVQNE.js.map → chunk-FQL6V43W.js.map} +0 -0
- /package/dist/{chunk-BX6HNPWQ.js.map → chunk-FVR53MZY.js.map} +0 -0
- /package/dist/{chunk-4VUECEM6.js.map → chunk-IDJMJZP4.js.map} +0 -0
- /package/dist/{chunk-4SWM6FWR.js.map → chunk-IIZXV4HL.js.map} +0 -0
- /package/dist/{chunk-37ZXN5M4.js.map → chunk-KSCBNFN7.js.map} +0 -0
- /package/dist/{chunk-AB3F7T5N.js.map → chunk-LIFJX3UL.js.map} +0 -0
- /package/dist/{chunk-6XINCIUI.js.map → chunk-MBIKKOOW.js.map} +0 -0
- /package/dist/{chunk-B3NR3UMC.js.map → chunk-MKSTJEGS.js.map} +0 -0
- /package/dist/{chunk-Z73SPR4B.js.map → chunk-OCIKBYQ4.js.map} +0 -0
- /package/dist/{chunk-BJMVIICS.js.map → chunk-OUOB2RBI.js.map} +0 -0
- /package/dist/{chunk-HNHWG52B.js.map → chunk-SUHM4MYA.js.map} +0 -0
- /package/dist/{chunk-GMKASRN7.js.map → chunk-TKPY5LGF.js.map} +0 -0
- /package/dist/{chunk-PRRYL2E2.js.map → chunk-V37R5FE5.js.map} +0 -0
- /package/dist/{chunk-UUS77RPP.js.map → chunk-VRRJXBF3.js.map} +0 -0
- /package/dist/{chunk-7ANXEZRS.js.map → chunk-WGGELTRR.js.map} +0 -0
- /package/dist/{chunk-ZE75JZFY.js.map → chunk-WSP4AYLZ.js.map} +0 -0
- /package/dist/{chunk-GS4PRJHV.js.map → chunk-XHQMUJIS.js.map} +0 -0
- /package/dist/{commands-LAZD5O4M.js.map → commands-FPZREXUW.js.map} +0 -0
- /package/dist/{config-VK55G2IB.js.map → config-YGHZ7OZB.js.map} +0 -0
- /package/dist/{context-QHTEENJ6.js.map → context-SNUVPSIW.js.map} +0 -0
- /package/dist/{customCommands-HRHE7ZIM.js.map → conversationTracker-IXJWSKYY.js.map} +0 -0
- /package/dist/{env-GGYUE5V7.js.map → customCommands-2YZVCPNF.js.map} +0 -0
- /package/dist/{file-KHYC624L.js.map → env-SPCTS7IU.js.map} +0 -0
- /package/dist/{llmLazy-USVVGSVL.js.map → file-MRX573XM.js.map} +0 -0
- /package/dist/{loader-JPKYTFFC.js.map → llmLazy-II5PXLQI.js.map} +0 -0
- /package/dist/{lsp-B7QJVI2U.js.map → loader-EV4REQWE.js.map} +0 -0
- /package/dist/{mcp-YOR7UMEZ.js.map → lsp-O2TLN3AD.js.map} +0 -0
- /package/dist/{lspAnchor-JJJ2WKI7.js.map → lspAnchor-BLB7II5Y.js.map} +0 -0
- /package/dist/{messages-ICKAWGUW.js.map → mcp-OJPHPVNM.js.map} +0 -0
- /package/dist/{mentionProcessor-5CYA4NR4.js.map → mentionProcessor-BXCFLUXL.js.map} +0 -0
- /package/dist/{model-P33QONA2.js.map → messages-CUNARS37.js.map} +0 -0
- /package/dist/{openai-POLCH476.js.map → model-OUTGOGMR.js.map} +0 -0
- /package/dist/{outputStyles-EZGCOEE2.js.map → openai-WTOKA74W.js.map} +0 -0
- /package/dist/{pluginValidation-MR5GV7PL.js.map → outputStyles-K5O5RB33.js.map} +0 -0
- /package/dist/{pluginRuntime-KJ3YFO2O.js.map → pluginRuntime-JEJXUSFZ.js.map} +0 -0
- /package/dist/{prompts-P4JU57HZ.js.map → pluginValidation-S4VSNYHJ.js.map} +0 -0
- /package/dist/{pybAgentSessionLoad-TRSWA62U.js.map → prompts-XUL3MGVE.js.map} +0 -0
- /package/dist/{pybAgentSessionResume-3IRNTCVI.js.map → pybAgentSessionLoad-I7MI2W5O.js.map} +0 -0
- /package/dist/{pybHooks-HFAKEYDS.js.map → pybAgentSessionResume-CMC5D4IX.js.map} +0 -0
- /package/dist/{query-NHQFKSCC.js.map → pybHooks-I4C2HCMR.js.map} +0 -0
- /package/dist/{registry-LOKL3JBE.js.map → query-HKFFVARD.js.map} +0 -0
- /package/dist/{ripgrep-X4LOQHA7.js.map → registry-HA4GULY4.js.map} +0 -0
- /package/dist/{skillMarketplace-UITGQNZD.js.map → replSessionBridge-EBXNFUAD.js.map} +0 -0
- /package/dist/{state-I7LIGIFJ.js.map → ripgrep-4F2VOLSN.js.map} +0 -0
- /package/dist/{theme-RVIXXPSQ.js.map → skillMarketplace-73JWYMAT.js.map} +0 -0
- /package/dist/{toolPermissionSettings-TALALPH3.js.map → state-WVRITIDZ.js.map} +0 -0
- /package/dist/{tools-HVGZBEHZ.js.map → theme-BPZWU5M7.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../package.json", "../src/constants/macros.ts"],
|
|
4
|
-
"sourcesContent": ["{\n \"name\": \"pybao-cli\",\n \"version\": \"1.4.
|
|
4
|
+
"sourcesContent": ["{\n \"name\": \"pybao-cli\",\n \"version\": \"1.4.83\",\n \"bin\": {\n \"pyb\": \"cli.js\",\n \"pyb-acp\": \"cli-acp.js\"\n },\n \"engines\": {\n \"node\": \">=20.18.1\"\n },\n \"main\": \"cli.js\",\n \"author\": \"PYB-XC\",\n \"license\": \"MIT\",\n \"description\": \"PYB-CLI - Minimal AI Agent with multi-model support and CLI interface\",\n \"keywords\": [\n \"ai\",\n \"agent\",\n \"minimal\",\n \"claude\"\n ],\n \"homepage\": \"https://github.com/pyb-xc/pyb-ts\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/pyb-xc/pyb-ts.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/pyb-xc/pyb-ts/issues\"\n },\n \"files\": [\n \"cli.js\",\n \"cli-acp.js\",\n \"yoga.wasm\",\n \"dist/**/*\",\n \"scripts/binary-utils.cjs\",\n \"scripts/cli-wrapper.cjs\",\n \"scripts/cli-acp-wrapper.cjs\",\n \"scripts/postinstall.js\",\n \".npmrc\",\n \"resources/**/*\"\n ],\n \"scripts\": {\n \"dev\": \"bun run ./src/entrypoints/cli.tsx --verbose\",\n \"build:npm\": \"bun scripts/build.mjs\",\n \"build\": \"npm run build:npm\",\n \"build:binary\": \"node scripts/build-binary.mjs\",\n \"build:native-lock\": \"node scripts/build-native-lock.mjs\",\n \"clean\": \"node scripts/clean.mjs\",\n \"prepublishOnly\": \"npm run build:npm && node scripts/prepublish-check.js\",\n \"postinstall\": \"node scripts/postinstall.js || true\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx,js,jsx,json}\\\" \\\"tests/**/*.{ts,tsx,js,jsx,json}\\\"\",\n \"lint\": \"eslint . --ext .ts,.tsx,.js --max-warnings 0\",\n \"lint:fix\": \"eslint . --ext .ts,.tsx,.js --fix\",\n \"test\": \"bun test\",\n \"test:unit\": \"bun test --preload ./tests/setup/native-lock-test-setup.ts tests/unit\",\n \"test:integration\": \"bun test tests/integration\",\n \"test:e2e\": \"bun test tests/e2e\",\n \"typecheck\": \"tsc --noEmit\",\n \"prepare\": \"bun run scripts/install-hooks.mjs\",\n \"sync:native-lock\": \"node scripts/sync-native-lock-versions.mjs\",\n \"publish:native-lock\": \"node scripts/publish-native-lock.mjs\",\n \"verify:native-lock\": \"node scripts/verify-native-lock.mjs\",\n \"publish:dev\": \"bun run scripts/publish-dev.js\",\n \"publish:release\": \"bun run scripts/publish-release.js\",\n \"bench:startup\": \"bun run scripts/bench-startup.mjs\",\n \"parity:reference\": \"bun run scripts/reference-parity-check.mjs\"\n },\n \"dependencies\": {\n \"@anthropic-ai/bedrock-sdk\": \"^0.12.6\",\n \"@anthropic-ai/sdk\": \"^0.39.0\",\n \"@anthropic-ai/vertex-sdk\": \"^0.7.0\",\n \"@astrojs/language-server\": \"2.16.2\",\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@commander-js/extra-typings\": \"^13.1.0\",\n \"@inkjs/ui\": \"^2.0.0\",\n \"@modelcontextprotocol/sdk\": \"^1.15.1\",\n \"@prisma/language-server\": \"31.3.4\",\n \"@types/lodash-es\": \"^4.17.12\",\n \"@types/react\": \"^19.1.8\",\n \"@vscode/ripgrep\": \"^1.17.0\",\n \"@vue/language-server\": \"3.2.2\",\n \"ajv\": \"^8.17.1\",\n \"ansi-escapes\": \"^7.0.0\",\n \"bash-language-server\": \"5.6.0\",\n \"chalk\": \"^5.4.1\",\n \"cli-highlight\": \"^2.1.11\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^13.1.0\",\n \"debug\": \"^4.4.1\",\n \"diff\": \"^7.0.0\",\n \"dockerfile-language-server-nodejs\": \"0.15.0\",\n \"dotenv\": \"^16.6.1\",\n \"env-paths\": \"^3.0.0\",\n \"fflate\": \"^0.8.2\",\n \"figures\": \"^6.1.0\",\n \"glob\": \"^11.0.3\",\n \"graphql-language-service-cli\": \"3.5.0\",\n \"gray-matter\": \"^4.0.3\",\n \"highlight.js\": \"^11.11.1\",\n \"ignore\": \"^7.0.5\",\n \"ink\": \"5.2.1\",\n \"ink-link\": \"^4.1.0\",\n \"ink-select-input\": \"^6.2.0\",\n \"ink-text-input\": \"^6.0.0\",\n \"intelephense\": \"1.16.3\",\n \"js-yaml\": \"^4.1.1\",\n \"lodash-es\": \"^4.17.21\",\n \"lru-cache\": \"^11.1.0\",\n \"marked\": \"^15.0.12\",\n \"minimatch\": \"^10.1.1\",\n \"nanoid\": \"^5.1.5\",\n \"node-html-parser\": \"^7.0.1\",\n \"openai\": \"4.104.0\",\n \"pyright\": \"1.1.408\",\n \"react\": \"18.3.1\",\n \"semver\": \"^7.7.2\",\n \"shell-quote\": \"1.8.3\",\n \"spawn-rx\": \"^5.1.2\",\n \"string-width\": \"^7.2.0\",\n \"strip-ansi\": \"^7.1.0\",\n \"svelte-language-server\": \"0.17.23\",\n \"tsx\": \"^4.20.3\",\n \"typescript-language-server\": \"5.1.3\",\n \"undici\": \"^7.11.0\",\n \"vscode-jsonrpc\": \"8.2.1\",\n \"vscode-langservers-extracted\": \"4.10.0\",\n \"web-tree-sitter\": \"0.25.10\",\n \"which\": \"^6.0.0\",\n \"wrap-ansi\": \"^9.0.0\",\n \"yaml-language-server\": \"1.19.2\",\n \"zod\": \"^3.25.76\",\n \"zod-to-json-schema\": \"^3.24.6\"\n },\n \"devDependencies\": {\n \"@types/bun\": \"latest\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/node\": \"^24.1.0\",\n \"@types/which\": \"^3.0.4\",\n \"@typescript-eslint/eslint-plugin\": \"^8.50.1\",\n \"@typescript-eslint/parser\": \"^8.50.1\",\n \"abort-controller\": \"3.0.0\",\n \"bun-types\": \"latest\",\n \"cheerio\": \"1.1.2\",\n \"esbuild\": \"^0.25.9\",\n \"eslint\": \"8.57.0\",\n \"eslint-plugin-react-hooks\": \"^7.0.1\",\n \"ink-testing-library\": \"4.0.0\",\n \"node-fetch\": \"3.3.2\",\n \"prettier\": \"^3.6.2\",\n \"react-devtools-core\": \"^7.0.1\",\n \"tree-sitter-bash\": \"0.25.1\",\n \"tree-sitter-c-sharp\": \"0.23.1\",\n \"tree-sitter-clojure\": \"0.4.0\",\n \"tree-sitter-cpp\": \"0.23.4\",\n \"tree-sitter-go\": \"0.25.0\",\n \"tree-sitter-haskell\": \"0.23.1\",\n \"tree-sitter-java\": \"0.23.5\",\n \"tree-sitter-julia\": \"0.23.1\",\n \"tree-sitter-nix\": \"0.0.2\",\n \"tree-sitter-ocaml\": \"0.24.2\",\n \"tree-sitter-python\": \"0.25.0\",\n \"tree-sitter-rust\": \"0.24.0\",\n \"tree-sitter-scala\": \"0.24.0\",\n \"tree-sitter-swift\": \"0.7.1\",\n \"tree-sitter-typescript\": \"0.23.2\",\n \"turndown\": \"7.2.2\",\n \"typescript\": \"^5.9.2\"\n },\n \"overrides\": {\n \"@aws-sdk/client-bedrock-runtime\": \"3.797.0\",\n \"@smithy/smithy-client\": \"2.5.1\",\n \"parse5-htmlparser2-tree-adapter\": \"6.0.1\"\n },\n \"optionalDependencies\": {\n \"@puyib-cli/lock-win32-x64-msvc\": \"1.4.55\",\n \"@puyib-cli/lock-win32-arm64-msvc\": \"1.4.56\",\n \"@puyib-cli/lock-linux-x64-gnu\": \"1.4.56\",\n \"@puyib-cli/lock-linux-x64-musl\": \"1.4.56\",\n \"@puyib-cli/lock-linux-arm64-gnu\": \"1.4.56\",\n \"@puyib-cli/lock-linux-armv7-gnueabihf\": \"1.4.56\",\n \"@puyib-cli/lock-darwin-x64\": \"1.4.56\",\n \"@puyib-cli/lock-darwin-arm64\": \"1.4.56\"\n },\n \"pybNativeLockPlatforms\": [\n \"win32-x64-msvc\",\n \"win32-arm64-msvc\",\n \"linux-x64-gnu\",\n \"linux-x64-musl\",\n \"linux-arm64-gnu\",\n \"linux-armv7-gnueabihf\",\n \"darwin-x64\",\n \"darwin-arm64\"\n ]\n}\n", "import pkg from '../../package.json'\n\nexport const MACRO = {\n VERSION: pkg.version,\n README_URL: 'https://github.com/pyb-xc/pyb-ts#readme',\n PACKAGE_URL: 'pybao-cli',\n ISSUES_EXPLAINER:\n 'report the issue at https://github.com/pyb-xc/pyb-ts/issues',\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
getSettingsFileCandidates,
|
|
8
8
|
loadSettingsWithLegacyFallback,
|
|
9
9
|
saveSettingsToPrimaryAndSyncLegacy
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-5MEGIDN7.js";
|
|
11
11
|
import {
|
|
12
12
|
getSessionPlugins
|
|
13
13
|
} from "./chunk-BJSWTHRM.js";
|
|
14
14
|
import {
|
|
15
15
|
getCwd,
|
|
16
16
|
getXdgConfigDir
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VRRJXBF3.js";
|
|
18
18
|
|
|
19
19
|
// src/services/ui/outputStyles.ts
|
|
20
20
|
import figures from "figures";
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
} from "./chunk-BJSWTHRM.js";
|
|
6
6
|
import {
|
|
7
7
|
debug
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MBIKKOOW.js";
|
|
9
9
|
import {
|
|
10
10
|
getCwd,
|
|
11
11
|
logError,
|
|
12
12
|
resolveXdgDataPath
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VRRJXBF3.js";
|
|
14
14
|
|
|
15
15
|
// src/services/plugins/customCommands.ts
|
|
16
16
|
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
PRODUCT_NAME,
|
|
5
5
|
execFileNoThrow,
|
|
6
6
|
logError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VRRJXBF3.js";
|
|
8
8
|
import {
|
|
9
9
|
MACRO
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GRQ32HWG.js";
|
|
11
11
|
|
|
12
12
|
// src/utils/session/autoUpdater.ts
|
|
13
13
|
async function getSemver() {
|
|
@@ -82,7 +82,7 @@ async function checkAndNotifyUpdate() {
|
|
|
82
82
|
const [
|
|
83
83
|
{ isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },
|
|
84
84
|
{ env }
|
|
85
|
-
] = await Promise.all([import("./config-
|
|
85
|
+
] = await Promise.all([import("./config-YGHZ7OZB.js"), import("./env-SPCTS7IU.js")]);
|
|
86
86
|
if (await isAutoUpdaterDisabled()) return;
|
|
87
87
|
if (await env.getIsDocker()) return;
|
|
88
88
|
if (!await env.hasInternetAccess()) return;
|
|
@@ -2,13 +2,13 @@ import { createRequire as __pybCreateRequire } from "node:module";
|
|
|
2
2
|
const require = __pybCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
ripGrepWithStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KSCBNFN7.js";
|
|
6
6
|
import {
|
|
7
7
|
getCurrentProjectConfig,
|
|
8
8
|
getGlobalConfig,
|
|
9
9
|
getOrCreateUserID,
|
|
10
10
|
saveCurrentProjectConfig
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WSP4AYLZ.js";
|
|
12
12
|
import {
|
|
13
13
|
SESSION_ID,
|
|
14
14
|
env,
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
getCwd,
|
|
17
17
|
isContextScanDisabled,
|
|
18
18
|
logError
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-VRRJXBF3.js";
|
|
20
20
|
import {
|
|
21
21
|
MACRO
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-GRQ32HWG.js";
|
|
23
23
|
import {
|
|
24
24
|
__require
|
|
25
25
|
} from "./chunk-I3J4JYES.js";
|
|
@@ -3,13 +3,13 @@ const require = __pybCreateRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
getGlobalConfig,
|
|
5
5
|
saveGlobalConfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WSP4AYLZ.js";
|
|
7
7
|
import {
|
|
8
8
|
debug
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MBIKKOOW.js";
|
|
10
10
|
import {
|
|
11
11
|
logError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VRRJXBF3.js";
|
|
13
13
|
|
|
14
14
|
// src/utils/model/index.ts
|
|
15
15
|
import { memoize } from "lodash-es";
|
|
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
|
|
|
3
3
|
|
|
4
4
|
// src/services/ai/llmLazy.ts
|
|
5
5
|
async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal, options) {
|
|
6
|
-
const { queryLLM: inner } = await import("./llm-
|
|
6
|
+
const { queryLLM: inner } = await import("./llm-VAN6WS52.js");
|
|
7
7
|
return inner(
|
|
8
8
|
messages,
|
|
9
9
|
systemPrompt,
|
|
@@ -14,15 +14,15 @@ async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal
|
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
16
|
async function queryQuick(args) {
|
|
17
|
-
const { queryQuick: inner } = await import("./llm-
|
|
17
|
+
const { queryQuick: inner } = await import("./llm-VAN6WS52.js");
|
|
18
18
|
return inner(args);
|
|
19
19
|
}
|
|
20
20
|
async function verifyApiKey(apiKey, baseURL, provider) {
|
|
21
|
-
const { verifyApiKey: inner } = await import("./llm-
|
|
21
|
+
const { verifyApiKey: inner } = await import("./llm-VAN6WS52.js");
|
|
22
22
|
return inner(apiKey, baseURL, provider);
|
|
23
23
|
}
|
|
24
24
|
async function fetchAnthropicModels(apiKey, baseURL) {
|
|
25
|
-
const { fetchAnthropicModels: inner } = await import("./llm-
|
|
25
|
+
const { fetchAnthropicModels: inner } = await import("./llm-VAN6WS52.js");
|
|
26
26
|
return inner(apiKey, baseURL);
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { createRequire as __pybCreateRequire } from "node:module";
|
|
2
|
+
const require = __pybCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
logError
|
|
5
|
+
} from "./chunk-VRRJXBF3.js";
|
|
6
|
+
|
|
7
|
+
// src/utils/session/conversationMessageState.ts
|
|
8
|
+
function mapFinishReason(rawReason) {
|
|
9
|
+
const reason = String(rawReason ?? "").trim().toLowerCase();
|
|
10
|
+
if (!reason) return "end_turn";
|
|
11
|
+
if (reason === "tool_use" || reason === "tool_calls") return "tool_calls";
|
|
12
|
+
if (reason === "max_tokens" || reason === "length") return "max_tokens";
|
|
13
|
+
if (reason === "pause_turn") return "pause_turn";
|
|
14
|
+
if (reason === "end_turn" || reason === "stop" || reason === "stop_sequence") {
|
|
15
|
+
return "end_turn";
|
|
16
|
+
}
|
|
17
|
+
return "end_turn";
|
|
18
|
+
}
|
|
19
|
+
function isFinishComplete(finish) {
|
|
20
|
+
return finish === "end_turn";
|
|
21
|
+
}
|
|
22
|
+
function isToolResultUserMessage(message) {
|
|
23
|
+
if (!Array.isArray(message.message.content)) return false;
|
|
24
|
+
return message.message.content.some(
|
|
25
|
+
(block) => block && typeof block === "object" && block.type === "tool_result"
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
function findNaturalUserMessageForParent(messages) {
|
|
29
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
30
|
+
const msg = messages[i];
|
|
31
|
+
if (!msg || msg.type !== "user") continue;
|
|
32
|
+
if (isToolResultUserMessage(msg)) continue;
|
|
33
|
+
return msg;
|
|
34
|
+
}
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
function appendFinishState(assistantMessage, state) {
|
|
38
|
+
return {
|
|
39
|
+
...assistantMessage,
|
|
40
|
+
finish: state.finish,
|
|
41
|
+
parentID: state.parentID,
|
|
42
|
+
...typeof state.completedAt === "number" ? { completedAt: state.completedAt } : {}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// src/utils/session/conversationPersistence.ts
|
|
47
|
+
import {
|
|
48
|
+
existsSync,
|
|
49
|
+
mkdirSync,
|
|
50
|
+
readFileSync,
|
|
51
|
+
renameSync,
|
|
52
|
+
unlinkSync,
|
|
53
|
+
writeFileSync
|
|
54
|
+
} from "fs";
|
|
55
|
+
import { join } from "path";
|
|
56
|
+
var PERSISTENCE_VERSION = 1;
|
|
57
|
+
function sanitizeSessionId(sessionId) {
|
|
58
|
+
return sessionId.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
59
|
+
}
|
|
60
|
+
function isValidPersistedCompletedQuery(value) {
|
|
61
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
62
|
+
const item = value;
|
|
63
|
+
return typeof item.queryId === "string" && typeof item.userMessageUUID === "string" && typeof item.userQuery === "string" && typeof item.summary === "string" && typeof item.completedAt === "number" && (item.finish === "end_turn" || item.finish === "tool_calls" || item.finish === "max_tokens" || item.finish === "pause_turn");
|
|
64
|
+
}
|
|
65
|
+
function isValidPersistedConversationState(value) {
|
|
66
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
67
|
+
const state = value;
|
|
68
|
+
return typeof state.version === "number" && typeof state.sessionId === "string" && Array.isArray(state.completedQueries) && state.completedQueries.every(isValidPersistedCompletedQuery) && typeof state.lastUpdatedAt === "number";
|
|
69
|
+
}
|
|
70
|
+
var FileSystemConversationPersistence = class {
|
|
71
|
+
constructor(baseDir) {
|
|
72
|
+
this.baseDir = baseDir;
|
|
73
|
+
}
|
|
74
|
+
getFilePath(sessionId) {
|
|
75
|
+
return join(this.baseDir, `${sanitizeSessionId(sessionId)}.json`);
|
|
76
|
+
}
|
|
77
|
+
saveSync(sessionId, state) {
|
|
78
|
+
const filePath = this.getFilePath(sessionId);
|
|
79
|
+
const tempPath = `${filePath}.tmp`;
|
|
80
|
+
try {
|
|
81
|
+
mkdirSync(this.baseDir, { recursive: true });
|
|
82
|
+
writeFileSync(tempPath, JSON.stringify(state, null, 2), "utf8");
|
|
83
|
+
renameSync(tempPath, filePath);
|
|
84
|
+
} catch (error) {
|
|
85
|
+
logError(error);
|
|
86
|
+
try {
|
|
87
|
+
if (existsSync(tempPath)) unlinkSync(tempPath);
|
|
88
|
+
} catch {
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
loadSync(sessionId) {
|
|
93
|
+
const filePath = this.getFilePath(sessionId);
|
|
94
|
+
if (!existsSync(filePath)) return null;
|
|
95
|
+
try {
|
|
96
|
+
const raw = readFileSync(filePath, "utf8");
|
|
97
|
+
const parsed = JSON.parse(raw);
|
|
98
|
+
if (!isValidPersistedConversationState(parsed)) return null;
|
|
99
|
+
return parsed;
|
|
100
|
+
} catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
clearSync(sessionId) {
|
|
105
|
+
const filePath = this.getFilePath(sessionId);
|
|
106
|
+
try {
|
|
107
|
+
if (existsSync(filePath)) unlinkSync(filePath);
|
|
108
|
+
} catch (error) {
|
|
109
|
+
logError(error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
// src/utils/session/conversationTracker.ts
|
|
115
|
+
function extractText(content) {
|
|
116
|
+
if (typeof content === "string") return content.trim();
|
|
117
|
+
if (!Array.isArray(content)) return "";
|
|
118
|
+
return content.filter((block) => block && typeof block === "object" && block.type === "text").map((block) => String(block.text ?? "").trim()).filter(Boolean).join("\n").trim();
|
|
119
|
+
}
|
|
120
|
+
function truncate(text, maxChars) {
|
|
121
|
+
if (text.length <= maxChars) return text;
|
|
122
|
+
return `${text.slice(0, Math.max(0, maxChars - 3))}...`;
|
|
123
|
+
}
|
|
124
|
+
var ConversationTracker = class {
|
|
125
|
+
completedQueries = /* @__PURE__ */ new Map();
|
|
126
|
+
currentQueryId = null;
|
|
127
|
+
persistence;
|
|
128
|
+
sessionId;
|
|
129
|
+
constructor(options) {
|
|
130
|
+
this.persistence = options?.persistence;
|
|
131
|
+
this.sessionId = options?.sessionId;
|
|
132
|
+
}
|
|
133
|
+
startQuery(queryId, userMessage) {
|
|
134
|
+
if (!queryId) return false;
|
|
135
|
+
if (isToolResultUserMessage(userMessage)) return false;
|
|
136
|
+
if (this.completedQueries.has(queryId)) return false;
|
|
137
|
+
if (this.currentQueryId === queryId) return true;
|
|
138
|
+
this.currentQueryId = queryId;
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
completeQuery(queryId, assistantMessage, userMessage) {
|
|
142
|
+
if (!queryId) return false;
|
|
143
|
+
if (this.completedQueries.has(queryId)) return false;
|
|
144
|
+
if (assistantMessage.finish !== "end_turn") return false;
|
|
145
|
+
if (assistantMessage.parentID !== userMessage.uuid) return false;
|
|
146
|
+
const userQuery = extractText(userMessage.message.content);
|
|
147
|
+
const summaryRaw = extractText(assistantMessage.message.content);
|
|
148
|
+
const completedAt = typeof assistantMessage.completedAt === "number" ? assistantMessage.completedAt : Date.now();
|
|
149
|
+
this.completedQueries.set(queryId, {
|
|
150
|
+
queryId,
|
|
151
|
+
userMessageUUID: userMessage.uuid,
|
|
152
|
+
userQuery,
|
|
153
|
+
summary: summaryRaw,
|
|
154
|
+
completedAt,
|
|
155
|
+
finish: assistantMessage.finish
|
|
156
|
+
});
|
|
157
|
+
if (this.currentQueryId === queryId) {
|
|
158
|
+
this.currentQueryId = null;
|
|
159
|
+
}
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
isQueryCompleted(queryId) {
|
|
163
|
+
return this.completedQueries.has(queryId);
|
|
164
|
+
}
|
|
165
|
+
getCurrentQueryId() {
|
|
166
|
+
return this.currentQueryId;
|
|
167
|
+
}
|
|
168
|
+
getCompletedQueries() {
|
|
169
|
+
return Array.from(this.completedQueries.values()).sort(
|
|
170
|
+
(a, b) => a.completedAt - b.completedAt
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
generateConversationSummary(options) {
|
|
174
|
+
const maxEntries = options?.maxEntries ?? 10;
|
|
175
|
+
const maxEntryChars = options?.maxEntryChars ?? 80;
|
|
176
|
+
const maxTotalChars = options?.maxTotalChars ?? 2e3;
|
|
177
|
+
const completed = this.getCompletedQueries();
|
|
178
|
+
if (completed.length === 0) return "";
|
|
179
|
+
const recent = completed.slice(-maxEntries);
|
|
180
|
+
const lines = recent.map((item) => {
|
|
181
|
+
const q = truncate(item.userQuery || "(\u7A7A\u95EE\u9898)", maxEntryChars);
|
|
182
|
+
const a = truncate(item.summary || "(\u7A7A\u56DE\u7B54)", maxEntryChars);
|
|
183
|
+
return `- Q: ${q}
|
|
184
|
+
A: ${a}`;
|
|
185
|
+
});
|
|
186
|
+
const body = `## \u5DF2\u5B8C\u6210\u95EE\u9898\u6458\u8981
|
|
187
|
+
${lines.join("\n")}`;
|
|
188
|
+
if (body.length <= maxTotalChars) return body;
|
|
189
|
+
return truncate(body, maxTotalChars);
|
|
190
|
+
}
|
|
191
|
+
persist() {
|
|
192
|
+
if (!this.persistence || !this.sessionId) return false;
|
|
193
|
+
try {
|
|
194
|
+
const state = {
|
|
195
|
+
version: PERSISTENCE_VERSION,
|
|
196
|
+
sessionId: this.sessionId,
|
|
197
|
+
completedQueries: this.getCompletedQueries().map((item) => ({
|
|
198
|
+
queryId: item.queryId,
|
|
199
|
+
userMessageUUID: item.userMessageUUID,
|
|
200
|
+
userQuery: item.userQuery,
|
|
201
|
+
summary: item.summary,
|
|
202
|
+
completedAt: item.completedAt,
|
|
203
|
+
finish: item.finish
|
|
204
|
+
})),
|
|
205
|
+
lastUpdatedAt: Date.now()
|
|
206
|
+
};
|
|
207
|
+
this.persistence.saveSync(this.sessionId, state);
|
|
208
|
+
return true;
|
|
209
|
+
} catch {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
restore() {
|
|
214
|
+
if (!this.persistence || !this.sessionId) return false;
|
|
215
|
+
try {
|
|
216
|
+
const state = this.persistence.loadSync(this.sessionId);
|
|
217
|
+
if (!state || state.version !== PERSISTENCE_VERSION) {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
this.completedQueries.clear();
|
|
221
|
+
const list = Array.isArray(state.completedQueries) ? state.completedQueries : [];
|
|
222
|
+
for (const item of list) {
|
|
223
|
+
const normalized = {
|
|
224
|
+
queryId: String(item.queryId),
|
|
225
|
+
userMessageUUID: String(item.userMessageUUID),
|
|
226
|
+
userQuery: String(item.userQuery ?? ""),
|
|
227
|
+
summary: String(item.summary ?? ""),
|
|
228
|
+
completedAt: Number(item.completedAt ?? Date.now()),
|
|
229
|
+
finish: item.finish
|
|
230
|
+
};
|
|
231
|
+
this.completedQueries.set(normalized.queryId, normalized);
|
|
232
|
+
}
|
|
233
|
+
this.currentQueryId = null;
|
|
234
|
+
return true;
|
|
235
|
+
} catch {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
reset() {
|
|
240
|
+
this.completedQueries.clear();
|
|
241
|
+
this.currentQueryId = null;
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
var conversationTracker = new ConversationTracker();
|
|
245
|
+
function getConversationTrackerForContext(context) {
|
|
246
|
+
return context?.conversationTracker ?? new ConversationTracker();
|
|
247
|
+
}
|
|
248
|
+
function resetConversationTrackerForTests() {
|
|
249
|
+
conversationTracker.reset();
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export {
|
|
253
|
+
mapFinishReason,
|
|
254
|
+
isFinishComplete,
|
|
255
|
+
findNaturalUserMessageForParent,
|
|
256
|
+
appendFinishState,
|
|
257
|
+
FileSystemConversationPersistence,
|
|
258
|
+
ConversationTracker,
|
|
259
|
+
conversationTracker,
|
|
260
|
+
getConversationTrackerForContext,
|
|
261
|
+
resetConversationTrackerForTests
|
|
262
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/session/conversationMessageState.ts", "../src/utils/session/conversationPersistence.ts", "../src/utils/session/conversationTracker.ts"],
|
|
4
|
+
"sourcesContent": ["import type { AssistantMessage, Message, UserMessage } from '@query'\n\nexport type ConversationFinishReason =\n | 'end_turn'\n | 'tool_calls'\n | 'max_tokens'\n | 'pause_turn'\n\nexport function mapFinishReason(rawReason?: string | null): ConversationFinishReason {\n const reason = String(rawReason ?? '')\n .trim()\n .toLowerCase()\n if (!reason) return 'end_turn'\n if (reason === 'tool_use' || reason === 'tool_calls') return 'tool_calls'\n if (reason === 'max_tokens' || reason === 'length') return 'max_tokens'\n if (reason === 'pause_turn') return 'pause_turn'\n if (reason === 'end_turn' || reason === 'stop' || reason === 'stop_sequence') {\n return 'end_turn'\n }\n return 'end_turn'\n}\n\nexport function isFinishComplete(finish: ConversationFinishReason): boolean {\n return finish === 'end_turn'\n}\n\nexport function isToolResultUserMessage(message: UserMessage): boolean {\n if (!Array.isArray(message.message.content)) return false\n return message.message.content.some(\n block => block && typeof block === 'object' && (block as any).type === 'tool_result',\n )\n}\n\nexport function findNaturalUserMessageForParent(\n messages: Message[],\n): UserMessage | undefined {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i]\n if (!msg || msg.type !== 'user') continue\n if (isToolResultUserMessage(msg)) continue\n return msg\n }\n return undefined\n}\n\nexport function appendFinishState(\n assistantMessage: AssistantMessage,\n state: {\n finish: ConversationFinishReason\n parentID: string\n completedAt?: number\n },\n): AssistantMessage {\n return {\n ...assistantMessage,\n finish: state.finish,\n parentID: state.parentID,\n ...(typeof state.completedAt === 'number'\n ? { completedAt: state.completedAt }\n : {}),\n }\n}\n\nexport function isCompactionMessage(message: Message): boolean {\n return (\n message.type === 'assistant' &&\n !!(message as AssistantMessage).compaction &&\n (message as AssistantMessage).compaction?.type === 'compaction'\n )\n}\n\nexport function getCompactedQueryIds(messages: Message[]): string[] {\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i]\n if (!isCompactionMessage(message)) continue\n const ids = (message as AssistantMessage).compaction?.compactedQueryIds\n if (Array.isArray(ids)) return ids\n }\n return []\n}\n", "import {\n existsSync,\n mkdirSync,\n readFileSync,\n renameSync,\n unlinkSync,\n writeFileSync,\n} from 'fs'\nimport { join } from 'path'\nimport { logError } from '@utils/log'\n\nexport const PERSISTENCE_VERSION = 1\n\nexport type PersistedCompletedQuery = {\n queryId: string\n userMessageUUID: string\n userQuery: string\n summary: string\n completedAt: number\n finish: 'end_turn' | 'tool_calls' | 'max_tokens' | 'pause_turn'\n}\n\nexport type PersistedConversationState = {\n version: number\n sessionId: string\n completedQueries: PersistedCompletedQuery[]\n lastUpdatedAt: number\n}\n\nexport interface ConversationPersistence {\n saveSync(sessionId: string, state: PersistedConversationState): void\n loadSync(sessionId: string): PersistedConversationState | null\n clearSync(sessionId: string): void\n}\n\nfunction sanitizeSessionId(sessionId: string): string {\n return sessionId.replace(/[^a-zA-Z0-9_-]/g, '_')\n}\n\nfunction isValidPersistedCompletedQuery(value: unknown): value is PersistedCompletedQuery {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false\n const item = value as PersistedCompletedQuery\n return (\n typeof item.queryId === 'string' &&\n typeof item.userMessageUUID === 'string' &&\n typeof item.userQuery === 'string' &&\n typeof item.summary === 'string' &&\n typeof item.completedAt === 'number' &&\n (item.finish === 'end_turn' ||\n item.finish === 'tool_calls' ||\n item.finish === 'max_tokens' ||\n item.finish === 'pause_turn')\n )\n}\n\nfunction isValidPersistedConversationState(\n value: unknown,\n): value is PersistedConversationState {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false\n const state = value as PersistedConversationState\n return (\n typeof state.version === 'number' &&\n typeof state.sessionId === 'string' &&\n Array.isArray(state.completedQueries) &&\n state.completedQueries.every(isValidPersistedCompletedQuery) &&\n typeof state.lastUpdatedAt === 'number'\n )\n}\n\nexport class FileSystemConversationPersistence implements ConversationPersistence {\n constructor(private readonly baseDir: string) {}\n\n private getFilePath(sessionId: string): string {\n return join(this.baseDir, `${sanitizeSessionId(sessionId)}.json`)\n }\n\n saveSync(sessionId: string, state: PersistedConversationState): void {\n const filePath = this.getFilePath(sessionId)\n const tempPath = `${filePath}.tmp`\n try {\n mkdirSync(this.baseDir, { recursive: true })\n writeFileSync(tempPath, JSON.stringify(state, null, 2), 'utf8')\n renameSync(tempPath, filePath)\n } catch (error) {\n logError(error)\n try {\n if (existsSync(tempPath)) unlinkSync(tempPath)\n } catch {}\n }\n }\n\n loadSync(sessionId: string): PersistedConversationState | null {\n const filePath = this.getFilePath(sessionId)\n if (!existsSync(filePath)) return null\n try {\n const raw = readFileSync(filePath, 'utf8')\n const parsed = JSON.parse(raw) as unknown\n if (!isValidPersistedConversationState(parsed)) return null\n return parsed\n } catch {\n return null\n }\n }\n\n clearSync(sessionId: string): void {\n const filePath = this.getFilePath(sessionId)\n try {\n if (existsSync(filePath)) unlinkSync(filePath)\n } catch (error) {\n logError(error)\n }\n }\n}\n", "import type { AssistantMessage, UserMessage } from '@query'\nimport { isToolResultUserMessage } from './conversationMessageState'\nimport {\n type ConversationPersistence,\n type PersistedCompletedQuery,\n type PersistedConversationState,\n PERSISTENCE_VERSION,\n} from './conversationPersistence'\n\nexport type CompletedQuery = {\n queryId: string\n userMessageUUID: string\n userQuery: string\n summary: string\n completedAt: number\n finish: 'end_turn' | 'tool_calls' | 'max_tokens' | 'pause_turn'\n}\n\ntype SummaryOptions = {\n maxEntries?: number\n maxEntryChars?: number\n maxTotalChars?: number\n}\n\nfunction extractText(content: unknown): string {\n if (typeof content === 'string') return content.trim()\n if (!Array.isArray(content)) return ''\n return content\n .filter(block => block && typeof block === 'object' && (block as any).type === 'text')\n .map(block => String((block as any).text ?? '').trim())\n .filter(Boolean)\n .join('\\n')\n .trim()\n}\n\nfunction truncate(text: string, maxChars: number): string {\n if (text.length <= maxChars) return text\n return `${text.slice(0, Math.max(0, maxChars - 3))}...`\n}\n\nexport class ConversationTracker {\n private completedQueries = new Map<string, CompletedQuery>()\n private currentQueryId: string | null = null\n private readonly persistence?: ConversationPersistence\n private readonly sessionId?: string\n\n constructor(options?: {\n persistence?: ConversationPersistence\n sessionId?: string\n }) {\n this.persistence = options?.persistence\n this.sessionId = options?.sessionId\n }\n\n startQuery(queryId: string, userMessage: UserMessage): boolean {\n if (!queryId) return false\n if (isToolResultUserMessage(userMessage)) return false\n if (this.completedQueries.has(queryId)) return false\n if (this.currentQueryId === queryId) return true\n this.currentQueryId = queryId\n return true\n }\n\n completeQuery(\n queryId: string,\n assistantMessage: AssistantMessage,\n userMessage: UserMessage,\n ): boolean {\n if (!queryId) return false\n if (this.completedQueries.has(queryId)) return false\n if (assistantMessage.finish !== 'end_turn') return false\n if (assistantMessage.parentID !== userMessage.uuid) return false\n\n const userQuery = extractText(userMessage.message.content)\n const summaryRaw = extractText(assistantMessage.message.content)\n const completedAt =\n typeof assistantMessage.completedAt === 'number'\n ? assistantMessage.completedAt\n : Date.now()\n\n this.completedQueries.set(queryId, {\n queryId,\n userMessageUUID: userMessage.uuid,\n userQuery,\n summary: summaryRaw,\n completedAt,\n finish: assistantMessage.finish,\n })\n if (this.currentQueryId === queryId) {\n this.currentQueryId = null\n }\n return true\n }\n\n isQueryCompleted(queryId: string): boolean {\n return this.completedQueries.has(queryId)\n }\n\n getCurrentQueryId(): string | null {\n return this.currentQueryId\n }\n\n getCompletedQueries(): CompletedQuery[] {\n return Array.from(this.completedQueries.values()).sort(\n (a, b) => a.completedAt - b.completedAt,\n )\n }\n\n generateConversationSummary(options?: SummaryOptions): string {\n const maxEntries = options?.maxEntries ?? 10\n const maxEntryChars = options?.maxEntryChars ?? 80\n const maxTotalChars = options?.maxTotalChars ?? 2000\n const completed = this.getCompletedQueries()\n if (completed.length === 0) return ''\n\n const recent = completed.slice(-maxEntries)\n const lines = recent.map(item => {\n const q = truncate(item.userQuery || '(\u7A7A\u95EE\u9898)', maxEntryChars)\n const a = truncate(item.summary || '(\u7A7A\u56DE\u7B54)', maxEntryChars)\n return `- Q: ${q}\\n A: ${a}`\n })\n const body = `## \u5DF2\u5B8C\u6210\u95EE\u9898\u6458\u8981\\n${lines.join('\\n')}`\n if (body.length <= maxTotalChars) return body\n return truncate(body, maxTotalChars)\n }\n\n persist(): boolean {\n if (!this.persistence || !this.sessionId) return false\n try {\n const state: PersistedConversationState = {\n version: PERSISTENCE_VERSION,\n sessionId: this.sessionId,\n completedQueries: this.getCompletedQueries().map(item => ({\n queryId: item.queryId,\n userMessageUUID: item.userMessageUUID,\n userQuery: item.userQuery,\n summary: item.summary,\n completedAt: item.completedAt,\n finish: item.finish,\n })),\n lastUpdatedAt: Date.now(),\n }\n this.persistence.saveSync(this.sessionId, state)\n return true\n } catch {\n return false\n }\n }\n\n restore(): boolean {\n if (!this.persistence || !this.sessionId) return false\n try {\n const state = this.persistence.loadSync(this.sessionId)\n if (!state || state.version !== PERSISTENCE_VERSION) {\n return false\n }\n this.completedQueries.clear()\n const list = Array.isArray(state.completedQueries)\n ? state.completedQueries\n : []\n for (const item of list) {\n const normalized: CompletedQuery = {\n queryId: String(item.queryId),\n userMessageUUID: String(item.userMessageUUID),\n userQuery: String(item.userQuery ?? ''),\n summary: String(item.summary ?? ''),\n completedAt: Number(item.completedAt ?? Date.now()),\n finish: item.finish as PersistedCompletedQuery['finish'],\n }\n this.completedQueries.set(normalized.queryId, normalized)\n }\n this.currentQueryId = null\n return true\n } catch {\n return false\n }\n }\n\n reset(): void {\n this.completedQueries.clear()\n this.currentQueryId = null\n }\n}\n\nexport const conversationTracker = new ConversationTracker()\n\nexport function getConversationTrackerForContext(context?: {\n conversationTracker?: ConversationTracker\n}): ConversationTracker {\n return context?.conversationTracker ?? new ConversationTracker()\n}\n\nexport function resetConversationTrackerForTests(): void {\n conversationTracker.reset()\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -33,57 +33,57 @@ import {
|
|
|
33
33
|
runWithTaskListEnv,
|
|
34
34
|
runWithTaskListId,
|
|
35
35
|
updateTask
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-GKBRHNMB.js";
|
|
37
37
|
import {
|
|
38
38
|
queryLLM
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-OUOB2RBI.js";
|
|
40
40
|
import {
|
|
41
41
|
FallbackToolUseRejectedMessage,
|
|
42
42
|
MCPTool,
|
|
43
43
|
getClients,
|
|
44
44
|
getMCPTools
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-7UTUKVKM.js";
|
|
46
46
|
import {
|
|
47
47
|
emitReminderEvent
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-5MZZCUQX.js";
|
|
49
49
|
import {
|
|
50
50
|
getActiveAgents,
|
|
51
51
|
getAgentByType,
|
|
52
52
|
getAvailableAgentTypes
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-DHJEENK5.js";
|
|
54
54
|
import {
|
|
55
55
|
INTERRUPT_MESSAGE,
|
|
56
56
|
createAssistantMessage,
|
|
57
57
|
createUserMessage,
|
|
58
58
|
getLastAssistantMessageId
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-EUHKG6AJ.js";
|
|
60
60
|
import {
|
|
61
61
|
formatDuration,
|
|
62
62
|
formatNumber
|
|
63
63
|
} from "./chunk-OUXHGDLH.js";
|
|
64
64
|
import {
|
|
65
65
|
getAbsolutePath
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-FPCH7C5K.js";
|
|
67
67
|
import {
|
|
68
68
|
LspFacade,
|
|
69
69
|
formatDiagnosticsPretty
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-XHQMUJIS.js";
|
|
71
71
|
import {
|
|
72
72
|
getModelManager
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-OCIKBYQ4.js";
|
|
74
74
|
import {
|
|
75
75
|
getContext
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-MKSTJEGS.js";
|
|
77
77
|
import {
|
|
78
78
|
filesToTree,
|
|
79
79
|
ripGrepWithStatus
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-KSCBNFN7.js";
|
|
81
81
|
import {
|
|
82
82
|
getTheme
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-TKPY5LGF.js";
|
|
84
84
|
import {
|
|
85
85
|
debug
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-MBIKKOOW.js";
|
|
87
87
|
import {
|
|
88
88
|
BunShell,
|
|
89
89
|
getCwd,
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
overwriteLog,
|
|
95
95
|
readTaskOutput,
|
|
96
96
|
resolveXdgDataPath
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-VRRJXBF3.js";
|
|
98
98
|
|
|
99
99
|
// src/tools/index.ts
|
|
100
100
|
import { memoize as memoize2 } from "lodash-es";
|
|
@@ -773,7 +773,7 @@ async function analyzeOutputWithLsp(output, exitCode) {
|
|
|
773
773
|
if (exitCode !== 0 || errorCount > 0 || warningCount > 0) {
|
|
774
774
|
try {
|
|
775
775
|
const { isAbsolute: isAbsolute3, resolve: resolve4 } = await import("path");
|
|
776
|
-
const { getSessionRoot: getSessionRoot2 } = await import("./state-
|
|
776
|
+
const { getSessionRoot: getSessionRoot2 } = await import("./state-WVRITIDZ.js");
|
|
777
777
|
const lines = output.split("\n");
|
|
778
778
|
const uniqueFiles = /* @__PURE__ */ new Set();
|
|
779
779
|
const lspSuggestions = [];
|
|
@@ -1146,7 +1146,7 @@ var DeleteTool = {
|
|
|
1146
1146
|
}
|
|
1147
1147
|
if (!force) {
|
|
1148
1148
|
try {
|
|
1149
|
-
const { LspFacade: LspFacade2 } = await import("./lsp-
|
|
1149
|
+
const { LspFacade: LspFacade2 } = await import("./lsp-O2TLN3AD.js");
|
|
1150
1150
|
const referenceDetail = await LspFacade2.checkFileReferences(fullPath);
|
|
1151
1151
|
if (referenceDetail) {
|
|
1152
1152
|
failedItems.push(
|