dominds 1.2.5 → 1.2.7
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/agent-priming.js +2051 -0
- package/dist/apps/app-lock-file.js +228 -0
- package/dist/apps/assigned-port.js +124 -0
- package/dist/apps/enabled-apps.js +472 -7
- package/dist/apps/manifest.js +37 -0
- package/dist/apps/override-paths.js +19 -6
- package/dist/apps/problems.js +43 -0
- package/dist/apps/resolution-file.js +370 -0
- package/dist/apps/runtime.js +5 -17
- package/dist/apps/teammates.js +102 -1
- package/dist/cli/disable.js +10 -6
- package/dist/cli/enable.js +21 -19
- package/dist/cli/install.js +40 -18
- package/dist/cli/uninstall.js +6 -6
- package/dist/cli/update.js +38 -13
- package/dist/dialog.js +5 -0
- package/dist/docs/app-constitution.md +85 -18
- package/dist/docs/app-constitution.zh.md +86 -21
- package/dist/docs/dialog-system.md +1 -1
- package/dist/docs/dialog-system.zh.md +1 -1
- package/dist/docs/dominds-agent-priming.md +218 -0
- package/dist/docs/dominds-agent-priming.zh.md +196 -0
- package/dist/docs/drive-logic-context-refactor-plan.zh.md +338 -0
- package/dist/docs/keep-going.md +176 -0
- package/dist/docs/keep-going.zh.md +162 -0
- package/dist/docs/showing-by-doing.md +208 -0
- package/dist/docs/showing-by-doing.zh.md +177 -0
- package/dist/docs/team-mgmt-toolset.md +482 -0
- package/dist/docs/team-mgmt-toolset.zh.md +426 -0
- package/dist/llm/defaults.yaml +1 -1
- package/dist/llm/driver.js +4093 -0
- package/dist/llm/kernel-driver/drive.js +5 -2
- package/dist/llm/kernel-driver/flow.js +3 -0
- package/dist/minds/promptdocs.js +263 -0
- package/dist/problems.js +67 -16
- package/dist/server/api-routes.js +333 -0
- package/dist/server/prompts-routes.js +545 -0
- package/dist/server/server-core.js +4 -0
- package/dist/server/websocket-handler.js +17 -0
- package/dist/shared/team-mgmt-manual.js +120 -0
- package/dist/shared/types/prompts.js +2 -0
- package/dist/shared/types/tellask.js +8 -0
- package/dist/showing-by-doing.js +1091 -0
- package/dist/snippets/README.en.md +3 -0
- package/dist/snippets/README.md +4 -0
- package/dist/static/assets/{_basePickBy-CF9r08iy.js → _basePickBy-BMCtwrV7.js} +3 -3
- package/dist/static/assets/{_basePickBy-CF9r08iy.js.map → _basePickBy-BMCtwrV7.js.map} +1 -1
- package/dist/static/assets/{_baseUniq-CxKv0cd4.js → _baseUniq-BuyCgJiA.js} +2 -2
- package/dist/static/assets/{_baseUniq-CxKv0cd4.js.map → _baseUniq-BuyCgJiA.js.map} +1 -1
- package/dist/static/assets/{arc-C9JyvnlB.js → arc-BDuN8lwA.js} +2 -2
- package/dist/static/assets/{arc-C9JyvnlB.js.map → arc-BDuN8lwA.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CpcUgjHf.js → architectureDiagram-VXUJARFQ-C-ekqGAD.js} +7 -7
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CpcUgjHf.js.map → architectureDiagram-VXUJARFQ-C-ekqGAD.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-BA9vtmm7.js → blockDiagram-VD42YOAC-CgQiNuuQ.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-BA9vtmm7.js.map → blockDiagram-VD42YOAC-CgQiNuuQ.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-D49MGNdF.js → c4Diagram-YG6GDRKO-DONC39q-.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-D49MGNdF.js.map → c4Diagram-YG6GDRKO-DONC39q-.js.map} +1 -1
- package/dist/static/assets/{channel-B4KzL0Kg.js → channel-CJTFwXIG.js} +2 -2
- package/dist/static/assets/{channel-B4KzL0Kg.js.map → channel-CJTFwXIG.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-0F-1ayl0.js → chunk-4BX2VUAB-NaIy4uLJ.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-0F-1ayl0.js.map → chunk-4BX2VUAB-NaIy4uLJ.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-Dnl2HDTZ.js → chunk-55IACEB6-JUKI_Ayx.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-Dnl2HDTZ.js.map → chunk-55IACEB6-JUKI_Ayx.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-Bhx5RbkQ.js → chunk-B4BG7PRW-dIswFJDn.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-Bhx5RbkQ.js.map → chunk-B4BG7PRW-dIswFJDn.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-EYd1wL3E.js → chunk-DI55MBZ5-DU2b_N30.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-EYd1wL3E.js.map → chunk-DI55MBZ5-DU2b_N30.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-DAjkhhUU.js → chunk-FMBD7UC4-BgExcScw.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-DAjkhhUU.js.map → chunk-FMBD7UC4-BgExcScw.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-CK6TY7IE.js → chunk-QN33PNHL-bitxyqh7.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-CK6TY7IE.js.map → chunk-QN33PNHL-bitxyqh7.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-CketngiE.js → chunk-QZHKN3VN-Cor8u7DT.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-CketngiE.js.map → chunk-QZHKN3VN-Cor8u7DT.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-Bcuvqo45.js → chunk-TZMSLE5B-Aceoxav_.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-Bcuvqo45.js.map → chunk-TZMSLE5B-Aceoxav_.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-CaP4T3r4.js → classDiagram-2ON5EDUG-D1Q6a8Hg.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-CaP4T3r4.js.map → classDiagram-2ON5EDUG-D1Q6a8Hg.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-CaP4T3r4.js → classDiagram-v2-WZHVMYZB-D1Q6a8Hg.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-CaP4T3r4.js.map → classDiagram-v2-WZHVMYZB-D1Q6a8Hg.js.map} +1 -1
- package/dist/static/assets/{clone-C-JULvnG.js → clone-MlWbv1V0.js} +2 -2
- package/dist/static/assets/{clone-C-JULvnG.js.map → clone-MlWbv1V0.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-vXCmi_eC.js → cose-bilkent-S5V4N54A-DWPCXSrn.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-vXCmi_eC.js.map → cose-bilkent-S5V4N54A-DWPCXSrn.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-bhGzX6kO.js → dagre-6UL2VRFP-C8ptQ9V3.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-bhGzX6kO.js.map → dagre-6UL2VRFP-C8ptQ9V3.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-BUKfmfGk.js → diagram-PSM6KHXK-Bgf1FqkE.js} +8 -8
- package/dist/static/assets/{diagram-PSM6KHXK-BUKfmfGk.js.map → diagram-PSM6KHXK-Bgf1FqkE.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-DYlq3uFq.js → diagram-QEK2KX5R-BZ5xzofU.js} +7 -7
- package/dist/static/assets/{diagram-QEK2KX5R-DYlq3uFq.js.map → diagram-QEK2KX5R-BZ5xzofU.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-CjxkLHWG.js → diagram-S2PKOQOG-Dwp47T9I.js} +7 -7
- package/dist/static/assets/{diagram-S2PKOQOG-CjxkLHWG.js.map → diagram-S2PKOQOG-Dwp47T9I.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-S3hR85On.js → erDiagram-Q2GNP2WA-Cx4weIHl.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-S3hR85On.js.map → erDiagram-Q2GNP2WA-Cx4weIHl.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-aBmNMuQ0.js → flowDiagram-NV44I4VS-vNUuIeRk.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-aBmNMuQ0.js.map → flowDiagram-NV44I4VS-vNUuIeRk.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-DJxXaiW1.js → ganttDiagram-JELNMOA3-BEfozJAr.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-DJxXaiW1.js.map → ganttDiagram-JELNMOA3-BEfozJAr.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-DEOBCM0G.js → gitGraphDiagram-V2S2FVAM-eHxwc3d9.js} +8 -8
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-DEOBCM0G.js.map → gitGraphDiagram-V2S2FVAM-eHxwc3d9.js.map} +1 -1
- package/dist/static/assets/{graph-DwrKSIE7.js → graph-C6a6uAok.js} +3 -3
- package/dist/static/assets/{graph-DwrKSIE7.js.map → graph-C6a6uAok.js.map} +1 -1
- package/dist/static/assets/{index-HWTRvE2k.js → index-D3TQbAKh.js} +383 -59
- package/dist/static/assets/index-D3TQbAKh.js.map +1 -0
- package/dist/static/assets/{infoDiagram-HS3SLOUP-BH9kVuYd.js → infoDiagram-HS3SLOUP-CX0NiId3.js} +6 -6
- package/dist/static/assets/{infoDiagram-HS3SLOUP-BH9kVuYd.js.map → infoDiagram-HS3SLOUP-CX0NiId3.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-Dap7AcjR.js → journeyDiagram-XKPGCS4Q-C1IepPZ-.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-Dap7AcjR.js.map → journeyDiagram-XKPGCS4Q-C1IepPZ-.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-4NOl8MEj.js → kanban-definition-3W4ZIXB7-uMNX4Z1W.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-4NOl8MEj.js.map → kanban-definition-3W4ZIXB7-uMNX4Z1W.js.map} +1 -1
- package/dist/static/assets/{layout-D6uIxu1E.js → layout-CpE3kk5z.js} +5 -5
- package/dist/static/assets/{layout-D6uIxu1E.js.map → layout-CpE3kk5z.js.map} +1 -1
- package/dist/static/assets/{linear-CvBOGQA2.js → linear-DV8laXr9.js} +2 -2
- package/dist/static/assets/{linear-CvBOGQA2.js.map → linear-DV8laXr9.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-ugsrLNY5.js → mindmap-definition-VGOIOE7T-CKjgVM9S.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-ugsrLNY5.js.map → mindmap-definition-VGOIOE7T-CKjgVM9S.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-CdVZjM8g.js → pieDiagram-ADFJNKIX-BBonlNyT.js} +8 -8
- package/dist/static/assets/{pieDiagram-ADFJNKIX-CdVZjM8g.js.map → pieDiagram-ADFJNKIX-BBonlNyT.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-A6m5lZKd.js → quadrantDiagram-AYHSOK5B-BTI8HbBu.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-A6m5lZKd.js.map → quadrantDiagram-AYHSOK5B-BTI8HbBu.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-Cac3zSJH.js → requirementDiagram-UZGBJVZJ-ZtSr9Q5R.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-Cac3zSJH.js.map → requirementDiagram-UZGBJVZJ-ZtSr9Q5R.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DXDdUUl1.js → sankeyDiagram-TZEHDZUN-DibLVGzg.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DXDdUUl1.js.map → sankeyDiagram-TZEHDZUN-DibLVGzg.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-Domsjl5Y.js → sequenceDiagram-WL72ISMW-qXatfzVt.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-Domsjl5Y.js.map → sequenceDiagram-WL72ISMW-qXatfzVt.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bu0lRQK1.js → stateDiagram-FKZM4ZOC-7fgxCQHo.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bu0lRQK1.js.map → stateDiagram-FKZM4ZOC-7fgxCQHo.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-D0K-n3ic.js → stateDiagram-v2-4FDKWEC3-DcWlOAnF.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-D0K-n3ic.js.map → stateDiagram-v2-4FDKWEC3-DcWlOAnF.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-BGvpddwR.js → timeline-definition-IT6M3QCI-iX2MRdpY.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-BGvpddwR.js.map → timeline-definition-IT6M3QCI-iX2MRdpY.js.map} +1 -1
- package/dist/static/assets/{treemap-GDKQZRPO-BoOzOm2j.js → treemap-GDKQZRPO-AVRnyXu1.js} +5 -5
- package/dist/static/assets/{treemap-GDKQZRPO-BoOzOm2j.js.map → treemap-GDKQZRPO-AVRnyXu1.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-C_h3_ICR.js → xychartDiagram-PRI3JC2R-DVYEo5aJ.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-C_h3_ICR.js.map → xychartDiagram-PRI3JC2R-DVYEo5aJ.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/team.js +52 -48
- package/dist/tellask.js +439 -0
- package/dist/tools/context-health.js +177 -0
- package/dist/tools/diag.js +583 -0
- package/dist/tools/fs.js +194 -68
- package/dist/tools/prompts/memory/en/principles.md +13 -5
- package/dist/tools/prompts/memory/en/tools.md +11 -36
- package/dist/tools/prompts/memory/zh/principles.md +18 -8
- package/dist/tools/prompts/memory/zh/tools.md +11 -36
- package/dist/tools/team-mgmt.js +3487 -0
- package/dist/utils/task-doc.js +236 -0
- package/package.json +1 -1
- package/dist/static/assets/index-HWTRvE2k.js.map +0 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.contextHealthReminderOwner = void 0;
|
|
4
|
+
const driver_messages_1 = require("../shared/i18n/driver-messages");
|
|
5
|
+
const runtime_language_1 = require("../shared/runtime-language");
|
|
6
|
+
function isRecord(value) {
|
|
7
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
8
|
+
}
|
|
9
|
+
// Reminder meta is persisted as JSON and may come from disk; runtime validation is required.
|
|
10
|
+
function isContextHealthReminderMeta(value) {
|
|
11
|
+
if (!isRecord(value))
|
|
12
|
+
return false;
|
|
13
|
+
if (value['kind'] !== 'critical_countdown')
|
|
14
|
+
return false;
|
|
15
|
+
const remaining = value['remainingGenTurns'];
|
|
16
|
+
return typeof remaining === 'number' && Number.isFinite(remaining);
|
|
17
|
+
}
|
|
18
|
+
function clampRemainingGenTurns(n) {
|
|
19
|
+
const floored = Math.floor(n);
|
|
20
|
+
if (floored < 0)
|
|
21
|
+
return 0;
|
|
22
|
+
if (floored > 5)
|
|
23
|
+
return 5;
|
|
24
|
+
return floored;
|
|
25
|
+
}
|
|
26
|
+
function isLastContextHealthFromCurrentGeneration(dlg) {
|
|
27
|
+
const active = dlg.activeGenSeqOrUndefined;
|
|
28
|
+
const snapSeq = dlg.getLastContextHealthGenseq();
|
|
29
|
+
return active !== undefined && snapSeq !== undefined && active === snapSeq;
|
|
30
|
+
}
|
|
31
|
+
function formatContextHealthOwnerHeader(args) {
|
|
32
|
+
const { language, indexHuman, snapshot } = args;
|
|
33
|
+
const remainingGenTurns = typeof args.remainingGenTurns === 'number' ? args.remainingGenTurns : undefined;
|
|
34
|
+
if (language === 'zh') {
|
|
35
|
+
const lines = [
|
|
36
|
+
'📋',
|
|
37
|
+
`【系统托管提醒项 #${indexHuman}:上下文健康 / owner=context_health】`,
|
|
38
|
+
'- 自动更新/自动消失;不要手工 delete_reminder',
|
|
39
|
+
];
|
|
40
|
+
if (!snapshot) {
|
|
41
|
+
lines.push('- 状态:未知(尚未获取上下文统计)');
|
|
42
|
+
lines.push('- 优先动作:change_mind(progress) → clear_mind');
|
|
43
|
+
return lines.join('\n');
|
|
44
|
+
}
|
|
45
|
+
if (snapshot.kind !== 'available') {
|
|
46
|
+
lines.push('- 状态:未知(token 统计不可用)');
|
|
47
|
+
lines.push('- 优先动作:change_mind(progress) → clear_mind');
|
|
48
|
+
return lines.join('\n');
|
|
49
|
+
}
|
|
50
|
+
switch (snapshot.level) {
|
|
51
|
+
case 'healthy': {
|
|
52
|
+
lines.push('- 状态:🟢 绿(健康)');
|
|
53
|
+
return lines.join('\n');
|
|
54
|
+
}
|
|
55
|
+
case 'caution': {
|
|
56
|
+
lines.push('- 状态:🟡 黄(警告)');
|
|
57
|
+
lines.push('- 优先动作:change_mind(progress) → clear_mind');
|
|
58
|
+
return lines.join('\n');
|
|
59
|
+
}
|
|
60
|
+
case 'critical': {
|
|
61
|
+
lines.push('- 状态:🔴 红(危险)');
|
|
62
|
+
if (remainingGenTurns !== undefined) {
|
|
63
|
+
lines.push(`- 倒数:剩余 ${remainingGenTurns} 次生成机会;到 0 系统将自动开启新一轮以保持稳定性`);
|
|
64
|
+
}
|
|
65
|
+
lines.push('- 立刻:change_mind(progress) → clear_mind');
|
|
66
|
+
return lines.join('\n');
|
|
67
|
+
}
|
|
68
|
+
default: {
|
|
69
|
+
const _exhaustive = snapshot.level;
|
|
70
|
+
return _exhaustive;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const lines = [
|
|
75
|
+
'📋',
|
|
76
|
+
`【System-managed reminder item #${indexHuman}: context health / owner=context_health】`,
|
|
77
|
+
'- Auto-updating/auto-dropping; do not manually delete_reminder',
|
|
78
|
+
];
|
|
79
|
+
if (!snapshot) {
|
|
80
|
+
lines.push('- Status: unknown (no context stats yet)');
|
|
81
|
+
lines.push('- Priority: change_mind(progress) → clear_mind');
|
|
82
|
+
return lines.join('\n');
|
|
83
|
+
}
|
|
84
|
+
if (snapshot.kind !== 'available') {
|
|
85
|
+
lines.push('- Status: unknown (token usage unavailable)');
|
|
86
|
+
lines.push('- Priority: change_mind(progress) → clear_mind');
|
|
87
|
+
return lines.join('\n');
|
|
88
|
+
}
|
|
89
|
+
switch (snapshot.level) {
|
|
90
|
+
case 'healthy': {
|
|
91
|
+
lines.push('- Status: 🟢 green (healthy)');
|
|
92
|
+
return lines.join('\n');
|
|
93
|
+
}
|
|
94
|
+
case 'caution': {
|
|
95
|
+
lines.push('- Status: 🟡 yellow (caution)');
|
|
96
|
+
lines.push('- Priority: change_mind(progress) → clear_mind');
|
|
97
|
+
return lines.join('\n');
|
|
98
|
+
}
|
|
99
|
+
case 'critical': {
|
|
100
|
+
lines.push('- Status: 🔴 red (critical)');
|
|
101
|
+
if (remainingGenTurns !== undefined) {
|
|
102
|
+
lines.push(`- Countdown: ${remainingGenTurns} generations left; at 0 auto-start new round`);
|
|
103
|
+
}
|
|
104
|
+
lines.push('- Must: change_mind(progress) → clear_mind');
|
|
105
|
+
return lines.join('\n');
|
|
106
|
+
}
|
|
107
|
+
default: {
|
|
108
|
+
const _exhaustive = snapshot.level;
|
|
109
|
+
return _exhaustive;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.contextHealthReminderOwner = {
|
|
114
|
+
name: 'context_health',
|
|
115
|
+
async updateReminder(dlg, reminder) {
|
|
116
|
+
if (reminder.owner !== exports.contextHealthReminderOwner) {
|
|
117
|
+
return { treatment: 'keep' };
|
|
118
|
+
}
|
|
119
|
+
const snapshot = dlg.getLastContextHealth();
|
|
120
|
+
if (!snapshot) {
|
|
121
|
+
return { treatment: 'keep' };
|
|
122
|
+
}
|
|
123
|
+
if (snapshot.kind !== 'available') {
|
|
124
|
+
return {
|
|
125
|
+
treatment: 'update',
|
|
126
|
+
updatedContent: (0, driver_messages_1.formatContextHealthReminderText)((0, runtime_language_1.getWorkLanguage)(), {
|
|
127
|
+
kind: 'usage_unknown',
|
|
128
|
+
}),
|
|
129
|
+
updatedMeta: undefined,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
if (snapshot.level === 'healthy') {
|
|
133
|
+
return { treatment: 'drop' };
|
|
134
|
+
}
|
|
135
|
+
if (snapshot.level === 'caution') {
|
|
136
|
+
return {
|
|
137
|
+
treatment: 'update',
|
|
138
|
+
updatedContent: (0, driver_messages_1.formatContextHealthReminderText)((0, runtime_language_1.getWorkLanguage)(), {
|
|
139
|
+
kind: 'over_optimal',
|
|
140
|
+
}),
|
|
141
|
+
updatedMeta: undefined,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const meta = isContextHealthReminderMeta(reminder.meta) ? reminder.meta : undefined;
|
|
145
|
+
const initialized = meta !== undefined;
|
|
146
|
+
let remainingGenTurns = meta ? clampRemainingGenTurns(meta.remainingGenTurns) : 5;
|
|
147
|
+
if (initialized && isLastContextHealthFromCurrentGeneration(dlg) && remainingGenTurns > 0) {
|
|
148
|
+
remainingGenTurns -= 1;
|
|
149
|
+
}
|
|
150
|
+
const content = (0, driver_messages_1.formatContextHealthReminderText)((0, runtime_language_1.getWorkLanguage)(), {
|
|
151
|
+
kind: 'over_critical',
|
|
152
|
+
remainingGenTurns,
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
treatment: 'update',
|
|
156
|
+
updatedContent: content,
|
|
157
|
+
updatedMeta: { kind: 'critical_countdown', remainingGenTurns },
|
|
158
|
+
};
|
|
159
|
+
},
|
|
160
|
+
async renderReminder(dlg, reminder, index) {
|
|
161
|
+
const snapshot = dlg.getLastContextHealth();
|
|
162
|
+
const meta = isContextHealthReminderMeta(reminder.meta) ? reminder.meta : undefined;
|
|
163
|
+
const language = (0, runtime_language_1.getWorkLanguage)();
|
|
164
|
+
const header = formatContextHealthOwnerHeader({
|
|
165
|
+
language,
|
|
166
|
+
indexHuman: index + 1,
|
|
167
|
+
snapshot,
|
|
168
|
+
remainingGenTurns: meta ? clampRemainingGenTurns(meta.remainingGenTurns) : undefined,
|
|
169
|
+
});
|
|
170
|
+
const rendered = `${header}\n---\n${reminder.content}`;
|
|
171
|
+
return {
|
|
172
|
+
type: 'transient_guide_msg',
|
|
173
|
+
role: 'assistant',
|
|
174
|
+
content: rendered,
|
|
175
|
+
};
|
|
176
|
+
},
|
|
177
|
+
};
|