dominds 0.5.0 → 0.6.0

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 (157) hide show
  1. package/README.md +5 -0
  2. package/README.zh.md +6 -1
  3. package/dist/dialog.js +18 -0
  4. package/dist/docs/OEC-philosophy.md +2 -0
  5. package/dist/docs/OEC-philosophy.zh.md +2 -0
  6. package/dist/docs/auth.md +2 -0
  7. package/dist/docs/auth.zh.md +2 -0
  8. package/dist/docs/cli-usage.md +2 -0
  9. package/dist/docs/cli-usage.zh.md +2 -0
  10. package/dist/docs/context-health.md +2 -0
  11. package/dist/docs/context-health.zh.md +2 -0
  12. package/dist/docs/design.md +2 -0
  13. package/dist/docs/design.zh.md +2 -0
  14. package/dist/docs/dialog-persistence.md +2 -0
  15. package/dist/docs/dialog-persistence.zh.md +2 -0
  16. package/dist/docs/dialog-system.md +2 -0
  17. package/dist/docs/dialog-system.zh.md +2 -0
  18. package/dist/docs/diligence-push.md +2 -0
  19. package/dist/docs/diligence-push.zh.md +2 -0
  20. package/dist/docs/dominds-agent-priming.md +154 -0
  21. package/dist/docs/dominds-agent-priming.zh.md +143 -0
  22. package/dist/docs/encapsulated-taskdoc.md +2 -0
  23. package/dist/docs/encapsulated-taskdoc.zh.md +2 -0
  24. package/dist/docs/fbr.md +2 -2
  25. package/dist/docs/fbr.zh.md +2 -2
  26. package/dist/docs/i18n.md +2 -0
  27. package/dist/docs/i18n.zh.md +2 -0
  28. package/dist/docs/interruption-resumption.md +2 -0
  29. package/dist/docs/interruption-resumption.zh.md +2 -0
  30. package/dist/docs/keep-going.zh.md +162 -0
  31. package/dist/docs/mcp-support.md +2 -0
  32. package/dist/docs/mcp-support.zh.md +2 -0
  33. package/dist/docs/memory-system.md +138 -138
  34. package/dist/docs/memory-system.zh.md +137 -137
  35. package/dist/docs/mottos.md +2 -0
  36. package/dist/docs/mottos.zh.md +2 -0
  37. package/dist/docs/q4h.md +2 -0
  38. package/dist/docs/q4h.zh.md +2 -0
  39. package/dist/docs/roadmap.md +85 -0
  40. package/dist/docs/roadmap.zh.md +85 -0
  41. package/dist/docs/showing-by-doing.md +208 -0
  42. package/dist/docs/showing-by-doing.zh.md +177 -0
  43. package/dist/docs/team-mgmt-toolset.md +2 -0
  44. package/dist/docs/team-mgmt-toolset.zh.md +2 -0
  45. package/dist/docs/txt-editing-tools.md +2 -0
  46. package/dist/docs/txt-editing-tools.zh.md +2 -0
  47. package/dist/llm/driver.js +100 -42
  48. package/dist/llm/gen/anthropic.js +3 -1
  49. package/dist/llm/gen/codex.js +1 -0
  50. package/dist/llm/gen/mock.js +2 -0
  51. package/dist/llm/gen/openai-compatible.js +1 -0
  52. package/dist/llm/gen/openai.js +1 -0
  53. package/dist/minds/system-prompt.js +8 -4
  54. package/dist/persistence.js +50 -0
  55. package/dist/server/api-routes.js +52 -2
  56. package/dist/server/websocket-handler.js +13 -0
  57. package/dist/shared/utils/inter-dialog-format.js +5 -3
  58. package/dist/showing-by-doing.js +1091 -0
  59. package/dist/snippets/README.en.md +3 -0
  60. package/dist/static/assets/{_baseUniq-ChrHXdwj.js → _baseUniq-CpmoaIMo.js} +2 -2
  61. package/dist/static/assets/{_baseUniq-ChrHXdwj.js.map → _baseUniq-CpmoaIMo.js.map} +1 -1
  62. package/dist/static/assets/{arc-D-gBnAK_.js → arc-DfJ83cYY.js} +2 -2
  63. package/dist/static/assets/{arc-D-gBnAK_.js.map → arc-DfJ83cYY.js.map} +1 -1
  64. package/dist/static/assets/{architectureDiagram-VXUJARFQ-CvZLFOLE.js → architectureDiagram-VXUJARFQ-CS3hogoi.js} +6 -6
  65. package/dist/static/assets/{architectureDiagram-VXUJARFQ-CvZLFOLE.js.map → architectureDiagram-VXUJARFQ-CS3hogoi.js.map} +1 -1
  66. package/dist/static/assets/{blockDiagram-VD42YOAC-B5MGDpyM.js → blockDiagram-VD42YOAC-Cy7cUCcT.js} +7 -7
  67. package/dist/static/assets/{blockDiagram-VD42YOAC-B5MGDpyM.js.map → blockDiagram-VD42YOAC-Cy7cUCcT.js.map} +1 -1
  68. package/dist/static/assets/{c4Diagram-YG6GDRKO-C1BCeeMi.js → c4Diagram-YG6GDRKO-BZGMy5fJ.js} +3 -3
  69. package/dist/static/assets/{c4Diagram-YG6GDRKO-C1BCeeMi.js.map → c4Diagram-YG6GDRKO-BZGMy5fJ.js.map} +1 -1
  70. package/dist/static/assets/{channel-xeOl4QRU.js → channel-B2qLXPmT.js} +2 -2
  71. package/dist/static/assets/{channel-xeOl4QRU.js.map → channel-B2qLXPmT.js.map} +1 -1
  72. package/dist/static/assets/{chunk-4BX2VUAB-CJ_ZHMpo.js → chunk-4BX2VUAB-BXCjFvfq.js} +2 -2
  73. package/dist/static/assets/{chunk-4BX2VUAB-CJ_ZHMpo.js.map → chunk-4BX2VUAB-BXCjFvfq.js.map} +1 -1
  74. package/dist/static/assets/{chunk-55IACEB6-DvlJBw40.js → chunk-55IACEB6-D40UbVtI.js} +2 -2
  75. package/dist/static/assets/{chunk-55IACEB6-DvlJBw40.js.map → chunk-55IACEB6-D40UbVtI.js.map} +1 -1
  76. package/dist/static/assets/{chunk-B4BG7PRW-CaDxZu9n.js → chunk-B4BG7PRW-Ap0xoc4g.js} +5 -5
  77. package/dist/static/assets/{chunk-B4BG7PRW-CaDxZu9n.js.map → chunk-B4BG7PRW-Ap0xoc4g.js.map} +1 -1
  78. package/dist/static/assets/{chunk-DI55MBZ5-CcIFjFNU.js → chunk-DI55MBZ5-BUw_o642.js} +4 -4
  79. package/dist/static/assets/{chunk-DI55MBZ5-CcIFjFNU.js.map → chunk-DI55MBZ5-BUw_o642.js.map} +1 -1
  80. package/dist/static/assets/{chunk-FMBD7UC4-CA4Mc-hN.js → chunk-FMBD7UC4-15SP1drI.js} +2 -2
  81. package/dist/static/assets/{chunk-FMBD7UC4-CA4Mc-hN.js.map → chunk-FMBD7UC4-15SP1drI.js.map} +1 -1
  82. package/dist/static/assets/{chunk-QN33PNHL-Dfow9JJJ.js → chunk-QN33PNHL-esRQTIZP.js} +2 -2
  83. package/dist/static/assets/{chunk-QN33PNHL-Dfow9JJJ.js.map → chunk-QN33PNHL-esRQTIZP.js.map} +1 -1
  84. package/dist/static/assets/{chunk-QZHKN3VN-CXHMIj1U.js → chunk-QZHKN3VN-72Dk00x0.js} +2 -2
  85. package/dist/static/assets/{chunk-QZHKN3VN-CXHMIj1U.js.map → chunk-QZHKN3VN-72Dk00x0.js.map} +1 -1
  86. package/dist/static/assets/{chunk-TZMSLE5B-B2zZjG6V.js → chunk-TZMSLE5B-BJS5YoPO.js} +2 -2
  87. package/dist/static/assets/{chunk-TZMSLE5B-B2zZjG6V.js.map → chunk-TZMSLE5B-BJS5YoPO.js.map} +1 -1
  88. package/dist/static/assets/{classDiagram-2ON5EDUG-BHFGYTLW.js → classDiagram-2ON5EDUG-ama2RyKt.js} +6 -6
  89. package/dist/static/assets/{classDiagram-2ON5EDUG-BHFGYTLW.js.map → classDiagram-2ON5EDUG-ama2RyKt.js.map} +1 -1
  90. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-BHFGYTLW.js → classDiagram-v2-WZHVMYZB-ama2RyKt.js} +6 -6
  91. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-BHFGYTLW.js.map → classDiagram-v2-WZHVMYZB-ama2RyKt.js.map} +1 -1
  92. package/dist/static/assets/{clone-Coy4bynv.js → clone-CEStzIEJ.js} +2 -2
  93. package/dist/static/assets/{clone-Coy4bynv.js.map → clone-CEStzIEJ.js.map} +1 -1
  94. package/dist/static/assets/{cose-bilkent-S5V4N54A-DRYo_3qe.js → cose-bilkent-S5V4N54A-DvG_gaNr.js} +2 -2
  95. package/dist/static/assets/{cose-bilkent-S5V4N54A-DRYo_3qe.js.map → cose-bilkent-S5V4N54A-DvG_gaNr.js.map} +1 -1
  96. package/dist/static/assets/{dagre-6UL2VRFP-BqYyWOc_.js → dagre-6UL2VRFP-BLLeQfN7.js} +7 -7
  97. package/dist/static/assets/{dagre-6UL2VRFP-BqYyWOc_.js.map → dagre-6UL2VRFP-BLLeQfN7.js.map} +1 -1
  98. package/dist/static/assets/{diagram-PSM6KHXK-D9C4Xm7u.js → diagram-PSM6KHXK-CiQUKiSQ.js} +7 -7
  99. package/dist/static/assets/{diagram-PSM6KHXK-D9C4Xm7u.js.map → diagram-PSM6KHXK-CiQUKiSQ.js.map} +1 -1
  100. package/dist/static/assets/{diagram-QEK2KX5R-BGA1mjhE.js → diagram-QEK2KX5R-Cumwavr8.js} +6 -6
  101. package/dist/static/assets/{diagram-QEK2KX5R-BGA1mjhE.js.map → diagram-QEK2KX5R-Cumwavr8.js.map} +1 -1
  102. package/dist/static/assets/{diagram-S2PKOQOG-1GAmE_Cz.js → diagram-S2PKOQOG-DfNKPbo-.js} +6 -6
  103. package/dist/static/assets/{diagram-S2PKOQOG-1GAmE_Cz.js.map → diagram-S2PKOQOG-DfNKPbo-.js.map} +1 -1
  104. package/dist/static/assets/{erDiagram-Q2GNP2WA-CJKyDxP1.js → erDiagram-Q2GNP2WA-D0uRhAGb.js} +5 -5
  105. package/dist/static/assets/{erDiagram-Q2GNP2WA-CJKyDxP1.js.map → erDiagram-Q2GNP2WA-D0uRhAGb.js.map} +1 -1
  106. package/dist/static/assets/{flowDiagram-NV44I4VS-BxSapwL0.js → flowDiagram-NV44I4VS-DYdwbihk.js} +6 -6
  107. package/dist/static/assets/{flowDiagram-NV44I4VS-BxSapwL0.js.map → flowDiagram-NV44I4VS-DYdwbihk.js.map} +1 -1
  108. package/dist/static/assets/{ganttDiagram-JELNMOA3-DACeIRlM.js → ganttDiagram-JELNMOA3-B5uGOn1N.js} +3 -3
  109. package/dist/static/assets/{ganttDiagram-JELNMOA3-DACeIRlM.js.map → ganttDiagram-JELNMOA3-B5uGOn1N.js.map} +1 -1
  110. package/dist/static/assets/{gitGraphDiagram-NY62KEGX-CK5SwuYC.js → gitGraphDiagram-NY62KEGX-Oc3oOKiS.js} +7 -7
  111. package/dist/static/assets/{gitGraphDiagram-NY62KEGX-CK5SwuYC.js.map → gitGraphDiagram-NY62KEGX-Oc3oOKiS.js.map} +1 -1
  112. package/dist/static/assets/{graph-CSZdGrhT.js → graph-CsabhqEi.js} +3 -3
  113. package/dist/static/assets/{graph-CSZdGrhT.js.map → graph-CsabhqEi.js.map} +1 -1
  114. package/dist/static/assets/{index-DuKzfkSC.js → index-CfaquUkU.js} +346 -52
  115. package/dist/static/assets/index-CfaquUkU.js.map +1 -0
  116. package/dist/static/assets/{infoDiagram-WHAUD3N6-BtVJQfl3.js → infoDiagram-WHAUD3N6-DrhpU5D2.js} +5 -5
  117. package/dist/static/assets/{infoDiagram-WHAUD3N6-BtVJQfl3.js.map → infoDiagram-WHAUD3N6-DrhpU5D2.js.map} +1 -1
  118. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-BvpZol5r.js → journeyDiagram-XKPGCS4Q-BvHx2Zb6.js} +5 -5
  119. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-BvpZol5r.js.map → journeyDiagram-XKPGCS4Q-BvHx2Zb6.js.map} +1 -1
  120. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BG3iVFm8.js → kanban-definition-3W4ZIXB7-CVIVr87P.js} +3 -3
  121. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BG3iVFm8.js.map → kanban-definition-3W4ZIXB7-CVIVr87P.js.map} +1 -1
  122. package/dist/static/assets/{layout-WFOf-4zz.js → layout-Cyi7AY0P.js} +5 -5
  123. package/dist/static/assets/{layout-WFOf-4zz.js.map → layout-Cyi7AY0P.js.map} +1 -1
  124. package/dist/static/assets/{linear-D5i_tnpd.js → linear-CNMZZ9Q3.js} +2 -2
  125. package/dist/static/assets/{linear-D5i_tnpd.js.map → linear-CNMZZ9Q3.js.map} +1 -1
  126. package/dist/static/assets/{min-Cse0H7zt.js → min-zA3pn88k.js} +3 -3
  127. package/dist/static/assets/{min-Cse0H7zt.js.map → min-zA3pn88k.js.map} +1 -1
  128. package/dist/static/assets/{mindmap-definition-VGOIOE7T-e9Wemovg.js → mindmap-definition-VGOIOE7T-CDoN9L2P.js} +4 -4
  129. package/dist/static/assets/{mindmap-definition-VGOIOE7T-e9Wemovg.js.map → mindmap-definition-VGOIOE7T-CDoN9L2P.js.map} +1 -1
  130. package/dist/static/assets/{pieDiagram-ADFJNKIX-C8znCjo7.js → pieDiagram-ADFJNKIX-DDqyS0g6.js} +7 -7
  131. package/dist/static/assets/{pieDiagram-ADFJNKIX-C8znCjo7.js.map → pieDiagram-ADFJNKIX-DDqyS0g6.js.map} +1 -1
  132. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-khTIt_Bj.js → quadrantDiagram-AYHSOK5B-DroeWtc0.js} +3 -3
  133. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-khTIt_Bj.js.map → quadrantDiagram-AYHSOK5B-DroeWtc0.js.map} +1 -1
  134. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-9zksTyjz.js → requirementDiagram-UZGBJVZJ-DF6-86F6.js} +4 -4
  135. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-9zksTyjz.js.map → requirementDiagram-UZGBJVZJ-DF6-86F6.js.map} +1 -1
  136. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DU4rgKmO.js → sankeyDiagram-TZEHDZUN-BjmHa_82.js} +2 -2
  137. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DU4rgKmO.js.map → sankeyDiagram-TZEHDZUN-BjmHa_82.js.map} +1 -1
  138. package/dist/static/assets/{sequenceDiagram-WL72ISMW-DJS_M53b.js → sequenceDiagram-WL72ISMW-C050gV-9.js} +4 -4
  139. package/dist/static/assets/{sequenceDiagram-WL72ISMW-DJS_M53b.js.map → sequenceDiagram-WL72ISMW-C050gV-9.js.map} +1 -1
  140. package/dist/static/assets/{stateDiagram-FKZM4ZOC-CBtGDTNm.js → stateDiagram-FKZM4ZOC-CbLw-EmI.js} +9 -9
  141. package/dist/static/assets/{stateDiagram-FKZM4ZOC-CBtGDTNm.js.map → stateDiagram-FKZM4ZOC-CbLw-EmI.js.map} +1 -1
  142. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-BGPOViUF.js → stateDiagram-v2-4FDKWEC3-BldhQIZ7.js} +5 -5
  143. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-BGPOViUF.js.map → stateDiagram-v2-4FDKWEC3-BldhQIZ7.js.map} +1 -1
  144. package/dist/static/assets/{timeline-definition-IT6M3QCI-CwKy3Tez.js → timeline-definition-IT6M3QCI-DJ1iybP_.js} +3 -3
  145. package/dist/static/assets/{timeline-definition-IT6M3QCI-CwKy3Tez.js.map → timeline-definition-IT6M3QCI-DJ1iybP_.js.map} +1 -1
  146. package/dist/static/assets/{treemap-KMMF4GRG-CViCy7_-.js → treemap-KMMF4GRG-CqsakBW5.js} +4 -4
  147. package/dist/static/assets/{treemap-KMMF4GRG-CViCy7_-.js.map → treemap-KMMF4GRG-CqsakBW5.js.map} +1 -1
  148. package/dist/static/assets/{xychartDiagram-PRI3JC2R-fAdBWJe2.js → xychartDiagram-PRI3JC2R-BxNS-hP3.js} +3 -3
  149. package/dist/static/assets/{xychartDiagram-PRI3JC2R-fAdBWJe2.js.map → xychartDiagram-PRI3JC2R-BxNS-hP3.js.map} +1 -1
  150. package/dist/static/index.html +1 -1
  151. package/dist/tools/context-health.js +7 -7
  152. package/dist/utils/task-doc.js +16 -16
  153. package/package.json +1 -1
  154. package/dist/minds/builtin/cmdr/persona.md +0 -3
  155. package/dist/minds/builtin/dijiang/knowledge.md +0 -287
  156. package/dist/minds/builtin/dijiang/persona.md +0 -7
  157. package/dist/static/assets/index-DuKzfkSC.js.map +0 -1
