dominds 1.7.0 → 1.7.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 (129) hide show
  1. package/README.md +1 -1
  2. package/README.zh.md +1 -1
  3. package/dist/dialog.js +8 -8
  4. package/dist/docs/OEC-philosophy.md +11 -11
  5. package/dist/docs/OEC-philosophy.zh.md +1 -1
  6. package/dist/docs/context-health.md +35 -14
  7. package/dist/docs/context-health.zh.md +28 -7
  8. package/dist/docs/design.zh.md +8 -8
  9. package/dist/docs/dialog-persistence.zh.md +4 -4
  10. package/dist/docs/dialog-system.md +19 -14
  11. package/dist/docs/dialog-system.zh.md +102 -97
  12. package/dist/docs/encapsulated-taskdoc.md +5 -17
  13. package/dist/docs/encapsulated-taskdoc.zh.md +11 -11
  14. package/dist/docs/fbr.zh.md +1 -1
  15. package/dist/docs/mcp-support.zh.md +1 -1
  16. package/dist/docs/memory-system.zh.md +4 -4
  17. package/dist/docs/mottos.zh.md +7 -7
  18. package/dist/docs/roadmap.zh.md +1 -1
  19. package/dist/docs/team_mgmt-toolset.zh.md +1 -1
  20. package/dist/docs/tellask-collab.md +9 -4
  21. package/dist/docs/tellask-collab.zh.md +21 -15
  22. package/dist/llm/kernel-driver/drive.js +8 -6
  23. package/dist/llm/kernel-driver/flow.js +4 -3
  24. package/dist/llm/kernel-driver/subdialog.js +1 -1
  25. package/dist/minds/load.js +12 -0
  26. package/dist/minds/system-prompt-parts.js +31 -9
  27. package/dist/minds/system-prompt.js +63 -31
  28. package/dist/persistence.js +11 -11
  29. package/dist/priming.js +4 -4
  30. package/dist/shared/i18n/driver-messages.js +25 -10
  31. package/dist/shared/utils/inter-dialog-format.js +27 -7
  32. package/dist/static/assets/{_basePickBy-B5JpcIlf.js → _basePickBy-DOCpneO0.js} +3 -3
  33. package/dist/static/assets/{_basePickBy-B5JpcIlf.js.map → _basePickBy-DOCpneO0.js.map} +1 -1
  34. package/dist/static/assets/{_baseUniq-B6ENA5xp.js → _baseUniq-DBZLqTK1.js} +2 -2
  35. package/dist/static/assets/{_baseUniq-B6ENA5xp.js.map → _baseUniq-DBZLqTK1.js.map} +1 -1
  36. package/dist/static/assets/{arc-CztgHQ6S.js → arc-Dw9YkyBZ.js} +2 -2
  37. package/dist/static/assets/{arc-CztgHQ6S.js.map → arc-Dw9YkyBZ.js.map} +1 -1
  38. package/dist/static/assets/{architectureDiagram-VXUJARFQ-CdI-KLc0.js → architectureDiagram-VXUJARFQ-DiXBIlTy.js} +7 -7
  39. package/dist/static/assets/{architectureDiagram-VXUJARFQ-CdI-KLc0.js.map → architectureDiagram-VXUJARFQ-DiXBIlTy.js.map} +1 -1
  40. package/dist/static/assets/{blockDiagram-VD42YOAC-BALBf4XM.js → blockDiagram-VD42YOAC-CBTqG3TT.js} +7 -7
  41. package/dist/static/assets/{blockDiagram-VD42YOAC-BALBf4XM.js.map → blockDiagram-VD42YOAC-CBTqG3TT.js.map} +1 -1
  42. package/dist/static/assets/{c4Diagram-YG6GDRKO-a1k6yPrP.js → c4Diagram-YG6GDRKO-CKltdqcg.js} +3 -3
  43. package/dist/static/assets/{c4Diagram-YG6GDRKO-a1k6yPrP.js.map → c4Diagram-YG6GDRKO-CKltdqcg.js.map} +1 -1
  44. package/dist/static/assets/{channel-CWNdqJ-I.js → channel-CsfA5ddv.js} +2 -2
  45. package/dist/static/assets/{channel-CWNdqJ-I.js.map → channel-CsfA5ddv.js.map} +1 -1
  46. package/dist/static/assets/{chunk-4BX2VUAB-BQeTUB5q.js → chunk-4BX2VUAB-BCdL9ibi.js} +2 -2
  47. package/dist/static/assets/{chunk-4BX2VUAB-BQeTUB5q.js.map → chunk-4BX2VUAB-BCdL9ibi.js.map} +1 -1
  48. package/dist/static/assets/{chunk-55IACEB6-DDefFY4X.js → chunk-55IACEB6-CcKnxlqS.js} +2 -2
  49. package/dist/static/assets/{chunk-55IACEB6-DDefFY4X.js.map → chunk-55IACEB6-CcKnxlqS.js.map} +1 -1
  50. package/dist/static/assets/{chunk-B4BG7PRW-B3r4W-g_.js → chunk-B4BG7PRW-BnypOYYo.js} +5 -5
  51. package/dist/static/assets/{chunk-B4BG7PRW-B3r4W-g_.js.map → chunk-B4BG7PRW-BnypOYYo.js.map} +1 -1
  52. package/dist/static/assets/{chunk-DI55MBZ5-BDKIjQbt.js → chunk-DI55MBZ5-BGYHpvhR.js} +4 -4
  53. package/dist/static/assets/{chunk-DI55MBZ5-BDKIjQbt.js.map → chunk-DI55MBZ5-BGYHpvhR.js.map} +1 -1
  54. package/dist/static/assets/{chunk-FMBD7UC4-BRjO7LO2.js → chunk-FMBD7UC4-Crf0Br1R.js} +2 -2
  55. package/dist/static/assets/{chunk-FMBD7UC4-BRjO7LO2.js.map → chunk-FMBD7UC4-Crf0Br1R.js.map} +1 -1
  56. package/dist/static/assets/{chunk-QN33PNHL-DtUbDqMq.js → chunk-QN33PNHL-Cg1EQYdQ.js} +2 -2
  57. package/dist/static/assets/{chunk-QN33PNHL-DtUbDqMq.js.map → chunk-QN33PNHL-Cg1EQYdQ.js.map} +1 -1
  58. package/dist/static/assets/{chunk-QZHKN3VN-HvxW4tgI.js → chunk-QZHKN3VN-DRH7UNkC.js} +2 -2
  59. package/dist/static/assets/{chunk-QZHKN3VN-HvxW4tgI.js.map → chunk-QZHKN3VN-DRH7UNkC.js.map} +1 -1
  60. package/dist/static/assets/{chunk-TZMSLE5B-8kvbFL8c.js → chunk-TZMSLE5B-CaZqBdnu.js} +2 -2
  61. package/dist/static/assets/{chunk-TZMSLE5B-8kvbFL8c.js.map → chunk-TZMSLE5B-CaZqBdnu.js.map} +1 -1
  62. package/dist/static/assets/{classDiagram-2ON5EDUG-BT0K1-Ue.js → classDiagram-2ON5EDUG-DSsG0iFI.js} +6 -6
  63. package/dist/static/assets/{classDiagram-2ON5EDUG-BT0K1-Ue.js.map → classDiagram-2ON5EDUG-DSsG0iFI.js.map} +1 -1
  64. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-BT0K1-Ue.js → classDiagram-v2-WZHVMYZB-DSsG0iFI.js} +6 -6
  65. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-BT0K1-Ue.js.map → classDiagram-v2-WZHVMYZB-DSsG0iFI.js.map} +1 -1
  66. package/dist/static/assets/{clone-C8ji-9VG.js → clone-xhbAL4G8.js} +2 -2
  67. package/dist/static/assets/{clone-C8ji-9VG.js.map → clone-xhbAL4G8.js.map} +1 -1
  68. package/dist/static/assets/{cose-bilkent-S5V4N54A-DgZIHStr.js → cose-bilkent-S5V4N54A-B7Rtmhjt.js} +2 -2
  69. package/dist/static/assets/{cose-bilkent-S5V4N54A-DgZIHStr.js.map → cose-bilkent-S5V4N54A-B7Rtmhjt.js.map} +1 -1
  70. package/dist/static/assets/{dagre-6UL2VRFP-CoLMSS7V.js → dagre-6UL2VRFP-BkqhLTnX.js} +7 -7
  71. package/dist/static/assets/{dagre-6UL2VRFP-CoLMSS7V.js.map → dagre-6UL2VRFP-BkqhLTnX.js.map} +1 -1
  72. package/dist/static/assets/{diagram-PSM6KHXK-BbaRu7Ko.js → diagram-PSM6KHXK-CZKtGq3a.js} +8 -8
  73. package/dist/static/assets/{diagram-PSM6KHXK-BbaRu7Ko.js.map → diagram-PSM6KHXK-CZKtGq3a.js.map} +1 -1
  74. package/dist/static/assets/{diagram-QEK2KX5R-w2QJoEvf.js → diagram-QEK2KX5R-CnMVuAHl.js} +7 -7
  75. package/dist/static/assets/{diagram-QEK2KX5R-w2QJoEvf.js.map → diagram-QEK2KX5R-CnMVuAHl.js.map} +1 -1
  76. package/dist/static/assets/{diagram-S2PKOQOG-CZ3V7aTH.js → diagram-S2PKOQOG-CeSf7JXc.js} +7 -7
  77. package/dist/static/assets/{diagram-S2PKOQOG-CZ3V7aTH.js.map → diagram-S2PKOQOG-CeSf7JXc.js.map} +1 -1
  78. package/dist/static/assets/{erDiagram-Q2GNP2WA-B_D5zZGW.js → erDiagram-Q2GNP2WA-CSt8_Jg8.js} +5 -5
  79. package/dist/static/assets/{erDiagram-Q2GNP2WA-B_D5zZGW.js.map → erDiagram-Q2GNP2WA-CSt8_Jg8.js.map} +1 -1
  80. package/dist/static/assets/{flowDiagram-NV44I4VS-CdleeZSt.js → flowDiagram-NV44I4VS-D5Ml-CXN.js} +6 -6
  81. package/dist/static/assets/{flowDiagram-NV44I4VS-CdleeZSt.js.map → flowDiagram-NV44I4VS-D5Ml-CXN.js.map} +1 -1
  82. package/dist/static/assets/{ganttDiagram-JELNMOA3-D4I0mcXy.js → ganttDiagram-JELNMOA3-CyMWbWsa.js} +3 -3
  83. package/dist/static/assets/{ganttDiagram-JELNMOA3-D4I0mcXy.js.map → ganttDiagram-JELNMOA3-CyMWbWsa.js.map} +1 -1
  84. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-2TDy5WsI.js → gitGraphDiagram-V2S2FVAM-vl516Is8.js} +8 -8
  85. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-2TDy5WsI.js.map → gitGraphDiagram-V2S2FVAM-vl516Is8.js.map} +1 -1
  86. package/dist/static/assets/{graph-6qmT9kvE.js → graph-BGZ_sL_x.js} +3 -3
  87. package/dist/static/assets/{graph-6qmT9kvE.js.map → graph-BGZ_sL_x.js.map} +1 -1
  88. package/dist/static/assets/{index-DZjf7VGN.js → index-C-RsyM0K.js} +33 -33
  89. package/dist/static/assets/{index-DZjf7VGN.js.map → index-C-RsyM0K.js.map} +1 -1
  90. package/dist/static/assets/{infoDiagram-HS3SLOUP-Cdngu1wO.js → infoDiagram-HS3SLOUP-6wx0LbHY.js} +6 -6
  91. package/dist/static/assets/{infoDiagram-HS3SLOUP-Cdngu1wO.js.map → infoDiagram-HS3SLOUP-6wx0LbHY.js.map} +1 -1
  92. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-C8JGH9qX.js → journeyDiagram-XKPGCS4Q-YPjC-r77.js} +5 -5
  93. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-C8JGH9qX.js.map → journeyDiagram-XKPGCS4Q-YPjC-r77.js.map} +1 -1
  94. package/dist/static/assets/{kanban-definition-3W4ZIXB7-CgcdAoUr.js → kanban-definition-3W4ZIXB7-DlG-ZWTO.js} +3 -3
  95. package/dist/static/assets/{kanban-definition-3W4ZIXB7-CgcdAoUr.js.map → kanban-definition-3W4ZIXB7-DlG-ZWTO.js.map} +1 -1
  96. package/dist/static/assets/{layout--9zDsdfQ.js → layout-BZJKhYY3.js} +5 -5
  97. package/dist/static/assets/{layout--9zDsdfQ.js.map → layout-BZJKhYY3.js.map} +1 -1
  98. package/dist/static/assets/{linear-f6M3OqrG.js → linear-Bau37zh5.js} +2 -2
  99. package/dist/static/assets/{linear-f6M3OqrG.js.map → linear-Bau37zh5.js.map} +1 -1
  100. package/dist/static/assets/{mindmap-definition-VGOIOE7T-O6D8o0NA.js → mindmap-definition-VGOIOE7T-n2WXgX4b.js} +4 -4
  101. package/dist/static/assets/{mindmap-definition-VGOIOE7T-O6D8o0NA.js.map → mindmap-definition-VGOIOE7T-n2WXgX4b.js.map} +1 -1
  102. package/dist/static/assets/{pieDiagram-ADFJNKIX-B73iJXia.js → pieDiagram-ADFJNKIX-DgW7FkI4.js} +8 -8
  103. package/dist/static/assets/{pieDiagram-ADFJNKIX-B73iJXia.js.map → pieDiagram-ADFJNKIX-DgW7FkI4.js.map} +1 -1
  104. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-1MkdhL3o.js → quadrantDiagram-AYHSOK5B-BtsDjIpC.js} +3 -3
  105. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-1MkdhL3o.js.map → quadrantDiagram-AYHSOK5B-BtsDjIpC.js.map} +1 -1
  106. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-BANDg6Jt.js → requirementDiagram-UZGBJVZJ-DPzuPEge.js} +4 -4
  107. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-BANDg6Jt.js.map → requirementDiagram-UZGBJVZJ-DPzuPEge.js.map} +1 -1
  108. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-XEoMNqRv.js → sankeyDiagram-TZEHDZUN-BJS1ETtL.js} +2 -2
  109. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-XEoMNqRv.js.map → sankeyDiagram-TZEHDZUN-BJS1ETtL.js.map} +1 -1
  110. package/dist/static/assets/{sequenceDiagram-WL72ISMW-Brw-9CPI.js → sequenceDiagram-WL72ISMW-DXEpa4ly.js} +4 -4
  111. package/dist/static/assets/{sequenceDiagram-WL72ISMW-Brw-9CPI.js.map → sequenceDiagram-WL72ISMW-DXEpa4ly.js.map} +1 -1
  112. package/dist/static/assets/{stateDiagram-FKZM4ZOC-CVzsrvr2.js → stateDiagram-FKZM4ZOC-CGU6VJY5.js} +9 -9
  113. package/dist/static/assets/{stateDiagram-FKZM4ZOC-CVzsrvr2.js.map → stateDiagram-FKZM4ZOC-CGU6VJY5.js.map} +1 -1
  114. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-B9j-EAhS.js → stateDiagram-v2-4FDKWEC3-Dx_GvlFA.js} +5 -5
  115. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-B9j-EAhS.js.map → stateDiagram-v2-4FDKWEC3-Dx_GvlFA.js.map} +1 -1
  116. package/dist/static/assets/{timeline-definition-IT6M3QCI-S3mM3ltV.js → timeline-definition-IT6M3QCI-DcWLmdgJ.js} +3 -3
  117. package/dist/static/assets/{timeline-definition-IT6M3QCI-S3mM3ltV.js.map → timeline-definition-IT6M3QCI-DcWLmdgJ.js.map} +1 -1
  118. package/dist/static/assets/{treemap-GDKQZRPO-Cf1b3Cgv.js → treemap-GDKQZRPO-BhUwKF9C.js} +5 -5
  119. package/dist/static/assets/{treemap-GDKQZRPO-Cf1b3Cgv.js.map → treemap-GDKQZRPO-BhUwKF9C.js.map} +1 -1
  120. package/dist/static/assets/{xychartDiagram-PRI3JC2R-CYvqfglb.js → xychartDiagram-PRI3JC2R-Cr4t0oCq.js} +3 -3
  121. package/dist/static/assets/{xychartDiagram-PRI3JC2R-CYvqfglb.js.map → xychartDiagram-PRI3JC2R-Cr4t0oCq.js.map} +1 -1
  122. package/dist/static/index.html +1 -1
  123. package/dist/tools/ctrl.js +5 -4
  124. package/dist/tools/prompts/control/en/principles.md +2 -2
  125. package/dist/tools/prompts/control/en/tools.md +2 -2
  126. package/dist/tools/prompts/control/zh/index.md +2 -2
  127. package/dist/tools/prompts/control/zh/principles.md +4 -4
  128. package/dist/tools/prompts/control/zh/tools.md +4 -4
  129. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  > Agents should be sustaining the continuous development of your products, one-shot product creation is hallucination.
