pybao-cli 1.5.5 → 1.5.7

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 (151) hide show
  1. package/dist/REPL-YW6AH5YU.js +49 -0
  2. package/dist/{acp-5ATLRHLF.js → acp-2LMTSBAU.js} +30 -30
  3. package/dist/{agentsValidate-DZS6QRHL.js → agentsValidate-YQSHYCYC.js} +7 -7
  4. package/dist/{ask-4737XORX.js → ask-4Z4LH5IS.js} +29 -29
  5. package/dist/{autoUpdater-N3ZBYLEL.js → autoUpdater-UTX7ZX2N.js} +3 -3
  6. package/dist/{chunk-K7WUKXHI.js → chunk-3JH34RBY.js} +2 -2
  7. package/dist/{chunk-WZMYF3UX.js → chunk-4BFEUSKN.js} +2 -2
  8. package/dist/{chunk-HOPQEHPL.js → chunk-4R7NUADF.js} +1 -1
  9. package/dist/{chunk-K6NWBOPY.js → chunk-5F6IQJHF.js} +1 -1
  10. package/dist/{chunk-K6JHXMXN.js → chunk-5JKCAVMI.js} +3 -3
  11. package/dist/{chunk-ZRKIN5IB.js → chunk-7FFBXWS3.js} +3 -3
  12. package/dist/{chunk-5XJMA67J.js → chunk-CJ2YYIJN.js} +1 -1
  13. package/dist/{chunk-XYTFEOBP.js → chunk-EGJRWKZ6.js} +4 -4
  14. package/dist/{chunk-NVE4LCWO.js → chunk-EN7L7JWN.js} +1 -1
  15. package/dist/{chunk-YVAHZVKG.js → chunk-F7HYDAWW.js} +3 -3
  16. package/dist/{chunk-DRHHYVCW.js → chunk-HFVRQO2J.js} +172 -72
  17. package/dist/chunk-HFVRQO2J.js.map +7 -0
  18. package/dist/{chunk-3EXYSVHB.js → chunk-IFC2PLAM.js} +4 -4
  19. package/dist/{chunk-UOMNQX6X.js → chunk-IKMMFSNJ.js} +1 -1
  20. package/dist/{chunk-5SIMKDX4.js → chunk-IOP3VA4X.js} +2 -2
  21. package/dist/{chunk-DXRP66I5.js → chunk-JEAXJP2E.js} +1 -1
  22. package/dist/{chunk-SSJEKON3.js → chunk-KLD4WAB6.js} +4 -4
  23. package/dist/{chunk-CHIAWBUA.js → chunk-LYMH46VN.js} +3 -3
  24. package/dist/{chunk-HE7KJ6UH.js → chunk-OY6SB5B3.js} +4 -4
  25. package/dist/{chunk-TEC2E3XN.js → chunk-PI5RBPFA.js} +2 -2
  26. package/dist/{chunk-WABSMUT4.js → chunk-PMYMUSB4.js} +3 -3
  27. package/dist/{chunk-334FYYPK.js → chunk-SDKYJZWD.js} +2 -2
  28. package/dist/{chunk-SIERUHXD.js → chunk-SWNNPHFY.js} +192 -71
  29. package/dist/chunk-SWNNPHFY.js.map +7 -0
  30. package/dist/{chunk-LJ5LSGNH.js → chunk-T7UTA73F.js} +3 -3
  31. package/dist/{chunk-RGKCFZJC.js → chunk-TIMEEE5U.js} +1 -1
  32. package/dist/{chunk-GR4JDEVQ.js → chunk-TKEWBSVM.js} +3 -3
  33. package/dist/{chunk-6LPSL7BE.js → chunk-VBV5RHIK.js} +1 -1
  34. package/dist/{chunk-YPKIYICA.js → chunk-VZDDKAL2.js} +2 -2
  35. package/dist/{chunk-OD44XENK.js → chunk-W4PXRGP3.js} +1 -1
  36. package/dist/{chunk-OD44XENK.js.map → chunk-W4PXRGP3.js.map} +1 -1
  37. package/dist/{chunk-5UMUKAAM.js → chunk-Y2RSIF7P.js} +1 -1
  38. package/dist/{chunk-RAGFOLYJ.js → chunk-YNGGZILT.js} +1 -1
  39. package/dist/{chunk-LIWSSSFH.js → chunk-ZD6NMP33.js} +2 -2
  40. package/dist/{cli-7LQML4MU.js → cli-N3Q4D4BW.js} +89 -89
  41. package/dist/commands-OOINF26E.js +53 -0
  42. package/dist/{config-75TKJIF7.js → config-GZXNPIIG.js} +4 -4
  43. package/dist/{context-DKI4ZOCF.js → context-TUO5CUR3.js} +6 -6
  44. package/dist/{conversationTracker-NB2PCUQP.js → conversationTracker-APB6PR5Z.js} +3 -3
  45. package/dist/{customCommands-4D5NYHQV.js → customCommands-J4DV6OI5.js} +4 -4
  46. package/dist/{env-YOGE2U3I.js → env-YBYEMHYQ.js} +2 -2
  47. package/dist/{file-S4Y77ZDB.js → file-KIBY6XZX.js} +4 -4
  48. package/dist/index.js +3 -3
  49. package/dist/{llm-Q23IAP4O.js → llm-T7C6QJWB.js} +30 -30
  50. package/dist/{llmLazy-7DJ3Z3D6.js → llmLazy-FDVUCPDQ.js} +1 -1
  51. package/dist/{loader-XVITQOFP.js → loader-QCHS455W.js} +4 -4
  52. package/dist/{lsp-F773RHZL.js → lsp-TE2SQ6CO.js} +6 -6
  53. package/dist/{lspAnchor-UJC5DJXX.js → lspAnchor-IZ7YQJ64.js} +6 -6
  54. package/dist/{mcp-CQWFQULD.js → mcp-PLAWUZOQ.js} +7 -7
  55. package/dist/{mentionProcessor-MNKP2G6P.js → mentionProcessor-2O3AMZHB.js} +5 -5
  56. package/dist/{messages-HMXQVAKG.js → messages-ZHFZ2OOG.js} +1 -1
  57. package/dist/{model-OGMQRRY5.js → model-GBC2PBVJ.js} +5 -5
  58. package/dist/{openai-ZLOMELLL.js → openai-2V2J23AE.js} +5 -5
  59. package/dist/{outputStyles-TNK5GPGG.js → outputStyles-WD4VD4GZ.js} +4 -4
  60. package/dist/{pluginRuntime-C6QS67LQ.js → pluginRuntime-WNZS26EV.js} +6 -6
  61. package/dist/{pluginValidation-4SGPUOSV.js → pluginValidation-YP7MW35I.js} +6 -6
  62. package/dist/prompts-QPYUI6SX.js +55 -0
  63. package/dist/{pybAgentSessionLoad-NHZ7Y2UJ.js → pybAgentSessionLoad-YABCHELS.js} +4 -4
  64. package/dist/{pybAgentSessionResume-3XYFO2NO.js → pybAgentSessionResume-C3LNSFQL.js} +4 -4
  65. package/dist/{pybAgentStreamJsonSession-H3AVVLPA.js → pybAgentStreamJsonSession-DFOGLEOB.js} +1 -1
  66. package/dist/{pybHooks-JWJOTOPE.js → pybHooks-LGGIB5PJ.js} +4 -4
  67. package/dist/query-EC6HGBDS.js +57 -0
  68. package/dist/{registry-ZSUU43XZ.js → registry-EYMCKHRG.js} +5 -5
  69. package/dist/{ripgrep-K52QYYMD.js → ripgrep-JZN2MVSK.js} +3 -3
  70. package/dist/{skillMarketplace-JZDP6BFA.js → skillMarketplace-ETYXMAXF.js} +3 -3
  71. package/dist/{state-I4ULG2ZQ.js → state-MAVHRDNE.js} +2 -2
  72. package/dist/{theme-AZT4CHJW.js → theme-AUEZ6SNA.js} +5 -5
  73. package/dist/{toolPermissionSettings-KPHZJ4NQ.js → toolPermissionSettings-7JZYBUZC.js} +6 -6
  74. package/dist/tools-3JFVDDSZ.js +54 -0
  75. package/dist/{userInput-Y4I3F2FW.js → userInput-V6RU4BEQ.js} +31 -31
  76. package/package.json +1 -1
  77. package/dist/REPL-QYABP7JW.js +0 -49
  78. package/dist/chunk-DRHHYVCW.js.map +0 -7
  79. package/dist/chunk-SIERUHXD.js.map +0 -7
  80. package/dist/commands-5NMEFJO5.js +0 -53
  81. package/dist/prompts-RUCL6EM6.js +0 -55
  82. package/dist/query-U7X4LZ6Z.js +0 -57
  83. package/dist/tools-J3ZR5NYG.js +0 -54
  84. /package/dist/{REPL-QYABP7JW.js.map → REPL-YW6AH5YU.js.map} +0 -0
  85. /package/dist/{acp-5ATLRHLF.js.map → acp-2LMTSBAU.js.map} +0 -0
  86. /package/dist/{agentsValidate-DZS6QRHL.js.map → agentsValidate-YQSHYCYC.js.map} +0 -0
  87. /package/dist/{ask-4737XORX.js.map → ask-4Z4LH5IS.js.map} +0 -0
  88. /package/dist/{autoUpdater-N3ZBYLEL.js.map → autoUpdater-UTX7ZX2N.js.map} +0 -0
  89. /package/dist/{chunk-K7WUKXHI.js.map → chunk-3JH34RBY.js.map} +0 -0
  90. /package/dist/{chunk-WZMYF3UX.js.map → chunk-4BFEUSKN.js.map} +0 -0
  91. /package/dist/{chunk-HOPQEHPL.js.map → chunk-4R7NUADF.js.map} +0 -0
  92. /package/dist/{chunk-K6NWBOPY.js.map → chunk-5F6IQJHF.js.map} +0 -0
  93. /package/dist/{chunk-K6JHXMXN.js.map → chunk-5JKCAVMI.js.map} +0 -0
  94. /package/dist/{chunk-ZRKIN5IB.js.map → chunk-7FFBXWS3.js.map} +0 -0
  95. /package/dist/{chunk-5XJMA67J.js.map → chunk-CJ2YYIJN.js.map} +0 -0
  96. /package/dist/{chunk-XYTFEOBP.js.map → chunk-EGJRWKZ6.js.map} +0 -0
  97. /package/dist/{chunk-NVE4LCWO.js.map → chunk-EN7L7JWN.js.map} +0 -0
  98. /package/dist/{chunk-YVAHZVKG.js.map → chunk-F7HYDAWW.js.map} +0 -0
  99. /package/dist/{chunk-3EXYSVHB.js.map → chunk-IFC2PLAM.js.map} +0 -0
  100. /package/dist/{chunk-UOMNQX6X.js.map → chunk-IKMMFSNJ.js.map} +0 -0
  101. /package/dist/{chunk-5SIMKDX4.js.map → chunk-IOP3VA4X.js.map} +0 -0
  102. /package/dist/{chunk-DXRP66I5.js.map → chunk-JEAXJP2E.js.map} +0 -0
  103. /package/dist/{chunk-SSJEKON3.js.map → chunk-KLD4WAB6.js.map} +0 -0
  104. /package/dist/{chunk-CHIAWBUA.js.map → chunk-LYMH46VN.js.map} +0 -0
  105. /package/dist/{chunk-HE7KJ6UH.js.map → chunk-OY6SB5B3.js.map} +0 -0
  106. /package/dist/{chunk-TEC2E3XN.js.map → chunk-PI5RBPFA.js.map} +0 -0
  107. /package/dist/{chunk-WABSMUT4.js.map → chunk-PMYMUSB4.js.map} +0 -0
  108. /package/dist/{chunk-334FYYPK.js.map → chunk-SDKYJZWD.js.map} +0 -0
  109. /package/dist/{chunk-LJ5LSGNH.js.map → chunk-T7UTA73F.js.map} +0 -0
  110. /package/dist/{chunk-RGKCFZJC.js.map → chunk-TIMEEE5U.js.map} +0 -0
  111. /package/dist/{chunk-GR4JDEVQ.js.map → chunk-TKEWBSVM.js.map} +0 -0
  112. /package/dist/{chunk-6LPSL7BE.js.map → chunk-VBV5RHIK.js.map} +0 -0
  113. /package/dist/{chunk-YPKIYICA.js.map → chunk-VZDDKAL2.js.map} +0 -0
  114. /package/dist/{chunk-5UMUKAAM.js.map → chunk-Y2RSIF7P.js.map} +0 -0
  115. /package/dist/{chunk-RAGFOLYJ.js.map → chunk-YNGGZILT.js.map} +0 -0
  116. /package/dist/{chunk-LIWSSSFH.js.map → chunk-ZD6NMP33.js.map} +0 -0
  117. /package/dist/{cli-7LQML4MU.js.map → cli-N3Q4D4BW.js.map} +0 -0
  118. /package/dist/{commands-5NMEFJO5.js.map → commands-OOINF26E.js.map} +0 -0
  119. /package/dist/{config-75TKJIF7.js.map → config-GZXNPIIG.js.map} +0 -0
  120. /package/dist/{context-DKI4ZOCF.js.map → context-TUO5CUR3.js.map} +0 -0
  121. /package/dist/{conversationTracker-NB2PCUQP.js.map → conversationTracker-APB6PR5Z.js.map} +0 -0
  122. /package/dist/{customCommands-4D5NYHQV.js.map → customCommands-J4DV6OI5.js.map} +0 -0
  123. /package/dist/{env-YOGE2U3I.js.map → env-YBYEMHYQ.js.map} +0 -0
  124. /package/dist/{file-S4Y77ZDB.js.map → file-KIBY6XZX.js.map} +0 -0
  125. /package/dist/{llm-Q23IAP4O.js.map → llm-T7C6QJWB.js.map} +0 -0
  126. /package/dist/{llmLazy-7DJ3Z3D6.js.map → llmLazy-FDVUCPDQ.js.map} +0 -0
  127. /package/dist/{loader-XVITQOFP.js.map → loader-QCHS455W.js.map} +0 -0
  128. /package/dist/{lsp-F773RHZL.js.map → lsp-TE2SQ6CO.js.map} +0 -0
  129. /package/dist/{lspAnchor-UJC5DJXX.js.map → lspAnchor-IZ7YQJ64.js.map} +0 -0
  130. /package/dist/{mcp-CQWFQULD.js.map → mcp-PLAWUZOQ.js.map} +0 -0
  131. /package/dist/{mentionProcessor-MNKP2G6P.js.map → mentionProcessor-2O3AMZHB.js.map} +0 -0
  132. /package/dist/{messages-HMXQVAKG.js.map → messages-ZHFZ2OOG.js.map} +0 -0
  133. /package/dist/{model-OGMQRRY5.js.map → model-GBC2PBVJ.js.map} +0 -0
  134. /package/dist/{openai-ZLOMELLL.js.map → openai-2V2J23AE.js.map} +0 -0
  135. /package/dist/{outputStyles-TNK5GPGG.js.map → outputStyles-WD4VD4GZ.js.map} +0 -0
  136. /package/dist/{pluginRuntime-C6QS67LQ.js.map → pluginRuntime-WNZS26EV.js.map} +0 -0
  137. /package/dist/{pluginValidation-4SGPUOSV.js.map → pluginValidation-YP7MW35I.js.map} +0 -0
  138. /package/dist/{prompts-RUCL6EM6.js.map → prompts-QPYUI6SX.js.map} +0 -0
  139. /package/dist/{pybAgentSessionLoad-NHZ7Y2UJ.js.map → pybAgentSessionLoad-YABCHELS.js.map} +0 -0
  140. /package/dist/{pybAgentSessionResume-3XYFO2NO.js.map → pybAgentSessionResume-C3LNSFQL.js.map} +0 -0
  141. /package/dist/{pybAgentStreamJsonSession-H3AVVLPA.js.map → pybAgentStreamJsonSession-DFOGLEOB.js.map} +0 -0
  142. /package/dist/{pybHooks-JWJOTOPE.js.map → pybHooks-LGGIB5PJ.js.map} +0 -0
  143. /package/dist/{query-U7X4LZ6Z.js.map → query-EC6HGBDS.js.map} +0 -0
  144. /package/dist/{registry-ZSUU43XZ.js.map → registry-EYMCKHRG.js.map} +0 -0
  145. /package/dist/{ripgrep-K52QYYMD.js.map → ripgrep-JZN2MVSK.js.map} +0 -0
  146. /package/dist/{skillMarketplace-JZDP6BFA.js.map → skillMarketplace-ETYXMAXF.js.map} +0 -0
  147. /package/dist/{state-I4ULG2ZQ.js.map → state-MAVHRDNE.js.map} +0 -0
  148. /package/dist/{theme-AZT4CHJW.js.map → theme-AUEZ6SNA.js.map} +0 -0
  149. /package/dist/{toolPermissionSettings-KPHZJ4NQ.js.map → toolPermissionSettings-7JZYBUZC.js.map} +0 -0
  150. /package/dist/{tools-J3ZR5NYG.js.map → tools-3JFVDDSZ.js.map} +0 -0
  151. /package/dist/{userInput-Y4I3F2FW.js.map → userInput-V6RU4BEQ.js.map} +0 -0
@@ -2,11 +2,11 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listPybAgentSessions
5
- } from "./chunk-DXRP66I5.js";
5
+ } from "./chunk-JEAXJP2E.js";
6
6
  import {
7
7
  formatValidationResult,
8
8
  validatePluginOrMarketplacePath
9
- } from "./chunk-K6JHXMXN.js";
9
+ } from "./chunk-5JKCAVMI.js";
10
10
  import {
11
11
  ConversationTracker,
12
12
  appendFinishState,
@@ -14,18 +14,18 @@ import {
14
14
  getConversationTrackerForContext,
15
15
  isFinishComplete,
16
16
  mapFinishReason
17
- } from "./chunk-5XJMA67J.js";
17
+ } from "./chunk-CJ2YYIJN.js";
18
18
  import {
19
19
  beginReplSessionScope
20
20
  } from "./chunk-F4AXICO7.js";
21
21
  import {
22
22
  loadPybAgentSessionMessages
23
- } from "./chunk-HOPQEHPL.js";
23
+ } from "./chunk-4R7NUADF.js";
24
24
  import {
25
25
  appendSessionCustomTitleRecord,
26
26
  appendSessionJsonlFromMessage,
27
27
  appendSessionTagRecord
28
- } from "./chunk-LIWSSSFH.js";
28
+ } from "./chunk-ZD6NMP33.js";
29
29
  import {
30
30
  drainHookSystemPromptAdditions,
31
31
  getHookTranscriptPath,
@@ -37,7 +37,7 @@ import {
37
37
  runStopHooks,
38
38
  runUserPromptSubmitHooks,
39
39
  updateHookTranscriptForMessages
40
- } from "./chunk-LJ5LSGNH.js";
40
+ } from "./chunk-T7UTA73F.js";
41
41
  import {
42
42
  DEFAULT_OUTPUT_STYLE,
43
43
  getAvailableOutputStyles,
@@ -46,11 +46,11 @@ import {
46
46
  getOutputStyleSystemPromptAdditions,
47
47
  resolveOutputStyleName,
48
48
  setCurrentOutputStyle
49
- } from "./chunk-K7WUKXHI.js";
49
+ } from "./chunk-3JH34RBY.js";
50
50
  import {
51
51
  fetchCustomModels,
52
52
  getModelFeatures
53
- } from "./chunk-WZMYF3UX.js";
53
+ } from "./chunk-4BFEUSKN.js";
54
54
  import {
55
55
  getSessionState
56
56
  } from "./chunk-XKYHFZEC.js";
@@ -58,7 +58,7 @@ import {
58
58
  queryLLM,
59
59
  queryQuick,
60
60
  verifyApiKey
61
- } from "./chunk-SSJEKON3.js";
61
+ } from "./chunk-KLD4WAB6.js";
62
62
  import {
63
63
  DEFAULT_TIMEOUT_MS,
64
64
  FallbackToolUseRejectedMessage,
@@ -72,7 +72,7 @@ import {
72
72
  listMCPServers,
73
73
  loadMergedSettings,
74
74
  normalizeSandboxRuntimeConfigFromSettings
75
- } from "./chunk-HE7KJ6UH.js";
75
+ } from "./chunk-OY6SB5B3.js";
76
76
  import {
77
77
  addMarketplace,
78
78
  disableSkillPlugin,
@@ -85,11 +85,11 @@ import {
85
85
  refreshMarketplaceAsync,
86
86
  removeMarketplace,
87
87
  uninstallSkillPlugin
88
- } from "./chunk-6LPSL7BE.js";
88
+ } from "./chunk-VBV5RHIK.js";
89
89
  import {
90
90
  loadToolPermissionContextFromDisk,
91
91
  persistToolPermissionUpdateToDisk
92
- } from "./chunk-ZRKIN5IB.js";
92
+ } from "./chunk-7FFBXWS3.js";
93
93
  import {
94
94
  applyToolPermissionContextUpdate,
95
95
  applyToolPermissionContextUpdates,
@@ -100,13 +100,13 @@ import {
100
100
  generateSystemReminders,
101
101
  resetReminderSession,
102
102
  systemReminderService
103
- } from "./chunk-5SIMKDX4.js";
103
+ } from "./chunk-IOP3VA4X.js";
104
104
  import {
105
105
  clearAgentCache,
106
106
  getActiveAgents,
107
107
  getAgentByType,
108
108
  getAllAgents
109
- } from "./chunk-TEC2E3XN.js";
109
+ } from "./chunk-PI5RBPFA.js";
110
110
  import {
111
111
  API_ERROR_MESSAGE_PREFIX,
112
112
  CANCEL_MESSAGE,
@@ -137,7 +137,7 @@ import {
137
137
  processUserInput,
138
138
  reorderMessages,
139
139
  stripSystemMessages
140
- } from "./chunk-RAGFOLYJ.js";
140
+ } from "./chunk-YNGGZILT.js";
141
141
  import {
142
142
  getRequestStatus,
143
143
  setRequestStatus,
@@ -167,7 +167,7 @@ import {
167
167
  normalizeFilePath,
168
168
  readTextContent,
169
169
  writeTextContent
170
- } from "./chunk-334FYYPK.js";
170
+ } from "./chunk-SDKYJZWD.js";
171
171
  import {
172
172
  parseBlockEdits
173
173
  } from "./chunk-QWIBSCDN.js";
