pybao-cli 1.3.58 → 1.3.60

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 (132) hide show
  1. package/dist/REPL-NWGNC5Q6.js +42 -0
  2. package/dist/{acp-LYCKM2TI.js → acp-TBTUUMWW.js} +26 -26
  3. package/dist/{agentsValidate-EC6END7F.js → agentsValidate-J63L4VBS.js} +7 -7
  4. package/dist/{ask-GI5DRJBL.js → ask-XZVD32YA.js} +25 -25
  5. package/dist/{autoUpdater-4YVYO24K.js → autoUpdater-MGX45DVC.js} +3 -3
  6. package/dist/{chunk-7GLJ7VAZ.js → chunk-254HM3YV.js} +1 -1
  7. package/dist/{chunk-H3AOUEYZ.js → chunk-37MRI7OH.js} +3 -3
  8. package/dist/{chunk-O56GBI2I.js → chunk-3KDIVUMJ.js} +1 -1
  9. package/dist/{chunk-ULUOA4VY.js → chunk-4PUOJP27.js} +3 -3
  10. package/dist/{chunk-N67HYK7H.js → chunk-5J75JNYU.js} +2 -2
  11. package/dist/{chunk-DYSHQCXS.js → chunk-6TS7JDP6.js} +3 -3
  12. package/dist/{chunk-TGCVWLDI.js → chunk-A2E4MLOO.js} +3 -3
  13. package/dist/{chunk-2M2Y6OLD.js → chunk-CBCXCBGD.js} +1 -1
  14. package/dist/{chunk-2DBHDKLM.js → chunk-CY2SE75O.js} +2 -2
  15. package/dist/{chunk-IWH5QOYN.js → chunk-DKDOBGYY.js} +60 -40
  16. package/dist/chunk-DKDOBGYY.js.map +7 -0
  17. package/dist/{chunk-HVP26Z5X.js → chunk-E36DR7VA.js} +1 -1
  18. package/dist/{chunk-BBBJBXZ6.js → chunk-FV4TLVB2.js} +2 -2
  19. package/dist/{chunk-EM5T4YJS.js → chunk-GZBGCBRV.js} +3 -3
  20. package/dist/{chunk-DSSBD4UT.js → chunk-HFKFW2FC.js} +115 -46
  21. package/dist/{chunk-DSSBD4UT.js.map → chunk-HFKFW2FC.js.map} +2 -2
  22. package/dist/{chunk-BKZ334RO.js → chunk-IXGCKRWF.js} +4 -4
  23. package/dist/{chunk-DAFI6K22.js → chunk-LW2CMS4L.js} +1 -1
  24. package/dist/{chunk-MSPICB55.js → chunk-NJS7QEQM.js} +1 -1
  25. package/dist/{chunk-4CP2V5UB.js → chunk-RP24IRHH.js} +2 -2
  26. package/dist/{chunk-BZKMHEX2.js → chunk-SXEY6MGO.js} +2 -2
  27. package/dist/{chunk-OS7WEAJM.js → chunk-SZEKCDXG.js} +1 -1
  28. package/dist/{chunk-H56BFGRT.js → chunk-TDU6Z7ZH.js} +1 -1
  29. package/dist/{chunk-GADM3OKI.js → chunk-UNCZ66TS.js} +3 -3
  30. package/dist/{chunk-BRCVB4OQ.js → chunk-V6ZP7GFL.js} +1 -1
  31. package/dist/{chunk-BRCVB4OQ.js.map → chunk-V6ZP7GFL.js.map} +1 -1
  32. package/dist/{chunk-2HDHGZNP.js → chunk-YIBR6CZP.js} +3 -3
  33. package/dist/{chunk-32YJDWRZ.js → chunk-YNYNKU7M.js} +2 -2
  34. package/dist/{chunk-HP32GABR.js → chunk-ZCIXEHO3.js} +1 -1
  35. package/dist/{chunk-RYVUTLVX.js → chunk-ZMWB3VBE.js} +4 -4
  36. package/dist/{cli-JXW4QLJN.js → cli-L6YXHMEO.js} +77 -77
  37. package/dist/commands-FSKNON7C.js +46 -0
  38. package/dist/{config-7IZ34L3S.js → config-FWF3LEWN.js} +4 -4
  39. package/dist/{context-WJHUEGBB.js → context-2QY2VH4A.js} +5 -5
  40. package/dist/{customCommands-I6HIO3CU.js → customCommands-VEMR2LGN.js} +4 -4
  41. package/dist/{env-PFX2FOIX.js → env-OSC56YI7.js} +2 -2
  42. package/dist/index.js +3 -3
  43. package/dist/{llm-5HQRDZG7.js → llm-O2MER4L2.js} +26 -26
  44. package/dist/{llmLazy-F4LFWEUT.js → llmLazy-SYEDSZSB.js} +1 -1
  45. package/dist/{loader-LGQ2KA4C.js → loader-MLL6SWIJ.js} +4 -4
  46. package/dist/{mcp-RIYQ64VF.js → mcp-HAYTXPHN.js} +7 -7
  47. package/dist/{mentionProcessor-ET7OEP52.js → mentionProcessor-GOZEGP7X.js} +5 -5
  48. package/dist/{messages-3V3RGTF7.js → messages-KCLPP7WQ.js} +1 -1
  49. package/dist/{model-5PVDBI7J.js → model-6X7QI4AK.js} +5 -5
  50. package/dist/{openai-OU33FH52.js → openai-4S6PLFQU.js} +5 -5
  51. package/dist/{outputStyles-7HJA7JYF.js → outputStyles-LHLEZ5PP.js} +4 -4
  52. package/dist/{pluginRuntime-OAP2UR7S.js → pluginRuntime-ODS43P2F.js} +6 -6
  53. package/dist/{pluginValidation-6IRCHOJG.js → pluginValidation-IG66AYUD.js} +6 -6
  54. package/dist/prompts-Q6P7GL77.js +48 -0
  55. package/dist/{pybAgentSessionLoad-O5HI5ZQA.js → pybAgentSessionLoad-R67Y7CA4.js} +4 -4
  56. package/dist/{pybAgentSessionResume-KXXOI5BO.js → pybAgentSessionResume-QZFZCTJZ.js} +4 -4
  57. package/dist/{pybAgentStreamJsonSession-25GKDW65.js → pybAgentStreamJsonSession-R2ALHKP3.js} +1 -1
  58. package/dist/{pybHooks-H74CE7GF.js → pybHooks-PHE6MC5A.js} +4 -4
  59. package/dist/query-D7HUISRS.js +50 -0
  60. package/dist/{ripgrep-DFRTEML3.js → ripgrep-6VRUGZMJ.js} +3 -3
  61. package/dist/{skillMarketplace-AGLUOUCV.js → skillMarketplace-JB4ZTJ7Z.js} +3 -3
  62. package/dist/{state-K5W2U5V2.js → state-PD2NWT3T.js} +2 -2
  63. package/dist/{theme-RBYITPVQ.js → theme-LAB3MOQZ.js} +5 -5
  64. package/dist/{toolPermissionSettings-SZSO3AF2.js → toolPermissionSettings-EIEMOTDK.js} +6 -6
  65. package/dist/tools-AQKKY4YI.js +47 -0
  66. package/dist/{userInput-TAAQ7FYD.js → userInput-GGN3LX3H.js} +27 -27
  67. package/package.json +1 -1
  68. package/dist/REPL-HRF7VBFT.js +0 -42
  69. package/dist/chunk-IWH5QOYN.js.map +0 -7
  70. package/dist/commands-KTMIKYCW.js +0 -46
  71. package/dist/prompts-SIYABMNP.js +0 -48
  72. package/dist/query-KQEDRTMJ.js +0 -50
  73. package/dist/tools-BCKNN3G6.js +0 -47
  74. /package/dist/{REPL-HRF7VBFT.js.map → REPL-NWGNC5Q6.js.map} +0 -0
  75. /package/dist/{acp-LYCKM2TI.js.map → acp-TBTUUMWW.js.map} +0 -0
  76. /package/dist/{agentsValidate-EC6END7F.js.map → agentsValidate-J63L4VBS.js.map} +0 -0
  77. /package/dist/{ask-GI5DRJBL.js.map → ask-XZVD32YA.js.map} +0 -0
  78. /package/dist/{autoUpdater-4YVYO24K.js.map → autoUpdater-MGX45DVC.js.map} +0 -0
  79. /package/dist/{chunk-7GLJ7VAZ.js.map → chunk-254HM3YV.js.map} +0 -0
  80. /package/dist/{chunk-H3AOUEYZ.js.map → chunk-37MRI7OH.js.map} +0 -0
  81. /package/dist/{chunk-O56GBI2I.js.map → chunk-3KDIVUMJ.js.map} +0 -0
  82. /package/dist/{chunk-ULUOA4VY.js.map → chunk-4PUOJP27.js.map} +0 -0
  83. /package/dist/{chunk-N67HYK7H.js.map → chunk-5J75JNYU.js.map} +0 -0
  84. /package/dist/{chunk-DYSHQCXS.js.map → chunk-6TS7JDP6.js.map} +0 -0
  85. /package/dist/{chunk-TGCVWLDI.js.map → chunk-A2E4MLOO.js.map} +0 -0
  86. /package/dist/{chunk-2M2Y6OLD.js.map → chunk-CBCXCBGD.js.map} +0 -0
  87. /package/dist/{chunk-2DBHDKLM.js.map → chunk-CY2SE75O.js.map} +0 -0
  88. /package/dist/{chunk-HVP26Z5X.js.map → chunk-E36DR7VA.js.map} +0 -0
  89. /package/dist/{chunk-BBBJBXZ6.js.map → chunk-FV4TLVB2.js.map} +0 -0
  90. /package/dist/{chunk-EM5T4YJS.js.map → chunk-GZBGCBRV.js.map} +0 -0
  91. /package/dist/{chunk-BKZ334RO.js.map → chunk-IXGCKRWF.js.map} +0 -0
  92. /package/dist/{chunk-DAFI6K22.js.map → chunk-LW2CMS4L.js.map} +0 -0
  93. /package/dist/{chunk-MSPICB55.js.map → chunk-NJS7QEQM.js.map} +0 -0
  94. /package/dist/{chunk-4CP2V5UB.js.map → chunk-RP24IRHH.js.map} +0 -0
  95. /package/dist/{chunk-BZKMHEX2.js.map → chunk-SXEY6MGO.js.map} +0 -0
  96. /package/dist/{chunk-OS7WEAJM.js.map → chunk-SZEKCDXG.js.map} +0 -0
  97. /package/dist/{chunk-H56BFGRT.js.map → chunk-TDU6Z7ZH.js.map} +0 -0
  98. /package/dist/{chunk-GADM3OKI.js.map → chunk-UNCZ66TS.js.map} +0 -0
  99. /package/dist/{chunk-2HDHGZNP.js.map → chunk-YIBR6CZP.js.map} +0 -0
  100. /package/dist/{chunk-32YJDWRZ.js.map → chunk-YNYNKU7M.js.map} +0 -0
  101. /package/dist/{chunk-HP32GABR.js.map → chunk-ZCIXEHO3.js.map} +0 -0
  102. /package/dist/{chunk-RYVUTLVX.js.map → chunk-ZMWB3VBE.js.map} +0 -0
  103. /package/dist/{cli-JXW4QLJN.js.map → cli-L6YXHMEO.js.map} +0 -0
  104. /package/dist/{commands-KTMIKYCW.js.map → commands-FSKNON7C.js.map} +0 -0
  105. /package/dist/{config-7IZ34L3S.js.map → config-FWF3LEWN.js.map} +0 -0
  106. /package/dist/{context-WJHUEGBB.js.map → context-2QY2VH4A.js.map} +0 -0
  107. /package/dist/{customCommands-I6HIO3CU.js.map → customCommands-VEMR2LGN.js.map} +0 -0
  108. /package/dist/{env-PFX2FOIX.js.map → env-OSC56YI7.js.map} +0 -0
  109. /package/dist/{llm-5HQRDZG7.js.map → llm-O2MER4L2.js.map} +0 -0
  110. /package/dist/{llmLazy-F4LFWEUT.js.map → llmLazy-SYEDSZSB.js.map} +0 -0
  111. /package/dist/{loader-LGQ2KA4C.js.map → loader-MLL6SWIJ.js.map} +0 -0
  112. /package/dist/{mcp-RIYQ64VF.js.map → mcp-HAYTXPHN.js.map} +0 -0
  113. /package/dist/{mentionProcessor-ET7OEP52.js.map → mentionProcessor-GOZEGP7X.js.map} +0 -0
  114. /package/dist/{messages-3V3RGTF7.js.map → messages-KCLPP7WQ.js.map} +0 -0
  115. /package/dist/{model-5PVDBI7J.js.map → model-6X7QI4AK.js.map} +0 -0
  116. /package/dist/{openai-OU33FH52.js.map → openai-4S6PLFQU.js.map} +0 -0
  117. /package/dist/{outputStyles-7HJA7JYF.js.map → outputStyles-LHLEZ5PP.js.map} +0 -0
  118. /package/dist/{pluginRuntime-OAP2UR7S.js.map → pluginRuntime-ODS43P2F.js.map} +0 -0
  119. /package/dist/{pluginValidation-6IRCHOJG.js.map → pluginValidation-IG66AYUD.js.map} +0 -0
  120. /package/dist/{prompts-SIYABMNP.js.map → prompts-Q6P7GL77.js.map} +0 -0
  121. /package/dist/{pybAgentSessionLoad-O5HI5ZQA.js.map → pybAgentSessionLoad-R67Y7CA4.js.map} +0 -0
  122. /package/dist/{pybAgentSessionResume-KXXOI5BO.js.map → pybAgentSessionResume-QZFZCTJZ.js.map} +0 -0
  123. /package/dist/{pybAgentStreamJsonSession-25GKDW65.js.map → pybAgentStreamJsonSession-R2ALHKP3.js.map} +0 -0
  124. /package/dist/{pybHooks-H74CE7GF.js.map → pybHooks-PHE6MC5A.js.map} +0 -0
  125. /package/dist/{query-KQEDRTMJ.js.map → query-D7HUISRS.js.map} +0 -0
  126. /package/dist/{ripgrep-DFRTEML3.js.map → ripgrep-6VRUGZMJ.js.map} +0 -0
  127. /package/dist/{skillMarketplace-AGLUOUCV.js.map → skillMarketplace-JB4ZTJ7Z.js.map} +0 -0
  128. /package/dist/{state-K5W2U5V2.js.map → state-PD2NWT3T.js.map} +0 -0
  129. /package/dist/{theme-RBYITPVQ.js.map → theme-LAB3MOQZ.js.map} +0 -0
  130. /package/dist/{toolPermissionSettings-SZSO3AF2.js.map → toolPermissionSettings-EIEMOTDK.js.map} +0 -0
  131. /package/dist/{tools-BCKNN3G6.js.map → tools-AQKKY4YI.js.map} +0 -0
  132. /package/dist/{userInput-TAAQ7FYD.js.map → userInput-GGN3LX3H.js.map} +0 -0
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listPybAgentSessions
5
- } from "./chunk-H56BFGRT.js";
5
+ } from "./chunk-TDU6Z7ZH.js";
6
6
  import {
7
7
  DEFAULT_TIMEOUT_MS,
8
8
  FallbackToolUseRejectedMessage,
@@ -16,11 +16,11 @@ import {
16
16
  listMCPServers,
17
17
  loadMergedSettings,
18
18
  normalizeSandboxRuntimeConfigFromSettings
19
- } from "./chunk-RYVUTLVX.js";
19
+ } from "./chunk-ZMWB3VBE.js";
20
20
  import {
21
21
  formatValidationResult,
22
22
  validatePluginOrMarketplacePath
23
- } from "./chunk-GADM3OKI.js";
23
+ } from "./chunk-UNCZ66TS.js";
24
24
  import {
25
25
  addMarketplace,
26
26
  disableSkillPlugin,
@@ -33,15 +33,15 @@ import {
33
33
  refreshMarketplaceAsync,
34
34
  removeMarketplace,
35
35
  uninstallSkillPlugin
36
- } from "./chunk-OS7WEAJM.js";
36
+ } from "./chunk-SZEKCDXG.js";
37
37
  import {
38
38
  loadPybAgentSessionMessages
39
- } from "./chunk-O56GBI2I.js";
39
+ } from "./chunk-3KDIVUMJ.js";
40
40
  import {
41
41
  appendSessionCustomTitleRecord,
42
42
  appendSessionJsonlFromMessage,
43
43
  appendSessionTagRecord
44
- } from "./chunk-BZKMHEX2.js";
44
+ } from "./chunk-SXEY6MGO.js";
45
45
  import {
46
46
  getRequestStatus,
47
47
  setRequestStatus,
@@ -58,7 +58,7 @@ import {
58
58
  runStopHooks,
59
59
  runUserPromptSubmitHooks,
60
60
  updateHookTranscriptForMessages
61
- } from "./chunk-ULUOA4VY.js";
61
+ } from "./chunk-4PUOJP27.js";
62
62
  import {
63
63
  getPybAgentSessionId,
64
64
  setPybAgentSessionId
@@ -71,35 +71,35 @@ import {
71
71
  getOutputStyleSystemPromptAdditions,
72
72
  resolveOutputStyleName,
73
73
  setCurrentOutputStyle
74
- } from "./chunk-2DBHDKLM.js";
74
+ } from "./chunk-CY2SE75O.js";
75
75
  import {
76
76
  fetchCustomModels,
77
77
  getModelFeatures
78
- } from "./chunk-N67HYK7H.js";
78
+ } from "./chunk-5J75JNYU.js";
79
79
  import {
80
80
  queryLLM,
81
81
  queryQuick,
82
82
  verifyApiKey
83
- } from "./chunk-BKZ334RO.js";
83
+ } from "./chunk-IXGCKRWF.js";
84
84
  import {
85
85
  listAllContentFiles,
86
86
  ripGrep,
87
87
  tree
88
- } from "./chunk-MSPICB55.js";
88
+ } from "./chunk-NJS7QEQM.js";
89
89
  import {
90
90
  getCustomCommandDirectories,
91
91
  hasCustomCommands,
92
92
  loadCustomCommands,
93
93
  reloadCustomCommands
94
- } from "./chunk-BBBJBXZ6.js";
94
+ } from "./chunk-FV4TLVB2.js";
95
95
  import {
96
96
  loadToolPermissionContextFromDisk,
97
97
  persistToolPermissionUpdateToDisk
98
- } from "./chunk-EM5T4YJS.js";
98
+ } from "./chunk-GZBGCBRV.js";
99
99
  import {
100
100
  getSettingsFileCandidates,
101
101
  loadSettingsWithLegacyFallback
102
- } from "./chunk-DAFI6K22.js";
102
+ } from "./chunk-LW2CMS4L.js";
103
103
  import {
104
104
  applyToolPermissionContextUpdate,
105
105
  createDefaultToolPermissionContext
@@ -112,7 +112,7 @@ import {
112
112
  resetReminderSession,
113
113
  setTodos,
114
114
  systemReminderService
115
- } from "./chunk-32YJDWRZ.js";
115
+ } from "./chunk-YNYNKU7M.js";
116
116
  import {
117
117
  getSessionState
118
118
  } from "./chunk-ERMQRV55.js";
@@ -121,7 +121,7 @@ import {
121
121
  getActiveAgents,
122
122
  getAgentByType,
123
123
  getAllAgents
124
- } from "./chunk-4CP2V5UB.js";
124
+ } from "./chunk-RP24IRHH.js";
125
125
  import {
126
126
  getSessionPlugins
127
127
  } from "./chunk-BJSWTHRM.js";
@@ -154,22 +154,22 @@ import {
154
154
  processUserInput,
155
155
  reorderMessages,
156
156
  stripSystemMessages
157
- } from "./chunk-2M2Y6OLD.js";
157
+ } from "./chunk-CBCXCBGD.js";
158
158
  import {
159
159
  ModelManager,
160
160
  getModelManager,
161
161
  isDefaultSlowAndCapableModel
162
- } from "./chunk-DYSHQCXS.js";
162
+ } from "./chunk-6TS7JDP6.js";
163
163
  import {
164
164
  getCodeStyle,
165
165
  getContext,
166
166
  getGitState,
167
167
  getIsGit,
168
168
  getProjectDocs
169
- } from "./chunk-TGCVWLDI.js";
169
+ } from "./chunk-A2E4MLOO.js";
170
170
  import {
171
171
  getTheme
172
- } from "./chunk-7GLJ7VAZ.js";
172
+ } from "./chunk-254HM3YV.js";
173
173
  import {
174
174
  DEFAULT_GLOBAL_CONFIG,
175
175
  enableConfigs,
@@ -182,7 +182,7 @@ import {
182
182
  saveGlobalConfig,
183
183
  setAllPointersToModel,
184
184
  setModelPointer
185
- } from "./chunk-H3AOUEYZ.js";
185
+ } from "./chunk-37MRI7OH.js";
186
186
  import {
187
187
  AbortError
188
188
  } from "./chunk-RQVLBMP7.js";
