pybao-cli 1.5.44 → 1.5.46

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 (153) hide show
  1. package/dist/REPL-OP6NG7VB.js +53 -0
  2. package/dist/{acp-5JW2Z5BK.js → acp-JLRZ5E3I.js} +30 -30
  3. package/dist/{agentsValidate-YEK5UGHS.js → agentsValidate-3OYN7SNK.js} +7 -7
  4. package/dist/{ask-SWVOM377.js → ask-BHVMWER5.js} +30 -30
  5. package/dist/{autoUpdater-PL7DMA64.js → autoUpdater-27NDSNED.js} +3 -3
  6. package/dist/{chunk-BJ4E3H6T.js → chunk-2GQH5CH7.js} +2 -2
  7. package/dist/{chunk-L6WSTLLB.js → chunk-4K3MGWZ7.js} +1 -1
  8. package/dist/{chunk-KDXRWYUT.js → chunk-5BASSS5Y.js} +1 -1
  9. package/dist/{chunk-HSZ7IBIM.js → chunk-5VQQJFA3.js} +3 -3
  10. package/dist/{chunk-F6HXSL5C.js → chunk-6WVP4NLC.js} +193 -39
  11. package/dist/chunk-6WVP4NLC.js.map +7 -0
  12. package/dist/{chunk-LR2HWOLF.js → chunk-ASMQWQTY.js} +1 -1
  13. package/dist/{chunk-7B4Y7L5M.js → chunk-ATYJA674.js} +2 -2
  14. package/dist/{chunk-HY5AAVJ7.js → chunk-AVQJBO3X.js} +4 -4
  15. package/dist/{chunk-4M455XYG.js → chunk-BSCFLD7U.js} +3 -3
  16. package/dist/{chunk-ATNQYVGD.js → chunk-C2NMYFPN.js} +3 -3
  17. package/dist/{chunk-Z7L243Q6.js → chunk-D7QIKN3F.js} +3 -3
  18. package/dist/{chunk-SNA5ZOOW.js → chunk-DIOS332Y.js} +1 -1
  19. package/dist/{chunk-2YBIQGI2.js → chunk-DS6COGYF.js} +2 -1
  20. package/dist/chunk-DS6COGYF.js.map +7 -0
  21. package/dist/{chunk-FAQR7BHA.js → chunk-EUYHO7FU.js} +1 -1
  22. package/dist/{chunk-T7SKNYSX.js → chunk-HHGV6WKI.js} +1 -1
  23. package/dist/{chunk-JZXFCQUD.js → chunk-IOSFLDRK.js} +1 -1
  24. package/dist/{chunk-O43ZKVDQ.js → chunk-J2NQVO6G.js} +1 -1
  25. package/dist/{chunk-BVVAZ4DR.js → chunk-J2UQWSDT.js} +1 -1
  26. package/dist/{chunk-KVS6BLCL.js → chunk-KDPYN5HT.js} +1 -1
  27. package/dist/{chunk-LSQI3ED4.js → chunk-KPDYWSAZ.js} +2 -2
  28. package/dist/{chunk-33VCHOW6.js → chunk-KUKOMPLF.js} +1 -1
  29. package/dist/{chunk-WZLENCCJ.js → chunk-KYMBYUI7.js} +4 -4
  30. package/dist/{chunk-EEJ5JI2U.js → chunk-LA6C74RB.js} +3 -3
  31. package/dist/{chunk-3SI4IQ7A.js → chunk-LSDHJWLA.js} +4 -4
  32. package/dist/{chunk-BJTIYM4B.js → chunk-PZBMEC3T.js} +2 -2
  33. package/dist/{chunk-FLDJME26.js → chunk-Q3ND7MXY.js} +3 -3
  34. package/dist/{chunk-GSNBOX7K.js → chunk-QIWBL65U.js} +4 -4
  35. package/dist/{chunk-SUX6ZULG.js → chunk-R6A5OQPH.js} +3 -3
  36. package/dist/{chunk-THVJEPLB.js → chunk-U5OB3CDM.js} +3 -3
  37. package/dist/{chunk-NBZOYYDD.js → chunk-VP62JPGI.js} +2 -2
  38. package/dist/{chunk-BOMJT46M.js → chunk-WEXG5Q5B.js} +2 -2
  39. package/dist/{cli-6JBMEDV3.js → cli-TCRA6ARC.js} +90 -90
  40. package/dist/commands-7FEOAWKL.js +57 -0
  41. package/dist/{config-EULVMRO5.js → config-5KMP3FRP.js} +4 -4
  42. package/dist/{context-JSG3K72W.js → context-VPRXOV4W.js} +6 -6
  43. package/dist/{conversationPersistence-YOMGSVQB.js → conversationPersistence-66W5Z6AO.js} +3 -3
  44. package/dist/{conversationTracker-KGQRKNMN.js → conversationTracker-FTAS67VE.js} +4 -4
  45. package/dist/{customCommands-M3Z7HX7X.js → customCommands-YQ2A3R6L.js} +4 -4
  46. package/dist/{env-PYJR5TNI.js → env-BDTFUU2H.js} +2 -2
  47. package/dist/{file-L62NMYKT.js → file-N4UK3JJK.js} +4 -4
  48. package/dist/index.js +3 -3
  49. package/dist/{llm-PKYVR5KJ.js → llm-QTECZGRE.js} +31 -31
  50. package/dist/{llmLazy-DYXOEDSN.js → llmLazy-5OLIOZK2.js} +1 -1
  51. package/dist/{loader-D7IUXCSB.js → loader-ITDKGIKQ.js} +4 -4
  52. package/dist/{lsp-6L3OHSHQ.js → lsp-DNNS2MO4.js} +6 -6
  53. package/dist/{lspAnchor-RV7FWXWE.js → lspAnchor-HU2YPGDN.js} +6 -6
  54. package/dist/{mcp-FCSBXZMQ.js → mcp-5R4HG2LZ.js} +7 -7
  55. package/dist/{mentionProcessor-3CT5DI5R.js → mentionProcessor-5DPHU4OP.js} +5 -5
  56. package/dist/{messages-DX4Z6HYO.js → messages-ZVVMQ3Q6.js} +1 -1
  57. package/dist/{model-QNCC4JW3.js → model-Q3NJN5MQ.js} +5 -5
  58. package/dist/{openai-F5LQS5LW.js → openai-HSEUQEKK.js} +5 -5
  59. package/dist/{outputStyles-7L26LLBX.js → outputStyles-YGD3BAAK.js} +4 -4
  60. package/dist/{pluginRuntime-I2K7DQ44.js → pluginRuntime-ODOQDPAK.js} +6 -6
  61. package/dist/{pluginValidation-MQLJ3B53.js → pluginValidation-P52JWV6C.js} +6 -6
  62. package/dist/prompts-VWZICAZT.js +59 -0
  63. package/dist/{pybAgentSessionLoad-HAC4ENCY.js → pybAgentSessionLoad-B735OKRY.js} +4 -4
  64. package/dist/{pybAgentSessionResume-XKKHWTBH.js → pybAgentSessionResume-YKCKQOJO.js} +4 -4
  65. package/dist/{pybAgentStreamJsonSession-ERY4PPMZ.js → pybAgentStreamJsonSession-7KQJH3YL.js} +1 -1
  66. package/dist/{pybHooks-7ITFGBSK.js → pybHooks-27O2F24J.js} +4 -4
  67. package/dist/query-YW4M2CLS.js +57 -0
  68. package/dist/{registry-PEO43FQR.js → registry-CJLUFMEQ.js} +5 -5
  69. package/dist/{ripgrep-W6K3ERM3.js → ripgrep-TD77KYER.js} +3 -3
  70. package/dist/{skillMarketplace-EUOXEYIC.js → skillMarketplace-R475NBXV.js} +3 -3
  71. package/dist/{state-ZPO2VKXG.js → state-KQVHDJY3.js} +2 -2
  72. package/dist/{theme-22IBHJQQ.js → theme-GDAAXHZV.js} +5 -5
  73. package/dist/{toolPermissionSettings-2DHBXAR6.js → toolPermissionSettings-ZTEGC7CB.js} +6 -6
  74. package/dist/tools-4WVDBE5W.js +57 -0
  75. package/dist/{userInput-GBQSAXB7.js → userInput-7HR7YK3T.js} +32 -32
  76. package/package.json +2 -1
  77. package/dist/REPL-RDCLK6RR.js +0 -53
  78. package/dist/chunk-2YBIQGI2.js.map +0 -7
  79. package/dist/chunk-F6HXSL5C.js.map +0 -7
  80. package/dist/commands-J63YXCO2.js +0 -57
  81. package/dist/prompts-2JWFXAYC.js +0 -59
  82. package/dist/query-JJ4E363R.js +0 -57
  83. package/dist/tools-VEZA5UVZ.js +0 -57
  84. /package/dist/{REPL-RDCLK6RR.js.map → REPL-OP6NG7VB.js.map} +0 -0
  85. /package/dist/{acp-5JW2Z5BK.js.map → acp-JLRZ5E3I.js.map} +0 -0
  86. /package/dist/{agentsValidate-YEK5UGHS.js.map → agentsValidate-3OYN7SNK.js.map} +0 -0
  87. /package/dist/{ask-SWVOM377.js.map → ask-BHVMWER5.js.map} +0 -0
  88. /package/dist/{autoUpdater-PL7DMA64.js.map → autoUpdater-27NDSNED.js.map} +0 -0
  89. /package/dist/{chunk-BJ4E3H6T.js.map → chunk-2GQH5CH7.js.map} +0 -0
  90. /package/dist/{chunk-L6WSTLLB.js.map → chunk-4K3MGWZ7.js.map} +0 -0
  91. /package/dist/{chunk-KDXRWYUT.js.map → chunk-5BASSS5Y.js.map} +0 -0
  92. /package/dist/{chunk-HSZ7IBIM.js.map → chunk-5VQQJFA3.js.map} +0 -0
  93. /package/dist/{chunk-LR2HWOLF.js.map → chunk-ASMQWQTY.js.map} +0 -0
  94. /package/dist/{chunk-7B4Y7L5M.js.map → chunk-ATYJA674.js.map} +0 -0
  95. /package/dist/{chunk-HY5AAVJ7.js.map → chunk-AVQJBO3X.js.map} +0 -0
  96. /package/dist/{chunk-4M455XYG.js.map → chunk-BSCFLD7U.js.map} +0 -0
  97. /package/dist/{chunk-ATNQYVGD.js.map → chunk-C2NMYFPN.js.map} +0 -0
  98. /package/dist/{chunk-Z7L243Q6.js.map → chunk-D7QIKN3F.js.map} +0 -0
  99. /package/dist/{chunk-SNA5ZOOW.js.map → chunk-DIOS332Y.js.map} +0 -0
  100. /package/dist/{chunk-FAQR7BHA.js.map → chunk-EUYHO7FU.js.map} +0 -0
  101. /package/dist/{chunk-T7SKNYSX.js.map → chunk-HHGV6WKI.js.map} +0 -0
  102. /package/dist/{chunk-JZXFCQUD.js.map → chunk-IOSFLDRK.js.map} +0 -0
  103. /package/dist/{chunk-O43ZKVDQ.js.map → chunk-J2NQVO6G.js.map} +0 -0
  104. /package/dist/{chunk-BVVAZ4DR.js.map → chunk-J2UQWSDT.js.map} +0 -0
  105. /package/dist/{chunk-KVS6BLCL.js.map → chunk-KDPYN5HT.js.map} +0 -0
  106. /package/dist/{chunk-LSQI3ED4.js.map → chunk-KPDYWSAZ.js.map} +0 -0
  107. /package/dist/{chunk-33VCHOW6.js.map → chunk-KUKOMPLF.js.map} +0 -0
  108. /package/dist/{chunk-WZLENCCJ.js.map → chunk-KYMBYUI7.js.map} +0 -0
  109. /package/dist/{chunk-EEJ5JI2U.js.map → chunk-LA6C74RB.js.map} +0 -0
  110. /package/dist/{chunk-3SI4IQ7A.js.map → chunk-LSDHJWLA.js.map} +0 -0
  111. /package/dist/{chunk-BJTIYM4B.js.map → chunk-PZBMEC3T.js.map} +0 -0
  112. /package/dist/{chunk-FLDJME26.js.map → chunk-Q3ND7MXY.js.map} +0 -0
  113. /package/dist/{chunk-GSNBOX7K.js.map → chunk-QIWBL65U.js.map} +0 -0
  114. /package/dist/{chunk-SUX6ZULG.js.map → chunk-R6A5OQPH.js.map} +0 -0
  115. /package/dist/{chunk-THVJEPLB.js.map → chunk-U5OB3CDM.js.map} +0 -0
  116. /package/dist/{chunk-NBZOYYDD.js.map → chunk-VP62JPGI.js.map} +0 -0
  117. /package/dist/{chunk-BOMJT46M.js.map → chunk-WEXG5Q5B.js.map} +0 -0
  118. /package/dist/{cli-6JBMEDV3.js.map → cli-TCRA6ARC.js.map} +0 -0
  119. /package/dist/{commands-J63YXCO2.js.map → commands-7FEOAWKL.js.map} +0 -0
  120. /package/dist/{config-EULVMRO5.js.map → config-5KMP3FRP.js.map} +0 -0
  121. /package/dist/{context-JSG3K72W.js.map → context-VPRXOV4W.js.map} +0 -0
  122. /package/dist/{conversationPersistence-YOMGSVQB.js.map → conversationPersistence-66W5Z6AO.js.map} +0 -0
  123. /package/dist/{conversationTracker-KGQRKNMN.js.map → conversationTracker-FTAS67VE.js.map} +0 -0
  124. /package/dist/{customCommands-M3Z7HX7X.js.map → customCommands-YQ2A3R6L.js.map} +0 -0
  125. /package/dist/{env-PYJR5TNI.js.map → env-BDTFUU2H.js.map} +0 -0
  126. /package/dist/{file-L62NMYKT.js.map → file-N4UK3JJK.js.map} +0 -0
  127. /package/dist/{llm-PKYVR5KJ.js.map → llm-QTECZGRE.js.map} +0 -0
  128. /package/dist/{llmLazy-DYXOEDSN.js.map → llmLazy-5OLIOZK2.js.map} +0 -0
  129. /package/dist/{loader-D7IUXCSB.js.map → loader-ITDKGIKQ.js.map} +0 -0
  130. /package/dist/{lsp-6L3OHSHQ.js.map → lsp-DNNS2MO4.js.map} +0 -0
  131. /package/dist/{lspAnchor-RV7FWXWE.js.map → lspAnchor-HU2YPGDN.js.map} +0 -0
  132. /package/dist/{mcp-FCSBXZMQ.js.map → mcp-5R4HG2LZ.js.map} +0 -0
  133. /package/dist/{mentionProcessor-3CT5DI5R.js.map → mentionProcessor-5DPHU4OP.js.map} +0 -0
  134. /package/dist/{messages-DX4Z6HYO.js.map → messages-ZVVMQ3Q6.js.map} +0 -0
  135. /package/dist/{model-QNCC4JW3.js.map → model-Q3NJN5MQ.js.map} +0 -0
  136. /package/dist/{openai-F5LQS5LW.js.map → openai-HSEUQEKK.js.map} +0 -0
  137. /package/dist/{outputStyles-7L26LLBX.js.map → outputStyles-YGD3BAAK.js.map} +0 -0
  138. /package/dist/{pluginRuntime-I2K7DQ44.js.map → pluginRuntime-ODOQDPAK.js.map} +0 -0
  139. /package/dist/{pluginValidation-MQLJ3B53.js.map → pluginValidation-P52JWV6C.js.map} +0 -0
  140. /package/dist/{prompts-2JWFXAYC.js.map → prompts-VWZICAZT.js.map} +0 -0
  141. /package/dist/{pybAgentSessionLoad-HAC4ENCY.js.map → pybAgentSessionLoad-B735OKRY.js.map} +0 -0
  142. /package/dist/{pybAgentSessionResume-XKKHWTBH.js.map → pybAgentSessionResume-YKCKQOJO.js.map} +0 -0
  143. /package/dist/{pybAgentStreamJsonSession-ERY4PPMZ.js.map → pybAgentStreamJsonSession-7KQJH3YL.js.map} +0 -0
  144. /package/dist/{pybHooks-7ITFGBSK.js.map → pybHooks-27O2F24J.js.map} +0 -0
  145. /package/dist/{query-JJ4E363R.js.map → query-YW4M2CLS.js.map} +0 -0
  146. /package/dist/{registry-PEO43FQR.js.map → registry-CJLUFMEQ.js.map} +0 -0
  147. /package/dist/{ripgrep-W6K3ERM3.js.map → ripgrep-TD77KYER.js.map} +0 -0
  148. /package/dist/{skillMarketplace-EUOXEYIC.js.map → skillMarketplace-R475NBXV.js.map} +0 -0
  149. /package/dist/{state-ZPO2VKXG.js.map → state-KQVHDJY3.js.map} +0 -0
  150. /package/dist/{theme-22IBHJQQ.js.map → theme-GDAAXHZV.js.map} +0 -0
  151. /package/dist/{toolPermissionSettings-2DHBXAR6.js.map → toolPermissionSettings-ZTEGC7CB.js.map} +0 -0
  152. /package/dist/{tools-VEZA5UVZ.js.map → tools-4WVDBE5W.js.map} +0 -0
  153. /package/dist/{userInput-GBQSAXB7.js.map → userInput-7HR7YK3T.js.map} +0 -0
