dominds 1.6.7 → 1.7.0
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/apps/installed-file.js +207 -0
- package/dist/apps/runtime-port.js +91 -0
- package/dist/course-transition.js +40 -12
- package/dist/dialog-fork.js +10 -6
- package/dist/dialog.js +12 -12
- package/dist/docs/kernel-app-architecture.md +286 -0
- package/dist/docs/kernel-app-architecture.zh.md +285 -0
- package/dist/llm/driver-entry.js +28 -0
- package/dist/llm/driver-v2/context-health.js +121 -0
- package/dist/llm/driver-v2/context.js +56 -0
- package/dist/llm/driver-v2/core.js +1545 -0
- package/dist/llm/driver-v2/index.js +26 -0
- package/dist/llm/driver-v2/orchestrator.js +158 -0
- package/dist/llm/driver-v2/policy.js +129 -0
- package/dist/llm/driver-v2/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2/round.js +366 -0
- package/dist/llm/driver-v2/runtime-utils.js +365 -0
- package/dist/llm/driver-v2/saying-events.js +20 -0
- package/dist/llm/driver-v2/subdialog-txn.js +42 -0
- package/dist/llm/driver-v2/supdialog-response.js +400 -0
- package/dist/llm/driver-v2/tellask-bridge.js +1148 -0
- package/dist/llm/driver-v2/types.js +10 -0
- package/dist/llm/driver-v2-ref-only/context-health.js +121 -0
- package/dist/llm/driver-v2-ref-only/context.js +17 -0
- package/dist/llm/driver-v2-ref-only/core.js +1710 -0
- package/dist/llm/driver-v2-ref-only/index.js +26 -0
- package/dist/llm/driver-v2-ref-only/orchestrator.js +158 -0
- package/dist/llm/driver-v2-ref-only/policy.js +129 -0
- package/dist/llm/driver-v2-ref-only/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2-ref-only/round.js +366 -0
- package/dist/llm/driver-v2-ref-only/runtime-utils.js +473 -0
- package/dist/llm/driver-v2-ref-only/saying-events.js +18 -0
- package/dist/llm/driver-v2-ref-only/subdialog-txn.js +42 -0
- package/dist/llm/driver-v2-ref-only/supdialog-response.js +453 -0
- package/dist/llm/driver-v2-ref-only/tellask-bridge.js +1178 -0
- package/dist/llm/driver-v2-ref-only/types.js +10 -0
- package/dist/llm/gen/anthropic.js +1 -1
- package/dist/llm/gen/codex.js +1 -0
- package/dist/llm/gen/mock.js +5 -0
- package/dist/llm/gen/openai-compatible.js +1 -0
- package/dist/llm/gen/openai.js +1 -0
- package/dist/llm/kernel-driver/context.js +7 -2
- package/dist/llm/kernel-driver/drive.js +1 -1
- package/dist/llm/kernel-driver/flow.js +2 -2
- package/dist/llm/kernel-driver/subdialog.js +42 -14
- package/dist/llm/kernel-driver/tellask-special.js +11 -11
- package/dist/persistence.js +361 -73
- package/dist/priming.js +203 -27
- package/dist/server/websocket-handler.js +1 -1
- package/dist/shared/utils/inter-dialog-format.js +79 -2
- package/dist/static/assets/{_basePickBy-B9gw9xu3.js → _basePickBy-B5JpcIlf.js} +3 -3
- package/dist/static/assets/{_basePickBy-B9gw9xu3.js.map → _basePickBy-B5JpcIlf.js.map} +1 -1
- package/dist/static/assets/{_baseUniq-CdteP2Ad.js → _baseUniq-B6ENA5xp.js} +2 -2
- package/dist/static/assets/{_baseUniq-CdteP2Ad.js.map → _baseUniq-B6ENA5xp.js.map} +1 -1
- package/dist/static/assets/{arc-BaFSInZP.js → arc-CztgHQ6S.js} +2 -2
- package/dist/static/assets/{arc-BaFSInZP.js.map → arc-CztgHQ6S.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-kO0ROBqa.js → architectureDiagram-VXUJARFQ-CdI-KLc0.js} +7 -7
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-kO0ROBqa.js.map → architectureDiagram-VXUJARFQ-CdI-KLc0.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-D766EIYA.js → blockDiagram-VD42YOAC-BALBf4XM.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-D766EIYA.js.map → blockDiagram-VD42YOAC-BALBf4XM.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-DwL98wWS.js → c4Diagram-YG6GDRKO-a1k6yPrP.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-DwL98wWS.js.map → c4Diagram-YG6GDRKO-a1k6yPrP.js.map} +1 -1
- package/dist/static/assets/{channel-CcUPWS87.js → channel-CWNdqJ-I.js} +2 -2
- package/dist/static/assets/{channel-CcUPWS87.js.map → channel-CWNdqJ-I.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-BeTSwCuA.js → chunk-4BX2VUAB-BQeTUB5q.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-BeTSwCuA.js.map → chunk-4BX2VUAB-BQeTUB5q.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-C6Tzr8i_.js → chunk-55IACEB6-DDefFY4X.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-C6Tzr8i_.js.map → chunk-55IACEB6-DDefFY4X.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-DSi9x25j.js → chunk-B4BG7PRW-B3r4W-g_.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-DSi9x25j.js.map → chunk-B4BG7PRW-B3r4W-g_.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-CfAPRphL.js → chunk-DI55MBZ5-BDKIjQbt.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-CfAPRphL.js.map → chunk-DI55MBZ5-BDKIjQbt.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-B-M6vSiI.js → chunk-FMBD7UC4-BRjO7LO2.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-B-M6vSiI.js.map → chunk-FMBD7UC4-BRjO7LO2.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-yU2oNaRc.js → chunk-QN33PNHL-DtUbDqMq.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-yU2oNaRc.js.map → chunk-QN33PNHL-DtUbDqMq.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-jPTrvtzO.js → chunk-QZHKN3VN-HvxW4tgI.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-jPTrvtzO.js.map → chunk-QZHKN3VN-HvxW4tgI.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-Bls_D3TM.js → chunk-TZMSLE5B-8kvbFL8c.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-Bls_D3TM.js.map → chunk-TZMSLE5B-8kvbFL8c.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-6HSV8O5b.js → classDiagram-2ON5EDUG-BT0K1-Ue.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-6HSV8O5b.js.map → classDiagram-2ON5EDUG-BT0K1-Ue.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-6HSV8O5b.js → classDiagram-v2-WZHVMYZB-BT0K1-Ue.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-6HSV8O5b.js.map → classDiagram-v2-WZHVMYZB-BT0K1-Ue.js.map} +1 -1
- package/dist/static/assets/{clone-CtKoD5Su.js → clone-C8ji-9VG.js} +2 -2
- package/dist/static/assets/{clone-CtKoD5Su.js.map → clone-C8ji-9VG.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-C8Q_0ZER.js → cose-bilkent-S5V4N54A-DgZIHStr.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-C8Q_0ZER.js.map → cose-bilkent-S5V4N54A-DgZIHStr.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-CYIohfVW.js → dagre-6UL2VRFP-CoLMSS7V.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-CYIohfVW.js.map → dagre-6UL2VRFP-CoLMSS7V.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-BTYKp-4w.js → diagram-PSM6KHXK-BbaRu7Ko.js} +8 -8
- package/dist/static/assets/{diagram-PSM6KHXK-BTYKp-4w.js.map → diagram-PSM6KHXK-BbaRu7Ko.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-CopAPXBx.js → diagram-QEK2KX5R-w2QJoEvf.js} +7 -7
- package/dist/static/assets/{diagram-QEK2KX5R-CopAPXBx.js.map → diagram-QEK2KX5R-w2QJoEvf.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-BxYzu2CQ.js → diagram-S2PKOQOG-CZ3V7aTH.js} +7 -7
- package/dist/static/assets/{diagram-S2PKOQOG-BxYzu2CQ.js.map → diagram-S2PKOQOG-CZ3V7aTH.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-8SOoYoCD.js → erDiagram-Q2GNP2WA-B_D5zZGW.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-8SOoYoCD.js.map → erDiagram-Q2GNP2WA-B_D5zZGW.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-x3ds9tRp.js → flowDiagram-NV44I4VS-CdleeZSt.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-x3ds9tRp.js.map → flowDiagram-NV44I4VS-CdleeZSt.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-JJe52R5B.js → ganttDiagram-JELNMOA3-D4I0mcXy.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-JJe52R5B.js.map → ganttDiagram-JELNMOA3-D4I0mcXy.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-D5WErFAP.js → gitGraphDiagram-V2S2FVAM-2TDy5WsI.js} +8 -8
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-D5WErFAP.js.map → gitGraphDiagram-V2S2FVAM-2TDy5WsI.js.map} +1 -1
- package/dist/static/assets/{graph-D2qG911_.js → graph-6qmT9kvE.js} +3 -3
- package/dist/static/assets/{graph-D2qG911_.js.map → graph-6qmT9kvE.js.map} +1 -1
- package/dist/static/assets/{index-BRvFzt7r.js → index-DZjf7VGN.js} +272 -80
- package/dist/static/assets/{index-BRvFzt7r.js.map → index-DZjf7VGN.js.map} +1 -1
- package/dist/static/assets/{infoDiagram-HS3SLOUP-CJgZXXei.js → infoDiagram-HS3SLOUP-Cdngu1wO.js} +6 -6
- package/dist/static/assets/{infoDiagram-HS3SLOUP-CJgZXXei.js.map → infoDiagram-HS3SLOUP-Cdngu1wO.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-DsA_9YlY.js → journeyDiagram-XKPGCS4Q-C8JGH9qX.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-DsA_9YlY.js.map → journeyDiagram-XKPGCS4Q-C8JGH9qX.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-l0WL_yMI.js → kanban-definition-3W4ZIXB7-CgcdAoUr.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-l0WL_yMI.js.map → kanban-definition-3W4ZIXB7-CgcdAoUr.js.map} +1 -1
- package/dist/static/assets/{layout-CpX1UYDN.js → layout--9zDsdfQ.js} +5 -5
- package/dist/static/assets/{layout-CpX1UYDN.js.map → layout--9zDsdfQ.js.map} +1 -1
- package/dist/static/assets/{linear-BwAZ1jvU.js → linear-f6M3OqrG.js} +2 -2
- package/dist/static/assets/{linear-BwAZ1jvU.js.map → linear-f6M3OqrG.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-CbPr4yzk.js → mindmap-definition-VGOIOE7T-O6D8o0NA.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-CbPr4yzk.js.map → mindmap-definition-VGOIOE7T-O6D8o0NA.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-Dm1nDIqq.js → pieDiagram-ADFJNKIX-B73iJXia.js} +8 -8
- package/dist/static/assets/{pieDiagram-ADFJNKIX-Dm1nDIqq.js.map → pieDiagram-ADFJNKIX-B73iJXia.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-ZsrsqMXx.js → quadrantDiagram-AYHSOK5B-1MkdhL3o.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-ZsrsqMXx.js.map → quadrantDiagram-AYHSOK5B-1MkdhL3o.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-Dcm7em76.js → requirementDiagram-UZGBJVZJ-BANDg6Jt.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-Dcm7em76.js.map → requirementDiagram-UZGBJVZJ-BANDg6Jt.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-CZaCjU14.js → sankeyDiagram-TZEHDZUN-XEoMNqRv.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-CZaCjU14.js.map → sankeyDiagram-TZEHDZUN-XEoMNqRv.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CcfoaMSR.js → sequenceDiagram-WL72ISMW-Brw-9CPI.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CcfoaMSR.js.map → sequenceDiagram-WL72ISMW-Brw-9CPI.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-BVIDD43e.js → stateDiagram-FKZM4ZOC-CVzsrvr2.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-BVIDD43e.js.map → stateDiagram-FKZM4ZOC-CVzsrvr2.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-B9GL2xr3.js → stateDiagram-v2-4FDKWEC3-B9j-EAhS.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-B9GL2xr3.js.map → stateDiagram-v2-4FDKWEC3-B9j-EAhS.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-8iKDS8Ig.js → timeline-definition-IT6M3QCI-S3mM3ltV.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-8iKDS8Ig.js.map → timeline-definition-IT6M3QCI-S3mM3ltV.js.map} +1 -1
- package/dist/static/assets/{treemap-GDKQZRPO-CbxnTnrn.js → treemap-GDKQZRPO-Cf1b3Cgv.js} +5 -5
- package/dist/static/assets/{treemap-GDKQZRPO-CbxnTnrn.js.map → treemap-GDKQZRPO-Cf1b3Cgv.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-C0KMwrOR.js → xychartDiagram-PRI3JC2R-CYvqfglb.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-C0KMwrOR.js.map → xychartDiagram-PRI3JC2R-CYvqfglb.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/tools/prompts/memory/en/errors.md +155 -0
- package/dist/tools/prompts/memory/en/index.md +47 -0
- package/dist/tools/prompts/memory/en/principles.md +79 -0
- package/dist/tools/prompts/memory/en/scenarios.md +174 -0
- package/dist/tools/prompts/memory/en/tools.md +154 -0
- package/dist/tools/prompts/memory/zh/errors.md +155 -0
- package/dist/tools/prompts/memory/zh/index.md +47 -0
- package/dist/tools/prompts/memory/zh/principles.md +79 -0
- package/dist/tools/prompts/memory/zh/scenarios.md +174 -0
- package/dist/tools/prompts/memory/zh/tools.md +154 -0
- package/package.json +1 -1
package/dist/persistence.js
CHANGED
|
@@ -640,12 +640,12 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
640
640
|
* - tellask-special function call (inline bubble)
|
|
641
641
|
* - Result displays INLINE in the same bubble
|
|
642
642
|
* - Uses callId for correlation between call_start and response
|
|
643
|
-
* - Uses
|
|
643
|
+
* - Uses receiveTellaskCallResult() + callId parameter
|
|
644
644
|
*
|
|
645
645
|
* - Teammate Tellask (subdialog response bubble)
|
|
646
646
|
* - Result displays in SEPARATE bubble (subdialog response)
|
|
647
647
|
* - Uses calleeDialogId for correlation
|
|
648
|
-
* - Uses
|
|
648
|
+
* - Uses receiveTellaskResponse() instead
|
|
649
649
|
*
|
|
650
650
|
* @param dialog - The dialog receiving the response
|
|
651
651
|
* @param responderId - ID of the tool/agent that responded (e.g., "add_reminder")
|
|
@@ -655,7 +655,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
655
655
|
* @param status - Response status ('completed' | 'failed')
|
|
656
656
|
* @param callId - Correlation ID from call_start_evt (REQUIRED for inline display)
|
|
657
657
|
*/
|
|
658
|
-
async
|
|
658
|
+
async receiveTellaskCallResult(dialog, responderId, callName, mentionList, tellaskContent, result, status, callId) {
|
|
659
659
|
const course = dialog.activeGenCourseOrUndefined ?? dialog.currentCourse;
|
|
660
660
|
const calling_genseq = dialog.activeGenSeqOrUndefined !== undefined
|
|
661
661
|
? (0, storage_1.toCallingGenerationSeqNumber)(dialog.activeGenSeqOrUndefined)
|
|
@@ -667,7 +667,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
667
667
|
case 'tellaskSessionless':
|
|
668
668
|
return {
|
|
669
669
|
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
670
|
-
type: '
|
|
670
|
+
type: 'tellask_call_result_record',
|
|
671
671
|
responderId,
|
|
672
672
|
callName,
|
|
673
673
|
mentionList: mentionList ?? [],
|
|
@@ -682,7 +682,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
682
682
|
case 'freshBootsReasoning':
|
|
683
683
|
return {
|
|
684
684
|
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
685
|
-
type: '
|
|
685
|
+
type: 'tellask_call_result_record',
|
|
686
686
|
responderId,
|
|
687
687
|
callName,
|
|
688
688
|
tellaskContent,
|
|
@@ -694,13 +694,13 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
694
694
|
}
|
|
695
695
|
})();
|
|
696
696
|
await this.appendEvent(dialog, course, ev);
|
|
697
|
-
// Emit
|
|
697
|
+
// Emit TellaskCallResultEvent WITH callId for UI correlation
|
|
698
698
|
const toolResponseEvt = (() => {
|
|
699
699
|
switch (callName) {
|
|
700
700
|
case 'tellask':
|
|
701
701
|
case 'tellaskSessionless':
|
|
702
702
|
return {
|
|
703
|
-
type: '
|
|
703
|
+
type: 'tellask_call_result_evt',
|
|
704
704
|
responderId,
|
|
705
705
|
callName,
|
|
706
706
|
mentionList: mentionList ?? [],
|
|
@@ -715,7 +715,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
715
715
|
case 'askHuman':
|
|
716
716
|
case 'freshBootsReasoning':
|
|
717
717
|
return {
|
|
718
|
-
type: '
|
|
718
|
+
type: 'tellask_call_result_evt',
|
|
719
719
|
responderId,
|
|
720
720
|
callName,
|
|
721
721
|
tellaskContent,
|
|
@@ -736,7 +736,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
736
736
|
* - Teammate Tellask response
|
|
737
737
|
* - Result displays in SEPARATE bubble (subdialog or supdialog response)
|
|
738
738
|
* - Uses calleeDialogId for correlation (not callId)
|
|
739
|
-
* - Uses this method (
|
|
739
|
+
* - Uses this method (receiveTellaskResponse)
|
|
740
740
|
*
|
|
741
741
|
* @param dialog - The dialog receiving the response
|
|
742
742
|
* @param responderId - ID of the teammate agent (e.g., "coder")
|
|
@@ -745,8 +745,8 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
745
745
|
* @param status - Response status ('completed' | 'failed')
|
|
746
746
|
* @param calleeDialogId - ID of the callee dialog (subdialog OR supdialog) for navigation links
|
|
747
747
|
*/
|
|
748
|
-
async
|
|
749
|
-
const
|
|
748
|
+
async receiveTellaskResponse(dialog, responderId, callName, mentionList, tellaskContent, status, calleeDialogId, options) {
|
|
749
|
+
const currentCourse = dialog.activeGenCourseOrUndefined ?? dialog.currentCourse;
|
|
750
750
|
const calling_genseq = dialog.activeGenSeqOrUndefined !== undefined
|
|
751
751
|
? (0, storage_1.toCallingGenerationSeqNumber)(dialog.activeGenSeqOrUndefined)
|
|
752
752
|
: undefined;
|
|
@@ -755,140 +755,311 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
755
755
|
const agentId = options.agentId;
|
|
756
756
|
const callId = options.callId;
|
|
757
757
|
const originMemberId = options.originMemberId;
|
|
758
|
+
const originCourse = options.originCourse;
|
|
759
|
+
const carryoverContent = options.carryoverContent;
|
|
760
|
+
const carryoverText = typeof carryoverContent === 'string' && carryoverContent.trim() !== ''
|
|
761
|
+
? carryoverContent
|
|
762
|
+
: undefined;
|
|
758
763
|
const sessionSlug = typeof options.sessionSlug === 'string' && options.sessionSlug.trim() !== ''
|
|
759
764
|
? options.sessionSlug.trim()
|
|
760
765
|
: undefined;
|
|
761
766
|
const calleeCourse = options.calleeCourse;
|
|
762
767
|
const calleeGenseq = options.calleeGenseq;
|
|
763
768
|
const normalizedMentionList = mentionList ?? [];
|
|
764
|
-
const
|
|
769
|
+
const isCrossCourseCarryover = originCourse !== undefined && originCourse !== currentCourse;
|
|
770
|
+
if (!isCrossCourseCarryover) {
|
|
771
|
+
const responseCourse = originCourse ?? currentCourse;
|
|
772
|
+
const ev = (() => {
|
|
773
|
+
switch (callName) {
|
|
774
|
+
case 'tellask':
|
|
775
|
+
if (!sessionSlug) {
|
|
776
|
+
throw new Error(`receiveTellaskResponse invariant violation: missing sessionSlug for tellask ` +
|
|
777
|
+
`(dialogId=${dialog.id.selfId}, callId=${callId})`);
|
|
778
|
+
}
|
|
779
|
+
return {
|
|
780
|
+
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
781
|
+
type: 'tellask_response_record',
|
|
782
|
+
responderId,
|
|
783
|
+
callName,
|
|
784
|
+
sessionSlug,
|
|
785
|
+
calleeDialogId: calleeDialogSelfId,
|
|
786
|
+
calleeCourse,
|
|
787
|
+
calleeGenseq,
|
|
788
|
+
mentionList: normalizedMentionList,
|
|
789
|
+
tellaskContent,
|
|
790
|
+
status,
|
|
791
|
+
calling_genseq,
|
|
792
|
+
response,
|
|
793
|
+
agentId,
|
|
794
|
+
callId,
|
|
795
|
+
originMemberId,
|
|
796
|
+
};
|
|
797
|
+
case 'tellaskSessionless':
|
|
798
|
+
return {
|
|
799
|
+
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
800
|
+
type: 'tellask_response_record',
|
|
801
|
+
responderId,
|
|
802
|
+
callName,
|
|
803
|
+
calleeDialogId: calleeDialogSelfId,
|
|
804
|
+
calleeCourse,
|
|
805
|
+
calleeGenseq,
|
|
806
|
+
mentionList: normalizedMentionList,
|
|
807
|
+
tellaskContent,
|
|
808
|
+
status,
|
|
809
|
+
calling_genseq,
|
|
810
|
+
response,
|
|
811
|
+
agentId,
|
|
812
|
+
callId,
|
|
813
|
+
originMemberId,
|
|
814
|
+
};
|
|
815
|
+
case 'tellaskBack':
|
|
816
|
+
case 'freshBootsReasoning':
|
|
817
|
+
return {
|
|
818
|
+
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
819
|
+
type: 'tellask_response_record',
|
|
820
|
+
responderId,
|
|
821
|
+
callName,
|
|
822
|
+
calleeDialogId: calleeDialogSelfId,
|
|
823
|
+
calleeCourse,
|
|
824
|
+
calleeGenseq,
|
|
825
|
+
tellaskContent,
|
|
826
|
+
status,
|
|
827
|
+
calling_genseq,
|
|
828
|
+
response,
|
|
829
|
+
agentId,
|
|
830
|
+
callId,
|
|
831
|
+
originMemberId,
|
|
832
|
+
};
|
|
833
|
+
}
|
|
834
|
+
})();
|
|
835
|
+
await this.appendEvent(dialog, responseCourse, ev);
|
|
836
|
+
const tellaskResponseEvt = (() => {
|
|
837
|
+
switch (callName) {
|
|
838
|
+
case 'tellask':
|
|
839
|
+
if (!sessionSlug) {
|
|
840
|
+
throw new Error(`receiveTellaskResponse invariant violation: missing sessionSlug for tellask ` +
|
|
841
|
+
`(dialogId=${dialog.id.selfId}, callId=${callId})`);
|
|
842
|
+
}
|
|
843
|
+
return {
|
|
844
|
+
type: 'tellask_response_evt',
|
|
845
|
+
responderId,
|
|
846
|
+
callName,
|
|
847
|
+
sessionSlug,
|
|
848
|
+
calleeDialogId: calleeDialogSelfId,
|
|
849
|
+
calleeCourse,
|
|
850
|
+
calleeGenseq,
|
|
851
|
+
mentionList: normalizedMentionList,
|
|
852
|
+
tellaskContent,
|
|
853
|
+
status,
|
|
854
|
+
course: responseCourse,
|
|
855
|
+
calling_genseq,
|
|
856
|
+
response,
|
|
857
|
+
agentId,
|
|
858
|
+
callId,
|
|
859
|
+
originMemberId,
|
|
860
|
+
};
|
|
861
|
+
case 'tellaskSessionless':
|
|
862
|
+
return {
|
|
863
|
+
type: 'tellask_response_evt',
|
|
864
|
+
responderId,
|
|
865
|
+
callName,
|
|
866
|
+
calleeDialogId: calleeDialogSelfId,
|
|
867
|
+
calleeCourse,
|
|
868
|
+
calleeGenseq,
|
|
869
|
+
mentionList: normalizedMentionList,
|
|
870
|
+
tellaskContent,
|
|
871
|
+
status,
|
|
872
|
+
course: responseCourse,
|
|
873
|
+
calling_genseq,
|
|
874
|
+
response,
|
|
875
|
+
agentId,
|
|
876
|
+
callId,
|
|
877
|
+
originMemberId,
|
|
878
|
+
};
|
|
879
|
+
case 'tellaskBack':
|
|
880
|
+
case 'freshBootsReasoning':
|
|
881
|
+
return {
|
|
882
|
+
type: 'tellask_response_evt',
|
|
883
|
+
responderId,
|
|
884
|
+
callName,
|
|
885
|
+
calleeDialogId: calleeDialogSelfId,
|
|
886
|
+
calleeCourse,
|
|
887
|
+
calleeGenseq,
|
|
888
|
+
tellaskContent,
|
|
889
|
+
status,
|
|
890
|
+
course: responseCourse,
|
|
891
|
+
calling_genseq,
|
|
892
|
+
response,
|
|
893
|
+
agentId,
|
|
894
|
+
callId,
|
|
895
|
+
originMemberId,
|
|
896
|
+
};
|
|
897
|
+
}
|
|
898
|
+
})();
|
|
899
|
+
(0, evt_registry_1.postDialogEvent)(dialog, tellaskResponseEvt);
|
|
900
|
+
return;
|
|
901
|
+
}
|
|
902
|
+
if (!originCourse) {
|
|
903
|
+
throw new Error(`receiveTellaskResponse invariant violation: missing originCourse for cross-course carryover ` +
|
|
904
|
+
`(dialogId=${dialog.id.selfId}, callId=${callId}, currentCourse=${currentCourse})`);
|
|
905
|
+
}
|
|
906
|
+
if (callName === 'tellaskBack') {
|
|
907
|
+
throw new Error(`tellask carryover does not support tellaskBack (dialogId=${dialog.id.selfId}, callId=${callId})`);
|
|
908
|
+
}
|
|
909
|
+
if (carryoverText === undefined) {
|
|
910
|
+
throw new Error(`receiveTellaskResponse invariant violation: missing carryoverContent for cross-course tellask ` +
|
|
911
|
+
`(dialogId=${dialog.id.selfId}, callId=${callId}, originCourse=${originCourse}, currentCourse=${currentCourse})`);
|
|
912
|
+
}
|
|
913
|
+
const carryoverCallRecord = {
|
|
914
|
+
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
915
|
+
type: 'tellask_call_carryover_record',
|
|
916
|
+
responderId,
|
|
917
|
+
status,
|
|
918
|
+
callId,
|
|
919
|
+
carryoverCourse: (0, storage_1.toDialogCourseNumber)(currentCourse),
|
|
920
|
+
};
|
|
921
|
+
await this.appendEvent(dialog, originCourse, carryoverCallRecord);
|
|
922
|
+
const carryoverCallEvent = {
|
|
923
|
+
type: 'tellask_call_carryover_evt',
|
|
924
|
+
course: originCourse,
|
|
925
|
+
responderId,
|
|
926
|
+
status,
|
|
927
|
+
callId,
|
|
928
|
+
carryoverCourse: (0, storage_1.toDialogCourseNumber)(currentCourse),
|
|
929
|
+
};
|
|
930
|
+
(0, evt_registry_1.postDialogEvent)(dialog, carryoverCallEvent);
|
|
931
|
+
const carryoverRecord = (() => {
|
|
765
932
|
switch (callName) {
|
|
766
933
|
case 'tellask':
|
|
767
934
|
if (!sessionSlug) {
|
|
768
|
-
throw new Error(`
|
|
935
|
+
throw new Error(`receiveTellaskResponse invariant violation: missing sessionSlug for tellask carryover ` +
|
|
769
936
|
`(dialogId=${dialog.id.selfId}, callId=${callId})`);
|
|
770
937
|
}
|
|
771
938
|
return {
|
|
772
939
|
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
773
|
-
type: '
|
|
940
|
+
type: 'tellask_carryover_result_record',
|
|
941
|
+
originCourse,
|
|
774
942
|
responderId,
|
|
775
943
|
callName,
|
|
776
944
|
sessionSlug,
|
|
777
|
-
calleeDialogId: calleeDialogSelfId,
|
|
778
|
-
calleeCourse,
|
|
779
|
-
calleeGenseq,
|
|
780
945
|
mentionList: normalizedMentionList,
|
|
781
946
|
tellaskContent,
|
|
782
947
|
status,
|
|
783
|
-
calling_genseq,
|
|
784
948
|
response,
|
|
949
|
+
content: carryoverText,
|
|
785
950
|
agentId,
|
|
786
951
|
callId,
|
|
787
952
|
originMemberId,
|
|
953
|
+
calleeDialogId: calleeDialogSelfId,
|
|
954
|
+
calleeCourse,
|
|
955
|
+
calleeGenseq,
|
|
788
956
|
};
|
|
789
957
|
case 'tellaskSessionless':
|
|
790
958
|
return {
|
|
791
959
|
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
792
|
-
type: '
|
|
960
|
+
type: 'tellask_carryover_result_record',
|
|
961
|
+
originCourse,
|
|
793
962
|
responderId,
|
|
794
963
|
callName,
|
|
795
|
-
calleeDialogId: calleeDialogSelfId,
|
|
796
|
-
calleeCourse,
|
|
797
|
-
calleeGenseq,
|
|
798
964
|
mentionList: normalizedMentionList,
|
|
799
965
|
tellaskContent,
|
|
800
966
|
status,
|
|
801
|
-
calling_genseq,
|
|
802
967
|
response,
|
|
968
|
+
content: carryoverText,
|
|
803
969
|
agentId,
|
|
804
970
|
callId,
|
|
805
971
|
originMemberId,
|
|
972
|
+
calleeDialogId: calleeDialogSelfId,
|
|
973
|
+
calleeCourse,
|
|
974
|
+
calleeGenseq,
|
|
806
975
|
};
|
|
807
|
-
case 'tellaskBack':
|
|
808
976
|
case 'freshBootsReasoning':
|
|
809
977
|
return {
|
|
810
978
|
ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
|
|
811
|
-
type: '
|
|
979
|
+
type: 'tellask_carryover_result_record',
|
|
980
|
+
originCourse,
|
|
812
981
|
responderId,
|
|
813
982
|
callName,
|
|
814
|
-
calleeDialogId: calleeDialogSelfId,
|
|
815
|
-
calleeCourse,
|
|
816
|
-
calleeGenseq,
|
|
817
983
|
tellaskContent,
|
|
818
984
|
status,
|
|
819
|
-
calling_genseq,
|
|
820
985
|
response,
|
|
986
|
+
content: carryoverText,
|
|
821
987
|
agentId,
|
|
822
988
|
callId,
|
|
823
989
|
originMemberId,
|
|
990
|
+
calleeDialogId: calleeDialogSelfId,
|
|
991
|
+
calleeCourse,
|
|
992
|
+
calleeGenseq,
|
|
824
993
|
};
|
|
825
994
|
}
|
|
826
995
|
})();
|
|
827
|
-
await this.appendEvent(dialog,
|
|
828
|
-
const
|
|
996
|
+
await this.appendEvent(dialog, currentCourse, carryoverRecord);
|
|
997
|
+
const carryoverEvent = (() => {
|
|
829
998
|
switch (callName) {
|
|
830
999
|
case 'tellask':
|
|
831
1000
|
if (!sessionSlug) {
|
|
832
|
-
throw new Error(`
|
|
1001
|
+
throw new Error(`receiveTellaskResponse invariant violation: missing sessionSlug for tellask carryover evt ` +
|
|
833
1002
|
`(dialogId=${dialog.id.selfId}, callId=${callId})`);
|
|
834
1003
|
}
|
|
835
1004
|
return {
|
|
836
|
-
type: '
|
|
1005
|
+
type: 'tellask_carryover_result_evt',
|
|
1006
|
+
course: currentCourse,
|
|
1007
|
+
originCourse,
|
|
837
1008
|
responderId,
|
|
838
1009
|
callName,
|
|
839
1010
|
sessionSlug,
|
|
840
|
-
calleeDialogId: calleeDialogSelfId,
|
|
841
|
-
calleeCourse,
|
|
842
|
-
calleeGenseq,
|
|
843
1011
|
mentionList: normalizedMentionList,
|
|
844
1012
|
tellaskContent,
|
|
845
1013
|
status,
|
|
846
|
-
course,
|
|
847
|
-
calling_genseq,
|
|
848
1014
|
response,
|
|
1015
|
+
content: carryoverText,
|
|
849
1016
|
agentId,
|
|
850
1017
|
callId,
|
|
851
1018
|
originMemberId,
|
|
1019
|
+
calleeDialogId: calleeDialogSelfId,
|
|
1020
|
+
calleeCourse,
|
|
1021
|
+
calleeGenseq,
|
|
852
1022
|
};
|
|
853
1023
|
case 'tellaskSessionless':
|
|
854
1024
|
return {
|
|
855
|
-
type: '
|
|
1025
|
+
type: 'tellask_carryover_result_evt',
|
|
1026
|
+
course: currentCourse,
|
|
1027
|
+
originCourse,
|
|
856
1028
|
responderId,
|
|
857
1029
|
callName,
|
|
858
|
-
calleeDialogId: calleeDialogSelfId,
|
|
859
|
-
calleeCourse,
|
|
860
|
-
calleeGenseq,
|
|
861
1030
|
mentionList: normalizedMentionList,
|
|
862
1031
|
tellaskContent,
|
|
863
1032
|
status,
|
|
864
|
-
course,
|
|
865
|
-
calling_genseq,
|
|
866
1033
|
response,
|
|
1034
|
+
content: carryoverText,
|
|
867
1035
|
agentId,
|
|
868
1036
|
callId,
|
|
869
1037
|
originMemberId,
|
|
1038
|
+
calleeDialogId: calleeDialogSelfId,
|
|
1039
|
+
calleeCourse,
|
|
1040
|
+
calleeGenseq,
|
|
870
1041
|
};
|
|
871
|
-
case 'tellaskBack':
|
|
872
1042
|
case 'freshBootsReasoning':
|
|
873
1043
|
return {
|
|
874
|
-
type: '
|
|
1044
|
+
type: 'tellask_carryover_result_evt',
|
|
1045
|
+
course: currentCourse,
|
|
1046
|
+
originCourse,
|
|
875
1047
|
responderId,
|
|
876
1048
|
callName,
|
|
877
|
-
calleeDialogId: calleeDialogSelfId,
|
|
878
|
-
calleeCourse,
|
|
879
|
-
calleeGenseq,
|
|
880
1049
|
tellaskContent,
|
|
881
1050
|
status,
|
|
882
|
-
course,
|
|
883
|
-
calling_genseq,
|
|
884
1051
|
response,
|
|
1052
|
+
content: carryoverText,
|
|
885
1053
|
agentId,
|
|
886
1054
|
callId,
|
|
887
1055
|
originMemberId,
|
|
1056
|
+
calleeDialogId: calleeDialogSelfId,
|
|
1057
|
+
calleeCourse,
|
|
1058
|
+
calleeGenseq,
|
|
888
1059
|
};
|
|
889
1060
|
}
|
|
890
1061
|
})();
|
|
891
|
-
(0, evt_registry_1.postDialogEvent)(dialog,
|
|
1062
|
+
(0, evt_registry_1.postDialogEvent)(dialog, carryoverEvent);
|
|
892
1063
|
}
|
|
893
1064
|
/**
|
|
894
1065
|
* Ensure subdialog directory exists (delegate to DialogPersistence)
|
|
@@ -1111,7 +1282,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1111
1282
|
throw new Error(`callingStart invariant violation: tellask requires sessionSlug (callId=${payload.callId})`);
|
|
1112
1283
|
}
|
|
1113
1284
|
return {
|
|
1114
|
-
type: '
|
|
1285
|
+
type: 'tellask_call_start_evt',
|
|
1115
1286
|
callName: payload.callName,
|
|
1116
1287
|
callId: payload.callId,
|
|
1117
1288
|
mentionList: payload.mentionList ?? [],
|
|
@@ -1122,7 +1293,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1122
1293
|
};
|
|
1123
1294
|
case 'tellaskSessionless':
|
|
1124
1295
|
return {
|
|
1125
|
-
type: '
|
|
1296
|
+
type: 'tellask_call_start_evt',
|
|
1126
1297
|
callName: payload.callName,
|
|
1127
1298
|
callId: payload.callId,
|
|
1128
1299
|
mentionList: payload.mentionList ?? [],
|
|
@@ -1134,7 +1305,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1134
1305
|
case 'askHuman':
|
|
1135
1306
|
case 'freshBootsReasoning':
|
|
1136
1307
|
return {
|
|
1137
|
-
type: '
|
|
1308
|
+
type: 'tellask_call_start_evt',
|
|
1138
1309
|
callName: payload.callName,
|
|
1139
1310
|
callId: payload.callId,
|
|
1140
1311
|
tellaskContent: payload.tellaskContent,
|
|
@@ -1825,7 +1996,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1825
1996
|
throw new Error(`Replay tellask event invariant violation: missing sessionSlug (callId=${specialCall.callId})`);
|
|
1826
1997
|
}
|
|
1827
1998
|
return {
|
|
1828
|
-
type: '
|
|
1999
|
+
type: 'tellask_call_start_evt',
|
|
1829
2000
|
callName: specialCall.callName,
|
|
1830
2001
|
callId: specialCall.callId,
|
|
1831
2002
|
mentionList: specialCall.mentionList,
|
|
@@ -1838,7 +2009,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1838
2009
|
};
|
|
1839
2010
|
case 'tellaskSessionless':
|
|
1840
2011
|
return {
|
|
1841
|
-
type: '
|
|
2012
|
+
type: 'tellask_call_start_evt',
|
|
1842
2013
|
callName: specialCall.callName,
|
|
1843
2014
|
callId: specialCall.callId,
|
|
1844
2015
|
mentionList: specialCall.mentionList,
|
|
@@ -1852,7 +2023,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1852
2023
|
case 'askHuman':
|
|
1853
2024
|
case 'freshBootsReasoning':
|
|
1854
2025
|
return {
|
|
1855
|
-
type: '
|
|
2026
|
+
type: 'tellask_call_start_evt',
|
|
1856
2027
|
callName: specialCall.callName,
|
|
1857
2028
|
callId: specialCall.callId,
|
|
1858
2029
|
tellaskContent: specialCall.tellaskContent,
|
|
@@ -1987,14 +2158,14 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
1987
2158
|
}
|
|
1988
2159
|
break;
|
|
1989
2160
|
}
|
|
1990
|
-
case '
|
|
2161
|
+
case 'tellask_call_result_record': {
|
|
1991
2162
|
// Handle teammate-call inline results
|
|
1992
2163
|
const responseEvent = (() => {
|
|
1993
2164
|
switch (event.callName) {
|
|
1994
2165
|
case 'tellask':
|
|
1995
2166
|
case 'tellaskSessionless':
|
|
1996
2167
|
return {
|
|
1997
|
-
type: '
|
|
2168
|
+
type: 'tellask_call_result_evt',
|
|
1998
2169
|
responderId: event.responderId,
|
|
1999
2170
|
callName: event.callName,
|
|
2000
2171
|
mentionList: event.mentionList,
|
|
@@ -2014,7 +2185,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2014
2185
|
case 'askHuman':
|
|
2015
2186
|
case 'freshBootsReasoning':
|
|
2016
2187
|
return {
|
|
2017
|
-
type: '
|
|
2188
|
+
type: 'tellask_call_result_evt',
|
|
2018
2189
|
responderId: event.responderId,
|
|
2019
2190
|
callName: event.callName,
|
|
2020
2191
|
tellaskContent: event.tellaskContent,
|
|
@@ -2036,9 +2207,9 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2036
2207
|
}
|
|
2037
2208
|
break;
|
|
2038
2209
|
}
|
|
2039
|
-
case '
|
|
2210
|
+
case 'tellask_call_anchor_record': {
|
|
2040
2211
|
const anchorEvent = {
|
|
2041
|
-
type: '
|
|
2212
|
+
type: 'tellask_call_anchor_evt',
|
|
2042
2213
|
course,
|
|
2043
2214
|
genseq: event.genseq,
|
|
2044
2215
|
anchorRole: event.anchorRole ?? 'response',
|
|
@@ -2058,6 +2229,107 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2058
2229
|
}
|
|
2059
2230
|
break;
|
|
2060
2231
|
}
|
|
2232
|
+
case 'tellask_call_carryover_record': {
|
|
2233
|
+
const carryoverEvent = {
|
|
2234
|
+
type: 'tellask_call_carryover_evt',
|
|
2235
|
+
course,
|
|
2236
|
+
responderId: event.responderId,
|
|
2237
|
+
status: event.status,
|
|
2238
|
+
callId: event.callId,
|
|
2239
|
+
carryoverCourse: event.carryoverCourse,
|
|
2240
|
+
dialog: {
|
|
2241
|
+
selfId: dialog.id.selfId,
|
|
2242
|
+
rootId: dialog.id.rootId,
|
|
2243
|
+
},
|
|
2244
|
+
timestamp: event.ts,
|
|
2245
|
+
};
|
|
2246
|
+
if (ws.readyState === 1) {
|
|
2247
|
+
ws.send(JSON.stringify(carryoverEvent));
|
|
2248
|
+
}
|
|
2249
|
+
break;
|
|
2250
|
+
}
|
|
2251
|
+
case 'tellask_carryover_result_record': {
|
|
2252
|
+
const carryoverEvent = (() => {
|
|
2253
|
+
switch (event.callName) {
|
|
2254
|
+
case 'tellask':
|
|
2255
|
+
return {
|
|
2256
|
+
type: 'tellask_carryover_result_evt',
|
|
2257
|
+
course,
|
|
2258
|
+
originCourse: event.originCourse,
|
|
2259
|
+
responderId: event.responderId,
|
|
2260
|
+
callName: event.callName,
|
|
2261
|
+
sessionSlug: event.sessionSlug,
|
|
2262
|
+
mentionList: event.mentionList,
|
|
2263
|
+
tellaskContent: event.tellaskContent,
|
|
2264
|
+
status: event.status,
|
|
2265
|
+
response: event.response,
|
|
2266
|
+
content: event.content,
|
|
2267
|
+
agentId: event.agentId,
|
|
2268
|
+
callId: event.callId,
|
|
2269
|
+
originMemberId: event.originMemberId,
|
|
2270
|
+
calleeDialogId: event.calleeDialogId,
|
|
2271
|
+
calleeCourse: event.calleeCourse,
|
|
2272
|
+
calleeGenseq: event.calleeGenseq,
|
|
2273
|
+
dialog: {
|
|
2274
|
+
selfId: dialog.id.selfId,
|
|
2275
|
+
rootId: dialog.id.rootId,
|
|
2276
|
+
},
|
|
2277
|
+
timestamp: event.ts,
|
|
2278
|
+
};
|
|
2279
|
+
case 'tellaskSessionless':
|
|
2280
|
+
return {
|
|
2281
|
+
type: 'tellask_carryover_result_evt',
|
|
2282
|
+
course,
|
|
2283
|
+
originCourse: event.originCourse,
|
|
2284
|
+
responderId: event.responderId,
|
|
2285
|
+
callName: event.callName,
|
|
2286
|
+
mentionList: event.mentionList,
|
|
2287
|
+
tellaskContent: event.tellaskContent,
|
|
2288
|
+
status: event.status,
|
|
2289
|
+
response: event.response,
|
|
2290
|
+
content: event.content,
|
|
2291
|
+
agentId: event.agentId,
|
|
2292
|
+
callId: event.callId,
|
|
2293
|
+
originMemberId: event.originMemberId,
|
|
2294
|
+
calleeDialogId: event.calleeDialogId,
|
|
2295
|
+
calleeCourse: event.calleeCourse,
|
|
2296
|
+
calleeGenseq: event.calleeGenseq,
|
|
2297
|
+
dialog: {
|
|
2298
|
+
selfId: dialog.id.selfId,
|
|
2299
|
+
rootId: dialog.id.rootId,
|
|
2300
|
+
},
|
|
2301
|
+
timestamp: event.ts,
|
|
2302
|
+
};
|
|
2303
|
+
case 'freshBootsReasoning':
|
|
2304
|
+
return {
|
|
2305
|
+
type: 'tellask_carryover_result_evt',
|
|
2306
|
+
course,
|
|
2307
|
+
originCourse: event.originCourse,
|
|
2308
|
+
responderId: event.responderId,
|
|
2309
|
+
callName: event.callName,
|
|
2310
|
+
tellaskContent: event.tellaskContent,
|
|
2311
|
+
status: event.status,
|
|
2312
|
+
response: event.response,
|
|
2313
|
+
content: event.content,
|
|
2314
|
+
agentId: event.agentId,
|
|
2315
|
+
callId: event.callId,
|
|
2316
|
+
originMemberId: event.originMemberId,
|
|
2317
|
+
calleeDialogId: event.calleeDialogId,
|
|
2318
|
+
calleeCourse: event.calleeCourse,
|
|
2319
|
+
calleeGenseq: event.calleeGenseq,
|
|
2320
|
+
dialog: {
|
|
2321
|
+
selfId: dialog.id.selfId,
|
|
2322
|
+
rootId: dialog.id.rootId,
|
|
2323
|
+
},
|
|
2324
|
+
timestamp: event.ts,
|
|
2325
|
+
};
|
|
2326
|
+
}
|
|
2327
|
+
})();
|
|
2328
|
+
if (ws.readyState === 1) {
|
|
2329
|
+
ws.send(JSON.stringify(carryoverEvent));
|
|
2330
|
+
}
|
|
2331
|
+
break;
|
|
2332
|
+
}
|
|
2061
2333
|
case 'subdialog_created_record':
|
|
2062
2334
|
case 'reminders_reconciled_record':
|
|
2063
2335
|
case 'questions4human_reconciled_record':
|
|
@@ -2065,7 +2337,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2065
2337
|
case 'subdialog_registry_reconciled_record':
|
|
2066
2338
|
case 'subdialog_responses_reconciled_record':
|
|
2067
2339
|
break;
|
|
2068
|
-
case '
|
|
2340
|
+
case 'tellask_response_record': {
|
|
2069
2341
|
// Handle teammate response events (separate bubble for @teammate tellasks)
|
|
2070
2342
|
const mentionList = (() => {
|
|
2071
2343
|
switch (event.callName) {
|
|
@@ -2077,18 +2349,18 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2077
2349
|
return undefined;
|
|
2078
2350
|
}
|
|
2079
2351
|
})();
|
|
2080
|
-
const
|
|
2352
|
+
const tellaskResponseEvent = (() => {
|
|
2081
2353
|
switch (event.callName) {
|
|
2082
2354
|
case 'tellask': {
|
|
2083
2355
|
const sessionSlug = typeof event.sessionSlug === 'string' && event.sessionSlug.trim() !== ''
|
|
2084
2356
|
? event.sessionSlug.trim()
|
|
2085
2357
|
: undefined;
|
|
2086
2358
|
if (!sessionSlug) {
|
|
2087
|
-
throw new Error(`Replay
|
|
2359
|
+
throw new Error(`Replay tellask_response_record invariant violation: missing sessionSlug for tellask ` +
|
|
2088
2360
|
`(rootId=${dialog.id.rootId}, selfId=${dialog.id.selfId}, course=${course}, callId=${event.callId})`);
|
|
2089
2361
|
}
|
|
2090
2362
|
return {
|
|
2091
|
-
type: '
|
|
2363
|
+
type: 'tellask_response_evt',
|
|
2092
2364
|
responderId: event.responderId,
|
|
2093
2365
|
callName: event.callName,
|
|
2094
2366
|
sessionSlug,
|
|
@@ -2113,7 +2385,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2113
2385
|
}
|
|
2114
2386
|
case 'tellaskSessionless':
|
|
2115
2387
|
return {
|
|
2116
|
-
type: '
|
|
2388
|
+
type: 'tellask_response_evt',
|
|
2117
2389
|
responderId: event.responderId,
|
|
2118
2390
|
callName: event.callName,
|
|
2119
2391
|
calleeDialogId: event.calleeDialogId,
|
|
@@ -2137,7 +2409,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2137
2409
|
case 'tellaskBack':
|
|
2138
2410
|
case 'freshBootsReasoning':
|
|
2139
2411
|
return {
|
|
2140
|
-
type: '
|
|
2412
|
+
type: 'tellask_response_evt',
|
|
2141
2413
|
responderId: event.responderId,
|
|
2142
2414
|
callName: event.callName,
|
|
2143
2415
|
calleeDialogId: event.calleeDialogId,
|
|
@@ -2160,7 +2432,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
|
|
|
2160
2432
|
}
|
|
2161
2433
|
})();
|
|
2162
2434
|
if (ws.readyState === 1) {
|
|
2163
|
-
ws.send(JSON.stringify(
|
|
2435
|
+
ws.send(JSON.stringify(tellaskResponseEvent));
|
|
2164
2436
|
}
|
|
2165
2437
|
break;
|
|
2166
2438
|
}
|
|
@@ -4352,7 +4624,7 @@ class DialogPersistence {
|
|
|
4352
4624
|
});
|
|
4353
4625
|
break;
|
|
4354
4626
|
}
|
|
4355
|
-
case '
|
|
4627
|
+
case 'tellask_call_result_record': {
|
|
4356
4628
|
// Convert teammate-call inline result to ChatMessage
|
|
4357
4629
|
const mentionList = (() => {
|
|
4358
4630
|
switch (event.callName) {
|
|
@@ -4377,7 +4649,9 @@ class DialogPersistence {
|
|
|
4377
4649
|
});
|
|
4378
4650
|
break;
|
|
4379
4651
|
}
|
|
4380
|
-
case '
|
|
4652
|
+
case 'tellask_call_carryover_record':
|
|
4653
|
+
break;
|
|
4654
|
+
case 'tellask_response_record': {
|
|
4381
4655
|
// Convert teammate response to ChatMessage (teammate - separate bubble)
|
|
4382
4656
|
// Note: Teammate responses are stored as separate records but use same message type
|
|
4383
4657
|
const mentionList = (() => {
|
|
@@ -4402,6 +4676,20 @@ class DialogPersistence {
|
|
|
4402
4676
|
});
|
|
4403
4677
|
break;
|
|
4404
4678
|
}
|
|
4679
|
+
case 'tellask_carryover_result_record': {
|
|
4680
|
+
messages.push({
|
|
4681
|
+
type: 'tellask_carryover_result_msg',
|
|
4682
|
+
role: 'user',
|
|
4683
|
+
content: event.content,
|
|
4684
|
+
originCourse: event.originCourse,
|
|
4685
|
+
responderId: event.responderId,
|
|
4686
|
+
callName: event.callName,
|
|
4687
|
+
tellaskContent: event.tellaskContent,
|
|
4688
|
+
status: event.status,
|
|
4689
|
+
callId: event.callId,
|
|
4690
|
+
});
|
|
4691
|
+
break;
|
|
4692
|
+
}
|
|
4405
4693
|
// gen_start_record and gen_finish_record are control events, not message content
|
|
4406
4694
|
// They don't need to be converted to ChatMessage objects
|
|
4407
4695
|
case 'gen_start_record':
|
|
@@ -4415,7 +4703,7 @@ class DialogPersistence {
|
|
|
4415
4703
|
// These events are handled separately in dialog restoration
|
|
4416
4704
|
// Skip them for message reconstruction
|
|
4417
4705
|
break;
|
|
4418
|
-
case '
|
|
4706
|
+
case 'tellask_call_anchor_record':
|
|
4419
4707
|
// This record is UI navigation metadata for deep links in callee dialogs.
|
|
4420
4708
|
// It does not contribute to model context or chat transcript reconstruction.
|
|
4421
4709
|
break;
|