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.
Files changed (163) hide show
  1. package/dist/REPL-KB5JZS6S.js +49 -0
  2. package/dist/{acp-YXMNP56B.js → acp-5G23YRZD.js} +79 -32
  3. package/dist/acp-5G23YRZD.js.map +7 -0
  4. package/dist/{agentsValidate-LQFWOCPZ.js → agentsValidate-Y3JGFZPX.js} +7 -7
  5. package/dist/ask-DNEJAFQM.js +143 -0
  6. package/dist/ask-DNEJAFQM.js.map +7 -0
  7. package/dist/{autoUpdater-DEH233RT.js → autoUpdater-NBXSZEKC.js} +3 -3
  8. package/dist/{chunk-MKNRYFQR.js → chunk-53LVQG4V.js} +6 -22
  9. package/dist/{chunk-MKNRYFQR.js.map → chunk-53LVQG4V.js.map} +3 -3
  10. package/dist/{chunk-KH3U5BR5.js → chunk-5KEKIQVC.js} +3 -3
  11. package/dist/{chunk-JVF6KNE3.js → chunk-5MEGIDN7.js} +1 -1
  12. package/dist/{chunk-2NFKKANF.js → chunk-5MZZCUQX.js} +2 -2
  13. package/dist/{chunk-HIZXCXUG.js → chunk-7UTUKVKM.js} +4 -4
  14. package/dist/{chunk-4NNDWUSZ.js → chunk-A5LLPMGS.js} +2 -2
  15. package/dist/{chunk-5KAIY3II.js → chunk-CFX5VEY5.js} +3 -3
  16. package/dist/{chunk-CLGB56HY.js → chunk-DHJEENK5.js} +36 -2
  17. package/dist/{chunk-CLGB56HY.js.map → chunk-DHJEENK5.js.map} +2 -2
  18. package/dist/{chunk-VW3NZKCP.js → chunk-EINLEUKA.js} +1 -1
  19. package/dist/{chunk-H44O47XJ.js → chunk-EUHKG6AJ.js} +11 -1
  20. package/dist/chunk-EUHKG6AJ.js.map +7 -0
  21. package/dist/chunk-F4AXICO7.js +28 -0
  22. package/dist/chunk-F4AXICO7.js.map +7 -0
  23. package/dist/{chunk-EYY3QDKX.js → chunk-FPCH7C5K.js} +2 -2
  24. package/dist/{chunk-FDGIVQNE.js → chunk-FQL6V43W.js} +1 -1
  25. package/dist/{chunk-BX6HNPWQ.js → chunk-FVR53MZY.js} +3 -3
  26. package/dist/{chunk-TVUG5GLX.js → chunk-GKBRHNMB.js} +383 -161
  27. package/dist/chunk-GKBRHNMB.js.map +7 -0
  28. package/dist/{chunk-CCF52HVZ.js → chunk-GRQ32HWG.js} +1 -1
  29. package/dist/{chunk-CCF52HVZ.js.map → chunk-GRQ32HWG.js.map} +1 -1
  30. package/dist/{chunk-4VUECEM6.js → chunk-IDJMJZP4.js} +2 -2
  31. package/dist/{chunk-4SWM6FWR.js → chunk-IIZXV4HL.js} +2 -2
  32. package/dist/{chunk-37ZXN5M4.js → chunk-KSCBNFN7.js} +1 -1
  33. package/dist/{chunk-AB3F7T5N.js → chunk-LIFJX3UL.js} +3 -3
  34. package/dist/{chunk-6XINCIUI.js → chunk-MBIKKOOW.js} +1 -1
  35. package/dist/{chunk-B3NR3UMC.js → chunk-MKSTJEGS.js} +4 -4
  36. package/dist/{chunk-Z73SPR4B.js → chunk-OCIKBYQ4.js} +3 -3
  37. package/dist/{chunk-BJMVIICS.js → chunk-OUOB2RBI.js} +4 -4
  38. package/dist/chunk-RMZABYAD.js +262 -0
  39. package/dist/chunk-RMZABYAD.js.map +7 -0
  40. package/dist/{chunk-HNHWG52B.js → chunk-SUHM4MYA.js} +1 -1
  41. package/dist/{chunk-GMKASRN7.js → chunk-TKPY5LGF.js} +1 -1
  42. package/dist/{chunk-PRRYL2E2.js → chunk-V37R5FE5.js} +16 -16
  43. package/dist/{chunk-UUS77RPP.js → chunk-VRRJXBF3.js} +1 -1
  44. package/dist/{chunk-7ANXEZRS.js → chunk-WGGELTRR.js} +3 -3
  45. package/dist/{chunk-ZE75JZFY.js → chunk-WSP4AYLZ.js} +3 -3
  46. package/dist/{chunk-GS4PRJHV.js → chunk-XHQMUJIS.js} +4 -4
  47. package/dist/chunk-XKYHFZEC.js +68 -0
  48. package/dist/chunk-XKYHFZEC.js.map +7 -0
  49. package/dist/{cli-VNT2RTPP.js → cli-7JVEUFE2.js} +399 -379
  50. package/dist/cli-7JVEUFE2.js.map +7 -0
  51. package/dist/commands-FPZREXUW.js +53 -0
  52. package/dist/{config-VK55G2IB.js → config-YGHZ7OZB.js} +4 -4
  53. package/dist/{context-QHTEENJ6.js → context-SNUVPSIW.js} +6 -6
  54. package/dist/conversationTracker-IXJWSKYY.js +17 -0
  55. package/dist/{customCommands-HRHE7ZIM.js → customCommands-2YZVCPNF.js} +4 -4
  56. package/dist/{env-GGYUE5V7.js → env-SPCTS7IU.js} +2 -2
  57. package/dist/{file-KHYC624L.js → file-MRX573XM.js} +4 -4
  58. package/dist/index.js +3 -3
  59. package/dist/{llm-A3S75CLF.js → llm-VAN6WS52.js} +32 -29
  60. package/dist/{llm-A3S75CLF.js.map → llm-VAN6WS52.js.map} +1 -1
  61. package/dist/{llmLazy-USVVGSVL.js → llmLazy-II5PXLQI.js} +1 -1
  62. package/dist/{loader-JPKYTFFC.js → loader-EV4REQWE.js} +4 -4
  63. package/dist/{lsp-B7QJVI2U.js → lsp-O2TLN3AD.js} +6 -6
  64. package/dist/{lspAnchor-JJJ2WKI7.js → lspAnchor-BLB7II5Y.js} +6 -6
  65. package/dist/{mcp-YOR7UMEZ.js → mcp-OJPHPVNM.js} +7 -7
  66. package/dist/{mentionProcessor-5CYA4NR4.js → mentionProcessor-BXCFLUXL.js} +5 -5
  67. package/dist/{messages-ICKAWGUW.js → messages-CUNARS37.js} +5 -1
  68. package/dist/{model-P33QONA2.js → model-OUTGOGMR.js} +5 -5
  69. package/dist/{openai-POLCH476.js → openai-WTOKA74W.js} +6 -5
  70. package/dist/{outputStyles-EZGCOEE2.js → outputStyles-K5O5RB33.js} +4 -4
  71. package/dist/{pluginRuntime-KJ3YFO2O.js → pluginRuntime-JEJXUSFZ.js} +6 -6
  72. package/dist/{pluginValidation-MR5GV7PL.js → pluginValidation-S4VSNYHJ.js} +6 -6
  73. package/dist/prompts-XUL3MGVE.js +55 -0
  74. package/dist/{pybAgentSessionLoad-TRSWA62U.js → pybAgentSessionLoad-I7MI2W5O.js} +4 -4
  75. package/dist/{pybAgentSessionResume-3IRNTCVI.js → pybAgentSessionResume-CMC5D4IX.js} +4 -4
  76. package/dist/{pybAgentStreamJsonSession-5IBYEXS5.js → pybAgentStreamJsonSession-FUT6NUZG.js} +3 -3
  77. package/dist/pybAgentStreamJsonSession-FUT6NUZG.js.map +7 -0
  78. package/dist/{pybHooks-HFAKEYDS.js → pybHooks-I4C2HCMR.js} +4 -4
  79. package/dist/query-HKFFVARD.js +57 -0
  80. package/dist/{registry-LOKL3JBE.js → registry-HA4GULY4.js} +5 -5
  81. package/dist/replSessionBridge-EBXNFUAD.js +10 -0
  82. package/dist/{ripgrep-X4LOQHA7.js → ripgrep-4F2VOLSN.js} +3 -3
  83. package/dist/{skillMarketplace-UITGQNZD.js → skillMarketplace-73JWYMAT.js} +3 -3
  84. package/dist/{state-I7LIGIFJ.js → state-WVRITIDZ.js} +2 -2
  85. package/dist/{theme-RVIXXPSQ.js → theme-BPZWU5M7.js} +5 -5
  86. package/dist/{toolPermissionSettings-TALALPH3.js → toolPermissionSettings-UOQTLVV5.js} +6 -6
  87. package/dist/toolPermissionSettings-UOQTLVV5.js.map +7 -0
  88. package/dist/tools-3OMW2SOR.js +54 -0
  89. package/dist/tools-3OMW2SOR.js.map +7 -0
  90. package/dist/{userInput-WFPUGJ4L.js → userInput-TQYQIWBV.js} +40 -36
  91. package/dist/userInput-TQYQIWBV.js.map +7 -0
  92. package/package.json +1 -1
  93. package/dist/REPL-WXPYXBW2.js +0 -46
  94. package/dist/acp-YXMNP56B.js.map +0 -7
  95. package/dist/ask-CUR6IJ2W.js +0 -129
  96. package/dist/ask-CUR6IJ2W.js.map +0 -7
  97. package/dist/chunk-H44O47XJ.js.map +0 -7
  98. package/dist/chunk-TVUG5GLX.js.map +0 -7
  99. package/dist/cli-VNT2RTPP.js.map +0 -7
  100. package/dist/commands-LAZD5O4M.js +0 -50
  101. package/dist/prompts-P4JU57HZ.js +0 -52
  102. package/dist/pybAgentStreamJsonSession-5IBYEXS5.js.map +0 -7
  103. package/dist/query-NHQFKSCC.js +0 -54
  104. package/dist/tools-HVGZBEHZ.js +0 -51
  105. package/dist/userInput-WFPUGJ4L.js.map +0 -7
  106. /package/dist/{REPL-WXPYXBW2.js.map → REPL-KB5JZS6S.js.map} +0 -0
  107. /package/dist/{agentsValidate-LQFWOCPZ.js.map → agentsValidate-Y3JGFZPX.js.map} +0 -0
  108. /package/dist/{autoUpdater-DEH233RT.js.map → autoUpdater-NBXSZEKC.js.map} +0 -0
  109. /package/dist/{chunk-KH3U5BR5.js.map → chunk-5KEKIQVC.js.map} +0 -0
  110. /package/dist/{chunk-JVF6KNE3.js.map → chunk-5MEGIDN7.js.map} +0 -0
  111. /package/dist/{chunk-2NFKKANF.js.map → chunk-5MZZCUQX.js.map} +0 -0
  112. /package/dist/{chunk-HIZXCXUG.js.map → chunk-7UTUKVKM.js.map} +0 -0
  113. /package/dist/{chunk-4NNDWUSZ.js.map → chunk-A5LLPMGS.js.map} +0 -0
  114. /package/dist/{chunk-5KAIY3II.js.map → chunk-CFX5VEY5.js.map} +0 -0
  115. /package/dist/{chunk-VW3NZKCP.js.map → chunk-EINLEUKA.js.map} +0 -0
  116. /package/dist/{chunk-EYY3QDKX.js.map → chunk-FPCH7C5K.js.map} +0 -0
  117. /package/dist/{chunk-FDGIVQNE.js.map → chunk-FQL6V43W.js.map} +0 -0
  118. /package/dist/{chunk-BX6HNPWQ.js.map → chunk-FVR53MZY.js.map} +0 -0
  119. /package/dist/{chunk-4VUECEM6.js.map → chunk-IDJMJZP4.js.map} +0 -0
  120. /package/dist/{chunk-4SWM6FWR.js.map → chunk-IIZXV4HL.js.map} +0 -0
  121. /package/dist/{chunk-37ZXN5M4.js.map → chunk-KSCBNFN7.js.map} +0 -0
  122. /package/dist/{chunk-AB3F7T5N.js.map → chunk-LIFJX3UL.js.map} +0 -0
  123. /package/dist/{chunk-6XINCIUI.js.map → chunk-MBIKKOOW.js.map} +0 -0
  124. /package/dist/{chunk-B3NR3UMC.js.map → chunk-MKSTJEGS.js.map} +0 -0
  125. /package/dist/{chunk-Z73SPR4B.js.map → chunk-OCIKBYQ4.js.map} +0 -0
  126. /package/dist/{chunk-BJMVIICS.js.map → chunk-OUOB2RBI.js.map} +0 -0
  127. /package/dist/{chunk-HNHWG52B.js.map → chunk-SUHM4MYA.js.map} +0 -0
  128. /package/dist/{chunk-GMKASRN7.js.map → chunk-TKPY5LGF.js.map} +0 -0
  129. /package/dist/{chunk-PRRYL2E2.js.map → chunk-V37R5FE5.js.map} +0 -0
  130. /package/dist/{chunk-UUS77RPP.js.map → chunk-VRRJXBF3.js.map} +0 -0
  131. /package/dist/{chunk-7ANXEZRS.js.map → chunk-WGGELTRR.js.map} +0 -0
  132. /package/dist/{chunk-ZE75JZFY.js.map → chunk-WSP4AYLZ.js.map} +0 -0
  133. /package/dist/{chunk-GS4PRJHV.js.map → chunk-XHQMUJIS.js.map} +0 -0
  134. /package/dist/{commands-LAZD5O4M.js.map → commands-FPZREXUW.js.map} +0 -0
  135. /package/dist/{config-VK55G2IB.js.map → config-YGHZ7OZB.js.map} +0 -0
  136. /package/dist/{context-QHTEENJ6.js.map → context-SNUVPSIW.js.map} +0 -0
  137. /package/dist/{customCommands-HRHE7ZIM.js.map → conversationTracker-IXJWSKYY.js.map} +0 -0
  138. /package/dist/{env-GGYUE5V7.js.map → customCommands-2YZVCPNF.js.map} +0 -0
  139. /package/dist/{file-KHYC624L.js.map → env-SPCTS7IU.js.map} +0 -0
  140. /package/dist/{llmLazy-USVVGSVL.js.map → file-MRX573XM.js.map} +0 -0
  141. /package/dist/{loader-JPKYTFFC.js.map → llmLazy-II5PXLQI.js.map} +0 -0
  142. /package/dist/{lsp-B7QJVI2U.js.map → loader-EV4REQWE.js.map} +0 -0
  143. /package/dist/{mcp-YOR7UMEZ.js.map → lsp-O2TLN3AD.js.map} +0 -0
  144. /package/dist/{lspAnchor-JJJ2WKI7.js.map → lspAnchor-BLB7II5Y.js.map} +0 -0
  145. /package/dist/{messages-ICKAWGUW.js.map → mcp-OJPHPVNM.js.map} +0 -0
  146. /package/dist/{mentionProcessor-5CYA4NR4.js.map → mentionProcessor-BXCFLUXL.js.map} +0 -0
  147. /package/dist/{model-P33QONA2.js.map → messages-CUNARS37.js.map} +0 -0
  148. /package/dist/{openai-POLCH476.js.map → model-OUTGOGMR.js.map} +0 -0
  149. /package/dist/{outputStyles-EZGCOEE2.js.map → openai-WTOKA74W.js.map} +0 -0
  150. /package/dist/{pluginValidation-MR5GV7PL.js.map → outputStyles-K5O5RB33.js.map} +0 -0
  151. /package/dist/{pluginRuntime-KJ3YFO2O.js.map → pluginRuntime-JEJXUSFZ.js.map} +0 -0
  152. /package/dist/{prompts-P4JU57HZ.js.map → pluginValidation-S4VSNYHJ.js.map} +0 -0
  153. /package/dist/{pybAgentSessionLoad-TRSWA62U.js.map → prompts-XUL3MGVE.js.map} +0 -0
  154. /package/dist/{pybAgentSessionResume-3IRNTCVI.js.map → pybAgentSessionLoad-I7MI2W5O.js.map} +0 -0
  155. /package/dist/{pybHooks-HFAKEYDS.js.map → pybAgentSessionResume-CMC5D4IX.js.map} +0 -0
  156. /package/dist/{query-NHQFKSCC.js.map → pybHooks-I4C2HCMR.js.map} +0 -0
  157. /package/dist/{registry-LOKL3JBE.js.map → query-HKFFVARD.js.map} +0 -0
  158. /package/dist/{ripgrep-X4LOQHA7.js.map → registry-HA4GULY4.js.map} +0 -0
  159. /package/dist/{skillMarketplace-UITGQNZD.js.map → replSessionBridge-EBXNFUAD.js.map} +0 -0
  160. /package/dist/{state-I7LIGIFJ.js.map → ripgrep-4F2VOLSN.js.map} +0 -0
  161. /package/dist/{theme-RVIXXPSQ.js.map → skillMarketplace-73JWYMAT.js.map} +0 -0
  162. /package/dist/{toolPermissionSettings-TALALPH3.js.map → state-WVRITIDZ.js.map} +0 -0
  163. /package/dist/{tools-HVGZBEHZ.js.map → theme-BPZWU5M7.js.map} +0 -0
@@ -4,7 +4,7 @@ const require = __pybCreateRequire(import.meta.url);
4
4
  // package.json
5
5
  var package_default = {
6
6
  name: "pybao-cli",
7
- version: "1.4.81",
7
+ version: "1.4.83",
8
8
  bin: {
9
9
  pyb: "cli.js",
10
10
  "pyb-acp": "cli-acp.js"
@@ -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.81\",\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"],
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-JVF6KNE3.js";
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-UUS77RPP.js";
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-6XINCIUI.js";
8
+ } from "./chunk-MBIKKOOW.js";
9
9
  import {
10
10
  getCwd,
11
11
  logError,
12
12
  resolveXdgDataPath
13
- } from "./chunk-UUS77RPP.js";
13
+ } from "./chunk-VRRJXBF3.js";
14
14
 
15
15
  // src/services/plugins/customCommands.ts
16
16
  import { existsSync, readFileSync, readdirSync, statSync } from "fs";
@@ -4,7 +4,7 @@ import {
4
4
  BunShell,
5
5
  execFileNoThrow,
6
6
  logError
7
- } from "./chunk-UUS77RPP.js";
7
+ } from "./chunk-VRRJXBF3.js";
8
8
 
9
9
  // src/utils/system/ripgrep.ts
10
10
  import { findActualExecutable } from "spawn-rx";
@@ -4,10 +4,10 @@ import {
4
4
  PRODUCT_NAME,
5
5
  execFileNoThrow,
6
6
  logError
7
- } from "./chunk-UUS77RPP.js";
7
+ } from "./chunk-VRRJXBF3.js";
8
8
  import {
9
9
  MACRO
10
- } from "./chunk-CCF52HVZ.js";
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-VK55G2IB.js"), import("./env-GGYUE5V7.js")]);
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;
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  SESSION_ID,
5
5
  resolveXdgCachePath
6
- } from "./chunk-UUS77RPP.js";
6
+ } from "./chunk-VRRJXBF3.js";
7
7
 
8
8
  // src/utils/log/debugLogger.ts
9
9
  import { existsSync, mkdirSync, appendFileSync } from "fs";
@@ -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-37ZXN5M4.js";
5
+ } from "./chunk-KSCBNFN7.js";
6
6
  import {
7
7
  getCurrentProjectConfig,
8
8
  getGlobalConfig,
9
9
  getOrCreateUserID,
10
10
  saveCurrentProjectConfig
11
- } from "./chunk-ZE75JZFY.js";
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-UUS77RPP.js";
19
+ } from "./chunk-VRRJXBF3.js";
20
20
  import {
21
21
  MACRO
22
- } from "./chunk-CCF52HVZ.js";
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-ZE75JZFY.js";
6
+ } from "./chunk-WSP4AYLZ.js";
7
7
  import {
8
8
  debug
9
- } from "./chunk-6XINCIUI.js";
9
+ } from "./chunk-MBIKKOOW.js";
10
10
  import {
11
11
  logError
12
- } from "./chunk-UUS77RPP.js";
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-A3S75CLF.js");
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-A3S75CLF.js");
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-A3S75CLF.js");
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-A3S75CLF.js");
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
+ }
@@ -5,7 +5,7 @@ import {
5
5
  getCwd,
6
6
  resolveXdgCachePath,
7
7
  resolveXdgDataPath
8
- } from "./chunk-UUS77RPP.js";
8
+ } from "./chunk-VRRJXBF3.js";
9
9
 
