pybao-cli 1.3.79 → 1.3.80

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 (144) hide show
  1. package/dist/REPL-FCFUNTRV.js +42 -0
  2. package/dist/{acp-32X2ORWD.js → acp-ZGZTJXRX.js} +27 -28
  3. package/dist/{acp-32X2ORWD.js.map → acp-ZGZTJXRX.js.map} +1 -1
  4. package/dist/{agentsValidate-M2NLS6KJ.js → agentsValidate-UU3CTQQG.js} +7 -7
  5. package/dist/{ask-APOBPV6G.js → ask-ZY5BJZSV.js} +25 -25
  6. package/dist/{autoUpdater-MEG3J4ZP.js → autoUpdater-QKSPMROL.js} +3 -3
  7. package/dist/{chunk-MHYEZGJE.js → chunk-42XRBA3T.js} +2 -2
  8. package/dist/{chunk-4ESLYQDR.js → chunk-4NCEUAAH.js} +3 -3
  9. package/dist/{chunk-RVNK6V3Z.js → chunk-6FIBU73C.js} +1 -1
  10. package/dist/{chunk-PDSCF233.js → chunk-6Y7R2HQJ.js} +1 -1
  11. package/dist/{chunk-MEKNF2BX.js → chunk-A5OH2UIT.js} +2 -2
  12. package/dist/{chunk-Y24AKIQ4.js → chunk-AAIDMQFM.js} +3 -3
  13. package/dist/{chunk-UIB4DXAE.js → chunk-C64GQQIX.js} +1 -1
  14. package/dist/{chunk-PK4LECKI.js → chunk-C6KEBADH.js} +2 -2
  15. package/dist/{chunk-FFNEPND5.js → chunk-FF4MK6K3.js} +3 -3
  16. package/dist/{chunk-Q5GLVET5.js → chunk-GBVT3BHF.js} +38 -41
  17. package/dist/{chunk-Q5GLVET5.js.map → chunk-GBVT3BHF.js.map} +2 -2
  18. package/dist/{chunk-B3TQNKEC.js → chunk-IQIZZT3A.js} +1 -1
  19. package/dist/{chunk-KUOHKADR.js → chunk-IROS56AN.js} +4 -4
  20. package/dist/{chunk-22FCTCIV.js → chunk-ISZYPQJ4.js} +1 -1
  21. package/dist/{chunk-JIWMGSZC.js → chunk-J6LHG4P2.js} +1 -1
  22. package/dist/{chunk-YDVLI6LP.js → chunk-JY2ZIUT6.js} +1 -1
  23. package/dist/{chunk-YDVLI6LP.js.map → chunk-JY2ZIUT6.js.map} +1 -1
  24. package/dist/{chunk-TZHR6HNQ.js → chunk-K5SSMVKH.js} +2 -2
  25. package/dist/{chunk-ZBZ3REJN.js → chunk-LPRHLVIT.js} +3 -3
  26. package/dist/{chunk-MBT675J6.js → chunk-N5WZ6CIB.js} +1 -1
  27. package/dist/{chunk-RL522VQA.js → chunk-OW2MWOEW.js} +51 -415
  28. package/dist/chunk-OW2MWOEW.js.map +7 -0
  29. package/dist/{chunk-T3YJGBT6.js → chunk-ROSGQFTS.js} +1 -1
  30. package/dist/{chunk-2P7BUT6Q.js → chunk-RVWBNMCL.js} +3 -3
  31. package/dist/{chunk-SS6ICJFN.js → chunk-SCFTG75V.js} +3 -3
  32. package/dist/{chunk-3PUCUH4D.js → chunk-SH2UZRTG.js} +2 -2
  33. package/dist/{chunk-3TLFBSQO.js → chunk-SRWXBDPV.js} +3 -3
  34. package/dist/{chunk-Y3NWIKWN.js → chunk-TP3G2PLU.js} +2 -2
  35. package/dist/{chunk-FE2DB2XA.js → chunk-TWXMVB4T.js} +1 -1
  36. package/dist/{chunk-IEKZ4CWY.js → chunk-XRUOSW3Q.js} +55 -50
  37. package/dist/chunk-XRUOSW3Q.js.map +7 -0
  38. package/dist/{chunk-GPR72UXL.js → chunk-Z6FKI2XB.js} +4 -4
  39. package/dist/{cli-2KE3PWBY.js → cli-HYV3MO3Z.js} +78 -79
  40. package/dist/{cli-2KE3PWBY.js.map → cli-HYV3MO3Z.js.map} +1 -1
  41. package/dist/commands-UF72PYOD.js +46 -0
  42. package/dist/{config-5S7M57PH.js → config-NHL3XV6A.js} +4 -4
  43. package/dist/{context-X33OOXZW.js → context-KCM2CKCI.js} +5 -5
  44. package/dist/{customCommands-PDRM6IC2.js → customCommands-H4OTDEES.js} +4 -4
  45. package/dist/{env-UFICMT75.js → env-45HRLZXA.js} +2 -2
  46. package/dist/index.js +3 -3
  47. package/dist/{llm-TOJ4LFPH.js → llm-RHWOZZGJ.js} +26 -28
  48. package/dist/llm-RHWOZZGJ.js.map +7 -0
  49. package/dist/{llmLazy-DIIIURE4.js → llmLazy-C4WAHBE6.js} +1 -1
  50. package/dist/{loader-ZIYIIHU4.js → loader-ECT2XQ5R.js} +4 -4
  51. package/dist/{lspAnchor-QDIBSYKN.js → lspAnchor-IEMAQJKB.js} +4 -4
  52. package/dist/{manager-VKVZBKNY.js → manager-QVC7V5FF.js} +4 -4
  53. package/dist/{mcp-L4M5UE4A.js → mcp-HCRADJBF.js} +7 -7
  54. package/dist/{mentionProcessor-UMLTSEAK.js → mentionProcessor-6QPEGYTQ.js} +5 -5
  55. package/dist/{messages-MYZABIFA.js → messages-E6SPHRIN.js} +1 -1
  56. package/dist/{model-ZLM7F2D5.js → model-SMB3E5LC.js} +5 -5
  57. package/dist/{openai-XNZOUIOB.js → openai-FMO244D7.js} +5 -5
  58. package/dist/{outputStyles-RMGJWCUZ.js → outputStyles-YB2ODUS7.js} +4 -4
  59. package/dist/{pluginRuntime-OOG6EE3L.js → pluginRuntime-7IMWBORD.js} +6 -6
  60. package/dist/{pluginValidation-YN7HPE4Y.js → pluginValidation-QVVBJD66.js} +6 -6
  61. package/dist/prompts-4MPNSSTI.js +48 -0
  62. package/dist/{pybAgentSessionLoad-LLFNXD4G.js → pybAgentSessionLoad-3S6RFTJU.js} +4 -4
  63. package/dist/{pybAgentSessionResume-Z5LKVRC5.js → pybAgentSessionResume-EUKW3FMB.js} +4 -4
  64. package/dist/{pybAgentStreamJsonSession-KUTJM63D.js → pybAgentStreamJsonSession-RTPFM6OV.js} +1 -1
  65. package/dist/{pybHooks-HJWMWWWF.js → pybHooks-3IQJYVB4.js} +4 -4
  66. package/dist/query-QZ2RBRLD.js +50 -0
  67. package/dist/{ripgrep-LU5NTUF2.js → ripgrep-I7SPG656.js} +3 -3
  68. package/dist/{skillMarketplace-ATR76CC3.js → skillMarketplace-Y46OXJ6X.js} +3 -3
  69. package/dist/{chunk-IZ3M5OX4.js → smart-edit-AWHJDSU6.js} +37 -9
  70. package/dist/{chunk-IZ3M5OX4.js.map → smart-edit-AWHJDSU6.js.map} +3 -3
  71. package/dist/{state-C7DZ3IXR.js → state-IWD2KGEM.js} +2 -2
  72. package/dist/{theme-XKQRSGQE.js → theme-RFDPFU5Y.js} +5 -5
  73. package/dist/{toolPermissionSettings-KFWCSV6G.js → toolPermissionSettings-J7PFZFUY.js} +6 -6
  74. package/dist/tools-V6LVGZ4F.js +49 -0
  75. package/dist/{userInput-I53JLE7C.js → userInput-ADSR2X52.js} +27 -27
  76. package/package.json +1 -1
  77. package/dist/REPL-RYMDCVU6.js +0 -42
  78. package/dist/chunk-IEKZ4CWY.js.map +0 -7
  79. package/dist/chunk-RL522VQA.js.map +0 -7
  80. package/dist/commands-WJSK5CQI.js +0 -46
  81. package/dist/llm-TOJ4LFPH.js.map +0 -7
  82. package/dist/prompts-TVJAY7YX.js +0 -48
  83. package/dist/query-IMKUC25L.js +0 -50
  84. package/dist/smart-edit-677MCQMW.js +0 -56
  85. package/dist/smart-edit-677MCQMW.js.map +0 -7
  86. package/dist/tools-223LNUWS.js +0 -50
  87. /package/dist/{REPL-RYMDCVU6.js.map → REPL-FCFUNTRV.js.map} +0 -0
  88. /package/dist/{agentsValidate-M2NLS6KJ.js.map → agentsValidate-UU3CTQQG.js.map} +0 -0
  89. /package/dist/{ask-APOBPV6G.js.map → ask-ZY5BJZSV.js.map} +0 -0
  90. /package/dist/{autoUpdater-MEG3J4ZP.js.map → autoUpdater-QKSPMROL.js.map} +0 -0
  91. /package/dist/{chunk-MHYEZGJE.js.map → chunk-42XRBA3T.js.map} +0 -0
  92. /package/dist/{chunk-4ESLYQDR.js.map → chunk-4NCEUAAH.js.map} +0 -0
  93. /package/dist/{chunk-RVNK6V3Z.js.map → chunk-6FIBU73C.js.map} +0 -0
  94. /package/dist/{chunk-PDSCF233.js.map → chunk-6Y7R2HQJ.js.map} +0 -0
  95. /package/dist/{chunk-MEKNF2BX.js.map → chunk-A5OH2UIT.js.map} +0 -0
  96. /package/dist/{chunk-Y24AKIQ4.js.map → chunk-AAIDMQFM.js.map} +0 -0
  97. /package/dist/{chunk-UIB4DXAE.js.map → chunk-C64GQQIX.js.map} +0 -0
  98. /package/dist/{chunk-PK4LECKI.js.map → chunk-C6KEBADH.js.map} +0 -0
  99. /package/dist/{chunk-FFNEPND5.js.map → chunk-FF4MK6K3.js.map} +0 -0
  100. /package/dist/{chunk-B3TQNKEC.js.map → chunk-IQIZZT3A.js.map} +0 -0
  101. /package/dist/{chunk-KUOHKADR.js.map → chunk-IROS56AN.js.map} +0 -0
  102. /package/dist/{chunk-22FCTCIV.js.map → chunk-ISZYPQJ4.js.map} +0 -0
  103. /package/dist/{chunk-JIWMGSZC.js.map → chunk-J6LHG4P2.js.map} +0 -0
  104. /package/dist/{chunk-TZHR6HNQ.js.map → chunk-K5SSMVKH.js.map} +0 -0
  105. /package/dist/{chunk-ZBZ3REJN.js.map → chunk-LPRHLVIT.js.map} +0 -0
  106. /package/dist/{chunk-MBT675J6.js.map → chunk-N5WZ6CIB.js.map} +0 -0
  107. /package/dist/{chunk-T3YJGBT6.js.map → chunk-ROSGQFTS.js.map} +0 -0
  108. /package/dist/{chunk-2P7BUT6Q.js.map → chunk-RVWBNMCL.js.map} +0 -0
  109. /package/dist/{chunk-SS6ICJFN.js.map → chunk-SCFTG75V.js.map} +0 -0
  110. /package/dist/{chunk-3PUCUH4D.js.map → chunk-SH2UZRTG.js.map} +0 -0
  111. /package/dist/{chunk-3TLFBSQO.js.map → chunk-SRWXBDPV.js.map} +0 -0
  112. /package/dist/{chunk-Y3NWIKWN.js.map → chunk-TP3G2PLU.js.map} +0 -0
  113. /package/dist/{chunk-FE2DB2XA.js.map → chunk-TWXMVB4T.js.map} +0 -0
  114. /package/dist/{chunk-GPR72UXL.js.map → chunk-Z6FKI2XB.js.map} +0 -0
  115. /package/dist/{commands-WJSK5CQI.js.map → commands-UF72PYOD.js.map} +0 -0
  116. /package/dist/{config-5S7M57PH.js.map → config-NHL3XV6A.js.map} +0 -0
  117. /package/dist/{context-X33OOXZW.js.map → context-KCM2CKCI.js.map} +0 -0
  118. /package/dist/{customCommands-PDRM6IC2.js.map → customCommands-H4OTDEES.js.map} +0 -0
  119. /package/dist/{env-UFICMT75.js.map → env-45HRLZXA.js.map} +0 -0
  120. /package/dist/{llmLazy-DIIIURE4.js.map → llmLazy-C4WAHBE6.js.map} +0 -0
  121. /package/dist/{loader-ZIYIIHU4.js.map → loader-ECT2XQ5R.js.map} +0 -0
  122. /package/dist/{lspAnchor-QDIBSYKN.js.map → lspAnchor-IEMAQJKB.js.map} +0 -0
  123. /package/dist/{manager-VKVZBKNY.js.map → manager-QVC7V5FF.js.map} +0 -0
  124. /package/dist/{mcp-L4M5UE4A.js.map → mcp-HCRADJBF.js.map} +0 -0
  125. /package/dist/{mentionProcessor-UMLTSEAK.js.map → mentionProcessor-6QPEGYTQ.js.map} +0 -0
  126. /package/dist/{messages-MYZABIFA.js.map → messages-E6SPHRIN.js.map} +0 -0
  127. /package/dist/{model-ZLM7F2D5.js.map → model-SMB3E5LC.js.map} +0 -0
  128. /package/dist/{openai-XNZOUIOB.js.map → openai-FMO244D7.js.map} +0 -0
  129. /package/dist/{outputStyles-RMGJWCUZ.js.map → outputStyles-YB2ODUS7.js.map} +0 -0
  130. /package/dist/{pluginRuntime-OOG6EE3L.js.map → pluginRuntime-7IMWBORD.js.map} +0 -0
  131. /package/dist/{pluginValidation-YN7HPE4Y.js.map → pluginValidation-QVVBJD66.js.map} +0 -0
  132. /package/dist/{prompts-TVJAY7YX.js.map → prompts-4MPNSSTI.js.map} +0 -0
  133. /package/dist/{pybAgentSessionLoad-LLFNXD4G.js.map → pybAgentSessionLoad-3S6RFTJU.js.map} +0 -0
  134. /package/dist/{pybAgentSessionResume-Z5LKVRC5.js.map → pybAgentSessionResume-EUKW3FMB.js.map} +0 -0
  135. /package/dist/{pybAgentStreamJsonSession-KUTJM63D.js.map → pybAgentStreamJsonSession-RTPFM6OV.js.map} +0 -0
  136. /package/dist/{pybHooks-HJWMWWWF.js.map → pybHooks-3IQJYVB4.js.map} +0 -0
  137. /package/dist/{query-IMKUC25L.js.map → query-QZ2RBRLD.js.map} +0 -0
  138. /package/dist/{ripgrep-LU5NTUF2.js.map → ripgrep-I7SPG656.js.map} +0 -0
  139. /package/dist/{skillMarketplace-ATR76CC3.js.map → skillMarketplace-Y46OXJ6X.js.map} +0 -0
  140. /package/dist/{state-C7DZ3IXR.js.map → state-IWD2KGEM.js.map} +0 -0
  141. /package/dist/{theme-XKQRSGQE.js.map → theme-RFDPFU5Y.js.map} +0 -0
  142. /package/dist/{toolPermissionSettings-KFWCSV6G.js.map → toolPermissionSettings-J7PFZFUY.js.map} +0 -0
  143. /package/dist/{tools-223LNUWS.js.map → tools-V6LVGZ4F.js.map} +0 -0
  144. /package/dist/{userInput-I53JLE7C.js.map → userInput-ADSR2X52.js.map} +0 -0
@@ -9,13 +9,13 @@ import {
9
9
  getGPT5CompletionWithProfile,
10
10
  getModelFeatures,
11
11
  streamCompletion
12
- } from "./chunk-MEKNF2BX.js";
12
+ } from "./chunk-A5OH2UIT.js";
13
13
  import "./chunk-ERMQRV55.js";
14
- import "./chunk-4ESLYQDR.js";
14
+ import "./chunk-4NCEUAAH.js";
15
15
  import "./chunk-RQVLBMP7.js";
16
- import "./chunk-FE2DB2XA.js";
17
- import "./chunk-RVNK6V3Z.js";
18
- import "./chunk-YDVLI6LP.js";
16
+ import "./chunk-TWXMVB4T.js";
17
+ import "./chunk-6FIBU73C.js";
18
+ import "./chunk-JY2ZIUT6.js";
19
19
  import "./chunk-I3J4JYES.js";
20
20
  export {
21
21
  applyModelSpecificTransformations,
@@ -9,12 +9,12 @@ import {
9
9
  getOutputStyleSystemPromptAdditions,
10
10
  resolveOutputStyleName,
11
11
  setCurrentOutputStyle
12
- } from "./chunk-TZHR6HNQ.js";
12
+ } from "./chunk-K5SSMVKH.js";
13
13
  import "./chunk-A3BVXXA3.js";
14
14
  import "./chunk-BJSWTHRM.js";
15
- import "./chunk-JIWMGSZC.js";
16
- import "./chunk-RVNK6V3Z.js";
17
- import "./chunk-YDVLI6LP.js";
15
+ import "./chunk-J6LHG4P2.js";
16
+ import "./chunk-6FIBU73C.js";
17
+ import "./chunk-JY2ZIUT6.js";
18
18
  import "./chunk-I3J4JYES.js";
19
19
  export {
20
20
  DEFAULT_OUTPUT_STYLE,
@@ -5,8 +5,8 @@ import {
5
5
  } from "./chunk-BJSWTHRM.js";
6
6
  import {
7
7
  getCwd
8
- } from "./chunk-RVNK6V3Z.js";
9
- import "./chunk-YDVLI6LP.js";
8
+ } from "./chunk-6FIBU73C.js";
9
+ import "./chunk-JY2ZIUT6.js";
10
10
  import "./chunk-I3J4JYES.js";
11
11
 
12
12
  // src/services/plugins/pluginRuntime.ts
@@ -202,14 +202,14 @@ async function configureSessionPlugins(args) {
202
202
  }
203
203
  }
204
204
  setSessionPlugins(plugins);
205
- const { reloadCustomCommands } = await import("./customCommands-PDRM6IC2.js");
205
+ const { reloadCustomCommands } = await import("./customCommands-H4OTDEES.js");
206
206
  reloadCustomCommands();
207
- const { getCommands } = await import("./commands-WJSK5CQI.js");
207
+ const { getCommands } = await import("./commands-UF72PYOD.js");
208
208
  getCommands.cache.clear?.();
209
- const { getClients, getMCPTools } = await import("./mcp-L4M5UE4A.js");
209
+ const { getClients, getMCPTools } = await import("./mcp-HCRADJBF.js");
210
210
  getClients.cache?.clear?.();
211
211
  getMCPTools.cache?.clear?.();
212
- const { clearOutputStyleCache } = await import("./outputStyles-RMGJWCUZ.js");
212
+ const { clearOutputStyleCache } = await import("./outputStyles-YB2ODUS7.js");
213
213
  clearOutputStyleCache();
214
214
  return { plugins, errors };
215
215
  }
@@ -3,13 +3,13 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  formatValidationResult,
5
5
  validatePluginOrMarketplacePath
6
- } from "./chunk-SS6ICJFN.js";
7
- import "./chunk-PDSCF233.js";
8
- import "./chunk-MHYEZGJE.js";
6
+ } from "./chunk-SCFTG75V.js";
7
+ import "./chunk-6Y7R2HQJ.js";
8
+ import "./chunk-42XRBA3T.js";
9
9
  import "./chunk-BJSWTHRM.js";
10
- import "./chunk-FE2DB2XA.js";
11
- import "./chunk-RVNK6V3Z.js";
12
- import "./chunk-YDVLI6LP.js";
10
+ import "./chunk-TWXMVB4T.js";
11
+ import "./chunk-6FIBU73C.js";
12
+ import "./chunk-JY2ZIUT6.js";
13
13
  import "./chunk-I3J4JYES.js";
14
14
  export {
15
15
  formatValidationResult,
@@ -0,0 +1,48 @@
1
+ import { createRequire as __pybCreateRequire } from "node:module";
2
+ const require = __pybCreateRequire(import.meta.url);
3
+ import {
4
+ getAgentPrompt,
5
+ getCLISyspromptPrefix,
6
+ getEnvInfo,
7
+ getSystemPrompt
8
+ } from "./chunk-GBVT3BHF.js";
9
+ import "./chunk-C64GQQIX.js";
10
+ import "./chunk-ISZYPQJ4.js";
11
+ import "./chunk-C6KEBADH.js";
12
+ import "./chunk-5P7HBXTD.js";
13
+ import "./chunk-A5OH2UIT.js";
14
+ import "./chunk-IROS56AN.js";
15
+ import "./chunk-Z6FKI2XB.js";
16
+ import "./chunk-SCFTG75V.js";
17
+ import "./chunk-6Y7R2HQJ.js";
18
+ import "./chunk-TP3G2PLU.js";
19
+ import "./chunk-ERMQRV55.js";
20
+ import "./chunk-SH2UZRTG.js";
21
+ import "./chunk-ROSGQFTS.js";
22
+ import "./chunk-3DFBSQIT.js";
23
+ import "./chunk-AAIDMQFM.js";
24
+ import "./chunk-B6IMQJZM.js";
25
+ import "./chunk-K5SSMVKH.js";
26
+ import "./chunk-A3BVXXA3.js";
27
+ import "./chunk-N5WZ6CIB.js";
28
+ import "./chunk-42XRBA3T.js";
29
+ import "./chunk-BJSWTHRM.js";
30
+ import "./chunk-SRWXBDPV.js";
31
+ import "./chunk-J6LHG4P2.js";
32
+ import "./chunk-UNNVICVU.js";
33
+ import "./chunk-LPRHLVIT.js";
34
+ import "./chunk-RVWBNMCL.js";
35
+ import "./chunk-IQIZZT3A.js";
36
+ import "./chunk-4NCEUAAH.js";
37
+ import "./chunk-RQVLBMP7.js";
38
+ import "./chunk-TWXMVB4T.js";
39
+ import "./chunk-6FIBU73C.js";
40
+ import "./chunk-JY2ZIUT6.js";
41
+ import "./chunk-OUXHGDLH.js";
42
+ import "./chunk-I3J4JYES.js";
43
+ export {
44
+ getAgentPrompt,
45
+ getCLISyspromptPrefix,
46
+ getEnvInfo,
47
+ getSystemPrompt
48
+ };
@@ -4,12 +4,12 @@ import {
4
4
  findMostRecentPybAgentSessionId,
5
5
  loadPybAgentSessionLogData,
6
6
  loadPybAgentSessionMessages
7
- } from "./chunk-UIB4DXAE.js";
8
- import "./chunk-PK4LECKI.js";
7
+ } from "./chunk-C64GQQIX.js";
8
+ import "./chunk-C6KEBADH.js";
9
9
  import "./chunk-5P7HBXTD.js";
10
10
  import "./chunk-B6IMQJZM.js";
11
- import "./chunk-RVNK6V3Z.js";
12
- import "./chunk-YDVLI6LP.js";
11
+ import "./chunk-6FIBU73C.js";
12
+ import "./chunk-JY2ZIUT6.js";
13
13
  import "./chunk-I3J4JYES.js";
14
14
  export {
15
15
  findMostRecentPybAgentSessionId,
@@ -3,12 +3,12 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listPybAgentSessions,
5
5
  resolvePybResumeSessionIdentifier
6
- } from "./chunk-22FCTCIV.js";
7
- import "./chunk-PK4LECKI.js";
6
+ } from "./chunk-ISZYPQJ4.js";
7
+ import "./chunk-C6KEBADH.js";
8
8
  import "./chunk-5P7HBXTD.js";
9
9
  import "./chunk-B6IMQJZM.js";
10
- import "./chunk-RVNK6V3Z.js";
11
- import "./chunk-YDVLI6LP.js";
10
+ import "./chunk-6FIBU73C.js";
11
+ import "./chunk-JY2ZIUT6.js";
12
12
  import "./chunk-I3J4JYES.js";
13
13
  export {
14
14
  listPybAgentSessions,
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-5JHD6MUL.js";
7
7
  import {
8
8
  createUserMessage
9
- } from "./chunk-T3YJGBT6.js";
9
+ } from "./chunk-ROSGQFTS.js";
10
10
  import "./chunk-I3J4JYES.js";
11
11
 
12
12
  // src/utils/protocol/pybAgentStreamJsonSession.ts
@@ -13,12 +13,12 @@ import {
13
13
  runStopHooks,
14
14
  runUserPromptSubmitHooks,
15
15
  updateHookTranscriptForMessages
16
- } from "./chunk-Y24AKIQ4.js";
16
+ } from "./chunk-AAIDMQFM.js";
17
17
  import "./chunk-B6IMQJZM.js";
18
18
  import "./chunk-BJSWTHRM.js";
19
- import "./chunk-JIWMGSZC.js";
20
- import "./chunk-RVNK6V3Z.js";
21
- import "./chunk-YDVLI6LP.js";
19
+ import "./chunk-J6LHG4P2.js";
20
+ import "./chunk-6FIBU73C.js";
21
+ import "./chunk-JY2ZIUT6.js";
22
22
  import "./chunk-I3J4JYES.js";
23
23
  export {
24
24
  __resetPybHooksCacheForTests,
@@ -0,0 +1,50 @@
1
+ import { createRequire as __pybCreateRequire } from "node:module";
2
+ const require = __pybCreateRequire(import.meta.url);
3
+ import {
4
+ __ToolUseQueueForTests,
5
+ __isToolUseLikeBlockForTests,
6
+ normalizeToolInput,
7
+ query,
8
+ runToolUse
9
+ } from "./chunk-GBVT3BHF.js";
10
+ import "./chunk-C64GQQIX.js";
11
+ import "./chunk-ISZYPQJ4.js";
12
+ import "./chunk-C6KEBADH.js";
13
+ import "./chunk-5P7HBXTD.js";
14
+ import "./chunk-A5OH2UIT.js";
15
+ import "./chunk-IROS56AN.js";
16
+ import "./chunk-Z6FKI2XB.js";
17
+ import "./chunk-SCFTG75V.js";
18
+ import "./chunk-6Y7R2HQJ.js";
19
+ import "./chunk-TP3G2PLU.js";
20
+ import "./chunk-ERMQRV55.js";
21
+ import "./chunk-SH2UZRTG.js";
22
+ import "./chunk-ROSGQFTS.js";
23
+ import "./chunk-3DFBSQIT.js";
24
+ import "./chunk-AAIDMQFM.js";
25
+ import "./chunk-B6IMQJZM.js";
26
+ import "./chunk-K5SSMVKH.js";
27
+ import "./chunk-A3BVXXA3.js";
28
+ import "./chunk-N5WZ6CIB.js";
29
+ import "./chunk-42XRBA3T.js";
30
+ import "./chunk-BJSWTHRM.js";
31
+ import "./chunk-SRWXBDPV.js";
32
+ import "./chunk-J6LHG4P2.js";
33
+ import "./chunk-UNNVICVU.js";
34
+ import "./chunk-LPRHLVIT.js";
35
+ import "./chunk-RVWBNMCL.js";
36
+ import "./chunk-IQIZZT3A.js";
37
+ import "./chunk-4NCEUAAH.js";
38
+ import "./chunk-RQVLBMP7.js";
39
+ import "./chunk-TWXMVB4T.js";
40
+ import "./chunk-6FIBU73C.js";
41
+ import "./chunk-JY2ZIUT6.js";
42
+ import "./chunk-OUXHGDLH.js";
43
+ import "./chunk-I3J4JYES.js";
44
+ export {
45
+ __ToolUseQueueForTests,
46
+ __isToolUseLikeBlockForTests,
47
+ normalizeToolInput,
48
+ query,
49
+ runToolUse
50
+ };
@@ -7,9 +7,9 @@ import {
7
7
  resetRipgrepPathCacheForTests,
8
8
  ripGrep,
9
9
  tree
10
- } from "./chunk-MBT675J6.js";
11
- import "./chunk-RVNK6V3Z.js";
12
- import "./chunk-YDVLI6LP.js";
10
+ } from "./chunk-N5WZ6CIB.js";
11
+ import "./chunk-6FIBU73C.js";
12
+ import "./chunk-JY2ZIUT6.js";
13
13
  import "./chunk-I3J4JYES.js";
14
14
  export {
15
15
  filesToTree,
@@ -15,9 +15,9 @@ import {
15
15
  refreshMarketplaceAsync,
16
16
  removeMarketplace,
17
17
  uninstallSkillPlugin
18
- } from "./chunk-PDSCF233.js";
19
- import "./chunk-RVNK6V3Z.js";
20
- import "./chunk-YDVLI6LP.js";
18
+ } from "./chunk-6Y7R2HQJ.js";
19
+ import "./chunk-6FIBU73C.js";
20
+ import "./chunk-JY2ZIUT6.js";
21
21
  import "./chunk-I3J4JYES.js";
22
22
  export {
23
23
  MarketplaceManifestSchema,
@@ -3,6 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  levenshtein
5
5
  } from "./chunk-UZ34JEUK.js";
6
+ import "./chunk-I3J4JYES.js";
6
7
 
7
8
  // src/utils/text/smart-edit/replacers.ts
8
9
  var SimpleReplacer = function* (_content, find) {
@@ -294,14 +295,41 @@ var ContextAwareReplacer = function* (content, find) {
294
295
  }
295
296
  };
296
297
 
298
+ // src/utils/text/smart-edit/index.ts
299
+ var SmartEdit = {
300
+ levenshtein,
301
+ replace: (content, oldString, newString, replaceAll = false) => {
302
+ if (oldString === newString) {
303
+ throw new Error("oldString and newString must be different");
304
+ }
305
+ let notFound = true;
306
+ for (const replacer of [
307
+ SimpleReplacer,
308
+ LineTrimmedReplacer,
309
+ BlockAnchorReplacer,
310
+ WhitespaceNormalizedReplacer,
311
+ IndentationFlexibleReplacer,
312
+ EscapeNormalizedReplacer,
313
+ TrimmedBoundaryReplacer,
314
+ ContextAwareReplacer,
315
+ MultiOccurrenceReplacer
316
+ ]) {
317
+ for (const search of replacer(content, oldString)) {
318
+ const index = content.indexOf(search);
319
+ if (index === -1) continue;
320
+ notFound = false;
321
+ if (replaceAll) {
322
+ return content.replaceAll(search, newString);
323
+ }
324
+ return content.substring(0, index) + newString + content.substring(index + search.length);
325
+ }
326
+ }
327
+ if (notFound) {
328
+ throw new Error("oldString not found in content");
329
+ }
330
+ return content;
331
+ }
332
+ };
297
333
  export {
298
- SimpleReplacer,
299
- LineTrimmedReplacer,
300
- WhitespaceNormalizedReplacer,
301
- BlockAnchorReplacer,
302
- IndentationFlexibleReplacer,
303
- EscapeNormalizedReplacer,
304
- MultiOccurrenceReplacer,
305
- TrimmedBoundaryReplacer,
306
- ContextAwareReplacer
334
+ SmartEdit
307
335
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/utils/text/smart-edit/replacers.ts"],
4
- "sourcesContent": ["import { levenshtein } from './levenshtein'\n\nexport type Replacer = (content: string, find: string) => Generator<string, void, unknown>\n\nexport const SimpleReplacer: Replacer = function* (_content, find) {\n yield find\n}\n\nexport const LineTrimmedReplacer: Replacer = function* (content, find) {\n const originalLines = content.split(\"\\n\")\n const searchLines = find.split(\"\\n\")\n\n if (searchLines[searchLines.length - 1] === \"\") {\n searchLines.pop()\n }\n\n for (let i = 0; i <= originalLines.length - searchLines.length; i++) {\n let matches = true\n\n for (let j = 0; j < searchLines.length; j++) {\n const originalTrimmed = originalLines[i + j].trim()\n const searchTrimmed = searchLines[j].trim()\n\n if (originalTrimmed !== searchTrimmed) {\n matches = false\n break\n }\n }\n\n if (matches) {\n let matchStartIndex = 0\n for (let k = 0; k < i; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n\n let matchEndIndex = matchStartIndex\n for (let k = 0; k < searchLines.length; k++) {\n matchEndIndex += originalLines[i + k].length\n if (k < searchLines.length - 1) {\n matchEndIndex += 1 // Add newline character except for the last line\n }\n }\n\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n }\n}\n\nconst SINGLE_CANDIDATE_SIMILARITY_THRESHOLD = 0.0\nconst MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD = 0.3\n\nexport const WhitespaceNormalizedReplacer: Replacer = function* (content, find) {\n // Split by whitespace to get tokens\n const tokens = find.split(/\\s+/).filter(t => t.length > 0)\n \n if (tokens.length === 0) return\n\n // Create a regex where tokens are separated by \\s+\n // We escape each token to treat it as literal\n const pattern = tokens\n .map(token => token.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n .join('\\\\s+')\n \n try {\n const regex = new RegExp(pattern, 'g')\n let match\n while ((match = regex.exec(content)) !== null) {\n yield match[0]\n }\n } catch (e) {\n // Ignore invalid regex\n }\n}\n\nexport const BlockAnchorReplacer: Replacer = function* (content, find) {\n const originalLines = content.split(\"\\n\")\n const searchLines = find.split(\"\\n\")\n\n if (searchLines.length < 3) {\n return\n }\n\n if (searchLines[searchLines.length - 1] === \"\") {\n searchLines.pop()\n }\n\n const firstLineSearch = searchLines[0].trim()\n const lastLineSearch = searchLines[searchLines.length - 1].trim()\n const searchBlockSize = searchLines.length\n\n // Collect all candidate positions where both anchors match\n const candidates: Array<{ startLine: number; endLine: number }> = []\n for (let i = 0; i < originalLines.length; i++) {\n if (originalLines[i].trim() !== firstLineSearch) {\n continue\n }\n\n // Look for the matching last line after this first line\n for (let j = i + 2; j < originalLines.length; j++) {\n if (originalLines[j].trim() === lastLineSearch) {\n candidates.push({ startLine: i, endLine: j })\n break // Only match the first occurrence of the last line\n }\n }\n }\n\n // Return immediately if no candidates\n if (candidates.length === 0) {\n return\n }\n\n // Handle single candidate scenario (using relaxed threshold)\n if (candidates.length === 1) {\n const { startLine, endLine } = candidates[0]\n const actualBlockSize = endLine - startLine + 1\n\n let similarity = 0\n let linesToCheck = Math.min(searchBlockSize - 2, actualBlockSize - 2) // Middle lines only\n\n if (linesToCheck > 0) {\n for (let j = 1; j < searchBlockSize - 1 && j < actualBlockSize - 1; j++) {\n const originalLine = originalLines[startLine + j].trim()\n const searchLine = searchLines[j].trim()\n const maxLen = Math.max(originalLine.length, searchLine.length)\n if (maxLen === 0) {\n continue\n }\n const distance = levenshtein(originalLine, searchLine)\n similarity += (1 - distance / maxLen) / linesToCheck\n\n // Exit early when threshold is reached\n if (similarity >= SINGLE_CANDIDATE_SIMILARITY_THRESHOLD) {\n break\n }\n }\n } else {\n // No middle lines to compare, just accept based on anchors\n similarity = 1.0\n }\n\n if (similarity >= SINGLE_CANDIDATE_SIMILARITY_THRESHOLD) {\n let matchStartIndex = 0\n for (let k = 0; k < startLine; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n let matchEndIndex = matchStartIndex\n for (let k = startLine; k <= endLine; k++) {\n matchEndIndex += originalLines[k].length\n if (k < endLine) {\n matchEndIndex += 1 // Add newline character except for the last line\n }\n }\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n return\n }\n\n // Calculate similarity for multiple candidates\n let bestMatch: { startLine: number; endLine: number } | null = null\n let maxSimilarity = -1\n\n for (const candidate of candidates) {\n const { startLine, endLine } = candidate\n const actualBlockSize = endLine - startLine + 1\n\n let similarity = 0\n let linesToCheck = Math.min(searchBlockSize - 2, actualBlockSize - 2) // Middle lines only\n\n if (linesToCheck > 0) {\n for (let j = 1; j < searchBlockSize - 1 && j < actualBlockSize - 1; j++) {\n const originalLine = originalLines[startLine + j].trim()\n const searchLine = searchLines[j].trim()\n const maxLen = Math.max(originalLine.length, searchLine.length)\n if (maxLen === 0) {\n continue\n }\n const distance = levenshtein(originalLine, searchLine)\n similarity += 1 - distance / maxLen\n }\n similarity /= linesToCheck // Average similarity\n } else {\n // No middle lines to compare, just accept based on anchors\n similarity = 1.0\n }\n\n if (similarity > maxSimilarity) {\n maxSimilarity = similarity\n bestMatch = candidate\n }\n }\n\n // Threshold judgment\n if (maxSimilarity >= MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD && bestMatch) {\n const { startLine, endLine } = bestMatch\n let matchStartIndex = 0\n for (let k = 0; k < startLine; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n let matchEndIndex = matchStartIndex\n for (let k = startLine; k <= endLine; k++) {\n matchEndIndex += originalLines[k].length\n if (k < endLine) {\n matchEndIndex += 1\n }\n }\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n}\n\nexport const IndentationFlexibleReplacer: Replacer = function* (content, find) {\n const removeIndentation = (text: string) => {\n const lines = text.split(\"\\n\")\n const nonEmptyLines = lines.filter((line) => line.trim().length > 0)\n if (nonEmptyLines.length === 0) return text\n\n const minIndent = Math.min(\n ...nonEmptyLines.map((line) => {\n const match = line.match(/^(\\s*)/)\n return match ? match[1].length : 0\n }),\n )\n\n return lines.map((line) => (line.trim().length === 0 ? line : line.slice(minIndent))).join(\"\\n\")\n }\n\n const normalizedFind = removeIndentation(find)\n const contentLines = content.split(\"\\n\")\n const findLines = find.split(\"\\n\")\n\n for (let i = 0; i <= contentLines.length - findLines.length; i++) {\n const block = contentLines.slice(i, i + findLines.length).join(\"\\n\")\n if (removeIndentation(block) === normalizedFind) {\n yield block\n }\n }\n}\n\nexport const EscapeNormalizedReplacer: Replacer = function* (content, find) {\n const unescapeString = (str: string): string => {\n return str.replace(/\\\\(n|t|r|'|\"|`|\\\\|\\n|\\$)/g, (match, capturedChar) => {\n switch (capturedChar) {\n case \"n\":\n return \"\\n\"\n case \"t\":\n return \"\\t\"\n case \"r\":\n return \"\\r\"\n case \"'\":\n return \"'\"\n case '\"':\n return '\"'\n case \"`\":\n return \"`\"\n case \"\\\\\":\n return \"\\\\\"\n case \"\\n\":\n return \"\\n\"\n case \"$\":\n return \"$\"\n default:\n return match\n }\n })\n }\n\n const unescapedFind = unescapeString(find)\n\n // Try direct match with unescaped find string\n if (content.includes(unescapedFind)) {\n yield unescapedFind\n }\n\n // Also try finding escaped versions in content that match unescaped find\n const lines = content.split(\"\\n\")\n const findLines = unescapedFind.split(\"\\n\")\n\n for (let i = 0; i <= lines.length - findLines.length; i++) {\n const block = lines.slice(i, i + findLines.length).join(\"\\n\")\n const unescapedBlock = unescapeString(block)\n\n if (unescapedBlock === unescapedFind) {\n yield block\n }\n }\n}\n\nexport const MultiOccurrenceReplacer: Replacer = function* (content, find) {\n // This replacer yields all exact matches, allowing the replace function\n // to handle multiple occurrences based on replaceAll parameter\n let startIndex = 0\n\n while (true) {\n const index = content.indexOf(find, startIndex)\n if (index === -1) break\n\n yield find\n startIndex = index + find.length\n }\n}\n\nexport const TrimmedBoundaryReplacer: Replacer = function* (content, find) {\n const trimmedFind = find.trim()\n\n if (trimmedFind === find) {\n // Already trimmed, no point in trying\n return\n }\n\n // Try to find the trimmed version\n if (content.includes(trimmedFind)) {\n yield trimmedFind\n }\n\n // Also try finding blocks where trimmed content matches\n const lines = content.split(\"\\n\")\n const findLines = find.split(\"\\n\")\n\n for (let i = 0; i <= lines.length - findLines.length; i++) {\n const block = lines.slice(i, i + findLines.length).join(\"\\n\")\n\n if (block.trim() === trimmedFind) {\n yield block\n }\n }\n}\n\nexport const ContextAwareReplacer: Replacer = function* (content, find) {\n const findLines = find.split(\"\\n\")\n if (findLines.length < 3) {\n // Need at least 3 lines to have meaningful context\n return\n }\n\n // Remove trailing empty line if present\n if (findLines[findLines.length - 1] === \"\") {\n findLines.pop()\n }\n\n const contentLines = content.split(\"\\n\")\n\n // Extract first and last lines as context anchors\n const firstLine = findLines[0].trim()\n const lastLine = findLines[findLines.length - 1].trim()\n\n // Find blocks that start and end with the context anchors\n for (let i = 0; i < contentLines.length; i++) {\n if (contentLines[i].trim() !== firstLine) continue\n\n // Look for the matching last line\n for (let j = i + 2; j < contentLines.length; j++) {\n if (contentLines[j].trim() === lastLine) {\n // Found a potential context block\n const blockLines = contentLines.slice(i, j + 1)\n const block = blockLines.join(\"\\n\")\n\n // Check if the middle content has reasonable similarity\n // (simple heuristic: at least 50% of non-empty lines should match when trimmed)\n if (blockLines.length === findLines.length) {\n let matchingLines = 0\n let totalNonEmptyLines = 0\n\n for (let k = 1; k < blockLines.length - 1; k++) {\n const blockLine = blockLines[k].trim()\n const findLine = findLines[k].trim()\n\n if (blockLine.length > 0 || findLine.length > 0) {\n totalNonEmptyLines++\n if (blockLine === findLine) {\n matchingLines++\n }\n }\n }\n\n if (totalNonEmptyLines === 0 || matchingLines / totalNonEmptyLines >= 0.5) {\n yield block\n break // Only match the first occurrence\n }\n }\n break\n }\n }\n }\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../src/utils/text/smart-edit/replacers.ts", "../src/utils/text/smart-edit/index.ts"],
4
+ "sourcesContent": ["import { levenshtein } from './levenshtein'\n\nexport type Replacer = (content: string, find: string) => Generator<string, void, unknown>\n\nexport const SimpleReplacer: Replacer = function* (_content, find) {\n yield find\n}\n\nexport const LineTrimmedReplacer: Replacer = function* (content, find) {\n const originalLines = content.split(\"\\n\")\n const searchLines = find.split(\"\\n\")\n\n if (searchLines[searchLines.length - 1] === \"\") {\n searchLines.pop()\n }\n\n for (let i = 0; i <= originalLines.length - searchLines.length; i++) {\n let matches = true\n\n for (let j = 0; j < searchLines.length; j++) {\n const originalTrimmed = originalLines[i + j].trim()\n const searchTrimmed = searchLines[j].trim()\n\n if (originalTrimmed !== searchTrimmed) {\n matches = false\n break\n }\n }\n\n if (matches) {\n let matchStartIndex = 0\n for (let k = 0; k < i; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n\n let matchEndIndex = matchStartIndex\n for (let k = 0; k < searchLines.length; k++) {\n matchEndIndex += originalLines[i + k].length\n if (k < searchLines.length - 1) {\n matchEndIndex += 1 // Add newline character except for the last line\n }\n }\n\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n }\n}\n\nconst SINGLE_CANDIDATE_SIMILARITY_THRESHOLD = 0.0\nconst MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD = 0.3\n\nexport const WhitespaceNormalizedReplacer: Replacer = function* (content, find) {\n // Split by whitespace to get tokens\n const tokens = find.split(/\\s+/).filter(t => t.length > 0)\n \n if (tokens.length === 0) return\n\n // Create a regex where tokens are separated by \\s+\n // We escape each token to treat it as literal\n const pattern = tokens\n .map(token => token.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n .join('\\\\s+')\n \n try {\n const regex = new RegExp(pattern, 'g')\n let match\n while ((match = regex.exec(content)) !== null) {\n yield match[0]\n }\n } catch (e) {\n // Ignore invalid regex\n }\n}\n\nexport const BlockAnchorReplacer: Replacer = function* (content, find) {\n const originalLines = content.split(\"\\n\")\n const searchLines = find.split(\"\\n\")\n\n if (searchLines.length < 3) {\n return\n }\n\n if (searchLines[searchLines.length - 1] === \"\") {\n searchLines.pop()\n }\n\n const firstLineSearch = searchLines[0].trim()\n const lastLineSearch = searchLines[searchLines.length - 1].trim()\n const searchBlockSize = searchLines.length\n\n // Collect all candidate positions where both anchors match\n const candidates: Array<{ startLine: number; endLine: number }> = []\n for (let i = 0; i < originalLines.length; i++) {\n if (originalLines[i].trim() !== firstLineSearch) {\n continue\n }\n\n // Look for the matching last line after this first line\n for (let j = i + 2; j < originalLines.length; j++) {\n if (originalLines[j].trim() === lastLineSearch) {\n candidates.push({ startLine: i, endLine: j })\n break // Only match the first occurrence of the last line\n }\n }\n }\n\n // Return immediately if no candidates\n if (candidates.length === 0) {\n return\n }\n\n // Handle single candidate scenario (using relaxed threshold)\n if (candidates.length === 1) {\n const { startLine, endLine } = candidates[0]\n const actualBlockSize = endLine - startLine + 1\n\n let similarity = 0\n let linesToCheck = Math.min(searchBlockSize - 2, actualBlockSize - 2) // Middle lines only\n\n if (linesToCheck > 0) {\n for (let j = 1; j < searchBlockSize - 1 && j < actualBlockSize - 1; j++) {\n const originalLine = originalLines[startLine + j].trim()\n const searchLine = searchLines[j].trim()\n const maxLen = Math.max(originalLine.length, searchLine.length)\n if (maxLen === 0) {\n continue\n }\n const distance = levenshtein(originalLine, searchLine)\n similarity += (1 - distance / maxLen) / linesToCheck\n\n // Exit early when threshold is reached\n if (similarity >= SINGLE_CANDIDATE_SIMILARITY_THRESHOLD) {\n break\n }\n }\n } else {\n // No middle lines to compare, just accept based on anchors\n similarity = 1.0\n }\n\n if (similarity >= SINGLE_CANDIDATE_SIMILARITY_THRESHOLD) {\n let matchStartIndex = 0\n for (let k = 0; k < startLine; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n let matchEndIndex = matchStartIndex\n for (let k = startLine; k <= endLine; k++) {\n matchEndIndex += originalLines[k].length\n if (k < endLine) {\n matchEndIndex += 1 // Add newline character except for the last line\n }\n }\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n return\n }\n\n // Calculate similarity for multiple candidates\n let bestMatch: { startLine: number; endLine: number } | null = null\n let maxSimilarity = -1\n\n for (const candidate of candidates) {\n const { startLine, endLine } = candidate\n const actualBlockSize = endLine - startLine + 1\n\n let similarity = 0\n let linesToCheck = Math.min(searchBlockSize - 2, actualBlockSize - 2) // Middle lines only\n\n if (linesToCheck > 0) {\n for (let j = 1; j < searchBlockSize - 1 && j < actualBlockSize - 1; j++) {\n const originalLine = originalLines[startLine + j].trim()\n const searchLine = searchLines[j].trim()\n const maxLen = Math.max(originalLine.length, searchLine.length)\n if (maxLen === 0) {\n continue\n }\n const distance = levenshtein(originalLine, searchLine)\n similarity += 1 - distance / maxLen\n }\n similarity /= linesToCheck // Average similarity\n } else {\n // No middle lines to compare, just accept based on anchors\n similarity = 1.0\n }\n\n if (similarity > maxSimilarity) {\n maxSimilarity = similarity\n bestMatch = candidate\n }\n }\n\n // Threshold judgment\n if (maxSimilarity >= MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD && bestMatch) {\n const { startLine, endLine } = bestMatch\n let matchStartIndex = 0\n for (let k = 0; k < startLine; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n let matchEndIndex = matchStartIndex\n for (let k = startLine; k <= endLine; k++) {\n matchEndIndex += originalLines[k].length\n if (k < endLine) {\n matchEndIndex += 1\n }\n }\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n}\n\nexport const IndentationFlexibleReplacer: Replacer = function* (content, find) {\n const removeIndentation = (text: string) => {\n const lines = text.split(\"\\n\")\n const nonEmptyLines = lines.filter((line) => line.trim().length > 0)\n if (nonEmptyLines.length === 0) return text\n\n const minIndent = Math.min(\n ...nonEmptyLines.map((line) => {\n const match = line.match(/^(\\s*)/)\n return match ? match[1].length : 0\n }),\n )\n\n return lines.map((line) => (line.trim().length === 0 ? line : line.slice(minIndent))).join(\"\\n\")\n }\n\n const normalizedFind = removeIndentation(find)\n const contentLines = content.split(\"\\n\")\n const findLines = find.split(\"\\n\")\n\n for (let i = 0; i <= contentLines.length - findLines.length; i++) {\n const block = contentLines.slice(i, i + findLines.length).join(\"\\n\")\n if (removeIndentation(block) === normalizedFind) {\n yield block\n }\n }\n}\n\nexport const EscapeNormalizedReplacer: Replacer = function* (content, find) {\n const unescapeString = (str: string): string => {\n return str.replace(/\\\\(n|t|r|'|\"|`|\\\\|\\n|\\$)/g, (match, capturedChar) => {\n switch (capturedChar) {\n case \"n\":\n return \"\\n\"\n case \"t\":\n return \"\\t\"\n case \"r\":\n return \"\\r\"\n case \"'\":\n return \"'\"\n case '\"':\n return '\"'\n case \"`\":\n return \"`\"\n case \"\\\\\":\n return \"\\\\\"\n case \"\\n\":\n return \"\\n\"\n case \"$\":\n return \"$\"\n default:\n return match\n }\n })\n }\n\n const unescapedFind = unescapeString(find)\n\n // Try direct match with unescaped find string\n if (content.includes(unescapedFind)) {\n yield unescapedFind\n }\n\n // Also try finding escaped versions in content that match unescaped find\n const lines = content.split(\"\\n\")\n const findLines = unescapedFind.split(\"\\n\")\n\n for (let i = 0; i <= lines.length - findLines.length; i++) {\n const block = lines.slice(i, i + findLines.length).join(\"\\n\")\n const unescapedBlock = unescapeString(block)\n\n if (unescapedBlock === unescapedFind) {\n yield block\n }\n }\n}\n\nexport const MultiOccurrenceReplacer: Replacer = function* (content, find) {\n // This replacer yields all exact matches, allowing the replace function\n // to handle multiple occurrences based on replaceAll parameter\n let startIndex = 0\n\n while (true) {\n const index = content.indexOf(find, startIndex)\n if (index === -1) break\n\n yield find\n startIndex = index + find.length\n }\n}\n\nexport const TrimmedBoundaryReplacer: Replacer = function* (content, find) {\n const trimmedFind = find.trim()\n\n if (trimmedFind === find) {\n // Already trimmed, no point in trying\n return\n }\n\n // Try to find the trimmed version\n if (content.includes(trimmedFind)) {\n yield trimmedFind\n }\n\n // Also try finding blocks where trimmed content matches\n const lines = content.split(\"\\n\")\n const findLines = find.split(\"\\n\")\n\n for (let i = 0; i <= lines.length - findLines.length; i++) {\n const block = lines.slice(i, i + findLines.length).join(\"\\n\")\n\n if (block.trim() === trimmedFind) {\n yield block\n }\n }\n}\n\nexport const ContextAwareReplacer: Replacer = function* (content, find) {\n const findLines = find.split(\"\\n\")\n if (findLines.length < 3) {\n // Need at least 3 lines to have meaningful context\n return\n }\n\n // Remove trailing empty line if present\n if (findLines[findLines.length - 1] === \"\") {\n findLines.pop()\n }\n\n const contentLines = content.split(\"\\n\")\n\n // Extract first and last lines as context anchors\n const firstLine = findLines[0].trim()\n const lastLine = findLines[findLines.length - 1].trim()\n\n // Find blocks that start and end with the context anchors\n for (let i = 0; i < contentLines.length; i++) {\n if (contentLines[i].trim() !== firstLine) continue\n\n // Look for the matching last line\n for (let j = i + 2; j < contentLines.length; j++) {\n if (contentLines[j].trim() === lastLine) {\n // Found a potential context block\n const blockLines = contentLines.slice(i, j + 1)\n const block = blockLines.join(\"\\n\")\n\n // Check if the middle content has reasonable similarity\n // (simple heuristic: at least 50% of non-empty lines should match when trimmed)\n if (blockLines.length === findLines.length) {\n let matchingLines = 0\n let totalNonEmptyLines = 0\n\n for (let k = 1; k < blockLines.length - 1; k++) {\n const blockLine = blockLines[k].trim()\n const findLine = findLines[k].trim()\n\n if (blockLine.length > 0 || findLine.length > 0) {\n totalNonEmptyLines++\n if (blockLine === findLine) {\n matchingLines++\n }\n }\n }\n\n if (totalNonEmptyLines === 0 || matchingLines / totalNonEmptyLines >= 0.5) {\n yield block\n break // Only match the first occurrence\n }\n }\n break\n }\n }\n }\n}\n", "import { levenshtein } from './levenshtein'\nimport { \n SimpleReplacer, \n LineTrimmedReplacer, \n BlockAnchorReplacer, \n WhitespaceNormalizedReplacer, \n IndentationFlexibleReplacer,\n EscapeNormalizedReplacer,\n TrimmedBoundaryReplacer,\n ContextAwareReplacer,\n MultiOccurrenceReplacer,\n Replacer \n} from './replacers'\n\nexport const SmartEdit = {\n levenshtein,\n replace: (content: string, oldString: string, newString: string, replaceAll = false): string => {\n if (oldString === newString) {\n throw new Error(\"oldString and newString must be different\")\n }\n\n let notFound = true\n\n for (const replacer of [\n SimpleReplacer,\n LineTrimmedReplacer,\n BlockAnchorReplacer,\n WhitespaceNormalizedReplacer,\n IndentationFlexibleReplacer,\n EscapeNormalizedReplacer,\n TrimmedBoundaryReplacer,\n ContextAwareReplacer,\n MultiOccurrenceReplacer\n ]) {\n for (const search of replacer(content, oldString)) {\n const index = content.indexOf(search)\n if (index === -1) continue\n notFound = false\n if (replaceAll) {\n return content.replaceAll(search, newString)\n }\n // Replace first occurrence only\n return content.substring(0, index) + newString + content.substring(index + search.length)\n }\n }\n\n if (notFound) {\n throw new Error(\"oldString not found in content\")\n }\n return content\n }\n}\n\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -5,8 +5,8 @@ import {
5
5
  getOriginalCwd,
6
6
  setCwd,
7
7
  setOriginalCwd
8
- } from "./chunk-RVNK6V3Z.js";
9
- import "./chunk-YDVLI6LP.js";
8
+ } from "./chunk-6FIBU73C.js";
9
+ import "./chunk-JY2ZIUT6.js";
10
10
  import "./chunk-I3J4JYES.js";
