pybao-cli 1.3.93 → 1.3.95

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 (149) hide show
  1. package/dist/REPL-7WPVB4IF.js +47 -0
  2. package/dist/{acp-EVHOGBLR.js → acp-IP2EUY3O.js} +29 -29
  3. package/dist/{agentsValidate-SX5WCTHD.js → agentsValidate-YGYIFZ2Q.js} +7 -7
  4. package/dist/{ask-5256RCJR.js → ask-RXRDLJ2Q.js} +28 -28
  5. package/dist/{autoUpdater-62OEX27S.js → autoUpdater-WXXGD5CW.js} +3 -3
  6. package/dist/{chunk-ARHVL4GY.js → chunk-2CQ6B2EF.js} +4 -4
  7. package/dist/{chunk-D5GRAD3G.js → chunk-2OZWUTJN.js} +3 -3
  8. package/dist/{chunk-B55DFBEO.js → chunk-3ZXF2UHD.js} +2 -2
  9. package/dist/{chunk-PBKTN6PS.js → chunk-7VDXI7AR.js} +1 -1
  10. package/dist/{chunk-RCEEY77V.js → chunk-BKPUVKNL.js} +1 -1
  11. package/dist/{chunk-OUXWQ5VS.js → chunk-CH6GH2PY.js} +2 -2
  12. package/dist/{chunk-P5OMB2NR.js → chunk-DNDIMOXI.js} +1 -1
  13. package/dist/{chunk-TATJD3PS.js → chunk-EYQDSK5K.js} +1 -1
  14. package/dist/{chunk-HQU5FX5A.js → chunk-G75MDYMO.js} +2 -2
  15. package/dist/{chunk-BKLDKPLL.js → chunk-GQTOTLSY.js} +6 -3
  16. package/dist/chunk-GQTOTLSY.js.map +7 -0
  17. package/dist/{chunk-NQNSJDW7.js → chunk-GZJWX5KE.js} +3 -3
  18. package/dist/{chunk-DKLWXWL2.js → chunk-KOFUHO7S.js} +28 -11
  19. package/dist/{chunk-DKLWXWL2.js.map → chunk-KOFUHO7S.js.map} +2 -2
  20. package/dist/{chunk-JDY2JDD3.js → chunk-L66UZNNO.js} +125 -45
  21. package/dist/chunk-L66UZNNO.js.map +7 -0
  22. package/dist/{chunk-ZJIMLKMQ.js → chunk-NH77UCWT.js} +3 -3
  23. package/dist/{chunk-APVX3GSP.js → chunk-NPBMF2YV.js} +136 -62
  24. package/dist/chunk-NPBMF2YV.js.map +7 -0
  25. package/dist/{chunk-NCHRQKJP.js → chunk-O6BHLPRE.js} +1 -1
  26. package/dist/{chunk-NCHRQKJP.js.map → chunk-O6BHLPRE.js.map} +1 -1
  27. package/dist/{chunk-GGBJ6RZQ.js → chunk-OM6GCBT3.js} +3 -3
  28. package/dist/{chunk-UKADBDTZ.js → chunk-QSZWYMPZ.js} +7 -4
  29. package/dist/chunk-QSZWYMPZ.js.map +7 -0
  30. package/dist/{chunk-PWRCPRYF.js → chunk-R4AG75VT.js} +2 -2
  31. package/dist/{chunk-53LR6LMF.js → chunk-RIHUVOTZ.js} +2 -2
  32. package/dist/{chunk-JDEWLQHH.js → chunk-RQBIHTZO.js} +1 -1
  33. package/dist/{chunk-TNMW3LIC.js → chunk-RYCR3HAC.js} +4 -4
  34. package/dist/{chunk-2SDOBAYI.js → chunk-TC56HMSX.js} +2 -2
  35. package/dist/{chunk-A6332THM.js → chunk-UBJFL3ZW.js} +3 -3
  36. package/dist/{chunk-AI356RID.js → chunk-UQL55KPP.js} +3 -3
  37. package/dist/{chunk-SR3SWOX7.js → chunk-V77NDZPE.js} +1 -1
  38. package/dist/{chunk-ZZX3RSJM.js → chunk-VQ6RVQVH.js} +1 -1
  39. package/dist/{chunk-AKK6NTGD.js → chunk-XF3KOCXY.js} +1 -1
  40. package/dist/{chunk-A4LZLJ4E.js → chunk-ZC2N4I37.js} +2 -2
  41. package/dist/{chunk-Y5WRSDBM.js → chunk-ZPCPWVPN.js} +3 -3
  42. package/dist/{cli-LOINYVA4.js → cli-4G4Z26BL.js} +87 -87
  43. package/dist/commands-JPUDJKNX.js +51 -0
  44. package/dist/{config-ESCUISGA.js → config-YZNZQLXL.js} +4 -4
  45. package/dist/{context-A6RYVYH3.js → context-EZ47E5Q5.js} +7 -5
  46. package/dist/{customCommands-NP3YOHBP.js → customCommands-G527FNNJ.js} +4 -4
  47. package/dist/{env-QM2GQKSL.js → env-MZGL75G3.js} +2 -2
  48. package/dist/{file-COGPZQB2.js → file-MUZCEO7B.js} +4 -4
  49. package/dist/index.js +3 -3
  50. package/dist/{llm-DZMLOCDR.js → llm-NC2ZA7BQ.js} +29 -29
  51. package/dist/{llmLazy-L4VAGXRS.js → llmLazy-XNMS7UPG.js} +1 -1
  52. package/dist/{loader-J7FDM25W.js → loader-W35B3CAM.js} +4 -4
  53. package/dist/{lsp-ZJDBSAGL.js → lsp-VUBIB4E2.js} +6 -6
  54. package/dist/{lspAnchor-QUM3YKRZ.js → lspAnchor-4WXOLJUM.js} +6 -6
  55. package/dist/{mcp-TYRRTRZO.js → mcp-5P3ONWR7.js} +7 -7
  56. package/dist/{mentionProcessor-VBRYWNJ6.js → mentionProcessor-GCQ5NHV3.js} +5 -5
  57. package/dist/{messages-TI35HRUJ.js → messages-YTLYB5DI.js} +1 -1
  58. package/dist/{model-CYQGPU6S.js → model-HBR6OZOT.js} +5 -5
  59. package/dist/{openai-YJXPABCZ.js → openai-MS35XWNU.js} +5 -5
  60. package/dist/{outputStyles-54CH4AXQ.js → outputStyles-OWR2UZBL.js} +4 -4
  61. package/dist/{pluginRuntime-HUH43L3E.js → pluginRuntime-SN4Y5PIT.js} +6 -6
  62. package/dist/{pluginValidation-YZQAIFOB.js → pluginValidation-6DFK5G6T.js} +6 -6
  63. package/dist/prompts-ILVJ75E2.js +53 -0
  64. package/dist/{pybAgentSessionLoad-IDX6CZ7W.js → pybAgentSessionLoad-OLPYFTYS.js} +4 -4
  65. package/dist/{pybAgentSessionResume-G7CNXIM2.js → pybAgentSessionResume-VJ6G5ZUT.js} +4 -4
  66. package/dist/{pybAgentStreamJsonSession-4DK6ZF6D.js → pybAgentStreamJsonSession-GGISSUF3.js} +1 -1
  67. package/dist/{pybHooks-6NZEXF2Y.js → pybHooks-TFWZEUMM.js} +4 -4
  68. package/dist/query-DEBIJVZX.js +61 -0
  69. package/dist/{registry-MYSH5C4A.js → registry-U3FUZUBO.js} +5 -5
  70. package/dist/{ripgrep-UDJTJUDM.js → ripgrep-EMJZZFWK.js} +3 -3
  71. package/dist/{skillMarketplace-QUB6SCI3.js → skillMarketplace-FXCBEE6R.js} +3 -3
  72. package/dist/{state-H3ASL5UP.js → state-BMWIIFPG.js} +2 -2
  73. package/dist/{theme-N2PDKHSA.js → theme-J6RWKV4W.js} +5 -5
  74. package/dist/{toolPermissionSettings-H3A4FEPL.js → toolPermissionSettings-DSH46ML7.js} +6 -6
  75. package/dist/tools-LFQ5NCA7.js +52 -0
  76. package/dist/{userInput-2C2HUFUT.js → userInput-JGJXNAKY.js} +30 -30
  77. package/package.json +1 -1
  78. package/dist/REPL-YIK4SNUK.js +0 -47
  79. package/dist/chunk-APVX3GSP.js.map +0 -7
  80. package/dist/chunk-BKLDKPLL.js.map +0 -7
  81. package/dist/chunk-JDY2JDD3.js.map +0 -7
  82. package/dist/chunk-UKADBDTZ.js.map +0 -7
  83. package/dist/commands-5MM7DHYR.js +0 -51
  84. package/dist/prompts-MKDGNXMZ.js +0 -53
  85. package/dist/query-3JMCOSE3.js +0 -59
  86. package/dist/tools-JKFSGTP2.js +0 -52
  87. /package/dist/{REPL-YIK4SNUK.js.map → REPL-7WPVB4IF.js.map} +0 -0
  88. /package/dist/{acp-EVHOGBLR.js.map → acp-IP2EUY3O.js.map} +0 -0
  89. /package/dist/{agentsValidate-SX5WCTHD.js.map → agentsValidate-YGYIFZ2Q.js.map} +0 -0
  90. /package/dist/{ask-5256RCJR.js.map → ask-RXRDLJ2Q.js.map} +0 -0
  91. /package/dist/{autoUpdater-62OEX27S.js.map → autoUpdater-WXXGD5CW.js.map} +0 -0
  92. /package/dist/{chunk-ARHVL4GY.js.map → chunk-2CQ6B2EF.js.map} +0 -0
  93. /package/dist/{chunk-D5GRAD3G.js.map → chunk-2OZWUTJN.js.map} +0 -0
  94. /package/dist/{chunk-B55DFBEO.js.map → chunk-3ZXF2UHD.js.map} +0 -0
  95. /package/dist/{chunk-PBKTN6PS.js.map → chunk-7VDXI7AR.js.map} +0 -0
  96. /package/dist/{chunk-RCEEY77V.js.map → chunk-BKPUVKNL.js.map} +0 -0
  97. /package/dist/{chunk-OUXWQ5VS.js.map → chunk-CH6GH2PY.js.map} +0 -0
  98. /package/dist/{chunk-P5OMB2NR.js.map → chunk-DNDIMOXI.js.map} +0 -0
  99. /package/dist/{chunk-TATJD3PS.js.map → chunk-EYQDSK5K.js.map} +0 -0
  100. /package/dist/{chunk-HQU5FX5A.js.map → chunk-G75MDYMO.js.map} +0 -0
  101. /package/dist/{chunk-NQNSJDW7.js.map → chunk-GZJWX5KE.js.map} +0 -0
  102. /package/dist/{chunk-ZJIMLKMQ.js.map → chunk-NH77UCWT.js.map} +0 -0
  103. /package/dist/{chunk-GGBJ6RZQ.js.map → chunk-OM6GCBT3.js.map} +0 -0
  104. /package/dist/{chunk-PWRCPRYF.js.map → chunk-R4AG75VT.js.map} +0 -0
  105. /package/dist/{chunk-53LR6LMF.js.map → chunk-RIHUVOTZ.js.map} +0 -0
  106. /package/dist/{chunk-JDEWLQHH.js.map → chunk-RQBIHTZO.js.map} +0 -0
  107. /package/dist/{chunk-TNMW3LIC.js.map → chunk-RYCR3HAC.js.map} +0 -0
  108. /package/dist/{chunk-2SDOBAYI.js.map → chunk-TC56HMSX.js.map} +0 -0
  109. /package/dist/{chunk-A6332THM.js.map → chunk-UBJFL3ZW.js.map} +0 -0
  110. /package/dist/{chunk-AI356RID.js.map → chunk-UQL55KPP.js.map} +0 -0
  111. /package/dist/{chunk-SR3SWOX7.js.map → chunk-V77NDZPE.js.map} +0 -0
  112. /package/dist/{chunk-ZZX3RSJM.js.map → chunk-VQ6RVQVH.js.map} +0 -0
  113. /package/dist/{chunk-AKK6NTGD.js.map → chunk-XF3KOCXY.js.map} +0 -0
  114. /package/dist/{chunk-A4LZLJ4E.js.map → chunk-ZC2N4I37.js.map} +0 -0
  115. /package/dist/{chunk-Y5WRSDBM.js.map → chunk-ZPCPWVPN.js.map} +0 -0
  116. /package/dist/{cli-LOINYVA4.js.map → cli-4G4Z26BL.js.map} +0 -0
  117. /package/dist/{commands-5MM7DHYR.js.map → commands-JPUDJKNX.js.map} +0 -0
  118. /package/dist/{config-ESCUISGA.js.map → config-YZNZQLXL.js.map} +0 -0
  119. /package/dist/{context-A6RYVYH3.js.map → context-EZ47E5Q5.js.map} +0 -0
  120. /package/dist/{customCommands-NP3YOHBP.js.map → customCommands-G527FNNJ.js.map} +0 -0
  121. /package/dist/{env-QM2GQKSL.js.map → env-MZGL75G3.js.map} +0 -0
  122. /package/dist/{file-COGPZQB2.js.map → file-MUZCEO7B.js.map} +0 -0
  123. /package/dist/{llm-DZMLOCDR.js.map → llm-NC2ZA7BQ.js.map} +0 -0
  124. /package/dist/{llmLazy-L4VAGXRS.js.map → llmLazy-XNMS7UPG.js.map} +0 -0
  125. /package/dist/{loader-J7FDM25W.js.map → loader-W35B3CAM.js.map} +0 -0
  126. /package/dist/{lsp-ZJDBSAGL.js.map → lsp-VUBIB4E2.js.map} +0 -0
  127. /package/dist/{lspAnchor-QUM3YKRZ.js.map → lspAnchor-4WXOLJUM.js.map} +0 -0
  128. /package/dist/{mcp-TYRRTRZO.js.map → mcp-5P3ONWR7.js.map} +0 -0
  129. /package/dist/{mentionProcessor-VBRYWNJ6.js.map → mentionProcessor-GCQ5NHV3.js.map} +0 -0
  130. /package/dist/{messages-TI35HRUJ.js.map → messages-YTLYB5DI.js.map} +0 -0
  131. /package/dist/{model-CYQGPU6S.js.map → model-HBR6OZOT.js.map} +0 -0
  132. /package/dist/{openai-YJXPABCZ.js.map → openai-MS35XWNU.js.map} +0 -0
  133. /package/dist/{outputStyles-54CH4AXQ.js.map → outputStyles-OWR2UZBL.js.map} +0 -0
  134. /package/dist/{pluginRuntime-HUH43L3E.js.map → pluginRuntime-SN4Y5PIT.js.map} +0 -0
  135. /package/dist/{pluginValidation-YZQAIFOB.js.map → pluginValidation-6DFK5G6T.js.map} +0 -0
  136. /package/dist/{prompts-MKDGNXMZ.js.map → prompts-ILVJ75E2.js.map} +0 -0
  137. /package/dist/{pybAgentSessionLoad-IDX6CZ7W.js.map → pybAgentSessionLoad-OLPYFTYS.js.map} +0 -0
  138. /package/dist/{pybAgentSessionResume-G7CNXIM2.js.map → pybAgentSessionResume-VJ6G5ZUT.js.map} +0 -0
  139. /package/dist/{pybAgentStreamJsonSession-4DK6ZF6D.js.map → pybAgentStreamJsonSession-GGISSUF3.js.map} +0 -0
  140. /package/dist/{pybHooks-6NZEXF2Y.js.map → pybHooks-TFWZEUMM.js.map} +0 -0
  141. /package/dist/{query-3JMCOSE3.js.map → query-DEBIJVZX.js.map} +0 -0
  142. /package/dist/{registry-MYSH5C4A.js.map → registry-U3FUZUBO.js.map} +0 -0
  143. /package/dist/{ripgrep-UDJTJUDM.js.map → ripgrep-EMJZZFWK.js.map} +0 -0
  144. /package/dist/{skillMarketplace-QUB6SCI3.js.map → skillMarketplace-FXCBEE6R.js.map} +0 -0
  145. /package/dist/{state-H3ASL5UP.js.map → state-BMWIIFPG.js.map} +0 -0
  146. /package/dist/{theme-N2PDKHSA.js.map → theme-J6RWKV4W.js.map} +0 -0
  147. /package/dist/{toolPermissionSettings-H3A4FEPL.js.map → toolPermissionSettings-DSH46ML7.js.map} +0 -0
  148. /package/dist/{tools-JKFSGTP2.js.map → tools-LFQ5NCA7.js.map} +0 -0
  149. /package/dist/{userInput-2C2HUFUT.js.map → userInput-JGJXNAKY.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-AI356RID.js";
6
+ } from "./chunk-UQL55KPP.js";
7
7
  import {
8
8
  loadPybAgentSessionMessages
9
- } from "./chunk-PBKTN6PS.js";
9
+ } from "./chunk-7VDXI7AR.js";
10
10
  import {
11
11
  listPybAgentSessions
12
- } from "./chunk-RCEEY77V.js";
12
+ } from "./chunk-BKPUVKNL.js";
13
13
  import {
14
14
  appendSessionCustomTitleRecord,
15
15
  appendSessionJsonlFromMessage,
16
16
  appendSessionTagRecord
17
- } from "./chunk-53LR6LMF.js";
17
+ } from "./chunk-RIHUVOTZ.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-GGBJ6RZQ.js";
29
+ } from "./chunk-OM6GCBT3.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-OUXWQ5VS.js";
38
+ } from "./chunk-CH6GH2PY.js";
39
39
  import {
40
40
  fetchCustomModels,
41
41
  getModelFeatures
42
- } from "./chunk-HQU5FX5A.js";
42
+ } from "./chunk-G75MDYMO.js";
43
43
  import {
44
44
  queryLLM,
45
45
  queryQuick,
46
46
  verifyApiKey
47
- } from "./chunk-ARHVL4GY.js";
47
+ } from "./chunk-2CQ6B2EF.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-TNMW3LIC.js";
61
+ } from "./chunk-RYCR3HAC.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-TATJD3PS.js";
74
+ } from "./chunk-EYQDSK5K.js";
75
75
  import {
76
76
  loadToolPermissionContextFromDisk,
77
77
  persistToolPermissionUpdateToDisk
78
- } from "./chunk-ZJIMLKMQ.js";
78
+ } from "./chunk-NH77UCWT.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-B55DFBEO.js";
91
+ } from "./chunk-3ZXF2UHD.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-PWRCPRYF.js";
100
+ } from "./chunk-R4AG75VT.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-P5OMB2NR.js";
130
+ } from "./chunk-DNDIMOXI.js";
131
131
  import {
132
132
  getRequestStatus,
133
133
  setRequestStatus,
@@ -150,10 +150,10 @@ import {
150
150
  normalizeFilePath,
151
151
  readTextContent,
152
152
  writeTextContent
153
- } from "./chunk-A4LZLJ4E.js";
153
+ } from "./chunk-ZC2N4I37.js";
154
154
  import {
155
155
  ripGrep
156
- } from "./chunk-UKADBDTZ.js";
156
+ } from "./chunk-QSZWYMPZ.js";
157
157
  import {
158
158
  parseBlockEdits
159
159
  } from "./chunk-QWIBSCDN.js";
@@ -163,17 +163,17 @@ import {
163
163
  ParserRegistry,
164
164
  initParser,
165
165
  loadLanguage
166
- } from "./chunk-Y5WRSDBM.js";
166
+ } from "./chunk-ZPCPWVPN.js";
167
167
  import {
168
168
  getSettingsFileCandidates,
169
169
  loadSettingsWithLegacyFallback
170
- } from "./chunk-AKK6NTGD.js";
170
+ } from "./chunk-XF3KOCXY.js";
171
171
  import {
172
172
  getCustomCommandDirectories,
173
173
  hasCustomCommands,
174
174
  loadCustomCommands,
175
175
  reloadCustomCommands
176
- } from "./chunk-2SDOBAYI.js";
176
+ } from "./chunk-TC56HMSX.js";
177
177
  import {
178
178
  getSessionPlugins
179
179
  } from "./chunk-BJSWTHRM.js";
@@ -181,7 +181,7 @@ import {
181
181
  ModelManager,
182
182
  getModelManager,
183
183
  isDefaultSlowAndCapableModel
184
- } from "./chunk-A6332THM.js";
184
+ } from "./chunk-UBJFL3ZW.js";
185
185
  import {
186
186
  clearContextCache,
187
187
  getCodeStyle,
@@ -189,10 +189,10 @@ import {
189
189
  getGitState,
190
190
  getIsGit,
191
191
  getProjectDocs
192
- } from "./chunk-DKLWXWL2.js";
192
+ } from "./chunk-KOFUHO7S.js";
193
193
  import {
194
194
  getTheme
195
- } from "./chunk-SR3SWOX7.js";
195
+ } from "./chunk-V77NDZPE.js";
196
196
  import {
197
197
  DEFAULT_GLOBAL_CONFIG,
198
198
  enableConfigs,
@@ -205,7 +205,7 @@ import {
205
205
  saveGlobalConfig,
206
206
  setAllPointersToModel,
207
207
  setModelPointer
208
- } from "./chunk-BKLDKPLL.js";
208
+ } from "./chunk-GQTOTLSY.js";
209
209
  import {
210
210
  AbortError
211
211
  } from "./chunk-RQVLBMP7.js";