@@ -2,17 +2,17 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  loadPybAgentSessionMessages
5
- } from "./chunk-33VCHOW6.js";
5
+ } from "./chunk-KUKOMPLF.js";
6
6
  import {
7
7
  appendSessionCustomTitleRecord,
8
8
  appendSessionJsonlFromMessage,
9
9
  appendSessionTagRecord,
10
10
  listPybAgentSessions
11
- } from "./chunk-4M455XYG.js";
11
+ } from "./chunk-BSCFLD7U.js";
12
12
  import {
13
13
  formatValidationResult,
14
14
  validatePluginOrMarketplacePath
15
- } from "./chunk-SUX6ZULG.js";
15
+ } from "./chunk-R6A5OQPH.js";
16
16
  import {
17
17
  ConversationTracker,
18
18
  appendFinishState,
@@ -20,10 +20,10 @@ import {
20
20
  getConversationTrackerForContext,
21
21
  isFinishComplete,
22
22
  mapFinishReason
23
- } from "./chunk-SNA5ZOOW.js";
23
+ } from "./chunk-DIOS332Y.js";
24
24
  import {
25
25
  FileSystemConversationPersistence
26
- } from "./chunk-KVS6BLCL.js";
26
+ } from "./chunk-KDPYN5HT.js";
27
27
  import {
28
28
  beginReplSessionScope
29
29
  } from "./chunk-F4AXICO7.js";
