pybao-cli 1.4.25 → 1.4.28

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 (148) hide show
  1. package/dist/REPL-QZ2IC46G.js +47 -0
  2. package/dist/{acp-AUKWBWMU.js → acp-2CYBFXCM.js} +29 -29
  3. package/dist/{agentsValidate-POOZ6Z2B.js → agentsValidate-PJWT2D5K.js} +7 -7
  4. package/dist/{ask-KWA2DNIV.js → ask-QDI62NUO.js} +28 -28
  5. package/dist/{autoUpdater-EOXG42SO.js → autoUpdater-MJGYKTEX.js} +3 -3
  6. package/dist/{chunk-BQYXHHWP.js → chunk-2ZPAB3BG.js} +3 -3
  7. package/dist/{chunk-VUISUCOO.js → chunk-3VMP3N5I.js} +3 -3
  8. package/dist/{chunk-47EXCNW6.js → chunk-52YKRUQU.js} +1 -1
  9. package/dist/{chunk-GTEB77DG.js → chunk-6PLT4FZB.js} +1 -1
  10. package/dist/{chunk-Z6TEUSJQ.js → chunk-7FQPMZMZ.js} +3 -3
  11. package/dist/{chunk-CPXJHNYY.js → chunk-7KMREPVU.js} +1 -1
  12. package/dist/{chunk-ZOWRLM6Q.js → chunk-AIEYODAB.js} +4 -4
  13. package/dist/{chunk-S75DS5IC.js → chunk-AXB5KBDU.js} +1 -1
  14. package/dist/{chunk-RPFER2VQ.js → chunk-BTEIUG6Z.js} +2 -2
  15. package/dist/{chunk-R47CUCI3.js → chunk-DZGSXGNO.js} +1 -1
  16. package/dist/{chunk-R47CUCI3.js.map → chunk-DZGSXGNO.js.map} +1 -1
  17. package/dist/{chunk-JSR26OQG.js → chunk-EDOKQ7Q4.js} +205 -78
  18. package/dist/chunk-EDOKQ7Q4.js.map +7 -0
  19. package/dist/{chunk-MUD34BHM.js → chunk-EE2HWPNB.js} +13 -5
  20. package/dist/chunk-EE2HWPNB.js.map +7 -0
  21. package/dist/{chunk-6BRCM2E4.js → chunk-EXCVPBNU.js} +2 -2
  22. package/dist/{chunk-IPYLXGFV.js → chunk-FJQEBFRT.js} +3 -3
  23. package/dist/{chunk-66JIUGLV.js → chunk-GH326UHJ.js} +2 -2
  24. package/dist/{chunk-OEH4JATH.js → chunk-HDLAUMCO.js} +1 -1
  25. package/dist/{chunk-T52MGYKQ.js → chunk-HQIRTFBW.js} +3 -3
  26. package/dist/{chunk-DD2OYKDE.js → chunk-I7634HZL.js} +4 -4
  27. package/dist/{chunk-JLQ6NN6N.js → chunk-JG4YQHLV.js} +2 -2
  28. package/dist/{chunk-SVQXV5Q5.js → chunk-JWMY47RD.js} +4 -4
  29. package/dist/{chunk-J46HCSM3.js → chunk-KM77MFAV.js} +9 -1
  30. package/dist/{chunk-J46HCSM3.js.map → chunk-KM77MFAV.js.map} +2 -2
  31. package/dist/{chunk-JUE7XD3T.js → chunk-KY7NHWWW.js} +1 -1
  32. package/dist/{chunk-QYIH3X4U.js → chunk-L3IBTGKO.js} +3 -3
  33. package/dist/{chunk-4V6WD6R2.js → chunk-PUPSOZGD.js} +1 -1
  34. package/dist/{chunk-MXJWHBOD.js → chunk-TSC3H7QP.js} +3 -3
  35. package/dist/{chunk-DT4HVZ3Y.js → chunk-U7WZR3D2.js} +2 -2
  36. package/dist/{chunk-5UOVQ6ES.js → chunk-UJ4SCNWQ.js} +2 -2
  37. package/dist/{chunk-NDFJPKT7.js → chunk-VNC3PEDS.js} +19 -207
  38. package/dist/chunk-VNC3PEDS.js.map +7 -0
  39. package/dist/{chunk-MXDHTE5J.js → chunk-Y4WFOPYP.js} +1 -1
  40. package/dist/{chunk-NWRTSS7D.js → chunk-YO52VXXI.js} +2 -2
  41. package/dist/{cli-IELXRUTX.js → cli-4KO6R5FN.js} +87 -87
  42. package/dist/commands-RUXGUN5U.js +51 -0
  43. package/dist/{config-77DZQTQK.js → config-XD3YFQSX.js} +4 -4
  44. package/dist/{context-KLUMCLFT.js → context-PO2UESD7.js} +6 -6
  45. package/dist/{customCommands-ISEA2746.js → customCommands-UEUPC4VR.js} +4 -4
  46. package/dist/{env-J4F7PRGG.js → env-FI72RSRG.js} +4 -2
  47. package/dist/{file-KRCHS5A5.js → file-PYLUP7M3.js} +4 -4
  48. package/dist/index.js +3 -3
  49. package/dist/{llm-6XARMLJR.js → llm-ALKRU6UP.js} +29 -29
  50. package/dist/{llmLazy-GRPZWGAK.js → llmLazy-XWYVEF7I.js} +1 -1
  51. package/dist/{loader-WUNIG65J.js → loader-3K6BN6G3.js} +4 -4
  52. package/dist/{lsp-DL76IXYS.js → lsp-QYFRYHJH.js} +6 -6
  53. package/dist/{lspAnchor-VPPXXUNO.js → lspAnchor-XN3IVTIB.js} +6 -6
  54. package/dist/{mcp-KY56TM6T.js → mcp-RIONBCXG.js} +7 -7
  55. package/dist/{mentionProcessor-E3ITBICV.js → mentionProcessor-EOZLTQXF.js} +5 -5
  56. package/dist/{messages-DT4HTEOS.js → messages-UTB732JP.js} +1 -1
  57. package/dist/{model-KCH57MST.js → model-456IYAUB.js} +5 -5
  58. package/dist/{openai-BNPU7EJH.js → openai-2RFED4YB.js} +5 -5
  59. package/dist/{outputStyles-QE2JKRBE.js → outputStyles-24VCXHCR.js} +4 -4
  60. package/dist/{pluginRuntime-NB3KNFSZ.js → pluginRuntime-GUV5KI2J.js} +6 -6
  61. package/dist/{pluginValidation-KVCOIKER.js → pluginValidation-OO454KKW.js} +6 -6
  62. package/dist/prompts-IXAHJVVK.js +53 -0
  63. package/dist/{pybAgentSessionLoad-SCPRT5NR.js → pybAgentSessionLoad-I3ZACINO.js} +4 -4
  64. package/dist/{pybAgentSessionResume-VKEMMVH7.js → pybAgentSessionResume-DVHX23VD.js} +4 -4
  65. package/dist/{pybAgentStreamJsonSession-G6TCRJIW.js → pybAgentStreamJsonSession-EW3IOR7R.js} +1 -1
  66. package/dist/{pybHooks-T6RPQN5F.js → pybHooks-WUXXVPAX.js} +4 -4
  67. package/dist/query-SXZDETWN.js +55 -0
  68. package/dist/{registry-CZRNYJ22.js → registry-BL3M7B2R.js} +5 -5
  69. package/dist/{ripgrep-URB4ZUF3.js → ripgrep-SYBJ5BYB.js} +3 -3
  70. package/dist/{skillMarketplace-NC4WL6B5.js → skillMarketplace-5PMVM7VU.js} +3 -3
  71. package/dist/{state-DXHBJ5GD.js → state-3IFYM672.js} +2 -2
  72. package/dist/{theme-CJU6VJXX.js → theme-WZJJJCKJ.js} +5 -5
  73. package/dist/{toolPermissionSettings-F3CNX7NA.js → toolPermissionSettings-PBLUJ4CI.js} +6 -6
  74. package/dist/tools-5LUTKVZL.js +52 -0
  75. package/dist/{userInput-GIXZP2YY.js → userInput-NV7IAHYR.js} +30 -30
  76. package/package.json +1 -1
  77. package/dist/REPL-Q3IP3BNQ.js +0 -47
  78. package/dist/chunk-JSR26OQG.js.map +0 -7
  79. package/dist/chunk-MUD34BHM.js.map +0 -7
  80. package/dist/chunk-NDFJPKT7.js.map +0 -7
  81. package/dist/commands-QXWCHX5K.js +0 -51
  82. package/dist/prompts-QIFYQCCH.js +0 -53
  83. package/dist/query-AA5M6NJ4.js +0 -55
  84. package/dist/tools-UZYXHSUA.js +0 -52
  85. /package/dist/{REPL-Q3IP3BNQ.js.map → REPL-QZ2IC46G.js.map} +0 -0
  86. /package/dist/{acp-AUKWBWMU.js.map → acp-2CYBFXCM.js.map} +0 -0
  87. /package/dist/{agentsValidate-POOZ6Z2B.js.map → agentsValidate-PJWT2D5K.js.map} +0 -0
  88. /package/dist/{ask-KWA2DNIV.js.map → ask-QDI62NUO.js.map} +0 -0
  89. /package/dist/{autoUpdater-EOXG42SO.js.map → autoUpdater-MJGYKTEX.js.map} +0 -0
  90. /package/dist/{chunk-BQYXHHWP.js.map → chunk-2ZPAB3BG.js.map} +0 -0
  91. /package/dist/{chunk-VUISUCOO.js.map → chunk-3VMP3N5I.js.map} +0 -0
  92. /package/dist/{chunk-47EXCNW6.js.map → chunk-52YKRUQU.js.map} +0 -0
  93. /package/dist/{chunk-GTEB77DG.js.map → chunk-6PLT4FZB.js.map} +0 -0
  94. /package/dist/{chunk-Z6TEUSJQ.js.map → chunk-7FQPMZMZ.js.map} +0 -0
  95. /package/dist/{chunk-CPXJHNYY.js.map → chunk-7KMREPVU.js.map} +0 -0
  96. /package/dist/{chunk-ZOWRLM6Q.js.map → chunk-AIEYODAB.js.map} +0 -0
  97. /package/dist/{chunk-S75DS5IC.js.map → chunk-AXB5KBDU.js.map} +0 -0
  98. /package/dist/{chunk-RPFER2VQ.js.map → chunk-BTEIUG6Z.js.map} +0 -0
  99. /package/dist/{chunk-6BRCM2E4.js.map → chunk-EXCVPBNU.js.map} +0 -0
  100. /package/dist/{chunk-IPYLXGFV.js.map → chunk-FJQEBFRT.js.map} +0 -0
  101. /package/dist/{chunk-66JIUGLV.js.map → chunk-GH326UHJ.js.map} +0 -0
  102. /package/dist/{chunk-OEH4JATH.js.map → chunk-HDLAUMCO.js.map} +0 -0
  103. /package/dist/{chunk-T52MGYKQ.js.map → chunk-HQIRTFBW.js.map} +0 -0
  104. /package/dist/{chunk-DD2OYKDE.js.map → chunk-I7634HZL.js.map} +0 -0
  105. /package/dist/{chunk-JLQ6NN6N.js.map → chunk-JG4YQHLV.js.map} +0 -0
  106. /package/dist/{chunk-SVQXV5Q5.js.map → chunk-JWMY47RD.js.map} +0 -0
  107. /package/dist/{chunk-JUE7XD3T.js.map → chunk-KY7NHWWW.js.map} +0 -0
  108. /package/dist/{chunk-QYIH3X4U.js.map → chunk-L3IBTGKO.js.map} +0 -0
  109. /package/dist/{chunk-4V6WD6R2.js.map → chunk-PUPSOZGD.js.map} +0 -0
  110. /package/dist/{chunk-MXJWHBOD.js.map → chunk-TSC3H7QP.js.map} +0 -0
  111. /package/dist/{chunk-DT4HVZ3Y.js.map → chunk-U7WZR3D2.js.map} +0 -0
  112. /package/dist/{chunk-5UOVQ6ES.js.map → chunk-UJ4SCNWQ.js.map} +0 -0
  113. /package/dist/{chunk-MXDHTE5J.js.map → chunk-Y4WFOPYP.js.map} +0 -0
  114. /package/dist/{chunk-NWRTSS7D.js.map → chunk-YO52VXXI.js.map} +0 -0
  115. /package/dist/{cli-IELXRUTX.js.map → cli-4KO6R5FN.js.map} +0 -0
  116. /package/dist/{commands-QXWCHX5K.js.map → commands-RUXGUN5U.js.map} +0 -0
  117. /package/dist/{config-77DZQTQK.js.map → config-XD3YFQSX.js.map} +0 -0
  118. /package/dist/{context-KLUMCLFT.js.map → context-PO2UESD7.js.map} +0 -0
  119. /package/dist/{customCommands-ISEA2746.js.map → customCommands-UEUPC4VR.js.map} +0 -0
  120. /package/dist/{env-J4F7PRGG.js.map → env-FI72RSRG.js.map} +0 -0
  121. /package/dist/{file-KRCHS5A5.js.map → file-PYLUP7M3.js.map} +0 -0
  122. /package/dist/{llm-6XARMLJR.js.map → llm-ALKRU6UP.js.map} +0 -0
  123. /package/dist/{llmLazy-GRPZWGAK.js.map → llmLazy-XWYVEF7I.js.map} +0 -0
  124. /package/dist/{loader-WUNIG65J.js.map → loader-3K6BN6G3.js.map} +0 -0
  125. /package/dist/{lsp-DL76IXYS.js.map → lsp-QYFRYHJH.js.map} +0 -0
  126. /package/dist/{lspAnchor-VPPXXUNO.js.map → lspAnchor-XN3IVTIB.js.map} +0 -0
  127. /package/dist/{mcp-KY56TM6T.js.map → mcp-RIONBCXG.js.map} +0 -0
  128. /package/dist/{mentionProcessor-E3ITBICV.js.map → mentionProcessor-EOZLTQXF.js.map} +0 -0
  129. /package/dist/{messages-DT4HTEOS.js.map → messages-UTB732JP.js.map} +0 -0
  130. /package/dist/{model-KCH57MST.js.map → model-456IYAUB.js.map} +0 -0
  131. /package/dist/{openai-BNPU7EJH.js.map → openai-2RFED4YB.js.map} +0 -0
  132. /package/dist/{outputStyles-QE2JKRBE.js.map → outputStyles-24VCXHCR.js.map} +0 -0
  133. /package/dist/{pluginRuntime-NB3KNFSZ.js.map → pluginRuntime-GUV5KI2J.js.map} +0 -0
  134. /package/dist/{pluginValidation-KVCOIKER.js.map → pluginValidation-OO454KKW.js.map} +0 -0
  135. /package/dist/{prompts-QIFYQCCH.js.map → prompts-IXAHJVVK.js.map} +0 -0
  136. /package/dist/{pybAgentSessionLoad-SCPRT5NR.js.map → pybAgentSessionLoad-I3ZACINO.js.map} +0 -0
  137. /package/dist/{pybAgentSessionResume-VKEMMVH7.js.map → pybAgentSessionResume-DVHX23VD.js.map} +0 -0
  138. /package/dist/{pybAgentStreamJsonSession-G6TCRJIW.js.map → pybAgentStreamJsonSession-EW3IOR7R.js.map} +0 -0
  139. /package/dist/{pybHooks-T6RPQN5F.js.map → pybHooks-WUXXVPAX.js.map} +0 -0
  140. /package/dist/{query-AA5M6NJ4.js.map → query-SXZDETWN.js.map} +0 -0
  141. /package/dist/{registry-CZRNYJ22.js.map → registry-BL3M7B2R.js.map} +0 -0
  142. /package/dist/{ripgrep-URB4ZUF3.js.map → ripgrep-SYBJ5BYB.js.map} +0 -0
  143. /package/dist/{skillMarketplace-NC4WL6B5.js.map → skillMarketplace-5PMVM7VU.js.map} +0 -0
  144. /package/dist/{state-DXHBJ5GD.js.map → state-3IFYM672.js.map} +0 -0
  145. /package/dist/{theme-CJU6VJXX.js.map → theme-WZJJJCKJ.js.map} +0 -0
  146. /package/dist/{toolPermissionSettings-F3CNX7NA.js.map → toolPermissionSettings-PBLUJ4CI.js.map} +0 -0
  147. /package/dist/{tools-UZYXHSUA.js.map → tools-5LUTKVZL.js.map} +0 -0
  148. /package/dist/{userInput-GIXZP2YY.js.map → userInput-NV7IAHYR.js.map} +0 -0
@@ -3,18 +3,18 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  formatValidationResult,
5
5
  validatePluginOrMarketplacePath
6
- } from "./chunk-BQYXHHWP.js";
6
+ } from "./chunk-2ZPAB3BG.js";
7
7
  import {
8
8
  loadPybAgentSessionMessages
9
- } from "./chunk-GTEB77DG.js";
9
+ } from "./chunk-6PLT4FZB.js";
10
10
  import {
11
11
  listPybAgentSessions
12
- } from "./chunk-JUE7XD3T.js";
12
+ } from "./chunk-KY7NHWWW.js";
13
13
  import {
14
14
  appendSessionCustomTitleRecord,
15
15
  appendSessionJsonlFromMessage,
16
16
  appendSessionTagRecord
17
- } from "./chunk-JLQ6NN6N.js";
17
+ } from "./chunk-JG4YQHLV.js";
18
18
  import {
19
19
  drainHookSystemPromptAdditions,
20
20
  getHookTranscriptPath,
@@ -26,7 +26,7 @@ import {
26
26
  runStopHooks,
27
27
  runUserPromptSubmitHooks,
28
28
  updateHookTranscriptForMessages
29
- } from "./chunk-T52MGYKQ.js";
29
+ } from "./chunk-HQIRTFBW.js";
30
30
  import {
31
31
  DEFAULT_OUTPUT_STYLE,
32
32
  getAvailableOutputStyles,
@@ -35,16 +35,16 @@ import {
35
35
  getOutputStyleSystemPromptAdditions,
36
36
  resolveOutputStyleName,
37
37
  setCurrentOutputStyle
38
- } from "./chunk-5UOVQ6ES.js";
38
+ } from "./chunk-UJ4SCNWQ.js";
39
39
  import {
40
40
  fetchCustomModels,
41
41
  getModelFeatures
42
- } from "./chunk-NWRTSS7D.js";
42
+ } from "./chunk-YO52VXXI.js";
43
43
  import {
44
44
  queryLLM,
45
45
  queryQuick,
46
46
  verifyApiKey
47
- } from "./chunk-SVQXV5Q5.js";
47
+ } from "./chunk-JWMY47RD.js";
48
48
  import {
49
49
  DEFAULT_TIMEOUT_MS,
50
50
  FallbackToolUseRejectedMessage,
@@ -58,7 +58,7 @@ import {
58
58
  listMCPServers,
59
59
  loadMergedSettings,
60
60
  normalizeSandboxRuntimeConfigFromSettings
61
- } from "./chunk-DD2OYKDE.js";
61
+ } from "./chunk-I7634HZL.js";
62
62
  import {
63
63
  addMarketplace,
64
64
  disableSkillPlugin,
@@ -71,11 +71,11 @@ import {
71
71
  refreshMarketplaceAsync,
72
72
  removeMarketplace,
73
73
  uninstallSkillPlugin
74
- } from "./chunk-47EXCNW6.js";
74
+ } from "./chunk-52YKRUQU.js";
75
75
  import {
76
76
  loadToolPermissionContextFromDisk,
77
77
  persistToolPermissionUpdateToDisk
78
- } from "./chunk-QYIH3X4U.js";
78
+ } from "./chunk-L3IBTGKO.js";
79
79
  import {
80
80
  applyToolPermissionContextUpdate,
81
81
  createDefaultToolPermissionContext
@@ -88,7 +88,7 @@ import {
88
88
  resetReminderSession,
89
89
  setTodos,
90
90
  systemReminderService
91
- } from "./chunk-DT4HVZ3Y.js";
91
+ } from "./chunk-U7WZR3D2.js";
92
92
  import {
93
93
  getSessionState
94
94
  } from "./chunk-ERMQRV55.js";
@@ -97,7 +97,7 @@ import {
97
97
  getActiveAgents,
98
98
  getAgentByType,
99
99
  getAllAgents
100
- } from "./chunk-RPFER2VQ.js";
100
+ } from "./chunk-BTEIUG6Z.js";
101
101
  import {
102
102
  API_ERROR_MESSAGE_PREFIX,
103
103
  CANCEL_MESSAGE,
@@ -127,7 +127,7 @@ import {
127
127
  processUserInput,
128
128
  reorderMessages,
129
129
  stripSystemMessages
130
- } from "./chunk-MXDHTE5J.js";
130
+ } from "./chunk-Y4WFOPYP.js";
131
131
  import {
132
132
  getRequestStatus,
133
133
  setRequestStatus,
@@ -157,7 +157,7 @@ import {
157
157
  normalizeFilePath,
158
158
  readTextContent,
159
159
  writeTextContent
160
- } from "./chunk-66JIUGLV.js";
160
+ } from "./chunk-GH326UHJ.js";
161
161
  import {
162
162
  parseBlockEdits
163
163
  } from "./chunk-QWIBSCDN.js";
@@ -167,18 +167,18 @@ import {
167
167
  ParserRegistry,
168
168
  initParser,
169
169
  loadLanguage
170
- } from "./chunk-ZOWRLM6Q.js";
170
+ } from "./chunk-AIEYODAB.js";
171
171
  import {
172
172
  getSettingsFileCandidates,
173
173
  loadSettingsWithLegacyFallback,
174
174
  readSettingsFile
175
- } from "./chunk-CPXJHNYY.js";
175
+ } from "./chunk-7KMREPVU.js";
176
176
  import {
177
177
  getCustomCommandDirectories,
178
178
  hasCustomCommands,
179
179
  loadCustomCommands,
180
180
  reloadCustomCommands
181
- } from "./chunk-6BRCM2E4.js";
181
+ } from "./chunk-EXCVPBNU.js";
182
182
  import {
183
183
  getSessionPlugins
184
184
  } from "./chunk-BJSWTHRM.js";
