pybao-cli 1.4.98 → 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-OYNDAMUG.js → acp-IIKBAJCJ.js} +30 -30
- package/dist/{agentsValidate-CSJFTPMF.js → agentsValidate-6CEARR6Z.js} +7 -7
- package/dist/{ask-RUL7DBVW.js → ask-7NE7NVRN.js} +29 -29
- package/dist/{autoUpdater-2US37QCD.js → autoUpdater-LFOXQ3CV.js} +3 -3
- package/dist/{chunk-EKCV6FAR.js → chunk-2CLRREZ5.js} +3 -3
- package/dist/{chunk-6CZGZTTR.js → chunk-2IO7WUI7.js} +4 -4
- package/dist/{chunk-FUO4GQ7W.js → chunk-3BPXWAOJ.js} +1 -1
- package/dist/{chunk-FUO4GQ7W.js.map → chunk-3BPXWAOJ.js.map} +1 -1
- package/dist/{chunk-277MFG2S.js → chunk-4MZJNA2D.js} +2 -2
- package/dist/{chunk-MSUD3TJP.js → chunk-5TCQKGL7.js} +3 -3
- package/dist/{chunk-ELZOI2EN.js → chunk-6E6QBP52.js} +1 -1
- package/dist/{chunk-45KNYAUE.js → chunk-6KPO3O64.js} +3 -3
- package/dist/{chunk-6CFLL7MP.js → chunk-7KDTFITN.js} +3 -3
- package/dist/{chunk-5FPVUG76.js → chunk-7QIWZIVM.js} +1 -1
- package/dist/{chunk-FTXV6D26.js → chunk-7SDAA35I.js} +1 -1
- package/dist/{chunk-X3S6OAMU.js → chunk-7SPP4L5F.js} +2 -2
- package/dist/{chunk-VFEFTBAX.js → chunk-A2IPV5PR.js} +2 -2
- package/dist/{chunk-5SASDPJI.js → chunk-BBHKGKLF.js} +16 -24
- package/dist/{chunk-5SASDPJI.js.map → chunk-BBHKGKLF.js.map} +2 -2
- package/dist/{chunk-NJY725BV.js → chunk-D3SG4DHV.js} +3 -3
- package/dist/{chunk-G2NDX3AE.js → chunk-DKQIGPXB.js} +1 -1
- package/dist/{chunk-N6RZW54E.js → chunk-GIH6DDF7.js} +1 -1
- package/dist/{chunk-JN7LIP22.js → chunk-GNDMDOGM.js} +2 -2
- package/dist/{chunk-AQDHWNHO.js → chunk-JEGVTLOH.js} +1 -1
- package/dist/{chunk-NFCKELD5.js → chunk-KK5DOHDD.js} +2 -2
- package/dist/{chunk-KJLAOYAB.js → chunk-KZ7I6E5P.js} +207 -94
- package/dist/chunk-KZ7I6E5P.js.map +7 -0
- package/dist/{chunk-WS3OA4DJ.js → chunk-MMZ2MWHJ.js} +1 -1
- package/dist/{chunk-QCPTRT42.js → chunk-NXLRKKFH.js} +1 -1
- package/dist/{chunk-6W4QXF5T.js → chunk-PDQTREWL.js} +2 -2
- package/dist/{chunk-HIRKT55M.js → chunk-Q56IGZX5.js} +3 -3
- package/dist/{chunk-7YOXNCGC.js → chunk-TG2B47KG.js} +8 -76
- package/dist/chunk-TG2B47KG.js.map +7 -0
- package/dist/{chunk-ZT2EDUJ5.js → chunk-TYOT7UVX.js} +1 -1
- package/dist/{chunk-57TUHQTK.js → chunk-VKXOAPOS.js} +1 -1
- package/dist/{chunk-736LB6QF.js → chunk-WAQ72XDO.js} +3 -3
- package/dist/{chunk-7HPC6NEL.js → chunk-YH7ZOG3I.js} +4 -4
- package/dist/{chunk-XFAWFKEO.js → chunk-ZXADEAK4.js} +4 -4
- package/dist/{chunk-Y56ETINA.js → chunk-ZXO6OMWV.js} +4 -4
- package/dist/{cli-EW2FS2BF.js → cli-B42Z5OSM.js} +89 -89
- package/dist/commands-MNUBXNIB.js +53 -0
- package/dist/{config-VMG22F4D.js → config-ZC4PZWOC.js} +4 -4
- package/dist/{context-RCECS2MV.js → context-MF3EKP4O.js} +6 -6
- package/dist/{conversationTracker-EDZLP7O4.js → conversationTracker-BM6KB27G.js} +3 -3
- package/dist/{customCommands-B6RXZMP5.js → customCommands-63F72N5R.js} +4 -4
- package/dist/{env-YTAL5KRK.js → env-PGV75SHC.js} +2 -2
- package/dist/{file-OOCDMD3U.js → file-7NLJWX5W.js} +4 -4
- package/dist/index.js +3 -3
- package/dist/{llm-R5NWZO5G.js → llm-RCPJRG2F.js} +30 -30
- package/dist/{llmLazy-VWKTHJ4M.js → llmLazy-C5G2MM53.js} +1 -1
- package/dist/{loader-WWGN7JMY.js → loader-MPCV37S5.js} +4 -4
- package/dist/{lsp-YT4SHOXN.js → lsp-7FPYFR6T.js} +6 -6
- package/dist/{lspAnchor-B3LGI6VC.js → lspAnchor-C676SQ6E.js} +6 -6
- package/dist/{mcp-AIT7BP27.js → mcp-VKKPULAR.js} +7 -7
- package/dist/{mentionProcessor-TTRH7MSS.js → mentionProcessor-LJHHC5H4.js} +5 -5
- package/dist/{messages-V5YRA4WO.js → messages-QSUEHIGU.js} +1 -1
- package/dist/{model-7QLTSWZV.js → model-AJTLB6V4.js} +5 -5
- package/dist/{openai-O5UTQHNX.js → openai-XIRY5EVT.js} +5 -5
- package/dist/{outputStyles-CUYPATTD.js → outputStyles-OTRZEQSD.js} +4 -4
- package/dist/{pluginRuntime-Z3VUXLLL.js → pluginRuntime-NQ6GKMG6.js} +6 -6
- package/dist/{pluginValidation-OIFMXGZW.js → pluginValidation-AJUPAPU2.js} +6 -6
- package/dist/prompts-SWCPKXLQ.js +55 -0
- package/dist/{pybAgentSessionLoad-YE3R7GCM.js → pybAgentSessionLoad-MOZRT43D.js} +4 -4
- package/dist/{pybAgentSessionResume-H3X4E5WZ.js → pybAgentSessionResume-S67UFBZF.js} +4 -4
- package/dist/{pybAgentStreamJsonSession-LBTQ5QVA.js → pybAgentStreamJsonSession-UEEVKNIR.js} +1 -1
- package/dist/{pybHooks-ICFUKF5J.js → pybHooks-UQQ6VWTB.js} +4 -4
- package/dist/query-ZKV22Q32.js +57 -0
- package/dist/{registry-U5KXMAQT.js → registry-VUAORMT6.js} +5 -5
- package/dist/{ripgrep-WWOPEBCI.js → ripgrep-H5HDDGEE.js} +3 -3
- package/dist/{skillMarketplace-P7BGMBU7.js → skillMarketplace-AD473TUO.js} +3 -3
- package/dist/{state-BNEI4WAC.js → state-6FI3TEMZ.js} +2 -2
- package/dist/{theme-4JWO3G3X.js → theme-4KO4JE7Q.js} +5 -5
- package/dist/{toolPermissionSettings-LQLARZGN.js → toolPermissionSettings-5QUOY3OV.js} +6 -6
- package/dist/tools-DOBQ6YMO.js +54 -0
- package/dist/{userInput-GMSZGZQS.js → userInput-ZT3LIWGH.js} +31 -31
- package/package.json +1 -1
- package/dist/REPL-HSLBK5NZ.js +0 -49
- package/dist/chunk-7YOXNCGC.js.map +0 -7
- package/dist/chunk-KJLAOYAB.js.map +0 -7
- package/dist/commands-ED3B27YA.js +0 -53
- package/dist/prompts-VSYX4Z3H.js +0 -55
- package/dist/query-3MCWSQFG.js +0 -57
- package/dist/tools-6AAIJTHG.js +0 -54
- /package/dist/{REPL-HSLBK5NZ.js.map → REPL-KURZV7EW.js.map} +0 -0
- /package/dist/{acp-OYNDAMUG.js.map → acp-IIKBAJCJ.js.map} +0 -0
- /package/dist/{agentsValidate-CSJFTPMF.js.map → agentsValidate-6CEARR6Z.js.map} +0 -0
- /package/dist/{ask-RUL7DBVW.js.map → ask-7NE7NVRN.js.map} +0 -0
- /package/dist/{autoUpdater-2US37QCD.js.map → autoUpdater-LFOXQ3CV.js.map} +0 -0
- /package/dist/{chunk-EKCV6FAR.js.map → chunk-2CLRREZ5.js.map} +0 -0
- /package/dist/{chunk-6CZGZTTR.js.map → chunk-2IO7WUI7.js.map} +0 -0
- /package/dist/{chunk-277MFG2S.js.map → chunk-4MZJNA2D.js.map} +0 -0
- /package/dist/{chunk-MSUD3TJP.js.map → chunk-5TCQKGL7.js.map} +0 -0
- /package/dist/{chunk-ELZOI2EN.js.map → chunk-6E6QBP52.js.map} +0 -0
- /package/dist/{chunk-45KNYAUE.js.map → chunk-6KPO3O64.js.map} +0 -0
- /package/dist/{chunk-6CFLL7MP.js.map → chunk-7KDTFITN.js.map} +0 -0
- /package/dist/{chunk-5FPVUG76.js.map → chunk-7QIWZIVM.js.map} +0 -0
- /package/dist/{chunk-FTXV6D26.js.map → chunk-7SDAA35I.js.map} +0 -0
- /package/dist/{chunk-X3S6OAMU.js.map → chunk-7SPP4L5F.js.map} +0 -0
- /package/dist/{chunk-VFEFTBAX.js.map → chunk-A2IPV5PR.js.map} +0 -0
- /package/dist/{chunk-NJY725BV.js.map → chunk-D3SG4DHV.js.map} +0 -0
- /package/dist/{chunk-G2NDX3AE.js.map → chunk-DKQIGPXB.js.map} +0 -0
- /package/dist/{chunk-N6RZW54E.js.map → chunk-GIH6DDF7.js.map} +0 -0
- /package/dist/{chunk-JN7LIP22.js.map → chunk-GNDMDOGM.js.map} +0 -0
- /package/dist/{chunk-AQDHWNHO.js.map → chunk-JEGVTLOH.js.map} +0 -0
- /package/dist/{chunk-NFCKELD5.js.map → chunk-KK5DOHDD.js.map} +0 -0
- /package/dist/{chunk-WS3OA4DJ.js.map → chunk-MMZ2MWHJ.js.map} +0 -0
- /package/dist/{chunk-QCPTRT42.js.map → chunk-NXLRKKFH.js.map} +0 -0
- /package/dist/{chunk-6W4QXF5T.js.map → chunk-PDQTREWL.js.map} +0 -0
- /package/dist/{chunk-HIRKT55M.js.map → chunk-Q56IGZX5.js.map} +0 -0
- /package/dist/{chunk-ZT2EDUJ5.js.map → chunk-TYOT7UVX.js.map} +0 -0
- /package/dist/{chunk-57TUHQTK.js.map → chunk-VKXOAPOS.js.map} +0 -0
- /package/dist/{chunk-736LB6QF.js.map → chunk-WAQ72XDO.js.map} +0 -0
- /package/dist/{chunk-7HPC6NEL.js.map → chunk-YH7ZOG3I.js.map} +0 -0
- /package/dist/{chunk-XFAWFKEO.js.map → chunk-ZXADEAK4.js.map} +0 -0
- /package/dist/{chunk-Y56ETINA.js.map → chunk-ZXO6OMWV.js.map} +0 -0
- /package/dist/{cli-EW2FS2BF.js.map → cli-B42Z5OSM.js.map} +0 -0
- /package/dist/{commands-ED3B27YA.js.map → commands-MNUBXNIB.js.map} +0 -0
- /package/dist/{config-VMG22F4D.js.map → config-ZC4PZWOC.js.map} +0 -0
- /package/dist/{context-RCECS2MV.js.map → context-MF3EKP4O.js.map} +0 -0
- /package/dist/{conversationTracker-EDZLP7O4.js.map → conversationTracker-BM6KB27G.js.map} +0 -0
- /package/dist/{customCommands-B6RXZMP5.js.map → customCommands-63F72N5R.js.map} +0 -0
- /package/dist/{env-YTAL5KRK.js.map → env-PGV75SHC.js.map} +0 -0
- /package/dist/{file-OOCDMD3U.js.map → file-7NLJWX5W.js.map} +0 -0
- /package/dist/{llm-R5NWZO5G.js.map → llm-RCPJRG2F.js.map} +0 -0
- /package/dist/{llmLazy-VWKTHJ4M.js.map → llmLazy-C5G2MM53.js.map} +0 -0
- /package/dist/{loader-WWGN7JMY.js.map → loader-MPCV37S5.js.map} +0 -0
- /package/dist/{lsp-YT4SHOXN.js.map → lsp-7FPYFR6T.js.map} +0 -0
- /package/dist/{lspAnchor-B3LGI6VC.js.map → lspAnchor-C676SQ6E.js.map} +0 -0
- /package/dist/{mcp-AIT7BP27.js.map → mcp-VKKPULAR.js.map} +0 -0
- /package/dist/{mentionProcessor-TTRH7MSS.js.map → mentionProcessor-LJHHC5H4.js.map} +0 -0
- /package/dist/{messages-V5YRA4WO.js.map → messages-QSUEHIGU.js.map} +0 -0
- /package/dist/{model-7QLTSWZV.js.map → model-AJTLB6V4.js.map} +0 -0
- /package/dist/{openai-O5UTQHNX.js.map → openai-XIRY5EVT.js.map} +0 -0
- /package/dist/{outputStyles-CUYPATTD.js.map → outputStyles-OTRZEQSD.js.map} +0 -0
- /package/dist/{pluginRuntime-Z3VUXLLL.js.map → pluginRuntime-NQ6GKMG6.js.map} +0 -0
- /package/dist/{pluginValidation-OIFMXGZW.js.map → pluginValidation-AJUPAPU2.js.map} +0 -0
- /package/dist/{prompts-VSYX4Z3H.js.map → prompts-SWCPKXLQ.js.map} +0 -0
- /package/dist/{pybAgentSessionLoad-YE3R7GCM.js.map → pybAgentSessionLoad-MOZRT43D.js.map} +0 -0
- /package/dist/{pybAgentSessionResume-H3X4E5WZ.js.map → pybAgentSessionResume-S67UFBZF.js.map} +0 -0
- /package/dist/{pybAgentStreamJsonSession-LBTQ5QVA.js.map → pybAgentStreamJsonSession-UEEVKNIR.js.map} +0 -0
- /package/dist/{pybHooks-ICFUKF5J.js.map → pybHooks-UQQ6VWTB.js.map} +0 -0
- /package/dist/{query-3MCWSQFG.js.map → query-ZKV22Q32.js.map} +0 -0
- /package/dist/{registry-U5KXMAQT.js.map → registry-VUAORMT6.js.map} +0 -0
- /package/dist/{ripgrep-WWOPEBCI.js.map → ripgrep-H5HDDGEE.js.map} +0 -0
- /package/dist/{skillMarketplace-P7BGMBU7.js.map → skillMarketplace-AD473TUO.js.map} +0 -0
- /package/dist/{state-BNEI4WAC.js.map → state-6FI3TEMZ.js.map} +0 -0
- /package/dist/{theme-4JWO3G3X.js.map → theme-4KO4JE7Q.js.map} +0 -0
- /package/dist/{toolPermissionSettings-LQLARZGN.js.map → toolPermissionSettings-5QUOY3OV.js.map} +0 -0
- /package/dist/{tools-6AAIJTHG.js.map → tools-DOBQ6YMO.js.map} +0 -0
- /package/dist/{userInput-GMSZGZQS.js.map → userInput-ZT3LIWGH.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
|
|
|
2
2
|
const require = __pybCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
logError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VKXOAPOS.js";
|
|
6
6
|
|
|
7
7
|
// src/utils/session/conversationMessageState.ts
|
|
8
8
|
function mapFinishReason(rawReason) {
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
} from "./chunk-BJSWTHRM.js";
|
|
9
9
|
import {
|
|
10
10
|
debug
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DKQIGPXB.js";
|
|
12
12
|
import {
|
|
13
13
|
getCwd,
|
|
14
14
|
getXdgConfigDir,
|
|
15
15
|
logError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-VKXOAPOS.js";
|
|
17
17
|
|
|
18
18
|
// src/utils/agent/loader.ts
|
|
19
19
|
import {
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
PRODUCT_NAME,
|
|
5
5
|
execFileNoThrow,
|
|
6
6
|
logError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VKXOAPOS.js";
|
|
8
8
|
import {
|
|
9
9
|
MACRO
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3BPXWAOJ.js";
|
|
11
11
|
|
|
12
12
|
// src/utils/session/autoUpdater.ts
|
|
13
13
|
async function getSemver() {
|
|
@@ -82,7 +82,7 @@ async function checkAndNotifyUpdate() {
|
|
|
82
82
|
const [
|
|
83
83
|
{ isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },
|
|
84
84
|
{ env }
|
|
85
|
-
] = await Promise.all([import("./config-
|
|
85
|
+
] = await Promise.all([import("./config-ZC4PZWOC.js"), import("./env-PGV75SHC.js")]);
|
|
86
86
|
if (await isAutoUpdaterDisabled()) return;
|
|
87
87
|
if (await env.getIsDocker()) return;
|
|
88
88
|
if (!await env.hasInternetAccess()) return;
|
|
@@ -2,10 +2,10 @@ import { createRequire as __pybCreateRequire } from "node:module";
|
|
|
2
2
|
const require = __pybCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
debug
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DKQIGPXB.js";
|
|
6
6
|
import {
|
|
7
7
|
logError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VKXOAPOS.js";
|
|
9
9
|
|
|
10
10
|
// src/services/system/systemReminder.ts
|
|
11
11
|
var SystemReminderService = class {
|
|
@@ -19,7 +19,7 @@ var SystemReminderService = class {
|
|
|
19
19
|
taskEventTimestamps: /* @__PURE__ */ new Map(),
|
|
20
20
|
config: {
|
|
21
21
|
securityReminder: true,
|
|
22
|
-
performanceReminder:
|
|
22
|
+
performanceReminder: false,
|
|
23
23
|
maxRemindersPerSession: 10
|
|
24
24
|
}
|
|
25
25
|
};
|
|
@@ -106,25 +106,6 @@ var SystemReminderService = class {
|
|
|
106
106
|
const mentionTypes = ["agent_mention", "file_mention", "ask_model_mention"];
|
|
107
107
|
return mentionTypes.includes(reminder.type);
|
|
108
108
|
}
|
|
109
|
-
generateFileChangeReminder(context) {
|
|
110
|
-
const { agentId, filePath, reminder } = context;
|
|
111
|
-
if (!reminder) {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
const currentTime = Date.now();
|
|
115
|
-
const reminderKey = `file_changed_${agentId}_${filePath}_${currentTime}`;
|
|
116
|
-
if (this.sessionState.remindersSent.has(reminderKey)) {
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
this.sessionState.remindersSent.add(reminderKey);
|
|
120
|
-
return this.createReminderMessage(
|
|
121
|
-
"file_changed",
|
|
122
|
-
"general",
|
|
123
|
-
"medium",
|
|
124
|
-
reminder,
|
|
125
|
-
currentTime
|
|
126
|
-
);
|
|
127
|
-
}
|
|
128
109
|
createReminderMessage(type, category, priority, content, timestamp) {
|
|
129
110
|
return {
|
|
130
111
|
role: "system",
|
|
@@ -244,80 +225,31 @@ ${content}
|
|
|
244
225
|
const key = `task_list_${context.listId}`;
|
|
245
226
|
if (!this.shouldEmitTaskReminder(key, 2e3)) return;
|
|
246
227
|
this.sessionState.lastTaskUpdate = Date.now();
|
|
247
|
-
const reminder = this.createTaskListReminder(context);
|
|
248
|
-
if (reminder) {
|
|
249
|
-
this.emitEvent("reminder:inject", {
|
|
250
|
-
reminder: reminder.content,
|
|
251
|
-
listId: context.listId,
|
|
252
|
-
type: "task_list_changed",
|
|
253
|
-
timestamp: Date.now()
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
228
|
});
|
|
257
229
|
this.addEventListener("task:ready_changed", (context) => {
|
|
258
230
|
const key = `task_ready_${context.listId}`;
|
|
259
231
|
if (!this.shouldEmitTaskReminder(key, 2e3)) return;
|
|
260
|
-
|
|
261
|
-
if (reminder) {
|
|
262
|
-
this.emitEvent("reminder:inject", {
|
|
263
|
-
reminder: reminder.content,
|
|
264
|
-
listId: context.listId,
|
|
265
|
-
type: "task_ready_changed",
|
|
266
|
-
timestamp: Date.now()
|
|
267
|
-
});
|
|
268
|
-
}
|
|
232
|
+
this.sessionState.lastTaskUpdate = Date.now();
|
|
269
233
|
});
|
|
270
234
|
this.addEventListener("task.created", (context) => {
|
|
271
235
|
const key = `task_created_${context.listId}_${context.taskId}`;
|
|
272
236
|
if (!this.shouldEmitTaskReminder(key, 2e3)) return;
|
|
273
|
-
|
|
274
|
-
if (reminder) {
|
|
275
|
-
this.emitEvent("reminder:inject", {
|
|
276
|
-
reminder: reminder.content,
|
|
277
|
-
listId: context.listId,
|
|
278
|
-
type: reminder.type,
|
|
279
|
-
timestamp: reminder.timestamp
|
|
280
|
-
});
|
|
281
|
-
}
|
|
237
|
+
this.sessionState.lastTaskUpdate = Date.now();
|
|
282
238
|
});
|
|
283
239
|
this.addEventListener("task.updated", (context) => {
|
|
284
240
|
const key = `task_updated_${context.listId}_${context.taskId}`;
|
|
285
241
|
if (!this.shouldEmitTaskReminder(key, 2e3)) return;
|
|
286
|
-
|
|
287
|
-
if (reminder) {
|
|
288
|
-
this.emitEvent("reminder:inject", {
|
|
289
|
-
reminder: reminder.content,
|
|
290
|
-
listId: context.listId,
|
|
291
|
-
type: reminder.type,
|
|
292
|
-
timestamp: reminder.timestamp
|
|
293
|
-
});
|
|
294
|
-
}
|
|
242
|
+
this.sessionState.lastTaskUpdate = Date.now();
|
|
295
243
|
});
|
|
296
244
|
this.addEventListener("task.status_changed", (context) => {
|
|
297
245
|
const key = `task_status_${context.listId}_${context.taskId}`;
|
|
298
246
|
if (!this.shouldEmitTaskReminder(key, 2e3)) return;
|
|
299
|
-
|
|
300
|
-
if (reminder) {
|
|
301
|
-
this.emitEvent("reminder:inject", {
|
|
302
|
-
reminder: reminder.content,
|
|
303
|
-
listId: context.listId,
|
|
304
|
-
type: reminder.type,
|
|
305
|
-
timestamp: reminder.timestamp
|
|
306
|
-
});
|
|
307
|
-
}
|
|
247
|
+
this.sessionState.lastTaskUpdate = Date.now();
|
|
308
248
|
});
|
|
309
249
|
this.addEventListener("task.deps_changed", (context) => {
|
|
310
250
|
const key = `task_deps_${context.listId}_${context.taskId}`;
|
|
311
251
|
if (!this.shouldEmitTaskReminder(key, 2e3)) return;
|
|
312
|
-
|
|
313
|
-
if (reminder) {
|
|
314
|
-
this.emitEvent("reminder:inject", {
|
|
315
|
-
reminder: reminder.content,
|
|
316
|
-
listId: context.listId,
|
|
317
|
-
type: reminder.type,
|
|
318
|
-
timestamp: reminder.timestamp
|
|
319
|
-
});
|
|
320
|
-
}
|
|
252
|
+
this.sessionState.lastTaskUpdate = Date.now();
|
|
321
253
|
});
|
|
322
254
|
this.addEventListener("file:read", (context) => {
|
|
323
255
|
this.sessionState.lastFileAccess = Date.now();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/services/system/systemReminder.ts"],
|
|
4
|
+
"sourcesContent": ["import { debug as debugLogger } from '@utils/log/debugLogger'\nimport { logError } from '@utils/log'\n\nexport interface ReminderMessage {\n role: 'system'\n content: string\n isMeta: boolean\n timestamp: number\n type: string\n priority: 'low' | 'medium' | 'high'\n category: 'task' | 'security' | 'performance' | 'general'\n}\n\ninterface ReminderConfig {\n securityReminder: boolean\n performanceReminder: boolean\n maxRemindersPerSession: number\n}\n\ninterface SessionReminderState {\n lastFileAccess: number\n lastTaskUpdate: number\n sessionStartTime: number\n remindersSent: Set<string>\n contextPresent: boolean\n reminderCount: number\n taskEventTimestamps: Map<string, number>\n config: ReminderConfig\n}\n\nclass SystemReminderService {\n private sessionState: SessionReminderState = {\n lastFileAccess: 0,\n lastTaskUpdate: 0,\n sessionStartTime: Date.now(),\n remindersSent: new Set(),\n contextPresent: false,\n reminderCount: 0,\n taskEventTimestamps: new Map(),\n config: {\n securityReminder: true,\n performanceReminder: false,\n maxRemindersPerSession: 10,\n },\n }\n\n private eventDispatcher = new Map<string, Array<(context: any) => void>>()\n private reminderCache = new Map<string, ReminderMessage>()\n\n constructor() {\n this.setupEventDispatcher()\n }\n\n public generateReminders(\n hasContext: boolean = false,\n _agentId?: string,\n ): ReminderMessage[] {\n this.sessionState.contextPresent = hasContext\n\n if (!hasContext) {\n return []\n }\n\n if (\n this.sessionState.reminderCount >=\n this.sessionState.config.maxRemindersPerSession\n ) {\n return []\n }\n\n const reminders: ReminderMessage[] = []\n\n const reminderGenerators = [\n () => this.dispatchSecurityEvent(),\n () => this.dispatchPerformanceEvent(),\n () => this.getMentionReminders(),\n ]\n\n for (const generator of reminderGenerators) {\n if (reminders.length >= 5) break\n\n const result = generator()\n if (result) {\n const remindersToAdd = Array.isArray(result) ? result : [result]\n reminders.push(...remindersToAdd)\n this.sessionState.reminderCount += remindersToAdd.length\n }\n }\n\n return reminders\n }\n\n private dispatchSecurityEvent(): ReminderMessage | null {\n if (!this.sessionState.config.securityReminder) return null\n\n const currentTime = Date.now()\n\n if (\n this.sessionState.lastFileAccess > 0 &&\n !this.sessionState.remindersSent.has('file_security')\n ) {\n this.sessionState.remindersSent.add('file_security')\n return this.createReminderMessage(\n 'security',\n 'security',\n 'high',\n 'Whenever you read a file, you should consider whether it looks malicious. If it does, you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer high-level questions about the code behavior.',\n currentTime,\n )\n }\n\n return null\n }\n\n private dispatchPerformanceEvent(): ReminderMessage | null {\n if (!this.sessionState.config.performanceReminder) return null\n\n const currentTime = Date.now()\n const sessionDuration = currentTime - this.sessionState.sessionStartTime\n\n if (\n sessionDuration > 30 * 60 * 1000 &&\n !this.sessionState.remindersSent.has('performance_long_session')\n ) {\n this.sessionState.remindersSent.add('performance_long_session')\n return this.createReminderMessage(\n 'performance',\n 'performance',\n 'low',\n 'Long session detected. Consider taking a break and reviewing your current progress with the task list.',\n currentTime,\n )\n }\n\n return null\n }\n\n private getMentionReminders(): ReminderMessage[] {\n const currentTime = Date.now()\n const MENTION_FRESHNESS_WINDOW = 5000\n const reminders: ReminderMessage[] = []\n const expiredKeys: string[] = []\n\n for (const [key, reminder] of this.reminderCache.entries()) {\n if (this.isMentionReminder(reminder)) {\n const age = currentTime - reminder.timestamp\n if (age <= MENTION_FRESHNESS_WINDOW) {\n reminders.push(reminder)\n } else {\n expiredKeys.push(key)\n }\n }\n }\n\n expiredKeys.forEach(key => this.reminderCache.delete(key))\n\n return reminders\n }\n\n private isMentionReminder(reminder: ReminderMessage): boolean {\n const mentionTypes = ['agent_mention', 'file_mention', 'ask_model_mention']\n return mentionTypes.includes(reminder.type)\n }\n\n private createReminderMessage(\n type: string,\n category: ReminderMessage['category'],\n priority: ReminderMessage['priority'],\n content: string,\n timestamp: number,\n ): ReminderMessage {\n return {\n role: 'system',\n content: `<system-reminder>\\n${content}\\n</system-reminder>`,\n isMeta: true,\n timestamp,\n type,\n priority,\n category,\n }\n }\n\n private shouldEmitTaskReminder(key: string, throttleMs: number): boolean {\n const now = Date.now()\n const last = this.sessionState.taskEventTimestamps.get(key) ?? 0\n if (now - last < throttleMs) {\n return false\n }\n this.sessionState.taskEventTimestamps.set(key, now)\n return true\n }\n\n private createTaskListReminder(context: any): ReminderMessage | null {\n const { listId, summary } = context\n if (!summary || !listId) return null\n const reminderKey = `task_list_${listId}_${summary.total}_${summary.ready}_${summary.blocked}_${summary.inProgress}_${summary.pending}_${summary.done}_${summary.deleted}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_list_changed',\n 'task',\n 'medium',\n `Your task list changed. Ready: ${summary.ready}, Blocked: ${summary.blocked}, In progress: ${summary.inProgress}, Pending: ${summary.pending}, Done: ${summary.done}, Deleted: ${summary.deleted}.`,\n Date.now(),\n )\n }\n\n private createTaskReadyReminder(context: any): ReminderMessage | null {\n const { listId, readyIds } = context\n if (!listId || !Array.isArray(readyIds)) return null\n const limited = readyIds.slice(0, 5).join(', ')\n const reminderKey = `task_ready_${listId}_${readyIds.length}_${limited}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_ready_changed',\n 'task',\n 'medium',\n `Task readiness changed. Ready count: ${readyIds.length}. Ready ids: ${limited || 'none'}.`,\n Date.now(),\n )\n }\n\n private createTaskCreatedReminder(context: any): ReminderMessage | null {\n const { listId, taskId, task } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_created_${listId}_${taskId}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n const subject = task?.subject || taskId\n return this.createReminderMessage(\n 'task_created',\n 'task',\n 'medium',\n `Task created: ${subject} (${taskId}). Review details and adjust status if needed.`,\n Date.now(),\n )\n }\n\n private createTaskUpdatedReminder(context: any): ReminderMessage | null {\n const { listId, taskId, task } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_updated_${listId}_${taskId}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n const subject = task?.subject || taskId\n return this.createReminderMessage(\n 'task_updated',\n 'task',\n 'medium',\n `Task updated: ${subject} (${taskId}). Confirm dependencies and status are correct.`,\n Date.now(),\n )\n }\n\n private createTaskStatusReminder(context: any): ReminderMessage | null {\n const { listId, taskId, previousStatus, status } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_status_${listId}_${taskId}_${previousStatus}_${status}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_status_changed',\n 'task',\n 'medium',\n `Task status changed for ${taskId}: ${previousStatus} \u2192 ${status}. Review dependent tasks if needed.`,\n Date.now(),\n )\n }\n\n private createTaskDepsReminder(context: any): ReminderMessage | null {\n const { listId, taskId, deps } = context\n if (!listId || !taskId) return null\n const reminderKey = `task_deps_${listId}_${taskId}_${JSON.stringify(deps ?? {})}`\n if (this.sessionState.remindersSent.has(reminderKey)) return null\n this.sessionState.remindersSent.add(reminderKey)\n return this.createReminderMessage(\n 'task_deps_changed',\n 'task',\n 'medium',\n `Task dependencies changed for ${taskId}. Recheck readiness and blockers.`,\n Date.now(),\n )\n }\n\n private setupEventDispatcher(): void {\n this.addEventListener('session:startup', context => {\n this.resetSession()\n\n this.sessionState.sessionStartTime = Date.now()\n this.sessionState.contextPresent =\n Object.keys(context.context || {}).length > 0\n })\n\n this.addEventListener('task:list_changed', context => {\n const key = `task_list_${context.listId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n })\n\n this.addEventListener('task:ready_changed', context => {\n const key = `task_ready_${context.listId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n })\n\n this.addEventListener('task.created', context => {\n const key = `task_created_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n })\n\n this.addEventListener('task.updated', context => {\n const key = `task_updated_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n })\n\n this.addEventListener('task.status_changed', context => {\n const key = `task_status_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n })\n\n this.addEventListener('task.deps_changed', context => {\n const key = `task_deps_${context.listId}_${context.taskId}`\n if (!this.shouldEmitTaskReminder(key, 2000)) return\n this.sessionState.lastTaskUpdate = Date.now()\n })\n\n this.addEventListener('file:read', context => {\n this.sessionState.lastFileAccess = Date.now()\n })\n\n this.addEventListener('file:edited', context => {\n })\n\n this.addEventListener('agent:mentioned', context => {\n this.createMentionReminder({\n type: 'agent_mention',\n key: `agent_mention_${context.agentType}_${context.timestamp}`,\n category: 'task',\n priority: 'high',\n content: `The user mentioned @${context.originalMention}. You MUST use the Task tool with subagent_type=\"${context.agentType}\" to delegate this task to the specified agent. Provide a detailed, self-contained task description that fully captures the user's intent for the ${context.agentType} agent to execute.`,\n timestamp: context.timestamp,\n })\n })\n\n this.addEventListener('file:mentioned', context => {\n this.createMentionReminder({\n type: 'file_mention',\n key: `file_mention_${context.filePath}_${context.timestamp}`,\n category: 'general',\n priority: 'high',\n content: `The user mentioned @${context.originalMention}. You MUST read the entire content of the file at path: ${context.filePath} using the Read tool to understand the full context before proceeding with the user's request.`,\n timestamp: context.timestamp,\n })\n })\n\n this.addEventListener('ask-model:mentioned', context => {\n this.createMentionReminder({\n type: 'ask_model_mention',\n key: `ask_model_mention_${context.modelName}_${context.timestamp}`,\n category: 'task',\n priority: 'high',\n content: `The user mentioned @${context.modelName}. You MUST use the AskExpertModelTool to consult this specific model for expert opinions and analysis. Provide the user's question or context clearly to get the most relevant response from ${context.modelName}.`,\n timestamp: context.timestamp,\n })\n })\n }\n\n public addEventListener(\n event: string,\n callback: (context: any) => void,\n ): void {\n if (!this.eventDispatcher.has(event)) {\n this.eventDispatcher.set(event, [])\n }\n this.eventDispatcher.get(event)!.push(callback)\n }\n\n public emitEvent(event: string, context: any): void {\n const listeners = this.eventDispatcher.get(event) || []\n listeners.forEach(callback => {\n try {\n callback(context)\n } catch (error) {\n logError(error)\n debugLogger.warn('SYSTEM_REMINDER_LISTENER_ERROR', {\n event,\n error: error instanceof Error ? error.message : String(error),\n })\n }\n })\n }\n\n private createMentionReminder(params: {\n type: string\n key: string\n category: ReminderMessage['category']\n priority: ReminderMessage['priority']\n content: string\n timestamp: number\n }): void {\n if (!this.sessionState.remindersSent.has(params.key)) {\n this.sessionState.remindersSent.add(params.key)\n\n const reminder = this.createReminderMessage(\n params.type,\n params.category,\n params.priority,\n params.content,\n params.timestamp,\n )\n\n this.reminderCache.set(params.key, reminder)\n }\n }\n\n public resetSession(): void {\n this.sessionState = {\n lastFileAccess: 0,\n lastTaskUpdate: 0,\n sessionStartTime: Date.now(),\n remindersSent: new Set(),\n contextPresent: false,\n reminderCount: 0,\n taskEventTimestamps: new Map(),\n config: { ...this.sessionState.config },\n }\n this.reminderCache.clear()\n }\n\n public updateConfig(config: Partial<ReminderConfig>): void {\n this.sessionState.config = { ...this.sessionState.config, ...config }\n }\n\n public getSessionState(): SessionReminderState {\n return { ...this.sessionState }\n }\n}\n\nexport const systemReminderService = new SystemReminderService()\n\nexport const generateSystemReminders = (\n hasContext: boolean = false,\n agentId?: string,\n) => systemReminderService.generateReminders(hasContext, agentId)\n\nexport const emitReminderEvent = (event: string, context: any) =>\n systemReminderService.emitEvent(event, context)\n\nexport const resetReminderSession = () => systemReminderService.resetSession()\nexport const getReminderSessionState = () =>\n systemReminderService.getSessionState()\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,7 @@ import { createRequire as __pybCreateRequire } from "node:module";
|
|
|
2
2
|
const require = __pybCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
MACRO
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3BPXWAOJ.js";
|
|
6
6
|
|
|
7
7
|
// src/utils/state/index.ts
|
|
8
8
|
import { cwd } from "process";
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
} from "./chunk-RQVLBMP7.js";
|
|
6
6
|
import {
|
|
7
7
|
debug
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DKQIGPXB.js";
|
|
9
9
|
import {
|
|
10
10
|
getCwd,
|
|
11
11
|
getGlobalConfigFilePath,
|
|
12
12
|
getLegacyGlobalConfigFilePath,
|
|
13
13
|
logError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VKXOAPOS.js";
|
|
15
15
|
|
|
16
16
|
// src/core/config/schema.ts
|
|
17
17
|
function isAutoUpdaterStatus(value) {
|
|
@@ -688,7 +688,7 @@ function setModelPointer(pointer, modelName) {
|
|
|
688
688
|
}
|
|
689
689
|
};
|
|
690
690
|
saveGlobalConfig(updatedConfig);
|
|
691
|
-
import("./model-
|
|
691
|
+
import("./model-AJTLB6V4.js").then(({ reloadModelManager }) => {
|
|
692
692
|
reloadModelManager();
|
|
693
693
|
});
|
|
694
694
|
}
|
|
@@ -3,13 +3,13 @@ const require = __pybCreateRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
getSettingsFileCandidates,
|
|
5
5
|
loadSettingsWithLegacyFallback
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7SDAA35I.js";
|
|
7
7
|
import {
|
|
8
8
|
getSessionPlugins
|
|
9
9
|
} from "./chunk-BJSWTHRM.js";
|
|
10
10
|
import {
|
|
11
11
|
getTheme
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6E6QBP52.js";
|
|
13
13
|
import {
|
|
14
14
|
addMcprcServerForTesting,
|
|
15
15
|
getCurrentProjectConfig,
|
|
@@ -19,13 +19,13 @@ import {
|
|
|
19
19
|
safeParseJSON,
|
|
20
20
|
saveCurrentProjectConfig,
|
|
21
21
|
saveGlobalConfig
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-WAQ72XDO.js";
|
|
23
23
|
import {
|
|
24
24
|
PRODUCT_COMMAND,
|
|
25
25
|
PRODUCT_NAME,
|
|
26
26
|
getCwd,
|
|
27
27
|
logMCPError
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-VKXOAPOS.js";
|
|
29
29
|
|
|
30
30
|
// src/services/mcp/client.ts
|
|
31
31
|
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
|
|
@@ -3,7 +3,7 @@ const require = __pybCreateRequire(import.meta.url);
|
|
|
3
3
|
|
|
4
4
|
// src/services/ai/llmLazy.ts
|
|
5
5
|
async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal, options) {
|
|
6
|
-
const { queryLLM: inner } = await import("./llm-
|
|
6
|
+
const { queryLLM: inner } = await import("./llm-RCPJRG2F.js");
|
|
7
7
|
return inner(
|
|
8
8
|
messages,
|
|
9
9
|
systemPrompt,
|
|
@@ -14,15 +14,15 @@ async function queryLLM(messages, systemPrompt, maxThinkingTokens, tools, signal
|
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
16
|
async function queryQuick(args) {
|
|
17
|
-
const { queryQuick: inner } = await import("./llm-
|
|
17
|
+
const { queryQuick: inner } = await import("./llm-RCPJRG2F.js");
|
|
18
18
|
return inner(args);
|
|
19
19
|
}
|
|
20
20
|
async function verifyApiKey(apiKey, baseURL, provider) {
|
|
21
|
-
const { verifyApiKey: inner } = await import("./llm-
|
|
21
|
+
const { verifyApiKey: inner } = await import("./llm-RCPJRG2F.js");
|
|
22
22
|
return inner(apiKey, baseURL, provider);
|
|
23
23
|
}
|
|
24
24
|
async function fetchAnthropicModels(apiKey, baseURL) {
|
|
25
|
-
const { fetchAnthropicModels: inner } = await import("./llm-
|
|
25
|
+
const { fetchAnthropicModels: inner } = await import("./llm-RCPJRG2F.js");
|
|
26
26
|
return inner(apiKey, baseURL);
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
LspServerRegistry,
|
|
5
5
|
findNearestRoot,
|
|
6
6
|
getInstallNotices
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-D3SG4DHV.js";
|
|
8
8
|
import {
|
|
9
9
|
levenshtein
|
|
10
10
|
} from "./chunk-UZ34JEUK.js";
|
|
11
11
|
import {
|
|
12
12
|
debug
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DKQIGPXB.js";
|
|
14
14
|
import {
|
|
15
15
|
getCwd,
|
|
16
16
|
getSessionRoot
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VKXOAPOS.js";
|
|
18
18
|
|
|
19
19
|
// src/lsp/index.ts
|
|
20
20
|
import { extname as extname2 } from "path";
|
|
@@ -565,7 +565,7 @@ var LspClientManager = class _LspClientManager {
|
|
|
565
565
|
const safeCwd = /[^\x00-\x7F]/.test(resolvedRoot) ? process.cwd() : resolvedRoot;
|
|
566
566
|
let initOpts = serverInfo.initializationOptions;
|
|
567
567
|
if (serverInfo.id === "pyright" || serverInfo.id === "ty") {
|
|
568
|
-
const { detectPythonVenv } = await import("./registry-
|
|
568
|
+
const { detectPythonVenv } = await import("./registry-VUAORMT6.js");
|
|
569
569
|
const pythonPath = detectPythonVenv(resolvedRoot);
|
|
570
570
|
if (pythonPath) {
|
|
571
571
|
initOpts = { ...initOpts ?? {}, pythonPath };
|