6
6
 
7
- - 中文版:[README.zh.md](./README.zh.md)
7
+ - Chinese version: [中文版](./README.zh.md)
8
8
 
9
9
  ## CAVEATS
10
10
 
package/README.zh.md CHANGED
@@ -185,7 +185,7 @@ Dominds 面向“长期开发运作(DevOps)”场景设计,基于社会化
185
185
  - **[CLI Usage Guide](docs/cli-usage.zh.md)** — 命令行工具及使用方法
186
186
  - **[Q4H](docs/q4h.zh.md)** — 向人类提问(`askHuman`)机制与 WebUI 支持
187
187
  - **[MCP Support](docs/mcp-support.zh.md)** — MCP 工具集成指南
188
- - **[Encapsulated Taskdocs](docs/encapsulated-taskdoc.zh.md)** — 差遣牒(Taskdoc)封装
188
+ - **[封装式差遣牒](docs/encapsulated-taskdoc.zh.md)** — `*.tsk/` 任务包与访问约束
189
189
  - **[FBR](docs/fbr.zh.md)** — 扪心自问(`freshBootsReasoning`)机制设计与增强
190
190
  - **[Context Health](docs/context-health.zh.md)** — 上下文健康维护
191
191
  - **[Diligence Push](docs/diligence-push.zh.md)** — 鞭策机制
package/dist/dialog.js CHANGED
@@ -142,10 +142,10 @@ class Dialog {
142
142
  // Diligence Push disable switch (persisted via latest.yaml; default = false).
143
143
  this.disableDiligencePush = false;
144
144
  // Current callId for tellask call correlation
145
- // - Set during teammate_call_finish_evt (from tellask-special function calls)
145
+ // - Set when tellask-special call results are finalized
146
146
  // - Retrieved during inline call-result emission (for receiveTellaskCallResult callId parameter)
147
147
  // - Enables frontend to attach result INLINE to the calling section
148
- // - NOT used for teammate tellasks (which use calleeDialogId instead)
148
+ // - NOT used for sideline-response bubbles (which use calleeDialogId instead)
149
149
  this._currentCallId = null;
150
150
  // Validate required parameters
151
151
  if (!taskDocPath || taskDocPath.trim() === '') {
@@ -207,7 +207,7 @@ class Dialog {
207
207
  * Get the current callId for tellask call correlation
208
208
  *
209
209
  * Call Types:
210
- * - tellask-special function call: callId is set during teammate_call_finish_evt and used for inline result correlation
210
+ * - tellask-special function call: callId is set when call results are finalized and used for inline result correlation
211
211
  * - Subdialog response bubbles: use calleeDialogId instead of callId
212
212
  *
213
213
  * @returns The current callId for call correlation, or null if no active call
@@ -216,7 +216,7 @@ class Dialog {
216
216
  return this._currentCallId;
217
217
  }
218
218
  /**
219
- * Set the current callId (called during teammate_call_finish_evt for tellask-special calls)
219
+ * Set the current callId for tellask-special inline result correlation
220
220
  *
221
221
  * @param callId - The function-call correlation ID
222
222
  */
@@ -796,7 +796,7 @@ class Dialog {
796
796
  return await this.dlgStore.receiveTellaskCallResult(this, responderId, callName, mentionList, tellaskContent, result, status, callId);
797
797
  }
798
798
  /**
799
- * Receive teammate response (separate bubble for @teammate tellasks)
799
+ * Receive tellask response (separate bubble for tellask sideline replies)
800
800
  */
801
801
  async receiveTellaskResponse(responderId, callName, mentionList, tellaskContent, status, subdialogId, options) {
802
802
  return await this.dlgStore.receiveTellaskResponse(this, responderId, callName, mentionList, tellaskContent, status, subdialogId, options);
@@ -939,7 +939,7 @@ class Dialog {
939
939
  }
940
940
  exports.Dialog = Dialog;
941
941
  /**
942
- * SubDialog - A subdialog created by a RootDialog for autonomous teammate tellasks.
942
+ * SubDialog - A subdialog created by a RootDialog for autonomous tellask sideline work.
943
943
  * Stores the root dialog for registry and lookup, and resolves its effective supdialog dynamically.
944
944
  */
945
945
  class SubDialog extends Dialog {
@@ -1064,7 +1064,7 @@ class RootDialog extends Dialog {
1064
1064
  return Array.from(this._subdialogRegistry.values());
1065
1065
  }
1066
1066
  /**
1067
- * Create a new subdialog for autonomous teammate tellasks.
1067
+ * Create a new subdialog for autonomous tellask sideline work.
1068
1068
  */
1069
1069
  async createSubDialog(targetAgentId, mentionList, tellaskContent, options) {
1070
1070
  return await this.dlgStore.createSubDialog(this, targetAgentId, mentionList, tellaskContent, options);
@@ -1146,7 +1146,7 @@ class DialogStore {
1146
1146
  */
1147
1147
  async receiveTellaskCallResult(_dialog, _responderId, _callName, _mentionList, _tellaskContent, _result, _status, _callId) { }
1148
1148
  /**
1149
- * Receive teammate response (separate bubble for @teammate tellasks)
1149
+ * Receive tellask response (separate bubble for tellask sideline replies)
1150
1150
  */
1151
1151
  async receiveTellaskResponse(_dialog, _responderId, _callName, _mentionList, _tellaskContent, _status, _subdialogId, _options) { }
1152
1152
  async updateQuestions4Human(_dialog, _questions) { }
@@ -4,27 +4,27 @@ Chinese version: [中文版](./OEC-philosophy.zh.md)
4
4
 
5
5
  > Haier: Overall Every(thing/one/day) Control/Clear
6
6
 
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.
7
+ The OEC Management Method is a comprehensive enterprise management framework created by Haier Group in 1989, also known as the Comprehensive Optimization Management Method. This philosophy generated major economic and social benefits for Haier, earning the company the National Enterprise Management Innovation "Golden Horse Award" and the Enterprise Reform "Sail Cup", along with a recommendation from Premier Zhu Rongji to promote the management experience nationwide.
8
8
 
9
9
  ## Core Philosophy
10
10
 
11
- OEC represents a systematic approach to daily management that emphasizes **"Daily work completion, daily clearance, daily improvement"** (日事日毕、日清日高). The fundamental principle is that every employee must accomplish targeted work every day, with the overall goal being to achieve a 1% improvement over the previous day's performance.
11
+ OEC represents a systematic approach to daily management that emphasizes **"Daily work completion, daily clearance, daily improvement."** The fundamental principle is that every employee must accomplish targeted work every day, with the overall goal being to achieve a 1% improvement over the previous day's performance.
12
12
 
13
13
  ## The OEC Components
14
14
 
15
- ### **O - Overall (全方位)**
15
+ ### **O - Overall**
16
16
 
17
17
  - **Global Integration**: All activities, processes, and systems are interconnected
18
18
  - **Holistic Thinking**: Every element contributes to the overall organizational success
19
19
  - **Strategic Alignment**: Daily activities support long-term strategic objectives
20
20
 
21
- ### **E - Everyone, Everything, Everyday (每人、每事、每日)**
21
+ ### **E - Everyone, Everything, Everyday**
22
22
 
23
23
  - **Everyone**: Every employee has clear responsibilities and accountability
24
24
  - **Everything**: Every task, process, and outcome is managed and controlled
25
25
  - **Everyday**: Daily operations, reviews, and improvements are non-negotiable
26
26
 
27
- ### **C - Control and Clear (控制和清晰)**
27
+ ### **C - Control and Clear**
28
28
 
29
29
  - **Clear Standards**: Defined expectations, processes, and quality benchmarks
30
30
  - **Controlled Processes**: Systematic monitoring and adjustment mechanisms
@@ -32,27 +32,27 @@ OEC represents a systematic approach to daily management that emphasizes **"Dail
32
32
 
33
33
  ## Three Fundamental Principles
34
34
 
35
- ### 1. **Closed-Loop Management (闭环原则)**
35
+ ### 1. **Closed-Loop Management**
36
36
 
37
37
  - **PDCA Cycle**: Plan-Do-Check-Act continuous improvement
38
38
  - **Complete Accountability**: Every task has clear ownership and follow-through
39
39
  - **Systematic Follow-up**: No loose ends or unaddressed issues
40
40
 
41
- ### 2. **Comparative Analysis (比较分析原则)**
41
+ ### 2. **Comparative Analysis**
42
42
 
43
43
  - **Internal Benchmarking**: Compare current performance with past achievements
44
44
  - **External Benchmarking**: Measure against industry best practices and international standards
45
45
  - **Competitive Intelligence**: Use comparison as a driver for improvement
46
46
 
47
- ### 3. **Continuous Optimization (不断优化原则)**
47
+ ### 3. **Continuous Optimization**
48
48
 
49
- - **Weakest Link Theory**: Identify and strengthen薄弱环节 (weak areas)
49
+ - **Weakest Link Theory**: Identify and strengthen weak areas
50
50
  - **Incremental Progress**: 1% daily improvement compounds significantly over time
51
51
  - **Systematic Enhancement**: Continuous refinement of all processes
52
52
 
53
53
  ## Implementation Framework
54
54
 
55
- ### Daily Work Completion (日事日毕)
55
+ ### Daily Work Completion
56
56
 
57
57
  **Core Mechanisms:**
58
58
 
@@ -66,7 +66,7 @@ OEC represents a systematic approach to daily management that emphasizes **"Dail
66
66
  - Mid-day check-ins ensure progress tracking
67
67
  - Evening reviews confirm completion and identify issues
68
68
 
69
- ### Daily Clearance (日清日高)
69
+ ### Daily Clearance
70
70
 
71
71
  **The "Three Management Principles":**
72
72
 
@@ -169,7 +169,7 @@ OEC 代表了一种系统化的日常管理方法,强调**"日事日毕、日
169
169
 
170
170
  ### **多程对话**
171
171
 
172
- - **每日重置**:使用已写回关键进展的差遣牒(Taskdoc,任务实时协调公告板)与空对话历史(主要是大篇幅、过时的工具调用结果)开启新一程对话
172
+ - **每日重置**:使用已写回关键进展的差遣牒(任务实时协调公告板)与空对话历史(主要是大篇幅、过时的工具调用结果)开启新一程对话
173
173
  - **清除上下文**:确保所有智能体在最佳清晰度和更新信息下工作
174
174
  - **即时解决**:在同一操作周期内解决问题和异常
175
175
 
@@ -113,12 +113,14 @@ Levels are derived from the two thresholds:
113
113
 
114
114
  ## v3 Remediation Semantics (Driver-enforced)
115
115
 
116
- ### Continuation package (“接续包”)
116
+ ### Continuation package
117
117
 
118
118
  The remediation workflow centers around a _continuation package_ (a scannable, actionable bundle of
119
- context that survives a new course). When the agent is still clear-headed, this should preferably be
120
- kept as **one structured reminder**. But when the agent is already muddled in caution/critical,
121
- multiple rough reminders are acceptable as a bridge.
119
+ context that survives a new course). The agent must not self-assess whether it is “still
120
+ clear-headed” or “already muddled” because that judgment is not reliable or auditable. The only
121
+ mechanical branch is whether the system has put the current course into `caution` / `critical`
122
+ remediation. Outside remediation, prefer **one structured reminder**. During remediation, rough
123
+ multi-reminder carry-over is acceptable as a bridge.
122
124
 
123
125
  Recommended structure (multi-line but compact; focus on details not covered in Taskdoc):
124
126
 
@@ -130,10 +132,13 @@ Recommended structure (multi-line but compact; focus on details not covered in T
130
132
  Rules:
131
133
 
132
134
  - Keep normal reminders concise and few.
133
- - When preparing a new course, prefer compressing into one continuation-package reminder if the
134
- agent is still clear-headed.
135
- - If the agent is already muddled, prioritize preserving volatile information even via multiple rough
136
- reminders; in the next course, the first action should be to review, merge, and delete redundancy.
135
+ - Do not let the agent branch on subjective self-assessment such as “clear-headed” vs “muddled”.
136
+ - When the current course is not under `caution` / `critical` remediation, prefer compressing into
137
+ one structured continuation-package reminder.
138
+ - When the system has put the current course into `caution` / `critical` remediation, prioritize
139
+ preserving volatile information even via multiple rough reminders; in the current course, only
140
+ preserve info and `clear_mind`. Once the system actually starts the next course, the first step
141
+ is to review, merge, and delete redundancy.
137
142
  - Do not duplicate Taskdoc content except for a short bridge when strictly needed.
138
143
  - Do not paste long raw logs/tool outputs into the continuation package.
139
144
 
@@ -150,7 +155,7 @@ Current behavior:
150
155
  generations; configurable per model).
151
156
  - Each inserted prompt requires the agent to **curate reminders** (at least one call):
152
157
  - `update_reminder` (preferred) / `add_reminder`
153
- - Prefer a structured continuation-package reminder; if already muddled, rough multi-reminder carry-over is acceptable
158
+ - Default to one structured continuation-package reminder; if the current course is already under remediation and one structured reminder cannot be produced directly from already observed facts, rough multi-reminder carry-over is acceptable
154
159
  - Then `clear_mind` when it becomes scannable/actionable
155
160
 
156
161
  ### Critical (red)
@@ -159,7 +164,7 @@ When `level === 'critical'`, the driver enters a **countdown remediation** (max
159
164
 
160
165
  - On each turn, the driver records a **role=user prompt** (persisted as a user message) that is
161
166
  visible in the UI as a user prompt. This prompt tells the agent to:
162
- - curate reminders via `update_reminder` / `add_reminder`, preferably into a continuation-package reminder but allowing rough multi-reminder carry-over when already muddled, and
167
+ - curate reminders via `update_reminder` / `add_reminder`, preferably into a continuation-package reminder but allowing rough multi-reminder carry-over when the current course is already under remediation and a single structured reminder cannot be produced directly from already observed facts, and
163
168
  - then call `clear_mind` to start a new course.
164
169
  - The prompt includes a countdown: after **N** turns the system will automatically clear.
165
170
  - When the countdown reaches 0, the driver **automatically calls** `clear_mind` (with empty args; no
@@ -186,10 +191,26 @@ Suggested visual states:
186
191
  - **Critical** (red)
187
192
  - **Unknown** (gray)
188
193
 
189
- Note (zh UI copy):
194
+ ### Canonical bilingual status mapping
190
195
 
191
- - `caution` “吃紧”
192
- - `critical` → “告急”
196
+ To avoid ad hoc translations in docs, prompts, and UI copy, this status set uses the following
197
+ canonical mapping:
198
+
199
+ | Internal state | Canonical English | Canonical Chinese UI copy | Notes |
200
+ | -------------- | ----------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
201
+ | `healthy` | `Healthy` | `充裕` | Means the prompt is still comfortably below the soft threshold; the Chinese UI label is not `健康`. |
202
+ | `caution` | `Caution` | `吃紧` | Means the prompt is past the soft threshold and reminder curation should start; the Chinese UI label is not `警告`. |
203
+ | `critical` | `Critical` | `告急` | Means the dialog is in the high-risk zone and driver-enforced countdown remediation applies; the Chinese UI label is not `严重`. |
204
+ | `unknown` | `Unknown` | `未知` | Means usage stats for the turn are unavailable, so context health cannot be determined. |
205
+
206
+ Additional constraints:
207
+
208
+ - English docs and prompts should use `Healthy / Caution / Critical / Unknown` as the canonical
209
+ English labels.
210
+ - When an English doc needs to mention the Chinese counterpart, it should use the exact Chinese UI
211
+ labels above (`充裕 / 吃紧 / 告急 / 未知`) rather than improvised near-synonyms.
212
+ - Chinese explanatory prose may still describe the semantics in other words, but those alternate
213
+ words should not replace the canonical status labels in UI/spec text.
193
214
 
194
215
  ## Implementation Outline
195
216
 
@@ -210,7 +231,7 @@ Note (zh UI copy):
210
231
  - `caution`: driver inserts a persisted role=user prompt (UI-visible user instruction).
211
232
  On entering `caution` it inserts once; while still `caution` it reinserts on a cadence (default: every
212
233
  10 generations; configurable per model). Each time, the agent must call at least one of
213
- `update_reminder` / `add_reminder` and preserve a continuation package. A single structured reminder is preferred, but multiple rough reminders are acceptable when already muddled; in the new course the agent should reconcile them first, then `clear_mind` when ready.
234
+ `update_reminder` / `add_reminder` and preserve a continuation package. A single structured reminder is preferred when the current course is not under remediation pressure; during remediation, multiple rough reminders are acceptable if they can be written directly from already observed facts without further reading/analysis. In the new course the agent should reconcile them first, then `clear_mind` when ready.
214
235
  - `critical`: driver runs a countdown remediation (max 5 turns) using **recorded role=user prompts**.
215
236
  Each prompt includes a countdown and instructs reminder curation + `clear_mind`. When the countdown
216
237
  reaches 0, the driver auto-executes `clear_mind` and starts a new course (no Q4H, no suspension).
@@ -100,13 +100,22 @@ Dominds 计算比率:
100
100
 
101
101
  恢复工作流围绕一个**接续包**(一个可扫描的、可操作的上下文束)展开,该束在新一程对话中存活。
102
102
 
103
- 推荐结构(多行;按任务规模缩放;聚焦于差遣牒(Taskdoc)中未涵盖的细节):
103
+ 推荐结构(多行;按任务规模缩放;聚焦于差遣牒中未涵盖的细节):
104
104
 
105
105
  - 第一个可操作步骤
106
106
  - 关键指针(文件/符号/搜索词)
107
107
  - 运行/验证(命令、端口、环境变量)
108
108
  - 容易丢失的临时细节(路径/ID/URL/示例输入)
109
109
 
110
+ 规则:
111
+
112
+ - 普通提醒项保持简短且少量。
113
+ - 不允许智能体靠主观感觉判断自己“头脑清楚”还是“已经发乱”;这两种说法没有可靠、可审计的客观判据。
114
+ - 机制性分流规则只有一个:看**系统是否已将当前程置于上下文健康处置态**。若当前没有 `caution/critical` 处置指令,则默认优先压缩成一个结构化接续包提醒项。
115
+ - 一旦系统已将当前程置于 `caution/critical` 处置态,当前程的目标就切换为“保住易丢信息并尽快 `clear_mind`”,此时允许多条粗略提醒项过桥;系统真正开启新一程后,第一步再复核、合并并删除冗余。
116
+ - 除非确有必要,不要重复差遣牒已覆盖的内容。
117
+ - 不要把长原始日志/大段 tool output 直接塞进接续包。
118
+
110
119
  ### 警告(黄色)
111
120
 
112
121
  当 `level === 'caution'` 时,驱动程序在**下一个** LLM 生成轮次自动插入一条 **role=user** 指导提示,并**将其持久化为普通用户消息**,以便 UI 将其渲染为正常的用户指令。
@@ -145,15 +154,27 @@ Dominds 计算比率:
145
154
 
146
155
  建议的视觉状态:
147
156
 
148
- - **健康**(绿色)
149
- - **警告**(黄色)
150
- - **严重**(红色)
157
+ - **充裕**(绿色)
158
+ - **吃紧**(黄色)
159
+ - **告急**(红色)
151
160
  - **未知**(灰色)
152
161
 
153
- 注意(中文 UI 文案):
162
+ ### 状态术语对照(规范)
163
+
164
+ 为避免在文档、提示词、UI 文案里出现“看似正确但并非正规对应”的翻译,这组状态词统一按下表使用:
165
+
166
+ | 内部状态值 | 英文规范文案 | 中文 UI 文案 | 说明 |
167
+ | ---------- | ------------ | ------------ | -------------------------------------------------------------------------------- |
168
+ | `healthy` | `Healthy` | `充裕` | 表示上下文距离软线仍有明显余量;中文 UI 不使用“健康”作为正式标签。 |
169
+ | `caution` | `Caution` | `吃紧` | 表示已越过软线、需要开始整理与收敛;中文 UI 不使用“警告”作为正式标签。 |
170
+ | `critical` | `Critical` | `告急` | 表示已进入高风险区,驱动程序会执行倒计时恢复;中文 UI 不使用“严重”作为正式标签。 |
171
+ | `unknown` | `Unknown` | `未知` | 表示本轮缺少可用 usage 统计,无法判断上下文健康度。 |
172
+
173
+ 补充约束:
154
174
 
155
- - `caution` "吃紧"
156
- - `critical` "告急"
175
+ - 在中文文档/提示词/UI 中,涉及这组**正式状态名称**时,应优先使用 `充裕 / 吃紧 / 告急 / 未知`。
176
+ - `健康 / 警告 / 严重` 这类词只可作为解释性描述,不应再作为正式按钮文案、状态标签或规范对照译名。
177
+ - 英文文档在提到中文对应词时,应明确引用上述正式中文 UI 文案,避免自行译成其他近义词。
157
178
 
158
179
  ## 实现大纲
159
180
 
@@ -136,13 +136,13 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
136
136
 
137
137
  **2. 以任务为中心的专注架构**
138
138
 
139
- - **中央差遣牒(Taskdoc)**:任务实时协调的公告板;目标/约束/进度的单一真实来源(关键决策与下一步必须写回 `progress`)
139
+ - **中央差遣牒**:任务实时协调的公告板;目标/约束/进度的单一真实来源(关键决策与下一步必须写回 `progress`)
140
140
  - **动态上下文窗口**:时间限制的上下文保留
141
141
  - **基于优先级的信息过滤**:自动排名上下文相关性
142
142
 
143
- 术语:本文统一使用“差遣牒(Taskdoc)”指代任务契约与实时协调公告板;它不是个人草稿本。
143
+ 术语:本文统一使用“差遣牒”指代任务契约与实时协调公告板;它不是个人草稿本。
144
144
 
145
- ### 差遣牒(Taskdoc)结构
145
+ ### 差遣牒结构
146
146
 
147
147
  ```
148
148
  差遣牒结构:
@@ -187,7 +187,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
187
187
  ```
188
188
  触发:需要复杂的技术决策
189
189
  新鲜会话:
190
- - 加载差遣牒(Taskdoc)+ 技术要求
190
+ - 加载差遣牒 + 技术要求
191
191
  - 专注:"分析可行性并推荐方法"
192
192
  - 输出:带有推理的清晰技术建议
193
193
  ```
@@ -197,7 +197,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
197
197
  ```
198
198
  触发:需要新想法或解决方案
199
199
  新鲜会话:
200
- - 仅加载差遣牒(Taskdoc)+ 问题陈述
200
+ - 仅加载差遣牒 + 问题陈述
201
201
  - 专注:"在不受约束偏见影响的情况下产生创新方法"
202
202
  - 输出:带有理由的创意解决方案列表
203
203
  ```
@@ -207,7 +207,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
207
207
  ```
208
208
  触发:需要验证当前方法
209
209
  新鲜会话:
210
- - 加载差遣牒(Taskdoc)+ 当前解决方案尝试
210
+ - 加载差遣牒 + 当前解决方案尝试
211
211
  - 专注:"识别薄弱环节和改进机会"
212
212
  - 输出:批判性分析和建议
213
213
  ```
@@ -304,7 +304,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
304
304
  **新鲜度级别:**
305
305
 
306
306
  1. **级别 0**:当前智能体状态
307
- 2. **级别 1**:干净智能体 + 差遣牒(Taskdoc)(标准初心)
307
+ 2. **级别 1**:干净智能体 + 差遣牒(标准初心)
308
308
  3. **级别 2**:完全重置的智能体,只有问题陈述
309
309
  4. **级别 3**:具有不同训练重点的新智能体实例
310
310
 
@@ -318,7 +318,7 @@ Dominds 为 AI 智能体实现了**社会分工**——一种通过战略性心
318
318
 
319
319
  **以任务为中心的新鲜会话:**
320
320
 
321
- - 所有新鲜推理会话引用相同的中央差遣牒(Taskdoc)
321
+ - 所有新鲜推理会话引用相同的中央差遣牒
322
322
  - 确保多个专注推理尝试的一致性
323
323
  - 允许认知重置的同时保持连续性线索
324
324
 
@@ -395,9 +395,9 @@ subdialogs_created: 1
395
395
  status: 'completed'
396
396
  ```
397
397
 
398
- ### 差遣牒(Taskdoc)存储
398
+ ### 差遣牒存储
399
399
 
400
- 差遣牒(Taskdoc)是独立存在的 rtws 工件,对话通过路径引用它们。实践上,差遣牒也是跨主线/跨智能体的**任务实时协调公告板**。差遣牒必须是封装的 `*.tsk/` 任务包。
400
+ 差遣牒是独立存在的 rtws 工件,对话通过路径引用它们。实践上,差遣牒也是跨主线/跨智能体的**任务实时协调公告板**。差遣牒必须是封装的 `*.tsk/` 任务包。
401
401
 
402
402
  ```yaml
403
403
  # 在 dialog.yaml 中
@@ -456,7 +456,7 @@ taskdocChecksum: 'sha256:abc123...'
456
456
  4. 使用序列化的 DialogID 写入初始 `dialog.yaml` 元数据
457
457
  5. 将 `latest.yaml` 初始化为 `currentCourse: 1`
458
458
  6. 创建空的 `reminders.json`
459
- 7. 设置差遣牒(Taskdoc)路径引用
459
+ 7. 设置差遣牒路径引用
460
460
 
461
461
  ### 消息持久化
462
462
 
@@ -472,7 +472,7 @@ taskdocChecksum: 'sha256:abc123...'
472
472
  - `selfDlgId`:新生成的子对话 ID
473
473
  - `rootDlgId`:从 supdialog 的 `rootDlgId` 继承
474
474
  3. 在父级的 `subdialogs/` 下创建子对话目录(仅使用 `selfDlgId` 作为目录名)
475
- 4. 从父级设置差遣牒(Taskdoc)路径引用
475
+ 4. 从父级设置差遣牒路径引用
476
476
  5. 在元数据中设置父调用上下文
477
477
  6. 初始化子对话状态,元数据中仅存储 `selfDlgId`
478
478
  7. 加载时基于目录结构重建完整的 `DialogID` 和 `rootDlgId`
@@ -36,7 +36,7 @@ A **supdialog** (short for "super dialog") is the supdialog in a hierarchical di
36
36
 
37
37
  Note: **supdialog** is a structural parent in the dialog hierarchy. It is not the same as the **tellasker dialog** (the caller for the current Tellask). For TYPE A (`tellaskBack`), the tellasker dialog is the direct supdialog; for TYPE B/C, the tellasker dialog may be a different dialog.
38
38
 
39
- A supdialog may receive **TellaskBack** from its subdialogs during their task execution. When a subdialog needs guidance or additional context, it can Tellask back via `tellaskBack({ tellaskContent: "..." })` (TYPE A / `TellaskBack` / 回问诉请), which provides responses that feed back into the subdialog's context.
39
+ A supdialog may receive **TellaskBack** from its subdialogs during their task execution. When a subdialog needs guidance or additional context, it can Tellask back via `tellaskBack({ tellaskContent: "..." })` (TYPE A / `TellaskBack`), which provides responses that feed back into the subdialog's context.
40
40
 
41
41
  ### Subdialog
42
42
 
@@ -152,13 +152,13 @@ This section documents the three distinct types of teammate Tellasks in the Domi
152
152
  ```mermaid
153
153
  flowchart TD
154
154
  M[LLM emits tellaskSessionless({ targetAgentId: "mention", tellaskContent: "..." })] --> Q{Is this a subdialog Tellasking its direct supdialog (tellasker dialog for TYPE A)?}
155
- Q -- yes --> A[TYPE A: TellaskBack<br/>(`TellaskBack` / 回问诉请)<br/>Primary: tellaskBack({ tellaskContent: "..." }) (NO sessionSlug)]
155
+ Q -- yes --> A[TYPE A: TellaskBack<br/>(`TellaskBack`)<br/>Primary: tellaskBack({ tellaskContent: "..." }) (NO sessionSlug)]
156
156
  Q -- no --> T{Is sessionSlug present?}
157
- T -- yes --> B[TYPE B: Registered subdialog Tellask<br/>(`Tellask Session` / 长线诉请)<br/>tellask({ targetAgentId: "agentId", sessionSlug: "tellaskSession", tellaskContent: "..." })]
158
- T -- no --> C[TYPE C: Transient subdialog Tellask<br/>(`Fresh Tellask` / 一次性诉请)<br/>tellaskSessionless({ targetAgentId: "agentId", tellaskContent: "..." })]
157
+ T -- yes --> B[TYPE B: Registered subdialog Tellask<br/>(`Tellask Session` / Registered Session Tellask)<br/>tellask({ targetAgentId: "agentId", sessionSlug: "tellaskSession", tellaskContent: "..." })]
158
+ T -- no --> C[TYPE C: Transient subdialog Tellask<br/>(`Fresh Tellask` / One-shot Tellask)<br/>tellaskSessionless({ targetAgentId: "agentId", tellaskContent: "..." })]
159
159
  ```
160
160
 
161
- ### TYPE A: TellaskBack (Type A / `TellaskBack` / 回问诉请)
161
+ ### TYPE A: TellaskBack (Type A / `TellaskBack`)
162
162
 
163
163
  **Primary syntax**: `tellaskBack({ tellaskContent: "..." })` (NO `sessionSlug`) — `tellaskBack({ tellaskContent: "..." }) sessionSlug ...` is a **syntax error**
164
164
 
@@ -185,7 +185,7 @@ flowchart TD
185
185
  **Sideline delivery rule (normative)**:
186
186
 
187
187
  - If a sideline dialog has completed all assigned goals and can deliver the final result, it MUST reply directly with the response body; do not use `tellaskBack` to send final delivery.
188
- - Runtime treats that direct reply as the completion delivery to the tellasker dialog and injects `【最终完成】` into the transfer payload automatically.
188
+ - Runtime treats that direct reply as the completion delivery to the tellasker dialog and injects the work-language marker automatically (`【Completed】` in English work language, and the localized Chinese completion marker in Chinese work language).
189
189
  - If any goal is incomplete, the dialog is blocked, or critical context is missing, it MUST issue `tellaskBack({ tellaskContent: "..." })` to request clarification or next-step confirmation before proceeding.
190
190
  - **FBR exception**: FBR sideline dialogs are tellask-free (no `tellaskBack`); they must list missing context and return.
191
191
 
@@ -193,9 +193,14 @@ flowchart TD
193
193
 
194
194
  - Runtime builds a canonical inter-dialog transfer payload for teammate replies; this payload is delivered to target-agent context, and UI must show the same payload verbatim.
195
195
  - First-line markers are runtime-injected into that transfer payload by semantics; agents must not hand-write them:
196
- - Ask-back reply: `【tellaskBack】`
197
- - Regular completed sideline reply: `【最终完成】`
198
- - FBR sideline reply: `【FBR-直接回复】` or `【FBR-仅推理】`
196
+ - English work language:
197
+ - Ask-back reply: `【TellaskBack】`
198
+ - Regular completed sideline reply: `【Completed】`
199
+ - FBR sideline reply: `【FBR-Direct Reply】` or `【FBR-Reasoning Only】`
200
+ - Chinese work language:
201
+ - Ask-back reply: `【TellaskBack】`
202
+ - Regular completed sideline reply: `【Completed】`
203
+ - FBR sideline reply: `【FBR-Direct Reply】` or `【FBR-Reasoning Only】`
199
204
  - Source-dialog model raw is naturally preserved in source-dialog persistence; inter-dialog transfer must not rewrite or overwrite that source raw.
200
205
  - Template-wrapped transfer is allowed: a model output from one dialog may be embedded into a runtime template and sent as the body to another dialog.
201
206
 
@@ -221,7 +226,7 @@ Result:
221
226
  - sub-001 resumes with orchestrator's response
222
227
  ```
223
228
 
224
- ### TYPE B: Registered Subdialog Tellask (Type B / `Tellask Session` / 长线诉请)
229
+ ### TYPE B: Registered Subdialog Tellask (Type B / `Tellask Session` / Registered Session Tellask)
225
230
 
226
231
  **Syntax**: `tellask({ targetAgentId: "<anyAgentId>", sessionSlug: "<tellaskSession>", tellaskContent: "..." })` (note the space before `sessionSlug`)
227
232
 
@@ -297,7 +302,7 @@ Result (second call):
297
302
  - orchestrator resumes
298
303
  ```
299
304
 
300
- ### TYPE C: Transient Subdialog Tellask (Type C / `Fresh Tellask` / 一次性诉请)
305
+ ### TYPE C: Transient Subdialog Tellask (Type C / `Fresh Tellask` / One-shot Tellask)
301
306
 
302
307
  **Syntax**: `tellaskSessionless({ targetAgentId: "<nonSupdialogAgentId>", tellaskContent: "..." })` (NO `sessionSlug`)
303
308
 
@@ -965,12 +970,12 @@ interface RegistryMethods {
965
970
  At the start of every subdialog course, the runtime must prepend a role header to the assignment prompt:
966
971
 
967
972
  - EN: `You are the responder (tellaskee dialog) for this dialog; the tellasker dialog is @xxx (the current caller).`
968
- - ZH: `你是当前被诉请者对话(tellaskee dialog)的主理人;诉请者对话(tellasker dialog)为 @xxx(当前发起本次诉请)。`
973
+ - Chinese variant: see [the Chinese doc](./dialog-system.zh.md) for the corresponding work-language header.
969
974
 
970
975
  **FBR special handling**: FBR is a self-subdialog and must keep a dedicated header to avoid confusion:
971
976
 
972
977
  - EN (example): `This is an FBR sideline dialog; the tellasker dialog is @xxx (may be the same agent).`
973
- - ZH(示例): `这是一次 FBR 支线对话;诉请者对话为 @xxx(可能与当前对话同一 agent)。`
978
+ - Chinese variant example: see [the Chinese doc](./dialog-system.zh.md) for the corresponding FBR header example.
974
979
 
975
980
  **Insertion point**: prefer a single insertion point by updating `formatAssignmentFromSupdialog()` (covers `dialog.ts`, `tellask-bridge`).
976
981
  Frontend twin must stay in sync: `dominds/webapp/src/shared/utils/inter-dialog-format.ts`.
@@ -1325,7 +1330,7 @@ sequenceDiagram
1325
1330
  Sub-->>Sup: supply response (resume root)
1326
1331
  ```
1327
1332
 
1328
- ### 3. Registered Subdialog Tellask (TYPE B / `Tellask Session` / 长线诉请)
1333
+ ### 3. Registered Subdialog Tellask (TYPE B / `Tellask Session` / Registered Session Tellask)
1329
1334
 
1330
1335
  ```mermaid
1331
1336
  sequenceDiagram