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.
Files changed (277) hide show
  1. package/dist/access-control.js +6 -6
  2. package/dist/apps/runtime.d.ts +2 -2
  3. package/dist/apps/runtime.js +28 -28
  4. package/dist/apps-host/client.d.ts +1 -1
  5. package/dist/apps-host/host.js +7 -7
  6. package/dist/apps-host/ipc-types.d.ts +2 -2
  7. package/dist/apps-host/ipc-types.js +10 -10
  8. package/dist/cli/read.d.ts +0 -1
  9. package/dist/cli/read.js +1 -6
  10. package/dist/dialog-display-state.d.ts +6 -6
  11. package/dist/dialog-display-state.js +46 -46
  12. package/dist/dialog-factory.d.ts +12 -12
  13. package/dist/dialog-factory.js +33 -30
  14. package/dist/dialog-fork.d.ts +2 -2
  15. package/dist/dialog-fork.js +140 -115
  16. package/dist/dialog-global-registry.d.ts +5 -5
  17. package/dist/dialog-global-registry.js +11 -11
  18. package/dist/dialog-instance-registry.d.ts +3 -3
  19. package/dist/dialog-instance-registry.js +52 -41
  20. package/dist/dialog.d.ts +100 -113
  21. package/dist/dialog.js +274 -229
  22. package/dist/docs/agent-priming.md +5 -5
  23. package/dist/docs/agent-priming.zh.md +5 -5
  24. package/dist/docs/app-constitution.md +1 -1
  25. package/dist/docs/app-constitution.zh.md +1 -1
  26. package/dist/docs/cli-usage.md +1 -1
  27. package/dist/docs/cli-usage.zh.md +1 -1
  28. package/dist/docs/design.md +14 -14
  29. package/dist/docs/design.zh.md +14 -14
  30. package/dist/docs/dialog-persistence.md +58 -58
  31. package/dist/docs/dialog-persistence.zh.md +61 -61
  32. package/dist/docs/dialog-system.md +363 -367
  33. package/dist/docs/dialog-system.zh.md +355 -357
  34. package/dist/docs/diligence-push.md +18 -18
  35. package/dist/docs/diligence-push.zh.md +17 -17
  36. package/dist/docs/dominds-agent-collaboration.zh.md +3 -3
  37. package/dist/docs/dominds-terminology.md +46 -47
  38. package/dist/docs/encapsulated-taskdoc.md +4 -4
  39. package/dist/docs/encapsulated-taskdoc.zh.md +3 -3
  40. package/dist/docs/fbr.md +30 -30
  41. package/dist/docs/fbr.zh.md +15 -15
  42. package/dist/docs/i18n.md +2 -2
  43. package/dist/docs/i18n.zh.md +2 -2
  44. package/dist/docs/mcp-support.md +5 -4
  45. package/dist/docs/mcp-support.zh.md +3 -2
  46. package/dist/docs/memory-system.md +4 -4
  47. package/dist/docs/memory-system.zh.md +1 -1
  48. package/dist/docs/mottos.md +1 -1
  49. package/dist/docs/mottos.zh.md +1 -1
  50. package/dist/docs/q4h.md +3 -3
  51. package/dist/docs/q4h.zh.md +1 -1
  52. package/dist/docs/roadmap.md +2 -2
  53. package/dist/docs/team_mgmt-toolset.md +11 -3
  54. package/dist/docs/team_mgmt-toolset.zh.md +9 -2
  55. package/dist/docs/tellask-collab.md +18 -18
  56. package/dist/docs/tellask-collab.zh.md +8 -8
  57. package/dist/docs/tellask-revive-context-refactor.zh.md +591 -0
  58. package/dist/evt-registry.d.ts +1 -2
  59. package/dist/evt-registry.js +2 -7
  60. package/dist/llm/gen/mock.js +9 -0
  61. package/dist/llm/kernel-driver/context.d.ts +1 -2
  62. package/dist/llm/kernel-driver/context.js +12 -26
  63. package/dist/llm/kernel-driver/drive.js +99 -75
  64. package/dist/llm/kernel-driver/engine.d.ts +2 -2
  65. package/dist/llm/kernel-driver/engine.js +10 -10
  66. package/dist/llm/kernel-driver/fbr.js +6 -6
  67. package/dist/llm/kernel-driver/flow.d.ts +1 -1
  68. package/dist/llm/kernel-driver/flow.js +129 -93
  69. package/dist/llm/kernel-driver/guardrails.js +4 -4
  70. package/dist/llm/kernel-driver/index.d.ts +1 -1
  71. package/dist/llm/kernel-driver/index.js +2 -2
  72. package/dist/llm/kernel-driver/loop.js +30 -30
  73. package/dist/llm/kernel-driver/reply-guidance.js +47 -52
  74. package/dist/llm/kernel-driver/restore.d.ts +3 -3
  75. package/dist/llm/kernel-driver/restore.js +23 -28
  76. package/dist/llm/kernel-driver/runtime.d.ts +1 -1
  77. package/dist/llm/kernel-driver/runtime.js +1 -1
  78. package/dist/llm/kernel-driver/sideDialog-txn.d.ts +8 -0
  79. package/dist/llm/kernel-driver/{subdialog-txn.js → sideDialog-txn.js} +13 -13
  80. package/dist/llm/kernel-driver/{subdialog.d.ts → sideDialog.d.ts} +13 -13
  81. package/dist/llm/kernel-driver/{subdialog.js → sideDialog.js} +203 -170
  82. package/dist/llm/kernel-driver/tellask-special.d.ts +7 -3
  83. package/dist/llm/kernel-driver/tellask-special.js +474 -497
  84. package/dist/llm/kernel-driver/types.d.ts +25 -9
  85. package/dist/mcp/config.d.ts +1 -0
  86. package/dist/mcp/config.js +7 -2
  87. package/dist/mcp/supervisor.d.ts +2 -0
  88. package/dist/mcp/supervisor.js +2 -1
  89. package/dist/minds/builtin/pangu/persona.en.md +4 -4
  90. package/dist/minds/load.js +6 -6
  91. package/dist/minds/system-prompt-parts.d.ts +1 -1
  92. package/dist/minds/system-prompt-parts.js +12 -12
  93. package/dist/minds/system-prompt.d.ts +1 -1
  94. package/dist/minds/system-prompt.js +56 -56
  95. package/dist/persistence-errors.d.ts +1 -1
  96. package/dist/persistence.d.ts +126 -121
  97. package/dist/persistence.js +1190 -786
  98. package/dist/priming.d.ts +3 -3
  99. package/dist/priming.js +62 -61
  100. package/dist/recovery/reply-special.js +5 -5
  101. package/dist/runtime/driver-messages.d.ts +3 -2
  102. package/dist/runtime/driver-messages.js +68 -57
  103. package/dist/runtime/inter-dialog-format.d.ts +12 -10
  104. package/dist/runtime/inter-dialog-format.js +80 -35
  105. package/dist/runtime/interjection-pause-stop.js +1 -1
  106. package/dist/runtime/reply-prompt-copy.d.ts +7 -3
  107. package/dist/runtime/reply-prompt-copy.js +39 -14
  108. package/dist/server/api-routes.js +87 -83
  109. package/dist/server/static-server.js +1 -1
  110. package/dist/server/websocket-handler.js +163 -153
  111. package/dist/tool-availability.js +1 -1
  112. package/dist/tools/app-reminders.js +17 -4
  113. package/dist/tools/ctrl.js +5 -5
  114. package/dist/tools/os.js +16 -16
  115. package/dist/tools/pending-tellask-reminder.js +20 -14
  116. package/dist/tools/prompts/control/en/index.md +1 -1
  117. package/dist/tools/prompts/control/en/principles.md +8 -8
  118. package/dist/tools/prompts/control/en/scenarios.md +7 -7
  119. package/dist/tools/prompts/control/en/tools.md +7 -7
  120. package/dist/tools/prompts/control/zh/principles.md +4 -4
  121. package/dist/tools/prompts/control/zh/scenarios.md +5 -5
  122. package/dist/tools/prompts/control/zh/tools.md +3 -3
  123. package/dist/tools/prompts/team_memory/en/scenarios.md +1 -1
  124. package/dist/tools/prompts/team_memory/zh/scenarios.md +1 -1
  125. package/dist/tools/team_mgmt-manual.js +2 -2
  126. package/dist/tools/team_mgmt-mcp-manual.js +10 -0
  127. package/dist/tools/team_mgmt.js +4 -4
  128. package/dist/utils/taskdoc.js +12 -12
  129. package/package.json +3 -3
  130. package/webapp/dist/assets/{_basePickBy-BPJaiZdW.js → _basePickBy-B7M9Q0Fa.js} +3 -3
  131. package/webapp/dist/assets/_basePickBy-B7M9Q0Fa.js.map +1 -0
  132. package/webapp/dist/assets/{_baseUniq-BEetT15i.js → _baseUniq-DAeYoL6j.js} +2 -2
  133. package/webapp/dist/assets/_baseUniq-DAeYoL6j.js.map +1 -0
  134. package/webapp/dist/assets/{arc-Dm7Zf36f.js → arc-Bh4nDbNR.js} +2 -2
  135. package/webapp/dist/assets/arc-Bh4nDbNR.js.map +1 -0
  136. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-BpTPtkuo.js → architectureDiagram-2XIMDMQ5-CxqmdsIm.js} +26 -8
  137. package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-CxqmdsIm.js.map +1 -0
  138. package/webapp/dist/assets/{blockDiagram-VD42YOAC-C8fLN0iu.js → blockDiagram-WCTKOSBZ-CxIWLtpt.js} +187 -170
  139. package/webapp/dist/assets/blockDiagram-WCTKOSBZ-CxIWLtpt.js.map +1 -0
  140. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-BpPr62CH.js → c4Diagram-IC4MRINW-1qErOIgG.js} +4 -4
  141. package/webapp/dist/assets/c4Diagram-IC4MRINW-1qErOIgG.js.map +1 -0
  142. package/webapp/dist/assets/{channel-EMYoPjW3.js → channel-DkgZHNUe.js} +2 -2
  143. package/webapp/dist/assets/channel-DkgZHNUe.js.map +1 -0
  144. package/webapp/dist/assets/{chunk-4BX2VUAB-CefNtjWG.js → chunk-4BX2VUAB-BmdMbU9v.js} +2 -2
  145. package/webapp/dist/assets/chunk-4BX2VUAB-BmdMbU9v.js.map +1 -0
  146. package/webapp/dist/assets/{chunk-55IACEB6-C_X7T43V.js → chunk-55IACEB6-D6LDTDBy.js} +2 -2
  147. package/webapp/dist/assets/chunk-55IACEB6-D6LDTDBy.js.map +1 -0
  148. package/webapp/dist/assets/{chunk-FMBD7UC4-ORmtkrtS.js → chunk-FMBD7UC4-C-BdCe4C.js} +2 -2
  149. package/webapp/dist/assets/chunk-FMBD7UC4-C-BdCe4C.js.map +1 -0
  150. package/webapp/dist/assets/{chunk-TZMSLE5B-Gao4qrq7.js → chunk-JSJVCQXG-WA_BLIm9.js} +14 -6
  151. package/webapp/dist/assets/chunk-JSJVCQXG-WA_BLIm9.js.map +1 -0
  152. package/webapp/dist/assets/{chunk-QN33PNHL-LTAOVhWu.js → chunk-KX2RTZJC-CA7sDJO5.js} +2 -2
  153. package/webapp/dist/assets/chunk-KX2RTZJC-CA7sDJO5.js.map +1 -0
  154. package/webapp/dist/assets/{chunk-DI55MBZ5-CbvrsI_w.js → chunk-NQ4KR5QH-wlvxalE3.js} +9 -7
  155. package/webapp/dist/assets/chunk-NQ4KR5QH-wlvxalE3.js.map +1 -0
  156. package/webapp/dist/assets/{chunk-QZHKN3VN-ZoUM_4u5.js → chunk-QZHKN3VN-Bo1VMcph.js} +2 -2
  157. package/webapp/dist/assets/chunk-QZHKN3VN-Bo1VMcph.js.map +1 -0
  158. package/webapp/dist/assets/{chunk-B4BG7PRW-BRe3_2oA.js → chunk-WL4C6EOR-B-Pk44be.js} +171 -121
  159. package/webapp/dist/assets/chunk-WL4C6EOR-B-Pk44be.js.map +1 -0
  160. package/webapp/dist/assets/{classDiagram-2ON5EDUG-uha1vIGN.js → classDiagram-VBA2DB6C-BqKuyb49.js} +7 -6
  161. package/webapp/dist/assets/classDiagram-VBA2DB6C-BqKuyb49.js.map +1 -0
  162. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-uha1vIGN.js → classDiagram-v2-RAHNMMFH-BqKuyb49.js} +7 -6
  163. package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-BqKuyb49.js.map +1 -0
  164. package/webapp/dist/assets/{clone-_9Ayb1Gp.js → clone-BX5z8WVZ.js} +2 -2
  165. package/webapp/dist/assets/clone-BX5z8WVZ.js.map +1 -0
  166. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-C8wDw3NY.js → cose-bilkent-S5V4N54A-B-s11SgN.js} +2 -2
  167. package/webapp/dist/assets/cose-bilkent-S5V4N54A-B-s11SgN.js.map +1 -0
  168. package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
  169. package/webapp/dist/assets/{dagre-6UL2VRFP-BUSeNot0.js → dagre-KLK3FWXG-DmQFV2qK.js} +7 -7
  170. package/webapp/dist/assets/dagre-KLK3FWXG-DmQFV2qK.js.map +1 -0
  171. package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
  172. package/webapp/dist/assets/{diagram-PSM6KHXK-CMZAksVC.js → diagram-E7M64L7V-QRaBfST8.js} +10 -10
  173. package/webapp/dist/assets/diagram-E7M64L7V-QRaBfST8.js.map +1 -0
  174. package/webapp/dist/assets/{diagram-QEK2KX5R-BQKoRtwy.js → diagram-IFDJBPK2-lrWn1Obo.js} +9 -8
  175. package/webapp/dist/assets/diagram-IFDJBPK2-lrWn1Obo.js.map +1 -0
  176. package/webapp/dist/assets/{diagram-S2PKOQOG-DjMG97kd.js → diagram-P4PSJMXO-sTU7Hh-Y.js} +8 -8
  177. package/webapp/dist/assets/diagram-P4PSJMXO-sTU7Hh-Y.js.map +1 -0
  178. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BujwA137.js → erDiagram-INFDFZHY-Cx6jc9Wq.js} +96 -75
  179. package/webapp/dist/assets/erDiagram-INFDFZHY-Cx6jc9Wq.js.map +1 -0
  180. package/webapp/dist/assets/{flowDiagram-NV44I4VS-DgwPjg4y.js → flowDiagram-PKNHOUZH-DfGI49Dz.js} +98 -81
  181. package/webapp/dist/assets/flowDiagram-PKNHOUZH-DfGI49Dz.js.map +1 -0
  182. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Db2ykf3E.js → ganttDiagram-A5KZAMGK-nrcHWWaM.js} +28 -3
  183. package/webapp/dist/assets/ganttDiagram-A5KZAMGK-nrcHWWaM.js.map +1 -0
  184. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-D_gSifkv.js → gitGraphDiagram-K3NZZRJ6-D8ivAqd6.js} +38 -46
  185. package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-D8ivAqd6.js.map +1 -0
  186. package/webapp/dist/assets/graph-R5G-y8tB.js +782 -0
  187. package/webapp/dist/assets/graph-R5G-y8tB.js.map +1 -0
  188. package/webapp/dist/assets/{index-DLajsIDJ.js → index--fy89xGh.js} +2214 -2023
  189. package/webapp/dist/assets/index--fy89xGh.js.map +1 -0
  190. package/webapp/dist/assets/{index-xvYYeHuy.css → index-DZFkLLVz.css} +18 -10
  191. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BDba5pKs.js → infoDiagram-LFFYTUFH-PIoZHr7s.js} +7 -7
  192. package/webapp/dist/assets/infoDiagram-LFFYTUFH-PIoZHr7s.js.map +1 -0
  193. package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
  194. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-oCM-LYk1.js +966 -0
  195. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-oCM-LYk1.js.map +1 -0
  196. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-CmJAbmlm.js → journeyDiagram-4ABVD52K-C2qidjQ5.js} +5 -5
  197. package/webapp/dist/assets/journeyDiagram-4ABVD52K-C2qidjQ5.js.map +1 -0
  198. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-DxQeBTDk.js → kanban-definition-K7BYSVSG-Du0TC8WS.js} +5 -3
  199. package/webapp/dist/assets/kanban-definition-K7BYSVSG-Du0TC8WS.js.map +1 -0
  200. package/webapp/dist/assets/{layout-DteV_yE8.js → layout-VmEo1OEB.js} +5 -5
  201. package/webapp/dist/assets/layout-VmEo1OEB.js.map +1 -0
  202. package/webapp/dist/assets/{linear-zItbPrND.js → linear-B662YHAc.js} +2 -2
  203. package/webapp/dist/assets/linear-B662YHAc.js.map +1 -0
  204. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BJXI7UqO.js → mindmap-definition-YRQLILUH-D7arZj95.js} +7 -5
  205. package/webapp/dist/assets/mindmap-definition-YRQLILUH-D7arZj95.js.map +1 -0
  206. package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
  207. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BpM-aH2p.js → pieDiagram-SKSYHLDU-DvjPP4PA.js} +8 -8
  208. package/webapp/dist/assets/pieDiagram-SKSYHLDU-DvjPP4PA.js.map +1 -0
  209. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-NXdIpA15.js → quadrantDiagram-337W2JSQ-B_JUGMj_.js} +3 -3
  210. package/webapp/dist/assets/quadrantDiagram-337W2JSQ-B_JUGMj_.js.map +1 -0
  211. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-D1AICAA0.js → requirementDiagram-Z7DCOOCP-DF0mpvE3.js} +16 -6
  212. package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-DF0mpvE3.js.map +1 -0
  213. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-WiReDPfo.js → sankeyDiagram-WA2Y5GQK-CoXlxv00.js} +2 -2
  214. package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-CoXlxv00.js.map +1 -0
  215. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Cw76oP8t.js → sequenceDiagram-2WXFIKYE-DYqT5Pg7.js} +601 -201
  216. package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-DYqT5Pg7.js.map +1 -0
  217. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-QjCeRczs.js → stateDiagram-RAJIS63D-D9b1mN8-.js} +9 -9
  218. package/webapp/dist/assets/stateDiagram-RAJIS63D-D9b1mN8-.js.map +1 -0
  219. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-IClqxQ4s.js → stateDiagram-v2-FVOUBMTO-DNzgudL_.js} +5 -5
  220. package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-DNzgudL_.js.map +1 -0
  221. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BfyfTY7m.js → timeline-definition-YZTLITO2-CkyKUY7A.js} +3 -3
  222. package/webapp/dist/assets/timeline-definition-YZTLITO2-CkyKUY7A.js.map +1 -0
  223. package/webapp/dist/assets/{treemap-GDKQZRPO-C5MiL6--.js → treemap-KZPCXAKY-CZd09kF-.js} +37 -24
  224. package/webapp/dist/assets/treemap-KZPCXAKY-CZd09kF-.js.map +1 -0
  225. package/webapp/dist/assets/vennDiagram-LZ73GAT5-BxVF5Olo.js +2487 -0
  226. package/webapp/dist/assets/vennDiagram-LZ73GAT5-BxVF5Olo.js.map +1 -0
  227. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-ybaJrSry.js → xychartDiagram-JWTSCODW-BRwRloPc.js} +4 -4
  228. package/webapp/dist/assets/xychartDiagram-JWTSCODW-BRwRloPc.js.map +1 -0
  229. package/webapp/dist/index.html +2 -2
  230. package/dist/docs/issues/global-dialog-event-broadcaster-missing.md +0 -128
  231. package/dist/llm/kernel-driver/subdialog-txn.d.ts +0 -8
  232. package/webapp/dist/assets/_basePickBy-BPJaiZdW.js.map +0 -1
  233. package/webapp/dist/assets/_baseUniq-BEetT15i.js.map +0 -1
  234. package/webapp/dist/assets/arc-Dm7Zf36f.js.map +0 -1
  235. package/webapp/dist/assets/architectureDiagram-VXUJARFQ-BpTPtkuo.js.map +0 -1
  236. package/webapp/dist/assets/blockDiagram-VD42YOAC-C8fLN0iu.js.map +0 -1
  237. package/webapp/dist/assets/c4Diagram-YG6GDRKO-BpPr62CH.js.map +0 -1
  238. package/webapp/dist/assets/channel-EMYoPjW3.js.map +0 -1
  239. package/webapp/dist/assets/chunk-4BX2VUAB-CefNtjWG.js.map +0 -1
  240. package/webapp/dist/assets/chunk-55IACEB6-C_X7T43V.js.map +0 -1
  241. package/webapp/dist/assets/chunk-B4BG7PRW-BRe3_2oA.js.map +0 -1
  242. package/webapp/dist/assets/chunk-DI55MBZ5-CbvrsI_w.js.map +0 -1
  243. package/webapp/dist/assets/chunk-FMBD7UC4-ORmtkrtS.js.map +0 -1
  244. package/webapp/dist/assets/chunk-QN33PNHL-LTAOVhWu.js.map +0 -1
  245. package/webapp/dist/assets/chunk-QZHKN3VN-ZoUM_4u5.js.map +0 -1
  246. package/webapp/dist/assets/chunk-TZMSLE5B-Gao4qrq7.js.map +0 -1
  247. package/webapp/dist/assets/classDiagram-2ON5EDUG-uha1vIGN.js.map +0 -1
  248. package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-uha1vIGN.js.map +0 -1
  249. package/webapp/dist/assets/clone-_9Ayb1Gp.js.map +0 -1
  250. package/webapp/dist/assets/cose-bilkent-S5V4N54A-C8wDw3NY.js.map +0 -1
  251. package/webapp/dist/assets/dagre-6UL2VRFP-BUSeNot0.js.map +0 -1
  252. package/webapp/dist/assets/diagram-PSM6KHXK-CMZAksVC.js.map +0 -1
  253. package/webapp/dist/assets/diagram-QEK2KX5R-BQKoRtwy.js.map +0 -1
  254. package/webapp/dist/assets/diagram-S2PKOQOG-DjMG97kd.js.map +0 -1
  255. package/webapp/dist/assets/erDiagram-Q2GNP2WA-BujwA137.js.map +0 -1
  256. package/webapp/dist/assets/flowDiagram-NV44I4VS-DgwPjg4y.js.map +0 -1
  257. package/webapp/dist/assets/ganttDiagram-JELNMOA3-Db2ykf3E.js.map +0 -1
  258. package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-D_gSifkv.js.map +0 -1
  259. package/webapp/dist/assets/graph-BHjCU5xP.js +0 -425
  260. package/webapp/dist/assets/graph-BHjCU5xP.js.map +0 -1
  261. package/webapp/dist/assets/index-DLajsIDJ.js.map +0 -1
  262. package/webapp/dist/assets/infoDiagram-HS3SLOUP-BDba5pKs.js.map +0 -1
  263. package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-CmJAbmlm.js.map +0 -1
  264. package/webapp/dist/assets/kanban-definition-3W4ZIXB7-DxQeBTDk.js.map +0 -1
  265. package/webapp/dist/assets/layout-DteV_yE8.js.map +0 -1
  266. package/webapp/dist/assets/linear-zItbPrND.js.map +0 -1
  267. package/webapp/dist/assets/mindmap-definition-VGOIOE7T-BJXI7UqO.js.map +0 -1
  268. package/webapp/dist/assets/pieDiagram-ADFJNKIX-BpM-aH2p.js.map +0 -1
  269. package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-NXdIpA15.js.map +0 -1
  270. package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-D1AICAA0.js.map +0 -1
  271. package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-WiReDPfo.js.map +0 -1
  272. package/webapp/dist/assets/sequenceDiagram-WL72ISMW-Cw76oP8t.js.map +0 -1
  273. package/webapp/dist/assets/stateDiagram-FKZM4ZOC-QjCeRczs.js.map +0 -1
  274. package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-IClqxQ4s.js.map +0 -1
  275. package/webapp/dist/assets/timeline-definition-IT6M3QCI-BfyfTY7m.js.map +0 -1
  276. package/webapp/dist/assets/treemap-GDKQZRPO-C5MiL6--.js.map +0 -1
  277. package/webapp/dist/assets/xychartDiagram-PRI3JC2R-ybaJrSry.js.map +0 -1
@@ -21,62 +21,62 @@ function formatDriveTriggerForLog(trigger) {
21
21
  }
22
22
  async function driveQueuedDialogsOnce() {
23
23
  const dialogsToDrive = dialog_global_registry_1.globalDialogRegistry.getDialogsNeedingDrive();
24
- for (const rootDialog of dialogsToDrive) {
24
+ for (const mainDialog of dialogsToDrive) {
25
25
  try {
26
- const latest = await persistence_1.DialogPersistence.loadDialogLatest(rootDialog.id, 'running');
26
+ const latest = await persistence_1.DialogPersistence.loadDialogLatest(mainDialog.id, 'running');
27
27
  const executionMarker = latest?.executionMarker;
28
- const stopRequested = (0, dialog_display_state_1.getStopRequestedReason)(rootDialog.id);
28
+ const stopRequested = (0, dialog_display_state_1.getStopRequestedReason)(mainDialog.id);
29
29
  const interruptedRequiresExplicitResume = executionMarker?.kind === 'interrupted' &&
30
30
  (0, dialog_interruption_1.doesInterruptionReasonRequireExplicitResume)(executionMarker.reason);
31
31
  if (interruptedRequiresExplicitResume || stopRequested !== undefined) {
32
- dialog_global_registry_1.globalDialogRegistry.markNotNeedingDrive(rootDialog.id.rootId, {
32
+ dialog_global_registry_1.globalDialogRegistry.markNotNeedingDrive(mainDialog.id.rootId, {
33
33
  source: 'kernel_driver_backend_loop',
34
34
  reason: interruptedRequiresExplicitResume
35
35
  ? 'execution_marker_blocked:interrupted'
36
36
  : `stop_requested:${stopRequested}`,
37
37
  });
38
- await persistence_1.DialogPersistence.setNeedsDrive(rootDialog.id, false, rootDialog.status);
38
+ await persistence_1.DialogPersistence.setNeedsDrive(mainDialog.id, false, mainDialog.status);
39
39
  continue;
40
40
  }
41
- if ((0, dialog_display_state_1.hasActiveRun)(rootDialog.id)) {
41
+ if ((0, dialog_display_state_1.hasActiveRun)(mainDialog.id)) {
42
42
  log_1.log.debug('Backend driver deferred queued root drive because dialog already has an active run', undefined, {
43
- dialogId: rootDialog.id.valueOf(),
44
- rootId: rootDialog.id.rootId,
43
+ dialogId: mainDialog.id.valueOf(),
44
+ rootId: mainDialog.id.rootId,
45
45
  });
46
- dialog_global_registry_1.globalDialogRegistry.noteActiveRunBlockedQueuedDrive(rootDialog.id.rootId);
46
+ dialog_global_registry_1.globalDialogRegistry.noteActiveRunBlockedQueuedDrive(mainDialog.id.rootId);
47
47
  continue;
48
48
  }
49
- if (!(await rootDialog.canDrive())) {
49
+ if (!(await mainDialog.canDrive())) {
50
50
  continue;
51
51
  }
52
- await (0, engine_1.driveDialogStream)(rootDialog, undefined, true, {
52
+ await (0, engine_1.driveDialogStream)(mainDialog, undefined, true, {
53
53
  source: 'kernel_driver_backend_loop',
54
54
  reason: 'global_dialog_registry_needs_drive',
55
55
  });
56
- const status = await rootDialog.getSuspensionStatus();
57
- const shouldStayQueued = rootDialog.hasUpNext() || !status.canDrive;
56
+ const status = await mainDialog.getSuspensionStatus();
57
+ const shouldStayQueued = mainDialog.hasUpNext() || !status.canDrive;
58
58
  if (shouldStayQueued) {
59
- dialog_global_registry_1.globalDialogRegistry.markNeedsDrive(rootDialog.id.rootId, {
59
+ dialog_global_registry_1.globalDialogRegistry.markNeedsDrive(mainDialog.id.rootId, {
60
60
  source: 'kernel_driver_backend_loop',
61
- reason: rootDialog.hasUpNext() ? 'post_drive_upnext_pending' : 'post_drive_suspended',
61
+ reason: mainDialog.hasUpNext() ? 'post_drive_upnext_pending' : 'post_drive_suspended',
62
62
  });
63
- await persistence_1.DialogPersistence.setNeedsDrive(rootDialog.id, true, rootDialog.status);
63
+ await persistence_1.DialogPersistence.setNeedsDrive(mainDialog.id, true, mainDialog.status);
64
64
  }
65
65
  else {
66
- dialog_global_registry_1.globalDialogRegistry.markNotNeedingDrive(rootDialog.id.rootId, {
66
+ dialog_global_registry_1.globalDialogRegistry.markNotNeedingDrive(mainDialog.id.rootId, {
67
67
  source: 'kernel_driver_backend_loop',
68
68
  reason: 'post_drive_idle',
69
69
  });
70
- await persistence_1.DialogPersistence.setNeedsDrive(rootDialog.id, false, rootDialog.status);
70
+ await persistence_1.DialogPersistence.setNeedsDrive(mainDialog.id, false, mainDialog.status);
71
71
  }
72
- const lastTrigger = dialog_global_registry_1.globalDialogRegistry.getLastDriveTrigger(rootDialog.id.rootId);
72
+ const lastTrigger = dialog_global_registry_1.globalDialogRegistry.getLastDriveTrigger(mainDialog.id.rootId);
73
73
  const lastTriggerAgeMs = lastTrigger !== undefined ? Math.max(0, Date.now() - lastTrigger.emittedAtMs) : undefined;
74
- if (status.subdialogs) {
75
- log_1.log.debug(`Dialog ${rootDialog.id.rootId} suspended, waiting for subdialogs`, undefined, {
76
- rootId: rootDialog.id.rootId,
74
+ if (status.sideDialogs) {
75
+ log_1.log.debug(`Dialog ${mainDialog.id.rootId} suspended, waiting for sideDialogs`, undefined, {
76
+ rootId: mainDialog.id.rootId,
77
77
  waitingQ4H: status.q4h,
78
- waitingSubdialogs: status.subdialogs,
79
- hasQueuedUpNext: rootDialog.hasUpNext(),
78
+ waitingSideDialogs: status.sideDialogs,
79
+ hasQueuedUpNext: mainDialog.hasUpNext(),
80
80
  lastDriveTrigger: lastTrigger
81
81
  ? {
82
82
  action: lastTrigger.action,
@@ -92,11 +92,11 @@ async function driveQueuedDialogsOnce() {
92
92
  });
93
93
  }
94
94
  if (status.q4h) {
95
- log_1.log.debug(`Dialog ${rootDialog.id.rootId} awaiting Q4H answer`, undefined, {
96
- rootId: rootDialog.id.rootId,
95
+ log_1.log.debug(`Dialog ${mainDialog.id.rootId} awaiting Q4H answer`, undefined, {
96
+ rootId: mainDialog.id.rootId,
97
97
  waitingQ4H: status.q4h,
98
- waitingSubdialogs: status.subdialogs,
99
- hasQueuedUpNext: rootDialog.hasUpNext(),
98
+ waitingSideDialogs: status.sideDialogs,
99
+ hasQueuedUpNext: mainDialog.hasUpNext(),
100
100
  lastDriveTrigger: lastTrigger
101
101
  ? {
102
102
  action: lastTrigger.action,
@@ -113,8 +113,8 @@ async function driveQueuedDialogsOnce() {
113
113
  }
114
114
  }
115
115
  catch (err) {
116
- log_1.log.error(`Error driving dialog ${rootDialog.id.rootId}:`, err, undefined, {
117
- dialogId: rootDialog.id.rootId,
116
+ log_1.log.error(`Error driving dialog ${mainDialog.id.rootId}:`, err, undefined, {
117
+ dialogId: mainDialog.id.rootId,
118
118
  });
119
119
  }
120
120
  }
@@ -14,28 +14,22 @@ const tellask_special_1 = require("./tellask-special");
14
14
  const REPLY_TOOL_REMINDER_PREFIX_EN = '[Dominds replyTellask required]';
15
15
  const REPLY_TOOL_REMINDER_PREFIX_ZH = '[Dominds 必须调用回复工具]';
16
16
  async function resolveReplyTargetAgentId(args) {
17
- switch (args.directive.expectedReplyCallName) {
18
- case 'replyTellaskBack': {
19
- const rootDialog = args.dlg instanceof dialog_1.RootDialog
20
- ? args.dlg
21
- : args.dlg instanceof dialog_1.SubDialog
22
- ? args.dlg.rootDialog
23
- : undefined;
24
- if (!rootDialog) {
25
- return undefined;
26
- }
27
- const targetDialogId = new dialog_1.DialogID(args.directive.targetDialogId, rootDialog.id.rootId);
28
- const targetDialog = rootDialog.lookupDialog(targetDialogId.selfId) ??
29
- (await (0, dialog_instance_registry_1.ensureDialogLoaded)(rootDialog, targetDialogId, rootDialog.status));
30
- return targetDialog?.agentId;
31
- }
32
- case 'replyTellask':
33
- case 'replyTellaskSessionless':
34
- return args.dlg instanceof dialog_1.SubDialog ? args.dlg.assignmentFromSup.originMemberId : undefined;
17
+ const mainDialog = args.dlg instanceof dialog_1.MainDialog
18
+ ? args.dlg
19
+ : args.dlg instanceof dialog_1.SideDialog
20
+ ? args.dlg.mainDialog
21
+ : undefined;
22
+ if (!mainDialog) {
23
+ return undefined;
35
24
  }
25
+ const targetDialogId = new dialog_1.DialogID(args.directive.targetDialogId, mainDialog.id.rootId);
26
+ const targetDialog = mainDialog.lookupDialog(targetDialogId.selfId) ??
27
+ (await (0, dialog_instance_registry_1.ensureDialogLoaded)(mainDialog, targetDialogId, mainDialog.status));
28
+ return targetDialog?.agentId;
36
29
  }
37
30
  function buildPromptContentWithExactReplyToolName(args) {
38
- const isFbrSubdialog = args.dlg instanceof dialog_1.SubDialog && args.dlg.assignmentFromSup.callName === 'freshBootsReasoning';
31
+ const isFbrSideDialog = args.dlg instanceof dialog_1.SideDialog &&
32
+ args.dlg.assignmentFromAsker.callName === 'freshBootsReasoning';
39
33
  const noActivePrefix = args.language === 'zh'
40
34
  ? '[Dominds 当前无跨对话回复义务]'
41
35
  : '[Dominds no active inter-dialog reply]';
@@ -48,10 +42,10 @@ function buildPromptContentWithExactReplyToolName(args) {
48
42
  ];
49
43
  const directive = args.activeReplyDirective;
50
44
  if (!directive) {
51
- if (isFbrSubdialog) {
45
+ if (isFbrSideDialog) {
52
46
  return args.prompt.content;
53
47
  }
54
- if (!(args.dlg instanceof dialog_1.SubDialog)) {
48
+ if (!(args.dlg instanceof dialog_1.SideDialog)) {
55
49
  return args.prompt.content;
56
50
  }
57
51
  if (args.prompt.content.startsWith(noActivePrefix)) {
@@ -89,33 +83,33 @@ function hasSameReplyDirective(left, right) {
89
83
  if (left.expectedReplyCallName !== right.expectedReplyCallName) {
90
84
  return false;
91
85
  }
92
- if (left.targetCallId !== right.targetCallId || left.tellaskContent !== right.tellaskContent) {
86
+ if (left.targetDialogId !== right.targetDialogId ||
87
+ left.targetCallId !== right.targetCallId ||
88
+ left.tellaskContent !== right.tellaskContent) {
93
89
  return false;
94
90
  }
95
- if (left.expectedReplyCallName === 'replyTellaskBack') {
96
- return (right.expectedReplyCallName === 'replyTellaskBack' &&
97
- left.targetDialogId === right.targetDialogId);
98
- }
99
91
  return true;
100
92
  }
101
- function buildCurrentSubdialogAssignmentDirective(dlg) {
102
- switch (dlg.assignmentFromSup.callName) {
93
+ function buildCurrentSideDialogAssignmentDirective(dlg) {
94
+ switch (dlg.assignmentFromAsker.callName) {
103
95
  case 'tellask':
104
96
  return {
105
97
  expectedReplyCallName: 'replyTellask',
106
- targetCallId: dlg.assignmentFromSup.callId,
107
- tellaskContent: dlg.assignmentFromSup.tellaskContent,
98
+ targetDialogId: dlg.assignmentFromAsker.askerDialogId,
99
+ targetCallId: dlg.assignmentFromAsker.callId,
100
+ tellaskContent: dlg.assignmentFromAsker.tellaskContent,
108
101
  };
109
102
  case 'tellaskSessionless':
110
103
  case 'freshBootsReasoning':
111
104
  return {
112
105
  expectedReplyCallName: 'replyTellaskSessionless',
113
- targetCallId: dlg.assignmentFromSup.callId,
114
- tellaskContent: dlg.assignmentFromSup.tellaskContent,
106
+ targetDialogId: dlg.assignmentFromAsker.askerDialogId,
107
+ targetCallId: dlg.assignmentFromAsker.callId,
108
+ tellaskContent: dlg.assignmentFromAsker.tellaskContent,
115
109
  };
116
110
  default: {
117
- const _exhaustive = dlg.assignmentFromSup.callName;
118
- throw new Error(`Unsupported subdialog assignment callName: ${_exhaustive}`);
111
+ const _exhaustive = dlg.assignmentFromAsker.callName;
112
+ throw new Error(`Unsupported sideDialog assignment callName: ${_exhaustive}`);
119
113
  }
120
114
  }
121
115
  }
@@ -128,15 +122,15 @@ async function hasCurrentCourseHumanPromptRecord(args) {
128
122
  }
129
123
  return false;
130
124
  }
131
- async function resolveFreshCurrentSubdialogAssignmentDirective(args) {
132
- if (!(args.dlg instanceof dialog_1.SubDialog) || args.prompt?.origin !== 'runtime') {
125
+ async function resolveFreshCurrentSideDialogAssignmentDirective(args) {
126
+ if (!(args.dlg instanceof dialog_1.SideDialog) || args.prompt?.origin !== 'runtime') {
133
127
  return undefined;
134
128
  }
135
129
  const promptDirective = args.prompt.tellaskReplyDirective;
136
130
  if (!promptDirective) {
137
131
  return undefined;
138
132
  }
139
- const currentAssignmentDirective = buildCurrentSubdialogAssignmentDirective(args.dlg);
133
+ const currentAssignmentDirective = buildCurrentSideDialogAssignmentDirective(args.dlg);
140
134
  if (!hasSameReplyDirective(promptDirective, currentAssignmentDirective)) {
141
135
  return undefined;
142
136
  }
@@ -174,23 +168,23 @@ async function resolveFreshPendingAskBackReplyDirective(args) {
174
168
  })) {
175
169
  return undefined;
176
170
  }
177
- const rootDialog = args.dlg instanceof dialog_1.RootDialog
171
+ const mainDialog = args.dlg instanceof dialog_1.MainDialog
178
172
  ? args.dlg
179
- : args.dlg instanceof dialog_1.SubDialog
180
- ? args.dlg.rootDialog
173
+ : args.dlg instanceof dialog_1.SideDialog
174
+ ? args.dlg.mainDialog
181
175
  : undefined;
182
- if (!rootDialog) {
176
+ if (!mainDialog) {
183
177
  return undefined;
184
178
  }
185
- const requesterDialogId = new dialog_1.DialogID(prompt.tellaskReplyDirective.targetDialogId, rootDialog.id.rootId);
186
- const latest = await persistence_1.DialogPersistence.loadDialogLatest(requesterDialogId, rootDialog.status);
179
+ const askBackAskerDialogId = new dialog_1.DialogID(prompt.tellaskReplyDirective.targetDialogId, mainDialog.id.rootId);
180
+ const latest = await persistence_1.DialogPersistence.loadDialogLatest(askBackAskerDialogId, mainDialog.status);
187
181
  if (!latest) {
188
182
  return undefined;
189
183
  }
190
184
  const targetCallId = prompt.tellaskReplyDirective.targetCallId.trim();
191
185
  let sawAskBackCall = false;
192
186
  for (let course = latest.currentCourse; course >= 1; course -= 1) {
193
- const events = await persistence_1.DialogPersistence.loadCourseEvents(requesterDialogId, course, rootDialog.status);
187
+ const events = await persistence_1.DialogPersistence.loadCourseEvents(askBackAskerDialogId, course, mainDialog.status);
194
188
  for (const event of events) {
195
189
  if (event.type === 'tellask_result_record' && event.callId.trim() === targetCallId) {
196
190
  return undefined;
@@ -234,7 +228,7 @@ async function shouldSuppressInterDialogReplyGuidanceForUserInterjection(args) {
234
228
  // 3. manual Continue later decides from fresh persistence facts whether the dialog should stay
235
229
  // blocked or resume real driving.
236
230
  //
237
- // Do not "simplify" this into a pure display-state check or a pure pending-subdialog check.
231
+ // Do not "simplify" this into a pure display-state check or a pure pending-sideDialog check.
238
232
  // Proceeding dialogs with a still-active reply obligation are part of the same rule: a fresh
239
233
  // user interjection should still suppress the live reply obligation and answer locally first.
240
234
  // The business anchor is the deferred reply reassertion, while the paused execution marker keeps
@@ -257,20 +251,20 @@ async function shouldSuppressInterDialogReplyGuidanceForUserInterjection(args) {
257
251
  (0, interjection_pause_stop_1.isUserInterjectionPauseStopReason)(latest.executionMarker.reason)) {
258
252
  return true;
259
253
  }
260
- const activeReplyDirective = await (0, tellask_special_1.loadLatestActiveTellaskReplyDirective)(args.dlg);
254
+ const activeReplyDirective = await (0, tellask_special_1.loadActiveTellaskReplyDirective)(args.dlg);
261
255
  if (activeReplyDirective) {
262
256
  return true;
263
257
  }
264
258
  // Use strict persistence reads here. This branch changes business behavior, so a read failure
265
- // must loud-fail the round instead of being silently treated as "pending subdialogs exist".
266
- const pendingSubdialogs = await persistence_1.DialogPersistence.loadPendingSubdialogs(args.dlg.id, args.dlg.status);
267
- return pendingSubdialogs.length > 0;
259
+ // must loud-fail the round instead of being silently treated as "pending sideDialogs exist".
260
+ const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(args.dlg.id, args.dlg.status);
261
+ return pendingSideDialogs.length > 0;
268
262
  }
269
263
  async function resolvePromptReplyGuidance(args) {
270
264
  const prompt = args.prompt;
271
265
  const isQ4HAnswerPrompt = typeof prompt?.q4hAnswerCallId === 'string' && prompt.q4hAnswerCallId.trim() !== '';
272
266
  const latest = await persistence_1.DialogPersistence.loadDialogLatest(args.dlg.id, args.dlg.status);
273
- const persistedCurrentSubdialogAssignmentDirective = await resolveFreshCurrentSubdialogAssignmentDirective({
267
+ const persistedCurrentSideDialogAssignmentDirective = await resolveFreshCurrentSideDialogAssignmentDirective({
274
268
  dlg: args.dlg,
275
269
  prompt,
276
270
  });
@@ -283,10 +277,11 @@ async function resolvePromptReplyGuidance(args) {
283
277
  latest.pendingCourseStartPrompt.origin === 'runtime'
284
278
  ? latest.pendingCourseStartPrompt.tellaskReplyDirective
285
279
  : undefined;
286
- const persistedActiveReplyDirective = persistedCurrentSubdialogAssignmentDirective ??
280
+ const persistedActiveReplyObligation = await (0, tellask_special_1.loadActiveTellaskReplyDirective)(args.dlg);
281
+ const persistedActiveReplyDirective = persistedCurrentSideDialogAssignmentDirective ??
287
282
  persistedPendingAskBackReplyDirective ??
288
283
  persistedPendingCourseStartDirective ??
289
- (await (0, tellask_special_1.loadLatestActiveTellaskReplyDirective)(args.dlg));
284
+ persistedActiveReplyObligation;
290
285
  const suppressInterDialogReplyGuidance = isQ4HAnswerPrompt
291
286
  ? false
292
287
  : await shouldSuppressInterDialogReplyGuidanceForUserInterjection({
@@ -5,9 +5,9 @@ type RestoreSummary = {
5
5
  totalCourses: number;
6
6
  completionStatus: 'incomplete' | 'complete' | 'failed';
7
7
  };
8
- export declare function restoreDialogHierarchy(rootDialogId: string, status?: RestoreStatus): Promise<{
9
- rootDialog: Dialog;
10
- subdialogs: Map<string, Dialog>;
8
+ export declare function restoreDialogHierarchy(mainDialogId: string, status?: RestoreStatus): Promise<{
9
+ mainDialog: Dialog;
10
+ sideDialogs: Map<string, Dialog>;
11
11
  summary: RestoreSummary;
12
12
  }>;
13
13
  export {};
@@ -11,45 +11,40 @@ const dialog_global_registry_1 = require("../../dialog-global-registry");
11
11
  const dialog_instance_registry_1 = require("../../dialog-instance-registry");
12
12
  const log_1 = require("../../log");
13
13
  const persistence_1 = require("../../persistence");
14
- async function restoreDialogHierarchy(rootDialogId, status = 'running') {
14
+ async function restoreDialogHierarchy(mainDialogId, status = 'running') {
15
15
  try {
16
- const rootDialogIdent = new dialog_1.DialogID(rootDialogId);
17
- const rootMeta = await persistence_1.DialogPersistence.loadRootDialogMetadata(rootDialogIdent, status);
18
- if (rootMeta?.supdialogId) {
19
- throw new Error(`Expected root dialog ${rootDialogId} but found subdialog metadata with supdialogId: ${rootMeta.supdialogId}`);
16
+ const mainDialog = await (0, dialog_instance_registry_1.getOrRestoreMainDialog)(mainDialogId, status);
17
+ if (!mainDialog) {
18
+ throw new Error(`Failed to restore dialog hierarchy for ${mainDialogId} from status ${status}`);
20
19
  }
21
- const rootDialog = await (0, dialog_instance_registry_1.getOrRestoreRootDialog)(rootDialogId, status);
22
- if (!rootDialog) {
23
- throw new Error(`Failed to restore dialog hierarchy for ${rootDialogId} from status ${status}`);
24
- }
25
- dialog_global_registry_1.globalDialogRegistry.register(rootDialog);
26
- const subdialogs = new Map();
27
- const rootPath = persistence_1.DialogPersistence.getRootDialogPath(rootDialogIdent, status);
28
- const subdialogsPath = path_1.default.join(rootPath, 'subdialogs');
29
- let allSubdialogIds = [];
20
+ dialog_global_registry_1.globalDialogRegistry.register(mainDialog);
21
+ const sideDialogs = new Map();
22
+ const rootPath = persistence_1.DialogPersistence.getMainDialogPath(mainDialog.id, status);
23
+ const sideDialogsPath = path_1.default.join(rootPath, 'sideDialogs');
24
+ let allSideDialogIds = [];
30
25
  try {
31
- const entries = await fs_1.default.promises.readdir(subdialogsPath, { withFileTypes: true });
32
- allSubdialogIds = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
26
+ const entries = await fs_1.default.promises.readdir(sideDialogsPath, { withFileTypes: true });
27
+ allSideDialogIds = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
33
28
  }
34
29
  catch (err) {
35
30
  const code = typeof err === 'object' && err !== null && 'code' in err
36
31
  ? err.code
37
32
  : undefined;
38
33
  if (code !== 'ENOENT') {
39
- log_1.log.warn(`Failed to read subdialogs directory: ${subdialogsPath}, returning empty array`, err);
34
+ log_1.log.warn(`Failed to read sideDialogs directory: ${sideDialogsPath}, returning empty array`, err);
40
35
  }
41
- allSubdialogIds = [];
36
+ allSideDialogIds = [];
42
37
  }
43
- for (const subdialogId of allSubdialogIds) {
44
- const restoredSubdialogId = new dialog_1.DialogID(subdialogId, rootDialog.id.rootId);
45
- const dialog = await (0, dialog_instance_registry_1.ensureDialogLoaded)(rootDialog, restoredSubdialogId, status);
38
+ for (const sideDialogId of allSideDialogIds) {
39
+ const restoredSideDialogId = new dialog_1.DialogID(sideDialogId, mainDialog.id.rootId);
40
+ const dialog = await (0, dialog_instance_registry_1.ensureDialogLoaded)(mainDialog, restoredSideDialogId, status);
46
41
  if (dialog && dialog.id.selfId !== dialog.id.rootId) {
47
- subdialogs.set(subdialogId, dialog);
42
+ sideDialogs.set(sideDialogId, dialog);
48
43
  }
49
44
  }
50
- let totalMessages = rootDialog.msgs.length;
51
- let totalCourses = rootDialog.currentCourse;
52
- for (const dialog of subdialogs.values()) {
45
+ let totalMessages = mainDialog.msgs.length;
46
+ let totalCourses = mainDialog.currentCourse;
47
+ for (const dialog of sideDialogs.values()) {
53
48
  totalMessages += dialog.msgs.length;
54
49
  if (dialog.currentCourse > totalCourses) {
55
50
  totalCourses = dialog.currentCourse;
@@ -61,13 +56,13 @@ async function restoreDialogHierarchy(rootDialogId, status = 'running') {
61
56
  completionStatus: 'incomplete',
62
57
  };
63
58
  return {
64
- rootDialog,
65
- subdialogs,
59
+ mainDialog,
60
+ sideDialogs,
66
61
  summary,
67
62
  };
68
63
  }
69
64
  catch (error) {
70
- log_1.log.error(`Failed to restore dialog hierarchy for ${rootDialogId}:`, error);
65
+ log_1.log.error(`Failed to restore dialog hierarchy for ${mainDialogId}:`, error);
71
66
  throw error;
72
67
  }
73
68
  }
@@ -22,7 +22,7 @@ export declare class LlmRequestFailedError extends Error {
22
22
  }
23
23
  export declare function maybePrepareDiligenceAutoContinuePrompt(options: {
24
24
  dlg: Dialog;
25
- isRootDialog: boolean;
25
+ isMainDialog: boolean;
26
26
  remainingBudget: number;
27
27
  diligencePushMax: number;
28
28
  suppressDiligencePush?: boolean;
@@ -122,7 +122,7 @@ async function resolveRtwsDiligenceConfig() {
122
122
  };
123
123
  }
124
124
  async function maybePrepareDiligenceAutoContinuePrompt(options) {
125
- if (!options.isRootDialog) {
125
+ if (!options.isMainDialog) {
126
126
  return { kind: 'disabled', nextRemainingBudget: options.remainingBudget };
127
127
  }
128
128
  if (options.dlg.disableDiligencePush || options.suppressDiligencePush === true) {
@@ -0,0 +1,8 @@
1
+ import type { DialogID } from '../../dialog';
2
+ import { DialogPersistence } from '../../persistence';
3
+ export type TakenSideDialogResponse = Awaited<ReturnType<typeof DialogPersistence.takeSideDialogResponses>>[number];
4
+ export declare function takeSideDialogResponses(dialogId: DialogID): Promise<TakenSideDialogResponse[]>;
5
+ export declare function commitTakenSideDialogResponses(dialogId: DialogID): Promise<void>;
6
+ export declare function rollbackTakenSideDialogResponses(dialogId: DialogID): Promise<void>;
7
+ export declare function withSideDialogTxnLock<T>(dialogId: DialogID, fn: () => Promise<T>): Promise<T>;
8
+ export declare function withSideDialogTxnLocks<T>(dialogIds: readonly DialogID[], fn: () => Promise<T>): Promise<T>;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.takeSubdialogResponses = takeSubdialogResponses;
4
- exports.commitTakenSubdialogResponses = commitTakenSubdialogResponses;
5
- exports.rollbackTakenSubdialogResponses = rollbackTakenSubdialogResponses;
6
- exports.withSubdialogTxnLock = withSubdialogTxnLock;
7
- exports.withSubdialogTxnLocks = withSubdialogTxnLocks;
3
+ exports.takeSideDialogResponses = takeSideDialogResponses;
4
+ exports.commitTakenSideDialogResponses = commitTakenSideDialogResponses;
5
+ exports.rollbackTakenSideDialogResponses = rollbackTakenSideDialogResponses;
6
+ exports.withSideDialogTxnLock = withSideDialogTxnLock;
7
+ exports.withSideDialogTxnLocks = withSideDialogTxnLocks;
8
8
  const persistence_1 = require("../../persistence");
9
9
  const async_fifo_mutex_1 = require("../../runtime/async-fifo-mutex");
10
10
  const suspensionStateMutexes = new Map();
@@ -23,25 +23,25 @@ async function withSuspensionStateLock(dialogId, fn) {
23
23
  release();
24
24
  }
25
25
  }
26
- async function takeSubdialogResponses(dialogId) {
26
+ async function takeSideDialogResponses(dialogId) {
27
27
  return await withSuspensionStateLock(dialogId, async () => {
28
- return await persistence_1.DialogPersistence.takeSubdialogResponses(dialogId);
28
+ return await persistence_1.DialogPersistence.takeSideDialogResponses(dialogId);
29
29
  });
30
30
  }
31
- async function commitTakenSubdialogResponses(dialogId) {
31
+ async function commitTakenSideDialogResponses(dialogId) {
32
32
  await withSuspensionStateLock(dialogId, async () => {
33
- await persistence_1.DialogPersistence.commitTakenSubdialogResponses(dialogId);
33
+ await persistence_1.DialogPersistence.commitTakenSideDialogResponses(dialogId);
34
34
  });
35
35
  }
36
- async function rollbackTakenSubdialogResponses(dialogId) {
36
+ async function rollbackTakenSideDialogResponses(dialogId) {
37
37
  await withSuspensionStateLock(dialogId, async () => {
38
- await persistence_1.DialogPersistence.rollbackTakenSubdialogResponses(dialogId);
38
+ await persistence_1.DialogPersistence.rollbackTakenSideDialogResponses(dialogId);
39
39
  });
40
40
  }
41
- async function withSubdialogTxnLock(dialogId, fn) {
41
+ async function withSideDialogTxnLock(dialogId, fn) {
42
42
  return await withSuspensionStateLock(dialogId, fn);
43
43
  }
44
- async function withSubdialogTxnLocks(dialogIds, fn) {
44
+ async function withSideDialogTxnLocks(dialogIds, fn) {
45
45
  const ordered = [
46
46
  ...new Map(dialogIds.map((dialogId) => [dialogId.key(), dialogId])).values(),
47
47
  ].sort((left, right) => left.key().localeCompare(right.key()));
@@ -1,11 +1,11 @@
1
- import { type CallerCourseNumber } from '@longrun-ai/kernel/types/storage';
2
- import { Dialog, DialogID, SubDialog } from '../../dialog';
3
- import type { KernelDriverDriveCallOptions, KernelDriverSubdialogReplyTarget } from './types';
4
- export type SubdialogReplyTarget = KernelDriverSubdialogReplyTarget;
1
+ import { type AskerCourseNumber } from '@longrun-ai/kernel/types/storage';
2
+ import { Dialog, DialogID, SideDialog } from '../../dialog';
3
+ import type { KernelDriverDriveCallOptions, KernelDriverSideDialogReplyTarget } from './types';
4
+ export type SideDialogReplyTarget = KernelDriverSideDialogReplyTarget;
5
5
  export type ScheduleDriveFn = (dialog: Dialog, options: KernelDriverDriveCallOptions) => void;
6
- export declare function supplyResponseToSupdialog(args: {
6
+ export declare function supplyResponseToAskerDialog(args: {
7
7
  parentDialog: Dialog;
8
- subdialogId: DialogID;
8
+ sideDialogId: DialogID;
9
9
  responseText: string;
10
10
  callType: 'A' | 'B' | 'C';
11
11
  callId?: string;
@@ -19,15 +19,15 @@ export declare function supplyResponseToSupdialog(args: {
19
19
  course: number;
20
20
  genseq: number;
21
21
  };
22
- callerCourseOverride?: CallerCourseNumber;
22
+ askerCourseOverride?: AskerCourseNumber;
23
23
  scheduleDrive: ScheduleDriveFn;
24
- subdialog?: SubDialog;
24
+ sideDialog?: SideDialog;
25
25
  }): Promise<void>;
26
- export declare function supplySubdialogResponseToSpecificCallerIfPendingV2(args: {
27
- subdialog: SubDialog;
26
+ export declare function supplySideDialogResponseToSpecificAskerIfPendingV2(args: {
27
+ sideDialog: SideDialog;
28
28
  responseText: string;
29
29
  responseGenseq: number;
30
- target: SubdialogReplyTarget;
30
+ target: SideDialogReplyTarget;
31
31
  deliveryMode?: 'reply_tool' | 'direct_fallback';
32
32
  replyResolution?: {
33
33
  callId: string;
@@ -35,8 +35,8 @@ export declare function supplySubdialogResponseToSpecificCallerIfPendingV2(args:
35
35
  };
36
36
  scheduleDrive: ScheduleDriveFn;
37
37
  }): Promise<boolean>;
38
- export declare function supplySubdialogResponseToAssignedCallerIfPendingV2(args: {
39
- subdialog: SubDialog;
38
+ export declare function supplySideDialogResponseToAssignedAskerIfPendingV2(args: {
39
+ sideDialog: SideDialog;
40
40
  responseText: string;
41
41
  responseGenseq: number;
42
42
  deliveryMode?: 'reply_tool' | 'direct_fallback';