@@ -38,7 +38,7 @@ import {
38
38
  runStopHooks,
39
39
  runUserPromptSubmitHooks,
40
40
  updateHookTranscriptForMessages
41
- } from "./chunk-THVJEPLB.js";
41
+ } from "./chunk-U5OB3CDM.js";
42
42
  import {
43
43
  DEFAULT_OUTPUT_STYLE,
44
44
  getAvailableOutputStyles,
@@ -47,11 +47,11 @@ import {
47
47
  getOutputStyleSystemPromptAdditions,
48
48
  resolveOutputStyleName,
49
49
  setCurrentOutputStyle
50
- } from "./chunk-BJTIYM4B.js";
50
+ } from "./chunk-PZBMEC3T.js";
51
51
  import {
52
52
  fetchCustomModels,
53
53
  getModelFeatures
54
- } from "./chunk-LSQI3ED4.js";
54
+ } from "./chunk-KPDYWSAZ.js";
55
55
  import {
56
56
  getCurrentSessionId,
57
57
  getSessionState
@@ -60,7 +60,7 @@ import {
60
60
  queryLLM,
61
61
  queryQuick,
62
62
  verifyApiKey
63
- } from "./chunk-WZLENCCJ.js";
63
+ } from "./chunk-KYMBYUI7.js";
64
64
  import {
65
65
  DEFAULT_TIMEOUT_MS,
66
66
  FallbackToolUseRejectedMessage,
@@ -75,7 +75,7 @@ import {
75
75
  listMCPServers,
76
76
  loadMergedSettings,
77
77
  normalizeSandboxRuntimeConfigFromSettings
78
- } from "./chunk-3SI4IQ7A.js";
78
+ } from "./chunk-LSDHJWLA.js";
79
79
  import {
80
80
  addMarketplace,
81
81
  disableSkillPlugin,
@@ -88,11 +88,11 @@ import {
88
88
  refreshMarketplaceAsync,
89
89
  removeMarketplace,
90
90
  uninstallSkillPlugin
91
- } from "./chunk-LR2HWOLF.js";
91
+ } from "./chunk-ASMQWQTY.js";
92
92
  import {
93
93
  loadToolPermissionContextFromDisk,
94
94
  persistToolPermissionUpdateToDisk
95
- } from "./chunk-EEJ5JI2U.js";
95
+ } from "./chunk-LA6C74RB.js";
96
96
  import {
97
97
  applyToolPermissionContextUpdate,
98
98
  applyToolPermissionContextUpdates,
@@ -103,14 +103,14 @@ import {
103
103
  generateSystemReminders,
104
104
  resetReminderSession,
105
105
  systemReminderService
106
- } from "./chunk-NBZOYYDD.js";
106
+ } from "./chunk-VP62JPGI.js";
107
107
  import {
108
108
  clearAgentCache,
109
109
  getActiveAgents,
110
110
  getAgentByType,
111
111
  getAllAgents,
112
112
  getAvailableAgentTypes
113
- } from "./chunk-BJ4E3H6T.js";
113
+ } from "./chunk-2GQH5CH7.js";
114
114
  import {
115
115
  API_ERROR_MESSAGE_PREFIX,
116
116
  CANCEL_MESSAGE,
@@ -145,7 +145,7 @@ import {
145
145
  reorderMessages,
146
146
  resetAutoCompactTelemetry,
147
147
  stripSystemMessages
148
- } from "./chunk-JZXFCQUD.js";
148
+ } from "./chunk-IOSFLDRK.js";
149
149
  import {
150
150
  getRequestStatus,
151
151
  setRequestStatus,
@@ -177,7 +177,7 @@ import {
177
177
  normalizeFilePath,
178
178
  readTextContent,
179
179
  writeTextContent
180
- } from "./chunk-BOMJT46M.js";
180
+ } from "./chunk-WEXG5Q5B.js";
181
181
  import {
182
182
  parseBlockEdits
183
183
  } from "./chunk-QWIBSCDN.js";
