pybao-cli 1.4.98 → 1.5.0

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 (152) hide show
  1. package/dist/REPL-XTWJQCGP.js +49 -0
  2. package/dist/{acp-OYNDAMUG.js → acp-SAL4EP5J.js} +30 -30
  3. package/dist/{agentsValidate-CSJFTPMF.js → agentsValidate-C6YKUGF7.js} +7 -7
  4. package/dist/{ask-RUL7DBVW.js → ask-HGYWJZS2.js} +29 -29
  5. package/dist/{autoUpdater-2US37QCD.js → autoUpdater-KPHKCCCG.js} +3 -3
  6. package/dist/{chunk-X3S6OAMU.js → chunk-2ASJ2ZXT.js} +2 -2
  7. package/dist/{chunk-EKCV6FAR.js → chunk-3AOEQNVF.js} +3 -3
  8. package/dist/{chunk-HIRKT55M.js → chunk-3GHP4ZYL.js} +3 -3
  9. package/dist/{chunk-VFEFTBAX.js → chunk-3LJHZG66.js} +2 -2
  10. package/dist/{chunk-FUO4GQ7W.js → chunk-3LNF2KW3.js} +1 -1
  11. package/dist/chunk-3LNF2KW3.js.map +7 -0
  12. package/dist/{chunk-57TUHQTK.js → chunk-4VJCTBGJ.js} +1 -1
  13. package/dist/{chunk-FTXV6D26.js → chunk-6SKPT5PO.js} +1 -1
  14. package/dist/{chunk-ZT2EDUJ5.js → chunk-7WOVOXMQ.js} +1 -1
  15. package/dist/{chunk-6CZGZTTR.js → chunk-C35G3PBK.js} +4 -4
  16. package/dist/{chunk-7HPC6NEL.js → chunk-FYBZ3YQE.js} +4 -4
  17. package/dist/{chunk-G2NDX3AE.js → chunk-GIADXQL5.js} +1 -1
  18. package/dist/{chunk-N6RZW54E.js → chunk-I6OHRNKP.js} +1 -1
  19. package/dist/{chunk-MSUD3TJP.js → chunk-IPFCYGNA.js} +3 -3
  20. package/dist/{chunk-JN7LIP22.js → chunk-JE5NAHTD.js} +2 -2
  21. package/dist/{chunk-KJLAOYAB.js → chunk-KCFPJKWW.js} +207 -94
  22. package/dist/chunk-KCFPJKWW.js.map +7 -0
  23. package/dist/{chunk-WS3OA4DJ.js → chunk-KGDEFE3J.js} +1 -1
  24. package/dist/{chunk-Y56ETINA.js → chunk-LFL6UX3A.js} +4 -4
  25. package/dist/{chunk-QCPTRT42.js → chunk-LOJMWCX3.js} +1 -1
  26. package/dist/{chunk-6CFLL7MP.js → chunk-NOBHSMZC.js} +3 -3
  27. package/dist/{chunk-NJY725BV.js → chunk-OLROXGX5.js} +3 -3
  28. package/dist/{chunk-AQDHWNHO.js → chunk-QHIPHNA3.js} +1 -1
  29. package/dist/{chunk-7YOXNCGC.js → chunk-RQD4IK2S.js} +8 -76
  30. package/dist/chunk-RQD4IK2S.js.map +7 -0
  31. package/dist/{chunk-5SASDPJI.js → chunk-SWAY3K6C.js} +17 -25
  32. package/dist/{chunk-5SASDPJI.js.map → chunk-SWAY3K6C.js.map} +2 -2
  33. package/dist/{chunk-736LB6QF.js → chunk-TIVWTFPO.js} +3 -3
  34. package/dist/{chunk-ELZOI2EN.js → chunk-VQDEUTRM.js} +1 -1
  35. package/dist/{chunk-5FPVUG76.js → chunk-WAHZEY6D.js} +1 -1
  36. package/dist/{chunk-6W4QXF5T.js → chunk-WKC5WKYW.js} +2 -2
  37. package/dist/{chunk-277MFG2S.js → chunk-XAAHVHOO.js} +2 -2
  38. package/dist/{chunk-XFAWFKEO.js → chunk-XDZGNZH4.js} +4 -4
  39. package/dist/{chunk-NFCKELD5.js → chunk-Y36VNIZL.js} +2 -2
  40. package/dist/{chunk-45KNYAUE.js → chunk-ZM3QKHBL.js} +3 -3
  41. package/dist/{cli-EW2FS2BF.js → cli-GHECZSHS.js} +89 -89
  42. package/dist/commands-GBM4GBRX.js +53 -0
  43. package/dist/{config-VMG22F4D.js → config-CTLYJJBD.js} +4 -4
  44. package/dist/{context-RCECS2MV.js → context-E2QU37Y5.js} +6 -6
  45. package/dist/{conversationTracker-EDZLP7O4.js → conversationTracker-U4OXNLGV.js} +3 -3
  46. package/dist/{customCommands-B6RXZMP5.js → customCommands-RQRKKSHO.js} +4 -4
  47. package/dist/{env-YTAL5KRK.js → env-L2BPT5X6.js} +2 -2
  48. package/dist/{file-OOCDMD3U.js → file-D2K7KAMP.js} +4 -4
  49. package/dist/index.js +3 -3
  50. package/dist/{llm-R5NWZO5G.js → llm-BNSWKO5H.js} +30 -30
  51. package/dist/{llmLazy-VWKTHJ4M.js → llmLazy-4Q7PQTA7.js} +1 -1
  52. package/dist/{loader-WWGN7JMY.js → loader-YFCZ4BDY.js} +4 -4
  53. package/dist/{lsp-YT4SHOXN.js → lsp-C22XTWJ2.js} +6 -6
  54. package/dist/{lspAnchor-B3LGI6VC.js → lspAnchor-Q5HVYXDG.js} +6 -6
  55. package/dist/{mcp-AIT7BP27.js → mcp-G6F3HTBX.js} +7 -7
  56. package/dist/{mentionProcessor-TTRH7MSS.js → mentionProcessor-QFOV4EID.js} +5 -5
  57. package/dist/{messages-V5YRA4WO.js → messages-MJADVQLI.js} +1 -1
  58. package/dist/{model-7QLTSWZV.js → model-EAGYR44H.js} +5 -5
  59. package/dist/{openai-O5UTQHNX.js → openai-QDVCKCWO.js} +5 -5
  60. package/dist/{outputStyles-CUYPATTD.js → outputStyles-6VDI5PML.js} +4 -4
  61. package/dist/{pluginRuntime-Z3VUXLLL.js → pluginRuntime-LDS7EVLY.js} +6 -6
  62. package/dist/{pluginValidation-OIFMXGZW.js → pluginValidation-QLMPU2AY.js} +6 -6
  63. package/dist/prompts-S5K332CK.js +55 -0
  64. package/dist/{pybAgentSessionLoad-YE3R7GCM.js → pybAgentSessionLoad-VIRMSYB6.js} +4 -4
  65. package/dist/{pybAgentSessionResume-H3X4E5WZ.js → pybAgentSessionResume-N5ZNISL4.js} +4 -4
  66. package/dist/{pybAgentStreamJsonSession-LBTQ5QVA.js → pybAgentStreamJsonSession-PC7IBPVT.js} +1 -1
  67. package/dist/{pybHooks-ICFUKF5J.js → pybHooks-77BWG6PM.js} +4 -4
  68. package/dist/query-3C42H2KQ.js +57 -0
  69. package/dist/{registry-U5KXMAQT.js → registry-4R56WZ2F.js} +5 -5
  70. package/dist/{ripgrep-WWOPEBCI.js → ripgrep-JB5BUTEY.js} +3 -3
  71. package/dist/{skillMarketplace-P7BGMBU7.js → skillMarketplace-CLZ4AWZB.js} +3 -3
  72. package/dist/{state-BNEI4WAC.js → state-GHWTTEKJ.js} +2 -2
  73. package/dist/{theme-4JWO3G3X.js → theme-JO4GZK2B.js} +5 -5
  74. package/dist/{toolPermissionSettings-LQLARZGN.js → toolPermissionSettings-4PNGLWZU.js} +6 -6
  75. package/dist/tools-VIPBGGMM.js +54 -0
  76. package/dist/{userInput-GMSZGZQS.js → userInput-FOKPASU4.js} +31 -31
  77. package/package.json +1 -1
  78. package/dist/REPL-HSLBK5NZ.js +0 -49
  79. package/dist/chunk-7YOXNCGC.js.map +0 -7
  80. package/dist/chunk-FUO4GQ7W.js.map +0 -7
  81. package/dist/chunk-KJLAOYAB.js.map +0 -7
  82. package/dist/commands-ED3B27YA.js +0 -53
  83. package/dist/prompts-VSYX4Z3H.js +0 -55
  84. package/dist/query-3MCWSQFG.js +0 -57
  85. package/dist/tools-6AAIJTHG.js +0 -54
  86. /package/dist/{REPL-HSLBK5NZ.js.map → REPL-XTWJQCGP.js.map} +0 -0
  87. /package/dist/{acp-OYNDAMUG.js.map → acp-SAL4EP5J.js.map} +0 -0
  88. /package/dist/{agentsValidate-CSJFTPMF.js.map → agentsValidate-C6YKUGF7.js.map} +0 -0
  89. /package/dist/{ask-RUL7DBVW.js.map → ask-HGYWJZS2.js.map} +0 -0
  90. /package/dist/{autoUpdater-2US37QCD.js.map → autoUpdater-KPHKCCCG.js.map} +0 -0
  91. /package/dist/{chunk-X3S6OAMU.js.map → chunk-2ASJ2ZXT.js.map} +0 -0
  92. /package/dist/{chunk-EKCV6FAR.js.map → chunk-3AOEQNVF.js.map} +0 -0
  93. /package/dist/{chunk-HIRKT55M.js.map → chunk-3GHP4ZYL.js.map} +0 -0
  94. /package/dist/{chunk-VFEFTBAX.js.map → chunk-3LJHZG66.js.map} +0 -0
  95. /package/dist/{chunk-57TUHQTK.js.map → chunk-4VJCTBGJ.js.map} +0 -0
  96. /package/dist/{chunk-FTXV6D26.js.map → chunk-6SKPT5PO.js.map} +0 -0
  97. /package/dist/{chunk-ZT2EDUJ5.js.map → chunk-7WOVOXMQ.js.map} +0 -0
  98. /package/dist/{chunk-6CZGZTTR.js.map → chunk-C35G3PBK.js.map} +0 -0
  99. /package/dist/{chunk-7HPC6NEL.js.map → chunk-FYBZ3YQE.js.map} +0 -0
  100. /package/dist/{chunk-G2NDX3AE.js.map → chunk-GIADXQL5.js.map} +0 -0
  101. /package/dist/{chunk-N6RZW54E.js.map → chunk-I6OHRNKP.js.map} +0 -0
  102. /package/dist/{chunk-MSUD3TJP.js.map → chunk-IPFCYGNA.js.map} +0 -0
  103. /package/dist/{chunk-JN7LIP22.js.map → chunk-JE5NAHTD.js.map} +0 -0
  104. /package/dist/{chunk-WS3OA4DJ.js.map → chunk-KGDEFE3J.js.map} +0 -0
  105. /package/dist/{chunk-Y56ETINA.js.map → chunk-LFL6UX3A.js.map} +0 -0
  106. /package/dist/{chunk-QCPTRT42.js.map → chunk-LOJMWCX3.js.map} +0 -0
  107. /package/dist/{chunk-6CFLL7MP.js.map → chunk-NOBHSMZC.js.map} +0 -0
  108. /package/dist/{chunk-NJY725BV.js.map → chunk-OLROXGX5.js.map} +0 -0
  109. /package/dist/{chunk-AQDHWNHO.js.map → chunk-QHIPHNA3.js.map} +0 -0
  110. /package/dist/{chunk-736LB6QF.js.map → chunk-TIVWTFPO.js.map} +0 -0
  111. /package/dist/{chunk-ELZOI2EN.js.map → chunk-VQDEUTRM.js.map} +0 -0
  112. /package/dist/{chunk-5FPVUG76.js.map → chunk-WAHZEY6D.js.map} +0 -0
  113. /package/dist/{chunk-6W4QXF5T.js.map → chunk-WKC5WKYW.js.map} +0 -0
  114. /package/dist/{chunk-277MFG2S.js.map → chunk-XAAHVHOO.js.map} +0 -0
  115. /package/dist/{chunk-XFAWFKEO.js.map → chunk-XDZGNZH4.js.map} +0 -0
  116. /package/dist/{chunk-NFCKELD5.js.map → chunk-Y36VNIZL.js.map} +0 -0
  117. /package/dist/{chunk-45KNYAUE.js.map → chunk-ZM3QKHBL.js.map} +0 -0
  118. /package/dist/{cli-EW2FS2BF.js.map → cli-GHECZSHS.js.map} +0 -0
  119. /package/dist/{commands-ED3B27YA.js.map → commands-GBM4GBRX.js.map} +0 -0
  120. /package/dist/{config-VMG22F4D.js.map → config-CTLYJJBD.js.map} +0 -0
  121. /package/dist/{context-RCECS2MV.js.map → context-E2QU37Y5.js.map} +0 -0
  122. /package/dist/{conversationTracker-EDZLP7O4.js.map → conversationTracker-U4OXNLGV.js.map} +0 -0
  123. /package/dist/{customCommands-B6RXZMP5.js.map → customCommands-RQRKKSHO.js.map} +0 -0
  124. /package/dist/{env-YTAL5KRK.js.map → env-L2BPT5X6.js.map} +0 -0
  125. /package/dist/{file-OOCDMD3U.js.map → file-D2K7KAMP.js.map} +0 -0
  126. /package/dist/{llm-R5NWZO5G.js.map → llm-BNSWKO5H.js.map} +0 -0
  127. /package/dist/{llmLazy-VWKTHJ4M.js.map → llmLazy-4Q7PQTA7.js.map} +0 -0
  128. /package/dist/{loader-WWGN7JMY.js.map → loader-YFCZ4BDY.js.map} +0 -0
  129. /package/dist/{lsp-YT4SHOXN.js.map → lsp-C22XTWJ2.js.map} +0 -0
  130. /package/dist/{lspAnchor-B3LGI6VC.js.map → lspAnchor-Q5HVYXDG.js.map} +0 -0
  131. /package/dist/{mcp-AIT7BP27.js.map → mcp-G6F3HTBX.js.map} +0 -0
  132. /package/dist/{mentionProcessor-TTRH7MSS.js.map → mentionProcessor-QFOV4EID.js.map} +0 -0
  133. /package/dist/{messages-V5YRA4WO.js.map → messages-MJADVQLI.js.map} +0 -0
  134. /package/dist/{model-7QLTSWZV.js.map → model-EAGYR44H.js.map} +0 -0
  135. /package/dist/{openai-O5UTQHNX.js.map → openai-QDVCKCWO.js.map} +0 -0
  136. /package/dist/{outputStyles-CUYPATTD.js.map → outputStyles-6VDI5PML.js.map} +0 -0
  137. /package/dist/{pluginRuntime-Z3VUXLLL.js.map → pluginRuntime-LDS7EVLY.js.map} +0 -0
  138. /package/dist/{pluginValidation-OIFMXGZW.js.map → pluginValidation-QLMPU2AY.js.map} +0 -0
  139. /package/dist/{prompts-VSYX4Z3H.js.map → prompts-S5K332CK.js.map} +0 -0
  140. /package/dist/{pybAgentSessionLoad-YE3R7GCM.js.map → pybAgentSessionLoad-VIRMSYB6.js.map} +0 -0
  141. /package/dist/{pybAgentSessionResume-H3X4E5WZ.js.map → pybAgentSessionResume-N5ZNISL4.js.map} +0 -0
  142. /package/dist/{pybAgentStreamJsonSession-LBTQ5QVA.js.map → pybAgentStreamJsonSession-PC7IBPVT.js.map} +0 -0
  143. /package/dist/{pybHooks-ICFUKF5J.js.map → pybHooks-77BWG6PM.js.map} +0 -0
  144. /package/dist/{query-3MCWSQFG.js.map → query-3C42H2KQ.js.map} +0 -0
  145. /package/dist/{registry-U5KXMAQT.js.map → registry-4R56WZ2F.js.map} +0 -0
  146. /package/dist/{ripgrep-WWOPEBCI.js.map → ripgrep-JB5BUTEY.js.map} +0 -0
  147. /package/dist/{skillMarketplace-P7BGMBU7.js.map → skillMarketplace-CLZ4AWZB.js.map} +0 -0
  148. /package/dist/{state-BNEI4WAC.js.map → state-GHWTTEKJ.js.map} +0 -0
  149. /package/dist/{theme-4JWO3G3X.js.map → theme-JO4GZK2B.js.map} +0 -0
  150. /package/dist/{toolPermissionSettings-LQLARZGN.js.map → toolPermissionSettings-4PNGLWZU.js.map} +0 -0
  151. /package/dist/{tools-6AAIJTHG.js.map → tools-VIPBGGMM.js.map} +0 -0
  152. /package/dist/{userInput-GMSZGZQS.js.map → userInput-FOKPASU4.js.map} +0 -0
@@ -2,11 +2,11 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  listPybAgentSessions
5
- } from "./chunk-QCPTRT42.js";
5
+ } from "./chunk-LOJMWCX3.js";
6
6
  import {
7
7
  formatValidationResult,
8
8
  validatePluginOrMarketplacePath
9
- } from "./chunk-EKCV6FAR.js";
9
+ } from "./chunk-3AOEQNVF.js";
10
10
  import {
11
11
  ConversationTracker,
12
12
  appendFinishState,
@@ -14,18 +14,18 @@ import {
14
14
  getConversationTrackerForContext,
15
15
  isFinishComplete,
16
16
  mapFinishReason
17
- } from "./chunk-WS3OA4DJ.js";
17
+ } from "./chunk-KGDEFE3J.js";
18
18
  import {
19
19
  beginReplSessionScope
20
20
  } from "./chunk-F4AXICO7.js";
21
21
  import {
22
22
  loadPybAgentSessionMessages
23
- } from "./chunk-N6RZW54E.js";
23
+ } from "./chunk-I6OHRNKP.js";
24
24
  import {
25
25
  appendSessionCustomTitleRecord,
26
26
  appendSessionJsonlFromMessage,
27
27
  appendSessionTagRecord
28
- } from "./chunk-NFCKELD5.js";
28
+ } from "./chunk-Y36VNIZL.js";
29
29
  import {
30
30
  drainHookSystemPromptAdditions,
31
31
  getHookTranscriptPath,
@@ -37,7 +37,7 @@ import {
37
37
  runStopHooks,
38
38
  runUserPromptSubmitHooks,
39
39
  updateHookTranscriptForMessages
40
- } from "./chunk-45KNYAUE.js";
40
+ } from "./chunk-ZM3QKHBL.js";
41
41
  import {
42
42
  DEFAULT_OUTPUT_STYLE,
43
43
  getAvailableOutputStyles,
@@ -46,11 +46,11 @@ import {
46
46
  getOutputStyleSystemPromptAdditions,
47
47
  resolveOutputStyleName,
48
48
  setCurrentOutputStyle
49
- } from "./chunk-277MFG2S.js";
49
+ } from "./chunk-XAAHVHOO.js";
50
50
  import {
51
51
  fetchCustomModels,
52
52
  getModelFeatures
53
- } from "./chunk-X3S6OAMU.js";
53
+ } from "./chunk-2ASJ2ZXT.js";
54
54
  import {
55
55
  getSessionState
56
56
  } from "./chunk-XKYHFZEC.js";
