@zcy2nn/agent-forge 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +266 -0
  3. package/agent-forge.schema.json +675 -0
  4. package/dist/agents/council.d.ts +27 -0
  5. package/dist/agents/councillor.d.ts +2 -0
  6. package/dist/agents/implementer.d.ts +2 -0
  7. package/dist/agents/index.d.ts +30 -0
  8. package/dist/agents/orchestrator.d.ts +30 -0
  9. package/dist/agents/researcher.d.ts +2 -0
  10. package/dist/agents/reviewer.d.ts +2 -0
  11. package/dist/cli/config-io.d.ts +24 -0
  12. package/dist/cli/config-manager.d.ts +4 -0
  13. package/dist/cli/custom-skills.d.ts +29 -0
  14. package/dist/cli/doctor.d.ts +38 -0
  15. package/dist/cli/index.d.ts +2 -0
  16. package/dist/cli/index.js +1932 -0
  17. package/dist/cli/install.d.ts +2 -0
  18. package/dist/cli/migration.d.ts +46 -0
  19. package/dist/cli/model-key-normalization.d.ts +1 -0
  20. package/dist/cli/paths.d.ts +35 -0
  21. package/dist/cli/providers.d.ts +99 -0
  22. package/dist/cli/skills.d.ts +52 -0
  23. package/dist/cli/system.d.ts +6 -0
  24. package/dist/cli/types.d.ts +40 -0
  25. package/dist/config/agent-mcps.d.ts +15 -0
  26. package/dist/config/constants.d.ts +28 -0
  27. package/dist/config/council-schema.d.ts +127 -0
  28. package/dist/config/index.d.ts +5 -0
  29. package/dist/config/loader.d.ts +57 -0
  30. package/dist/config/runtime-preset.d.ts +12 -0
  31. package/dist/config/schema.d.ts +371 -0
  32. package/dist/config/utils.d.ts +15 -0
  33. package/dist/council/council-manager.d.ts +49 -0
  34. package/dist/council/index.d.ts +1 -0
  35. package/dist/divoom/council.gif +0 -0
  36. package/dist/divoom/designer.gif +0 -0
  37. package/dist/divoom/explorer.gif +0 -0
  38. package/dist/divoom/fixer.gif +0 -0
  39. package/dist/divoom/input.gif +0 -0
  40. package/dist/divoom/intro.gif +0 -0
  41. package/dist/divoom/librarian.gif +0 -0
  42. package/dist/divoom/manager.d.ts +57 -0
  43. package/dist/divoom/oracle.gif +0 -0
  44. package/dist/divoom/orchestrator.gif +0 -0
  45. package/dist/hooks/apply-patch/codec.d.ts +7 -0
  46. package/dist/hooks/apply-patch/errors.d.ts +25 -0
  47. package/dist/hooks/apply-patch/execution-context.d.ts +27 -0
  48. package/dist/hooks/apply-patch/index.d.ts +15 -0
  49. package/dist/hooks/apply-patch/matching.d.ts +26 -0
  50. package/dist/hooks/apply-patch/operations.d.ts +3 -0
  51. package/dist/hooks/apply-patch/patch.d.ts +2 -0
  52. package/dist/hooks/apply-patch/prepared-changes.d.ts +17 -0
  53. package/dist/hooks/apply-patch/resolution.d.ts +19 -0
  54. package/dist/hooks/apply-patch/rewrite.d.ts +7 -0
  55. package/dist/hooks/apply-patch/test-helpers.d.ts +6 -0
  56. package/dist/hooks/apply-patch/types.d.ts +80 -0
  57. package/dist/hooks/auto-update-checker/cache.d.ts +11 -0
  58. package/dist/hooks/auto-update-checker/checker.d.ts +32 -0
  59. package/dist/hooks/auto-update-checker/constants.d.ts +11 -0
  60. package/dist/hooks/auto-update-checker/index.d.ts +18 -0
  61. package/dist/hooks/auto-update-checker/types.d.ts +22 -0
  62. package/dist/hooks/chat-headers.d.ts +16 -0
  63. package/dist/hooks/delegate-task-retry/guidance.d.ts +2 -0
  64. package/dist/hooks/delegate-task-retry/hook.d.ts +8 -0
  65. package/dist/hooks/delegate-task-retry/index.d.ts +4 -0
  66. package/dist/hooks/delegate-task-retry/patterns.d.ts +11 -0
  67. package/dist/hooks/filter-available-skills/index.d.ts +32 -0
  68. package/dist/hooks/foreground-fallback/index.d.ts +72 -0
  69. package/dist/hooks/image-hook.d.ts +19 -0
  70. package/dist/hooks/index.d.ts +13 -0
  71. package/dist/hooks/json-error-recovery/hook.d.ts +18 -0
  72. package/dist/hooks/json-error-recovery/index.d.ts +1 -0
  73. package/dist/hooks/phase-reminder/index.d.ts +26 -0
  74. package/dist/hooks/post-file-tool-nudge/index.d.ts +19 -0
  75. package/dist/hooks/task-session-manager/index.d.ts +52 -0
  76. package/dist/hooks/todo-continuation/index.d.ts +53 -0
  77. package/dist/hooks/todo-continuation/todo-hygiene.d.ts +35 -0
  78. package/dist/index.d.ts +5 -0
  79. package/dist/index.js +32981 -0
  80. package/dist/interview/dashboard.d.ts +62 -0
  81. package/dist/interview/document.d.ts +25 -0
  82. package/dist/interview/helpers.d.ts +10 -0
  83. package/dist/interview/index.d.ts +1 -0
  84. package/dist/interview/manager.d.ts +35 -0
  85. package/dist/interview/parser.d.ts +11 -0
  86. package/dist/interview/prompts.d.ts +7 -0
  87. package/dist/interview/server.d.ts +13 -0
  88. package/dist/interview/service.d.ts +34 -0
  89. package/dist/interview/types.d.ts +96 -0
  90. package/dist/interview/ui.d.ts +12 -0
  91. package/dist/mcp/context7.d.ts +6 -0
  92. package/dist/mcp/grep-app.d.ts +6 -0
  93. package/dist/mcp/index.d.ts +8 -0
  94. package/dist/mcp/types.d.ts +12 -0
  95. package/dist/mcp/websearch.d.ts +9 -0
  96. package/dist/multiplexer/factory.d.ts +26 -0
  97. package/dist/multiplexer/index.d.ts +9 -0
  98. package/dist/multiplexer/session-manager.d.ts +53 -0
  99. package/dist/multiplexer/tmux/index.d.ts +22 -0
  100. package/dist/multiplexer/types.d.ts +54 -0
  101. package/dist/multiplexer/zellij/index.d.ts +34 -0
  102. package/dist/tools/ast-grep/cli.d.ts +15 -0
  103. package/dist/tools/ast-grep/constants.d.ts +25 -0
  104. package/dist/tools/ast-grep/downloader.d.ts +5 -0
  105. package/dist/tools/ast-grep/index.d.ts +10 -0
  106. package/dist/tools/ast-grep/tools.d.ts +3 -0
  107. package/dist/tools/ast-grep/types.d.ts +30 -0
  108. package/dist/tools/ast-grep/utils.d.ts +4 -0
  109. package/dist/tools/council.d.ts +10 -0
  110. package/dist/tools/index.d.ts +6 -0
  111. package/dist/tools/preset-manager.d.ts +27 -0
  112. package/dist/tools/skill.d.ts +9 -0
  113. package/dist/tools/smartfetch/binary.d.ts +3 -0
  114. package/dist/tools/smartfetch/cache.d.ts +6 -0
  115. package/dist/tools/smartfetch/constants.d.ts +12 -0
  116. package/dist/tools/smartfetch/index.d.ts +3 -0
  117. package/dist/tools/smartfetch/network.d.ts +38 -0
  118. package/dist/tools/smartfetch/secondary-model.d.ts +28 -0
  119. package/dist/tools/smartfetch/tool.d.ts +3 -0
  120. package/dist/tools/smartfetch/types.d.ts +122 -0
  121. package/dist/tools/smartfetch/utils.d.ts +18 -0
  122. package/dist/tui-state.d.ts +15 -0
  123. package/dist/tui.d.ts +8 -0
  124. package/dist/tui.js +248 -0
  125. package/dist/utils/agent-variant.d.ts +63 -0
  126. package/dist/utils/compat.d.ts +30 -0
  127. package/dist/utils/env.d.ts +1 -0
  128. package/dist/utils/index.d.ts +9 -0
  129. package/dist/utils/internal-initiator.d.ts +6 -0
  130. package/dist/utils/logger.d.ts +8 -0
  131. package/dist/utils/polling.d.ts +21 -0
  132. package/dist/utils/session-manager.d.ts +55 -0
  133. package/dist/utils/session.d.ts +74 -0
  134. package/dist/utils/subagent-depth.d.ts +35 -0
  135. package/dist/utils/system-collapse.d.ts +6 -0
  136. package/dist/utils/task.d.ts +4 -0
  137. package/dist/utils/zip-extractor.d.ts +1 -0
  138. package/package.json +104 -0
  139. package/src/skills/brainstorming/SKILL.md +177 -0
  140. package/src/skills/brainstorming/scripts/frame-template.html +214 -0
  141. package/src/skills/brainstorming/scripts/helper.js +88 -0
  142. package/src/skills/brainstorming/scripts/server.cjs +354 -0
  143. package/src/skills/brainstorming/scripts/start-server.sh +148 -0
  144. package/src/skills/brainstorming/scripts/stop-server.sh +56 -0
  145. package/src/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  146. package/src/skills/brainstorming/visual-companion.md +279 -0
  147. package/src/skills/codemap/README.md +59 -0
  148. package/src/skills/codemap/SKILL.md +163 -0
  149. package/src/skills/codemap/codemap.md +36 -0
  150. package/src/skills/codemap/scripts/codemap.mjs +483 -0
  151. package/src/skills/codemap/scripts/codemap.test.ts +129 -0
  152. package/src/skills/codemap.md +40 -0
  153. package/src/skills/dispatching-parallel-agents/SKILL.md +193 -0
  154. package/src/skills/executing-plans/SKILL.md +78 -0
  155. package/src/skills/finishing-a-development-branch/SKILL.md +211 -0
  156. package/src/skills/receiving-code-review/SKILL.md +224 -0
  157. package/src/skills/requesting-code-review/SKILL.md +113 -0
  158. package/src/skills/requesting-code-review/code-reviewer.md +146 -0
  159. package/src/skills/simplify/README.md +19 -0
  160. package/src/skills/simplify/SKILL.md +138 -0
  161. package/src/skills/simplify/codemap.md +36 -0
  162. package/src/skills/subagent-driven-development/SKILL.md +288 -0
  163. package/src/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  164. package/src/skills/subagent-driven-development/implementer-prompt.md +113 -0
  165. package/src/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  166. package/src/skills/systematic-debugging/CREATION-LOG.md +119 -0
  167. package/src/skills/systematic-debugging/SKILL.md +308 -0
  168. package/src/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  169. package/src/skills/systematic-debugging/condition-based-waiting.md +115 -0
  170. package/src/skills/systematic-debugging/defense-in-depth.md +122 -0
  171. package/src/skills/systematic-debugging/find-polluter.sh +63 -0
  172. package/src/skills/systematic-debugging/root-cause-tracing.md +169 -0
  173. package/src/skills/systematic-debugging/test-academic.md +14 -0
  174. package/src/skills/systematic-debugging/test-pressure-1.md +58 -0
  175. package/src/skills/systematic-debugging/test-pressure-2.md +68 -0
  176. package/src/skills/systematic-debugging/test-pressure-3.md +69 -0
  177. package/src/skills/test-driven-development/SKILL.md +383 -0
  178. package/src/skills/test-driven-development/testing-anti-patterns.md +299 -0
  179. package/src/skills/using-git-worktrees/SKILL.md +226 -0
  180. package/src/skills/verification-before-completion/SKILL.md +147 -0
  181. package/src/skills/writing-plans/SKILL.md +165 -0
  182. package/src/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  183. package/src/skills/writing-skills/SKILL.md +666 -0
  184. package/src/skills/writing-skills/anthropic-best-practices.md +1150 -0
  185. package/src/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  186. package/src/skills/writing-skills/graphviz-conventions.dot +172 -0
  187. package/src/skills/writing-skills/persuasion-principles.md +187 -0
  188. package/src/skills/writing-skills/render-graphs.js +168 -0
  189. package/src/skills/writing-skills/testing-skills-with-subagents.md +384 -0