@@ -177,18 +177,18 @@ import {
177
177
  ParserRegistry,
178
178
  initParser,
179
179
  loadLanguage
180
- } from "./chunk-XYTFEOBP.js";
180
+ } from "./chunk-EGJRWKZ6.js";
181
181
  import {
182
182
  getSettingsFileCandidates,
183
183
  loadSettingsWithLegacyFallback,
184
184
  readSettingsFile
185
- } from "./chunk-K6NWBOPY.js";
185
+ } from "./chunk-5F6IQJHF.js";
186
186
  import {
187
187
  getCustomCommandDirectories,
188
188
  hasCustomCommands,
189
189
  loadCustomCommands,
190
190
  reloadCustomCommands
191
- } from "./chunk-YPKIYICA.js";
191
+ } from "./chunk-VZDDKAL2.js";
192
192
  import {
193
193
  getSessionPlugins
194
194
  } from "./chunk-BJSWTHRM.js";
@@ -197,7 +197,7 @@ import {
197
197
  buildModelProfileKey,
198
198
  getModelManager,
199
199
  isDefaultSlowAndCapableModel
200
- } from "./chunk-CHIAWBUA.js";
200
+ } from "./chunk-LYMH46VN.js";
201
201
  import {
202
202
  getCodeStyle,
203
203
  getContext,
@@ -205,16 +205,16 @@ import {
205
205
  getIsGit,
206
206
  getProjectDocs,
207
207
  getProjectStructureStatisticsBlock
208
- } from "./chunk-3EXYSVHB.js";
208
+ } from "./chunk-IFC2PLAM.js";
209
209
  import {
210
210
  getRipgrepPath,
211
211
  getRipgrepPolicyMode,
212
212
  resolveRipgrepPolicy,
213
213
  ripGrep
214
- } from "./chunk-NVE4LCWO.js";
214
+ } from "./chunk-EN7L7JWN.js";
215
215
  import {
216
216
  getTheme
217
- } from "./chunk-5UMUKAAM.js";
217
+ } from "./chunk-Y2RSIF7P.js";
218
218
  import {
219
219
  DEFAULT_GLOBAL_CONFIG,
220
220
  enableConfigs,
@@ -227,7 +227,7 @@ import {
227
227
  saveGlobalConfig,
228
228
  setAllPointersToModel,
229
229
  setModelPointer
230
- } from "./chunk-WABSMUT4.js";
230
+ } from "./chunk-PMYMUSB4.js";
231
231
  import {
232
232
  AbortError
233
233
  } from "./chunk-RQVLBMP7.js";
