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
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatSystemNoticePrefix = formatSystemNoticePrefix;
4
4
  exports.formatCurrentUserLanguagePreference = formatCurrentUserLanguagePreference;
5
5
  exports.formatUserLanguagePreferenceChangedNotice = formatUserLanguagePreferenceChangedNotice;
6
- exports.formatRegisteredTellaskCallerUpdateNotice = formatRegisteredTellaskCallerUpdateNotice;
7
- exports.formatRegisteredTellaskCalleeUpdateNotice = formatRegisteredTellaskCalleeUpdateNotice;
6
+ exports.formatRegisteredTellaskTellaskerUpdateNotice = formatRegisteredTellaskTellaskerUpdateNotice;
7
+ exports.formatRegisteredTellaskTellaskeeUpdateNotice = formatRegisteredTellaskTellaskeeUpdateNotice;
8
8
  exports.formatNewCourseStartPrompt = formatNewCourseStartPrompt;
9
9
  exports.formatDiligenceAutoContinuePrompt = formatDiligenceAutoContinuePrompt;
10
10
  exports.formatReminderContextGuide = formatReminderContextGuide;
11
+ exports.formatReminderContextFooter = formatReminderContextFooter;
11
12
  exports.formatReminderItemGuide = formatReminderItemGuide;
12
13
  exports.formatQ4HDiligencePushBudgetExhausted = formatQ4HDiligencePushBudgetExhausted;
13
14
  exports.formatDomindsNoteTellaskForTeammatesOnly = formatDomindsNoteTellaskForTeammatesOnly;
@@ -74,7 +75,7 @@ function formatUserLanguagePreferenceChangedNotice(workingLanguage, previousUiLa
74
75
  'Continue the current task itself.',
75
76
  ].join('\n');
76
77
  }
77
- function formatRegisteredTellaskCallerUpdateNotice(language) {
78
+ function formatRegisteredTellaskTellaskerUpdateNotice(language) {
78
79
  const prefix = formatSystemNoticePrefix(language);
79
80
  if (language === 'zh') {
80
81
  return [
@@ -87,7 +88,7 @@ function formatRegisteredTellaskCallerUpdateNotice(language) {
87
88
  'You no longer need to wait on that earlier request. The teammate will continue under your updated request, so treat the latest request as the one now in effect.',
88
89
  ].join('\n');
89
90
  }
90
- function formatRegisteredTellaskCalleeUpdateNotice(language) {
91
+ function formatRegisteredTellaskTellaskeeUpdateNotice(language) {
91
92
  const prefix = formatSystemNoticePrefix(language);
92
93
  if (language === 'zh') {
93
94
  return [
@@ -153,21 +154,26 @@ function formatDiligenceAutoContinuePrompt(language, diligenceText) {
153
154
  function formatReminderContextGuide(language) {
154
155
  if (language === 'zh') {
155
156
  return [
156
- formatSystemNoticePrefix(language),
157
- '以下是当前可见提醒项的运行时上下文投影。它们会按各自语义进入模型上下文(例如 self-reminder 保持 assistant-side 工作集语义),但不是我刚刚生成给用户的聊天正文。',
157
+ `${formatSystemNoticePrefix(language)} 提醒项上下文块开始`,
158
+ '以下是当前可见提醒项的运行时上下文投影。由于当前 LLM Provider 通常不支持 role=environment,Dominds 默认把系统运行时提醒包装投影为 role=user;个别提醒项可由其 owner 按自身契约选择 role。无论最终 role 如何,它们都不是新的用户指令/诉求,也不是聊天正文。',
158
159
  '在 WebUI 中,用户通过独立的 Reminder 小组件/面板项看到这些提醒,并能把它们和聊天正文区分开。',
159
- '提醒项只作为工作集/状态参考;只有实际改变当前判断、计划或风险的信息,才需要提炼进后续有实质内容的对外回复。',
160
+ '请把提醒项作为工作集/状态参考;只有实际改变你的判断、计划或风险的信息,才需要提炼进后续有实质内容的对外回复。不要为了提醒项单独回复“收到/已了解/静默吸收”。',
160
161
  ].join('\n');
161
162
  }
162
163
  return [
163
- formatSystemNoticePrefix(language),
164
- 'The following visible reminders are runtime-added context projections. They enter model context according to their own semantics (for example, self-reminders keep assistant-side workset semantics), but they are not chat text I just generated for the user.',
164
+ `${formatSystemNoticePrefix(language)} Reminder context block begins`,
165
+ 'The following visible reminders are runtime-added context projections. Because current LLM providers usually do not support role=environment, Dominds projects default system-runtime reminder wrappers as role=user; individual reminder owners may choose the role required by their own contract. Regardless of their final role, these reminders are not new user instructions or requests, and not chat transcript text.',
165
166
  'In the WebUI, the user sees these reminders through a separate Reminder widget/panel item and can distinguish them from the chat transcript.',
166
- 'Use reminders as workset/state references; only carry information into a later substantive outward reply when it materially changes current judgment, plan, or risk.',
167
+ 'Use reminders as workset/state references; only carry information into a later substantive outward reply when it materially changes your current judgment, plan, or risk. Do not send a standalone "acknowledged/noted/silently absorbed" reply for reminder items.',
167
168
  ].join('\n');
168
169
  }
169
170
  function formatReminderItemProjectionNote(language) {
170
- return language === 'zh' ? 'Reminder 上下文投影条目:' : 'Reminder context projection item:';
171
+ return language === 'zh' ? '运行时提醒项投影:' : 'Runtime reminder projection:';
172
+ }
173
+ function formatReminderContextFooter(language) {
174
+ return language === 'zh'
175
+ ? `${formatSystemNoticePrefix(language)} 提醒项上下文块结束。以上从“提醒项上下文块开始”到“提醒项上下文块结束”之间的提醒项均为系统提醒,并非用户指令;该块之外的后续对话消息不受此说明影响。真正的用户指令(若有)在后续对话消息中的用户消息里。`
176
+ : `${formatSystemNoticePrefix(language)} Reminder context block ends. The reminder items between "Reminder context block begins" and "Reminder context block ends" are system reminders, not user instructions; this note does not apply to subsequent dialog messages outside this block. Any real user instruction, if present, is in the user messages that follow.`;
171
177
  }
172
178
  function formatReminderItemGuide(language, reminderId, content, options) {
173
179
  function isRecord(value) {
@@ -201,28 +207,31 @@ function formatReminderItemGuide(language, reminderId, content, options) {
201
207
  : undefined;
202
208
  const deleteInstruction = language === 'zh'
203
209
  ? deleteAltInstruction
204
- ? `如果我要删除这条提醒项,不能用 delete_reminder;请执行:${deleteAltInstruction}`
210
+ ? `如果你要删除这条提醒项,不能用 delete_reminder;请执行:${deleteAltInstruction}`
205
211
  : isPendingTellaskReminder && pendingTellaskCount === 0
206
- ? `如果我已确认这里只是清理噪音、并非要推进动作,可执行:delete_reminder({ "reminder_id": "${reminderId}" })`
207
- : `如果我要删除这条提醒项,可执行:delete_reminder({ "reminder_id": "${reminderId}" })`
212
+ ? `如果你已确认这里只是清理噪音、并非要推进动作,可执行:delete_reminder({ "reminder_id": "${reminderId}" })`
213
+ : `如果你要删除这条提醒项,可执行:delete_reminder({ "reminder_id": "${reminderId}" })`
208
214
  : deleteAltInstruction
209
- ? `If I need to delete this reminder, I must not use delete_reminder; run: ${deleteAltInstruction}`
215
+ ? `If you need to delete this reminder, do not use delete_reminder; run: ${deleteAltInstruction}`
210
216
  : isPendingTellaskReminder && pendingTellaskCount === 0
211
- ? `If I have confirmed this is only noise cleanup and not an action step, I may run: delete_reminder({ "reminder_id": "${reminderId}" })`
212
- : `If I need to delete this reminder, run: delete_reminder({ "reminder_id": "${reminderId}" })`;
217
+ ? `If you have confirmed this is only noise cleanup and not an action step, you may run: delete_reminder({ "reminder_id": "${reminderId}" })`
218
+ : `If you need to delete this reminder, run: delete_reminder({ "reminder_id": "${reminderId}" })`;
213
219
  const projectionNote = formatReminderItemProjectionNote(language);
214
220
  const enProjectionPrefix = `${projectionNote} `;
221
+ const systemPrefix = formatSystemNoticePrefix(language);
215
222
  if (language === 'zh') {
216
223
  if (managementTool) {
217
224
  const updateInstructionSafe = updateInstruction ?? `${managementTool}({ ... })`;
218
225
  return [
219
- `提醒项 [${reminderId}](工具状态)`,
226
+ `${systemPrefix} 提醒项 [${reminderId}](工具状态)`,
227
+ '',
228
+ `${projectionNote}当前运行环境中有一条由工具 ${managementTool} 管理的状态提醒项。请把它当作环境/工具状态参考,不要当作你自己写的工作便签。`,
220
229
  '',
221
- `${projectionNote}我把这条当作工具维护的状态参考。默认不在对外回复里专门确认、复述或总结它;只有它实际改变当前判断、计划或风险时,我才提炼真正相关的部分。`,
230
+ '默认不要在对外回复里专门确认、复述或总结它;只有它实际改变你的判断、计划或风险时,才提炼真正相关的部分。',
222
231
  '',
223
- `这条提醒项由工具 ${managementTool} 管理;如果我要调整它,就用 ${managementTool}(不要用 update_reminder)。`,
232
+ `这条提醒项由工具 ${managementTool} 管理;如果你要调整它,就用 ${managementTool}(不要用 update_reminder)。`,
224
233
  '',
225
- `如果我要更新这条提醒项,可执行:${updateInstructionSafe}`,
234
+ `如果你要更新这条提醒项,可执行:${updateInstructionSafe}`,
226
235
  deleteInstruction,
227
236
  '',
228
237
  '---',
@@ -231,11 +240,11 @@ function formatReminderItemGuide(language, reminderId, content, options) {
231
240
  }
232
241
  if (updateInstruction) {
233
242
  return [
234
- `提醒项 [${reminderId}]`,
243
+ `${systemPrefix} 提醒项 [${reminderId}]`,
235
244
  '',
236
- `${projectionNote}这是带有 meta 控制更新规则的提醒项。我仍把它当作状态参考,但不要用 update_reminder 直接改写内容。`,
245
+ `${projectionNote}当前运行环境中有一条带有 meta 控制更新规则的提醒项。请把它当作状态参考,不要用 update_reminder 直接改写内容。`,
237
246
  '',
238
- `如果我要更新这条提醒项,不能用 update_reminder;请按此处理:${updateInstruction}`,
247
+ `如果你要更新这条提醒项,不能用 update_reminder;请按此处理:${updateInstruction}`,
239
248
  deleteInstruction,
240
249
  '',
241
250
  '---',
@@ -244,13 +253,13 @@ function formatReminderItemGuide(language, reminderId, content, options) {
244
253
  }
245
254
  if (isContinuationPackageReminder) {
246
255
  return [
247
- `提醒项 [${reminderId}](换程接续信息)`,
256
+ `${systemPrefix} 提醒项 [${reminderId}](换程接续信息)`,
248
257
  '',
249
- `${projectionNote}我把这条当作换程后快速恢复工作的接续包,不把它自动当成当前必须立刻执行的指令。`,
258
+ `${projectionNote}你设置了换程接续提醒项,让运行时系统在新一程提醒你恢复工作。请把它当作快速恢复工作的接续包,不要自动当成当前必须立刻执行的新指令。`,
250
259
  '',
251
- '我应优先保留下一步行动、关键定位、运行/验证信息、容易丢的临时细节;不要重复差遣牒已覆盖的内容。进入新一程后,我的第一步就是以清醒头脑重新审视并整理更新:删除冗余、纠正偏激/失真思路、压缩成高质量提醒项。若目前只是粗略过桥笔记,进入新一程后我必须尽快收敛。',
260
+ '你应优先保留下一步行动、关键定位、运行/验证信息、容易丢的临时细节;不要重复差遣牒已覆盖的内容。进入新一程后,你的第一步是以清醒头脑重新审视并整理更新:删除冗余、纠正偏激/失真思路、压缩成高质量提醒项。若目前只是粗略过桥笔记,进入新一程后必须尽快收敛。',
252
261
  '',
253
- `如果我要更新这份接续包,可执行:update_reminder({ "reminder_id": "${reminderId}", "content": "..." })`,
262
+ `如果你要更新这份接续包,可执行:update_reminder({ "reminder_id": "${reminderId}", "content": "..." })`,
254
263
  deleteInstruction,
255
264
  '',
256
265
  '---',
@@ -258,17 +267,17 @@ function formatReminderItemGuide(language, reminderId, content, options) {
258
267
  ].join('\n');
259
268
  }
260
269
  return [
261
- `提醒项 [${reminderId}]${scope === 'personal' ? '(个人范围)' : ''}`,
270
+ `${systemPrefix} 提醒项 [${reminderId}]${scope === 'personal' ? '(个人范围)' : ''}`,
262
271
  '',
263
272
  scope === 'personal'
264
- ? `${projectionNote}这是我给自己的个人范围显眼提示;在所有由我主理的后续对话里都会看到它。我不把它自动当成系统下发的下一步动作。`
265
- : `${projectionNote}这是我给自己的显眼提示,用于保留当前对话里容易丢的工作信息;我不把它自动当成系统下发的下一步动作。`,
273
+ ? `${projectionNote}你设置了个人范围提醒项,让运行时系统在所有由你主理的后续对话里提醒你。请把它当作你的工作集提示,不要自动当成系统下发的下一步动作。`
274
+ : `${projectionNote}你设置了提醒项,让运行时系统提醒你。请把它当作用来保留当前对话里容易丢的工作信息的工作集提示,不要自动当成系统下发的下一步动作。`,
266
275
  '',
267
276
  scope === 'personal'
268
- ? '我应保持简洁、及时更新;不再需要时就删除。若它只对当前对话有效,应改写成 dialog 范围提醒而不是长期堆在个人范围里。'
269
- : '我应保持简洁、及时更新;不再需要时就删除。若后续准备换程,也可以把它整理成接续包。',
277
+ ? '你应保持简洁、及时更新;不再需要时就删除。若它只对当前对话有效,应改写成 dialog 范围提醒而不是长期堆在个人范围里。'
278
+ : '你应保持简洁、及时更新;不再需要时就删除。若后续准备换程,也可以把它整理成接续包。',
270
279
  '',
271
- `如果我要更新这条提醒项,可执行:update_reminder({ "reminder_id": "${reminderId}", "content": "..." })`,
280
+ `如果你要更新这条提醒项,可执行:update_reminder({ "reminder_id": "${reminderId}", "content": "..." })`,
272
281
  deleteInstruction,
273
282
  '',
274
283
  '---',
@@ -277,50 +286,52 @@ function formatReminderItemGuide(language, reminderId, content, options) {
277
286
  }
278
287
  if (managementTool) {
279
288
  const updateInstructionSafe = updateInstruction ?? `${managementTool}({ ... })`;
280
- return `REMINDER [${reminderId}] (TOOL STATE)
289
+ return `${systemPrefix} REMINDER [${reminderId}] (TOOL STATE)
290
+
291
+ ${enProjectionPrefix}The current runtime environment has a tool-managed state reminder from ${managementTool}. Treat it as environment/tool state, not as your self-authored work note.
281
292
 
282
- ${enProjectionPrefix}I treat this as a tool-maintained state reference. By default I should not explicitly acknowledge, restate, or summarize it in my outward reply; I should only extract the parts that materially change my current judgment, plan, or risk.
293
+ By default, do not explicitly acknowledge, restate, or summarize it in your outward reply; only extract the parts that materially change your current judgment, plan, or risk.
283
294
 
284
- This reminder is managed by tool ${managementTool}; if I need to change it, I should use ${managementTool} instead of update_reminder.
295
+ This reminder is managed by tool ${managementTool}; if you need to change it, use ${managementTool} instead of update_reminder.
285
296
 
286
- If I need to update this reminder, run: ${updateInstructionSafe}
297
+ If you need to update this reminder, run: ${updateInstructionSafe}
287
298
  ${deleteInstruction}
288
299
  ---
289
300
  ${content}`;
290
301
  }
291
302
  if (updateInstruction) {
292
- return `REMINDER [${reminderId}]
303
+ return `${systemPrefix} REMINDER [${reminderId}]
293
304
 
294
- ${enProjectionPrefix}This reminder has a meta-controlled update path. I should still treat it as state/reference, and I must not rewrite it directly with update_reminder.
305
+ ${enProjectionPrefix}The current runtime environment has a reminder with a meta-controlled update path. Treat it as state/reference, and do not rewrite it directly with update_reminder.
295
306
 
296
- If I need to update this reminder, I must not use update_reminder; follow instead: ${updateInstruction}
307
+ If you need to update this reminder, do not use update_reminder; follow instead: ${updateInstruction}
297
308
  ${deleteInstruction}
298
309
  ---
299
310
  ${content}`;
300
311
  }
301
312
  if (isContinuationPackageReminder) {
302
- return `REMINDER [${reminderId}] (CONTINUATION PACKAGE)
313
+ return `${systemPrefix} REMINDER [${reminderId}] (CONTINUATION PACKAGE)
303
314
 
304
- ${enProjectionPrefix}I treat this as resume information for the next course, not as an automatic must-do command.
315
+ ${enProjectionPrefix}You set a continuation reminder so the runtime system can remind you when work resumes in a new course. Treat it as resume information for the next course, not as an automatic must-do command.
305
316
 
306
- I should keep the next step, key pointers, run/verify info, and easy-to-lose volatile details here. I should not duplicate Taskdoc content. In the new course, my first step is to review and rewrite this with a clear head: remove redundancy, correct biased or distorted bridge notes, and compress it into a high-quality reminder. If this is only a rough bridge note, I should reconcile it early in the new course.
317
+ Keep the next step, key pointers, run/verify info, and easy-to-lose volatile details here. Do not duplicate Taskdoc content. In the new course, your first step is to review and rewrite this with a clear head: remove redundancy, correct biased or distorted bridge notes, and compress it into a high-quality reminder. If this is only a rough bridge note, reconcile it early in the new course.
307
318
 
308
- If I need to update this package, run: update_reminder({ "reminder_id": "${reminderId}", "content": "..." })
319
+ If you need to update this package, run: update_reminder({ "reminder_id": "${reminderId}", "content": "..." })
309
320
  ${deleteInstruction}
310
321
  ---
311
322
  ${content}`;
312
323
  }
313
- return `REMINDER [${reminderId}]${scope === 'personal' ? ' (PERSONAL SCOPE)' : ''}
324
+ return `${systemPrefix} REMINDER [${reminderId}]${scope === 'personal' ? ' (PERSONAL SCOPE)' : ''}
314
325
 
315
326
  ${scope === 'personal'
316
- ? `${enProjectionPrefix}This is my conspicuous personal-scope reminder. I will keep seeing it in all later dialogs I lead, and I do not treat it as an automatically assigned next action.`
317
- : `${enProjectionPrefix}This is my conspicuous self-reminder for easy-to-lose work details in the current dialog. I do not treat it as an automatically assigned next action.`}
327
+ ? `${enProjectionPrefix}You set a personal-scope reminder so the runtime system can remind you in every later dialog you lead. Treat it as your workset reference, not as an automatically assigned next action.`
328
+ : `${enProjectionPrefix}You set a reminder so the runtime system can remind you. Treat it as your workset reference for easy-to-lose work details in the current dialog, not as an automatically assigned next action.`}
318
329
 
319
330
  ${scope === 'personal'
320
- ? 'I should keep it concise, refresh it when needed, and delete it when obsolete. If it is only useful for the current dialog, I should rewrite it into dialog scope instead of letting personal scope accumulate noise.'
321
- : 'I should keep it concise, refresh it when needed, and delete it when obsolete. If I am preparing a new course, I can also rewrite it into a continuation package.'}
331
+ ? 'Keep it concise, refresh it when needed, and delete it when obsolete. If it is only useful for the current dialog, rewrite it into dialog scope instead of letting personal scope accumulate noise.'
332
+ : 'Keep it concise, refresh it when needed, and delete it when obsolete. If you are preparing a new course, you can also rewrite it into a continuation package.'}
322
333
 
323
- If I need to update this reminder, run: update_reminder({ "reminder_id": "${reminderId}", "content": "..." })
334
+ If you need to update this reminder, run: update_reminder({ "reminder_id": "${reminderId}", "content": "..." })
324
335
  ${deleteInstruction}
325
336
  ---
326
337
  ${content}`;
@@ -470,18 +481,18 @@ function formatDomindsNoteFbrToollessViolation(language, args) {
470
481
  ].join('\n');
471
482
  }
472
483
  const detail = kind === 'tellask'
473
- ? 'Detected a tellask-special invocation attempt inside an FBR sideline dialog.'
484
+ ? 'Detected a tellask-special invocation attempt inside an FBR Side Dialog.'
474
485
  : kind === 'tool'
475
- ? 'Detected a function tool call attempt inside an FBR sideline dialog.'
486
+ ? 'Detected a function tool call attempt inside an FBR Side Dialog.'
476
487
  : kind === 'tellask_and_tool'
477
- ? 'Detected both tellask-special and tool-call attempts inside an FBR sideline dialog.'
478
- : 'Internal error: cannot safely drive the FBR sideline dialog.';
488
+ ? 'Detected both tellask-special and tool-call attempts inside an FBR Side Dialog.'
489
+ : 'Internal error: cannot safely drive the FBR Side Dialog.';
479
490
  return [
480
491
  'ERR_FBR_TOOLLESS_VIOLATION',
481
- `Dominds note: this is a tool-less FBR sideline dialog (triggered by \`freshBootsReasoning\`). ${detail}`,
492
+ `Dominds note: this is a tool-less FBR Side Dialog (triggered by \`freshBootsReasoning\`). ${detail}`,
482
493
  '',
483
494
  '- No tools are available: do not emit function tool calls.',
484
495
  '- No tellask-special functions are allowed (`tellaskBack` / `tellask` / `tellaskSessionless` / `askHuman`).',
485
- '- Provide pure reasoning and a summary grounded in the tellask body (and this sideline dialog’s own tellaskSession history, if any).',
496
+ '- Provide pure reasoning and a summary grounded in the tellask body (and this Side Dialog’s own tellaskSession history, if any).',
486
497
  ].join('\n');
487
498
  }
@@ -21,7 +21,7 @@ export type InterDialogParticipants = {
21
21
  fromAgentId: string;
22
22
  toAgentId: string;
23
23
  };
24
- export type SubdialogAssignmentFormatInput = InterDialogParticipants & InterDialogCallContent & {
24
+ export type SideDialogAssignmentFormatInput = InterDialogParticipants & InterDialogCallContent & {
25
25
  language?: LanguageCode;
26
26
  collectiveTargets?: string[];
27
27
  sessionSlug?: string;
@@ -30,17 +30,18 @@ export type SubdialogAssignmentFormatInput = InterDialogParticipants & InterDial
30
30
  total: number;
31
31
  };
32
32
  };
33
- export type SupdialogCallPromptInput = {
33
+ export type AskerDialogCallPromptInput = {
34
34
  fromAgentId: string;
35
35
  toAgentId: string;
36
- subdialogRequest: InterDialogCallContent;
37
- supdialogAssignment: InterDialogCallContent;
36
+ sideDialogRequest: InterDialogCallContent;
37
+ askerDialogAssignment: InterDialogCallContent;
38
38
  language?: LanguageCode;
39
39
  };
40
40
  export type TellaskResponseFormatInput = {
41
41
  callName: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
42
+ callId: string;
42
43
  responderId: string;
43
- requesterId: string;
44
+ tellaskerId: string;
44
45
  mentionList?: string[];
45
46
  sessionSlug?: string;
46
47
  tellaskContent: string;
@@ -51,7 +52,7 @@ export type TellaskResponseFormatInput = {
51
52
  };
52
53
  export type TellaskReplacementNoticeFormatInput = {
53
54
  responderId: string;
54
- requesterId: string;
55
+ tellaskerId: string;
55
56
  mentionList?: string[];
56
57
  sessionSlug?: string;
57
58
  tellaskContent: string;
@@ -59,8 +60,9 @@ export type TellaskReplacementNoticeFormatInput = {
59
60
  language?: LanguageCode;
60
61
  };
61
62
  export type TellaskCarryoverResultFormatInput = {
62
- originCourse: number;
63
+ callSiteCourse: number;
63
64
  callName: 'tellask' | 'tellaskSessionless' | 'askHuman' | 'freshBootsReasoning';
65
+ callId: string;
64
66
  responderId: string;
65
67
  mentionList?: string[];
66
68
  sessionSlug?: string;
@@ -76,9 +78,9 @@ export type RuntimeTransferMarkers = Readonly<{
76
78
  fbrReasoningOnly: string;
77
79
  }>;
78
80
  export declare function getRuntimeTransferMarkers(language: LanguageCode): RuntimeTransferMarkers;
79
- export declare function formatAssignmentFromSupdialog(input: SubdialogAssignmentFormatInput): string;
80
- export declare function formatUpdatedAssignmentFromSupdialog(input: SubdialogAssignmentFormatInput): string;
81
- export declare function formatSupdialogCallPrompt(input: SupdialogCallPromptInput): string;
81
+ export declare function formatAssignmentFromAskerDialog(input: SideDialogAssignmentFormatInput): string;
82
+ export declare function formatUpdatedAssignmentFromAskerDialog(input: SideDialogAssignmentFormatInput): string;
83
+ export declare function formatAskerDialogCallPrompt(input: AskerDialogCallPromptInput): string;
82
84
  export declare function formatTellaskResponseContent(input: TellaskResponseFormatInput): string;
83
85
  export declare function formatTeammateResponseContent(input: TellaskResponseFormatInput): string;
84
86
  export declare function formatTellaskReplacementNoticeContent(input: TellaskReplacementNoticeFormatInput): string;
@@ -14,9 +14,9 @@
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.getRuntimeTransferMarkers = getRuntimeTransferMarkers;
17
- exports.formatAssignmentFromSupdialog = formatAssignmentFromSupdialog;
18
- exports.formatUpdatedAssignmentFromSupdialog = formatUpdatedAssignmentFromSupdialog;
19
- exports.formatSupdialogCallPrompt = formatSupdialogCallPrompt;
17
+ exports.formatAssignmentFromAskerDialog = formatAssignmentFromAskerDialog;
18
+ exports.formatUpdatedAssignmentFromAskerDialog = formatUpdatedAssignmentFromAskerDialog;
19
+ exports.formatAskerDialogCallPrompt = formatAskerDialogCallPrompt;
20
20
  exports.formatTellaskResponseContent = formatTellaskResponseContent;
21
21
  exports.formatTeammateResponseContent = formatTeammateResponseContent;
22
22
  exports.formatTellaskReplacementNoticeContent = formatTellaskReplacementNoticeContent;
@@ -75,15 +75,15 @@ function getExpectedReplyToolName(callName) {
75
75
  return undefined;
76
76
  }
77
77
  }
78
- function buildSubdialogRoleHeader(input) {
78
+ function buildSideDialogRoleHeader(input) {
79
79
  if (input.callName === 'freshBootsReasoning') {
80
80
  return '';
81
81
  }
82
- const requesterId = requireNonEmpty(input.fromAgentId, 'fromAgentId');
82
+ const tellaskerId = requireNonEmpty(input.fromAgentId, 'fromAgentId');
83
83
  const expectedReplyTool = getExpectedReplyToolName(input.callName);
84
- return (0, reply_prompt_copy_1.buildSubdialogRoleHeaderCopy)({
84
+ return (0, reply_prompt_copy_1.buildSideDialogRoleHeaderCopy)({
85
85
  language: input.language,
86
- requesterId,
86
+ tellaskerId,
87
87
  expectedReplyTool,
88
88
  });
89
89
  }
@@ -112,13 +112,36 @@ function formatQuotedRequestBlock(args) {
112
112
  lines.push((0, markdown_format_1.markdownQuote)(requireNonEmpty(args.body, 'body')));
113
113
  return lines.join('\n');
114
114
  }
115
- function formatAssignmentFromSupdialog(input) {
115
+ function formatTellaskStatusFootnote(args) {
116
+ const callId = requireNonEmpty(args.callId, 'callId');
117
+ if (args.language === 'zh') {
118
+ const explanation = args.crossCourse === true
119
+ ? '这是前序诉请的跨程回贴事实,不是新的用户请求,也不是当前程新发起的函数调用。'
120
+ : '这是前序诉请的回贴事实,不是新的用户请求,也不是当前程新发起的函数调用。';
121
+ return [
122
+ '[Dominds 诉请状态]',
123
+ `- 函数: \`${args.callName}\``,
124
+ `- callId: ${callId}`,
125
+ `- 说明: ${explanation}`,
126
+ ].join('\n');
127
+ }
128
+ const explanation = args.crossCourse === true
129
+ ? 'This is a cross-course reply fact for an earlier tellask, not a new user request or a newly initiated function call in the current course.'
130
+ : 'This is a reply fact for an earlier tellask, not a new user request or a newly initiated function call in the current course.';
131
+ return [
132
+ '[Dominds tellask status]',
133
+ `- Function: \`${args.callName}\``,
134
+ `- callId: ${callId}`,
135
+ `- Note: ${explanation}`,
136
+ ].join('\n');
137
+ }
138
+ function formatAssignmentFromAskerDialog(input) {
116
139
  const language = input.language ?? 'en';
117
140
  const runtimeMarkers = getRuntimeTransferMarkers(language);
118
141
  requireNonEmpty(input.toAgentId, 'toAgentId');
119
142
  requireNonEmpty(input.fromAgentId, 'fromAgentId');
120
143
  const tellaskContent = requireNonEmpty(input.tellaskContent, 'tellaskContent');
121
- const roleHeader = buildSubdialogRoleHeader({
144
+ const roleHeader = buildSideDialogRoleHeader({
122
145
  callName: input.callName,
123
146
  fromAgentId: input.fromAgentId,
124
147
  language,
@@ -149,7 +172,7 @@ function formatAssignmentFromSupdialog(input) {
149
172
  : [
150
173
  '# Fresh Boots Reasoning (FBR) request',
151
174
  '',
152
- '- Constraint: this is a self-tellask FBR sideline dialog; reason independently and produce conclusions.',
175
+ '- Constraint: this is a self-tellask FBR Side Dialog; reason independently and produce conclusions.',
153
176
  '- System rule: this FBR stage is still tool-less; do not emit any function call in this stage.',
154
177
  '- Only after the planned divergence and convergence rounds are complete will runtime expose the two conclusion functions for formal closure.',
155
178
  '- Protocol: reply markers are auto-injected by Dominds runtime; do not hand-write markers.',
@@ -179,23 +202,23 @@ function formatAssignmentFromSupdialog(input) {
179
202
  body: tellaskContent,
180
203
  })}\n`;
181
204
  }
182
- function formatUpdatedAssignmentFromSupdialog(input) {
205
+ function formatUpdatedAssignmentFromAskerDialog(input) {
183
206
  const language = input.language ?? 'en';
184
207
  return [
185
- (0, driver_messages_1.formatRegisteredTellaskCalleeUpdateNotice)(language),
208
+ (0, driver_messages_1.formatRegisteredTellaskTellaskeeUpdateNotice)(language),
186
209
  '',
187
210
  '---',
188
211
  '',
189
- formatAssignmentFromSupdialog(input).trimEnd(),
212
+ formatAssignmentFromAskerDialog(input).trimEnd(),
190
213
  '',
191
214
  ].join('\n');
192
215
  }
193
- function formatSupdialogCallPrompt(input) {
216
+ function formatAskerDialogCallPrompt(input) {
194
217
  const language = input.language ?? 'en';
195
218
  const supMention = (() => {
196
- if (input.supdialogAssignment.callName === 'tellask' ||
197
- input.supdialogAssignment.callName === 'tellaskSessionless') {
198
- return requireMentionLine(input.supdialogAssignment.mentionList ?? []);
219
+ if (input.askerDialogAssignment.callName === 'tellask' ||
220
+ input.askerDialogAssignment.callName === 'tellaskSessionless') {
221
+ return requireMentionLine(input.askerDialogAssignment.mentionList ?? []);
199
222
  }
200
223
  return '';
201
224
  })();
@@ -203,9 +226,9 @@ function formatSupdialogCallPrompt(input) {
203
226
  const toAgentId = requireNonEmpty(input.toAgentId, 'toAgentId');
204
227
  const askBackLabel = (0, tellask_labels_1.getTellaskKindLabel)({ language, name: 'tellaskBack', bracketed: true });
205
228
  const subMention = (() => {
206
- if (input.subdialogRequest.callName === 'tellask' ||
207
- input.subdialogRequest.callName === 'tellaskSessionless') {
208
- return requireMentionLine(input.subdialogRequest.mentionList ?? []);
229
+ if (input.sideDialogRequest.callName === 'tellask' ||
230
+ input.sideDialogRequest.callName === 'tellaskSessionless') {
231
+ return requireMentionLine(input.sideDialogRequest.mentionList ?? []);
209
232
  }
210
233
  return '';
211
234
  })();
@@ -220,13 +243,13 @@ function formatSupdialogCallPrompt(input) {
220
243
  formatQuotedRequestBlock({
221
244
  title: originalTitle,
222
245
  mentionLine: supMention,
223
- body: requireNonEmpty(input.supdialogAssignment.tellaskContent, 'assignmentTellaskContent'),
246
+ body: requireNonEmpty(input.askerDialogAssignment.tellaskContent, 'assignmentTellaskContent'),
224
247
  }),
225
248
  '',
226
249
  formatQuotedRequestBlock({
227
250
  title: askBackTitle,
228
251
  mentionLine: subMention,
229
- body: requireNonEmpty(input.subdialogRequest.tellaskContent, 'requestTellaskContent'),
252
+ body: requireNonEmpty(input.sideDialogRequest.tellaskContent, 'requestTellaskContent'),
230
253
  }),
231
254
  '',
232
255
  ].join('\n');
@@ -239,12 +262,17 @@ function formatTellaskResponseContent(input) {
239
262
  const markerPrefix = marker ? `${marker}\n\n` : '';
240
263
  const deliveryNotice = input.deliveryMode === 'direct_fallback'
241
264
  ? language === 'zh'
242
- ? '> 系统提示:本次回贴未调用 replyTellask* 工具,当前按“直接回复 fallback”投递;请留意这只是过渡期兼容路径。\n\n'
243
- : '> System note: this reply did not use a replyTellask* tool. It is being delivered via direct-reply fallback for now; treat this as a temporary compatibility path.\n\n'
265
+ ? '> 系统提示:本次回贴未调用 replyTellask* 工具,Dominds 已按 direct-reply fallback 投递,并保留此标记便于追踪。\n\n'
266
+ : '> System note: this reply did not use a replyTellask* tool. Dominds delivered it via direct-reply fallback and kept this marker for traceability.\n\n'
244
267
  : '';
245
268
  if (isFbr) {
246
- const title = language === 'zh' ? '【扪心自问(FBR)支线对话回贴】' : '[FBR sideline response]';
247
- return `${markerPrefix}${deliveryNotice}${title}\n\n${input.responseBody}\n`;
269
+ const title = language === 'zh' ? '【扪心自问(FBR)支线对话回贴】' : '[FBR Side Dialog response]';
270
+ const statusFootnote = formatTellaskStatusFootnote({
271
+ language,
272
+ callName: input.callName,
273
+ callId: input.callId,
274
+ });
275
+ return `${markerPrefix}${deliveryNotice}${title}\n\n${input.responseBody}\n\n${statusFootnote}\n`;
248
276
  }
249
277
  if (input.callName !== 'tellask' &&
250
278
  input.callName !== 'tellaskSessionless' &&
@@ -256,7 +284,7 @@ function formatTellaskResponseContent(input) {
256
284
  .map((item) => stripMentionPrefix(item))
257
285
  .filter((item) => item !== '');
258
286
  if (mentionIds.length === 0) {
259
- return `@${requireNonEmpty(input.requesterId, 'requesterId')}`;
287
+ return `@${requireNonEmpty(input.tellaskerId, 'tellaskerId')}`;
260
288
  }
261
289
  return mentionIds.map((mentionId) => `@${mentionId}`).join(' ');
262
290
  })();
@@ -271,7 +299,12 @@ function formatTellaskResponseContent(input) {
271
299
  : sessionSlug === ''
272
300
  ? `regarding the original tellask: ${mentionLine}`
273
301
  : `regarding the original tellask: ${mentionLine} • ${sessionSlug}`;
274
- return `${markerPrefix}${deliveryNotice}${hello}\n\n${(0, markdown_format_1.markdownQuote)(input.responseBody)}\n\n${tail}\n\n${(0, markdown_format_1.markdownQuote)(tellaskContent)}\n`;
302
+ const statusFootnote = formatTellaskStatusFootnote({
303
+ language,
304
+ callName: input.callName,
305
+ callId: input.callId,
306
+ });
307
+ return `${markerPrefix}${deliveryNotice}${hello}\n\n${(0, markdown_format_1.markdownQuote)(input.responseBody)}\n\n${tail}\n\n${(0, markdown_format_1.markdownQuote)(tellaskContent)}\n\n${statusFootnote}\n`;
275
308
  }
276
309
  function formatTeammateResponseContent(input) {
277
310
  return formatTellaskResponseContent(input);
@@ -284,7 +317,7 @@ function formatTellaskReplacementNoticeContent(input) {
284
317
  .map((item) => stripMentionPrefix(item))
285
318
  .filter((item) => item !== '');
286
319
  const mentionLine = mentionIds.length === 0
287
- ? `@${requireNonEmpty(input.requesterId, 'requesterId')}`
320
+ ? `@${requireNonEmpty(input.tellaskerId, 'tellaskerId')}`
288
321
  : mentionIds.map((mentionId) => `@${mentionId}`).join(' ');
289
322
  const sessionSlug = input.sessionSlug?.trim() ?? '';
290
323
  const tail = language === 'zh'
@@ -328,11 +361,17 @@ function formatTellaskCarryoverResultContent(input) {
328
361
  ? `- 对象: ${mentionLine}`
329
362
  : `- Target: ${mentionLine}`;
330
363
  if (language === 'zh') {
364
+ const statusFootnote = formatTellaskStatusFootnote({
365
+ language,
366
+ callName: input.callName,
367
+ callId: input.callId,
368
+ crossCourse: true,
369
+ });
331
370
  const lines = [
332
371
  '### 旧程诉请结果补入',
333
372
  '',
334
- `- 来源程: C${String(Math.floor(input.originCourse))}`,
335
- `- 响应者: @${requireNonEmpty(input.responderId, 'responderId')}`,
373
+ `- 调用点程: C${String(Math.floor(input.callSiteCourse))}`,
374
+ `- 被诉请者: @${requireNonEmpty(input.responderId, 'responderId')}`,
336
375
  `- 状态: ${statusLabel}`,
337
376
  targetLine,
338
377
  sessionLine,
@@ -345,16 +384,22 @@ function formatTellaskCarryoverResultContent(input) {
345
384
  '',
346
385
  (0, markdown_format_1.markdownQuote)(responseBody),
347
386
  '',
348
- '注意:这不是新的用户请求,也不是当前程新发起的函数调用,而是旧 pending tellask 的异步完成结果。',
387
+ statusFootnote,
349
388
  '',
350
389
  ];
351
390
  return lines.join('\n');
352
391
  }
392
+ const statusFootnote = formatTellaskStatusFootnote({
393
+ language,
394
+ callName: input.callName,
395
+ callId: input.callId,
396
+ crossCourse: true,
397
+ });
353
398
  const lines = [
354
399
  '### Carry-over tellask result',
355
400
  '',
356
- `- Origin course: C${String(Math.floor(input.originCourse))}`,
357
- `- Responder: @${requireNonEmpty(input.responderId, 'responderId')}`,
401
+ `- Call-site course: C${String(Math.floor(input.callSiteCourse))}`,
402
+ `- Tellaskee: @${requireNonEmpty(input.responderId, 'responderId')}`,
358
403
  `- Status: ${statusLabel}`,
359
404
  targetLine,
360
405
  sessionLine,
@@ -367,7 +412,7 @@ function formatTellaskCarryoverResultContent(input) {
367
412
  '',
368
413
  (0, markdown_format_1.markdownQuote)(responseBody),
369
414
  '',
370
- 'Note: this is not a new user request or a newly initiated function call in the current course; it is the canonical current-course carryover of an older pending tellask completion.',
415
+ statusFootnote,
371
416
  '',
372
417
  ];
373
418
  return lines.join('\n');
@@ -17,7 +17,7 @@ const USER_INTERJECTION_PAUSE_STOP_DETAIL = 'user_interjection_pause_resume_orig
17
17
  // this paused-original-task stop semantics.
18
18
  //
19
19
  // Do not change this file in isolation. The complete behavior depends on coordinated logic across:
20
- // - `reply-guidance.ts` suppressing upstream reply obligation during interjection chat
20
+ // - `reply-guidance.ts` suppressing tellasker reply obligation during interjection chat
21
21
  // - `flow.ts` parking after the local reply, then re-running fresh-fact resume
22
22
  // - `dialog-display-state.ts` preserving this paused projection until explicit Continue
23
23
  // - `websocket-handler.ts` treating Continue as "resume attempt" rather than immediate success
@@ -15,10 +15,14 @@ export declare function buildActiveReplyToolNote(args: {
15
15
  language: LanguageCode;
16
16
  toolName: 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack';
17
17
  }): string;
18
- export declare function buildSidelineCompletionRule(language: LanguageCode): string;
19
- export declare function buildSubdialogRoleHeaderCopy(args: {
18
+ export declare function buildActiveReplyObligationContextText(args: {
20
19
  language: LanguageCode;
21
- requesterId: string;
20
+ directive: TellaskReplyDirective;
21
+ }): string;
22
+ export declare function buildSideDialogCompletionRule(language: LanguageCode): string;
23
+ export declare function buildSideDialogRoleHeaderCopy(args: {
24
+ language: LanguageCode;
25
+ tellaskerId: string;
22
26
  expectedReplyTool?: 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack' | undefined;
23
27
  }): string;
24
28
  export declare function buildReplyObligationSuppressionGuideText(language: LanguageCode): string;