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,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.supplyResponseToSupdialog = supplyResponseToSupdialog;
4
- exports.supplySubdialogResponseToSpecificCallerIfPendingV2 = supplySubdialogResponseToSpecificCallerIfPendingV2;
5
- exports.supplySubdialogResponseToAssignedCallerIfPendingV2 = supplySubdialogResponseToAssignedCallerIfPendingV2;
3
+ exports.supplyResponseToAskerDialog = supplyResponseToAskerDialog;
4
+ exports.supplySideDialogResponseToSpecificAskerIfPendingV2 = supplySideDialogResponseToSpecificAskerIfPendingV2;
5
+ exports.supplySideDialogResponseToAssignedAskerIfPendingV2 = supplySideDialogResponseToAssignedAskerIfPendingV2;
6
6
  const storage_1 = require("@longrun-ai/kernel/types/storage");
7
7
  const time_1 = require("@longrun-ai/kernel/utils/time");
8
8
  const dialog_1 = require("../../dialog");
@@ -13,7 +13,7 @@ const persistence_1 = require("../../persistence");
13
13
  const inter_dialog_format_1 = require("../../runtime/inter-dialog-format");
14
14
  const work_language_1 = require("../../runtime/work-language");
15
15
  const pending_tellask_reminder_1 = require("../../tools/pending-tellask-reminder");
16
- const subdialog_txn_1 = require("./subdialog-txn");
16
+ const sideDialog_txn_1 = require("./sideDialog-txn");
17
17
  async function syncPendingTellaskReminderBestEffort(dlg, where) {
18
18
  try {
19
19
  const changed = await (0, pending_tellask_reminder_1.syncPendingTellaskReminderState)(dlg);
@@ -30,22 +30,22 @@ async function syncPendingTellaskReminderBestEffort(dlg, where) {
30
30
  });
31
31
  }
32
32
  }
33
- async function resolveOwnerDialogBySelfId(subdialog, ownerDialogId) {
34
- const rootDialog = subdialog.rootDialog;
35
- if (!(await ensureDialogFreshOrDiscard(rootDialog, 'resolveOwnerDialogBySelfId:root'))) {
33
+ async function resolveOwnerDialogBySelfId(sideDialog, ownerDialogId) {
34
+ const mainDialog = sideDialog.mainDialog;
35
+ if (!(await ensureDialogFreshOrDiscard(mainDialog, 'resolveOwnerDialogBySelfId:root'))) {
36
36
  return undefined;
37
37
  }
38
- if (ownerDialogId === rootDialog.id.selfId) {
39
- return rootDialog;
38
+ if (ownerDialogId === mainDialog.id.selfId) {
39
+ return mainDialog;
40
40
  }
41
- const existing = rootDialog.lookupDialog(ownerDialogId);
41
+ const existing = mainDialog.lookupDialog(ownerDialogId);
42
42
  if (existing) {
43
43
  if (!(await ensureDialogFreshOrDiscard(existing, 'resolveOwnerDialogBySelfId:lookup'))) {
44
44
  return undefined;
45
45
  }
46
46
  return existing;
47
47
  }
48
- const restored = await (0, dialog_instance_registry_1.ensureDialogLoaded)(rootDialog, new dialog_1.DialogID(ownerDialogId, rootDialog.id.rootId), rootDialog.status);
48
+ const restored = await (0, dialog_instance_registry_1.ensureDialogLoaded)(mainDialog, new dialog_1.DialogID(ownerDialogId, mainDialog.id.rootId), mainDialog.status);
49
49
  if (!restored) {
50
50
  return undefined;
51
51
  }
@@ -74,13 +74,13 @@ async function ensureDialogFreshOrDiscard(dialog, where) {
74
74
  inMemoryStatus: dialog.status,
75
75
  persistedStatus: status,
76
76
  });
77
- if (dialog instanceof dialog_1.RootDialog) {
77
+ if (dialog instanceof dialog_1.MainDialog) {
78
78
  dialog_global_registry_1.globalDialogRegistry.unregister(dialog.id.rootId);
79
79
  }
80
80
  return false;
81
81
  }
82
82
  }
83
- if (dialog instanceof dialog_1.RootDialog && dialog.status === 'running') {
83
+ if (dialog instanceof dialog_1.MainDialog && dialog.status === 'running') {
84
84
  const createdAt = (0, time_1.formatUnifiedTimestamp)(new Date());
85
85
  await persistence_1.DialogPersistence.saveDialogMetadata(dialog.id, {
86
86
  id: dialog.id.selfId,
@@ -88,7 +88,7 @@ async function ensureDialogFreshOrDiscard(dialog, where) {
88
88
  taskDocPath: dialog.taskDocPath,
89
89
  createdAt,
90
90
  }, 'running');
91
- log_1.log.warn('kernel-driver auto-persisted missing root dialog metadata', undefined, {
91
+ log_1.log.warn('kernel-driver auto-persisted missing main dialog metadata', undefined, {
92
92
  where,
93
93
  rootId: dialog.id.rootId,
94
94
  selfId: dialog.id.selfId,
@@ -111,7 +111,7 @@ async function ensureDialogFreshOrDiscard(dialog, where) {
111
111
  selfId: dialog.id.selfId,
112
112
  status: dialog.status,
113
113
  });
114
- if (dialog instanceof dialog_1.RootDialog) {
114
+ if (dialog instanceof dialog_1.MainDialog) {
115
115
  dialog_global_registry_1.globalDialogRegistry.unregister(dialog.id.rootId);
116
116
  }
117
117
  return false;
@@ -147,22 +147,25 @@ async function resolveLatestAssignmentAnchorRef(args) {
147
147
  }
148
148
  return undefined;
149
149
  }
150
- async function supplyResponseToSupdialog(args) {
151
- const { parentDialog, subdialogId, responseText, callType, callId, status = 'completed', deliveryMode = 'reply_tool', calleeResponseRef, callerCourseOverride, scheduleDrive, subdialog: maybeSubdialog, } = args;
150
+ async function supplyResponseToAskerDialog(args) {
151
+ const { parentDialog, sideDialogId, responseText, callType, callId, status = 'completed', deliveryMode = 'reply_tool', calleeResponseRef, askerCourseOverride, scheduleDrive, sideDialog: maybeSideDialog, } = args;
152
152
  try {
153
- const result = await (0, subdialog_txn_1.withSubdialogTxnLock)(parentDialog.id, async () => {
154
- const pendingSubdialogs = await persistence_1.DialogPersistence.loadPendingSubdialogs(parentDialog.id, parentDialog.status);
153
+ const result = await (0, sideDialog_txn_1.withSideDialogTxnLock)(parentDialog.id, async () => {
154
+ const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(parentDialog.id, parentDialog.status);
155
155
  let pendingRecord;
156
156
  const filteredPending = [];
157
- for (const pending of pendingSubdialogs) {
158
- if (pending.subdialogId === subdialogId.selfId) {
157
+ const requestedCallId = typeof callId === 'string' ? callId.trim() : '';
158
+ for (const pending of pendingSideDialogs) {
159
+ if (pending.sideDialogId === sideDialogId.selfId &&
160
+ (requestedCallId === '' || pending.callId === requestedCallId) &&
161
+ pendingRecord === undefined) {
159
162
  pendingRecord = pending;
160
163
  }
161
164
  else {
162
165
  filteredPending.push(pending);
163
166
  }
164
167
  }
165
- let responderId = subdialogId.rootId;
168
+ let responderId = sideDialogId.rootId;
166
169
  let responderAgentId;
167
170
  let callName = 'tellaskSessionless';
168
171
  let mentionList;
@@ -170,26 +173,25 @@ async function supplyResponseToSupdialog(args) {
170
173
  let originMemberId;
171
174
  let sessionSlug;
172
175
  try {
173
- const metadata = await persistence_1.DialogPersistence.loadDialogMetadata(subdialogId, parentDialog.status);
174
- if (metadata && metadata.assignmentFromSup) {
175
- originMemberId = metadata.assignmentFromSup.originMemberId;
176
+ const metadata = await persistence_1.DialogPersistence.loadDialogMetadata(sideDialogId, parentDialog.status);
177
+ if (metadata) {
178
+ const assignmentFromAsker = await persistence_1.DialogPersistence.loadSideDialogAssignmentFromAsker(sideDialogId, parentDialog.status);
179
+ originMemberId = assignmentFromAsker.originMemberId;
176
180
  if (!pendingRecord) {
177
- callName = metadata.assignmentFromSup.callName;
178
- mentionList = metadata.assignmentFromSup.mentionList;
179
- tellaskContent = metadata.assignmentFromSup.tellaskContent;
181
+ callName = assignmentFromAsker.callName;
182
+ mentionList = assignmentFromAsker.mentionList;
183
+ tellaskContent = assignmentFromAsker.tellaskContent;
180
184
  }
181
- }
182
- if (!pendingRecord && metadata && typeof metadata.agentId === 'string') {
183
- if (metadata.agentId.trim() !== '') {
185
+ if (!pendingRecord && metadata.agentId.trim() !== '') {
184
186
  responderId = metadata.agentId;
185
187
  responderAgentId = metadata.agentId;
186
188
  }
187
189
  }
188
190
  }
189
191
  catch (err) {
190
- log_1.log.warn('Failed to load subdialog metadata for response record', undefined, {
192
+ log_1.log.warn('Failed to load sideDialog metadata for response record', undefined, {
191
193
  parentId: parentDialog.id.selfId,
192
- subdialogId: subdialogId.selfId,
194
+ sideDialogId: sideDialogId.selfId,
193
195
  error: err,
194
196
  });
195
197
  }
@@ -208,17 +210,21 @@ async function supplyResponseToSupdialog(args) {
208
210
  (!Array.isArray(mentionList) || mentionList.length < 1)) {
209
211
  mentionList = [`@${responderId}`];
210
212
  }
211
- await persistence_1.DialogPersistence.savePendingSubdialogs(parentDialog.id, filteredPending, (0, storage_1.toRootGenerationAnchor)({
212
- rootCourse: parentDialog instanceof dialog_1.SubDialog
213
- ? parentDialog.rootDialog.currentCourse
213
+ await persistence_1.DialogPersistence.savePendingSideDialogs(parentDialog.id, filteredPending, (0, storage_1.toRootGenerationAnchor)({
214
+ rootCourse: parentDialog instanceof dialog_1.SideDialog
215
+ ? parentDialog.mainDialog.currentCourse
214
216
  : parentDialog.currentCourse,
215
- rootGenseq: parentDialog instanceof dialog_1.SubDialog
216
- ? (parentDialog.rootDialog.activeGenSeqOrUndefined ?? 0)
217
+ rootGenseq: parentDialog instanceof dialog_1.SideDialog
218
+ ? (parentDialog.mainDialog.activeGenSeqOrUndefined ?? 0)
217
219
  : (parentDialog.activeGenSeqOrUndefined ?? 0),
218
220
  }), parentDialog.status);
221
+ const sameWaitGroupPending = pendingRecord === undefined
222
+ ? []
223
+ : filteredPending.filter((pending) => pending.callSiteCourse === pendingRecord.callSiteCourse &&
224
+ pending.callSiteGenseq === pendingRecord.callSiteGenseq);
219
225
  const hasQ4H = await parentDialog.hasPendingQ4H();
220
- const shouldRevive = !hasQ4H && filteredPending.length === 0;
221
- if (shouldRevive && parentDialog instanceof dialog_1.RootDialog) {
226
+ const shouldRevive = pendingRecord !== undefined && !hasQ4H && sameWaitGroupPending.length === 0;
227
+ if (shouldRevive && parentDialog instanceof dialog_1.MainDialog) {
222
228
  await persistence_1.DialogPersistence.setNeedsDrive(parentDialog.id, true, parentDialog.status);
223
229
  }
224
230
  return {
@@ -230,70 +236,76 @@ async function supplyResponseToSupdialog(args) {
230
236
  originMemberId,
231
237
  sessionSlug,
232
238
  callId: pendingRecord?.callId,
233
- callingCourse: pendingRecord?.callingCourse,
234
- callingGenseq: pendingRecord?.callingGenseq,
235
- callerCourse: pendingRecord?.callingCourse !== undefined
236
- ? (0, storage_1.toCallerCourseNumber)(pendingRecord.callingCourse)
237
- : callerCourseOverride,
239
+ callSiteCourse: pendingRecord?.callSiteCourse,
240
+ callSiteGenseq: pendingRecord?.callSiteGenseq,
241
+ resolvedCallIds: pendingRecord ? [pendingRecord.callId] : [],
242
+ askerCourse: pendingRecord?.callSiteCourse !== undefined
243
+ ? (0, storage_1.toAskerCourseNumber)(pendingRecord.callSiteCourse)
244
+ : askerCourseOverride,
238
245
  shouldRevive,
239
246
  };
240
247
  });
241
248
  const normalizedCallId = typeof callId === 'string' ? callId.trim() : '';
242
249
  const fallbackCallId = typeof result.callId === 'string' ? result.callId.trim() : '';
243
250
  const resolvedCallId = normalizedCallId !== '' ? normalizedCallId : fallbackCallId;
244
- const rootForLookup = parentDialog instanceof dialog_1.RootDialog
251
+ const rootForLookup = parentDialog instanceof dialog_1.MainDialog
245
252
  ? parentDialog
246
- : parentDialog instanceof dialog_1.SubDialog
247
- ? parentDialog.rootDialog
253
+ : parentDialog instanceof dialog_1.SideDialog
254
+ ? parentDialog.mainDialog
248
255
  : undefined;
249
- const resolvedSubdialog = maybeSubdialog ?? rootForLookup?.lookupDialog(subdialogId.selfId);
250
- const upstreamResponseBody = responseText;
251
- const requesterId = result.originMemberId ?? parentDialog.agentId;
252
- const upstreamResponseText = (0, inter_dialog_format_1.formatTellaskResponseContent)({
256
+ const lookedUpSideDialog = rootForLookup?.lookupDialog(sideDialogId.selfId);
257
+ const resolvedSideDialog = maybeSideDialog ??
258
+ (lookedUpSideDialog instanceof dialog_1.SideDialog ? lookedUpSideDialog : undefined);
259
+ const tellaskerResponseBody = responseText;
260
+ const tellaskerId = result.originMemberId ?? parentDialog.agentId;
261
+ const tellaskerResponseText = (0, inter_dialog_format_1.formatTellaskResponseContent)({
253
262
  callName: result.callName,
263
+ callId: resolvedCallId,
254
264
  responderId: result.responderId,
255
- requesterId,
265
+ tellaskerId,
256
266
  mentionList: result.mentionList,
257
267
  sessionSlug: result.sessionSlug,
258
268
  tellaskContent: result.tellaskContent,
259
- responseBody: upstreamResponseBody,
269
+ responseBody: tellaskerResponseBody,
260
270
  status,
261
271
  deliveryMode,
262
272
  language: (0, work_language_1.getWorkLanguage)(),
263
273
  });
264
- const carryoverOriginCourse = result.callingCourse;
274
+ const carryoverCallSiteCourse = result.callSiteCourse;
265
275
  let assignmentRef;
266
- const carryoverContent = carryoverOriginCourse !== undefined && carryoverOriginCourse !== parentDialog.currentCourse
276
+ const carryoverContent = carryoverCallSiteCourse !== undefined &&
277
+ carryoverCallSiteCourse !== parentDialog.currentCourse
267
278
  ? (0, inter_dialog_format_1.formatTellaskCarryoverResultContent)({
268
- originCourse: carryoverOriginCourse,
279
+ callSiteCourse: carryoverCallSiteCourse,
269
280
  callName: result.callName,
281
+ callId: resolvedCallId,
270
282
  responderId: result.responderId,
271
283
  mentionList: result.mentionList,
272
284
  sessionSlug: result.sessionSlug,
273
285
  tellaskContent: result.tellaskContent,
274
- responseBody: upstreamResponseBody,
286
+ responseBody: tellaskerResponseBody,
275
287
  status,
276
288
  language: (0, work_language_1.getWorkLanguage)(),
277
289
  })
278
290
  : undefined;
279
291
  if (resolvedCallId !== '' && calleeResponseRef) {
280
- if (result.callerCourse === undefined) {
281
- throw new Error(`tellask response anchor invariant violation: missing callerCourse ` +
282
- `(parentId=${parentDialog.id.selfId}, subdialogId=${subdialogId.selfId}, callId=${resolvedCallId})`);
292
+ if (result.askerCourse === undefined) {
293
+ throw new Error(`tellask response anchor invariant violation: missing askerCourse ` +
294
+ `(parentId=${parentDialog.id.selfId}, sideDialogId=${sideDialogId.selfId}, callId=${resolvedCallId})`);
283
295
  }
284
296
  assignmentRef = await resolveLatestAssignmentAnchorRef({
285
- calleeDialogId: subdialogId,
297
+ calleeDialogId: sideDialogId,
286
298
  callId: resolvedCallId,
287
299
  status: parentDialog.status,
288
300
  });
289
301
  if (!assignmentRef) {
290
- // A sideline can legitimately finish a pending tellask before the queued assignment
302
+ // A Side Dialog can legitimately finish a pending tellask before the queued assignment
291
303
  // prompt for that call is rendered locally, for example after a direct user nudge inside
292
- // the sideline dialog. Keep the caller deep-link anchor, but do not treat the missing
304
+ // the Side Dialog. Keep the asker deep-link anchor, but do not treat the missing
293
305
  // local assignment bubble as an invariant violation.
294
306
  log_1.log.debug('Tellask response anchor has no local assignment anchor', undefined, {
295
307
  parentId: parentDialog.id.selfId,
296
- subdialogId: subdialogId.selfId,
308
+ sideDialogId: sideDialogId.selfId,
297
309
  callId: resolvedCallId,
298
310
  responseCourse: calleeResponseRef.course,
299
311
  responseGenseq: calleeResponseRef.genseq,
@@ -308,18 +320,29 @@ async function supplyResponseToSupdialog(args) {
308
320
  replyCallName: args.replyResolution.replyCallName,
309
321
  targetCallId: resolvedCallId,
310
322
  ...(0, storage_1.toRootGenerationAnchor)({
311
- rootCourse: parentDialog instanceof dialog_1.SubDialog
312
- ? parentDialog.rootDialog.currentCourse
323
+ rootCourse: parentDialog instanceof dialog_1.SideDialog
324
+ ? parentDialog.mainDialog.currentCourse
313
325
  : parentDialog.currentCourse,
314
- rootGenseq: parentDialog instanceof dialog_1.SubDialog
315
- ? (parentDialog.rootDialog.activeGenSeqOrUndefined ?? 0)
326
+ rootGenseq: parentDialog instanceof dialog_1.SideDialog
327
+ ? (parentDialog.mainDialog.activeGenSeqOrUndefined ?? 0)
316
328
  : (parentDialog.activeGenSeqOrUndefined ?? 0),
317
329
  }),
318
330
  };
319
- await persistence_1.DialogPersistence.appendEvent(subdialogId, calleeResponseRef.course, replyResolutionRecord, parentDialog.status);
320
- const deferredReplyReassertion = await persistence_1.DialogPersistence.getDeferredReplyReassertion(subdialogId, parentDialog.status);
331
+ await persistence_1.DialogPersistence.appendEvent(sideDialogId, calleeResponseRef.course, replyResolutionRecord, parentDialog.status);
332
+ const deferredReplyReassertion = await persistence_1.DialogPersistence.getDeferredReplyReassertion(sideDialogId, parentDialog.status);
321
333
  if (deferredReplyReassertion?.directive.targetCallId === resolvedCallId) {
322
- await persistence_1.DialogPersistence.setDeferredReplyReassertion(subdialogId, undefined, parentDialog.status);
334
+ await persistence_1.DialogPersistence.setDeferredReplyReassertion(sideDialogId, undefined, parentDialog.status);
335
+ }
336
+ const activeReplyObligation = await persistence_1.DialogPersistence.loadActiveTellaskReplyObligation(sideDialogId, parentDialog.status);
337
+ if (activeReplyObligation?.targetCallId === resolvedCallId) {
338
+ await persistence_1.DialogPersistence.setActiveTellaskReplyObligation(sideDialogId, undefined, parentDialog.status);
339
+ if (maybeSideDialog) {
340
+ const nextAskerStackState = await persistence_1.DialogPersistence.loadSideDialogAskerStackState(maybeSideDialog.id, maybeSideDialog.status);
341
+ if (!nextAskerStackState) {
342
+ throw new Error(`Missing asker stack after reply obligation pop: ${maybeSideDialog.id.valueOf()}`);
343
+ }
344
+ maybeSideDialog.askerStack = nextAskerStackState;
345
+ }
323
346
  }
324
347
  }
325
348
  const anchorRecord = {
@@ -329,33 +352,33 @@ async function supplyResponseToSupdialog(args) {
329
352
  callId: resolvedCallId,
330
353
  genseq: calleeResponseRef.genseq,
331
354
  ...(0, storage_1.toRootGenerationAnchor)({
332
- rootCourse: parentDialog instanceof dialog_1.SubDialog
333
- ? parentDialog.rootDialog.currentCourse
355
+ rootCourse: parentDialog instanceof dialog_1.SideDialog
356
+ ? parentDialog.mainDialog.currentCourse
334
357
  : parentDialog.currentCourse,
335
- rootGenseq: parentDialog instanceof dialog_1.SubDialog
336
- ? (parentDialog.rootDialog.activeGenSeqOrUndefined ?? 0)
358
+ rootGenseq: parentDialog instanceof dialog_1.SideDialog
359
+ ? (parentDialog.mainDialog.activeGenSeqOrUndefined ?? 0)
337
360
  : (parentDialog.activeGenSeqOrUndefined ?? 0),
338
361
  }),
339
362
  assignmentCourse: assignmentRef !== undefined ? (0, storage_1.toAssignmentCourseNumber)(assignmentRef.course) : undefined,
340
363
  assignmentGenseq: assignmentRef !== undefined
341
364
  ? (0, storage_1.toAssignmentGenerationSeqNumber)(assignmentRef.genseq)
342
365
  : undefined,
343
- callerDialogId: parentDialog.id.selfId,
344
- callerCourse: result.callerCourse,
366
+ askerDialogId: parentDialog.id.selfId,
367
+ askerCourse: result.askerCourse,
345
368
  };
346
- await persistence_1.DialogPersistence.appendEvent(subdialogId, calleeResponseRef.course, anchorRecord, parentDialog.status);
369
+ await persistence_1.DialogPersistence.appendEvent(sideDialogId, calleeResponseRef.course, anchorRecord, parentDialog.status);
347
370
  }
348
- await syncPendingTellaskReminderBestEffort(parentDialog, 'kernel-driver:supplyResponseToSupdialog');
349
- await parentDialog.receiveTellaskResponse(result.responderId, result.callName, result.mentionList, result.tellaskContent, status, subdialogId, {
350
- response: upstreamResponseText,
371
+ await syncPendingTellaskReminderBestEffort(parentDialog, 'kernel-driver:supplyResponseToAskerDialog');
372
+ await parentDialog.receiveTellaskResponse(result.responderId, result.callName, result.mentionList, result.tellaskContent, status, sideDialogId, {
373
+ response: tellaskerResponseText,
351
374
  agentId: result.responderAgentId ?? result.responderId,
352
375
  callId: resolvedCallId,
353
- originMemberId: requesterId,
354
- originCourse: carryoverOriginCourse,
355
- calling_genseq: result.callingGenseq !== undefined
356
- ? (0, storage_1.toCallingGenerationSeqNumber)(result.callingGenseq)
376
+ originMemberId: tellaskerId,
377
+ callSiteCourse: carryoverCallSiteCourse,
378
+ callSiteGenseq: result.callSiteGenseq !== undefined
379
+ ? (0, storage_1.toCallSiteGenseqNo)(result.callSiteGenseq)
357
380
  : assignmentRef !== undefined
358
- ? (0, storage_1.toCallingGenerationSeqNumber)(assignmentRef.genseq)
381
+ ? (0, storage_1.toCallSiteGenseqNo)(assignmentRef.genseq)
359
382
  : undefined,
360
383
  carryoverContent,
361
384
  sessionSlug: result.sessionSlug,
@@ -372,16 +395,16 @@ async function supplyResponseToSupdialog(args) {
372
395
  role: 'user',
373
396
  genseq: parentDialog.activeGenSeqOrUndefined ?? 1,
374
397
  content: carryoverContent,
375
- originCourse: carryoverOriginCourse,
398
+ callSiteCourse: carryoverCallSiteCourse,
376
399
  carryoverCourse: parentDialog.currentCourse,
377
400
  responderId: result.responderId,
378
401
  callName: result.callName,
379
402
  tellaskContent: result.tellaskContent,
380
403
  status,
381
- response: upstreamResponseText,
404
+ response: tellaskerResponseText,
382
405
  agentId: result.responderAgentId ?? result.responderId,
383
406
  callId: resolvedCallId,
384
- originMemberId: requesterId,
407
+ originMemberId: tellaskerId,
385
408
  ...(result.callName === 'tellask'
386
409
  ? {
387
410
  mentionList: result.mentionList ?? [],
@@ -394,12 +417,12 @@ async function supplyResponseToSupdialog(args) {
394
417
  : {}),
395
418
  ...(calleeResponseRef !== undefined
396
419
  ? {
397
- calleeDialogId: subdialogId.selfId,
420
+ calleeDialogId: sideDialogId.selfId,
398
421
  calleeCourse: calleeResponseRef.course,
399
422
  calleeGenseq: calleeResponseRef.genseq,
400
423
  }
401
424
  : {
402
- calleeDialogId: subdialogId.selfId,
425
+ calleeDialogId: sideDialogId.selfId,
403
426
  }),
404
427
  }
405
428
  : {
@@ -408,12 +431,14 @@ async function supplyResponseToSupdialog(args) {
408
431
  callId: resolvedCallId,
409
432
  callName: result.callName,
410
433
  status,
411
- content: upstreamResponseText,
412
- ...(result.callingCourse !== undefined ? { originCourse: result.callingCourse } : {}),
413
- ...(result.callingGenseq !== undefined
414
- ? { calling_genseq: result.callingGenseq }
434
+ content: tellaskerResponseText,
435
+ ...(result.callSiteCourse !== undefined
436
+ ? { callSiteCourse: result.callSiteCourse }
437
+ : {}),
438
+ ...(result.callSiteGenseq !== undefined
439
+ ? { callSiteGenseq: result.callSiteGenseq }
415
440
  : assignmentRef !== undefined
416
- ? { calling_genseq: assignmentRef.genseq }
441
+ ? { callSiteGenseq: assignmentRef.genseq }
417
442
  : {}),
418
443
  call: result.callName === 'tellask'
419
444
  ? {
@@ -432,10 +457,10 @@ async function supplyResponseToSupdialog(args) {
432
457
  responder: {
433
458
  responderId: result.responderId,
434
459
  agentId: result.responderAgentId ?? result.responderId,
435
- originMemberId: requesterId,
460
+ originMemberId: tellaskerId,
436
461
  },
437
462
  route: {
438
- calleeDialogId: subdialogId.selfId,
463
+ calleeDialogId: sideDialogId.selfId,
439
464
  ...(calleeResponseRef !== undefined
440
465
  ? {
441
466
  calleeCourse: calleeResponseRef.course,
@@ -446,13 +471,15 @@ async function supplyResponseToSupdialog(args) {
446
471
  };
447
472
  await parentDialog.addChatMessages(immediateMirror);
448
473
  if (result.shouldRevive) {
449
- const isRoot = parentDialog instanceof dialog_1.RootDialog;
474
+ const isRoot = parentDialog instanceof dialog_1.MainDialog;
450
475
  const hasRegistryEntry = isRoot
451
476
  ? dialog_global_registry_1.globalDialogRegistry.get(parentDialog.id.rootId) !== undefined
452
477
  : false;
453
- log_1.log.debug(`All Type ${callType} subdialogs complete, parent ${parentDialog.id.selfId} scheduling auto-revive`, undefined, {
478
+ log_1.log.debug(`All Type ${callType} sideDialogs complete, parent ${parentDialog.id.selfId} scheduling auto-revive`, undefined, {
454
479
  rootId: parentDialog.id.rootId,
455
480
  selfId: parentDialog.id.selfId,
481
+ callSiteCourse: result.callSiteCourse,
482
+ callSiteGenseq: result.callSiteGenseq,
456
483
  via: isRoot && hasRegistryEntry ? 'backend_loop_trigger' : 'direct_schedule_drive',
457
484
  isRoot,
458
485
  hasRegistryEntry,
@@ -460,58 +487,64 @@ async function supplyResponseToSupdialog(args) {
460
487
  if (isRoot) {
461
488
  dialog_global_registry_1.globalDialogRegistry.markNeedsDrive(parentDialog.id.rootId, {
462
489
  source: 'kernel_driver_supply_response',
463
- reason: `all_pending_subdialogs_resolved:type_${callType}`,
490
+ reason: `all_pending_sideDialogs_resolved:type_${callType}`,
464
491
  });
465
492
  }
466
- if (!isRoot || !hasRegistryEntry) {
467
- scheduleDrive(parentDialog, {
468
- waitInQue: true,
469
- driveOptions: {
470
- suppressDiligencePush: parentDialog.disableDiligencePush,
471
- noPromptSubdialogResumeEntitlement: {
472
- ownerDialogId: parentDialog.id.selfId,
473
- reason: 'resolved_pending_subdialog_reply',
474
- subdialogId: subdialogId.selfId,
475
- callType,
476
- callId: resolvedCallId,
477
- },
478
- source: 'kernel_driver_supply_response_parent_revive',
479
- reason: `all_pending_subdialogs_resolved:type_${callType}`,
480
- },
481
- });
493
+ if (result.callSiteCourse === undefined || result.callSiteGenseq === undefined) {
494
+ throw new Error(`sideDialog revive entitlement invariant violation: missing wait-group coordinates ` +
495
+ `(rootId=${parentDialog.id.rootId}, selfId=${parentDialog.id.selfId}, callId=${resolvedCallId})`);
482
496
  }
497
+ scheduleDrive(parentDialog, {
498
+ waitInQue: true,
499
+ driveOptions: {
500
+ suppressDiligencePush: parentDialog.disableDiligencePush,
501
+ noPromptSideDialogResumeEntitlement: {
502
+ ownerDialogId: parentDialog.id.selfId,
503
+ reason: 'resolved_pending_sideDialog_reply',
504
+ sideDialogId: sideDialogId.selfId,
505
+ callType,
506
+ callId: resolvedCallId,
507
+ callSiteCourse: result.callSiteCourse,
508
+ callSiteGenseq: result.callSiteGenseq,
509
+ resolvedCallIds: result.resolvedCallIds,
510
+ triggerCallId: resolvedCallId,
511
+ },
512
+ source: 'kernel_driver_supply_response_parent_revive',
513
+ reason: `wait_group_resolved:type_${callType}:c${result.callSiteCourse}:g${result.callSiteGenseq}`,
514
+ },
515
+ });
483
516
  }
484
517
  }
485
518
  catch (error) {
486
- log_1.log.error('kernel-driver failed to supply subdialog response', error, {
519
+ log_1.log.error('kernel-driver failed to supply sideDialog response', error, {
487
520
  parentId: parentDialog.id.selfId,
488
- subdialogId: subdialogId.selfId,
521
+ sideDialogId: sideDialogId.selfId,
489
522
  });
490
523
  throw error;
491
524
  }
492
525
  }
493
- async function supplySubdialogResponseToSpecificCallerIfPendingV2(args) {
494
- const { subdialog, responseText, responseGenseq, target, scheduleDrive } = args;
495
- const assignment = subdialog.assignmentFromSup;
526
+ async function supplySideDialogResponseToSpecificAskerIfPendingV2(args) {
527
+ const { sideDialog, responseText, responseGenseq, target, scheduleDrive } = args;
528
+ const assignment = sideDialog.assignmentFromAsker;
496
529
  if (!assignment) {
497
530
  return false;
498
531
  }
499
- const ownerDialog = await resolveOwnerDialogBySelfId(subdialog, target.ownerDialogId);
532
+ const ownerDialog = await resolveOwnerDialogBySelfId(sideDialog, target.ownerDialogId);
500
533
  if (!ownerDialog) {
501
534
  return false;
502
535
  }
503
- if (!(await ensureDialogFreshOrDiscard(ownerDialog, 'supplySubdialogResponseToSpecificCallerIfPendingV2:owner'))) {
536
+ if (!(await ensureDialogFreshOrDiscard(ownerDialog, 'supplySideDialogResponseToSpecificAskerIfPendingV2:owner'))) {
504
537
  return false;
505
538
  }
506
- const pending = await persistence_1.DialogPersistence.loadPendingSubdialogs(ownerDialog.id, ownerDialog.status);
507
- const pendingRecord = pending.find((p) => p.subdialogId === subdialog.id.selfId);
539
+ const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(ownerDialog.id, ownerDialog.status);
540
+ const pendingRecord = pending.find((p) => p.sideDialogId === sideDialog.id.selfId && p.callId === target.callId);
508
541
  if (!pendingRecord) {
509
542
  return false;
510
543
  }
511
544
  if (pendingRecord.callType !== target.callType) {
512
545
  log_1.log.warn('Reply target callType does not match pending callType; skipping stale reply target', undefined, {
513
- rootId: subdialog.rootDialog.id.rootId,
514
- subdialogId: subdialog.id.selfId,
546
+ rootId: sideDialog.mainDialog.id.rootId,
547
+ sideDialogId: sideDialog.id.selfId,
515
548
  ownerDialogId: ownerDialog.id.selfId,
516
549
  targetCallType: target.callType,
517
550
  pendingCallType: pendingRecord.callType,
@@ -520,29 +553,29 @@ async function supplySubdialogResponseToSpecificCallerIfPendingV2(args) {
520
553
  }
521
554
  if (pendingRecord.callType === 'B') {
522
555
  const assignmentAnchorRef = await resolveLatestAssignmentAnchorRef({
523
- calleeDialogId: subdialog.id,
556
+ calleeDialogId: sideDialog.id,
524
557
  callId: pendingRecord.callId,
525
- status: subdialog.status,
558
+ status: sideDialog.status,
526
559
  });
527
560
  if (!assignmentAnchorRef) {
528
561
  log_1.log.debug('Skip Type B response supply before updated assignment is rendered locally', undefined, {
529
- rootId: subdialog.rootDialog.id.rootId,
530
- subdialogId: subdialog.id.selfId,
562
+ rootId: sideDialog.mainDialog.id.rootId,
563
+ sideDialogId: sideDialog.id.selfId,
531
564
  ownerDialogId: ownerDialog.id.selfId,
532
565
  callId: pendingRecord.callId,
533
566
  responseGenseq,
534
567
  });
535
568
  return false;
536
569
  }
537
- if (subdialog.currentCourse < assignmentAnchorRef.course ||
538
- (subdialog.currentCourse === assignmentAnchorRef.course &&
570
+ if (sideDialog.currentCourse < assignmentAnchorRef.course ||
571
+ (sideDialog.currentCourse === assignmentAnchorRef.course &&
539
572
  responseGenseq < assignmentAnchorRef.genseq)) {
540
573
  log_1.log.debug('Skip stale Type B response supply from before latest local assignment', undefined, {
541
- rootId: subdialog.rootDialog.id.rootId,
542
- subdialogId: subdialog.id.selfId,
574
+ rootId: sideDialog.mainDialog.id.rootId,
575
+ sideDialogId: sideDialog.id.selfId,
543
576
  ownerDialogId: ownerDialog.id.selfId,
544
577
  callId: pendingRecord.callId,
545
- responseCourse: subdialog.currentCourse,
578
+ responseCourse: sideDialog.currentCourse,
546
579
  responseGenseq,
547
580
  assignmentCourse: assignmentAnchorRef.course,
548
581
  assignmentGenseq: assignmentAnchorRef.genseq,
@@ -550,69 +583,69 @@ async function supplySubdialogResponseToSpecificCallerIfPendingV2(args) {
550
583
  return false;
551
584
  }
552
585
  }
553
- await supplyResponseToSupdialog({
586
+ await supplyResponseToAskerDialog({
554
587
  parentDialog: ownerDialog,
555
- subdialogId: subdialog.id,
588
+ sideDialogId: sideDialog.id,
556
589
  responseText,
557
- subdialog,
590
+ sideDialog,
558
591
  callType: pendingRecord.callType,
559
592
  callId: target.callId,
560
593
  status: 'completed',
561
594
  deliveryMode: args.deliveryMode,
562
595
  replyResolution: args.replyResolution,
563
- calleeResponseRef: { course: subdialog.currentCourse, genseq: responseGenseq },
596
+ calleeResponseRef: { course: sideDialog.currentCourse, genseq: responseGenseq },
564
597
  scheduleDrive,
565
598
  });
566
599
  return true;
567
600
  }
568
- async function supplySubdialogResponseToAssignedCallerIfPendingV2(args) {
569
- const { subdialog, responseText, responseGenseq, scheduleDrive } = args;
570
- const assignment = subdialog.assignmentFromSup;
601
+ async function supplySideDialogResponseToAssignedAskerIfPendingV2(args) {
602
+ const { sideDialog, responseText, responseGenseq, scheduleDrive } = args;
603
+ const assignment = sideDialog.assignmentFromAsker;
571
604
  if (!assignment) {
572
605
  return false;
573
606
  }
574
- const callerDialog = await resolveOwnerDialogBySelfId(subdialog, assignment.callerDialogId);
575
- if (!callerDialog) {
576
- log_1.log.warn('Missing caller dialog for subdialog response supply', undefined, {
577
- rootId: subdialog.rootDialog.id.rootId,
578
- subdialogId: subdialog.id.selfId,
579
- callerDialogId: assignment.callerDialogId,
607
+ const askerDialog = await resolveOwnerDialogBySelfId(sideDialog, assignment.askerDialogId);
608
+ if (!askerDialog) {
609
+ log_1.log.warn('Missing tellasker for sideDialog response supply', undefined, {
610
+ rootId: sideDialog.mainDialog.id.rootId,
611
+ sideDialogId: sideDialog.id.selfId,
612
+ askerDialogId: assignment.askerDialogId,
580
613
  });
581
614
  return false;
582
615
  }
583
- if (!(await ensureDialogFreshOrDiscard(callerDialog, 'supplySubdialogResponseToAssignedCallerIfPendingV2:caller'))) {
616
+ if (!(await ensureDialogFreshOrDiscard(askerDialog, 'supplySideDialogResponseToAssignedAskerIfPendingV2:asker'))) {
584
617
  return false;
585
618
  }
586
- const pending = await persistence_1.DialogPersistence.loadPendingSubdialogs(callerDialog.id, callerDialog.status);
587
- const pendingRecord = pending.find((p) => p.subdialogId === subdialog.id.selfId);
619
+ const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(askerDialog.id, askerDialog.status);
620
+ const pendingRecord = pending.find((p) => p.sideDialogId === sideDialog.id.selfId && p.callId === assignment.callId);
588
621
  if (!pendingRecord) {
589
622
  return false;
590
623
  }
591
624
  if (pendingRecord.callType === 'B') {
592
625
  const assignmentAnchorRef = await resolveLatestAssignmentAnchorRef({
593
- calleeDialogId: subdialog.id,
626
+ calleeDialogId: sideDialog.id,
594
627
  callId: pendingRecord.callId,
595
- status: subdialog.status,
628
+ status: sideDialog.status,
596
629
  });
597
630
  if (!assignmentAnchorRef) {
598
631
  log_1.log.debug('Skip assigned Type B response supply before updated assignment is rendered locally', undefined, {
599
- rootId: subdialog.rootDialog.id.rootId,
600
- subdialogId: subdialog.id.selfId,
601
- callerDialogId: callerDialog.id.selfId,
632
+ rootId: sideDialog.mainDialog.id.rootId,
633
+ sideDialogId: sideDialog.id.selfId,
634
+ askerDialogId: askerDialog.id.selfId,
602
635
  callId: pendingRecord.callId,
603
636
  responseGenseq,
604
637
  });
605
638
  return false;
606
639
  }
607
- if (subdialog.currentCourse < assignmentAnchorRef.course ||
608
- (subdialog.currentCourse === assignmentAnchorRef.course &&
640
+ if (sideDialog.currentCourse < assignmentAnchorRef.course ||
641
+ (sideDialog.currentCourse === assignmentAnchorRef.course &&
609
642
  responseGenseq < assignmentAnchorRef.genseq)) {
610
643
  log_1.log.debug('Skip assigned stale Type B response supply from before latest local assignment', undefined, {
611
- rootId: subdialog.rootDialog.id.rootId,
612
- subdialogId: subdialog.id.selfId,
613
- callerDialogId: callerDialog.id.selfId,
644
+ rootId: sideDialog.mainDialog.id.rootId,
645
+ sideDialogId: sideDialog.id.selfId,
646
+ askerDialogId: askerDialog.id.selfId,
614
647
  callId: pendingRecord.callId,
615
- responseCourse: subdialog.currentCourse,
648
+ responseCourse: sideDialog.currentCourse,
616
649
  responseGenseq,
617
650
  assignmentCourse: assignmentAnchorRef.course,
618
651
  assignmentGenseq: assignmentAnchorRef.genseq,
@@ -620,17 +653,17 @@ async function supplySubdialogResponseToAssignedCallerIfPendingV2(args) {
620
653
  return false;
621
654
  }
622
655
  }
623
- await supplyResponseToSupdialog({
624
- parentDialog: callerDialog,
625
- subdialogId: subdialog.id,
656
+ await supplyResponseToAskerDialog({
657
+ parentDialog: askerDialog,
658
+ sideDialogId: sideDialog.id,
626
659
  responseText,
627
- subdialog,
660
+ sideDialog,
628
661
  callType: pendingRecord.callType,
629
662
  callId: assignment.callId,
630
663
  status: 'completed',
631
664
  deliveryMode: args.deliveryMode,
632
665
  replyResolution: args.replyResolution,
633
- calleeResponseRef: { course: subdialog.currentCourse, genseq: responseGenseq },
666
+ calleeResponseRef: { course: sideDialog.currentCourse, genseq: responseGenseq },
634
667
  scheduleDrive,
635
668
  });
636
669
  return true;