pybao-cli 1.5.38 → 1.5.39

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 (169) hide show
  1. package/dist/REPL-QXWIXDPD.js +51 -0
  2. package/dist/{acp-JTVVQGX6.js → acp-Z3ROU4NT.js} +30 -30
  3. package/dist/{agentsValidate-T552HEU3.js → agentsValidate-T5RRKNH7.js} +7 -7
  4. package/dist/{ask-JT2UVHOU.js → ask-Q5DD7Y5V.js} +30 -30
  5. package/dist/{autoUpdater-ZBN46KEI.js → autoUpdater-X4MGXTHY.js} +3 -3
  6. package/dist/{chunk-JQW3XPSA.js → chunk-25DI6YMP.js} +1 -1
  7. package/dist/{chunk-GLNNII3K.js → chunk-3YYZBLYE.js} +3 -3
  8. package/dist/{chunk-HPHRVBGM.js → chunk-4L2R7COO.js} +3 -3
  9. package/dist/{chunk-X7II6NLY.js → chunk-6ZXSYUC4.js} +1 -1
  10. package/dist/{chunk-A33Z7A54.js → chunk-7A7AGNEX.js} +4 -4
  11. package/dist/{chunk-5AM65D7G.js → chunk-B6KK6QP2.js} +1 -1
  12. package/dist/{chunk-FGAQGENO.js → chunk-C2XL4PP4.js} +2 -2
  13. package/dist/{chunk-2P4E3ZNA.js → chunk-CARZ3VV2.js} +3 -3
  14. package/dist/{chunk-HKDUNAZU.js → chunk-E2O5ZNMG.js} +1 -1
  15. package/dist/{chunk-LGWP73N3.js → chunk-IOJSVTJI.js} +1 -1
  16. package/dist/{chunk-OONY2XEJ.js → chunk-J6RVV73S.js} +1 -1
  17. package/dist/{chunk-OONY2XEJ.js.map → chunk-J6RVV73S.js.map} +1 -1
  18. package/dist/{chunk-PPTR7ECF.js → chunk-JZ7UEGNN.js} +1 -1
  19. package/dist/{chunk-QLLHQ4NC.js → chunk-K5F6WOED.js} +1 -1
  20. package/dist/{chunk-XGFLQLPP.js → chunk-K6USRWZZ.js} +190 -41
  21. package/dist/chunk-K6USRWZZ.js.map +7 -0
  22. package/dist/{chunk-TYK67RSX.js → chunk-K6ZSF4XV.js} +4 -4
  23. package/dist/{chunk-DXS27TBK.js → chunk-M74TFPOY.js} +3 -3
  24. package/dist/{chunk-REIICUCF.js → chunk-N4KEHLUE.js} +2 -2
  25. package/dist/{chunk-TW7VYZCV.js → chunk-OQV3ASGW.js} +3 -3
  26. package/dist/{chunk-45CYYYU7.js → chunk-OXMRNROM.js} +2 -2
  27. package/dist/{chunk-ODHAKZLW.js → chunk-PMPJBZ4W.js} +3 -3
  28. package/dist/{chunk-T4YXQTDG.js → chunk-QJPGHOOD.js} +3 -3
  29. package/dist/{chunk-OQ7GMNEA.js → chunk-RF4TLZ2G.js} +1 -1
  30. package/dist/{chunk-34KB4DEZ.js → chunk-TNVELATG.js} +4 -4
  31. package/dist/{chunk-M3XZZUER.js → chunk-TPEX7GP6.js} +2 -2
  32. package/dist/{chunk-RKTBVJGG.js → chunk-UIHCMY35.js} +2 -2
  33. package/dist/{chunk-USNKNXS4.js → chunk-UXJEDV2F.js} +1 -1
  34. package/dist/{chunk-MQ56NHZY.js → chunk-WU3KYQFA.js} +3 -3
  35. package/dist/{chunk-3L5QLWHQ.js → chunk-XEZ4I2EW.js} +1 -1
  36. package/dist/{chunk-R357FMHE.js → chunk-XQZYIKQG.js} +1 -1
  37. package/dist/{chunk-JQXGDP2G.js → chunk-YGMNRXWM.js} +2 -2
  38. package/dist/{chunk-MPW3OMAB.js → chunk-YQX2PZMK.js} +4 -4
  39. package/dist/{cli-GW2RLZKS.js → cli-KXJVBKJ3.js} +90 -90
  40. package/dist/commands-ESZSE6NV.js +55 -0
  41. package/dist/{config-7YD4R22V.js → config-WAHXMCBU.js} +4 -4
  42. package/dist/{context-4EG6BLW4.js → context-F57XOU2V.js} +6 -6
  43. package/dist/{conversationPersistence-XSJ7MFZQ.js → conversationPersistence-AQ4ICXAB.js} +3 -3
  44. package/dist/{conversationTracker-VXYBDUQD.js → conversationTracker-E4JUPWAN.js} +4 -4
  45. package/dist/{customCommands-CEGHI3EI.js → customCommands-JIPCN2R2.js} +4 -4
  46. package/dist/{env-SFBXDZAW.js → env-CQDTZSMG.js} +2 -2
  47. package/dist/{file-TKPF7WPK.js → file-67TG46SO.js} +4 -4
  48. package/dist/index.js +3 -3
  49. package/dist/{llm-UPZIAGPI.js → llm-S4UIKFEI.js} +31 -31
  50. package/dist/{llmLazy-AH4Z4W4G.js → llmLazy-C4LTCDFH.js} +1 -1
  51. package/dist/{loader-KR2G4MZH.js → loader-TEMIJTXY.js} +4 -4
  52. package/dist/{lsp-4BXZN54S.js → lsp-NRIYSZQ4.js} +6 -6
  53. package/dist/{lspAnchor-J7X23CTJ.js → lspAnchor-FM5VJH4Y.js} +6 -6
  54. package/dist/{mcp-PQ7E5V6N.js → mcp-TCYAGRRL.js} +7 -7
  55. package/dist/{mentionProcessor-OBZEHVOK.js → mentionProcessor-I3NLABF6.js} +5 -5
  56. package/dist/{messages-Y45VMQJM.js → messages-RI367EVZ.js} +1 -1
  57. package/dist/{model-PLE3KNNX.js → model-NJI57V4I.js} +5 -5
  58. package/dist/{openai-2R2NDBUU.js → openai-CD6FJTQW.js} +5 -5
  59. package/dist/{outputStyles-XXPDKDY2.js → outputStyles-DTQLGYLI.js} +4 -4
  60. package/dist/{pluginRuntime-SROFDMKU.js → pluginRuntime-HAYCLP4K.js} +6 -6
  61. package/dist/{pluginValidation-WRO2DZTR.js → pluginValidation-EXHNDUOT.js} +6 -6
  62. package/dist/prompts-UGQX7FG5.js +57 -0
  63. package/dist/{pybAgentSessionLoad-FQQRBPKP.js → pybAgentSessionLoad-WRYHVHEJ.js} +4 -4
  64. package/dist/{pybAgentSessionResume-P3UHSOY6.js → pybAgentSessionResume-UWLIZORC.js} +4 -4
  65. package/dist/{pybAgentStreamJsonSession-SIHHDMP6.js → pybAgentStreamJsonSession-IPKXSPWK.js} +1 -1
  66. package/dist/{pybHooks-J6EDF4HT.js → pybHooks-GMZAQ3EO.js} +4 -4
  67. package/dist/query-LBWLTCLG.js +55 -0
  68. package/dist/{registry-FWP3Q2GA.js → registry-63DZ2LVO.js} +5 -5
  69. package/dist/{ripgrep-MRW3JRSV.js → ripgrep-XTOLMKN5.js} +3 -3
  70. package/dist/{skillMarketplace-I6WS3AB4.js → skillMarketplace-BY4UWKWZ.js} +3 -3
  71. package/dist/{state-FFCKZLBN.js → state-34X5ECUL.js} +2 -2
  72. package/dist/{theme-ALYM3CFD.js → theme-CDSY27SJ.js} +5 -5
  73. package/dist/{toolPermissionSettings-6TUFSTN3.js → toolPermissionSettings-RCPBRGPK.js} +6 -6
  74. package/dist/tools-53UXDJ64.js +55 -0
  75. package/dist/{userInput-4MUAKMGX.js → userInput-4FVP4WYV.js} +32 -32
  76. package/package.json +1 -1
  77. package/dist/REPL-EOGX5USK.js +0 -51
  78. package/dist/chunk-XGFLQLPP.js.map +0 -7
  79. package/dist/commands-OMEB6ZPR.js +0 -55
  80. package/dist/prompts-5Q6CSNXC.js +0 -57
  81. package/dist/query-CADGN75M.js +0 -55
  82. package/dist/tools-IEYQ4SAS.js +0 -55
  83. package/resources/output-styles/accessibility-champion.md +0 -66
  84. package/resources/output-styles/api-designer.md +0 -88
  85. package/resources/output-styles/concise-engineer.md +0 -32
  86. package/resources/output-styles/critical-code-reviewer.md +0 -36
  87. package/resources/output-styles/data-engineer.md +0 -104
  88. package/resources/output-styles/defensive-programmer.md +0 -81
  89. package/resources/output-styles/devil-advocate.md +0 -43
  90. package/resources/output-styles/devops-automator.md +0 -118
  91. package/resources/output-styles/distributed-systems-architect.md +0 -77
  92. package/resources/output-styles/documentation-writer.md +0 -47
  93. package/resources/output-styles/evan-king-system-design-reviewer.md +0 -45
  94. package/resources/output-styles/functional-purist.md +0 -84
  95. package/resources/output-styles/performance-optimizer.md +0 -49
  96. package/resources/output-styles/refactoring-expert.md +0 -118
  97. package/resources/output-styles/security-auditor.md +0 -49
  98. package/resources/output-styles/startup-pragmatist.md +0 -58
  99. package/resources/output-styles/test-driven-developer.md +0 -48
  100. /package/dist/{REPL-EOGX5USK.js.map → REPL-QXWIXDPD.js.map} +0 -0
  101. /package/dist/{acp-JTVVQGX6.js.map → acp-Z3ROU4NT.js.map} +0 -0
  102. /package/dist/{agentsValidate-T552HEU3.js.map → agentsValidate-T5RRKNH7.js.map} +0 -0
  103. /package/dist/{ask-JT2UVHOU.js.map → ask-Q5DD7Y5V.js.map} +0 -0
  104. /package/dist/{autoUpdater-ZBN46KEI.js.map → autoUpdater-X4MGXTHY.js.map} +0 -0
  105. /package/dist/{chunk-JQW3XPSA.js.map → chunk-25DI6YMP.js.map} +0 -0
  106. /package/dist/{chunk-GLNNII3K.js.map → chunk-3YYZBLYE.js.map} +0 -0
  107. /package/dist/{chunk-HPHRVBGM.js.map → chunk-4L2R7COO.js.map} +0 -0
  108. /package/dist/{chunk-X7II6NLY.js.map → chunk-6ZXSYUC4.js.map} +0 -0
  109. /package/dist/{chunk-A33Z7A54.js.map → chunk-7A7AGNEX.js.map} +0 -0
  110. /package/dist/{chunk-5AM65D7G.js.map → chunk-B6KK6QP2.js.map} +0 -0
  111. /package/dist/{chunk-FGAQGENO.js.map → chunk-C2XL4PP4.js.map} +0 -0
  112. /package/dist/{chunk-2P4E3ZNA.js.map → chunk-CARZ3VV2.js.map} +0 -0
  113. /package/dist/{chunk-HKDUNAZU.js.map → chunk-E2O5ZNMG.js.map} +0 -0
  114. /package/dist/{chunk-LGWP73N3.js.map → chunk-IOJSVTJI.js.map} +0 -0
  115. /package/dist/{chunk-PPTR7ECF.js.map → chunk-JZ7UEGNN.js.map} +0 -0
  116. /package/dist/{chunk-QLLHQ4NC.js.map → chunk-K5F6WOED.js.map} +0 -0
  117. /package/dist/{chunk-TYK67RSX.js.map → chunk-K6ZSF4XV.js.map} +0 -0
  118. /package/dist/{chunk-DXS27TBK.js.map → chunk-M74TFPOY.js.map} +0 -0
  119. /package/dist/{chunk-REIICUCF.js.map → chunk-N4KEHLUE.js.map} +0 -0
  120. /package/dist/{chunk-TW7VYZCV.js.map → chunk-OQV3ASGW.js.map} +0 -0
  121. /package/dist/{chunk-45CYYYU7.js.map → chunk-OXMRNROM.js.map} +0 -0
  122. /package/dist/{chunk-ODHAKZLW.js.map → chunk-PMPJBZ4W.js.map} +0 -0
  123. /package/dist/{chunk-T4YXQTDG.js.map → chunk-QJPGHOOD.js.map} +0 -0
  124. /package/dist/{chunk-OQ7GMNEA.js.map → chunk-RF4TLZ2G.js.map} +0 -0
  125. /package/dist/{chunk-34KB4DEZ.js.map → chunk-TNVELATG.js.map} +0 -0
  126. /package/dist/{chunk-M3XZZUER.js.map → chunk-TPEX7GP6.js.map} +0 -0
  127. /package/dist/{chunk-RKTBVJGG.js.map → chunk-UIHCMY35.js.map} +0 -0
  128. /package/dist/{chunk-USNKNXS4.js.map → chunk-UXJEDV2F.js.map} +0 -0
  129. /package/dist/{chunk-MQ56NHZY.js.map → chunk-WU3KYQFA.js.map} +0 -0
  130. /package/dist/{chunk-3L5QLWHQ.js.map → chunk-XEZ4I2EW.js.map} +0 -0
  131. /package/dist/{chunk-R357FMHE.js.map → chunk-XQZYIKQG.js.map} +0 -0
  132. /package/dist/{chunk-JQXGDP2G.js.map → chunk-YGMNRXWM.js.map} +0 -0
  133. /package/dist/{chunk-MPW3OMAB.js.map → chunk-YQX2PZMK.js.map} +0 -0
  134. /package/dist/{cli-GW2RLZKS.js.map → cli-KXJVBKJ3.js.map} +0 -0
  135. /package/dist/{commands-OMEB6ZPR.js.map → commands-ESZSE6NV.js.map} +0 -0
  136. /package/dist/{config-7YD4R22V.js.map → config-WAHXMCBU.js.map} +0 -0
  137. /package/dist/{context-4EG6BLW4.js.map → context-F57XOU2V.js.map} +0 -0
  138. /package/dist/{conversationPersistence-XSJ7MFZQ.js.map → conversationPersistence-AQ4ICXAB.js.map} +0 -0
  139. /package/dist/{conversationTracker-VXYBDUQD.js.map → conversationTracker-E4JUPWAN.js.map} +0 -0
  140. /package/dist/{customCommands-CEGHI3EI.js.map → customCommands-JIPCN2R2.js.map} +0 -0
  141. /package/dist/{env-SFBXDZAW.js.map → env-CQDTZSMG.js.map} +0 -0
  142. /package/dist/{file-TKPF7WPK.js.map → file-67TG46SO.js.map} +0 -0
  143. /package/dist/{llm-UPZIAGPI.js.map → llm-S4UIKFEI.js.map} +0 -0
  144. /package/dist/{llmLazy-AH4Z4W4G.js.map → llmLazy-C4LTCDFH.js.map} +0 -0
  145. /package/dist/{loader-KR2G4MZH.js.map → loader-TEMIJTXY.js.map} +0 -0
  146. /package/dist/{lsp-4BXZN54S.js.map → lsp-NRIYSZQ4.js.map} +0 -0
  147. /package/dist/{lspAnchor-J7X23CTJ.js.map → lspAnchor-FM5VJH4Y.js.map} +0 -0
  148. /package/dist/{mcp-PQ7E5V6N.js.map → mcp-TCYAGRRL.js.map} +0 -0
  149. /package/dist/{mentionProcessor-OBZEHVOK.js.map → mentionProcessor-I3NLABF6.js.map} +0 -0
  150. /package/dist/{messages-Y45VMQJM.js.map → messages-RI367EVZ.js.map} +0 -0
  151. /package/dist/{model-PLE3KNNX.js.map → model-NJI57V4I.js.map} +0 -0
  152. /package/dist/{openai-2R2NDBUU.js.map → openai-CD6FJTQW.js.map} +0 -0
  153. /package/dist/{outputStyles-XXPDKDY2.js.map → outputStyles-DTQLGYLI.js.map} +0 -0
  154. /package/dist/{pluginRuntime-SROFDMKU.js.map → pluginRuntime-HAYCLP4K.js.map} +0 -0
  155. /package/dist/{pluginValidation-WRO2DZTR.js.map → pluginValidation-EXHNDUOT.js.map} +0 -0
  156. /package/dist/{prompts-5Q6CSNXC.js.map → prompts-UGQX7FG5.js.map} +0 -0
  157. /package/dist/{pybAgentSessionLoad-FQQRBPKP.js.map → pybAgentSessionLoad-WRYHVHEJ.js.map} +0 -0
  158. /package/dist/{pybAgentSessionResume-P3UHSOY6.js.map → pybAgentSessionResume-UWLIZORC.js.map} +0 -0
  159. /package/dist/{pybAgentStreamJsonSession-SIHHDMP6.js.map → pybAgentStreamJsonSession-IPKXSPWK.js.map} +0 -0
  160. /package/dist/{pybHooks-J6EDF4HT.js.map → pybHooks-GMZAQ3EO.js.map} +0 -0
  161. /package/dist/{query-CADGN75M.js.map → query-LBWLTCLG.js.map} +0 -0
  162. /package/dist/{registry-FWP3Q2GA.js.map → registry-63DZ2LVO.js.map} +0 -0
  163. /package/dist/{ripgrep-MRW3JRSV.js.map → ripgrep-XTOLMKN5.js.map} +0 -0
  164. /package/dist/{skillMarketplace-I6WS3AB4.js.map → skillMarketplace-BY4UWKWZ.js.map} +0 -0
  165. /package/dist/{state-FFCKZLBN.js.map → state-34X5ECUL.js.map} +0 -0
  166. /package/dist/{theme-ALYM3CFD.js.map → theme-CDSY27SJ.js.map} +0 -0
  167. /package/dist/{toolPermissionSettings-6TUFSTN3.js.map → toolPermissionSettings-RCPBRGPK.js.map} +0 -0
  168. /package/dist/{tools-IEYQ4SAS.js.map → tools-53UXDJ64.js.map} +0 -0
  169. /package/dist/{userInput-4MUAKMGX.js.map → userInput-4FVP4WYV.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-HKDUNAZU.js";
5
+ } from "./chunk-E2O5ZNMG.js";
6
6
  import {
7
7
  appendSessionCustomTitleRecord,
8
8
  appendSessionJsonlFromMessage,
9
9
  appendSessionTagRecord,
10
10
  listPybAgentSessions
11
- } from "./chunk-MQ56NHZY.js";
11
+ } from "./chunk-WU3KYQFA.js";
12
12
  import {
13
13
  formatValidationResult,
14
14
  validatePluginOrMarketplacePath
15
- } from "./chunk-TW7VYZCV.js";
15
+ } from "./chunk-OQV3ASGW.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-PPTR7ECF.js";
23
+ } from "./chunk-JZ7UEGNN.js";
24
24
  import {
25
25
  FileSystemConversationPersistence
26
- } from "./chunk-5AM65D7G.js";
26
+ } from "./chunk-B6KK6QP2.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-HPHRVBGM.js";
41
+ } from "./chunk-4L2R7COO.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-FGAQGENO.js";
50
+ } from "./chunk-C2XL4PP4.js";
51
51
  import {
52
52
  fetchCustomModels,
53
53
  getModelFeatures
54
- } from "./chunk-JQXGDP2G.js";
54
+ } from "./chunk-YGMNRXWM.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-34KB4DEZ.js";
63
+ } from "./chunk-TNVELATG.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-TYK67RSX.js";
78
+ } from "./chunk-K6ZSF4XV.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-QLLHQ4NC.js";
91
+ } from "./chunk-K5F6WOED.js";
92
92
  import {
93
93
  loadToolPermissionContextFromDisk,
94
94
  persistToolPermissionUpdateToDisk
95
- } from "./chunk-DXS27TBK.js";
95
+ } from "./chunk-M74TFPOY.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-M3XZZUER.js";
106
+ } from "./chunk-TPEX7GP6.js";
107
107
  import {
108
108
  clearAgentCache,
109
109
  getActiveAgents,
110
110
  getAgentByType,
111
111
  getAllAgents,
112
112
  getAvailableAgentTypes
113
- } from "./chunk-REIICUCF.js";
113
+ } from "./chunk-N4KEHLUE.js";
114
114
  import {
115
115
  API_ERROR_MESSAGE_PREFIX,
116
116
  CANCEL_MESSAGE,
@@ -147,7 +147,7 @@ import {
147
147
  reorderMessages,
148
148
  resetAutoCompactTelemetry,
149
149
  stripSystemMessages
150
- } from "./chunk-OQ7GMNEA.js";
150
+ } from "./chunk-RF4TLZ2G.js";
151
151
  import {
152
152
  getRequestStatus,
153
153
  setRequestStatus,
@@ -179,7 +179,7 @@ import {
179
179
  normalizeFilePath,
180
180
  readTextContent,
181
181
  writeTextContent
182
- } from "./chunk-45CYYYU7.js";
182
+ } from "./chunk-OXMRNROM.js";
183
183
  import {
184
184
  parseBlockEdits
185
185
  } from "./chunk-QWIBSCDN.js";
