dominds 0.7.6 → 0.8.2
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 -2
- package/README.zh.md +2 -2
- package/dist/agent-priming.js +169 -200
- package/dist/cli/read.js +2 -7
- package/dist/dialog-factory.js +6 -4
- package/dist/dialog-instance-registry.js +2 -2
- package/dist/dialog.js +99 -91
- package/dist/docs/dialog-persistence.md +2 -2
- package/dist/docs/dialog-persistence.zh.md +2 -2
- package/dist/docs/dialog-system.md +86 -90
- package/dist/docs/dialog-system.zh.md +82 -83
- package/dist/docs/diligence-push.md +2 -2
- package/dist/docs/diligence-push.zh.md +2 -2
- package/dist/docs/dominds-agent-priming.md +11 -11
- package/dist/docs/dominds-agent-priming.zh.md +9 -9
- package/dist/docs/dominds-terminology.md +34 -34
- package/dist/docs/fbr-implementation.md +4 -4
- package/dist/docs/fbr-implementation.zh.md +4 -4
- package/dist/docs/fbr.md +31 -53
- package/dist/docs/fbr.zh.md +30 -48
- package/dist/docs/mottos.md +2 -3
- package/dist/docs/mottos.zh.md +2 -2
- package/dist/docs/q4h.md +6 -6
- package/dist/docs/q4h.zh.md +6 -6
- package/dist/docs/tellask-collab.md +13 -13
- package/dist/docs/tellask-collab.zh.md +18 -18
- package/dist/llm/driver-entry.js +9 -33
- package/dist/llm/driver-v2/core.js +413 -111
- package/dist/llm/driver-v2/index.js +5 -0
- package/dist/llm/driver-v2/orchestrator.js +4 -3
- package/dist/llm/driver-v2/policy.js +17 -23
- package/dist/llm/driver-v2/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2/round.js +18 -7
- package/dist/llm/driver-v2/runtime-utils.js +3 -5
- package/dist/llm/driver-v2/saying-events.js +4 -42
- package/dist/llm/driver-v2/supdialog-response.js +110 -23
- package/dist/llm/driver-v2/tellask-bridge.js +560 -458
- package/dist/mcp/sdk-client.js +1 -1
- package/dist/mcp/server-runtime.js +1 -1
- package/dist/mcp/stdio-client.js +6 -6
- package/dist/mcp/tool-names.js +1 -1
- package/dist/minds/builtin/fuxi/persona.en.md +10 -10
- package/dist/minds/builtin/fuxi/persona.zh.md +12 -12
- package/dist/minds/builtin/pangu/persona.en.md +7 -7
- package/dist/minds/builtin/pangu/persona.zh.md +6 -6
- package/dist/minds/minds-i18n.js +2 -2
- package/dist/minds/system-prompt-parts.js +15 -12
- package/dist/minds/system-prompt.js +58 -56
- package/dist/persistence.js +675 -527
- package/dist/server/api-routes.js +1 -1
- package/dist/server/websocket-handler.js +10 -20
- package/dist/server.js +3 -3
- package/dist/shared/diligence.js +12 -12
- package/dist/shared/i18n/driver-messages.js +28 -118
- package/dist/shared/utils/inter-dialog-format.js +53 -53
- package/dist/snippets/starting.en.md +1 -1
- package/dist/snippets/starting.zh.md +1 -2
- package/dist/static/assets/{_baseUniq-2IQvcpiv.js → _baseUniq-D4N_zVXV.js} +2 -2
- package/dist/static/assets/{_baseUniq-2IQvcpiv.js.map → _baseUniq-D4N_zVXV.js.map} +1 -1
- package/dist/static/assets/{arc-Boi4s2EY.js → arc-7bP9qomB.js} +2 -2
- package/dist/static/assets/{arc-Boi4s2EY.js.map → arc-7bP9qomB.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CV1IIalQ.js → architectureDiagram-VXUJARFQ-DToIiZuZ.js} +6 -6
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CV1IIalQ.js.map → architectureDiagram-VXUJARFQ-DToIiZuZ.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-C66ZvUb1.js → blockDiagram-VD42YOAC-C-pRNHpf.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-C66ZvUb1.js.map → blockDiagram-VD42YOAC-C-pRNHpf.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-2YQZQ-KQ.js → c4Diagram-YG6GDRKO-Bnp-nWKO.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-2YQZQ-KQ.js.map → c4Diagram-YG6GDRKO-Bnp-nWKO.js.map} +1 -1
- package/dist/static/assets/{channel-DBG_xYT_.js → channel-CTv1SsAF.js} +2 -2
- package/dist/static/assets/{channel-DBG_xYT_.js.map → channel-CTv1SsAF.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-D92pQ5qM.js → chunk-4BX2VUAB-D_OGa3ss.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-D92pQ5qM.js.map → chunk-4BX2VUAB-D_OGa3ss.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-T3IKxvjm.js → chunk-55IACEB6-I4o4MCuM.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-T3IKxvjm.js.map → chunk-55IACEB6-I4o4MCuM.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-SKDCq7xY.js → chunk-B4BG7PRW-Bp-TIXg6.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-SKDCq7xY.js.map → chunk-B4BG7PRW-Bp-TIXg6.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-CKY9xXzj.js → chunk-DI55MBZ5-Bnph5Hmd.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-CKY9xXzj.js.map → chunk-DI55MBZ5-Bnph5Hmd.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-CzaQthG_.js → chunk-FMBD7UC4-q3UyRsNI.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-CzaQthG_.js.map → chunk-FMBD7UC4-q3UyRsNI.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-8v7ASP75.js → chunk-QN33PNHL-BxUlvLXP.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-8v7ASP75.js.map → chunk-QN33PNHL-BxUlvLXP.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-Cd3_mr-D.js → chunk-QZHKN3VN-DpQR9BVw.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-Cd3_mr-D.js.map → chunk-QZHKN3VN-DpQR9BVw.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-BrTyfkJK.js → chunk-TZMSLE5B-BX8vrVo0.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-BrTyfkJK.js.map → chunk-TZMSLE5B-BX8vrVo0.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-pLBmQ3Qa.js → classDiagram-2ON5EDUG-Ccx5_2Xq.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-pLBmQ3Qa.js.map → classDiagram-2ON5EDUG-Ccx5_2Xq.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-pLBmQ3Qa.js → classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-pLBmQ3Qa.js.map → classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js.map} +1 -1
- package/dist/static/assets/{clone-rjxmrDHc.js → clone-Cl5zSMrO.js} +2 -2
- package/dist/static/assets/{clone-rjxmrDHc.js.map → clone-Cl5zSMrO.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-DaW3q2vS.js → cose-bilkent-S5V4N54A-B-FUX86B.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-DaW3q2vS.js.map → cose-bilkent-S5V4N54A-B-FUX86B.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-BT252775.js → dagre-6UL2VRFP-Bj8vSSpT.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-BT252775.js.map → dagre-6UL2VRFP-Bj8vSSpT.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-Cp0jEYgm.js → diagram-PSM6KHXK-BPcgy7jf.js} +7 -7
- package/dist/static/assets/{diagram-PSM6KHXK-Cp0jEYgm.js.map → diagram-PSM6KHXK-BPcgy7jf.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-BYEiCch_.js → diagram-QEK2KX5R-DHxd6LWi.js} +6 -6
- package/dist/static/assets/{diagram-QEK2KX5R-BYEiCch_.js.map → diagram-QEK2KX5R-DHxd6LWi.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-SNGZ1B53.js → diagram-S2PKOQOG-C4ynhhLr.js} +6 -6
- package/dist/static/assets/{diagram-S2PKOQOG-SNGZ1B53.js.map → diagram-S2PKOQOG-C4ynhhLr.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-CMdkkngT.js → erDiagram-Q2GNP2WA-CQ25uxxf.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-CMdkkngT.js.map → erDiagram-Q2GNP2WA-CQ25uxxf.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-k203P84f.js → flowDiagram-NV44I4VS-ChkkAldk.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-k203P84f.js.map → flowDiagram-NV44I4VS-ChkkAldk.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-CgsVe01-.js → ganttDiagram-JELNMOA3-CBt_Zorl.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-CgsVe01-.js.map → ganttDiagram-JELNMOA3-CBt_Zorl.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-BGOR_N5w.js → gitGraphDiagram-NY62KEGX-CtBc2dOO.js} +7 -7
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-BGOR_N5w.js.map → gitGraphDiagram-NY62KEGX-CtBc2dOO.js.map} +1 -1
- package/dist/static/assets/{graph-DDHIhCSW.js → graph-BGzNnzuI.js} +3 -3
- package/dist/static/assets/{graph-DDHIhCSW.js.map → graph-BGzNnzuI.js.map} +1 -1
- package/dist/static/assets/{index-CUZD-Ua6.js → index-Vrp1PT3b.js} +654 -355
- package/dist/static/assets/index-Vrp1PT3b.js.map +1 -0
- package/dist/static/assets/{infoDiagram-WHAUD3N6-D0GlWUIm.js → infoDiagram-WHAUD3N6-BYJF-Ol5.js} +5 -5
- package/dist/static/assets/{infoDiagram-WHAUD3N6-D0GlWUIm.js.map → infoDiagram-WHAUD3N6-BYJF-Ol5.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-I0W1fDTZ.js → journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-I0W1fDTZ.js.map → journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BY5xVZyl.js → kanban-definition-3W4ZIXB7-DBH-HEwY.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BY5xVZyl.js.map → kanban-definition-3W4ZIXB7-DBH-HEwY.js.map} +1 -1
- package/dist/static/assets/{layout-C7mFT1m6.js → layout-DdWO-uEo.js} +5 -5
- package/dist/static/assets/{layout-C7mFT1m6.js.map → layout-DdWO-uEo.js.map} +1 -1
- package/dist/static/assets/{linear-WSX0brRY.js → linear-BY3MovaF.js} +2 -2
- package/dist/static/assets/{linear-WSX0brRY.js.map → linear-BY3MovaF.js.map} +1 -1
- package/dist/static/assets/{min-DOTQTP4p.js → min-aHCJK1uN.js} +3 -3
- package/dist/static/assets/{min-DOTQTP4p.js.map → min-aHCJK1uN.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-BWhHo-Hq.js → mindmap-definition-VGOIOE7T-BjJnBRtB.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-BWhHo-Hq.js.map → mindmap-definition-VGOIOE7T-BjJnBRtB.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-B91oxvos.js → pieDiagram-ADFJNKIX-xAcmdymv.js} +7 -7
- package/dist/static/assets/{pieDiagram-ADFJNKIX-B91oxvos.js.map → pieDiagram-ADFJNKIX-xAcmdymv.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DqMUyBPr.js → quadrantDiagram-AYHSOK5B-BPbEGCEj.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DqMUyBPr.js.map → quadrantDiagram-AYHSOK5B-BPbEGCEj.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-COUayA3m.js → requirementDiagram-UZGBJVZJ--w6UfXy0.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-COUayA3m.js.map → requirementDiagram-UZGBJVZJ--w6UfXy0.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Bp9r8YDi.js → sankeyDiagram-TZEHDZUN-B_T6TQwh.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Bp9r8YDi.js.map → sankeyDiagram-TZEHDZUN-B_T6TQwh.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CpuTC5cG.js → sequenceDiagram-WL72ISMW-DX_oVvqA.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CpuTC5cG.js.map → sequenceDiagram-WL72ISMW-DX_oVvqA.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bxoo7e6E.js → stateDiagram-FKZM4ZOC-BAybZU8l.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bxoo7e6E.js.map → stateDiagram-FKZM4ZOC-BAybZU8l.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-Q-DL7tae.js → stateDiagram-v2-4FDKWEC3-BUsvuCdD.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-Q-DL7tae.js.map → stateDiagram-v2-4FDKWEC3-BUsvuCdD.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-DuOiHQPk.js → timeline-definition-IT6M3QCI-DOYN-4XM.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-DuOiHQPk.js.map → timeline-definition-IT6M3QCI-DOYN-4XM.js.map} +1 -1
- package/dist/static/assets/{treemap-KMMF4GRG-YbrDC0fO.js → treemap-KMMF4GRG-CQXygT0T.js} +4 -4
- package/dist/static/assets/{treemap-KMMF4GRG-YbrDC0fO.js.map → treemap-KMMF4GRG-CQXygT0T.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-DDRlTIfV.js → xychartDiagram-PRI3JC2R-ByFAvTeN.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-DDRlTIfV.js.map → xychartDiagram-PRI3JC2R-ByFAvTeN.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/tools/builtins.js +0 -8
- package/dist/tools/env.js +1 -1
- package/dist/tools/mcp.js +31 -9
- package/dist/tools/pending-tellask-reminder.js +14 -17
- package/dist/tools/team-mgmt.js +1 -1
- package/package.json +1 -1
- package/dist/static/assets/index-CUZD-Ua6.js.map +0 -1
package/dist/cli/read.js
CHANGED
|
@@ -76,13 +76,8 @@ function buildPromptAudit(systemPrompt) {
|
|
|
76
76
|
id: 'tellask_function_boundary',
|
|
77
77
|
label: 'Has tellask vs function-calling boundary',
|
|
78
78
|
pass: /native function-calling/.test(systemPrompt) &&
|
|
79
|
-
(/is only for tellasking teammates
|
|
80
|
-
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
id: 'tellask_line_grammar',
|
|
84
|
-
label: 'Has tellask line-prefix grammar',
|
|
85
|
-
pass: /line-prefix grammar/.test(systemPrompt) || /逐行前缀语法/.test(systemPrompt),
|
|
79
|
+
(/is only for tellasking teammates\/freshBootsReasoning\/askHuman/.test(systemPrompt) ||
|
|
80
|
+
/仅用于诉请队友\/freshBootsReasoning\/askHuman/.test(systemPrompt)),
|
|
86
81
|
},
|
|
87
82
|
{
|
|
88
83
|
id: 'fbr_phase_contract',
|
package/dist/dialog-factory.js
CHANGED
|
@@ -26,16 +26,18 @@ class DialogFactory {
|
|
|
26
26
|
/**
|
|
27
27
|
* Create a new SubDialog instance.
|
|
28
28
|
*/
|
|
29
|
-
static createSubDialog(supdialog, taskDocPath, targetAgentId,
|
|
29
|
+
static createSubDialog(supdialog, taskDocPath, targetAgentId, mentionList, tellaskContent, options, initialState) {
|
|
30
30
|
const generatedId = (0, id_1.generateDialogID)();
|
|
31
31
|
const subdialogId = new dialog_1.DialogID(generatedId, supdialog.id.rootId);
|
|
32
32
|
return new dialog_1.SubDialog(supdialog.dlgStore, supdialog, taskDocPath, subdialogId, targetAgentId, {
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
callName: options.callName,
|
|
34
|
+
mentionList,
|
|
35
|
+
tellaskContent,
|
|
35
36
|
originMemberId: options.originMemberId,
|
|
36
37
|
callerDialogId: options.callerDialogId,
|
|
37
38
|
callId: options.callId,
|
|
38
|
-
|
|
39
|
+
collectiveTargets: options.collectiveTargets,
|
|
40
|
+
}, options.sessionSlug, initialState);
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
43
|
* Check if a dialog is a RootDialog.
|
|
@@ -113,14 +113,14 @@ async function ensureDialogLoaded(rootDialog, targetId, status, visitedSelfIds =
|
|
|
113
113
|
await ensureDialogLoaded(rootDialog, new dialog_1.DialogID(assignmentFromSup.callerDialogId, targetId.rootId), status, visitedSelfIds);
|
|
114
114
|
}
|
|
115
115
|
const store = new persistence_1.DiskFileDialogStore(targetId);
|
|
116
|
-
const subdialog = new dialog_1.SubDialog(store, rootDialog, state.metadata.taskDocPath, targetId, state.metadata.agentId, assignmentFromSup, state.metadata.
|
|
116
|
+
const subdialog = new dialog_1.SubDialog(store, rootDialog, state.metadata.taskDocPath, targetId, state.metadata.agentId, assignmentFromSup, state.metadata.sessionSlug, {
|
|
117
117
|
messages: state.messages,
|
|
118
118
|
reminders: state.reminders,
|
|
119
119
|
currentCourse: state.currentCourse,
|
|
120
120
|
contextHealth: state.contextHealth,
|
|
121
121
|
});
|
|
122
122
|
subdialog.disableDiligencePush = latest?.disableDiligencePush ?? false;
|
|
123
|
-
if (subdialog.
|
|
123
|
+
if (subdialog.sessionSlug) {
|
|
124
124
|
rootDialog.registerSubdialog(subdialog);
|
|
125
125
|
}
|
|
126
126
|
return subdialog;
|
package/dist/dialog.js
CHANGED
|
@@ -106,7 +106,7 @@ class Dialog {
|
|
|
106
106
|
// Diligence Push disable switch (persisted via latest.yaml; default = false).
|
|
107
107
|
this.disableDiligencePush = false;
|
|
108
108
|
// Current callId for tellask call correlation
|
|
109
|
-
// - Set during teammate_call_finish_evt (from
|
|
109
|
+
// - Set during teammate_call_finish_evt (from tellask-special function calls)
|
|
110
110
|
// - Retrieved during inline call-result emission (for receiveTeammateCallResult callId parameter)
|
|
111
111
|
// - Enables frontend to attach result INLINE to the calling section
|
|
112
112
|
// - NOT used for teammate tellasks (which use calleeDialogId instead)
|
|
@@ -171,8 +171,8 @@ class Dialog {
|
|
|
171
171
|
* Get the current callId for tellask call correlation
|
|
172
172
|
*
|
|
173
173
|
* Call Types:
|
|
174
|
-
* -
|
|
175
|
-
* -
|
|
174
|
+
* - tellask-special function call: callId is set during teammate_call_finish_evt and used for inline result correlation
|
|
175
|
+
* - Subdialog response bubbles: use calleeDialogId instead of callId
|
|
176
176
|
*
|
|
177
177
|
* @returns The current callId for call correlation, or null if no active call
|
|
178
178
|
*/
|
|
@@ -180,9 +180,9 @@ class Dialog {
|
|
|
180
180
|
return this._currentCallId;
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
183
|
-
* Set the current callId (called during teammate_call_finish_evt for tellask
|
|
183
|
+
* Set the current callId (called during teammate_call_finish_evt for tellask-special calls)
|
|
184
184
|
*
|
|
185
|
-
* @param callId - The correlation ID
|
|
185
|
+
* @param callId - The function-call correlation ID
|
|
186
186
|
*/
|
|
187
187
|
setCurrentCallId(callId) {
|
|
188
188
|
this._currentCallId = callId;
|
|
@@ -229,7 +229,7 @@ class Dialog {
|
|
|
229
229
|
return questions.length > 0;
|
|
230
230
|
}
|
|
231
231
|
catch (err) {
|
|
232
|
-
log_1.log.warn('Failed to load Q4H state for pending check', {
|
|
232
|
+
log_1.log.warn('Failed to load Q4H state for pending check', undefined, {
|
|
233
233
|
dialogId: this.id.selfId,
|
|
234
234
|
error: err,
|
|
235
235
|
});
|
|
@@ -245,7 +245,7 @@ class Dialog {
|
|
|
245
245
|
return pending.length > 0;
|
|
246
246
|
}
|
|
247
247
|
catch (err) {
|
|
248
|
-
log_1.log.warn('Failed to load pending subdialogs for pending check', {
|
|
248
|
+
log_1.log.warn('Failed to load pending subdialogs for pending check', undefined, {
|
|
249
249
|
dialogId: this.id.selfId,
|
|
250
250
|
error: err,
|
|
251
251
|
});
|
|
@@ -295,7 +295,7 @@ class Dialog {
|
|
|
295
295
|
this.addPendingSubdialogs(pending.map((record) => record.subdialogId));
|
|
296
296
|
}
|
|
297
297
|
catch (err) {
|
|
298
|
-
log_1.log.warn('Failed to load pending subdialogs from persistence', {
|
|
298
|
+
log_1.log.warn('Failed to load pending subdialogs from persistence', undefined, {
|
|
299
299
|
dialogId: this.id.selfId,
|
|
300
300
|
error: err,
|
|
301
301
|
});
|
|
@@ -559,8 +559,9 @@ class Dialog {
|
|
|
559
559
|
? `${(0, inter_dialog_format_1.formatAssignmentFromSupdialog)({
|
|
560
560
|
fromAgentId: this.assignmentFromSup.originMemberId,
|
|
561
561
|
toAgentId: this.agentId,
|
|
562
|
-
|
|
563
|
-
|
|
562
|
+
callName: this.assignmentFromSup.callName,
|
|
563
|
+
mentionList: this.assignmentFromSup.mentionList,
|
|
564
|
+
tellaskContent: this.assignmentFromSup.tellaskContent,
|
|
564
565
|
language: (0, runtime_language_1.getWorkLanguage)(),
|
|
565
566
|
collectiveTargets: this.assignmentFromSup.collectiveTargets ?? [this.agentId],
|
|
566
567
|
})}\n---\n${trimmedPrompt}`
|
|
@@ -648,41 +649,23 @@ class Dialog {
|
|
|
648
649
|
async webSearchCall(payload) {
|
|
649
650
|
await this.dlgStore.webSearchCall(this, payload);
|
|
650
651
|
}
|
|
651
|
-
// Tellask call events
|
|
652
|
-
async callingStart(
|
|
653
|
-
await this.dlgStore.callingStart(this, validation);
|
|
654
|
-
}
|
|
655
|
-
async callingHeadlineChunk(chunk) {
|
|
656
|
-
await this.dlgStore.callingHeadlineChunk(this, chunk);
|
|
657
|
-
}
|
|
658
|
-
async callingHeadlineFinish() {
|
|
659
|
-
await this.dlgStore.callingHeadlineFinish(this);
|
|
660
|
-
}
|
|
661
|
-
async callingBodyStart() {
|
|
662
|
-
await this.dlgStore.callingBodyStart(this);
|
|
663
|
-
}
|
|
664
|
-
async callingBodyChunk(chunk) {
|
|
665
|
-
await this.dlgStore.callingBodyChunk(this, chunk);
|
|
666
|
-
}
|
|
667
|
-
async callingBodyFinish() {
|
|
668
|
-
await this.dlgStore.callingBodyFinish(this);
|
|
669
|
-
}
|
|
670
|
-
async callingFinish(callId) {
|
|
652
|
+
// Tellask-special call lifecycle events
|
|
653
|
+
async callingStart(payload) {
|
|
671
654
|
// Store callId for inline call-result correlation
|
|
672
|
-
this.setCurrentCallId(callId);
|
|
673
|
-
await this.dlgStore.
|
|
655
|
+
this.setCurrentCallId(payload.callId);
|
|
656
|
+
await this.dlgStore.callingStart(this, payload);
|
|
674
657
|
}
|
|
675
658
|
/**
|
|
676
659
|
* Receive call result with callId for inline correlation
|
|
677
660
|
*/
|
|
678
|
-
async receiveTeammateCallResult(responderId,
|
|
679
|
-
return await this.dlgStore.receiveTeammateCallResult(this, responderId,
|
|
661
|
+
async receiveTeammateCallResult(responderId, callName, mentionList, tellaskContent, result, status, callId) {
|
|
662
|
+
return await this.dlgStore.receiveTeammateCallResult(this, responderId, callName, mentionList, tellaskContent, result, status, callId);
|
|
680
663
|
}
|
|
681
664
|
/**
|
|
682
665
|
* Receive teammate response (separate bubble for @teammate tellasks)
|
|
683
666
|
*/
|
|
684
|
-
async receiveTeammateResponse(responderId,
|
|
685
|
-
return await this.dlgStore.receiveTeammateResponse(this, responderId,
|
|
667
|
+
async receiveTeammateResponse(responderId, callName, mentionList, tellaskContent, status, subdialogId, options) {
|
|
668
|
+
return await this.dlgStore.receiveTeammateResponse(this, responderId, callName, mentionList, tellaskContent, status, subdialogId, options);
|
|
686
669
|
}
|
|
687
670
|
async updateQuestions4Human(questions) {
|
|
688
671
|
return await this.dlgStore.updateQuestions4Human(this, questions);
|
|
@@ -707,7 +690,9 @@ class Dialog {
|
|
|
707
690
|
try {
|
|
708
691
|
let responderId = subdialogId.rootId;
|
|
709
692
|
let responderAgentId;
|
|
710
|
-
let
|
|
693
|
+
let callName = 'tellaskSessionless';
|
|
694
|
+
let mentionList;
|
|
695
|
+
let tellaskContent = response;
|
|
711
696
|
let originMemberId = responderId;
|
|
712
697
|
let callId = '';
|
|
713
698
|
try {
|
|
@@ -719,14 +704,16 @@ class Dialog {
|
|
|
719
704
|
originMemberId = metadata.agentId;
|
|
720
705
|
}
|
|
721
706
|
if (metadata.assignmentFromSup) {
|
|
722
|
-
|
|
707
|
+
callName = metadata.assignmentFromSup.callName;
|
|
708
|
+
mentionList = metadata.assignmentFromSup.mentionList;
|
|
709
|
+
tellaskContent = metadata.assignmentFromSup.tellaskContent;
|
|
723
710
|
originMemberId = metadata.assignmentFromSup.originMemberId;
|
|
724
711
|
callId = metadata.assignmentFromSup.callId;
|
|
725
712
|
}
|
|
726
713
|
}
|
|
727
714
|
}
|
|
728
715
|
catch (err) {
|
|
729
|
-
log_1.log.warn('Failed to load subdialog metadata for response labeling', {
|
|
716
|
+
log_1.log.warn('Failed to load subdialog metadata for response labeling', undefined, {
|
|
730
717
|
dialogId: this.id.selfId,
|
|
731
718
|
subdialogId: subdialogId.selfId,
|
|
732
719
|
error: err,
|
|
@@ -738,33 +725,59 @@ class Dialog {
|
|
|
738
725
|
subdialogId: subdialogId.selfId,
|
|
739
726
|
});
|
|
740
727
|
}
|
|
741
|
-
if (
|
|
742
|
-
|
|
728
|
+
if ((callName === 'tellask' || callName === 'tellaskSessionless') &&
|
|
729
|
+
(!Array.isArray(mentionList) || mentionList.length < 1)) {
|
|
730
|
+
mentionList = [`@${responderId}`];
|
|
743
731
|
}
|
|
744
732
|
// NO WAIT - emit immediately with virtual gen markers
|
|
745
733
|
// Emit virtual generating_start_evt for subdialog response bubble
|
|
746
734
|
await this.notifyGeneratingStart();
|
|
747
735
|
const formattedResult = (0, inter_dialog_format_1.formatTeammateResponseContent)({
|
|
736
|
+
callName,
|
|
748
737
|
responderId,
|
|
749
738
|
requesterId: originMemberId,
|
|
750
|
-
|
|
739
|
+
mentionList: mentionList ?? [],
|
|
740
|
+
tellaskContent,
|
|
751
741
|
responseBody: response,
|
|
752
742
|
language: (0, runtime_language_1.getWorkLanguage)(),
|
|
753
743
|
});
|
|
754
744
|
// Emit TeammateResponseEvent
|
|
755
|
-
const evt = {
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
745
|
+
const evt = (() => {
|
|
746
|
+
switch (callName) {
|
|
747
|
+
case 'tellask':
|
|
748
|
+
case 'tellaskSessionless':
|
|
749
|
+
return {
|
|
750
|
+
type: 'teammate_response_evt',
|
|
751
|
+
responderId,
|
|
752
|
+
calleeDialogId: subdialogId.selfId,
|
|
753
|
+
callName,
|
|
754
|
+
mentionList: mentionList ?? [],
|
|
755
|
+
tellaskContent,
|
|
756
|
+
status: 'completed',
|
|
757
|
+
result: formattedResult,
|
|
758
|
+
course: this.currentCourse,
|
|
759
|
+
response,
|
|
760
|
+
agentId: responderAgentId ?? responderId,
|
|
761
|
+
callId,
|
|
762
|
+
originMemberId,
|
|
763
|
+
};
|
|
764
|
+
case 'freshBootsReasoning':
|
|
765
|
+
return {
|
|
766
|
+
type: 'teammate_response_evt',
|
|
767
|
+
responderId,
|
|
768
|
+
calleeDialogId: subdialogId.selfId,
|
|
769
|
+
callName,
|
|
770
|
+
tellaskContent,
|
|
771
|
+
status: 'completed',
|
|
772
|
+
result: formattedResult,
|
|
773
|
+
course: this.currentCourse,
|
|
774
|
+
response,
|
|
775
|
+
agentId: responderAgentId ?? responderId,
|
|
776
|
+
callId,
|
|
777
|
+
originMemberId,
|
|
778
|
+
};
|
|
779
|
+
}
|
|
780
|
+
})();
|
|
768
781
|
(0, evt_registry_1.postDialogEvent)(this, evt);
|
|
769
782
|
// Emit virtual generating_finish_evt
|
|
770
783
|
await this.notifyGeneratingFinish();
|
|
@@ -783,10 +796,10 @@ exports.Dialog = Dialog;
|
|
|
783
796
|
* Stores the root dialog for registry and lookup, and resolves its effective supdialog dynamically.
|
|
784
797
|
*/
|
|
785
798
|
class SubDialog extends Dialog {
|
|
786
|
-
constructor(dlgStore, rootDialog, taskDocPath, id, agentId, assignmentFromSup,
|
|
799
|
+
constructor(dlgStore, rootDialog, taskDocPath, id, agentId, assignmentFromSup, sessionSlug, initialState) {
|
|
787
800
|
super(dlgStore, taskDocPath, id, agentId, initialState);
|
|
788
801
|
this.rootDialog = rootDialog;
|
|
789
|
-
this.
|
|
802
|
+
this.sessionSlug = sessionSlug;
|
|
790
803
|
this.assignmentFromSup = assignmentFromSup;
|
|
791
804
|
const resolvedSupdialog = rootDialog.lookupDialog(assignmentFromSup.callerDialogId);
|
|
792
805
|
if (resolvedSupdialog && resolvedSupdialog.id.selfId === this.id.selfId) {
|
|
@@ -812,8 +825,8 @@ class SubDialog extends Dialog {
|
|
|
812
825
|
* Create a subdialog under the same root dialog tree.
|
|
813
826
|
* The new subdialog's effective supdialog is resolved via AssignmentFromSup.callerDialogId.
|
|
814
827
|
*/
|
|
815
|
-
async createSubDialog(targetAgentId,
|
|
816
|
-
return await this.rootDialog.createSubDialog(targetAgentId,
|
|
828
|
+
async createSubDialog(targetAgentId, mentionList, tellaskContent, options) {
|
|
829
|
+
return await this.rootDialog.createSubDialog(targetAgentId, mentionList, tellaskContent, options);
|
|
817
830
|
}
|
|
818
831
|
}
|
|
819
832
|
exports.SubDialog = SubDialog;
|
|
@@ -829,7 +842,7 @@ class RootDialog extends Dialog {
|
|
|
829
842
|
this._subdialogAgentPrimingMode = 'reuse';
|
|
830
843
|
// Tracks all dialogs in this dialog tree for O(1) lookup
|
|
831
844
|
this._localRegistry = new Map();
|
|
832
|
-
// Tracks
|
|
845
|
+
// Tracks Type-B registered subdialogs by agentId!sessionSlug
|
|
833
846
|
this._subdialogRegistry = new Map();
|
|
834
847
|
this.registerDialog(this);
|
|
835
848
|
}
|
|
@@ -870,34 +883,34 @@ class RootDialog extends Dialog {
|
|
|
870
883
|
this._localRegistry.delete(selfId);
|
|
871
884
|
}
|
|
872
885
|
/**
|
|
873
|
-
* Generate a registry key from agentId and
|
|
886
|
+
* Generate a registry key from agentId and sessionSlug.
|
|
874
887
|
*/
|
|
875
|
-
static makeSubdialogKey(agentId,
|
|
876
|
-
return `${agentId}!${
|
|
888
|
+
static makeSubdialogKey(agentId, sessionSlug) {
|
|
889
|
+
return `${agentId}!${sessionSlug}`;
|
|
877
890
|
}
|
|
878
891
|
/**
|
|
879
|
-
* Register a
|
|
892
|
+
* Register a Type-B subdialog for resumption.
|
|
880
893
|
*/
|
|
881
894
|
registerSubdialog(subdialog) {
|
|
882
|
-
if (!subdialog.
|
|
895
|
+
if (!subdialog.sessionSlug) {
|
|
883
896
|
return;
|
|
884
897
|
}
|
|
885
|
-
const key = RootDialog.makeSubdialogKey(subdialog.agentId, subdialog.
|
|
898
|
+
const key = RootDialog.makeSubdialogKey(subdialog.agentId, subdialog.sessionSlug);
|
|
886
899
|
this._subdialogRegistry.set(key, subdialog);
|
|
887
900
|
this.registerDialog(subdialog);
|
|
888
901
|
}
|
|
889
902
|
/**
|
|
890
|
-
* Lookup a
|
|
903
|
+
* Lookup a Type-B subdialog by agentId and sessionSlug.
|
|
891
904
|
*/
|
|
892
|
-
lookupSubdialog(agentId,
|
|
893
|
-
const key = RootDialog.makeSubdialogKey(agentId,
|
|
905
|
+
lookupSubdialog(agentId, sessionSlug) {
|
|
906
|
+
const key = RootDialog.makeSubdialogKey(agentId, sessionSlug);
|
|
894
907
|
return this._subdialogRegistry.get(key);
|
|
895
908
|
}
|
|
896
909
|
/**
|
|
897
|
-
* Remove a
|
|
910
|
+
* Remove a Type-B subdialog from registry.
|
|
898
911
|
*/
|
|
899
|
-
unregisterSubdialog(agentId,
|
|
900
|
-
const key = RootDialog.makeSubdialogKey(agentId,
|
|
912
|
+
unregisterSubdialog(agentId, sessionSlug) {
|
|
913
|
+
const key = RootDialog.makeSubdialogKey(agentId, sessionSlug);
|
|
901
914
|
const subdialog = this._subdialogRegistry.get(key);
|
|
902
915
|
if (subdialog) {
|
|
903
916
|
this._localRegistry.delete(subdialog.id.selfId);
|
|
@@ -914,8 +927,8 @@ class RootDialog extends Dialog {
|
|
|
914
927
|
/**
|
|
915
928
|
* Create a new subdialog for autonomous teammate tellasks.
|
|
916
929
|
*/
|
|
917
|
-
async createSubDialog(targetAgentId,
|
|
918
|
-
return await this.dlgStore.createSubDialog(this, targetAgentId,
|
|
930
|
+
async createSubDialog(targetAgentId, mentionList, tellaskContent, options) {
|
|
931
|
+
return await this.dlgStore.createSubDialog(this, targetAgentId, mentionList, tellaskContent, options);
|
|
919
932
|
}
|
|
920
933
|
/**
|
|
921
934
|
* Save subdialog registry to disk (registry.yaml).
|
|
@@ -925,7 +938,7 @@ class RootDialog extends Dialog {
|
|
|
925
938
|
key,
|
|
926
939
|
subdialogId: subdialog.id,
|
|
927
940
|
agentId: subdialog.agentId,
|
|
928
|
-
|
|
941
|
+
sessionSlug: subdialog.sessionSlug,
|
|
929
942
|
}));
|
|
930
943
|
await this.dlgStore.saveSubdialogRegistry(this.id, entries, this.status);
|
|
931
944
|
}
|
|
@@ -948,22 +961,23 @@ class DialogStore {
|
|
|
948
961
|
*
|
|
949
962
|
* @param supdialog
|
|
950
963
|
* @param targetAgentId
|
|
951
|
-
* @param
|
|
952
|
-
* @param
|
|
964
|
+
* @param mentionList
|
|
965
|
+
* @param tellaskContent
|
|
953
966
|
* @returns
|
|
954
967
|
*/
|
|
955
|
-
async createSubDialog(supdialog, targetAgentId,
|
|
968
|
+
async createSubDialog(supdialog, targetAgentId, mentionList, tellaskContent, options) {
|
|
956
969
|
const generatedId = (0, id_2.generateDialogID)();
|
|
957
970
|
// For subdialogs, use the supdialog's root dialog ID as the root
|
|
958
971
|
const subdialogId = new DialogID(generatedId, supdialog.id.rootId);
|
|
959
972
|
return new SubDialog(this, supdialog, supdialog.taskDocPath, subdialogId, targetAgentId, {
|
|
960
|
-
|
|
961
|
-
|
|
973
|
+
callName: options.callName,
|
|
974
|
+
mentionList,
|
|
975
|
+
tellaskContent,
|
|
962
976
|
originMemberId: options.originMemberId,
|
|
963
977
|
callerDialogId: options.callerDialogId,
|
|
964
978
|
callId: options.callId,
|
|
965
979
|
collectiveTargets: options.collectiveTargets,
|
|
966
|
-
}, options.
|
|
980
|
+
}, options.sessionSlug);
|
|
967
981
|
}
|
|
968
982
|
/**
|
|
969
983
|
* Receive and handle LLM generation streams (Markdown stream + tellask call stream)
|
|
@@ -991,11 +1005,11 @@ class DialogStore {
|
|
|
991
1005
|
/**
|
|
992
1006
|
* Receive call result with callId for inline correlation
|
|
993
1007
|
*/
|
|
994
|
-
async receiveTeammateCallResult(_dialog, _responderId,
|
|
1008
|
+
async receiveTeammateCallResult(_dialog, _responderId, _callName, _mentionList, _tellaskContent, _result, _status, _callId) { }
|
|
995
1009
|
/**
|
|
996
1010
|
* Receive teammate response (separate bubble for @teammate tellasks)
|
|
997
1011
|
*/
|
|
998
|
-
async receiveTeammateResponse(_dialog, _responderId,
|
|
1012
|
+
async receiveTeammateResponse(_dialog, _responderId, _callName, _mentionList, _tellaskContent, _status, _subdialogId, _options) { }
|
|
999
1013
|
async updateQuestions4Human(_dialog, _questions) { }
|
|
1000
1014
|
/**
|
|
1001
1015
|
* Load Questions for Human state from storage
|
|
@@ -1015,14 +1029,8 @@ class DialogStore {
|
|
|
1015
1029
|
* Clear Questions for Human state in storage
|
|
1016
1030
|
*/
|
|
1017
1031
|
async clearQuestions4Human(_dialog) { }
|
|
1018
|
-
// Tellask call
|
|
1019
|
-
async callingStart(_dialog,
|
|
1020
|
-
async callingHeadlineChunk(_dialog, _chunk) { }
|
|
1021
|
-
async callingHeadlineFinish(_dialog) { }
|
|
1022
|
-
async callingBodyStart(_dialog) { }
|
|
1023
|
-
async callingBodyChunk(_dialog, _chunk) { }
|
|
1024
|
-
async callingBodyFinish(_dialog) { }
|
|
1025
|
-
async callingFinish(_dialog, _callId) { }
|
|
1032
|
+
// Tellask-special call lifecycle methods
|
|
1033
|
+
async callingStart(_dialog, _payload) { }
|
|
1026
1034
|
// Function call event (non-streaming mode - single event)
|
|
1027
1035
|
async funcCallRequested(_dialog, _funcId, _funcName, _argumentsStr) { }
|
|
1028
1036
|
async webSearchCall(_dialog, _payload) { }
|
|
@@ -241,8 +241,8 @@ taskDocPath: 'task.tsk' # Path to rtws Taskdoc package directory (inherited from
|
|
|
241
241
|
createdAt: '2024-01-15T10:35:00Z' # ISO timestamp when created
|
|
242
242
|
supdialogId: 'aa/bb/cccccccc' # Parent dialog's selfDlgId
|
|
243
243
|
assignmentFromSup: # Assignment context from parent
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
mentionList: ['@bob']
|
|
245
|
+
tellaskContent: 'Implement user authentication; create secure login system with JWT tokens'
|
|
246
246
|
originMemberId: 'alice'
|
|
247
247
|
```
|
|
248
248
|
|
|
@@ -238,8 +238,8 @@ taskDocPath: 'task.tsk' # rtws 差遣牒任务包(*.tsk/)目录的路径(
|
|
|
238
238
|
createdAt: '2024-01-15T10:35:00Z' # 创建时的 ISO 时间戳
|
|
239
239
|
supdialogId: 'aa/bb/cccccccc' # 父对话的 selfDlgId
|
|
240
240
|
assignmentFromSup: # 来自父级的任务上下文
|
|
241
|
-
|
|
242
|
-
|
|
241
|
+
mentionList: ['@bob']
|
|
242
|
+
tellaskContent: 'Implement user authentication; create secure login system with JWT tokens'
|
|
243
243
|
originMemberId: 'alice'
|
|
244
244
|
```
|
|
245
245
|
|