@@ -191,7 +191,7 @@ import {
191
191
  getCurrentRequest,
192
192
  logUserFriendly,
193
193
  markPhase
194
- } from "./chunk-HP32GABR.js";
194
+ } from "./chunk-ZCIXEHO3.js";
195
195
  import {
196
196
  ASCII_LOGO,
197
197
  BunShell,
@@ -227,10 +227,10 @@ import {
227
227
  renderBashNotification,
228
228
  setActivePlanConversationKey,
229
229
  setCwd
230
- } from "./chunk-HVP26Z5X.js";
230
+ } from "./chunk-E36DR7VA.js";
231
231
  import {
232
232
  MACRO
233
- } from "./chunk-BRCVB4OQ.js";
233
+ } from "./chunk-V6ZP7GFL.js";
234
234
  import {
235
235
  formatTotalCost,
236
236
  getTotalAPIDuration,
@@ -418,7 +418,7 @@ var getCommandSubcommandPrefix = memoize(
418
418
  var getCommandPrefix = memoize(
419
419
  async (command4, abortSignal) => {
420
420
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
421
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-5HQRDZG7.js");
421
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-O2MER4L2.js");
422
422
  const response = await queryQuick2({
423
423
  systemPrompt,
424
424
  userPrompt,
@@ -4458,7 +4458,7 @@ function formatParseError(error) {
4458
4458
  return error instanceof Error ? error.message : String(error);
4459
4459
  }
4460
4460
  async function defaultGateQuery(args) {
4461
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-5HQRDZG7.js");
4461
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-O2MER4L2.js");
4462
4462
  const messages = [
4463
4463
  {
4464
4464
  type: "user",
@@ -6503,7 +6503,8 @@ var DESCRIPTION2 = `Performs smart string replacements in files.
6503
6503
  Usage:
6504
6504
  - You must use your \`Read\` tool at least once in the conversation before editing. This tool will error if you attempt an edit without reading the file.
6505
6505
  - When editing text from Read tool output, ensure you preserve the exact indentation (tabs/spaces) as it appears AFTER the line number prefix. The line number prefix format is: spaces + line number + tab. Everything after that tab is the actual file content to match. Never include any part of the line number prefix in the old_string or new_string.
6506
- - The tool uses fuzzy matching, so minor whitespace or indentation differences in \`old_string\` are tolerated. However, you should still aim for exact matches.
6506
+ - **Smart Matching**: The tool uses a 9-layer fuzzy matching engine. It can locate code even if there are minor differences in indentation, whitespace, or even slight typos in the \`old_string\`.
6507
+ - **Robustness**: It handles common LLM errors (e.g., mismatched spaces, missing newlines) automatically.
6507
6508
  - ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
6508
6509
  - Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked.
6509
6510
  - The edit will FAIL if \`old_string\` is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use \`replace_all\` to change every instance of \`old_string\`.
@@ -6626,6 +6627,19 @@ var LineTrimmedReplacer = function* (content, find) {
6626
6627
  };
6627
6628
  var SINGLE_CANDIDATE_SIMILARITY_THRESHOLD = 0;
6628
6629
  var MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD = 0.3;
6630
+ var WhitespaceNormalizedReplacer = function* (content, find) {
6631
+ const tokens = find.split(/\s+/).filter((t) => t.length > 0);
6632
+ if (tokens.length === 0) return;
6633
+ const pattern = tokens.map((token) => token.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s+");
6634
+ try {
6635
+ const regex = new RegExp(pattern, "g");
6636
+ let match;
6637
+ while ((match = regex.exec(content)) !== null) {
6638
+ yield match[0];
6639
+ }
6640
+ } catch (e) {
6641
+ }
6642
+ };
6629
6643
  var BlockAnchorReplacer = function* (content, find) {
6630
6644
  const originalLines = content.split("\n");
6631
6645
  const searchLines = find.split("\n");
@@ -6746,6 +6760,7 @@ var SmartEdit = {
6746
6760
  for (const replacer of [
6747
6761
  SimpleReplacer,
6748
6762
  LineTrimmedReplacer,
6763
+ WhitespaceNormalizedReplacer,
6749
6764
  BlockAnchorReplacer
6750
6765
  ]) {
6751
6766
  for (const search of replacer(content, oldString)) {
@@ -11439,7 +11454,7 @@ async function createAndStoreApiKey(accessToken) {
11439
11454
  }
11440
11455
  saveGlobalConfig(config2);
11441
11456
  try {
11442
- const { resetAnthropicClient } = await import("./llm-5HQRDZG7.js");
11457
+ const { resetAnthropicClient } = await import("./llm-O2MER4L2.js");
11443
11458
  resetAnthropicClient();
11444
11459
  } catch {
11445
11460
  }
@@ -15721,7 +15736,7 @@ async function refreshPluginRuntimeFromInstalls() {
15721
15736
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
15722
15737
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
15723
15738
  if (dirs.length === 0) return [];
15724
- const { configureSessionPlugins } = await import("./pluginRuntime-OAP2UR7S.js");
15739
+ const { configureSessionPlugins } = await import("./pluginRuntime-ODS43P2F.js");
15725
15740
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
15726
15741
  return errors;
15727
15742
  }
@@ -16390,7 +16405,7 @@ async function call(onDone, context) {
16390
16405
  ModelConfig,
16391
16406
  {
16392
16407
  onClose: () => {
16393
- import("./model-5PVDBI7J.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16408
+ import("./model-6X7QI4AK.js").then(({ reloadModelManager: reloadModelManager2 }) => {
16394
16409
  reloadModelManager2();
16395
16410
  triggerModelConfigChange();
16396
16411
  onDone();
@@ -23649,7 +23664,7 @@ function useStatusLine() {
23649
23664
  // src/ui/components/PromptInput.tsx
23650
23665
  async function interpretHashCommand(input) {
23651
23666
  try {
23652
- const { queryQuick: queryQuick2 } = await import("./llm-5HQRDZG7.js");
23667
+ const { queryQuick: queryQuick2 } = await import("./llm-O2MER4L2.js");
23653
23668
  const systemPrompt = [
23654
23669
  "You're helping the user structure notes that will be added to their PYB.md file.",
23655
23670
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -23962,7 +23977,7 @@ function PromptInput({
23962
23977
  if (messages2.length) {
23963
23978
  if (mode === "bash") {
23964
23979
  onQuery(messages2, newAbortController).then(async () => {
23965
- const { getCwd: getCwd2 } = await import("./state-K5W2U5V2.js");
23980
+ const { getCwd: getCwd2 } = await import("./state-PD2NWT3T.js");
23966
23981
  setCurrentPwd(getCwd2());
23967
23982
  });
23968
23983
  } else {
@@ -26748,7 +26763,7 @@ import { homedir as homedir7 } from "os";
26748
26763
  // src/commands/agents/generation.ts
26749
26764
  import { randomUUID as randomUUID5 } from "crypto";
26750
26765
  async function generateAgentWithClaude(prompt) {
26751
- const { queryModel } = await import("./llm-5HQRDZG7.js");
26766
+ const { queryModel } = await import("./llm-O2MER4L2.js");
26752
26767
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
26753
26768
 
26754
26769
  Return your response as a JSON object with exactly these fields:
@@ -30819,13 +30834,15 @@ NEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTAN
30819
30834
 
30820
30835
  # File Modification Strategy (Edit vs Patch)
30821
30836
  When you need to modify files, choose the appropriate tool based on the complexity:
30822
- 1. **Edit Tool**: Use for simple, precise edits to single files.
30823
- - Ideal for: Renaming variables, changing specific lines, small bug fixes.
30824
- - Requirement: You MUST read the file first to ensure you have the exact context for 'old_string'.
30825
- 2. **Patch Tool**: Use for complex refactoring, applying diffs, or modifying multiple files atomically.
30826
- - Ideal for: Structural refactoring (e.g. extracting functions), applying large changes, or when you are confident about the context but unsure about exact line numbers (Smart Fuzzy Match).
30827
- - Requirement: Provide a unified diff. The tool supports "Smart Patch" logic which ignores line numbers and uses context for matching.
30828
- - Atomicity: If modifying multiple files, use Patch tool to ensure all changes apply or none do.
30837
+ 1. **Edit Tool**: Use for single-file, fuzzy-resilient modifications.
30838
+ - Ideal for: Renaming variables, changing specific lines, fixing bugs, or when you are unsure about exact context.
30839
+ - Engine: Powered by a 9-layer fuzzy matching engine that handles indentation/whitespace errors automatically.
30840
+ - Requirement: Read file first to ensure you have the context.
30841
+ 2. **Patch Tool**: Use for multi-file, atomic, or structural refactoring.
30842
+ - Ideal for: Modifying multiple dependent files (e.g. interface + implementation), applying large structural changes.
30843
+ - Engine: Supports "Smart Context" (fuzzy matching) but enforces "Strict Atomicity" (All or Nothing).
30844
+ - Benefit: Ensures project consistency. If one file fails, everything rolls back, preventing broken states.
30845
+ - Feedback: If it fails, you will get a rich report explaining why. You can then choose to fix the patch or fallback to Edit Tool for specific files.
30829
30846
 
30830
30847
  ${isOutputStyleActive ? "" : "\nYou MUST answer concisely with fewer than 4 lines of text (not including tool use or code generation), unless user asks for detail.\n"}
30831
30848
  `,
@@ -30874,6 +30891,9 @@ export {
30874
30891
  hasWritePermission,
30875
30892
  grantReadPermissionForOriginalDir,
30876
30893
  NotebookEditTool,
30894
+ LineTrimmedReplacer,
30895
+ WhitespaceNormalizedReplacer,
30896
+ BlockAnchorReplacer,
30877
30897
  FileEditTool,
30878
30898
  ParserRegistry,
30879
30899
  loadLanguage,