pybao-cli 1.5.8 → 1.5.10

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 (179) hide show
  1. package/cli-acp.js +29 -5
  2. package/cli.js +28 -6
  3. package/dist/REPL-LEORZMM6.js +50 -0
  4. package/dist/{acp-53E7A6L4.js → acp-OPW4NHQM.js} +46 -35
  5. package/dist/acp-OPW4NHQM.js.map +7 -0
  6. package/dist/{agentsValidate-VSDRHIJQ.js → agentsValidate-ZVFEF4KY.js} +7 -7
  7. package/dist/{ask-XUXTH3EI.js → ask-SLRDSXCI.js} +55 -33
  8. package/dist/ask-SLRDSXCI.js.map +7 -0
  9. package/dist/{autoUpdater-GAWZB7YO.js → autoUpdater-BZ7E2E54.js} +3 -3
  10. package/dist/{chunk-4QTASHFO.js → chunk-25MWUHVP.js} +1 -1
  11. package/dist/{chunk-HOBCGAUT.js → chunk-2KTGONPT.js} +1 -1
  12. package/dist/{chunk-H67PQDUM.js → chunk-3YDOR2NA.js} +4 -4
  13. package/dist/{chunk-YABL4JYT.js → chunk-46JMZBCX.js} +1 -1
  14. package/dist/{chunk-JFIH5LIP.js → chunk-4LLCMT3D.js} +2 -2
  15. package/dist/{chunk-TJUTH3WH.js → chunk-4USBSNI7.js} +2241 -1530
  16. package/dist/chunk-4USBSNI7.js.map +7 -0
  17. package/dist/{chunk-VBJ6J63U.js → chunk-6UPWXBMK.js} +144 -76
  18. package/dist/chunk-6UPWXBMK.js.map +7 -0
  19. package/dist/{chunk-KRTFCQTN.js → chunk-72ICL3CH.js} +19 -6
  20. package/dist/{chunk-KRTFCQTN.js.map → chunk-72ICL3CH.js.map} +2 -2
  21. package/dist/{chunk-62CZOFWT.js → chunk-7FGPQ22V.js} +1 -1
  22. package/dist/{chunk-DRP66QHJ.js → chunk-7SZNDNLK.js} +1 -4
  23. package/dist/{chunk-LNPUQ3UL.js → chunk-AJEGTH5Q.js} +1 -1
  24. package/dist/{chunk-LNE2PRIU.js → chunk-AO6J7LEE.js} +3 -3
  25. package/dist/{chunk-4I2M26LO.js → chunk-E6OFGHIW.js} +3 -3
  26. package/dist/{chunk-543LWZDY.js → chunk-EEKXOPVZ.js} +3 -3
  27. package/dist/chunk-EWXKQF7L.js +922 -0
  28. package/dist/chunk-EWXKQF7L.js.map +7 -0
  29. package/dist/{chunk-FKDSZPS4.js → chunk-HPUNAUYE.js} +2 -7
  30. package/dist/chunk-HPUNAUYE.js.map +7 -0
  31. package/dist/{chunk-IWKEQNWI.js → chunk-MPEAANUT.js} +3 -3
  32. package/dist/{chunk-JZPXOQK3.js → chunk-MT3ZAKKO.js} +3 -3
  33. package/dist/{chunk-WQVP2232.js → chunk-NIW3GVZ6.js} +45 -61
  34. package/dist/chunk-NIW3GVZ6.js.map +7 -0
  35. package/dist/chunk-OC5CZWBQ.js.map +7 -0
  36. package/dist/{chunk-VW7ZPH5U.js → chunk-OHW6JWIB.js} +4 -4
  37. package/dist/{chunk-AQXOZUAV.js → chunk-P6O6FCAD.js} +2 -2
  38. package/dist/{chunk-Z35GPUWK.js → chunk-PUG4EOMG.js} +1 -1
  39. package/dist/{chunk-WBAZ4MMW.js → chunk-RSYAAJ5F.js} +4 -4
  40. package/dist/{chunk-46Z3GAE4.js → chunk-SJIE5KQR.js} +4 -4
  41. package/dist/{chunk-FQMMZCOL.js → chunk-TF4T573B.js} +2 -2
  42. package/dist/chunk-TQTC7KJZ.js +81 -0
  43. package/dist/{chunk-MHFWCK5F.js.map → chunk-TQTC7KJZ.js.map} +1 -1
  44. package/dist/{chunk-5PSLFGDF.js → chunk-UFR47H5I.js} +11 -7
  45. package/dist/chunk-UFR47H5I.js.map +7 -0
  46. package/dist/{chunk-IZ6NAVRD.js → chunk-UPULEKBE.js} +1 -1
  47. package/dist/{chunk-VRWY6YIJ.js → chunk-UV2N4M64.js} +3 -3
  48. package/dist/{chunk-RAOXUYK3.js → chunk-W6OFNZ3W.js} +2 -2
  49. package/dist/{chunk-RFY3YUHB.js → chunk-WKSMEOKH.js} +3 -3
  50. package/dist/chunk-YTESBILA.js +78 -0
  51. package/dist/chunk-YTESBILA.js.map +7 -0
  52. package/dist/{cli-3QFWTKDS.js → cli-OZWYRJHM.js} +127 -102
  53. package/dist/cli-OZWYRJHM.js.map +7 -0
  54. package/dist/commands-ASLDRXGO.js +54 -0
  55. package/dist/{config-DFRB2SLO.js → config-LCNYYLVP.js} +4 -4
  56. package/dist/{context-V62FBZVF.js → context-DPW4MYE4.js} +6 -6
  57. package/dist/conversationPersistence-JLI7ZCBG.js +13 -0
  58. package/dist/{conversationTracker-DZR2N3FQ.js → conversationTracker-KVYAMRCS.js} +4 -3
  59. package/dist/{customCommands-3ZIVHLTU.js → customCommands-O2J3V24X.js} +4 -4
  60. package/dist/{env-BMFEDWPX.js → env-VUPUO64W.js} +2 -2
  61. package/dist/{file-SD5NRUTD.js → file-VJBZTSIC.js} +4 -4
  62. package/dist/index.js +3 -3
  63. package/dist/{llm-466UDKVG.js → llm-BXWBQJQA.js} +416 -49
  64. package/dist/llm-BXWBQJQA.js.map +7 -0
  65. package/dist/{llmLazy-7R7P5A3P.js → llmLazy-XR66QEVP.js} +1 -1
  66. package/dist/{loader-X7RIUXJB.js → loader-IHQ33LHG.js} +4 -4
  67. package/dist/{lsp-2FPBS2M3.js → lsp-57NLFUAK.js} +6 -6
  68. package/dist/{lspAnchor-KQNSWWL3.js → lspAnchor-VWSO7YZY.js} +6 -6
  69. package/dist/{mcp-3SV4TZYL.js → mcp-XJJDR27I.js} +7 -7
  70. package/dist/{mentionProcessor-KJP4IYVF.js → mentionProcessor-6MSAZVVB.js} +5 -5
  71. package/dist/{messages-BXF7LJIV.js → messages-4KD4FLFL.js} +9 -5
  72. package/dist/{model-F6VCUHDL.js → model-AA5UZIM5.js} +5 -5
  73. package/dist/{openai-QTTJIB6O.js → openai-HAAQ3Y7C.js} +5 -5
  74. package/dist/{outputStyles-SJ57QG7S.js → outputStyles-MJS6OUKM.js} +4 -4
  75. package/dist/{pluginRuntime-4SDXCK4Q.js → pluginRuntime-O23ERPKS.js} +6 -6
  76. package/dist/{pluginValidation-YJ4W3MX4.js → pluginValidation-T25KVTG4.js} +6 -6
  77. package/dist/prompts-CU2RK7D3.js +56 -0
  78. package/dist/{pybAgentSessionLoad-IZULLNUL.js → pybAgentSessionLoad-M3JZ2DH3.js} +4 -4
  79. package/dist/{pybAgentSessionResume-QRNTC3A3.js → pybAgentSessionResume-D2R55SPH.js} +4 -4
  80. package/dist/{pybAgentStreamJsonSession-RUHPYCTJ.js → pybAgentStreamJsonSession-LKZILYAG.js} +4 -3
  81. package/dist/pybAgentStreamJsonSession-LKZILYAG.js.map +7 -0
  82. package/dist/{pybHooks-GX3AIY4U.js → pybHooks-GAJ5GRHI.js} +4 -4
  83. package/dist/query-2X4R5ZCX.js +58 -0
  84. package/dist/{registry-JNPRNIFB.js → registry-GDKX2X34.js} +5 -5
  85. package/dist/{ripgrep-ZKWM7RMS.js → ripgrep-FJH77I5J.js} +3 -3
  86. package/dist/{skillMarketplace-4LJAYRMX.js → skillMarketplace-6NXN5AYJ.js} +3 -3
  87. package/dist/{state-I6BQR2T5.js → state-5JZ6HLQY.js} +2 -2
  88. package/dist/{theme-GL7HKKCQ.js → theme-HJNALYGQ.js} +5 -5
  89. package/dist/{toolPermissionSettings-ZRTSQVQ2.js → toolPermissionSettings-KPM5KUAD.js} +6 -6
  90. package/dist/tools-C65SWXV6.js +55 -0
  91. package/dist/tools-C65SWXV6.js.map +7 -0
  92. package/dist/{userInput-M6JYKQCU.js → userInput-BXJEMFWI.js} +76 -49
  93. package/dist/userInput-BXJEMFWI.js.map +7 -0
  94. package/package.json +11 -7
  95. package/scripts/cli-acp-wrapper.cjs +29 -5
  96. package/scripts/cli-wrapper.cjs +28 -6
  97. package/scripts/postinstall.js +3 -1
  98. package/scripts/typed-sql-install-smoke.mjs +69 -0
  99. package/scripts/typed-sql-no-fallback-gate.mjs +61 -0
  100. package/scripts/typed-sql-release-gate.mjs +51 -0
  101. package/dist/REPL-AHBTBEED.js +0 -49
  102. package/dist/acp-53E7A6L4.js.map +0 -7
  103. package/dist/ask-XUXTH3EI.js.map +0 -7
  104. package/dist/chunk-5PSLFGDF.js.map +0 -7
  105. package/dist/chunk-B62BK4YK.js +0 -516
  106. package/dist/chunk-B62BK4YK.js.map +0 -7
  107. package/dist/chunk-FKDSZPS4.js.map +0 -7
  108. package/dist/chunk-MHFWCK5F.js +0 -240
  109. package/dist/chunk-O6DTZU7F.js.map +0 -7
  110. package/dist/chunk-TJUTH3WH.js.map +0 -7
  111. package/dist/chunk-VBJ6J63U.js.map +0 -7
  112. package/dist/chunk-WQVP2232.js.map +0 -7
  113. package/dist/cli-3QFWTKDS.js.map +0 -7
  114. package/dist/commands-ITOHDPPP.js +0 -53
  115. package/dist/llm-466UDKVG.js.map +0 -7
  116. package/dist/prompts-5RPQRZ3L.js +0 -55
  117. package/dist/pybAgentStreamJsonSession-RUHPYCTJ.js.map +0 -7
  118. package/dist/query-YLKPJVHB.js +0 -57
  119. package/dist/tools-4GEB2BRR.js +0 -54
  120. package/dist/userInput-M6JYKQCU.js.map +0 -7
  121. package/resources/output-styles/legacy-system-maintainer.md +0 -47
  122. /package/dist/{REPL-AHBTBEED.js.map → REPL-LEORZMM6.js.map} +0 -0
  123. /package/dist/{agentsValidate-VSDRHIJQ.js.map → agentsValidate-ZVFEF4KY.js.map} +0 -0
  124. /package/dist/{autoUpdater-GAWZB7YO.js.map → autoUpdater-BZ7E2E54.js.map} +0 -0
  125. /package/dist/{chunk-4QTASHFO.js.map → chunk-25MWUHVP.js.map} +0 -0
  126. /package/dist/{chunk-HOBCGAUT.js.map → chunk-2KTGONPT.js.map} +0 -0
  127. /package/dist/{chunk-H67PQDUM.js.map → chunk-3YDOR2NA.js.map} +0 -0
  128. /package/dist/{chunk-YABL4JYT.js.map → chunk-46JMZBCX.js.map} +0 -0
  129. /package/dist/{chunk-JFIH5LIP.js.map → chunk-4LLCMT3D.js.map} +0 -0
  130. /package/dist/{chunk-62CZOFWT.js.map → chunk-7FGPQ22V.js.map} +0 -0
  131. /package/dist/{chunk-DRP66QHJ.js.map → chunk-7SZNDNLK.js.map} +0 -0
  132. /package/dist/{chunk-LNPUQ3UL.js.map → chunk-AJEGTH5Q.js.map} +0 -0
  133. /package/dist/{chunk-LNE2PRIU.js.map → chunk-AO6J7LEE.js.map} +0 -0
  134. /package/dist/{chunk-4I2M26LO.js.map → chunk-E6OFGHIW.js.map} +0 -0
  135. /package/dist/{chunk-543LWZDY.js.map → chunk-EEKXOPVZ.js.map} +0 -0
  136. /package/dist/{chunk-IWKEQNWI.js.map → chunk-MPEAANUT.js.map} +0 -0
  137. /package/dist/{chunk-JZPXOQK3.js.map → chunk-MT3ZAKKO.js.map} +0 -0
  138. /package/dist/{chunk-O6DTZU7F.js → chunk-OC5CZWBQ.js} +0 -0
  139. /package/dist/{chunk-VW7ZPH5U.js.map → chunk-OHW6JWIB.js.map} +0 -0
  140. /package/dist/{chunk-AQXOZUAV.js.map → chunk-P6O6FCAD.js.map} +0 -0
  141. /package/dist/{chunk-Z35GPUWK.js.map → chunk-PUG4EOMG.js.map} +0 -0
  142. /package/dist/{chunk-WBAZ4MMW.js.map → chunk-RSYAAJ5F.js.map} +0 -0
  143. /package/dist/{chunk-46Z3GAE4.js.map → chunk-SJIE5KQR.js.map} +0 -0
  144. /package/dist/{chunk-FQMMZCOL.js.map → chunk-TF4T573B.js.map} +0 -0
  145. /package/dist/{chunk-IZ6NAVRD.js.map → chunk-UPULEKBE.js.map} +0 -0
  146. /package/dist/{chunk-VRWY6YIJ.js.map → chunk-UV2N4M64.js.map} +0 -0
  147. /package/dist/{chunk-RAOXUYK3.js.map → chunk-W6OFNZ3W.js.map} +0 -0
  148. /package/dist/{chunk-RFY3YUHB.js.map → chunk-WKSMEOKH.js.map} +0 -0
  149. /package/dist/{commands-ITOHDPPP.js.map → commands-ASLDRXGO.js.map} +0 -0
  150. /package/dist/{config-DFRB2SLO.js.map → config-LCNYYLVP.js.map} +0 -0
  151. /package/dist/{context-V62FBZVF.js.map → context-DPW4MYE4.js.map} +0 -0
  152. /package/dist/{conversationTracker-DZR2N3FQ.js.map → conversationPersistence-JLI7ZCBG.js.map} +0 -0
  153. /package/dist/{customCommands-3ZIVHLTU.js.map → conversationTracker-KVYAMRCS.js.map} +0 -0
  154. /package/dist/{env-BMFEDWPX.js.map → customCommands-O2J3V24X.js.map} +0 -0
  155. /package/dist/{file-SD5NRUTD.js.map → env-VUPUO64W.js.map} +0 -0
  156. /package/dist/{llmLazy-7R7P5A3P.js.map → file-VJBZTSIC.js.map} +0 -0
  157. /package/dist/{loader-X7RIUXJB.js.map → llmLazy-XR66QEVP.js.map} +0 -0
  158. /package/dist/{lsp-2FPBS2M3.js.map → loader-IHQ33LHG.js.map} +0 -0
  159. /package/dist/{mcp-3SV4TZYL.js.map → lsp-57NLFUAK.js.map} +0 -0
  160. /package/dist/{lspAnchor-KQNSWWL3.js.map → lspAnchor-VWSO7YZY.js.map} +0 -0
  161. /package/dist/{messages-BXF7LJIV.js.map → mcp-XJJDR27I.js.map} +0 -0
  162. /package/dist/{mentionProcessor-KJP4IYVF.js.map → mentionProcessor-6MSAZVVB.js.map} +0 -0
  163. /package/dist/{model-F6VCUHDL.js.map → messages-4KD4FLFL.js.map} +0 -0
  164. /package/dist/{openai-QTTJIB6O.js.map → model-AA5UZIM5.js.map} +0 -0
  165. /package/dist/{outputStyles-SJ57QG7S.js.map → openai-HAAQ3Y7C.js.map} +0 -0
  166. /package/dist/{pluginValidation-YJ4W3MX4.js.map → outputStyles-MJS6OUKM.js.map} +0 -0
  167. /package/dist/{pluginRuntime-4SDXCK4Q.js.map → pluginRuntime-O23ERPKS.js.map} +0 -0
  168. /package/dist/{prompts-5RPQRZ3L.js.map → pluginValidation-T25KVTG4.js.map} +0 -0
  169. /package/dist/{pybAgentSessionLoad-IZULLNUL.js.map → prompts-CU2RK7D3.js.map} +0 -0
  170. /package/dist/{pybAgentSessionResume-QRNTC3A3.js.map → pybAgentSessionLoad-M3JZ2DH3.js.map} +0 -0
  171. /package/dist/{pybHooks-GX3AIY4U.js.map → pybAgentSessionResume-D2R55SPH.js.map} +0 -0
  172. /package/dist/{query-YLKPJVHB.js.map → pybHooks-GAJ5GRHI.js.map} +0 -0
  173. /package/dist/{registry-JNPRNIFB.js.map → query-2X4R5ZCX.js.map} +0 -0
  174. /package/dist/{ripgrep-ZKWM7RMS.js.map → registry-GDKX2X34.js.map} +0 -0
  175. /package/dist/{skillMarketplace-4LJAYRMX.js.map → ripgrep-FJH77I5J.js.map} +0 -0
  176. /package/dist/{state-I6BQR2T5.js.map → skillMarketplace-6NXN5AYJ.js.map} +0 -0
  177. /package/dist/{theme-GL7HKKCQ.js.map → state-5JZ6HLQY.js.map} +0 -0
  178. /package/dist/{toolPermissionSettings-ZRTSQVQ2.js.map → theme-HJNALYGQ.js.map} +0 -0
  179. /package/dist/{tools-4GEB2BRR.js.map → toolPermissionSettings-KPM5KUAD.js.map} +0 -0
