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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOrRestoreRootDialog = getOrRestoreRootDialog;
3
+ exports.getOrRestoreMainDialog = getOrRestoreMainDialog;
4
4
  exports.ensureDialogLoaded = ensureDialogLoaded;
5
5
  const diligence_1 = require("@longrun-ai/kernel/diligence");
6
6
  const dialog_1 = require("./dialog");
@@ -40,25 +40,22 @@ async function resolvePendingCourseStartPromptForRestore(args) {
40
40
  }
41
41
  return { pendingCourseStartPrompt: pending };
42
42
  }
43
- async function getOrRestoreRootDialog(rootId, status) {
43
+ async function getOrRestoreMainDialog(rootId, status) {
44
44
  const existing = dialog_global_registry_1.globalDialogRegistry.get(rootId);
45
45
  if (existing) {
46
46
  existing.setPersistenceStatus(status);
47
- await existing.loadSubdialogRegistry();
48
- await existing.loadPendingSubdialogsFromPersistence();
47
+ await existing.loadSideDialogRegistry();
48
+ await existing.loadPendingSideDialogsFromPersistence();
49
49
  return existing;
50
50
  }
51
- const rootDialogId = new dialog_1.DialogID(rootId);
52
- const rootState = await persistence_1.DialogPersistence.restoreDialog(rootDialogId, status);
51
+ const mainDialogId = new dialog_1.DialogID(rootId);
52
+ const rootState = await persistence_1.DialogPersistence.restoreDialog(mainDialogId, status);
53
53
  if (!rootState)
54
54
  return undefined;
55
55
  const rootMetadata = rootState.metadata;
56
- if (rootMetadata.supdialogId !== undefined) {
57
- return undefined;
58
- }
59
- const latest = await persistence_1.DialogPersistence.loadDialogLatest(rootDialogId, status);
56
+ const latest = await persistence_1.DialogPersistence.loadDialogLatest(mainDialogId, status);
60
57
  const { pendingCourseStartPrompt } = await resolvePendingCourseStartPromptForRestore({
61
- dialogId: rootDialogId,
58
+ dialogId: mainDialogId,
62
59
  status,
63
60
  messages: rootState.messages,
64
61
  latest,
@@ -72,8 +69,8 @@ async function getOrRestoreRootDialog(rootId, status) {
72
69
  diligencePushMax = diligence_1.DEFAULT_DILIGENCE_PUSH_MAX;
73
70
  }
74
71
  const defaultDisableDiligencePush = diligencePushMax <= 0;
75
- const rootStore = new persistence_1.DiskFileDialogStore(rootDialogId);
76
- const rootDialog = new dialog_1.RootDialog(rootStore, rootMetadata.taskDocPath, rootDialogId, rootMetadata.agentId, {
72
+ const rootStore = new persistence_1.DiskFileDialogStore(mainDialogId);
73
+ const mainDialog = new dialog_1.MainDialog(rootStore, rootMetadata.taskDocPath, mainDialogId, rootMetadata.agentId, {
77
74
  messages: rootState.messages,
78
75
  reminders: rootState.reminders,
79
76
  currentCourse: rootState.currentCourse,
@@ -83,27 +80,27 @@ async function getOrRestoreRootDialog(rootId, status) {
83
80
  const persistedDisableDiligencePush = latest && typeof latest.disableDiligencePush === 'boolean'
84
81
  ? latest.disableDiligencePush
85
82
  : defaultDisableDiligencePush;
86
- rootDialog.disableDiligencePush = persistedDisableDiligencePush;
83
+ mainDialog.disableDiligencePush = persistedDisableDiligencePush;
87
84
  const persistedRemainingBudget = latest && typeof latest.diligencePushRemainingBudget === 'number'
88
85
  ? latest.diligencePushRemainingBudget
89
86
  : undefined;
90
87
  const normalizedRemainingBudget = clampNonNegativeFiniteInt(persistedRemainingBudget, diligencePushMax > 0 ? diligencePushMax : 0);
91
- rootDialog.diligencePushRemainingBudget =
88
+ mainDialog.diligencePushRemainingBudget =
92
89
  diligencePushMax > 0
93
90
  ? Math.min(normalizedRemainingBudget, diligencePushMax)
94
91
  : normalizedRemainingBudget;
95
- rootDialog.setPersistenceStatus(status);
96
- dialog_global_registry_1.globalDialogRegistry.register(rootDialog);
97
- // Keep the in-memory root dialog fully hydrated regardless of persistence status
98
- // (running/completed/archived) so subdialog lookup is stable across UI navigation.
99
- await rootDialog.loadSubdialogRegistry();
100
- await rootDialog.loadPendingSubdialogsFromPersistence();
101
- return rootDialog;
92
+ mainDialog.setPersistenceStatus(status);
93
+ dialog_global_registry_1.globalDialogRegistry.register(mainDialog);
94
+ // Keep the in-memory main dialog fully hydrated regardless of persistence status
95
+ // (running/completed/archived) so sideDialog lookup is stable across UI navigation.
96
+ await mainDialog.loadSideDialogRegistry();
97
+ await mainDialog.loadPendingSideDialogsFromPersistence();
98
+ return mainDialog;
102
99
  }
103
- async function ensureDialogLoaded(rootDialog, targetId, status, visitedSelfIds = new Set()) {
100
+ async function ensureDialogLoaded(mainDialog, targetId, status, visitedSelfIds = new Set()) {
104
101
  if (targetId.selfId === targetId.rootId)
105
- return rootDialog;
106
- const existing = rootDialog.lookupDialog(targetId.selfId);
102
+ return mainDialog;
103
+ const existing = mainDialog.lookupDialog(targetId.selfId);
107
104
  if (existing)
108
105
  return existing;
109
106
  if (visitedSelfIds.has(targetId.selfId))
@@ -112,9 +109,17 @@ async function ensureDialogLoaded(rootDialog, targetId, status, visitedSelfIds =
112
109
  const metadata = await persistence_1.DialogPersistence.loadDialogMetadata(targetId, status);
113
110
  if (!metadata)
114
111
  return undefined;
115
- // Ensure parent dialog (supdialog) exists in root registry for SubDialog.supdialog resolution.
116
- if (metadata.supdialogId && metadata.supdialogId !== targetId.rootId) {
117
- await ensureDialogLoaded(rootDialog, new dialog_1.DialogID(metadata.supdialogId, targetId.rootId), status, visitedSelfIds);
112
+ const askerStack = await persistence_1.DialogPersistence.loadSideDialogAskerStackState(targetId, status);
113
+ if (!askerStack) {
114
+ throw new Error(`ensureDialogLoaded invariant violation: missing asker stack for ${targetId.valueOf()}`);
115
+ }
116
+ const askerStackTop = askerStack.askerStack[askerStack.askerStack.length - 1];
117
+ if (!askerStackTop) {
118
+ throw new Error(`ensureDialogLoaded invariant violation: empty askerDialog stack for ${targetId.valueOf()}`);
119
+ }
120
+ // Ensure asker dialog exists in root registry for dynamic asker/askerDialog resolution.
121
+ if (askerStackTop.askerDialogId !== targetId.rootId) {
122
+ await ensureDialogLoaded(mainDialog, new dialog_1.DialogID(askerStackTop.askerDialogId, targetId.rootId), status, visitedSelfIds);
118
123
  }
119
124
  const state = await persistence_1.DialogPersistence.restoreDialog(targetId, status);
120
125
  if (!state)
@@ -126,26 +131,32 @@ async function ensureDialogLoaded(rootDialog, targetId, status, visitedSelfIds =
126
131
  messages: state.messages,
127
132
  latest,
128
133
  });
129
- const assignmentFromSup = state.metadata.assignmentFromSup;
130
- if (!assignmentFromSup)
131
- return undefined;
132
- // Ensure the caller dialog exists so SubDialog can resolve its effective supdialog.
133
- if (assignmentFromSup.callerDialogId &&
134
- assignmentFromSup.callerDialogId !== targetId.rootId &&
135
- assignmentFromSup.callerDialogId !== targetId.selfId) {
136
- await ensureDialogLoaded(rootDialog, new dialog_1.DialogID(assignmentFromSup.callerDialogId, targetId.rootId), status, visitedSelfIds);
134
+ const assignmentFromAsker = (() => {
135
+ for (let index = askerStack.askerStack.length - 1; index >= 0; index -= 1) {
136
+ const frame = askerStack.askerStack[index];
137
+ if (frame?.assignmentFromAsker !== undefined) {
138
+ return frame.assignmentFromAsker;
139
+ }
140
+ }
141
+ throw new Error(`ensureDialogLoaded invariant violation: missing assignment frame in asker stack for ${targetId.valueOf()}`);
142
+ })();
143
+ // Ensure the tellasker exists so SideDialog can resolve its effective askerDialog.
144
+ if (assignmentFromAsker.askerDialogId &&
145
+ assignmentFromAsker.askerDialogId !== targetId.rootId &&
146
+ assignmentFromAsker.askerDialogId !== targetId.selfId) {
147
+ await ensureDialogLoaded(mainDialog, new dialog_1.DialogID(assignmentFromAsker.askerDialogId, targetId.rootId), status, visitedSelfIds);
137
148
  }
138
149
  const store = new persistence_1.DiskFileDialogStore(targetId);
139
- const subdialog = new dialog_1.SubDialog(store, rootDialog, state.metadata.taskDocPath, targetId, state.metadata.agentId, assignmentFromSup, state.metadata.sessionSlug, {
150
+ const sideDialog = new dialog_1.SideDialog(store, mainDialog, metadata.taskDocPath, targetId, metadata.agentId, askerStack, metadata.sessionSlug, {
140
151
  messages: state.messages,
141
152
  reminders: state.reminders,
142
153
  currentCourse: state.currentCourse,
143
154
  contextHealth: state.contextHealth,
144
155
  pendingCourseStartPrompt,
145
156
  });
146
- subdialog.disableDiligencePush = latest?.disableDiligencePush ?? false;
147
- if (subdialog.sessionSlug) {
148
- rootDialog.registerSubdialog(subdialog);
157
+ sideDialog.disableDiligencePush = latest?.disableDiligencePush ?? false;
158
+ if (sideDialog.sessionSlug) {
159
+ mainDialog.registerSideDialog(sideDialog);
149
160
  }
150
- return subdialog;
161
+ return sideDialog;
151
162
  }
package/dist/dialog.d.ts CHANGED
@@ -2,21 +2,21 @@
2
2
  * Module: dialog
3
3
  *
4
4
  * Provides the `Dialog` object for orchestrating conversations:
5
- * - Tracks messages, agent identity, optional supdialog/subdialog relationships
5
+ * - Tracks messages, agent identity, optional askerDialog/sideDialog relationships
6
6
  * - Receivers for streaming LLM output and tool results
7
- * - Helpers for spawning subdialogs and prompting human input
7
+ * - Helpers for spawning sideDialogs and prompting human input
8
8
  * - Persistence support for dialog state and message history
9
9
  *
10
10
  * Architecture (Phase 2):
11
11
  * - `Dialog` - Abstract base class for all dialogs
12
- * - `RootDialog` - Root dialog with subdialog registry
13
- * - `SubDialog` - Subdialog with root dialog reference and dynamic supdialog resolution
12
+ * - `MainDialog` - Main dialog with sideDialog registry
13
+ * - `SideDialog` - SideDialog with main dialog reference and dynamic askerDialog resolution
14
14
  */
15
15
  import type { ContextHealthSnapshot } from '@longrun-ai/kernel/types/context-health';
16
16
  import type { DialogEvent, NativeToolCallPayload, ReminderContent, WebSearchCallAction, WebSearchCallSource } from '@longrun-ai/kernel/types/dialog';
17
- import type { DialogQueuedDeferredQ4HAnswerState, DialogQueuedPromptState, DialogQueuedUserGenerationBoundaryState, DialogRunControlSpec, DialogRuntimePrompt, DialogSubdialogReplyTarget, DialogUserPrompt, DriveIntent } from '@longrun-ai/kernel/types/drive-intent';
17
+ import type { DialogQueuedDeferredQ4HAnswerState, DialogQueuedPromptState, DialogQueuedUserGenerationBoundaryState, DialogRunControlSpec, DialogRuntimePrompt, DialogSideDialogReplyTarget, DialogUserPrompt, DriveIntent } from '@longrun-ai/kernel/types/drive-intent';
18
18
  import type { LanguageCode } from '@longrun-ai/kernel/types/language';
19
- import type { CalleeCourseNumber, CalleeGenerationSeqNumber, CallingCourseNumber, CallingGenerationSeqNumber, DialogMetadataFile, HumanQuestion, ProviderData, ReasoningPayload, TellaskCallRecordName, TellaskReplyDirective } from '@longrun-ai/kernel/types/storage';
19
+ import type { CalleeCourseNumber, CalleeGenerationSeqNumber, CallSiteCourseNo, CallSiteGenseqNo, DialogAskerStackState, DialogMetadataFile, HumanQuestion, ProviderData, ReasoningPayload, TellaskCallRecordName, TellaskReplyDirective } from '@longrun-ai/kernel/types/storage';
20
20
  import { ChatMessage, FuncResultMsg, TellaskCarryoverMsg, TellaskResultMsg } from './llm/client';
21
21
  import type { ToolResultImageIngest, UserImageIngest } from './llm/gen';
22
22
  import type { JsonValue } from './tool';
@@ -34,7 +34,7 @@ type NewCourseHook = (args: {
34
34
  runControl?: DialogRunControlSpec;
35
35
  }) => Promise<NewCourseHookResult>;
36
36
  export type DialogSuspensionStatusOptions = Readonly<{
37
- allowPendingSubdialogs?: boolean;
37
+ allowPendingSideDialogs?: boolean;
38
38
  }>;
39
39
  export declare class DialogID {
40
40
  readonly selfId: string;
@@ -56,32 +56,33 @@ export declare class DialogID {
56
56
  hashCode(): string;
57
57
  }
58
58
  /**
59
- * Phase 6: Pending subdialog record for Type A subdialog supply mechanism.
60
- * Tracks a subdialog that was created but not yet completed.
59
+ * Phase 6: Pending sideDialog record for Type A sideDialog supply mechanism.
60
+ * Tracks a sideDialog that was created but not yet completed.
61
61
  */
62
- export interface PendingSubdialog {
63
- subdialogId: DialogID;
62
+ export interface PendingSideDialog {
63
+ sideDialogId: DialogID;
64
64
  createdAt: string;
65
65
  mentionList?: string[];
66
66
  tellaskContent: string;
67
67
  targetAgentId: string;
68
68
  callId: string;
69
- callingCourse?: CallingCourseNumber;
69
+ callSiteCourse: CallSiteCourseNo;
70
+ callSiteGenseq: CallSiteGenseqNo;
70
71
  callType: 'A' | 'B' | 'C';
71
72
  sessionSlug?: string;
72
73
  }
73
74
  /**
74
- * Phase 6: Subdialog response record for Type A subdialog supply mechanism.
75
- * Tracks the response from a completed subdialog.
75
+ * Phase 6: SideDialog response record for Type A sideDialog supply mechanism.
76
+ * Tracks the response from a completed sideDialog.
76
77
  */
77
- export interface SubdialogResponse {
78
- subdialogId: DialogID;
78
+ export interface SideDialogResponse {
79
+ sideDialogId: DialogID;
79
80
  response: string;
80
81
  completedAt: string;
81
82
  callType: 'A' | 'B' | 'C';
82
83
  }
83
84
  /**
84
- * Common dialog initialization parameters (shared between RootDialog and SubDialog)
85
+ * Common dialog initialization parameters (shared between MainDialog and SideDialog)
85
86
  */
86
87
  export interface DialogInitParams {
87
88
  taskDocPath: string;
@@ -107,21 +108,25 @@ export type VisibleReminderTarget = Readonly<{
107
108
  agentId: string;
108
109
  }>;
109
110
  /**
110
- * Assignment from supdialog for subdialogs
111
+ * Assignment from askerDialog for sideDialogs
111
112
  */
112
- export interface AssignmentFromSup {
113
+ export interface AssignmentFromAsker {
113
114
  callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
114
115
  mentionList?: string[];
115
116
  tellaskContent: string;
116
117
  originMemberId: string;
117
- callerDialogId: string;
118
+ askerDialogId: string;
118
119
  callId: string;
119
120
  collectiveTargets?: string[];
120
121
  effectiveFbrEffort?: number;
121
122
  }
123
+ export declare function buildSideDialogAskerStack(args: {
124
+ askerDialogId: string;
125
+ assignment: AssignmentFromAsker;
126
+ }): DialogAskerStackState;
122
127
  /**
123
128
  * Abstract base class for all dialog types.
124
- * Contains common properties and methods shared between RootDialog and SubDialog.
129
+ * Contains common properties and methods shared between MainDialog and SideDialog.
125
130
  */
126
131
  export declare abstract class Dialog {
127
132
  readonly dlgStore: DialogStore;
@@ -149,7 +154,7 @@ export declare abstract class Dialog {
149
154
  protected _courseRuntimeNoticeMsgs: ChatMessage[];
150
155
  protected _generationStarted: boolean;
151
156
  protected _generationStartedGenseq: number;
152
- protected _pendingSubdialogIds: DialogID[];
157
+ protected _pendingSideDialogIds: DialogID[];
153
158
  protected _suspensionState: 'active' | 'suspended' | 'resumed';
154
159
  diligencePushRemainingBudget: number;
155
160
  disableDiligencePush: boolean;
@@ -161,7 +166,7 @@ export declare abstract class Dialog {
161
166
  getLastContextHealthGenseq(): number | undefined;
162
167
  get remindersVer(): number;
163
168
  touchReminders(): void;
164
- get supdialog(): Dialog | undefined;
169
+ get askerDialog(): Dialog | undefined;
165
170
  getUiLanguage(): LanguageCode;
166
171
  setUiLanguage(language: LanguageCode): void;
167
172
  getLastUserLanguageCode(): LanguageCode;
@@ -174,7 +179,7 @@ export declare abstract class Dialog {
174
179
  *
175
180
  * Call Types:
176
181
  * - tellask-special function call: callId is set when call results are finalized and used for inline result correlation
177
- * - Subdialog response bubbles: use calleeDialogId instead of callId
182
+ * - SideDialog response bubbles: use calleeDialogId instead of callId
178
183
  *
179
184
  * @returns The current callId for call correlation, or null if no active call
180
185
  */
@@ -209,11 +214,11 @@ export declare abstract class Dialog {
209
214
  */
210
215
  hasPendingQ4H(): Promise<boolean>;
211
216
  /**
212
- * Check if dialog has pending subdialogs.
217
+ * Check if dialog has pending sideDialogs.
213
218
  */
214
- hasPendingSubdialogs(): Promise<boolean>;
219
+ hasPendingSideDialogs(): Promise<boolean>;
215
220
  /**
216
- * Check if dialog can be driven (not suspended for Q4H or subdialogs).
221
+ * Check if dialog can be driven (not suspended for Q4H or sideDialogs).
217
222
  */
218
223
  canDrive(options?: DialogSuspensionStatusOptions): Promise<boolean>;
219
224
  /**
@@ -221,31 +226,31 @@ export declare abstract class Dialog {
221
226
  */
222
227
  getSuspensionStatus(options?: DialogSuspensionStatusOptions): Promise<{
223
228
  q4h: boolean;
224
- subdialogs: boolean;
225
- blockingSubdialogs: boolean;
229
+ sideDialogs: boolean;
230
+ blockingSideDialogs: boolean;
226
231
  canDrive: boolean;
227
232
  }>;
228
- get pendingSubdialogIds(): ReadonlyArray<DialogID>;
229
- addPendingSubdialogs(ids: DialogID[]): void;
230
- removePendingSubdialog(id: DialogID): void;
231
- clearPendingSubdialogs(): void;
233
+ get pendingSideDialogIds(): ReadonlyArray<DialogID>;
234
+ addPendingSideDialogs(ids: DialogID[]): void;
235
+ removePendingSideDialog(id: DialogID): void;
236
+ clearPendingSideDialogs(): void;
232
237
  /**
233
- * Load pending subdialogs from persistence into memory.
238
+ * Load pending sideDialogs from persistence into memory.
234
239
  * Used during crash recovery to restore suspension state.
235
240
  */
236
- loadPendingSubdialogsFromPersistence(): Promise<void>;
241
+ loadPendingSideDialogsFromPersistence(): Promise<void>;
237
242
  /**
238
- * Abstract method for creating subdialogs.
239
- * Implemented by RootDialog to create SubDialog instances.
243
+ * Abstract method for creating sideDialogs.
244
+ * Implemented by MainDialog to create SideDialog instances.
240
245
  */
241
- abstract createSubDialog(targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
246
+ abstract createSideDialog(targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
242
247
  callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
243
248
  originMemberId: string;
244
- callerDialogId: string;
249
+ askerDialogId: string;
245
250
  callId: string;
246
251
  sessionSlug?: string;
247
252
  collectiveTargets?: string[];
248
- }): Promise<SubDialog>;
253
+ }): Promise<SideDialog>;
249
254
  /**
250
255
  * Post a dialog event using the standard event registry.
251
256
  */
@@ -284,12 +289,12 @@ export declare abstract class Dialog {
284
289
  get hasActiveGeneration(): boolean;
285
290
  /**
286
291
  * Check if generation has started for the current course.
287
- * Used to ensure subdialog_final_response_evt arrives after parent events.
292
+ * Used to ensure sideDialog_final_response_evt arrives after parent events.
288
293
  */
289
294
  get generationStarted(): boolean;
290
295
  /**
291
296
  * Mark generation as started (after user_text event has been emitted).
292
- * This ensures subdialog_final_response_evt waits for this signal.
297
+ * This ensures sideDialog_final_response_evt waits for this signal.
293
298
  * @param genseq The generation sequence number when this flag is set
294
299
  */
295
300
  markGenerationStarted(genseq?: number): void;
@@ -337,7 +342,7 @@ export declare abstract class Dialog {
337
342
  userLanguageCode?: LanguageCode;
338
343
  tellaskReplyDirective: TellaskReplyDirective;
339
344
  skipTaskdoc?: boolean;
340
- subdialogReplyTarget: DialogSubdialogReplyTarget;
345
+ sideDialogReplyTarget: DialogSideDialogReplyTarget;
341
346
  }): DialogQueuedPromptState;
342
347
  hasUpNext(): boolean;
343
348
  peekUpNext(): DialogQueuedPromptState | undefined;
@@ -364,16 +369,16 @@ export declare abstract class Dialog {
364
369
  receiveTellaskResult(result: TellaskResultMsg): Promise<void>;
365
370
  receiveTellaskCarryover(result: TellaskCarryoverMsg): Promise<void>;
366
371
  receiveTellaskCallResult(responderId: string, callName: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'askHuman' | 'freshBootsReasoning', mentionList: string[] | undefined, tellaskContent: string, result: string, status: 'completed' | 'failed', callId: string, options?: {
367
- originCourse?: CallingCourseNumber;
368
- calling_genseq?: CallingGenerationSeqNumber;
372
+ callSiteCourse?: CallSiteCourseNo;
373
+ callSiteGenseq?: CallSiteGenseqNo;
369
374
  }): Promise<void>;
370
- receiveTellaskResponse(responderId: string, callName: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'askHuman' | 'freshBootsReasoning', mentionList: string[] | undefined, tellaskContent: string, status: 'completed' | 'failed', subdialogId: DialogID | undefined, options: {
375
+ receiveTellaskResponse(responderId: string, callName: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'askHuman' | 'freshBootsReasoning', mentionList: string[] | undefined, tellaskContent: string, status: 'completed' | 'failed', sideDialogId: DialogID | undefined, options: {
371
376
  response: string;
372
377
  agentId: string;
373
378
  callId: string;
374
379
  originMemberId: string;
375
- originCourse?: CallingCourseNumber;
376
- calling_genseq?: CallingGenerationSeqNumber;
380
+ callSiteCourse?: CallSiteCourseNo;
381
+ callSiteGenseq?: CallSiteGenseqNo;
377
382
  carryoverContent?: string;
378
383
  contentItems?: DialogUserPrompt['contentItems'];
379
384
  sessionSlug?: string;
@@ -392,7 +397,6 @@ export declare abstract class Dialog {
392
397
  sayingStart(): Promise<void>;
393
398
  sayingChunk(chunk: string): Promise<void>;
394
399
  sayingFinish(): Promise<void>;
395
- funcCallRequested(funcId: string, funcName: string, argumentsStr: string): Promise<void>;
396
400
  webSearchCall(payload: {
397
401
  source?: WebSearchCallSource;
398
402
  phase: 'added' | 'done';
@@ -428,63 +432,55 @@ export declare abstract class Dialog {
428
432
  persistTellaskCall(id: string, name: TellaskCallRecordName, rawArgumentsText: string, genseq: number, options?: {
429
433
  deliveryMode?: 'tellask_call_start' | 'func_call_requested';
430
434
  }): Promise<void>;
431
- persistFunctionCallResultPair(id: string, name: string, rawArgumentsText: string, genseq: number, result: FuncResultMsg): Promise<void>;
432
- persistTellaskCallResultPair(args: {
433
- id: string;
434
- name: TellaskCallRecordName;
435
- rawArgumentsText: string;
436
- genseq: number;
437
- result: TellaskResultMsg | FuncResultMsg;
438
- deliveryMode: 'tellask_call_start' | 'func_call_requested';
439
- }): Promise<void>;
440
435
  /**
441
- * Post subdialog completion response to this dialog.
442
- * Phase 14: No wait - emit immediately with virtual gen markers for Type C subdialogs
436
+ * Post sideDialog completion response to this dialog.
437
+ * Phase 14: No wait - emit immediately with virtual gen markers for Type C sideDialogs
443
438
  */
444
- postSubdialogResponse(subdialogId: DialogID, response: string): Promise<void>;
439
+ postSideDialogResponse(sideDialogId: DialogID, response: string): Promise<void>;
445
440
  }
446
441
  /**
447
- * SubDialog - A subdialog created by a RootDialog for autonomous tellask sideline work.
448
- * Stores the root dialog for registry and lookup, and resolves its effective supdialog dynamically.
442
+ * SideDialog - A sideDialog created by a MainDialog for autonomous tellask Side Dialog work.
443
+ * Stores the main dialog for registry and lookup, and resolves its effective askerDialog dynamically.
449
444
  */
450
- export declare class SubDialog extends Dialog {
451
- readonly rootDialog: RootDialog;
445
+ export declare class SideDialog extends Dialog {
446
+ readonly mainDialog: MainDialog;
452
447
  readonly sessionSlug?: string;
453
- assignmentFromSup: AssignmentFromSup;
454
- protected readonly _supdialog: Dialog;
448
+ askerStack: DialogAskerStackState;
455
449
  private _fbrConclusionToolsEnabled;
456
- constructor(dlgStore: DialogStore, rootDialog: RootDialog, taskDocPath: string, id: DialogID | undefined, agentId: string, assignmentFromSup: AssignmentFromSup, sessionSlug?: string, initialState?: DialogInitParams['initialState']);
457
- get supdialog(): Dialog;
450
+ constructor(dlgStore: DialogStore, mainDialog: MainDialog, taskDocPath: string, id: DialogID | undefined, agentId: string, askerStack: DialogAskerStackState, sessionSlug?: string, initialState?: DialogInitParams['initialState']);
451
+ get assignmentFromAsker(): AssignmentFromAsker;
452
+ set assignmentFromAsker(assignment: AssignmentFromAsker);
453
+ get askerDialog(): Dialog;
458
454
  get status(): 'running' | 'completed' | 'archived';
459
455
  setFbrConclusionToolsEnabled(enabled: boolean): void;
460
456
  areFbrConclusionToolsEnabled(): boolean;
461
457
  /**
462
- * Create a subdialog under the same root dialog tree.
463
- * The new subdialog's effective supdialog is resolved via AssignmentFromSup.callerDialogId.
458
+ * Create a sideDialog under the same main dialog tree.
459
+ * The new sideDialog's effective askerDialog is resolved via AssignmentFromAsker.askerDialogId.
464
460
  */
465
- createSubDialog(targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
461
+ createSideDialog(targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
466
462
  callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
467
463
  originMemberId: string;
468
- callerDialogId: string;
464
+ askerDialogId: string;
469
465
  callId: string;
470
466
  sessionSlug?: string;
471
467
  collectiveTargets?: string[];
472
468
  effectiveFbrEffort?: number;
473
- }): Promise<SubDialog>;
469
+ }): Promise<SideDialog>;
474
470
  }
475
471
  /**
476
- * RootDialog - The main/root dialog that can create and manage subdialogs.
472
+ * MainDialog - The main/main dialog that can create and manage sideDialogs.
477
473
  * Uses in-memory registries for O(1) dialog and Type B lookup.
478
474
  */
479
- export declare class RootDialog extends Dialog {
475
+ export declare class MainDialog extends Dialog {
480
476
  private _status;
481
477
  private _localRegistry;
482
- private _subdialogRegistry;
478
+ private _sideDialogRegistry;
483
479
  constructor(dlgStore: DialogStore, taskDocPath: string, id: DialogID | undefined, agentId: string, initialState?: DialogInitParams['initialState']);
484
480
  get status(): 'running' | 'completed' | 'archived';
485
481
  setPersistenceStatus(status: 'running' | 'completed' | 'archived'): void;
486
482
  /**
487
- * Register a dialog (self or subdialog) in the local registry.
483
+ * Register a dialog (self or sideDialog) in the local registry.
488
484
  */
489
485
  registerDialog(dialog: Dialog): void;
490
486
  /**
@@ -502,43 +498,43 @@ export declare class RootDialog extends Dialog {
502
498
  /**
503
499
  * Generate a registry key from agentId and sessionSlug.
504
500
  */
505
- static makeSubdialogKey(agentId: string, sessionSlug: string): string;
501
+ static makeSideDialogKey(agentId: string, sessionSlug: string): string;
506
502
  /**
507
- * Register a Type-B subdialog for resumption.
503
+ * Register a Type-B sideDialog for resumption.
508
504
  */
509
- registerSubdialog(subdialog: SubDialog): void;
505
+ registerSideDialog(sideDialog: SideDialog): void;
510
506
  /**
511
- * Lookup a Type-B subdialog by agentId and sessionSlug.
507
+ * Lookup a Type-B sideDialog by agentId and sessionSlug.
512
508
  */
513
- lookupSubdialog(agentId: string, sessionSlug: string): SubDialog | undefined;
509
+ lookupSideDialog(agentId: string, sessionSlug: string): SideDialog | undefined;
514
510
  /**
515
- * Remove a Type-B subdialog from registry.
511
+ * Remove a Type-B sideDialog from registry.
516
512
  */
517
- unregisterSubdialog(agentId: string, sessionSlug: string): boolean;
513
+ unregisterSideDialog(agentId: string, sessionSlug: string): boolean;
518
514
  /**
519
- * Get all registered subdialogs.
515
+ * Get all registered sideDialogs.
520
516
  */
521
- getRegisteredSubdialogs(): SubDialog[];
517
+ getRegisteredSideDialogs(): SideDialog[];
522
518
  /**
523
- * Create a new subdialog for autonomous tellask sideline work.
519
+ * Create a new sideDialog for autonomous tellask Side Dialog work.
524
520
  */
525
- createSubDialog(targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
521
+ createSideDialog(targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
526
522
  callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
527
523
  originMemberId: string;
528
- callerDialogId: string;
524
+ askerDialogId: string;
529
525
  callId: string;
530
526
  sessionSlug?: string;
531
527
  collectiveTargets?: string[];
532
528
  effectiveFbrEffort?: number;
533
- }): Promise<SubDialog>;
529
+ }): Promise<SideDialog>;
534
530
  /**
535
- * Save subdialog registry to disk (registry.yaml).
531
+ * Save sideDialog registry to disk (registry.yaml).
536
532
  */
537
- saveSubdialogRegistry(): Promise<void>;
533
+ saveSideDialogRegistry(): Promise<void>;
538
534
  /**
539
- * Load subdialog registry from disk (registry.yaml).
535
+ * Load sideDialog registry from disk (registry.yaml).
540
536
  */
541
- loadSubdialogRegistry(): Promise<void>;
537
+ loadSideDialogRegistry(): Promise<void>;
542
538
  }
543
539
  /**
544
540
  * The UI showing a dialog in realtime
@@ -549,21 +545,21 @@ export declare abstract class DialogStore {
549
545
  *
550
546
  * impl here serves for demo purpose only
551
547
  *
552
- * @param callerDialog
548
+ * @param askerDialog
553
549
  * @param targetAgentId
554
550
  * @param mentionList
555
551
  * @param tellaskContent
556
552
  * @returns
557
553
  */
558
- createSubDialog(callerDialog: Dialog, targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
554
+ createSideDialog(askerDialog: Dialog, targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
559
555
  callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
560
556
  originMemberId: string;
561
- callerDialogId: string;
557
+ askerDialogId: string;
562
558
  callId: string;
563
559
  sessionSlug?: string;
564
560
  collectiveTargets?: string[];
565
561
  effectiveFbrEffort?: number;
566
- }): Promise<SubDialog>;
562
+ }): Promise<SideDialog>;
567
563
  /**
568
564
  * Receive and handle LLM generation streams (Markdown stream + tellask call stream)
569
565
  */
@@ -593,14 +589,15 @@ export declare abstract class DialogStore {
593
589
  */
594
590
  loadQuestions4Human(_dialogId: DialogID, _status: 'running' | 'completed' | 'archived'): Promise<HumanQuestion[]>;
595
591
  loadDialogMetadata(_dialogId: DialogID, _status: 'running' | 'completed' | 'archived'): Promise<DialogMetadataFile | null>;
596
- loadPendingSubdialogs(_dialogId: DialogID, _status: 'running' | 'completed' | 'archived'): Promise<PendingSubdialog[]>;
597
- saveSubdialogRegistry(_dialog: RootDialog, _rootDialogId: DialogID, _entries: Array<{
592
+ loadSideDialogAssignmentFromAsker(_dialogId: DialogID, _status: 'running' | 'completed' | 'archived'): Promise<AssignmentFromAsker | null>;
593
+ loadPendingSideDialogs(_dialogId: DialogID, _status: 'running' | 'completed' | 'archived'): Promise<PendingSideDialog[]>;
594
+ saveSideDialogRegistry(_dialog: MainDialog, _mainDialogId: DialogID, _entries: Array<{
598
595
  key: string;
599
- subdialogId: DialogID;
596
+ sideDialogId: DialogID;
600
597
  agentId: string;
601
598
  sessionSlug?: string;
602
599
  }>, _status: 'running' | 'completed' | 'archived'): Promise<void>;
603
- loadSubdialogRegistry(_rootDialog: RootDialog, _status: 'running' | 'completed' | 'archived'): Promise<void>;
600
+ loadSideDialogRegistry(_mainDialog: MainDialog, _status: 'running' | 'completed' | 'archived'): Promise<void>;
604
601
  /**
605
602
  * Clear Questions for Human state in storage
606
603
  */
@@ -612,7 +609,6 @@ export declare abstract class DialogStore {
612
609
  sessionSlug?: string;
613
610
  tellaskContent: string;
614
611
  }): Promise<void>;
615
- funcCallRequested(_dialog: Dialog, _funcId: string, _funcName: string, _argumentsStr: string): Promise<void>;
616
612
  webSearchCall(_dialog: Dialog, _payload: {
617
613
  source?: WebSearchCallSource;
618
614
  phase: 'added' | 'done';
@@ -662,15 +658,6 @@ export declare abstract class DialogStore {
662
658
  persistTellaskCall(_dialog: Dialog, _id: string, _name: TellaskCallRecordName, _rawArgumentsText: string, _genseq: number, _options?: {
663
659
  deliveryMode?: 'tellask_call_start' | 'func_call_requested';
664
660
  }): Promise<void>;
665
- persistFunctionCallResultPair(_dialog: Dialog, _id: string, _name: string, _rawArgumentsText: string, _genseq: number, _result: FuncResultMsg): Promise<void>;
666
- persistTellaskCallResultPair(_dialog: Dialog, _args: {
667
- id: string;
668
- name: TellaskCallRecordName;
669
- rawArgumentsText: string;
670
- genseq: number;
671
- result: TellaskResultMsg | FuncResultMsg;
672
- deliveryMode: 'tellask_call_start' | 'func_call_requested';
673
- }): Promise<void>;
674
661
  /**
675
662
  * Start a new course in storage
676
663
  */