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
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.REPLY_SUPPRESSION_PREFIX_ZH = exports.REPLY_SUPPRESSION_PREFIX_EN = exports.REPLY_REASSERTION_PREFIX_ZH = exports.REPLY_REASSERTION_PREFIX_EN = exports.ACTIVE_REPLY_TOOL_PREFIX_ZH = exports.ACTIVE_REPLY_TOOL_PREFIX_EN = void 0;
4
4
  exports.buildActiveReplyToolNote = buildActiveReplyToolNote;
5
- exports.buildSidelineCompletionRule = buildSidelineCompletionRule;
6
- exports.buildSubdialogRoleHeaderCopy = buildSubdialogRoleHeaderCopy;
5
+ exports.buildActiveReplyObligationContextText = buildActiveReplyObligationContextText;
6
+ exports.buildSideDialogCompletionRule = buildSideDialogCompletionRule;
7
+ exports.buildSideDialogRoleHeaderCopy = buildSideDialogRoleHeaderCopy;
7
8
  exports.buildReplyObligationSuppressionGuideText = buildReplyObligationSuppressionGuideText;
8
9
  exports.buildReplyObligationReassertionText = buildReplyObligationReassertionText;
9
10
  exports.buildReplyToolReminderText = buildReplyToolReminderText;
@@ -50,26 +51,50 @@ function buildActiveReplyToolNote(args) {
50
51
  return [
51
52
  exports.ACTIVE_REPLY_TOOL_PREFIX_ZH,
52
53
  '先专注处理眼前这轮任务,不要被 `reply*` 选择分心。',
53
- `若这轮最终需要对上游完成交付,精确调用 \`${args.toolName}\`;不要改选其他 \`reply*\`,也不要提前收口。`,
54
+ `若这轮最终需要对诉请者完成交付,精确调用 \`${args.toolName}\`;不要改选其他 \`reply*\`,也不要提前收口。`,
54
55
  ].join('\n');
55
56
  }
56
57
  return [
57
58
  exports.ACTIVE_REPLY_TOOL_PREFIX_EN,
58
59
  'Stay focused on the task in front of you for this turn; do not get distracted by choosing among `reply*` variants.',
59
- `If this turn truly reaches final delivery back upstream, call \`${args.toolName}\` exactly; do not switch to another \`reply*\` variant or close early.`,
60
+ `If this turn truly reaches final delivery back to the tellasker, call \`${args.toolName}\` exactly; do not switch to another \`reply*\` variant or close early.`,
60
61
  ].join('\n');
61
62
  }