@@ -1,69 +1,81 @@
1
1
  import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
+ createConversationTrackerPersistenceTelemetryEmitter,
4
5
  getSystemPrompt,
5
6
  query
6
- } from "./chunk-TJUTH3WH.js";
7
- import "./chunk-LNPUQ3UL.js";
8
- import "./chunk-JZPXOQK3.js";
7
+ } from "./chunk-4USBSNI7.js";
8
+ import "./chunk-UPULEKBE.js";
9
+ import "./chunk-AJEGTH5Q.js";
10
+ import "./chunk-TQTC7KJZ.js";
11
+ import "./chunk-MT3ZAKKO.js";
9
12
  import {
10
13
  ConversationTracker
11
- } from "./chunk-VBJ6J63U.js";
14
+ } from "./chunk-6UPWXBMK.js";
15
+ import {
16
+ FileSystemConversationPersistence
17
+ } from "./chunk-YTESBILA.js";
12
18
  import {
13
19
  beginReplSessionScope
14
20
  } from "./chunk-F4AXICO7.js";
15
- import "./chunk-IZ6NAVRD.js";
16
- import "./chunk-MHFWCK5F.js";
17
21
  import "./chunk-5P7HBXTD.js";
18
- import "./chunk-RFY3YUHB.js";
19
- import "./chunk-FKDSZPS4.js";
20
- import "./chunk-AQXOZUAV.js";
22
+ import "./chunk-WKSMEOKH.js";
23
+ import "./chunk-HPUNAUYE.js";
24
+ import "./chunk-P6O6FCAD.js";
21
25
  import "./chunk-XKYHFZEC.js";