11
11
  export {
12
12
  getCwd,
@@ -2,12 +2,12 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getTheme
5
- } from "./chunk-B3TQNKEC.js";
6
- import "./chunk-4ESLYQDR.js";
5
+ } from "./chunk-IQIZZT3A.js";
6
+ import "./chunk-4NCEUAAH.js";
7
7
  import "./chunk-RQVLBMP7.js";
8
- import "./chunk-FE2DB2XA.js";
9
- import "./chunk-RVNK6V3Z.js";
10
- import "./chunk-YDVLI6LP.js";
8
+ import "./chunk-TWXMVB4T.js";
9
+ import "./chunk-6FIBU73C.js";
10
+ import "./chunk-JY2ZIUT6.js";
11
11
  import "./chunk-I3J4JYES.js";
12
12
  export {
13
13
  getTheme
@@ -3,14 +3,14 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  loadToolPermissionContextFromDisk,
5
5
  persistToolPermissionUpdateToDisk
6
- } from "./chunk-3TLFBSQO.js";
7
- import "./chunk-JIWMGSZC.js";
6
+ } from "./chunk-SRWXBDPV.js";
7
+ import "./chunk-J6LHG4P2.js";
8
8
  import "./chunk-UNNVICVU.js";
9
- import "./chunk-4ESLYQDR.js";
9
+ import "./chunk-4NCEUAAH.js";
10
10
  import "./chunk-RQVLBMP7.js";
