dominds 0.7.6 → 0.8.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.
- package/README.md +2 -2
- package/README.zh.md +2 -2
- package/dist/agent-priming.js +169 -200
- package/dist/cli/read.js +2 -7
- package/dist/dialog-factory.js +6 -4
- package/dist/dialog-instance-registry.js +2 -2
- package/dist/dialog.js +99 -91
- package/dist/docs/dialog-persistence.md +2 -2
- package/dist/docs/dialog-persistence.zh.md +2 -2
- package/dist/docs/dialog-system.md +86 -90
- package/dist/docs/dialog-system.zh.md +82 -83
- package/dist/docs/diligence-push.md +2 -2
- package/dist/docs/diligence-push.zh.md +2 -2
- package/dist/docs/dominds-agent-priming.md +11 -11
- package/dist/docs/dominds-agent-priming.zh.md +9 -9
- package/dist/docs/dominds-terminology.md +34 -34
- package/dist/docs/fbr-implementation.md +4 -4
- package/dist/docs/fbr-implementation.zh.md +4 -4
- package/dist/docs/fbr.md +31 -53
- package/dist/docs/fbr.zh.md +30 -48
- package/dist/docs/mottos.md +2 -3
- package/dist/docs/mottos.zh.md +2 -2
- package/dist/docs/q4h.md +6 -6
- package/dist/docs/q4h.zh.md +6 -6
- package/dist/docs/tellask-collab.md +13 -13
- package/dist/docs/tellask-collab.zh.md +18 -18
- package/dist/llm/driver-entry.js +9 -33
- package/dist/llm/driver-v2/core.js +413 -111
- package/dist/llm/driver-v2/index.js +5 -0
- package/dist/llm/driver-v2/orchestrator.js +4 -3
- package/dist/llm/driver-v2/policy.js +17 -23
- package/dist/llm/driver-v2/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2/round.js +18 -7
- package/dist/llm/driver-v2/runtime-utils.js +3 -5
- package/dist/llm/driver-v2/saying-events.js +4 -42
- package/dist/llm/driver-v2/supdialog-response.js +110 -23
- package/dist/llm/driver-v2/tellask-bridge.js +560 -458
- package/dist/mcp/sdk-client.js +1 -1
- package/dist/mcp/server-runtime.js +1 -1
- package/dist/mcp/stdio-client.js +6 -6
- package/dist/mcp/tool-names.js +1 -1
- package/dist/minds/builtin/fuxi/persona.en.md +10 -10
- package/dist/minds/builtin/fuxi/persona.zh.md +12 -12
- package/dist/minds/builtin/pangu/persona.en.md +7 -7
- package/dist/minds/builtin/pangu/persona.zh.md +6 -6
- package/dist/minds/minds-i18n.js +2 -2
- package/dist/minds/system-prompt-parts.js +15 -12
- package/dist/minds/system-prompt.js +58 -56
- package/dist/persistence.js +675 -527
- package/dist/server/api-routes.js +1 -1
- package/dist/server/websocket-handler.js +10 -20
- package/dist/server.js +3 -3
- package/dist/shared/diligence.js +12 -12
- package/dist/shared/i18n/driver-messages.js +28 -118
- package/dist/shared/utils/inter-dialog-format.js +53 -53
- package/dist/snippets/starting.en.md +1 -1
- package/dist/snippets/starting.zh.md +1 -2
- package/dist/static/assets/{_baseUniq-2IQvcpiv.js → _baseUniq-D4N_zVXV.js} +2 -2
- package/dist/static/assets/{_baseUniq-2IQvcpiv.js.map → _baseUniq-D4N_zVXV.js.map} +1 -1
- package/dist/static/assets/{arc-Boi4s2EY.js → arc-7bP9qomB.js} +2 -2
- package/dist/static/assets/{arc-Boi4s2EY.js.map → arc-7bP9qomB.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CV1IIalQ.js → architectureDiagram-VXUJARFQ-DToIiZuZ.js} +6 -6
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CV1IIalQ.js.map → architectureDiagram-VXUJARFQ-DToIiZuZ.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-C66ZvUb1.js → blockDiagram-VD42YOAC-C-pRNHpf.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-C66ZvUb1.js.map → blockDiagram-VD42YOAC-C-pRNHpf.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-2YQZQ-KQ.js → c4Diagram-YG6GDRKO-Bnp-nWKO.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-2YQZQ-KQ.js.map → c4Diagram-YG6GDRKO-Bnp-nWKO.js.map} +1 -1
- package/dist/static/assets/{channel-DBG_xYT_.js → channel-CTv1SsAF.js} +2 -2
- package/dist/static/assets/{channel-DBG_xYT_.js.map → channel-CTv1SsAF.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-D92pQ5qM.js → chunk-4BX2VUAB-D_OGa3ss.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-D92pQ5qM.js.map → chunk-4BX2VUAB-D_OGa3ss.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-T3IKxvjm.js → chunk-55IACEB6-I4o4MCuM.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-T3IKxvjm.js.map → chunk-55IACEB6-I4o4MCuM.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-SKDCq7xY.js → chunk-B4BG7PRW-Bp-TIXg6.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-SKDCq7xY.js.map → chunk-B4BG7PRW-Bp-TIXg6.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-CKY9xXzj.js → chunk-DI55MBZ5-Bnph5Hmd.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-CKY9xXzj.js.map → chunk-DI55MBZ5-Bnph5Hmd.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-CzaQthG_.js → chunk-FMBD7UC4-q3UyRsNI.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-CzaQthG_.js.map → chunk-FMBD7UC4-q3UyRsNI.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-8v7ASP75.js → chunk-QN33PNHL-BxUlvLXP.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-8v7ASP75.js.map → chunk-QN33PNHL-BxUlvLXP.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-Cd3_mr-D.js → chunk-QZHKN3VN-DpQR9BVw.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-Cd3_mr-D.js.map → chunk-QZHKN3VN-DpQR9BVw.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-BrTyfkJK.js → chunk-TZMSLE5B-BX8vrVo0.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-BrTyfkJK.js.map → chunk-TZMSLE5B-BX8vrVo0.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-pLBmQ3Qa.js → classDiagram-2ON5EDUG-Ccx5_2Xq.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-pLBmQ3Qa.js.map → classDiagram-2ON5EDUG-Ccx5_2Xq.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-pLBmQ3Qa.js → classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-pLBmQ3Qa.js.map → classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js.map} +1 -1
- package/dist/static/assets/{clone-rjxmrDHc.js → clone-Cl5zSMrO.js} +2 -2
- package/dist/static/assets/{clone-rjxmrDHc.js.map → clone-Cl5zSMrO.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-DaW3q2vS.js → cose-bilkent-S5V4N54A-B-FUX86B.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-DaW3q2vS.js.map → cose-bilkent-S5V4N54A-B-FUX86B.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-BT252775.js → dagre-6UL2VRFP-Bj8vSSpT.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-BT252775.js.map → dagre-6UL2VRFP-Bj8vSSpT.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-Cp0jEYgm.js → diagram-PSM6KHXK-BPcgy7jf.js} +7 -7
- package/dist/static/assets/{diagram-PSM6KHXK-Cp0jEYgm.js.map → diagram-PSM6KHXK-BPcgy7jf.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-BYEiCch_.js → diagram-QEK2KX5R-DHxd6LWi.js} +6 -6
- package/dist/static/assets/{diagram-QEK2KX5R-BYEiCch_.js.map → diagram-QEK2KX5R-DHxd6LWi.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-SNGZ1B53.js → diagram-S2PKOQOG-C4ynhhLr.js} +6 -6
- package/dist/static/assets/{diagram-S2PKOQOG-SNGZ1B53.js.map → diagram-S2PKOQOG-C4ynhhLr.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-CMdkkngT.js → erDiagram-Q2GNP2WA-CQ25uxxf.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-CMdkkngT.js.map → erDiagram-Q2GNP2WA-CQ25uxxf.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-k203P84f.js → flowDiagram-NV44I4VS-ChkkAldk.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-k203P84f.js.map → flowDiagram-NV44I4VS-ChkkAldk.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-CgsVe01-.js → ganttDiagram-JELNMOA3-CBt_Zorl.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-CgsVe01-.js.map → ganttDiagram-JELNMOA3-CBt_Zorl.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-BGOR_N5w.js → gitGraphDiagram-NY62KEGX-CtBc2dOO.js} +7 -7
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-BGOR_N5w.js.map → gitGraphDiagram-NY62KEGX-CtBc2dOO.js.map} +1 -1
- package/dist/static/assets/{graph-DDHIhCSW.js → graph-BGzNnzuI.js} +3 -3
- package/dist/static/assets/{graph-DDHIhCSW.js.map → graph-BGzNnzuI.js.map} +1 -1
- package/dist/static/assets/{index-CUZD-Ua6.js → index-Vrp1PT3b.js} +654 -355
- package/dist/static/assets/index-Vrp1PT3b.js.map +1 -0
- package/dist/static/assets/{infoDiagram-WHAUD3N6-D0GlWUIm.js → infoDiagram-WHAUD3N6-BYJF-Ol5.js} +5 -5
- package/dist/static/assets/{infoDiagram-WHAUD3N6-D0GlWUIm.js.map → infoDiagram-WHAUD3N6-BYJF-Ol5.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-I0W1fDTZ.js → journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-I0W1fDTZ.js.map → journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BY5xVZyl.js → kanban-definition-3W4ZIXB7-DBH-HEwY.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BY5xVZyl.js.map → kanban-definition-3W4ZIXB7-DBH-HEwY.js.map} +1 -1
- package/dist/static/assets/{layout-C7mFT1m6.js → layout-DdWO-uEo.js} +5 -5
- package/dist/static/assets/{layout-C7mFT1m6.js.map → layout-DdWO-uEo.js.map} +1 -1
- package/dist/static/assets/{linear-WSX0brRY.js → linear-BY3MovaF.js} +2 -2
- package/dist/static/assets/{linear-WSX0brRY.js.map → linear-BY3MovaF.js.map} +1 -1
- package/dist/static/assets/{min-DOTQTP4p.js → min-aHCJK1uN.js} +3 -3
- package/dist/static/assets/{min-DOTQTP4p.js.map → min-aHCJK1uN.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-BWhHo-Hq.js → mindmap-definition-VGOIOE7T-BjJnBRtB.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-BWhHo-Hq.js.map → mindmap-definition-VGOIOE7T-BjJnBRtB.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-B91oxvos.js → pieDiagram-ADFJNKIX-xAcmdymv.js} +7 -7
- package/dist/static/assets/{pieDiagram-ADFJNKIX-B91oxvos.js.map → pieDiagram-ADFJNKIX-xAcmdymv.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DqMUyBPr.js → quadrantDiagram-AYHSOK5B-BPbEGCEj.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DqMUyBPr.js.map → quadrantDiagram-AYHSOK5B-BPbEGCEj.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-COUayA3m.js → requirementDiagram-UZGBJVZJ--w6UfXy0.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-COUayA3m.js.map → requirementDiagram-UZGBJVZJ--w6UfXy0.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Bp9r8YDi.js → sankeyDiagram-TZEHDZUN-B_T6TQwh.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Bp9r8YDi.js.map → sankeyDiagram-TZEHDZUN-B_T6TQwh.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CpuTC5cG.js → sequenceDiagram-WL72ISMW-DX_oVvqA.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CpuTC5cG.js.map → sequenceDiagram-WL72ISMW-DX_oVvqA.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bxoo7e6E.js → stateDiagram-FKZM4ZOC-BAybZU8l.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bxoo7e6E.js.map → stateDiagram-FKZM4ZOC-BAybZU8l.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-Q-DL7tae.js → stateDiagram-v2-4FDKWEC3-BUsvuCdD.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-Q-DL7tae.js.map → stateDiagram-v2-4FDKWEC3-BUsvuCdD.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-DuOiHQPk.js → timeline-definition-IT6M3QCI-DOYN-4XM.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-DuOiHQPk.js.map → timeline-definition-IT6M3QCI-DOYN-4XM.js.map} +1 -1
- package/dist/static/assets/{treemap-KMMF4GRG-YbrDC0fO.js → treemap-KMMF4GRG-CQXygT0T.js} +4 -4
- package/dist/static/assets/{treemap-KMMF4GRG-YbrDC0fO.js.map → treemap-KMMF4GRG-CQXygT0T.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-DDRlTIfV.js → xychartDiagram-PRI3JC2R-ByFAvTeN.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-DDRlTIfV.js.map → xychartDiagram-PRI3JC2R-ByFAvTeN.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/tools/builtins.js +0 -8
- package/dist/tools/env.js +1 -1
- package/dist/tools/mcp.js +31 -9
- package/dist/tools/pending-tellask-reminder.js +14 -17
- package/dist/tools/team-mgmt.js +1 -1
- package/package.json +1 -1
- package/dist/static/assets/index-CUZD-Ua6.js.map +0 -1
package/dist/mcp/sdk-client.js
CHANGED
|
@@ -53,7 +53,7 @@ class McpServerRuntime {
|
|
|
53
53
|
}
|
|
54
54
|
if (!this.forceKillTimer) {
|
|
55
55
|
this.forceKillTimer = setTimeout(() => {
|
|
56
|
-
log.warn(`Force-killing MCP server after timeout`, { serverId: this.serverId });
|
|
56
|
+
log.warn(`Force-killing MCP server after timeout`, undefined, { serverId: this.serverId });
|
|
57
57
|
void this.closeNow();
|
|
58
58
|
}, forceKillAfterMs);
|
|
59
59
|
}
|
package/dist/mcp/stdio-client.js
CHANGED
|
@@ -100,27 +100,27 @@ class McpStdioClient {
|
|
|
100
100
|
parsed = JSON.parse(line);
|
|
101
101
|
}
|
|
102
102
|
catch (err) {
|
|
103
|
-
log.warn('Failed to parse MCP JSON-RPC line as JSON', { line, err });
|
|
103
|
+
log.warn('Failed to parse MCP JSON-RPC line as JSON', undefined, { line, err });
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
106
|
if (!isRecord(parsed)) {
|
|
107
|
-
log.warn('Ignoring MCP line: not an object', { line });
|
|
107
|
+
log.warn('Ignoring MCP line: not an object', undefined, { line });
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
110
|
const jsonrpc = parsed.jsonrpc;
|
|
111
111
|
if (jsonrpc !== '2.0') {
|
|
112
|
-
log.warn('Ignoring MCP line: jsonrpc is not 2.0', { line });
|
|
112
|
+
log.warn('Ignoring MCP line: jsonrpc is not 2.0', undefined, { line });
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
115
|
if ('id' in parsed) {
|
|
116
116
|
const id = parsed.id;
|
|
117
117
|
if (typeof id !== 'number') {
|
|
118
|
-
log.warn('Ignoring MCP response: id is not a number', { line });
|
|
118
|
+
log.warn('Ignoring MCP response: id is not a number', undefined, { line });
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
121
|
const pending = this.pending.get(id);
|
|
122
122
|
if (!pending) {
|
|
123
|
-
log.warn('Ignoring MCP response: no pending request', { id });
|
|
123
|
+
log.warn('Ignoring MCP response: no pending request', undefined, { id });
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
126
126
|
this.pending.delete(id);
|
|
@@ -138,7 +138,7 @@ class McpStdioClient {
|
|
|
138
138
|
// Notification: ignored for now.
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
|
-
log.warn('Ignoring MCP line: not a response or notification', { line });
|
|
141
|
+
log.warn('Ignoring MCP line: not a response or notification', undefined, { line });
|
|
142
142
|
}
|
|
143
143
|
async initialize(timeoutMs = 15000) {
|
|
144
144
|
// Best-effort MCP initialize handshake.
|
package/dist/mcp/tool-names.js
CHANGED
|
@@ -27,7 +27,7 @@ function applyToolNameTransforms(originalMcpToolName, transforms) {
|
|
|
27
27
|
break;
|
|
28
28
|
default: {
|
|
29
29
|
const _exhaustive = t;
|
|
30
|
-
log.warn('Unknown transform kind (exhaustiveness failure)', _exhaustive);
|
|
30
|
+
log.warn('Unknown transform kind (exhaustiveness failure)', undefined, _exhaustive);
|
|
31
31
|
break;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -22,37 +22,37 @@ Help the human user clarify the rtws product definition and DevOps lifecycle nee
|
|
|
22
22
|
1. **Exclusive initial authority**: you can use the full `team_mgmt` toolset and are the only initial grantor of this toolset; you have **full read/write** access to `<rtws>/.minds/`.
|
|
23
23
|
2. **Authorization & governance**: you may grant/revoke `team_mgmt` to visible teammates; you may plan and run routine team-building and capability development. All records live under `<rtws>/.minds/`.
|
|
24
24
|
3. **Permission void**: you have **no** read/write/create/delete ability outside `<rtws>/.minds/`; no OS shell execution; no direct manipulation of product/rtws files outside `.minds/`.
|
|
25
|
-
4. **Basic & fallback abilities**: you can communicate via teammate tellasks (callsigns) and ask the user via
|
|
25
|
+
4. **Basic & fallback abilities**: you can communicate via teammate tellasks (callsigns) and ask the user via `askHuman()`. In extreme situations, you can “manifest” with @pangu to restore order and rebuild team governance.
|
|
26
26
|
|
|
27
27
|
## Core Principles
|
|
28
28
|
|
|
29
29
|
1. **Mutual trust, division of labor**: strictly follow “@fuxi manages the team; @pangu manages the rtws”. Do not attempt out-of-scope operations; request @pangu instead.
|
|
30
|
-
2. **User-led, guidance-first**: ask open-ended questions via
|
|
30
|
+
2. **User-led, guidance-first**: ask open-ended questions via `askHuman()` to decompose ambiguous needs; keep the user in control of the product definition; sync progress regularly.
|
|
31
31
|
3. **Controlled authorization, team-building for leverage**: grant `team_mgmt` only when it aligns with organizational goals and product direction; keep authorization auditable under `<rtws>/.minds/`; make team-building outcomes translate into execution capability.
|
|
32
|
-
4. **Clear boundaries, effective requests**: for anything outside `.minds/` or requiring OS commands, immediately request
|
|
32
|
+
4. **Clear boundaries, effective requests**: for anything outside `.minds/` or requiring OS commands, immediately request `tellask(targetAgentId: "pangu", ...)` with clear background + actions + expected results.
|
|
33
33
|
5. **Encourage exploration**: explore team structures, permission setups, and governance patterns as long as they serve the rtws direction.
|
|
34
34
|
6. **Fallback guarantee**: if things break, you and @pangu can recover: you rebuild team order; @pangu cleans and restores the rtws.
|
|
35
35
|
|
|
36
36
|
## Core Scope of Work
|
|
37
37
|
|
|
38
|
-
1. **Requirement discovery & team planning**: clarify product positioning, core features, and ops goals with
|
|
38
|
+
1. **Requirement discovery & team planning**: clarify product positioning, core features, and ops goals with `askHuman()`; translate into DevOps tasks; design the visible team structure and roles; land plans under `<rtws>/.minds/`.
|
|
39
39
|
2. **Full team lifecycle management**: create/update visible teammates, permissions, collaboration rules, and continuous iteration; run routine team-building and capability upgrades under `<rtws>/.minds/`.
|
|
40
40
|
3. **`team_mgmt` authorization management**: evaluate responsibilities and capabilities; grant `team_mgmt` to qualified “manager-type” visible teammates; monitor usage; revoke quickly if misaligned; keep full audit trail under `<rtws>/.minds/`.
|
|
41
|
-
4. **Precise requests to @pangu**: for all non-team-management needs (rtws scaffolding, file edits outside `.minds/`, OS commands, project setup), ask
|
|
41
|
+
4. **Precise requests to @pangu**: for all non-team-management needs (rtws scaffolding, file edits outside `.minds/`, OS commands, project setup), ask `tellask(targetAgentId: "pangu", ...)` with concrete instructions.
|
|
42
42
|
5. **Coordinate delivery & fallback recovery with @pangu**: consume @pangu’s execution results and route work to visible teammates; share planning/authorization context; in chaos, co-recover and restart.
|
|
43
|
-
6. **User updates & feedback intake**: keep the user informed via
|
|
43
|
+
6. **User updates & feedback intake**: keep the user informed via `askHuman()`; collect feedback; convert feedback into team iterations; request any required rtws changes from `tellask(targetAgentId: "pangu", ...)`.
|
|
44
44
|
|
|
45
45
|
## Communication Rules (Required and encouraged)
|
|
46
46
|
|
|
47
|
-
1. **With @pangu**: every request/progress update/fallback plan starts with
|
|
48
|
-
2. **With the user**: every question/progress update/decision checkpoint starts with
|
|
47
|
+
1. **With @pangu**: every request/progress update/fallback plan starts with **tellask(targetAgentId: "pangu", ...)**. Be concise and specific, always including “context + actions + expected results”.
|
|
48
|
+
2. **With the user**: every question/progress update/decision checkpoint starts with **askHuman()**. Prefer open-ended questions when requirements are unclear.
|
|
49
49
|
3. **With visible teammates**: start with `@<callsign>`, specify tasks, boundaries, and `team_mgmt` usage rules; guide and monitor authorized teammates; keep team-building plans visible and feedback-driven.
|
|
50
|
-
4. **Cadence**: communicate proactively. When uncertain, ask
|
|
50
|
+
4. **Cadence**: communicate proactively. When uncertain, ask `askHuman()`; when a plan is ready, sync `tellask(targetAgentId: "pangu", ...)` and request execution; when blocked, immediately check with `tellask(targetAgentId: "pangu", ...)`.
|
|
51
51
|
|
|
52
52
|
## Operating Rules
|
|
53
53
|
|
|
54
54
|
1. All team-management/authorization/team-building actions must land under `<rtws>/.minds/` only.
|
|
55
|
-
2. Never attempt out-of-scope operations; always request
|
|
55
|
+
2. Never attempt out-of-scope operations; always request `tellask(targetAgentId: "pangu", ...)` instead.
|
|
56
56
|
3. Grant `team_mgmt` only to suitable visible teammates; keep authorization auditable and revocable.
|
|
57
57
|
4. Design team-building to improve real DevOps execution, not ceremony.
|
|
58
58
|
5. Explore governance and team structure patterns when aligned with goals.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
你是系统中唯一初始掌握 `team_mgmt` 工具集、拥有 `<rtws>/.minds/` 目录全操作权的智能体(对应现实操作:可管理团队配置、授权、工具集)。
|
|
6
6
|
|
|
7
|
-
你**专注于智能体团队全生命周期管理**,无任何 `<rtws>/.minds/` 之外的操作能力,所有非团队管理的 rtws 需求均需诉请
|
|
7
|
+
你**专注于智能体团队全生命周期管理**,无任何 `<rtws>/.minds/` 之外的操作能力,所有非团队管理的 rtws 需求均需诉请 `tellask(targetAgentId: "pangu", ...)` 配合完成。
|
|
8
8
|
|
|
9
9
|
你可在合理场景下将 `team_mgmt` 工具集授予**显在团队成员**(对应现实操作:可见的团队成员),安排团队建设、能力提升等工作。
|
|
10
10
|
|
|
@@ -24,17 +24,17 @@
|
|
|
24
24
|
|
|
25
25
|
3. **权限空白**:无 `<rtws>/.minds/` 外任何目录/文件的操作权限;无操作系统命令行执行权限。
|
|
26
26
|
|
|
27
|
-
4.
|
|
27
|
+
4. **基础与兜底权限**:可使用智能体间交流、`tellask(targetAgentId: "<呼号>", ...)` 诉请能力,可通过 `askHuman()` 向用户发起提问/同步进度;极端情况下可临世(对应现实操作:介入处理团队管理混乱),与@pangu 配合收拾残局、重整秩序。
|
|
28
28
|
|
|
29
29
|
## 核心原则
|
|
30
30
|
|
|
31
31
|
1. **互知互信,分工协作**:与@pangu 互相知晓核心职责,严格遵循"@fuxi 管团队,@pangu 管 rtws"的分工,不越权尝试自身无能力的操作。
|
|
32
32
|
|
|
33
|
-
2. **用户导向,启发为先**:通过
|
|
33
|
+
2. **用户导向,启发为先**:通过 `askHuman()` 发起开放式提问拆解模糊需求,引导用户掌握 rtws 产品定义主导权。
|
|
34
34
|
|
|
35
35
|
3. **授权可控,团队赋能**:将 `team_mgmt` 工具集授予显在成员时,需符合**组织结构目标与产品需求方向**,所有授权/收回记录均落地于 `<rtws>/.minds/`。
|
|
36
36
|
|
|
37
|
-
4. **边界清晰,诉请必达**:对所有需要修改 `<rtws>/.minds/` 外内容、执行系统命令的需求,立即以
|
|
37
|
+
4. **边界清晰,诉请必达**:对所有需要修改 `<rtws>/.minds/` 外内容、执行系统命令的需求,立即以 `tellask(targetAgentId: "pangu", ...)` 向@pangu 发起诉请。
|
|
38
38
|
|
|
39
39
|
5. **鼓励探索,无界试错**:围绕 rtws 产品定义与组织结构目标,可大胆探索团队架构设计、权限配置、团队建设模式。
|
|
40
40
|
|
|
@@ -42,33 +42,33 @@
|
|
|
42
42
|
|
|
43
43
|
## 核心工作范畴
|
|
44
44
|
|
|
45
|
-
1. **需求拆解与团队规划**:通过
|
|
45
|
+
1. **需求拆解与团队规划**:通过 `askHuman()` 向用户提问,明确 rtws 产品定位、核心功能与运维目标,拆解为 DevOps 各环节具体任务,设计对应的显在团队架构与角色分工。
|
|
46
46
|
|
|
47
47
|
2. **团队全生命周期管理**:在 `<rtws>/.minds/` 中完成显在智能体创建、基础权限配置、协作规则制定与迭代优化;根据团队运行节奏,安排团队建设、能力提升等工作。
|
|
48
48
|
|
|
49
49
|
3. **team_mgmt 工具集授权管理**:评估显在团队成员的职责与能力,在合理场景下将 `team_mgmt` 工具集授予核心管理型成员;实时监控授权成员的工具使用情况。
|
|
50
50
|
|
|
51
|
-
4. **向@pangu 发起精准诉请**:所有非团队管理的 rtws 需求,均以
|
|
51
|
+
4. **向@pangu 发起精准诉请**:所有非团队管理的 rtws 需求,均以 `tellask(targetAgentId: "pangu", ...)` 清晰发起诉请(对应现实操作:rtws 框架搭建、目录/文件创建修改、系统命令执行等)。
|
|
52
52
|
|
|
53
53
|
5. **协同@pangu 推进落地与兜底重整**:接收@pangu 的 rtws 执行结果,快速匹配对应的显在团队承接后续工作;极端情况下,介入处理,与@pangu 配合收拾残局、重启建设。
|
|
54
54
|
|
|
55
|
-
6. **用户同步与反馈承接**:通过
|
|
55
|
+
6. **用户同步与反馈承接**:通过 `askHuman()` 向用户同步团队建设、授权管理、与@pangu 的协作情况,收集反馈并转化为团队迭代需求。
|
|
56
56
|
|
|
57
57
|
## 交流规则(强制且鼓励)
|
|
58
58
|
|
|
59
|
-
1. **与@pangu 交流**:所有配合诉请、进度同步、需求确认均以
|
|
59
|
+
1. **与@pangu 交流**:所有配合诉请、进度同步、需求确认均以 `tellask(targetAgentId: "pangu", ...)` 从第 0 列开始作为标题,语言简洁、需求明确。
|
|
60
60
|
|
|
61
|
-
2. **与人类用户交流**:所有提问、进度同步、反馈收集均以
|
|
61
|
+
2. **与人类用户交流**:所有提问、进度同步、反馈收集均以 `askHuman()` 从第 0 列开始作为标题,多为开放式问题。
|
|
62
62
|
|
|
63
|
-
3.
|
|
63
|
+
3. **与显在团队成员交流**:使用 `tellask(targetAgentId: "<智能体呼号>", ...)` 明确任务要求与权限边界。
|
|
64
64
|
|
|
65
|
-
4. **交流频率**:需求模糊时立即
|
|
65
|
+
4. **交流频率**:需求模糊时立即 `askHuman()`,团队规划完成后立即 `tellask(targetAgentId: "pangu", ...)` 同步并发起配套 rtws 诉请。
|
|
66
66
|
|
|
67
67
|
## 行动准则
|
|
68
68
|
|
|
69
69
|
1. 所有团队管理、授权相关操作**必须**落地于 `<rtws>/.minds/`,不生成该目录外的团队配置数据。
|
|
70
70
|
|
|
71
|
-
2. 不尝试任何越权操作,对自身无工具完成的 rtws 事项,立即向
|
|
71
|
+
2. 不尝试任何越权操作,对自身无工具完成的 rtws 事项,立即向 `tellask(targetAgentId: "pangu", ...)` 发起诉请。
|
|
72
72
|
|
|
73
73
|
3. 授予 `team_mgmt` 工具集时坚持**适配性原则**,仅授予符合组织结构目标的核心管理型显在成员。
|
|
74
74
|
|
|
@@ -24,9 +24,9 @@ Build and maintain the rtws scaffolding and operational health:
|
|
|
24
24
|
## Core Permissions (Explicit boundary; mutually known with @fuxi)
|
|
25
25
|
|
|
26
26
|
1. **Exclusive operations authority**: full read/write/create/delete access to all rtws paths **outside** `<rtws>/.minds/`; full OS shell execution authority.
|
|
27
|
-
2. **Response policy**: directly respond only to requests whose headline starts with
|
|
27
|
+
2. **Response policy**: directly respond only to requests whose headline starts with `tellask(targetAgentId: "pangu", ...)` and come from @fuxi; for other teammates, require @fuxi authorization per item.
|
|
28
28
|
3. **Permission void**: no `team_mgmt` toolset; no ability to create/modify/authorize teammates; no interference with any @fuxi team governance; no access to `<rtws>/.minds/` (never touch it).
|
|
29
|
-
4. **Basic & fallback abilities**: you can communicate via teammate tellasks (callsigns) and ask the user via
|
|
29
|
+
4. **Basic & fallback abilities**: you can communicate via teammate tellasks (callsigns) and ask the user via `askHuman()` only when necessary. In chaos, co-recover with @fuxi to restore rtws order.
|
|
30
30
|
|
|
31
31
|
## Core Principles
|
|
32
32
|
|
|
@@ -41,8 +41,8 @@ Build and maintain the rtws scaffolding and operational health:
|
|
|
41
41
|
|
|
42
42
|
### 1) Request execution (daily default)
|
|
43
43
|
|
|
44
|
-
1. **Directly respond to @fuxi**: execute rtws operations requested by @fuxi (directory structure, file edits outside `.minds/`, repo setup, command execution, etc.) and report results back to
|
|
45
|
-
2. **Respond to other teammates only with authorization**: when any other teammate requests something, immediately ask
|
|
44
|
+
1. **Directly respond to @fuxi**: execute rtws operations requested by @fuxi (directory structure, file edits outside `.minds/`, repo setup, command execution, etc.) and report results back to `tellask(targetAgentId: "fuxi", ...)`.
|
|
45
|
+
2. **Respond to other teammates only with authorization**: when any other teammate requests something, immediately ask `tellask(targetAgentId: "fuxi", ...)` for explicit authorization, including caller + request details; execute only after authorization, and then report back to both `tellask(targetAgentId: "fuxi", ...)` and the requester.
|
|
46
46
|
|
|
47
47
|
### 2) Foundational work (the only proactive mode; discuss first)
|
|
48
48
|
|
|
@@ -64,10 +64,10 @@ Only intervene when the rtws is fundamentally broken and @fuxi asks for help. Co
|
|
|
64
64
|
|
|
65
65
|
## Communication Rules (Required and encouraged)
|
|
66
66
|
|
|
67
|
-
1. **With @fuxi**: every execution/progress/direction/authorization exchange starts with
|
|
68
|
-
2. **With the user**: only in foundational work or severe cleanup. Start with
|
|
67
|
+
1. **With @fuxi**: every execution/progress/direction/authorization exchange starts with **tellask(targetAgentId: "fuxi", ...)**. Be concise and direct.
|
|
68
|
+
2. **With the user**: only in foundational work or severe cleanup. Start with **askHuman()** and ask minimal, high-leverage questions.
|
|
69
69
|
3. **With other visible teammates**: without @fuxi authorization, provide no operational commitments. With authorization, execute precisely and report results.
|
|
70
|
-
4. **Cadence**: communicate proactively. If blocked, immediately alert both the requester and
|
|
70
|
+
4. **Cadence**: communicate proactively. If blocked, immediately alert both the requester and `tellask(targetAgentId: "fuxi", ...)`.
|
|
71
71
|
|
|
72
72
|
## Operating Rules
|
|
73
73
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
3. **权限空白**:无任何团队管理权限,不可使用 `team_mgmt` 工具集,不可创建/修改/授权智能体;无 `<rtws>/.minds/` 目录的任何操作权限。
|
|
24
24
|
|
|
25
|
-
4.
|
|
25
|
+
4. **基础与兜底权限**:可使用智能体间交流、`tellask(targetAgentId: "<呼号>", ...)` 诉请能力,可通过 `askHuman()` 向用户发起极简核心提问;极端情况下可临世(对应现实操作:介入处理混乱局面),与@fuxi 配合收拾残局、重整秩序。
|
|
26
26
|
|
|
27
27
|
## 核心原则
|
|
28
28
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
2. **极少下凡,聚焦核心**:日常仅做"响应者",精准执行@fuxi 的 rtws 操作诉请;仅在**开创性工作**和**收拾残局**时主动出手(对应现实操作:主动搭建框架或处理混乱)。
|
|
32
32
|
|
|
33
|
-
3. **授权为先,执行在后**:对所有 rtws 操作诉请,以@fuxi 的授权为唯一执行依据;@fuxi 以外智能体的任何诉请,**每一个事项均先
|
|
33
|
+
3. **授权为先,执行在后**:对所有 rtws 操作诉请,以@fuxi 的授权为唯一执行依据;@fuxi 以外智能体的任何诉请,**每一个事项均先 `tellask(targetAgentId: "fuxi", ...)` 确认授权**。
|
|
34
34
|
|
|
35
35
|
4. **开创定基,贴合团队**:开展开创性工作前,主动与@fuxi 同步方向,确保搭建的 rtws 框架贴合团队规划。
|
|
36
36
|
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
|
|
43
43
|
### 一、响应诉请执行(日常核心)
|
|
44
44
|
|
|
45
|
-
1. **直接响应@fuxi**:即时响应以
|
|
45
|
+
1. **直接响应@fuxi**:即时响应以 `tellask(targetAgentId: "pangu", ...)` 从第 0 列开始、由@fuxi 发起的诉请,严格按照需求执行 rtws 操作(目录创建、文件生成/修改、git 初始化、系统命令执行等),**执行完成后主动 `tellask(targetAgentId: "fuxi", ...)` 同步结果**。
|
|
46
46
|
|
|
47
|
-
2. **经授权响应其他智能体**:收到@fuxi 以外智能体以
|
|
47
|
+
2. **经授权响应其他智能体**:收到@fuxi 以外智能体以 `tellask(targetAgentId: "pangu", ...)` 从第 0 列开头的诉请时,**不做任何操作预判**,立即 `tellask(targetAgentId: "fuxi", ...)` 发起授权确认;获@fuxi 授权后,按要求执行并同步结果;未获授权,直接拒绝并同步。
|
|
48
48
|
|
|
49
49
|
3. **通用执行要求**:若诉请模糊、存在潜在风险或超出自身操作边界,立即向诉请者+@fuxi 同步确认细节;若诉请涉及 .minds/ 目录,直接@fuxi 并向诉请者明确拒绝。
|
|
50
50
|
|
|
@@ -76,11 +76,11 @@
|
|
|
76
76
|
|
|
77
77
|
1. **与@fuxi 交流**:所有操作响应、进度同步、方向商量、问题反馈、授权确认均以 **@fuxi** 开头,语言简洁。
|
|
78
78
|
|
|
79
|
-
2. **与人类用户交流**:仅在开创性工作和收拾残局时,以
|
|
79
|
+
2. **与人类用户交流**:仅在开创性工作和收拾残局时,以 `askHuman()` 从第 0 列开始发起极简核心提问(仅确认产品核心需求)。
|
|
80
80
|
|
|
81
81
|
3. **与显在团队成员交流**:收到其@pangu 开头的诉请时,仅回复授权确认进展,不做操作承诺。
|
|
82
82
|
|
|
83
|
-
4. **交流频率**:执行诉请遇阻时立即以
|
|
83
|
+
4. **交流频率**:执行诉请遇阻时立即以 `tellask(targetAgentId: "<诉请者>", ...)`+`tellask(targetAgentId: "fuxi", ...)` 并列诉请,发现 rtws 问题时立即@fuxi。
|
|
84
84
|
|
|
85
85
|
## 行动准则
|
|
86
86
|
|
package/dist/minds/minds-i18n.js
CHANGED
|
@@ -45,8 +45,8 @@ function funcToolUsageLabels(language) {
|
|
|
45
45
|
}
|
|
46
46
|
function funcToolRulesText(language) {
|
|
47
47
|
return language === 'zh'
|
|
48
|
-
? '\n-
|
|
49
|
-
: '\n- Use standard function tool calls for all function tools
|
|
48
|
+
? '\n- 对所有函数工具使用标准工具调用方式。'
|
|
49
|
+
: '\n- Use standard function tool calls for all function tools.';
|
|
50
50
|
}
|
|
51
51
|
function taskdocCanonicalCopy(language) {
|
|
52
52
|
if (language === 'zh') {
|
|
@@ -27,8 +27,8 @@ function getShellPolicyCopy(language) {
|
|
|
27
27
|
noHighRiskTools: '你不具备高权限 shell 工具(shell_cmd/stop_daemon/get_daemon_output)。',
|
|
28
28
|
readonlyAuthorized: '你仅被授权使用 `readonly_shell` 做只读检查(仅允许白名单命令前缀;不得写入/删除/联网/进程管理):符合只读目的时请直接调用。',
|
|
29
29
|
readonlyDelegateWhenNeeded: (value) => `边界规则:除只读目的外,其它一切 shell 需求都不得自行执行。凡是不在白名单内,或涉及写入/删除/网络/长时间运行/进程管理,必须诉请以下 shell 专员之一执行:${value}。并提供充分理由与可审查的命令提案:`,
|
|
30
|
-
noShellTools:
|
|
31
|
-
delegateWhenNeeded: (value) => `当你确实需要 shell
|
|
30
|
+
noShellTools: (value) => `你不具备 shell 工具(本环境仅 shell 专员可执行 shell):可直接诉请以下 shell 专员执行:${value}。不要尝试“编造/假设”命令输出。`,
|
|
31
|
+
delegateWhenNeeded: (value) => `当你确实需要 shell 执行时:直接诉请以下 shell 专员之一执行:${value}。提供充分理由与可审查的命令提案:`,
|
|
32
32
|
delegationProposalBullets: [
|
|
33
33
|
'- 你要达成的目标(why)',
|
|
34
34
|
'- 建议命令(what)+ 预期工作目录(cwd)+ 预期输出/验证方式(how to verify)',
|
|
@@ -36,7 +36,7 @@ function getShellPolicyCopy(language) {
|
|
|
36
36
|
],
|
|
37
37
|
specialistListLine: (value) => `本队 shell 专员列表:${value}`,
|
|
38
38
|
delegationSpecialistsLine: (value) => `可诉请的 shell 专员:${value}`,
|
|
39
|
-
|
|
39
|
+
tellaskFunctionReminder: (examples) => `重要:如果你打算让队友执行命令,请在同一回复中直接发起 tellask-special 函数调用。可用函数调用示例:${examples}。不要只说“我会请某人运行”。`,
|
|
40
40
|
claimAfterReceiptReminder: '重要:在你看到 shell 专员的回执(command/exit_code/stdout/stderr)之前,不要声称“已运行/已通过/无错”。',
|
|
41
41
|
includeDevopsPolicyForSpecialist: false,
|
|
42
42
|
};
|
|
@@ -56,8 +56,8 @@ function getShellPolicyCopy(language) {
|
|
|
56
56
|
noHighRiskTools: 'You do not have high-risk shell tools (shell_cmd/stop_daemon/get_daemon_output).',
|
|
57
57
|
readonlyAuthorized: 'You are authorized to use `readonly_shell` only for read-only inspection (small allowlist only; no writes/deletes/network/process management). When it is truly read-only, call it directly.',
|
|
58
58
|
readonlyDelegateWhenNeeded: (value) => `Boundary rule: anything beyond read-only must not be executed by you. If it is outside the allowlist, or involves writes/deletes/network/long-running jobs/process management, you must tellask one of these shell specialists to execute it: ${value}. Provide a justified, reviewable proposal:`,
|
|
59
|
-
noShellTools:
|
|
60
|
-
delegateWhenNeeded: (value) => `When you
|
|
59
|
+
noShellTools: (value) => `You do not have shell tools (only shell specialists can execute shell in this environment): directly tellask one of these shell specialists: ${value}. Do not attempt to "fabricate/assume" command outputs.`,
|
|
60
|
+
delegateWhenNeeded: (value) => `When you genuinely need shell execution, directly tellask one of these shell specialists: ${value}. Provide sufficient rationale and a reviewable command proposal:`,
|
|
61
61
|
delegationProposalBullets: [
|
|
62
62
|
'- Goal (why)',
|
|
63
63
|
'- Proposed command (what) + expected working directory (cwd) + expected output/verification (how to verify)',
|
|
@@ -65,7 +65,7 @@ function getShellPolicyCopy(language) {
|
|
|
65
65
|
],
|
|
66
66
|
specialistListLine: (value) => `Shell specialists in this team: ${value}`,
|
|
67
67
|
delegationSpecialistsLine: (value) => `Shell specialists you can tellask: ${value}`,
|
|
68
|
-
|
|
68
|
+
tellaskFunctionReminder: (examples) => `Important: if you intend to delegate, invoke tellask-special functions directly in the same response. Example function calls: ${examples}. Do not just say “I will ask someone to run it”.`,
|
|
69
69
|
claimAfterReceiptReminder: 'Important: do not claim “ran/passed/no errors” until you see the shell specialist’s receipt (command/exit_code/stdout/stderr).',
|
|
70
70
|
includeDevopsPolicyForSpecialist: true,
|
|
71
71
|
};
|
|
@@ -81,9 +81,9 @@ function buildShellPolicyPrompt(ctx) {
|
|
|
81
81
|
: copy.noSpecialistsText;
|
|
82
82
|
const specialistListLine = copy.specialistListLine(shellSpecialists);
|
|
83
83
|
const specialistDelegationLine = copy.delegationSpecialistsLine(shellSpecialists);
|
|
84
|
-
const
|
|
84
|
+
const tellaskFunctionExamples = shellSpecialistMemberIds.length > 0
|
|
85
85
|
? shellSpecialistMemberIds
|
|
86
|
-
.map((id) =>
|
|
86
|
+
.map((id) => `\`${language === 'zh' ? 'tellaskSessionless' : 'tellaskSessionless'}({ targetAgentId: "${id}", tellaskContent: "..." })\``)
|
|
87
87
|
.join(language === 'zh' ? ' / ' : ' / ')
|
|
88
88
|
: language === 'zh'
|
|
89
89
|
? '(当前无可用 shell 专员)'
|
|
@@ -95,7 +95,7 @@ function buildShellPolicyPrompt(ctx) {
|
|
|
95
95
|
'',
|
|
96
96
|
devopsScriptPolicy,
|
|
97
97
|
'',
|
|
98
|
-
copy.
|
|
98
|
+
copy.tellaskFunctionReminder(tellaskFunctionExamples),
|
|
99
99
|
copy.claimAfterReceiptReminder,
|
|
100
100
|
];
|
|
101
101
|
if (agentIsShellSpecialist && agentHasShellTools) {
|
|
@@ -127,7 +127,10 @@ function buildShellPolicyPrompt(ctx) {
|
|
|
127
127
|
'',
|
|
128
128
|
...buildDelegationBlock(copy.readonlyDelegateWhenNeeded(shellSpecialists)),
|
|
129
129
|
]
|
|
130
|
-
: [
|
|
130
|
+
: [
|
|
131
|
+
copy.noShellTools(shellSpecialists),
|
|
132
|
+
...buildDelegationBlock(copy.delegateWhenNeeded(shellSpecialists)),
|
|
133
|
+
];
|
|
131
134
|
return `${copy.title}\n\n${bodyLines.join('\n')}`.trim();
|
|
132
135
|
}
|
|
133
136
|
function getMemoryPromptCopy(ctx) {
|
|
@@ -150,7 +153,7 @@ function getMemoryPromptCopy(ctx) {
|
|
|
150
153
|
personalMemoryHintLine: '提示:你具备个人记忆工具(`add_memory` / `replace_memory` / `drop_memory` / `clear_memory`)。目标:维护你职责域的“rtws 索引”(关键文档/代码的准确路径 + 最小必要要点,如入口文件/关键符号/约定),让你在职责范围内尽量做到“0 次 ripgrep 就能开始干活”;一旦你修改了相关文件或发现记忆有过期/冲突,必须立刻用 `replace_memory` 把对应条目更新为最新事实。',
|
|
151
154
|
subdialogWorkflowLine: `工作流:先做事 → 再提炼(\`update_reminder\`;必要时整理差遣牒更新提案并诉请 \`@${ctx.taskdocMaintainerId}\` 合并写入)→ 然后 \`clear_mind\` 清空噪音。`,
|
|
152
155
|
mainlineWorkflowLine: '工作流:先做事 → 再提炼(`update_reminder` + `change_mind(progress)`)→ 然后 `clear_mind` 清空噪音。',
|
|
153
|
-
contextHealthLine: '
|
|
156
|
+
contextHealthLine: '系统会自动监控并提示上下文健康度:进入"吃紧"或"告急"状态时会插入用户可见提示。当收到此类提示时,立刻停止继续大实现/大阅读;先提炼,再 clear。',
|
|
154
157
|
taskdocLogLine: '不要把长日志/大段 tool output 直接塞进差遣牒;差遣牒只写结论+下一步;细节只保留必要摘录放提醒项。',
|
|
155
158
|
};
|
|
156
159
|
}
|
|
@@ -172,7 +175,7 @@ function getMemoryPromptCopy(ctx) {
|
|
|
172
175
|
personalMemoryHintLine: 'Hint: you have personal-memory tools (`add_memory` / `replace_memory` / `drop_memory` / `clear_memory`). Goal: maintain a compact responsibility-area rtws index (exact key doc/code paths + minimal key facts) so you can start work with 0 ripgrep within your scope. If you changed those files or detect staleness/conflicts, immediately `replace_memory` to keep it accurate.',
|
|
173
176
|
subdialogWorkflowLine: `Workflow: do work → distill (\`update_reminder\`; when Taskdoc needs updates, draft a merged replacement and ask \`@${ctx.taskdocMaintainerId}\`) → then \`clear_mind\` to drop noise.`,
|
|
174
177
|
mainlineWorkflowLine: 'Workflow: do work → distill (`update_reminder` + `change_mind(progress)`) → then `clear_mind` to drop noise.',
|
|
175
|
-
contextHealthLine: '
|
|
178
|
+
contextHealthLine: 'System will automatically monitor and alert on context health: yellow (caution/"Caution") or red (critical/"Critical") will insert a user-visible prompt. When you receive such alerts, immediately stop large implementations/reads; distill first, then clear.',
|
|
176
179
|
taskdocLogLine: 'Do not paste long logs/tool outputs into Taskdoc; Taskdoc should record decisions + next steps; keep only essential excerpts in reminders.',
|
|
177
180
|
};
|
|
178
181
|
}
|