@@ -0,0 +1,675 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "preset": {
6
+ "type": "string"
7
+ },
8
+ "setDefaultAgent": {
9
+ "type": "boolean"
10
+ },
11
+ "scoringEngineVersion": {
12
+ "type": "string",
13
+ "enum": [
14
+ "v1",
15
+ "v2-shadow",
16
+ "v2"
17
+ ]
18
+ },
19
+ "balanceProviderUsage": {
20
+ "type": "boolean"
21
+ },
22
+ "autoUpdate": {
23
+ "description": "Disable automatic installation of plugin updates when false. Defaults to true.",
24
+ "type": "boolean"
25
+ },
26
+ "manualPlan": {
27
+ "type": "object",
28
+ "properties": {
29
+ "orchestrator": {
30
+ "type": "object",
31
+ "properties": {
32
+ "primary": {
33
+ "type": "string",
34
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
35
+ },
36
+ "fallback1": {
37
+ "type": "string",
38
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
39
+ },
40
+ "fallback2": {
41
+ "type": "string",
42
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
43
+ },
44
+ "fallback3": {
45
+ "type": "string",
46
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
47
+ }
48
+ },
49
+ "required": [
50
+ "primary",
51
+ "fallback1",
52
+ "fallback2",
53
+ "fallback3"
54
+ ]
55
+ },
56
+ "researcher": {
57
+ "type": "object",
58
+ "properties": {
59
+ "primary": {
60
+ "type": "string",
61
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
62
+ },
63
+ "fallback1": {
64
+ "type": "string",
65
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
66
+ },
67
+ "fallback2": {
68
+ "type": "string",
69
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
70
+ },
71
+ "fallback3": {
72
+ "type": "string",
73
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
74
+ }
75
+ },
76
+ "required": [
77
+ "primary",
78
+ "fallback1",
79
+ "fallback2",
80
+ "fallback3"
81
+ ]
82
+ },
83
+ "reviewer": {
84
+ "type": "object",
85
+ "properties": {
86
+ "primary": {
87
+ "type": "string",
88
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
89
+ },
90
+ "fallback1": {
91
+ "type": "string",
92
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
93
+ },
94
+ "fallback2": {
95
+ "type": "string",
96
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
97
+ },
98
+ "fallback3": {
99
+ "type": "string",
100
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
101
+ }
102
+ },
103
+ "required": [
104
+ "primary",
105
+ "fallback1",
106
+ "fallback2",
107
+ "fallback3"
108
+ ]
109
+ },
110
+ "implementer": {
111
+ "type": "object",
112
+ "properties": {
113
+ "primary": {
114
+ "type": "string",
115
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
116
+ },
117
+ "fallback1": {
118
+ "type": "string",
119
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
120
+ },
121
+ "fallback2": {
122
+ "type": "string",
123
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
124
+ },
125
+ "fallback3": {
126
+ "type": "string",
127
+ "pattern": "^[^/\\s]+\\/[^\\s]+$"
128
+ }
129
+ },
130
+ "required": [
131
+ "primary",
132
+ "fallback1",
133
+ "fallback2",
134
+ "fallback3"
135
+ ]
136
+ }
137
+ },
138
+ "required": [
139
+ "orchestrator",
140
+ "researcher",
141
+ "reviewer",
142
+ "implementer"
143
+ ],
144
+ "additionalProperties": false
145
+ },
146
+ "presets": {
147
+ "type": "object",
148
+ "propertyNames": {
149
+ "type": "string"
150
+ },
151
+ "additionalProperties": {
152
+ "type": "object",
153
+ "propertyNames": {
154
+ "type": "string"
155
+ },
156
+ "additionalProperties": {
157
+ "type": "object",
158
+ "properties": {
159
+ "model": {
160
+ "anyOf": [
161
+ {
162
+ "type": "string"
163
+ },
164
+ {
165
+ "minItems": 1,
166
+ "type": "array",
167
+ "items": {
168
+ "anyOf": [
169
+ {
170
+ "type": "string"
171
+ },
172
+ {
173
+ "type": "object",
174
+ "properties": {
175
+ "id": {
176
+ "type": "string"
177
+ },
178
+ "variant": {
179
+ "type": "string"
180
+ }
181
+ },
182
+ "required": [
183
+ "id"
184
+ ]
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ ]
190
+ },
191
+ "temperature": {
192
+ "type": "number",
193
+ "minimum": 0,
194
+ "maximum": 2
195
+ },
196
+ "variant": {
197
+ "type": "string"
198
+ },
199
+ "skills": {
200
+ "type": "array",
201
+ "items": {
202
+ "type": "string"
203
+ }
204
+ },
205
+ "mcps": {
206
+ "type": "array",
207
+ "items": {
208
+ "type": "string"
209
+ }
210
+ },
211
+ "prompt": {
212
+ "type": "string",
213
+ "minLength": 1
214
+ },
215
+ "orchestratorPrompt": {
216
+ "type": "string",
217
+ "minLength": 1
218
+ },
219
+ "options": {
220
+ "type": "object",
221
+ "propertyNames": {
222
+ "type": "string"
223
+ },
224
+ "additionalProperties": {}
225
+ },
226
+ "displayName": {
227
+ "type": "string",
228
+ "minLength": 1
229
+ }
230
+ },
231
+ "additionalProperties": false
232
+ }
233
+ }
234
+ },
235
+ "agents": {
236
+ "type": "object",
237
+ "propertyNames": {
238
+ "type": "string"
239
+ },
240
+ "additionalProperties": {
241
+ "type": "object",
242
+ "properties": {
243
+ "model": {
244
+ "anyOf": [
245
+ {
246
+ "type": "string"
247
+ },
248
+ {
249
+ "minItems": 1,
250
+ "type": "array",
251
+ "items": {
252
+ "anyOf": [
253
+ {
254
+ "type": "string"
255
+ },
256
+ {
257
+ "type": "object",
258
+ "properties": {
259
+ "id": {
260
+ "type": "string"
261
+ },
262
+ "variant": {
263
+ "type": "string"
264
+ }
265
+ },
266
+ "required": [
267
+ "id"
268
+ ]
269
+ }
270
+ ]
271
+ }
272
+ }
273
+ ]
274
+ },
275
+ "temperature": {
276
+ "type": "number",
277
+ "minimum": 0,
278
+ "maximum": 2
279
+ },
280
+ "variant": {
281
+ "type": "string"
282
+ },
283
+ "skills": {
284
+ "type": "array",
285
+ "items": {
286
+ "type": "string"
287
+ }
288
+ },
289
+ "mcps": {
290
+ "type": "array",
291
+ "items": {
292
+ "type": "string"
293
+ }
294
+ },
295
+ "prompt": {
296
+ "type": "string",
297
+ "minLength": 1
298
+ },
299
+ "orchestratorPrompt": {
300
+ "type": "string",
301
+ "minLength": 1
302
+ },
303
+ "options": {
304
+ "type": "object",
305
+ "propertyNames": {
306
+ "type": "string"
307
+ },
308
+ "additionalProperties": {}
309
+ },
310
+ "displayName": {
311
+ "type": "string",
312
+ "minLength": 1
313
+ }
314
+ },
315
+ "additionalProperties": false
316
+ }
317
+ },
318
+ "disabled_agents": {
319
+ "description": "Agent names to disable completely. Disabled agents are not instantiated and cannot be delegated to. Orchestrator, researcher, reviewer, implementer and council internal agents (councillor) cannot be disabled. By default, only council is disabled.",
320
+ "type": "array",
321
+ "items": {
322
+ "type": "string"
323
+ }
324
+ },
325
+ "disabled_mcps": {
326
+ "type": "array",
327
+ "items": {
328
+ "type": "string"
329
+ }
330
+ },
331
+ "multiplexer": {
332
+ "type": "object",
333
+ "properties": {
334
+ "type": {
335
+ "default": "none",
336
+ "type": "string",
337
+ "enum": [
338
+ "auto",
339
+ "tmux",
340
+ "zellij",
341
+ "none"
342
+ ]
343
+ },
344
+ "layout": {
345
+ "default": "main-vertical",
346
+ "type": "string",
347
+ "enum": [
348
+ "main-horizontal",
349
+ "main-vertical",
350
+ "tiled",
351
+ "even-horizontal",
352
+ "even-vertical"
353
+ ]
354
+ },
355
+ "main_pane_size": {
356
+ "default": 60,
357
+ "type": "number",
358
+ "minimum": 20,
359
+ "maximum": 80
360
+ }
361
+ }
362
+ },
363
+ "tmux": {
364
+ "type": "object",
365
+ "properties": {
366
+ "enabled": {
367
+ "default": false,
368
+ "type": "boolean"
369
+ },
370
+ "layout": {
371
+ "default": "main-vertical",
372
+ "type": "string",
373
+ "enum": [
374
+ "main-horizontal",
375
+ "main-vertical",
376
+ "tiled",
377
+ "even-horizontal",
378
+ "even-vertical"
379
+ ]
380
+ },
381
+ "main_pane_size": {
382
+ "default": 60,
383
+ "type": "number",
384
+ "minimum": 20,
385
+ "maximum": 80
386
+ }
387
+ }
388
+ },
389
+ "websearch": {
390
+ "type": "object",
391
+ "properties": {
392
+ "provider": {
393
+ "default": "exa",
394
+ "type": "string",
395
+ "enum": [
396
+ "exa",
397
+ "tavily"
398
+ ]
399
+ }
400
+ }
401
+ },
402
+ "interview": {
403
+ "type": "object",
404
+ "properties": {
405
+ "maxQuestions": {
406
+ "default": 2,
407
+ "type": "integer",
408
+ "minimum": 1,
409
+ "maximum": 10
410
+ },
411
+ "outputFolder": {
412
+ "default": "interview",
413
+ "type": "string",
414
+ "minLength": 1
415
+ },
416
+ "autoOpenBrowser": {
417
+ "default": true,
418
+ "description": "Automatically open the interview UI in your default browser during interactive runs. Disabled automatically in tests and CI.",
419
+ "type": "boolean"
420
+ },
421
+ "port": {
422
+ "default": 0,
423
+ "type": "integer",
424
+ "minimum": 0,
425
+ "maximum": 65535
426
+ },
427
+ "dashboard": {
428
+ "default": false,
429
+ "type": "boolean"
430
+ }
431
+ }
432
+ },
433
+ "sessionManager": {
434
+ "type": "object",
435
+ "properties": {
436
+ "maxSessionsPerAgent": {
437
+ "default": 2,
438
+ "type": "integer",
439
+ "minimum": 1,
440
+ "maximum": 10
441
+ },
442
+ "readContextMinLines": {
443
+ "default": 10,
444
+ "type": "integer",
445
+ "minimum": 0,
446
+ "maximum": 1000
447
+ },
448
+ "readContextMaxFiles": {
449
+ "default": 8,
450
+ "type": "integer",
451
+ "minimum": 0,
452
+ "maximum": 50
453
+ }
454
+ }
455
+ },
456
+ "divoom": {
457
+ "type": "object",
458
+ "properties": {
459
+ "enabled": {
460
+ "default": false,
461
+ "type": "boolean"
462
+ },
463
+ "python": {
464
+ "default": "/Applications/Divoom MiniToo.app/Contents/Resources/.venv/bin/python",
465
+ "type": "string",
466
+ "minLength": 1
467
+ },
468
+ "script": {
469
+ "default": "/Applications/Divoom MiniToo.app/Contents/Resources/tools/divoom_send.py",
470
+ "type": "string",
471
+ "minLength": 1
472
+ },
473
+ "size": {
474
+ "default": 128,
475
+ "type": "integer",
476
+ "minimum": 1,
477
+ "maximum": 1024
478
+ },
479
+ "fps": {
480
+ "default": 8,
481
+ "type": "integer",
482
+ "minimum": 1,
483
+ "maximum": 60
484
+ },
485
+ "speed": {
486
+ "default": 125,
487
+ "type": "integer",
488
+ "minimum": 1,
489
+ "maximum": 10000
490
+ },
491
+ "maxFrames": {
492
+ "default": 24,
493
+ "type": "integer",
494
+ "minimum": 1,
495
+ "maximum": 500
496
+ },
497
+ "posterizeBits": {
498
+ "default": 3,
499
+ "type": "integer",
500
+ "minimum": 1,
501
+ "maximum": 8
502
+ },
503
+ "gifs": {
504
+ "type": "object",
505
+ "propertyNames": {
506
+ "type": "string"
507
+ },
508
+ "additionalProperties": {
509
+ "type": "string",
510
+ "minLength": 1
511
+ }
512
+ }
513
+ }
514
+ },
515
+ "todoContinuation": {
516
+ "type": "object",
517
+ "properties": {
518
+ "maxContinuations": {
519
+ "default": 5,
520
+ "description": "Maximum consecutive auto-continuations before stopping to ask user",
521
+ "type": "integer",
522
+ "minimum": 1,
523
+ "maximum": 50
524
+ },
525
+ "cooldownMs": {
526
+ "default": 3000,
527
+ "description": "Delay in ms before auto-continuing (gives user time to abort)",
528
+ "type": "integer",
529
+ "minimum": 0,
530
+ "maximum": 30000
531
+ },
532
+ "autoEnable": {
533
+ "default": false,
534
+ "description": "Automatically enable auto-continue when the orchestrator session has enough todos",
535
+ "type": "boolean"
536
+ },
537
+ "autoEnableThreshold": {
538
+ "default": 4,
539
+ "description": "Number of todos that triggers auto-enable (only used when autoEnable is true)",
540
+ "type": "integer",
541
+ "minimum": 1,
542
+ "maximum": 50
543
+ }
544
+ }
545
+ },
546
+ "fallback": {
547
+ "type": "object",
548
+ "properties": {
549
+ "enabled": {
550
+ "default": true,
551
+ "type": "boolean"
552
+ },
553
+ "timeoutMs": {
554
+ "default": 15000,
555
+ "type": "number",
556
+ "minimum": 0
557
+ },
558
+ "retryDelayMs": {
559
+ "default": 500,
560
+ "type": "number",
561
+ "minimum": 0
562
+ },
563
+ "chains": {
564
+ "default": {},
565
+ "type": "object",
566
+ "properties": {
567
+ "orchestrator": {
568
+ "minItems": 1,
569
+ "type": "array",
570
+ "items": {
571
+ "type": "string"
572
+ }
573
+ },
574
+ "researcher": {
575
+ "minItems": 1,
576
+ "type": "array",
577
+ "items": {
578
+ "type": "string"
579
+ }
580
+ },
581
+ "reviewer": {
582
+ "minItems": 1,
583
+ "type": "array",
584
+ "items": {
585
+ "type": "string"
586
+ }
587
+ },
588
+ "implementer": {
589
+ "minItems": 1,
590
+ "type": "array",
591
+ "items": {
592
+ "type": "string"
593
+ }
594
+ }
595
+ },
596
+ "additionalProperties": {
597
+ "minItems": 1,
598
+ "type": "array",
599
+ "items": {
600
+ "type": "string"
601
+ }
602
+ }
603
+ },
604
+ "retry_on_empty": {
605
+ "default": true,
606
+ "description": "When true (default), empty provider responses are treated as failures, triggering fallback/retry. Set to false to treat them as successes.",
607
+ "type": "boolean"
608
+ }
609
+ }
610
+ },
611
+ "council": {
612
+ "type": "object",
613
+ "properties": {
614
+ "presets": {
615
+ "type": "object",
616
+ "propertyNames": {
617
+ "type": "string"
618
+ },
619
+ "additionalProperties": {
620
+ "type": "object",
621
+ "propertyNames": {
622
+ "type": "string"
623
+ },
624
+ "additionalProperties": {
625
+ "type": "object",
626
+ "propertyNames": {
627
+ "type": "string"
628
+ },
629
+ "additionalProperties": {}
630
+ }
631
+ }
632
+ },
633
+ "timeout": {
634
+ "default": 180000,
635
+ "type": "number",
636
+ "minimum": 0
637
+ },
638
+ "default_preset": {
639
+ "default": "default",
640
+ "type": "string"
641
+ },
642
+ "councillor_execution_mode": {
643
+ "default": "parallel",
644
+ "description": "Execution mode for councillors. \"serial\" runs them one at a time (required for single-model systems). \"parallel\" runs them concurrently (default, faster for multi-model systems).",
645
+ "type": "string",
646
+ "enum": [
647
+ "parallel",
648
+ "serial"
649
+ ]
650
+ },
651
+ "councillor_retries": {
652
+ "default": 3,
653
+ "description": "Number of retry attempts for councillors that return empty responses (e.g. due to provider rate limiting). Default: 3 retries.",
654
+ "type": "integer",
655
+ "minimum": 0,
656
+ "maximum": 5
657
+ },
658
+ "master": {
659
+ "description": "DEPRECATED — ignored. Council agent synthesizes directly."
660
+ },
661
+ "master_timeout": {
662
+ "description": "DEPRECATED — ignored. Use \"timeout\" instead."
663
+ },
664
+ "master_fallback": {
665
+ "description": "DEPRECATED — ignored. No separate master session."
666
+ }
667
+ },
668
+ "required": [
669
+ "presets"
670
+ ]
671
+ }
672
+ },
673
+ "title": "agent-forge",
674
+ "description": "Configuration schema for agent-forge plugin for OpenCode"
675
+ }
@@ -0,0 +1,27 @@
1
+ import { type AgentDefinition } from './orchestrator';
2
+ export declare function createCouncilAgent(model: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition;
3
+ /**
4
+ * Build the prompt for a specific councillor session.
5
+ *
6
+ * Returns the raw user prompt — the agent factory (councillor.ts) provides
7
+ * the system prompt with tool-aware instructions. No duplication.
8
+ *
9
+ * If a per-councillor prompt override is provided, it is prepended as
10
+ * role/guidance context before the user's question.
11
+ */
12
+ export declare function formatCouncillorPrompt(userPrompt: string, councillorPrompt?: string): string;
13
+ /**
14
+ * Format councillor results for the council agent to synthesize.
15
+ *
16
+ * Formats councillor results as structured data that the council agent
17
+ * (which called the tool) will receive as the tool response. The council
18
+ * agent's system prompt contains synthesis instructions.
19
+ * Returns a special message when all councillors failed to produce output.
20
+ */
21
+ export declare function formatCouncillorResults(originalPrompt: string, councillorResults: Array<{
22
+ name: string;
23
+ model: string;
24
+ status: string;
25
+ result?: string;
26
+ error?: string;
27
+ }>): string;
@@ -0,0 +1,2 @@
1
+ import { type AgentDefinition } from './orchestrator';
2
+ export declare function createCouncillorAgent(model: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition;
@@ -0,0 +1,2 @@
1
+ import type { AgentDefinition } from './orchestrator';
2
+ export declare function createImplementerAgent(model: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition;