dominds 1.18.2 → 1.19.3
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/cli/team-definition-audit.d.ts +2 -1
- package/dist/cli/team-definition-audit.js +20 -8
- package/dist/cli/validate-team-def.js +3 -3
- 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 +16 -4
- package/dist/docs/mcp-support.zh.md +10 -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 +16 -5
- package/dist/docs/team_mgmt-toolset.zh.md +13 -4
- 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/docs/tool-availability-protocol.md +4 -2
- 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 +2 -0
- package/dist/mcp/config.js +23 -2
- package/dist/mcp/supervisor.d.ts +9 -1
- package/dist/mcp/supervisor.js +300 -17
- package/dist/minds/builtin/pangu/persona.en.md +4 -4
- package/dist/minds/load.js +11 -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 +2 -1
- package/dist/minds/system-prompt.js +70 -62
- 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/builtins.js +2 -0
- package/dist/tools/ctrl.js +5 -5
- package/dist/tools/env.js +10 -58
- package/dist/tools/manual/render.js +4 -0
- package/dist/tools/mcp.d.ts +1 -0
- package/dist/tools/mcp.js +55 -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/mcp_admin/en/errors.md +0 -14
- package/dist/tools/prompts/mcp_admin/en/index.md +5 -3
- package/dist/tools/prompts/mcp_admin/en/principles.md +11 -5
- package/dist/tools/prompts/mcp_admin/en/scenarios.md +19 -3
- package/dist/tools/prompts/mcp_admin/en/tools.md +85 -21
- package/dist/tools/prompts/mcp_admin/zh/errors.md +0 -14
- package/dist/tools/prompts/mcp_admin/zh/index.md +5 -3
- package/dist/tools/prompts/mcp_admin/zh/principles.md +11 -5
- package/dist/tools/prompts/mcp_admin/zh/scenarios.md +19 -3
- package/dist/tools/prompts/mcp_admin/zh/tools.md +85 -21
- package/dist/tools/prompts/os/en/errors.md +0 -28
- package/dist/tools/prompts/os/en/scenarios.md +1 -1
- package/dist/tools/prompts/os/en/tools.md +8 -17
- package/dist/tools/prompts/os/zh/errors.md +0 -28
- package/dist/tools/prompts/os/zh/scenarios.md +1 -1
- package/dist/tools/prompts/os/zh/tools.md +8 -17
- 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/registry.d.ts +5 -0
- package/dist/tools/team_mgmt-manual.js +2 -2
- package/dist/tools/team_mgmt-mcp-manual.d.ts +2 -2
- package/dist/tools/team_mgmt-mcp-manual.js +67 -16
- package/dist/tools/team_mgmt.js +8 -8
- package/dist/utils/taskdoc.js +12 -12
- package/package.json +3 -3
- package/webapp/dist/assets/{_basePickBy-BPJaiZdW.js → _basePickBy-Dnh413xT.js} +3 -3
- package/webapp/dist/assets/{_basePickBy-BPJaiZdW.js.map → _basePickBy-Dnh413xT.js.map} +1 -1
- package/webapp/dist/assets/{_baseUniq-BEetT15i.js → _baseUniq-DWzYqpN_.js} +2 -2
- package/webapp/dist/assets/{_baseUniq-BEetT15i.js.map → _baseUniq-DWzYqpN_.js.map} +1 -1
- package/webapp/dist/assets/{arc-Dm7Zf36f.js → arc-vfBkNCOx.js} +2 -2
- package/webapp/dist/assets/{arc-Dm7Zf36f.js.map → arc-vfBkNCOx.js.map} +1 -1
- package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-BpTPtkuo.js → architectureDiagram-VXUJARFQ-DiUEBXOa.js} +7 -7
- package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-BpTPtkuo.js.map → architectureDiagram-VXUJARFQ-DiUEBXOa.js.map} +1 -1
- package/webapp/dist/assets/{blockDiagram-VD42YOAC-C8fLN0iu.js → blockDiagram-VD42YOAC-BqK1KM2m.js} +7 -7
- package/webapp/dist/assets/{blockDiagram-VD42YOAC-C8fLN0iu.js.map → blockDiagram-VD42YOAC-BqK1KM2m.js.map} +1 -1
- package/webapp/dist/assets/{c4Diagram-YG6GDRKO-BpPr62CH.js → c4Diagram-YG6GDRKO-ClHNu1Uo.js} +3 -3
- package/webapp/dist/assets/{c4Diagram-YG6GDRKO-BpPr62CH.js.map → c4Diagram-YG6GDRKO-ClHNu1Uo.js.map} +1 -1
- package/webapp/dist/assets/{channel-EMYoPjW3.js → channel-BbWLVc8W.js} +2 -2
- package/webapp/dist/assets/{channel-EMYoPjW3.js.map → channel-BbWLVc8W.js.map} +1 -1
- package/webapp/dist/assets/{chunk-4BX2VUAB-CefNtjWG.js → chunk-4BX2VUAB-CItdSmZH.js} +2 -2
- package/webapp/dist/assets/{chunk-4BX2VUAB-CefNtjWG.js.map → chunk-4BX2VUAB-CItdSmZH.js.map} +1 -1
- package/webapp/dist/assets/{chunk-55IACEB6-C_X7T43V.js → chunk-55IACEB6-DSCX9WCf.js} +2 -2
- package/webapp/dist/assets/{chunk-55IACEB6-C_X7T43V.js.map → chunk-55IACEB6-DSCX9WCf.js.map} +1 -1
- package/webapp/dist/assets/{chunk-B4BG7PRW-BRe3_2oA.js → chunk-B4BG7PRW-5CRXFeD9.js} +5 -5
- package/webapp/dist/assets/{chunk-B4BG7PRW-BRe3_2oA.js.map → chunk-B4BG7PRW-5CRXFeD9.js.map} +1 -1
- package/webapp/dist/assets/{chunk-DI55MBZ5-CbvrsI_w.js → chunk-DI55MBZ5-CRMf6XZu.js} +4 -4
- package/webapp/dist/assets/{chunk-DI55MBZ5-CbvrsI_w.js.map → chunk-DI55MBZ5-CRMf6XZu.js.map} +1 -1
- package/webapp/dist/assets/{chunk-FMBD7UC4-ORmtkrtS.js → chunk-FMBD7UC4-BJ1vT2se.js} +2 -2
- package/webapp/dist/assets/{chunk-FMBD7UC4-ORmtkrtS.js.map → chunk-FMBD7UC4-BJ1vT2se.js.map} +1 -1
- package/webapp/dist/assets/{chunk-QN33PNHL-LTAOVhWu.js → chunk-QN33PNHL-CGyezTSD.js} +2 -2
- package/webapp/dist/assets/{chunk-QN33PNHL-LTAOVhWu.js.map → chunk-QN33PNHL-CGyezTSD.js.map} +1 -1
- package/webapp/dist/assets/{chunk-QZHKN3VN-ZoUM_4u5.js → chunk-QZHKN3VN-9xs15j8C.js} +2 -2
- package/webapp/dist/assets/{chunk-QZHKN3VN-ZoUM_4u5.js.map → chunk-QZHKN3VN-9xs15j8C.js.map} +1 -1
- package/webapp/dist/assets/{chunk-TZMSLE5B-Gao4qrq7.js → chunk-TZMSLE5B-D2g6Tj7Z.js} +2 -2
- package/webapp/dist/assets/{chunk-TZMSLE5B-Gao4qrq7.js.map → chunk-TZMSLE5B-D2g6Tj7Z.js.map} +1 -1
- package/webapp/dist/assets/{classDiagram-2ON5EDUG-uha1vIGN.js → classDiagram-2ON5EDUG-BQFGGJNm.js} +6 -6
- package/webapp/dist/assets/{classDiagram-2ON5EDUG-uha1vIGN.js.map → classDiagram-2ON5EDUG-BQFGGJNm.js.map} +1 -1
- package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-uha1vIGN.js → classDiagram-v2-WZHVMYZB-BQFGGJNm.js} +6 -6
- package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-uha1vIGN.js.map → classDiagram-v2-WZHVMYZB-BQFGGJNm.js.map} +1 -1
- package/webapp/dist/assets/{clone-_9Ayb1Gp.js → clone-DOfPd4cz.js} +2 -2
- package/webapp/dist/assets/{clone-_9Ayb1Gp.js.map → clone-DOfPd4cz.js.map} +1 -1
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-C8wDw3NY.js → cose-bilkent-S5V4N54A-BYN-vqm8.js} +2 -2
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-C8wDw3NY.js.map → cose-bilkent-S5V4N54A-BYN-vqm8.js.map} +1 -1
- package/webapp/dist/assets/{dagre-6UL2VRFP-BUSeNot0.js → dagre-6UL2VRFP-ClEaFABE.js} +7 -7
- package/webapp/dist/assets/{dagre-6UL2VRFP-BUSeNot0.js.map → dagre-6UL2VRFP-ClEaFABE.js.map} +1 -1
- package/webapp/dist/assets/{diagram-PSM6KHXK-CMZAksVC.js → diagram-PSM6KHXK-CM4hLE_0.js} +8 -8
- package/webapp/dist/assets/{diagram-PSM6KHXK-CMZAksVC.js.map → diagram-PSM6KHXK-CM4hLE_0.js.map} +1 -1
- package/webapp/dist/assets/{diagram-QEK2KX5R-BQKoRtwy.js → diagram-QEK2KX5R-BZjGFX-2.js} +7 -7
- package/webapp/dist/assets/{diagram-QEK2KX5R-BQKoRtwy.js.map → diagram-QEK2KX5R-BZjGFX-2.js.map} +1 -1
- package/webapp/dist/assets/{diagram-S2PKOQOG-DjMG97kd.js → diagram-S2PKOQOG-Bvw01OOG.js} +7 -7
- package/webapp/dist/assets/{diagram-S2PKOQOG-DjMG97kd.js.map → diagram-S2PKOQOG-Bvw01OOG.js.map} +1 -1
- package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BujwA137.js → erDiagram-Q2GNP2WA-ctHu5zQL.js} +5 -5
- package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BujwA137.js.map → erDiagram-Q2GNP2WA-ctHu5zQL.js.map} +1 -1
- package/webapp/dist/assets/{flowDiagram-NV44I4VS-DgwPjg4y.js → flowDiagram-NV44I4VS-m7ofIhri.js} +6 -6
- package/webapp/dist/assets/{flowDiagram-NV44I4VS-DgwPjg4y.js.map → flowDiagram-NV44I4VS-m7ofIhri.js.map} +1 -1
- package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Db2ykf3E.js → ganttDiagram-JELNMOA3-D9wS5Veb.js} +3 -3
- package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Db2ykf3E.js.map → ganttDiagram-JELNMOA3-D9wS5Veb.js.map} +1 -1
- package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-D_gSifkv.js → gitGraphDiagram-V2S2FVAM-B86qqJx7.js} +8 -8
- package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-D_gSifkv.js.map → gitGraphDiagram-V2S2FVAM-B86qqJx7.js.map} +1 -1
- package/webapp/dist/assets/{graph-BHjCU5xP.js → graph-u844GGQC.js} +3 -3
- package/webapp/dist/assets/{graph-BHjCU5xP.js.map → graph-u844GGQC.js.map} +1 -1
- package/webapp/dist/assets/{index-xvYYeHuy.css → index-BGdI3lWA.css} +17 -9
- package/webapp/dist/assets/{index-DLajsIDJ.js → index-tinPEZoH.js} +1211 -995
- package/webapp/dist/assets/index-tinPEZoH.js.map +1 -0
- package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BDba5pKs.js → infoDiagram-HS3SLOUP-DwRPUctP.js} +6 -6
- package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BDba5pKs.js.map → infoDiagram-HS3SLOUP-DwRPUctP.js.map} +1 -1
- package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-CmJAbmlm.js → journeyDiagram-XKPGCS4Q-B91ZO-ec.js} +5 -5
- package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-CmJAbmlm.js.map → journeyDiagram-XKPGCS4Q-B91ZO-ec.js.map} +1 -1
- package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-DxQeBTDk.js → kanban-definition-3W4ZIXB7-CoogrZ07.js} +3 -3
- package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-DxQeBTDk.js.map → kanban-definition-3W4ZIXB7-CoogrZ07.js.map} +1 -1
- package/webapp/dist/assets/{layout-DteV_yE8.js → layout-BrzQmqFJ.js} +5 -5
- package/webapp/dist/assets/{layout-DteV_yE8.js.map → layout-BrzQmqFJ.js.map} +1 -1
- package/webapp/dist/assets/{linear-zItbPrND.js → linear-C6H7K9Zy.js} +2 -2
- package/webapp/dist/assets/{linear-zItbPrND.js.map → linear-C6H7K9Zy.js.map} +1 -1
- package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BJXI7UqO.js → mindmap-definition-VGOIOE7T-UDHZQkNZ.js} +4 -4
- package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BJXI7UqO.js.map → mindmap-definition-VGOIOE7T-UDHZQkNZ.js.map} +1 -1
- package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BpM-aH2p.js → pieDiagram-ADFJNKIX-M81uyQ1J.js} +8 -8
- package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BpM-aH2p.js.map → pieDiagram-ADFJNKIX-M81uyQ1J.js.map} +1 -1
- package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-NXdIpA15.js → quadrantDiagram-AYHSOK5B-ClzIh9Gb.js} +3 -3
- package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-NXdIpA15.js.map → quadrantDiagram-AYHSOK5B-ClzIh9Gb.js.map} +1 -1
- package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-D1AICAA0.js → requirementDiagram-UZGBJVZJ-DLK3A-pn.js} +4 -4
- package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-D1AICAA0.js.map → requirementDiagram-UZGBJVZJ-DLK3A-pn.js.map} +1 -1
- package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-WiReDPfo.js → sankeyDiagram-TZEHDZUN-CYqju8I1.js} +2 -2
- package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-WiReDPfo.js.map → sankeyDiagram-TZEHDZUN-CYqju8I1.js.map} +1 -1
- package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Cw76oP8t.js → sequenceDiagram-WL72ISMW-2guv6eOd.js} +4 -4
- package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Cw76oP8t.js.map → sequenceDiagram-WL72ISMW-2guv6eOd.js.map} +1 -1
- package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-QjCeRczs.js → stateDiagram-FKZM4ZOC-iujqSp0X.js} +9 -9
- package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-QjCeRczs.js.map → stateDiagram-FKZM4ZOC-iujqSp0X.js.map} +1 -1
- package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-IClqxQ4s.js → stateDiagram-v2-4FDKWEC3-BxzY81ky.js} +5 -5
- package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-IClqxQ4s.js.map → stateDiagram-v2-4FDKWEC3-BxzY81ky.js.map} +1 -1
- package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BfyfTY7m.js → timeline-definition-IT6M3QCI-DjCFSC8d.js} +3 -3
- package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BfyfTY7m.js.map → timeline-definition-IT6M3QCI-DjCFSC8d.js.map} +1 -1
- package/webapp/dist/assets/{treemap-GDKQZRPO-C5MiL6--.js → treemap-GDKQZRPO-iaBzDWCP.js} +5 -5
- package/webapp/dist/assets/{treemap-GDKQZRPO-C5MiL6--.js.map → treemap-GDKQZRPO-iaBzDWCP.js.map} +1 -1
- package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-ybaJrSry.js → xychartDiagram-PRI3JC2R-R6Jl1c89.js} +3 -3
- package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-ybaJrSry.js.map → xychartDiagram-PRI3JC2R-R6Jl1c89.js.map} +1 -1
- 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/index-DLajsIDJ.js.map +0 -1
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Design constraints:
|
|
9
9
|
* - `displayState` is a UI/diagnostic projection, not a business source of truth.
|
|
10
10
|
* - Primary control flow must rely on underlying facts (active runs, stop requests,
|
|
11
|
-
* pending Q4H, pending
|
|
11
|
+
* pending Q4H, pending sideDialogs, queued prompts, persisted status, explicit
|
|
12
12
|
* interruption/death markers).
|
|
13
13
|
* - The projection is persisted to latest.yaml (`DialogLatestFile.displayState`) so it survives
|
|
14
14
|
* restarts and multi-tab views can converge quickly.
|
|
@@ -28,10 +28,10 @@ exports.hasActiveRun = hasActiveRun;
|
|
|
28
28
|
exports.getActiveRunSignal = getActiveRunSignal;
|
|
29
29
|
exports.createActiveRun = createActiveRun;
|
|
30
30
|
exports.clearActiveRun = clearActiveRun;
|
|
31
|
-
exports.
|
|
32
|
-
exports.
|
|
33
|
-
exports.
|
|
34
|
-
exports.
|
|
31
|
+
exports.clearMainDialogQuarantiningIfIdle = clearMainDialogQuarantiningIfIdle;
|
|
32
|
+
exports.markMainDialogQuarantining = markMainDialogQuarantining;
|
|
33
|
+
exports.clearMainDialogQuarantining = clearMainDialogQuarantining;
|
|
34
|
+
exports.forceStopActiveRunsForMainDialog = forceStopActiveRunsForMainDialog;
|
|
35
35
|
exports.getStopRequestedReason = getStopRequestedReason;
|
|
36
36
|
exports.loadDialogExecutionMarker = loadDialogExecutionMarker;
|
|
37
37
|
exports.setDialogExecutionMarker = setDialogExecutionMarker;
|
|
@@ -55,7 +55,7 @@ const interjection_pause_stop_1 = require("./runtime/interjection-pause-stop");
|
|
|
55
55
|
const log = (0, log_1.createLogger)('dialog-display-state');
|
|
56
56
|
let broadcastToClients;
|
|
57
57
|
const activeRunsByDialogKey = new Map();
|
|
58
|
-
const
|
|
58
|
+
const quarantiningMainDialogIds = new Set();
|
|
59
59
|
function setDisplayStateBroadcaster(fn) {
|
|
60
60
|
broadcastToClients = fn;
|
|
61
61
|
}
|
|
@@ -113,7 +113,7 @@ async function getRunControlCountsSnapshot() {
|
|
|
113
113
|
try {
|
|
114
114
|
const dialogKey = dialogId.key();
|
|
115
115
|
seenDialogKeys.add(dialogKey);
|
|
116
|
-
if (
|
|
116
|
+
if (quarantiningMainDialogIds.has(dialogId.rootId)) {
|
|
117
117
|
continue;
|
|
118
118
|
}
|
|
119
119
|
// listAllDialogIds() is intentionally a candidate scan. Per-dialog latest reads below may
|
|
@@ -139,8 +139,8 @@ async function getRunControlCountsSnapshot() {
|
|
|
139
139
|
}
|
|
140
140
|
else {
|
|
141
141
|
const q4h = await persistence_1.DialogPersistence.loadQuestions4HumanState(dialogId, 'running');
|
|
142
|
-
const
|
|
143
|
-
if (q4h.length === 0 &&
|
|
142
|
+
const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialogId, 'running');
|
|
143
|
+
if (q4h.length === 0 && pendingSideDialogs.length === 0) {
|
|
144
144
|
resumable++;
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -161,7 +161,7 @@ async function getRunControlCountsSnapshot() {
|
|
|
161
161
|
continue;
|
|
162
162
|
}
|
|
163
163
|
const [rootId] = dialogKey.includes('#') ? dialogKey.split('#') : [dialogKey];
|
|
164
|
-
if (!rootId ||
|
|
164
|
+
if (!rootId || quarantiningMainDialogIds.has(rootId)) {
|
|
165
165
|
continue;
|
|
166
166
|
}
|
|
167
167
|
if (!seenDialogKeys.has(dialogKey)) {
|
|
@@ -202,10 +202,10 @@ function createActiveRun(dialogId) {
|
|
|
202
202
|
function clearActiveRun(dialogId, options) {
|
|
203
203
|
const deleted = activeRunsByDialogKey.delete(dialogId.key());
|
|
204
204
|
if (!deleted) {
|
|
205
|
-
|
|
205
|
+
clearQuarantiningMainDialogIfIdle(dialogId.rootId);
|
|
206
206
|
return;
|
|
207
207
|
}
|
|
208
|
-
|
|
208
|
+
clearQuarantiningMainDialogIfIdle(dialogId.rootId);
|
|
209
209
|
if (dialogId.selfId === dialogId.rootId && options?.notifyBackendLoop !== false) {
|
|
210
210
|
dialog_global_registry_1.globalDialogRegistry.notifyActiveRunCleared(dialogId.rootId, {
|
|
211
211
|
source: 'dialog_display_state_active_run_clear',
|
|
@@ -214,30 +214,30 @@ function clearActiveRun(dialogId, options) {
|
|
|
214
214
|
}
|
|
215
215
|
syncRunControlCountsAfterActiveRunChange('clear_active_run', dialogId);
|
|
216
216
|
}
|
|
217
|
-
function
|
|
217
|
+
function clearQuarantiningMainDialogIfIdle(rootId) {
|
|
218
218
|
for (const key of activeRunsByDialogKey.keys()) {
|
|
219
219
|
const [candidateRootId] = key.includes('#') ? key.split('#') : [key];
|
|
220
220
|
if (candidateRootId === rootId) {
|
|
221
221
|
return;
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
|
-
|
|
224
|
+
quarantiningMainDialogIds.delete(rootId);
|
|
225
225
|
}
|
|
226
|
-
function
|
|
227
|
-
|
|
226
|
+
function clearMainDialogQuarantiningIfIdle(mainDialogId) {
|
|
227
|
+
clearQuarantiningMainDialogIfIdle(mainDialogId.selfId);
|
|
228
228
|
}
|
|
229
|
-
function
|
|
230
|
-
|
|
229
|
+
function markMainDialogQuarantining(mainDialogId) {
|
|
230
|
+
quarantiningMainDialogIds.add(mainDialogId.selfId);
|
|
231
231
|
}
|
|
232
|
-
function
|
|
233
|
-
|
|
232
|
+
function clearMainDialogQuarantining(mainDialogId) {
|
|
233
|
+
quarantiningMainDialogIds.delete(mainDialogId.selfId);
|
|
234
234
|
}
|
|
235
|
-
async function
|
|
235
|
+
async function forceStopActiveRunsForMainDialog(mainDialogId) {
|
|
236
236
|
for (const key of Array.from(activeRunsByDialogKey.keys())) {
|
|
237
237
|
const [rootId, selfId] = key.includes('#') ? key.split('#') : [key, key];
|
|
238
238
|
if (!rootId || !selfId)
|
|
239
239
|
continue;
|
|
240
|
-
if (rootId !==
|
|
240
|
+
if (rootId !== mainDialogId.selfId)
|
|
241
241
|
continue;
|
|
242
242
|
const dialogId = new dialog_1.DialogID(selfId, rootId);
|
|
243
243
|
const run = activeRunsByDialogKey.get(key);
|
|
@@ -252,9 +252,9 @@ async function forceStopActiveRunsForRootDialog(rootDialogId) {
|
|
|
252
252
|
});
|
|
253
253
|
}
|
|
254
254
|
catch (error) {
|
|
255
|
-
log.warn('Failed to persist stop-requested state while forcing
|
|
255
|
+
log.warn('Failed to persist stop-requested state while forcing main dialog stop', error, {
|
|
256
256
|
dialogId: dialogId.valueOf(),
|
|
257
|
-
|
|
257
|
+
mainDialogId: mainDialogId.valueOf(),
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
260
|
}
|
|
@@ -262,9 +262,9 @@ async function forceStopActiveRunsForRootDialog(rootDialogId) {
|
|
|
262
262
|
run.abortController.abort();
|
|
263
263
|
}
|
|
264
264
|
catch (error) {
|
|
265
|
-
log.warn('Failed to abort active run while forcing
|
|
265
|
+
log.warn('Failed to abort active run while forcing main dialog stop', error, {
|
|
266
266
|
dialogId: dialogId.valueOf(),
|
|
267
|
-
|
|
267
|
+
mainDialogId: mainDialogId.valueOf(),
|
|
268
268
|
});
|
|
269
269
|
}
|
|
270
270
|
}
|
|
@@ -278,7 +278,7 @@ async function loadDialogExecutionMarker(dialogId, status = 'running') {
|
|
|
278
278
|
}
|
|
279
279
|
async function setDialogExecutionMarker(dialogId, executionMarker) {
|
|
280
280
|
if (executionMarker?.kind === 'dead' && dialogId.selfId === dialogId.rootId) {
|
|
281
|
-
log.warn('Rejecting dead executionMarker for
|
|
281
|
+
log.warn('Rejecting dead executionMarker for main dialog (main dialogs must not be dead)', undefined, {
|
|
282
282
|
dialogId: dialogId.valueOf(),
|
|
283
283
|
});
|
|
284
284
|
return;
|
|
@@ -315,7 +315,7 @@ async function clearDialogInterruptedExecutionMarker(dialogId) {
|
|
|
315
315
|
}
|
|
316
316
|
async function setDialogDisplayState(dialogId, displayState) {
|
|
317
317
|
if (displayState.kind === 'dead' && dialogId.selfId === dialogId.rootId) {
|
|
318
|
-
log.warn('Rejecting dead displayState for
|
|
318
|
+
log.warn('Rejecting dead displayState for main dialog (main dialogs must not be dead)', undefined, {
|
|
319
319
|
dialogId: dialogId.valueOf(),
|
|
320
320
|
});
|
|
321
321
|
return;
|
|
@@ -425,15 +425,15 @@ async function computeIdleDisplayState(dlg) {
|
|
|
425
425
|
};
|
|
426
426
|
}
|
|
427
427
|
const hasQ4H = await dlg.hasPendingQ4H();
|
|
428
|
-
const
|
|
429
|
-
if (hasQ4H &&
|
|
430
|
-
return { kind: 'blocked', reason: { kind: '
|
|
428
|
+
const hasSideDialogs = await dlg.hasPendingSideDialogs();
|
|
429
|
+
if (hasQ4H && hasSideDialogs) {
|
|
430
|
+
return { kind: 'blocked', reason: { kind: 'needs_human_input_and_sideDialogs' } };
|
|
431
431
|
}
|
|
432
432
|
if (hasQ4H) {
|
|
433
433
|
return { kind: 'blocked', reason: { kind: 'needs_human_input' } };
|
|
434
434
|
}
|
|
435
|
-
if (
|
|
436
|
-
return { kind: 'blocked', reason: { kind: '
|
|
435
|
+
if (hasSideDialogs) {
|
|
436
|
+
return { kind: 'blocked', reason: { kind: 'waiting_for_sideDialogs' } };
|
|
437
437
|
}
|
|
438
438
|
return { kind: 'idle_waiting_user' };
|
|
439
439
|
}
|
|
@@ -464,17 +464,17 @@ async function computeIdleDisplayStateFromPersistence(dialogId) {
|
|
|
464
464
|
};
|
|
465
465
|
}
|
|
466
466
|
const q4h = await persistence_1.DialogPersistence.loadQuestions4HumanState(dialogId, 'running');
|
|
467
|
-
const
|
|
467
|
+
const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialogId, 'running');
|
|
468
468
|
const hasQ4H = q4h.length > 0;
|
|
469
|
-
const
|
|
470
|
-
if (hasQ4H &&
|
|
471
|
-
return { kind: 'blocked', reason: { kind: '
|
|
469
|
+
const hasSideDialogs = pendingSideDialogs.length > 0;
|
|
470
|
+
if (hasQ4H && hasSideDialogs) {
|
|
471
|
+
return { kind: 'blocked', reason: { kind: 'needs_human_input_and_sideDialogs' } };
|
|
472
472
|
}
|
|
473
473
|
if (hasQ4H) {
|
|
474
474
|
return { kind: 'blocked', reason: { kind: 'needs_human_input' } };
|
|
475
475
|
}
|
|
476
|
-
if (
|
|
477
|
-
return { kind: 'blocked', reason: { kind: '
|
|
476
|
+
if (hasSideDialogs) {
|
|
477
|
+
return { kind: 'blocked', reason: { kind: 'waiting_for_sideDialogs' } };
|
|
478
478
|
}
|
|
479
479
|
return { kind: 'idle_waiting_user' };
|
|
480
480
|
}
|
|
@@ -501,7 +501,7 @@ async function refreshRunControlProjectionFromPersistenceFacts(dialogId, trigger
|
|
|
501
501
|
// This is the one place where the projection intentionally preserves the paused-interjection
|
|
502
502
|
// stopped state ahead of the current blocker facts. That is not a bug: after a user
|
|
503
503
|
// interjection we want the UI to keep showing "original task paused; click Continue" even if
|
|
504
|
-
// the underlying dialog is still waiting on Q4H/
|
|
504
|
+
// the underlying dialog is still waiting on Q4H/sideDialogs.
|
|
505
505
|
//
|
|
506
506
|
// The true source-of-truth decision about what Continue should do next lives in
|
|
507
507
|
// `flow.ts`'s resume path, which performs a fresh fact scan at resume time and then either:
|
|
@@ -524,17 +524,17 @@ async function refreshRunControlProjectionFromPersistenceFacts(dialogId, trigger
|
|
|
524
524
|
};
|
|
525
525
|
}
|
|
526
526
|
const q4h = await persistence_1.DialogPersistence.loadQuestions4HumanState(dialogId, 'running');
|
|
527
|
-
const
|
|
527
|
+
const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialogId, 'running');
|
|
528
528
|
const hasQ4H = q4h.length > 0;
|
|
529
|
-
const
|
|
530
|
-
if (hasQ4H &&
|
|
531
|
-
return { kind: 'blocked', reason: { kind: '
|
|
529
|
+
const hasSideDialogs = pendingSideDialogs.length > 0;
|
|
530
|
+
if (hasQ4H && hasSideDialogs) {
|
|
531
|
+
return { kind: 'blocked', reason: { kind: 'needs_human_input_and_sideDialogs' } };
|
|
532
532
|
}
|
|
533
533
|
if (hasQ4H) {
|
|
534
534
|
return { kind: 'blocked', reason: { kind: 'needs_human_input' } };
|
|
535
535
|
}
|
|
536
|
-
if (
|
|
537
|
-
return { kind: 'blocked', reason: { kind: '
|
|
536
|
+
if (hasSideDialogs) {
|
|
537
|
+
return { kind: 'blocked', reason: { kind: 'waiting_for_sideDialogs' } };
|
|
538
538
|
}
|
|
539
539
|
if (latest.executionMarker?.kind === 'interrupted') {
|
|
540
540
|
return {
|
package/dist/dialog-factory.d.ts
CHANGED
|
@@ -4,34 +4,34 @@
|
|
|
4
4
|
* Factory for creating Dialog instances with proper type hierarchy.
|
|
5
5
|
* Provides a single point of dialog creation to ensure consistent initialization.
|
|
6
6
|
*/
|
|
7
|
-
import { Dialog, DialogID, DialogInitParams, DialogStore,
|
|
7
|
+
import { Dialog, DialogID, DialogInitParams, DialogStore, MainDialog, SideDialog } from './dialog';
|
|
8
8
|
/**
|
|
9
9
|
* Factory for creating Dialog instances.
|
|
10
|
-
* Abstracts the creation of
|
|
10
|
+
* Abstracts the creation of MainDialog and SideDialog with proper type hierarchy.
|
|
11
11
|
*/
|
|
12
12
|
export declare class DialogFactory {
|
|
13
13
|
/**
|
|
14
|
-
* Create a new
|
|
14
|
+
* Create a new MainDialog instance.
|
|
15
15
|
*/
|
|
16
|
-
static
|
|
16
|
+
static createMainDialog(dlgStore: DialogStore, taskDocPath: string, agentId: string, id?: DialogID, initialState?: DialogInitParams['initialState']): MainDialog;
|
|
17
17
|
/**
|
|
18
|
-
* Create a new
|
|
18
|
+
* Create a new SideDialog instance.
|
|
19
19
|
*/
|
|
20
|
-
static
|
|
20
|
+
static createSideDialog(askerDialog: Dialog, taskDocPath: string, targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
|
|
21
21
|
callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
|
|
22
22
|
originMemberId: string;
|
|
23
|
-
|
|
23
|
+
askerDialogId: string;
|
|
24
24
|
callId: string;
|
|
25
25
|
sessionSlug?: string;
|
|
26
26
|
collectiveTargets?: string[];
|
|
27
27
|
effectiveFbrEffort?: number;
|
|
28
|
-
}, initialState?: DialogInitParams['initialState']):
|
|
28
|
+
}, initialState?: DialogInitParams['initialState']): SideDialog;
|
|
29
29
|
/**
|
|
30
|
-
* Check if a dialog is a
|
|
30
|
+
* Check if a dialog is a MainDialog.
|
|
31
31
|
*/
|
|
32
|
-
static
|
|
32
|
+
static isMainDialog(dialog: Dialog): dialog is MainDialog;
|
|
33
33
|
/**
|
|
34
|
-
* Check if a dialog is a
|
|
34
|
+
* Check if a dialog is a SideDialog.
|
|
35
35
|
*/
|
|
36
|
-
static
|
|
36
|
+
static isSideDialog(dialog: Dialog): dialog is SideDialog;
|
|
37
37
|
}
|
package/dist/dialog-factory.js
CHANGED
|
@@ -12,52 +12,55 @@ const dialog_global_registry_1 = require("./dialog-global-registry");
|
|
|
12
12
|
const id_1 = require("./utils/id");
|
|
13
13
|
/**
|
|
14
14
|
* Factory for creating Dialog instances.
|
|
15
|
-
* Abstracts the creation of
|
|
15
|
+
* Abstracts the creation of MainDialog and SideDialog with proper type hierarchy.
|
|
16
16
|
*/
|
|
17
17
|
class DialogFactory {
|
|
18
18
|
/**
|
|
19
|
-
* Create a new
|
|
19
|
+
* Create a new MainDialog instance.
|
|
20
20
|
*/
|
|
21
|
-
static
|
|
22
|
-
const
|
|
23
|
-
dialog_global_registry_1.globalDialogRegistry.register(
|
|
24
|
-
return
|
|
21
|
+
static createMainDialog(dlgStore, taskDocPath, agentId, id, initialState) {
|
|
22
|
+
const mainDialog = new dialog_1.MainDialog(dlgStore, taskDocPath, id, agentId, initialState);
|
|
23
|
+
dialog_global_registry_1.globalDialogRegistry.register(mainDialog);
|
|
24
|
+
return mainDialog;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Create a new
|
|
27
|
+
* Create a new SideDialog instance.
|
|
28
28
|
*/
|
|
29
|
-
static
|
|
29
|
+
static createSideDialog(askerDialog, taskDocPath, targetAgentId, mentionList, tellaskContent, options, initialState) {
|
|
30
30
|
const generatedId = (0, id_1.generateDialogID)();
|
|
31
|
-
const
|
|
32
|
-
?
|
|
33
|
-
:
|
|
34
|
-
?
|
|
31
|
+
const mainDialog = askerDialog instanceof dialog_1.MainDialog
|
|
32
|
+
? askerDialog
|
|
33
|
+
: askerDialog instanceof dialog_1.SideDialog
|
|
34
|
+
? askerDialog.mainDialog
|
|
35
35
|
: (() => {
|
|
36
|
-
throw new Error(`
|
|
36
|
+
throw new Error(`createSideDialog invariant violation: unsupported asker type (${askerDialog.constructor.name})`);
|
|
37
37
|
})();
|
|
38
|
-
const
|
|
39
|
-
return new dialog_1.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
const sideDialogId = new dialog_1.DialogID(generatedId, mainDialog.id.rootId);
|
|
39
|
+
return new dialog_1.SideDialog(askerDialog.dlgStore, mainDialog, taskDocPath, sideDialogId, targetAgentId, (0, dialog_1.buildSideDialogAskerStack)({
|
|
40
|
+
askerDialogId: options.askerDialogId,
|
|
41
|
+
assignment: {
|
|
42
|
+
callName: options.callName,
|
|
43
|
+
mentionList,
|
|
44
|
+
tellaskContent,
|
|
45
|
+
originMemberId: options.originMemberId,
|
|
46
|
+
askerDialogId: options.askerDialogId,
|
|
47
|
+
callId: options.callId,
|
|
48
|
+
collectiveTargets: options.collectiveTargets,
|
|
49
|
+
effectiveFbrEffort: options.effectiveFbrEffort,
|
|
50
|
+
},
|
|
51
|
+
}), options.sessionSlug, initialState);
|
|
49
52
|
}
|
|
50
53
|
/**
|
|
51
|
-
* Check if a dialog is a
|
|
54
|
+
* Check if a dialog is a MainDialog.
|
|
52
55
|
*/
|
|
53
|
-
static
|
|
54
|
-
return dialog instanceof dialog_1.
|
|
56
|
+
static isMainDialog(dialog) {
|
|
57
|
+
return dialog instanceof dialog_1.MainDialog;
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
|
-
* Check if a dialog is a
|
|
60
|
+
* Check if a dialog is a SideDialog.
|
|
58
61
|
*/
|
|
59
|
-
static
|
|
60
|
-
return dialog instanceof dialog_1.
|
|
62
|
+
static isSideDialog(dialog) {
|
|
63
|
+
return dialog instanceof dialog_1.SideDialog;
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
exports.DialogFactory = DialogFactory;
|
package/dist/dialog-fork.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ type ForkDialogAction = Readonly<{
|
|
|
5
5
|
}> | Readonly<{
|
|
6
6
|
kind: 'restore_pending';
|
|
7
7
|
pendingQ4H: boolean;
|
|
8
|
-
|
|
8
|
+
pendingSideDialogs: boolean;
|
|
9
9
|
}> | Readonly<{
|
|
10
10
|
kind: 'auto_continue';
|
|
11
11
|
}>;
|
|
@@ -16,7 +16,7 @@ export type ForkDialogTreeResult = Readonly<{
|
|
|
16
16
|
taskDocPath: string;
|
|
17
17
|
action: ForkDialogAction;
|
|
18
18
|
}>;
|
|
19
|
-
export declare function
|
|
19
|
+
export declare function forkMainDialogTreeAtGeneration(args: {
|
|
20
20
|
sourceRootId: string;
|
|
21
21
|
sourceStatus: DialogStatusKind;
|
|
22
22
|
course: number;
|