dominds 1.26.2 → 1.26.4
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/README.md +2 -0
- package/README.zh.md +2 -0
- package/dist/cli.js +10 -8
- package/dist/docs/cli-usage.md +1 -1
- package/dist/docs/cli-usage.zh.md +1 -1
- package/dist/llm/gen/mock.js +11 -3
- package/dist/llm/kernel-driver/context-health.d.ts +1 -0
- package/dist/llm/kernel-driver/context-health.js +7 -0
- package/dist/llm/kernel-driver/drive.js +25 -30
- package/dist/llm/kernel-driver/idle-reminder-wake.js +6 -2
- package/dist/llm/kernel-driver/reminder-context.d.ts +26 -0
- package/dist/llm/kernel-driver/reminder-context.js +82 -0
- package/dist/llm/kernel-driver/reply-guidance.js +10 -4
- package/dist/llm/kernel-driver/tellask-special.js +50 -35
- package/dist/mcp/supervisor.js +2 -2
- package/dist/minds/system-prompt-parts.js +30 -30
- package/dist/minds/system-prompt.js +63 -40
- package/dist/persistence.js +15 -1
- package/dist/runtime/driver-messages.d.ts +38 -7
- package/dist/runtime/driver-messages.js +320 -119
- package/dist/runtime/inter-dialog-format.js +24 -12
- package/dist/runtime/reply-prompt-copy.d.ts +8 -8
- package/dist/runtime/reply-prompt-copy.js +69 -38
- package/dist/server/api-routes.js +7 -2
- package/dist/server/certificates.js +65 -25
- package/dist/server/dominds-self-update.d.ts +1 -0
- package/dist/server/dominds-self-update.js +113 -56
- package/dist/supervisor-protocol.d.ts +2 -3
- package/dist/tools/mcp.js +12 -12
- package/dist/tools/prompts/control/en/index.md +2 -2
- package/dist/tools/prompts/control/en/principles.md +12 -12
- package/dist/tools/prompts/control/en/scenarios.md +5 -5
- package/dist/tools/prompts/control/en/tools.md +10 -10
- package/dist/tools/prompts/control/zh/index.md +3 -3
- package/dist/tools/prompts/control/zh/principles.md +12 -12
- package/dist/tools/prompts/control/zh/scenarios.md +7 -7
- package/dist/tools/prompts/control/zh/tools.md +11 -11
- package/dist/tools/prompts/mcp_admin/en/principles.md +4 -4
- package/dist/tools/prompts/mcp_admin/en/scenarios.md +1 -1
- package/dist/tools/prompts/mcp_admin/en/tools.md +3 -3
- package/dist/tools/prompts/mcp_admin/zh/principles.md +4 -4
- package/dist/tools/prompts/mcp_admin/zh/scenarios.md +1 -1
- package/dist/tools/prompts/mcp_admin/zh/tools.md +3 -3
- package/dist/tools/team_mgmt-mcp-manual.js +12 -12
- package/package.json +2 -1
- package/webapp/dist/assets/{_basePickBy-DUivPKf7.js → _basePickBy-mFK6EVZU.js} +3 -3
- package/webapp/dist/assets/{_basePickBy-DUivPKf7.js.map → _basePickBy-mFK6EVZU.js.map} +1 -1
- package/webapp/dist/assets/{_baseUniq-hcs024vD.js → _baseUniq-C8zyOqn7.js} +2 -2
- package/webapp/dist/assets/{_baseUniq-hcs024vD.js.map → _baseUniq-C8zyOqn7.js.map} +1 -1
- package/webapp/dist/assets/{arc-Dr6-FXp5.js → arc-Vdl3uhV8.js} +2 -2
- package/webapp/dist/assets/{arc-Dr6-FXp5.js.map → arc-Vdl3uhV8.js.map} +1 -1
- package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-DXqcDq4R.js → architectureDiagram-2XIMDMQ5-D3Xtb8u_.js} +7 -7
- package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-DXqcDq4R.js.map → architectureDiagram-2XIMDMQ5-D3Xtb8u_.js.map} +1 -1
- package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-IIP6LGXS.js → blockDiagram-WCTKOSBZ-Bozcnodw.js} +7 -7
- package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-IIP6LGXS.js.map → blockDiagram-WCTKOSBZ-Bozcnodw.js.map} +1 -1
- package/webapp/dist/assets/{c4Diagram-IC4MRINW-D_d3F9XD.js → c4Diagram-IC4MRINW-CLkxlY6N.js} +3 -3
- package/webapp/dist/assets/{c4Diagram-IC4MRINW-D_d3F9XD.js.map → c4Diagram-IC4MRINW-CLkxlY6N.js.map} +1 -1
- package/webapp/dist/assets/{channel-CWWjsXtU.js → channel-CqGyLCM_.js} +2 -2
- package/webapp/dist/assets/{channel-CWWjsXtU.js.map → channel-CqGyLCM_.js.map} +1 -1
- package/webapp/dist/assets/{chunk-4BX2VUAB-BF4yph2W.js → chunk-4BX2VUAB-BNsJpMh4.js} +2 -2
- package/webapp/dist/assets/{chunk-4BX2VUAB-BF4yph2W.js.map → chunk-4BX2VUAB-BNsJpMh4.js.map} +1 -1
- package/webapp/dist/assets/{chunk-55IACEB6-Hn3CmDYz.js → chunk-55IACEB6-B59p6vzX.js} +2 -2
- package/webapp/dist/assets/{chunk-55IACEB6-Hn3CmDYz.js.map → chunk-55IACEB6-B59p6vzX.js.map} +1 -1
- package/webapp/dist/assets/{chunk-FMBD7UC4-C05pl9Ov.js → chunk-FMBD7UC4-CB17a_Ki.js} +2 -2
- package/webapp/dist/assets/{chunk-FMBD7UC4-C05pl9Ov.js.map → chunk-FMBD7UC4-CB17a_Ki.js.map} +1 -1
- package/webapp/dist/assets/{chunk-JSJVCQXG-BVlq_BAS.js → chunk-JSJVCQXG-DVnVflN-.js} +2 -2
- package/webapp/dist/assets/{chunk-JSJVCQXG-BVlq_BAS.js.map → chunk-JSJVCQXG-DVnVflN-.js.map} +1 -1
- package/webapp/dist/assets/{chunk-KX2RTZJC-BQoaRWif.js → chunk-KX2RTZJC-D9_5LvIO.js} +2 -2
- package/webapp/dist/assets/{chunk-KX2RTZJC-BQoaRWif.js.map → chunk-KX2RTZJC-D9_5LvIO.js.map} +1 -1
- package/webapp/dist/assets/{chunk-NQ4KR5QH-0okCAXtW.js → chunk-NQ4KR5QH-CZWI2G2c.js} +4 -4
- package/webapp/dist/assets/{chunk-NQ4KR5QH-0okCAXtW.js.map → chunk-NQ4KR5QH-CZWI2G2c.js.map} +1 -1
- package/webapp/dist/assets/{chunk-QZHKN3VN-DEiprgz-.js → chunk-QZHKN3VN-WCLg8cNX.js} +2 -2
- package/webapp/dist/assets/{chunk-QZHKN3VN-DEiprgz-.js.map → chunk-QZHKN3VN-WCLg8cNX.js.map} +1 -1
- package/webapp/dist/assets/{chunk-WL4C6EOR-B-Xkb3lo.js → chunk-WL4C6EOR-BFkz_P__.js} +6 -6
- package/webapp/dist/assets/{chunk-WL4C6EOR-B-Xkb3lo.js.map → chunk-WL4C6EOR-BFkz_P__.js.map} +1 -1
- package/webapp/dist/assets/{classDiagram-VBA2DB6C-DCCQrdwF.js → classDiagram-VBA2DB6C-DWQ1VnaI.js} +7 -7
- package/webapp/dist/assets/{classDiagram-VBA2DB6C-DCCQrdwF.js.map → classDiagram-VBA2DB6C-DWQ1VnaI.js.map} +1 -1
- package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-DCCQrdwF.js → classDiagram-v2-RAHNMMFH-DWQ1VnaI.js} +7 -7
- package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-DCCQrdwF.js.map → classDiagram-v2-RAHNMMFH-DWQ1VnaI.js.map} +1 -1
- package/webapp/dist/assets/{clone-Drtik9pk.js → clone-D3QHqx6z.js} +2 -2
- package/webapp/dist/assets/{clone-Drtik9pk.js.map → clone-D3QHqx6z.js.map} +1 -1
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-BBWvHErL.js → cose-bilkent-S5V4N54A-D2dZHRG3.js} +2 -2
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-BBWvHErL.js.map → cose-bilkent-S5V4N54A-D2dZHRG3.js.map} +1 -1
- package/webapp/dist/assets/{dagre-KLK3FWXG-2qk0ikdt.js → dagre-KLK3FWXG-Cwz7pFDo.js} +7 -7
- package/webapp/dist/assets/{dagre-KLK3FWXG-2qk0ikdt.js.map → dagre-KLK3FWXG-Cwz7pFDo.js.map} +1 -1
- package/webapp/dist/assets/{diagram-E7M64L7V-C1DbHDbf.js → diagram-E7M64L7V-C6z0VVoW.js} +8 -8
- package/webapp/dist/assets/{diagram-E7M64L7V-C1DbHDbf.js.map → diagram-E7M64L7V-C6z0VVoW.js.map} +1 -1
- package/webapp/dist/assets/{diagram-IFDJBPK2-DToz8zk9.js → diagram-IFDJBPK2-CZ1KR1hO.js} +7 -7
- package/webapp/dist/assets/{diagram-IFDJBPK2-DToz8zk9.js.map → diagram-IFDJBPK2-CZ1KR1hO.js.map} +1 -1
- package/webapp/dist/assets/{diagram-P4PSJMXO-B9V-tQMe.js → diagram-P4PSJMXO-ChwZDZYa.js} +7 -7
- package/webapp/dist/assets/{diagram-P4PSJMXO-B9V-tQMe.js.map → diagram-P4PSJMXO-ChwZDZYa.js.map} +1 -1
- package/webapp/dist/assets/{erDiagram-INFDFZHY-CV68FwGf.js → erDiagram-INFDFZHY-DCnHsk_Z.js} +5 -5
- package/webapp/dist/assets/{erDiagram-INFDFZHY-CV68FwGf.js.map → erDiagram-INFDFZHY-DCnHsk_Z.js.map} +1 -1
- package/webapp/dist/assets/{flowDiagram-PKNHOUZH-CW06almb.js → flowDiagram-PKNHOUZH-C5Hi85ST.js} +7 -7
- package/webapp/dist/assets/{flowDiagram-PKNHOUZH-CW06almb.js.map → flowDiagram-PKNHOUZH-C5Hi85ST.js.map} +1 -1
- package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-C96NncCU.js → ganttDiagram-A5KZAMGK-vT15RP6A.js} +3 -3
- package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-C96NncCU.js.map → ganttDiagram-A5KZAMGK-vT15RP6A.js.map} +1 -1
- package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-CAuIexWi.js → gitGraphDiagram-K3NZZRJ6-Ct5XDpFu.js} +8 -8
- package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-CAuIexWi.js.map → gitGraphDiagram-K3NZZRJ6-Ct5XDpFu.js.map} +1 -1
- package/webapp/dist/assets/{graph-CvhwAY6w.js → graph-CqFTrHii.js} +3 -3
- package/webapp/dist/assets/{graph-CvhwAY6w.js.map → graph-CqFTrHii.js.map} +1 -1
- package/webapp/dist/assets/{index-BOO_zFrI.js → index-C_PzQ5W5.js} +600 -400
- package/webapp/dist/assets/{index-BOO_zFrI.js.map → index-C_PzQ5W5.js.map} +1 -1
- package/webapp/dist/assets/{infoDiagram-LFFYTUFH-C16Sckpz.js → infoDiagram-LFFYTUFH-DlyOw8IT.js} +6 -6
- package/webapp/dist/assets/{infoDiagram-LFFYTUFH-C16Sckpz.js.map → infoDiagram-LFFYTUFH-DlyOw8IT.js.map} +1 -1
- package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-oNG6I0p3.js → ishikawaDiagram-PHBUUO56-iZCVn19K.js} +2 -2
- package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-oNG6I0p3.js.map → ishikawaDiagram-PHBUUO56-iZCVn19K.js.map} +1 -1
- package/webapp/dist/assets/{journeyDiagram-4ABVD52K-437hhFHC.js → journeyDiagram-4ABVD52K-B95gnBKj.js} +5 -5
- package/webapp/dist/assets/{journeyDiagram-4ABVD52K-437hhFHC.js.map → journeyDiagram-4ABVD52K-B95gnBKj.js.map} +1 -1
- package/webapp/dist/assets/{kanban-definition-K7BYSVSG-DsCV_Tpx.js → kanban-definition-K7BYSVSG-DQ2gfPUK.js} +3 -3
- package/webapp/dist/assets/{kanban-definition-K7BYSVSG-DsCV_Tpx.js.map → kanban-definition-K7BYSVSG-DQ2gfPUK.js.map} +1 -1
- package/webapp/dist/assets/{layout-BttZf7fQ.js → layout-VOBFudHV.js} +5 -5
- package/webapp/dist/assets/{layout-BttZf7fQ.js.map → layout-VOBFudHV.js.map} +1 -1
- package/webapp/dist/assets/{linear-B75vD4Ho.js → linear-BtBp93s2.js} +2 -2
- package/webapp/dist/assets/{linear-B75vD4Ho.js.map → linear-BtBp93s2.js.map} +1 -1
- package/webapp/dist/assets/{mindmap-definition-YRQLILUH-DA1-XaNi.js → mindmap-definition-YRQLILUH-m2w1nBbY.js} +4 -4
- package/webapp/dist/assets/{mindmap-definition-YRQLILUH-DA1-XaNi.js.map → mindmap-definition-YRQLILUH-m2w1nBbY.js.map} +1 -1
- package/webapp/dist/assets/{pieDiagram-SKSYHLDU-Bx6hUJ4Q.js → pieDiagram-SKSYHLDU-ByoyS2as.js} +8 -8
- package/webapp/dist/assets/{pieDiagram-SKSYHLDU-Bx6hUJ4Q.js.map → pieDiagram-SKSYHLDU-ByoyS2as.js.map} +1 -1
- package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-zyduIle0.js → quadrantDiagram-337W2JSQ-BnKSsLfA.js} +3 -3
- package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-zyduIle0.js.map → quadrantDiagram-337W2JSQ-BnKSsLfA.js.map} +1 -1
- package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-BgfjyEJM.js → requirementDiagram-Z7DCOOCP-jU2C7qJN.js} +4 -4
- package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-BgfjyEJM.js.map → requirementDiagram-Z7DCOOCP-jU2C7qJN.js.map} +1 -1
- package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-lmOWaczS.js → sankeyDiagram-WA2Y5GQK-R175tX8b.js} +2 -2
- package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-lmOWaczS.js.map → sankeyDiagram-WA2Y5GQK-R175tX8b.js.map} +1 -1
- package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-DqJz-iYI.js → sequenceDiagram-2WXFIKYE-CBhN4j2Q.js} +4 -4
- package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-DqJz-iYI.js.map → sequenceDiagram-2WXFIKYE-CBhN4j2Q.js.map} +1 -1
- package/webapp/dist/assets/{stateDiagram-RAJIS63D-CngWYuX-.js → stateDiagram-RAJIS63D-DZSAyRfJ.js} +9 -9
- package/webapp/dist/assets/{stateDiagram-RAJIS63D-CngWYuX-.js.map → stateDiagram-RAJIS63D-DZSAyRfJ.js.map} +1 -1
- package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-BxyHvrvU.js → stateDiagram-v2-FVOUBMTO-x29lKJpl.js} +5 -5
- package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-BxyHvrvU.js.map → stateDiagram-v2-FVOUBMTO-x29lKJpl.js.map} +1 -1
- package/webapp/dist/assets/{timeline-definition-YZTLITO2-C7t6WVS3.js → timeline-definition-YZTLITO2-BQR2qEXt.js} +3 -3
- package/webapp/dist/assets/{timeline-definition-YZTLITO2-C7t6WVS3.js.map → timeline-definition-YZTLITO2-BQR2qEXt.js.map} +1 -1
- package/webapp/dist/assets/{treemap-KZPCXAKY-BDZ3n5TC.js → treemap-KZPCXAKY-b823qTE1.js} +5 -5
- package/webapp/dist/assets/{treemap-KZPCXAKY-BDZ3n5TC.js.map → treemap-KZPCXAKY-b823qTE1.js.map} +1 -1
- package/webapp/dist/assets/{vennDiagram-LZ73GAT5-CEw7GPed.js → vennDiagram-LZ73GAT5-BrxPNUYz.js} +2 -2
- package/webapp/dist/assets/{vennDiagram-LZ73GAT5-CEw7GPed.js.map → vennDiagram-LZ73GAT5-BrxPNUYz.js.map} +1 -1
- package/webapp/dist/assets/{xychartDiagram-JWTSCODW-DmS8BiaA.js → xychartDiagram-JWTSCODW-BgOzlz6Z.js} +3 -3
- package/webapp/dist/assets/{xychartDiagram-JWTSCODW-DmS8BiaA.js.map → xychartDiagram-JWTSCODW-BgOzlz6Z.js.map} +1 -1
- package/webapp/dist/index.html +1 -1
|
@@ -47,32 +47,32 @@ function buildFbrContextHealthScopeRule(scope, language, contextHealthPromptMode
|
|
|
47
47
|
if (contextHealthPromptMode === 'critical') {
|
|
48
48
|
return pickLocalized(language, {
|
|
49
49
|
zh: scope === 'mainDialog'
|
|
50
|
-
? '-
|
|
51
|
-
: '-
|
|
50
|
+
? '- Dominds 已提醒上下文告急:本程禁止发起 FBR。先按上下文保全要求把尚未落实到差遣牒、且下一程需要知会的讨论细节写入合适章节,再维护接续包提醒项,并立即 `clear_mind`;Dominds 真正开启新一程并完成接续包复核后,再恢复 FBR。'
|
|
51
|
+
: '- Dominds 已提醒上下文告急:本程禁止发起 FBR。你当前处于支线对话:不要维护差遣牒,也不要整理差遣牒更新提案;先按上下文保全要求维护足够详尽的接续包提醒项,并立即 `clear_mind`;Dominds 真正开启新一程并完成接续包复核后,再恢复 FBR。',
|
|
52
52
|
en: scope === 'mainDialog'
|
|
53
|
-
? '-
|
|
54
|
-
: '-
|
|
53
|
+
? '- Dominds has warned that context is critical: do not start FBR in this course. First write discussion details not yet in Taskdoc but needed by the next course into the appropriate sections, then maintain continuation-package reminders and clear immediately; resume FBR only after Dominds starts the new course and the continuation package has been reviewed.'
|
|
54
|
+
: '- Dominds has warned that context is critical: do not start FBR in this course. You are in a Side Dialog: do not maintain Taskdoc and do not draft Taskdoc update proposals; first maintain sufficiently detailed continuation-package reminders, then clear immediately. Resume FBR only after Dominds starts the new course and the continuation package has been reviewed.',
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
if (contextHealthPromptMode === 'caution') {
|
|
58
58
|
return pickLocalized(language, {
|
|
59
59
|
zh: scope === 'mainDialog'
|
|
60
|
-
? '-
|
|
61
|
-
: '-
|
|
60
|
+
? '- Dominds 已提醒上下文吃紧:本程不要发起 FBR。先按上下文保全要求把尚未落实到差遣牒、且下一程需要知会的讨论细节写入合适章节,再提炼提醒项并尽快 `clear_mind`;Dominds 真正开启新一程并完成接续包复核后,再恢复 FBR。'
|
|
61
|
+
: '- Dominds 已提醒上下文吃紧:本程不要发起 FBR。你当前处于支线对话:不要维护差遣牒,也不要整理差遣牒更新提案;先按上下文保全要求维护足够详尽的接续包提醒项并尽快 `clear_mind`;Dominds 真正开启新一程并完成接续包复核后,再恢复 FBR。',
|
|
62
62
|
en: scope === 'mainDialog'
|
|
63
|
-
? '-
|
|
64
|
-
: '-
|
|
63
|
+
? '- Dominds has warned that context is tight: do not start FBR in this course. First write discussion details not yet in Taskdoc but needed by the next course into the appropriate sections, then distill reminders and clear soon; resume FBR only after Dominds starts the new course and the continuation package has been reviewed.'
|
|
64
|
+
: '- Dominds has warned that context is tight: do not start FBR in this course. You are in a Side Dialog: do not maintain Taskdoc and do not draft Taskdoc update proposals; first maintain sufficiently detailed continuation-package reminders, then clear soon. Resume FBR only after Dominds starts the new course and the continuation package has been reviewed.',
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
if (scope === 'mainDialog') {
|
|
68
68
|
return pickLocalized(language, {
|
|
69
|
-
zh: '-
|
|
70
|
-
en: '- There is no active context-
|
|
69
|
+
zh: '- 当前没有生效中的上下文保全提示,可以按正常流程进行 FBR。完成 FBR 后,基于当前可观测事实调用 `mind_more` 或 `change_mind` 更新差遣牒,体现任务最新进展情况。FBR 自诉请正文不要冗余包含差遣牒已有信息。',
|
|
70
|
+
en: '- There is no active context-preservation notice in effect, so FBR may proceed normally. After FBR, call `mind_more` or `change_mind` based on currently observable facts to update the Taskdoc with the latest progress; do not redundantly include information already present in the Taskdoc in the FBR body.',
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
return pickLocalized(language, {
|
|
74
|
-
zh: '-
|
|
75
|
-
en: '- There is no active context-
|
|
74
|
+
zh: '- 当前没有生效中的上下文保全提示,可以按正常流程进行 FBR。随后基于当前可观测事实分析是否与差遣牒内容存在差异,并将发现的情况包含在 FBR 自诉请正文中。',
|
|
75
|
+
en: '- There is no active context-preservation notice in effect, so FBR may proceed normally. Then analyze whether currently observable facts differ from the Taskdoc, and include the findings in the FBR body.',
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
function buildFbrPhaseContract(language) {
|
|
@@ -104,9 +104,9 @@ function buildTeammateTellaskPhaseContract(language) {
|
|
|
104
104
|
'- 只有长线诉请(`tellask` + `sessionSlug`)能接着同一件事说、更新同一件正在做的事;一次性诉请(`tellaskSessionless`)做不到。再次发起 `tellaskSessionless` 只是另一件独立任务,不会更新、更不会要求旧任务停止;若你后来发现可能需要改要求/提前收口,一开始就不该选择 `tellaskSessionless`。',
|
|
105
105
|
'- 不要把智能体队友当成真人同事:祂不会因为你又发一条诉请而被打扰。同一个队友可以同时做多件独立任务,系统会分开处理。记住这个简单规则:同一个队友 + 同一个 `sessionSlug` = 接着同一件事说,并更新那件正在做的事;`tellaskSessionless` 或不同 `sessionSlug` = 另一件独立任务。只要任务独立、目标清楚,就直接并行诉请。',
|
|
106
106
|
'- 能由队友诉请完成的执行性工作,禁止转交 `askHuman` 做“转发员”;当你写“让 @X 执行 Y”时,必须在同一回复内直接发出 `tellask` 或 `tellaskSessionless`。',
|
|
107
|
-
`- 当你在诉请正文里定义“回贴格式/交付格式”时,只写业务交付结构即可;不要要求被诉请者手写 \`${runtimeMarkers.finalCompleted}\` / \`${runtimeMarkers.tellaskBack}\` / FBR 标记(\`${runtimeMarkers.fbrDirectReply}\` / \`${runtimeMarkers.fbrReasoningOnly}\`),这些标记由 Dominds
|
|
107
|
+
`- 当你在诉请正文里定义“回贴格式/交付格式”时,只写业务交付结构即可;不要要求被诉请者手写 \`${runtimeMarkers.finalCompleted}\` / \`${runtimeMarkers.tellaskBack}\` / FBR 标记(\`${runtimeMarkers.fbrDirectReply}\` / \`${runtimeMarkers.fbrReasoningOnly}\`),这些标记由 Dominds 自动注入。`,
|
|
108
108
|
'- 当你处于队友诉请触发的支线时,不要把“阻塞/不确定”默认等同于 `tellaskBack`:若按当前团队规程/SOP/职责卡已能明确判定执行负责人,直接用 `tellask` / `tellaskSessionless` 诉请对应负责人;只有确实需要诉请者补充需求、做裁决、澄清验收口径、提供缺失输入,或现有规程无法明确判责时,才使用 `tellaskBack`。`tellaskBack` 不携带 `sessionSlug`。',
|
|
109
|
-
`-
|
|
109
|
+
`- 回贴文本标记由 Dominds 在跨对话传递正文中按语义自动添加(例如 \`${runtimeMarkers.tellaskBack}\` / \`${runtimeMarkers.finalCompleted}\` / FBR 标记 \`${runtimeMarkers.fbrDirectReply}\` / \`${runtimeMarkers.fbrReasoningOnly}\`);该传递正文会进入目标智能体上下文,且 UI 与其一致。你不应手写这些标记。`,
|
|
110
110
|
],
|
|
111
111
|
en: [
|
|
112
112
|
'- Teammate Tellasks MUST follow four phases: “initiate -> wait -> judge -> continue”. If the objective is not met, immediately send the next Tellask round.',
|
|
@@ -117,44 +117,50 @@ function buildTeammateTellaskPhaseContract(language) {
|
|
|
117
117
|
'- Only a sessioned Tellask (`tellask` + `sessionSlug`) can continue the same task and update that task. A one-shot Tellask (`tellaskSessionless`) cannot: another `tellaskSessionless` is a separate task and does not update, stop, or instruct the earlier task to stop. If you may need later correction or earlier wrap-up, do not choose `tellaskSessionless` in the first place.',
|
|
118
118
|
'- Do not treat an agent teammate like a human coworker who can only handle one conversation at a time. The same teammate can work on several independent tasks at once, and the system keeps them separate. Simple rule: same teammate + same `sessionSlug` = continue the same task and update that task; `tellaskSessionless` or a different `sessionSlug` = another independent task. When tasks are independent and clear, tellask in parallel.',
|
|
119
119
|
'- Do not use `askHuman` as a relay for executable teammate work. If you write “ask @X to do Y”, emit `tellask` or `tellaskSessionless` in the same response.',
|
|
120
|
-
`- When you define a “reply/delivery format” inside tellask body, keep it to the business delivery structure; do not require the tellaskee to hand-write \`${runtimeMarkers.finalCompleted}\` / \`${runtimeMarkers.tellaskBack}\` / FBR markers (\`${runtimeMarkers.fbrDirectReply}\` / \`${runtimeMarkers.fbrReasoningOnly}\`), because Dominds
|
|
120
|
+
`- When you define a “reply/delivery format” inside tellask body, keep it to the business delivery structure; do not require the tellaskee to hand-write \`${runtimeMarkers.finalCompleted}\` / \`${runtimeMarkers.tellaskBack}\` / FBR markers (\`${runtimeMarkers.fbrDirectReply}\` / \`${runtimeMarkers.fbrReasoningOnly}\`), because Dominds injects those markers automatically.`,
|
|
121
121
|
'- In a teammate-triggered Side Dialog, do not treat “blocked / uncertain” as an automatic `tellaskBack`: if current team SOP / role ownership already identifies the responsible executor, directly use `tellask` / `tellaskSessionless` for that owner; use `tellaskBack` only when you truly need the tellasker to clarify, decide, confirm acceptance criteria, provide missing input, or when existing SOP cannot determine ownership. `tellaskBack` must not carry `sessionSlug`.',
|
|
122
|
-
`- Reply markers are auto-added by
|
|
122
|
+
`- Reply markers are auto-added by Dominds in the inter-dialog transfer payload (for example \`${runtimeMarkers.tellaskBack}\` / \`${runtimeMarkers.finalCompleted}\` / FBR markers \`${runtimeMarkers.fbrDirectReply}\` / \`${runtimeMarkers.fbrReasoningOnly}\`); that same transfer payload is what the target agent receives in context and what UI shows. Do not hand-write markers.`,
|
|
123
123
|
],
|
|
124
124
|
});
|
|
125
125
|
return lines.join('\n');
|
|
126
126
|
}
|
|
127
127
|
function buildSideDialogTellaskerReplyMarkerRules(language) {
|
|
128
128
|
const runtimeMarkers = (0, inter_dialog_format_1.getRuntimeTransferMarkers)(language);
|
|
129
|
+
// Business scenario: Side Dialogs use the same visible conversation surface for three very
|
|
130
|
+
// different acts: asking another teammate (`tellask*`), asking the requester a question
|
|
131
|
+
// (`tellaskBack`), and sending the final answer back through a runtime-selected reply tool.
|
|
132
|
+
// Models often blur those acts when the prompt names all tools at once. These rules deliberately
|
|
133
|
+
// make runtime the authority for "is somebody waiting for my final reply" and "which reply tool
|
|
134
|
+
// sends it", while leaving business ownership/SOP decisions to the model.
|
|
129
135
|
const lines = pickLocalized(language, {
|
|
130
136
|
zh: [
|
|
131
137
|
'- 本规则仅用于当前支线向诉请者回复;`tellask` 用于**发起新的下游诉请对话**(委托队友做事),不用于向诉请者汇报。',
|
|
132
138
|
'- 当前支线未完成时,不要默认直接 `tellaskBack`。先判断当前团队规程/SOP/职责卡能否明确负责人:若能明确且属于执行性处理,直接 `tellask` / `tellaskSessionless` 对应负责人;只有当必须向诉请者补充需求、做业务裁决、澄清验收口径、提供缺失输入,或现有规程无法明确判责时,才发起 `tellaskBack({ tellaskContent: "..." })`,并在 `tellaskContent` 中给出具体问题。',
|
|
133
|
-
'-
|
|
134
|
-
'-
|
|
135
|
-
`-
|
|
136
|
-
'-
|
|
137
|
-
'- "不得发普通文本中间汇报"
|
|
139
|
+
'- 是否有别的对话正在等你发送最终回贴、以及发送时该用哪个精确回复工具,均由 Dominds 根据当前对话状态判断;Dominds 会在任务开头或最新 Dominds/user 提示里直接点名。',
|
|
140
|
+
'- 若 Dominds 点名了精确回复工具,你只需调用那个被点名的工具;不要自己从历史上下文猜工具变体。禁止调用 `tellaskBack` 发送最终结果,也禁止用 `tellask` 向诉请者发送最终结果。',
|
|
141
|
+
`- 正式完成路径:只有在 Dominds 当前明确点名了某个精确回复工具,且你通过那个工具回复时,Dominds 才会把该回复作为完成结果投递给诉请者,并在传递正文中添加 ${runtimeMarkers.finalCompleted}。不要只发普通文本;对方可能收不到正式回贴。`,
|
|
142
|
+
'- 若 Dominds 当前明确提示“无需回贴”,说明这就是当前对话里的普通回合;按当前用户/Dominds 消息正常交流和处理即可。',
|
|
143
|
+
'- "不得发普通文本中间汇报"只针对未完成态;若你已经完成任务并能给出最终交付,就应使用 Dominds 当前点名的精确回复工具,不要使用 `tellaskBack` 或 `tellask`。',
|
|
138
144
|
'- 例外:FBR 支线为工具禁用模式(不得调用 `tellaskBack`);其回贴标记(`' +
|
|
139
145
|
runtimeMarkers.fbrDirectReply +
|
|
140
146
|
'` / `' +
|
|
141
147
|
runtimeMarkers.fbrReasoningOnly +
|
|
142
|
-
'`)
|
|
148
|
+
'`)也由 Dominds 在传递正文中注入。',
|
|
143
149
|
'- 若人类用户在支线对话中插入消息或补问:直接正常回复即可,不需要向诉请者汇报(支线不需要主动汇报诉请者,默认行为就是直接回复)。',
|
|
144
150
|
],
|
|
145
151
|
en: [
|
|
146
152
|
'- This rule applies only when replying to the tellasker from the current Side Dialog; tellask is for initiating a new downstream tellask dialog (delegating work to a teammate), not for reporting back to the tellasker.',
|
|
147
153
|
'- If the current Side Dialog is unfinished, do not default to `tellaskBack`. First judge whether current team SOP / role ownership already identifies the responsible executor: if yes and the issue is execution work, directly use `tellask` / `tellaskSessionless` for that owner; use `tellaskBack({ tellaskContent: "..." })` only when the tellasker must provide clarification, business decision, acceptance-criteria confirmation, missing input, or when existing SOP cannot determine ownership. Put concrete questions in `tellaskContent`.',
|
|
148
|
-
'-
|
|
149
|
-
'- If
|
|
150
|
-
`- Formal completion path: only replies sent through the exact reply
|
|
151
|
-
'- If
|
|
152
|
-
'- "Do not post a plain-text progress update" only applies to unfinished states; if the task is done and you can deliver the final result, use the exact reply
|
|
154
|
+
'- Dominds decides from the current dialog state whether another dialog is waiting for your final reply, and which exact reply tool sends it; Dominds will state that directly in the task header or the latest Dominds/user prompt.',
|
|
155
|
+
'- If Dominds names an exact reply tool, call that named tool and do not choose a variant by yourself. Do not use `tellaskBack` or `tellask` to send final delivery.',
|
|
156
|
+
`- Formal completion path: only replies sent through the exact reply tool currently named by Dominds are delivered to the tellasker as completion results and marked with ${runtimeMarkers.finalCompleted}. Do not rely on plain text; the other dialog may not receive a formal reply that way.`,
|
|
157
|
+
'- If Dominds explicitly says no reply is needed right now, this is just a normal turn in the current conversation; handle the current user/Dominds message normally.',
|
|
158
|
+
'- "Do not post a plain-text progress update" only applies to unfinished states; if the task is done and you can deliver the final result, use the exact reply tool currently named by Dominds instead of `tellaskBack` or `tellask`.',
|
|
153
159
|
'- Exception: FBR Side Dialog is tool-less (no \`tellaskBack\`); its reply markers (`' +
|
|
154
160
|
runtimeMarkers.fbrDirectReply +
|
|
155
161
|
'` / `' +
|
|
156
162
|
runtimeMarkers.fbrReasoningOnly +
|
|
157
|
-
'`) are also injected by
|
|
163
|
+
'`) are also injected by Dominds into the transfer payload.',
|
|
158
164
|
'- If a human user inserts a message or asks a follow-up in the Side Dialog: just reply normally; no need to report back to the tellasker (Side Dialog has no standing obligation to report to the tellasker).',
|
|
159
165
|
],
|
|
160
166
|
});
|
|
@@ -163,25 +169,34 @@ function buildSideDialogTellaskerReplyMarkerRules(language) {
|
|
|
163
169
|
function buildTellaskReplyMarkerScopePolicy(language, dialogScope) {
|
|
164
170
|
const runtimeMarkers = (0, inter_dialog_format_1.getRuntimeTransferMarkers)(language);
|
|
165
171
|
if (dialogScope === 'sideDialog') {
|
|
172
|
+
// Business scenario: this policy is embedded in the standing Side Dialog system prompt, so
|
|
173
|
+
// it must teach the stable rule without forcing the model to infer the live state. The live
|
|
174
|
+
// state comes from runtime prompts such as "[Dominds 回复路径]" or "[Dominds 无需回贴]"; this
|
|
175
|
+
// standing text only says how to obey those runtime facts when they appear.
|
|
176
|
+
//
|
|
177
|
+
// The "no reply needed" wording is deliberately phrased as "normal current turn" instead of
|
|
178
|
+
// as a broad tool/reminder prohibition. A completed Sideline Dialog follow-up may still need
|
|
179
|
+
// tools, reminder cleanup, or ordinary explanation if the user asks for them; the key business
|
|
180
|
+
// fact is only that no requester is waiting for formal final delivery anymore.
|
|
166
181
|
return [
|
|
167
182
|
...pickLocalized(language, {
|
|
168
183
|
zh: [
|
|
169
|
-
`-
|
|
170
|
-
'-
|
|
184
|
+
`- 回贴文本标记由 Dominds 在跨对话传递正文中自动添加(常规完成=${runtimeMarkers.finalCompleted};FBR=${runtimeMarkers.fbrDirectReply} 或 ${runtimeMarkers.fbrReasoningOnly});该正文直接进入诉请者上下文,且 UI 展示与其一致。你无需、也不应手写标记。`,
|
|
185
|
+
'- 若你在正文中给下游写“回贴格式”,只写业务交付结构;不得要求下游手写任何标记,Dominds 会自动注入。',
|
|
171
186
|
'- `tellaskBack` 只允许用于回问诉请者;仅当必须向诉请者补需求/澄清/裁决/缺失输入,或现有团队规程无法明确判责时才使用。禁止用 `tellaskBack` 发送最终结果。',
|
|
172
187
|
'- 当前支线未完成时,不得把“阻塞/不确定”机械等同于 `tellaskBack`;若团队规程/SOP/职责卡已明确负责人,应直接 `tellask` / `tellaskSessionless` 对应负责人,不得发普通文本中间汇报。',
|
|
173
188
|
`- ${(0, reply_prompt_copy_1.buildSideDialogCompletionRule)('zh')}`,
|
|
174
|
-
`-
|
|
175
|
-
'-
|
|
189
|
+
`- 正式完成路径中,仅当 Dominds 当前明确点名了某个精确回复工具,且你通过那个工具回复时,Dominds 才会把该回复投递给诉请者并标注 ${runtimeMarkers.finalCompleted};不要只发普通文本,对方可能收不到正式回贴。`,
|
|
190
|
+
'- 若 Dominds 当前明确提示“无需回贴”,说明这轮没有别的对话在等你发送最终回贴;这是当前对话里的普通回合,按当前消息正常交流和处理即可。',
|
|
176
191
|
],
|
|
177
192
|
en: [
|
|
178
|
-
`- Reply markers are
|
|
179
|
-
'- If you define a reply format for downstream, keep it to the business delivery structure; do not require downstream to hand-write any marker, because
|
|
193
|
+
`- Reply markers are added by Dominds in the inter-dialog transfer payload (regular completed reply = ${runtimeMarkers.finalCompleted}; FBR = ${runtimeMarkers.fbrDirectReply} or ${runtimeMarkers.fbrReasoningOnly}); this payload is delivered to tellasker context and shown identically in UI. Do not hand-write markers.`,
|
|
194
|
+
'- If you define a reply format for downstream, keep it to the business delivery structure; do not require downstream to hand-write any marker, because Dominds injects markers automatically.',
|
|
180
195
|
'- `tellaskBack` is only for asking the tellasker back; use it only when tellasker clarification / decision / missing input is required, or current team SOP cannot determine ownership. Do not use `tellaskBack` to send final results.',
|
|
181
196
|
'- If the current Side Dialog is unfinished, do not mechanically map “blocked / uncertain” to `tellaskBack`; when team SOP / role ownership already identifies the responsible owner, directly use `tellask` / `tellaskSessionless` for that owner instead of posting a plain-text progress update.',
|
|
182
197
|
`- ${(0, reply_prompt_copy_1.buildSideDialogCompletionRule)('en')}`,
|
|
183
|
-
`- In the formal completion path,
|
|
184
|
-
'- If
|
|
198
|
+
`- In the formal completion path, Dominds marks ${runtimeMarkers.finalCompleted} and delivers to the tellasker only when Dominds currently names an exact reply tool and you reply through that named tool; do not rely on plain text, because the other dialog may not receive a formal reply that way.`,
|
|
199
|
+
'- If Dominds currently tells you no reply is needed, then no other dialog is waiting for your final reply in this turn; this is a normal turn in the current conversation, so handle the current message normally.',
|
|
185
200
|
],
|
|
186
201
|
}),
|
|
187
202
|
];
|
|
@@ -230,7 +245,7 @@ function buildFbrGuidelines(language, dialogScope, contextHealthPromptMode) {
|
|
|
230
245
|
const lines = pickLocalized(language, {
|
|
231
246
|
zh: [
|
|
232
247
|
'- FBR 由 `freshBootsReasoning` 触发,不属于普通队友诉请分类;请按本节规则执行。',
|
|
233
|
-
'- FBR 不可调用 `tellaskBack
|
|
248
|
+
'- FBR 不可调用 `tellaskBack`;其回贴标记由 Dominds 在跨对话传递正文中自动注入。',
|
|
234
249
|
'- FBR 禁止一切 tellask(包括 `tellaskBack` / `tellask` / `tellaskSessionless` / `askHuman`)。',
|
|
235
250
|
'- 当用户明确要求“做一次 FBR/扪心自问”,对话主理人必须发起 `freshBootsReasoning`。',
|
|
236
251
|
fbrContextHealthRule,
|
|
@@ -247,7 +262,7 @@ function buildFbrGuidelines(language, dialogScope, contextHealthPromptMode) {
|
|
|
247
262
|
],
|
|
248
263
|
en: [
|
|
249
264
|
'- FBR is triggered by `freshBootsReasoning`, not by normal teammate tellasks; follow this section’s rules.',
|
|
250
|
-
'- FBR cannot call `tellaskBack`; its reply marker is injected by
|
|
265
|
+
'- FBR cannot call `tellaskBack`; its reply marker is injected by Dominds into the inter-dialog transfer payload.',
|
|
251
266
|
'- FBR forbids all tellask calls (including `tellaskBack` / `tellask` / `tellaskSessionless` / `askHuman`).',
|
|
252
267
|
'- When the user explicitly requests “do an FBR / fresh boots reasoning”, the Dialog Responder must call `freshBootsReasoning`.',
|
|
253
268
|
fbrContextHealthRule,
|
|
@@ -316,7 +331,7 @@ function formatMcpToolsetRuntimeNote(language, notices) {
|
|
|
316
331
|
return '';
|
|
317
332
|
const lines = language === 'zh'
|
|
318
333
|
? [
|
|
319
|
-
'以下 MCP toolset 已配置给你,且在 `.minds/mcp.yaml`
|
|
334
|
+
'以下 MCP toolset 已配置给你,且在 `.minds/mcp.yaml` 中有声明,但当前没有可调用的 MCP 工具。',
|
|
320
335
|
'其中有些可能是暂时不可达(例如 stdio transport 进程启动失败,或 streamable HTTP transport 当前无法连接),有些可能是被明确禁用;这不代表你的权限被撤销,也不应视为系统级功能降级。',
|
|
321
336
|
...notices.map((notice) => {
|
|
322
337
|
if (notice.status === 'disabled') {
|
|
@@ -331,7 +346,7 @@ function formatMcpToolsetRuntimeNote(language, notices) {
|
|
|
331
346
|
'若当前任务依赖这些能力,应明确说明对应 MCP toolset 眼下不可用,并优先继续使用其余可用工具/路径推进。',
|
|
332
347
|
]
|
|
333
348
|
: [
|
|
334
|
-
'The following MCP toolsets are assigned to you and declared in `.minds/mcp.yaml`, but they do not currently provide callable
|
|
349
|
+
'The following MCP toolsets are assigned to you and declared in `.minds/mcp.yaml`, but they do not currently provide callable MCP tools.',
|
|
335
350
|
'Some may be temporarily unavailable (for example a stdio transport process failing to start right now, or a streamable HTTP transport being unreachable right now), and some may be explicitly disabled. This does not mean your permission was revoked, and it should not be treated as a system-level capability downgrade.',
|
|
336
351
|
...notices.map((notice) => {
|
|
337
352
|
if (notice.status === 'disabled') {
|
|
@@ -352,6 +367,12 @@ function buildSystemPrompt(input) {
|
|
|
352
367
|
const fbrGuidelines = buildFbrGuidelines(input.language, input.dialogScope, input.contextHealthPromptMode);
|
|
353
368
|
const tellaskInteractionRules = buildTellaskInteractionRules(input.language);
|
|
354
369
|
const functionToolRules = buildFunctionToolRules(input.language, input.funcToolRulesText);
|
|
370
|
+
// Business scenario: many runtime notices say "Dominds has reminded / decided / injected ..."
|
|
371
|
+
// because Dominds, not the human user, maintains dialog state, reminder projection, course
|
|
372
|
+
// transitions, and inter-dialog routing. Without a plain glossary definition, models may treat
|
|
373
|
+
// "Dominds" as a user request source, a third-party product name, or an abstract platform.
|
|
374
|
+
// Define it once near the top of the system prompt so later Dominds notices read as state and
|
|
375
|
+
// guidance from the current autonomous runtime.
|
|
355
376
|
if (input.language === 'zh') {
|
|
356
377
|
return `
|
|
357
378
|
# Agent 系统提示
|
|
@@ -375,6 +396,7 @@ function buildSystemPrompt(input) {
|
|
|
375
396
|
|
|
376
397
|
## 术语表
|
|
377
398
|
|
|
399
|
+
- Dominds:你当前所在的智能体自主运行环境;它负责维护对话、提醒项、换程、队友诉请和系统提示。看到“Dominds 提示”时,把它当作当前运行环境给你的状态说明或行动引导,不是用户的新诉求。
|
|
378
400
|
- 诉请:对智能体的结构化请求。
|
|
379
401
|
- 诉请内容(tellaskContent):tellask 系列函数的正文参数,用于承载上下文/约束/验收。
|
|
380
402
|
- 提及列表(mentionList):仅用于 \`tellask\` / \`tellaskSessionless\` 的队友目标列表(\`@<agentId>\`)。
|
|
@@ -473,6 +495,7 @@ System notices convey important state changes (e.g., context caution/critical, D
|
|
|
473
495
|
|
|
474
496
|
## Glossary
|
|
475
497
|
|
|
498
|
+
- Dominds: your current autonomous agent runtime. It maintains dialogs, reminders, course transitions, teammate tellasks, and system notices. When you see a "Dominds notice", treat it as state or action guidance from the current runtime, not as a new user request.
|
|
476
499
|
- Tellask: a structured request addressed to an agent.
|
|
477
500
|
- Mention list (\`mentionList\`): teammate targets for \`tellask\` / \`tellaskSessionless\` only (\`@<agentId>\`).
|
|
478
501
|
- Tellask content (\`tellaskContent\`): main call payload carrying context/constraints/acceptance.
|
package/dist/persistence.js
CHANGED
|
@@ -388,8 +388,14 @@ function isSuppressedTellaskPlaceholderFuncResult(args) {
|
|
|
388
388
|
if (raw === '') {
|
|
389
389
|
return false;
|
|
390
390
|
}
|
|
391
|
+
// Business scenario: these generated tool results are only waiting/status placeholders. They
|
|
392
|
+
// must be suppressed when reconstructing the conversation so the model does not confuse them
|
|
393
|
+
// with a real teammate/human answer. Keep the old prefixes for persisted records, and include
|
|
394
|
+
// the newer plain-language prefixes so the suppression logic matches the current copy.
|
|
391
395
|
if (raw === 'Q4H 已结束等待状态,请参考 askHuman 结果气泡。' ||
|
|
392
|
-
raw === 'Q4H wait is resolved; refer to the askHuman result bubble.'
|
|
396
|
+
raw === 'Q4H wait is resolved; refer to the askHuman result bubble.' ||
|
|
397
|
+
raw === '人类已经回答;请参考 askHuman 结果气泡。' ||
|
|
398
|
+
raw === 'The human has answered; refer to the askHuman result bubble.') {
|
|
393
399
|
return true;
|
|
394
400
|
}
|
|
395
401
|
if (raw.startsWith('Q4H 仍在等待人类回复,已持续 ') ||
|
|
@@ -404,6 +410,14 @@ function isSuppressedTellaskPlaceholderFuncResult(args) {
|
|
|
404
410
|
(raw.includes('当前仍在等待') || raw.includes('is still waiting'))) {
|
|
405
411
|
return true;
|
|
406
412
|
}
|
|
413
|
+
if (raw.startsWith('[Dominds 等待人类回复]') ||
|
|
414
|
+
raw.startsWith('[Dominds waiting for human answer]') ||
|
|
415
|
+
raw.startsWith('[Dominds 等待队友回贴]') ||
|
|
416
|
+
raw.startsWith('[Dominds waiting for teammate reply]') ||
|
|
417
|
+
raw.startsWith('[Dominds 队友回贴状态]') ||
|
|
418
|
+
raw.startsWith('[Dominds teammate reply status]')) {
|
|
419
|
+
return true;
|
|
420
|
+
}
|
|
407
421
|
return false;
|
|
408
422
|
}
|
|
409
423
|
function isYamlUnexpectedEofLikeError(error) {
|
|
@@ -12,14 +12,45 @@ export declare function formatNewCourseStartPrompt(language: LanguageCode, args:
|
|
|
12
12
|
}): string;
|
|
13
13
|
export declare function formatDiligenceAutoContinuePrompt(language: LanguageCode, diligenceText: string): string;
|
|
14
14
|
export declare function formatReminderContextGuide(language: LanguageCode): string;
|
|
15
|
-
export type
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export type ReminderContextFollowingMessage = Readonly<{
|
|
16
|
+
kind: 'user_message';
|
|
17
|
+
}> | Readonly<{
|
|
18
|
+
kind: 'human_answer';
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
kind: 'runtime_notice';
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: 'none';
|
|
23
|
+
}>;
|
|
24
|
+
export type ReminderContextHealth = Readonly<{
|
|
25
|
+
kind: 'normal';
|
|
26
|
+
}> | Readonly<{
|
|
27
|
+
kind: 'caution';
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
kind: 'critical';
|
|
30
|
+
}>;
|
|
31
|
+
export type ReminderContextDialogScope = Readonly<{
|
|
32
|
+
kind: 'main_dialog';
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
kind: 'side_dialog';
|
|
35
|
+
}>;
|
|
36
|
+
export type ReminderContextBusiness = Readonly<{
|
|
37
|
+
kind: 'none';
|
|
38
|
+
}> | Readonly<{
|
|
39
|
+
kind: 'active_reply_obligation';
|
|
40
|
+
}> | Readonly<{
|
|
41
|
+
kind: 'pending_user_interjection';
|
|
42
|
+
}> | Readonly<{
|
|
43
|
+
kind: 'pending_user_interjection_with_active_reply';
|
|
44
|
+
}> | Readonly<{
|
|
45
|
+
kind: 'pending_user_interjection_with_parked_reply';
|
|
46
|
+
}> | Readonly<{
|
|
47
|
+
kind: 'user_followup_after_completed_handoff';
|
|
48
|
+
}>;
|
|
18
49
|
export type ReminderContextFooterState = Readonly<{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
50
|
+
followingMessage: ReminderContextFollowingMessage;
|
|
51
|
+
contextHealth: ReminderContextHealth;
|
|
52
|
+
dialogScope: ReminderContextDialogScope;
|
|
53
|
+
business: ReminderContextBusiness;
|
|
23
54
|
}>;
|
|
24
55
|
export declare function formatReminderContextFooter(language: LanguageCode, state: ReminderContextFooterState): string;
|
|
25
56
|
export type ReminderMaintenanceReferenceItem = Readonly<{
|