10
10
  // src/services/plugins/skillMarketplace.ts
11
11
  import {
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getGlobalConfig
5
- } from "./chunk-ZE75JZFY.js";
5
+ } from "./chunk-WSP4AYLZ.js";
6
6
 
7
7
  // src/utils/theme/index.ts
8
8
  var lightTheme = {
@@ -33,57 +33,57 @@ import {
33
33
  runWithTaskListEnv,
34
34
  runWithTaskListId,
35
35
  updateTask
36
- } from "./chunk-TVUG5GLX.js";
36
+ } from "./chunk-GKBRHNMB.js";
37
37
  import {
38
38
  queryLLM
39
- } from "./chunk-BJMVIICS.js";
39
+ } from "./chunk-OUOB2RBI.js";
40
40
  import {
41
41
  FallbackToolUseRejectedMessage,
42
42
  MCPTool,
43
43
  getClients,
44
44
  getMCPTools
45
- } from "./chunk-HIZXCXUG.js";
45
+ } from "./chunk-7UTUKVKM.js";
46
46
  import {
47
47
  emitReminderEvent
48
- } from "./chunk-2NFKKANF.js";
48
+ } from "./chunk-5MZZCUQX.js";
49
49
  import {
50
50
  getActiveAgents,
51
51
  getAgentByType,
52
52
  getAvailableAgentTypes
53
- } from "./chunk-CLGB56HY.js";
53
+ } from "./chunk-DHJEENK5.js";
54
54
  import {
55
55
  INTERRUPT_MESSAGE,
56
56
  createAssistantMessage,
57
57
  createUserMessage,
58
58
  getLastAssistantMessageId
59
- } from "./chunk-H44O47XJ.js";
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-EYY3QDKX.js";
66
+ } from "./chunk-FPCH7C5K.js";
67
67
  import {
68
68
  LspFacade,
69
69
  formatDiagnosticsPretty
70
- } from "./chunk-GS4PRJHV.js";
70
+ } from "./chunk-XHQMUJIS.js";
71
71
  import {
72
72
  getModelManager
73
- } from "./chunk-Z73SPR4B.js";
73
+ } from "./chunk-OCIKBYQ4.js";
74
74
  import {
75
75
  getContext
76
- } from "./chunk-B3NR3UMC.js";
76
+ } from "./chunk-MKSTJEGS.js";
77
77
  import {
78
78
  filesToTree,
79
79
  ripGrepWithStatus
80
- } from "./chunk-37ZXN5M4.js";
80
+ } from "./chunk-KSCBNFN7.js";
81
81
  import {
82
82
  getTheme
83
- } from "./chunk-GMKASRN7.js";
83
+ } from "./chunk-TKPY5LGF.js";
84
84
  import {
85
85
  debug
86
- } from "./chunk-6XINCIUI.js";
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-UUS77RPP.js";
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-I7LIGIFJ.js");
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-B7QJVI2U.js");
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(