11
- import "./chunk-FE2DB2XA.js";
12
- import "./chunk-RVNK6V3Z.js";
13
- import "./chunk-YDVLI6LP.js";
11
+ import "./chunk-TWXMVB4T.js";
12
+ import "./chunk-6FIBU73C.js";
13
+ import "./chunk-JY2ZIUT6.js";
14
14
  import "./chunk-I3J4JYES.js";
15
15
  export {
16
16
  loadToolPermissionContextFromDisk,
@@ -0,0 +1,49 @@
1
+ import { createRequire as __pybCreateRequire } from "node:module";
2
+ const require = __pybCreateRequire(import.meta.url);
3
+ import {
4
+ getAllTools,
5
+ getReadOnlyTools,
6
+ getTools
7
+ } from "./chunk-OW2MWOEW.js";
8
+ import "./chunk-GBVT3BHF.js";
9
+ import "./chunk-C64GQQIX.js";
10
+ import "./chunk-ISZYPQJ4.js";
11
+ import "./chunk-C6KEBADH.js";
12
+ import "./chunk-5P7HBXTD.js";
13
+ import "./chunk-A5OH2UIT.js";
14
+ import "./chunk-IROS56AN.js";
15
+ import "./chunk-Z6FKI2XB.js";
16
+ import "./chunk-SCFTG75V.js";
17
+ import "./chunk-6Y7R2HQJ.js";
18
+ import "./chunk-TP3G2PLU.js";
19
+ import "./chunk-ERMQRV55.js";
20
+ import "./chunk-SH2UZRTG.js";
21
+ import "./chunk-ROSGQFTS.js";
22
+ import "./chunk-3DFBSQIT.js";
23
+ import "./chunk-AAIDMQFM.js";
24
+ import "./chunk-B6IMQJZM.js";
25
+ import "./chunk-K5SSMVKH.js";
26
+ import "./chunk-A3BVXXA3.js";
27
+ import "./chunk-N5WZ6CIB.js";
28
+ import "./chunk-XRUOSW3Q.js";
29
+ import "./chunk-UZ34JEUK.js";
30
+ import "./chunk-42XRBA3T.js";
31
+ import "./chunk-BJSWTHRM.js";
32
+ import "./chunk-SRWXBDPV.js";
33
+ import "./chunk-J6LHG4P2.js";
34
+ import "./chunk-UNNVICVU.js";
35
+ import "./chunk-LPRHLVIT.js";
36
+ import "./chunk-RVWBNMCL.js";
37
+ import "./chunk-IQIZZT3A.js";
38
+ import "./chunk-4NCEUAAH.js";
39
+ import "./chunk-RQVLBMP7.js";
40
+ import "./chunk-TWXMVB4T.js";
41
+ import "./chunk-6FIBU73C.js";
42
+ import "./chunk-JY2ZIUT6.js";
43
+ import "./chunk-OUXHGDLH.js";
44
+ import "./chunk-I3J4JYES.js";
45
+ export {
46
+ getAllTools,
47
+ getReadOnlyTools,
48
+ getTools
49
+ };
@@ -9,49 +9,49 @@ import {
9
9
  UserBashInputMessage,
10
10
  getCommand,
11
11
  hasCommand
12
- } from "./chunk-Q5GLVET5.js";
13
- import "./chunk-UIB4DXAE.js";
14
- import "./chunk-22FCTCIV.js";
15
- import "./chunk-PK4LECKI.js";
12
+ } from "./chunk-GBVT3BHF.js";
13
+ import "./chunk-C64GQQIX.js";
14
+ import "./chunk-ISZYPQJ4.js";
15
+ import "./chunk-C6KEBADH.js";
16
16
  import "./chunk-5P7HBXTD.js";
17
- import "./chunk-MEKNF2BX.js";
18
- import "./chunk-KUOHKADR.js";
19
- import "./chunk-GPR72UXL.js";
20
- import "./chunk-SS6ICJFN.js";
21
- import "./chunk-PDSCF233.js";
22
- import "./chunk-Y3NWIKWN.js";
17
+ import "./chunk-A5OH2UIT.js";
18
+ import "./chunk-IROS56AN.js";
19
+ import "./chunk-Z6FKI2XB.js";
20
+ import "./chunk-SCFTG75V.js";
21
+ import "./chunk-6Y7R2HQJ.js";
22
+ import "./chunk-TP3G2PLU.js";
23
23
  import "./chunk-ERMQRV55.js";
24
- import "./chunk-3PUCUH4D.js";
24
+ import "./chunk-SH2UZRTG.js";
25
25
  import {
26
26
  NO_RESPONSE_REQUESTED,
27
27
  createAssistantMessage,
28
28
  createUserMessage
29
- } from "./chunk-T3YJGBT6.js";
29
+ } from "./chunk-ROSGQFTS.js";
30
30
  import "./chunk-3DFBSQIT.js";
31
- import "./chunk-Y24AKIQ4.js";
31
+ import "./chunk-AAIDMQFM.js";
32
32
  import "./chunk-B6IMQJZM.js";
33
- import "./chunk-TZHR6HNQ.js";
33
+ import "./chunk-K5SSMVKH.js";
34
34
  import "./chunk-A3BVXXA3.js";
35
- import "./chunk-MBT675J6.js";
36
- import "./chunk-MHYEZGJE.js";
35
+ import "./chunk-N5WZ6CIB.js";
36
+ import "./chunk-42XRBA3T.js";
37
37
  import "./chunk-BJSWTHRM.js";
38
- import "./chunk-3TLFBSQO.js";
39
- import "./chunk-JIWMGSZC.js";
38
+ import "./chunk-SRWXBDPV.js";
39
+ import "./chunk-J6LHG4P2.js";
40
40
  import "./chunk-UNNVICVU.js";
41
- import "./chunk-ZBZ3REJN.js";
42
- import "./chunk-2P7BUT6Q.js";
43
- import "./chunk-B3TQNKEC.js";
44
- import "./chunk-4ESLYQDR.js";
41
+ import "./chunk-LPRHLVIT.js";
42
+ import "./chunk-RVWBNMCL.js";
43
+ import "./chunk-IQIZZT3A.js";
44
+ import "./chunk-4NCEUAAH.js";
45
45
  import {
46
46
  MalformedCommandError
47
47
  } from "./chunk-RQVLBMP7.js";
48
- import "./chunk-FE2DB2XA.js";
48
+ import "./chunk-TWXMVB4T.js";
49
49
  import {
50
50
  getCwd,
51
51
  logError,
52
52
  setCwd
53
- } from "./chunk-RVNK6V3Z.js";
54
- import "./chunk-YDVLI6LP.js";
53
+ } from "./chunk-6FIBU73C.js";
54
+ import "./chunk-JY2ZIUT6.js";
55
55
  import "./chunk-OUXHGDLH.js";
56
56
  import "./chunk-I3J4JYES.js";
57
57
 
@@ -174,12 +174,12 @@ async function processUserInput(input, mode, setToolJSX, context, pastedImages)
174
174
  ${input}` : input;
175
175
  if (processedInput.includes("!`") || processedInput.includes("@")) {
176
176
  try {
177
- const { executeBashCommands } = await import("./customCommands-PDRM6IC2.js");
177
+ const { executeBashCommands } = await import("./customCommands-H4OTDEES.js");
178
178
  if (processedInput.includes("!`")) {
179
179
  processedInput = await executeBashCommands(processedInput);
180
180
  }
181
181
  if (processedInput.includes("@")) {
182
- const { processMentions } = await import("./mentionProcessor-UMLTSEAK.js");
182
+ const { processMentions } = await import("./mentionProcessor-6QPEGYTQ.js");
183
183
  await processMentions(processedInput);
184
184
  }
185
185
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pybao-cli",
3
- "version": "1.3.79",
3
+ "version": "1.3.80",
4
4
  "bin": {
5
5
  "pyb": "cli.js",
6
6
  "pyb-acp": "cli-acp.js"