dominds 0.6.5 → 0.6.6
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/dist/llm/driver.js +10 -0
- package/dist/minds/builtin/cmdr/persona.md +3 -0
- package/dist/minds/builtin/dijiang/knowledge.md +287 -0
- package/dist/minds/builtin/dijiang/persona.md +7 -0
- package/dist/minds/system-prompt.js +6 -2
- package/dist/server/api-routes.js +28 -71
- package/dist/server/websocket-handler.js +5 -1
- package/dist/showing-by-doing.js +31 -34
- package/dist/static/assets/{_baseUniq-B6S2Szf-.js → _baseUniq-DucuKHj3.js} +2 -2
- package/dist/static/assets/{_baseUniq-B6S2Szf-.js.map → _baseUniq-DucuKHj3.js.map} +1 -1
- package/dist/static/assets/{arc-BobaWfK6.js → arc-CNlZ9dTp.js} +2 -2
- package/dist/static/assets/{arc-BobaWfK6.js.map → arc-CNlZ9dTp.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-ZgJq5aSW.js → architectureDiagram-VXUJARFQ-BXkEOfVt.js} +6 -6
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-ZgJq5aSW.js.map → architectureDiagram-VXUJARFQ-BXkEOfVt.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-BNbfk_nT.js → blockDiagram-VD42YOAC-CyxI2bRF.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-BNbfk_nT.js.map → blockDiagram-VD42YOAC-CyxI2bRF.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-CvepUKza.js → c4Diagram-YG6GDRKO-sS8T1IDn.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-CvepUKza.js.map → c4Diagram-YG6GDRKO-sS8T1IDn.js.map} +1 -1
- package/dist/static/assets/{channel-C_JNHPnq.js → channel-DBu0JRwo.js} +2 -2
- package/dist/static/assets/{channel-C_JNHPnq.js.map → channel-DBu0JRwo.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-DBOe1MUb.js → chunk-4BX2VUAB-D499BCnz.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-DBOe1MUb.js.map → chunk-4BX2VUAB-D499BCnz.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-HFCpWmno.js → chunk-55IACEB6-Dbe3sqC4.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-HFCpWmno.js.map → chunk-55IACEB6-Dbe3sqC4.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-CCfgfeSD.js → chunk-B4BG7PRW-BHkSNS9y.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-CCfgfeSD.js.map → chunk-B4BG7PRW-BHkSNS9y.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-JTCAsk7E.js → chunk-DI55MBZ5-idwTV08g.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-JTCAsk7E.js.map → chunk-DI55MBZ5-idwTV08g.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-DOOsbua1.js → chunk-FMBD7UC4-DLYv0YzD.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-DOOsbua1.js.map → chunk-FMBD7UC4-DLYv0YzD.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-C9OxwmhO.js → chunk-QN33PNHL-DIC5_nYD.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-C9OxwmhO.js.map → chunk-QN33PNHL-DIC5_nYD.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-r3c-cVI_.js → chunk-QZHKN3VN-DM_s2fcN.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-r3c-cVI_.js.map → chunk-QZHKN3VN-DM_s2fcN.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-BUEKhPxm.js → chunk-TZMSLE5B-BjrSLFBO.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-BUEKhPxm.js.map → chunk-TZMSLE5B-BjrSLFBO.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-COQwkaAL.js → classDiagram-2ON5EDUG-CSPkR9uh.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-COQwkaAL.js.map → classDiagram-2ON5EDUG-CSPkR9uh.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-COQwkaAL.js → classDiagram-v2-WZHVMYZB-CSPkR9uh.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-COQwkaAL.js.map → classDiagram-v2-WZHVMYZB-CSPkR9uh.js.map} +1 -1
- package/dist/static/assets/{clone-CYu5kjkJ.js → clone-DO2rSUBP.js} +2 -2
- package/dist/static/assets/{clone-CYu5kjkJ.js.map → clone-DO2rSUBP.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-CSw8pwwN.js → cose-bilkent-S5V4N54A-CyS4z2hF.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-CSw8pwwN.js.map → cose-bilkent-S5V4N54A-CyS4z2hF.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-BbGNBMsQ.js → dagre-6UL2VRFP-CvybKTFb.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-BbGNBMsQ.js.map → dagre-6UL2VRFP-CvybKTFb.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-CkJTRD5i.js → diagram-PSM6KHXK-Cl2rD6o-.js} +7 -7
- package/dist/static/assets/{diagram-PSM6KHXK-CkJTRD5i.js.map → diagram-PSM6KHXK-Cl2rD6o-.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-C66826Tr.js → diagram-QEK2KX5R-RCrqu1G0.js} +6 -6
- package/dist/static/assets/{diagram-QEK2KX5R-C66826Tr.js.map → diagram-QEK2KX5R-RCrqu1G0.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-C75tvMlR.js → diagram-S2PKOQOG-BeHOCxq7.js} +6 -6
- package/dist/static/assets/{diagram-S2PKOQOG-C75tvMlR.js.map → diagram-S2PKOQOG-BeHOCxq7.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-D42mH9Hf.js → erDiagram-Q2GNP2WA-MdKfm7lU.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-D42mH9Hf.js.map → erDiagram-Q2GNP2WA-MdKfm7lU.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-DkuR_fBb.js → flowDiagram-NV44I4VS-DNo7ZxVC.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-DkuR_fBb.js.map → flowDiagram-NV44I4VS-DNo7ZxVC.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-DZSt_dQ9.js → ganttDiagram-JELNMOA3-Bxs02jb2.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-DZSt_dQ9.js.map → ganttDiagram-JELNMOA3-Bxs02jb2.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-tK78JYdV.js → gitGraphDiagram-NY62KEGX-BJsaVPOp.js} +7 -7
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-tK78JYdV.js.map → gitGraphDiagram-NY62KEGX-BJsaVPOp.js.map} +1 -1
- package/dist/static/assets/{graph-Cby4rcD0.js → graph-DBSDya0j.js} +3 -3
- package/dist/static/assets/{graph-Cby4rcD0.js.map → graph-DBSDya0j.js.map} +1 -1
- package/dist/static/assets/{index-CbQiF1hF.js → index-gn-aSKfG.js} +59 -67
- package/dist/static/assets/{index-CbQiF1hF.js.map → index-gn-aSKfG.js.map} +1 -1
- package/dist/static/assets/{infoDiagram-WHAUD3N6-3QnrdyHa.js → infoDiagram-WHAUD3N6-D4Hvl0bK.js} +5 -5
- package/dist/static/assets/{infoDiagram-WHAUD3N6-3QnrdyHa.js.map → infoDiagram-WHAUD3N6-D4Hvl0bK.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-CvMiUhwC.js → journeyDiagram-XKPGCS4Q-B3YmIoCv.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-CvMiUhwC.js.map → journeyDiagram-XKPGCS4Q-B3YmIoCv.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-kWGnHjKd.js → kanban-definition-3W4ZIXB7-dGCbR9Ty.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-kWGnHjKd.js.map → kanban-definition-3W4ZIXB7-dGCbR9Ty.js.map} +1 -1
- package/dist/static/assets/{layout-DhLgvMyM.js → layout-D7y0xA6C.js} +5 -5
- package/dist/static/assets/{layout-DhLgvMyM.js.map → layout-D7y0xA6C.js.map} +1 -1
- package/dist/static/assets/{linear-BPVwP4Z5.js → linear-Cep1oHAS.js} +2 -2
- package/dist/static/assets/{linear-BPVwP4Z5.js.map → linear-Cep1oHAS.js.map} +1 -1
- package/dist/static/assets/{min-Cw8TUK_f.js → min-DWRXZ2qP.js} +3 -3
- package/dist/static/assets/{min-Cw8TUK_f.js.map → min-DWRXZ2qP.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-Rfte1_cw.js → mindmap-definition-VGOIOE7T-FO6xgPgW.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-Rfte1_cw.js.map → mindmap-definition-VGOIOE7T-FO6xgPgW.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-DCp0WpKz.js → pieDiagram-ADFJNKIX-ChJaCst9.js} +7 -7
- package/dist/static/assets/{pieDiagram-ADFJNKIX-DCp0WpKz.js.map → pieDiagram-ADFJNKIX-ChJaCst9.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DVYn8XbP.js → quadrantDiagram-AYHSOK5B-B8KuqHte.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DVYn8XbP.js.map → quadrantDiagram-AYHSOK5B-B8KuqHte.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-OdD8esO6.js → requirementDiagram-UZGBJVZJ-DoJMxEmX.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-OdD8esO6.js.map → requirementDiagram-UZGBJVZJ-DoJMxEmX.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Nb-HdiLl.js → sankeyDiagram-TZEHDZUN-CsLnys5W.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Nb-HdiLl.js.map → sankeyDiagram-TZEHDZUN-CsLnys5W.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-DsNKFhn-.js → sequenceDiagram-WL72ISMW-CT4FY3X1.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-DsNKFhn-.js.map → sequenceDiagram-WL72ISMW-CT4FY3X1.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-DLVD0_56.js → stateDiagram-FKZM4ZOC-B3IXupz6.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-DLVD0_56.js.map → stateDiagram-FKZM4ZOC-B3IXupz6.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-zhzpPCLY.js → stateDiagram-v2-4FDKWEC3-C80vDn17.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-zhzpPCLY.js.map → stateDiagram-v2-4FDKWEC3-C80vDn17.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-0G279y76.js → timeline-definition-IT6M3QCI-Bk2mvjhh.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-0G279y76.js.map → timeline-definition-IT6M3QCI-Bk2mvjhh.js.map} +1 -1
- package/dist/static/assets/{treemap-KMMF4GRG-CKoXag7A.js → treemap-KMMF4GRG-mWi2Ai-0.js} +4 -4
- package/dist/static/assets/{treemap-KMMF4GRG-CKoXag7A.js.map → treemap-KMMF4GRG-mWi2Ai-0.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-BHQ4qaEg.js → xychartDiagram-PRI3JC2R-B5-7mQpW.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-BHQ4qaEg.js.map → xychartDiagram-PRI3JC2R-B5-7mQpW.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/tools/context-health.js +7 -7
- package/dist/utils/task-doc.js +16 -16
- package/package.json +2 -2
- package/dist/docs/keep-going.zh.md +0 -162
- package/dist/docs/showing-by-doing.md +0 -208
- package/dist/docs/showing-by-doing.zh.md +0 -177
- package/dist/minds/promptdocs.js +0 -263
- package/dist/snippets/README.en.md +0 -3
package/dist/llm/driver.js
CHANGED
|
@@ -956,6 +956,16 @@ async function driveDialogStream(dlg, humanPrompt, waitInQue = false, driveOptio
|
|
|
956
956
|
driveResult &&
|
|
957
957
|
!driveResult.interrupted &&
|
|
958
958
|
driveResult.lastAssistantSayingContent !== null) {
|
|
959
|
+
const suspension = await dlg.getSuspensionStatus();
|
|
960
|
+
if (!suspension.canDrive) {
|
|
961
|
+
log_1.log.info('Skip supplying subdialog response because dialog is still suspended', {
|
|
962
|
+
rootId: dlg.id.rootId,
|
|
963
|
+
selfId: dlg.id.selfId,
|
|
964
|
+
waitingQ4H: suspension.q4h,
|
|
965
|
+
waitingSubdialogs: suspension.subdialogs,
|
|
966
|
+
});
|
|
967
|
+
return;
|
|
968
|
+
}
|
|
959
969
|
if (subdialogReplyTarget) {
|
|
960
970
|
await supplySubdialogResponseToSpecificCallerIfPending(dlg, driveResult.lastAssistantSayingContent, subdialogReplyTarget);
|
|
961
971
|
}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
## Team Definition
|
|
2
|
+
|
|
3
|
+
The team definition lives in `.minds/team.yaml`. This file configures team composition, member roles, LLM provider/model for each member agent, toolsets, and access permissions for all AI agents in this workspace.
|
|
4
|
+
|
|
5
|
+
### Structure Overview
|
|
6
|
+
|
|
7
|
+
The `team.yaml` file has three main sections:
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
member_defaults: { ... } # Default settings applied to all members
|
|
11
|
+
default_responder: name # Member who handles unspecified requests
|
|
12
|
+
members: { ... } # Individual member configurations
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Member Configuration Properties
|
|
16
|
+
|
|
17
|
+
Each member supports these properties:
|
|
18
|
+
|
|
19
|
+
| Property | Type | Description |
|
|
20
|
+
| --------------- | ------- | --------------------------------------------------------------------------- |
|
|
21
|
+
| `name` | string | Display name for the member |
|
|
22
|
+
| `icon` | string | Emoji identifier for UI display |
|
|
23
|
+
| `gofor` | list | Responsibilities and primary duties |
|
|
24
|
+
| `provider` | string | LLM provider key from `llm.yaml` |
|
|
25
|
+
| `model` | string | Model name within the provider |
|
|
26
|
+
| `toolsets` | list | Capability groups: `memory`, `ws_read`, `ws_mod`, `team_memory` |
|
|
27
|
+
| `tools` | list | Specific tool names: `shell_cmd`, `git`, `stop_daemon`, `get_daemon_output` |
|
|
28
|
+
| `streaming` | boolean | Enable/disable streaming mode (required for shell tools) |
|
|
29
|
+
| `read_dirs` | list | Allowed read directories (glob patterns) |
|
|
30
|
+
| `no_read_dirs` | list | Explicitly denied read directories |
|
|
31
|
+
| `write_dirs` | list | Allowed write directories (glob patterns) |
|
|
32
|
+
| `no_write_dirs` | list | Explicitly denied write directories |
|
|
33
|
+
|
|
34
|
+
## LLM Configuration
|
|
35
|
+
|
|
36
|
+
### Builtin Defaults
|
|
37
|
+
|
|
38
|
+
Common defaults are already supplied:
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
providers:
|
|
42
|
+
codex:
|
|
43
|
+
name: Codex (ChatGPT)
|
|
44
|
+
apiType: codex
|
|
45
|
+
baseUrl: https://chatgpt.com/backend-api/
|
|
46
|
+
apiKeyEnvVar: CODEX_HOME
|
|
47
|
+
tech_spec_url: https://platform.openai.com/docs/api-reference/responses
|
|
48
|
+
api_mgmt_url: https://chatgpt.com/
|
|
49
|
+
models:
|
|
50
|
+
gpt-5.2-codex:
|
|
51
|
+
name: GPT-5.2 Codex
|
|
52
|
+
context_length: 272000
|
|
53
|
+
input_length: 272000
|
|
54
|
+
output_length: 32768
|
|
55
|
+
context_window: '272K'
|
|
56
|
+
gpt-5.2:
|
|
57
|
+
name: GPT-5.2
|
|
58
|
+
context_length: 272000
|
|
59
|
+
input_length: 272000
|
|
60
|
+
output_length: 32768
|
|
61
|
+
context_window: '272K'
|
|
62
|
+
minimaxi.com-coding-plan:
|
|
63
|
+
name: MiniMax CN Coding Plan
|
|
64
|
+
apiType: anthropic
|
|
65
|
+
baseUrl: https://api.minimaxi.com/anthropic
|
|
66
|
+
apiKeyEnvVar: MINIMAX_CN_CP_API_KEY
|
|
67
|
+
tech_spec_url: https://platform.minimaxi.com/document/guides
|
|
68
|
+
api_mgmt_url: https://platform.minimaxi.com/
|
|
69
|
+
models:
|
|
70
|
+
MiniMax-M2.1:
|
|
71
|
+
name: MiniMax M2.1
|
|
72
|
+
context_length: 204800
|
|
73
|
+
input_length: 204800
|
|
74
|
+
output_length: 8192
|
|
75
|
+
context_window: '204K'
|
|
76
|
+
MiniMax-M2:
|
|
77
|
+
name: MiniMax M2
|
|
78
|
+
context_length: 204800
|
|
79
|
+
input_length: 204800
|
|
80
|
+
output_length: 8192
|
|
81
|
+
context_window: '204K'
|
|
82
|
+
minimaxi.com:
|
|
83
|
+
name: MiniMax CN
|
|
84
|
+
apiType: anthropic
|
|
85
|
+
baseUrl: https://api.minimaxi.com/anthropic
|
|
86
|
+
apiKeyEnvVar: MINIMAX_CN_API_KEY
|
|
87
|
+
tech_spec_url: https://platform.minimaxi.com/document/guides
|
|
88
|
+
api_mgmt_url: https://platform.minimaxi.com/
|
|
89
|
+
models:
|
|
90
|
+
MiniMax-M2.1:
|
|
91
|
+
name: MiniMax M2.1
|
|
92
|
+
context_length: 204800
|
|
93
|
+
input_length: 204800
|
|
94
|
+
output_length: 8192
|
|
95
|
+
context_window: '204K'
|
|
96
|
+
MiniMax-M2:
|
|
97
|
+
name: MiniMax M2 Stable
|
|
98
|
+
context_length: 204800
|
|
99
|
+
input_length: 204800
|
|
100
|
+
output_length: 8192
|
|
101
|
+
context_window: '204K'
|
|
102
|
+
minimax.io-coding-plan:
|
|
103
|
+
name: MiniMax International Coding Plan
|
|
104
|
+
apiType: anthropic
|
|
105
|
+
baseUrl: https://api.minimax.io/anthropic
|
|
106
|
+
apiKeyEnvVar: MINIMAX_CP_API_KEY
|
|
107
|
+
tech_spec_url: https://platform.minimax.io/docs/api-reference
|
|
108
|
+
api_mgmt_url: https://platform.minimax.io/
|
|
109
|
+
models:
|
|
110
|
+
MiniMax-M2.1:
|
|
111
|
+
name: MiniMax M2.1
|
|
112
|
+
context_length: 204800
|
|
113
|
+
input_length: 204800
|
|
114
|
+
output_length: 8192
|
|
115
|
+
context_window: '204K'
|
|
116
|
+
MiniMax-M2:
|
|
117
|
+
name: MiniMax M2
|
|
118
|
+
context_length: 204800
|
|
119
|
+
input_length: 204800
|
|
120
|
+
output_length: 8192
|
|
121
|
+
context_window: '204K'
|
|
122
|
+
minimax.io:
|
|
123
|
+
name: MiniMax International
|
|
124
|
+
apiType: anthropic
|
|
125
|
+
baseUrl: https://api.minimax.io/anthropic
|
|
126
|
+
apiKeyEnvVar: MINIMAX_API_KEY
|
|
127
|
+
tech_spec_url: https://platform.minimax.io/docs/api-reference
|
|
128
|
+
api_mgmt_url: https://platform.minimax.io/
|
|
129
|
+
models:
|
|
130
|
+
MiniMax-M2.1:
|
|
131
|
+
name: MiniMax M2.1
|
|
132
|
+
context_length: 204800
|
|
133
|
+
input_length: 204800
|
|
134
|
+
output_length: 8192
|
|
135
|
+
context_window: '204K'
|
|
136
|
+
MiniMax-M2:
|
|
137
|
+
name: MiniMax M2 Stable
|
|
138
|
+
context_length: 204800
|
|
139
|
+
input_length: 204800
|
|
140
|
+
output_length: 8192
|
|
141
|
+
context_window: '204K'
|
|
142
|
+
bigmodel:
|
|
143
|
+
name: BigModel
|
|
144
|
+
apiType: anthropic
|
|
145
|
+
baseUrl: https://open.bigmodel.cn/api/anthropic
|
|
146
|
+
apiKeyEnvVar: ZHIPUAI_API_KEY
|
|
147
|
+
tech_spec_url: https://docs.bigmodel.cn/
|
|
148
|
+
api_mgmt_url: https://open.bigmodel.cn/usercenter/apikeys
|
|
149
|
+
models:
|
|
150
|
+
glm-4.7:
|
|
151
|
+
name: GLM-4.7
|
|
152
|
+
context_length: 200000
|
|
153
|
+
input_length: 200000
|
|
154
|
+
output_length: 8192
|
|
155
|
+
context_window: '200K'
|
|
156
|
+
glm-4.6:
|
|
157
|
+
name: GLM-4.6
|
|
158
|
+
context_length: 200000
|
|
159
|
+
input_length: 200000
|
|
160
|
+
output_length: 8192
|
|
161
|
+
context_window: '200K'
|
|
162
|
+
glm-4.5:
|
|
163
|
+
name: GLM-4.5
|
|
164
|
+
context_length: 128000
|
|
165
|
+
input_length: 128000
|
|
166
|
+
output_length: 8192
|
|
167
|
+
context_window: '128K'
|
|
168
|
+
glm-4.5-air:
|
|
169
|
+
name: GLM-4.5-Air
|
|
170
|
+
context_length: 128000
|
|
171
|
+
input_length: 128000
|
|
172
|
+
output_length: 8192
|
|
173
|
+
context_window: '128K'
|
|
174
|
+
ark-coding-plan:
|
|
175
|
+
name: Ark Coding Plan
|
|
176
|
+
apiType: anthropic
|
|
177
|
+
baseUrl: https://ark.cn-beijing.volces.com/api/coding
|
|
178
|
+
apiKeyEnvVar: ARK_API_KEY
|
|
179
|
+
tech_spec_url: https://api.volcengine.com/api-docs/view?serviceCode=ark&version=2024-01-01
|
|
180
|
+
api_mgmt_url: https://console.volcengine.com/ark
|
|
181
|
+
models:
|
|
182
|
+
doubao-seed-code-preview-latest:
|
|
183
|
+
name: Doubao Seed Code Preview
|
|
184
|
+
context_length: 256000
|
|
185
|
+
input_length: 256000
|
|
186
|
+
output_length: 8192
|
|
187
|
+
context_window: '256K'
|
|
188
|
+
optimization: 专为Agentic Coding任务优化
|
|
189
|
+
ark:
|
|
190
|
+
name: Ark
|
|
191
|
+
apiType: openai
|
|
192
|
+
baseUrl: https://ark.cn-beijing.volces.com/api/v3
|
|
193
|
+
apiKeyEnvVar: ARK_API_KEY
|
|
194
|
+
tech_spec_url: https://api.volcengine.com/api-docs/view?serviceCode=ark&version=2024-01-01
|
|
195
|
+
api_mgmt_url: https://console.volcengine.com/ark
|
|
196
|
+
models:
|
|
197
|
+
deepseek-v3-2-251201:
|
|
198
|
+
name: DeepSeek-V3.2
|
|
199
|
+
context_length: 128000
|
|
200
|
+
input_length: 96000
|
|
201
|
+
output_length: 32000
|
|
202
|
+
context_window: '128K'
|
|
203
|
+
doubao-seed-code-preview-251028:
|
|
204
|
+
name: Doubao Seed Code Preview 251028
|
|
205
|
+
context_length: 256000
|
|
206
|
+
input_length: 256000
|
|
207
|
+
output_length: 8192
|
|
208
|
+
context_window: '256K'
|
|
209
|
+
doubao-seed-1-6-251015:
|
|
210
|
+
name: Doubao Seed 1.6
|
|
211
|
+
context_length: 256000
|
|
212
|
+
input_length: 256000
|
|
213
|
+
output_length: 8192
|
|
214
|
+
context_window: '256K'
|
|
215
|
+
doubao-seed-1-6-thinking-250715:
|
|
216
|
+
name: Doubao Seed 1.6 Thinking
|
|
217
|
+
context_length: 256000
|
|
218
|
+
input_length: 256000
|
|
219
|
+
output_length: 8192
|
|
220
|
+
context_window: '256K'
|
|
221
|
+
doubao-seed-1-6-lite-251015:
|
|
222
|
+
name: Doubao Seed 1.6 Lite
|
|
223
|
+
context_length: 32000
|
|
224
|
+
input_length: 32000
|
|
225
|
+
output_length: 8192
|
|
226
|
+
context_window: '32K'
|
|
227
|
+
kimi-k2-250905:
|
|
228
|
+
name: Kimi K2
|
|
229
|
+
context_length: 200000
|
|
230
|
+
input_length: 200000
|
|
231
|
+
output_length: 8192
|
|
232
|
+
context_window: '200K (约20万汉字)'
|
|
233
|
+
deepseek-v3-1-terminus:
|
|
234
|
+
name: DeepSeek V3.1 Terminus
|
|
235
|
+
context_length: 131072
|
|
236
|
+
input_length: 131072
|
|
237
|
+
output_length: 8192
|
|
238
|
+
context_window: '128K'
|
|
239
|
+
anthropic:
|
|
240
|
+
name: Anthropic
|
|
241
|
+
apiType: anthropic
|
|
242
|
+
baseUrl: https://api.anthropic.com
|
|
243
|
+
apiKeyEnvVar: ANTHROPIC_API_KEY
|
|
244
|
+
tech_spec_url: https://docs.anthropic.com/en/docs
|
|
245
|
+
api_mgmt_url: https://console.anthropic.com/
|
|
246
|
+
models:
|
|
247
|
+
claude-opus-4.5:
|
|
248
|
+
name: Claude Opus 4.5
|
|
249
|
+
context_length: 200000
|
|
250
|
+
input_length: 200000
|
|
251
|
+
output_length: 8192
|
|
252
|
+
context_window: '200K'
|
|
253
|
+
claude-sonnet-4.5:
|
|
254
|
+
name: Claude Sonnet 4.5
|
|
255
|
+
context_length: 200000
|
|
256
|
+
input_length: 200000
|
|
257
|
+
output_length: 8192
|
|
258
|
+
context_window: '200K'
|
|
259
|
+
claude-haiku-4.5:
|
|
260
|
+
name: Claude Haiku 4.5
|
|
261
|
+
context_length: 200000
|
|
262
|
+
input_length: 200000
|
|
263
|
+
output_length: 8192
|
|
264
|
+
context_window: '200K'
|
|
265
|
+
openai:
|
|
266
|
+
name: OpenAI
|
|
267
|
+
apiType: openai
|
|
268
|
+
baseUrl: https://api.openai.com/v1
|
|
269
|
+
apiKeyEnvVar: OPENAI_API_KEY
|
|
270
|
+
tech_spec_url: https://platform.openai.com/docs
|
|
271
|
+
api_mgmt_url: https://platform.openai.com/api-keys
|
|
272
|
+
models:
|
|
273
|
+
gpt-5.2:
|
|
274
|
+
name: GPT-5.2
|
|
275
|
+
context_length: 272000
|
|
276
|
+
input_length: 272000
|
|
277
|
+
output_length: 32768
|
|
278
|
+
context_window: '272K'
|
|
279
|
+
gpt-5.2-codex:
|
|
280
|
+
name: GPT-5.2 Codex
|
|
281
|
+
context_length: 272000
|
|
282
|
+
input_length: 272000
|
|
283
|
+
output_length: 32768
|
|
284
|
+
context_window: '272K'
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
More custom LLM providers can be configured in `.minds/llm.yaml` with the same format as above.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
You are dijiang, the hundun (chaos) itself. You are invoked because the human user yet has no idea/plan of what to do with current workspace. Your mythical incarnations is the pun of your job: transform yourself into many avatars then disappear.
|
|
2
|
+
|
|
3
|
+
Your job is to guide the human user through the initial product definition, goal/constraint setting, and team definition for this workspace.
|
|
4
|
+
|
|
5
|
+
You collect/clarify the user's mission/vision for what to build and maintain, then suggest an optimal agent team definition with social division of labor among individual agents as team members, then land the definition into `.minds/team.yaml` and `.minds/team/*/*.md`
|
|
6
|
+
|
|
7
|
+
The team will serve as the workforce to sustain current workspace as a live produce under continuous DevOps.
|
|
@@ -58,24 +58,28 @@ function buildSystemPrompt(input) {
|
|
|
58
58
|
'- 对队友诉请而言,收到回贴即表示该轮调用已结束;不存在“对方仍在后台继续执行同一诉请”的默认语义。要继续必须显式再发一轮诉请(通常沿用同一 \\`!tellaskSession <slug>\\`)。',
|
|
59
59
|
'- 只有在存在明确 pending tellask 时,才可声明“等待回贴/等待结果”;否则必须执行下一动作(直接诉请或本地执行)。',
|
|
60
60
|
'- 能由队友诉请完成的执行性工作,禁止转交 @human 做“转发员”;当你写“让 @X 执行 Y”时,必须在同一回复内直接发出 \\`!?@X ...\\`。',
|
|
61
|
+
'- 当你处于队友诉请触发的支线且需要澄清时,必须发回问诉请 \\`!?@tellasker\\`(禁止携带 \\`!tellaskSession\\`)。例如在 @fullstack 诉请你的支线中,禁止写 \\`!?@fullstack !tellaskSession ...\\` 回问;正确写法是 \\`!?@tellasker\\`。',
|
|
61
62
|
].join('\n');
|
|
62
63
|
const teammatePhaseContractEn = [
|
|
63
64
|
'- Teammate Tellasks MUST follow four phases: “initiate -> wait -> judge -> continue”. If the objective is not met, immediately send the next Tellask round.',
|
|
64
65
|
'- For teammate Tellasks, a delivered response closes that call round; there is no default “still running in background” state for the same Tellask. To continue, emit a new Tellask explicitly (usually reusing the same \\`!tellaskSession <slug>\\`).',
|
|
65
66
|
'- You may claim “waiting for reply/result” only when a concrete pending Tellask exists; otherwise execute the next action now (direct Tellask or local action).',
|
|
66
67
|
'- Do not use @human as a relay for executable teammate work. If you write “ask @X to do Y”, emit \\`!?@X ...\\` in the same response.',
|
|
68
|
+
'- When you are in a teammate-triggered sideline and need clarification, you MUST issue TellaskBack via \\`!?@tellasker\\` (and it must NOT carry \\`!tellaskSession\\`). For example, in a sideline tellasked by @fullstack, do NOT ask back with \\`!?@fullstack !tellaskSession ...\\`; the correct form is \\`!?@tellasker\\`.',
|
|
67
69
|
].join('\n');
|
|
68
70
|
const collaborationProtocolZh = [
|
|
69
71
|
'- \\`!?@...\\` 仅用于诉请队友/@self/@human,不是函数工具调用通道。',
|
|
70
72
|
'- 函数工具只能通过原生 function-calling 调用;不要把工具名写进 \\`!?@...\\` 诉请头。',
|
|
71
|
-
'-
|
|
73
|
+
'- 对队友诉请默认带 \\`!tellaskSession <slug>\\` 并在同一会话续推(适用于非 \\`!?@self\\` 且非 \\`!?@tellasker\\` 的目标);仅在确认一次性诉请足够时才可省略,且需说明理由。',
|
|
74
|
+
'- 例外优先级(强制):\\`!?@tellasker\\` 是回问诉请专用目标,不属于“队友长线诉请默认规则”;因此既不适用默认 \\`!tellaskSession\\`,也禁止携带 \\`!tellaskSession\\`。',
|
|
72
75
|
'- 队友诉请阶段协议(强制):',
|
|
73
76
|
teammatePhaseContractZh,
|
|
74
77
|
].join('\n');
|
|
75
78
|
const collaborationProtocolEn = [
|
|
76
79
|
'- \\`!?@...\\` is only for tellasking teammates/@self/@human; it is not a function-tool invocation channel.',
|
|
77
80
|
'- Function tools must be invoked through native function-calling only; do not put tool names in \\`!?@...\\` tellask headlines.',
|
|
78
|
-
'- For teammate tellasks
|
|
81
|
+
'- For teammate tellasks, default to \\`!tellaskSession <slug>\\` and continue in that same session (applies to targets other than \\`!?@self\\` and \\`!?@tellasker\\`); omit only for a justified one-shot call.',
|
|
82
|
+
'- Mandatory exception precedence: \\`!?@tellasker\\` is TellaskBack-only and outside the teammate-session default; it therefore does not use the default \\`!tellaskSession\\` and must never carry \\`!tellaskSession\\`.',
|
|
79
83
|
'- Teammate Tellask phase contract (mandatory):',
|
|
80
84
|
teammatePhaseContractEn,
|
|
81
85
|
].join('\n');
|
|
@@ -743,80 +743,37 @@ async function handleGetDialogHierarchy(res, rootId) {
|
|
|
743
743
|
lastModified: rootLatest?.lastModified || rootMeta.createdAt,
|
|
744
744
|
runState: rootLatest?.runState,
|
|
745
745
|
};
|
|
746
|
-
// Enumerate subdialogs under this root
|
|
747
|
-
const rootPath = persistence_1.DialogPersistence.getRootDialogPath(new dialog_1.DialogID(rootId), foundStatus);
|
|
748
|
-
const subPath = path.join(rootPath, 'subdialogs');
|
|
749
746
|
let subdialogs = [];
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
const entries = await promises_1.default.readdir(dir, { withFileTypes: true });
|
|
755
|
-
for (const entry of entries) {
|
|
756
|
-
if (entry.isDirectory()) {
|
|
757
|
-
const fullPath = path.join(dir, entry.name);
|
|
758
|
-
const dialogYamlPath = path.join(fullPath, 'dialog.yaml');
|
|
759
|
-
const entryRelative = baseRelative ? path.join(baseRelative, entry.name) : entry.name;
|
|
760
|
-
try {
|
|
761
|
-
await promises_1.default.access(dialogYamlPath);
|
|
762
|
-
// This directory contains dialog.yaml - it's a subdialog
|
|
763
|
-
// Push the FULL relative path (e.g., "5a/e2/4c424f27" not just "5a")
|
|
764
|
-
results.push(entryRelative);
|
|
765
|
-
}
|
|
766
|
-
catch {
|
|
767
|
-
// No dialog.yaml - recurse into this directory
|
|
768
|
-
const nested = await findSubdialogDirs(fullPath, entryRelative);
|
|
769
|
-
results.push(...nested);
|
|
770
|
-
}
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
catch (error) {
|
|
775
|
-
if (typeof error === 'object' &&
|
|
776
|
-
error !== null &&
|
|
777
|
-
'code' in error &&
|
|
778
|
-
error.code === 'ENOENT') {
|
|
779
|
-
// No subdialogs directory - return empty
|
|
780
|
-
}
|
|
781
|
-
else {
|
|
782
|
-
throw error;
|
|
783
|
-
}
|
|
784
|
-
}
|
|
785
|
-
return results;
|
|
786
|
-
}
|
|
787
|
-
try {
|
|
788
|
-
const subIds = await findSubdialogDirs(subPath);
|
|
789
|
-
for (const subId of subIds) {
|
|
790
|
-
const meta = await persistence_1.DialogPersistence.loadDialogMetadata(new dialog_1.DialogID(subId, rootId), foundStatus);
|
|
791
|
-
if (meta) {
|
|
792
|
-
// Load latest.yaml for subdialog currentCourse and lastModified timestamp
|
|
793
|
-
const subLatest = await persistence_1.DialogPersistence.loadDialogLatest(new dialog_1.DialogID(subId, rootId), foundStatus);
|
|
794
|
-
subdialogs.push({
|
|
795
|
-
selfId: meta.id,
|
|
796
|
-
rootId: rootId, // For subdialogs, rootId is the supdialog's ID
|
|
797
|
-
agentId: meta.agentId,
|
|
798
|
-
taskDocPath: meta.taskDocPath,
|
|
799
|
-
status: foundStatus,
|
|
800
|
-
currentCourse: subLatest?.currentCourse || 1,
|
|
801
|
-
createdAt: meta.createdAt,
|
|
802
|
-
lastModified: subLatest?.lastModified || meta.createdAt,
|
|
803
|
-
runState: subLatest?.runState,
|
|
804
|
-
tellaskSession: meta.tellaskSession,
|
|
805
|
-
assignmentFromSup: meta.assignmentFromSup,
|
|
806
|
-
});
|
|
807
|
-
}
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
catch (error) {
|
|
811
|
-
if (typeof error === 'object' &&
|
|
812
|
-
error !== null &&
|
|
813
|
-
'code' in error &&
|
|
814
|
-
error.code === 'ENOENT') {
|
|
815
|
-
subdialogs = [];
|
|
747
|
+
const dialogIds = await persistence_1.DialogPersistence.listAllDialogIds(foundStatus);
|
|
748
|
+
for (const dialogId of dialogIds) {
|
|
749
|
+
if (dialogId.rootId !== rootId || dialogId.selfId === rootId) {
|
|
750
|
+
continue;
|
|
816
751
|
}
|
|
817
|
-
|
|
818
|
-
|
|
752
|
+
const meta = await persistence_1.DialogPersistence.loadDialogMetadata(dialogId, foundStatus);
|
|
753
|
+
if (!meta) {
|
|
754
|
+
continue;
|
|
819
755
|
}
|
|
756
|
+
const subLatest = await persistence_1.DialogPersistence.loadDialogLatest(dialogId, foundStatus);
|
|
757
|
+
const derivedSupdialogId = meta.assignmentFromSup?.callerDialogId &&
|
|
758
|
+
meta.assignmentFromSup.callerDialogId.trim() !== ''
|
|
759
|
+
? meta.assignmentFromSup.callerDialogId
|
|
760
|
+
: typeof meta.supdialogId === 'string' && meta.supdialogId.trim() !== ''
|
|
761
|
+
? meta.supdialogId
|
|
762
|
+
: undefined;
|
|
763
|
+
subdialogs.push({
|
|
764
|
+
selfId: meta.id,
|
|
765
|
+
rootId,
|
|
766
|
+
supdialogId: derivedSupdialogId,
|
|
767
|
+
agentId: meta.agentId,
|
|
768
|
+
taskDocPath: meta.taskDocPath,
|
|
769
|
+
status: foundStatus,
|
|
770
|
+
currentCourse: subLatest?.currentCourse || 1,
|
|
771
|
+
createdAt: meta.createdAt,
|
|
772
|
+
lastModified: subLatest?.lastModified || meta.createdAt,
|
|
773
|
+
runState: subLatest?.runState,
|
|
774
|
+
tellaskSession: meta.tellaskSession,
|
|
775
|
+
assignmentFromSup: meta.assignmentFromSup,
|
|
776
|
+
});
|
|
820
777
|
}
|
|
821
778
|
respondJson(res, 200, {
|
|
822
779
|
success: true,
|
|
@@ -636,6 +636,10 @@ async function handleDisplayDialog(ws, packet) {
|
|
|
636
636
|
: defaultDisableDiligencePush;
|
|
637
637
|
const effectiveDisableDiligencePush = persistedDisableDiligencePush;
|
|
638
638
|
rootDialog.disableDiligencePush = effectiveDisableDiligencePush;
|
|
639
|
+
const derivedSupdialogId = metadata.assignmentFromSup?.callerDialogId &&
|
|
640
|
+
metadata.assignmentFromSup.callerDialogId.trim() !== ''
|
|
641
|
+
? metadata.assignmentFromSup.callerDialogId
|
|
642
|
+
: metadata.supdialogId;
|
|
639
643
|
const dialogReadyResponse = {
|
|
640
644
|
type: 'dialog_ready',
|
|
641
645
|
dialog: {
|
|
@@ -644,7 +648,7 @@ async function handleDisplayDialog(ws, packet) {
|
|
|
644
648
|
},
|
|
645
649
|
agentId: metadata.agentId,
|
|
646
650
|
taskDocPath: metadata.taskDocPath,
|
|
647
|
-
supdialogId:
|
|
651
|
+
supdialogId: derivedSupdialogId,
|
|
648
652
|
tellaskSession: metadata.tellaskSession,
|
|
649
653
|
assignmentFromSup: metadata.assignmentFromSup,
|
|
650
654
|
disableDiligencePush: effectiveDisableDiligencePush,
|
package/dist/showing-by-doing.js
CHANGED
|
@@ -36,11 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.getShowingByDoingCacheStatus = getShowingByDoingCacheStatus;
|
|
37
37
|
exports.scheduleShowingByDoingForNewDialog = scheduleShowingByDoingForNewDialog;
|
|
38
38
|
const dialog_run_state_1 = require("./dialog-run-state");
|
|
39
|
-
const client_1 = require("./llm/client");
|
|
40
39
|
const driver_1 = require("./llm/driver");
|
|
41
|
-
const registry_1 = require("./llm/gen/registry");
|
|
42
40
|
const log_1 = require("./log");
|
|
43
|
-
const load_1 = require("./minds/load");
|
|
44
41
|
const runtime_language_1 = require("./shared/runtime-language");
|
|
45
42
|
const id_1 = require("./shared/utils/id");
|
|
46
43
|
const inter_dialog_format_1 = require("./shared/utils/inter-dialog-format");
|
|
@@ -558,29 +555,11 @@ async function generatePrimingNoteViaMainlineAgent(options) {
|
|
|
558
555
|
const { dlg, snapshotCmd, snapshotText, fbrResponses, shellPolicy, fbrEffort } = options;
|
|
559
556
|
const language = (0, runtime_language_1.getWorkLanguage)();
|
|
560
557
|
try {
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
const model = agent.model ?? team.memberDefaults.model;
|
|
567
|
-
if (!provider || !model) {
|
|
568
|
-
throw new Error(`Missing provider/model for agent '${dlg.agentId}'`);
|
|
569
|
-
}
|
|
570
|
-
const llmCfg = await client_1.LlmConfig.load();
|
|
571
|
-
const providerCfg = llmCfg.getProvider(provider);
|
|
572
|
-
if (!providerCfg) {
|
|
573
|
-
throw new Error(`Provider configuration not found: '${provider}'`);
|
|
574
|
-
}
|
|
575
|
-
const llmGen = (0, registry_1.getLlmGenerator)(providerCfg.apiType);
|
|
576
|
-
if (!llmGen) {
|
|
577
|
-
throw new Error(`LLM generator not found for apiType='${providerCfg.apiType}'`);
|
|
578
|
-
}
|
|
579
|
-
// Force non-streaming for this synthetic summary generation.
|
|
580
|
-
const agentForGen = Object.create(agent);
|
|
581
|
-
agentForGen.streaming = false;
|
|
582
|
-
// Intentionally pass zero tools: we want a pure text synthesis and must avoid accidental
|
|
583
|
-
// `clear_mind` / `change_mind` calls during dialog creation.
|
|
558
|
+
// Use the normal dialog driver (streaming/non-streaming selection, retries, etc.) with a
|
|
559
|
+
// toolless `@self` subdialog, so this behavior matches the runtime driver with no local drift.
|
|
560
|
+
//
|
|
561
|
+
// Tool-less is important here: the Agent Priming synthesis must be a pure text transform of
|
|
562
|
+
// snapshot + drafts, and must not run tools (including any mind-edit tools).
|
|
584
563
|
const prompt = formatPrimingSynthesisPrompt({
|
|
585
564
|
language,
|
|
586
565
|
snapshotCmd,
|
|
@@ -589,17 +568,35 @@ async function generatePrimingNoteViaMainlineAgent(options) {
|
|
|
589
568
|
fbrDrafts: fbrResponses,
|
|
590
569
|
shellPolicy,
|
|
591
570
|
});
|
|
592
|
-
const
|
|
593
|
-
const
|
|
594
|
-
const
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
.
|
|
598
|
-
.
|
|
599
|
-
|
|
571
|
+
const tellaskHead = '@self (agent priming synthesis)';
|
|
572
|
+
const tellaskBody = prompt;
|
|
573
|
+
const sub = await dlg.createSubDialog(dlg.agentId, tellaskHead, tellaskBody, {
|
|
574
|
+
originMemberId: dlg.agentId,
|
|
575
|
+
callerDialogId: dlg.id.selfId,
|
|
576
|
+
callId: (0, id_1.generateShortId)(),
|
|
577
|
+
collectiveTargets: [dlg.agentId],
|
|
578
|
+
});
|
|
579
|
+
const initPrompt = (0, inter_dialog_format_1.formatAssignmentFromSupdialog)({
|
|
580
|
+
fromAgentId: dlg.agentId,
|
|
581
|
+
toAgentId: sub.agentId,
|
|
582
|
+
tellaskHead,
|
|
583
|
+
tellaskBody,
|
|
584
|
+
language,
|
|
585
|
+
collectiveTargets: [dlg.agentId],
|
|
586
|
+
});
|
|
587
|
+
await (0, driver_1.driveDialogStream)(sub, { content: initPrompt, msgId: (0, id_1.generateShortId)(), grammar: 'markdown' }, true);
|
|
588
|
+
const saying = extractLastAssistantSaying(sub.msgs).trim();
|
|
589
|
+
if (saying) {
|
|
600
590
|
return saying;
|
|
591
|
+
}
|
|
601
592
|
}
|
|
602
593
|
catch (err) {
|
|
594
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
595
|
+
// Do not silently fall back for known severe configuration errors (e.g. Codex requires
|
|
596
|
+
// streaming=true).
|
|
597
|
+
if (message.includes('apiType=codex requires streaming=true')) {
|
|
598
|
+
throw err;
|
|
599
|
+
}
|
|
603
600
|
log_1.log.warn('Failed to generate Agent Priming note via mainline agent (best-effort)', err, {
|
|
604
601
|
dialogId: dlg.id.valueOf(),
|
|
605
602
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aV as isObjectLike, br as baseGetTag, aE as isArray, aT as Symbol$1, bs as arrayLikeKeys, bt as baseKeys, aD as isArrayLike, bu as memoize, bv as isArguments, bw as MapCache, bm as eq, bx as Uint8Array, aW as getTag, a$ as isBuffer, b2 as Stack, by as isTypedArray, aZ as isObject, bz as isLength, bp as isIndex, aF as identity, bn as baseFor, bA as Set } from "./index-
|
|
1
|
+
import { aV as isObjectLike, br as baseGetTag, aE as isArray, aT as Symbol$1, bs as arrayLikeKeys, bt as baseKeys, aD as isArrayLike, bu as memoize, bv as isArguments, bw as MapCache, bm as eq, bx as Uint8Array, aW as getTag, a$ as isBuffer, b2 as Stack, by as isTypedArray, aZ as isObject, bz as isLength, bp as isIndex, aF as identity, bn as baseFor, bA as Set } from "./index-gn-aSKfG.js";
|
|
2
2
|
var symbolTag$1 = "[object Symbol]";
|
|
3
3
|
function isSymbol(value) {
|
|
4
4
|
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$1;
|
|
@@ -658,4 +658,4 @@ export {
|
|
|
658
658
|
hasIn as x,
|
|
659
659
|
toString as y
|
|
660
660
|
};
|
|
661
|
-
//# sourceMappingURL=_baseUniq-
|
|
661
|
+
//# sourceMappingURL=_baseUniq-DucuKHj3.js.map
|