@@ -236,7 +236,7 @@ import {
236
236
  getCurrentRequest,
237
237
  logUserFriendly,
238
238
  markPhase
239
- } from "./chunk-UOMNQX6X.js";
239
+ } from "./chunk-IKMMFSNJ.js";
240
240
  import {
241
241
  ASCII_LOGO,
242
242
  BunShell,
@@ -277,10 +277,10 @@ import {
277
277
  setCwd,
278
278
  shouldApplyToolOutputTruncation,
279
279
  truncateToolOutput
280
- } from "./chunk-RGKCFZJC.js";
280
+ } from "./chunk-TIMEEE5U.js";
281
281
  import {
282
282
  MACRO
283
- } from "./chunk-OD44XENK.js";
283
+ } from "./chunk-W4PXRGP3.js";
284
284
  import {
285
285
  __export
286
286
  } from "./chunk-I3J4JYES.js";
@@ -461,7 +461,7 @@ var getCommandSubcommandPrefix = memoize(
461
461
  var getCommandPrefix = memoize(
462
462
  async (command4, abortSignal) => {
463
463
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
464
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-Q23IAP4O.js");
464
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-T7C6QJWB.js");
465
465
  const response = await queryQuick2({
466
466
  systemPrompt,
467
467
  userPrompt,
@@ -4263,7 +4263,7 @@ function formatParseError(error) {
4263
4263
  return error instanceof Error ? error.message : String(error);
4264
4264
  }
4265
4265
  async function defaultGateQuery(args) {
4266
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-Q23IAP4O.js");
4266
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-T7C6QJWB.js");
4267
4267
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4268
4268
  const messages = [
4269
4269
  {
@@ -6624,7 +6624,7 @@ var FileEditTool = {
6624
6624
  const originalFileContent = currentFileContent;
6625
6625
  let totalPatch = [];
6626
6626
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6627
- const { findLspAnchor } = await import("./lspAnchor-UJC5DJXX.js");
6627
+ const { findLspAnchor } = await import("./lspAnchor-IZ7YQJ64.js");
6628
6628
  for (const op of editOperations) {
6629
6629
  const normalizedSearch = normalizeLineEndings(op.search);
6630
6630
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -8107,7 +8107,7 @@ import { z as z6 } from "zod";
8107
8107
 
8108
8108
  // src/tools/filesystem/GlobTool/prompt.ts
8109
8109
  var TOOL_NAME_FOR_PROMPT2 = "Glob";
8110
- var DESCRIPTION4 = `- Fast file pattern matching tool that works with any codebase size
8110
+ var DESCRIPTION4 = `Fast file pattern matching tool that works with any codebase size
8111
8111
 
8112
8112
  ## WhenToUse & Best Practice
8113
8113
  - If you have keywords or fuzzy paths, use Glob first to narrow candidates.
@@ -8134,11 +8134,70 @@ var DESCRIPTION4 = `- Fast file pattern matching tool that works with any codeba
8134
8134
 
8135
8135
  ## Usage Details
8136
8136
  - Supports glob patterns like "**/*.js" or "src/**/*.ts"
8137
- - Returns matching file paths sorted by modification time
8137
+ - Returns absolute file paths sorted by modification time (most recent first)
8138
8138
  - Use this tool when you need to find files by name patterns
8139
- - **Semantic Search**: Set \`semantic: true\` to use LSP workspace symbols when file-name matching fails. The \`pattern\` is treated as the symbol name.
8140
- - Semantic search is explicit: enable it only when normal matching fails or semantic lookup is required.
8141
- - If LSP is unavailable, it falls back to standard glob results without impacting the main file-finding flow.`;
8139
+ - Powered by ripgrep with \`--files\` mode for fast pattern matching
8140
+ - \`path\` parameter: Specify the directory to search in. If omitted, uses the current working directory. IMPORTANT: Omit this field to use the default directory. DO NOT enter "undefined" or "null" - simply omit it for the default behavior. Supports both relative and absolute paths.
8141
+ - Results are limited to 100 files by default. If truncated, use a more specific path or pattern to narrow results.
8142
+ - Search ignores .gitignore rules and includes hidden files by default.
8143
+ - **Semantic Search**: Set \`semantic: true\` to enable LSP workspace symbol search as fallback.
8144
+ - Trigger condition: Semantic search only activates when normal glob returns zero results.
8145
+ - In semantic mode, the \`pattern\` parameter is interpreted as a symbol name (e.g., class name, function name) for LSP workspace symbol lookup.
8146
+ - Returns file paths where the symbol is defined, helping locate source files by symbol name rather than filename pattern.
8147
+ - On success: returns notice "Semantic search: added X results. Next: use LspTool for details."
8148
+ - If LSP is unavailable, returns empty results with notice "Semantic search: LSP unavailable."
8149
+ - **Empty Results**: When no files are found, use LS to confirm directory structure, then try broader patterns (e.g., src/**/*) or enable semantic search.
8150
+ - **Error Handling**: Returns error if \`path\` does not exist or is not a valid directory.
8151
+
8152
+ ## Typical Usage Examples
8153
+
8154
+ ### Example 1: Project Structure Discovery (Unknown Codebase)
8155
+ <example>
8156
+ user: I'm new to this project, what's the structure?
8157
+ assistant: [uses Glob tool with pattern="**/package.json" to find project roots]
8158
+ [uses Glob tool with pattern="src/**/*.{ts,tsx}" to understand source layout]
8159
+ [uses LS tool on key directories to see detailed structure]
8160
+ </example>
8161
+
8162
+ ### Example 2: Find Files by Type in Specific Area
8163
+ <example>
8164
+ user: Find all test files in the auth module
8165
+ assistant: [uses Glob tool with pattern="src/auth/**/*.test.ts"]
8166
+ [uses Read tool to examine specific test files]
8167
+ </example>
8168
+
8169
+ ### Example 3: Config File Location (Deterministic)
8170
+ <example>
8171
+ user: Where is the webpack configuration?
8172
+ assistant: [uses Glob tool with pattern="**/webpack*.{js,ts,json}"]
8173
+ [uses Read tool on the matched config file]
8174
+ </example>
8175
+
8176
+ ### Example 4: Semantic Fallback for Symbol-Based File Lookup
8177
+ <example>
8178
+ user: Find the file that defines \`UserRepository\`
8179
+ assistant: [uses Glob tool with pattern="*UserRepository*" - no results]
8180
+ [uses Glob tool with pattern="UserRepository" semantic:true]
8181
+ [uses LSP goToDefinition to confirm the symbol location]
8182
+ </example>
8183
+
8184
+ ### Example 5: Parallel Discovery for Entry Points
8185
+ <example>
8186
+ user: What are the main entry points of this application?
8187
+ assistant: [uses Glob tool with pattern="**/index.{ts,js}"]
8188
+ [uses Glob tool with pattern="**/main.{ts,js}"]
8189
+ [uses Glob tool with pattern="**/app.{ts,js}"]
8190
+ [uses Read tool to examine the entry point files]
8191
+ </example>
8192
+
8193
+ ### Example 6: Narrow Down After Broad Results
8194
+ <example>
8195
+ user: Find all TypeScript files in the project
8196
+ assistant: [uses Glob tool with pattern="**/*.ts" - returns 500+ files, truncated]
8197
+ [uses Glob tool with pattern="src/**/*.ts" to focus on source code]
8198
+ [uses Glob tool with pattern="src/core/**/*.ts" to narrow further if needed]
8199
+ </example>
8200
+ `;
8142
8201
 
8143
8202
  // src/tools/filesystem/GlobTool/GlobTool.tsx
8144
8203
  import { existsSync as existsSync6, statSync as statSync9 } from "fs";
@@ -8298,7 +8357,7 @@ import { z as z7 } from "zod";
8298
8357
 
8299
8358
  // src/tools/search/GrepTool/prompt.ts
8300
8359
  var TOOL_NAME_FOR_PROMPT3 = "Grep";
8301
- var DESCRIPTION5 = `A powerful search tool built on ripgrep
8360
+ var DESCRIPTION5 = `A powerful fast content search tool that works with any codebase size
8302
8361
 
8303
8362
  ## Best Practice
8304
8363
  - Use Grep as a "Scout" to *find* entry points based on text patterns.
@@ -8329,17 +8388,90 @@ var DESCRIPTION5 = `A powerful search tool built on ripgrep
8329
8388
 
8330
8389
  ## Usage Details
8331
8390
  - 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.
8332
- - Supports full regex syntax (e.g., "log.*Error", "function\\s+\\w+")
8333
- - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
8334
- - Path guidance: If the user provides a path, use it directly. If the path is uncertain or model-inferred, confirm with LS/Glob first; otherwise search from the current working directory.
8335
- - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
8336
- - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code)
8337
- - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \\{[\\s\\S]*?field\`, use \`multiline: true\`
8338
- - Semantic search: Set \`semantic: true\` to use LSP workspace symbols when text search yields no results or when you explicitly need symbol-based lookup. The \`pattern\` is treated as the symbol name.
8339
- - Semantic search is explicit: enable only when normal search has no results or when symbol-level lookup is required
8391
+ - Powered by ripgrep for fast text search with full regex support (e.g., "log.*Error", "function\\s+\\w+")
8392
+ - Pattern syntax: Uses ripgrep - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code)
8393
+ - Excludes version control directories (.git, .svn, .hg, .bzr) automatically
8394
+ - Includes hidden files by default
8395
+
8396
+ **Path & Scope**:
8397
+ - \`path\` parameter: File or directory to search in. Defaults to current working directory.
8398
+ - \`glob\` parameter: Filter files by glob pattern (e.g., "*.js", "*.{ts,tsx}") - maps to rg --glob
8399
+ - \`type\` parameter: Filter by file type (e.g., "js", "py", "rust", "go", "java") - more efficient than glob for standard types
8400
+ - Path guidance: If user provides a path, use it directly. If uncertain, confirm with LS/Glob first.
8401
+
8402
+ **Output Modes**:
8403
+ - \`files_with_matches\` (default): Returns file paths sorted by modification time
8404
+ - \`content\`: Shows matching lines with line numbers (supports -A/-B/-C context)
8405
+ - \`count\`: Shows match counts per file
8406
+
8407
+ **Context & Pagination**:
8408
+ - \`-B\`, \`-A\`, \`-C\`: Context lines before/after/around matches (requires output_mode: "content")
8409
+ - \`-n\`: Show line numbers (default: true, requires output_mode: "content")
8410
+ - \`head_limit\`: Limit output to first N entries (works across all modes)
8411
+ - \`offset\`: Skip first N entries before applying head_limit
8412
+ - \`multiline\`: Enable multiline mode where . matches newlines (default: false)
8413
+
8414
+ **Case Sensitivity**:
8415
+ - \`-i\`: Enable case-insensitive search
8416
+
8417
+ **Semantic Search**:
8418
+ - \`semantic: true\`: Enable LSP workspace symbol search as fallback when text search yields no results.
8419
+ - \`symbol_type\`: Filter semantic search by symbol type (e.g., "class", "function", "variable"). Requires semantic: true.
8420
+ - When \`symbol_type\` is specified, LSP search replaces (not augments) text search results.
8421
+ - Supported types: file, module, namespace, package, class, method, property, field, constructor, enum, interface, function, variable, constant, struct, event, operator, typeparameter
8340
8422
  - Semantic output format: \`file:line: name (Kind)\` for quick follow-up reads
8341
- - If LSP is unavailable, fall back to plain text search results
8342
- - Use Task tool for open-ended searches requiring multiple rounds`;
8423
+ - On success: returns notice "Semantic search: added X results. Next: use LspTool for details."
8424
+ - If LSP is unavailable: returns "Semantic search: LSP unavailable."
8425
+
8426
+ **Result Handling**:
8427
+ - Results are truncated at 20,000 characters if too large
8428
+ - Use Task tool for open-ended searches requiring multiple rounds
8429
+
8430
+ **Typical Usage Examples**:
8431
+
8432
+ Example 1: Exact Error Message Tracing (Deterministic)
8433
+ <example>
8434
+ user: Where does the error "Connection timeout after 30s" come from?
8435
+ assistant: [uses Grep tool with pattern="Connection timeout after 30s"output_mode="content"]
8436
+ [uses Read tool to examine the error source and surrounding context]
8437
+ </example>
8438
+
8439
+ Example 2: Precise Function Definition Lookup (Deterministic)
8440
+ <example>
8441
+ user: Find the implementation of \`calculateCompoundInterest\` function
8442
+ assistant: [uses Grep tool with pattern="calculateCompoundInterest" type="ts"output_mode="content"]
8443
+ [uses Read tool on the matched file to read the full implementation]
8444
+ </example>
8445
+
8446
+ Example 3: Concept Search with Semantic Fallback
8447
+ <example>
8448
+ user: Where is authentication logic implemented?
8449
+ assistant: [uses Grep tool with pattern="auth" type="ts" semantic: true]
8450
+ [uses Read tool to examine the most relevant matches]
8451
+ [uses LSP goToDefinition to trace the core auth flow]
8452
+ </example>
8453
+
8454
+ Example 4: Iterative Narrowing for Broad Patterns
8455
+ <example>
8456
+ user: Find all API route definitions
8457
+ assistant: [uses Grep tool with pattern="router\\.(get|post|put|delete)" type="ts"]
8458
+ [if too many results: adds path="src/routes" to narrow scope]
8459
+ [uses Read tool to inspect specific route handlers]
8460
+ </example>
8461
+
8462
+ Example 5: Handoff to LSP After Entry Point Found
8463
+ <example>
8464
+ user: Find all usages of the \`PaymentService\` class
8465
+ assistant: [uses Grep tool with pattern="class PaymentService" type="ts"output_mode="content"]
8466
+ [uses LSP findReferences at the class definition location to get all references]
8467
+ </example>
8468
+
8469
+ Example 6: Case-Insensitive Search for Config Values
8470
+ <example>
8471
+ user: Where is the database host configured?
8472
+ assistant: [uses Grep tool with pattern="database.*host|db_host|DB_HOST" -i: true]
8473
+ [uses Read tool to examine configuration files]
8474
+ </example>`;
8343
8475
 
8344
8476
  // src/tools/search/GrepTool/GrepTool.tsx
8345
8477
  import { isAbsolute as isAbsolute7, relative as relative9, resolve as resolve7 } from "path";
@@ -11926,7 +12058,7 @@ async function createAndStoreApiKey(accessToken) {
11926
12058
  }
11927
12059
  saveGlobalConfig(config2);
11928
12060
  try {
11929
- const { resetAnthropicClient } = await import("./llm-Q23IAP4O.js");
12061
+ const { resetAnthropicClient } = await import("./llm-T7C6QJWB.js");
11930
12062
  resetAnthropicClient();
11931
12063
  } catch {
11932
12064
  }
@@ -16350,7 +16482,7 @@ async function refreshPluginRuntimeFromInstalls() {
16350
16482
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
16351
16483
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
16352
16484
  if (dirs.length === 0) return [];
16353
- const { configureSessionPlugins } = await import("./pluginRuntime-C6QS67LQ.js");
16485
+ const { configureSessionPlugins } = await import("./pluginRuntime-WNZS26EV.js");
16354
16486
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
16355
16487
  return errors;
16356
16488
  }
@@ -17025,7 +17157,7 @@ async function call(onDone, context) {
17025
17157
  ModelConfig,
17026
17158
  {
17027
17159
  onClose: () => {
17028
- import("./model-OGMQRRY5.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17160
+ import("./model-GBC2PBVJ.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17029
17161
  reloadModelManager2();
17030
17162
  triggerModelConfigChange();
17031
17163
  onDone();
@@ -25229,7 +25361,7 @@ function useStatusLine() {
25229
25361
  // src/ui/components/PromptInput.tsx
25230
25362
  async function interpretHashCommand(input) {
25231
25363
  try {
25232
- const { queryQuick: queryQuick2 } = await import("./llm-Q23IAP4O.js");
25364
+ const { queryQuick: queryQuick2 } = await import("./llm-T7C6QJWB.js");
25233
25365
  const systemPrompt = [
25234
25366
  "You're helping the user structure notes that will be added to their PYB.md file.",
25235
25367
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -25542,7 +25674,7 @@ function PromptInput({
25542
25674
  if (messages2.length) {
25543
25675
  if (mode === "bash") {
25544
25676
  onQuery(messages2, newAbortController).then(async () => {
25545
- const { getCwd: getCwd2 } = await import("./state-I4ULG2ZQ.js");
25677
+ const { getCwd: getCwd2 } = await import("./state-MAVHRDNE.js");
25546
25678
  setCurrentPwd(getCwd2());
25547
25679
  });
25548
25680
  } else {
@@ -31928,7 +32060,7 @@ import { homedir as homedir8 } from "os";
31928
32060
  // src/commands/agents/generation.ts
31929
32061
  import { randomUUID as randomUUID6 } from "crypto";
31930
32062
  async function generateAgentWithClaude(prompt) {
31931
- const { queryModel } = await import("./llm-Q23IAP4O.js");
32063
+ const { queryModel } = await import("./llm-T7C6QJWB.js");
31932
32064
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
31933
32065
 
31934
32066
  Return your response as a JSON object with exactly these fields:
@@ -35539,7 +35671,7 @@ It is critical that you mark tasks as completed as soon as you are done with a t
35539
35671
  # Cognitive Safety & Sensing
35540
35672
  1. **Modification Check**: Before editing, you MUST verify if the change is already present (e.g. use \`grep\` or \`read\`). Do not rely on memory from previous turns.
35541
35673
  2. **Precise Targeting**: For code injection, prefer using LSP to find exact function boundaries, or Read the file to get unique context.
35542
- 3. **Artifact Verification**: After completing a complex task, verify the artifacts (e.g. check if files exist using \`ls\`).
35674
+ 3. **Artifact Verification**: After completing a complex task, verify the artifacts (e.g. check if files exist using \`ls\` or \`glob\`).
35543
35675
  4. **LSP Instinct**: Before modifying any code, you MUST first build structure context (structure tree \u2192 hotspot \u2192 Read). Use \`LSP documentSymbol\` or \`LSP goToDefinition\` only when you have a precise position and need to confirm exact range. Do NOT rely on line numbers from \`read_file\` alone as they may be outdated.
35544
35676
  5. **Atomic Verification**: When editing code, especially in critical or complex files, you should strongly consider setting \`verify: true\` in the \`FileEditTool\`. This enables the tool to automatically detect syntax errors and ROLLBACK changes if they are invalid, preventing you from breaking the build.
35545
35677
  6. **Semantic Search**: When searching for code concepts (e.g. "AuthLogic", "UserHandler") rather than exact filenames, prefer using \`GlobTool\` with \`semantic: true\`. This leverages LSP to find files by their content definitions.
@@ -35576,14 +35708,6 @@ user: is 11 a prime number?
35576
35708
  assistant: Yes
35577
35709
  </example>
35578
35710
 
35579
- <example>
35580
- user: locate where auth token refresh is implemented in a large repo
35581
- assistant: [uses the LS tool to scan top-level structure]
35582
- [uses the Glob tool to find candidate auth-related files]
35583
- [uses the Grep tool to search for token refresh patterns]
35584
- [uses the Read tool to inspect the most likely file]
35585
- </example>
35586
-
35587
35711
  <example>
35588
35712
  user: find all .ts and .tsx files under src/
35589
35713
  assistant: [uses the Glob tool to match files under src/]
@@ -35594,11 +35718,6 @@ user: How many golf balls fit inside a jetta?
35594
35718
  assistant: 150000
35595
35719
  </example>
35596
35720
 
35597
- <example>
35598
- user: delete the temp directory and all logs
35599
- assistant: [uses Delete tool to remove 'temp' directory and all '*.log' files in one call]
35600
- </example>
35601
-
35602
35721
  <example>
35603
35722
  user: list files in the directory src/
35604
35723
  assistant: [uses the LS tool to list files and sees foo.c, bar.c, baz.c]
@@ -35636,8 +35755,8 @@ When making changes to files, first understand the file's code conventions. Mimi
35636
35755
 
35637
35756
  ${includeCodingInstructions ? `# Doing tasks
35638
35757
  The user will primarily request you perform software engineering tasks. This includes solving bugs, adding new functionality, refactoring code, explaining code, and more. For these tasks the following steps are recommended:
35639
- - Use TaskCreate to plan multi-step work and TaskUpdate to track progress; use TaskList/TaskGet to review
35640
- - Use the available search tools to understand the codebase and the user's query. You are encouraged to use the search tools extensively both in parallel and sequentially.
35758
+ - Use TaskCreate VERY frequently to plan multi-step work required 2 or more distinct steps and TaskUpdate to track progress; use TaskList/TaskGet to review
35759
+ - Use the available search tools\uFF08e.g., Glob\u3001Grep\u3001LSP\u3001LS\uFF09 to understand the codebase and the user's query. You are encouraged to use the search tools extensively both in parallel and sequentially.
35641
35760
  - Implement the solution using all tools available to you
35642
35761
  - Verify the solution if possible with tests. NEVER assume specific test framework or test script. Check the README or search codebase to determine the testing approach.
35643
35762
  - VERY IMPORTANT: When you have completed a task, you MUST run the lint and typecheck commands (eg. npm run lint, npm run typecheck, ruff, etc.) if they were provided to you to ensure your code is correct. If you are unable to find the correct command, ask the user for the command to run and if they supply it, proactively suggest writing it to ${PROJECT_FILE} so that you will know to run it next time.
@@ -35647,20 +35766,22 @@ NEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTAN
35647
35766
  ` : ""}
35648
35767
 
35649
35768
  # Tool usage policy
35650
- - **Code Analysis & Exploration Priority**:For **complex** codebase exploration tasks (e.g., searching across 3+ directories, requiring multiple search iterations, or investigating cross-module patterns), prefer using the Task tool with Explore subagent. This isolates exploration context in a separate transcript.For simple tasks (reading known files, single-pattern searches), use Ls/Read/Glob/Grep directly for faster results.
35651
- - **File Search Priority**:When doing file search, prefer to use the Task tool for open-ended, multi-step exploration to reduce context usage. For known paths or small scopes, prefer Ls/Lsp/Read/Glob/Grep directly.
35652
- - **File System Exploration Priority**:For file system exploration, decide based on intent: if you need global structure/entry points, prefer LS first; if you have keywords or fuzzy paths, prefer Glob first. If results are too broad, use LS to narrow structure or combine with Grep/LSP. Only use Bash for executing scripts or binaries.
35653
35769
  - You can call multiple tools in a single response. If you intend to call multiple tools and there are no dependencies between them, make all independent tool calls in parallel. Maximize use of parallel tool calls where possible to increase efficiency. However, if some tool calls depend on previous calls to inform dependent values, do NOT call these tools in parallel and instead call them sequentially. For instance, if one operation must complete before another starts, run these operations sequentially instead. Never use placeholders or guess missing parameters in tool calls.
35770
+ - **LS vs Glob "dir/*"**: LS provides complexity stats (directory/file ratio, max depth) to guide strategy; Glob "dir/*" is faster but no stats. Use LS when you need structural insights; use Glob for quick one-level checks.
35654
35771
  - If the user specifies that they want you to run tools "in parallel", you MUST send a single message with multiple tool use content blocks.
35655
35772
  - It is always better to speculatively read multiple files as a batch that are potentially useful.
35656
35773
  - It is always better to speculatively perform multiple searches as a batch that are potentially useful.
35657
35774
 
35775
+
35658
35776
  # Cognitive Search Strategy
35659
35777
  1. **Concept Search**: WHEN searching for high-level concepts (e.g., "Auth Logic", "Payment Flow") OR when you are uncertain about exact naming, you MUST use \`semantic: true\` in Grep/Glob tools. This activates the LSP Workspace Symbol search which is resilient to typos and fuzzy matches.
35660
35778
  - Example: \`GrepTool(pattern: "AuthFeatr", semantic: true)\` will find "AuthFeature".
35661
35779
  - Example: \`GlobTool(pattern: "tests", semantic: true)\` will find test files based on project structure.
35662
35780
  2. **Exact Identifier**: WHEN you know the precise class/function name (e.g., "UserProfile", "initDatabase"), use standard Grep/Glob without \`semantic\` flag.
35663
35781
  3. **Exploration**: If standard search returns 0 results, AUTOMATICALLY retry with \`semantic: true\`.
35782
+ 4. **File System Exploration Priority**:For file system exploration, decide based on intent: if you need global structure/entry points, prefer LS or Glob "dir/*" first; if you have keywords or fuzzy paths, prefer Glob first. If results are too broad, use LS or Glob "dir/*" to narrow structure or combine with Grep/LSP. Only use Bash for executing scripts or binaries.
35783
+ 5. **Code Analysis & Exploration Priority**:For codebase exploration tasks (e.g., searching across 2 or more directories, requiring multiple search iterations, or investigating cross-module patterns), prefer using the Task tool with Explore subagent. This isolates exploration context in a separate transcript.For simple tasks (reading known files, single-pattern searches), use Glob/Grep/Ls/Read/Lsp directly for faster results.
35784
+ 6. **File Search Priority**:When doing file search, prefer to use the Task tool for open-ended, multi-step exploration to reduce context usage. For known paths or small scopes, prefer Ls/Lsp/Read/Glob/Grep directly.
35664
35785
 
35665
35786
  # Path Fragmentation Strategy
35666
35787
  - Root -> Core Directory -> Secondary Modules