22
- import "./chunk-VW7ZPH5U.js";
23
- import "./chunk-WBAZ4MMW.js";
24
- import "./chunk-4QTASHFO.js";
25
- import "./chunk-4I2M26LO.js";
26
+ import "./chunk-OHW6JWIB.js";
27
+ import "./chunk-RSYAAJ5F.js";
28
+ import "./chunk-25MWUHVP.js";
29
+ import "./chunk-E6OFGHIW.js";
26
30
  import "./chunk-UNNVICVU.js";
27
- import "./chunk-FQMMZCOL.js";
28
- import "./chunk-KRTFCQTN.js";
31
+ import "./chunk-TF4T573B.js";
32
+ import "./chunk-72ICL3CH.js";
29
33
  import "./chunk-A3BVXXA3.js";
30
34
  import {
31
- createUserTurnMessage
32
- } from "./chunk-B62BK4YK.js";
35
+ createUserTurnMessageFromBlocks
36
+ } from "./chunk-EWXKQF7L.js";
33
37
  import "./chunk-3DFBSQIT.js";
34
38
  import "./chunk-B6IMQJZM.js";
35
39
  import {
36
40
  getTotalCost
37
41
  } from "./chunk-OUXHGDLH.js";
38
- import "./chunk-JFIH5LIP.js";
42
+ import "./chunk-4LLCMT3D.js";
39
43
  import "./chunk-QWIBSCDN.js";
