dominds 1.18.2 → 1.19.3

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 (251) 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/cli/team-definition-audit.d.ts +2 -1
  11. package/dist/cli/team-definition-audit.js +20 -8
  12. package/dist/cli/validate-team-def.js +3 -3
  13. package/dist/dialog-display-state.d.ts +6 -6
  14. package/dist/dialog-display-state.js +46 -46
  15. package/dist/dialog-factory.d.ts +12 -12
  16. package/dist/dialog-factory.js +33 -30
  17. package/dist/dialog-fork.d.ts +2 -2
  18. package/dist/dialog-fork.js +140 -115
  19. package/dist/dialog-global-registry.d.ts +5 -5
  20. package/dist/dialog-global-registry.js +11 -11
  21. package/dist/dialog-instance-registry.d.ts +3 -3
  22. package/dist/dialog-instance-registry.js +52 -41
  23. package/dist/dialog.d.ts +100 -113
  24. package/dist/dialog.js +274 -229
  25. package/dist/docs/agent-priming.md +5 -5
  26. package/dist/docs/agent-priming.zh.md +5 -5
  27. package/dist/docs/app-constitution.md +1 -1
  28. package/dist/docs/app-constitution.zh.md +1 -1
  29. package/dist/docs/cli-usage.md +1 -1
  30. package/dist/docs/cli-usage.zh.md +1 -1
  31. package/dist/docs/design.md +14 -14
  32. package/dist/docs/design.zh.md +14 -14
  33. package/dist/docs/dialog-persistence.md +58 -58
  34. package/dist/docs/dialog-persistence.zh.md +61 -61
  35. package/dist/docs/dialog-system.md +363 -367
  36. package/dist/docs/dialog-system.zh.md +355 -357
  37. package/dist/docs/diligence-push.md +18 -18
  38. package/dist/docs/diligence-push.zh.md +17 -17
  39. package/dist/docs/dominds-agent-collaboration.zh.md +3 -3
  40. package/dist/docs/dominds-terminology.md +46 -47
  41. package/dist/docs/encapsulated-taskdoc.md +4 -4
  42. package/dist/docs/encapsulated-taskdoc.zh.md +3 -3
  43. package/dist/docs/fbr.md +30 -30
  44. package/dist/docs/fbr.zh.md +15 -15
  45. package/dist/docs/i18n.md +2 -2
  46. package/dist/docs/i18n.zh.md +2 -2
  47. package/dist/docs/mcp-support.md +16 -4
  48. package/dist/docs/mcp-support.zh.md +10 -2
  49. package/dist/docs/memory-system.md +4 -4
  50. package/dist/docs/memory-system.zh.md +1 -1
  51. package/dist/docs/mottos.md +1 -1
  52. package/dist/docs/mottos.zh.md +1 -1
  53. package/dist/docs/q4h.md +3 -3
  54. package/dist/docs/q4h.zh.md +1 -1
  55. package/dist/docs/roadmap.md +2 -2
  56. package/dist/docs/team_mgmt-toolset.md +16 -5
  57. package/dist/docs/team_mgmt-toolset.zh.md +13 -4
  58. package/dist/docs/tellask-collab.md +18 -18
  59. package/dist/docs/tellask-collab.zh.md +8 -8
  60. package/dist/docs/tellask-revive-context-refactor.zh.md +591 -0
  61. package/dist/docs/tool-availability-protocol.md +4 -2
  62. package/dist/evt-registry.d.ts +1 -2
  63. package/dist/evt-registry.js +2 -7
  64. package/dist/llm/gen/mock.js +9 -0
  65. package/dist/llm/kernel-driver/context.d.ts +1 -2
  66. package/dist/llm/kernel-driver/context.js +12 -26
  67. package/dist/llm/kernel-driver/drive.js +99 -75
  68. package/dist/llm/kernel-driver/engine.d.ts +2 -2
  69. package/dist/llm/kernel-driver/engine.js +10 -10
  70. package/dist/llm/kernel-driver/fbr.js +6 -6
  71. package/dist/llm/kernel-driver/flow.d.ts +1 -1
  72. package/dist/llm/kernel-driver/flow.js +129 -93
  73. package/dist/llm/kernel-driver/guardrails.js +4 -4
  74. package/dist/llm/kernel-driver/index.d.ts +1 -1
  75. package/dist/llm/kernel-driver/index.js +2 -2
  76. package/dist/llm/kernel-driver/loop.js +30 -30
  77. package/dist/llm/kernel-driver/reply-guidance.js +47 -52
  78. package/dist/llm/kernel-driver/restore.d.ts +3 -3
  79. package/dist/llm/kernel-driver/restore.js +23 -28
  80. package/dist/llm/kernel-driver/runtime.d.ts +1 -1
  81. package/dist/llm/kernel-driver/runtime.js +1 -1
  82. package/dist/llm/kernel-driver/sideDialog-txn.d.ts +8 -0
  83. package/dist/llm/kernel-driver/{subdialog-txn.js → sideDialog-txn.js} +13 -13
  84. package/dist/llm/kernel-driver/{subdialog.d.ts → sideDialog.d.ts} +13 -13
  85. package/dist/llm/kernel-driver/{subdialog.js → sideDialog.js} +203 -170
  86. package/dist/llm/kernel-driver/tellask-special.d.ts +7 -3
  87. package/dist/llm/kernel-driver/tellask-special.js +474 -497
  88. package/dist/llm/kernel-driver/types.d.ts +25 -9
  89. package/dist/mcp/config.d.ts +2 -0
  90. package/dist/mcp/config.js +23 -2
  91. package/dist/mcp/supervisor.d.ts +9 -1
  92. package/dist/mcp/supervisor.js +300 -17
  93. package/dist/minds/builtin/pangu/persona.en.md +4 -4
  94. package/dist/minds/load.js +11 -6
  95. package/dist/minds/system-prompt-parts.d.ts +1 -1
  96. package/dist/minds/system-prompt-parts.js +12 -12
  97. package/dist/minds/system-prompt.d.ts +2 -1
  98. package/dist/minds/system-prompt.js +70 -62
  99. package/dist/persistence-errors.d.ts +1 -1
  100. package/dist/persistence.d.ts +126 -121
  101. package/dist/persistence.js +1190 -786
  102. package/dist/priming.d.ts +3 -3
  103. package/dist/priming.js +62 -61
  104. package/dist/recovery/reply-special.js +5 -5
  105. package/dist/runtime/driver-messages.d.ts +3 -2
  106. package/dist/runtime/driver-messages.js +68 -57
  107. package/dist/runtime/inter-dialog-format.d.ts +12 -10
  108. package/dist/runtime/inter-dialog-format.js +80 -35
  109. package/dist/runtime/interjection-pause-stop.js +1 -1
  110. package/dist/runtime/reply-prompt-copy.d.ts +7 -3
  111. package/dist/runtime/reply-prompt-copy.js +39 -14
  112. package/dist/server/api-routes.js +87 -83
  113. package/dist/server/static-server.js +1 -1
  114. package/dist/server/websocket-handler.js +163 -153
  115. package/dist/tool-availability.js +1 -1
  116. package/dist/tools/app-reminders.js +17 -4
  117. package/dist/tools/builtins.js +2 -0
  118. package/dist/tools/ctrl.js +5 -5
  119. package/dist/tools/env.js +10 -58
  120. package/dist/tools/manual/render.js +4 -0
  121. package/dist/tools/mcp.d.ts +1 -0
  122. package/dist/tools/mcp.js +55 -5
  123. package/dist/tools/os.js +16 -16
  124. package/dist/tools/pending-tellask-reminder.js +20 -14
  125. package/dist/tools/prompts/control/en/index.md +1 -1
  126. package/dist/tools/prompts/control/en/principles.md +8 -8
  127. package/dist/tools/prompts/control/en/scenarios.md +7 -7
  128. package/dist/tools/prompts/control/en/tools.md +7 -7
  129. package/dist/tools/prompts/control/zh/principles.md +4 -4
  130. package/dist/tools/prompts/control/zh/scenarios.md +5 -5
  131. package/dist/tools/prompts/control/zh/tools.md +3 -3
  132. package/dist/tools/prompts/mcp_admin/en/errors.md +0 -14
  133. package/dist/tools/prompts/mcp_admin/en/index.md +5 -3
  134. package/dist/tools/prompts/mcp_admin/en/principles.md +11 -5
  135. package/dist/tools/prompts/mcp_admin/en/scenarios.md +19 -3
  136. package/dist/tools/prompts/mcp_admin/en/tools.md +85 -21
  137. package/dist/tools/prompts/mcp_admin/zh/errors.md +0 -14
  138. package/dist/tools/prompts/mcp_admin/zh/index.md +5 -3
  139. package/dist/tools/prompts/mcp_admin/zh/principles.md +11 -5
  140. package/dist/tools/prompts/mcp_admin/zh/scenarios.md +19 -3
  141. package/dist/tools/prompts/mcp_admin/zh/tools.md +85 -21
  142. package/dist/tools/prompts/os/en/errors.md +0 -28
  143. package/dist/tools/prompts/os/en/scenarios.md +1 -1
  144. package/dist/tools/prompts/os/en/tools.md +8 -17
  145. package/dist/tools/prompts/os/zh/errors.md +0 -28
  146. package/dist/tools/prompts/os/zh/scenarios.md +1 -1
  147. package/dist/tools/prompts/os/zh/tools.md +8 -17
  148. package/dist/tools/prompts/team_memory/en/scenarios.md +1 -1
  149. package/dist/tools/prompts/team_memory/zh/scenarios.md +1 -1
  150. package/dist/tools/registry.d.ts +5 -0
  151. package/dist/tools/team_mgmt-manual.js +2 -2
  152. package/dist/tools/team_mgmt-mcp-manual.d.ts +2 -2
  153. package/dist/tools/team_mgmt-mcp-manual.js +67 -16
  154. package/dist/tools/team_mgmt.js +8 -8
  155. package/dist/utils/taskdoc.js +12 -12
  156. package/package.json +3 -3
  157. package/webapp/dist/assets/{_basePickBy-BPJaiZdW.js → _basePickBy-Dnh413xT.js} +3 -3
  158. package/webapp/dist/assets/{_basePickBy-BPJaiZdW.js.map → _basePickBy-Dnh413xT.js.map} +1 -1
  159. package/webapp/dist/assets/{_baseUniq-BEetT15i.js → _baseUniq-DWzYqpN_.js} +2 -2
  160. package/webapp/dist/assets/{_baseUniq-BEetT15i.js.map → _baseUniq-DWzYqpN_.js.map} +1 -1
  161. package/webapp/dist/assets/{arc-Dm7Zf36f.js → arc-vfBkNCOx.js} +2 -2
  162. package/webapp/dist/assets/{arc-Dm7Zf36f.js.map → arc-vfBkNCOx.js.map} +1 -1
  163. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-BpTPtkuo.js → architectureDiagram-VXUJARFQ-DiUEBXOa.js} +7 -7
  164. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-BpTPtkuo.js.map → architectureDiagram-VXUJARFQ-DiUEBXOa.js.map} +1 -1
  165. package/webapp/dist/assets/{blockDiagram-VD42YOAC-C8fLN0iu.js → blockDiagram-VD42YOAC-BqK1KM2m.js} +7 -7
  166. package/webapp/dist/assets/{blockDiagram-VD42YOAC-C8fLN0iu.js.map → blockDiagram-VD42YOAC-BqK1KM2m.js.map} +1 -1
  167. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-BpPr62CH.js → c4Diagram-YG6GDRKO-ClHNu1Uo.js} +3 -3
  168. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-BpPr62CH.js.map → c4Diagram-YG6GDRKO-ClHNu1Uo.js.map} +1 -1
  169. package/webapp/dist/assets/{channel-EMYoPjW3.js → channel-BbWLVc8W.js} +2 -2
  170. package/webapp/dist/assets/{channel-EMYoPjW3.js.map → channel-BbWLVc8W.js.map} +1 -1
  171. package/webapp/dist/assets/{chunk-4BX2VUAB-CefNtjWG.js → chunk-4BX2VUAB-CItdSmZH.js} +2 -2
  172. package/webapp/dist/assets/{chunk-4BX2VUAB-CefNtjWG.js.map → chunk-4BX2VUAB-CItdSmZH.js.map} +1 -1
  173. package/webapp/dist/assets/{chunk-55IACEB6-C_X7T43V.js → chunk-55IACEB6-DSCX9WCf.js} +2 -2
  174. package/webapp/dist/assets/{chunk-55IACEB6-C_X7T43V.js.map → chunk-55IACEB6-DSCX9WCf.js.map} +1 -1
  175. package/webapp/dist/assets/{chunk-B4BG7PRW-BRe3_2oA.js → chunk-B4BG7PRW-5CRXFeD9.js} +5 -5
  176. package/webapp/dist/assets/{chunk-B4BG7PRW-BRe3_2oA.js.map → chunk-B4BG7PRW-5CRXFeD9.js.map} +1 -1
  177. package/webapp/dist/assets/{chunk-DI55MBZ5-CbvrsI_w.js → chunk-DI55MBZ5-CRMf6XZu.js} +4 -4
  178. package/webapp/dist/assets/{chunk-DI55MBZ5-CbvrsI_w.js.map → chunk-DI55MBZ5-CRMf6XZu.js.map} +1 -1
  179. package/webapp/dist/assets/{chunk-FMBD7UC4-ORmtkrtS.js → chunk-FMBD7UC4-BJ1vT2se.js} +2 -2
  180. package/webapp/dist/assets/{chunk-FMBD7UC4-ORmtkrtS.js.map → chunk-FMBD7UC4-BJ1vT2se.js.map} +1 -1
  181. package/webapp/dist/assets/{chunk-QN33PNHL-LTAOVhWu.js → chunk-QN33PNHL-CGyezTSD.js} +2 -2
  182. package/webapp/dist/assets/{chunk-QN33PNHL-LTAOVhWu.js.map → chunk-QN33PNHL-CGyezTSD.js.map} +1 -1
  183. package/webapp/dist/assets/{chunk-QZHKN3VN-ZoUM_4u5.js → chunk-QZHKN3VN-9xs15j8C.js} +2 -2
  184. package/webapp/dist/assets/{chunk-QZHKN3VN-ZoUM_4u5.js.map → chunk-QZHKN3VN-9xs15j8C.js.map} +1 -1
  185. package/webapp/dist/assets/{chunk-TZMSLE5B-Gao4qrq7.js → chunk-TZMSLE5B-D2g6Tj7Z.js} +2 -2
  186. package/webapp/dist/assets/{chunk-TZMSLE5B-Gao4qrq7.js.map → chunk-TZMSLE5B-D2g6Tj7Z.js.map} +1 -1
  187. package/webapp/dist/assets/{classDiagram-2ON5EDUG-uha1vIGN.js → classDiagram-2ON5EDUG-BQFGGJNm.js} +6 -6
  188. package/webapp/dist/assets/{classDiagram-2ON5EDUG-uha1vIGN.js.map → classDiagram-2ON5EDUG-BQFGGJNm.js.map} +1 -1
  189. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-uha1vIGN.js → classDiagram-v2-WZHVMYZB-BQFGGJNm.js} +6 -6
  190. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-uha1vIGN.js.map → classDiagram-v2-WZHVMYZB-BQFGGJNm.js.map} +1 -1
  191. package/webapp/dist/assets/{clone-_9Ayb1Gp.js → clone-DOfPd4cz.js} +2 -2
  192. package/webapp/dist/assets/{clone-_9Ayb1Gp.js.map → clone-DOfPd4cz.js.map} +1 -1
  193. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-C8wDw3NY.js → cose-bilkent-S5V4N54A-BYN-vqm8.js} +2 -2
  194. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-C8wDw3NY.js.map → cose-bilkent-S5V4N54A-BYN-vqm8.js.map} +1 -1
  195. package/webapp/dist/assets/{dagre-6UL2VRFP-BUSeNot0.js → dagre-6UL2VRFP-ClEaFABE.js} +7 -7
  196. package/webapp/dist/assets/{dagre-6UL2VRFP-BUSeNot0.js.map → dagre-6UL2VRFP-ClEaFABE.js.map} +1 -1
  197. package/webapp/dist/assets/{diagram-PSM6KHXK-CMZAksVC.js → diagram-PSM6KHXK-CM4hLE_0.js} +8 -8
  198. package/webapp/dist/assets/{diagram-PSM6KHXK-CMZAksVC.js.map → diagram-PSM6KHXK-CM4hLE_0.js.map} +1 -1
  199. package/webapp/dist/assets/{diagram-QEK2KX5R-BQKoRtwy.js → diagram-QEK2KX5R-BZjGFX-2.js} +7 -7
  200. package/webapp/dist/assets/{diagram-QEK2KX5R-BQKoRtwy.js.map → diagram-QEK2KX5R-BZjGFX-2.js.map} +1 -1
  201. package/webapp/dist/assets/{diagram-S2PKOQOG-DjMG97kd.js → diagram-S2PKOQOG-Bvw01OOG.js} +7 -7
  202. package/webapp/dist/assets/{diagram-S2PKOQOG-DjMG97kd.js.map → diagram-S2PKOQOG-Bvw01OOG.js.map} +1 -1
  203. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BujwA137.js → erDiagram-Q2GNP2WA-ctHu5zQL.js} +5 -5
  204. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BujwA137.js.map → erDiagram-Q2GNP2WA-ctHu5zQL.js.map} +1 -1
  205. package/webapp/dist/assets/{flowDiagram-NV44I4VS-DgwPjg4y.js → flowDiagram-NV44I4VS-m7ofIhri.js} +6 -6
  206. package/webapp/dist/assets/{flowDiagram-NV44I4VS-DgwPjg4y.js.map → flowDiagram-NV44I4VS-m7ofIhri.js.map} +1 -1
  207. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Db2ykf3E.js → ganttDiagram-JELNMOA3-D9wS5Veb.js} +3 -3
  208. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Db2ykf3E.js.map → ganttDiagram-JELNMOA3-D9wS5Veb.js.map} +1 -1
  209. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-D_gSifkv.js → gitGraphDiagram-V2S2FVAM-B86qqJx7.js} +8 -8
  210. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-D_gSifkv.js.map → gitGraphDiagram-V2S2FVAM-B86qqJx7.js.map} +1 -1
  211. package/webapp/dist/assets/{graph-BHjCU5xP.js → graph-u844GGQC.js} +3 -3
  212. package/webapp/dist/assets/{graph-BHjCU5xP.js.map → graph-u844GGQC.js.map} +1 -1
  213. package/webapp/dist/assets/{index-xvYYeHuy.css → index-BGdI3lWA.css} +17 -9
  214. package/webapp/dist/assets/{index-DLajsIDJ.js → index-tinPEZoH.js} +1211 -995
  215. package/webapp/dist/assets/index-tinPEZoH.js.map +1 -0
  216. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BDba5pKs.js → infoDiagram-HS3SLOUP-DwRPUctP.js} +6 -6
  217. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BDba5pKs.js.map → infoDiagram-HS3SLOUP-DwRPUctP.js.map} +1 -1
  218. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-CmJAbmlm.js → journeyDiagram-XKPGCS4Q-B91ZO-ec.js} +5 -5
  219. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-CmJAbmlm.js.map → journeyDiagram-XKPGCS4Q-B91ZO-ec.js.map} +1 -1
  220. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-DxQeBTDk.js → kanban-definition-3W4ZIXB7-CoogrZ07.js} +3 -3
  221. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-DxQeBTDk.js.map → kanban-definition-3W4ZIXB7-CoogrZ07.js.map} +1 -1
  222. package/webapp/dist/assets/{layout-DteV_yE8.js → layout-BrzQmqFJ.js} +5 -5
  223. package/webapp/dist/assets/{layout-DteV_yE8.js.map → layout-BrzQmqFJ.js.map} +1 -1
  224. package/webapp/dist/assets/{linear-zItbPrND.js → linear-C6H7K9Zy.js} +2 -2
  225. package/webapp/dist/assets/{linear-zItbPrND.js.map → linear-C6H7K9Zy.js.map} +1 -1
  226. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BJXI7UqO.js → mindmap-definition-VGOIOE7T-UDHZQkNZ.js} +4 -4
  227. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BJXI7UqO.js.map → mindmap-definition-VGOIOE7T-UDHZQkNZ.js.map} +1 -1
  228. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BpM-aH2p.js → pieDiagram-ADFJNKIX-M81uyQ1J.js} +8 -8
  229. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BpM-aH2p.js.map → pieDiagram-ADFJNKIX-M81uyQ1J.js.map} +1 -1
  230. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-NXdIpA15.js → quadrantDiagram-AYHSOK5B-ClzIh9Gb.js} +3 -3
  231. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-NXdIpA15.js.map → quadrantDiagram-AYHSOK5B-ClzIh9Gb.js.map} +1 -1
  232. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-D1AICAA0.js → requirementDiagram-UZGBJVZJ-DLK3A-pn.js} +4 -4
  233. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-D1AICAA0.js.map → requirementDiagram-UZGBJVZJ-DLK3A-pn.js.map} +1 -1
  234. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-WiReDPfo.js → sankeyDiagram-TZEHDZUN-CYqju8I1.js} +2 -2
  235. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-WiReDPfo.js.map → sankeyDiagram-TZEHDZUN-CYqju8I1.js.map} +1 -1
  236. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Cw76oP8t.js → sequenceDiagram-WL72ISMW-2guv6eOd.js} +4 -4
  237. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Cw76oP8t.js.map → sequenceDiagram-WL72ISMW-2guv6eOd.js.map} +1 -1
  238. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-QjCeRczs.js → stateDiagram-FKZM4ZOC-iujqSp0X.js} +9 -9
  239. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-QjCeRczs.js.map → stateDiagram-FKZM4ZOC-iujqSp0X.js.map} +1 -1
  240. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-IClqxQ4s.js → stateDiagram-v2-4FDKWEC3-BxzY81ky.js} +5 -5
  241. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-IClqxQ4s.js.map → stateDiagram-v2-4FDKWEC3-BxzY81ky.js.map} +1 -1
  242. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BfyfTY7m.js → timeline-definition-IT6M3QCI-DjCFSC8d.js} +3 -3
  243. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BfyfTY7m.js.map → timeline-definition-IT6M3QCI-DjCFSC8d.js.map} +1 -1
  244. package/webapp/dist/assets/{treemap-GDKQZRPO-C5MiL6--.js → treemap-GDKQZRPO-iaBzDWCP.js} +5 -5
  245. package/webapp/dist/assets/{treemap-GDKQZRPO-C5MiL6--.js.map → treemap-GDKQZRPO-iaBzDWCP.js.map} +1 -1
  246. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-ybaJrSry.js → xychartDiagram-PRI3JC2R-R6Jl1c89.js} +3 -3
  247. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-ybaJrSry.js.map → xychartDiagram-PRI3JC2R-R6Jl1c89.js.map} +1 -1
  248. package/webapp/dist/index.html +2 -2
  249. package/dist/docs/issues/global-dialog-event-broadcaster-missing.md +0 -128
  250. package/dist/llm/kernel-driver/subdialog-txn.d.ts +0 -8
  251. package/webapp/dist/assets/index-DLajsIDJ.js.map +0 -1