@@ -58,7 +58,7 @@ import {
58
58
  queryLLM,
59
59
  queryQuick,
60
60
  verifyApiKey
61
- } from "./chunk-XFAWFKEO.js";
61
+ } from "./chunk-XDZGNZH4.js";
62
62
  import {
63
63
  DEFAULT_TIMEOUT_MS,
64
64
  FallbackToolUseRejectedMessage,
@@ -72,7 +72,7 @@ import {
72
72
  listMCPServers,
73
73
  loadMergedSettings,
74
74
  normalizeSandboxRuntimeConfigFromSettings
75
- } from "./chunk-7HPC6NEL.js";
75
+ } from "./chunk-FYBZ3YQE.js";
76
76
  import {
77
77
  addMarketplace,
78
78
  disableSkillPlugin,
@@ -85,11 +85,11 @@ import {
85
85
  refreshMarketplaceAsync,
86
86
  removeMarketplace,
87
87
  uninstallSkillPlugin
88
- } from "./chunk-AQDHWNHO.js";
88
+ } from "./chunk-QHIPHNA3.js";
89
89
  import {
90
90
  loadToolPermissionContextFromDisk,
91
91
  persistToolPermissionUpdateToDisk
92
- } from "./chunk-6CFLL7MP.js";
92
+ } from "./chunk-NOBHSMZC.js";
93
93
  import {
94
94
  applyToolPermissionContextUpdate,
95
95
  applyToolPermissionContextUpdates,
@@ -100,13 +100,13 @@ import {
100
100
  generateSystemReminders,
101
101
  resetReminderSession,
102
102
  systemReminderService
103
- } from "./chunk-7YOXNCGC.js";
103
+ } from "./chunk-RQD4IK2S.js";
104
104
  import {
105
105
  clearAgentCache,
106
106
  getActiveAgents,
107
107
  getAgentByType,
108
108
  getAllAgents
109
- } from "./chunk-6W4QXF5T.js";
109
+ } from "./chunk-WKC5WKYW.js";
110
110
  import {
111
111
  API_ERROR_MESSAGE_PREFIX,
112
112
  CANCEL_MESSAGE,
@@ -137,7 +137,7 @@ import {
137
137
  processUserInput,
138
138
  reorderMessages,
139
139
  stripSystemMessages
140
- } from "./chunk-5FPVUG76.js";
140
+ } from "./chunk-WAHZEY6D.js";
141
141
  import {
142
142
  getRequestStatus,
143
143
  setRequestStatus,
@@ -167,7 +167,7 @@ import {
167
167
  normalizeFilePath,
168
168
  readTextContent,
169
169
  writeTextContent
170
- } from "./chunk-VFEFTBAX.js";
170
+ } from "./chunk-3LJHZG66.js";
171
171
  import {
172
172
  parseBlockEdits
173
173
  } from "./chunk-QWIBSCDN.js";
@@ -177,18 +177,18 @@ import {
177
177
  ParserRegistry,
178
178
  initParser,
179
179
  loadLanguage
180
- } from "./chunk-Y56ETINA.js";
180
+ } from "./chunk-LFL6UX3A.js";
181
181
  import {
182
182
  getSettingsFileCandidates,
183
183
  loadSettingsWithLegacyFallback,
184
184
  readSettingsFile
185
- } from "./chunk-FTXV6D26.js";
185
+ } from "./chunk-6SKPT5PO.js";
186
186
  import {
187
187
  getCustomCommandDirectories,
188
188
  hasCustomCommands,
189
189
  loadCustomCommands,
190
190
  reloadCustomCommands
191
- } from "./chunk-JN7LIP22.js";
191
+ } from "./chunk-JE5NAHTD.js";
192
192
  import {
193
193
  getSessionPlugins
194
194
  } from "./chunk-BJSWTHRM.js";
@@ -197,7 +197,7 @@ import {
197
197
  buildModelProfileKey,
198
198
  getModelManager,
199
199
  isDefaultSlowAndCapableModel
200
- } from "./chunk-MSUD3TJP.js";
200
+ } from "./chunk-IPFCYGNA.js";
201
201
  import {
202
202
  getCodeStyle,
203
203
  getContext,
@@ -205,16 +205,16 @@ import {
205
205
  getIsGit,
206
206
  getProjectDocs,
207
207
  getProjectStructureStatisticsBlock
208
- } from "./chunk-6CZGZTTR.js";
208
+ } from "./chunk-C35G3PBK.js";
209
209
  import {
210
210
  getRipgrepPath,
211
211
  getRipgrepPolicyMode,
212
212
  resolveRipgrepPolicy,
213
213
  ripGrep
214
- } from "./chunk-ZT2EDUJ5.js";
214
+ } from "./chunk-7WOVOXMQ.js";
215
215
  import {
216
216
  getTheme
217
- } from "./chunk-ELZOI2EN.js";
217
+ } from "./chunk-VQDEUTRM.js";
218
218
  import {
219
219
  DEFAULT_GLOBAL_CONFIG,
220
220
  enableConfigs,
@@ -227,7 +227,7 @@ import {
227
227
  saveGlobalConfig,
228
228
  setAllPointersToModel,
229
229
  setModelPointer
230
- } from "./chunk-736LB6QF.js";
230
+ } from "./chunk-TIVWTFPO.js";
231
231
  import {
232
232
  AbortError
233
233
  } from "./chunk-RQVLBMP7.js";