package/README.md CHANGED
@@ -227,14 +227,19 @@ Result: fewer bad side effects, higher plan fidelity, and more first‑try succe
227
227
  - **[Terminology](docs/dominds-terminology.md)** — Canonical vocabulary across prompts and implementation docs (Taskdoc, Teammate Tellask, etc.)
228
228
  - **[Memory System](docs/memory-system.md)** — The hierarchical memory system
229
229
  - **[CLI Usage Guide](docs/cli-usage.md)** — Commands, options, and usage patterns
230
+ - **[Q4H](docs/q4h.md)** — Questions for Human (`!?@human`) mechanism and WebUI support
230
231
  - **[MCP Support](docs/mcp-support.md)** — MCP tool integration
231
232
  - **[Encapsulated Taskdocs](docs/encapsulated-taskdoc.md)** — `*.tsk/` Taskdoc packages and parsing
233
+ - **[FBR](docs/fbr.md)** — Fresh Boots Reasoning (`!?@self`) design and enhancements
232
234
  - **[Context Health](docs/context-health.md)** — Measuring/maintaining context quality
233
235
  - **[Diligence Push](docs/diligence-push.md)** — Auto-continue (diligence) mechanism
236
+ - **[Showing-by-Doing](docs/showing-by-doing.md)** — A dialog-creation prelude that makes Tellask feel real
234
237
  - **[Design](docs/design.md)** — Architecture and key abstractions
238
+ - **[Roadmap](docs/roadmap.md)** — Major-version plan and evolution
235
239
  - **[OEC Philosophy](docs/OEC-philosophy.md)** — Philosophy and safety stance
236
240
 
237
241
  - **[Team Mgmt Toolset](docs/team-mgmt-toolset.md)** — Managing team members via tools
242
+ - **[Text Editing Tools (ws_mod)](docs/txt-editing-tools.md)** — `ws_mod` toolset design doc (as implemented)
238
243
  - **[i18n](docs/i18n.md)** — Language and localization rules
239
244
  - **[Dialog System](docs/dialog-system.md)** — Dialog runtime model and streaming
240
245
  - **[Dialog Persistence](docs/dialog-persistence.md)** — On-disk layout and lifecycle
package/README.zh.md CHANGED
@@ -138,14 +138,19 @@ Dominds 面向“长期开发运作(DevOps)”场景设计,基于社会化
138
138
  - **[Terminology](docs/dominds-terminology.md)** — Dominds 专有术语
139
139
  - **[Memory System](docs/memory-system.zh.md)** — 分层记忆系统
140
140
  - **[CLI Usage Guide](docs/cli-usage.zh.md)** — 命令行工具及使用方法
141
+ - **[Q4H](docs/q4h.zh.md)** — 向人类提问(`!?@human`)机制与 WebUI 支持
141
142
  - **[MCP Support](docs/mcp-support.zh.md)** — MCP 工具集成指南
142
143
  - **[Encapsulated Taskdocs](docs/encapsulated-taskdoc.zh.md)** — 差遣牒(Taskdoc)封装
144
+ - **[FBR](docs/fbr.zh.md)** — 扪心自问(`!?@self`)机制设计与增强
143
145
  - **[Context Health](docs/context-health.zh.md)** — 上下文健康维护
144
- - **[鞭策](docs/diligence-push.zh.md)** — 鞭策机制
146
+ - **[Diligence Push](docs/diligence-push.zh.md)** — 鞭策机制
147
+ - **[Showing-by-Doing](docs/showing-by-doing.zh.md)** — “做给祂看”:对话创建时建立诉请机制体感
145
148
  - **[Design](docs/design.zh.md)** — Dominds 架构设计与核心抽象
149
+ - **[Roadmap](docs/roadmap.zh.md)** — 发展规划与版本演进方向
146
150
  - **[OEC Philosophy](docs/OEC-philosophy.zh.md)** — 全方位优化管理法
147
151
 
148
152
  - **[Team Mgmt Toolset](docs/team-mgmt-toolset.zh.md)** — 团队管理工具集
153
+ - **[Text Editing Tools (ws_mod)](docs/txt-editing-tools.zh.md)** — 文本编辑工具集设计文档(以当前实现为准)
149
154
  - **[i18n](docs/i18n.zh.md)** — 语言支持与本地化配置
150
155
  - **[Dialog System](docs/dialog-system.zh.md)** — 对话系统与流式事件
151
156
  - **[Dialog Persistence](docs/dialog-persistence.zh.md)** — 磁盘持久化存储结构
package/dist/dialog.js CHANGED
@@ -84,6 +84,10 @@ class Dialog {
84
84
  // Persistence state
85
85
  this._currentCourse = 1;
86
86
  this._remindersVer = 0;
87
+ // Course prefix messages injected into LLM context on every course.
88
+ // This is an in-process cache only (not persisted), intended for small, stable “felt-sense” context
89
+ // like Showing-by-Doing transcripts.
90
+ this._coursePrefixMsgs = [];
87
91
  // Track whether the current course's initial events (user_text, generating_start)
88
92
  // have been fully processed. Used to ensure subdialog_final_response_evt arrives
89
93
  // only after parent events are emitted.
@@ -403,6 +407,12 @@ class Dialog {
403
407
  (0, evt_registry_1.postDialogEvent)(this, fullRemindersEvt);
404
408
  return reminders;
405
409
  }
410
+ setCoursePrefixMsgs(msgs) {
411
+ this._coursePrefixMsgs = [...msgs];
412
+ }
413
+ getCoursePrefixMsgs() {
414
+ return this._coursePrefixMsgs;
415
+ }
406
416
  // only to be used by the driver
407
417
  async addChatMessages(...msgs) {
408
418
  this.msgs.push(...msgs);
@@ -650,6 +660,9 @@ class Dialog {
650
660
  async persistAgentMessage(content, genseq, type, provider_data) {
651
661
  return await this.dlgStore.persistAgentMessage(this, content, genseq, type, provider_data);
652
662
  }
663
+ async persistUiOnlyMarkdown(content, genseq) {
664
+ return await this.dlgStore.persistUiOnlyMarkdown(this, content, genseq);
665
+ }
653
666
  async persistFunctionCall(id, name, arguments_, genseq) {
654
667
  return await this.dlgStore.persistFunctionCall(this, id, name, arguments_, genseq);
655
668
  }
@@ -1008,6 +1021,11 @@ class DialogStore {
1008
1021
  * Persist an assistant message to storage
1009
1022
  */
1010
1023
  async persistAgentMessage(_dialog, _content, _genseq, _type, _provider_data) { }
1024
+ /**
1025
+ * Persist an assistant markdown message that must be visible in UI + persistence,
1026
+ * but must never be injected into LLM context.
1027
+ */
1028
+ async persistUiOnlyMarkdown(_dialog, _content, _genseq) { }
1011
1029
  /**
1012
1030
  * Persist a function call to storage
1013
1031
  */
@@ -1,5 +1,7 @@
1
1
  # Overall Every Control and Clear (OEC)
2
2
 
3
+ Chinese version: [中文版](./OEC-philosophy.zh.md)
4
+
3
5
  > Haier: Overall Every(thing/one/day) Control/Clear
4
6
 
5
7
  The OEC Management Method is a comprehensive enterprise management framework created by Haier Group in 1989, also known as "全方位优化管理法" (Comprehensive Optimization Management Method). This philosophy has generated tremendous economic and social benefits for Haier, earning them the National Enterprise Management Innovation "Golden Horse Award" and the Enterprise Reform "Sail Cup", with Premier Zhu Rongji批示 recommending nationwide promotion of this management experience.
@@ -1,5 +1,7 @@
1
1
  # 全面控制和清晰(OEC)
2
2
 
3
+ 英文版:[English](./OEC-philosophy.md)
4
+
3
5
  > 海尔:全面所有(事/人/天)控制/清除
4
6
 
5
7
  OEC 管理方法是海尔集团于 1989 年创建的全面企业管理体系,也称为"全方位优化管理法"。这一理念为海尔带来了巨大的经济效益和社会效益,荣获国家企业管理创新"金马奖"和企业改革"帆船杯",朱镕基总理批示要求全国推广这一管理经验。
package/dist/docs/auth.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Dominds Auth (Design)
2
2
 
3
+ Chinese version: [中文版](./auth.zh.md)
4
+
3
5
  This document specifies the **authentication behavior** for Dominds WebUI + API access.
4
6
 
5
7
  ## Goals
@@ -1,5 +1,7 @@
1
1
  # Dominds 认证(设计)
2
2
 
3
+ 英文版:[English](./auth.md)
4
+
3
5
  本文档指定了 Dominds WebUI + API 访问的**认证行为**。
4
6
 
5
7
  ## 目标
@@ -1,5 +1,7 @@
1
1
  # CLI Usage Guide
2
2
 
3
+ Chinese version: [中文版](./cli-usage.zh.md)
4
+
3
5
  The `dominds` CLI provides a unified entry point, but the **primary interaction experience is the Web UI** (the default `dominds` command). This guide focuses on the Web UI workflow.
4
6
 
5
7
  > Note: In this document, **rtws (runtime workspace)** refers to the runtime root directory Dominds uses (by default `process.cwd()`, switchable via `-C <dir>`).
@@ -1,5 +1,7 @@
1
1
  # CLI 使用指南
2
2
 
3
+ 英文版:[English](./cli-usage.md)
4
+
3
5
  `dominds` 提供统一的命令行入口,但**主要交互界面是 Web UI**(默认命令 `dominds`)。本文档以 Web UI 工作流为主。
4
6
 
5
7
  > 注:本文统一使用 **rtws(运行时工作区)** 表示 Dominds 运行时使用的根目录(默认等于 `process.cwd()`,可通过 `-C <dir>` 切换)。
@@ -1,5 +1,7 @@
1
1
  # Context Health Monitor
2
2
 
3
+ Chinese version: [中文版](./context-health.zh.md)
4
+
3
5
  This document specifies a **context health monitor** feature for Dominds: a small, always-on signal
4
6
  that helps the agent (and user) avoid degraded performance when the dialog’s prompt/context is
5
7
  getting too large relative to the model’s context window.
@@ -1,5 +1,7 @@
1
1
  # 上下文健康监控器
2
2
 
3
+ 英文版:[English](./context-health.md)
4
+
3
5
  本文档为 Dominds 指定了一个**上下文健康监控器**特性:一个常驻的小型信号,帮助智能体(和用户)在对话的提示词/上下文相对于模型的上下文窗口变得过大时避免性能下降。
4
6
 
5
7
  ## 当前代码现状(截至 2026-01-28)
@@ -1,5 +1,7 @@
1
1
  # Dominds: Social Division of Labor for AI Agents
2
2
 
3
+ Chinese version: [中文版](./design.zh.md)
4
+
3
5
  ## Overview
4
6
 
5
7
  Dominds implements **Social Division of Labor** for AI agents - a systematic approach to managing cognitive overload through strategic mental clarity practices. This document outlines our comprehensive framework for preventing agentic disorientation and maintaining productive focus in AI-human collaborative environments.
@@ -1,5 +1,7 @@
1
1
  # Dominds:AI 智能体的社会分工
2
2
 
3
+ 英文版:[English](./design.md)
4
+
3
5
  ## 概述
4
6
 
5
7
  Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心理清晰实践来管理认知过载的系统性方法。本文档概述了我们防止智能体迷失方向和在 AI-人协作环境中保持高效专注的综合框架。
@@ -1,5 +1,7 @@
1
1
  # Dialog Persistence and Storage
2
2
 
3
+ Chinese version: [中文版](./dialog-persistence.zh.md)
4
+
3
5
  This document describes the persistence layer and storage mechanisms for the Dominds dialog system, including file system conventions, data structures, and storage patterns.
4
6
 
5
7
  > Note: In this document, **rtws (runtime workspace)** refers to Dominds' runtime root directory (by default `process.cwd()`, switchable via `-C <dir>`).
@@ -1,5 +1,7 @@
1
1
  # 对话持久化和存储
2
2
 
3
+ 英文版:[English](./dialog-persistence.md)
4
+
3
5
  本文档描述了 Dominds 对话系统的持久化层和存储机制,包括文件系统约定、数据结构和存储模式。
4
6
 
5
7
  ## 当前实现状态
@@ -1,5 +1,7 @@
1
1
  # Dominds Dialog System Implementation
2
2
 
3
+ Chinese version: [中文版](./dialog-system.zh.md)
4
+
3
5
  This document provides detailed implementation specifications for the Dominds dialog system, including core tools, technical architecture, dialog management, memory management, system integration, and the Questions for Human (Q4H) mechanism.
4
6
 
5
7
  ## Table of Contents
@@ -1,5 +1,7 @@
1
1
  # Dominds 对话系统实现
2
2
 
3
+ 英文版:[English](./dialog-system.md)
4
+
3
5
  本文档提供 Dominds 对话系统的详细实现规范,包括核心工具、技术架构、对话管理、内存管理、系统集成以及"向人类提问"(Q4H)机制。
4
6
 
5
7
  ## 目录
@@ -1,5 +1,7 @@
1
1
  # Diligence Push — Design Doc
2
2
 
3
+ Chinese version: [中文版](./diligence-push.zh.md)
4
+
3
5
  ## Summary
4
6
 
5
7
  Dominds root dialogs are intended for long-run operation. A root dialog "stopping" (becoming idle)
@@ -1,5 +1,7 @@
1
1
  # 鞭策 — 设计文档
2
2
 
3
+ 英文版:[English](./diligence-push.md)
4
+
3
5
  ## 概述
4
6
 
5
7
  Dominds 根对话旨在长期运行。根对话"停止"(变为空闲)通常不是操作员想要的:他们希望智能体持续推进,直到:
@@ -0,0 +1,154 @@
1
+ # Dominds Agent Priming: Guide the Agent to Show It to Itself
2
+
3
+ Chinese version: [中文版](./dominds-agent-priming.zh.md)
4
+
5
+ ## Summary
6
+
7
+ Dominds has a real, runtime-enforced Tellask mechanism (`!?@...`) and a real, runtime-enforced Fresh Boots Reasoning
8
+ (FBR) mechanism (`!?@self`). Even if system prompts explain these mechanisms in detail, most foundation models were not
9
+ trained in a world where “asking a teammate to run a shell command” is actually possible, so they often treat such text
10
+ as aspirational or hypothetical.
11
+
12
+ **Agent Priming** is a tiny, highly realistic “first impression” procedure executed at dialog creation time. It runs a
13
+ short, real Tellask + real return + real FBR + real synthesis so the model gains _felt-sense_ that:
14
+
15
+ - teammate Tellasks are real and will be executed
16
+ - tool outputs are real and will be returned and persisted
17
+ - `!?@self` FBR is real and will report back
18
+ - synthesis is expected (extract the best, dedupe, reconcile), not “repeat each draft”
19
+
20
+ More precisely: it **guides the agent to show it to itself** — letting it personally walk through
21
+ (Tellask → return → FBR → synthesis), moving from “I’ve heard this exists” to “I just used it”.
22
+
23
+ This is structurally related to the psychology notion of a **priming effect**: an early, concrete stimulus can
24
+ significantly shape subsequent expectations and behaviors. In Dominds we anchor this “priming” in **verifiable runtime
25
+ interactions**, instead of relying on longer, declarative system-prompt text.
26
+
27
+ As a consequence, we can **dramatically simplify system prompts**: keep only short, accurate statements of the
28
+ Tellask/FBR contracts, and rely on a real priming run to establish “this works here”.
29
+
30
+ Related docs:
31
+
32
+ - Tellask runtime: `dominds/docs/dialog-system.md`
33
+ - Terminology (Mainline/Sideline): `dominds/docs/dominds-terminology.md`
34
+ - FBR (`!?@self`): `dominds/docs/fbr.md`
35
+ - Work language vs UI language: `dominds/docs/i18n.md`
36
+
37
+ ---
38
+
39
+ ## Goals
40
+
41
+ - Establish immediate trust that Tellask/return/persistence are real.
42
+ - Run a real `!?@self` FBR loop at dialog creation.
43
+ - Make synthesis itself part of the “felt” experience (dedupe/reconcile/extract-the-best).
44
+ - Keep the procedure safe, small, and deterministic (default command: `uname -a`).
45
+ - Persist and display the interaction so it is credible from multiple angles (backend record + frontend transcript).
46
+
47
+ ## Non-goals
48
+
49
+ - Running arbitrary user-provided commands as part of dialog creation.
50
+ - Collecting sensitive system information (beyond minimal OS/kernel identification).
51
+ - Replacing proper documentation: this is an experiential supplement, not the main spec.
52
+
53
+ ---
54
+
55
+ ## Definitions (user-facing)
56
+
57
+ - **Mainline dialog**: the primary thread where the user and the main agent interact.
58
+ - **Sideline dialog**: a temporary work thread created by Tellask / FBR, reporting results back to the mainline.
59
+ - **Tellask**: a structured request (`!?@<memberId> ...`) from a tellasker to a tellaskee.
60
+ - **Shell staff**: a teammate designated to run shell commands safely (configured via `shell_specialists`).
61
+ - **FBR**: Fresh Boots Reasoning, implemented as `!?@self` (a tool-less sideline dialog). See `dominds/docs/fbr.md`.
62
+
63
+ ---
64
+
65
+ ## Runtime flow (at dialog creation)
66
+
67
+ Agent Priming runs **before** the first user message is processed, unless the user opts out.
68
+
69
+ ### 1) Choose the shell execution path
70
+
71
+ 1. If the team config includes at least one `shell_specialists` member, pick one deterministically (e.g. the first).
72
+ 2. Otherwise, let the **Dominds runtime** execute the baseline command directly (not via agent tools).
73
+
74
+ Baseline command:
75
+
76
+ - `uname -a`
77
+
78
+ If `uname -a` fails (e.g. non-POSIX host), the runtime may fall back to a platform-appropriate equivalent, but the
79
+ default “muscle memory” path is intentionally `uname -a` because it is common, low-risk, and quick.
80
+
81
+ ### 2) Real teammate Tellask: ask for `uname -a`
82
+
83
+ If a shell staff member exists, the main agent (tellasker) issues **a real Tellask** to the shell staff member
84
+ (tellaskee), in the server-wide work language.
85
+
86
+ The Tellask body should be short and operational:
87
+
88
+ - run exactly `uname -a`
89
+ - return raw output verbatim
90
+ - if `uname` fails: include error + one safe alternative command
91
+
92
+ ### 3) Real FBR: reflect on what the environment implies
93
+
94
+ After obtaining the environment snapshot, the main agent issues a real `!?@self` Tellask to trigger FBR.
95
+
96
+ The FBR body should include:
97
+
98
+ - the exact `uname -a` output (explicitly name the command; it may change in the future)
99
+ - the tool constraint (FBR has no tools; mainline tool availability is separate)
100
+ - the question: “What should I be careful about in this environment? Which CLI tools should I prioritize, and why?”
101
+
102
+ ### 4) Synthesize into an “Agent Priming” note
103
+
104
+ The main agent then writes a short, user-visible **Agent Priming** note via a **normal generation** in the mainline
105
+ dialog. It should be explicitly synthesized (dedupe/reconcile/extract-the-best) rather than repeating each draft.
106
+
107
+ ---
108
+
109
+ ## Persistence, caching, and reuse (in-process only)
110
+
111
+ ### 1) Persist as real dialog records (backend + frontend)
112
+
113
+ All priming steps must be persisted as standard dialog artifacts (messages + events) and visible in the WebUI.
114
+
115
+ ### 2) Process-wide cache (per agent)
116
+
117
+ To avoid repeating `uname -a` + FBR + synthesis on every new dialog, the backend process may maintain an in-process cache
118
+ (lost on restart) keyed by the mainline agent id.
119
+
120
+ Reuse policy:
121
+
122
+ - If a valid cache entry exists, a new dialog may reuse the cached transcript and Agent Priming note.
123
+ - Reused entries should still be visible in the new dialog transcript, labeled as “reused from cache”.
124
+
125
+ ### 3) Carry across `clear_mind`
126
+
127
+ After each `clear_mind` (entering the next course), do not rely on reminders.
128
+
129
+ Instead, inject a small, stable **course prefix** into model context at the start of each course: a condensed transcript
130
+ (shell snapshot + FBR highlights + Priming note).
131
+
132
+ ---
133
+
134
+ ## UX requirements (WebUI)
135
+
136
+ ### Display
137
+
138
+ - Render Agent Priming as a realistic transcript the user can inspect.
139
+ - Prefer a collapsible top section with clear labels:
140
+ - “Teammate Tellask (shell)”
141
+ - “FBR (`!?@self`)"
142
+ - “Agent Priming”
143
+
144
+ ### Opt-out
145
+
146
+ Dialog creation should provide an explicit opt-out to skip priming.
147
+
148
+ ---
149
+
150
+ ## Safety notes
151
+
152
+ - Default to a single, low-risk command (`uname -a`).
153
+ - Do not run anything that modifies the filesystem or network as part of priming.
154
+ - Treat the priming transcript as user-visible by default; avoid including secrets or personally identifying details.
@@ -0,0 +1,143 @@
1
+ # Dominds 智能体启动(Priming):引导祂做给自己看
2
+
3
+ 英文版:[English](./dominds-agent-priming.md)
4
+
5
+ ## 摘要
6
+
7
+ Dominds 的诉请(Tellask,`!?@...`)与扪心自问(FBR,`!?@self`)并不是“写在系统提示里的约定”,而是**后端真实可驱动、可执行、可回传、可持久化**的机制。
8
+
9
+ 问题在于:即使系统提示把这些机制写得再细,大多数基础模型也并未在“真的可以随时拉一个队友去跑 shell 命令并把结果带回来”的世界里被训练过,因此容易把提示当成“说说而已 / 仅供参考”。这会直接削弱诉请与 FBR 的可用性。
10
+
11
+ 因此引入 **智能体启动(Agent Priming)**:在一个对话创建之初,运行一段极短、极拟真的“真实诉请 + 真实回传 + 真实 FBR + 真实综合提炼”,让智能体产生明确的体感。
12
+
13
+ 更贴切地说,这是在**引导祂做给自己看**:让智能体亲身走一遍(诉请→回传→FBR→综合提炼),从“听说有这个机制”变成“我刚刚用过它”。
14
+
15
+ 这与心理学的**启动效应(priming effect)**在“机制形态”上相似:一次早期、具体、可感的刺激,会显著影响后续的期待与行为模式。在 Dominds 里,我们把这种“启动”落在**可验证的真实交互**上,而不是落在更长更复杂的宣告式系统提示上。
16
+
17
+ 体感建立后,系统提示可以**大幅简化**:只保留“短而准确”的契约说明即可,把“这在本环境里真实可用”的可信度交给一次真实启动来完成。
18
+
19
+ 相关文档:
20
+
21
+ - 诉请机制与对话系统:`dominds/docs/dialog-system.md`
22
+ - 术语约定(主线/支线;诉请方/应答方):`dominds/docs/dominds-terminology.md`
23
+ - FBR(`!?@self`):`dominds/docs/fbr.md`
24
+ - 工作语言 vs UI 语言:`dominds/docs/i18n.md`
25
+
26
+ ---
27
+
28
+ ## 目标
29
+
30
+ - 在对话一开始就建立“诉请/回传/持久化都是真的”的信任。
31
+ - 在对话一开始就跑通一次 `!?@self` 的 FBR 回路。
32
+ - 把多份 FBR 草稿做一次**综合提炼**,把“取精华、去糟粕”的动作也变成体感的一部分。
33
+ - 过程足够小、可控、低风险(默认只执行 `uname -a`)。
34
+ - 记录从多角度都高度拟真:后端存档 + 前端可见的对话转录。
35
+
36
+ ## 非目标
37
+
38
+ - 不在创建对话时执行任意用户输入的命令。
39
+ - 不收集敏感信息(默认只采集最小的 OS/Kernel 识别信息)。
40
+ - 不替代系统提示/设计文档:这是“启动与体感补强”,不是完整规范的主载体。
41
+
42
+ ---
43
+
44
+ ## 概念(用户视角)
45
+
46
+ - **主线对话**:用户与主要智能体交互的那条线。
47
+ - **支线对话**:由诉请 / FBR 触发的临时工作线,产出结果回传主线。
48
+ - **诉请(Tellask)**:以 `!?@<memberId> ...` 向队友/对话发起的结构化请求。
49
+ - **Shell 专员(shell staff)**:被允许执行 shell 命令并回传结果的队友(由 `shell_specialists` 配置指定)。
50
+ - **FBR(扪心自问)**:以 `!?@self` 触发的“无工具支线推理”,产出报告回传主线。
51
+
52
+ ---
53
+
54
+ ## 运行流程(对话创建时)
55
+
56
+ 智能体启动发生在**第一条用户消息被处理之前**,除非用户在创建对话时明确选择跳过。
57
+
58
+ ### 1)选择执行路径
59
+
60
+ 1. 如果 team 配置里存在 `shell_specialists`,选择一个 shell 专员(建议确定性选择:列表第一个)。
61
+ 2. 否则,由 **Dominds 运行时**直接执行基线命令(不通过智能体工具)。
62
+
63
+ 基线命令(默认):
64
+
65
+ - `uname -a`
66
+
67
+ `uname -a` 失败时(例如非 POSIX 环境),可以改用平台等价命令;但默认肌肉记忆路径保留 `uname -a`,因为它低风险、快、且信息量刚好够用。
68
+
69
+ ### 2)真实队友诉请:让 shell 专员执行 `uname -a`
70
+
71
+ 若存在 shell 专员,则主线智能体(诉请方)以**工作语言**向 shell 专员(应答方)发起真实诉请,要求:
72
+
73
+ - 执行 `uname -a`(只执行这一条)
74
+ - 原样返回输出(不要改写/解释)
75
+ - 若命令不可用/失败:返回错误信息,并给出一个安全的替代命令
76
+
77
+ 结果必须以正常对话转录的方式落盘并展示,至少清晰体现:
78
+
79
+ - 诉请的 headline + body
80
+ - shell 专员实际执行了命令
81
+ - 返回的原始输出
82
+
83
+ ### 3)真实 FBR:基于环境信息做一次“扪心自问”
84
+
85
+ 拿到环境快照后,主线智能体触发一次 `!?@self` FBR,并在 FBR 的诉请正文里带上:
86
+
87
+ - 命令 `uname -a` 的完整输出(明确注明命令名,未来可能更换命令,不能靠猜)
88
+ - FBR 的工具约束(FBR 无工具;主线工具另论)
89
+ - 问题:在这个环境里要注意什么?优先用哪些命令行工具,为什么?
90
+
91
+ ### 4)综合提炼成“智能体启动(Priming)”笔记
92
+
93
+ 主线智能体以一次**正常生成**在主线对话里追加一条短笔记(Agent Priming),让关键信息显性化、可检索,并体现“综合提炼”(去重/消冲突/抽取最有用的要点)。
94
+
95
+ ---
96
+
97
+ ## 持久化、缓存与复用(仅进程内)
98
+
99
+ ### 1)记录必须“像真的一样”
100
+
101
+ 智能体启动的每一步都必须作为标准对话记录落盘(消息 + 事件),并在 WebUI 中可见:
102
+
103
+ - 可 debug(日志/存储都有迹可循)
104
+ - 可回放(对话历史导航时不丢信息)
105
+
106
+ ### 2)按智能体维度进程内缓存
107
+
108
+ 为避免每次新对话都重复跑 `uname -a` + FBR + 综合提炼,后端进程维护一个**进程内缓存**(重启失效),按主线智能体 id 做 key。
109
+
110
+ 复用策略:
111
+
112
+ - 若命中缓存,新对话可直接复用首次的转录与“Agent Priming”笔记,不再重复执行。
113
+ - 复用的记录在新对话里仍应可见,并清楚标记“来自缓存复用”。
114
+
115
+ ### 3)跨 `clear_mind` 携带
116
+
117
+ 每次 `clear_mind` 进入下一程时,不要依赖 reminder 来承载这件事。
118
+
119
+ 改为:在每一程对话的上下文里注入一段小而稳定的 **course prefix**(可理解为“历史消息区最开头的几条 msg”),内容是从首次启动中提炼出的压缩转录(shell 快照 + FBR 摘要 + Priming 笔记)。这样智能体能持续保留“体感”和环境约束,而无需重复执行启动流程。
120
+
121
+ ---
122
+
123
+ ## WebUI 需求
124
+
125
+ ### 展示
126
+
127
+ - 智能体启动应以真实对话转录展示,用户可展开查看细节。
128
+ - 建议在对话顶部提供一个可折叠区域,并带上清晰标签:
129
+ - “队友诉请(shell)”
130
+ - “FBR(`!?@self`)”
131
+ - “智能体启动(Agent Priming)”
132
+
133
+ ### 创建对话时可选择跳过(opt-out)
134
+
135
+ 创建对话框上提供明确开关,跳过这一安排(不执行启动流程,也不生成启动转录)。
136
+
137
+ ---
138
+
139
+ ## 安全注意事项
140
+
141
+ - 默认只执行 `uname -a`(低风险、只读、快)。
142
+ - 启动阶段禁止任何会改写文件/网络/系统状态的操作。
143
+ - 由于启动默认用户可见,严禁输出密钥/敏感信息。
@@ -1,5 +1,7 @@
1
1
  # Encapsulated Taskdocs (`*.tsk/`) (Design)
2
2
 
3
+ Chinese version: [中文版](./encapsulated-taskdoc.zh.md)
4
+
3
5
  This document specifies a **structured, encapsulated Taskdoc format** for Dominds dialogs.
4
6
 
5
7
  Instead of a single mutable “Taskdoc” markdown file, each dialog tree’s Taskdoc becomes a **Taskdoc package directory**
@@ -1,5 +1,7 @@
1
1
  # 封装式任务文档(`*.tsk/`)(设计)
2
2
 
3
+ 英文版:[English](./encapsulated-taskdoc.md)
4
+
3
5
  本文档为 Dominds 对话指定了一个**结构化的、封装的任务文档格式**。
4
6
 
5
7
  不是单一的可变"任务文档" markdown 文件,每个对话树的任务文档变成了一个**任务文档包目录**,具有稳定的模式和严格的访问策略。
package/dist/docs/fbr.md CHANGED
@@ -57,8 +57,7 @@ When the runtime drives an FBR sideline dialog created by `!?@self`, it MUST enf
57
57
  - **No tools**:
58
58
  - no function tools
59
59
  - no MCP tools
60
- - no teammate Tellasks (including `!?@human`)
61
- - no supcalls
60
+ - no teammate Tellasks (including `!?@human`); the only exception is `!?@tellasker` (a sideline-only ask-back to the upstream tellasker dialog), and only when you must clarify critical missing context
62
61
  - **No caller-thread context dependency**:
63
62
  - the tellaskee MUST NOT assume access to the tellasker’s mainline/sideline dialog history
64
63
  - the tellaskee MUST treat the tellask body as the primary, authoritative task context
@@ -93,6 +92,7 @@ The FBR sideline dialog’s system prompt MUST clearly state:
93
92
  - The tellask body is the **primary task context**; do not assume any caller-thread history is available.
94
93
  - If this is a resumable `!tellaskSession` FBR, you may use your own prior `tellaskSession` history as explicit context.
95
94
  - If the tellask body is missing critical context, respond by listing what is missing and why it blocks reasoning.
95
+ - `!?@tellasker` is allowed only when you must clarify critical missing context; otherwise do not emit any tellasks.
96
96
 
97
97
  #### Tool prompt requirements (when applicable)
98
98
 
@@ -54,8 +54,7 @@
54
54
  - **无工具**:
55
55
  - 不提供任何函数工具
56
56
  - 不提供任何 MCP 工具
57
- - 不允许发起任何队友诉请(包括 `!?@human`)
58
- - 不允许向上游对话回问(supcall)
57
+ - 不允许发起任何队友诉请(包括 `!?@human`);唯一例外:`!?@tellasker`(仅支线对话可用,用于回问上游诉请者对话),且当且仅当你需要澄清关键缺失上下文时才允许
59
58
  - **不依赖诉请者线程上下文**:
60
59
  - 被诉请者不得假设能访问诉请者的主线/支线对话历史
61
60
  - 被诉请者必须把诉请正文当作主要且权威的任务上下文
@@ -86,6 +85,7 @@ FBR 支线对话的 system prompt 必须明确包含:
86
85
  - 诉请正文是**主要任务上下文**;不要假设你能访问诉请者线程历史。
87
86
  - 若这是可恢复的 `!tellaskSession` FBR,你可以使用**自身**既有的 `tellaskSession` 历史作为显式上下文。
88
87
  - 若诉请正文缺少关键上下文,你需要列出缺失信息及其阻塞原因。
88
+ - 仅当你必须澄清关键缺失上下文时,允许 `!?@tellasker` 回问诉请者;除此之外不要发起任何诉请。
89
89
 
90
90
  #### 工具提示的要求(如适用)
91
91
 
package/dist/docs/i18n.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Internationalization Support (Work vs UI Language)
2
2
 
3
+ Chinese version: [中文版](./i18n.zh.md)
4
+
3
5
  Dominds has two independent language settings:
4
6
 
5
7
  ## 1) Work language (server-wide)
@@ -1,5 +1,7 @@
1
1
  # 国际化支持(工作语言 vs 界面语言)
2
2
 
3
+ 英文版:[English](./i18n.md)
4
+
3
5
  Dominds 有两个独立的语言设置:
4
6
 
5
7
  ## 1) 工作语言(服务器范围)
@@ -1,5 +1,7 @@
1
1
  # Interruption & Resumption (Dialog Proceeding Control)
2
2
 
3
+ Chinese version: [中文版](./interruption-resumption.zh.md)
4
+
3
5
  Dominds dialogs (“dlgs”) can run for a long time (streaming generation, multi-step work, tool usage). Users also
4
6
  frequently observe the same dlg from multiple browser tabs. This document defines the **interaction design** for:
5
7
 
@@ -1,5 +1,7 @@
1
1
  # 中断与恢复(对话进行控制)
2
2
 
3
+ 英文版:[English](./interruption-resumption.md)
4
+
3
5
  Dominds 对话("dlg")可以运行很长时间(流式生成、多步骤工作、工具使用)。用户也经常从多个浏览器标签页观察同一个对话。本文定义了以下内容的**交互设计**:
4
6
 
5
7
  - 显示每个对话是**空闲**还是**进行中**