dominds 1.18.2 → 1.19.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/dist/access-control.js +6 -6
- package/dist/apps/runtime.d.ts +2 -2
- package/dist/apps/runtime.js +28 -28
- package/dist/apps-host/client.d.ts +1 -1
- package/dist/apps-host/host.js +7 -7
- package/dist/apps-host/ipc-types.d.ts +2 -2
- package/dist/apps-host/ipc-types.js +10 -10
- package/dist/cli/read.d.ts +0 -1
- package/dist/cli/read.js +1 -6
- package/dist/dialog-display-state.d.ts +6 -6
- package/dist/dialog-display-state.js +46 -46
- package/dist/dialog-factory.d.ts +12 -12
- package/dist/dialog-factory.js +33 -30
- package/dist/dialog-fork.d.ts +2 -2
- package/dist/dialog-fork.js +140 -115
- package/dist/dialog-global-registry.d.ts +5 -5
- package/dist/dialog-global-registry.js +11 -11
- package/dist/dialog-instance-registry.d.ts +3 -3
- package/dist/dialog-instance-registry.js +52 -41
- package/dist/dialog.d.ts +100 -113
- package/dist/dialog.js +274 -229
- package/dist/docs/agent-priming.md +5 -5
- package/dist/docs/agent-priming.zh.md +5 -5
- package/dist/docs/app-constitution.md +1 -1
- package/dist/docs/app-constitution.zh.md +1 -1
- package/dist/docs/cli-usage.md +1 -1
- package/dist/docs/cli-usage.zh.md +1 -1
- package/dist/docs/design.md +14 -14
- package/dist/docs/design.zh.md +14 -14
- package/dist/docs/dialog-persistence.md +58 -58
- package/dist/docs/dialog-persistence.zh.md +61 -61
- package/dist/docs/dialog-system.md +363 -367
- package/dist/docs/dialog-system.zh.md +355 -357
- package/dist/docs/diligence-push.md +18 -18
- package/dist/docs/diligence-push.zh.md +17 -17
- package/dist/docs/dominds-agent-collaboration.zh.md +3 -3
- package/dist/docs/dominds-terminology.md +46 -47
- package/dist/docs/encapsulated-taskdoc.md +4 -4
- package/dist/docs/encapsulated-taskdoc.zh.md +3 -3
- package/dist/docs/fbr.md +30 -30
- package/dist/docs/fbr.zh.md +15 -15
- package/dist/docs/i18n.md +2 -2
- package/dist/docs/i18n.zh.md +2 -2
- package/dist/docs/mcp-support.md +5 -4
- package/dist/docs/mcp-support.zh.md +3 -2
- package/dist/docs/memory-system.md +4 -4
- package/dist/docs/memory-system.zh.md +1 -1
- package/dist/docs/mottos.md +1 -1
- package/dist/docs/mottos.zh.md +1 -1
- package/dist/docs/q4h.md +3 -3
- package/dist/docs/q4h.zh.md +1 -1
- package/dist/docs/roadmap.md +2 -2
- package/dist/docs/team_mgmt-toolset.md +11 -3
- package/dist/docs/team_mgmt-toolset.zh.md +9 -2
- package/dist/docs/tellask-collab.md +18 -18
- package/dist/docs/tellask-collab.zh.md +8 -8
- package/dist/docs/tellask-revive-context-refactor.zh.md +591 -0
- package/dist/evt-registry.d.ts +1 -2
- package/dist/evt-registry.js +2 -7
- package/dist/llm/gen/mock.js +9 -0
- package/dist/llm/kernel-driver/context.d.ts +1 -2
- package/dist/llm/kernel-driver/context.js +12 -26
- package/dist/llm/kernel-driver/drive.js +99 -75
- package/dist/llm/kernel-driver/engine.d.ts +2 -2
- package/dist/llm/kernel-driver/engine.js +10 -10
- package/dist/llm/kernel-driver/fbr.js +6 -6
- package/dist/llm/kernel-driver/flow.d.ts +1 -1
- package/dist/llm/kernel-driver/flow.js +129 -93
- package/dist/llm/kernel-driver/guardrails.js +4 -4
- package/dist/llm/kernel-driver/index.d.ts +1 -1
- package/dist/llm/kernel-driver/index.js +2 -2
- package/dist/llm/kernel-driver/loop.js +30 -30
- package/dist/llm/kernel-driver/reply-guidance.js +47 -52
- package/dist/llm/kernel-driver/restore.d.ts +3 -3
- package/dist/llm/kernel-driver/restore.js +23 -28
- package/dist/llm/kernel-driver/runtime.d.ts +1 -1
- package/dist/llm/kernel-driver/runtime.js +1 -1
- package/dist/llm/kernel-driver/sideDialog-txn.d.ts +8 -0
- package/dist/llm/kernel-driver/{subdialog-txn.js → sideDialog-txn.js} +13 -13
- package/dist/llm/kernel-driver/{subdialog.d.ts → sideDialog.d.ts} +13 -13
- package/dist/llm/kernel-driver/{subdialog.js → sideDialog.js} +203 -170
- package/dist/llm/kernel-driver/tellask-special.d.ts +7 -3
- package/dist/llm/kernel-driver/tellask-special.js +474 -497
- package/dist/llm/kernel-driver/types.d.ts +25 -9
- package/dist/mcp/config.d.ts +1 -0
- package/dist/mcp/config.js +7 -2
- package/dist/mcp/supervisor.d.ts +2 -0
- package/dist/mcp/supervisor.js +2 -1
- package/dist/minds/builtin/pangu/persona.en.md +4 -4
- package/dist/minds/load.js +6 -6
- package/dist/minds/system-prompt-parts.d.ts +1 -1
- package/dist/minds/system-prompt-parts.js +12 -12
- package/dist/minds/system-prompt.d.ts +1 -1
- package/dist/minds/system-prompt.js +56 -56
- package/dist/persistence-errors.d.ts +1 -1
- package/dist/persistence.d.ts +126 -121
- package/dist/persistence.js +1190 -786
- package/dist/priming.d.ts +3 -3
- package/dist/priming.js +62 -61
- package/dist/recovery/reply-special.js +5 -5
- package/dist/runtime/driver-messages.d.ts +3 -2
- package/dist/runtime/driver-messages.js +68 -57
- package/dist/runtime/inter-dialog-format.d.ts +12 -10
- package/dist/runtime/inter-dialog-format.js +80 -35
- package/dist/runtime/interjection-pause-stop.js +1 -1
- package/dist/runtime/reply-prompt-copy.d.ts +7 -3
- package/dist/runtime/reply-prompt-copy.js +39 -14
- package/dist/server/api-routes.js +87 -83
- package/dist/server/static-server.js +1 -1
- package/dist/server/websocket-handler.js +163 -153
- package/dist/tool-availability.js +1 -1
- package/dist/tools/app-reminders.js +17 -4
- package/dist/tools/ctrl.js +5 -5
- package/dist/tools/os.js +16 -16
- package/dist/tools/pending-tellask-reminder.js +20 -14
- package/dist/tools/prompts/control/en/index.md +1 -1
- package/dist/tools/prompts/control/en/principles.md +8 -8
- package/dist/tools/prompts/control/en/scenarios.md +7 -7
- package/dist/tools/prompts/control/en/tools.md +7 -7
- package/dist/tools/prompts/control/zh/principles.md +4 -4
- package/dist/tools/prompts/control/zh/scenarios.md +5 -5
- package/dist/tools/prompts/control/zh/tools.md +3 -3
- package/dist/tools/prompts/team_memory/en/scenarios.md +1 -1
- package/dist/tools/prompts/team_memory/zh/scenarios.md +1 -1
- package/dist/tools/team_mgmt-manual.js +2 -2
- package/dist/tools/team_mgmt-mcp-manual.js +10 -0
- package/dist/tools/team_mgmt.js +4 -4
- package/dist/utils/taskdoc.js +12 -12
- package/package.json +3 -3
- package/webapp/dist/assets/{_basePickBy-BPJaiZdW.js → _basePickBy-B7M9Q0Fa.js} +3 -3
- package/webapp/dist/assets/_basePickBy-B7M9Q0Fa.js.map +1 -0
- package/webapp/dist/assets/{_baseUniq-BEetT15i.js → _baseUniq-DAeYoL6j.js} +2 -2
- package/webapp/dist/assets/_baseUniq-DAeYoL6j.js.map +1 -0
- package/webapp/dist/assets/{arc-Dm7Zf36f.js → arc-Bh4nDbNR.js} +2 -2
- package/webapp/dist/assets/arc-Bh4nDbNR.js.map +1 -0
- package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-BpTPtkuo.js → architectureDiagram-2XIMDMQ5-CxqmdsIm.js} +26 -8
- package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-CxqmdsIm.js.map +1 -0
- package/webapp/dist/assets/{blockDiagram-VD42YOAC-C8fLN0iu.js → blockDiagram-WCTKOSBZ-CxIWLtpt.js} +187 -170
- package/webapp/dist/assets/blockDiagram-WCTKOSBZ-CxIWLtpt.js.map +1 -0
- package/webapp/dist/assets/{c4Diagram-YG6GDRKO-BpPr62CH.js → c4Diagram-IC4MRINW-1qErOIgG.js} +4 -4
- package/webapp/dist/assets/c4Diagram-IC4MRINW-1qErOIgG.js.map +1 -0
- package/webapp/dist/assets/{channel-EMYoPjW3.js → channel-DkgZHNUe.js} +2 -2
- package/webapp/dist/assets/channel-DkgZHNUe.js.map +1 -0
- package/webapp/dist/assets/{chunk-4BX2VUAB-CefNtjWG.js → chunk-4BX2VUAB-BmdMbU9v.js} +2 -2
- package/webapp/dist/assets/chunk-4BX2VUAB-BmdMbU9v.js.map +1 -0
- package/webapp/dist/assets/{chunk-55IACEB6-C_X7T43V.js → chunk-55IACEB6-D6LDTDBy.js} +2 -2
- package/webapp/dist/assets/chunk-55IACEB6-D6LDTDBy.js.map +1 -0
- package/webapp/dist/assets/{chunk-FMBD7UC4-ORmtkrtS.js → chunk-FMBD7UC4-C-BdCe4C.js} +2 -2
- package/webapp/dist/assets/chunk-FMBD7UC4-C-BdCe4C.js.map +1 -0
- package/webapp/dist/assets/{chunk-TZMSLE5B-Gao4qrq7.js → chunk-JSJVCQXG-WA_BLIm9.js} +14 -6
- package/webapp/dist/assets/chunk-JSJVCQXG-WA_BLIm9.js.map +1 -0
- package/webapp/dist/assets/{chunk-QN33PNHL-LTAOVhWu.js → chunk-KX2RTZJC-CA7sDJO5.js} +2 -2
- package/webapp/dist/assets/chunk-KX2RTZJC-CA7sDJO5.js.map +1 -0
- package/webapp/dist/assets/{chunk-DI55MBZ5-CbvrsI_w.js → chunk-NQ4KR5QH-wlvxalE3.js} +9 -7
- package/webapp/dist/assets/chunk-NQ4KR5QH-wlvxalE3.js.map +1 -0
- package/webapp/dist/assets/{chunk-QZHKN3VN-ZoUM_4u5.js → chunk-QZHKN3VN-Bo1VMcph.js} +2 -2
- package/webapp/dist/assets/chunk-QZHKN3VN-Bo1VMcph.js.map +1 -0
- package/webapp/dist/assets/{chunk-B4BG7PRW-BRe3_2oA.js → chunk-WL4C6EOR-B-Pk44be.js} +171 -121
- package/webapp/dist/assets/chunk-WL4C6EOR-B-Pk44be.js.map +1 -0
- package/webapp/dist/assets/{classDiagram-2ON5EDUG-uha1vIGN.js → classDiagram-VBA2DB6C-BqKuyb49.js} +7 -6
- package/webapp/dist/assets/classDiagram-VBA2DB6C-BqKuyb49.js.map +1 -0
- package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-uha1vIGN.js → classDiagram-v2-RAHNMMFH-BqKuyb49.js} +7 -6
- package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-BqKuyb49.js.map +1 -0
- package/webapp/dist/assets/{clone-_9Ayb1Gp.js → clone-BX5z8WVZ.js} +2 -2
- package/webapp/dist/assets/clone-BX5z8WVZ.js.map +1 -0
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-C8wDw3NY.js → cose-bilkent-S5V4N54A-B-s11SgN.js} +2 -2
- package/webapp/dist/assets/cose-bilkent-S5V4N54A-B-s11SgN.js.map +1 -0
- package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
- package/webapp/dist/assets/{dagre-6UL2VRFP-BUSeNot0.js → dagre-KLK3FWXG-DmQFV2qK.js} +7 -7
- package/webapp/dist/assets/dagre-KLK3FWXG-DmQFV2qK.js.map +1 -0
- package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
- package/webapp/dist/assets/{diagram-PSM6KHXK-CMZAksVC.js → diagram-E7M64L7V-QRaBfST8.js} +10 -10
- package/webapp/dist/assets/diagram-E7M64L7V-QRaBfST8.js.map +1 -0
- package/webapp/dist/assets/{diagram-QEK2KX5R-BQKoRtwy.js → diagram-IFDJBPK2-lrWn1Obo.js} +9 -8
- package/webapp/dist/assets/diagram-IFDJBPK2-lrWn1Obo.js.map +1 -0
- package/webapp/dist/assets/{diagram-S2PKOQOG-DjMG97kd.js → diagram-P4PSJMXO-sTU7Hh-Y.js} +8 -8
- package/webapp/dist/assets/diagram-P4PSJMXO-sTU7Hh-Y.js.map +1 -0
- package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BujwA137.js → erDiagram-INFDFZHY-Cx6jc9Wq.js} +96 -75
- package/webapp/dist/assets/erDiagram-INFDFZHY-Cx6jc9Wq.js.map +1 -0
- package/webapp/dist/assets/{flowDiagram-NV44I4VS-DgwPjg4y.js → flowDiagram-PKNHOUZH-DfGI49Dz.js} +98 -81
- package/webapp/dist/assets/flowDiagram-PKNHOUZH-DfGI49Dz.js.map +1 -0
- package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Db2ykf3E.js → ganttDiagram-A5KZAMGK-nrcHWWaM.js} +28 -3
- package/webapp/dist/assets/ganttDiagram-A5KZAMGK-nrcHWWaM.js.map +1 -0
- package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-D_gSifkv.js → gitGraphDiagram-K3NZZRJ6-D8ivAqd6.js} +38 -46
- package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-D8ivAqd6.js.map +1 -0
- package/webapp/dist/assets/graph-R5G-y8tB.js +782 -0
- package/webapp/dist/assets/graph-R5G-y8tB.js.map +1 -0
- package/webapp/dist/assets/{index-DLajsIDJ.js → index--fy89xGh.js} +2214 -2023
- package/webapp/dist/assets/index--fy89xGh.js.map +1 -0
- package/webapp/dist/assets/{index-xvYYeHuy.css → index-DZFkLLVz.css} +18 -10
- package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BDba5pKs.js → infoDiagram-LFFYTUFH-PIoZHr7s.js} +7 -7
- package/webapp/dist/assets/infoDiagram-LFFYTUFH-PIoZHr7s.js.map +1 -0
- package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
- package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-oCM-LYk1.js +966 -0
- package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-oCM-LYk1.js.map +1 -0
- package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-CmJAbmlm.js → journeyDiagram-4ABVD52K-C2qidjQ5.js} +5 -5
- package/webapp/dist/assets/journeyDiagram-4ABVD52K-C2qidjQ5.js.map +1 -0
- package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-DxQeBTDk.js → kanban-definition-K7BYSVSG-Du0TC8WS.js} +5 -3
- package/webapp/dist/assets/kanban-definition-K7BYSVSG-Du0TC8WS.js.map +1 -0
- package/webapp/dist/assets/{layout-DteV_yE8.js → layout-VmEo1OEB.js} +5 -5
- package/webapp/dist/assets/layout-VmEo1OEB.js.map +1 -0
- package/webapp/dist/assets/{linear-zItbPrND.js → linear-B662YHAc.js} +2 -2
- package/webapp/dist/assets/linear-B662YHAc.js.map +1 -0
- package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BJXI7UqO.js → mindmap-definition-YRQLILUH-D7arZj95.js} +7 -5
- package/webapp/dist/assets/mindmap-definition-YRQLILUH-D7arZj95.js.map +1 -0
- package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
- package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BpM-aH2p.js → pieDiagram-SKSYHLDU-DvjPP4PA.js} +8 -8
- package/webapp/dist/assets/pieDiagram-SKSYHLDU-DvjPP4PA.js.map +1 -0
- package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-NXdIpA15.js → quadrantDiagram-337W2JSQ-B_JUGMj_.js} +3 -3
- package/webapp/dist/assets/quadrantDiagram-337W2JSQ-B_JUGMj_.js.map +1 -0
- package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-D1AICAA0.js → requirementDiagram-Z7DCOOCP-DF0mpvE3.js} +16 -6
- package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-DF0mpvE3.js.map +1 -0
- package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-WiReDPfo.js → sankeyDiagram-WA2Y5GQK-CoXlxv00.js} +2 -2
- package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-CoXlxv00.js.map +1 -0
- package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Cw76oP8t.js → sequenceDiagram-2WXFIKYE-DYqT5Pg7.js} +601 -201
- package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-DYqT5Pg7.js.map +1 -0
- package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-QjCeRczs.js → stateDiagram-RAJIS63D-D9b1mN8-.js} +9 -9
- package/webapp/dist/assets/stateDiagram-RAJIS63D-D9b1mN8-.js.map +1 -0
- package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-IClqxQ4s.js → stateDiagram-v2-FVOUBMTO-DNzgudL_.js} +5 -5
- package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-DNzgudL_.js.map +1 -0
- package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BfyfTY7m.js → timeline-definition-YZTLITO2-CkyKUY7A.js} +3 -3
- package/webapp/dist/assets/timeline-definition-YZTLITO2-CkyKUY7A.js.map +1 -0
- package/webapp/dist/assets/{treemap-GDKQZRPO-C5MiL6--.js → treemap-KZPCXAKY-CZd09kF-.js} +37 -24
- package/webapp/dist/assets/treemap-KZPCXAKY-CZd09kF-.js.map +1 -0
- package/webapp/dist/assets/vennDiagram-LZ73GAT5-BxVF5Olo.js +2487 -0
- package/webapp/dist/assets/vennDiagram-LZ73GAT5-BxVF5Olo.js.map +1 -0
- package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-ybaJrSry.js → xychartDiagram-JWTSCODW-BRwRloPc.js} +4 -4
- package/webapp/dist/assets/xychartDiagram-JWTSCODW-BRwRloPc.js.map +1 -0
- package/webapp/dist/index.html +2 -2
- package/dist/docs/issues/global-dialog-event-broadcaster-missing.md +0 -128
- package/dist/llm/kernel-driver/subdialog-txn.d.ts +0 -8
- package/webapp/dist/assets/_basePickBy-BPJaiZdW.js.map +0 -1
- package/webapp/dist/assets/_baseUniq-BEetT15i.js.map +0 -1
- package/webapp/dist/assets/arc-Dm7Zf36f.js.map +0 -1
- package/webapp/dist/assets/architectureDiagram-VXUJARFQ-BpTPtkuo.js.map +0 -1
- package/webapp/dist/assets/blockDiagram-VD42YOAC-C8fLN0iu.js.map +0 -1
- package/webapp/dist/assets/c4Diagram-YG6GDRKO-BpPr62CH.js.map +0 -1
- package/webapp/dist/assets/channel-EMYoPjW3.js.map +0 -1
- package/webapp/dist/assets/chunk-4BX2VUAB-CefNtjWG.js.map +0 -1
- package/webapp/dist/assets/chunk-55IACEB6-C_X7T43V.js.map +0 -1
- package/webapp/dist/assets/chunk-B4BG7PRW-BRe3_2oA.js.map +0 -1
- package/webapp/dist/assets/chunk-DI55MBZ5-CbvrsI_w.js.map +0 -1
- package/webapp/dist/assets/chunk-FMBD7UC4-ORmtkrtS.js.map +0 -1
- package/webapp/dist/assets/chunk-QN33PNHL-LTAOVhWu.js.map +0 -1
- package/webapp/dist/assets/chunk-QZHKN3VN-ZoUM_4u5.js.map +0 -1
- package/webapp/dist/assets/chunk-TZMSLE5B-Gao4qrq7.js.map +0 -1
- package/webapp/dist/assets/classDiagram-2ON5EDUG-uha1vIGN.js.map +0 -1
- package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-uha1vIGN.js.map +0 -1
- package/webapp/dist/assets/clone-_9Ayb1Gp.js.map +0 -1
- package/webapp/dist/assets/cose-bilkent-S5V4N54A-C8wDw3NY.js.map +0 -1
- package/webapp/dist/assets/dagre-6UL2VRFP-BUSeNot0.js.map +0 -1
- package/webapp/dist/assets/diagram-PSM6KHXK-CMZAksVC.js.map +0 -1
- package/webapp/dist/assets/diagram-QEK2KX5R-BQKoRtwy.js.map +0 -1
- package/webapp/dist/assets/diagram-S2PKOQOG-DjMG97kd.js.map +0 -1
- package/webapp/dist/assets/erDiagram-Q2GNP2WA-BujwA137.js.map +0 -1
- package/webapp/dist/assets/flowDiagram-NV44I4VS-DgwPjg4y.js.map +0 -1
- package/webapp/dist/assets/ganttDiagram-JELNMOA3-Db2ykf3E.js.map +0 -1
- package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-D_gSifkv.js.map +0 -1
- package/webapp/dist/assets/graph-BHjCU5xP.js +0 -425
- package/webapp/dist/assets/graph-BHjCU5xP.js.map +0 -1
- package/webapp/dist/assets/index-DLajsIDJ.js.map +0 -1
- package/webapp/dist/assets/infoDiagram-HS3SLOUP-BDba5pKs.js.map +0 -1
- package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-CmJAbmlm.js.map +0 -1
- package/webapp/dist/assets/kanban-definition-3W4ZIXB7-DxQeBTDk.js.map +0 -1
- package/webapp/dist/assets/layout-DteV_yE8.js.map +0 -1
- package/webapp/dist/assets/linear-zItbPrND.js.map +0 -1
- package/webapp/dist/assets/mindmap-definition-VGOIOE7T-BJXI7UqO.js.map +0 -1
- package/webapp/dist/assets/pieDiagram-ADFJNKIX-BpM-aH2p.js.map +0 -1
- package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-NXdIpA15.js.map +0 -1
- package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-D1AICAA0.js.map +0 -1
- package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-WiReDPfo.js.map +0 -1
- package/webapp/dist/assets/sequenceDiagram-WL72ISMW-Cw76oP8t.js.map +0 -1
- package/webapp/dist/assets/stateDiagram-FKZM4ZOC-QjCeRczs.js.map +0 -1
- package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-IClqxQ4s.js.map +0 -1
- package/webapp/dist/assets/timeline-definition-IT6M3QCI-BfyfTY7m.js.map +0 -1
- package/webapp/dist/assets/treemap-GDKQZRPO-C5MiL6--.js.map +0 -1
- package/webapp/dist/assets/xychartDiagram-PRI3JC2R-ybaJrSry.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
3
|
+
exports.supplyResponseToAskerDialog = supplyResponseToAskerDialog;
|
|
4
|
+
exports.supplySideDialogResponseToSpecificAskerIfPendingV2 = supplySideDialogResponseToSpecificAskerIfPendingV2;
|
|
5
|
+
exports.supplySideDialogResponseToAssignedAskerIfPendingV2 = supplySideDialogResponseToAssignedAskerIfPendingV2;
|
|
6
6
|
const storage_1 = require("@longrun-ai/kernel/types/storage");
|
|
7
7
|
const time_1 = require("@longrun-ai/kernel/utils/time");
|
|
8
8
|
const dialog_1 = require("../../dialog");
|
|
@@ -13,7 +13,7 @@ const persistence_1 = require("../../persistence");
|
|
|
13
13
|
const inter_dialog_format_1 = require("../../runtime/inter-dialog-format");
|
|
14
14
|
const work_language_1 = require("../../runtime/work-language");
|
|
15
15
|
const pending_tellask_reminder_1 = require("../../tools/pending-tellask-reminder");
|
|
16
|
-
const
|
|
16
|
+
const sideDialog_txn_1 = require("./sideDialog-txn");
|
|
17
17
|
async function syncPendingTellaskReminderBestEffort(dlg, where) {
|
|
18
18
|
try {
|
|
19
19
|
const changed = await (0, pending_tellask_reminder_1.syncPendingTellaskReminderState)(dlg);
|
|
@@ -30,22 +30,22 @@ async function syncPendingTellaskReminderBestEffort(dlg, where) {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
async function resolveOwnerDialogBySelfId(
|
|
34
|
-
const
|
|
35
|
-
if (!(await ensureDialogFreshOrDiscard(
|
|
33
|
+
async function resolveOwnerDialogBySelfId(sideDialog, ownerDialogId) {
|
|
34
|
+
const mainDialog = sideDialog.mainDialog;
|
|
35
|
+
if (!(await ensureDialogFreshOrDiscard(mainDialog, 'resolveOwnerDialogBySelfId:root'))) {
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
|
-
if (ownerDialogId ===
|
|
39
|
-
return
|
|
38
|
+
if (ownerDialogId === mainDialog.id.selfId) {
|
|
39
|
+
return mainDialog;
|
|
40
40
|
}
|
|
41
|
-
const existing =
|
|
41
|
+
const existing = mainDialog.lookupDialog(ownerDialogId);
|
|
42
42
|
if (existing) {
|
|
43
43
|
if (!(await ensureDialogFreshOrDiscard(existing, 'resolveOwnerDialogBySelfId:lookup'))) {
|
|
44
44
|
return undefined;
|
|
45
45
|
}
|
|
46
46
|
return existing;
|
|
47
47
|
}
|
|
48
|
-
const restored = await (0, dialog_instance_registry_1.ensureDialogLoaded)(
|
|
48
|
+
const restored = await (0, dialog_instance_registry_1.ensureDialogLoaded)(mainDialog, new dialog_1.DialogID(ownerDialogId, mainDialog.id.rootId), mainDialog.status);
|
|
49
49
|
if (!restored) {
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
@@ -74,13 +74,13 @@ async function ensureDialogFreshOrDiscard(dialog, where) {
|
|
|
74
74
|
inMemoryStatus: dialog.status,
|
|
75
75
|
persistedStatus: status,
|
|
76
76
|
});
|
|
77
|
-
if (dialog instanceof dialog_1.
|
|
77
|
+
if (dialog instanceof dialog_1.MainDialog) {
|
|
78
78
|
dialog_global_registry_1.globalDialogRegistry.unregister(dialog.id.rootId);
|
|
79
79
|
}
|
|
80
80
|
return false;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
if (dialog instanceof dialog_1.
|
|
83
|
+
if (dialog instanceof dialog_1.MainDialog && dialog.status === 'running') {
|
|
84
84
|
const createdAt = (0, time_1.formatUnifiedTimestamp)(new Date());
|
|
85
85
|
await persistence_1.DialogPersistence.saveDialogMetadata(dialog.id, {
|
|
86
86
|
id: dialog.id.selfId,
|
|
@@ -88,7 +88,7 @@ async function ensureDialogFreshOrDiscard(dialog, where) {
|
|
|
88
88
|
taskDocPath: dialog.taskDocPath,
|
|
89
89
|
createdAt,
|
|
90
90
|
}, 'running');
|
|
91
|
-
log_1.log.warn('kernel-driver auto-persisted missing
|
|
91
|
+
log_1.log.warn('kernel-driver auto-persisted missing main dialog metadata', undefined, {
|
|
92
92
|
where,
|
|
93
93
|
rootId: dialog.id.rootId,
|
|
94
94
|
selfId: dialog.id.selfId,
|
|
@@ -111,7 +111,7 @@ async function ensureDialogFreshOrDiscard(dialog, where) {
|
|
|
111
111
|
selfId: dialog.id.selfId,
|
|
112
112
|
status: dialog.status,
|
|
113
113
|
});
|
|
114
|
-
if (dialog instanceof dialog_1.
|
|
114
|
+
if (dialog instanceof dialog_1.MainDialog) {
|
|
115
115
|
dialog_global_registry_1.globalDialogRegistry.unregister(dialog.id.rootId);
|
|
116
116
|
}
|
|
117
117
|
return false;
|
|
@@ -147,22 +147,25 @@ async function resolveLatestAssignmentAnchorRef(args) {
|
|
|
147
147
|
}
|
|
148
148
|
return undefined;
|
|
149
149
|
}
|
|
150
|
-
async function
|
|
151
|
-
const { parentDialog,
|
|
150
|
+
async function supplyResponseToAskerDialog(args) {
|
|
151
|
+
const { parentDialog, sideDialogId, responseText, callType, callId, status = 'completed', deliveryMode = 'reply_tool', calleeResponseRef, askerCourseOverride, scheduleDrive, sideDialog: maybeSideDialog, } = args;
|
|
152
152
|
try {
|
|
153
|
-
const result = await (0,
|
|
154
|
-
const
|
|
153
|
+
const result = await (0, sideDialog_txn_1.withSideDialogTxnLock)(parentDialog.id, async () => {
|
|
154
|
+
const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(parentDialog.id, parentDialog.status);
|
|
155
155
|
let pendingRecord;
|
|
156
156
|
const filteredPending = [];
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
const requestedCallId = typeof callId === 'string' ? callId.trim() : '';
|
|
158
|
+
for (const pending of pendingSideDialogs) {
|
|
159
|
+
if (pending.sideDialogId === sideDialogId.selfId &&
|
|
160
|
+
(requestedCallId === '' || pending.callId === requestedCallId) &&
|
|
161
|
+
pendingRecord === undefined) {
|
|
159
162
|
pendingRecord = pending;
|
|
160
163
|
}
|
|
161
164
|
else {
|
|
162
165
|
filteredPending.push(pending);
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
|
-
let responderId =
|
|
168
|
+
let responderId = sideDialogId.rootId;
|
|
166
169
|
let responderAgentId;
|
|
167
170
|
let callName = 'tellaskSessionless';
|
|
168
171
|
let mentionList;
|
|
@@ -170,26 +173,25 @@ async function supplyResponseToSupdialog(args) {
|
|
|
170
173
|
let originMemberId;
|
|
171
174
|
let sessionSlug;
|
|
172
175
|
try {
|
|
173
|
-
const metadata = await persistence_1.DialogPersistence.loadDialogMetadata(
|
|
174
|
-
if (metadata
|
|
175
|
-
|
|
176
|
+
const metadata = await persistence_1.DialogPersistence.loadDialogMetadata(sideDialogId, parentDialog.status);
|
|
177
|
+
if (metadata) {
|
|
178
|
+
const assignmentFromAsker = await persistence_1.DialogPersistence.loadSideDialogAssignmentFromAsker(sideDialogId, parentDialog.status);
|
|
179
|
+
originMemberId = assignmentFromAsker.originMemberId;
|
|
176
180
|
if (!pendingRecord) {
|
|
177
|
-
callName =
|
|
178
|
-
mentionList =
|
|
179
|
-
tellaskContent =
|
|
181
|
+
callName = assignmentFromAsker.callName;
|
|
182
|
+
mentionList = assignmentFromAsker.mentionList;
|
|
183
|
+
tellaskContent = assignmentFromAsker.tellaskContent;
|
|
180
184
|
}
|
|
181
|
-
|
|
182
|
-
if (!pendingRecord && metadata && typeof metadata.agentId === 'string') {
|
|
183
|
-
if (metadata.agentId.trim() !== '') {
|
|
185
|
+
if (!pendingRecord && metadata.agentId.trim() !== '') {
|
|
184
186
|
responderId = metadata.agentId;
|
|
185
187
|
responderAgentId = metadata.agentId;
|
|
186
188
|
}
|
|
187
189
|
}
|
|
188
190
|
}
|
|
189
191
|
catch (err) {
|
|
190
|
-
log_1.log.warn('Failed to load
|
|
192
|
+
log_1.log.warn('Failed to load sideDialog metadata for response record', undefined, {
|
|
191
193
|
parentId: parentDialog.id.selfId,
|
|
192
|
-
|
|
194
|
+
sideDialogId: sideDialogId.selfId,
|
|
193
195
|
error: err,
|
|
194
196
|
});
|
|
195
197
|
}
|
|
@@ -208,17 +210,21 @@ async function supplyResponseToSupdialog(args) {
|
|
|
208
210
|
(!Array.isArray(mentionList) || mentionList.length < 1)) {
|
|
209
211
|
mentionList = [`@${responderId}`];
|
|
210
212
|
}
|
|
211
|
-
await persistence_1.DialogPersistence.
|
|
212
|
-
rootCourse: parentDialog instanceof dialog_1.
|
|
213
|
-
? parentDialog.
|
|
213
|
+
await persistence_1.DialogPersistence.savePendingSideDialogs(parentDialog.id, filteredPending, (0, storage_1.toRootGenerationAnchor)({
|
|
214
|
+
rootCourse: parentDialog instanceof dialog_1.SideDialog
|
|
215
|
+
? parentDialog.mainDialog.currentCourse
|
|
214
216
|
: parentDialog.currentCourse,
|
|
215
|
-
rootGenseq: parentDialog instanceof dialog_1.
|
|
216
|
-
? (parentDialog.
|
|
217
|
+
rootGenseq: parentDialog instanceof dialog_1.SideDialog
|
|
218
|
+
? (parentDialog.mainDialog.activeGenSeqOrUndefined ?? 0)
|
|
217
219
|
: (parentDialog.activeGenSeqOrUndefined ?? 0),
|
|
218
220
|
}), parentDialog.status);
|
|
221
|
+
const sameWaitGroupPending = pendingRecord === undefined
|
|
222
|
+
? []
|
|
223
|
+
: filteredPending.filter((pending) => pending.callSiteCourse === pendingRecord.callSiteCourse &&
|
|
224
|
+
pending.callSiteGenseq === pendingRecord.callSiteGenseq);
|
|
219
225
|
const hasQ4H = await parentDialog.hasPendingQ4H();
|
|
220
|
-
const shouldRevive = !hasQ4H &&
|
|
221
|
-
if (shouldRevive && parentDialog instanceof dialog_1.
|
|
226
|
+
const shouldRevive = pendingRecord !== undefined && !hasQ4H && sameWaitGroupPending.length === 0;
|
|
227
|
+
if (shouldRevive && parentDialog instanceof dialog_1.MainDialog) {
|
|
222
228
|
await persistence_1.DialogPersistence.setNeedsDrive(parentDialog.id, true, parentDialog.status);
|
|
223
229
|
}
|
|
224
230
|
return {
|
|
@@ -230,70 +236,76 @@ async function supplyResponseToSupdialog(args) {
|
|
|
230
236
|
originMemberId,
|
|
231
237
|
sessionSlug,
|
|
232
238
|
callId: pendingRecord?.callId,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
239
|
+
callSiteCourse: pendingRecord?.callSiteCourse,
|
|
240
|
+
callSiteGenseq: pendingRecord?.callSiteGenseq,
|
|
241
|
+
resolvedCallIds: pendingRecord ? [pendingRecord.callId] : [],
|
|
242
|
+
askerCourse: pendingRecord?.callSiteCourse !== undefined
|
|
243
|
+
? (0, storage_1.toAskerCourseNumber)(pendingRecord.callSiteCourse)
|
|
244
|
+
: askerCourseOverride,
|
|
238
245
|
shouldRevive,
|
|
239
246
|
};
|
|
240
247
|
});
|
|
241
248
|
const normalizedCallId = typeof callId === 'string' ? callId.trim() : '';
|
|
242
249
|
const fallbackCallId = typeof result.callId === 'string' ? result.callId.trim() : '';
|
|
243
250
|
const resolvedCallId = normalizedCallId !== '' ? normalizedCallId : fallbackCallId;
|
|
244
|
-
const rootForLookup = parentDialog instanceof dialog_1.
|
|
251
|
+
const rootForLookup = parentDialog instanceof dialog_1.MainDialog
|
|
245
252
|
? parentDialog
|
|
246
|
-
: parentDialog instanceof dialog_1.
|
|
247
|
-
? parentDialog.
|
|
253
|
+
: parentDialog instanceof dialog_1.SideDialog
|
|
254
|
+
? parentDialog.mainDialog
|
|
248
255
|
: undefined;
|
|
249
|
-
const
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
const
|
|
256
|
+
const lookedUpSideDialog = rootForLookup?.lookupDialog(sideDialogId.selfId);
|
|
257
|
+
const resolvedSideDialog = maybeSideDialog ??
|
|
258
|
+
(lookedUpSideDialog instanceof dialog_1.SideDialog ? lookedUpSideDialog : undefined);
|
|
259
|
+
const tellaskerResponseBody = responseText;
|
|
260
|
+
const tellaskerId = result.originMemberId ?? parentDialog.agentId;
|
|
261
|
+
const tellaskerResponseText = (0, inter_dialog_format_1.formatTellaskResponseContent)({
|
|
253
262
|
callName: result.callName,
|
|
263
|
+
callId: resolvedCallId,
|
|
254
264
|
responderId: result.responderId,
|
|
255
|
-
|
|
265
|
+
tellaskerId,
|
|
256
266
|
mentionList: result.mentionList,
|
|
257
267
|
sessionSlug: result.sessionSlug,
|
|
258
268
|
tellaskContent: result.tellaskContent,
|
|
259
|
-
responseBody:
|
|
269
|
+
responseBody: tellaskerResponseBody,
|
|
260
270
|
status,
|
|
261
271
|
deliveryMode,
|
|
262
272
|
language: (0, work_language_1.getWorkLanguage)(),
|
|
263
273
|
});
|
|
264
|
-
const
|
|
274
|
+
const carryoverCallSiteCourse = result.callSiteCourse;
|
|
265
275
|
let assignmentRef;
|
|
266
|
-
const carryoverContent =
|
|
276
|
+
const carryoverContent = carryoverCallSiteCourse !== undefined &&
|
|
277
|
+
carryoverCallSiteCourse !== parentDialog.currentCourse
|
|
267
278
|
? (0, inter_dialog_format_1.formatTellaskCarryoverResultContent)({
|
|
268
|
-
|
|
279
|
+
callSiteCourse: carryoverCallSiteCourse,
|
|
269
280
|
callName: result.callName,
|
|
281
|
+
callId: resolvedCallId,
|
|
270
282
|
responderId: result.responderId,
|
|
271
283
|
mentionList: result.mentionList,
|
|
272
284
|
sessionSlug: result.sessionSlug,
|
|
273
285
|
tellaskContent: result.tellaskContent,
|
|
274
|
-
responseBody:
|
|
286
|
+
responseBody: tellaskerResponseBody,
|
|
275
287
|
status,
|
|
276
288
|
language: (0, work_language_1.getWorkLanguage)(),
|
|
277
289
|
})
|
|
278
290
|
: undefined;
|
|
279
291
|
if (resolvedCallId !== '' && calleeResponseRef) {
|
|
280
|
-
if (result.
|
|
281
|
-
throw new Error(`tellask response anchor invariant violation: missing
|
|
282
|
-
`(parentId=${parentDialog.id.selfId},
|
|
292
|
+
if (result.askerCourse === undefined) {
|
|
293
|
+
throw new Error(`tellask response anchor invariant violation: missing askerCourse ` +
|
|
294
|
+
`(parentId=${parentDialog.id.selfId}, sideDialogId=${sideDialogId.selfId}, callId=${resolvedCallId})`);
|
|
283
295
|
}
|
|
284
296
|
assignmentRef = await resolveLatestAssignmentAnchorRef({
|
|
285
|
-
calleeDialogId:
|
|
297
|
+
calleeDialogId: sideDialogId,
|
|
286
298
|
callId: resolvedCallId,
|
|
287
299
|
status: parentDialog.status,
|
|
288
300
|
});
|
|
289
301
|
if (!assignmentRef) {
|
|
290
|
-
// A
|
|
302
|
+
// A Side Dialog can legitimately finish a pending tellask before the queued assignment
|
|
291
303
|
// prompt for that call is rendered locally, for example after a direct user nudge inside
|
|
292
|
-
// the
|
|
304
|
+
// the Side Dialog. Keep the asker deep-link anchor, but do not treat the missing
|
|
293
305
|
// local assignment bubble as an invariant violation.
|
|
294
306
|
log_1.log.debug('Tellask response anchor has no local assignment anchor', undefined, {
|
|
295
307
|
parentId: parentDialog.id.selfId,
|
|
296
|
-
|
|
308
|
+
sideDialogId: sideDialogId.selfId,
|
|
297
309
|
callId: resolvedCallId,
|
|
298
310
|
responseCourse: calleeResponseRef.course,
|
|
299
311
|
responseGenseq: calleeResponseRef.genseq,
|
|
@@ -308,18 +320,29 @@ async function supplyResponseToSupdialog(args) {
|
|
|
308
320
|
replyCallName: args.replyResolution.replyCallName,
|
|
309
321
|
targetCallId: resolvedCallId,
|
|
310
322
|
...(0, storage_1.toRootGenerationAnchor)({
|
|
311
|
-
rootCourse: parentDialog instanceof dialog_1.
|
|
312
|
-
? parentDialog.
|
|
323
|
+
rootCourse: parentDialog instanceof dialog_1.SideDialog
|
|
324
|
+
? parentDialog.mainDialog.currentCourse
|
|
313
325
|
: parentDialog.currentCourse,
|
|
314
|
-
rootGenseq: parentDialog instanceof dialog_1.
|
|
315
|
-
? (parentDialog.
|
|
326
|
+
rootGenseq: parentDialog instanceof dialog_1.SideDialog
|
|
327
|
+
? (parentDialog.mainDialog.activeGenSeqOrUndefined ?? 0)
|
|
316
328
|
: (parentDialog.activeGenSeqOrUndefined ?? 0),
|
|
317
329
|
}),
|
|
318
330
|
};
|
|
319
|
-
await persistence_1.DialogPersistence.appendEvent(
|
|
320
|
-
const deferredReplyReassertion = await persistence_1.DialogPersistence.getDeferredReplyReassertion(
|
|
331
|
+
await persistence_1.DialogPersistence.appendEvent(sideDialogId, calleeResponseRef.course, replyResolutionRecord, parentDialog.status);
|
|
332
|
+
const deferredReplyReassertion = await persistence_1.DialogPersistence.getDeferredReplyReassertion(sideDialogId, parentDialog.status);
|
|
321
333
|
if (deferredReplyReassertion?.directive.targetCallId === resolvedCallId) {
|
|
322
|
-
await persistence_1.DialogPersistence.setDeferredReplyReassertion(
|
|
334
|
+
await persistence_1.DialogPersistence.setDeferredReplyReassertion(sideDialogId, undefined, parentDialog.status);
|
|
335
|
+
}
|
|
336
|
+
const activeReplyObligation = await persistence_1.DialogPersistence.loadActiveTellaskReplyObligation(sideDialogId, parentDialog.status);
|
|
337
|
+
if (activeReplyObligation?.targetCallId === resolvedCallId) {
|
|
338
|
+
await persistence_1.DialogPersistence.setActiveTellaskReplyObligation(sideDialogId, undefined, parentDialog.status);
|
|
339
|
+
if (maybeSideDialog) {
|
|
340
|
+
const nextAskerStackState = await persistence_1.DialogPersistence.loadSideDialogAskerStackState(maybeSideDialog.id, maybeSideDialog.status);
|
|
341
|
+
if (!nextAskerStackState) {
|
|
342
|
+
throw new Error(`Missing asker stack after reply obligation pop: ${maybeSideDialog.id.valueOf()}`);
|
|
343
|
+
}
|
|
344
|
+
maybeSideDialog.askerStack = nextAskerStackState;
|
|
345
|
+
}
|
|
323
346
|
}
|
|
324
347
|
}
|
|
325
348
|
const anchorRecord = {
|
|
@@ -329,33 +352,33 @@ async function supplyResponseToSupdialog(args) {
|
|
|
329
352
|
callId: resolvedCallId,
|
|
330
353
|
genseq: calleeResponseRef.genseq,
|
|
331
354
|
...(0, storage_1.toRootGenerationAnchor)({
|
|
332
|
-
rootCourse: parentDialog instanceof dialog_1.
|
|
333
|
-
? parentDialog.
|
|
355
|
+
rootCourse: parentDialog instanceof dialog_1.SideDialog
|
|
356
|
+
? parentDialog.mainDialog.currentCourse
|
|
334
357
|
: parentDialog.currentCourse,
|
|
335
|
-
rootGenseq: parentDialog instanceof dialog_1.
|
|
336
|
-
? (parentDialog.
|
|
358
|
+
rootGenseq: parentDialog instanceof dialog_1.SideDialog
|
|
359
|
+
? (parentDialog.mainDialog.activeGenSeqOrUndefined ?? 0)
|
|
337
360
|
: (parentDialog.activeGenSeqOrUndefined ?? 0),
|
|
338
361
|
}),
|
|
339
362
|
assignmentCourse: assignmentRef !== undefined ? (0, storage_1.toAssignmentCourseNumber)(assignmentRef.course) : undefined,
|
|
340
363
|
assignmentGenseq: assignmentRef !== undefined
|
|
341
364
|
? (0, storage_1.toAssignmentGenerationSeqNumber)(assignmentRef.genseq)
|
|
342
365
|
: undefined,
|
|
343
|
-
|
|
344
|
-
|
|
366
|
+
askerDialogId: parentDialog.id.selfId,
|
|
367
|
+
askerCourse: result.askerCourse,
|
|
345
368
|
};
|
|
346
|
-
await persistence_1.DialogPersistence.appendEvent(
|
|
369
|
+
await persistence_1.DialogPersistence.appendEvent(sideDialogId, calleeResponseRef.course, anchorRecord, parentDialog.status);
|
|
347
370
|
}
|
|
348
|
-
await syncPendingTellaskReminderBestEffort(parentDialog, 'kernel-driver:
|
|
349
|
-
await parentDialog.receiveTellaskResponse(result.responderId, result.callName, result.mentionList, result.tellaskContent, status,
|
|
350
|
-
response:
|
|
371
|
+
await syncPendingTellaskReminderBestEffort(parentDialog, 'kernel-driver:supplyResponseToAskerDialog');
|
|
372
|
+
await parentDialog.receiveTellaskResponse(result.responderId, result.callName, result.mentionList, result.tellaskContent, status, sideDialogId, {
|
|
373
|
+
response: tellaskerResponseText,
|
|
351
374
|
agentId: result.responderAgentId ?? result.responderId,
|
|
352
375
|
callId: resolvedCallId,
|
|
353
|
-
originMemberId:
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
? (0, storage_1.
|
|
376
|
+
originMemberId: tellaskerId,
|
|
377
|
+
callSiteCourse: carryoverCallSiteCourse,
|
|
378
|
+
callSiteGenseq: result.callSiteGenseq !== undefined
|
|
379
|
+
? (0, storage_1.toCallSiteGenseqNo)(result.callSiteGenseq)
|
|
357
380
|
: assignmentRef !== undefined
|
|
358
|
-
? (0, storage_1.
|
|
381
|
+
? (0, storage_1.toCallSiteGenseqNo)(assignmentRef.genseq)
|
|
359
382
|
: undefined,
|
|
360
383
|
carryoverContent,
|
|
361
384
|
sessionSlug: result.sessionSlug,
|
|
@@ -372,16 +395,16 @@ async function supplyResponseToSupdialog(args) {
|
|
|
372
395
|
role: 'user',
|
|
373
396
|
genseq: parentDialog.activeGenSeqOrUndefined ?? 1,
|
|
374
397
|
content: carryoverContent,
|
|
375
|
-
|
|
398
|
+
callSiteCourse: carryoverCallSiteCourse,
|
|
376
399
|
carryoverCourse: parentDialog.currentCourse,
|
|
377
400
|
responderId: result.responderId,
|
|
378
401
|
callName: result.callName,
|
|
379
402
|
tellaskContent: result.tellaskContent,
|
|
380
403
|
status,
|
|
381
|
-
response:
|
|
404
|
+
response: tellaskerResponseText,
|
|
382
405
|
agentId: result.responderAgentId ?? result.responderId,
|
|
383
406
|
callId: resolvedCallId,
|
|
384
|
-
originMemberId:
|
|
407
|
+
originMemberId: tellaskerId,
|
|
385
408
|
...(result.callName === 'tellask'
|
|
386
409
|
? {
|
|
387
410
|
mentionList: result.mentionList ?? [],
|
|
@@ -394,12 +417,12 @@ async function supplyResponseToSupdialog(args) {
|
|
|
394
417
|
: {}),
|
|
395
418
|
...(calleeResponseRef !== undefined
|
|
396
419
|
? {
|
|
397
|
-
calleeDialogId:
|
|
420
|
+
calleeDialogId: sideDialogId.selfId,
|
|
398
421
|
calleeCourse: calleeResponseRef.course,
|
|
399
422
|
calleeGenseq: calleeResponseRef.genseq,
|
|
400
423
|
}
|
|
401
424
|
: {
|
|
402
|
-
calleeDialogId:
|
|
425
|
+
calleeDialogId: sideDialogId.selfId,
|
|
403
426
|
}),
|
|
404
427
|
}
|
|
405
428
|
: {
|
|
@@ -408,12 +431,14 @@ async function supplyResponseToSupdialog(args) {
|
|
|
408
431
|
callId: resolvedCallId,
|
|
409
432
|
callName: result.callName,
|
|
410
433
|
status,
|
|
411
|
-
content:
|
|
412
|
-
...(result.
|
|
413
|
-
|
|
414
|
-
|
|
434
|
+
content: tellaskerResponseText,
|
|
435
|
+
...(result.callSiteCourse !== undefined
|
|
436
|
+
? { callSiteCourse: result.callSiteCourse }
|
|
437
|
+
: {}),
|
|
438
|
+
...(result.callSiteGenseq !== undefined
|
|
439
|
+
? { callSiteGenseq: result.callSiteGenseq }
|
|
415
440
|
: assignmentRef !== undefined
|
|
416
|
-
? {
|
|
441
|
+
? { callSiteGenseq: assignmentRef.genseq }
|
|
417
442
|
: {}),
|
|
418
443
|
call: result.callName === 'tellask'
|
|
419
444
|
? {
|
|
@@ -432,10 +457,10 @@ async function supplyResponseToSupdialog(args) {
|
|
|
432
457
|
responder: {
|
|
433
458
|
responderId: result.responderId,
|
|
434
459
|
agentId: result.responderAgentId ?? result.responderId,
|
|
435
|
-
originMemberId:
|
|
460
|
+
originMemberId: tellaskerId,
|
|
436
461
|
},
|
|
437
462
|
route: {
|
|
438
|
-
calleeDialogId:
|
|
463
|
+
calleeDialogId: sideDialogId.selfId,
|
|
439
464
|
...(calleeResponseRef !== undefined
|
|
440
465
|
? {
|
|
441
466
|
calleeCourse: calleeResponseRef.course,
|
|
@@ -446,13 +471,15 @@ async function supplyResponseToSupdialog(args) {
|
|
|
446
471
|
};
|
|
447
472
|
await parentDialog.addChatMessages(immediateMirror);
|
|
448
473
|
if (result.shouldRevive) {
|
|
449
|
-
const isRoot = parentDialog instanceof dialog_1.
|
|
474
|
+
const isRoot = parentDialog instanceof dialog_1.MainDialog;
|
|
450
475
|
const hasRegistryEntry = isRoot
|
|
451
476
|
? dialog_global_registry_1.globalDialogRegistry.get(parentDialog.id.rootId) !== undefined
|
|
452
477
|
: false;
|
|
453
|
-
log_1.log.debug(`All Type ${callType}
|
|
478
|
+
log_1.log.debug(`All Type ${callType} sideDialogs complete, parent ${parentDialog.id.selfId} scheduling auto-revive`, undefined, {
|
|
454
479
|
rootId: parentDialog.id.rootId,
|
|
455
480
|
selfId: parentDialog.id.selfId,
|
|
481
|
+
callSiteCourse: result.callSiteCourse,
|
|
482
|
+
callSiteGenseq: result.callSiteGenseq,
|
|
456
483
|
via: isRoot && hasRegistryEntry ? 'backend_loop_trigger' : 'direct_schedule_drive',
|
|
457
484
|
isRoot,
|
|
458
485
|
hasRegistryEntry,
|
|
@@ -460,58 +487,64 @@ async function supplyResponseToSupdialog(args) {
|
|
|
460
487
|
if (isRoot) {
|
|
461
488
|
dialog_global_registry_1.globalDialogRegistry.markNeedsDrive(parentDialog.id.rootId, {
|
|
462
489
|
source: 'kernel_driver_supply_response',
|
|
463
|
-
reason: `
|
|
490
|
+
reason: `all_pending_sideDialogs_resolved:type_${callType}`,
|
|
464
491
|
});
|
|
465
492
|
}
|
|
466
|
-
if (
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
driveOptions: {
|
|
470
|
-
suppressDiligencePush: parentDialog.disableDiligencePush,
|
|
471
|
-
noPromptSubdialogResumeEntitlement: {
|
|
472
|
-
ownerDialogId: parentDialog.id.selfId,
|
|
473
|
-
reason: 'resolved_pending_subdialog_reply',
|
|
474
|
-
subdialogId: subdialogId.selfId,
|
|
475
|
-
callType,
|
|
476
|
-
callId: resolvedCallId,
|
|
477
|
-
},
|
|
478
|
-
source: 'kernel_driver_supply_response_parent_revive',
|
|
479
|
-
reason: `all_pending_subdialogs_resolved:type_${callType}`,
|
|
480
|
-
},
|
|
481
|
-
});
|
|
493
|
+
if (result.callSiteCourse === undefined || result.callSiteGenseq === undefined) {
|
|
494
|
+
throw new Error(`sideDialog revive entitlement invariant violation: missing wait-group coordinates ` +
|
|
495
|
+
`(rootId=${parentDialog.id.rootId}, selfId=${parentDialog.id.selfId}, callId=${resolvedCallId})`);
|
|
482
496
|
}
|
|
497
|
+
scheduleDrive(parentDialog, {
|
|
498
|
+
waitInQue: true,
|
|
499
|
+
driveOptions: {
|
|
500
|
+
suppressDiligencePush: parentDialog.disableDiligencePush,
|
|
501
|
+
noPromptSideDialogResumeEntitlement: {
|
|
502
|
+
ownerDialogId: parentDialog.id.selfId,
|
|
503
|
+
reason: 'resolved_pending_sideDialog_reply',
|
|
504
|
+
sideDialogId: sideDialogId.selfId,
|
|
505
|
+
callType,
|
|
506
|
+
callId: resolvedCallId,
|
|
507
|
+
callSiteCourse: result.callSiteCourse,
|
|
508
|
+
callSiteGenseq: result.callSiteGenseq,
|
|
509
|
+
resolvedCallIds: result.resolvedCallIds,
|
|
510
|
+
triggerCallId: resolvedCallId,
|
|
511
|
+
},
|
|
512
|
+
source: 'kernel_driver_supply_response_parent_revive',
|
|
513
|
+
reason: `wait_group_resolved:type_${callType}:c${result.callSiteCourse}:g${result.callSiteGenseq}`,
|
|
514
|
+
},
|
|
515
|
+
});
|
|
483
516
|
}
|
|
484
517
|
}
|
|
485
518
|
catch (error) {
|
|
486
|
-
log_1.log.error('kernel-driver failed to supply
|
|
519
|
+
log_1.log.error('kernel-driver failed to supply sideDialog response', error, {
|
|
487
520
|
parentId: parentDialog.id.selfId,
|
|
488
|
-
|
|
521
|
+
sideDialogId: sideDialogId.selfId,
|
|
489
522
|
});
|
|
490
523
|
throw error;
|
|
491
524
|
}
|
|
492
525
|
}
|
|
493
|
-
async function
|
|
494
|
-
const {
|
|
495
|
-
const assignment =
|
|
526
|
+
async function supplySideDialogResponseToSpecificAskerIfPendingV2(args) {
|
|
527
|
+
const { sideDialog, responseText, responseGenseq, target, scheduleDrive } = args;
|
|
528
|
+
const assignment = sideDialog.assignmentFromAsker;
|
|
496
529
|
if (!assignment) {
|
|
497
530
|
return false;
|
|
498
531
|
}
|
|
499
|
-
const ownerDialog = await resolveOwnerDialogBySelfId(
|
|
532
|
+
const ownerDialog = await resolveOwnerDialogBySelfId(sideDialog, target.ownerDialogId);
|
|
500
533
|
if (!ownerDialog) {
|
|
501
534
|
return false;
|
|
502
535
|
}
|
|
503
|
-
if (!(await ensureDialogFreshOrDiscard(ownerDialog, '
|
|
536
|
+
if (!(await ensureDialogFreshOrDiscard(ownerDialog, 'supplySideDialogResponseToSpecificAskerIfPendingV2:owner'))) {
|
|
504
537
|
return false;
|
|
505
538
|
}
|
|
506
|
-
const pending = await persistence_1.DialogPersistence.
|
|
507
|
-
const pendingRecord = pending.find((p) => p.
|
|
539
|
+
const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(ownerDialog.id, ownerDialog.status);
|
|
540
|
+
const pendingRecord = pending.find((p) => p.sideDialogId === sideDialog.id.selfId && p.callId === target.callId);
|
|
508
541
|
if (!pendingRecord) {
|
|
509
542
|
return false;
|
|
510
543
|
}
|
|
511
544
|
if (pendingRecord.callType !== target.callType) {
|
|
512
545
|
log_1.log.warn('Reply target callType does not match pending callType; skipping stale reply target', undefined, {
|
|
513
|
-
rootId:
|
|
514
|
-
|
|
546
|
+
rootId: sideDialog.mainDialog.id.rootId,
|
|
547
|
+
sideDialogId: sideDialog.id.selfId,
|
|
515
548
|
ownerDialogId: ownerDialog.id.selfId,
|
|
516
549
|
targetCallType: target.callType,
|
|
517
550
|
pendingCallType: pendingRecord.callType,
|
|
@@ -520,29 +553,29 @@ async function supplySubdialogResponseToSpecificCallerIfPendingV2(args) {
|
|
|
520
553
|
}
|
|
521
554
|
if (pendingRecord.callType === 'B') {
|
|
522
555
|
const assignmentAnchorRef = await resolveLatestAssignmentAnchorRef({
|
|
523
|
-
calleeDialogId:
|
|
556
|
+
calleeDialogId: sideDialog.id,
|
|
524
557
|
callId: pendingRecord.callId,
|
|
525
|
-
status:
|
|
558
|
+
status: sideDialog.status,
|
|
526
559
|
});
|
|
527
560
|
if (!assignmentAnchorRef) {
|
|
528
561
|
log_1.log.debug('Skip Type B response supply before updated assignment is rendered locally', undefined, {
|
|
529
|
-
rootId:
|
|
530
|
-
|
|
562
|
+
rootId: sideDialog.mainDialog.id.rootId,
|
|
563
|
+
sideDialogId: sideDialog.id.selfId,
|
|
531
564
|
ownerDialogId: ownerDialog.id.selfId,
|
|
532
565
|
callId: pendingRecord.callId,
|
|
533
566
|
responseGenseq,
|
|
534
567
|
});
|
|
535
568
|
return false;
|
|
536
569
|
}
|
|
537
|
-
if (
|
|
538
|
-
(
|
|
570
|
+
if (sideDialog.currentCourse < assignmentAnchorRef.course ||
|
|
571
|
+
(sideDialog.currentCourse === assignmentAnchorRef.course &&
|
|
539
572
|
responseGenseq < assignmentAnchorRef.genseq)) {
|
|
540
573
|
log_1.log.debug('Skip stale Type B response supply from before latest local assignment', undefined, {
|
|
541
|
-
rootId:
|
|
542
|
-
|
|
574
|
+
rootId: sideDialog.mainDialog.id.rootId,
|
|
575
|
+
sideDialogId: sideDialog.id.selfId,
|
|
543
576
|
ownerDialogId: ownerDialog.id.selfId,
|
|
544
577
|
callId: pendingRecord.callId,
|
|
545
|
-
responseCourse:
|
|
578
|
+
responseCourse: sideDialog.currentCourse,
|
|
546
579
|
responseGenseq,
|
|
547
580
|
assignmentCourse: assignmentAnchorRef.course,
|
|
548
581
|
assignmentGenseq: assignmentAnchorRef.genseq,
|
|
@@ -550,69 +583,69 @@ async function supplySubdialogResponseToSpecificCallerIfPendingV2(args) {
|
|
|
550
583
|
return false;
|
|
551
584
|
}
|
|
552
585
|
}
|
|
553
|
-
await
|
|
586
|
+
await supplyResponseToAskerDialog({
|
|
554
587
|
parentDialog: ownerDialog,
|
|
555
|
-
|
|
588
|
+
sideDialogId: sideDialog.id,
|
|
556
589
|
responseText,
|
|
557
|
-
|
|
590
|
+
sideDialog,
|
|
558
591
|
callType: pendingRecord.callType,
|
|
559
592
|
callId: target.callId,
|
|
560
593
|
status: 'completed',
|
|
561
594
|
deliveryMode: args.deliveryMode,
|
|
562
595
|
replyResolution: args.replyResolution,
|
|
563
|
-
calleeResponseRef: { course:
|
|
596
|
+
calleeResponseRef: { course: sideDialog.currentCourse, genseq: responseGenseq },
|
|
564
597
|
scheduleDrive,
|
|
565
598
|
});
|
|
566
599
|
return true;
|
|
567
600
|
}
|
|
568
|
-
async function
|
|
569
|
-
const {
|
|
570
|
-
const assignment =
|
|
601
|
+
async function supplySideDialogResponseToAssignedAskerIfPendingV2(args) {
|
|
602
|
+
const { sideDialog, responseText, responseGenseq, scheduleDrive } = args;
|
|
603
|
+
const assignment = sideDialog.assignmentFromAsker;
|
|
571
604
|
if (!assignment) {
|
|
572
605
|
return false;
|
|
573
606
|
}
|
|
574
|
-
const
|
|
575
|
-
if (!
|
|
576
|
-
log_1.log.warn('Missing
|
|
577
|
-
rootId:
|
|
578
|
-
|
|
579
|
-
|
|
607
|
+
const askerDialog = await resolveOwnerDialogBySelfId(sideDialog, assignment.askerDialogId);
|
|
608
|
+
if (!askerDialog) {
|
|
609
|
+
log_1.log.warn('Missing tellasker for sideDialog response supply', undefined, {
|
|
610
|
+
rootId: sideDialog.mainDialog.id.rootId,
|
|
611
|
+
sideDialogId: sideDialog.id.selfId,
|
|
612
|
+
askerDialogId: assignment.askerDialogId,
|
|
580
613
|
});
|
|
581
614
|
return false;
|
|
582
615
|
}
|
|
583
|
-
if (!(await ensureDialogFreshOrDiscard(
|
|
616
|
+
if (!(await ensureDialogFreshOrDiscard(askerDialog, 'supplySideDialogResponseToAssignedAskerIfPendingV2:asker'))) {
|
|
584
617
|
return false;
|
|
585
618
|
}
|
|
586
|
-
const pending = await persistence_1.DialogPersistence.
|
|
587
|
-
const pendingRecord = pending.find((p) => p.
|
|
619
|
+
const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(askerDialog.id, askerDialog.status);
|
|
620
|
+
const pendingRecord = pending.find((p) => p.sideDialogId === sideDialog.id.selfId && p.callId === assignment.callId);
|
|
588
621
|
if (!pendingRecord) {
|
|
589
622
|
return false;
|
|
590
623
|
}
|
|
591
624
|
if (pendingRecord.callType === 'B') {
|
|
592
625
|
const assignmentAnchorRef = await resolveLatestAssignmentAnchorRef({
|
|
593
|
-
calleeDialogId:
|
|
626
|
+
calleeDialogId: sideDialog.id,
|
|
594
627
|
callId: pendingRecord.callId,
|
|
595
|
-
status:
|
|
628
|
+
status: sideDialog.status,
|
|
596
629
|
});
|
|
597
630
|
if (!assignmentAnchorRef) {
|
|
598
631
|
log_1.log.debug('Skip assigned Type B response supply before updated assignment is rendered locally', undefined, {
|
|
599
|
-
rootId:
|
|
600
|
-
|
|
601
|
-
|
|
632
|
+
rootId: sideDialog.mainDialog.id.rootId,
|
|
633
|
+
sideDialogId: sideDialog.id.selfId,
|
|
634
|
+
askerDialogId: askerDialog.id.selfId,
|
|
602
635
|
callId: pendingRecord.callId,
|
|
603
636
|
responseGenseq,
|
|
604
637
|
});
|
|
605
638
|
return false;
|
|
606
639
|
}
|
|
607
|
-
if (
|
|
608
|
-
(
|
|
640
|
+
if (sideDialog.currentCourse < assignmentAnchorRef.course ||
|
|
641
|
+
(sideDialog.currentCourse === assignmentAnchorRef.course &&
|
|
609
642
|
responseGenseq < assignmentAnchorRef.genseq)) {
|
|
610
643
|
log_1.log.debug('Skip assigned stale Type B response supply from before latest local assignment', undefined, {
|
|
611
|
-
rootId:
|
|
612
|
-
|
|
613
|
-
|
|
644
|
+
rootId: sideDialog.mainDialog.id.rootId,
|
|
645
|
+
sideDialogId: sideDialog.id.selfId,
|
|
646
|
+
askerDialogId: askerDialog.id.selfId,
|
|
614
647
|
callId: pendingRecord.callId,
|
|
615
|
-
responseCourse:
|
|
648
|
+
responseCourse: sideDialog.currentCourse,
|
|
616
649
|
responseGenseq,
|
|
617
650
|
assignmentCourse: assignmentAnchorRef.course,
|
|
618
651
|
assignmentGenseq: assignmentAnchorRef.genseq,
|
|
@@ -620,17 +653,17 @@ async function supplySubdialogResponseToAssignedCallerIfPendingV2(args) {
|
|
|
620
653
|
return false;
|
|
621
654
|
}
|
|
622
655
|
}
|
|
623
|
-
await
|
|
624
|
-
parentDialog:
|
|
625
|
-
|
|
656
|
+
await supplyResponseToAskerDialog({
|
|
657
|
+
parentDialog: askerDialog,
|
|
658
|
+
sideDialogId: sideDialog.id,
|
|
626
659
|
responseText,
|
|
627
|
-
|
|
660
|
+
sideDialog,
|
|
628
661
|
callType: pendingRecord.callType,
|
|
629
662
|
callId: assignment.callId,
|
|
630
663
|
status: 'completed',
|
|
631
664
|
deliveryMode: args.deliveryMode,
|
|
632
665
|
replyResolution: args.replyResolution,
|
|
633
|
-
calleeResponseRef: { course:
|
|
666
|
+
calleeResponseRef: { course: sideDialog.currentCourse, genseq: responseGenseq },
|
|
634
667
|
scheduleDrive,
|
|
635
668
|
});
|
|
636
669
|
return true;
|