62
- function buildSidelineCompletionRule(language) {
63
+ function buildActiveReplyObligationContextText(args) {
64
+ if (args.language === 'zh') {
65
+ return [
66
+ '[Dominds 当前跨对话回复义务]',
67
+ '这是运行时状态,不是新的用户请求。',
68
+ `必须回复的目标对话:${args.directive.targetDialogId}`,
69
+ `必须结清的调用:${args.directive.targetCallId}`,
70
+ `最终交付时精确调用:\`${args.directive.expectedReplyCallName}({ replyContent })\``,
71
+ '',
72
+ '原始诉请内容:',
73
+ args.directive.tellaskContent,
74
+ ].join('\n');
75
+ }
76
+ return [
77
+ '[Dominds active inter-dialog reply obligation]',
78
+ 'This is runtime state, not a new user request.',
79
+ `Target dialog to reply to: ${args.directive.targetDialogId}`,
80
+ `Call to settle: ${args.directive.targetCallId}`,
81
+ `At final delivery, call exactly: \`${args.directive.expectedReplyCallName}({ replyContent })\``,
82
+ '',
83
+ 'Original request content:',
84
+ args.directive.tellaskContent,
85
+ ].join('\n');
86
+ }
87
+ function buildSideDialogCompletionRule(language) {
63
88
  return language === 'zh'
64
89
  ? '当前支线已完成并能给出最终交付时:先专注把当前任务做对;若运行时点名了精确 reply 函数,就只在最终交付收口时调用那个函数,不要改选其他 `reply*`,也不要再走 `tellaskBack`。'
65
- : 'If the current sideline is complete and can deliver the final result: stay focused on finishing the actual task first; if runtime names an exact reply function, call that function only at final upstream delivery, do not switch among `reply*` variants, and do not use `tellaskBack` for final delivery.';
90
+ : 'If the current Side Dialog is complete and can deliver the final result: stay focused on finishing the actual task first; if runtime names an exact reply function, call that function only at final tellasker delivery, do not switch among `reply*` variants, and do not use `tellaskBack` for final delivery.';
66
91
  }
67
- function buildSubdialogRoleHeaderCopy(args) {
68
- const requester = `@${args.requesterId}`;
92
+ function buildSideDialogRoleHeaderCopy(args) {
93
+ const tellaskerTag = `@${args.tellaskerId}`;
69
94
  if (args.expectedReplyTool === undefined) {
70
95
  return args.language === 'zh'
71
- ? `${requester} 已通过诉请安排你处理下述诉请内容。只有确实需要向上游回问、且现有规程无法直接判责时,才调用 \`tellaskBack\`。`
72
- : `${requester} has assigned you to handle the request content below. Call \`tellaskBack\` only when you truly need to ask upstream back and existing SOP cannot directly identify another owner.`;
96
+ ? `${tellaskerTag} 已通过诉请安排你处理下述诉请内容。只有确实需要向诉请者回问、且现有规程无法直接判责时,才调用 \`tellaskBack\`。`
97
+ : `${tellaskerTag} has assigned you to handle the request content below. Call \`tellaskBack\` only when you truly need to ask the tellasker back and existing SOP cannot directly identify another owner.`;
73
98
  }
74
99
  const kindLabel = (0, tellask_labels_1.getTellaskKindLabel)({
75
100
  language: args.language,
@@ -77,8 +102,8 @@ function buildSubdialogRoleHeaderCopy(args) {
77
102
  bracketed: true,
78
103
  });
79
104
  return args.language === 'zh'
80
- ? `${requester} 已通过${kindLabel}安排你处理下述诉请内容。等你准备好回复内容后,调用 \`${args.expectedReplyTool}\` 完成回复。只有确实需要向上游回问、且现有规程无法直接判责时,才调用 \`tellaskBack\`。`
81
- : `${requester} has assigned you, via this ${kindLabel}, to handle the request content below. Once your reply content is ready, call \`${args.expectedReplyTool}\` to deliver it. Call \`tellaskBack\` only when you truly need to ask upstream back and existing SOP cannot directly identify another owner.`;
105
+ ? `${tellaskerTag} 已通过${kindLabel}安排你处理下述诉请内容。等你准备好回复内容后,调用 \`${args.expectedReplyTool}\` 完成回复。只有确实需要向诉请者回问、且现有规程无法直接判责时,才调用 \`tellaskBack\`。`
106
+ : `${tellaskerTag} has assigned you, via this ${kindLabel}, to handle the request content below. Once your reply content is ready, call \`${args.expectedReplyTool}\` to deliver it. Call \`tellaskBack\` only when you truly need to ask the tellasker back and existing SOP cannot directly identify another owner.`;
82
107
  }
83
108
  function buildReplyObligationSuppressionGuideText(language) {
84
109
  if (language === 'zh') {
@@ -121,7 +146,7 @@ function buildReplyToolReminderText(args) {
121
146
  `你刚才已经写了正文,但还没调用 \`${args.directive.expectedReplyCallName}\`。`,
122
147
  '',
123
148
  buildReplyToolReminderLine(args),
124
- '如果你再次直接输出最终消息而仍不调用该工具,运行时当前会暂按 direct-reply fallback 投递,并在 UI/传递正文中明确标注。',
149
+ '如果你再次直接输出最终消息而仍不调用该工具,运行时会按 direct-reply fallback 投递,并在 UI/传递正文中明确标注。',
125
150
  ].join('\n')
126
151
  : [
127
152
  args.prefix,
@@ -129,7 +154,7 @@ function buildReplyToolReminderText(args) {
129
154
  `You already wrote the reply body, but you still have not called \`${args.directive.expectedReplyCallName}\`.`,
130
155
  '',
131
156
  buildReplyToolReminderLine(args),
132
- 'If you still emit a plain final message without the tool, runtime will currently deliver it via direct-reply fallback and label that path explicitly in UI and transfer text.',
157
+ 'If you still emit a plain final message without the tool, runtime will deliver it via direct-reply fallback and label that path explicitly in UI and transfer text.',
133
158
  ].join('\n');
134
159
  }
135
160
  function isStandaloneRuntimeGuidePromptContent(content) {
@@ -133,15 +133,15 @@ async function loadDialogMetadataForLookup(dialogId, status, context) {
133
133
  return null;
134
134
  }
135
135
  }
136
- async function loadRootDialogMetadataForLookup(dialogId, status, context) {
136
+ async function loadMainDialogMetadataForLookup(dialogId, status, context) {
137
137
  try {
138
- return await persistence_1.DialogPersistence.loadRootDialogMetadata(dialogId, status);
138
+ return await persistence_1.DialogPersistence.loadMainDialogMetadata(dialogId, status);
139
139
  }
140
140
  catch (error) {
141
141
  if (!(0, persistence_errors_1.findDomindsPersistenceFileError)(error)) {
142
142
  throw error;
143
143
  }
144
- log.warn(`${context}: root dialog metadata quarantined during lazy lookup`, error, {
144
+ log.warn(`${context}: main dialog metadata quarantined during lazy lookup`, error, {
145
145
  dialogId: dialogId.valueOf(),
146
146
  status,
147
147
  });
@@ -165,17 +165,17 @@ async function loadDialogLatestForLookup(dialogId, status, context) {
165
165
  }
166
166
  async function detectWaitingForFreshBootsReasoning(dialogId, status) {
167
167
  try {
168
- // Pending-subdialogs is also lazy-loaded per dialog. A malformed queue should quarantine just
168
+ // Pending-sideDialogs is also lazy-loaded per dialog. A malformed queue should quarantine just
169
169
  // that dialog and degrade this derived flag to "unknown/false" instead of taking down the
170
170
  // surrounding list or hierarchy response.
171
- const pending = await persistence_1.DialogPersistence.loadPendingSubdialogs(dialogId, status);
171
+ const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialogId, status);
172
172
  return pending.some((entry) => entry.callName === 'freshBootsReasoning');
173
173
  }
174
174
  catch (error) {
175
175
  if (!(0, persistence_errors_1.findDomindsPersistenceFileError)(error)) {
176
176
  throw error;
177
177
  }
178
- log.warn('detectWaitingForFreshBootsReasoning: pending-subdialogs quarantined during lookup', error, {
178
+ log.warn('detectWaitingForFreshBootsReasoning: pending-sideDialogs quarantined during lookup', error, {
179
179
  dialogId: dialogId.valueOf(),
180
180
  status,
181
181
  });
@@ -1197,12 +1197,12 @@ async function handleApiRoute(req, res, pathname, context) {
1197
1197
  const parts = pathname.split('/');
1198
1198
  const rawRoot = parts[3];
1199
1199
  if (!rawRoot) {
1200
- respondJson(res, 400, { success: false, error: 'Missing root dialog id' });
1200
+ respondJson(res, 400, { success: false, error: 'Missing main dialog id' });
1201
1201
  return true;
1202
1202
  }
1203
1203
  return await handleForkDialog(req, res, context, rawRoot.replace(/%2F/g, '/'));
1204
1204
  }
1205
- // Delete a dialog (root dialogs only for now)
1205
+ // Delete a dialog (main dialogs only for now)
1206
1206
  if (pathname.startsWith('/api/dialogs/') &&
1207
1207
  !pathname.endsWith('/hierarchy') &&
1208
1208
  !pathname.endsWith('/fork') &&
@@ -1210,7 +1210,7 @@ async function handleApiRoute(req, res, pathname, context) {
1210
1210
  const parts = pathname.split('/');
1211
1211
  const rawRoot = parts[3];
1212
1212
  if (!rawRoot) {
1213
- respondJson(res, 400, { error: 'Missing root dialog id' });
1213
+ respondJson(res, 400, { error: 'Missing main dialog id' });
1214
1214
  return true;
1215
1215
  }
1216
1216
  const rawSelf = parts[4];
@@ -1226,7 +1226,7 @@ async function handleApiRoute(req, res, pathname, context) {
1226
1226
  }
1227
1227
  return await handleDeleteDialog(res, { rootId, selfId, fromStatus: fromStatusRaw }, context);
1228
1228
  }
1229
- // Get full hierarchy for a single root dialog
1229
+ // Get full hierarchy for a single main dialog
1230
1230
  if (pathname.startsWith('/api/dialogs/') &&
1231
1231
  pathname.endsWith('/hierarchy') &&
1232
1232
  req.method === 'GET') {
@@ -1241,7 +1241,7 @@ async function handleApiRoute(req, res, pathname, context) {
1241
1241
  const status = parsedStatus.kind === 'missing' ? 'running' : parsedStatus.status;
1242
1242
  return await handleGetDialogHierarchy(res, rootId, status);
1243
1243
  }
1244
- // Get one subdialog node specifically for dialog-list backfill
1244
+ // Get one sideDialog node specifically for dialog-list backfill
1245
1245
  if (pathname.startsWith('/api/dialogs/') &&
1246
1246
  pathname.endsWith('/list-node') &&
1247
1247
  req.method === 'GET') {
@@ -1256,9 +1256,9 @@ async function handleApiRoute(req, res, pathname, context) {
1256
1256
  respondJson(res, 400, { success: false, error: 'Invalid dialog id path encoding' });
1257
1257
  return true;
1258
1258
  }
1259
- const subdialogsSeg = parts[4];
1259
+ const sideDialogsSeg = parts[4];
1260
1260
  const listNodeSeg = parts[6];
1261
- if (!rootId || subdialogsSeg !== 'subdialogs' || !selfId || listNodeSeg !== 'list-node') {
1261
+ if (!rootId || sideDialogsSeg !== 'sideDialogs' || !selfId || listNodeSeg !== 'list-node') {
1262
1262
  respondJson(res, 404, { success: false, error: 'Not Found' });
1263
1263
  return true;
1264
1264
  }
@@ -1269,7 +1269,7 @@ async function handleApiRoute(req, res, pathname, context) {
1269
1269
  return true;
1270
1270
  }
1271
1271
  const status = parsedStatus.kind === 'missing' ? 'running' : parsedStatus.status;
1272
- return await handleGetDialogListSubdialogNode(res, { rootId, selfId, status });
1272
+ return await handleGetDialogListSideDialogNode(res, { rootId, selfId, status });
1273
1273
  }
1274
1274
  // Serve persisted dialog artifacts (binary)
1275
1275
  if (pathname.startsWith('/api/dialogs/') &&
@@ -1280,7 +1280,7 @@ async function handleApiRoute(req, res, pathname, context) {
1280
1280
  const rawMaybeSelf = parts[4];
1281
1281
  const rawTail = parts[5];
1282
1282
  if (!rawRoot) {
1283
- respondJson(res, 400, { error: 'Missing root dialog id' });
1283
+ respondJson(res, 400, { error: 'Missing main dialog id' });
1284
1284
  return true;
1285
1285
  }
1286
1286
  const rootId = rawRoot.replace(/%2F/g, '/');
@@ -2104,38 +2104,38 @@ async function handleGetTeamConfig(res) {
2104
2104
  }
2105
2105
  }
2106
2106
  /**
2107
- * Get dialog list - returns root dialogs with subdialogCount
2107
+ * Get dialog list - returns main dialogs with sideDialogCount
2108
2108
  */
2109
2109
  async function handleGetDialogs(res, status) {
2110
2110
  try {
2111
- const rootDialogs = [];
2111
+ const mainDialogs = [];
2112
2112
  const allDialogIds = await persistence_1.DialogPersistence.listAllDialogIds(status);
2113
- const subdialogCountByRootId = new Map();
2113
+ const sideDialogCountByRootId = new Map();
2114
2114
  for (const dialogId of allDialogIds) {
2115
2115
  if (dialogId.selfId === dialogId.rootId)
2116
2116
  continue;
2117
- subdialogCountByRootId.set(dialogId.rootId, (subdialogCountByRootId.get(dialogId.rootId) ?? 0) + 1);
2117
+ sideDialogCountByRootId.set(dialogId.rootId, (sideDialogCountByRootId.get(dialogId.rootId) ?? 0) + 1);
2118
2118
  }
2119
2119
  const ids = await persistence_1.DialogPersistence.listDialogs(status);
2120
2120
  for (const id of ids) {
2121
2121
  const dialogId = new dialog_1.DialogID(id);
2122
- const meta = await loadRootDialogMetadataForLookup(dialogId, status, 'handleListDialogs');
2122
+ const meta = await loadMainDialogMetadataForLookup(dialogId, status, 'handleListDialogs');
2123
2123
  if (!meta)
2124
2124
  continue;
2125
2125
  // listDialogs() only yields candidate IDs. Metadata/latest stay lazy so one malformed dialog
2126
2126
  // can quarantine itself here without taking down the whole list response.
2127
2127
  const latest = await loadDialogLatestForLookup(dialogId, status, 'handleListDialogs');
2128
- const rootPath = persistence_1.DialogPersistence.getRootDialogPath(dialogId, status);
2128
+ const rootPath = persistence_1.DialogPersistence.getMainDialogPath(dialogId, status);
2129
2129
  const rootStillExists = await pathStillExistsForLookup(rootPath);
2130
2130
  if (!rootStillExists) {
2131
2131
  continue;
2132
2132
  }
2133
2133
  const waitingForFreshBootsReasoning = await detectWaitingForFreshBootsReasoning(dialogId, status);
2134
- const subdialogCount = subdialogCountByRootId.get(meta.id) ?? 0;
2134
+ const sideDialogCount = sideDialogCountByRootId.get(meta.id) ?? 0;
2135
2135
  if (!(await pathStillExistsForLookup(rootPath))) {
2136
2136
  continue;
2137
2137
  }
2138
- rootDialogs.push({
2138
+ mainDialogs.push({
2139
2139
  rootId: meta.id,
2140
2140
  agentId: meta.agentId,
2141
2141
  taskDocPath: meta.taskDocPath,
@@ -2145,15 +2145,15 @@ async function handleGetDialogs(res, status) {
2145
2145
  lastModified: latest?.lastModified || meta.createdAt,
2146
2146
  displayState: latest?.displayState,
2147
2147
  waitingForFreshBootsReasoning,
2148
- subdialogCount,
2148
+ sideDialogCount,
2149
2149
  });
2150
2150
  }
2151
- respondJson(res, 200, { success: true, dialogs: rootDialogs });
2151
+ respondJson(res, 200, { success: true, dialogs: mainDialogs });
2152
2152
  return true;
2153
2153
  }
2154
2154
  catch (error) {
2155
- log.error('Error getting root dialogs:', error);
2156
- respondJson(res, 500, { success: false, error: 'Failed to get root dialogs' });
2155
+ log.error('Error getting main dialogs:', error);
2156
+ respondJson(res, 500, { success: false, error: 'Failed to get main dialogs' });
2157
2157
  return true;
2158
2158
  }
2159
2159
  }
@@ -2176,26 +2176,26 @@ async function handleGetRunControlCounts(res) {
2176
2176
  }
2177
2177
  }
2178
2178
  /**
2179
- * Get full hierarchy (root + subdialogs) for a single root dialog
2179
+ * Get full hierarchy (main dialog + sideDialogs) for a single main dialog
2180
2180
  */
2181
2181
  async function handleGetDialogHierarchy(res, rootId, status) {
2182
2182
  try {
2183
- const rootMeta = await loadRootDialogMetadataForLookup(new dialog_1.DialogID(rootId), status, 'handleGetDialogHierarchy:root');
2183
+ const rootMeta = await loadMainDialogMetadataForLookup(new dialog_1.DialogID(rootId), status, 'handleGetDialogHierarchy:root');
2184
2184
  if (!rootMeta) {
2185
2185
  respondJson(res, 404, {
2186
2186
  success: false,
2187
- error: `Root dialog ${rootId} not found in ${status}`,
2187
+ error: `Main dialog ${rootId} not found in ${status}`,
2188
2188
  });
2189
2189
  return true;
2190
2190
  }
2191
- // Load latest.yaml for root dialog currentCourse and lastModified timestamp
2191
+ // Load latest.yaml for main dialog currentCourse and lastModified timestamp
2192
2192
  const rootLatest = await loadDialogLatestForLookup(new dialog_1.DialogID(rootId), status, 'handleGetDialogHierarchy:root');
2193
- const rootPath = persistence_1.DialogPersistence.getRootDialogPath(new dialog_1.DialogID(rootId), status);
2193
+ const rootPath = persistence_1.DialogPersistence.getMainDialogPath(new dialog_1.DialogID(rootId), status);
2194
2194
  const rootStillExists = await pathStillExistsForLookup(rootPath);
2195
2195
  if (!rootStillExists) {
2196
2196
  respondJson(res, 404, {
2197
2197
  success: false,
2198
- error: `Root dialog ${rootId} was quarantined as malformed`,
2198
+ error: `Main dialog ${rootId} was quarantined as malformed`,
2199
2199
  });
2200
2200
  return true;
2201
2201
  }
@@ -2213,36 +2213,38 @@ async function handleGetDialogHierarchy(res, rootId, status) {
2213
2213
  if (!(await pathStillExistsForLookup(rootPath))) {
2214
2214
  respondJson(res, 404, {
2215
2215
  success: false,
2216
- error: `Root dialog ${rootId} was quarantined as malformed`,
2216
+ error: `Main dialog ${rootId} was quarantined as malformed`,
2217
2217
  });
2218
2218
  return true;
2219
2219
  }
2220
- let subdialogs = [];
2220
+ let sideDialogs = [];
2221
2221
  const dialogIds = await persistence_1.DialogPersistence.listAllDialogIds(status);
2222
2222
  for (const dialogId of dialogIds) {
2223
2223
  if (dialogId.rootId !== rootId || dialogId.selfId === rootId) {
2224
2224
  continue;
2225
2225
  }
2226
- const meta = await loadDialogMetadataForLookup(dialogId, status, 'handleGetDialogHierarchy:subdialog');
2226
+ const meta = await loadDialogMetadataForLookup(dialogId, status, 'handleGetDialogHierarchy:sideDialog');
2227
2227
  if (!meta) {
2228
2228
  continue;
2229
2229
  }
2230
- const subLatest = await loadDialogLatestForLookup(dialogId, status, 'handleGetDialogHierarchy:subdialog');
2230
+ const subLatest = await loadDialogLatestForLookup(dialogId, status, 'handleGetDialogHierarchy:sideDialog');
2231
2231
  const waitingForFreshBootsReasoning = await detectWaitingForFreshBootsReasoning(dialogId, status);
2232
- const subdialogPath = persistence_1.DialogPersistence.getSubdialogPath(dialogId, status);
2233
- if (!(await pathStillExistsForLookup(subdialogPath))) {
2232
+ const sideDialogPath = persistence_1.DialogPersistence.getSideDialogPath(dialogId, status);
2233
+ if (!(await pathStillExistsForLookup(sideDialogPath))) {
2234
2234
  continue;
2235
2235
  }
2236
- const derivedSupdialogId = meta.assignmentFromSup?.callerDialogId &&
2237
- meta.assignmentFromSup.callerDialogId.trim() !== ''
2238
- ? meta.assignmentFromSup.callerDialogId
2239
- : typeof meta.supdialogId === 'string' && meta.supdialogId.trim() !== ''
2240
- ? meta.supdialogId
2241
- : undefined;
2242
- subdialogs.push({
2236
+ const assignmentFromAsker = await persistence_1.DialogPersistence.loadSideDialogAssignmentFromAsker(dialogId, status);
2237
+ const derivedAskerDialogId = assignmentFromAsker.askerDialogId.trim();
2238
+ if (!derivedAskerDialogId) {
2239
+ const error = new Error(`sideDialog hierarchy invariant violation: missing assignmentFromAsker.askerDialogId ` +
2240
+ `(rootId=${rootId}, selfId=${dialogId.selfId}, status=${status})`);
2241
+ log.error('sideDialog hierarchy invariant violation: missing assignmentFromAsker.askerDialogId', error, { rootId, selfId: dialogId.selfId, status });
2242
+ throw error;
2243
+ }
2244
+ sideDialogs.push({
2243
2245
  selfId: meta.id,
2244
2246
  rootId,
2245
- supdialogId: derivedSupdialogId,
2247
+ askerDialogId: derivedAskerDialogId,
2246
2248
  agentId: meta.agentId,
2247
2249
  taskDocPath: meta.taskDocPath,
2248
2250
  status,
@@ -2251,15 +2253,15 @@ async function handleGetDialogHierarchy(res, rootId, status) {
2251
2253
  lastModified: subLatest?.lastModified || meta.createdAt,
2252
2254
  displayState: subLatest?.displayState,
2253
2255
  sessionSlug: meta.sessionSlug,
2254
- assignmentFromSup: meta.assignmentFromSup,
2256
+ assignmentFromAsker,
2255
2257
  waitingForFreshBootsReasoning,
2256
2258
  });
2257
2259
  }
2258
2260
  respondJson(res, 200, {
2259
2261
  success: true,
2260
2262
  hierarchy: {
2261
- root: { ...rootInfo, subdialogCount: subdialogs.length },
2262
- subdialogs,
2263
+ root: { ...rootInfo, sideDialogCount: sideDialogs.length },
2264
+ sideDialogs,
2263
2265
  },
2264
2266
  });
2265
2267
  return true;
@@ -2271,51 +2273,53 @@ async function handleGetDialogHierarchy(res, rootId, status) {
2271
2273
  }
2272
2274
  }
2273
2275
  /**
2274
- * Get one subdialog node for dialog-list backfill without reloading the whole hierarchy.
2276
+ * Get one sideDialog node for dialog-list backfill without reloading the whole hierarchy.
2275
2277
  */
2276
- async function handleGetDialogListSubdialogNode(res, dialog) {
2278
+ async function handleGetDialogListSideDialogNode(res, dialog) {
2277
2279
  try {
2278
2280
  const status = dialog.status;
2279
2281
  if (dialog.selfId === dialog.rootId) {
2280
2282
  respondJson(res, 400, {
2281
2283
  success: false,
2282
- error: 'Dialog-list subdialog node requires a subdialog selfId',
2284
+ error: 'Dialog-list sideDialog node requires a sideDialog selfId',
2283
2285
  });
2284
2286
  return true;
2285
2287
  }
2286
2288
  const dialogId = new dialog_1.DialogID(dialog.selfId, dialog.rootId);
2287
- const metadata = await loadDialogMetadataForLookup(dialogId, status, 'handleGetDialogListSubdialogNode');
2289
+ const metadata = await loadDialogMetadataForLookup(dialogId, status, 'handleGetDialogListSideDialogNode');
2288
2290
  if (!metadata) {
2289
2291
  respondJson(res, 404, { success: false, error: `Dialog not found in ${status}` });
2290
2292
  return true;
2291
2293
  }
2292
2294
  if (metadata.id !== dialog.selfId) {
2293
- throw new Error(`CRITICAL: dialog-list subdialog node metadata id mismatch. expected=${dialog.selfId} actual=${metadata.id} rootId=${dialog.rootId} status=${status}`);
2295
+ throw new Error(`CRITICAL: dialog-list sideDialog node metadata id mismatch. expected=${dialog.selfId} actual=${metadata.id} rootId=${dialog.rootId} status=${status}`);
2294
2296
  }
2295
2297
  if (metadata.id === dialog.rootId) {
2296
- throw new Error(`CRITICAL: dialog-list subdialog node lookup resolved root dialog. rootId=${dialog.rootId} selfId=${dialog.selfId} status=${status}`);
2298
+ throw new Error(`CRITICAL: dialog-list sideDialog node lookup resolved main dialog. rootId=${dialog.rootId} selfId=${dialog.selfId} status=${status}`);
2297
2299
  }
2298
- const latest = await loadDialogLatestForLookup(dialogId, status, 'handleGetDialogListSubdialogNode');
2300
+ const latest = await loadDialogLatestForLookup(dialogId, status, 'handleGetDialogListSideDialogNode');
2299
2301
  const waitingForFreshBootsReasoning = await detectWaitingForFreshBootsReasoning(dialogId, status);
2300
- const rootSubdialogCount = await persistence_1.DialogPersistence.countAllSubdialogsUnderRoot(new dialog_1.DialogID(dialog.rootId), status);
2301
- const subdialogPath = persistence_1.DialogPersistence.getSubdialogPath(dialogId, status);
2302
- if (!(await pathStillExistsForLookup(subdialogPath))) {
2302
+ const rootSideDialogCount = await persistence_1.DialogPersistence.countAllSideDialogsUnderRoot(new dialog_1.DialogID(dialog.rootId), status);
2303
+ const sideDialogPath = persistence_1.DialogPersistence.getSideDialogPath(dialogId, status);
2304
+ if (!(await pathStillExistsForLookup(sideDialogPath))) {
2303
2305
  respondJson(res, 404, { success: false, error: `Dialog not found in ${status}` });
2304
2306
  return true;
2305
2307
  }
2306
- const derivedSupdialogId = metadata.assignmentFromSup?.callerDialogId &&
2307
- metadata.assignmentFromSup.callerDialogId.trim() !== ''
2308
- ? metadata.assignmentFromSup.callerDialogId
2309
- : typeof metadata.supdialogId === 'string' && metadata.supdialogId.trim() !== ''
2310
- ? metadata.supdialogId
2311
- : undefined;
2308
+ const assignmentFromAsker = await persistence_1.DialogPersistence.loadSideDialogAssignmentFromAsker(dialogId, status);
2309
+ const derivedAskerDialogId = assignmentFromAsker.askerDialogId.trim();
2310
+ if (!derivedAskerDialogId) {
2311
+ const error = new Error(`dialog-list sideDialog node invariant violation: missing assignmentFromAsker.askerDialogId ` +
2312
+ `(rootId=${dialog.rootId}, selfId=${dialog.selfId}, status=${status})`);
2313
+ log.error('dialog-list sideDialog node invariant violation: missing assignmentFromAsker.askerDialogId', error, { rootId: dialog.rootId, selfId: dialog.selfId, status });
2314
+ throw error;
2315
+ }
2312
2316
  respondJson(res, 200, {
2313
2317
  success: true,
2314
- subdialogNode: {
2318
+ sideDialogNode: {
2315
2319
  selfId: metadata.id,
2316
2320
  rootId: dialog.rootId,
2317
- rootSubdialogCount,
2318
- supdialogId: derivedSupdialogId,
2321
+ rootSideDialogCount,
2322
+ askerDialogId: derivedAskerDialogId,
2319
2323
  agentId: metadata.agentId,
2320
2324
  taskDocPath: metadata.taskDocPath,
2321
2325
  status,
@@ -2324,17 +2328,17 @@ async function handleGetDialogListSubdialogNode(res, dialog) {
2324
2328
  lastModified: latest?.lastModified ?? metadata.createdAt,
2325
2329
  displayState: latest?.displayState,
2326
2330
  sessionSlug: metadata.sessionSlug,
2327
- assignmentFromSup: metadata.assignmentFromSup,
2331
+ assignmentFromAsker,
2328
2332
  waitingForFreshBootsReasoning,
2329
2333
  },
2330
2334
  });
2331
2335
  return true;
2332
2336
  }
2333
2337
  catch (error) {
2334
- log.error('Error getting dialog-list subdialog node:', error);
2338
+ log.error('Error getting dialog-list sideDialog node:', error);
2335
2339
  respondJson(res, 500, {
2336
2340
  success: false,
2337
- error: 'Failed to get dialog-list subdialog node',
2341
+ error: 'Failed to get dialog-list sideDialog node',
2338
2342
  });
2339
2343
  return true;
2340
2344
  }
@@ -2368,8 +2372,8 @@ async function handleCreateDialog(req, res, context) {
2368
2372
  // Create dialog UI based on context
2369
2373
  // Always use DiskFileDialogStore for file-based persistence
2370
2374
  const dialogUI = new persistence_1.DiskFileDialogStore(dialogId);
2371
- // Create RootDialog
2372
- const dialog = new dialog_1.RootDialog(dialogUI, taskDocPath, dialogId, agentId);
2375
+ // Create MainDialog
2376
+ const dialog = new dialog_1.MainDialog(dialogUI, taskDocPath, dialogId, agentId);
2373
2377
  dialog.setPersistenceStatus('running');
2374
2378
  dialog_global_registry_1.globalDialogRegistry.register(dialog);
2375
2379
  const team = await team_1.Team.load();
@@ -2383,7 +2387,7 @@ async function handleCreateDialog(req, res, context) {
2383
2387
  agentId: agentId,
2384
2388
  taskDocPath: taskDocPath,
2385
2389
  createdAt: (0, time_1.formatUnifiedTimestamp)(new Date()),
2386
- priming: (0, priming_1.buildRootDialogPrimingMetadata)(priming),
2390
+ priming: (0, priming_1.buildMainDialogPrimingMetadata)(priming),
2387
2391
  };
2388
2392
  await persistence_1.DialogPersistence.saveDialogMetadata(new dialog_1.DialogID(dialogId.selfId), metadata);
2389
2393
  // Initialize latest.yaml via the mutation API (write-back will flush).
@@ -2395,7 +2399,7 @@ async function handleCreateDialog(req, res, context) {
2395
2399
  status: 'active',
2396
2400
  messageCount: 0,
2397
2401
  functionCallCount: 0,
2398
- subdialogCount: 0,
2402
+ sideDialogCount: 0,
2399
2403
  displayState: { kind: 'idle_waiting_user' },
2400
2404
  disableDiligencePush: defaultDisableDiligencePush,
2401
2405
  diligencePushRemainingBudget: dialog.diligencePushRemainingBudget,
@@ -2474,7 +2478,7 @@ async function handleForkDialog(req, res, context, rootIdRaw) {
2474
2478
  respondJson(res, 400, payload);
2475
2479
  return true;
2476
2480
  }
2477
- const result = await (0, dialog_fork_1.forkRootDialogTreeAtGeneration)({
2481
+ const result = await (0, dialog_fork_1.forkMainDialogTreeAtGeneration)({
2478
2482
  sourceRootId: rootId,
2479
2483
  sourceStatus: status,
2480
2484
  course,
@@ -2548,11 +2552,11 @@ async function handleMoveDialogs(req, res, context) {
2548
2552
  respondJson(res, 400, { success: false, error: 'rootId must be a non-empty string' });
2549
2553
  return true;
2550
2554
  }
2551
- const meta = await loadRootDialogMetadataForLookup(new dialog_1.DialogID(rootId), fromStatus, 'handleMoveDialogs:root');
2555
+ const meta = await loadMainDialogMetadataForLookup(new dialog_1.DialogID(rootId), fromStatus, 'handleMoveDialogs:root');
2552
2556
  if (!meta) {
2553
2557
  respondJson(res, 404, {
2554
2558
  success: false,
2555
- error: `Root dialog ${rootId} not found in ${fromStatus}`,
2559
+ error: `Main dialog ${rootId} not found in ${fromStatus}`,
2556
2560
  });
2557
2561
  return true;
2558
2562
  }
@@ -2585,7 +2589,7 @@ async function handleMoveDialogs(req, res, context) {
2585
2589
  for (const id of ids) {
2586
2590
  if (typeof id !== 'string' || id.trim() === '')
2587
2591
  continue;
2588
- const meta = await loadRootDialogMetadataForLookup(new dialog_1.DialogID(id), fromStatus, 'handleMoveDialogs:task-scan');
2592
+ const meta = await loadMainDialogMetadataForLookup(new dialog_1.DialogID(id), fromStatus, 'handleMoveDialogs:task-scan');
2589
2593
  if (!meta)
2590
2594
  continue;
2591
2595
  if (meta.taskDocPath !== taskDocPath)
@@ -2675,7 +2679,7 @@ async function handleDeleteDialog(res, dialog, context) {
2675
2679
  try {
2676
2680
  const { rootId, selfId, fromStatus } = dialog;
2677
2681
  if (typeof rootId !== 'string' || rootId.trim() === '') {
2678
- respondJson(res, 400, { error: 'Invalid root dialog id' });
2682
+ respondJson(res, 400, { error: 'Invalid main dialog id' });
2679
2683
  return true;
2680
2684
  }
2681
2685
  if (typeof selfId !== 'string' || selfId.trim() === '') {
@@ -2684,11 +2688,11 @@ async function handleDeleteDialog(res, dialog, context) {
2684
2688
  }
2685
2689
  if (selfId !== rootId) {
2686
2690
  respondJson(res, 400, {
2687
- error: 'Only root dialog deletion is supported (use /api/dialogs/:root)',
2691
+ error: 'Only main dialog deletion is supported (use /api/dialogs/:root)',
2688
2692
  });
2689
2693
  return true;
2690
2694
  }
2691
- const deleted = await persistence_1.DialogPersistence.deleteRootDialog(new dialog_1.DialogID(rootId), fromStatus);
2695
+ const deleted = await persistence_1.DialogPersistence.deleteMainDialog(new dialog_1.DialogID(rootId), fromStatus);
2692
2696
  if (!deleted) {
2693
2697
  respondJson(res, 404, { error: `Dialog not found in ${fromStatus}` });
2694
2698
  return true;
@@ -39,7 +39,7 @@ Available API endpoints:
39
39
  • GET /api/team/config - Team configuration
40
40
  • GET /api/dialogs - List all dialogs
41
41
  • POST /api/dialogs - Create new dialog
42
- • GET /api/dialogs/:root/subdialogs/:self/list-node - Get one dialog-list subdialog node
42
+ • GET /api/dialogs/:root/sideDialogs/:self/list-node - Get one dialog-list sideDialog node
43
43
  • GET /api/dialogs/:root/hierarchy - Get dialog hierarchy
44
44
  • GET /api/task-documents - Taskdoc listing
45
45