@@ -190,18 +190,18 @@ import {
190
190
  formatDiagnosticsPretty,
191
191
  initParser,
192
192
  loadLanguage
193
- } from "./chunk-MPW3OMAB.js";
193
+ } from "./chunk-YQX2PZMK.js";
194
194
  import {
195
195
  getSettingsFileCandidates,
196
196
  loadSettingsWithLegacyFallback,
197
197
  readSettingsFile
198
- } from "./chunk-JQW3XPSA.js";
198
+ } from "./chunk-25DI6YMP.js";
199
199
  import {
200
200
  getCustomCommandDirectories,
201
201
  hasCustomCommands,
202
202
  loadCustomCommands,
203
203
  reloadCustomCommands
204
- } from "./chunk-RKTBVJGG.js";
204
+ } from "./chunk-UIHCMY35.js";
205
205
  import {
206
206
  getSessionPlugins
207
207
  } from "./chunk-BJSWTHRM.js";
@@ -210,7 +210,7 @@ import {
210
210
  buildModelProfileKey,
211
211
  getModelManager,
212
212
  isDefaultSlowAndCapableModel
213
- } from "./chunk-GLNNII3K.js";
213
+ } from "./chunk-3YYZBLYE.js";
214
214
  import {
215
215
  getCodeStyle,
216
216
  getContext,
@@ -218,16 +218,16 @@ import {
218
218
  getIsGit,
219
219
  getProjectDocs,
220
220
  getProjectStructureStatisticsBlock
221
- } from "./chunk-A33Z7A54.js";
221
+ } from "./chunk-7A7AGNEX.js";
222
222
  import {
223
223
  getRipgrepPath,
224
224
  getRipgrepPolicyMode,
225
225
  resolveRipgrepPolicy,
226
226
  ripGrep
227
- } from "./chunk-LGWP73N3.js";
227
+ } from "./chunk-IOJSVTJI.js";
228
228
  import {
229
229
  getTheme
230
- } from "./chunk-R357FMHE.js";
230
+ } from "./chunk-XQZYIKQG.js";
231
231
  import {
232
232
  DEFAULT_GLOBAL_CONFIG,
233
233
  enableConfigs,
@@ -240,7 +240,7 @@ import {
240
240
  saveGlobalConfig,
241
241
  setAllPointersToModel,
242
242
  setModelPointer
243
- } from "./chunk-2P4E3ZNA.js";
243
+ } from "./chunk-CARZ3VV2.js";
244
244
  import {
245
245
  AbortError
246
246
  } from "./chunk-RQVLBMP7.js";
@@ -249,7 +249,7 @@ import {
249
249
  getCurrentRequest,
250
250
  logUserFriendly,
251
251
  markPhase
252
- } from "./chunk-USNKNXS4.js";
252
+ } from "./chunk-UXJEDV2F.js";
253
253
  import {
254
254
  ASCII_LOGO,
255
255
  BunShell,
@@ -293,10 +293,10 @@ import {
293
293
  setCwd,
294
294
  shouldApplyToolOutputTruncation,
295
295
  truncateToolOutput
296
- } from "./chunk-X7II6NLY.js";
296
+ } from "./chunk-6ZXSYUC4.js";
297
297
  import {
298
298
  MACRO
299
- } from "./chunk-OONY2XEJ.js";
299
+ } from "./chunk-J6RVV73S.js";
300
300
  import {
301
301
  __export
302
302
  } from "./chunk-I3J4JYES.js";
@@ -477,7 +477,7 @@ var getCommandSubcommandPrefix = memoize(
477
477
  var getCommandPrefix = memoize(
478
478
  async (command4, abortSignal) => {
479
479
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
480
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-UPZIAGPI.js");
480
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-S4UIKFEI.js");
481
481
  const response = await queryQuick2({
482
482
  systemPrompt,
483
483
  userPrompt,
@@ -4279,7 +4279,7 @@ function formatParseError(error) {
4279
4279
  return error instanceof Error ? error.message : String(error);
4280
4280
  }
4281
4281
  async function defaultGateQuery(args) {
4282
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-UPZIAGPI.js");
4282
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-S4UIKFEI.js");
4283
4283
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4284
4284
  const messages = [
4285
4285
  {
@@ -6672,7 +6672,7 @@ var FileEditTool = {
6672
6672
  const originalFileContent = currentFileContent;
6673
6673
  let totalPatch = [];
6674
6674
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6675
- const { findLspAnchor } = await import("./lspAnchor-J7X23CTJ.js");
6675
+ const { findLspAnchor } = await import("./lspAnchor-FM5VJH4Y.js");
6676
6676
  for (const op of editOperations) {
6677
6677
  const normalizedSearch = normalizeLineEndings(op.search);
6678
6678
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -7480,6 +7480,22 @@ var MAX_LINE_LENGTH2 = 2e3;
7480
7480
  var MAX_TEXT_OUTPUT_BYTES = 50 * 1024;
7481
7481
  var MAX_TEXT_OUTPUT_LINES = 2e3;
7482
7482
  var DIRECTORY_DEFAULT_LIMIT = 200;
7483
+ var BINARY_SAMPLE_BYTES = 4096;
7484
+ var NON_PRINTABLE_THRESHOLD = 0.3;
7485
+ var TEXT_LIKE_EXTENSIONS = /* @__PURE__ */ new Set([
7486
+ ".txt",
7487
+ ".md",
7488
+ ".ts",
7489
+ ".tsx",
7490
+ ".js",
7491
+ ".jsx",
7492
+ ".json",
7493
+ ".yml",
7494
+ ".yaml",
7495
+ ".toml",
7496
+ ".ini",
7497
+ ".env"
7498
+ ]);
7483
7499
  var IMAGE_EXTENSIONS = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".gif", ".webp"]);
7484
7500
  var MAX_WIDTH = 2e3;
7485
7501
  var MAX_HEIGHT = 2e3;
@@ -7562,6 +7578,13 @@ var BINARY_EXTENSIONS = /* @__PURE__ */ new Set([
7562
7578
  ".swf",
7563
7579
  ".fla"
7564
7580
  ]);
7581
+ var binaryDetectionStats = {
7582
+ totalChecks: 0,
7583
+ extensionHitCount: 0,
7584
+ samplingHitCount: 0,
7585
+ degradationTriggerCount: 0,
7586
+ suspectedMisclassificationCount: 0
7587
+ };
7565
7588
  var inputSchema4 = z4.strictObject({
7566
7589
  file_path: z4.string().describe("The absolute path to the file to read"),
7567
7590
  offset: z4.number().optional().describe(
@@ -7674,9 +7697,14 @@ var FileReadTool = {
7674
7697
  }
7675
7698
  const fileSize = fileCheck.stats?.size ?? 0;
7676
7699
  if (BINARY_EXTENSIONS.has(ext)) {
7700
+ recordBinaryDetection({
7701
+ mode: "extension",
7702
+ detail: `extension:${ext}`,
7703
+ ext
7704
+ });
7677
7705
  return {
7678
7706
  result: false,
7679
- message: `This tool cannot read binary files. The file appears to be a binary ${ext} file. Please use appropriate tools for binary file analysis.`
7707
+ message: `This tool cannot read binary files. The file appears to be a binary ${ext} file (extension-based detection). Please use appropriate tools for binary file analysis.`
7680
7708
  };
7681
7709
  }
7682
7710
  if (fileSize === 0 && IMAGE_EXTENSIONS.has(ext)) {
@@ -7685,6 +7713,22 @@ var FileReadTool = {
7685
7713
  message: "Empty image files cannot be processed."
7686
7714
  };
7687
7715
  }
7716
+ const isSpecialFileType = IMAGE_EXTENSIONS.has(ext) || ext === ".pdf" || ext === ".ipynb";
7717
+ if (!isSpecialFileType) {
7718
+ const sampleResult = await detectBinaryBySampling(fullFilePath, fileSize);
7719
+ if (sampleResult.isBinary) {
7720
+ recordBinaryDetection({
7721
+ mode: "sampling",
7722
+ detail: sampleResult.detail,
7723
+ ext
7724
+ });
7725
+ return {
7726
+ result: false,
7727
+ message: `This tool cannot read binary files. The file was identified as binary by content-sampling detection (${sampleResult.detail}). Please use appropriate tools for binary file analysis.`
7728
+ };
7729
+ }
7730
+ recordBinaryDetection({ mode: "none", ext });
7731
+ }
7688
7732
  return { result: true };
7689
7733
  },
7690
7734
  async *call({ file_path, offset = 1, limit = void 0, symbol_name }, { readFileTimestamps }) {
@@ -7731,8 +7775,12 @@ var FileReadTool = {
7731
7775
  if (!symbol) {
7732
7776
  throw new Error(`Symbol '${symbol_name}' not found in file. Use offset/limit or LspTool instead.`);
7733
7777
  }
7734
- startLine = symbol.range.start.line + 1;
7735
- finalLimit = symbol.range.end.line - symbol.range.start.line + 1;
7778
+ const range = getSymbolRange(symbol);
7779
+ if (!range) {
7780
+ throw new Error(`Symbol '${symbol_name}' has no valid range information`);
7781
+ }
7782
+ startLine = range.start.line + 1;
7783
+ finalLimit = range.end.line - range.start.line + 1;
7736
7784
  } catch (e) {
7737
7785
  throw new Error(`Symbol reading failed: ${e.message}`);
7738
7786
  }
@@ -7795,6 +7843,20 @@ var FileReadTool = {
7795
7843
  };
7796
7844
  return;
7797
7845
  }
7846
+ if (BINARY_EXTENSIONS.has(ext)) {
7847
+ throw new Error(
7848
+ `This tool cannot read binary files. The file appears to be a binary ${ext} file (extension-based detection). Please use appropriate tools for binary file analysis.`
7849
+ );
7850
+ }
7851
+ const sampleResult = await detectBinaryBySampling(
7852
+ fullFilePath,
7853
+ fileInfo.stats.size ?? 0
7854
+ );
7855
+ if (sampleResult.isBinary) {
7856
+ throw new Error(
7857
+ `This tool cannot read binary files. The file was identified as binary by content-sampling detection (${sampleResult.detail}). Please use appropriate tools for binary file analysis.`
7858
+ );
7859
+ }
7798
7860
  let zeroBasedOffset = startLine === 0 ? 0 : startLine - 1;
7799
7861
  if (limit && !symbol_name) {
7800
7862
  try {
@@ -7953,6 +8015,17 @@ Use offset=${nextOffset} limit=${pageSize} to continue`);
7953
8015
  }
7954
8016
  return lines.join("\n");
7955
8017
  }
8018
+ function getSymbolRange(symbol) {
8019
+ const directRange = symbol?.range;
8020
+ if (typeof directRange?.start?.line === "number" && typeof directRange?.end?.line === "number") {
8021
+ return directRange;
8022
+ }
8023
+ const locationRange = symbol?.location?.range;
8024
+ if (typeof locationRange?.start?.line === "number" && typeof locationRange?.end?.line === "number") {
8025
+ return locationRange;
8026
+ }
8027
+ return null;
8028
+ }
7956
8029
  function capTextOutput(content, options) {
7957
8030
  const lines = content.split(/\r?\n/);
7958
8031
  const limitedByLines = lines.slice(0, options.maxLines);
@@ -7978,6 +8051,82 @@ ${limitedByLines[i]}`;
7978
8051
  nextOffset
7979
8052
  };
7980
8053
  }
8054
+ async function detectBinaryBySampling(filePath, fileSize) {
8055
+ if (fileSize <= 0) {
8056
+ return { isBinary: false };
8057
+ }
8058
+ const sampleSize = Math.min(BINARY_SAMPLE_BYTES, fileSize);
8059
+ try {
8060
+ const buffer = await Bun.file(filePath).slice(0, sampleSize).arrayBuffer();
8061
+ const bytes = new Uint8Array(buffer);
8062
+ if (bytes.length === 0) {
8063
+ return { isBinary: false };
8064
+ }
8065
+ let nonPrintableCount = 0;
8066
+ for (let i = 0; i < bytes.length; i++) {
8067
+ const byte = bytes[i];
8068
+ if (byte === 0) {
8069
+ return { isBinary: true, detail: "null-byte" };
8070
+ }
8071
+ if (byte < 9 || byte > 13 && byte < 32) {
8072
+ nonPrintableCount++;
8073
+ }
8074
+ }
8075
+ const ratio = nonPrintableCount / bytes.length;
8076
+ if (ratio > NON_PRINTABLE_THRESHOLD) {
8077
+ return { isBinary: true, detail: "non-printable-ratio" };
8078
+ }
8079
+ return { isBinary: false };
8080
+ } catch (error) {
8081
+ recordBinaryDetection({
8082
+ mode: "none",
8083
+ detail: "sampling-read-error",
8084
+ degraded: true,
8085
+ ext: path5.extname(filePath).toLowerCase()
8086
+ });
8087
+ logError(error);
8088
+ return { isBinary: false };
8089
+ }
8090
+ }
8091
+ function recordBinaryDetection({
8092
+ mode,
8093
+ detail,
8094
+ degraded = false,
8095
+ ext
8096
+ }) {
8097
+ binaryDetectionStats.totalChecks++;
8098
+ if (mode === "extension") {
8099
+ binaryDetectionStats.extensionHitCount++;
8100
+ }
8101
+ if (mode === "sampling") {
8102
+ binaryDetectionStats.samplingHitCount++;
8103
+ if (ext && TEXT_LIKE_EXTENSIONS.has(ext)) {
8104
+ binaryDetectionStats.suspectedMisclassificationCount++;
8105
+ }
8106
+ }
8107
+ if (degraded) {
8108
+ binaryDetectionStats.degradationTriggerCount++;
8109
+ }
8110
+ emitTelemetryEvent({
8111
+ channel: "tool.read.binary_detection",
8112
+ phase: "decision",
8113
+ timestamp: Date.now(),
8114
+ data: {
8115
+ mode,
8116
+ detail: detail || null,
8117
+ degraded,
8118
+ ext: ext || null,
8119
+ totalChecks: binaryDetectionStats.totalChecks,
8120
+ extensionHitCount: binaryDetectionStats.extensionHitCount,
8121
+ samplingHitCount: binaryDetectionStats.samplingHitCount,
8122
+ degradationTriggerCount: binaryDetectionStats.degradationTriggerCount,
8123
+ suspectedMisclassificationCount: binaryDetectionStats.suspectedMisclassificationCount,
8124
+ samplingHitRate: binaryDetectionStats.totalChecks > 0 ? Number(
8125
+ (binaryDetectionStats.samplingHitCount / binaryDetectionStats.totalChecks).toFixed(4)
8126
+ ) : 0
8127
+ }
8128
+ });
8129
+ }
7981
8130
  var isSecurityError = (error) => {
7982
8131
  const patterns = [
7983
8132
  "outside allowed directories",
@@ -12286,7 +12435,7 @@ async function createAndStoreApiKey(accessToken) {
12286
12435
  }
12287
12436
  saveGlobalConfig(config2);
12288
12437
  try {
12289
- const { resetAnthropicClient } = await import("./llm-UPZIAGPI.js");
12438
+ const { resetAnthropicClient } = await import("./llm-S4UIKFEI.js");
12290
12439
  resetAnthropicClient();
12291
12440
  } catch {
12292
12441
  }
@@ -16710,7 +16859,7 @@ async function refreshPluginRuntimeFromInstalls() {
16710
16859
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
16711
16860
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
16712
16861
  if (dirs.length === 0) return [];
16713
- const { configureSessionPlugins } = await import("./pluginRuntime-SROFDMKU.js");
16862
+ const { configureSessionPlugins } = await import("./pluginRuntime-HAYCLP4K.js");
16714
16863
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
16715
16864
  return errors;
16716
16865
  }
@@ -17385,7 +17534,7 @@ async function call(onDone, context) {
17385
17534
  ModelConfig,
17386
17535
  {
17387
17536
  onClose: () => {
17388
- import("./model-PLE3KNNX.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17537
+ import("./model-NJI57V4I.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17389
17538
  reloadModelManager2();
17390
17539
  triggerModelConfigChange();
17391
17540
  onDone();
@@ -27296,7 +27445,7 @@ async function analyzeOutputWithLsp(output, exitCode) {
27296
27445
  if (exitCode !== 0 || errorCount > 0 || warningCount > 0) {
27297
27446
  try {
27298
27447
  const { isAbsolute: isAbsolute11, resolve: resolve16 } = await import("path");
27299
- const { getSessionRoot: getSessionRoot2 } = await import("./state-FFCKZLBN.js");
27448
+ const { getSessionRoot: getSessionRoot2 } = await import("./state-34X5ECUL.js");
27300
27449
  const lines = output.split("\n");
27301
27450
  const uniqueFiles = /* @__PURE__ */ new Set();
27302
27451
  const lspSuggestions = [];
@@ -27666,7 +27815,7 @@ var DeleteTool = {
27666
27815
  }
27667
27816
  if (!force) {
27668
27817
  try {
27669
- const { LspFacade: LspFacade2 } = await import("./lsp-4BXZN54S.js");
27818
+ const { LspFacade: LspFacade2 } = await import("./lsp-NRIYSZQ4.js");
27670
27819
  const referenceDetail = await LspFacade2.checkFileReferences(fullPath);
27671
27820
  if (referenceDetail) {
27672
27821
  failedItems.push(
@@ -38068,7 +38217,7 @@ function useStatusLine() {
38068
38217
  // src/ui/components/PromptInput.tsx
38069
38218
  async function interpretHashCommand(input) {
38070
38219
  try {
38071
- const { queryQuick: queryQuick2 } = await import("./llm-UPZIAGPI.js");
38220
+ const { queryQuick: queryQuick2 } = await import("./llm-S4UIKFEI.js");
38072
38221
  const systemPrompt = [
38073
38222
  "You're helping the user structure notes that will be added to their PYB.md file.",
38074
38223
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -38381,7 +38530,7 @@ function PromptInput({
38381
38530
  if (messages2.length) {
38382
38531
  if (mode === "bash") {
38383
38532
  onQuery(messages2, newAbortController).then(async () => {
38384
- const { getCwd: getCwd2 } = await import("./state-FFCKZLBN.js");
38533
+ const { getCwd: getCwd2 } = await import("./state-34X5ECUL.js");
38385
38534
  setCurrentPwd(getCwd2());
38386
38535
  });
38387
38536
  } else {
@@ -40011,7 +40160,7 @@ import { homedir as homedir8 } from "os";
40011
40160
  // src/commands/agents/generation.ts
40012
40161
  import { randomUUID as randomUUID9 } from "crypto";
40013
40162
  async function generateAgentWithClaude(prompt) {
40014
- const { queryModel } = await import("./llm-UPZIAGPI.js");
40163
+ const { queryModel } = await import("./llm-S4UIKFEI.js");
40015
40164
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
40016
40165
 
40017
40166
  Return your response as a JSON object with exactly these fields: