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,9 +20,9 @@ reminder snapshot.
|
|
|
20
20
|
- transcript / tool / tellask history records
|
|
21
21
|
- current reminder snapshot
|
|
22
22
|
- Explicitly dropped:
|
|
23
|
-
- pending
|
|
23
|
+
- pending sideDialogs
|
|
24
24
|
- questions4human
|
|
25
|
-
-
|
|
25
|
+
- sideDialog registry / sideDialog responses
|
|
26
26
|
- other runtime-only waiting / blocking / orchestration state
|
|
27
27
|
|
|
28
28
|
This is an intentional semantic downgrade relative to a full runtime snapshot: a new dialog inherits
|
|
@@ -153,12 +153,12 @@ Request contract:
|
|
|
153
153
|
|
|
154
154
|
Runtime behavior:
|
|
155
155
|
|
|
156
|
-
- On
|
|
156
|
+
- On main dialog creation, selected scripts are replayed into `course-1`.
|
|
157
157
|
- If top-level frontmatter contains `reminders`, the current reminder snapshot is restored first.
|
|
158
158
|
- Replayed events are tagged with `sourceTag: priming_script`.
|
|
159
159
|
- Replay is injected into `dialog.msgs` for downstream model context.
|
|
160
160
|
- `showInUi=false` only affects rendering; persistence/context remain unchanged.
|
|
161
|
-
- `pending/q4h/
|
|
161
|
+
- `pending/q4h/sideDialog-*` runtime state is not restored.
|
|
162
162
|
|
|
163
163
|
## Save Startup Script (WebUI)
|
|
164
164
|
|
|
@@ -173,7 +173,7 @@ Export rules:
|
|
|
173
173
|
- Export the current reminder snapshot into top-level frontmatter.
|
|
174
174
|
- Empty course export is rejected.
|
|
175
175
|
- Frontmatter stores source dialog metadata (`rootId/selfId/course/status`).
|
|
176
|
-
- `pending/q4h/
|
|
176
|
+
- `pending/q4h/sideDialog-*` runtime state is not exported; this is an explicit semantic downgrade in
|
|
177
177
|
the current priming design.
|
|
178
178
|
|
|
179
179
|
## Recent Usage Storage
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
- transcript / tool / tellask 等历史 record
|
|
20
20
|
- 当前 reminder 快照
|
|
21
21
|
- 会明确丢弃:
|
|
22
|
-
- pending
|
|
22
|
+
- pending sideDialogs
|
|
23
23
|
- questions4human
|
|
24
|
-
-
|
|
24
|
+
- sideDialog registry / sideDialog responses
|
|
25
25
|
- 其它依赖运行中协程、阻塞关系、等待关系的 runtime state
|
|
26
26
|
|
|
27
27
|
这意味着把某个对话“保存为启动脚本”时,语义上相对完整运行时状态是有降级的:新对话会继承历史和 reminder,但不会继承“仍在等待中的工作流状态”。
|
|
@@ -148,12 +148,12 @@ Darwin ...
|
|
|
148
148
|
|
|
149
149
|
运行时行为:
|
|
150
150
|
|
|
151
|
-
- 创建
|
|
151
|
+
- 创建 main dialog 后,按 `scriptRefs` 回放脚本。
|
|
152
152
|
- 若脚本顶层 frontmatter 含 `reminders`,会先恢复当前 reminder 快照。
|
|
153
153
|
- 回放事件写入 `course-1`,并统一标记 `sourceTag: priming_script`。
|
|
154
154
|
- 同步注入 `dialog.msgs`,确保后续 LLM 上下文可见。
|
|
155
155
|
- `showInUi=false` 时仅隐藏展示,不影响持久化与上下文。
|
|
156
|
-
- `pending/q4h/
|
|
156
|
+
- `pending/q4h/sideDialog-*` 等 runtime state 不会被恢复。
|
|
157
157
|
|
|
158
158
|
## 保存启动脚本(WebUI)
|
|
159
159
|
|
|
@@ -168,7 +168,7 @@ Darwin ...
|
|
|
168
168
|
- 同时导出“当前 reminder 快照”到顶层 frontmatter。
|
|
169
169
|
- 空历史禁止导出。
|
|
170
170
|
- frontmatter 记录来源对话(rootId/selfId/course/status)。
|
|
171
|
-
- `pending/q4h/
|
|
171
|
+
- `pending/q4h/sideDialog-*` 等 runtime state 不导出;这是当前设计下的显式语义降级。
|
|
172
172
|
|
|
173
173
|
## recent 使用记录
|
|
174
174
|
|
|
@@ -107,7 +107,7 @@ The kernel is the Dominds host runtime: dialog driving, tool calling, persistenc
|
|
|
107
107
|
An app is a distributable capability package, typically a **Node.js project (with `package.json`)**, that may provide:
|
|
108
108
|
|
|
109
109
|
- Tools (tool/toolset) callable by the kernel (or other apps via the kernel).
|
|
110
|
-
- Teammates (agents) that can
|
|
110
|
+
- Teammates (agents) that can become Dialog Responders, receive Tellasks, or act as “bridge” members.
|
|
111
111
|
- `.minds/**` assets describing and composing team, tool integrations (e.g. MCP), environment requirements, etc.
|
|
112
112
|
|
|
113
113
|
> Note: An app may _also_ be a Python (uv) project (with `pyproject.toml`) to expose CLIs/wrappers.
|
|
@@ -106,7 +106,7 @@ Kernel 是 Dominds 的宿主运行时:负责对话驱动、工具调用、持
|
|
|
106
106
|
App 是一个可分发/可安装的能力包,通常是一个 **Node.js 项目(含 `package.json`)**,并提供:
|
|
107
107
|
|
|
108
108
|
- 工具(tool / toolset):供 Kernel(或其它 app)在对话中调用。
|
|
109
|
-
- 智能体队友(teammates
|
|
109
|
+
- 智能体队友(teammates):可担任对话主理人、被诉请,或作为“接头人/桥接器”。
|
|
110
110
|
- `.minds/**` 资产:用来描述/装配团队、工具接入(如 MCP 配置)、环境变量需求说明等。
|
|
111
111
|
|
|
112
112
|
> 备注:App **可以同时**是一个 Python(uv)项目(含 `pyproject.toml`),用于提供命令行入口/封装脚本。
|
package/dist/docs/cli-usage.md
CHANGED
|
@@ -208,7 +208,7 @@ Each dialog directory typically contains:
|
|
|
208
208
|
- `dialog.yaml` - Dialog metadata
|
|
209
209
|
- `latest.yaml` - Current turn + lastModified tracking
|
|
210
210
|
- `course-001.jsonl` (and more) - Streamed message log
|
|
211
|
-
- `
|
|
211
|
+
- `sideDialogs/` - Nested sideDialogs
|
|
212
212
|
|
|
213
213
|
## Error Handling
|
|
214
214
|
|
package/dist/docs/design.md
CHANGED
|
@@ -330,24 +330,24 @@ Agent: [Clean mental state + Taskdoc only] + Specific sub-problem
|
|
|
330
330
|
|
|
331
331
|
## Architectural Patterns
|
|
332
332
|
|
|
333
|
-
### Dialog
|
|
333
|
+
### Dialog Tree
|
|
334
334
|
|
|
335
335
|
```
|
|
336
336
|
|
|
337
|
-
Main Dialog
|
|
337
|
+
Main Dialog
|
|
338
338
|
├── Taskdoc Reference → tasks/feature-auth.tsk/ (rtws Taskdoc package)
|
|
339
339
|
├── Reminders (Working Memory)
|
|
340
340
|
├── Dialog Messages (Ephemeral)
|
|
341
|
-
└──
|
|
341
|
+
└── SideDialogs (Tree-Structured, Stored Flat Under Main Dialog)
|
|
342
342
|
├── Specialized Agent A
|
|
343
343
|
│ ├── Taskdoc Reference → tasks/feature-auth.tsk/ (Same Taskdoc package)
|
|
344
|
-
│ ├──
|
|
344
|
+
│ ├── Asker Call Context
|
|
345
345
|
│ ├── Local Reminders
|
|
346
346
|
│ └── Local Dialog Messages
|
|
347
|
-
│ └──
|
|
347
|
+
│ └── Nested SideDialogs (Further Nesting Possible)
|
|
348
348
|
└── Specialized Agent B
|
|
349
349
|
├── Taskdoc Reference → tasks/feature-auth.tsk/ (Same Taskdoc package)
|
|
350
|
-
├──
|
|
350
|
+
├── Asker Call Context
|
|
351
351
|
├── Local Reminders
|
|
352
352
|
└── Local Dialog Messages
|
|
353
353
|
|
|
@@ -358,9 +358,9 @@ Main Dialog (Root Dialog)
|
|
|
358
358
|
- All dialogs reference the same rtws Taskdoc (a `*.tsk/` Taskdoc package, e.g. `tasks/feature-auth.tsk/`)
|
|
359
359
|
- Multiple dialog trees can reference the same Taskdoc for collaborative work
|
|
360
360
|
- Taskdocs persist beyond individual conversations and survive team changes
|
|
361
|
-
-
|
|
362
|
-
- All
|
|
363
|
-
- Each
|
|
361
|
+
- SideDialogs can be tree-structured with unlimited nesting depth
|
|
362
|
+
- All sideDialog state is stored flat under the main dialog's `sideDialogs/` directory
|
|
363
|
+
- Each sideDialog maintains its own working memory while referencing the same Taskdoc
|
|
364
364
|
|
|
365
365
|
### Memory Layers
|
|
366
366
|
|
|
@@ -372,7 +372,7 @@ Main Dialog (Root Dialog)
|
|
|
372
372
|
- Taskdocs persist throughout the entire product lifecycle, spanning multiple conversations and team changes
|
|
373
373
|
- Can link to other product documentation and evolve as project requirements change
|
|
374
374
|
2. **Reminders**: Semi-persistent, dialog-scoped, survives conversation cleanup
|
|
375
|
-
3. **
|
|
375
|
+
3. **Asker Call Context**: Inherited context for sideDialogs
|
|
376
376
|
4. **Dialog Messages**: Ephemeral, subject to cleanup for mental clarity
|
|
377
377
|
|
|
378
378
|
#### rtws-Persistent Memory (DevOps Lifecycle)
|
|
@@ -398,9 +398,9 @@ Main Dialog (Root Dialog)
|
|
|
398
398
|
|
|
399
399
|
### Information Flow
|
|
400
400
|
|
|
401
|
-
- **
|
|
402
|
-
- **
|
|
403
|
-
- **Lateral**: Coordination through shared Taskdocs and
|
|
401
|
+
- **Tellasker-bound**: SideDialogs communicate results and escalations to tellaskers
|
|
402
|
+
- **Side-bound**: Tellaskers provide context and objectives to sideDialogs
|
|
403
|
+
- **Lateral**: Coordination through shared Taskdocs and tellasker mediation
|
|
404
404
|
- **Temporal**: Reminders and Taskdocs provide continuity across time
|
|
405
405
|
|
|
406
406
|
---
|
|
@@ -417,7 +417,7 @@ For detailed implementation specifications, including core tools, technical arch
|
|
|
417
417
|
- **Hierarchical Dialog Architecture**: Tree-structured dialogs with flat storage and autonomous management
|
|
418
418
|
- **Memory Layers**: Dialog-scoped and rtws-persistent memory with autonomous evolution
|
|
419
419
|
|
|
420
|
-
The implementation emphasizes autonomous agent operation, enabling agents to independently manage their cognitive state, create and manage
|
|
420
|
+
The implementation emphasizes autonomous agent operation, enabling agents to independently manage their cognitive state, create and manage sideDialogs, and coordinate with minimal human oversight.
|
|
421
421
|
|
|
422
422
|
---
|
|
423
423
|
|
package/dist/docs/design.zh.md
CHANGED
|
@@ -332,23 +332,23 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
|
|
|
332
332
|
|
|
333
333
|
## 架构模式
|
|
334
334
|
|
|
335
|
-
###
|
|
335
|
+
### 对话树结构
|
|
336
336
|
|
|
337
337
|
```
|
|
338
|
-
|
|
338
|
+
主线对话
|
|
339
339
|
├── 差遣牒引用 → tasks/feature-auth.tsk/(rtws 任务包)
|
|
340
340
|
├── 提醒项(工作记忆)
|
|
341
341
|
├── 聊天消息(临时)
|
|
342
|
-
└──
|
|
342
|
+
└── 支线对话(树结构,扁平存储在主线对话下)
|
|
343
343
|
├── 专业智能体 A
|
|
344
344
|
│ ├── 差遣牒引用 → tasks/feature-auth.tsk/(相同的任务包)
|
|
345
|
-
│ ├──
|
|
345
|
+
│ ├── 诉请者上下文
|
|
346
346
|
│ ├── 本地提醒项
|
|
347
347
|
│ └── 本地聊天消息
|
|
348
|
-
│ └──
|
|
348
|
+
│ └── 嵌套支线对话(可进一步嵌套)
|
|
349
349
|
└── 专业智能体 B
|
|
350
350
|
├── 差遣牒引用 → tasks/feature-auth.tsk/(相同的任务包)
|
|
351
|
-
├──
|
|
351
|
+
├── 诉请者上下文
|
|
352
352
|
├── 本地提醒项
|
|
353
353
|
└── 本地聊天消息
|
|
354
354
|
```
|
|
@@ -358,9 +358,9 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
|
|
|
358
358
|
- 所有对话引用相同的 rtws 差遣牒(一个 `*.tsk/` 任务包,例如 `tasks/feature-auth.tsk/`)
|
|
359
359
|
- 多个对话树可以引用相同的差遣牒进行协作工作
|
|
360
360
|
- 差遣牒超越单个对话持续存在并经历团队变化
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
-
|
|
361
|
+
- 支线对话可以是具有无限嵌套深度的树结构
|
|
362
|
+
- 所有支线对话状态扁平存储在主线对话的 `sideDialogs/` 目录下
|
|
363
|
+
- 每个支线对话在引用相同差遣牒的同时维护自己的工作记忆
|
|
364
364
|
|
|
365
365
|
### 记忆层
|
|
366
366
|
|
|
@@ -372,7 +372,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
|
|
|
372
372
|
- 差遣牒在整个产品生命周期中持续存在,跨越多个对话和团队变化
|
|
373
373
|
- 可以链接到其他产品文档并随项目要求演变
|
|
374
374
|
2. **提醒项**:半持久化、对话范围,在对话清理中存活
|
|
375
|
-
3.
|
|
375
|
+
3. **诉请者上下文**:支线对话继承的上下文
|
|
376
376
|
4. **聊天消息**:临时,受清理以保持心理清晰
|
|
377
377
|
|
|
378
378
|
#### rtws 持久化记忆(DevOps 生命周期)
|
|
@@ -398,9 +398,9 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
|
|
|
398
398
|
|
|
399
399
|
### 信息流
|
|
400
400
|
|
|
401
|
-
-
|
|
402
|
-
-
|
|
403
|
-
-
|
|
401
|
+
- **面向诉请者**:支线对话向诉请者传达结果和升级
|
|
402
|
+
- **面向支线**:诉请者向支线对话提供上下文和目标
|
|
403
|
+
- **横向**:通过共享差遣牒和诉请者调解进行协调
|
|
404
404
|
- **时间性**:提醒项和差遣牒提供跨时间的连续性
|
|
405
405
|
|
|
406
406
|
---
|
|
@@ -417,7 +417,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
|
|
|
417
417
|
- **层次对话架构**:具有扁平存储和自主管理的树结构对话
|
|
418
418
|
- **记忆层**:具有自主演进的对话范围和 rtws 持久化记忆
|
|
419
419
|
|
|
420
|
-
|
|
420
|
+
该实现强调自主智能体操作,使智能体能够独立管理其认知状态、创建和管理支线对话,并在最少的人工监督下进行协调。
|
|
421
421
|
|
|
422
422
|
---
|
|
423
423
|
|
|
@@ -47,7 +47,7 @@ The implementation follows this architecture.
|
|
|
47
47
|
|
|
48
48
|
### Design Principles
|
|
49
49
|
|
|
50
|
-
- **Flat
|
|
50
|
+
- **Flat SideDialog Storage**: All sideDialogs are stored flat under the main dialog's `sideDialogs/` directory, regardless of nesting depth
|
|
51
51
|
- **Append-Only Streams**: Message streams are append-only for audit trails and replay capability
|
|
52
52
|
- **Atomic Operations**: All persistence operations are atomic to prevent corruption
|
|
53
53
|
- **Human-Readable Formats**: Storage uses YAML and JSONL for transparency and debugging
|
|
@@ -160,42 +160,42 @@ These paths are enforced by the memory tools (see `main/tools/mem.ts`) and loade
|
|
|
160
160
|
**DialogID Schema**: The system uses a `self+root` ID schema implemented in the `DialogID` class:
|
|
161
161
|
|
|
162
162
|
- **selfDlgId**: The unique identifier for this specific dialog instance
|
|
163
|
-
- **rootDlgId**: The identifier for the
|
|
163
|
+
- **rootDlgId**: The identifier for the main dialog in the hierarchy (defaults to selfDlgId for main dialogs)
|
|
164
164
|
- **Serialization**: When `rootDlgId` differs from `selfDlgId`, the full ID is formatted as `rootDlgId#selfDlgId`; otherwise, it's just `selfDlgId`
|
|
165
165
|
|
|
166
|
-
This schema enables efficient management of
|
|
166
|
+
This schema enables efficient management of sideDialog relationships while maintaining unique identification for each dialog instance.
|
|
167
167
|
|
|
168
168
|
### Design Rationale
|
|
169
169
|
|
|
170
170
|
The `self+root` ID schema was implemented to address several challenges in dialog management:
|
|
171
171
|
|
|
172
|
-
1. **Hierarchical Relationship Tracking**: Provides clear lineage information for each dialog, making it easy to trace
|
|
173
|
-
2. **Efficient Storage Organization**: Allows for flat storage of
|
|
174
|
-
3. **Unique Identification**: Ensures each dialog instance has a unique identifier, even when multiple
|
|
172
|
+
1. **Hierarchical Relationship Tracking**: Provides clear lineage information for each dialog, making it easy to trace sideDialogs back to their main dialog
|
|
173
|
+
2. **Efficient Storage Organization**: Allows for flat storage of sideDialogs while preserving relationship information
|
|
174
|
+
3. **Unique Identification**: Ensures each dialog instance has a unique identifier, even when multiple sideDialogs exist
|
|
175
175
|
4. **Simplified Persistence**: Enables straightforward serialization and deserialization of dialog relationships
|
|
176
176
|
5. **Improved Debugging**: Provides clear identification in logs and debugging information
|
|
177
|
-
6. **Scalability**: Supports deep
|
|
177
|
+
6. **Scalability**: Supports deep sideDialog hierarchies without complex storage structures
|
|
178
178
|
|
|
179
179
|
This design balances the need for clear hierarchical relationships with efficient storage and retrieval operations.
|
|
180
180
|
|
|
181
181
|
### Active Dialog Structure
|
|
182
182
|
|
|
183
183
|
```
|
|
184
|
-
.dialogs/run/<
|
|
184
|
+
.dialogs/run/<mainDialogId>/
|
|
185
185
|
├── dialog.yaml # Dialog metadata with strong typing
|
|
186
186
|
├── latest.yaml # Current course and lastModified tracking
|
|
187
187
|
├── reminders.json # Persistent reminders
|
|
188
188
|
├── <course>.jsonl # Streamed messages for each course
|
|
189
189
|
├── <course>.yaml # Course metadata
|
|
190
190
|
├── artifacts/ # Binary artifacts (e.g. MCP tool output images; referenced by func_result_msg.contentItems)
|
|
191
|
-
└──
|
|
192
|
-
├── <subDialogId1>/ # First-level
|
|
193
|
-
│ ├── dialog.yaml #
|
|
194
|
-
│ ├── latest.yaml #
|
|
195
|
-
│ ├── reminders.json #
|
|
196
|
-
│ ├── <course>.jsonl #
|
|
197
|
-
│ └── <course>.yaml #
|
|
198
|
-
└── <subDialogId2>/ # Another
|
|
191
|
+
└── sideDialogs/ # Flat sideDialog storage
|
|
192
|
+
├── <subDialogId1>/ # First-level sideDialog
|
|
193
|
+
│ ├── dialog.yaml # SideDialog metadata
|
|
194
|
+
│ ├── latest.yaml # SideDialog current state
|
|
195
|
+
│ ├── reminders.json # SideDialog reminders
|
|
196
|
+
│ ├── <course>.jsonl # SideDialog events
|
|
197
|
+
│ └── <course>.yaml # SideDialog course metadata
|
|
198
|
+
└── <subDialogId2>/ # Another sideDialog
|
|
199
199
|
├── dialog.yaml
|
|
200
200
|
├── latest.yaml
|
|
201
201
|
├── reminders.json
|
|
@@ -212,9 +212,9 @@ This design balances the need for clear hierarchical relationships with efficien
|
|
|
212
212
|
|
|
213
213
|
In this structure:
|
|
214
214
|
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
215
|
+
- Main dialogs have `selfDlgId` equal to `rootDlgId`
|
|
216
|
+
- SideDialogs have distinct `selfDlgId` values with the same `rootDlgId` as their parent
|
|
217
|
+
- SideDialog directories use only the `selfDlgId` for file system organization
|
|
218
218
|
- Metadata stores only the `selfDlgId`; full `rootDlgId#selfDlgId` is reconstructed during loading
|
|
219
219
|
- The full `rootDlgId#selfDlgId` format is used for in-memory identification and operations
|
|
220
220
|
|
|
@@ -222,25 +222,25 @@ In this structure:
|
|
|
222
222
|
|
|
223
223
|
Modern strongly-typed dialog metadata using TypeScript interfaces:
|
|
224
224
|
|
|
225
|
-
####
|
|
225
|
+
#### Main Dialog Example
|
|
226
226
|
|
|
227
227
|
```yaml
|
|
228
228
|
id: 'aa/bb/cccccccc' # Unique dialog identifier (selfDlgId only)
|
|
229
229
|
agentId: 'alice' # Agent responsible for this dialog
|
|
230
230
|
taskDocPath: 'task.tsk' # Path to the rtws Taskdoc package directory
|
|
231
231
|
createdAt: '2024-01-15T10:30:00Z' # ISO timestamp when created
|
|
232
|
-
# No parent fields for
|
|
232
|
+
# No parent fields for main dialogs
|
|
233
233
|
```
|
|
234
234
|
|
|
235
|
-
####
|
|
235
|
+
#### SideDialog Example
|
|
236
236
|
|
|
237
237
|
```yaml
|
|
238
238
|
id: 'dd/ee/ffffffff' # Unique dialog identifier (selfDlgId only)
|
|
239
239
|
agentId: 'bob' # Agent responsible for this dialog
|
|
240
240
|
taskDocPath: 'task.tsk' # Path to rtws Taskdoc package directory (inherited from parent)
|
|
241
241
|
createdAt: '2024-01-15T10:35:00Z' # ISO timestamp when created
|
|
242
|
-
|
|
243
|
-
|
|
242
|
+
askerDialogId: 'aa/bb/cccccccc' # Parent dialog's selfDlgId
|
|
243
|
+
assignmentFromAsker: # Assignment context from parent
|
|
244
244
|
mentionList: ['@bob']
|
|
245
245
|
tellaskContent: 'Implement user authentication; create secure login system with JWT tokens'
|
|
246
246
|
originMemberId: 'alice'
|
|
@@ -257,7 +257,7 @@ currentCourse: 3 # Current course number (1-based)
|
|
|
257
257
|
lastModified: '2024-01-15T11:45:00Z' # ISO timestamp of last activity
|
|
258
258
|
messageCount: 12 # Total messages in current course
|
|
259
259
|
functionCallCount: 3 # Total function calls in current course
|
|
260
|
-
|
|
260
|
+
sideDialogCount: 1 # Total sideDialogs created
|
|
261
261
|
status: 'active' # Current dialog status
|
|
262
262
|
```
|
|
263
263
|
|
|
@@ -266,7 +266,7 @@ status: 'active' # Current dialog status
|
|
|
266
266
|
- New message events
|
|
267
267
|
- Course transitions
|
|
268
268
|
- Function call results
|
|
269
|
-
-
|
|
269
|
+
- SideDialog creation
|
|
270
270
|
- Any dialog modification
|
|
271
271
|
|
|
272
272
|
**UI Integration**: Dialog list displays `lastModified` timestamp from this file for accurate sorting and display.
|
|
@@ -302,7 +302,7 @@ Simple text file containing the current course number:
|
|
|
302
302
|
|
|
303
303
|
### Root-generation anchors and reconciliation records
|
|
304
304
|
|
|
305
|
-
To support
|
|
305
|
+
To support main dialog fork, persistence now records which root-generation viewpoint a piece of dialog state belongs to.
|
|
306
306
|
|
|
307
307
|
**Root-generation anchor**:
|
|
308
308
|
|
|
@@ -311,25 +311,25 @@ To support root dialog fork, persistence now records which root-generation viewp
|
|
|
311
311
|
|
|
312
312
|
**Purpose**:
|
|
313
313
|
|
|
314
|
-
- Any state snapshot that must stay aligned across the entire
|
|
314
|
+
- Any state snapshot that must stay aligned across the entire main dialog tree must be anchored to the root generation rather than each sideDialog's local course/genseq
|
|
315
315
|
- When forking at `(course, genseq)`, the retained state is the latest consistent snapshot at or before `(rootCourse=course, rootGenseq=genseq-1)`
|
|
316
316
|
|
|
317
317
|
**New / strengthened persisted records**:
|
|
318
318
|
|
|
319
|
-
- `
|
|
319
|
+
- `sideDialog_created_record`
|
|
320
320
|
- persisted in the root transcript
|
|
321
|
-
- marks when a
|
|
321
|
+
- marks when a sideDialog already exists on the root timeline, so fork can decide whether to include it
|
|
322
322
|
- `reminders_reconciled_record`
|
|
323
323
|
- `questions4human_reconciled_record`
|
|
324
|
-
- `
|
|
325
|
-
- `
|
|
326
|
-
- `
|
|
324
|
+
- `pending_sideDialogs_reconciled_record`
|
|
325
|
+
- `sideDialog_registry_reconciled_record`
|
|
326
|
+
- `sideDialog_responses_reconciled_record`
|
|
327
327
|
|
|
328
328
|
**Required behavior**:
|
|
329
329
|
|
|
330
330
|
- These reconciliation records are state snapshots, not LLM transcript content; message reconstruction must skip them
|
|
331
|
-
- Any
|
|
332
|
-
- When writing a forked
|
|
331
|
+
- Any sideDialog transcript record that participates in root-fork cutoff trimming must carry `rootCourse/rootGenseq`
|
|
332
|
+
- When writing a forked main dialog, persistence appends a baseline reconciliation set into `course-1` so reminders / Q4H / pending sideDialogs / registry / responses are restored to the pre-cutoff state
|
|
333
333
|
|
|
334
334
|
---
|
|
335
335
|
|
|
@@ -394,14 +394,14 @@ started_at: '2024-01-15T11:30:00Z'
|
|
|
394
394
|
completed_at: '2024-01-15T11:45:00Z'
|
|
395
395
|
message_count: 12
|
|
396
396
|
function_calls: 3
|
|
397
|
-
|
|
397
|
+
sideDialogs_created: 1
|
|
398
398
|
status: 'completed'
|
|
399
399
|
```
|
|
400
400
|
|
|
401
401
|
### Taskdoc Storage
|
|
402
402
|
|
|
403
403
|
Taskdocs are rtws artifacts that exist independently and are referenced by dialogs through paths.
|
|
404
|
-
In practice, the Taskdoc is also the task’s **live coordination bulletin board** across
|
|
404
|
+
In practice, the Taskdoc is also the task’s **live coordination bulletin board** across Main Dialogs/agents.
|
|
405
405
|
Taskdocs MUST be encapsulated Taskdoc packages (`*.tsk/`).
|
|
406
406
|
|
|
407
407
|
```yaml
|
|
@@ -456,7 +456,7 @@ The following operations are implemented.
|
|
|
456
456
|
### Dialog Creation
|
|
457
457
|
|
|
458
458
|
1. Generate unique dialog ID using `generateDialogID()`
|
|
459
|
-
2. Create `DialogID` instance with `selfDlgId` and `rootDlgId` (rootDlgId defaults to selfDlgId for
|
|
459
|
+
2. Create `DialogID` instance with `selfDlgId` and `rootDlgId` (rootDlgId defaults to selfDlgId for main dialogs)
|
|
460
460
|
3. Create dialog directory structure
|
|
461
461
|
4. Write initial `dialog.yaml` metadata with the serialized DialogID
|
|
462
462
|
5. Initialize `latest.yaml` to `currentCourse: 1`
|
|
@@ -470,28 +470,28 @@ The following operations are implemented.
|
|
|
470
470
|
3. Increment course counter if starting a new course
|
|
471
471
|
4. Ensure atomic writes to prevent corruption
|
|
472
472
|
|
|
473
|
-
###
|
|
473
|
+
### SideDialog Creation
|
|
474
474
|
|
|
475
|
-
1. Generate unique
|
|
475
|
+
1. Generate unique sideDialog ID using `generateDialogID()`
|
|
476
476
|
2. Create `DialogID` instance with:
|
|
477
|
-
- `selfDlgId`: the newly generated
|
|
478
|
-
- `rootDlgId`: inherited from the
|
|
479
|
-
3. Create
|
|
477
|
+
- `selfDlgId`: the newly generated sideDialog ID
|
|
478
|
+
- `rootDlgId`: inherited from the askerDialog's `rootDlgId`
|
|
479
|
+
3. Create sideDialog directory under parent's `sideDialogs/` (using only `selfDlgId` for directory name)
|
|
480
480
|
4. Set Taskdoc path reference from parent
|
|
481
481
|
5. Set parent call context in metadata
|
|
482
|
-
6. Initialize
|
|
482
|
+
6. Initialize sideDialog state, storing only `selfDlgId` in metadata
|
|
483
483
|
7. The full `DialogID` with `rootDlgId` is reconstructed during loading based on directory structure
|
|
484
484
|
|
|
485
485
|
### Dialog Completion
|
|
486
486
|
|
|
487
487
|
1. Update dialog status to "completed"
|
|
488
488
|
2. Finalize all course metadata
|
|
489
|
-
3. For
|
|
489
|
+
3. For main dialogs:
|
|
490
490
|
- Move dialog directory from `run/` to `done/`
|
|
491
|
-
- Include all
|
|
492
|
-
4. For
|
|
491
|
+
- Include all sideDialogs in the move
|
|
492
|
+
4. For sideDialogs:
|
|
493
493
|
- Update status in metadata
|
|
494
|
-
- Notify
|
|
494
|
+
- Notify askerDialog of completion using the full serialized DialogID
|
|
495
495
|
5. Archive old dialogs based on retention policy
|
|
496
496
|
|
|
497
497
|
### Memory Updates
|
|
@@ -524,7 +524,7 @@ The following operations are implemented.
|
|
|
524
524
|
|
|
525
525
|
### Storage Optimization
|
|
526
526
|
|
|
527
|
-
**Flat
|
|
527
|
+
**Flat SideDialog Storage**: Prevents deep directory nesting that can impact filesystem performance.
|
|
528
528
|
|
|
529
529
|
**Append-Only Streams**: Optimizes for write performance and enables efficient streaming.
|
|
530
530
|
|
|
@@ -592,14 +592,14 @@ The persistence layer has been **completely modernized** with no backward compat
|
|
|
592
592
|
- **Real-time Tracking**: Current course and lastModified timestamps
|
|
593
593
|
- **Atomic Updates**: Automatically updated on all dialog modifications
|
|
594
594
|
- **UI Integration**: Dialog list displays accurate timestamps from persisted records
|
|
595
|
-
- **Status Management**: Tracks dialog status, message counts, and
|
|
595
|
+
- **Status Management**: Tracks dialog status, message counts, and sideDialog counts
|
|
596
596
|
|
|
597
597
|
#### ✅ Modern Persistence Layer (`main/persistence.ts`)
|
|
598
598
|
|
|
599
599
|
- **Type-Safe Operations**: All methods use strong TypeScript interfaces
|
|
600
600
|
- **Atomic File Operations**: All writes use temporary files + rename pattern
|
|
601
601
|
- **Automatic Timestamps**: latest.yaml updated automatically on events
|
|
602
|
-
- **Unified APIs**: Consistent interface for
|
|
602
|
+
- **Unified APIs**: Consistent interface for main dialogs and sideDialogs
|
|
603
603
|
|
|
604
604
|
#### ✅ Updated API Layer (`main/server/api-routes.ts`)
|
|
605
605
|
|
|
@@ -645,20 +645,20 @@ The redesigned file organization should support both streaming and restoration m
|
|
|
645
645
|
rtws/
|
|
646
646
|
├── dialogs/
|
|
647
647
|
│ ├── active/ # Currently streaming dialogs
|
|
648
|
-
│ │ ├── {
|
|
648
|
+
│ │ ├── {main-dialog-id}/ # Main dialog directory (selfDlgId = rootDlgId)
|
|
649
649
|
│ │ │ ├── stream.jsonl # Append-only message stream
|
|
650
650
|
│ │ │ ├── metadata.yaml # Dialog configuration and state
|
|
651
651
|
│ │ │ ├── checkpoints/ # Periodic state snapshots
|
|
652
652
|
│ │ │ ├── temp/ # Temporary files during streaming
|
|
653
|
-
│ │ │ └──
|
|
654
|
-
│ │ │ └── {
|
|
653
|
+
│ │ │ └── sideDialogs/ # SideDialog storage
|
|
654
|
+
│ │ │ └── {side-dialog-id}/ # SideDialog directory (uses only selfDlgId)
|
|
655
655
|
│ │ │ ├── stream.jsonl
|
|
656
656
|
│ │ │ ├── metadata.yaml
|
|
657
657
|
│ │ │ └── checkpoints/
|
|
658
658
|
│ │ └── index.json # Fast lookup for active dialogs
|
|
659
659
|
│ ├── archived/ # Completed/paused dialogs
|
|
660
660
|
│ │ ├── {date}/ # Organized by completion date
|
|
661
|
-
│ │ │ ├── {
|
|
661
|
+
│ │ │ ├── {main-dialog-id}.tar.gz # Compressed dialog archive with sideDialogs
|
|
662
662
|
│ │ │ └── metadata.json # Archive metadata
|
|
663
663
|
│ │ └── index.json # Archive lookup index
|
|
664
664
|
│ └── templates/ # Dialog templates and presets
|
|
@@ -668,8 +668,8 @@ rtws/
|
|
|
668
668
|
|
|
669
669
|
In this proposed structure:
|
|
670
670
|
|
|
671
|
-
-
|
|
672
|
-
-
|
|
671
|
+
- Main dialogs are organized by their `main-dialog-id`
|
|
672
|
+
- SideDialogs are stored within their main dialog's `sideDialogs/` directory, using only their `selfDlgId` for directory names
|
|
673
673
|
- Metadata stores only the `selfDlgId` in the `id` field
|
|
674
674
|
- The full `rootDlgId#selfDlgId` format is reconstructed during loading and used in indexes for efficient lookup
|
|
675
675
|
|
|
@@ -732,7 +732,7 @@ The key innovation is creating a **seamless interface** between streaming and di
|
|
|
732
732
|
|
|
733
733
|
#### File System Reliability
|
|
734
734
|
|
|
735
|
-
- **Error Recovery**:
|
|
735
|
+
- **Error Recovery**: Report file-system errors loudly and retry only where the operation is explicitly designed to be retryable
|
|
736
736
|
- **Corruption Detection**: Use checksums to detect and handle file corruption
|
|
737
737
|
- **Backup Strategy**: Regular backups of critical dialog data
|
|
738
738
|
- **Cleanup Policies**: Automatic cleanup of temporary and obsolete files
|