@@ -195,18 +195,18 @@ import {
195
195
  formatDiagnosticsPretty,
196
196
  initParser,
197
197
  loadLanguage
198
- } from "./chunk-HY5AAVJ7.js";
198
+ } from "./chunk-AVQJBO3X.js";
199
199
  import {
200
200
  getSettingsFileCandidates,
201
201
  loadSettingsWithLegacyFallback,
202
202
  readSettingsFile
203
- } from "./chunk-O43ZKVDQ.js";
203
+ } from "./chunk-J2NQVO6G.js";
204
204
  import {
205
205
  getCustomCommandDirectories,
206
206
  hasCustomCommands,
207
207
  loadCustomCommands,
208
208
  reloadCustomCommands
209
- } from "./chunk-7B4Y7L5M.js";
209
+ } from "./chunk-ATYJA674.js";
210
210
  import {
211
211
  getSessionPlugins
212
212
  } from "./chunk-BJSWTHRM.js";
@@ -215,7 +215,7 @@ import {
215
215
  buildModelProfileKey,
216
216
  getModelManager,
217
217
  isDefaultSlowAndCapableModel
218
- } from "./chunk-FLDJME26.js";
218
+ } from "./chunk-Q3ND7MXY.js";
219
219
  import {
220
220
  getCodeStyle,
221
221
  getContext,
@@ -223,16 +223,16 @@ import {
223
223
  getIsGit,
224
224
  getProjectDocs,
225
225
  getProjectStructureStatisticsBlock
226
- } from "./chunk-GSNBOX7K.js";
226
+ } from "./chunk-QIWBL65U.js";
227
227
  import {
228
228
  getRipgrepPath,
229
229
  getRipgrepPolicyMode,
230
230
  resolveRipgrepPolicy,
231
231
  ripGrep
232
- } from "./chunk-KDXRWYUT.js";
232
+ } from "./chunk-5BASSS5Y.js";
233
233
  import {
234
234
  getTheme
235
- } from "./chunk-L6WSTLLB.js";
235
+ } from "./chunk-4K3MGWZ7.js";
236
236
  import {
237
237
  DEFAULT_GLOBAL_CONFIG,
238
238
  enableConfigs,
@@ -245,7 +245,7 @@ import {
245
245
  saveGlobalConfig,
246
246
  setAllPointersToModel,
247
247
  setModelPointer
248
- } from "./chunk-ATNQYVGD.js";
248
+ } from "./chunk-C2NMYFPN.js";
249
249
  import {
250
250
  AbortError
251
251
  } from "./chunk-RQVLBMP7.js";
