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
|
@@ -20,7 +20,7 @@ const context_health_1 = require("./context-health");
|
|
|
20
20
|
const drive_1 = require("./drive");
|
|
21
21
|
const guardrails_1 = require("./guardrails");
|
|
22
22
|
const reply_guidance_1 = require("./reply-guidance");
|
|
23
|
-
const
|
|
23
|
+
const sideDialog_1 = require("./sideDialog");
|
|
24
24
|
const tellask_special_1 = require("./tellask-special");
|
|
25
25
|
const REPLY_TOOL_REMINDER_PREFIX_EN = '[Dominds replyTellask required]';
|
|
26
26
|
const REPLY_TOOL_REMINDER_PREFIX_ZH = '[Dominds 必须调用回复工具]';
|
|
@@ -43,45 +43,73 @@ async function buildReplyToolReminderPrompt(args) {
|
|
|
43
43
|
}),
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
function entitlementAllowsPendingSideDialog(args) {
|
|
47
|
+
const entitlement = args.driveOptions?.noPromptSideDialogResumeEntitlement;
|
|
48
|
+
if (args.driveOptions?.source !== 'kernel_driver_supply_response_parent_revive' ||
|
|
49
|
+
entitlement?.ownerDialogId !== args.dialog.id.selfId) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
if (entitlement.reason === 'reply_tellask_back_delivered') {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
if (entitlement.reason === 'replaced_pending_sideDialog_reply') {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
if (entitlement.reason !== 'resolved_pending_sideDialog_reply') {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (!isPositiveInteger(entitlement.callSiteCourse)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (!isPositiveInteger(entitlement.callSiteGenseq)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return (args.pending.callSiteCourse !== entitlement.callSiteCourse ||
|
|
68
|
+
args.pending.callSiteGenseq !== entitlement.callSiteGenseq);
|
|
69
|
+
}
|
|
70
|
+
function isPositiveInteger(value) {
|
|
71
|
+
return typeof value === 'number' && Number.isInteger(value) && value > 0;
|
|
72
|
+
}
|
|
73
|
+
async function loadFreshSuspensionStatusFromPersistence(dialog, driveOptions) {
|
|
47
74
|
const q4h = await persistence_1.DialogPersistence.loadQuestions4HumanState(dialog.id, dialog.status);
|
|
48
|
-
const
|
|
75
|
+
const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialog.id, dialog.status);
|
|
49
76
|
const hasQ4H = q4h.length > 0;
|
|
50
|
-
const
|
|
77
|
+
const hasSideDialogs = pendingSideDialogs.length > 0;
|
|
78
|
+
const blockingSideDialogs = pendingSideDialogs.some((pending) => !entitlementAllowsPendingSideDialog({ pending, driveOptions, dialog }));
|
|
51
79
|
return {
|
|
52
80
|
q4h: hasQ4H,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
canDrive: !hasQ4H && !
|
|
81
|
+
sideDialogs: hasSideDialogs,
|
|
82
|
+
blockingSideDialogs,
|
|
83
|
+
canDrive: !hasQ4H && !blockingSideDialogs,
|
|
56
84
|
};
|
|
57
85
|
}
|
|
58
86
|
function buildDisplayStateFromSuspensionStatus(args) {
|
|
59
|
-
if (args.q4h && args.
|
|
60
|
-
return { kind: 'blocked', reason: { kind: '
|
|
87
|
+
if (args.q4h && args.sideDialogs) {
|
|
88
|
+
return { kind: 'blocked', reason: { kind: 'needs_human_input_and_sideDialogs' } };
|
|
61
89
|
}
|
|
62
90
|
if (args.q4h) {
|
|
63
91
|
return { kind: 'blocked', reason: { kind: 'needs_human_input' } };
|
|
64
92
|
}
|
|
65
|
-
if (args.
|
|
66
|
-
return { kind: 'blocked', reason: { kind: '
|
|
93
|
+
if (args.sideDialogs) {
|
|
94
|
+
return { kind: 'blocked', reason: { kind: 'waiting_for_sideDialogs' } };
|
|
67
95
|
}
|
|
68
96
|
return { kind: 'idle_waiting_user' };
|
|
69
97
|
}
|
|
70
98
|
async function loadPendingDiagnosticsSnapshot(args) {
|
|
71
99
|
const ownerDialogIdObj = new dialog_1.DialogID(args.ownerDialogId, args.rootId);
|
|
72
100
|
try {
|
|
73
|
-
const pending = await persistence_1.DialogPersistence.
|
|
74
|
-
const
|
|
75
|
-
.filter((record) => record.
|
|
76
|
-
.map((record) => record.
|
|
101
|
+
const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(ownerDialogIdObj, args.status);
|
|
102
|
+
const matchedSideDialogIds = pending
|
|
103
|
+
.filter((record) => record.sideDialogId === args.expectedSideDialogId)
|
|
104
|
+
.map((record) => record.sideDialogId);
|
|
77
105
|
return {
|
|
78
106
|
kind: 'loaded',
|
|
79
107
|
ownerDialogId: args.ownerDialogId,
|
|
80
108
|
status: args.status,
|
|
81
109
|
totalCount: pending.length,
|
|
82
|
-
|
|
110
|
+
matchedSideDialogIds,
|
|
83
111
|
records: pending.map((record) => ({
|
|
84
|
-
|
|
112
|
+
sideDialogId: record.sideDialogId,
|
|
85
113
|
callType: record.callType,
|
|
86
114
|
targetAgentId: record.targetAgentId,
|
|
87
115
|
sessionSlug: record.sessionSlug,
|
|
@@ -133,24 +161,31 @@ async function clearConsumedDeferredRootQueueIfIdle(dialog) {
|
|
|
133
161
|
reason: 'root_idle_after_consuming_deferred_queue',
|
|
134
162
|
});
|
|
135
163
|
}
|
|
136
|
-
function
|
|
137
|
-
const entitlement = driveOptions?.
|
|
164
|
+
function hasNoPromptSideDialogResumeEntitlement(dialog, driveOptions) {
|
|
165
|
+
const entitlement = driveOptions?.noPromptSideDialogResumeEntitlement;
|
|
138
166
|
if (!entitlement) {
|
|
139
167
|
return false;
|
|
140
168
|
}
|
|
141
169
|
return entitlement.ownerDialogId === dialog.id.selfId;
|
|
142
170
|
}
|
|
143
|
-
function
|
|
144
|
-
|
|
171
|
+
function hasParentReviveEntitlement(dialog, driveOptions) {
|
|
172
|
+
const entitlement = driveOptions?.noPromptSideDialogResumeEntitlement;
|
|
173
|
+
if (!entitlement) {
|
|
145
174
|
return false;
|
|
146
175
|
}
|
|
147
|
-
|
|
148
|
-
|
|
176
|
+
if (driveOptions?.source !== 'kernel_driver_supply_response_parent_revive' ||
|
|
177
|
+
entitlement.ownerDialogId !== dialog.id.selfId) {
|
|
149
178
|
return false;
|
|
150
179
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
180
|
+
if (entitlement.reason === 'reply_tellask_back_delivered') {
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
if (entitlement.reason === 'replaced_pending_sideDialog_reply') {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
return (entitlement.reason === 'resolved_pending_sideDialog_reply' &&
|
|
187
|
+
isPositiveInteger(entitlement.callSiteCourse) &&
|
|
188
|
+
isPositiveInteger(entitlement.callSiteGenseq));
|
|
154
189
|
}
|
|
155
190
|
function resolveDriveRequestSource(humanPrompt, driveOptions) {
|
|
156
191
|
if (driveOptions?.source) {
|
|
@@ -221,7 +256,7 @@ async function applyRegisteredDialogRunControlsBeforeDrive(args) {
|
|
|
221
256
|
throw new Error((0, run_control_1.renderAppRunControlBlockForPreDrive)(result.block));
|
|
222
257
|
}
|
|
223
258
|
}
|
|
224
|
-
async function
|
|
259
|
+
async function inspectNoPromptSideDialogDrive(args) {
|
|
225
260
|
const source = resolveDriveRequestSource(undefined, args.driveOptions);
|
|
226
261
|
const latest = await persistence_1.DialogPersistence.loadDialogLatest(args.dialog.id, args.dialog.status);
|
|
227
262
|
const displayState = latest?.displayState;
|
|
@@ -245,7 +280,7 @@ async function inspectNoPromptSubdialogDrive(args) {
|
|
|
245
280
|
const explicitInterruptedResumeAllowed = args.driveOptions?.allowResumeFromInterrupted === true &&
|
|
246
281
|
latest?.executionMarker?.kind === 'interrupted';
|
|
247
282
|
const supplyResponseParentReviveAllowed = source === 'kernel_driver_supply_response_parent_revive' &&
|
|
248
|
-
|
|
283
|
+
hasNoPromptSideDialogResumeEntitlement(args.dialog, args.driveOptions);
|
|
249
284
|
if (lastEvent?.type === 'tellask_call_anchor_record' && lastEvent.anchorRole === 'response') {
|
|
250
285
|
return {
|
|
251
286
|
shouldReject: true,
|
|
@@ -279,7 +314,7 @@ async function maybeResolveDeferredReplyReassertionPrompt(dialog) {
|
|
|
279
314
|
if (!deferredReplyReassertion) {
|
|
280
315
|
return undefined;
|
|
281
316
|
}
|
|
282
|
-
const activeDirective = await (0, tellask_special_1.
|
|
317
|
+
const activeDirective = await (0, tellask_special_1.loadActiveTellaskReplyDirective)(dialog);
|
|
283
318
|
if (!activeDirective ||
|
|
284
319
|
activeDirective.targetCallId !== deferredReplyReassertion.directive.targetCallId) {
|
|
285
320
|
await persistence_1.DialogPersistence.setDeferredReplyReassertion(dialog.id, undefined, dialog.status);
|
|
@@ -314,7 +349,7 @@ async function maybeSurfaceDeferredReplyReassertionGuideForBlockedContinue(dialo
|
|
|
314
349
|
if (!deferredReplyReassertion || deferredReplyReassertion.resumeGuideSurfaced === true) {
|
|
315
350
|
return;
|
|
316
351
|
}
|
|
317
|
-
const activeDirective = await (0, tellask_special_1.
|
|
352
|
+
const activeDirective = await (0, tellask_special_1.loadActiveTellaskReplyDirective)(dialog);
|
|
318
353
|
if (!activeDirective ||
|
|
319
354
|
activeDirective.targetCallId !== deferredReplyReassertion.directive.targetCallId) {
|
|
320
355
|
await persistence_1.DialogPersistence.setDeferredReplyReassertion(dialog.id, undefined, dialog.status);
|
|
@@ -393,18 +428,18 @@ async function resolveEffectivePrompt(dialog, humanPrompt) {
|
|
|
393
428
|
case 'registered_assignment_update':
|
|
394
429
|
case 'new_course_runtime_guide':
|
|
395
430
|
case 'new_course_runtime_reply':
|
|
396
|
-
case '
|
|
431
|
+
case 'new_course_runtime_sideDialog': {
|
|
397
432
|
const runtimeCommon = {
|
|
398
433
|
...common,
|
|
399
434
|
origin: 'runtime',
|
|
400
435
|
...(upNext.skipTaskdoc === undefined ? {} : { skipTaskdoc: upNext.skipTaskdoc }),
|
|
401
436
|
};
|
|
402
437
|
if (upNext.kind === 'registered_assignment_update' ||
|
|
403
|
-
upNext.kind === '
|
|
438
|
+
upNext.kind === 'new_course_runtime_sideDialog') {
|
|
404
439
|
const prompt = {
|
|
405
440
|
...runtimeCommon,
|
|
406
441
|
tellaskReplyDirective: upNext.tellaskReplyDirective,
|
|
407
|
-
|
|
442
|
+
sideDialogReplyTarget: upNext.sideDialogReplyTarget,
|
|
408
443
|
};
|
|
409
444
|
return prompt;
|
|
410
445
|
}
|
|
@@ -433,7 +468,7 @@ async function executeDriveRound(args) {
|
|
|
433
468
|
let interruptedBySignal = false;
|
|
434
469
|
let followUp;
|
|
435
470
|
let driveResult;
|
|
436
|
-
let
|
|
471
|
+
let sideDialogReplyTarget;
|
|
437
472
|
let activeTellaskReplyDirective;
|
|
438
473
|
let activePromptWasReplyToolReminder = false;
|
|
439
474
|
let shouldPauseAfterLocalUserInterjection = false;
|
|
@@ -447,7 +482,7 @@ async function executeDriveRound(args) {
|
|
|
447
482
|
(0, dialog_display_state_1.createActiveRun)(dialog.id);
|
|
448
483
|
activeRunPrimed = true;
|
|
449
484
|
ownsActiveRun = !hadActiveRunBefore;
|
|
450
|
-
// "dead" is irreversible for
|
|
485
|
+
// "dead" is irreversible for sideDialogs. Skip drive if marked dead.
|
|
451
486
|
try {
|
|
452
487
|
const latest = await persistence_1.DialogPersistence.loadDialogLatest(dialog.id, 'running');
|
|
453
488
|
if (dialog.id.selfId !== dialog.id.rootId &&
|
|
@@ -487,14 +522,14 @@ async function executeDriveRound(args) {
|
|
|
487
522
|
});
|
|
488
523
|
}
|
|
489
524
|
// Queued/auto drive (without fresh human input) must not proceed while dialog is
|
|
490
|
-
// suspended by pending Q4H or
|
|
491
|
-
// multiple wake-ups race around the same
|
|
525
|
+
// suspended by pending Q4H or sideDialogs. This prevents duplicate generations when
|
|
526
|
+
// multiple wake-ups race around the same sideDialog completion boundary.
|
|
492
527
|
if (!humanPrompt) {
|
|
493
|
-
if (dialog instanceof dialog_1.
|
|
528
|
+
if (dialog instanceof dialog_1.SideDialog && !dialog.hasUpNext()) {
|
|
494
529
|
try {
|
|
495
|
-
const inspection = await
|
|
530
|
+
const inspection = await inspectNoPromptSideDialogDrive({ dialog, driveOptions });
|
|
496
531
|
if (inspection.shouldReject) {
|
|
497
|
-
log_1.log.error('Rejected unexpected no-prompt
|
|
532
|
+
log_1.log.error('Rejected unexpected no-prompt sideDialog drive request', undefined, {
|
|
498
533
|
dialogId: dialog.id.valueOf(),
|
|
499
534
|
rootId: dialog.id.rootId,
|
|
500
535
|
selfId: dialog.id.selfId,
|
|
@@ -511,7 +546,7 @@ async function executeDriveRound(args) {
|
|
|
511
546
|
}
|
|
512
547
|
}
|
|
513
548
|
catch (err) {
|
|
514
|
-
log_1.log.error('Failed to inspect unexpected no-prompt
|
|
549
|
+
log_1.log.error('Failed to inspect unexpected no-prompt sideDialog drive request', err, {
|
|
515
550
|
dialogId: dialog.id.valueOf(),
|
|
516
551
|
rootId: dialog.id.rootId,
|
|
517
552
|
selfId: dialog.id.selfId,
|
|
@@ -535,19 +570,21 @@ async function executeDriveRound(args) {
|
|
|
535
570
|
// Do not refactor this branch using only `displayState` or only the previous interrupted
|
|
536
571
|
// marker. The correct behavior emerges from combining fresh blocker facts, queued prompt
|
|
537
572
|
// state, and the deferred reply reassertion logic elsewhere.
|
|
538
|
-
const
|
|
573
|
+
const hasEntitledParentRevive = hasParentReviveEntitlement(dialog, driveOptions);
|
|
539
574
|
const suspension = resumeFromInterjectionPause
|
|
540
|
-
? await loadFreshSuspensionStatusFromPersistence(dialog)
|
|
541
|
-
:
|
|
542
|
-
|
|
543
|
-
|
|
575
|
+
? await loadFreshSuspensionStatusFromPersistence(dialog, driveOptions)
|
|
576
|
+
: hasEntitledParentRevive
|
|
577
|
+
? await loadFreshSuspensionStatusFromPersistence(dialog, driveOptions)
|
|
578
|
+
: await dialog.getSuspensionStatus({
|
|
579
|
+
allowPendingSideDialogs: false,
|
|
580
|
+
});
|
|
544
581
|
const queuedPrompt = dialog.peekUpNext();
|
|
545
|
-
const
|
|
546
|
-
if (!suspension.canDrive && !
|
|
582
|
+
const queuedSideDialogPromptCanResume = dialog instanceof dialog_1.SideDialog && queuedPrompt !== undefined;
|
|
583
|
+
if (!suspension.canDrive && !queuedSideDialogPromptCanResume) {
|
|
547
584
|
if (resumeFromInterjectionPause) {
|
|
548
585
|
const restoredState = buildDisplayStateFromSuspensionStatus({
|
|
549
586
|
q4h: suspension.q4h,
|
|
550
|
-
|
|
587
|
+
sideDialogs: suspension.sideDialogs,
|
|
551
588
|
});
|
|
552
589
|
await (0, dialog_display_state_1.setDialogDisplayState)(dialog.id, restoredState);
|
|
553
590
|
await maybeSurfaceDeferredReplyReassertionGuideForBlockedContinue(dialog);
|
|
@@ -555,7 +592,7 @@ async function executeDriveRound(args) {
|
|
|
555
592
|
dialogId: dialog.id.valueOf(),
|
|
556
593
|
restoredState,
|
|
557
594
|
waitingQ4H: suspension.q4h,
|
|
558
|
-
|
|
595
|
+
waitingSideDialogs: suspension.sideDialogs,
|
|
559
596
|
});
|
|
560
597
|
return;
|
|
561
598
|
}
|
|
@@ -568,7 +605,7 @@ async function executeDriveRound(args) {
|
|
|
568
605
|
waitInQue,
|
|
569
606
|
hasQueuedUpNext: dialog.hasUpNext(),
|
|
570
607
|
waitingQ4H: suspension.q4h,
|
|
571
|
-
|
|
608
|
+
waitingSideDialogs: suspension.sideDialogs,
|
|
572
609
|
lastDriveTrigger: lastTrigger
|
|
573
610
|
? {
|
|
574
611
|
action: lastTrigger.action,
|
|
@@ -590,9 +627,9 @@ async function executeDriveRound(args) {
|
|
|
590
627
|
log_1.log.debug('kernel-driver continue after interjection pause passed fresh fact scan and will keep driving', undefined, {
|
|
591
628
|
dialogId: dialog.id.valueOf(),
|
|
592
629
|
waitingQ4H: suspension.q4h,
|
|
593
|
-
|
|
630
|
+
waitingSideDialogs: suspension.sideDialogs,
|
|
594
631
|
hasQueuedUpNext: dialog.hasUpNext(),
|
|
595
|
-
|
|
632
|
+
queuedSideDialogPromptCanResume,
|
|
596
633
|
});
|
|
597
634
|
}
|
|
598
635
|
}
|
|
@@ -685,7 +722,7 @@ async function executeDriveRound(args) {
|
|
|
685
722
|
throw new Error(`kernel-driver upNext invariant violation: expected queued prompt ${effectivePrompt?.msgId ?? 'unknown'} before drive`);
|
|
686
723
|
}
|
|
687
724
|
}
|
|
688
|
-
|
|
725
|
+
sideDialogReplyTarget = effectivePrompt?.sideDialogReplyTarget;
|
|
689
726
|
const replyGuidance = await (0, reply_guidance_1.resolvePromptReplyGuidance)({
|
|
690
727
|
dlg: dialog,
|
|
691
728
|
prompt: effectivePrompt,
|
|
@@ -712,20 +749,20 @@ async function executeDriveRound(args) {
|
|
|
712
749
|
scheduleDrive: args.scheduleDrive,
|
|
713
750
|
driveDialog: args.driveDialog,
|
|
714
751
|
}, effectivePrompt, driveOptions);
|
|
715
|
-
|
|
752
|
+
sideDialogReplyTarget = driveResult.lastAssistantReplyTarget ?? sideDialogReplyTarget;
|
|
716
753
|
interruptedBySignal = (0, dialog_display_state_1.getActiveRunSignal)(dialog.id)?.aborted === true;
|
|
717
754
|
if (!interruptedBySignal) {
|
|
718
755
|
followUp = dialog.takeUpNext();
|
|
719
756
|
}
|
|
720
757
|
let tailError;
|
|
721
758
|
try {
|
|
722
|
-
if (dialog instanceof dialog_1.
|
|
759
|
+
if (dialog instanceof dialog_1.SideDialog &&
|
|
723
760
|
driveResult &&
|
|
724
761
|
!interruptedBySignal &&
|
|
725
762
|
(driveResult.fbrConclusion !== undefined || driveResult.lastAssistantSayingContent !== null)) {
|
|
726
763
|
if (driveResult.fbrConclusion) {
|
|
727
|
-
await (0,
|
|
728
|
-
|
|
764
|
+
await (0, sideDialog_1.supplySideDialogResponseToAssignedAskerIfPendingV2)({
|
|
765
|
+
sideDialog: dialog,
|
|
729
766
|
responseText: driveResult.fbrConclusion.responseText,
|
|
730
767
|
responseGenseq: driveResult.fbrConclusion.responseGenseq,
|
|
731
768
|
scheduleDrive: args.scheduleDrive,
|
|
@@ -739,9 +776,9 @@ async function executeDriveRound(args) {
|
|
|
739
776
|
!Number.isFinite(driveResult.lastAssistantSayingGenseq) ||
|
|
740
777
|
driveResult.lastAssistantSayingGenseq <= driveResult.lastFunctionCallGenseq);
|
|
741
778
|
if (hasInProgressFunctionCall) {
|
|
742
|
-
// Any function call means execution is still in-progress. Only supply when the
|
|
779
|
+
// Any function call means execution is still in-progress. Only supply when the tellaskee
|
|
743
780
|
// has produced a newer assistant saying after the latest function call.
|
|
744
|
-
log_1.log.debug('kernel-driver skip
|
|
781
|
+
log_1.log.debug('kernel-driver skip sideDialog response supply because latest saying is not after function calls', undefined, {
|
|
745
782
|
rootId: dialog.id.rootId,
|
|
746
783
|
selfId: dialog.id.selfId,
|
|
747
784
|
lastAssistantSayingGenseq: driveResult.lastAssistantSayingGenseq,
|
|
@@ -752,28 +789,27 @@ async function executeDriveRound(args) {
|
|
|
752
789
|
const hasFollowUp = followUp !== undefined;
|
|
753
790
|
const suspension = await dialog.getSuspensionStatus();
|
|
754
791
|
if (!suspension.canDrive || hasFollowUp) {
|
|
755
|
-
log_1.log.debug('kernel-driver skip
|
|
792
|
+
log_1.log.debug('kernel-driver skip sideDialog response supply while tellaskee is not finalized', undefined, {
|
|
756
793
|
rootId: dialog.id.rootId,
|
|
757
794
|
selfId: dialog.id.selfId,
|
|
758
795
|
waitingQ4H: suspension.q4h,
|
|
759
|
-
|
|
796
|
+
waitingSideDialogs: suspension.sideDialogs,
|
|
760
797
|
hasFollowUp,
|
|
761
798
|
});
|
|
762
799
|
}
|
|
763
800
|
if (suspension.canDrive && !hasFollowUp) {
|
|
764
801
|
if (!activeTellaskReplyDirective) {
|
|
765
|
-
log_1.log.debug('kernel-driver skip implicit
|
|
802
|
+
log_1.log.debug('kernel-driver skip implicit sideDialog reply because no active tellask reply directive is bound to this drive', undefined, {
|
|
766
803
|
rootId: dialog.id.rootId,
|
|
767
804
|
selfId: dialog.id.selfId,
|
|
768
805
|
});
|
|
769
806
|
}
|
|
770
807
|
else {
|
|
771
|
-
const
|
|
772
|
-
if (!activePromptWasReplyToolReminder &&
|
|
773
|
-
!shouldDirectFallbackAfterAskBackParentRevive) {
|
|
808
|
+
const shouldDirectFallbackAfterParentRevive = hasParentReviveEntitlement(dialog, driveOptions);
|
|
809
|
+
if (!activePromptWasReplyToolReminder && !shouldDirectFallbackAfterParentRevive) {
|
|
774
810
|
const language = (0, work_language_1.getWorkLanguage)();
|
|
775
811
|
followUp =
|
|
776
|
-
|
|
812
|
+
sideDialogReplyTarget === undefined
|
|
777
813
|
? {
|
|
778
814
|
kind: 'runtime_reply_reminder',
|
|
779
815
|
prompt: await buildReplyToolReminderPrompt({
|
|
@@ -788,7 +824,7 @@ async function executeDriveRound(args) {
|
|
|
788
824
|
tellaskReplyDirective: activeTellaskReplyDirective,
|
|
789
825
|
}
|
|
790
826
|
: {
|
|
791
|
-
kind: '
|
|
827
|
+
kind: 'runtime_sideDialog_reply_reminder',
|
|
792
828
|
prompt: await buildReplyToolReminderPrompt({
|
|
793
829
|
dlg: dialog,
|
|
794
830
|
directive: activeTellaskReplyDirective,
|
|
@@ -799,30 +835,30 @@ async function executeDriveRound(args) {
|
|
|
799
835
|
origin: 'runtime',
|
|
800
836
|
userLanguageCode: language,
|
|
801
837
|
tellaskReplyDirective: activeTellaskReplyDirective,
|
|
802
|
-
|
|
838
|
+
sideDialogReplyTarget,
|
|
803
839
|
};
|
|
804
|
-
log_1.log.debug('kernel-driver queued
|
|
840
|
+
log_1.log.debug('kernel-driver queued sideDialog replyTellask reminder after plain reply', undefined, {
|
|
805
841
|
dialogId: dialog.id.valueOf(),
|
|
806
842
|
targetCallId: activeTellaskReplyDirective.targetCallId,
|
|
807
|
-
targetOwnerDialogId:
|
|
808
|
-
|
|
843
|
+
targetOwnerDialogId: sideDialogReplyTarget?.ownerDialogId,
|
|
844
|
+
directFallbackAfterParentRevive: shouldDirectFallbackAfterParentRevive,
|
|
809
845
|
});
|
|
810
846
|
}
|
|
811
847
|
else {
|
|
812
848
|
if (typeof driveResult.lastAssistantSayingGenseq !== 'number' ||
|
|
813
849
|
!Number.isFinite(driveResult.lastAssistantSayingGenseq) ||
|
|
814
850
|
driveResult.lastAssistantSayingGenseq <= 0) {
|
|
815
|
-
throw new Error(`
|
|
851
|
+
throw new Error(`SideDialog response supply invariant violation: missing lastAssistantSayingGenseq for dialog=${dialog.id.valueOf()}`);
|
|
816
852
|
}
|
|
817
853
|
const responseGenseq = Math.floor(driveResult.lastAssistantSayingGenseq);
|
|
818
854
|
const directFallbackCallId = `direct-fallback-${(0, id_1.generateShortId)()}`;
|
|
819
855
|
let supplied = false;
|
|
820
|
-
if (
|
|
821
|
-
supplied = await (0,
|
|
822
|
-
|
|
856
|
+
if (sideDialogReplyTarget) {
|
|
857
|
+
supplied = await (0, sideDialog_1.supplySideDialogResponseToSpecificAskerIfPendingV2)({
|
|
858
|
+
sideDialog: dialog,
|
|
823
859
|
responseText: driveResult.lastAssistantSayingContent,
|
|
824
860
|
responseGenseq,
|
|
825
|
-
target:
|
|
861
|
+
target: sideDialogReplyTarget,
|
|
826
862
|
deliveryMode: 'direct_fallback',
|
|
827
863
|
replyResolution: {
|
|
828
864
|
callId: directFallbackCallId,
|
|
@@ -831,8 +867,8 @@ async function executeDriveRound(args) {
|
|
|
831
867
|
scheduleDrive: args.scheduleDrive,
|
|
832
868
|
});
|
|
833
869
|
if (!supplied) {
|
|
834
|
-
supplied = await (0,
|
|
835
|
-
|
|
870
|
+
supplied = await (0, sideDialog_1.supplySideDialogResponseToAssignedAskerIfPendingV2)({
|
|
871
|
+
sideDialog: dialog,
|
|
836
872
|
responseText: driveResult.lastAssistantSayingContent,
|
|
837
873
|
responseGenseq,
|
|
838
874
|
deliveryMode: 'direct_fallback',
|
|
@@ -845,8 +881,8 @@ async function executeDriveRound(args) {
|
|
|
845
881
|
}
|
|
846
882
|
}
|
|
847
883
|
else {
|
|
848
|
-
supplied = await (0,
|
|
849
|
-
|
|
884
|
+
supplied = await (0, sideDialog_1.supplySideDialogResponseToAssignedAskerIfPendingV2)({
|
|
885
|
+
sideDialog: dialog,
|
|
850
886
|
responseText: driveResult.lastAssistantSayingContent,
|
|
851
887
|
responseGenseq,
|
|
852
888
|
deliveryMode: 'direct_fallback',
|
|
@@ -857,18 +893,18 @@ async function executeDriveRound(args) {
|
|
|
857
893
|
scheduleDrive: args.scheduleDrive,
|
|
858
894
|
});
|
|
859
895
|
}
|
|
860
|
-
if (!supplied &&
|
|
896
|
+
if (!supplied && sideDialogReplyTarget) {
|
|
861
897
|
const diagnostics = await loadPendingDiagnosticsSnapshot({
|
|
862
898
|
rootId: dialog.id.rootId,
|
|
863
|
-
ownerDialogId:
|
|
864
|
-
|
|
899
|
+
ownerDialogId: sideDialogReplyTarget.ownerDialogId,
|
|
900
|
+
expectedSideDialogId: dialog.id.selfId,
|
|
865
901
|
status: dialog.status,
|
|
866
902
|
});
|
|
867
|
-
log_1.log.debug('kernel-driver failed to supply
|
|
903
|
+
log_1.log.debug('kernel-driver failed to supply sideDialog response to specific asker', undefined, {
|
|
868
904
|
calleeId: dialog.id.valueOf(),
|
|
869
|
-
targetOwnerDialogId:
|
|
870
|
-
targetCallType:
|
|
871
|
-
targetCallId:
|
|
905
|
+
targetOwnerDialogId: sideDialogReplyTarget.ownerDialogId,
|
|
906
|
+
targetCallType: sideDialogReplyTarget.callType,
|
|
907
|
+
targetCallId: sideDialogReplyTarget.callId,
|
|
872
908
|
diagnostics,
|
|
873
909
|
});
|
|
874
910
|
}
|
|
@@ -878,7 +914,7 @@ async function executeDriveRound(args) {
|
|
|
878
914
|
}
|
|
879
915
|
}
|
|
880
916
|
}
|
|
881
|
-
if (!(dialog instanceof dialog_1.
|
|
917
|
+
if (!(dialog instanceof dialog_1.SideDialog) &&
|
|
882
918
|
driveResult &&
|
|
883
919
|
!interruptedBySignal &&
|
|
884
920
|
driveResult.lastAssistantSayingContent !== null &&
|
|
@@ -963,9 +999,9 @@ async function executeDriveRound(args) {
|
|
|
963
999
|
case 'registered_assignment_update':
|
|
964
1000
|
case 'new_course_runtime_guide':
|
|
965
1001
|
case 'new_course_runtime_reply':
|
|
966
|
-
case '
|
|
1002
|
+
case 'new_course_runtime_sideDialog':
|
|
967
1003
|
case 'runtime_reply_reminder':
|
|
968
|
-
case '
|
|
1004
|
+
case 'runtime_sideDialog_reply_reminder': {
|
|
969
1005
|
const runtimeCommon = {
|
|
970
1006
|
...common,
|
|
971
1007
|
origin: 'runtime',
|
|
@@ -974,11 +1010,11 @@ async function executeDriveRound(args) {
|
|
|
974
1010
|
: { skipTaskdoc: followUp.skipTaskdoc }),
|
|
975
1011
|
};
|
|
976
1012
|
if (followUp.kind === 'registered_assignment_update' ||
|
|
977
|
-
followUp.kind === '
|
|
1013
|
+
followUp.kind === 'new_course_runtime_sideDialog') {
|
|
978
1014
|
const prompt = {
|
|
979
1015
|
...runtimeCommon,
|
|
980
1016
|
tellaskReplyDirective: followUp.tellaskReplyDirective,
|
|
981
|
-
|
|
1017
|
+
sideDialogReplyTarget: followUp.sideDialogReplyTarget,
|
|
982
1018
|
};
|
|
983
1019
|
return prompt;
|
|
984
1020
|
}
|
|
@@ -5,10 +5,10 @@ exports.validateKernelDriverPolicyInvariants = validateKernelDriverPolicyInvaria
|
|
|
5
5
|
exports.resolveKernelDriverPolicyViolationKind = resolveKernelDriverPolicyViolationKind;
|
|
6
6
|
const dialog_1 = require("../../dialog");
|
|
7
7
|
const fbr_1 = require("./fbr");
|
|
8
|
-
function
|
|
9
|
-
if (!(dlg instanceof dialog_1.
|
|
8
|
+
function isToollessFbrSelfSideDialog(dlg) {
|
|
9
|
+
if (!(dlg instanceof dialog_1.SideDialog))
|
|
10
10
|
return false;
|
|
11
|
-
return dlg.
|
|
11
|
+
return dlg.assignmentFromAsker.callName === 'freshBootsReasoning';
|
|
12
12
|
}
|
|
13
13
|
function mergeModelParams(base, overlay) {
|
|
14
14
|
if (!base && !overlay)
|
|
@@ -26,7 +26,7 @@ function mergeModelParams(base, overlay) {
|
|
|
26
26
|
}
|
|
27
27
|
function buildKernelDriverPolicy(args) {
|
|
28
28
|
const { dlg, agent, systemPrompt, agentTools, language } = args;
|
|
29
|
-
if (!
|
|
29
|
+
if (!isToollessFbrSelfSideDialog(dlg)) {
|
|
30
30
|
return {
|
|
31
31
|
mode: 'default',
|
|
32
32
|
effectiveAgent: agent,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { driveDialogStream, emitSayingEventsBridge as emitSayingEvents,
|
|
1
|
+
export { driveDialogStream, emitSayingEventsBridge as emitSayingEvents, supplyResponseToAskerDialog, } from './engine';
|
|
2
2
|
export { runBackendDriver } from './loop';
|
|
3
3
|
export { restoreDialogHierarchy } from './restore';
|
|
4
4
|
export type { KernelDriverDriveArgs, KernelDriverDriveResult, KernelDriverEmitSayingArgs, KernelDriverEmitSayingResult, KernelDriverRunBackendResult, KernelDriverSupplyResponseArgs, KernelDriverSupplyResponseResult, } from './types';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.restoreDialogHierarchy = exports.runBackendDriver = exports.
|
|
3
|
+
exports.restoreDialogHierarchy = exports.runBackendDriver = exports.supplyResponseToAskerDialog = exports.emitSayingEvents = exports.driveDialogStream = void 0;
|
|
4
4
|
var engine_1 = require("./engine");
|
|
5
5
|
Object.defineProperty(exports, "driveDialogStream", { enumerable: true, get: function () { return engine_1.driveDialogStream; } });
|
|
6
6
|
Object.defineProperty(exports, "emitSayingEvents", { enumerable: true, get: function () { return engine_1.emitSayingEventsBridge; } });
|
|
7
|
-
Object.defineProperty(exports, "
|
|
7
|
+
Object.defineProperty(exports, "supplyResponseToAskerDialog", { enumerable: true, get: function () { return engine_1.supplyResponseToAskerDialog; } });
|
|
8
8
|
var loop_1 = require("./loop");
|
|
9
9
|
Object.defineProperty(exports, "runBackendDriver", { enumerable: true, get: function () { return loop_1.runBackendDriver; } });
|
|
10
10
|
var restore_1 = require("./restore");
|