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
@@ -52,8 +52,8 @@
52
52
  padding: 20px;
53
53
  }
54
54
  </style>
55
- <script type="module" crossorigin src="/assets/index-DLajsIDJ.js"></script>
56
- <link rel="stylesheet" crossorigin href="/assets/index-xvYYeHuy.css">
55
+ <script type="module" crossorigin src="/assets/index-tinPEZoH.js"></script>
56
+ <link rel="stylesheet" crossorigin href="/assets/index-BGdI3lWA.css">
57
57
  </head>
58
58
  <body>
59
59
  <div id="app" role="application" aria-label="Dominds WebUI" data-cy="app-container">
@@ -1,128 +0,0 @@
1
- # Issue: `Global dialog event broadcaster missing`
2
-
3
- ## Summary
4
-
5
- 在没有初始化全局 dialog event broadcaster 的运行环境里,发布 `new_q4h_asked` / `q4h_answered` / `subdialog_created_evt` / `dlg_touched_evt` 会直接抛错:
6
-
7
- ```text
8
- Global dialog event broadcaster missing: cannot publish new_q4h_asked for dialog=<id>
9
- ```
10
-
11
- 这不只是噪音日志。对于 `askHuman` / Q4H 链路,这个异常会被上层当作“Q4H 注册失败”处理,导致:
12
-
13
- - Q4H 状态文件其实已经写入
14
- - 但 runtime 仍然走失败分支
15
- - 追加 `stream_error_evt`
16
- - 向当前对话注入失败型 tellask result
17
- - 造成“持久化成功、广播缺失、业务语义却被当作失败”的错位
18
-
19
- ## Observed In
20
-
21
- - `tests/recovery/reply-special-after-restart.ts`
22
- - 其它不启动完整 websocket server、但会触发 Q4H runtime 的脚本型 / test 型运行环境
23
-
24
- ## Current Call Chain
25
-
26
- 1. `main/llm/kernel-driver/tellask-special.ts`
27
- `executeTellaskCall()` 在 Q4H 分支先调用 `DialogPersistence.appendQuestion4HumanState()` 落盘
28
- 2. 同一分支随后调用 `postDialogEvent(dlg, { type: 'new_q4h_asked', ... })`
29
- 3. `main/evt-registry.ts`
30
- `dispatchGloballyIfNeeded()` 发现 `new_q4h_asked` 属于 global-only event
31
- 4. 若 `globalDialogEventBroadcaster === null`,则直接 `throw`
32
- 5. 异常被 `tellask-special.ts` 的 Q4H `try/catch` 捕获
33
- 6. 上层误判为“Q4H register invariant violation”,转入失败补偿路径
34
-
35
- ## Correct Contract
36
-
37
- 这里应明确:**global dialog event broadcaster 不是可选增强,而是 runtime 必要基础设施**。
38
-
39
- 也就是说:
40
-
41
- - 任何支持 dialog runtime 的运行环境,在进入对话驱动 / Q4H / 子对话逻辑前,都必须先完成 broadcaster bootstrap
42
- - WebUI server 只是其中一种 runtime;将来其它 runtime 也必须在位
43
- - 测试运行环境同样应按 runtime bootstrap 的方式安装 broadcaster,而不是在业务 helper 里零散补丁
44
-
45
- 因此,这个问题的根因不是“event layer 应该 graceful degrade”,而是**存在未完成 broadcaster bootstrap 的 runtime**,并且这个缺陷直到业务路径中途才暴露。
46
-
47
- ## Why It Happened
48
-
49
- 此前全局 broadcaster 只在 `main/server/websocket-handler.ts` 的 websocket server 初始化阶段通过 `setGlobalDialogEventBroadcaster(...)` 安装。
50
-
51
- 但脚本 / 测试 / recovery 运行环境也会直接触发同一批 global-only event。于是形成了:
52
-
53
- - dialog-scoped event registry 已可用
54
- - global broadcaster 尚未安装
55
- - `postDialogEvent()` 处理 global-only event 时立刻抛错
56
- - 上层业务把该异常误判成 Q4H 注册失败 / 业务失败
57
-
58
- ## Impact
59
-
60
- ### User-visible / behavior impact
61
-
62
- - `askHuman` 在未完成 runtime bootstrap 的环境下会被错误地当作失败处理
63
- - 当前对话会收到失败型 tellask result,而不是保持正常 pending Q4H 语义
64
-
65
- ### Persistence / state consistency impact
66
-
67
- - Q4H state 已经写入,但 runtime 业务语义被标成失败
68
- - 形成“状态已存在、当前轮回答却说失败”的不一致
69
-
70
- ### Test / diagnostics impact
71
-
72
- - 用例可能通过,但日志出现误导性错误
73
- - 排障时很难第一眼区分“runtime 缺少 broadcaster bootstrap”还是“Q4H 真的注册失败”
74
-
75
- ## Repro
76
-
77
- 1. 在不启动 websocket server、且未安装 recording broadcaster 的脚本环境里创建 dialog
78
- 2. 触发 `askHuman`
79
- 3. 观察日志出现 `Global dialog event broadcaster missing`
80
- 4. 观察上层继续记录 `Q4H register invariant violation`
81
-
82
- ## Root Cause
83
-
84
- 根因不是 Q4H 注册本身,而是 runtime contract 与 bootstrap 现实不一致:
85
-
86
- - 契约上:broadcaster 是 mandatory infra
87
- - 现实里:只有 websocket server 显式安装,其它 runtime 没有统一 bootstrap
88
-
89
- 于是“基础设施未初始化”在业务路径中被表象成“Q4H 注册失败”。
90
-
91
- ## Resolution Direction
92
-
93
- 按下面原则修:
94
-
95
- 1. 保持 event layer 的强约束:global-only event 没有 broadcaster 时仍然应 loud fail
96
- 2. 修复点应放在 runtime bootstrap,而不是在 Q4H/子对话业务链路里做“广播失败 best-effort”
97
- 3. 所有 runtime 入口都必须在业务逻辑前安装 broadcaster
98
- - WebUI server:安装 websocket fanout broadcaster
99
- - tests / script runtimes:安装 recording broadcaster,可抓取广播内容,也可在无断言需求时忽略
100
- 4. 测试不得再通过业务 helper 临时塞 `() => {}` 绕过问题;应通过统一 runtime bootstrap 安装 recorder
101
- 5. 若 future runtime 漏装 broadcaster,应在 bootstrap 阶段或运行环境初始化阶段尽早暴露,而不是等到 `askHuman` 中途再炸
102
-
103
- ## Rejected Direction
104
-
105
- 以下方向不再采用:
106
-
107
- - 让 `dispatchGloballyIfNeeded()` graceful degrade
108
- - 在 `askHuman` 链路里把 broadcast 当成 best-effort
109
- - 允许测试/business helper 就地注入 noop broadcaster 掩盖 bootstrap 缺口
110
-
111
- 这些做法都会继续模糊“mandatory infra”契约,让问题从 runtime 初始化阶段滑落到业务中途。
112
-
113
- ## Applied Fix Direction
114
-
115
- 当前约定下,正确修法是:
116
-
117
- - 新增统一 broadcaster bootstrap API
118
- - WebUI server 改为通过统一 bootstrap API 安装 websocket broadcaster
119
- - rtws tests 改为通过统一 runner 安装 recording broadcaster
120
- - kernel-driver helpers 不再偷偷安装 noop broadcaster,而是断言 runtime 已完成 bootstrap
121
-
122
- ## Related Files
123
-
124
- - `main/bootstrap/global-dialog-event-broadcaster.ts`
125
- - `main/evt-registry.ts`
126
- - `main/server/websocket-handler.ts`
127
- - `tests/rtws-script-runner.ts`
128
- - `tests/kernel-driver/helpers.ts`
@@ -1,8 +0,0 @@
1
- import type { DialogID } from '../../dialog';
2
- import { DialogPersistence } from '../../persistence';
3
- export type TakenSubdialogResponse = Awaited<ReturnType<typeof DialogPersistence.takeSubdialogResponses>>[number];
4
- export declare function takeSubdialogResponses(dialogId: DialogID): Promise<TakenSubdialogResponse[]>;
5
- export declare function commitTakenSubdialogResponses(dialogId: DialogID): Promise<void>;
6
- export declare function rollbackTakenSubdialogResponses(dialogId: DialogID): Promise<void>;
7
- export declare function withSubdialogTxnLock<T>(dialogId: DialogID, fn: () => Promise<T>): Promise<T>;
8
- export declare function withSubdialogTxnLocks<T>(dialogIds: readonly DialogID[], fn: () => Promise<T>): Promise<T>;