40
- import "./chunk-H67PQDUM.js";
41
- import "./chunk-543LWZDY.js";
42
- import "./chunk-62CZOFWT.js";
44
+ import "./chunk-3YDOR2NA.js";
45
+ import "./chunk-EEKXOPVZ.js";
46
+ import "./chunk-7FGPQ22V.js";
43
47
  import "./chunk-UZ34JEUK.js";
44
- import "./chunk-RAOXUYK3.js";
48
+ import "./chunk-W6OFNZ3W.js";
45
49
  import "./chunk-BJSWTHRM.js";
46
50
  import {
47
51
  getModelManager
48
- } from "./chunk-VRWY6YIJ.js";
52
+ } from "./chunk-UV2N4M64.js";
49
53
  import {
50
54
  getContext
51
- } from "./chunk-46Z3GAE4.js";
52
- import "./chunk-Z35GPUWK.js";
53
- import "./chunk-YABL4JYT.js";
54
- import "./chunk-LNE2PRIU.js";
55
+ } from "./chunk-SJIE5KQR.js";
56
+ import "./chunk-PUG4EOMG.js";
57
+ import "./chunk-46JMZBCX.js";
58
+ import "./chunk-AO6J7LEE.js";
55
59
  import "./chunk-RQVLBMP7.js";
56
- import "./chunk-HOBCGAUT.js";
60
+ import "./chunk-2KTGONPT.js";
57
61
  import {
58
62
  getMessagesPath,
59
63
  overwriteLog,
64
+ resolveXdgDataPath,
60
65
  setCwd
61
- } from "./chunk-DRP66QHJ.js";
62
- import "./chunk-5PSLFGDF.js";
66
+ } from "./chunk-7SZNDNLK.js";
67
+ import "./chunk-UFR47H5I.js";
63
68
  import "./chunk-I3J4JYES.js";
64
69
 
65
70
  // src/app/ask.ts
66
71
  import { last } from "lodash-es";
72
+ import { join } from "path";
73
+ function getProjectDirSlug(cwd) {
74
+ return cwd.replace(/[^a-zA-Z0-9]/g, "-");
75
+ }
76
+ function getConversationTrackerPersistenceDir(cwd) {
77
+ return resolveXdgDataPath(join(getProjectDirSlug(cwd), "conversation-trackers"));
78
+ }
67
79
  async function ask({
68
80
  commands,
69
81
  safeMode,
@@ -77,9 +89,19 @@ async function ask({
77
89
  persistSession = true
78
90
  }) {
79
91
  await setCwd(cwd);
80
- const restoreSessionScope = beginReplSessionScope(`ask:${messageLogName}:0`);
81
- const conversationTracker = new ConversationTracker();
82
- const message = createUserTurnMessage(prompt);
92
+ const trackerSessionId = `ask:${messageLogName}:0`;
93
+ const trackerPersistenceMode = "required";
94
+ const restoreSessionScope = beginReplSessionScope(trackerSessionId);
95
+ const conversationTracker = new ConversationTracker({
96
+ sessionId: trackerSessionId,
97
+ persistence: new FileSystemConversationPersistence(
98
+ getConversationTrackerPersistenceDir(cwd)
99
+ ),
100
+ persistenceMode: trackerPersistenceMode,
101
+ onPersistenceEvent: createConversationTrackerPersistenceTelemetryEmitter("ask")
102
+ });
103
+ conversationTracker.restore();
104
+ const message = createUserTurnMessageFromBlocks([{ type: "text", text: prompt }]);
83
105
  const messages = [...initialMessages ?? [], message];
84
106
  const [systemPrompt, context, model] = await Promise.all([
85
107
  getSystemPrompt(),
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/app/ask.ts"],
4
+ "sourcesContent": ["import { last } from 'lodash-es'\nimport { Command } from '@commands'\nimport { getSystemPrompt } from '@constants/prompts'\nimport { getContext } from '@context'\nimport { getTotalCost } from '@costTracker'\nimport { Message, query } from '@query'\nimport type { CanUseToolFn } from '@pyb-types/canUseTool'\nimport { Tool } from '@tool'\nimport { getModelManager } from '@utils/model'\nimport { setCwd } from '@utils/state'\nimport { getMessagesPath, overwriteLog } from '@utils/log'\nimport { createUserTurnMessageFromBlocks } from '@utils/messages'\nimport { ConversationTracker } from '@utils/session/conversationTracker'\nimport { FileSystemConversationPersistence } from '@utils/session/conversationPersistence'\nimport { beginReplSessionScope } from '@utils/session/replSessionBridge'\nimport { resolveXdgDataPath } from '@utils/config/env'\nimport { createConversationTrackerPersistenceTelemetryEmitter } from '@services/telemetry/conversationTrackerTelemetry'\nimport { join } from 'path'\n\ntype Props = {\n commands: Command[]\n safeMode?: boolean\n hasPermissionsToUseTool: CanUseToolFn\n messageLogName: string\n prompt: string\n cwd: string\n tools: Tool[]\n verbose?: boolean\n initialMessages?: Message[]\n persistSession?: boolean\n}\n\nfunction getProjectDirSlug(cwd: string): string {\n return cwd.replace(/[^a-zA-Z0-9]/g, '-')\n}\n\nfunction getConversationTrackerPersistenceDir(cwd: string): string {\n return resolveXdgDataPath(join(getProjectDirSlug(cwd), 'conversation-trackers'))\n}\n\nexport async function ask({\n commands,\n safeMode,\n hasPermissionsToUseTool,\n messageLogName,\n prompt,\n cwd,\n tools,\n verbose = false,\n initialMessages,\n persistSession = true,\n}: Props): Promise<{\n resultText: string\n totalCost: number\n messageHistoryFile: string\n}> {\n await setCwd(cwd)\n const trackerSessionId = `ask:${messageLogName}:0`\n const trackerPersistenceMode = 'required'\n const restoreSessionScope = beginReplSessionScope(trackerSessionId)\n const conversationTracker = new ConversationTracker({\n sessionId: trackerSessionId,\n persistence: new FileSystemConversationPersistence(\n getConversationTrackerPersistenceDir(cwd),\n ),\n persistenceMode: trackerPersistenceMode,\n onPersistenceEvent: createConversationTrackerPersistenceTelemetryEmitter('ask'),\n })\n conversationTracker.restore()\n const message = createUserTurnMessageFromBlocks([{ type: 'text', text: prompt }])\n const messages: Message[] = [...(initialMessages ?? []), message]\n\n const [systemPrompt, context, model] = await Promise.all([\n getSystemPrompt(),\n getContext(),\n getModelManager().getModelName('main'),\n ])\n\n try {\n for await (const m of query(\n messages,\n systemPrompt,\n context,\n hasPermissionsToUseTool,\n {\n options: {\n commands,\n tools,\n verbose,\n safeMode,\n forkNumber: 0,\n messageLogName: 'unused',\n maxThinkingTokens: 0,\n persistSession,\n },\n abortController: new AbortController(),\n messageId: undefined,\n readFileTimestamps: {},\n setToolJSX: () => {},\n conversationTracker,\n },\n )) {\n messages.push(m)\n }\n } finally {\n restoreSessionScope()\n }\n\n const result = last(messages)\n if (!result || result.type !== 'assistant') {\n throw new Error('Expected content to be an assistant message')\n }\n\n const textContent = result.message.content.find(c => c.type === 'text')\n if (!textContent) {\n throw new Error(\n `Expected at least one text content item, but got ${JSON.stringify(\n result.message.content,\n null,\n 2,\n )}`,\n )\n }\n\n const messageHistoryFile = getMessagesPath(messageLogName, 0, 0)\n overwriteLog(messageHistoryFile, messages)\n\n return {\n resultText: textContent.text,\n totalCost: getTotalCost(),\n messageHistoryFile,\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAiBrB,SAAS,YAAY;AAerB,SAAS,kBAAkB,KAAqB;AAC9C,SAAO,IAAI,QAAQ,iBAAiB,GAAG;AACzC;AAEA,SAAS,qCAAqC,KAAqB;AACjE,SAAO,mBAAmB,KAAK,kBAAkB,GAAG,GAAG,uBAAuB,CAAC;AACjF;AAEA,eAAsB,IAAI;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,iBAAiB;AACnB,GAIG;AACD,QAAM,OAAO,GAAG;AAChB,QAAM,mBAAmB,OAAO,cAAc;AAC9C,QAAM,yBAAyB;AAC/B,QAAM,sBAAsB,sBAAsB,gBAAgB;AAClE,QAAM,sBAAsB,IAAI,oBAAoB;AAAA,IAClD,WAAW;AAAA,IACX,aAAa,IAAI;AAAA,MACf,qCAAqC,GAAG;AAAA,IAC1C;AAAA,IACA,iBAAiB;AAAA,IACjB,oBAAoB,qDAAqD,KAAK;AAAA,EAChF,CAAC;AACD,sBAAoB,QAAQ;AAC5B,QAAM,UAAU,gCAAgC,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,CAAC,CAAC;AAChF,QAAM,WAAsB,CAAC,GAAI,mBAAmB,CAAC,GAAI,OAAO;AAEhE,QAAM,CAAC,cAAc,SAAS,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB,EAAE,aAAa,MAAM;AAAA,EACvC,CAAC;AAED,MAAI;AACF,qBAAiB,KAAK;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,mBAAmB;AAAA,UACnB;AAAA,QACF;AAAA,QACA,iBAAiB,IAAI,gBAAgB;AAAA,QACrC,WAAW;AAAA,QACX,oBAAoB,CAAC;AAAA,QACrB,YAAY,MAAM;AAAA,QAAC;AAAA,QACnB;AAAA,MACF;AAAA,IACF,GAAG;AACD,eAAS,KAAK,CAAC;AAAA,IACjB;AAAA,EACF,UAAE;AACA,wBAAoB;AAAA,EACtB;AAEA,QAAM,SAAS,KAAK,QAAQ;AAC5B,MAAI,CAAC,UAAU,OAAO,SAAS,aAAa;AAC1C,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAEA,QAAM,cAAc,OAAO,QAAQ,QAAQ,KAAK,OAAK,EAAE,SAAS,MAAM;AACtE,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI;AAAA,MACR,oDAAoD,KAAK;AAAA,QACvD,OAAO,QAAQ;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,qBAAqB,gBAAgB,gBAAgB,GAAG,CAAC;AAC/D,eAAa,oBAAoB,QAAQ;AAEzC,SAAO;AAAA,IACL,YAAY,YAAY;AAAA,IACxB,WAAW,aAAa;AAAA,IACxB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -5,9 +5,9 @@ import {
5
5
  checkAndNotifyUpdate,
6
6
  getLatestVersion,
7
7
  getUpdateCommandSuggestions
8
- } from "./chunk-IWKEQNWI.js";
9
- import "./chunk-DRP66QHJ.js";
10
- import "./chunk-5PSLFGDF.js";
8
+ } from "./chunk-MPEAANUT.js";
9
+ import "./chunk-7SZNDNLK.js";
10
+ import "./chunk-UFR47H5I.js";
11
11
  import "./chunk-I3J4JYES.js";
12
12
  export {
13
13
  assertMinVersion,
@@ -5,7 +5,7 @@ import {
5
5
  getCwd,
6
6
  resolveXdgCachePath,
7
7
  resolveXdgDataPath
8
- } from "./chunk-DRP66QHJ.js";
8
+ } from "./chunk-7SZNDNLK.js";
9
9
 
10
10
  // src/services/plugins/skillMarketplace.ts
11
11
  import {
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  SESSION_ID,
5
5
  resolveXdgCachePath
6
- } from "./chunk-DRP66QHJ.js";
6
+ } from "./chunk-7SZNDNLK.js";
7
7
 
8
8
  // src/utils/log/debugLogger.ts
9
9
  import { existsSync, mkdirSync, appendFileSync } from "fs";
@@ -4,17 +4,17 @@ import {
4
4
  LspServerRegistry,
5
5
  findNearestRoot,
6
6
  getInstallNotices
7
- } from "./chunk-543LWZDY.js";
7
+ } from "./chunk-EEKXOPVZ.js";
8
8
  import {
9
9
  levenshtein
10
10
  } from "./chunk-UZ34JEUK.js";
11
11
  import {
12
12
  debug
13
- } from "./chunk-HOBCGAUT.js";
13
+ } from "./chunk-2KTGONPT.js";
14
14
  import {
15
15
  getCwd,
16
16
  getSessionRoot
17
- } from "./chunk-DRP66QHJ.js";
17
+ } from "./chunk-7SZNDNLK.js";
18
18
 
19
19
  // src/lsp/index.ts
20
20
  import { extname as extname2 } from "path";
@@ -565,7 +565,7 @@ var LspClientManager = class _LspClientManager {
565
565
  const safeCwd = /[^\x00-\x7F]/.test(resolvedRoot) ? process.cwd() : resolvedRoot;
566
566
  let initOpts = serverInfo.initializationOptions;
567
567
  if (serverInfo.id === "pyright" || serverInfo.id === "ty") {
568
- const { detectPythonVenv } = await import("./registry-JNPRNIFB.js");
568
+ const { detectPythonVenv } = await import("./registry-GDKX2X34.js");
569
569
  const pythonPath = detectPythonVenv(resolvedRoot);
570
570
  if (pythonPath) {
571
571
  initOpts = { ...initOpts ?? {}, pythonPath };
@@ -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-LNE2PRIU.js";
5
+ } from "./chunk-AO6J7LEE.js";
6
6
 
7
7
  // src/utils/theme/index.ts
8
8
  var lightTheme = {
@@ -2,11 +2,11 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listAllContentFiles
5
- } from "./chunk-Z35GPUWK.js";
5
+ } from "./chunk-PUG4EOMG.js";
6
6
  import {
7
7
  getCwd,
8
8
  logError
9
- } from "./chunk-DRP66QHJ.js";
9
+ } from "./chunk-7SZNDNLK.js";
10
10
 
11
11
  // src/utils/fs/file.ts
12
12
  import {