pybao-cli 1.4.97 → 1.4.99
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.
- package/dist/REPL-KURZV7EW.js +49 -0
- package/dist/{acp-RCUUG4TE.js → acp-IIKBAJCJ.js} +30 -30
- package/dist/{agentsValidate-FOGGBCAM.js → agentsValidate-6CEARR6Z.js} +7 -7
- package/dist/{ask-Y7GSDBHR.js → ask-7NE7NVRN.js} +29 -29
- package/dist/{autoUpdater-I3LHHCHT.js → autoUpdater-LFOXQ3CV.js} +3 -3
- package/dist/{chunk-DODMRDRY.js → chunk-2CLRREZ5.js} +3 -3
- package/dist/{chunk-WSATR4WL.js → chunk-2IO7WUI7.js} +4 -4
- package/dist/{chunk-YIXTSVYD.js → chunk-3BPXWAOJ.js} +1 -1
- package/dist/{chunk-YIXTSVYD.js.map → chunk-3BPXWAOJ.js.map} +1 -1
- package/dist/{chunk-EVDTKHQS.js → chunk-4MZJNA2D.js} +2 -2
- package/dist/{chunk-AL6K5BMH.js → chunk-5TCQKGL7.js} +71 -35
- package/dist/chunk-5TCQKGL7.js.map +7 -0
- package/dist/{chunk-QMUFX7IJ.js → chunk-6E6QBP52.js} +1 -1
- package/dist/{chunk-HV4NI23F.js → chunk-6KPO3O64.js} +3 -3
- package/dist/{chunk-TCW74O5N.js → chunk-7KDTFITN.js} +3 -3
- package/dist/{chunk-EDTKZHPB.js → chunk-7QIWZIVM.js} +1 -1
- package/dist/{chunk-ZETRMTIG.js → chunk-7SDAA35I.js} +1 -1
- package/dist/{chunk-6AJ2CWOM.js → chunk-7SPP4L5F.js} +2 -2
- package/dist/{chunk-6TMRUFNH.js → chunk-A2IPV5PR.js} +2 -2
- package/dist/{chunk-4OHWJPFN.js → chunk-BBHKGKLF.js} +16 -24
- package/dist/{chunk-4OHWJPFN.js.map → chunk-BBHKGKLF.js.map} +2 -2
- package/dist/{chunk-RL64MB7U.js → chunk-D3SG4DHV.js} +3 -3
- package/dist/{chunk-LR2N7KMQ.js → chunk-DKQIGPXB.js} +1 -1
- package/dist/{chunk-VXUWHEDL.js → chunk-GIH6DDF7.js} +1 -1
- package/dist/{chunk-A6QAWMSQ.js → chunk-GNDMDOGM.js} +2 -2
- package/dist/{chunk-53JGT3P4.js → chunk-JEGVTLOH.js} +1 -1
- package/dist/{chunk-A53N6YJI.js → chunk-KK5DOHDD.js} +2 -2
- package/dist/{chunk-JKP2RIBC.js → chunk-KZ7I6E5P.js} +227 -106
- package/dist/chunk-KZ7I6E5P.js.map +7 -0
- package/dist/{chunk-JFQY2HV5.js → chunk-MMZ2MWHJ.js} +1 -1
- package/dist/{chunk-PZTJUV4A.js → chunk-NXLRKKFH.js} +1 -1
- package/dist/{chunk-TDEIIGZD.js → chunk-PDQTREWL.js} +2 -2
- package/dist/{chunk-JI7VDOMU.js → chunk-Q56IGZX5.js} +3 -3
- package/dist/{chunk-O7CYKDDE.js → chunk-TG2B47KG.js} +8 -76
- package/dist/chunk-TG2B47KG.js.map +7 -0
- package/dist/{chunk-RBT4E5DV.js → chunk-TYOT7UVX.js} +1 -1
- package/dist/{chunk-Y2CH5HCU.js → chunk-VKXOAPOS.js} +1 -1
- package/dist/{chunk-VPVZHCOG.js → chunk-WAQ72XDO.js} +3 -3
- package/dist/{chunk-JHCUUDEB.js → chunk-YH7ZOG3I.js} +4 -4
- package/dist/{chunk-6LUGSV66.js → chunk-ZXADEAK4.js} +4 -4
- package/dist/{chunk-I6JG3ZBH.js → chunk-ZXO6OMWV.js} +4 -4
- package/dist/{cli-2RUYT6CA.js → cli-B42Z5OSM.js} +89 -89
- package/dist/commands-MNUBXNIB.js +53 -0
- package/dist/{config-W6OYIJFP.js → config-ZC4PZWOC.js} +4 -4
- package/dist/{context-5VP2FZYF.js → context-MF3EKP4O.js} +6 -6
- package/dist/{conversationTracker-GOUWLXWN.js → conversationTracker-BM6KB27G.js} +3 -3
- package/dist/{customCommands-TDVISN2B.js → customCommands-63F72N5R.js} +4 -4
- package/dist/{env-DLGPG7EV.js → env-PGV75SHC.js} +2 -2
- package/dist/{file-TOOPTRF2.js → file-7NLJWX5W.js} +4 -4
- package/dist/index.js +3 -3
- package/dist/{llm-HPGYRNBC.js → llm-RCPJRG2F.js} +30 -30
- package/dist/{llmLazy-OKLOZGW7.js → llmLazy-C5G2MM53.js} +1 -1
- package/dist/{loader-BPVCWO3Q.js → loader-MPCV37S5.js} +4 -4
- package/dist/{lsp-Y5UU7OYG.js → lsp-7FPYFR6T.js} +6 -6
- package/dist/{lspAnchor-YNYJ7E7M.js → lspAnchor-C676SQ6E.js} +6 -6
- package/dist/{mcp-ZHOROUVO.js → mcp-VKKPULAR.js} +7 -7
- package/dist/{mentionProcessor-YA3PCQGC.js → mentionProcessor-LJHHC5H4.js} +5 -5
- package/dist/{messages-QE77NR42.js → messages-QSUEHIGU.js} +1 -1
- package/dist/{model-YUVFO4IF.js → model-AJTLB6V4.js} +7 -5
- package/dist/{openai-BYIA5SOE.js → openai-XIRY5EVT.js} +5 -5
- package/dist/{outputStyles-RUBJ56B2.js → outputStyles-OTRZEQSD.js} +4 -4
- package/dist/{pluginRuntime-TFQEES5T.js → pluginRuntime-NQ6GKMG6.js} +6 -6
- package/dist/{pluginValidation-H7X3X4KI.js → pluginValidation-AJUPAPU2.js} +6 -6
- package/dist/prompts-SWCPKXLQ.js +55 -0
- package/dist/{pybAgentSessionLoad-RGKKINBZ.js → pybAgentSessionLoad-MOZRT43D.js} +4 -4
- package/dist/{pybAgentSessionResume-KO5RTOM4.js → pybAgentSessionResume-S67UFBZF.js} +4 -4
- package/dist/{pybAgentStreamJsonSession-B2CP4XOB.js → pybAgentStreamJsonSession-UEEVKNIR.js} +1 -1
- package/dist/{pybHooks-CWI5I2PJ.js → pybHooks-UQQ6VWTB.js} +4 -4
- package/dist/query-ZKV22Q32.js +57 -0
- package/dist/{registry-W2TZF6IB.js → registry-VUAORMT6.js} +5 -5
- package/dist/{ripgrep-IBHLMEUX.js → ripgrep-H5HDDGEE.js} +3 -3
- package/dist/{skillMarketplace-XTB7FHYD.js → skillMarketplace-AD473TUO.js} +3 -3
- package/dist/{state-B5WH4G7E.js → state-6FI3TEMZ.js} +2 -2
- package/dist/{theme-DJXLBRJF.js → theme-4KO4JE7Q.js} +5 -5
- package/dist/{toolPermissionSettings-HRFFW2PV.js → toolPermissionSettings-5QUOY3OV.js} +6 -6
- package/dist/tools-DOBQ6YMO.js +54 -0
- package/dist/{userInput-7WNQPJKD.js → userInput-ZT3LIWGH.js} +31 -31
- package/package.json +1 -1
- package/dist/REPL-34JJO6P2.js +0 -49
- package/dist/chunk-AL6K5BMH.js.map +0 -7
- package/dist/chunk-JKP2RIBC.js.map +0 -7
- package/dist/chunk-O7CYKDDE.js.map +0 -7
- package/dist/commands-XCYMIIZG.js +0 -53
- package/dist/prompts-SMIDAJGI.js +0 -55
- package/dist/query-CXHDWKXY.js +0 -57
- package/dist/tools-ZTSUWCM4.js +0 -54
- /package/dist/{REPL-34JJO6P2.js.map → REPL-KURZV7EW.js.map} +0 -0
- /package/dist/{acp-RCUUG4TE.js.map → acp-IIKBAJCJ.js.map} +0 -0
- /package/dist/{agentsValidate-FOGGBCAM.js.map → agentsValidate-6CEARR6Z.js.map} +0 -0
- /package/dist/{ask-Y7GSDBHR.js.map → ask-7NE7NVRN.js.map} +0 -0
- /package/dist/{autoUpdater-I3LHHCHT.js.map → autoUpdater-LFOXQ3CV.js.map} +0 -0
- /package/dist/{chunk-DODMRDRY.js.map → chunk-2CLRREZ5.js.map} +0 -0
- /package/dist/{chunk-WSATR4WL.js.map → chunk-2IO7WUI7.js.map} +0 -0
- /package/dist/{chunk-EVDTKHQS.js.map → chunk-4MZJNA2D.js.map} +0 -0
- /package/dist/{chunk-QMUFX7IJ.js.map → chunk-6E6QBP52.js.map} +0 -0
- /package/dist/{chunk-HV4NI23F.js.map → chunk-6KPO3O64.js.map} +0 -0
- /package/dist/{chunk-TCW74O5N.js.map → chunk-7KDTFITN.js.map} +0 -0
- /package/dist/{chunk-EDTKZHPB.js.map → chunk-7QIWZIVM.js.map} +0 -0
- /package/dist/{chunk-ZETRMTIG.js.map → chunk-7SDAA35I.js.map} +0 -0
- /package/dist/{chunk-6AJ2CWOM.js.map → chunk-7SPP4L5F.js.map} +0 -0
- /package/dist/{chunk-6TMRUFNH.js.map → chunk-A2IPV5PR.js.map} +0 -0
- /package/dist/{chunk-RL64MB7U.js.map → chunk-D3SG4DHV.js.map} +0 -0
- /package/dist/{chunk-LR2N7KMQ.js.map → chunk-DKQIGPXB.js.map} +0 -0
- /package/dist/{chunk-VXUWHEDL.js.map → chunk-GIH6DDF7.js.map} +0 -0
- /package/dist/{chunk-A6QAWMSQ.js.map → chunk-GNDMDOGM.js.map} +0 -0
- /package/dist/{chunk-53JGT3P4.js.map → chunk-JEGVTLOH.js.map} +0 -0
- /package/dist/{chunk-A53N6YJI.js.map → chunk-KK5DOHDD.js.map} +0 -0
- /package/dist/{chunk-JFQY2HV5.js.map → chunk-MMZ2MWHJ.js.map} +0 -0
- /package/dist/{chunk-PZTJUV4A.js.map → chunk-NXLRKKFH.js.map} +0 -0
- /package/dist/{chunk-TDEIIGZD.js.map → chunk-PDQTREWL.js.map} +0 -0
- /package/dist/{chunk-JI7VDOMU.js.map → chunk-Q56IGZX5.js.map} +0 -0
- /package/dist/{chunk-RBT4E5DV.js.map → chunk-TYOT7UVX.js.map} +0 -0
- /package/dist/{chunk-Y2CH5HCU.js.map → chunk-VKXOAPOS.js.map} +0 -0
- /package/dist/{chunk-VPVZHCOG.js.map → chunk-WAQ72XDO.js.map} +0 -0
- /package/dist/{chunk-JHCUUDEB.js.map → chunk-YH7ZOG3I.js.map} +0 -0
- /package/dist/{chunk-6LUGSV66.js.map → chunk-ZXADEAK4.js.map} +0 -0
- /package/dist/{chunk-I6JG3ZBH.js.map → chunk-ZXO6OMWV.js.map} +0 -0
- /package/dist/{cli-2RUYT6CA.js.map → cli-B42Z5OSM.js.map} +0 -0
- /package/dist/{commands-XCYMIIZG.js.map → commands-MNUBXNIB.js.map} +0 -0
- /package/dist/{config-W6OYIJFP.js.map → config-ZC4PZWOC.js.map} +0 -0
- /package/dist/{context-5VP2FZYF.js.map → context-MF3EKP4O.js.map} +0 -0
- /package/dist/{conversationTracker-GOUWLXWN.js.map → conversationTracker-BM6KB27G.js.map} +0 -0
- /package/dist/{customCommands-TDVISN2B.js.map → customCommands-63F72N5R.js.map} +0 -0
- /package/dist/{env-DLGPG7EV.js.map → env-PGV75SHC.js.map} +0 -0
- /package/dist/{file-TOOPTRF2.js.map → file-7NLJWX5W.js.map} +0 -0
- /package/dist/{llm-HPGYRNBC.js.map → llm-RCPJRG2F.js.map} +0 -0
- /package/dist/{llmLazy-OKLOZGW7.js.map → llmLazy-C5G2MM53.js.map} +0 -0
- /package/dist/{loader-BPVCWO3Q.js.map → loader-MPCV37S5.js.map} +0 -0
- /package/dist/{lsp-Y5UU7OYG.js.map → lsp-7FPYFR6T.js.map} +0 -0
- /package/dist/{lspAnchor-YNYJ7E7M.js.map → lspAnchor-C676SQ6E.js.map} +0 -0
- /package/dist/{mcp-ZHOROUVO.js.map → mcp-VKKPULAR.js.map} +0 -0
- /package/dist/{mentionProcessor-YA3PCQGC.js.map → mentionProcessor-LJHHC5H4.js.map} +0 -0
- /package/dist/{messages-QE77NR42.js.map → messages-QSUEHIGU.js.map} +0 -0
- /package/dist/{model-YUVFO4IF.js.map → model-AJTLB6V4.js.map} +0 -0
- /package/dist/{openai-BYIA5SOE.js.map → openai-XIRY5EVT.js.map} +0 -0
- /package/dist/{outputStyles-RUBJ56B2.js.map → outputStyles-OTRZEQSD.js.map} +0 -0
- /package/dist/{pluginRuntime-TFQEES5T.js.map → pluginRuntime-NQ6GKMG6.js.map} +0 -0
- /package/dist/{pluginValidation-H7X3X4KI.js.map → pluginValidation-AJUPAPU2.js.map} +0 -0
- /package/dist/{prompts-SMIDAJGI.js.map → prompts-SWCPKXLQ.js.map} +0 -0
- /package/dist/{pybAgentSessionLoad-RGKKINBZ.js.map → pybAgentSessionLoad-MOZRT43D.js.map} +0 -0
- /package/dist/{pybAgentSessionResume-KO5RTOM4.js.map → pybAgentSessionResume-S67UFBZF.js.map} +0 -0
- /package/dist/{pybAgentStreamJsonSession-B2CP4XOB.js.map → pybAgentStreamJsonSession-UEEVKNIR.js.map} +0 -0
- /package/dist/{pybHooks-CWI5I2PJ.js.map → pybHooks-UQQ6VWTB.js.map} +0 -0
- /package/dist/{query-CXHDWKXY.js.map → query-ZKV22Q32.js.map} +0 -0
- /package/dist/{registry-W2TZF6IB.js.map → registry-VUAORMT6.js.map} +0 -0
- /package/dist/{ripgrep-IBHLMEUX.js.map → ripgrep-H5HDDGEE.js.map} +0 -0
- /package/dist/{skillMarketplace-XTB7FHYD.js.map → skillMarketplace-AD473TUO.js.map} +0 -0
- /package/dist/{state-B5WH4G7E.js.map → state-6FI3TEMZ.js.map} +0 -0
- /package/dist/{theme-DJXLBRJF.js.map → theme-4KO4JE7Q.js.map} +0 -0
- /package/dist/{toolPermissionSettings-HRFFW2PV.js.map → toolPermissionSettings-5QUOY3OV.js.map} +0 -0
- /package/dist/{tools-ZTSUWCM4.js.map → tools-DOBQ6YMO.js.map} +0 -0
- /package/dist/{userInput-7WNQPJKD.js.map → userInput-ZT3LIWGH.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-
|
|
5
|
+
} from "./chunk-NXLRKKFH.js";
|
|
6
6
|
import {
|
|
7
7
|
formatValidationResult,
|
|
8
8
|
validatePluginOrMarketplacePath
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2CLRREZ5.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-
|
|
17
|
+
} from "./chunk-MMZ2MWHJ.js";
|
|
18
18
|
import {
|
|
19
19
|
beginReplSessionScope
|
|
20
20
|
} from "./chunk-F4AXICO7.js";
|
|
21
21
|
import {
|
|
22
22
|
loadPybAgentSessionMessages
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-GIH6DDF7.js";
|
|
24
24
|
import {
|
|
25
25
|
appendSessionCustomTitleRecord,
|
|
26
26
|
appendSessionJsonlFromMessage,
|
|
27
27
|
appendSessionTagRecord
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-KK5DOHDD.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-
|
|
40
|
+
} from "./chunk-6KPO3O64.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-
|
|
49
|
+
} from "./chunk-4MZJNA2D.js";
|
|
50
50
|
import {
|
|
51
51
|
fetchCustomModels,
|
|
52
52
|
getModelFeatures
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-7SPP4L5F.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-
|
|
61
|
+
} from "./chunk-ZXADEAK4.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-
|
|
75
|
+
} from "./chunk-YH7ZOG3I.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-
|
|
88
|
+
} from "./chunk-JEGVTLOH.js";
|
|
89
89
|
import {
|
|
90
90
|
loadToolPermissionContextFromDisk,
|
|
91
91
|
persistToolPermissionUpdateToDisk
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-7KDTFITN.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-
|
|
103
|
+
} from "./chunk-TG2B47KG.js";
|
|
104
104
|
import {
|
|
105
105
|
clearAgentCache,
|
|
106
106
|
getActiveAgents,
|
|
107
107
|
getAgentByType,
|
|
108
108
|
getAllAgents
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-PDQTREWL.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-
|
|
140
|
+
} from "./chunk-7QIWZIVM.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-
|
|
170
|
+
} from "./chunk-A2IPV5PR.js";
|
|
171
171
|
import {
|
|
172
172
|
parseBlockEdits
|
|
173
173
|
} from "./chunk-QWIBSCDN.js";
|
|
@@ -177,26 +177,27 @@ import {
|
|
|
177
177
|
ParserRegistry,
|
|
178
178
|
initParser,
|
|
179
179
|
loadLanguage
|
|
180
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-ZXO6OMWV.js";
|
|
181
181
|
import {
|
|
182
182
|
getSettingsFileCandidates,
|
|
183
183
|
loadSettingsWithLegacyFallback,
|
|
184
184
|
readSettingsFile
|
|
185
|
-
} from "./chunk-
|
|
185
|
+
} from "./chunk-7SDAA35I.js";
|
|
186
186
|
import {
|
|
187
187
|
getCustomCommandDirectories,
|
|
188
188
|
hasCustomCommands,
|
|
189
189
|
loadCustomCommands,
|
|
190
190
|
reloadCustomCommands
|
|
191
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-GNDMDOGM.js";
|
|
192
192
|
import {
|
|
193
193
|
getSessionPlugins
|
|
194
194
|
} from "./chunk-BJSWTHRM.js";
|
|
195
195
|
import {
|
|
196
196
|
ModelManager,
|
|
197
|
+
buildModelProfileKey,
|
|
197
198
|
getModelManager,
|
|
198
199
|
isDefaultSlowAndCapableModel
|
|
199
|
-
} from "./chunk-
|
|
200
|
+
} from "./chunk-5TCQKGL7.js";
|
|
200
201
|
import {
|
|
201
202
|
getCodeStyle,
|
|
202
203
|
getContext,
|
|
@@ -204,16 +205,16 @@ import {
|
|
|
204
205
|
getIsGit,
|
|
205
206
|
getProjectDocs,
|
|
206
207
|
getProjectStructureStatisticsBlock
|
|
207
|
-
} from "./chunk-
|
|
208
|
+
} from "./chunk-2IO7WUI7.js";
|
|
208
209
|
import {
|
|
209
210
|
getRipgrepPath,
|
|
210
211
|
getRipgrepPolicyMode,
|
|
211
212
|
resolveRipgrepPolicy,
|
|
212
213
|
ripGrep
|
|
213
|
-
} from "./chunk-
|
|
214
|
+
} from "./chunk-TYOT7UVX.js";
|
|
214
215
|
import {
|
|
215
216
|
getTheme
|
|
216
|
-
} from "./chunk-
|
|
217
|
+
} from "./chunk-6E6QBP52.js";
|
|
217
218
|
import {
|
|
218
219
|
DEFAULT_GLOBAL_CONFIG,
|
|
219
220
|
enableConfigs,
|
|
@@ -226,7 +227,7 @@ import {
|
|
|
226
227
|
saveGlobalConfig,
|
|
227
228
|
setAllPointersToModel,
|
|
228
229
|
setModelPointer
|
|
229
|
-
} from "./chunk-
|
|
230
|
+
} from "./chunk-WAQ72XDO.js";
|
|
230
231
|
import {
|
|
231
232
|
AbortError
|
|
232
233
|
} from "./chunk-RQVLBMP7.js";
|
|
@@ -235,7 +236,7 @@ import {
|
|
|
235
236
|
getCurrentRequest,
|
|
236
237
|
logUserFriendly,
|
|
237
238
|
markPhase
|
|
238
|
-
} from "./chunk-
|
|
239
|
+
} from "./chunk-DKQIGPXB.js";
|
|
239
240
|
import {
|
|
240
241
|
ASCII_LOGO,
|
|
241
242
|
BunShell,
|
|
@@ -276,10 +277,10 @@ import {
|
|
|
276
277
|
setCwd,
|
|
277
278
|
shouldApplyToolOutputTruncation,
|
|
278
279
|
truncateToolOutput
|
|
279
|
-
} from "./chunk-
|
|
280
|
+
} from "./chunk-VKXOAPOS.js";
|
|
280
281
|
import {
|
|
281
282
|
MACRO
|
|
282
|
-
} from "./chunk-
|
|
283
|
+
} from "./chunk-3BPXWAOJ.js";
|
|
283
284
|
import {
|
|
284
285
|
__export
|
|
285
286
|
} from "./chunk-I3J4JYES.js";
|
|
@@ -460,7 +461,7 @@ var getCommandSubcommandPrefix = memoize(
|
|
|
460
461
|
var getCommandPrefix = memoize(
|
|
461
462
|
async (command4, abortSignal) => {
|
|
462
463
|
const { systemPrompt, userPrompt } = buildBashCommandPrefixDetectionPrompt(command4);
|
|
463
|
-
const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-
|
|
464
|
+
const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryQuick: queryQuick2 } = await import("./llm-RCPJRG2F.js");
|
|
464
465
|
const response = await queryQuick2({
|
|
465
466
|
systemPrompt,
|
|
466
467
|
userPrompt,
|
|
@@ -4262,7 +4263,7 @@ function formatParseError(error) {
|
|
|
4262
4263
|
return error instanceof Error ? error.message : String(error);
|
|
4263
4264
|
}
|
|
4264
4265
|
async function defaultGateQuery(args) {
|
|
4265
|
-
const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-
|
|
4266
|
+
const { API_ERROR_MESSAGE_PREFIX: API_ERROR_MESSAGE_PREFIX2, queryLLM: queryLLM2 } = await import("./llm-RCPJRG2F.js");
|
|
4266
4267
|
const queryLLMFn = args.queryLLMOverride ?? queryLLM2;
|
|
4267
4268
|
const messages = [
|
|
4268
4269
|
{
|
|
@@ -5945,13 +5946,6 @@ var FileFreshnessService = class {
|
|
|
5945
5946
|
const conflict = !isFresh;
|
|
5946
5947
|
if (conflict) {
|
|
5947
5948
|
this.state.editConflicts.add(filePath);
|
|
5948
|
-
emitReminderEvent("file:conflict", {
|
|
5949
|
-
filePath,
|
|
5950
|
-
lastRead: recorded.lastRead,
|
|
5951
|
-
lastModified: recorded.lastModified,
|
|
5952
|
-
currentModified: currentStats.mtimeMs,
|
|
5953
|
-
sizeDiff: currentStats.size - recorded.size
|
|
5954
|
-
});
|
|
5955
5949
|
}
|
|
5956
5950
|
return {
|
|
5957
5951
|
isFresh,
|
|
@@ -6005,34 +5999,6 @@ var FileFreshnessService = class {
|
|
|
6005
5999
|
});
|
|
6006
6000
|
}
|
|
6007
6001
|
}
|
|
6008
|
-
generateFileModificationReminder(filePath) {
|
|
6009
|
-
const recorded = this.state.readTimestamps.get(filePath);
|
|
6010
|
-
if (!recorded) {
|
|
6011
|
-
return null;
|
|
6012
|
-
}
|
|
6013
|
-
try {
|
|
6014
|
-
if (!existsSync3(filePath)) {
|
|
6015
|
-
return `Note: ${filePath} was deleted since last read.`;
|
|
6016
|
-
}
|
|
6017
|
-
const currentStats = statSync2(filePath);
|
|
6018
|
-
const isModified = currentStats.mtimeMs > recorded.lastModified;
|
|
6019
|
-
if (!isModified) {
|
|
6020
|
-
return null;
|
|
6021
|
-
}
|
|
6022
|
-
const TIME_TOLERANCE_MS = 100;
|
|
6023
|
-
if (recorded.lastAgentEdit && recorded.lastAgentEdit >= recorded.lastModified - TIME_TOLERANCE_MS) {
|
|
6024
|
-
return null;
|
|
6025
|
-
}
|
|
6026
|
-
return `Note: ${filePath} was modified externally since last read. The file may have changed outside of this session.`;
|
|
6027
|
-
} catch (error) {
|
|
6028
|
-
logError(error);
|
|
6029
|
-
debug.warn("FILE_FRESHNESS_CHECK_MODIFICATION_FAILED", {
|
|
6030
|
-
filePath,
|
|
6031
|
-
error: error instanceof Error ? error.message : String(error)
|
|
6032
|
-
});
|
|
6033
|
-
return null;
|
|
6034
|
-
}
|
|
6035
|
-
}
|
|
6036
6002
|
getConflictedFiles() {
|
|
6037
6003
|
return Array.from(this.state.editConflicts);
|
|
6038
6004
|
}
|
|
@@ -6066,7 +6032,6 @@ var FileFreshnessService = class {
|
|
|
6066
6032
|
var fileFreshnessService = new FileFreshnessService();
|
|
6067
6033
|
var recordFileRead = (filePath) => fileFreshnessService.recordFileRead(filePath);
|
|
6068
6034
|
var recordFileEdit = (filePath, content) => fileFreshnessService.recordFileEdit(filePath, content);
|
|
6069
|
-
var generateFileModificationReminder = (filePath) => fileFreshnessService.generateFileModificationReminder(filePath);
|
|
6070
6035
|
var resetFileFreshnessSession = () => fileFreshnessService.resetSession();
|
|
6071
6036
|
|
|
6072
6037
|
// src/tools/filesystem/NotebookEditTool/NotebookEditTool.tsx
|
|
@@ -6659,7 +6624,7 @@ var FileEditTool = {
|
|
|
6659
6624
|
const originalFileContent = currentFileContent;
|
|
6660
6625
|
let totalPatch = [];
|
|
6661
6626
|
const { SmartEdit } = await import("./smart-edit-AWHJDSU6.js");
|
|
6662
|
-
const { findLspAnchor } = await import("./lspAnchor-
|
|
6627
|
+
const { findLspAnchor } = await import("./lspAnchor-C676SQ6E.js");
|
|
6663
6628
|
for (const op of editOperations) {
|
|
6664
6629
|
const normalizedSearch = normalizeLineEndings(op.search);
|
|
6665
6630
|
const normalizedReplace = normalizeLineEndings(op.replace);
|
|
@@ -7690,14 +7655,6 @@ var FileReadTool = {
|
|
|
7690
7655
|
timestamp: Date.now()
|
|
7691
7656
|
});
|
|
7692
7657
|
readFileTimestamps[fullFilePath] = statSync7(fullFilePath).mtimeMs;
|
|
7693
|
-
const modificationReminder = generateFileModificationReminder(fullFilePath);
|
|
7694
|
-
if (modificationReminder) {
|
|
7695
|
-
emitReminderEvent("file:modified", {
|
|
7696
|
-
filePath: fullFilePath,
|
|
7697
|
-
reminder: modificationReminder,
|
|
7698
|
-
timestamp: Date.now()
|
|
7699
|
-
});
|
|
7700
|
-
}
|
|
7701
7658
|
if (IMAGE_EXTENSIONS.has(ext)) {
|
|
7702
7659
|
const data2 = await readImage(fullFilePath, ext);
|
|
7703
7660
|
yield {
|
|
@@ -11941,7 +11898,7 @@ async function createAndStoreApiKey(accessToken) {
|
|
|
11941
11898
|
}
|
|
11942
11899
|
saveGlobalConfig(config2);
|
|
11943
11900
|
try {
|
|
11944
|
-
const { resetAnthropicClient } = await import("./llm-
|
|
11901
|
+
const { resetAnthropicClient } = await import("./llm-RCPJRG2F.js");
|
|
11945
11902
|
resetAnthropicClient();
|
|
11946
11903
|
} catch {
|
|
11947
11904
|
}
|
|
@@ -15138,11 +15095,12 @@ Please check your API key and try again, or press Tab to manually enter model na
|
|
|
15138
15095
|
if (!modelId) {
|
|
15139
15096
|
return;
|
|
15140
15097
|
}
|
|
15141
|
-
|
|
15098
|
+
const profileKey = buildModelProfileKey(selectedProvider, modelId);
|
|
15099
|
+
setModelPointer("main", profileKey);
|
|
15142
15100
|
if (isOnboarding) {
|
|
15143
|
-
setAllPointersToModel(
|
|
15101
|
+
setAllPointersToModel(profileKey);
|
|
15144
15102
|
} else if (targetPointer && targetPointer !== "main") {
|
|
15145
|
-
setModelPointer(targetPointer,
|
|
15103
|
+
setModelPointer(targetPointer, profileKey);
|
|
15146
15104
|
}
|
|
15147
15105
|
onDone();
|
|
15148
15106
|
}
|
|
@@ -16364,7 +16322,7 @@ async function refreshPluginRuntimeFromInstalls() {
|
|
|
16364
16322
|
const existingRoots = getSessionPlugins().map((p) => p.rootDir);
|
|
16365
16323
|
const dirs = Array.from(/* @__PURE__ */ new Set([...existingRoots, ...installedRoots]));
|
|
16366
16324
|
if (dirs.length === 0) return [];
|
|
16367
|
-
const { configureSessionPlugins } = await import("./pluginRuntime-
|
|
16325
|
+
const { configureSessionPlugins } = await import("./pluginRuntime-NQ6GKMG6.js");
|
|
16368
16326
|
const { errors } = await configureSessionPlugins({ pluginDirs: dirs });
|
|
16369
16327
|
return errors;
|
|
16370
16328
|
}
|
|
@@ -16700,10 +16658,10 @@ function ModelListManager({ onClose }) {
|
|
|
16700
16658
|
const availableModels = modelManager.getAvailableModels();
|
|
16701
16659
|
const menuItems = React40.useMemo(() => {
|
|
16702
16660
|
const modelItems = availableModels.map((model) => ({
|
|
16703
|
-
id: model.modelName,
|
|
16661
|
+
id: buildModelProfileKey(model.provider, model.modelName),
|
|
16704
16662
|
name: model.name,
|
|
16705
16663
|
provider: model.provider,
|
|
16706
|
-
usedBy: getModelUsage(model.modelName),
|
|
16664
|
+
usedBy: getModelUsage(model.provider, model.modelName),
|
|
16707
16665
|
type: "model"
|
|
16708
16666
|
}));
|
|
16709
16667
|
return [
|
|
@@ -16717,18 +16675,19 @@ function ModelListManager({ onClose }) {
|
|
|
16717
16675
|
...modelItems
|
|
16718
16676
|
];
|
|
16719
16677
|
}, [availableModels, config2.modelPointers, refreshKey]);
|
|
16720
|
-
function getModelUsage(modelName) {
|
|
16678
|
+
function getModelUsage(provider, modelName) {
|
|
16721
16679
|
const usage = [];
|
|
16722
16680
|
const pointers = ["main", "task", "compact", "quick"];
|
|
16681
|
+
const profileKey = buildModelProfileKey(provider, modelName);
|
|
16723
16682
|
pointers.forEach((pointer) => {
|
|
16724
|
-
if (config2.modelPointers?.[pointer] === modelName) {
|
|
16683
|
+
if (config2.modelPointers?.[pointer] === profileKey || config2.modelPointers?.[pointer] === modelName) {
|
|
16725
16684
|
usage.push(pointer);
|
|
16726
16685
|
}
|
|
16727
16686
|
});
|
|
16728
16687
|
return usage;
|
|
16729
16688
|
}
|
|
16730
|
-
const handleDeleteModel = (
|
|
16731
|
-
modelManager.removeModel(
|
|
16689
|
+
const handleDeleteModel = (modelRef) => {
|
|
16690
|
+
modelManager.removeModel(modelRef);
|
|
16732
16691
|
setRefreshKey((prev) => prev + 1);
|
|
16733
16692
|
setIsDeleteMode(false);
|
|
16734
16693
|
};
|
|
@@ -16760,7 +16719,9 @@ function ModelListManager({ onClose }) {
|
|
|
16760
16719
|
setIsDeleteMode(false);
|
|
16761
16720
|
return;
|
|
16762
16721
|
}
|
|
16763
|
-
|
|
16722
|
+
const mainPointer = config2.modelPointers?.main;
|
|
16723
|
+
const deletingMain = mainPointer === item.id || mainPointer && item.id.includes(":") && mainPointer === item.id.split(":").slice(1).join(":");
|
|
16724
|
+
if (deletingMain) {
|
|
16764
16725
|
setIsDeleteMode(false);
|
|
16765
16726
|
return;
|
|
16766
16727
|
}
|
|
@@ -16840,7 +16801,10 @@ function ModelConfig({ onClose }) {
|
|
|
16840
16801
|
}, [selectedIndex]);
|
|
16841
16802
|
const availableModels = React41.useMemo(() => {
|
|
16842
16803
|
const profiles = modelManager.getAvailableModels();
|
|
16843
|
-
return profiles.map((p) => ({
|
|
16804
|
+
return profiles.map((p) => ({
|
|
16805
|
+
id: buildModelProfileKey(p.provider, p.modelName),
|
|
16806
|
+
name: p.name
|
|
16807
|
+
}));
|
|
16844
16808
|
}, [modelManager, refreshKey]);
|
|
16845
16809
|
const menuItems = React41.useMemo(() => {
|
|
16846
16810
|
const modelSettings = [
|
|
@@ -16937,7 +16901,7 @@ function ModelConfig({ onClose }) {
|
|
|
16937
16901
|
return;
|
|
16938
16902
|
}
|
|
16939
16903
|
const currentIndex = setting.options.findIndex(
|
|
16940
|
-
(opt) => opt.id === setting.value
|
|
16904
|
+
(opt) => opt.id === setting.value || opt.id.endsWith(`:${setting.value}`)
|
|
16941
16905
|
);
|
|
16942
16906
|
const nextIndex = (currentIndex + 1) % setting.options.length;
|
|
16943
16907
|
const nextOption = setting.options[nextIndex];
|
|
@@ -17033,7 +16997,7 @@ async function call(onDone, context) {
|
|
|
17033
16997
|
ModelConfig,
|
|
17034
16998
|
{
|
|
17035
16999
|
onClose: () => {
|
|
17036
|
-
import("./model-
|
|
17000
|
+
import("./model-AJTLB6V4.js").then(({ reloadModelManager: reloadModelManager2 }) => {
|
|
17037
17001
|
reloadModelManager2();
|
|
17038
17002
|
triggerModelConfigChange();
|
|
17039
17003
|
onDone();
|
|
@@ -25237,7 +25201,7 @@ function useStatusLine() {
|
|
|
25237
25201
|
// src/ui/components/PromptInput.tsx
|
|
25238
25202
|
async function interpretHashCommand(input) {
|
|
25239
25203
|
try {
|
|
25240
|
-
const { queryQuick: queryQuick2 } = await import("./llm-
|
|
25204
|
+
const { queryQuick: queryQuick2 } = await import("./llm-RCPJRG2F.js");
|
|
25241
25205
|
const systemPrompt = [
|
|
25242
25206
|
"You're helping the user structure notes that will be added to their PYB.md file.",
|
|
25243
25207
|
"Format the user's input into a well-structured note that will be useful for later reference.",
|
|
@@ -25550,7 +25514,7 @@ function PromptInput({
|
|
|
25550
25514
|
if (messages2.length) {
|
|
25551
25515
|
if (mode === "bash") {
|
|
25552
25516
|
onQuery(messages2, newAbortController).then(async () => {
|
|
25553
|
-
const { getCwd: getCwd2 } = await import("./state-
|
|
25517
|
+
const { getCwd: getCwd2 } = await import("./state-6FI3TEMZ.js");
|
|
25554
25518
|
setCurrentPwd(getCwd2());
|
|
25555
25519
|
});
|
|
25556
25520
|
} else {
|
|
@@ -26422,7 +26386,26 @@ function isGPT5Model(modelName) {
|
|
|
26422
26386
|
}
|
|
26423
26387
|
function formatSystemPromptWithContext(systemPrompt, context, agentId, skipContextReminders = false, options) {
|
|
26424
26388
|
const enhancedPrompt = [...systemPrompt];
|
|
26425
|
-
let
|
|
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
|
+
};
|
|
26426
26409
|
const modelManager = getModelManager();
|
|
26427
26410
|
const modelProfile = modelManager.getModel("main");
|
|
26428
26411
|
if (modelProfile && isGPT5Model(modelProfile.modelName)) {
|
|
@@ -26450,7 +26433,15 @@ function formatSystemPromptWithContext(systemPrompt, context, agentId, skipConte
|
|
|
26450
26433
|
}
|
|
26451
26434
|
const reminderMessages = generateSystemReminders(hasContext, agentId);
|
|
26452
26435
|
if (reminderMessages.length > 0) {
|
|
26453
|
-
|
|
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
|
+
}
|
|
26454
26445
|
}
|
|
26455
26446
|
enhancedPrompt.push(
|
|
26456
26447
|
`
|
|
@@ -26495,7 +26486,81 @@ As you answer the user's questions, you can use the following context:
|
|
|
26495
26486
|
enhancedPrompt.push("\n---\n");
|
|
26496
26487
|
}
|
|
26497
26488
|
}
|
|
26498
|
-
return {
|
|
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
|
+
};
|
|
26499
26564
|
}
|
|
26500
26565
|
|
|
26501
26566
|
// src/services/system/taskWatcher.ts
|
|
@@ -28080,6 +28145,7 @@ function isToolUseLikeBlock(block) {
|
|
|
28080
28145
|
return block && typeof block === "object" && (block.type === "tool_use" || block.type === "server_tool_use" || block.type === "mcp_tool_use");
|
|
28081
28146
|
}
|
|
28082
28147
|
var __isToolUseLikeBlockForTests = isToolUseLikeBlock;
|
|
28148
|
+
var reminderChannelRounds = [];
|
|
28083
28149
|
function createSyntheticToolUseErrorMessage(args) {
|
|
28084
28150
|
const { toolUseId, reason, rootToolUseId } = args;
|
|
28085
28151
|
if (reason === "user_interrupted") {
|
|
@@ -28465,13 +28531,29 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
|
|
|
28465
28531
|
}
|
|
28466
28532
|
markPhase("SYSTEM_PROMPT_BUILD");
|
|
28467
28533
|
hydratePlanSlugFromMessages(messages, toolUseContext);
|
|
28468
|
-
const {
|
|
28534
|
+
const {
|
|
28535
|
+
systemPrompt: fullSystemPrompt,
|
|
28536
|
+
userReminders,
|
|
28537
|
+
systemReminders,
|
|
28538
|
+
userReminderMessages,
|
|
28539
|
+
systemReminderMessages
|
|
28540
|
+
} = formatSystemPromptWithContext(
|
|
28469
28541
|
systemPrompt,
|
|
28470
28542
|
context,
|
|
28471
28543
|
toolUseContext.agentId,
|
|
28472
28544
|
false,
|
|
28473
28545
|
{ conversationTracker: tracker, agentType: toolUseContext.agentType }
|
|
28474
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
|
+
}
|
|
28475
28557
|
const planModeAdditions = getPlanModeSystemPromptAdditions(
|
|
28476
28558
|
messages,
|
|
28477
28559
|
toolUseContext
|
|
@@ -28497,15 +28579,50 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
|
|
|
28497
28579
|
requestId: currentRequest?.id,
|
|
28498
28580
|
config: conversationTrackingConfig
|
|
28499
28581
|
});
|
|
28500
|
-
|
|
28501
|
-
|
|
28502
|
-
|
|
28503
|
-
|
|
28504
|
-
|
|
28582
|
+
if (!hookState?.startupEmitted) {
|
|
28583
|
+
emitReminderEvent("session:startup", {
|
|
28584
|
+
agentId: toolUseContext.agentId,
|
|
28585
|
+
messages: messages.length,
|
|
28586
|
+
timestamp: Date.now()
|
|
28587
|
+
});
|
|
28588
|
+
}
|
|
28505
28589
|
if (!toolUseContext.agentId || toolUseContext.agentId === "main") {
|
|
28506
28590
|
startWatchingTaskList();
|
|
28507
28591
|
}
|
|
28508
|
-
|
|
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) {
|
|
28509
28626
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
28510
28627
|
const msg = messages[i];
|
|
28511
28628
|
if (msg?.type === "user") {
|
|
@@ -28514,9 +28631,9 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
|
|
|
28514
28631
|
...lastUserMessage,
|
|
28515
28632
|
message: {
|
|
28516
28633
|
...lastUserMessage.message,
|
|
28517
|
-
content: typeof lastUserMessage.message.content === "string" ?
|
|
28634
|
+
content: typeof lastUserMessage.message.content === "string" ? effectiveUserReminders + lastUserMessage.message.content : [
|
|
28518
28635
|
...Array.isArray(lastUserMessage.message.content) ? lastUserMessage.message.content : [],
|
|
28519
|
-
{ type: "text", text:
|
|
28636
|
+
{ type: "text", text: effectiveUserReminders }
|
|
28520
28637
|
]
|
|
28521
28638
|
}
|
|
28522
28639
|
};
|
|
@@ -28579,7 +28696,8 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
|
|
|
28579
28696
|
getBinaryFeedbackResponse,
|
|
28580
28697
|
{
|
|
28581
28698
|
stopHookActive: true,
|
|
28582
|
-
stopHookAttempts: stopHookAttempts + 1
|
|
28699
|
+
stopHookAttempts: stopHookAttempts + 1,
|
|
28700
|
+
startupEmitted: true
|
|
28583
28701
|
}
|
|
28584
28702
|
);
|
|
28585
28703
|
return;
|
|
@@ -28648,7 +28766,10 @@ async function* queryCore(messages, systemPrompt, context, canUseTool, toolUseCo
|
|
|
28648
28766
|
canUseTool,
|
|
28649
28767
|
toolUseContext,
|
|
28650
28768
|
getBinaryFeedbackResponse,
|
|
28651
|
-
|
|
28769
|
+
{
|
|
28770
|
+
...hookState ?? {},
|
|
28771
|
+
startupEmitted: true
|
|
28772
|
+
}
|
|
28652
28773
|
);
|
|
28653
28774
|
} catch (error) {
|
|
28654
28775
|
throw error;
|
|
@@ -30187,7 +30308,7 @@ import { homedir as homedir8 } from "os";
|
|
|
30187
30308
|
// src/commands/agents/generation.ts
|
|
30188
30309
|
import { randomUUID as randomUUID6 } from "crypto";
|
|
30189
30310
|
async function generateAgentWithClaude(prompt) {
|
|
30190
|
-
const { queryModel } = await import("./llm-
|
|
30311
|
+
const { queryModel } = await import("./llm-RCPJRG2F.js");
|
|
30191
30312
|
const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.
|
|
30192
30313
|
|
|
30193
30314
|
Return your response as a JSON object with exactly these fields:
|