@@ -186,7 +186,7 @@ import {
186
186
  ModelManager,
187
187
  getModelManager,
188
188
  isDefaultSlowAndCapableModel
189
- } from "./chunk-IPYLXGFV.js";
189
+ } from "./chunk-FJQEBFRT.js";
190
190
  import {
191
191
  getCodeStyle,
192
192
  getContext,
@@ -194,13 +194,13 @@ import {
194
194
  getIsGit,
195
195
  getProjectDocs,
196
196
  getProjectStructureStatisticsBlock
197
- } from "./chunk-MUD34BHM.js";
197
+ } from "./chunk-EE2HWPNB.js";
198
198
  import {
199
199
  ripGrep
200
- } from "./chunk-4V6WD6R2.js";
200
+ } from "./chunk-PUPSOZGD.js";
201
201
  import {
202
202
  getTheme
203
- } from "./chunk-S75DS5IC.js";
203
+ } from "./chunk-AXB5KBDU.js";
204
204
  import {
205
205
  DEFAULT_GLOBAL_CONFIG,
206
206
  enableConfigs,
@@ -213,7 +213,7 @@ import {
213
213
  saveGlobalConfig,
214
214
  setAllPointersToModel,
215
215
  setModelPointer
216
- } from "./chunk-Z6TEUSJQ.js";
216
+ } from "./chunk-7FQPMZMZ.js";
217
217
  import {
218
218
  AbortError
219
219
  } from "./chunk-RQVLBMP7.js";
@@ -222,7 +222,7 @@ import {
222
222
  getCurrentRequest,
223
223
  logUserFriendly,
224
224
  markPhase
225
- } from "./chunk-OEH4JATH.js";
225
+ } from "./chunk-HDLAUMCO.js";
226
226
  import {
227
227
  ASCII_LOGO,
228
228
  BunShell,
@@ -251,6 +251,7 @@ import {
251
251
  getTaskOutputFilePath,
252
252
  getXdgConfigDir,
253
253
  hydratePlanSlugFromMessages,
254
+ isContextScanDisabled,
254
255
  isMainPlanFilePathForActiveConversation,
255
256
  logError,
256
257
  overwriteLog,
@@ -262,10 +263,10 @@ import {
262
263
  setCwd,
263
264
  shouldApplyToolOutputTruncation,
264
265
  truncateToolOutput
265
- } from "./chunk-J46HCSM3.js";
266
+ } from "./chunk-KM77MFAV.js";
266
267
  import {
267
268
  MACRO
268
- } from "./chunk-R47CUCI3.js";
269
+ } from "./chunk-DZGSXGNO.js";
269
270
  import {
270
271
  __export
271
272
  } from "./chunk-I3J4JYES.js";
@@ -446,7 +447,7 @@ var getCommandSubcommandPrefix = memoize(
446
447
  var getCommandPrefix = memoize(
447
448
  async (command4, abortSignal) => {
448
449
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
449
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-6XARMLJR.js");
450
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-ALKRU6UP.js");
450
451
  const response = await queryQuick2({
451
452
  systemPrompt,
452
453
  userPrompt,
@@ -4248,7 +4249,7 @@ function formatParseError(error) {
4248
4249
  return error instanceof Error ? error.message : String(error);
4249
4250
  }
4250
4251
  async function defaultGateQuery(args) {
4251
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-6XARMLJR.js");
4252
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-ALKRU6UP.js");
4252
4253
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4253
4254
  const messages = [
4254
4255
  {
@@ -4628,6 +4629,7 @@ function getCommandSource(context) {
4628
4629
  import { Box as Box5, Text as Text5 } from "ink";
4629
4630
  import React5 from "react";
4630
4631
  import { z } from "zod";
4632
+ import { parse as parse4 } from "node-html-parser";
4631
4633
 
4632
4634
  // src/ui/components/Cost.tsx
4633
4635
  import * as React4 from "react";
@@ -4643,18 +4645,20 @@ function Cost({ costUSD, durationMs, debug: debug2 }) {
4643
4645
  // src/tools/network/WebFetchTool/prompt.ts
4644
4646
  var TOOL_NAME_FOR_PROMPT = "WebFetch";
4645
4647
  var PROMPT = `
4646
- - Fetches content from a specified URL and processes it using an AI model
4647
- - Takes a URL and a prompt as input
4648
- - Fetches the URL content, converts HTML to markdown
4649
- - Processes the content with the prompt using a small, fast model
4650
- - Returns the model's response about the content
4651
- - Use this tool when you need to retrieve and analyze web content
4648
+ - Fetches content from a specified URL
4649
+ - Takes a URL and optional prompt/format as input
4650
+ - Fetches the URL content, converts HTML to the requested format
4651
+ - Processes the content with the prompt using a small, fast model when provided
4652
+ - Returns either the model's response or the formatted content
4653
+ - Use this tool when you need to retrieve or analyze web content
4652
4654
 
4653
4655
  Usage notes:
4654
4656
  - IMPORTANT: If an MCP-provided web fetch tool is available, prefer using that tool instead of this one, as it may have fewer restrictions.
4655
4657
  - The URL must be a fully-formed valid URL
4656
4658
  - HTTP URLs will be automatically upgraded to HTTPS
4657
4659
  - The prompt should describe what information you want to extract from the page
4660
+ - Format options: "markdown" (default), "text", or "html"
4661
+ - Timeout is optional and defaults to 30 seconds
4658
4662
  - This tool is read-only and does not modify any files
4659
4663
  - Results may be summarized if the content is very large
4660
4664
  - Includes a self-cleaning 15-minute cache for faster responses when repeatedly accessing the same URL
@@ -4692,8 +4696,8 @@ turndownService.addRule("cleanLinks", {
4692
4696
  });
4693
4697
  function convertHtmlToMarkdown(html) {
4694
4698
  try {
4695
- const cleanHtml = html.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "").replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "").replace(/<!--[\s\S]*?-->/g, "").replace(/\s+/g, " ").trim();
4696
- const markdown = turndownService.turndown(cleanHtml);
4699
+ const cleanHtml2 = html.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "").replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "").replace(/<!--[\s\S]*?-->/g, "").replace(/\s+/g, " ").trim();
4700
+ const markdown = turndownService.turndown(cleanHtml2);
4697
4701
  return markdown.replace(/\n{3,}/g, "\n\n").replace(/^\s+|\s+$/gm, "").trim();
4698
4702
  } catch (error) {
4699
4703
  throw new Error(
@@ -4748,7 +4752,9 @@ var urlCache = new URLCache();
4748
4752
  // src/tools/network/WebFetchTool/WebFetchTool.tsx
4749
4753
  var inputSchema = z.strictObject({
4750
4754
  url: z.string().url().describe("The URL to fetch content from"),
4751
- prompt: z.string().describe("The prompt to run on the fetched content")
4755
+ prompt: z.string().optional().describe("Optional prompt to run on the fetched content"),
4756
+ format: z.enum(["markdown", "html", "text"]).optional().describe("Output format (default: markdown)"),
4757
+ timeout: z.number().optional().describe("Timeout in seconds (default: 30)")
4752
4758
  });
4753
4759
  var FETCH_TIMEOUT_MS = 3e4;
4754
4760
  var MAX_URL_LENGTH = 2e3;
@@ -4840,6 +4846,27 @@ function truncateFetchedContent(content) {
4840
4846
  if (content.length <= MAX_CONTENT_CHARS) return content;
4841
4847
  return `${content.substring(0, MAX_CONTENT_CHARS)}...[content truncated]`;
4842
4848
  }
4849
+ function cleanHtml(html) {
4850
+ const root = parse4(html);
4851
+ const elementsToRemove = root.querySelectorAll(
4852
+ "script, style, nav, footer, iframe, noscript, object, embed"
4853
+ );
4854
+ elementsToRemove.forEach((el) => el.remove());
4855
+ return root.toString();
4856
+ }
4857
+ function convertHtmlToText(html) {
4858
+ const cleaned = cleanHtml(html);
4859
+ const root = parse4(cleaned);
4860
+ return root.textContent.trim();
4861
+ }
4862
+ function applyFormat(rawContent, contentType, format3) {
4863
+ if (!contentType.toLowerCase().includes("text/html")) {
4864
+ return rawContent;
4865
+ }
4866
+ if (format3 === "html") return cleanHtml(rawContent);
4867
+ if (format3 === "text") return convertHtmlToText(rawContent);
4868
+ return convertHtmlToMarkdown(rawContent);
4869
+ }
4843
4870
  function isMarkdownHost(url2, contentType) {
4844
4871
  const lowerContentType = contentType.toLowerCase();
4845
4872
  if (lowerContentType.includes("text/markdown")) return true;
@@ -4950,9 +4977,15 @@ var WebFetchTool = {
4950
4977
  }
4951
4978
  return { result: true };
4952
4979
  },
4953
- renderToolUseMessage({ url: url2, prompt }, { verbose }) {
4980
+ renderToolUseMessage({ url: url2, prompt, format: format3, timeout }, { verbose }) {
4954
4981
  if (verbose) {
4955
- return `url: "${url2}"${prompt ? `, prompt: "${prompt}"` : ""}`;
4982
+ const details = [
4983
+ `url: "${url2}"`,
4984
+ prompt ? `prompt: "${prompt}"` : null,
4985
+ format3 ? `format: "${format3}"` : null,
4986
+ timeout ? `timeout: ${timeout}s` : null
4987
+ ].filter(Boolean);
4988
+ return details.join(", ");
4956
4989
  }
4957
4990
  return url2;
4958
4991
  },
@@ -4963,14 +4996,19 @@ var WebFetchTool = {
4963
4996
  return /* @__PURE__ */ React5.createElement(Box5, { justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React5.createElement(Box5, { flexDirection: "row" }, /* @__PURE__ */ React5.createElement(Text5, null, "\xA0\xA0\u23BF \xA0Received "), /* @__PURE__ */ React5.createElement(Text5, { bold: true }, formatBytes(output.bytes), " "), /* @__PURE__ */ React5.createElement(Text5, null, "(", output.code, " ", output.codeText, ")")), /* @__PURE__ */ React5.createElement(Cost, { costUSD: 0, durationMs: output.durationMs, debug: false }));
4964
4997
  },
4965
4998
  renderResultForAssistant(output) {
4999
+ if (output.mode === "fetch") {
5000
+ return `Content from ${output.url} (Format: ${output.format}):
5001
+
5002
+ ${output.result}`;
5003
+ }
4966
5004
  return output.result;
4967
5005
  },
4968
- async *call({ url: url2, prompt }, context) {
5006
+ async *call({ url: url2, prompt, format: format3, timeout }, context) {
4969
5007
  const normalizedUrl = normalizeUrl(url2);
4970
5008
  const start = Date.now();
4971
5009
  const timeoutSignal = createTimeoutSignal(
4972
5010
  context.abortController.signal,
4973
- FETCH_TIMEOUT_MS
5011
+ Math.max(1, Number.isFinite(timeout) ? Number(timeout) : 30) * 1e3 || FETCH_TIMEOUT_MS
4974
5012
  );
4975
5013
  try {
4976
5014
  const cached = urlCache.get(normalizedUrl);
@@ -4992,7 +5030,10 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
4992
5030
  codeText: codeText2,
4993
5031
  result: result2,
4994
5032
  durationMs: Date.now() - start,
4995
- url: normalizedUrl
5033
+ url: normalizedUrl,
5034
+ mode: "analysis",
5035
+ format: "markdown",
5036
+ cached: Boolean(cached)
4996
5037
  };
4997
5038
  yield {
4998
5039
  type: "result",
@@ -5004,7 +5045,7 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
5004
5045
  let bytes = cached ? cached.bytes : 0;
5005
5046
  let code = cached ? cached.code : 200;
5006
5047
  let codeText = cached ? cached.codeText : "OK";
5007
- let markdown = cached ? cached.content : "";
5048
+ let rawContent = cached ? cached.rawContent : "";
5008
5049
  let contentType = cached ? cached.contentType : "";
5009
5050
  if (fetched && fetched.type === "response") {
5010
5051
  const response = fetched.response;
@@ -5013,36 +5054,47 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
5013
5054
  contentType = response.headers.get("content-type") || "";
5014
5055
  const { text: raw, bytes: responseBytes } = await readResponseTextLimited(response, MAX_RESPONSE_BYTES);
5015
5056
  bytes = responseBytes;
5016
- const converted = contentType.toLowerCase().includes("text/html") ? convertHtmlToMarkdown(raw) : raw;
5017
- markdown = truncateFetchedContent(converted);
5057
+ rawContent = raw;
5018
5058
  urlCache.set(normalizedUrl, {
5019
5059
  bytes,
5020
5060
  code,
5021
5061
  codeText,
5022
- content: markdown,
5062
+ rawContent,
5023
5063
  contentType
5024
5064
  });
5025
5065
  }
5026
- const allowBroaderQuoting = isMarkdownHost(normalizedUrl, contentType);
5027
- const userPrompt = buildWebFetchApplyPrompt(
5028
- markdown,
5029
- prompt,
5030
- allowBroaderQuoting
5066
+ const outputFormat = format3 ?? "markdown";
5067
+ const formatted = truncateFetchedContent(
5068
+ applyFormat(rawContent, contentType, outputFormat)
5031
5069
  );
5032
- const aiResponse = await queryQuick({
5033
- systemPrompt: [],
5034
- userPrompt,
5035
- enablePromptCaching: false,
5036
- signal: timeoutSignal.signal
5037
- });
5038
- const result = aiResponse.message.content[0]?.text || "No response from model";
5070
+ let result = formatted;
5071
+ let mode = "fetch";
5072
+ if (prompt && prompt.trim()) {
5073
+ const allowBroaderQuoting = isMarkdownHost(normalizedUrl, contentType);
5074
+ const userPrompt = buildWebFetchApplyPrompt(
5075
+ formatted,
5076
+ prompt,
5077
+ allowBroaderQuoting
5078
+ );
5079
+ const aiResponse = await queryQuick({
5080
+ systemPrompt: [],
5081
+ userPrompt,
5082
+ enablePromptCaching: false,
5083
+ signal: timeoutSignal.signal
5084
+ });
5085
+ result = aiResponse.message.content[0]?.text || "No response from model";
5086
+ mode = "analysis";
5087
+ }
5039
5088
  const output = {
5040
5089
  bytes,
5041
5090
  code,
5042
5091
  codeText,
5043
5092
  result,
5044
5093
  durationMs: Date.now() - start,
5045
- url: normalizedUrl
5094
+ url: normalizedUrl,
5095
+ mode,
5096
+ format: outputFormat,
5097
+ cached: Boolean(cached)
5046
5098
  };
5047
5099
  yield {
5048
5100
  type: "result",
@@ -5057,7 +5109,10 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
5057
5109
  codeText: "",
5058
5110
  result: `Error processing URL ${normalizedUrl}: ${message}`,
5059
5111
  durationMs: Date.now() - start,
5060
- url: normalizedUrl
5112
+ url: normalizedUrl,
5113
+ mode: "analysis",
5114
+ format: "markdown",
5115
+ cached: false
5061
5116
  };
5062
5117
  yield {
5063
5118
  type: "result",
@@ -6509,7 +6564,7 @@ var FileEditTool = {
6509
6564
  const originalFileContent = currentFileContent;
6510
6565
  let totalPatch = [];
6511
6566
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6512
- const { findLspAnchor } = await import("./lspAnchor-VPPXXUNO.js");
6567
+ const { findLspAnchor } = await import("./lspAnchor-XN3IVTIB.js");
6513
6568
  for (const op of editOperations) {
6514
6569
  const normalizedSearch = normalizeLineEndings(op.search);
6515
6570
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -8494,7 +8549,7 @@ IMPORTANT - Use the correct year in search queries:
8494
8549
  `.trim();
8495
8550
 
8496
8551
  // src/tools/network/WebSearchTool/searchProviders.ts
8497
- import { parse as parse4 } from "node-html-parser";
8552
+ import { parse as parse5 } from "node-html-parser";
8498
8553
  var duckDuckGoSearchProvider = {
8499
8554
  isEnabled: () => true,
8500
8555
  search: async (query2) => {
@@ -8512,7 +8567,7 @@ var duckDuckGoSearchProvider = {
8512
8567
  );
8513
8568
  }
8514
8569
  const html = await response.text();
8515
- const root = parse4(html);
8570
+ const root = parse5(html);
8516
8571
  const results = [];
8517
8572
  const resultNodes = root.querySelectorAll(".result.web-result");
8518
8573
  for (const node of resultNodes) {
@@ -11085,7 +11140,7 @@ async function createAndStoreApiKey(accessToken) {
11085
11140
  }
11086
11141
  saveGlobalConfig(config2);
11087
11142
  try {
11088
- const { resetAnthropicClient } = await import("./llm-6XARMLJR.js");
11143
+ const { resetAnthropicClient } = await import("./llm-ALKRU6UP.js");
11089
11144
  resetAnthropicClient();
11090
11145
  } catch {
11091
11146
  }
@@ -15321,10 +15376,10 @@ var mcp = {
15321
15376
  var mcp_default = mcp;
15322
15377
 
15323
15378
  // src/commands/plugin.ts
15324
- import { parse as parse6 } from "shell-quote";
15379
+ import { parse as parse7 } from "shell-quote";
15325
15380
  var PLUGIN_SCOPES = ["user", "project", "local"];
15326
15381
  function parseTokens(input) {
15327
- const parts = parse6(input);
15382
+ const parts = parse7(input);
15328
15383
  const out = [];
15329
15384
  for (const part of parts) {
15330
15385
  if (typeof part === "string") out.push(part);
@@ -15367,7 +15422,7 @@ async function refreshPluginRuntimeFromInstalls() {
15367
15422
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
15368
15423
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
15369
15424
  if (dirs.length === 0) return [];
15370
- const { configureSessionPlugins } = await import("./pluginRuntime-NB3KNFSZ.js");
15425
+ const { configureSessionPlugins } = await import("./pluginRuntime-GUV5KI2J.js");
15371
15426
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
15372
15427
  return errors;
15373
15428
  }
@@ -16036,7 +16091,7 @@ async function call(onDone, context) {
16036
16091
  ModelConfig,
16037
16092
  {
16038
16093
  onClose: () => {
16039
- import("./model-KCH57MST.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16094
+ import("./model-456IYAUB.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16040
16095
  reloadModelManager2();
16041
16096
  triggerModelConfigChange();
16042
16097
  onDone();
@@ -23771,7 +23826,7 @@ function useStatusLine() {
23771
23826
  // src/ui/components/PromptInput.tsx
23772
23827
  async function interpretHashCommand(input) {
23773
23828
  try {
23774
- const { queryQuick: queryQuick2 } = await import("./llm-6XARMLJR.js");
23829
+ const { queryQuick: queryQuick2 } = await import("./llm-ALKRU6UP.js");
23775
23830
  const systemPrompt = [
23776
23831
  "You're helping the user structure notes that will be added to their PYB.md file.",
23777
23832
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -24084,7 +24139,7 @@ function PromptInput({
24084
24139
  if (messages2.length) {
24085
24140
  if (mode === "bash") {
24086
24141
  onQuery(messages2, newAbortController).then(async () => {
24087
- const { getCwd: getCwd2 } = await import("./state-DXHBJ5GD.js");
24142
+ const { getCwd: getCwd2 } = await import("./state-3IFYM672.js");
24088
24143
  setCurrentPwd(getCwd2());
24089
24144
  });
24090
24145
  } else {
@@ -24647,6 +24702,13 @@ var PybContextManager = class _PybContextManager {
24647
24702
  }
24648
24703
  async initialize() {
24649
24704
  if (this.initPromise) return this.initPromise;
24705
+ if (isContextScanDisabled()) {
24706
+ this.projectDocsCache = "";
24707
+ this.projectStructureStatsCache = "";
24708
+ this.cacheInitialized = false;
24709
+ this.initPromise = null;
24710
+ return;
24711
+ }
24650
24712
  this.initPromise = (async () => {
24651
24713
  try {
24652
24714
  const [projectDocs, statsBlock] = await Promise.all([
@@ -24669,6 +24731,11 @@ var PybContextManager = class _PybContextManager {
24669
24731
  return this.initPromise;
24670
24732
  }
24671
24733
  getPybContext() {
24734
+ if (isContextScanDisabled()) {
24735
+ this.cacheInitialized = false;
24736
+ this.initPromise = null;
24737
+ return "";
24738
+ }
24672
24739
  if (!this.cacheInitialized) {
24673
24740
  this.initialize().catch((error) => {
24674
24741
  logError(error);
@@ -24685,6 +24752,13 @@ var PybContextManager = class _PybContextManager {
24685
24752
  return context;
24686
24753
  }
24687
24754
  async refreshCache() {
24755
+ if (isContextScanDisabled()) {
24756
+ this.projectDocsCache = "";
24757
+ this.projectStructureStatsCache = "";
24758
+ this.cacheInitialized = false;
24759
+ this.initPromise = null;
24760
+ return;
24761
+ }
24688
24762
  this.cacheInitialized = false;
24689
24763
  this.initPromise = null;
24690
24764
  await this.initialize();
@@ -24841,6 +24915,47 @@ Coding style, formatting, and organizational preferences. Communication patterns
24841
24915
  Important technical decisions made and their rationale. Alternative approaches considered and why they were rejected. Trade-offs accepted and their implications.
24842
24916
 
24843
24917
  Focus on information essential for continuing the conversation effectively, including specific details about code, files, errors, and plans.`;
24918
+ var AUTO_COMPACT_NOTICE = "Context automatically compressed due to token limit.";
24919
+ var RECOVERED_FILE_MARKER = "**Recovered File:";
24920
+ function getMessageText(message) {
24921
+ if (!message || typeof message !== "object") return null;
24922
+ if (message.type !== "user" && message.type !== "assistant") return null;
24923
+ const content = message.message?.content;
24924
+ if (typeof content === "string") return content;
24925
+ if (!Array.isArray(content)) return null;
24926
+ return content.filter((block) => block && typeof block === "object" && block.type === "text").map((block) => String(block.text ?? "")).join("");
24927
+ }
24928
+ function isAutoCompactNotice(message) {
24929
+ if (message.type !== "user") return false;
24930
+ const text = getMessageText(message);
24931
+ return Boolean(text && text.includes(AUTO_COMPACT_NOTICE));
24932
+ }
24933
+ function isRecoveredFileMessage(message) {
24934
+ if (message.type !== "user") return false;
24935
+ const text = getMessageText(message);
24936
+ return Boolean(text && text.includes(RECOVERED_FILE_MARKER));
24937
+ }
24938
+ function stripLeadingRecoveredFiles(messages) {
24939
+ let index = 0;
24940
+ while (index < messages.length && isRecoveredFileMessage(messages[index])) {
24941
+ index += 1;
24942
+ }
24943
+ return messages.slice(index);
24944
+ }
24945
+ function findLatestAutoCompactSummary(messages) {
24946
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
24947
+ if (!isAutoCompactNotice(messages[i])) continue;
24948
+ for (let j = i + 1; j < messages.length; j += 1) {
24949
+ if (messages[j].type !== "assistant") continue;
24950
+ const summaryText = getMessageText(messages[j]);
24951
+ if (summaryText && summaryText.trim().length > 0) {
24952
+ return { summaryText, summaryIndex: j };
24953
+ }
24954
+ }
24955
+ return null;
24956
+ }
24957
+ return null;
24958
+ }
24844
24959
  async function calculateThresholds(tokenCount) {
24845
24960
  const contextLimit = await getMainConversationContextLimit();
24846
24961
  return calculateAutoCompactThresholds(tokenCount, contextLimit);
@@ -24870,7 +24985,18 @@ async function checkAutoCompact(messages, toolUseContext) {
24870
24985
  }
24871
24986
  }
24872
24987
  async function executeAutoCompact(messages, toolUseContext) {
24873
- const summaryRequest = createUserMessage(COMPRESSION_PROMPT2);
24988
+ const previousSummary = findLatestAutoCompactSummary(messages);
24989
+ const summaryRequestContent = previousSummary ? `We already have an existing conversation summary:
24990
+
24991
+ <existing_summary>
24992
+ ${previousSummary.summaryText}
24993
+ </existing_summary>
24994
+
24995
+ Update and consolidate it using only the recent messages provided. Avoid repeating information that is already covered unless it has changed. Keep the same section headings.
24996
+
24997
+ ${COMPRESSION_PROMPT2}` : COMPRESSION_PROMPT2;
24998
+ const messagesForSummary = previousSummary ? stripLeadingRecoveredFiles(messages.slice(previousSummary.summaryIndex + 1)) : messages;
24999
+ const summaryRequest = createUserMessage(summaryRequestContent);
24874
25000
  const tokenCount = countTokens(messages);
24875
25001
  const modelManager = getModelManager();
24876
25002
  const compactResolution = modelManager.resolveModelWithInfo("compact");
@@ -24895,7 +25021,7 @@ async function executeAutoCompact(messages, toolUseContext) {
24895
25021
  );
24896
25022
  }
24897
25023
  const summaryResponse = await queryLLM(
24898
- normalizeMessagesForAPI([...messages, summaryRequest]),
25024
+ normalizeMessagesForAPI([...messagesForSummary, summaryRequest]),
24899
25025
  [
24900
25026
  "You are a helpful AI assistant tasked with creating comprehensive conversation summaries that preserve all essential context for continuing development work."
24901
25027
  ],
@@ -26954,7 +27080,7 @@ import { homedir as homedir7 } from "os";
26954
27080
  // src/commands/agents/generation.ts
26955
27081
  import { randomUUID as randomUUID5 } from "crypto";
26956
27082
  async function generateAgentWithClaude(prompt) {
26957
- const { queryModel } = await import("./llm-6XARMLJR.js");
27083
+ const { queryModel } = await import("./llm-ALKRU6UP.js");
26958
27084
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
26959
27085
 
26960
27086
  Return your response as a JSON object with exactly these fields:
@@ -31112,12 +31238,12 @@ IMPORTANT: Before you begin work, think about what the code you're editing is su
31112
31238
  }
31113
31239
  async function getEnvInfo() {
31114
31240
  const isGit = await getIsGit();
31115
- return `Here is useful information about the environment you are running in:
31241
+ return `Here is useful information about Current Runtime Environment you are running in (Do NOT assume defaults):
31116
31242
  <env>
31117
- Working directory: ${getCwd()}
31118
- Is directory a git repo: ${isGit ? "Yes" : "No"}
31119
- Platform: ${env.platform}
31120
- Today's date: ${(/* @__PURE__ */ new Date()).toLocaleDateString()}
31243
+ Current Working Directory: ${getCwd()}
31244
+ Current Git Repository Status: ${isGit ? "Yes" : "No"}
31245
+ Current System Platform(OS): ${env.platform}
31246
+ Current Date: ${(/* @__PURE__ */ new Date()).toLocaleDateString()}
31121
31247
  </env>`;
31122
31248
  }
31123
31249
  async function getAgentPrompt() {
@@ -31139,6 +31265,7 @@ export {
31139
31265
  UserBashInputMessage,
31140
31266
  Spinner,
31141
31267
  Cost,
31268
+ WebFetchTool,
31142
31269
  Select,
31143
31270
  hasReadPermission,
31144
31271
  hasWritePermission,