zugzbot-sdd 1.5.4 → 1.5.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/bin/zugzbot.js CHANGED
@@ -10,103 +10,6 @@ const PKG_ROOT = path.resolve(__dirname, "..")
10
10
 
11
11
  const INSTALL_DIR = process.cwd()
12
12
 
13
- const TEMPLATE_OPENCODE_JSON = {
14
- "$schema": "https://opencode.ai/config.json",
15
- "lsp": true,
16
- "permission": {
17
- "edit": "allow",
18
- "bash": "allow",
19
- "lsp": "allow"
20
- },
21
- "agent": {
22
- "zugzbot": {
23
- "mode": "primary",
24
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/zugzbot.md}",
25
- "permission": {
26
- "task": { "sdd-*": "allow", "aux-*": "allow" },
27
- "question": "allow",
28
- "lsp": "allow",
29
- "edit": { ".openspec/sdd-lock.json": "allow" }
30
- }
31
- },
32
- "sdd-explorer": {
33
- "mode": "subagent",
34
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-explorer.md}",
35
- "permission": {
36
- "bash": "allow",
37
- "lsp": "allow",
38
- "tools": { "sdd_transition": "allow", "sdd_generate_tree": "allow" }
39
- }
40
- },
41
- "sdd-planner": {
42
- "mode": "subagent",
43
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-planner.md}",
44
- "permission": {
45
- "edit": "allow",
46
- "bash": "ask",
47
- "lsp": "allow",
48
- "tools": { "sdd_transition": "allow", "sdd_brain_sync": "allow" }
49
- }
50
- },
51
- "sdd-builder": {
52
- "mode": "subagent",
53
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-builder.md}",
54
- "permission": {
55
- "edit": "allow",
56
- "bash": "allow",
57
- "lsp": "allow",
58
- "tools": { "sdd_transition": "allow", "sdd_ui_auditor": "allow" }
59
- }
60
- },
61
- "sdd-tester": {
62
- "mode": "subagent",
63
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-tester.md}",
64
- "permission": {
65
- "edit": "allow",
66
- "bash": "allow",
67
- "lsp": "allow",
68
- "tools": { "sdd_transition": "allow", "sdd_ui_auditor": "allow", "sdd_spec_validator": "allow" }
69
- }
70
- },
71
- "sdd-archiver": {
72
- "mode": "subagent",
73
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-archiver.md}",
74
- "permission": {
75
- "edit": "allow",
76
- "bash": "allow",
77
- "lsp": "allow",
78
- "tools": { "sdd_archive_and_commit": "allow", "sdd_transition": "allow", "sdd_brain_sync": "allow", "sdd_install_autoskills": "allow" }
79
- }
80
- },
81
- "sdd-deployer": {
82
- "mode": "subagent",
83
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-deployer.md}",
84
- "permission": {
85
- "bash": "allow",
86
- "tools": { "sdd_transition": "allow" }
87
- }
88
- },
89
- "aux-handyman": {
90
- "mode": "subagent",
91
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/aux-handyman.md}",
92
- "permission": {
93
- "edit": "allow",
94
- "bash": "allow",
95
- "lsp": "allow"
96
- }
97
- },
98
- "aux-oracle": {
99
- "mode": "subagent",
100
- "prompt": "{file:./node_modules/zugzbot-sdd/agents/aux-oracle.md}",
101
- "permission": {
102
- "edit": "deny",
103
- "bash": "deny",
104
- "lsp": "deny"
105
- }
106
- }
107
- }
108
- }
109
-
110
13
  const TEMPLATE_SDD_LOCK = {
111
14
  change_name: "nuevo-cambio",
112
15
  active_phase: 0,
@@ -145,6 +48,129 @@ const BRAIN_TEMPLATE = `# 🧠 Brain del Proyecto
145
48
  - Proyecto inicializado con Zugzbot SDD Plugin v1.0.0
146
49
  `
147
50
 
51
+ function getTemplateModels() {
52
+ const templateModelsPath = path.join(PKG_ROOT, "zugz-models.json")
53
+ if (fs.existsSync(templateModelsPath)) {
54
+ try {
55
+ return JSON.parse(fs.readFileSync(templateModelsPath, "utf-8"))
56
+ } catch (e) {
57
+ return null
58
+ }
59
+ }
60
+ return null
61
+ }
62
+
63
+ function buildOpencodeJson(models) {
64
+ const defaultModel = models?.default || "minimax-coding-plan/MiniMax-M2.7"
65
+ const agents = models?.agents || {}
66
+
67
+ return {
68
+ "$schema": "https://opencode.ai/config.json",
69
+ "lsp": true,
70
+ "permission": {
71
+ "edit": "allow",
72
+ "bash": "allow",
73
+ "lsp": "allow"
74
+ },
75
+ "agent": {
76
+ "zugzbot": {
77
+ "mode": "primary",
78
+ "model": agents.zugzbot || defaultModel,
79
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/zugzbot.md}",
80
+ "permission": {
81
+ "task": { "sdd-*": "allow", "aux-*": "allow" },
82
+ "question": "allow",
83
+ "lsp": "allow",
84
+ "edit": { ".openspec/sdd-lock.json": "allow" }
85
+ }
86
+ },
87
+ "sdd-explorer": {
88
+ "mode": "subagent",
89
+ "model": agents["sdd-explorer"] || defaultModel,
90
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-explorer.md}",
91
+ "permission": {
92
+ "bash": "allow",
93
+ "lsp": "allow",
94
+ "tools": { "sdd_transition": "allow", "sdd_generate_tree": "allow" }
95
+ }
96
+ },
97
+ "sdd-planner": {
98
+ "mode": "subagent",
99
+ "model": agents["sdd-planner"] || defaultModel,
100
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-planner.md}",
101
+ "permission": {
102
+ "edit": "allow",
103
+ "bash": "ask",
104
+ "lsp": "allow",
105
+ "tools": { "sdd_transition": "allow", "sdd_brain_sync": "allow" }
106
+ }
107
+ },
108
+ "sdd-builder": {
109
+ "mode": "subagent",
110
+ "model": agents["sdd-builder"] || defaultModel,
111
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-builder.md}",
112
+ "permission": {
113
+ "edit": "allow",
114
+ "bash": "allow",
115
+ "lsp": "allow",
116
+ "tools": { "sdd_transition": "allow", "sdd_ui_auditor": "allow" }
117
+ }
118
+ },
119
+ "sdd-tester": {
120
+ "mode": "subagent",
121
+ "model": agents["sdd-tester"] || defaultModel,
122
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-tester.md}",
123
+ "permission": {
124
+ "edit": "allow",
125
+ "bash": "allow",
126
+ "lsp": "allow",
127
+ "tools": { "sdd_transition": "allow", "sdd_ui_auditor": "allow", "sdd_spec_validator": "allow" }
128
+ }
129
+ },
130
+ "sdd-archiver": {
131
+ "mode": "subagent",
132
+ "model": agents["sdd-archiver"] || defaultModel,
133
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-archiver.md}",
134
+ "permission": {
135
+ "edit": "allow",
136
+ "bash": "allow",
137
+ "lsp": "allow",
138
+ "tools": { "sdd_archive_and_commit": "allow", "sdd_transition": "allow", "sdd_brain_sync": "allow", "sdd_install_autoskills": "allow" }
139
+ }
140
+ },
141
+ "sdd-deployer": {
142
+ "mode": "subagent",
143
+ "model": agents["sdd-deployer"] || defaultModel,
144
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-deployer.md}",
145
+ "permission": {
146
+ "bash": "allow",
147
+ "tools": { "sdd_transition": "allow" }
148
+ }
149
+ },
150
+ "aux-handyman": {
151
+ "mode": "subagent",
152
+ "model": agents["aux-handyman"] || defaultModel,
153
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/aux-handyman.md}",
154
+ "permission": {
155
+ "edit": "allow",
156
+ "bash": "allow",
157
+ "lsp": "allow"
158
+ }
159
+ },
160
+ "aux-oracle": {
161
+ "mode": "subagent",
162
+ "model": agents["aux-oracle"] || defaultModel,
163
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/aux-oracle.md}",
164
+ "permission": {
165
+ "edit": "deny",
166
+ "bash": "deny",
167
+ "lsp": "deny"
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }
173
+
148
174
  function green(msg) { console.log(` \x1b[32m✓\x1b[0m ${msg}`) }
149
175
  function yellow(msg) { console.log(` \x1b[33m⚠\x1b[0m ${msg}`) }
150
176
  function header(msg) { console.log(`\n\x1b[1m${msg}\x1b[0m`) }
@@ -165,13 +191,12 @@ function init() {
165
191
 
166
192
  header("📝 Creando archivos de configuración...")
167
193
 
194
+ const models = getTemplateModels()
195
+ const opencodeJson = buildOpencodeJson(models)
196
+
168
197
  const opencodePath = path.join(INSTALL_DIR, "opencode.json")
169
- if (!fs.existsSync(opencodePath)) {
170
- fs.writeFileSync(opencodePath, JSON.stringify(TEMPLATE_OPENCODE_JSON, null, 2), "utf-8")
171
- green("opencode.json creado")
172
- } else {
173
- yellow("opencode.json ya existe, preservado")
174
- }
198
+ fs.writeFileSync(opencodePath, JSON.stringify(opencodeJson, null, 2), "utf-8")
199
+ green("opencode.json creado (modelos aplicados desde zugz-models.json)")
175
200
 
176
201
  const tuiPath = path.join(INSTALL_DIR, "tui.json")
177
202
  if (!fs.existsSync(tuiPath)) {
package/opencode.json CHANGED
@@ -9,7 +9,8 @@
9
9
  "agent": {
10
10
  "zugzbot": {
11
11
  "mode": "primary",
12
- "prompt": "{file:./agents/zugzbot.md}",
12
+ "model": "deepseek/deepseek-v4-pro",
13
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/zugzbot.md}",
13
14
  "permission": {
14
15
  "task": {
15
16
  "sdd-*": "allow",
@@ -24,7 +25,8 @@
24
25
  },
25
26
  "sdd-explorer": {
26
27
  "mode": "subagent",
27
- "prompt": "{file:./agents/sdd-explorer.md}",
28
+ "model": "deepseek/deepseek-v4-flash",
29
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-explorer.md}",
28
30
  "permission": {
29
31
  "bash": "allow",
30
32
  "lsp": "allow",
@@ -36,7 +38,8 @@
36
38
  },
37
39
  "sdd-planner": {
38
40
  "mode": "subagent",
39
- "prompt": "{file:./agents/sdd-planner.md}",
41
+ "model": "deepseek/deepseek-v4-pro",
42
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-planner.md}",
40
43
  "permission": {
41
44
  "edit": "allow",
42
45
  "bash": "ask",
@@ -49,7 +52,8 @@
49
52
  },
50
53
  "sdd-builder": {
51
54
  "mode": "subagent",
52
- "prompt": "{file:./agents/sdd-builder.md}",
55
+ "model": "minimax-coding-plan/MiniMax-M2.7",
56
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-builder.md}",
53
57
  "permission": {
54
58
  "edit": "allow",
55
59
  "bash": "allow",
@@ -62,7 +66,8 @@
62
66
  },
63
67
  "sdd-tester": {
64
68
  "mode": "subagent",
65
- "prompt": "{file:./agents/sdd-tester.md}",
69
+ "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
70
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-tester.md}",
66
71
  "permission": {
67
72
  "edit": "allow",
68
73
  "bash": "allow",
@@ -76,7 +81,8 @@
76
81
  },
77
82
  "sdd-archiver": {
78
83
  "mode": "subagent",
79
- "prompt": "{file:./agents/sdd-archiver.md}",
84
+ "model": "deepseek/deepseek-v4-flash",
85
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-archiver.md}",
80
86
  "permission": {
81
87
  "edit": "allow",
82
88
  "bash": "allow",
@@ -91,7 +97,8 @@
91
97
  },
92
98
  "sdd-deployer": {
93
99
  "mode": "subagent",
94
- "prompt": "{file:./agents/sdd-deployer.md}",
100
+ "model": "minimax-coding-plan/MiniMax-M2.7-highspeed",
101
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/sdd-deployer.md}",
95
102
  "permission": {
96
103
  "bash": "allow",
97
104
  "tools": {
@@ -101,7 +108,8 @@
101
108
  },
102
109
  "aux-handyman": {
103
110
  "mode": "subagent",
104
- "prompt": "{file:./agents/aux-handyman.md}",
111
+ "model": "deepseek/deepseek-v4-flash",
112
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/aux-handyman.md}",
105
113
  "permission": {
106
114
  "edit": "allow",
107
115
  "bash": "allow",
@@ -110,7 +118,8 @@
110
118
  },
111
119
  "aux-oracle": {
112
120
  "mode": "subagent",
113
- "prompt": "{file:./agents/aux-oracle.md}",
121
+ "model": "deepseek/deepseek-v4-flash",
122
+ "prompt": "{file:./node_modules/zugzbot-sdd/agents/aux-oracle.md}",
114
123
  "permission": {
115
124
  "edit": "deny",
116
125
  "bash": "deny",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zugzbot-sdd",
3
- "version": "1.5.4",
3
+ "version": "1.5.6",
4
4
  "description": "Zugzbot SDD Swarm - Spec-Driven Development Harness for OpenCode",
5
5
  "main": "index.js",
6
6
  "type": "module",
package/zugz-models.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "agents": {
3
- "zugzbot": "minimax-coding-plan/MiniMax-M2.7",
4
- "sdd-explorer": "minimax-coding-plan/MiniMax-M2.7",
5
- "sdd-planner": "minimax-coding-plan/MiniMax-M2.7",
6
- "sdd-builder": "anthropic/claude-3.5-sonnet",
7
- "sdd-tester": "minimax-coding-plan/MiniMax-M2.7",
8
- "sdd-deployer": "minimax-coding-plan/MiniMax-M2.7",
9
- "sdd-archiver": "minimax-coding-plan/MiniMax-M2.7",
10
- "aux-handyman": "minimax-coding-plan/MiniMax-M2.7",
11
- "aux-oracle": "minimax-coding-plan/MiniMax-M2.7"
3
+ "zugzbot": "deepseek/deepseek-v4-pro",
4
+ "sdd-explorer": "deepseek/deepseek-v4-flash",
5
+ "sdd-planner": "deepseek/deepseek-v4-pro",
6
+ "sdd-builder": "minimax-coding-plan/MiniMax-M2.7",
7
+ "sdd-tester": "minimax-coding-plan/MiniMax-M2.7-highspeed",
8
+ "sdd-deployer": "minimax-coding-plan/MiniMax-M2.7-highspeed",
9
+ "sdd-archiver": "deepseek/deepseek-v4-flash",
10
+ "aux-handyman": "deepseek/deepseek-v4-flash",
11
+ "aux-oracle": "deepseek/deepseek-v4-flash"
12
12
  },
13
- "default": "minimax-coding-plan/MiniMax-M2.7"
13
+ "default": "deepseek/deepseek-v4-flash"
14
14
  }