zugzbot-sdd 1.5.5 → 1.5.7

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",
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",
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.5",
3
+ "version": "1.5.7",
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
@@ -4,8 +4,8 @@
4
4
  "sdd-explorer": "deepseek/deepseek-v4-flash",
5
5
  "sdd-planner": "deepseek/deepseek-v4-pro",
6
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",
7
+ "sdd-tester": "minimax-coding-plan/MiniMax-M2.7",
8
+ "sdd-deployer": "minimax-coding-plan/MiniMax-M2.7",
9
9
  "sdd-archiver": "deepseek/deepseek-v4-flash",
10
10
  "aux-handyman": "deepseek/deepseek-v4-flash",
11
11
  "aux-oracle": "deepseek/deepseek-v4-flash"