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
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildDriveBaseContextMessages = buildDriveBaseContextMessages;
|
|
4
4
|
exports.appendDriveEphemeralContext = appendDriveEphemeralContext;
|
|
5
|
-
exports.appendDriveTailContext = appendDriveTailContext;
|
|
6
5
|
exports.assembleDriveContextMessages = assembleDriveContextMessages;
|
|
7
6
|
function buildDriveBaseContextMessages(parts) {
|
|
8
7
|
return [
|
|
@@ -15,36 +14,23 @@ function buildDriveBaseContextMessages(parts) {
|
|
|
15
14
|
}
|
|
16
15
|
function appendDriveEphemeralContext(base, parts) {
|
|
17
16
|
const next = [...base];
|
|
18
|
-
if (Array.isArray(parts.
|
|
19
|
-
parts.
|
|
20
|
-
next.push(...parts.
|
|
17
|
+
if (Array.isArray(parts.sideDialogResponseContextMsgs) &&
|
|
18
|
+
parts.sideDialogResponseContextMsgs.length > 0) {
|
|
19
|
+
next.push(...parts.sideDialogResponseContextMsgs);
|
|
21
20
|
}
|
|
22
21
|
if (Array.isArray(parts.runtimeGuideMsgs) && parts.runtimeGuideMsgs.length > 0) {
|
|
23
22
|
next.push(...parts.runtimeGuideMsgs);
|
|
24
23
|
}
|
|
25
24
|
return next;
|
|
26
25
|
}
|
|
27
|
-
function hasUserPromptLikeAnchor(source) {
|
|
28
|
-
for (const msg of source) {
|
|
29
|
-
if (!msg)
|
|
30
|
-
continue;
|
|
31
|
-
if ((msg.type === 'prompting_msg' ||
|
|
32
|
-
msg.type === 'environment_msg' ||
|
|
33
|
-
msg.type === 'tellask_carryover_msg') &&
|
|
34
|
-
msg.role === 'user') {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
function appendDriveTailContext(source, parts) {
|
|
41
|
-
if (hasUserPromptLikeAnchor(source)) {
|
|
42
|
-
return [...source, ...parts.renderedReminders];
|
|
43
|
-
}
|
|
44
|
-
return [...source, ...parts.renderedReminders];
|
|
45
|
-
}
|
|
46
26
|
function assembleDriveContextMessages(args) {
|
|
47
|
-
const baseMsgs =
|
|
48
|
-
|
|
49
|
-
|
|
27
|
+
const baseMsgs = [
|
|
28
|
+
...args.base.prependedContextMessages,
|
|
29
|
+
...args.base.memories,
|
|
30
|
+
...(args.base.taskDocMsg ? [args.base.taskDocMsg] : []),
|
|
31
|
+
...args.base.coursePrefixMsgs,
|
|
32
|
+
...args.tail.renderedReminders,
|
|
33
|
+
...args.base.dialogMsgsForContext,
|
|
34
|
+
];
|
|
35
|
+
return appendDriveEphemeralContext(baseMsgs, args.ephemeral);
|
|
50
36
|
}
|
|
@@ -122,11 +122,11 @@ function throwIfAborted(abortSignal, dlg) {
|
|
|
122
122
|
}
|
|
123
123
|
throw new KernelDriverInterruptedError(buildAbortedSystemStopReason());
|
|
124
124
|
}
|
|
125
|
-
function
|
|
126
|
-
return dlg instanceof dialog_1.
|
|
125
|
+
function isFbrSideDialog(dlg) {
|
|
126
|
+
return dlg instanceof dialog_1.SideDialog && dlg.assignmentFromAsker.callName === 'freshBootsReasoning';
|
|
127
127
|
}
|
|
128
128
|
async function loadDialogFbrState(dialog) {
|
|
129
|
-
if (!
|
|
129
|
+
if (!isFbrSideDialog(dialog))
|
|
130
130
|
return undefined;
|
|
131
131
|
const latest = await persistence_1.DialogPersistence.loadDialogLatest(dialog.id, dialog.status);
|
|
132
132
|
return latest?.fbrState;
|
|
@@ -138,14 +138,15 @@ async function persistDialogFbrState(dialog, fbrState) {
|
|
|
138
138
|
}));
|
|
139
139
|
}
|
|
140
140
|
function buildKernelDriverFbrPrompt(dlg, state) {
|
|
141
|
-
const collectiveTargets = dlg.
|
|
142
|
-
|
|
141
|
+
const collectiveTargets = dlg.assignmentFromAsker.collectiveTargets &&
|
|
142
|
+
dlg.assignmentFromAsker.collectiveTargets.length > 0
|
|
143
|
+
? [...dlg.assignmentFromAsker.collectiveTargets]
|
|
143
144
|
: [dlg.agentId];
|
|
144
145
|
return {
|
|
145
146
|
content: (0, fbr_1.buildFbrPromptForState)({
|
|
146
147
|
state,
|
|
147
|
-
tellaskContent: dlg.
|
|
148
|
-
fromAgentId: dlg.
|
|
148
|
+
tellaskContent: dlg.assignmentFromAsker.tellaskContent,
|
|
149
|
+
fromAgentId: dlg.assignmentFromAsker.originMemberId,
|
|
149
150
|
toAgentId: dlg.agentId,
|
|
150
151
|
language: (0, work_language_1.getWorkLanguage)(),
|
|
151
152
|
collectiveTargets,
|
|
@@ -323,7 +324,7 @@ function createFreshBootsReasoningTool(args) {
|
|
|
323
324
|
return {
|
|
324
325
|
type: 'func',
|
|
325
326
|
name: 'freshBootsReasoning',
|
|
326
|
-
description: 'Start a tool-less FBR
|
|
327
|
+
description: 'Start a tool-less FBR Side Dialog. `tellaskContent` must stay neutral and factual: Goal/Facts/Constraints/Evidence[/Unknowns], with no analysis scaffold. If the user says “FBR x3” or “3x FBR”, set `effort: 3`: `xN` is the absolute effort value, not “N times the current default”. ' +
|
|
327
328
|
fbrDefaultHint,
|
|
328
329
|
parameters: {
|
|
329
330
|
type: 'object',
|
|
@@ -334,7 +335,7 @@ function createFreshBootsReasoningTool(args) {
|
|
|
334
335
|
},
|
|
335
336
|
effort: {
|
|
336
337
|
type: 'integer',
|
|
337
|
-
description: `Optional absolute FBR effort (0..100 integer). “x3” / “3x” means \`effort: 3\`, not “3 × current fbr_effort”. Runtime maps effort N to N serial FBR passes in one
|
|
338
|
+
description: `Optional absolute FBR effort (0..100 integer). “x3” / “3x” means \`effort: 3\`, not “3 × current fbr_effort”. Runtime maps effort N to N serial FBR passes in one Side Dialog window. When omitted, runtime defaults to current member fbr_effort=${fbrDefault}.`,
|
|
338
339
|
},
|
|
339
340
|
},
|
|
340
341
|
required: ['tellaskContent'],
|
|
@@ -349,7 +350,7 @@ const TELLASK_SPECIAL_VIRTUAL_TOOLS = [
|
|
|
349
350
|
{
|
|
350
351
|
type: 'func',
|
|
351
352
|
name: 'tellaskBack',
|
|
352
|
-
description: 'Ask back to the
|
|
353
|
+
description: 'Ask back to the tellasker in Side Dialog context when tellasker clarification/decision is required or ownership cannot be determined from SOP.',
|
|
353
354
|
parameters: {
|
|
354
355
|
type: 'object',
|
|
355
356
|
properties: {
|
|
@@ -365,7 +366,7 @@ const TELLASK_SPECIAL_VIRTUAL_TOOLS = [
|
|
|
365
366
|
{
|
|
366
367
|
type: 'func',
|
|
367
368
|
name: 'tellask',
|
|
368
|
-
description: 'Create or resume a teammate
|
|
369
|
+
description: 'Create or resume a teammate Side Dialog with sessionSlug.',
|
|
369
370
|
parameters: {
|
|
370
371
|
type: 'object',
|
|
371
372
|
properties: {
|
|
@@ -383,7 +384,7 @@ const TELLASK_SPECIAL_VIRTUAL_TOOLS = [
|
|
|
383
384
|
{
|
|
384
385
|
type: 'func',
|
|
385
386
|
name: 'tellaskSessionless',
|
|
386
|
-
description: 'Create a one-shot teammate
|
|
387
|
+
description: 'Create a one-shot teammate Side Dialog with no assignment-update channel; later tellaskSessionless calls create new dialogs rather than updating or stopping this one.',
|
|
387
388
|
parameters: {
|
|
388
389
|
type: 'object',
|
|
389
390
|
properties: {
|
|
@@ -590,18 +591,18 @@ function resolveUpNextPrompt(dlg) {
|
|
|
590
591
|
case 'registered_assignment_update':
|
|
591
592
|
case 'new_course_runtime_guide':
|
|
592
593
|
case 'new_course_runtime_reply':
|
|
593
|
-
case '
|
|
594
|
+
case 'new_course_runtime_sideDialog': {
|
|
594
595
|
const runtimeCommon = {
|
|
595
596
|
...common,
|
|
596
597
|
origin: 'runtime',
|
|
597
598
|
...(upNext.skipTaskdoc === undefined ? {} : { skipTaskdoc: upNext.skipTaskdoc }),
|
|
598
599
|
};
|
|
599
600
|
if (upNext.kind === 'registered_assignment_update' ||
|
|
600
|
-
upNext.kind === '
|
|
601
|
+
upNext.kind === 'new_course_runtime_sideDialog') {
|
|
601
602
|
const prompt = {
|
|
602
603
|
...runtimeCommon,
|
|
603
604
|
tellaskReplyDirective: upNext.tellaskReplyDirective,
|
|
604
|
-
|
|
605
|
+
sideDialogReplyTarget: upNext.sideDialogReplyTarget,
|
|
605
606
|
};
|
|
606
607
|
return prompt;
|
|
607
608
|
}
|
|
@@ -632,8 +633,8 @@ async function renderRemindersForContext(dlg) {
|
|
|
632
633
|
continue;
|
|
633
634
|
}
|
|
634
635
|
renderedItems.push({
|
|
635
|
-
type: '
|
|
636
|
-
role: '
|
|
636
|
+
type: 'environment_msg',
|
|
637
|
+
role: 'user',
|
|
637
638
|
content: (0, driver_messages_1.formatReminderItemGuide)(language, reminder.id, reminder.content, {
|
|
638
639
|
meta: reminder.meta,
|
|
639
640
|
scope: reminder.scope,
|
|
@@ -658,13 +659,11 @@ function hasSameReplyDirective(left, right) {
|
|
|
658
659
|
if (left.expectedReplyCallName !== right.expectedReplyCallName) {
|
|
659
660
|
return false;
|
|
660
661
|
}
|
|
661
|
-
if (left.
|
|
662
|
+
if (left.targetDialogId !== right.targetDialogId ||
|
|
663
|
+
left.targetCallId !== right.targetCallId ||
|
|
664
|
+
left.tellaskContent !== right.tellaskContent) {
|
|
662
665
|
return false;
|
|
663
666
|
}
|
|
664
|
-
if (left.expectedReplyCallName === 'replyTellaskBack') {
|
|
665
|
-
return (right.expectedReplyCallName === 'replyTellaskBack' &&
|
|
666
|
-
left.targetDialogId === right.targetDialogId);
|
|
667
|
-
}
|
|
668
667
|
return true;
|
|
669
668
|
}
|
|
670
669
|
function buildPendingTellaskFuncResult(args) {
|
|
@@ -674,13 +673,13 @@ function buildPendingTellaskFuncResult(args) {
|
|
|
674
673
|
genseq: args.genseq,
|
|
675
674
|
id: args.callId,
|
|
676
675
|
name: args.callName,
|
|
677
|
-
content: (0, tellask_special_1.formatPendingTellaskFuncResultContent)(args.callName, null),
|
|
676
|
+
content: (0, tellask_special_1.formatPendingTellaskFuncResultContent)(args.callName, null, args.callId),
|
|
678
677
|
};
|
|
679
678
|
}
|
|
680
679
|
async function loadPendingTellaskSpecialStates(dialog) {
|
|
681
680
|
const pendingByCallId = new Map();
|
|
682
|
-
const
|
|
683
|
-
for (const pending of
|
|
681
|
+
const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialog.id, dialog.status);
|
|
682
|
+
for (const pending of pendingSideDialogs) {
|
|
684
683
|
const callId = pending.callId.trim();
|
|
685
684
|
if (callId === '') {
|
|
686
685
|
continue;
|
|
@@ -711,21 +710,26 @@ async function projectTellaskFuncResultsForContext(args) {
|
|
|
711
710
|
if (!hasSpecialFuncCall) {
|
|
712
711
|
return {
|
|
713
712
|
messages: [...args.dialogMsgsForContext],
|
|
714
|
-
projectedResultCallIds: new Set(),
|
|
715
713
|
};
|
|
716
714
|
}
|
|
717
715
|
const pendingSpecialByCallId = await loadPendingTellaskSpecialStates(args.dialog);
|
|
718
|
-
// Only technical tool-result-shaped messages can satisfy provider tool-call adjacency.
|
|
719
|
-
// carryover
|
|
720
|
-
//
|
|
721
|
-
// longer present in current context.
|
|
716
|
+
// Only technical tool-result-shaped messages can satisfy provider tool-call adjacency. Tellask
|
|
717
|
+
// result/carryover messages are business facts in timeline order; the adjacent call-site
|
|
718
|
+
// projection must be only a pending/pointer status, never the real reply body.
|
|
722
719
|
const pairedToolResultContentByCallId = new Map();
|
|
723
720
|
const existingSpecialFuncResults = new Map();
|
|
724
721
|
for (const msg of args.dialogMsgsForContext) {
|
|
725
722
|
if (msg.type === 'tellask_result_msg') {
|
|
726
723
|
const callId = typeof msg.callId === 'string' ? msg.callId.trim() : '';
|
|
727
724
|
if (callId !== '') {
|
|
728
|
-
|
|
725
|
+
if (!(0, tellask_special_1.isTellaskCallFunctionName)(msg.callName)) {
|
|
726
|
+
throw new Error(`tellask result projection invariant violation: unsupported callName '${msg.callName}' for callId=${callId}`);
|
|
727
|
+
}
|
|
728
|
+
pairedToolResultContentByCallId.set(callId, (0, tellask_special_1.formatResolvedTellaskFuncResultContent)({
|
|
729
|
+
name: msg.callName,
|
|
730
|
+
callId,
|
|
731
|
+
status: msg.status,
|
|
732
|
+
}));
|
|
729
733
|
}
|
|
730
734
|
continue;
|
|
731
735
|
}
|
|
@@ -734,7 +738,6 @@ async function projectTellaskFuncResultsForContext(args) {
|
|
|
734
738
|
}
|
|
735
739
|
}
|
|
736
740
|
const projected = [];
|
|
737
|
-
const projectedResultCallIds = new Set();
|
|
738
741
|
const specialCallIds = new Set();
|
|
739
742
|
for (const msg of args.dialogMsgsForContext) {
|
|
740
743
|
if (msg.type === 'func_result_msg' && specialCallIds.has(msg.id)) {
|
|
@@ -750,7 +753,6 @@ async function projectTellaskFuncResultsForContext(args) {
|
|
|
750
753
|
specialCallIds.add(msg.id);
|
|
751
754
|
const pairedToolResultContent = pairedToolResultContentByCallId.get(msg.id);
|
|
752
755
|
if (pairedToolResultContent !== undefined) {
|
|
753
|
-
projectedResultCallIds.add(msg.id);
|
|
754
756
|
projected.push({
|
|
755
757
|
type: 'func_result_msg',
|
|
756
758
|
role: 'tool',
|
|
@@ -763,24 +765,21 @@ async function projectTellaskFuncResultsForContext(args) {
|
|
|
763
765
|
}
|
|
764
766
|
const existingResult = existingSpecialFuncResults.get(msg.id);
|
|
765
767
|
if (existingResult) {
|
|
766
|
-
projectedResultCallIds.add(msg.id);
|
|
767
768
|
projected.push(existingResult);
|
|
768
769
|
continue;
|
|
769
770
|
}
|
|
770
771
|
const pendingSpecialState = pendingSpecialByCallId.get(msg.id);
|
|
771
772
|
if (pendingSpecialState?.callName === msg.name) {
|
|
772
|
-
projectedResultCallIds.add(msg.id);
|
|
773
773
|
projected.push({
|
|
774
774
|
type: 'func_result_msg',
|
|
775
775
|
role: 'tool',
|
|
776
776
|
genseq: msg.genseq,
|
|
777
777
|
id: msg.id,
|
|
778
778
|
name: msg.name,
|
|
779
|
-
content: (0, tellask_special_1.formatPendingTellaskFuncResultContent)(msg.name, pendingSpecialState.startedAtMs),
|
|
779
|
+
content: (0, tellask_special_1.formatPendingTellaskFuncResultContent)(msg.name, pendingSpecialState.startedAtMs, msg.id),
|
|
780
780
|
});
|
|
781
781
|
continue;
|
|
782
782
|
}
|
|
783
|
-
projectedResultCallIds.add(msg.id);
|
|
784
783
|
projected.push(buildPendingTellaskFuncResult({
|
|
785
784
|
callId: msg.id,
|
|
786
785
|
callName: msg.name,
|
|
@@ -789,7 +788,6 @@ async function projectTellaskFuncResultsForContext(args) {
|
|
|
789
788
|
}
|
|
790
789
|
return {
|
|
791
790
|
messages: projected,
|
|
792
|
-
projectedResultCallIds,
|
|
793
791
|
};
|
|
794
792
|
}
|
|
795
793
|
async function buildDialogMsgsForContext(dlg) {
|
|
@@ -798,15 +796,21 @@ async function buildDialogMsgsForContext(dlg) {
|
|
|
798
796
|
dialog: dlg,
|
|
799
797
|
dialogMsgsForContext: rawDialogMsgsForContext,
|
|
800
798
|
});
|
|
801
|
-
const
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
799
|
+
const activeReplyObligation = await persistence_1.DialogPersistence.loadActiveTellaskReplyObligation(dlg.id, dlg.status);
|
|
800
|
+
const activeReplyObligationContext = activeReplyObligation === undefined
|
|
801
|
+
? []
|
|
802
|
+
: [
|
|
803
|
+
{
|
|
804
|
+
type: 'environment_msg',
|
|
805
|
+
role: 'user',
|
|
806
|
+
content: (0, reply_prompt_copy_1.buildActiveReplyObligationContextText)({
|
|
807
|
+
language: (0, work_language_1.getWorkLanguage)(),
|
|
808
|
+
directive: activeReplyObligation,
|
|
809
|
+
}),
|
|
810
|
+
},
|
|
811
|
+
];
|
|
812
|
+
const businessFiltered = [...activeReplyObligationContext, ...projected.messages].filter((msg) => {
|
|
813
|
+
return msg.type !== 'tellask_result_msg' || msg.content.trim() !== '';
|
|
810
814
|
});
|
|
811
815
|
const sanitized = (0, tool_call_context_1.sanitizeToolContextForProvider)(businessFiltered);
|
|
812
816
|
if (sanitized.droppedViolations.length > 0) {
|
|
@@ -857,13 +861,20 @@ function shouldImmediatelyFollowUpToolOutcome(tool, outcome) {
|
|
|
857
861
|
return shouldImmediatelyFollowUpSuccessfulToolResult(tool);
|
|
858
862
|
}
|
|
859
863
|
async function executeFunctionCalls(args) {
|
|
860
|
-
const
|
|
864
|
+
const preparedCalls = args.funcCalls.map((func) => {
|
|
861
865
|
throwIfAborted(args.abortSignal, args.dlg);
|
|
862
866
|
const callGenseq = func.genseq;
|
|
863
867
|
const argsStr = typeof func.arguments === 'string' ? func.arguments : JSON.stringify(func.arguments ?? {});
|
|
864
868
|
const tool = args.agentTools.find((t) => t.type === 'func' && t.name === func.name);
|
|
865
869
|
const preparedInvocationArgs = tool !== undefined ? (0, tool_1.resolveFuncToolInvocationArguments)(tool, argsStr) : null;
|
|
866
|
-
|
|
870
|
+
return { func, callGenseq, argsStr, tool, preparedInvocationArgs };
|
|
871
|
+
});
|
|
872
|
+
for (const prepared of preparedCalls) {
|
|
873
|
+
throwIfAborted(args.abortSignal, args.dlg);
|
|
874
|
+
await args.dlg.persistFunctionCall(prepared.func.id, prepared.func.name, prepared.argsStr, prepared.callGenseq);
|
|
875
|
+
}
|
|
876
|
+
const functionPromises = preparedCalls.map(async ({ func, callGenseq, argsStr, tool, preparedInvocationArgs, }) => {
|
|
877
|
+
throwIfAborted(args.abortSignal, args.dlg);
|
|
867
878
|
let result;
|
|
868
879
|
let outcome = 'success';
|
|
869
880
|
let rethrowError;
|
|
@@ -908,7 +919,9 @@ async function executeFunctionCalls(args) {
|
|
|
908
919
|
id: func.id,
|
|
909
920
|
name: func.name,
|
|
910
921
|
content: output.content,
|
|
911
|
-
contentItems: Array.isArray(output.contentItems)
|
|
922
|
+
contentItems: Array.isArray(output.contentItems)
|
|
923
|
+
? [...output.contentItems]
|
|
924
|
+
: undefined,
|
|
912
925
|
role: 'tool',
|
|
913
926
|
genseq: callGenseq,
|
|
914
927
|
};
|
|
@@ -940,7 +953,7 @@ async function executeFunctionCalls(args) {
|
|
|
940
953
|
}
|
|
941
954
|
}
|
|
942
955
|
}
|
|
943
|
-
await args.dlg.
|
|
956
|
+
await args.dlg.receiveFuncResult(result);
|
|
944
957
|
if (rethrowError !== undefined) {
|
|
945
958
|
throw rethrowError;
|
|
946
959
|
}
|
|
@@ -1076,12 +1089,12 @@ async function resetDiligenceBudgetAfterQ4H(dlg, team) {
|
|
|
1076
1089
|
}
|
|
1077
1090
|
}
|
|
1078
1091
|
async function maybeContinueWithDiligencePrompt(args) {
|
|
1079
|
-
const { dlg, team, suppressDiligencePushForDrive,
|
|
1080
|
-
if (!(dlg instanceof dialog_1.
|
|
1092
|
+
const { dlg, team, suppressDiligencePushForDrive, allowPendingSideDialogs } = args;
|
|
1093
|
+
if (!(dlg instanceof dialog_1.MainDialog)) {
|
|
1081
1094
|
return { kind: 'break' };
|
|
1082
1095
|
}
|
|
1083
1096
|
const suspension = await dlg.getSuspensionStatus({
|
|
1084
|
-
|
|
1097
|
+
allowPendingSideDialogs: allowPendingSideDialogs === true,
|
|
1085
1098
|
});
|
|
1086
1099
|
if (!suspension.canDrive) {
|
|
1087
1100
|
if (suspension.q4h) {
|
|
@@ -1091,7 +1104,7 @@ async function maybeContinueWithDiligencePrompt(args) {
|
|
|
1091
1104
|
}
|
|
1092
1105
|
const prepared = await (0, runtime_1.maybePrepareDiligenceAutoContinuePrompt)({
|
|
1093
1106
|
dlg,
|
|
1094
|
-
|
|
1107
|
+
isMainDialog: true,
|
|
1095
1108
|
remainingBudget: dlg.diligencePushRemainingBudget,
|
|
1096
1109
|
diligencePushMax: resolveMemberDiligencePushMax(team, dlg.agentId),
|
|
1097
1110
|
suppressDiligencePush: suppressDiligencePushForDrive,
|
|
@@ -1130,16 +1143,16 @@ async function maybePrepareRetryStoppedRecoveryPrompt(args) {
|
|
|
1130
1143
|
suppressDiligencePushForDrive: args.suppressDiligencePushForDrive,
|
|
1131
1144
|
// `diligence_push_once` is a provider-quirk deadlock breaker rather than the ordinary
|
|
1132
1145
|
// "dialog is about to go idle" auto-continue path. In practice this can happen in a
|
|
1133
|
-
// function-result-driven generation round right after the
|
|
1134
|
-
// a pending tellask/
|
|
1146
|
+
// function-result-driven generation round right after the main dialog has already registered
|
|
1147
|
+
// a pending tellask/sideDialog. Keep Q4H as a hard blocker, but do not let pending sideDialogs
|
|
1135
1148
|
// veto this one-time recovery injection or the same-context deadlock cannot be broken.
|
|
1136
|
-
|
|
1149
|
+
allowPendingSideDialogs: true,
|
|
1137
1150
|
});
|
|
1138
1151
|
}
|
|
1139
1152
|
async function maybeContinueWithHealthPromptBeforeDiligence(args) {
|
|
1140
1153
|
const { dlg, providerCfg, model } = args;
|
|
1141
1154
|
// This path is only used as a higher-priority alternative to Diligence Push.
|
|
1142
|
-
if (!(dlg instanceof dialog_1.
|
|
1155
|
+
if (!(dlg instanceof dialog_1.MainDialog)) {
|
|
1143
1156
|
return { kind: 'no_health_prompt' };
|
|
1144
1157
|
}
|
|
1145
1158
|
const snapshot = dlg.getLastContextHealth();
|
|
@@ -1242,7 +1255,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1242
1255
|
genIterNo += 1;
|
|
1243
1256
|
throwIfAborted(abortSignal, dlg);
|
|
1244
1257
|
const activeFbrState = await loadDialogFbrState(dlg);
|
|
1245
|
-
if (
|
|
1258
|
+
if (isFbrSideDialog(dlg)) {
|
|
1246
1259
|
dlg.setFbrConclusionToolsEnabled(activeFbrState !== undefined && (0, fbr_1.isFbrFinalizationState)(activeFbrState));
|
|
1247
1260
|
if (pendingPrompt === undefined &&
|
|
1248
1261
|
activeFbrState &&
|
|
@@ -1315,11 +1328,11 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1315
1328
|
};
|
|
1316
1329
|
const retryPolicy = resolveKernelDriverRetryPolicy(providerCfg);
|
|
1317
1330
|
const canonicalFuncTools = agentTools.filter((t) => t.type === 'func');
|
|
1318
|
-
const
|
|
1331
|
+
const isSideDialog = dlg.id.rootId !== dlg.id.selfId;
|
|
1319
1332
|
const fbrEffortDefault = resolveFbrEffortDefaultForTool(agent);
|
|
1320
1333
|
const effectiveFuncTools = policy.mode === 'default'
|
|
1321
1334
|
? mergeTellaskVirtualTools(canonicalFuncTools, {
|
|
1322
|
-
includeTellaskBack:
|
|
1335
|
+
includeTellaskBack: isSideDialog,
|
|
1323
1336
|
fbrEffortDefault,
|
|
1324
1337
|
})
|
|
1325
1338
|
: canonicalFuncTools;
|
|
@@ -1392,7 +1405,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1392
1405
|
let contextHealthForGen;
|
|
1393
1406
|
let llmGenModelForGen = model;
|
|
1394
1407
|
const currentPrompt = pendingPrompt;
|
|
1395
|
-
const currentReplyTarget = currentPrompt?.
|
|
1408
|
+
const currentReplyTarget = currentPrompt?.sideDialogReplyTarget;
|
|
1396
1409
|
const currentFbrState = await loadDialogFbrState(dlg);
|
|
1397
1410
|
let currentRuntimeGuideMsg;
|
|
1398
1411
|
const currentPromptFromFbrState = currentPrompt !== undefined &&
|
|
@@ -1552,7 +1565,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1552
1565
|
// Ideal: provider SDKs should support a dedicated role='environment' for runtime
|
|
1553
1566
|
// metadata. Today, most providers only accept user/assistant (and tool as a special
|
|
1554
1567
|
// case), so Dominds must project environment/system-like content as role='user'.
|
|
1555
|
-
const replyTarget = currentPrompt.
|
|
1568
|
+
const replyTarget = currentPrompt.sideDialogReplyTarget;
|
|
1556
1569
|
if (replyTarget) {
|
|
1557
1570
|
const normalizedCallId = replyTarget.callId.trim();
|
|
1558
1571
|
if (normalizedCallId === '') {
|
|
@@ -1565,8 +1578,8 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1565
1578
|
callId: normalizedCallId,
|
|
1566
1579
|
genseq: dlg.activeGenSeq,
|
|
1567
1580
|
...(0, storage_1.toRootGenerationAnchor)({
|
|
1568
|
-
rootCourse: (dlg instanceof dialog_1.
|
|
1569
|
-
rootGenseq: (dlg instanceof dialog_1.
|
|
1581
|
+
rootCourse: (dlg instanceof dialog_1.SideDialog ? dlg.mainDialog : dlg).currentCourse,
|
|
1582
|
+
rootGenseq: (dlg instanceof dialog_1.SideDialog ? dlg.mainDialog : dlg).activeGenSeqOrUndefined ?? 0,
|
|
1570
1583
|
}),
|
|
1571
1584
|
};
|
|
1572
1585
|
const course = dlg.activeGenCourseOrUndefined ?? dlg.currentCourse;
|
|
@@ -1579,18 +1592,29 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1579
1592
|
? await (0, taskdoc_1.formatTaskDocContent)(dlg)
|
|
1580
1593
|
: undefined;
|
|
1581
1594
|
const renderedReminders = await renderRemindersForContext(dlg);
|
|
1595
|
+
const dialogMsgsForContext = await buildDialogMsgsForContext(dlg);
|
|
1596
|
+
const reminderContextBlock = renderedReminders.length > 0
|
|
1597
|
+
? [
|
|
1598
|
+
...renderedReminders,
|
|
1599
|
+
{
|
|
1600
|
+
type: 'environment_msg',
|
|
1601
|
+
role: 'user',
|
|
1602
|
+
content: (0, driver_messages_1.formatReminderContextFooter)((0, work_language_1.getWorkLanguage)()),
|
|
1603
|
+
},
|
|
1604
|
+
]
|
|
1605
|
+
: renderedReminders;
|
|
1582
1606
|
const ctxMsgs = (0, context_1.assembleDriveContextMessages)({
|
|
1583
1607
|
base: {
|
|
1584
1608
|
prependedContextMessages: policy.prependedContextMessages,
|
|
1585
1609
|
memories: minds.memories,
|
|
1586
1610
|
taskDocMsg,
|
|
1587
1611
|
coursePrefixMsgs: dlg.getCoursePrefixMsgs(),
|
|
1588
|
-
dialogMsgsForContext
|
|
1612
|
+
dialogMsgsForContext,
|
|
1589
1613
|
},
|
|
1590
1614
|
ephemeral: {
|
|
1591
1615
|
runtimeGuideMsgs: currentRuntimeGuideMsg ? [currentRuntimeGuideMsg] : undefined,
|
|
1592
1616
|
},
|
|
1593
|
-
tail: { renderedReminders },
|
|
1617
|
+
tail: { renderedReminders: reminderContextBlock },
|
|
1594
1618
|
});
|
|
1595
1619
|
const newMsgs = [];
|
|
1596
1620
|
const streamedFuncCalls = [];
|
|
@@ -1991,7 +2015,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
1991
2015
|
}
|
|
1992
2016
|
const nextFbrState = (0, fbr_1.advanceFbrState)(persistedFbrState);
|
|
1993
2017
|
if (nextFbrState) {
|
|
1994
|
-
if (!
|
|
2018
|
+
if (!isFbrSideDialog(dlg)) {
|
|
1995
2019
|
throw new Error(`kernel-driver FBR invariant violation: persisted FBR state on non-FBR dialog (${dlg.id.valueOf()})`);
|
|
1996
2020
|
}
|
|
1997
2021
|
await persistDialogFbrState(dlg, nextFbrState);
|
|
@@ -2006,7 +2030,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
2006
2030
|
}),
|
|
2007
2031
|
responseGenseq: genseq,
|
|
2008
2032
|
};
|
|
2009
|
-
if (!
|
|
2033
|
+
if (!isFbrSideDialog(dlg)) {
|
|
2010
2034
|
throw new Error(`kernel-driver FBR invariant violation: persisted FBR state on non-FBR dialog (${dlg.id.valueOf()})`);
|
|
2011
2035
|
}
|
|
2012
2036
|
await persistDialogFbrState(dlg, undefined);
|
|
@@ -2053,7 +2077,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
2053
2077
|
responseText: inspection.content,
|
|
2054
2078
|
responseGenseq: inspection.genseq,
|
|
2055
2079
|
};
|
|
2056
|
-
if (!
|
|
2080
|
+
if (!isFbrSideDialog(dlg)) {
|
|
2057
2081
|
throw new Error(`kernel-driver FBR invariant violation: persisted FBR state on non-FBR dialog (${dlg.id.valueOf()})`);
|
|
2058
2082
|
}
|
|
2059
2083
|
await persistDialogFbrState(dlg, undefined);
|
|
@@ -2071,7 +2095,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
2071
2095
|
}
|
|
2072
2096
|
const nextFbrState = (0, fbr_1.advanceFbrState)(persistedFbrState);
|
|
2073
2097
|
if (nextFbrState) {
|
|
2074
|
-
if (!
|
|
2098
|
+
if (!isFbrSideDialog(dlg)) {
|
|
2075
2099
|
throw new Error(`kernel-driver FBR invariant violation: persisted FBR state on non-FBR dialog (${dlg.id.valueOf()})`);
|
|
2076
2100
|
}
|
|
2077
2101
|
await persistDialogFbrState(dlg, nextFbrState);
|
|
@@ -2089,7 +2113,7 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
2089
2113
|
dlg.activeGenSeqOrUndefined ??
|
|
2090
2114
|
1,
|
|
2091
2115
|
};
|
|
2092
|
-
if (!
|
|
2116
|
+
if (!isFbrSideDialog(dlg)) {
|
|
2093
2117
|
throw new Error(`kernel-driver FBR invariant violation: persisted FBR state on non-FBR dialog (${dlg.id.valueOf()})`);
|
|
2094
2118
|
}
|
|
2095
2119
|
await persistDialogFbrState(dlg, undefined);
|
|
@@ -2115,10 +2139,10 @@ async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions)
|
|
|
2115
2139
|
await dlg.processReminderUpdates();
|
|
2116
2140
|
pubRemindersVer = dlg.remindersVer;
|
|
2117
2141
|
}
|
|
2118
|
-
// Tool execution may have created pending Q4H/
|
|
2142
|
+
// Tool execution may have created pending Q4H/sideDialogs mid-round. Respect the
|
|
2119
2143
|
// dialog's actual suspension state here so auto-continue is decided in one place.
|
|
2120
2144
|
const suspensionAfterToolRound = await dlg.getSuspensionStatus({
|
|
2121
|
-
|
|
2145
|
+
allowPendingSideDialogs: routed.hasImmediateFollowupToolCalls,
|
|
2122
2146
|
});
|
|
2123
2147
|
if (!suspensionAfterToolRound.canDrive) {
|
|
2124
2148
|
await resetDiligenceBudgetAfterQ4H(dlg, team);
|
|
@@ -2,9 +2,9 @@ import type { Dialog, DialogID } from '../../dialog';
|
|
|
2
2
|
import type { KernelDriverCoreResult, KernelDriverDriveArgs, KernelDriverDriveCallbacks, KernelDriverDriveResult, KernelDriverEmitSayingArgs, KernelDriverEmitSayingResult, KernelDriverSupplyResponseArgs, KernelDriverSupplyResponseResult } from './types';
|
|
3
3
|
export declare function driveDialogStream(...driveArgs: KernelDriverDriveArgs): KernelDriverDriveResult;
|
|
4
4
|
export declare function emitSayingEventsBridge(...args: KernelDriverEmitSayingArgs): KernelDriverEmitSayingResult;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function supplyResponseToAskerDialog(...args: KernelDriverSupplyResponseArgs): KernelDriverSupplyResponseResult;
|
|
6
6
|
export declare function driveDialogStreamCore(dlg: Dialog, callbacks: KernelDriverDriveCallbacks, humanPrompt?: KernelDriverDriveArgs[1], driveOptions?: KernelDriverDriveArgs[3]): Promise<KernelDriverCoreResult>;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function supplyResponseToSideDialogBridge(parentDialog: Dialog, sideDialogId: DialogID, responseText: string, callType: 'A' | 'B' | 'C', callId?: string, status?: 'completed' | 'failed', calleeResponseRef?: {
|
|
8
8
|
course: number;
|
|
9
9
|
genseq: number;
|
|
10
10
|
}): Promise<void>;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.driveDialogStream = driveDialogStream;
|
|
4
4
|
exports.emitSayingEventsBridge = emitSayingEventsBridge;
|
|
5
|
-
exports.
|
|
5
|
+
exports.supplyResponseToAskerDialog = supplyResponseToAskerDialog;
|
|
6
6
|
exports.driveDialogStreamCore = driveDialogStreamCore;
|
|
7
|
-
exports.
|
|
7
|
+
exports.supplyResponseToSideDialogBridge = supplyResponseToSideDialogBridge;
|
|
8
8
|
const drive_1 = require("./drive");
|
|
9
9
|
const events_1 = require("./events");
|
|
10
10
|
const flow_1 = require("./flow");
|
|
11
|
-
const
|
|
11
|
+
const sideDialog_1 = require("./sideDialog");
|
|
12
12
|
const types_1 = require("./types");
|
|
13
13
|
function dispatchDrive(dialog, options) {
|
|
14
14
|
if (options.humanPrompt) {
|
|
@@ -33,11 +33,11 @@ async function emitSayingEventsBridge(...args) {
|
|
|
33
33
|
const [dlg, content] = args;
|
|
34
34
|
return await (0, events_1.emitSayingEvents)(dlg, content);
|
|
35
35
|
}
|
|
36
|
-
async function
|
|
37
|
-
const [parentDialog,
|
|
38
|
-
return await (0,
|
|
36
|
+
async function supplyResponseToAskerDialog(...args) {
|
|
37
|
+
const [parentDialog, sideDialogId, responseText, callType, callId, status, calleeResponseRef] = args;
|
|
38
|
+
return await (0, sideDialog_1.supplyResponseToAskerDialog)({
|
|
39
39
|
parentDialog,
|
|
40
|
-
|
|
40
|
+
sideDialogId,
|
|
41
41
|
responseText,
|
|
42
42
|
callType,
|
|
43
43
|
callId,
|
|
@@ -51,10 +51,10 @@ async function supplyResponseToSupdialog(...args) {
|
|
|
51
51
|
async function driveDialogStreamCore(dlg, callbacks, humanPrompt, driveOptions) {
|
|
52
52
|
return await (0, drive_1.driveDialogStreamCore)(dlg, callbacks, humanPrompt, driveOptions);
|
|
53
53
|
}
|
|
54
|
-
async function
|
|
55
|
-
await (0,
|
|
54
|
+
async function supplyResponseToSideDialogBridge(parentDialog, sideDialogId, responseText, callType, callId, status, calleeResponseRef) {
|
|
55
|
+
await (0, sideDialog_1.supplyResponseToAskerDialog)({
|
|
56
56
|
parentDialog,
|
|
57
|
-
|
|
57
|
+
sideDialogId,
|
|
58
58
|
responseText,
|
|
59
59
|
callType,
|
|
60
60
|
callId,
|
|
@@ -104,7 +104,7 @@ function buildFbrSystemPrompt(language, phase) {
|
|
|
104
104
|
'# 扪心自问(FBR)支线对话',
|
|
105
105
|
'',
|
|
106
106
|
'- 你正在处理一次由 `freshBootsReasoning` 触发的 FBR 支线对话。',
|
|
107
|
-
'-
|
|
107
|
+
'- 诉请正文是主要任务上下文;不要假设能访问诉请者一侧的对话历史。',
|
|
108
108
|
'- 若使用可恢复会话,你可以使用本支线对话自身的会话历史作为显式上下文。',
|
|
109
109
|
'- 发散阶段要对反直觉、离谱、少数派的候选想法保持开放,把它们当作待检验候选,而不是提前镇压。',
|
|
110
110
|
'- 收敛阶段要自主去噪:只保留跨轮稳定共识、彼此能互证且能被诉请正文支撑的内容;未获独立支撑的离谱想法默认当噪音丢弃,不进入最终结论。',
|
|
@@ -115,11 +115,11 @@ function buildFbrSystemPrompt(language, phase) {
|
|
|
115
115
|
].join('\n');
|
|
116
116
|
}
|
|
117
117
|
return [
|
|
118
|
-
'# Fresh Boots Reasoning (FBR)
|
|
118
|
+
'# Fresh Boots Reasoning (FBR) Side Dialog',
|
|
119
119
|
'',
|
|
120
|
-
'- You are handling an FBR
|
|
121
|
-
'- The tellask body is the primary task context; do not assume access to
|
|
122
|
-
'- If this is a resumable session, you may use this
|
|
120
|
+
'- You are handling an FBR Side Dialog triggered by `freshBootsReasoning`.',
|
|
121
|
+
'- The tellask body is the primary task context; do not assume access to tellasker-side dialog history.',
|
|
122
|
+
'- If this is a resumable session, you may use this Side Dialog’s own session history as explicit context.',
|
|
123
123
|
'- In divergence, stay open to counterintuitive, wild, or minority hypotheses; treat them as candidates to test instead of suppressing them early.',
|
|
124
124
|
'- In convergence, denoise autonomously: keep only stable cross-round consensus, mutually reinforcing points, and body-grounded evidence; unsupported wild ideas default to noise and must not enter the final conclusion.',
|
|
125
125
|
'- If critical context is missing, state what is missing and why it blocks a responsible conclusion.',
|
|
@@ -356,7 +356,7 @@ function advanceFbrState(state) {
|
|
|
356
356
|
}
|
|
357
357
|
function buildFbrPromptForState(args) {
|
|
358
358
|
if (args.state.phase === 'divergence') {
|
|
359
|
-
return (0, inter_dialog_format_1.
|
|
359
|
+
return (0, inter_dialog_format_1.formatAssignmentFromAskerDialog)({
|
|
360
360
|
callName: 'freshBootsReasoning',
|
|
361
361
|
fromAgentId: args.fromAgentId,
|
|
362
362
|
toAgentId: args.toAgentId,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ScheduleDriveFn } from './
|
|
1
|
+
import type { ScheduleDriveFn } from './sideDialog';
|
|
2
2
|
import type { KernelDriverDriveArgs, KernelDriverDriveInvoker, KernelDriverDriveResult, KernelDriverDriveScheduler, KernelDriverRuntimeState } from './types';
|
|
3
3
|
export declare function executeDriveRound(args: {
|
|
4
4
|
runtime: KernelDriverRuntimeState;
|