@@ -236,7 +236,7 @@ import {
236
236
  getCurrentRequest,
237
237
  logUserFriendly,
238
238
  markPhase
239
- } from "./chunk-G2NDX3AE.js";
239
+ } from "./chunk-GIADXQL5.js";
240
240
  import {
241
241
  ASCII_LOGO,
242
242
  BunShell,
@@ -277,10 +277,10 @@ import {
277
277
  setCwd,
278
278
  shouldApplyToolOutputTruncation,
279
279
  truncateToolOutput
280
- } from "./chunk-57TUHQTK.js";
280
+ } from "./chunk-4VJCTBGJ.js";
281
281
  import {
282
282
  MACRO
283
- } from "./chunk-FUO4GQ7W.js";
283
+ } from "./chunk-3LNF2KW3.js";
284
284
  import {
285
285
  __export
286
286
  } from "./chunk-I3J4JYES.js";
@@ -461,7 +461,7 @@ var getCommandSubcommandPrefix = memoize(
461
461
  var getCommandPrefix = memoize(
462
462
  async (command4, abortSignal) => {
463
463
  const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
464
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-R5NWZO5G.js");
464
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-BNSWKO5H.js");
465
465
  const response = await queryQuick2({
466
466
  systemPrompt,
467
467
  userPrompt,
@@ -4263,7 +4263,7 @@ function formatParseError(error) {
4263
4263
  return error instanceof Error ? error.message : String(error);
4264
4264
  }
4265
4265
  async function defaultGateQuery(args) {
4266
- const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-R5NWZO5G.js");
4266
+ const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-BNSWKO5H.js");
4267
4267
  const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
4268
4268
  const messages = [
4269
4269
  {
@@ -5946,13 +5946,6 @@ var FileFreshnessService = class {
5946
5946
  const conflict = !isFresh;
5947
5947
  if (conflict) {
5948
5948
  this.state.editConflicts.add(filePath);
5949
- emitReminderEvent("file:conflict", {
5950
- filePath,
5951
- lastRead: recorded.lastRead,
5952
- lastModified: recorded.lastModified,
5953
- currentModified: currentStats.mtimeMs,
5954
- sizeDiff: currentStats.size - recorded.size
5955
- });
5956
5949
  }
5957
5950
  return {
5958
5951
  isFresh,
@@ -6006,34 +5999,6 @@ var FileFreshnessService = class {
6006
5999
  });
6007
6000
  }
6008
6001
  }
6009
- generateFileModificationReminder(filePath) {
6010
- const recorded = this.state.readTimestamps.get(filePath);
6011
- if (!recorded) {
6012
- return null;
6013
- }
6014
- try {
6015
- if (!existsSync3(filePath)) {
6016
- return `Note: ${filePath} was deleted since last read.`;
6017
- }
6018
- const currentStats = statSync2(filePath);
6019
- const isModified = currentStats.mtimeMs > recorded.lastModified;
6020
- if (!isModified) {
6021
- return null;
6022
- }
6023
- const TIME_TOLERANCE_MS = 100;
6024
- if (recorded.lastAgentEdit && recorded.lastAgentEdit >= recorded.lastModified - TIME_TOLERANCE_MS) {
6025
- return null;
6026
- }
6027
- return `Note: ${filePath} was modified externally since last read. The file may have changed outside of this session.`;
6028
- } catch (error) {
6029
- logError(error);
6030
- debug.warn("FILE_FRESHNESS_CHECK_MODIFICATION_FAILED", {
6031
- filePath,
6032
- error: error instanceof Error ? error.message : String(error)
6033
- });
6034
- return null;
6035
- }
6036
- }
6037
6002
  getConflictedFiles() {
6038
6003
  return Array.from(this.state.editConflicts);
6039
6004
  }
@@ -6067,7 +6032,6 @@ var FileFreshnessService = class {
6067
6032
  var fileFreshnessService = new FileFreshnessService();
6068
6033
  var recordFileRead = (filePath) => fileFreshnessService.recordFileRead(filePath);
6069
6034
  var recordFileEdit = (filePath, content) => fileFreshnessService.recordFileEdit(filePath, content);
6070
- var generateFileModificationReminder = (filePath) => fileFreshnessService.generateFileModificationReminder(filePath);
6071
6035
  var resetFileFreshnessSession = () => fileFreshnessService.resetSession();
6072
6036
 
6073
6037
  // src/tools/filesystem/NotebookEditTool/NotebookEditTool.tsx
@@ -6660,7 +6624,7 @@ var FileEditTool = {
6660
6624
  const originalFileContent = currentFileContent;
6661
6625
  let totalPatch = [];
6662
6626
  const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
6663
- const { findLspAnchor } = await import("./lspAnchor-B3LGI6VC.js");
6627
+ const { findLspAnchor } = await import("./lspAnchor-Q5HVYXDG.js");
6664
6628
  for (const op of editOperations) {
6665
6629
  const normalizedSearch = normalizeLineEndings(op.search);
6666
6630
  const normalizedReplace = normalizeLineEndings(op.replace);
@@ -7691,14 +7655,6 @@ var FileReadTool = {
7691
7655
  timestamp: Date.now()
7692
7656
  });
7693
7657
  readFileTimestamps[fullFilePath] = statSync7(fullFilePath).mtimeMs;
7694
- const modificationReminder = generateFileModificationReminder(fullFilePath);
7695
- if (modificationReminder) {
7696
- emitReminderEvent("file:modified", {
7697
- filePath: fullFilePath,
7698
- reminder: modificationReminder,
7699
- timestamp: Date.now()
7700
- });
7701
- }
7702
7658
  if (IMAGE_EXTENSIONS.has(ext)) {
7703
7659
  const data2 = await readImage(fullFilePath, ext);
7704
7660
  yield {
@@ -11942,7 +11898,7 @@ async function createAndStoreApiKey(accessToken) {
11942
11898
  }
11943
11899
  saveGlobalConfig(config2);
11944
11900
  try {
11945
- const { resetAnthropicClient } = await import("./llm-R5NWZO5G.js");
11901
+ const { resetAnthropicClient } = await import("./llm-BNSWKO5H.js");
11946
11902
  resetAnthropicClient();
11947
11903
  } catch {
11948
11904
  }
@@ -16366,7 +16322,7 @@ async function refreshPluginRuntimeFromInstalls() {
16366
16322
  const existingRoots = getSessionPlugins().map((p) => p.rootDir);
16367
16323
  const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
16368
16324
  if (dirs.length === 0) return [];
16369
- const { configureSessionPlugins } = await import("./pluginRuntime-Z3VUXLLL.js");
16325
+ const { configureSessionPlugins } = await import("./pluginRuntime-LDS7EVLY.js");
16370
16326
  const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
16371
16327
  return errors;
16372
16328
  }
@@ -17041,7 +16997,7 @@ async function call(onDone, context) {
17041
16997
  ModelConfig,
17042
16998
  {
17043
16999
  onClose: () => {
17044
- import("./model-7QLTSWZV.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17000
+ import("./model-EAGYR44H.js").then(({ reloadModelManager: reloadModelManager2 }) => {
17045
17001
  reloadModelManager2();
17046
17002
  triggerModelConfigChange();
17047
17003
  onDone();
@@ -25245,7 +25201,7 @@ function useStatusLine() {
25245
25201
  // src/ui/components/PromptInput.tsx
25246
25202
  async function interpretHashCommand(input) {
25247
25203
  try {
25248
- const { queryQuick: queryQuick2 } = await import("./llm-R5NWZO5G.js");
25204
+ const { queryQuick: queryQuick2 } = await import("./llm-BNSWKO5H.js");
25249
25205
  const systemPrompt = [
25250
25206
  "You're helping the user structure notes that will be added to their PYB.md file.",
25251
25207
  "Format the user's input into a well-structured note that will be useful for later reference.",
@@ -25558,7 +25514,7 @@ function PromptInput({
25558
25514
  if (messages2.length) {
25559
25515
  if (mode === "bash") {
25560
25516
  onQuery(messages2, newAbortController).then(async () => {
25561
- const { getCwd: getCwd2 } = await import("./state-BNEI4WAC.js");
25517
+ const { getCwd: getCwd2 } = await import("./state-GHWTTEKJ.js");
25562
25518
  setCurrentPwd(getCwd2());
25563
25519
  });
25564
25520
  } else {
@@ -26430,7 +26386,26 @@ function isGPT5Model(modelName) {
26430
26386
  }
26431
26387
  function formatSystemPromptWithContext(systemPrompt, context, agentId, skipContextReminders = false, options) {
26432
26388
  const enhancedPrompt = [...systemPrompt];
26433
- let reminders = "";
26389
+ let userReminders = "";
26390
+ let systemReminders = "";
26391
+ let userReminderMessages = [];
26392
+ let systemReminderMessages = [];
26393
+ const mentionTypes = /* @__PURE__ */ new Set(["agent_mention", "file_mention", "ask_model_mention"]);
26394
+ const splitReminderChannels = (items) => {
26395
+ const user = [];
26396
+ const system = [];
26397
+ for (const item of items) {
26398
+ if (!item?.type) {
26399
+ throw new Error("REMINDER_CHANNEL_CLASSIFICATION_FAILED");
26400
+ }
26401
+ if (mentionTypes.has(item.type)) {
26402
+ user.push(item);
26403
+ } else {
26404
+ system.push(item);
26405
+ }
26406
+ }
26407
+ return { user, system };
26408
+ };
26434
26409
  const modelManager = getModelManager();
26435
26410
  const modelProfile = modelManager.getModel("main");
26436
26411
  if (modelProfile && isGPT5Model(modelProfile.modelName)) {
@@ -26458,7 +26433,15 @@ function formatSystemPromptWithContext(systemPrompt, context, agentId, skipConte
26458
26433
  }
26459
26434
  const reminderMessages = generateSystemReminders(hasContext, agentId);
26460
26435
  if (reminderMessages.length > 0) {
26461
- reminders = reminderMessages.map((r) => r.content).join("\n") + "\n";
26436
+ const channels = splitReminderChannels(reminderMessages);
26437
+ userReminderMessages = channels.user;
26438
+ systemReminderMessages = channels.system;
26439
+ if (channels.user.length > 0) {
26440
+ userReminders = channels.user.map((r) => r.content).join("\n") + "\n";
26441
+ }
26442
+ if (channels.system.length > 0) {
26443
+ systemReminders = channels.system.map((r) => r.content).join("\n") + "\n";
26444
+ }
26462
26445
  }
26463
26446
  enhancedPrompt.push(
26464
26447
  `
@@ -26503,7 +26486,81 @@ As you answer the user's questions, you can use the following context:
26503
26486
  enhancedPrompt.push("\n---\n");
26504
26487
  }
26505
26488
  }
26506
- return { systemPrompt: enhancedPrompt, reminders };
26489
+ return {
26490
+ systemPrompt: enhancedPrompt,
26491
+ userReminders,
26492
+ systemReminders,
26493
+ userReminderMessages,
26494
+ systemReminderMessages
26495
+ };
26496
+ }
26497
+
26498
+ // src/services/system/reminderChannelMetrics.ts
26499
+ function isMentionReminder(reminder) {
26500
+ return reminder.type === "agent_mention" || reminder.type === "file_mention" || reminder.type === "ask_model_mention";
26501
+ }
26502
+ function extractReminderTypes(reminderMessages) {
26503
+ const types = /* @__PURE__ */ new Set();
26504
+ for (const reminder of reminderMessages) {
26505
+ if (isMentionReminder(reminder)) {
26506
+ types.add("mention");
26507
+ continue;
26508
+ }
26509
+ types.add(reminder.type);
26510
+ }
26511
+ return Array.from(types);
26512
+ }
26513
+ function buildReminderChannelMetrics(userReminderMessages, systemReminderMessages) {
26514
+ const mentionInUser = userReminderMessages.filter(isMentionReminder).length;
26515
+ const mentionInSystem = systemReminderMessages.filter(isMentionReminder).length;
26516
+ const mentionTotal = mentionInUser + mentionInSystem;
26517
+ const nonMentionInUser = userReminderMessages.length - mentionInUser;
26518
+ return {
26519
+ mention_in_user_ratio: mentionTotal === 0 ? 1 : mentionInUser / mentionTotal,
26520
+ non_mention_in_user_count: nonMentionInUser,
26521
+ user_channel_reminder_count: userReminderMessages.length,
26522
+ system_channel_reminder_count: systemReminderMessages.length
26523
+ };
26524
+ }
26525
+ function evaluateReminderChannelClosure(rounds, requiredRounds = 3) {
26526
+ const recentRounds = rounds.slice(-requiredRounds);
26527
+ const failedRoundIndexes = [];
26528
+ recentRounds.forEach((round, index) => {
26529
+ if (round.non_mention_in_user_count !== 0 || Math.abs(round.mention_in_user_ratio - 1) > 1e-9) {
26530
+ failedRoundIndexes.push(index);
26531
+ }
26532
+ });
26533
+ return {
26534
+ passed: recentRounds.length === requiredRounds && failedRoundIndexes.length === 0,
26535
+ roundCount: recentRounds.length,
26536
+ failedRoundIndexes
26537
+ };
26538
+ }
26539
+
26540
+ // src/services/system/reminderFlags.ts
26541
+ function toBool2(value) {
26542
+ if (value == null) return void 0;
26543
+ const normalized = String(value).trim().toLowerCase();
26544
+ if (["1", "true", "yes", "on"].includes(normalized)) return true;
26545
+ if (["0", "false", "no", "off"].includes(normalized)) return false;
26546
+ return void 0;
26547
+ }
26548
+ function resolveReminderChannelFlags(env2 = process.env) {
26549
+ const reminderEnabled = toBool2(env2.PYB_REMINDER_ENABLED) ?? true;
26550
+ if (!reminderEnabled) {
26551
+ return {
26552
+ reminderEnabled: false,
26553
+ userChannelEnabled: false,
26554
+ systemChannelEnabled: false
26555
+ };
26556
+ }
26557
+ const userChannelEnabled = toBool2(env2.PYB_REMINDER_USER_CHANNEL_ENABLED) ?? true;
26558
+ const systemChannelEnabled = toBool2(env2.PYB_REMINDER_SYSTEM_CHANNEL_ENABLED) ?? true;
26559
+ return {
26560
+ reminderEnabled,
26561
+ userChannelEnabled,
26562
+ systemChannelEnabled
26563
+ };
26507
26564
  }
26508
26565
 
26509
26566
  // src/services/system/taskWatcher.ts
@@ -28088,6 +28145,7 @@ function isToolUseLikeBlock(block) {
28088
28145
  return block && typeof block === "object" && (block.type === "tool_use" || block.type === "server_tool_use" || block.type === "mcp_tool_use");
28089
28146
  }
28090
28147
  var __isToolUseLikeBlockForTests = isToolUseLikeBlock;
28148
+ var reminderChannelRounds = [];
28091
28149
  function createSyntheticToolUseErrorMessage(args) {
28092
28150
  const { toolUseId, reason, rootToolUseId } = args;
28093
28151
  if (reason === "user_interrupted") {
@@ -28473,13 +28531,29 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
28473
28531
  }
28474
28532
  markPhase("SYSTEM_PROMPT_BUILD");
28475
28533
  hydratePlanSlugFromMessages(messages, toolUseContext);
28476
- const { systemPrompt: fullSystemPrompt, reminders } = formatSystemPromptWithContext(
28534
+ const {
28535
+ systemPrompt: fullSystemPrompt,
28536
+ userReminders,
28537
+ systemReminders,
28538
+ userReminderMessages,
28539
+ systemReminderMessages
28540
+ } = formatSystemPromptWithContext(
28477
28541
  systemPrompt,
28478
28542
  context,
28479
28543
  toolUseContext.agentId,
28480
28544
  false,
28481
28545
  { conversationTracker: tracker, agentType: toolUseContext.agentType }
28482
28546
  );
28547
+ const flags = resolveReminderChannelFlags();
28548
+ const effectiveUserReminderMessages = flags.reminderEnabled && flags.userChannelEnabled ? userReminderMessages : [];
28549
+ const effectiveSystemReminderMessages = flags.reminderEnabled && flags.systemChannelEnabled ? systemReminderMessages : [];
28550
+ const effectiveUserReminders = flags.reminderEnabled && flags.userChannelEnabled ? userReminders : "";
28551
+ const effectiveSystemReminders = flags.reminderEnabled && flags.systemChannelEnabled ? systemReminders : "";
28552
+ if (effectiveSystemReminders) {
28553
+ fullSystemPrompt.push("\n---\n# System Reminders\n");
28554
+ fullSystemPrompt.push(effectiveSystemReminders);
28555
+ fullSystemPrompt.push("\n---\n");
28556
+ }
28483
28557
  const planModeAdditions = getPlanModeSystemPromptAdditions(
28484
28558
  messages,
28485
28559
  toolUseContext
@@ -28505,15 +28579,50 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
28505
28579
  requestId: currentRequest?.id,
28506
28580
  config: conversationTrackingConfig
28507
28581
  });
28508
- emitReminderEvent("session:startup", {
28509
- agentId: toolUseContext.agentId,
28510
- messages: messages.length,
28511
- timestamp: Date.now()
28512
- });
28582
+ if (!hookState?.startupEmitted) {
28583
+ emitReminderEvent("session:startup", {
28584
+ agentId: toolUseContext.agentId,
28585
+ messages: messages.length,
28586
+ timestamp: Date.now()
28587
+ });
28588
+ }
28513
28589
  if (!toolUseContext.agentId || toolUseContext.agentId === "main") {
28514
28590
  startWatchingTaskList();
28515
28591
  }
28516
- if (reminders && messages.length > 0) {
28592
+ const reminderMessages = [
28593
+ ...effectiveUserReminderMessages,
28594
+ ...effectiveSystemReminderMessages
28595
+ ];
28596
+ const rawReminderCount = userReminderMessages.length + systemReminderMessages.length;
28597
+ if (reminderMessages.length > 0) {
28598
+ const metrics = buildReminderChannelMetrics(
28599
+ effectiveUserReminderMessages,
28600
+ effectiveSystemReminderMessages
28601
+ );
28602
+ reminderChannelRounds.push(metrics);
28603
+ if (reminderChannelRounds.length > 20) {
28604
+ reminderChannelRounds.shift();
28605
+ }
28606
+ const closure = evaluateReminderChannelClosure(reminderChannelRounds, 3);
28607
+ logUserFriendly("REMINDER_INJECTION_SUMMARY", {
28608
+ queryId: activeQueryId,
28609
+ reminderTypes: extractReminderTypes(reminderMessages),
28610
+ userReminderCount: effectiveUserReminderMessages.length,
28611
+ systemReminderCount: effectiveSystemReminderMessages.length,
28612
+ rawReminderCount,
28613
+ user_channel_reminder_count: metrics.user_channel_reminder_count,
28614
+ system_channel_reminder_count: metrics.system_channel_reminder_count,
28615
+ mention_in_user_ratio: metrics.mention_in_user_ratio,
28616
+ non_mention_in_user_count: metrics.non_mention_in_user_count,
28617
+ closure_three_round_passed: closure.passed,
28618
+ closure_three_round_window_count: closure.roundCount,
28619
+ closure_three_round_failed_indexes: closure.failedRoundIndexes,
28620
+ reminder_enabled: flags.reminderEnabled,
28621
+ reminder_user_channel_enabled: flags.userChannelEnabled,
28622
+ reminder_system_channel_enabled: flags.systemChannelEnabled
28623
+ });
28624
+ }
28625
+ if (effectiveUserReminders && messages.length > 0) {
28517
28626
  for (let i = messages.length - 1; i >= 0; i--) {
28518
28627
  const msg = messages[i];
28519
28628
  if (msg?.type === "user") {
@@ -28522,9 +28631,9 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
28522
28631
  ...lastUserMessage,
28523
28632
  message: {
28524
28633
  ...lastUserMessage.message,
28525
- content: typeof lastUserMessage.message.content === "string" ? reminders + lastUserMessage.message.content : [
28634
+ content: typeof lastUserMessage.message.content === "string" ? effectiveUserReminders + lastUserMessage.message.content : [
28526
28635
  ...Array.isArray(lastUserMessage.message.content) ? lastUserMessage.message.content : [],
28527
- { type: "text", text: reminders }
28636
+ { type: "text", text: effectiveUserReminders }
28528
28637
  ]
28529
28638
  }
28530
28639
  };
@@ -28587,7 +28696,8 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
28587
28696
  getBinaryFeedbackResponse,
28588
28697
  {
28589
28698
  stopHookActive: true,
28590
- stopHookAttempts: stopHookAttempts + 1
28699
+ stopHookAttempts: stopHookAttempts + 1,
28700
+ startupEmitted: true
28591
28701
  }
28592
28702
  );
28593
28703
  return;
@@ -28656,7 +28766,10 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
28656
28766
  canUseTool,
28657
28767
  toolUseContext,
28658
28768
  getBinaryFeedbackResponse,
28659
- hookState
28769
+ {
28770
+ ...hookState ?? {},
28771
+ startupEmitted: true
28772
+ }
28660
28773
  );
28661
28774
  } catch (error) {
28662
28775
  throw error;
@@ -30195,7 +30308,7 @@ import { homedir as homedir8 } from "os";
30195
30308
  // src/commands/agents/generation.ts
30196
30309
  import { randomUUID as randomUUID6 } from "crypto";
30197
30310
  async function generateAgentWithClaude(prompt) {
30198
- const { queryModel } = await import("./llm-R5NWZO5G.js");
30311
+ const { queryModel } = await import("./llm-BNSWKO5H.js");
30199
30312
  const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
30200
30313
 
30201
30314
  Return your response as a JSON object with exactly these fields: