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
package/webapp/dist/index.html
CHANGED
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
padding: 20px;
|
|
53
53
|
}
|
|
54
54
|
</style>
|
|
55
|
-
<script type="module" crossorigin src="/assets/index-
|
|
56
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
55
|
+
<script type="module" crossorigin src="/assets/index-tinPEZoH.js"></script>
|
|
56
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BGdI3lWA.css">
|
|
57
57
|
</head>
|
|
58
58
|
<body>
|
|
59
59
|
<div id="app" role="application" aria-label="Dominds WebUI" data-cy="app-container">
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
# Issue: `Global dialog event broadcaster missing`
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
在没有初始化全局 dialog event broadcaster 的运行环境里,发布 `new_q4h_asked` / `q4h_answered` / `subdialog_created_evt` / `dlg_touched_evt` 会直接抛错:
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
Global dialog event broadcaster missing: cannot publish new_q4h_asked for dialog=<id>
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
这不只是噪音日志。对于 `askHuman` / Q4H 链路,这个异常会被上层当作“Q4H 注册失败”处理,导致:
|
|
12
|
-
|
|
13
|
-
- Q4H 状态文件其实已经写入
|
|
14
|
-
- 但 runtime 仍然走失败分支
|
|
15
|
-
- 追加 `stream_error_evt`
|
|
16
|
-
- 向当前对话注入失败型 tellask result
|
|
17
|
-
- 造成“持久化成功、广播缺失、业务语义却被当作失败”的错位
|
|
18
|
-
|
|
19
|
-
## Observed In
|
|
20
|
-
|
|
21
|
-
- `tests/recovery/reply-special-after-restart.ts`
|
|
22
|
-
- 其它不启动完整 websocket server、但会触发 Q4H runtime 的脚本型 / test 型运行环境
|
|
23
|
-
|
|
24
|
-
## Current Call Chain
|
|
25
|
-
|
|
26
|
-
1. `main/llm/kernel-driver/tellask-special.ts`
|
|
27
|
-
`executeTellaskCall()` 在 Q4H 分支先调用 `DialogPersistence.appendQuestion4HumanState()` 落盘
|
|
28
|
-
2. 同一分支随后调用 `postDialogEvent(dlg, { type: 'new_q4h_asked', ... })`
|
|
29
|
-
3. `main/evt-registry.ts`
|
|
30
|
-
`dispatchGloballyIfNeeded()` 发现 `new_q4h_asked` 属于 global-only event
|
|
31
|
-
4. 若 `globalDialogEventBroadcaster === null`,则直接 `throw`
|
|
32
|
-
5. 异常被 `tellask-special.ts` 的 Q4H `try/catch` 捕获
|
|
33
|
-
6. 上层误判为“Q4H register invariant violation”,转入失败补偿路径
|
|
34
|
-
|
|
35
|
-
## Correct Contract
|
|
36
|
-
|
|
37
|
-
这里应明确:**global dialog event broadcaster 不是可选增强,而是 runtime 必要基础设施**。
|
|
38
|
-
|
|
39
|
-
也就是说:
|
|
40
|
-
|
|
41
|
-
- 任何支持 dialog runtime 的运行环境,在进入对话驱动 / Q4H / 子对话逻辑前,都必须先完成 broadcaster bootstrap
|
|
42
|
-
- WebUI server 只是其中一种 runtime;将来其它 runtime 也必须在位
|
|
43
|
-
- 测试运行环境同样应按 runtime bootstrap 的方式安装 broadcaster,而不是在业务 helper 里零散补丁
|
|
44
|
-
|
|
45
|
-
因此,这个问题的根因不是“event layer 应该 graceful degrade”,而是**存在未完成 broadcaster bootstrap 的 runtime**,并且这个缺陷直到业务路径中途才暴露。
|
|
46
|
-
|
|
47
|
-
## Why It Happened
|
|
48
|
-
|
|
49
|
-
此前全局 broadcaster 只在 `main/server/websocket-handler.ts` 的 websocket server 初始化阶段通过 `setGlobalDialogEventBroadcaster(...)` 安装。
|
|
50
|
-
|
|
51
|
-
但脚本 / 测试 / recovery 运行环境也会直接触发同一批 global-only event。于是形成了:
|
|
52
|
-
|
|
53
|
-
- dialog-scoped event registry 已可用
|
|
54
|
-
- global broadcaster 尚未安装
|
|
55
|
-
- `postDialogEvent()` 处理 global-only event 时立刻抛错
|
|
56
|
-
- 上层业务把该异常误判成 Q4H 注册失败 / 业务失败
|
|
57
|
-
|
|
58
|
-
## Impact
|
|
59
|
-
|
|
60
|
-
### User-visible / behavior impact
|
|
61
|
-
|
|
62
|
-
- `askHuman` 在未完成 runtime bootstrap 的环境下会被错误地当作失败处理
|
|
63
|
-
- 当前对话会收到失败型 tellask result,而不是保持正常 pending Q4H 语义
|
|
64
|
-
|
|
65
|
-
### Persistence / state consistency impact
|
|
66
|
-
|
|
67
|
-
- Q4H state 已经写入,但 runtime 业务语义被标成失败
|
|
68
|
-
- 形成“状态已存在、当前轮回答却说失败”的不一致
|
|
69
|
-
|
|
70
|
-
### Test / diagnostics impact
|
|
71
|
-
|
|
72
|
-
- 用例可能通过,但日志出现误导性错误
|
|
73
|
-
- 排障时很难第一眼区分“runtime 缺少 broadcaster bootstrap”还是“Q4H 真的注册失败”
|
|
74
|
-
|
|
75
|
-
## Repro
|
|
76
|
-
|
|
77
|
-
1. 在不启动 websocket server、且未安装 recording broadcaster 的脚本环境里创建 dialog
|
|
78
|
-
2. 触发 `askHuman`
|
|
79
|
-
3. 观察日志出现 `Global dialog event broadcaster missing`
|
|
80
|
-
4. 观察上层继续记录 `Q4H register invariant violation`
|
|
81
|
-
|
|
82
|
-
## Root Cause
|
|
83
|
-
|
|
84
|
-
根因不是 Q4H 注册本身,而是 runtime contract 与 bootstrap 现实不一致:
|
|
85
|
-
|
|
86
|
-
- 契约上:broadcaster 是 mandatory infra
|
|
87
|
-
- 现实里:只有 websocket server 显式安装,其它 runtime 没有统一 bootstrap
|
|
88
|
-
|
|
89
|
-
于是“基础设施未初始化”在业务路径中被表象成“Q4H 注册失败”。
|
|
90
|
-
|
|
91
|
-
## Resolution Direction
|
|
92
|
-
|
|
93
|
-
按下面原则修:
|
|
94
|
-
|
|
95
|
-
1. 保持 event layer 的强约束:global-only event 没有 broadcaster 时仍然应 loud fail
|
|
96
|
-
2. 修复点应放在 runtime bootstrap,而不是在 Q4H/子对话业务链路里做“广播失败 best-effort”
|
|
97
|
-
3. 所有 runtime 入口都必须在业务逻辑前安装 broadcaster
|
|
98
|
-
- WebUI server:安装 websocket fanout broadcaster
|
|
99
|
-
- tests / script runtimes:安装 recording broadcaster,可抓取广播内容,也可在无断言需求时忽略
|
|
100
|
-
4. 测试不得再通过业务 helper 临时塞 `() => {}` 绕过问题;应通过统一 runtime bootstrap 安装 recorder
|
|
101
|
-
5. 若 future runtime 漏装 broadcaster,应在 bootstrap 阶段或运行环境初始化阶段尽早暴露,而不是等到 `askHuman` 中途再炸
|
|
102
|
-
|
|
103
|
-
## Rejected Direction
|
|
104
|
-
|
|
105
|
-
以下方向不再采用:
|
|
106
|
-
|
|
107
|
-
- 让 `dispatchGloballyIfNeeded()` graceful degrade
|
|
108
|
-
- 在 `askHuman` 链路里把 broadcast 当成 best-effort
|
|
109
|
-
- 允许测试/business helper 就地注入 noop broadcaster 掩盖 bootstrap 缺口
|
|
110
|
-
|
|
111
|
-
这些做法都会继续模糊“mandatory infra”契约,让问题从 runtime 初始化阶段滑落到业务中途。
|
|
112
|
-
|
|
113
|
-
## Applied Fix Direction
|
|
114
|
-
|
|
115
|
-
当前约定下,正确修法是:
|
|
116
|
-
|
|
117
|
-
- 新增统一 broadcaster bootstrap API
|
|
118
|
-
- WebUI server 改为通过统一 bootstrap API 安装 websocket broadcaster
|
|
119
|
-
- rtws tests 改为通过统一 runner 安装 recording broadcaster
|
|
120
|
-
- kernel-driver helpers 不再偷偷安装 noop broadcaster,而是断言 runtime 已完成 bootstrap
|
|
121
|
-
|
|
122
|
-
## Related Files
|
|
123
|
-
|
|
124
|
-
- `main/bootstrap/global-dialog-event-broadcaster.ts`
|
|
125
|
-
- `main/evt-registry.ts`
|
|
126
|
-
- `main/server/websocket-handler.ts`
|
|
127
|
-
- `tests/rtws-script-runner.ts`
|
|
128
|
-
- `tests/kernel-driver/helpers.ts`
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { DialogID } from '../../dialog';
|
|
2
|
-
import { DialogPersistence } from '../../persistence';
|
|
3
|
-
export type TakenSubdialogResponse = Awaited<ReturnType<typeof DialogPersistence.takeSubdialogResponses>>[number];
|
|
4
|
-
export declare function takeSubdialogResponses(dialogId: DialogID): Promise<TakenSubdialogResponse[]>;
|
|
5
|
-
export declare function commitTakenSubdialogResponses(dialogId: DialogID): Promise<void>;
|
|
6
|
-
export declare function rollbackTakenSubdialogResponses(dialogId: DialogID): Promise<void>;
|
|
7
|
-
export declare function withSubdialogTxnLock<T>(dialogId: DialogID, fn: () => Promise<T>): Promise<T>;
|
|
8
|
-
export declare function withSubdialogTxnLocks<T>(dialogIds: readonly DialogID[], fn: () => Promise<T>): Promise<T>;
|