@@ -214,7 +214,7 @@ import {
214
214
  getCurrentRequest,
215
215
  logUserFriendly,
216
216
  markPhase
217
- } from "./chunk-JDEWLQHH.js";
217
+ } from "./chunk-RQBIHTZO.js";
218
218
  import {
219
219
  ASCII_LOGO,
220
220
  BunShell,
@@ -253,10 +253,10 @@ import {
253
253
  setCwd,
254
254
  shouldApplyToolOutputTruncation,
255
255
  truncateToolOutput
256
- } from "./chunk-ZZX3RSJM.js";
256
+ } from "./chunk-VQ6RVQVH.js";
257
257
  import {
258
258
  MACRO
259
- } from "./chunk-NCHRQKJP.js";
259
+ } from "./chunk-O6BHLPRE.js";
260
260
  import {
261
261
  formatTotalCost,
262
262
  getTotalAPIDuration,
@@ -444,7 +444,7 @@ var getCommandSubcommandPrefix = memoize(
444
444
  var getCommandPrefix = memoize(
445
445
  async (command4, abortSignal) => {
446
446
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
447
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-DZMLOCDR.js");
447
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-NC2ZA7BQ.js");
448
448
  const response = await queryQuick2({
449
449
  systemPrompt,
450
450
  userPrompt,
@@ -4246,7 +4246,7 @@ function formatParseError(error) {
4246
4246
  return error instanceof Error ? error.message : String(error);
4247
4247
  }
4248
4248
  async function defaultGateQuery(args) {
4249
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-DZMLOCDR.js");
4249
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-NC2ZA7BQ.js");
4250
4250
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4251
4251
  const messages = [
4252
4252
  {
@@ -6355,7 +6355,7 @@ Usage:
6355
6355
  \`\`\`
6356
6356
  3. **Multiple Edits**: You can provide multiple blocks in a single turn to perform batch edits.
6357
6357
  4. **Context**: Include enough surrounding lines in the SEARCH block to ensure uniqueness.
6358
- 5. **Indentation**: Preserve the exact indentation (tabs/spaces) of the original file in your SEARCH block.
6358
+ 5. **Indentation**: Preserve the exact indentation (tabs/spaces) of the original file in your SEARCH block. When copying lines from Read output, only copy the text after the line-number prefix. The prefix format is: spaces + line number + tab.
6359
6359
  6. **Smart Matching**: The tool uses a fuzzy matching engine and LSP anchoring. It can locate code even if there are minor differences in whitespace or indentation.
6360
6360
  7. **Verification (Recommended)**: Set \`verify: true\` to enable atomic verification. The tool will check for syntax errors after editing and automatically ROLLBACK if errors are detected. Use this for complex edits or when ensuring stability.
6361
6361
  8. **Thinking**: You can include "thinking" text between blocks; the tool will ignore it.
@@ -6560,7 +6560,7 @@ var FileEditTool = {
6560
6560
  const originalFileContent = currentFileContent;
6561
6561
  let totalPatch = [];
6562
6562
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6563
- const { findLspAnchor } = await import("./lspAnchor-QUM3YKRZ.js");
6563
+ const { findLspAnchor } = await import("./lspAnchor-4WXOLJUM.js");
6564
6564
  for (const op of editOperations) {
6565
6565
  const normalizedSearch = normalizeLineEndings(op.search);
6566
6566
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -7830,15 +7830,14 @@ var TOOL_NAME_FOR_PROMPT2 = "Glob";
7830
7830
  var DESCRIPTION4 = `- Fast file pattern matching tool that works with any codebase size
7831
7831
  - Supports glob patterns like "**/*.js" or "src/**/*.ts"
7832
7832
  - Returns matching file paths sorted by modification time
7833
- - Use this tool when you need to find files by name patterns
7834
- - **Semantic Search**: \`semantic\` defaults to true to search for code symbols (classes, functions, variables) when name matching finds nothing. This is powered by LSP and can find files based on their *content* definitions even if the filename is different.
7833
+ - Use this tool when you need to confirm file or directory existence by name patterns after building the index tree with LS
7835
7834
  - Layered enumeration enables multi-level directory/file discovery: use \`*/\` for directories, then for each directory run \`dir/*\` and \`dir/*/\` to expand level by level
7836
7835
  - Layered glob example: run \`*/\` to get top-level directories, then run \`src/*\` and \`src/*/\` to get second-level files and folders
7837
7836
  - You can combine Batch to run multiple Globs in parallel for faster locating, but Glob only matches paths/filenames; use Grep or LSP for content keyword searches
7838
7837
  - Parallel examples: \`*\` + \`*/\` + \`**/package.json\` + \`**/pyproject.toml\` + \`**/README*\`
7839
7838
  - Partition scan: run \`src/*\`, \`docs/*\`, \`tests/*\` in parallel to build a first-level structure snapshot
7840
7839
  - Multi-repo filtering: run \`*/.git\` and \`*/package.json\` in parallel to locate candidate repos
7841
- - Combination strategy: use parallel Glob for structure, parallel Grep for content, and for complex projects use Glob to narrow targets before Grep/LSP
7840
+ - Combination strategy: use LS to build the index tree, Glob to confirm existence, then Grep/LSP for content
7842
7841
  - When you are doing an open ended search that may require multiple rounds of globbing and grepping, use the Agent tool instead
7843
7842
  - You can call multiple tools in a single response. It is always better to speculatively perform multiple searches in parallel if they are potentially useful.
7844
7843
  `;
@@ -7991,7 +7990,7 @@ var TOOL_NAME_FOR_PROMPT3 = "Grep";
7991
7990
  var DESCRIPTION5 = `A powerful search tool built on ripgrep
7992
7991
 
7993
7992
  Usage:
7994
- - ALWAYS use Grep for search tasks. NEVER invoke \`grep\` or \`rg\` as a Bash command. The Grep tool has been optimized for correct permissions and access.
7993
+ - Use Grep for content search after an index tree is built with LS and paths are confirmed with Glob. NEVER invoke \`grep\` or \`rg\` as a Bash command. The Grep tool has been optimized for correct permissions and access.
7995
7994
  - Supports full regex syntax (e.g., "log.*Error", "function\\s+\\w+")
7996
7995
  - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
7997
7996
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
@@ -8002,7 +8001,7 @@ var DESCRIPTION5 = `A powerful search tool built on ripgrep
8002
8001
  - Batch parallel Grep: run multiple independent keywords in parallel when they target different scopes, file types, or regexes.
8003
8002
  - Multi-keyword single pass: for the same scope, use OR regex (e.g., \`foo|bar|baz\`) to reduce IO.
8004
8003
  - Tradeoff: parallel Grep speeds discovery but increases IO pressure on large repos.
8005
- - Practical flow: narrow with Glob, then Grep in parallel or OR regex within the scoped paths.
8004
+ - Practical flow: map with LS, confirm with Glob, then Grep in parallel or OR regex within the scoped paths.
8006
8005
  - Common usage examples:
8007
8006
  - Keyword: \`TODO\` in TS files with context: \`pattern="TODO"\`, \`glob="**/*.ts"\`, \`output_mode="content"\`, \`-C=2\`
8008
8007
  - Regex: find function declarations: \`pattern="function\\s+\\w+"\`, \`glob="**/*.js"\`
@@ -11099,7 +11098,7 @@ async function createAndStoreApiKey(accessToken) {
11099
11098
  }
11100
11099
  saveGlobalConfig(config2);
11101
11100
  try {
11102
- const { resetAnthropicClient } = await import("./llm-DZMLOCDR.js");
11101
+ const { resetAnthropicClient } = await import("./llm-NC2ZA7BQ.js");
11103
11102
  resetAnthropicClient();
11104
11103
  } catch {
11105
11104
  }
@@ -15381,7 +15380,7 @@ async function refreshPluginRuntimeFromInstalls() {
15381
15380
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
15382
15381
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
15383
15382
  if (dirs.length === 0) return [];
15384
- const { configureSessionPlugins } = await import("./pluginRuntime-HUH43L3E.js");
15383
+ const { configureSessionPlugins } = await import("./pluginRuntime-SN4Y5PIT.js");
15385
15384
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
15386
15385
  return errors;
15387
15386
  }
@@ -16050,7 +16049,7 @@ async function call(onDone, context) {
16050
16049
  ModelConfig,
16051
16050
  {
16052
16051
  onClose: () => {
16053
- import("./model-CYQGPU6S.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16052
+ import("./model-HBR6OZOT.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16054
16053
  reloadModelManager2();
16055
16054
  triggerModelConfigChange();
16056
16055
  onDone();
@@ -23494,7 +23493,7 @@ function useStatusLine() {
23494
23493
  // src/ui/components/PromptInput.tsx
23495
23494
  async function interpretHashCommand(input) {
23496
23495
  try {
23497
- const { queryQuick: queryQuick2 } = await import("./llm-DZMLOCDR.js");
23496
+ const { queryQuick: queryQuick2 } = await import("./llm-NC2ZA7BQ.js");
23498
23497
  const systemPrompt = [
23499
23498
  "You're helping the user structure notes that will be added to their PYB.md file.",
23500
23499
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -23807,7 +23806,7 @@ function PromptInput({
23807
23806
  if (messages2.length) {
23808
23807
  if (mode === "bash") {
23809
23808
  onQuery(messages2, newAbortController).then(async () => {
23810
- const { getCwd: getCwd2 } = await import("./state-H3ASL5UP.js");
23809
+ const { getCwd: getCwd2 } = await import("./state-BMWIIFPG.js");
23811
23810
  setCurrentPwd(getCwd2());
23812
23811
  });
23813
23812
  } else {
@@ -24707,6 +24706,33 @@ function createAutoBatchToolUse(toolUses, batchIndex) {
24707
24706
  }
24708
24707
  };
24709
24708
  }
24709
+ function isAutoBatchToolUse(toolUse) {
24710
+ const resolvedName = resolveToolNameAlias(toolUse.name).resolvedName;
24711
+ return isBatchToolName(resolvedName) && typeof toolUse.id === "string" && toolUse.id.startsWith("batch_auto_");
24712
+ }
24713
+ function getAutoBatchAggregationSummary(toolUseMessages, tools, output, enabled) {
24714
+ const inputCount = toolUseMessages.length;
24715
+ const eligibleCount = toolUseMessages.reduce(
24716
+ (count, toolUse) => count + (canAutoBatchToolUse(toolUse, tools) ? 1 : 0),
24717
+ 0
24718
+ );
24719
+ const ineligibleCount = inputCount - eligibleCount;
24720
+ const autoBatchToolUses = output.filter(isAutoBatchToolUse);
24721
+ const autoBatchedToolCount = autoBatchToolUses.reduce((sum, toolUse) => {
24722
+ const input = toolUse.input;
24723
+ const toolCalls = Array.isArray(input?.tool_calls) ? input.tool_calls : [];
24724
+ return sum + toolCalls.length;
24725
+ }, 0);
24726
+ return {
24727
+ enabled,
24728
+ inputCount,
24729
+ eligibleCount,
24730
+ ineligibleCount,
24731
+ outputCount: output.length,
24732
+ autoBatchCount: autoBatchToolUses.length,
24733
+ autoBatchedToolCount
24734
+ };
24735
+ }
24710
24736
  function canAutoBatchToolUse(toolUse, tools) {
24711
24737
  const resolvedName = resolveToolNameAlias(toolUse.name).resolvedName;
24712
24738
  if (isBatchToolName(resolvedName) || isMcpToolName(resolvedName) || isMarketplaceToolName(resolvedName) || isSkillToolName(resolvedName)) {
@@ -24759,6 +24785,66 @@ function autoBatchToolUseBlocks(toolUseMessages, tools) {
24759
24785
  return output;
24760
24786
  }
24761
24787
  var __autoBatchToolUseBlocksForTests = autoBatchToolUseBlocks;
24788
+ function shouldAutoBatchAggregation() {
24789
+ const config2 = getCurrentProjectConfig();
24790
+ const enabled = config2.experimental?.auto_batch_aggregation;
24791
+ return enabled !== false;
24792
+ }
24793
+ function applyAutoBatchAggregation(toolUseMessages, tools, options) {
24794
+ const enabled = shouldAutoBatchAggregation();
24795
+ const requestId = getCurrentRequest()?.id;
24796
+ if (!enabled) {
24797
+ const summary = getAutoBatchAggregationSummary(
24798
+ toolUseMessages,
24799
+ tools,
24800
+ toolUseMessages,
24801
+ false
24802
+ );
24803
+ debug.flow(
24804
+ "AUTO_BATCH_AGGREGATION",
24805
+ {
24806
+ ...summary,
24807
+ reason: "disabled"
24808
+ },
24809
+ requestId
24810
+ );
24811
+ return toolUseMessages;
24812
+ }
24813
+ try {
24814
+ if (options?.forceThrow) {
24815
+ throw new Error("forced auto batch failure");
24816
+ }
24817
+ const aggregated = autoBatchToolUseBlocks(toolUseMessages, tools);
24818
+ const summary = getAutoBatchAggregationSummary(
24819
+ toolUseMessages,
24820
+ tools,
24821
+ aggregated,
24822
+ true
24823
+ );
24824
+ debug.flow("AUTO_BATCH_AGGREGATION", summary, requestId);
24825
+ return aggregated;
24826
+ } catch (error) {
24827
+ const summary = getAutoBatchAggregationSummary(
24828
+ toolUseMessages,
24829
+ tools,
24830
+ toolUseMessages,
24831
+ true
24832
+ );
24833
+ debug.flow(
24834
+ "AUTO_BATCH_AGGREGATION_FALLBACK",
24835
+ {
24836
+ ...summary,
24837
+ error: error instanceof Error ? error.message : String(error)
24838
+ },
24839
+ requestId
24840
+ );
24841
+ if (!options?.forceThrow) {
24842
+ logError(error);
24843
+ }
24844
+ return toolUseMessages;
24845
+ }
24846
+ }
24847
+ var __applyAutoBatchAggregationForTests = applyAutoBatchAggregation;
24762
24848
  function rewriteToolUseBlocksInAssistantMessage(assistantMessage, toolUseMessages) {
24763
24849
  if (!Array.isArray(assistantMessage.message.content)) return assistantMessage;
24764
24850
  let nextToolUseIndex = 0;
@@ -25185,7 +25271,7 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
25185
25271
  const assistantMessage = result.message;
25186
25272
  const shouldSkipPermissionCheck = result.shouldSkipPermissionCheck;
25187
25273
  const rawToolUseMessages = assistantMessage.message.content.filter(isToolUseLikeBlock);
25188
- const toolUseMessages = autoBatchToolUseBlocks(
25274
+ const toolUseMessages = applyAutoBatchAggregation(
25189
25275
  rawToolUseMessages,
25190
25276
  toolUseContext.options?.tools ?? []
25191
25277
  );
@@ -26714,7 +26800,7 @@ import { homedir as homedir7 } from "os";
26714
26800
  // src/commands/agents/generation.ts
26715
26801
  import { randomUUID as randomUUID5 } from "crypto";
26716
26802
  async function generateAgentWithClaude(prompt) {
26717
- const { queryModel } = await import("./llm-DZMLOCDR.js");
26803
+ const { queryModel } = await import("./llm-NC2ZA7BQ.js");
26718
26804
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
26719
26805
 
26720
26806
  Return your response as a JSON object with exactly these fields:
@@ -30719,26 +30805,12 @@ It is critical that you mark todos as completed as soon as you are done with a t
30719
30805
  6. **Semantic Search**: When searching for code concepts (e.g. "AuthLogic", "UserHandler") rather than exact filenames, prefer using \`Glob\` with \`semantic: true\`. This leverages LSP to find files by their content definitions.
30720
30806
  7. **Reference Guard**: Be aware that deleting files might be blocked if they are referenced elsewhere. If the \`Delete\` blocks you, check the references it reports. Only use \`force: true\` if you are refactoring and intentionally removing those references.
30721
30807
 
30722
- # \u5E76\u53D1\u7B56\u7565\u7EA6\u675F
30723
- - \u540C\u8F6E\u591A\u6B21\u8C03\u7528\u4EC5\u5E76\u53D1\u89E6\u53D1\u201C\u53EA\u8BFB\u4E14\u5E76\u53D1\u5B89\u5168\u201D\u7684\u5DE5\u5177\uFF08isConcurrencySafe=true\uFF09
30724
- - \u6DF7\u5165\u4EFB\u4F55\u975E\u5E76\u53D1\u5B89\u5168\u5DE5\u5177\u4F1A\u5F62\u6210\u5C4F\u969C\uFF1B\u5C4F\u969C\u4E4B\u524D\u5B8C\u6210\u540E\u518D\u7EE7\u7EED
30725
- - MCP \u5DE5\u5177\u7684\u5E76\u53D1\u5B89\u5168\u6027\u7531 annotations.readOnlyHint \u5224\u5B9A
30726
- - \u5B58\u5728\u4F9D\u8D56\u5173\u7CFB\u7684\u8C03\u7528\u5FC5\u987B\u4E32\u884C\uFF1B\u4EC5\u72EC\u7ACB\u3001\u65E0\u4F9D\u8D56\u7684\u8C03\u7528\u5E76\u53D1
30727
- - \u8C03\u5EA6\u5C42\u4E0D\u8BBE\u5168\u5C40\u5E76\u53D1\u4E0A\u9650\uFF1B\u4EC5\u6309\u5E76\u53D1\u5B89\u5168\u6027\u5F62\u6210\u5C4F\u969C
30728
-
30729
- # BatchTool \u4F7F\u7528\u7B56\u7565
30730
- - \u4F55\u65F6\u4F7F\u7528\uFF1A\u591A\u4E2A\u4E92\u4E0D\u4F9D\u8D56\u3001\u53EA\u8BFB\u4E14\u5E76\u53D1\u5B89\u5168\u7684\u5DE5\u5177\u8C03\u7528\uFF0C\u5E0C\u671B\u5E76\u884C\u52A0\u901F\u5E76\u6C47\u603B\u7ED3\u679C
30731
- - \u4F55\u65F6\u4E0D\u4F7F\u7528\uFF1A\u5B58\u5728\u4F9D\u8D56\u6216\u5171\u4EAB\u72B6\u6001\u3001\u9700\u8981\u987A\u5E8F\u3001\u6216\u5DE5\u5177\u975E\u53EA\u8BFB/\u975E\u5E76\u53D1\u5B89\u5168
30732
- - \u62C6\u5206\u89C4\u5219\uFF1A\u6709\u4F9D\u8D56\u7684\u8C03\u7528\u62C6\u6210\u987A\u5E8F batch\uFF08\u524D\u4E00\u6279\u5B8C\u6210\u540E\u518D\u53D1\u4E0B\u4E00\u6279\uFF09
30733
- - \u8303\u56F4\u9650\u5236\uFF1A\u4EC5\u9650\u53EA\u8BFB\u5E76\u53D1\u5B89\u5168\u5DE5\u5177\uFF1BMCP/\u5E02\u573A\u5DE5\u5177\u4E0D\u53EF\u8FDB\u5165 batch
30734
- - \u5E76\u53D1\u9650\u5236\uFF1A\u7981\u6B62 batch \u5D4C\u5957\uFF0C\u53EF\u591A\u6279\u6B21\u8C03\u7528\u5E76\u53D1\uFF0C\u5355\u6279\u6B21\u5E76\u53D1\u6570\u4E0A\u9650\u6700\u591A 10 \u4E2A\uFF0C\u4E0D\u662F\u5168\u5C40\u5E76\u53D1\u4E0A\u9650\uFF1B
30735
- - \u4EE3\u7801\u4F4D\u7F6E\uFF1Asrc/app/query.ts\u3001src/tools/system/BatchTool/BatchTool.tsx\u3001src/utils/tooling/toolExecutionController.ts
30736
- - \u4F18\u5148\u7EA7\uFF1A\u5B58\u5728\u591A\u4E2A\u53EF batch \u7684\u8C03\u7528\u65F6\uFF0C\u4F18\u5148\u4F7F\u7528 BatchTool \u5355\u6B21\u6267\u884C\u800C\u4E0D\u662F\u591A\u6761\u5E76\u884C tool \u8C03\u7528
30737
- - \u53EA\u8BFB\u5E76\u53D1\u4F18\u5148\u4F7F\u7528 BatchTool\uFF0C\u4E0D\u8981\u8F93\u51FA\u591A\u4E2A\u72EC\u7ACB\u7684 Read/Grep
30738
-
30739
- # \u8DEF\u5F84\u5206\u7247\u7B56\u7565
30740
- - \u6839\u2192\u6838\u5FC3\u76EE\u5F55\u2192\u4E8C\u7EA7\u6A21\u5757
30741
- - \u7ED3\u6784\u626B\u63CF\u6309\u4E0A\u8FF0\u987A\u5E8F\u5206\u7247\u6267\u884C
30808
+ # Index Tree First Strategy
30809
+ - Every analysis must be grounded in a verifiable index tree; avoid blind matching
30810
+ - Build the tree in layers: Root \u2192 Core Directories \u2192 Secondary Modules
30811
+ - Use LS to map layers, then confirm with Glob before Grep/Read
30812
+ - Treat truncated trees as hints only, not for precise paths
30813
+ - Use the tree to narrow scope, then locate exact files and symbols
30742
30814
 
30743
30815
  # LSP \u540E\u7F6E\u4E0E\u8303\u56F4\u9650\u5236
30744
30816
  - \u4F18\u5148\u987A\u5E8F\uFF1A\u7ED3\u6784\u6811 -> \u70ED\u70B9\u5B9A\u4F4D -> Read -> LSP
@@ -30862,6 +30934,7 @@ NEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTAN
30862
30934
  - Example: \`Glob(pattern: "tests", semantic: true)\` will find test files based on project structure.
30863
30935
  2. **Exact Identifier**: WHEN you know the precise class/function name (e.g., "UserProfile", "initDatabase"), use standard Grep/Glob without \`semantic\` flag.
30864
30936
  3. **Exploration**: If standard search returns 0 results, AUTOMATICALLY retry with \`semantic: true\`.
30937
+ 4. **Path Discovery**: If the path is unclear, start from top-level tree, then \`Glob */\`, then \`Glob dir/*\` and \`Glob dir/*/\` to confirm paths before Grep/Read.
30865
30938
 
30866
30939
  # File Modification Strategy (The Universal Edit Tool)
30867
30940
  When you need to modify files, rely on the **Edit Tool** for almost all tasks.
@@ -30958,6 +31031,7 @@ export {
30958
31031
  countTokens,
30959
31032
  __isToolUseLikeBlockForTests,
30960
31033
  __autoBatchToolUseBlocksForTests,
31034
+ __applyAutoBatchAggregationForTests,
30961
31035
  __rewriteToolUseBlocksForTests,
30962
31036
  __ToolUseQueueForTests,
30963
31037
  query,