@@ -104,7 +104,7 @@ function buildFbrSystemPrompt(language, phase) {
104
104
  '# 扪心自问(FBR)支线对话',
105
105
  '',
106
106
  '- 你正在处理一次由 `freshBootsReasoning` 触发的 FBR 支线对话。',
107
- '- 诉请正文是主要任务上下文;不要假设能访问上游对话历史。',
107
+ '- 诉请正文是主要任务上下文;不要假设能访问诉请者一侧的对话历史。',
108
108
  '- 若使用可恢复会话,你可以使用本支线对话自身的会话历史作为显式上下文。',
109
109
  '- 发散阶段要对反直觉、离谱、少数派的候选想法保持开放,把它们当作待检验候选,而不是提前镇压。',
110
110
  '- 收敛阶段要自主去噪:只保留跨轮稳定共识、彼此能互证且能被诉请正文支撑的内容;未获独立支撑的离谱想法默认当噪音丢弃,不进入最终结论。',
@@ -115,11 +115,11 @@ function buildFbrSystemPrompt(language, phase) {
115
115
  ].join('\n');
116
116
  }
117
117
  return [
118
- '# Fresh Boots Reasoning (FBR) sideline dialog',
118
+ '# Fresh Boots Reasoning (FBR) Side Dialog',
119
119
  '',
120
- '- You are handling an FBR sideline dialog triggered by `freshBootsReasoning`.',
121
- '- The tellask body is the primary task context; do not assume access to upstream dialog history.',
122
- '- If this is a resumable session, you may use this sideline dialog’s own session history as explicit context.',
120
+ '- You are handling an FBR Side Dialog triggered by `freshBootsReasoning`.',
121
+ '- The tellask body is the primary task context; do not assume access to tellasker-side dialog history.',
122
+ '- If this is a resumable session, you may use this Side Dialog’s own session history as explicit context.',
123
123
  '- In divergence, stay open to counterintuitive, wild, or minority hypotheses; treat them as candidates to test instead of suppressing them early.',
124
124
  '- In convergence, denoise autonomously: keep only stable cross-round consensus, mutually reinforcing points, and body-grounded evidence; unsupported wild ideas default to noise and must not enter the final conclusion.',
125
125
  '- If critical context is missing, state what is missing and why it blocks a responsible conclusion.',
@@ -356,7 +356,7 @@ function advanceFbrState(state) {
356
356
  }
357
357
  function buildFbrPromptForState(args) {
358
358
  if (args.state.phase === 'divergence') {
359
- return (0, inter_dialog_format_1.formatAssignmentFromSupdialog)({
359
+ return (0, inter_dialog_format_1.formatAssignmentFromAskerDialog)({
360
360
  callName: 'freshBootsReasoning',
361
361
  fromAgentId: args.fromAgentId,
362
362
  toAgentId: args.toAgentId,
@@ -1,4 +1,4 @@
1
- import type { ScheduleDriveFn } from './subdialog';
1
+ import type { ScheduleDriveFn } from './sideDialog';
2
2
  import type { KernelDriverDriveArgs, KernelDriverDriveInvoker, KernelDriverDriveResult, KernelDriverDriveScheduler, KernelDriverRuntimeState } from './types';
3
3
  export declare function executeDriveRound(args: {
4
4
  runtime: KernelDriverRuntimeState;
@@ -20,7 +20,7 @@ const context_health_1 = require("./context-health");
20
20
  const drive_1 = require("./drive");
21
21
  const guardrails_1 = require("./guardrails");
22
22
  const reply_guidance_1 = require("./reply-guidance");
23
- const subdialog_1 = require("./subdialog");
23
+ const sideDialog_1 = require("./sideDialog");
24
24
  const tellask_special_1 = require("./tellask-special");
25
25
  const REPLY_TOOL_REMINDER_PREFIX_EN = '[Dominds replyTellask required]';
26
26
  const REPLY_TOOL_REMINDER_PREFIX_ZH = '[Dominds 必须调用回复工具]';
@@ -43,45 +43,73 @@ async function buildReplyToolReminderPrompt(args) {
43
43
  }),
44
44
  });
45
45
  }
46
- async function loadFreshSuspensionStatusFromPersistence(dialog) {
46
+ function entitlementAllowsPendingSideDialog(args) {
47
+ const entitlement = args.driveOptions?.noPromptSideDialogResumeEntitlement;
48
+ if (args.driveOptions?.source !== 'kernel_driver_supply_response_parent_revive' ||
49
+ entitlement?.ownerDialogId !== args.dialog.id.selfId) {
50
+ return false;
51
+ }
52
+ if (entitlement.reason === 'reply_tellask_back_delivered') {
53
+ return true;
54
+ }
55
+ if (entitlement.reason === 'replaced_pending_sideDialog_reply') {
56
+ return false;
57
+ }
58
+ if (entitlement.reason !== 'resolved_pending_sideDialog_reply') {
59
+ return false;
60
+ }
61
+ if (!isPositiveInteger(entitlement.callSiteCourse)) {
62
+ return false;
63
+ }
64
+ if (!isPositiveInteger(entitlement.callSiteGenseq)) {
65
+ return false;
66
+ }
67
+ return (args.pending.callSiteCourse !== entitlement.callSiteCourse ||
68
+ args.pending.callSiteGenseq !== entitlement.callSiteGenseq);
69
+ }
70
+ function isPositiveInteger(value) {
71
+ return typeof value === 'number' && Number.isInteger(value) && value > 0;
72
+ }
73
+ async function loadFreshSuspensionStatusFromPersistence(dialog, driveOptions) {
47
74
  const q4h = await persistence_1.DialogPersistence.loadQuestions4HumanState(dialog.id, dialog.status);
48
- const pendingSubdialogs = await persistence_1.DialogPersistence.loadPendingSubdialogs(dialog.id, dialog.status);
75
+ const pendingSideDialogs = await persistence_1.DialogPersistence.loadPendingSideDialogs(dialog.id, dialog.status);
49
76
  const hasQ4H = q4h.length > 0;
50
- const hasSubdialogs = pendingSubdialogs.length > 0;
77
+ const hasSideDialogs = pendingSideDialogs.length > 0;
78
+ const blockingSideDialogs = pendingSideDialogs.some((pending) => !entitlementAllowsPendingSideDialog({ pending, driveOptions, dialog }));
51
79
  return {
52
80
  q4h: hasQ4H,
53
- subdialogs: hasSubdialogs,
54
- blockingSubdialogs: hasSubdialogs,
55
- canDrive: !hasQ4H && !hasSubdialogs,
81
+ sideDialogs: hasSideDialogs,
82
+ blockingSideDialogs,
83
+ canDrive: !hasQ4H && !blockingSideDialogs,
56
84
  };
57
85
  }
58
86
  function buildDisplayStateFromSuspensionStatus(args) {
59
- if (args.q4h && args.subdialogs) {
60
- return { kind: 'blocked', reason: { kind: 'needs_human_input_and_subdialogs' } };
87
+ if (args.q4h && args.sideDialogs) {
88
+ return { kind: 'blocked', reason: { kind: 'needs_human_input_and_sideDialogs' } };
61
89
  }
62
90
  if (args.q4h) {
63
91
  return { kind: 'blocked', reason: { kind: 'needs_human_input' } };
64
92
  }
65
- if (args.subdialogs) {
66
- return { kind: 'blocked', reason: { kind: 'waiting_for_subdialogs' } };
93
+ if (args.sideDialogs) {
94
+ return { kind: 'blocked', reason: { kind: 'waiting_for_sideDialogs' } };
67
95
  }
68
96
  return { kind: 'idle_waiting_user' };
69
97
  }
70
98
  async function loadPendingDiagnosticsSnapshot(args) {
71
99
  const ownerDialogIdObj = new dialog_1.DialogID(args.ownerDialogId, args.rootId);
72
100
  try {
73
- const pending = await persistence_1.DialogPersistence.loadPendingSubdialogs(ownerDialogIdObj, args.status);
74
- const matchedSubdialogIds = pending
75
- .filter((record) => record.subdialogId === args.expectedSubdialogId)
76
- .map((record) => record.subdialogId);
101
+ const pending = await persistence_1.DialogPersistence.loadPendingSideDialogs(ownerDialogIdObj, args.status);
102
+ const matchedSideDialogIds = pending
103
+ .filter((record) => record.sideDialogId === args.expectedSideDialogId)
104
+ .map((record) => record.sideDialogId);
77
105
  return {
78
106
  kind: 'loaded',
79
107
  ownerDialogId: args.ownerDialogId,
80
108
  status: args.status,
81
109
  totalCount: pending.length,
82
- matchedSubdialogIds,
110
+ matchedSideDialogIds,
83
111
  records: pending.map((record) => ({
84
- subdialogId: record.subdialogId,
112
+ sideDialogId: record.sideDialogId,
85
113
  callType: record.callType,
86
114
  targetAgentId: record.targetAgentId,
87
115
  sessionSlug: record.sessionSlug,
@@ -133,24 +161,31 @@ async function clearConsumedDeferredRootQueueIfIdle(dialog) {
133
161
  reason: 'root_idle_after_consuming_deferred_queue',
134
162
  });
135
163
  }
136
- function hasNoPromptSubdialogResumeEntitlement(dialog, driveOptions) {
137
- const entitlement = driveOptions?.noPromptSubdialogResumeEntitlement;
164
+ function hasNoPromptSideDialogResumeEntitlement(dialog, driveOptions) {
165
+ const entitlement = driveOptions?.noPromptSideDialogResumeEntitlement;
138
166
  if (!entitlement) {
139
167
  return false;
140
168
  }
141
169
  return entitlement.ownerDialogId === dialog.id.selfId;
142
170
  }
143
- function shouldAllowPendingSubdialogsForParentRevive(dialog, driveOptions) {
144
- if (!(dialog instanceof dialog_1.SubDialog)) {
171
+ function hasParentReviveEntitlement(dialog, driveOptions) {
172
+ const entitlement = driveOptions?.noPromptSideDialogResumeEntitlement;
173
+ if (!entitlement) {
145
174
  return false;
146
175
  }
147
- const entitlement = driveOptions?.noPromptSubdialogResumeEntitlement;
148
- if (!entitlement) {
176
+ if (driveOptions?.source !== 'kernel_driver_supply_response_parent_revive' ||
177
+ entitlement.ownerDialogId !== dialog.id.selfId) {
149
178
  return false;
150
179
  }
151
- return (driveOptions?.source === 'kernel_driver_supply_response_parent_revive' &&
152
- entitlement.ownerDialogId === dialog.id.selfId &&
153
- entitlement.reason === 'reply_tellask_back_delivered');
180
+ if (entitlement.reason === 'reply_tellask_back_delivered') {
181
+ return true;
182
+ }
183
+ if (entitlement.reason === 'replaced_pending_sideDialog_reply') {
184
+ return true;
185
+ }
186
+ return (entitlement.reason === 'resolved_pending_sideDialog_reply' &&
187
+ isPositiveInteger(entitlement.callSiteCourse) &&
188
+ isPositiveInteger(entitlement.callSiteGenseq));
154
189
  }
155
190
  function resolveDriveRequestSource(humanPrompt, driveOptions) {
156
191
  if (driveOptions?.source) {
@@ -221,7 +256,7 @@ async function applyRegisteredDialogRunControlsBeforeDrive(args) {
221
256
  throw new Error((0, run_control_1.renderAppRunControlBlockForPreDrive)(result.block));
222
257
  }
223
258
  }
224
- async function inspectNoPromptSubdialogDrive(args) {
259
+ async function inspectNoPromptSideDialogDrive(args) {
225
260
  const source = resolveDriveRequestSource(undefined, args.driveOptions);
226
261
  const latest = await persistence_1.DialogPersistence.loadDialogLatest(args.dialog.id, args.dialog.status);
227
262
  const displayState = latest?.displayState;
@@ -245,7 +280,7 @@ async function inspectNoPromptSubdialogDrive(args) {
245
280
  const explicitInterruptedResumeAllowed = args.driveOptions?.allowResumeFromInterrupted === true &&
246
281
  latest?.executionMarker?.kind === 'interrupted';
247
282
  const supplyResponseParentReviveAllowed = source === 'kernel_driver_supply_response_parent_revive' &&
248
- hasNoPromptSubdialogResumeEntitlement(args.dialog, args.driveOptions);
283
+ hasNoPromptSideDialogResumeEntitlement(args.dialog, args.driveOptions);
249
284
  if (lastEvent?.type === 'tellask_call_anchor_record' && lastEvent.anchorRole === 'response') {
250
285
  return {
251
286
  shouldReject: true,
@@ -279,7 +314,7 @@ async function maybeResolveDeferredReplyReassertionPrompt(dialog) {
279
314
  if (!deferredReplyReassertion) {
280
315
  return undefined;
281
316
  }
282
- const activeDirective = await (0, tellask_special_1.loadLatestActiveTellaskReplyDirective)(dialog);
317
+ const activeDirective = await (0, tellask_special_1.loadActiveTellaskReplyDirective)(dialog);
283
318
  if (!activeDirective ||
284
319
  activeDirective.targetCallId !== deferredReplyReassertion.directive.targetCallId) {
285
320
  await persistence_1.DialogPersistence.setDeferredReplyReassertion(dialog.id, undefined, dialog.status);
@@ -314,7 +349,7 @@ async function maybeSurfaceDeferredReplyReassertionGuideForBlockedContinue(dialo
314
349
  if (!deferredReplyReassertion || deferredReplyReassertion.resumeGuideSurfaced === true) {
315
350
  return;
316
351
  }
317
- const activeDirective = await (0, tellask_special_1.loadLatestActiveTellaskReplyDirective)(dialog);
352
+ const activeDirective = await (0, tellask_special_1.loadActiveTellaskReplyDirective)(dialog);
318
353
  if (!activeDirective ||
319
354
  activeDirective.targetCallId !== deferredReplyReassertion.directive.targetCallId) {
320
355
  await persistence_1.DialogPersistence.setDeferredReplyReassertion(dialog.id, undefined, dialog.status);
@@ -393,18 +428,18 @@ async function resolveEffectivePrompt(dialog, humanPrompt) {
393
428
  case 'registered_assignment_update':
394
429
  case 'new_course_runtime_guide':
395
430
  case 'new_course_runtime_reply':
396
- case 'new_course_runtime_subdialog': {
431
+ case 'new_course_runtime_sideDialog': {
397
432
  const runtimeCommon = {
398
433
  ...common,
399
434
  origin: 'runtime',
400
435
  ...(upNext.skipTaskdoc === undefined ? {} : { skipTaskdoc: upNext.skipTaskdoc }),
401
436
  };
402
437
  if (upNext.kind === 'registered_assignment_update' ||
403
- upNext.kind === 'new_course_runtime_subdialog') {
438
+ upNext.kind === 'new_course_runtime_sideDialog') {
404
439
  const prompt = {
405
440
  ...runtimeCommon,
406
441
  tellaskReplyDirective: upNext.tellaskReplyDirective,
407
- subdialogReplyTarget: upNext.subdialogReplyTarget,
442
+ sideDialogReplyTarget: upNext.sideDialogReplyTarget,
408
443
  };
409
444
  return prompt;
410
445
  }
@@ -433,7 +468,7 @@ async function executeDriveRound(args) {
433
468
  let interruptedBySignal = false;
434
469
  let followUp;
435
470
  let driveResult;
436
- let subdialogReplyTarget;
471
+ let sideDialogReplyTarget;
437
472
  let activeTellaskReplyDirective;
438
473
  let activePromptWasReplyToolReminder = false;
439
474
  let shouldPauseAfterLocalUserInterjection = false;
@@ -447,7 +482,7 @@ async function executeDriveRound(args) {
447
482
  (0, dialog_display_state_1.createActiveRun)(dialog.id);
448
483
  activeRunPrimed = true;
449
484
  ownsActiveRun = !hadActiveRunBefore;
450
- // "dead" is irreversible for subdialogs. Skip drive if marked dead.
485
+ // "dead" is irreversible for sideDialogs. Skip drive if marked dead.
451
486
  try {
452
487
  const latest = await persistence_1.DialogPersistence.loadDialogLatest(dialog.id, 'running');
453
488
  if (dialog.id.selfId !== dialog.id.rootId &&
@@ -487,14 +522,14 @@ async function executeDriveRound(args) {
487
522
  });
488
523
  }
489
524
  // Queued/auto drive (without fresh human input) must not proceed while dialog is
490
- // suspended by pending Q4H or subdialogs. This prevents duplicate generations when
491
- // multiple wake-ups race around the same subdialog completion boundary.
525
+ // suspended by pending Q4H or sideDialogs. This prevents duplicate generations when
526
+ // multiple wake-ups race around the same sideDialog completion boundary.
492
527
  if (!humanPrompt) {
493
- if (dialog instanceof dialog_1.SubDialog && !dialog.hasUpNext()) {
528
+ if (dialog instanceof dialog_1.SideDialog && !dialog.hasUpNext()) {
494
529
  try {
495
- const inspection = await inspectNoPromptSubdialogDrive({ dialog, driveOptions });
530
+ const inspection = await inspectNoPromptSideDialogDrive({ dialog, driveOptions });
496
531
  if (inspection.shouldReject) {
497
- log_1.log.error('Rejected unexpected no-prompt subdialog drive request', undefined, {
532
+ log_1.log.error('Rejected unexpected no-prompt sideDialog drive request', undefined, {
498
533
  dialogId: dialog.id.valueOf(),
499
534
  rootId: dialog.id.rootId,
500
535
  selfId: dialog.id.selfId,
@@ -511,7 +546,7 @@ async function executeDriveRound(args) {
511
546
  }
512
547
  }
513
548
  catch (err) {
514
- log_1.log.error('Failed to inspect unexpected no-prompt subdialog drive request', err, {
549
+ log_1.log.error('Failed to inspect unexpected no-prompt sideDialog drive request', err, {
515
550
  dialogId: dialog.id.valueOf(),
516
551
  rootId: dialog.id.rootId,
517
552
  selfId: dialog.id.selfId,
@@ -535,19 +570,21 @@ async function executeDriveRound(args) {
535
570
  // Do not refactor this branch using only `displayState` or only the previous interrupted
536
571
  // marker. The correct behavior emerges from combining fresh blocker facts, queued prompt
537
572
  // state, and the deferred reply reassertion logic elsewhere.
538
- const allowPendingSubdialogsForParentRevive = shouldAllowPendingSubdialogsForParentRevive(dialog, driveOptions);
573
+ const hasEntitledParentRevive = hasParentReviveEntitlement(dialog, driveOptions);
539
574
  const suspension = resumeFromInterjectionPause
540
- ? await loadFreshSuspensionStatusFromPersistence(dialog)
541
- : await dialog.getSuspensionStatus({
542
- allowPendingSubdialogs: allowPendingSubdialogsForParentRevive,
543
- });
575
+ ? await loadFreshSuspensionStatusFromPersistence(dialog, driveOptions)
576
+ : hasEntitledParentRevive
577
+ ? await loadFreshSuspensionStatusFromPersistence(dialog, driveOptions)
578
+ : await dialog.getSuspensionStatus({
579
+ allowPendingSideDialogs: false,
580
+ });
544
581
  const queuedPrompt = dialog.peekUpNext();
545
- const queuedSubdialogPromptCanResume = dialog instanceof dialog_1.SubDialog && queuedPrompt !== undefined;
546
- if (!suspension.canDrive && !queuedSubdialogPromptCanResume) {
582
+ const queuedSideDialogPromptCanResume = dialog instanceof dialog_1.SideDialog && queuedPrompt !== undefined;
583
+ if (!suspension.canDrive && !queuedSideDialogPromptCanResume) {
547
584
  if (resumeFromInterjectionPause) {
548
585
  const restoredState = buildDisplayStateFromSuspensionStatus({
549
586
  q4h: suspension.q4h,
550
- subdialogs: suspension.subdialogs,
587
+ sideDialogs: suspension.sideDialogs,
551
588
  });
552
589
  await (0, dialog_display_state_1.setDialogDisplayState)(dialog.id, restoredState);
553
590
  await maybeSurfaceDeferredReplyReassertionGuideForBlockedContinue(dialog);
@@ -555,7 +592,7 @@ async function executeDriveRound(args) {
555
592
  dialogId: dialog.id.valueOf(),
556
593
  restoredState,
557
594
  waitingQ4H: suspension.q4h,
558
- waitingSubdialogs: suspension.subdialogs,
595
+ waitingSideDialogs: suspension.sideDialogs,
559
596
  });
560
597
  return;
561
598
  }
@@ -568,7 +605,7 @@ async function executeDriveRound(args) {
568
605
  waitInQue,
569
606
  hasQueuedUpNext: dialog.hasUpNext(),
570
607
  waitingQ4H: suspension.q4h,
571
- waitingSubdialogs: suspension.subdialogs,
608
+ waitingSideDialogs: suspension.sideDialogs,
572
609
  lastDriveTrigger: lastTrigger
573
610
  ? {
574
611
  action: lastTrigger.action,
@@ -590,9 +627,9 @@ async function executeDriveRound(args) {
590
627
  log_1.log.debug('kernel-driver continue after interjection pause passed fresh fact scan and will keep driving', undefined, {
591
628
  dialogId: dialog.id.valueOf(),
592
629
  waitingQ4H: suspension.q4h,
593
- waitingSubdialogs: suspension.subdialogs,
630
+ waitingSideDialogs: suspension.sideDialogs,
594
631
  hasQueuedUpNext: dialog.hasUpNext(),
595
- queuedSubdialogPromptCanResume,
632
+ queuedSideDialogPromptCanResume,
596
633
  });
597
634
  }
598
635
  }
@@ -685,7 +722,7 @@ async function executeDriveRound(args) {
685
722
  throw new Error(`kernel-driver upNext invariant violation: expected queued prompt ${effectivePrompt?.msgId ?? 'unknown'} before drive`);
686
723
  }
687
724
  }
688
- subdialogReplyTarget = effectivePrompt?.subdialogReplyTarget;
725
+ sideDialogReplyTarget = effectivePrompt?.sideDialogReplyTarget;
689
726
  const replyGuidance = await (0, reply_guidance_1.resolvePromptReplyGuidance)({
690
727
  dlg: dialog,
691
728
  prompt: effectivePrompt,
@@ -712,20 +749,20 @@ async function executeDriveRound(args) {
712
749
  scheduleDrive: args.scheduleDrive,
713
750
  driveDialog: args.driveDialog,
714
751
  }, effectivePrompt, driveOptions);
715
- subdialogReplyTarget = driveResult.lastAssistantReplyTarget ?? subdialogReplyTarget;
752
+ sideDialogReplyTarget = driveResult.lastAssistantReplyTarget ?? sideDialogReplyTarget;
716
753
  interruptedBySignal = (0, dialog_display_state_1.getActiveRunSignal)(dialog.id)?.aborted === true;
717
754
  if (!interruptedBySignal) {
718
755
  followUp = dialog.takeUpNext();
719
756
  }
720
757
  let tailError;
721
758
  try {
722
- if (dialog instanceof dialog_1.SubDialog &&
759
+ if (dialog instanceof dialog_1.SideDialog &&
723
760
  driveResult &&
724
761
  !interruptedBySignal &&
725
762
  (driveResult.fbrConclusion !== undefined || driveResult.lastAssistantSayingContent !== null)) {
726
763
  if (driveResult.fbrConclusion) {
727
- await (0, subdialog_1.supplySubdialogResponseToAssignedCallerIfPendingV2)({
728
- subdialog: dialog,
764
+ await (0, sideDialog_1.supplySideDialogResponseToAssignedAskerIfPendingV2)({
765
+ sideDialog: dialog,
729
766
  responseText: driveResult.fbrConclusion.responseText,
730
767
  responseGenseq: driveResult.fbrConclusion.responseGenseq,
731
768
  scheduleDrive: args.scheduleDrive,
@@ -739,9 +776,9 @@ async function executeDriveRound(args) {
739
776
  !Number.isFinite(driveResult.lastAssistantSayingGenseq) ||
740
777
  driveResult.lastAssistantSayingGenseq <= driveResult.lastFunctionCallGenseq);
741
778
  if (hasInProgressFunctionCall) {
742
- // Any function call means execution is still in-progress. Only supply when the callee
779
+ // Any function call means execution is still in-progress. Only supply when the tellaskee
743
780
  // has produced a newer assistant saying after the latest function call.
744
- log_1.log.debug('kernel-driver skip subdialog response supply because latest saying is not after function calls', undefined, {
781
+ log_1.log.debug('kernel-driver skip sideDialog response supply because latest saying is not after function calls', undefined, {
745
782
  rootId: dialog.id.rootId,
746
783
  selfId: dialog.id.selfId,
747
784
  lastAssistantSayingGenseq: driveResult.lastAssistantSayingGenseq,
@@ -752,28 +789,27 @@ async function executeDriveRound(args) {
752
789
  const hasFollowUp = followUp !== undefined;
753
790
  const suspension = await dialog.getSuspensionStatus();
754
791
  if (!suspension.canDrive || hasFollowUp) {
755
- log_1.log.debug('kernel-driver skip subdialog response supply while callee is not finalized', undefined, {
792
+ log_1.log.debug('kernel-driver skip sideDialog response supply while tellaskee is not finalized', undefined, {
756
793
  rootId: dialog.id.rootId,
757
794
  selfId: dialog.id.selfId,
758
795
  waitingQ4H: suspension.q4h,
759
- waitingSubdialogs: suspension.subdialogs,
796
+ waitingSideDialogs: suspension.sideDialogs,
760
797
  hasFollowUp,
761
798
  });
762
799
  }
763
800
  if (suspension.canDrive && !hasFollowUp) {
764
801
  if (!activeTellaskReplyDirective) {
765
- log_1.log.debug('kernel-driver skip implicit subdialog reply because no active tellask reply directive is bound to this drive', undefined, {
802
+ log_1.log.debug('kernel-driver skip implicit sideDialog reply because no active tellask reply directive is bound to this drive', undefined, {
766
803
  rootId: dialog.id.rootId,
767
804
  selfId: dialog.id.selfId,
768
805
  });
769
806
  }
770
807
  else {
771
- const shouldDirectFallbackAfterAskBackParentRevive = shouldAllowPendingSubdialogsForParentRevive(dialog, driveOptions);
772
- if (!activePromptWasReplyToolReminder &&
773
- !shouldDirectFallbackAfterAskBackParentRevive) {
808
+ const shouldDirectFallbackAfterParentRevive = hasParentReviveEntitlement(dialog, driveOptions);
809
+ if (!activePromptWasReplyToolReminder && !shouldDirectFallbackAfterParentRevive) {
774
810
  const language = (0, work_language_1.getWorkLanguage)();
775
811
  followUp =
776
- subdialogReplyTarget === undefined
812
+ sideDialogReplyTarget === undefined
777
813
  ? {
778
814
  kind: 'runtime_reply_reminder',
779
815
  prompt: await buildReplyToolReminderPrompt({
@@ -788,7 +824,7 @@ async function executeDriveRound(args) {
788
824
  tellaskReplyDirective: activeTellaskReplyDirective,
789
825
  }
790
826
  : {
791
- kind: 'runtime_subdialog_reply_reminder',
827
+ kind: 'runtime_sideDialog_reply_reminder',
792
828
  prompt: await buildReplyToolReminderPrompt({
793
829
  dlg: dialog,
794
830
  directive: activeTellaskReplyDirective,
@@ -799,30 +835,30 @@ async function executeDriveRound(args) {
799
835
  origin: 'runtime',
800
836
  userLanguageCode: language,
801
837
  tellaskReplyDirective: activeTellaskReplyDirective,
802
- subdialogReplyTarget,
838
+ sideDialogReplyTarget,
803
839
  };
804
- log_1.log.debug('kernel-driver queued subdialog replyTellask reminder after plain reply', undefined, {
840
+ log_1.log.debug('kernel-driver queued sideDialog replyTellask reminder after plain reply', undefined, {
805
841
  dialogId: dialog.id.valueOf(),
806
842
  targetCallId: activeTellaskReplyDirective.targetCallId,
807
- targetOwnerDialogId: subdialogReplyTarget?.ownerDialogId,
808
- directFallbackAfterAskBackParentRevive: shouldDirectFallbackAfterAskBackParentRevive,
843
+ targetOwnerDialogId: sideDialogReplyTarget?.ownerDialogId,
844
+ directFallbackAfterParentRevive: shouldDirectFallbackAfterParentRevive,
809
845
  });
810
846
  }
811
847
  else {
812
848
  if (typeof driveResult.lastAssistantSayingGenseq !== 'number' ||
813
849
  !Number.isFinite(driveResult.lastAssistantSayingGenseq) ||
814
850
  driveResult.lastAssistantSayingGenseq <= 0) {
815
- throw new Error(`Subdialog response supply invariant violation: missing lastAssistantSayingGenseq for dialog=${dialog.id.valueOf()}`);
851
+ throw new Error(`SideDialog response supply invariant violation: missing lastAssistantSayingGenseq for dialog=${dialog.id.valueOf()}`);
816
852
  }
817
853
  const responseGenseq = Math.floor(driveResult.lastAssistantSayingGenseq);
818
854
  const directFallbackCallId = `direct-fallback-${(0, id_1.generateShortId)()}`;
819
855
  let supplied = false;
820
- if (subdialogReplyTarget) {
821
- supplied = await (0, subdialog_1.supplySubdialogResponseToSpecificCallerIfPendingV2)({
822
- subdialog: dialog,
856
+ if (sideDialogReplyTarget) {
857
+ supplied = await (0, sideDialog_1.supplySideDialogResponseToSpecificAskerIfPendingV2)({
858
+ sideDialog: dialog,
823
859
  responseText: driveResult.lastAssistantSayingContent,
824
860
  responseGenseq,
825
- target: subdialogReplyTarget,
861
+ target: sideDialogReplyTarget,
826
862
  deliveryMode: 'direct_fallback',
827
863
  replyResolution: {
828
864
  callId: directFallbackCallId,
@@ -831,8 +867,8 @@ async function executeDriveRound(args) {
831
867
  scheduleDrive: args.scheduleDrive,
832
868
  });
833
869
  if (!supplied) {
834
- supplied = await (0, subdialog_1.supplySubdialogResponseToAssignedCallerIfPendingV2)({
835
- subdialog: dialog,
870
+ supplied = await (0, sideDialog_1.supplySideDialogResponseToAssignedAskerIfPendingV2)({
871
+ sideDialog: dialog,
836
872
  responseText: driveResult.lastAssistantSayingContent,
837
873
  responseGenseq,
838
874
  deliveryMode: 'direct_fallback',
@@ -845,8 +881,8 @@ async function executeDriveRound(args) {
845
881
  }
846
882
  }
847
883
  else {
848
- supplied = await (0, subdialog_1.supplySubdialogResponseToAssignedCallerIfPendingV2)({
849
- subdialog: dialog,
884
+ supplied = await (0, sideDialog_1.supplySideDialogResponseToAssignedAskerIfPendingV2)({
885
+ sideDialog: dialog,
850
886
  responseText: driveResult.lastAssistantSayingContent,
851
887
  responseGenseq,
852
888
  deliveryMode: 'direct_fallback',
@@ -857,18 +893,18 @@ async function executeDriveRound(args) {
857
893
  scheduleDrive: args.scheduleDrive,
858
894
  });
859
895
  }
860
- if (!supplied && subdialogReplyTarget) {
896
+ if (!supplied && sideDialogReplyTarget) {
861
897
  const diagnostics = await loadPendingDiagnosticsSnapshot({
862
898
  rootId: dialog.id.rootId,
863
- ownerDialogId: subdialogReplyTarget.ownerDialogId,
864
- expectedSubdialogId: dialog.id.selfId,
899
+ ownerDialogId: sideDialogReplyTarget.ownerDialogId,
900
+ expectedSideDialogId: dialog.id.selfId,
865
901
  status: dialog.status,
866
902
  });
867
- log_1.log.debug('kernel-driver failed to supply subdialog response to specific caller', undefined, {
903
+ log_1.log.debug('kernel-driver failed to supply sideDialog response to specific asker', undefined, {
868
904
  calleeId: dialog.id.valueOf(),
869
- targetOwnerDialogId: subdialogReplyTarget.ownerDialogId,
870
- targetCallType: subdialogReplyTarget.callType,
871
- targetCallId: subdialogReplyTarget.callId,
905
+ targetOwnerDialogId: sideDialogReplyTarget.ownerDialogId,
906
+ targetCallType: sideDialogReplyTarget.callType,
907
+ targetCallId: sideDialogReplyTarget.callId,
872
908
  diagnostics,
873
909
  });
874
910
  }
@@ -878,7 +914,7 @@ async function executeDriveRound(args) {
878
914
  }
879
915
  }
880
916
  }
881
- if (!(dialog instanceof dialog_1.SubDialog) &&
917
+ if (!(dialog instanceof dialog_1.SideDialog) &&
882
918
  driveResult &&
883
919
  !interruptedBySignal &&
884
920
  driveResult.lastAssistantSayingContent !== null &&
@@ -963,9 +999,9 @@ async function executeDriveRound(args) {
963
999
  case 'registered_assignment_update':
964
1000
  case 'new_course_runtime_guide':
965
1001
  case 'new_course_runtime_reply':
966
- case 'new_course_runtime_subdialog':
1002
+ case 'new_course_runtime_sideDialog':
967
1003
  case 'runtime_reply_reminder':
968
- case 'runtime_subdialog_reply_reminder': {
1004
+ case 'runtime_sideDialog_reply_reminder': {
969
1005
  const runtimeCommon = {
970
1006
  ...common,
971
1007
  origin: 'runtime',
@@ -974,11 +1010,11 @@ async function executeDriveRound(args) {
974
1010
  : { skipTaskdoc: followUp.skipTaskdoc }),
975
1011
  };
976
1012
  if (followUp.kind === 'registered_assignment_update' ||
977
- followUp.kind === 'new_course_runtime_subdialog') {
1013
+ followUp.kind === 'new_course_runtime_sideDialog') {
978
1014
  const prompt = {
979
1015
  ...runtimeCommon,
980
1016
  tellaskReplyDirective: followUp.tellaskReplyDirective,
981
- subdialogReplyTarget: followUp.subdialogReplyTarget,
1017
+ sideDialogReplyTarget: followUp.sideDialogReplyTarget,
982
1018
  };
983
1019
  return prompt;
984
1020
  }
@@ -5,10 +5,10 @@ exports.validateKernelDriverPolicyInvariants = validateKernelDriverPolicyInvaria
5
5
  exports.resolveKernelDriverPolicyViolationKind = resolveKernelDriverPolicyViolationKind;
6
6
  const dialog_1 = require("../../dialog");
7
7
  const fbr_1 = require("./fbr");
8
- function isToollessFbrSelfSubdialog(dlg) {
9
- if (!(dlg instanceof dialog_1.SubDialog))
8
+ function isToollessFbrSelfSideDialog(dlg) {
9
+ if (!(dlg instanceof dialog_1.SideDialog))
10
10
  return false;
11
- return dlg.assignmentFromSup.callName === 'freshBootsReasoning';
11
+ return dlg.assignmentFromAsker.callName === 'freshBootsReasoning';
12
12
  }
13
13
  function mergeModelParams(base, overlay) {
14
14
  if (!base && !overlay)
@@ -26,7 +26,7 @@ function mergeModelParams(base, overlay) {
26
26
  }
27
27
  function buildKernelDriverPolicy(args) {
28
28
  const { dlg, agent, systemPrompt, agentTools, language } = args;
29
- if (!isToollessFbrSelfSubdialog(dlg)) {
29
+ if (!isToollessFbrSelfSideDialog(dlg)) {
30
30
  return {
31
31
  mode: 'default',
32
32
  effectiveAgent: agent,
@@ -1,4 +1,4 @@
1
- export { driveDialogStream, emitSayingEventsBridge as emitSayingEvents, supplyResponseToSupdialog, } from './engine';
1
+ export { driveDialogStream, emitSayingEventsBridge as emitSayingEvents, supplyResponseToAskerDialog, } from './engine';
2
2
  export { runBackendDriver } from './loop';
3
3
  export { restoreDialogHierarchy } from './restore';
4
4
  export type { KernelDriverDriveArgs, KernelDriverDriveResult, KernelDriverEmitSayingArgs, KernelDriverEmitSayingResult, KernelDriverRunBackendResult, KernelDriverSupplyResponseArgs, KernelDriverSupplyResponseResult, } from './types';
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.restoreDialogHierarchy = exports.runBackendDriver = exports.supplyResponseToSupdialog = exports.emitSayingEvents = exports.driveDialogStream = void 0;
3
+ exports.restoreDialogHierarchy = exports.runBackendDriver = exports.supplyResponseToAskerDialog = exports.emitSayingEvents = exports.driveDialogStream = void 0;
4
4
  var engine_1 = require("./engine");
5
5
  Object.defineProperty(exports, "driveDialogStream", { enumerable: true, get: function () { return engine_1.driveDialogStream; } });
6
6
  Object.defineProperty(exports, "emitSayingEvents", { enumerable: true, get: function () { return engine_1.emitSayingEventsBridge; } });
7
- Object.defineProperty(exports, "supplyResponseToSupdialog", { enumerable: true, get: function () { return engine_1.supplyResponseToSupdialog; } });
7
+ Object.defineProperty(exports, "supplyResponseToAskerDialog", { enumerable: true, get: function () { return engine_1.supplyResponseToAskerDialog; } });
8
8
  var loop_1 = require("./loop");
9
9
  Object.defineProperty(exports, "runBackendDriver", { enumerable: true, get: function () { return loop_1.runBackendDriver; } });
10
10
  var restore_1 = require("./restore");