@@ -254,7 +254,7 @@ import {
254
254
  getCurrentRequest,
255
255
  logUserFriendly,
256
256
  markPhase
257
- } from "./chunk-T7SKNYSX.js";
257
+ } from "./chunk-HHGV6WKI.js";
258
258
  import {
259
259
  ASCII_LOGO,
260
260
  BunShell,
@@ -298,10 +298,10 @@ import {
298
298
  setCwd,
299
299
  shouldApplyToolOutputTruncation,
300
300
  truncateToolOutput
301
- } from "./chunk-BVVAZ4DR.js";
301
+ } from "./chunk-J2UQWSDT.js";
302
302
  import {
303
303
  MACRO
304
- } from "./chunk-2YBIQGI2.js";
304
+ } from "./chunk-DS6COGYF.js";
305
305
  import {
306
306
  __export
307
307
  } from "./chunk-I3J4JYES.js";
@@ -482,7 +482,7 @@ var getCommandSubcommandPrefix = memoize(
482
482
  var getCommandPrefix = memoize(
483
483
  async (command4, abortSignal) => {
484
484
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
485
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-PKYVR5KJ.js");
485
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-QTECZGRE.js");
486
486
  const response = await queryQuick2({
487
487
  systemPrompt,
488
488
  userPrompt,
@@ -4284,7 +4284,7 @@ function formatParseError(error) {
4284
4284
  return error instanceof Error ? error.message : String(error);
4285
4285
  }
4286
4286
  async function defaultGateQuery(args) {
4287
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-PKYVR5KJ.js");
4287
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-QTECZGRE.js");
4288
4288
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4289
4289
  const messages = [
4290
4290
  {
@@ -6475,12 +6475,49 @@ Usage:
6475
6475
  7. **Conditional Edit**: Use \`if_not_contains\` to skip the edit if the file already contains a specific string.
6476
6476
  8. **Thinking**: You can include "thinking" text between blocks; the tool will ignore it.
6477
6477
 
6478
+ ## LSP-Integrated Behavior
6479
+ - **Semantic Anchor Assist**: Before fuzzy replacement, Edit tries LSP anchor matching to narrow replacement to the most relevant symbol range.
6480
+ - **When It Helps**: Especially useful when the same snippet appears multiple times and plain text matching may hit the wrong block.
6481
+ - **Fallback**: If LSP anchor is unavailable, Edit falls back to normal SEARCH/REPLACE matching.
6482
+ - **Post-Edit Verification**: Set \`verify: true\` to run LSP diagnostics after applying edits.
6483
+ - **Verification Guardrail**: If syntax/type diagnostics contain errors after edit, Edit reverts changes and returns a verification failure.
6484
+ - **When LSP Is Unavailable**: You may receive verification unavailable; retry with \`verify: false\` only when you have high confidence in edit safety.
6485
+
6478
6486
  Notes:
6479
6487
  - The edit will FAIL if the SEARCH block matches multiple locations(ambiguous). Provide more context.
6480
6488
  - To delete code, leave the REPLACE section empty.
6481
6489
  - To create a new file, use an empty SEARCH block with the desired content in REPLACE.
6482
6490
  - ALWAYS prefer editing existing files. NEVER write new files unless explicitly required.
6483
6491
  - For Jupyter Notebooks (.ipynb), use the NotebookEditTool instead.
6492
+
6493
+ ## Typical Usage Examples
6494
+ ### Example 1: Ambiguous Duplicate Snippet with LSP Anchor
6495
+ <example>
6496
+ user: Update the constructor guard in UserService, not the test helper copy
6497
+ assistant: [uses Read on UserService file to confirm target block]
6498
+ [uses Edit with SEARCH/REPLACE block and verify=true]
6499
+ [relies on LSP anchor assist to prefer semantic symbol region when duplicate text exists]
6500
+ <reasoning>
6501
+ The assistant enabled semantic-safe editing because:
6502
+ 1. Duplicate snippets can cause ambiguous fuzzy matches
6503
+ 2. LSP anchor narrows replacement to the intended symbol scope
6504
+ 3. verify=true adds post-edit diagnostics guardrail and auto-revert on syntax errors
6505
+ </reasoning>
6506
+ </example>
6507
+
6508
+ ### Example 2: Verification-Unavailable Recovery
6509
+ <example>
6510
+ user: Apply this quick rename in a generated file
6511
+ assistant: [uses Read to confirm exact path and block]
6512
+ [uses Edit with verify=true]
6513
+ [if response says verification unavailable, retries with verify=false and tighter SEARCH context]
6514
+ <reasoning>
6515
+ The assistant keeps verification first, then degrades safely because:
6516
+ 1. LSP verification is preferred for correctness
6517
+ 2. Generated or unsupported files may not have active LSP diagnostics
6518
+ 3. Retrying with verify=false is acceptable only after narrowing context
6519
+ </reasoning>
6520
+ </example>
6484
6521
  `.trim();
6485
6522
 
6486
6523
  // src/utils/terminal/paste.ts
@@ -6677,7 +6714,7 @@ var FileEditTool = {
6677
6714
  const originalFileContent = currentFileContent;
6678
6715
  let totalPatch = [];
6679
6716
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6680
- const { findLspAnchor } = await import("./lspAnchor-RV7FWXWE.js");
6717
+ const { findLspAnchor } = await import("./lspAnchor-HU2YPGDN.js");
6681
6718
  for (const op of editOperations) {
6682
6719
  const normalizedSearch = normalizeLineEndings(op.search);
6683
6720
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -8519,6 +8556,12 @@ var DESCRIPTION4 = `Fast file pattern matching tool that works with any codebase
8519
8556
  - Search ignores .gitignore rules and includes hidden files by default.
8520
8557
  - **Empty Results**: When no files are found, try broader patterns (e.g., src/**/*) or verify path exists.
8521
8558
  - **Error Handling**: Returns error if \`path\` does not exist or is not a valid directory.
8559
+ - **LSP Semantic Mode**: \`semantic: true\` enables workspace symbol fallback when file globbing returns empty.
8560
+ - **Semantic search is opt-in**: Only set \`semantic: true\` when you intentionally want LSP-assisted fallback.
8561
+ - Semantic output may include:
8562
+ - \`semanticNotice\`: human-readable semantic fallback note
8563
+ - \`semanticReason\`: structured reason code (e.g., \`SYMBOLS_ADDED\`, \`NO_SYMBOL_MATCH\`, \`LSP_UNAVAILABLE\`)
8564
+ - \`semanticSuggestion\`: suggested next action aligned to reason code
8522
8565
  - **Truncated Results**: When results are truncated (limited to 100 files), narrow down using:
8523
8566
  1. Add a more specific path: \`src/core/**/*.ts\` instead of \`**/*.ts\`
8524
8567
  2. Use file extension filter: \`src/**/*.test.ts\` instead of \`src/**/*.ts\`
@@ -8564,6 +8607,20 @@ var DESCRIPTION4 = `Fast file pattern matching tool that works with any codebase
8564
8607
  [uses Glob tool with pattern="src/**/*.ts" to focus on source code]
8565
8608
  [uses Glob tool with pattern="src/core/**/*.ts" to narrow further if needed]
8566
8609
  </example>
8610
+
8611
+ ### Example 6: Semantic Fallback for Unknown File Path
8612
+ <example>
8613
+ user: Find where AuthService is implemented, I do not know the file name
8614
+ assistant: [uses Glob tool with pattern="**/*AuthService*" semantic=false first]
8615
+ [if no files found, retries with semantic=true]
8616
+ [reads semanticReason and semanticSuggestion to decide next step]
8617
+ <reasoning>
8618
+ The assistant switches to semantic mode because:
8619
+ 1. Filename-based glob failed and user intent is symbol-oriented
8620
+ 2. semantic=true allows LSP workspace symbols to recover likely file paths
8621
+ 3. semanticReason + semanticSuggestion provide explicit fallback diagnostics
8622
+ </reasoning>
8623
+ </example>
8567
8624
  `.trim();
8568
8625
 
8569
8626
  // src/tools/filesystem/GlobTool/GlobTool.tsx
@@ -8831,6 +8888,12 @@ var DESCRIPTION5 = `A powerful fast content search tool that works with any code
8831
8888
  **Result Handling**:
8832
8889
  - Results are truncated at 20,000 characters if too large
8833
8890
  - Use Task tool for open-ended searches requiring multiple rounds
8891
+ - **Semantic Fallback** (\`semantic: true\`): when text grep has no hit (or \`symbol_type\` is provided), Grep can query LSP workspace symbols.
8892
+ - Semantic-enhanced outputs may include:
8893
+ - \`semanticNotice\`: fallback summary
8894
+ - \`semanticReason\`: structured reason code (e.g., \`SYMBOLS_ADDED\`, \`NO_SYMBOL_MATCH\`, \`LSP_UNAVAILABLE\`)
8895
+ - \`semanticSuggestion\`: suggested next action by reason code
8896
+ - Keep deterministic workflow: text search first, semantic fallback second.
8834
8897
 
8835
8898
  **Typical Usage Examples**:
8836
8899
 
@@ -8869,6 +8932,20 @@ var DESCRIPTION5 = `A powerful fast content search tool that works with any code
8869
8932
  assistant: [uses Grep tool with pattern="database.*host|db_host|DB_HOST" -i: true]
8870
8933
  [uses Read tool to examine configuration files]
8871
8934
  </example>
8935
+
8936
+ Example 6: Semantic Fallback with Structured Reason
8937
+ <example>
8938
+ user: Find usages of PaymentSrvce (name might be misspelled)
8939
+ assistant: [uses Grep tool with pattern="PaymentSrvce" output_mode="files_with_matches"]
8940
+ [if no hit, retries with semantic=true]
8941
+ [uses semanticReason and semanticSuggestion to decide whether to broaden query or switch to LspTool]
8942
+ <reasoning>
8943
+ The assistant uses semantic fallback because:
8944
+ 1. Text grep may miss typo-tolerant symbol matches
8945
+ 2. LSP workspace symbols can recover intended semantic targets
8946
+ 3. Structured reason fields make fallback outcomes explicit and actionable
8947
+ </reasoning>
8948
+ </example>
8872
8949
  `.trim();
8873
8950
 
8874
8951
  // src/tools/search/GrepTool/GrepTool.tsx
@@ -12565,7 +12642,7 @@ async function createAndStoreApiKey(accessToken) {
12565
12642
  }
12566
12643
  saveGlobalConfig(config2);
12567
12644
  try {
12568
- const { resetAnthropicClient } = await import("./llm-PKYVR5KJ.js");
12645
+ const { resetAnthropicClient } = await import("./llm-QTECZGRE.js");
12569
12646
  resetAnthropicClient();
12570
12647
  } catch {
12571
12648
  }
@@ -16989,7 +17066,7 @@ async function refreshPluginRuntimeFromInstalls() {
16989
17066
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
16990
17067
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
16991
17068
  if (dirs.length === 0) return [];
16992
- const { configureSessionPlugins } = await import("./pluginRuntime-I2K7DQ44.js");
17069
+ const { configureSessionPlugins } = await import("./pluginRuntime-ODOQDPAK.js");
16993
17070
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
16994
17071
  return errors;
16995
17072
  }
@@ -17664,7 +17741,7 @@ async function call(onDone, context) {
17664
17741
  ModelConfig,
17665
17742
  {
17666
17743
  onClose: () => {
17667
- import("./model-QNCC4JW3.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17744
+ import("./model-Q3NJN5MQ.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17668
17745
  reloadModelManager2();
17669
17746
  triggerModelConfigChange();
17670
17747
  onDone();
@@ -27621,7 +27698,41 @@ var PROMPT7 = `- Retrieves output from a running or completed task (background s
27621
27698
  - Use block=true (default) to wait for task completion
27622
27699
  - Use block=false for non-blocking check of current status
27623
27700
  - Task IDs can be found using the /tasks command
27624
- - Works with all task types: background shells, async agents, and remote sessions`;
27701
+ - Works with all task types: background shells, async agents, and remote sessions
27702
+
27703
+ ## LSP-Integrated Analysis
27704
+ - Optional \`analyze: true\` can append diagnostics-oriented analysis for task outputs.
27705
+ - LSP analysis execution is gated by environment flag \`PYB_TASKOUTPUT_LSP_ANALYSIS\` (1/true/on/yes).
27706
+ - If enabled, TaskOutput attempts semantic diagnostics enrichment for files mentioned in output.
27707
+ - If LSP analysis fails, TaskOutput emits structured fallback telemetry (\`LSP_TOOL_FALLBACK\`) and continues returning task output.
27708
+ - Treat analysis as augmentation: source-of-truth remains the original task output.
27709
+
27710
+ ## Typical Usage Examples
27711
+ ### Example 1: Build Failure Triage with LSP Analysis
27712
+ <example>
27713
+ user: Check task 123 and tell me why build failed
27714
+ assistant: [uses TaskOutput with task_id="123" block=true analyze=true]
27715
+ [inspects task output first, then uses appended LSP diagnostics hints for root-cause localization]
27716
+ <reasoning>
27717
+ The assistant uses analyze=true because:
27718
+ 1. User asks for failure diagnosis, not only raw logs
27719
+ 2. LSP diagnostics can map errors to concrete file/line issues
27720
+ 3. Raw task output is still preserved as authoritative evidence
27721
+ </reasoning>
27722
+ </example>
27723
+
27724
+ ### Example 2: Non-Blocking Polling During Long Task
27725
+ <example>
27726
+ user: Keep checking task 456 without waiting for completion
27727
+ assistant: [uses TaskOutput with task_id="456" block=false analyze=false]
27728
+ [repeats polling as needed; enables analyze=true only when failure appears]
27729
+ <reasoning>
27730
+ The assistant defers analysis because:
27731
+ 1. Task is still running, so output is incomplete
27732
+ 2. Non-blocking polling reduces wait latency
27733
+ 3. Diagnostics enrichment is most useful after stable failure output appears
27734
+ </reasoning>
27735
+ </example>`;
27625
27736
 
27626
27737
  // src/tools/system/TaskOutputTool/TaskOutputTool.tsx
27627
27738
  var TOOL_PROGRESS_OPEN_TAG2 = ["<tool", "-progress>"].join("");
@@ -27707,7 +27818,7 @@ async function analyzeOutputWithLsp(output, exitCode) {
27707
27818
  if (exitCode !== 0 || errorCount > 0 || warningCount > 0) {
27708
27819
  try {
27709
27820
  const { isAbsolute: isAbsolute11, resolve: resolve16 } = await import("path");
27710
- const { getSessionRoot: getSessionRoot2 } = await import("./state-ZPO2VKXG.js");
27821
+ const { getSessionRoot: getSessionRoot2 } = await import("./state-KQVHDJY3.js");
27711
27822
  const lines = output.split("\n");
27712
27823
  const uniqueFiles = /* @__PURE__ */ new Set();
27713
27824
  const lspSuggestions = [];
@@ -27990,6 +28101,10 @@ Usage:
27990
28101
  - Supports recursive deletion for directories (be careful!).
27991
28102
  - Safe and cross-platform (works on Windows/Linux/Mac).
27992
28103
  - Do NOT use BashTool/RunCommand with 'rm', 'del', or 'rmdir'.
28104
+ - Default behavior includes an LSP reference safety check before deletion.
28105
+ - If references are detected, deletion is blocked unless \`force: true\` is explicitly set.
28106
+ - If LSP safety check fails internally, deletion is blocked unless \`force: true\` is explicitly set.
28107
+ - Use \`force: true\` only when you have validated impact (for example via LspTool findReferences or reviewed call sites with Read).
27993
28108
 
27994
28109
  Examples:
27995
28110
 
@@ -28008,6 +28123,18 @@ Delete({
28008
28123
  })
28009
28124
  </example_force>
28010
28125
 
28126
+ <example_lsp_guard>
28127
+ // Deletion blocked by LSP reference guard, then explicitly overridden
28128
+ Delete({
28129
+ file_paths: ["/absolute/path/to/legacy-api.ts"]
28130
+ })
28131
+ // if blocked with "Safety Check Failed", validate impact first, then:
28132
+ Delete({
28133
+ file_paths: ["/absolute/path/to/legacy-api.ts"],
28134
+ force: true
28135
+ })
28136
+ </example_lsp_guard>
28137
+
28011
28138
  <example_directory>
28012
28139
  // Deleting a directory recursively
28013
28140
  Delete({
@@ -28092,7 +28219,7 @@ var DeleteTool = {
28092
28219
  }
28093
28220
  if (!force) {
28094
28221
  try {
28095
- const { LspFacade: LspFacade2 } = await import("./lsp-6L3OHSHQ.js");
28222
+ const { LspFacade: LspFacade2 } = await import("./lsp-DNNS2MO4.js");
28096
28223
  const referenceDetail = await LspFacade2.checkFileReferences(fullPath);
28097
28224
  if (referenceDetail) {
28098
28225
  failedItems.push(
@@ -28453,6 +28580,33 @@ If the specified position is not on a valid symbol, the tool automatically searc
28453
28580
  - **workspaceSymbol**: Must provide scoped filePath (module or directory), avoid unbounded full-repo queries
28454
28581
  - **documentSymbol**: Uses LspFacade policy (LSP-first for accuracy, Tree-Sitter fallback for speed)
28455
28582
 
28583
+ ## Typical Usage Examples
28584
+ ### Example 1: Find Symbol Then Read Precise Block
28585
+ <example>
28586
+ user: Locate JWT validation implementation quickly
28587
+ assistant: [uses LSP workspaceSymbol with query="jwt validate" and scoped filePath]
28588
+ [uses Read on the discovered file and then LSP documentSymbol/definition as needed]
28589
+ <reasoning>
28590
+ The assistant starts semantically because:
28591
+ 1. User asks for implementation location, not broad text grep
28592
+ 2. workspaceSymbol narrows candidate files efficiently
28593
+ 3. Read is then used for exact code extraction once target is known
28594
+ </reasoning>
28595
+ </example>
28596
+
28597
+ ### Example 2: Diagnostics-First Debugging
28598
+ <example>
28599
+ user: Build failed in api package, tell me real code errors
28600
+ assistant: [uses LSP diagnostics with waitForDiagnostics=true on scoped filePath]
28601
+ [uses goToDefinition/findReferences for follow-up impact tracing]
28602
+ <reasoning>
28603
+ The assistant prioritizes diagnostics because:
28604
+ 1. Diagnostics provide direct semantic errors from language tooling
28605
+ 2. Scoped path avoids unbounded workspace queries
28606
+ 3. Follow-up LSP ops can trace root-cause dependencies
28607
+ </reasoning>
28608
+ </example>
28609
+
28456
28610
  Note: LSP servers are automatically managed and installed for most languages. For system-level languages (like C++, Java), ensure the corresponding tools (clangd, jdtls) are in your PATH.`;
28457
28611
  var DESCRIPTION10 = PROMPT11;
28458
28612
 
@@ -38494,7 +38648,7 @@ function useStatusLine() {
38494
38648
  // src/ui/components/PromptInput.tsx
38495
38649
  async function interpretHashCommand(input) {
38496
38650
  try {
38497
- const { queryQuick: queryQuick2 } = await import("./llm-PKYVR5KJ.js");
38651
+ const { queryQuick: queryQuick2 } = await import("./llm-QTECZGRE.js");
38498
38652
  const systemPrompt = [
38499
38653
  "You're helping the user structure notes that will be added to their PYB.md file.",
38500
38654
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -38807,7 +38961,7 @@ function PromptInput({
38807
38961
  if (messages2.length) {
38808
38962
  if (mode === "bash") {
38809
38963
  onQuery(messages2, newAbortController).then(async () => {
38810
- const { getCwd: getCwd2 } = await import("./state-ZPO2VKXG.js");
38964
+ const { getCwd: getCwd2 } = await import("./state-KQVHDJY3.js");
38811
38965
  setCurrentPwd(getCwd2());
38812
38966
  });
38813
38967
  } else {
@@ -40437,7 +40591,7 @@ import { homedir as homedir8 } from "os";
40437
40591
  // src/commands/agents/generation.ts
40438
40592
  import { randomUUID as randomUUID9 } from "crypto";
40439
40593
  async function generateAgentWithClaude(prompt) {
40440
- const { queryModel } = await import("./llm-PKYVR5KJ.js");
40594
+ const { queryModel } = await import("./llm-QTECZGRE.js");
40441
40595
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
40442
40596
 
40443
40597
  Return your response as a JSON object with exactly these fields: