@generacy-ai/orchestrator 0.6.0 → 0.8.0

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 (208) hide show
  1. package/dist/config/loader.d.ts.map +1 -1
  2. package/dist/config/loader.js +32 -1
  3. package/dist/config/loader.js.map +1 -1
  4. package/dist/config/schema.d.ts +436 -7
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/launcher/agent-launcher.d.ts +15 -16
  11. package/dist/launcher/agent-launcher.d.ts.map +1 -1
  12. package/dist/launcher/agent-launcher.js +54 -23
  13. package/dist/launcher/agent-launcher.js.map +1 -1
  14. package/dist/launcher/constants.d.ts +5 -0
  15. package/dist/launcher/constants.d.ts.map +1 -0
  16. package/dist/launcher/constants.js +5 -0
  17. package/dist/launcher/constants.js.map +1 -0
  18. package/dist/launcher/errors.d.ts +15 -0
  19. package/dist/launcher/errors.d.ts.map +1 -0
  20. package/dist/launcher/errors.js +25 -0
  21. package/dist/launcher/errors.js.map +1 -0
  22. package/dist/launcher/generic-subprocess-plugin.d.ts +1 -0
  23. package/dist/launcher/generic-subprocess-plugin.d.ts.map +1 -1
  24. package/dist/launcher/generic-subprocess-plugin.js +2 -0
  25. package/dist/launcher/generic-subprocess-plugin.js.map +1 -1
  26. package/dist/launcher/index.d.ts +2 -1
  27. package/dist/launcher/index.d.ts.map +1 -1
  28. package/dist/launcher/index.js +1 -0
  29. package/dist/launcher/index.js.map +1 -1
  30. package/dist/launcher/types.d.ts +81 -4
  31. package/dist/launcher/types.d.ts.map +1 -1
  32. package/dist/routes/health.d.ts.map +1 -1
  33. package/dist/routes/health.js +5 -0
  34. package/dist/routes/health.js.map +1 -1
  35. package/dist/server.d.ts.map +1 -1
  36. package/dist/server.js +130 -26
  37. package/dist/server.js.map +1 -1
  38. package/dist/services/base-advance-monitor-service.d.ts +78 -0
  39. package/dist/services/base-advance-monitor-service.d.ts.map +1 -0
  40. package/dist/services/base-advance-monitor-service.js +233 -0
  41. package/dist/services/base-advance-monitor-service.js.map +1 -0
  42. package/dist/services/boot-resume-service.d.ts +19 -0
  43. package/dist/services/boot-resume-service.d.ts.map +1 -0
  44. package/dist/services/boot-resume-service.js +87 -0
  45. package/dist/services/boot-resume-service.js.map +1 -0
  46. package/dist/services/epic-completion-monitor-service.d.ts.map +1 -1
  47. package/dist/services/epic-completion-monitor-service.js +2 -0
  48. package/dist/services/epic-completion-monitor-service.js.map +1 -1
  49. package/dist/services/in-memory-queue-adapter.d.ts +4 -0
  50. package/dist/services/in-memory-queue-adapter.d.ts.map +1 -1
  51. package/dist/services/in-memory-queue-adapter.js +30 -3
  52. package/dist/services/in-memory-queue-adapter.js.map +1 -1
  53. package/dist/services/label-monitor-service.d.ts +3 -3
  54. package/dist/services/label-monitor-service.d.ts.map +1 -1
  55. package/dist/services/label-monitor-service.js +58 -41
  56. package/dist/services/label-monitor-service.js.map +1 -1
  57. package/dist/services/label-sync-service.d.ts.map +1 -1
  58. package/dist/services/label-sync-service.js +45 -10
  59. package/dist/services/label-sync-service.js.map +1 -1
  60. package/dist/services/merge-conflict-monitor-service.d.ts +73 -0
  61. package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -0
  62. package/dist/services/merge-conflict-monitor-service.js +295 -0
  63. package/dist/services/merge-conflict-monitor-service.js.map +1 -0
  64. package/dist/services/orchestrator-version.d.ts +2 -0
  65. package/dist/services/orchestrator-version.d.ts.map +1 -0
  66. package/dist/services/orchestrator-version.js +23 -0
  67. package/dist/services/orchestrator-version.js.map +1 -0
  68. package/dist/services/phase-tracker-service.d.ts +10 -0
  69. package/dist/services/phase-tracker-service.d.ts.map +1 -1
  70. package/dist/services/phase-tracker-service.js +38 -0
  71. package/dist/services/phase-tracker-service.js.map +1 -1
  72. package/dist/services/post-activation-dispatch.d.ts +18 -0
  73. package/dist/services/post-activation-dispatch.d.ts.map +1 -0
  74. package/dist/services/post-activation-dispatch.js +30 -0
  75. package/dist/services/post-activation-dispatch.js.map +1 -0
  76. package/dist/services/post-activation-retry.d.ts +3 -0
  77. package/dist/services/post-activation-retry.d.ts.map +1 -1
  78. package/dist/services/post-activation-retry.js +34 -2
  79. package/dist/services/post-activation-retry.js.map +1 -1
  80. package/dist/services/pr-feedback-monitor-service.d.ts +13 -4
  81. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  82. package/dist/services/pr-feedback-monitor-service.js +212 -26
  83. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  84. package/dist/services/redis-queue-adapter.d.ts +4 -0
  85. package/dist/services/redis-queue-adapter.d.ts.map +1 -1
  86. package/dist/services/redis-queue-adapter.js +90 -10
  87. package/dist/services/redis-queue-adapter.js.map +1 -1
  88. package/dist/services/worker-dispatcher.d.ts +14 -2
  89. package/dist/services/worker-dispatcher.d.ts.map +1 -1
  90. package/dist/services/worker-dispatcher.js +55 -2
  91. package/dist/services/worker-dispatcher.js.map +1 -1
  92. package/dist/types/api.d.ts +3 -0
  93. package/dist/types/api.d.ts.map +1 -1
  94. package/dist/types/api.js +1 -0
  95. package/dist/types/api.js.map +1 -1
  96. package/dist/types/index.d.ts +1 -1
  97. package/dist/types/index.d.ts.map +1 -1
  98. package/dist/types/index.js.map +1 -1
  99. package/dist/types/monitor.d.ts +72 -4
  100. package/dist/types/monitor.d.ts.map +1 -1
  101. package/dist/worker/base-merge.d.ts +54 -0
  102. package/dist/worker/base-merge.d.ts.map +1 -0
  103. package/dist/worker/base-merge.js +99 -0
  104. package/dist/worker/base-merge.js.map +1 -0
  105. package/dist/worker/clarification-markers.d.ts +29 -0
  106. package/dist/worker/clarification-markers.d.ts.map +1 -0
  107. package/dist/worker/clarification-markers.js +44 -0
  108. package/dist/worker/clarification-markers.js.map +1 -0
  109. package/dist/worker/clarification-poster.d.ts.map +1 -1
  110. package/dist/worker/clarification-poster.js +266 -25
  111. package/dist/worker/clarification-poster.js.map +1 -1
  112. package/dist/worker/claude-cli-worker.d.ts +21 -2
  113. package/dist/worker/claude-cli-worker.d.ts.map +1 -1
  114. package/dist/worker/claude-cli-worker.js +150 -4
  115. package/dist/worker/claude-cli-worker.js.map +1 -1
  116. package/dist/worker/cli-spawner.d.ts +4 -0
  117. package/dist/worker/cli-spawner.d.ts.map +1 -1
  118. package/dist/worker/cli-spawner.js +53 -7
  119. package/dist/worker/cli-spawner.js.map +1 -1
  120. package/dist/worker/config.d.ts +420 -8
  121. package/dist/worker/config.d.ts.map +1 -1
  122. package/dist/worker/config.js +179 -2
  123. package/dist/worker/config.js.map +1 -1
  124. package/dist/worker/evidence-hash.d.ts +32 -0
  125. package/dist/worker/evidence-hash.d.ts.map +1 -0
  126. package/dist/worker/evidence-hash.js +139 -0
  127. package/dist/worker/evidence-hash.js.map +1 -0
  128. package/dist/worker/handler-outcome-assertion.d.ts +38 -0
  129. package/dist/worker/handler-outcome-assertion.d.ts.map +1 -0
  130. package/dist/worker/handler-outcome-assertion.js +58 -0
  131. package/dist/worker/handler-outcome-assertion.js.map +1 -0
  132. package/dist/worker/handler-outcome.d.ts +50 -0
  133. package/dist/worker/handler-outcome.d.ts.map +1 -0
  134. package/dist/worker/handler-outcome.js +2 -0
  135. package/dist/worker/handler-outcome.js.map +1 -0
  136. package/dist/worker/label-manager.d.ts +58 -2
  137. package/dist/worker/label-manager.d.ts.map +1 -1
  138. package/dist/worker/label-manager.js +225 -27
  139. package/dist/worker/label-manager.js.map +1 -1
  140. package/dist/worker/merge-conflict-handler.d.ts +141 -0
  141. package/dist/worker/merge-conflict-handler.d.ts.map +1 -0
  142. package/dist/worker/merge-conflict-handler.js +642 -0
  143. package/dist/worker/merge-conflict-handler.js.map +1 -0
  144. package/dist/worker/merge-conflict-prompt.d.ts +35 -0
  145. package/dist/worker/merge-conflict-prompt.d.ts.map +1 -0
  146. package/dist/worker/merge-conflict-prompt.js +71 -0
  147. package/dist/worker/merge-conflict-prompt.js.map +1 -0
  148. package/dist/worker/merge-conflict-remedy.d.ts +42 -0
  149. package/dist/worker/merge-conflict-remedy.d.ts.map +1 -0
  150. package/dist/worker/merge-conflict-remedy.js +28 -0
  151. package/dist/worker/merge-conflict-remedy.js.map +1 -0
  152. package/dist/worker/output-tail-synthesis.d.ts +15 -0
  153. package/dist/worker/output-tail-synthesis.d.ts.map +1 -0
  154. package/dist/worker/output-tail-synthesis.js +25 -0
  155. package/dist/worker/output-tail-synthesis.js.map +1 -0
  156. package/dist/worker/output-tail.d.ts +13 -0
  157. package/dist/worker/output-tail.d.ts.map +1 -0
  158. package/dist/worker/output-tail.js +31 -0
  159. package/dist/worker/output-tail.js.map +1 -0
  160. package/dist/worker/pause-context.d.ts +30 -0
  161. package/dist/worker/pause-context.d.ts.map +1 -0
  162. package/dist/worker/pause-context.js +98 -0
  163. package/dist/worker/pause-context.js.map +1 -0
  164. package/dist/worker/phase-loop.d.ts +66 -0
  165. package/dist/worker/phase-loop.d.ts.map +1 -1
  166. package/dist/worker/phase-loop.js +329 -30
  167. package/dist/worker/phase-loop.js.map +1 -1
  168. package/dist/worker/pr-feedback-handler.d.ts +46 -46
  169. package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
  170. package/dist/worker/pr-feedback-handler.js +286 -108
  171. package/dist/worker/pr-feedback-handler.js.map +1 -1
  172. package/dist/worker/pr-manager.d.ts +5 -0
  173. package/dist/worker/pr-manager.d.ts.map +1 -1
  174. package/dist/worker/pr-manager.js +7 -0
  175. package/dist/worker/pr-manager.js.map +1 -1
  176. package/dist/worker/product-diff.d.ts +39 -0
  177. package/dist/worker/product-diff.d.ts.map +1 -0
  178. package/dist/worker/product-diff.js +43 -0
  179. package/dist/worker/product-diff.js.map +1 -0
  180. package/dist/worker/provisioning-failure.d.ts +14 -0
  181. package/dist/worker/provisioning-failure.d.ts.map +1 -0
  182. package/dist/worker/provisioning-failure.js +2 -0
  183. package/dist/worker/provisioning-failure.js.map +1 -0
  184. package/dist/worker/repo-checkout.d.ts +14 -0
  185. package/dist/worker/repo-checkout.d.ts.map +1 -1
  186. package/dist/worker/repo-checkout.js +19 -1
  187. package/dist/worker/repo-checkout.js.map +1 -1
  188. package/dist/worker/stage-comment-manager.d.ts +42 -1
  189. package/dist/worker/stage-comment-manager.d.ts.map +1 -1
  190. package/dist/worker/stage-comment-manager.js +205 -1
  191. package/dist/worker/stage-comment-manager.js.map +1 -1
  192. package/dist/worker/terminal-label-op-error.d.ts +23 -0
  193. package/dist/worker/terminal-label-op-error.d.ts.map +1 -0
  194. package/dist/worker/terminal-label-op-error.js +27 -0
  195. package/dist/worker/terminal-label-op-error.js.map +1 -0
  196. package/dist/worker/types.d.ts +181 -2
  197. package/dist/worker/types.d.ts.map +1 -1
  198. package/dist/worker/types.js +11 -0
  199. package/dist/worker/types.js.map +1 -1
  200. package/dist/worker/validate-fix-handler.d.ts +79 -0
  201. package/dist/worker/validate-fix-handler.d.ts.map +1 -0
  202. package/dist/worker/validate-fix-handler.js +320 -0
  203. package/dist/worker/validate-fix-handler.js.map +1 -0
  204. package/dist/worker/worker-result.d.ts +39 -0
  205. package/dist/worker/worker-result.d.ts.map +1 -0
  206. package/dist/worker/worker-result.js +10 -0
  207. package/dist/worker/worker-result.js.map +1 -0
  208. package/package.json +12 -7
@@ -1,5 +1,12 @@
1
1
  import { z } from 'zod';
2
+ import type { OrchestratorSettings } from '@generacy-ai/config';
2
3
  import type { WorkflowPhase } from './types.js';
4
+ /**
5
+ * Built-in provider fallback used by `resolveAgentForPhase` when no tier of
6
+ * the precedence chain (config, repo `defaults.agent`, or env) supplies a
7
+ * provider name.
8
+ */
9
+ export declare const DEFAULT_PROVIDER = "claude-code";
3
10
  /**
4
11
  * Gate definition schema for pausing workflow at review checkpoints
5
12
  */
@@ -9,15 +16,15 @@ export declare const GateDefinitionSchema: z.ZodObject<{
9
16
  /** Label to add when gate is active */
10
17
  gateLabel: z.ZodString;
11
18
  /** When to activate the gate */
12
- condition: z.ZodEnum<["always", "on-request", "on-questions", "on-failure", "on-sibling-review"]>;
19
+ condition: z.ZodEnum<["always", "on-request", "on-questions", "on-failure", "on-sibling-review", "on-merge-conflict"]>;
13
20
  }, "strip", z.ZodTypeAny, {
14
21
  phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
15
22
  gateLabel: string;
16
- condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review";
23
+ condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review" | "on-merge-conflict";
17
24
  }, {
18
25
  phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
19
26
  gateLabel: string;
20
- condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review";
27
+ condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review" | "on-merge-conflict";
21
28
  }>;
22
29
  /**
23
30
  * Per-phase wall-clock timeout overrides (milliseconds).
@@ -93,6 +100,289 @@ export declare const WorkerConfigSchema: z.ZodObject<{
93
100
  maxImplementRetries: z.ZodDefault<z.ZodNumber>;
94
101
  /** Credential role from .generacy/config.yaml defaults.role — when set, credentials are populated on launch requests */
95
102
  credentialRole: z.ZodOptional<z.ZodString>;
103
+ /**
104
+ * Per-workflow-phase `{ provider, model }` selection. See `AgentsConfigSchema`
105
+ * for the shape. Repo-level overrides from `.generacy/config.yaml` are merged
106
+ * onto this via `applyRepoAgentOverrides`.
107
+ */
108
+ agents: z.ZodOptional<z.ZodObject<{
109
+ default: z.ZodOptional<z.ZodObject<{
110
+ provider: z.ZodOptional<z.ZodString>;
111
+ model: z.ZodOptional<z.ZodString>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ provider?: string | undefined;
114
+ model?: string | undefined;
115
+ }, {
116
+ provider?: string | undefined;
117
+ model?: string | undefined;
118
+ }>>;
119
+ workflows: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
120
+ default: z.ZodOptional<z.ZodObject<{
121
+ provider: z.ZodOptional<z.ZodString>;
122
+ model: z.ZodOptional<z.ZodString>;
123
+ }, "strip", z.ZodTypeAny, {
124
+ provider?: string | undefined;
125
+ model?: string | undefined;
126
+ }, {
127
+ provider?: string | undefined;
128
+ model?: string | undefined;
129
+ }>>;
130
+ phases: z.ZodOptional<z.ZodObject<{
131
+ specify: z.ZodOptional<z.ZodObject<{
132
+ provider: z.ZodOptional<z.ZodString>;
133
+ model: z.ZodOptional<z.ZodString>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ provider?: string | undefined;
136
+ model?: string | undefined;
137
+ }, {
138
+ provider?: string | undefined;
139
+ model?: string | undefined;
140
+ }>>;
141
+ clarify: z.ZodOptional<z.ZodObject<{
142
+ provider: z.ZodOptional<z.ZodString>;
143
+ model: z.ZodOptional<z.ZodString>;
144
+ }, "strip", z.ZodTypeAny, {
145
+ provider?: string | undefined;
146
+ model?: string | undefined;
147
+ }, {
148
+ provider?: string | undefined;
149
+ model?: string | undefined;
150
+ }>>;
151
+ plan: z.ZodOptional<z.ZodObject<{
152
+ provider: z.ZodOptional<z.ZodString>;
153
+ model: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ provider?: string | undefined;
156
+ model?: string | undefined;
157
+ }, {
158
+ provider?: string | undefined;
159
+ model?: string | undefined;
160
+ }>>;
161
+ tasks: z.ZodOptional<z.ZodObject<{
162
+ provider: z.ZodOptional<z.ZodString>;
163
+ model: z.ZodOptional<z.ZodString>;
164
+ }, "strip", z.ZodTypeAny, {
165
+ provider?: string | undefined;
166
+ model?: string | undefined;
167
+ }, {
168
+ provider?: string | undefined;
169
+ model?: string | undefined;
170
+ }>>;
171
+ implement: z.ZodOptional<z.ZodObject<{
172
+ provider: z.ZodOptional<z.ZodString>;
173
+ model: z.ZodOptional<z.ZodString>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ provider?: string | undefined;
176
+ model?: string | undefined;
177
+ }, {
178
+ provider?: string | undefined;
179
+ model?: string | undefined;
180
+ }>>;
181
+ validate: z.ZodOptional<z.ZodObject<{
182
+ provider: z.ZodOptional<z.ZodString>;
183
+ model: z.ZodOptional<z.ZodString>;
184
+ }, "strip", z.ZodTypeAny, {
185
+ provider?: string | undefined;
186
+ model?: string | undefined;
187
+ }, {
188
+ provider?: string | undefined;
189
+ model?: string | undefined;
190
+ }>>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ specify?: {
193
+ provider?: string | undefined;
194
+ model?: string | undefined;
195
+ } | undefined;
196
+ clarify?: {
197
+ provider?: string | undefined;
198
+ model?: string | undefined;
199
+ } | undefined;
200
+ plan?: {
201
+ provider?: string | undefined;
202
+ model?: string | undefined;
203
+ } | undefined;
204
+ tasks?: {
205
+ provider?: string | undefined;
206
+ model?: string | undefined;
207
+ } | undefined;
208
+ implement?: {
209
+ provider?: string | undefined;
210
+ model?: string | undefined;
211
+ } | undefined;
212
+ validate?: {
213
+ provider?: string | undefined;
214
+ model?: string | undefined;
215
+ } | undefined;
216
+ }, {
217
+ specify?: {
218
+ provider?: string | undefined;
219
+ model?: string | undefined;
220
+ } | undefined;
221
+ clarify?: {
222
+ provider?: string | undefined;
223
+ model?: string | undefined;
224
+ } | undefined;
225
+ plan?: {
226
+ provider?: string | undefined;
227
+ model?: string | undefined;
228
+ } | undefined;
229
+ tasks?: {
230
+ provider?: string | undefined;
231
+ model?: string | undefined;
232
+ } | undefined;
233
+ implement?: {
234
+ provider?: string | undefined;
235
+ model?: string | undefined;
236
+ } | undefined;
237
+ validate?: {
238
+ provider?: string | undefined;
239
+ model?: string | undefined;
240
+ } | undefined;
241
+ }>>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ default?: {
244
+ provider?: string | undefined;
245
+ model?: string | undefined;
246
+ } | undefined;
247
+ phases?: {
248
+ specify?: {
249
+ provider?: string | undefined;
250
+ model?: string | undefined;
251
+ } | undefined;
252
+ clarify?: {
253
+ provider?: string | undefined;
254
+ model?: string | undefined;
255
+ } | undefined;
256
+ plan?: {
257
+ provider?: string | undefined;
258
+ model?: string | undefined;
259
+ } | undefined;
260
+ tasks?: {
261
+ provider?: string | undefined;
262
+ model?: string | undefined;
263
+ } | undefined;
264
+ implement?: {
265
+ provider?: string | undefined;
266
+ model?: string | undefined;
267
+ } | undefined;
268
+ validate?: {
269
+ provider?: string | undefined;
270
+ model?: string | undefined;
271
+ } | undefined;
272
+ } | undefined;
273
+ }, {
274
+ default?: {
275
+ provider?: string | undefined;
276
+ model?: string | undefined;
277
+ } | undefined;
278
+ phases?: {
279
+ specify?: {
280
+ provider?: string | undefined;
281
+ model?: string | undefined;
282
+ } | undefined;
283
+ clarify?: {
284
+ provider?: string | undefined;
285
+ model?: string | undefined;
286
+ } | undefined;
287
+ plan?: {
288
+ provider?: string | undefined;
289
+ model?: string | undefined;
290
+ } | undefined;
291
+ tasks?: {
292
+ provider?: string | undefined;
293
+ model?: string | undefined;
294
+ } | undefined;
295
+ implement?: {
296
+ provider?: string | undefined;
297
+ model?: string | undefined;
298
+ } | undefined;
299
+ validate?: {
300
+ provider?: string | undefined;
301
+ model?: string | undefined;
302
+ } | undefined;
303
+ } | undefined;
304
+ }>>>;
305
+ }, "strip", z.ZodTypeAny, {
306
+ default?: {
307
+ provider?: string | undefined;
308
+ model?: string | undefined;
309
+ } | undefined;
310
+ workflows?: Record<string, {
311
+ default?: {
312
+ provider?: string | undefined;
313
+ model?: string | undefined;
314
+ } | undefined;
315
+ phases?: {
316
+ specify?: {
317
+ provider?: string | undefined;
318
+ model?: string | undefined;
319
+ } | undefined;
320
+ clarify?: {
321
+ provider?: string | undefined;
322
+ model?: string | undefined;
323
+ } | undefined;
324
+ plan?: {
325
+ provider?: string | undefined;
326
+ model?: string | undefined;
327
+ } | undefined;
328
+ tasks?: {
329
+ provider?: string | undefined;
330
+ model?: string | undefined;
331
+ } | undefined;
332
+ implement?: {
333
+ provider?: string | undefined;
334
+ model?: string | undefined;
335
+ } | undefined;
336
+ validate?: {
337
+ provider?: string | undefined;
338
+ model?: string | undefined;
339
+ } | undefined;
340
+ } | undefined;
341
+ }> | undefined;
342
+ }, {
343
+ default?: {
344
+ provider?: string | undefined;
345
+ model?: string | undefined;
346
+ } | undefined;
347
+ workflows?: Record<string, {
348
+ default?: {
349
+ provider?: string | undefined;
350
+ model?: string | undefined;
351
+ } | undefined;
352
+ phases?: {
353
+ specify?: {
354
+ provider?: string | undefined;
355
+ model?: string | undefined;
356
+ } | undefined;
357
+ clarify?: {
358
+ provider?: string | undefined;
359
+ model?: string | undefined;
360
+ } | undefined;
361
+ plan?: {
362
+ provider?: string | undefined;
363
+ model?: string | undefined;
364
+ } | undefined;
365
+ tasks?: {
366
+ provider?: string | undefined;
367
+ model?: string | undefined;
368
+ } | undefined;
369
+ implement?: {
370
+ provider?: string | undefined;
371
+ model?: string | undefined;
372
+ } | undefined;
373
+ validate?: {
374
+ provider?: string | undefined;
375
+ model?: string | undefined;
376
+ } | undefined;
377
+ } | undefined;
378
+ }> | undefined;
379
+ }>>;
380
+ /**
381
+ * Repo-level default provider from `.generacy/config.yaml` `defaults.agent`.
382
+ * Provider-only — `defaults.agent` is a single string, not an `AgentEntry`.
383
+ * Consumed by `resolveAgentForPhase` as the tier below `agents.default`.
384
+ */
385
+ defaultsAgent: z.ZodOptional<z.ZodString>;
96
386
  /** Gate definitions keyed by issue label */
97
387
  gates: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
98
388
  /** Phase that triggers gate check */
@@ -100,15 +390,15 @@ export declare const WorkerConfigSchema: z.ZodObject<{
100
390
  /** Label to add when gate is active */
101
391
  gateLabel: z.ZodString;
102
392
  /** When to activate the gate */
103
- condition: z.ZodEnum<["always", "on-request", "on-questions", "on-failure", "on-sibling-review"]>;
393
+ condition: z.ZodEnum<["always", "on-request", "on-questions", "on-failure", "on-sibling-review", "on-merge-conflict"]>;
104
394
  }, "strip", z.ZodTypeAny, {
105
395
  phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
106
396
  gateLabel: string;
107
- condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review";
397
+ condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review" | "on-merge-conflict";
108
398
  }, {
109
399
  phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
110
400
  gateLabel: string;
111
- condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review";
401
+ condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review" | "on-merge-conflict";
112
402
  }>, "many">>>;
113
403
  }, "strip", z.ZodTypeAny, {
114
404
  phaseTimeoutMs: number;
@@ -127,10 +417,87 @@ export declare const WorkerConfigSchema: z.ZodObject<{
127
417
  gates: Record<string, {
128
418
  phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
129
419
  gateLabel: string;
130
- condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review";
420
+ condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review" | "on-merge-conflict";
131
421
  }[]>;
422
+ agents?: {
423
+ default?: {
424
+ provider?: string | undefined;
425
+ model?: string | undefined;
426
+ } | undefined;
427
+ workflows?: Record<string, {
428
+ default?: {
429
+ provider?: string | undefined;
430
+ model?: string | undefined;
431
+ } | undefined;
432
+ phases?: {
433
+ specify?: {
434
+ provider?: string | undefined;
435
+ model?: string | undefined;
436
+ } | undefined;
437
+ clarify?: {
438
+ provider?: string | undefined;
439
+ model?: string | undefined;
440
+ } | undefined;
441
+ plan?: {
442
+ provider?: string | undefined;
443
+ model?: string | undefined;
444
+ } | undefined;
445
+ tasks?: {
446
+ provider?: string | undefined;
447
+ model?: string | undefined;
448
+ } | undefined;
449
+ implement?: {
450
+ provider?: string | undefined;
451
+ model?: string | undefined;
452
+ } | undefined;
453
+ validate?: {
454
+ provider?: string | undefined;
455
+ model?: string | undefined;
456
+ } | undefined;
457
+ } | undefined;
458
+ }> | undefined;
459
+ } | undefined;
132
460
  credentialRole?: string | undefined;
461
+ defaultsAgent?: string | undefined;
133
462
  }, {
463
+ agents?: {
464
+ default?: {
465
+ provider?: string | undefined;
466
+ model?: string | undefined;
467
+ } | undefined;
468
+ workflows?: Record<string, {
469
+ default?: {
470
+ provider?: string | undefined;
471
+ model?: string | undefined;
472
+ } | undefined;
473
+ phases?: {
474
+ specify?: {
475
+ provider?: string | undefined;
476
+ model?: string | undefined;
477
+ } | undefined;
478
+ clarify?: {
479
+ provider?: string | undefined;
480
+ model?: string | undefined;
481
+ } | undefined;
482
+ plan?: {
483
+ provider?: string | undefined;
484
+ model?: string | undefined;
485
+ } | undefined;
486
+ tasks?: {
487
+ provider?: string | undefined;
488
+ model?: string | undefined;
489
+ } | undefined;
490
+ implement?: {
491
+ provider?: string | undefined;
492
+ model?: string | undefined;
493
+ } | undefined;
494
+ validate?: {
495
+ provider?: string | undefined;
496
+ model?: string | undefined;
497
+ } | undefined;
498
+ } | undefined;
499
+ }> | undefined;
500
+ } | undefined;
134
501
  phaseTimeoutMs?: number | undefined;
135
502
  phaseTimeoutOverrides?: {
136
503
  specify?: number | undefined;
@@ -145,16 +512,61 @@ export declare const WorkerConfigSchema: z.ZodObject<{
145
512
  preValidateCommand?: string | undefined;
146
513
  maxImplementRetries?: number | undefined;
147
514
  credentialRole?: string | undefined;
515
+ defaultsAgent?: string | undefined;
148
516
  gates?: Record<string, {
149
517
  phase: "specify" | "clarify" | "plan" | "tasks" | "implement" | "validate";
150
518
  gateLabel: string;
151
- condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review";
519
+ condition: "always" | "on-request" | "on-questions" | "on-failure" | "on-sibling-review" | "on-merge-conflict";
152
520
  }[]> | undefined;
153
521
  }>;
154
522
  export type WorkerConfig = z.infer<typeof WorkerConfigSchema>;
523
+ /**
524
+ * Merge per-repo validate-command overrides onto the global worker config.
525
+ *
526
+ * The target repo's `.generacy/config.yaml` `orchestrator` block may set
527
+ * `validateCommand` / `preValidateCommand`. The global defaults are
528
+ * monorepo-shaped (`pnpm test && pnpm build`); single-package repos (e.g. an
529
+ * Astro site with only a `build` script) override them so the validate phase
530
+ * doesn't fail on a missing `test` script before it can reach the build.
531
+ *
532
+ * Only those two fields are overridable per-repo. An explicit empty
533
+ * `preValidateCommand` is preserved (it means "skip the install step"). Returns
534
+ * the original config object unchanged when there are no applicable overrides,
535
+ * so callers can cheaply detect "no override" via reference equality.
536
+ */
537
+ export declare function applyRepoValidateOverrides(config: WorkerConfig, settings: OrchestratorSettings | null | undefined): WorkerConfig;
155
538
  /**
156
539
  * Resolve the wall-clock timeout (ms) for a CLI phase: the per-phase override
157
540
  * if one is configured, otherwise the flat `phaseTimeoutMs` fallback.
158
541
  */
159
542
  export declare function resolvePhaseTimeoutMs(config: WorkerConfig, phase: Exclude<WorkflowPhase, 'validate'>): number;
543
+ /**
544
+ * Sibling of `applyRepoValidateOverrides` — merges the target repo's
545
+ * `orchestrator.agents` block onto the cluster-default `agents` block on
546
+ * `WorkerConfig`. Field-by-field so partial `{ provider }`-only or
547
+ * `{ model }`-only overrides preserve missing sibling fields from the base.
548
+ *
549
+ * Returns the original config unchanged when `settings.agents` is absent so
550
+ * callers can cheaply detect "no override" via reference equality.
551
+ */
552
+ export declare function applyRepoAgentOverrides(config: WorkerConfig, settings: OrchestratorSettings | null | undefined): WorkerConfig;
553
+ /**
554
+ * Resolve `{ provider, model }` for a phase within a workflow. Provider and
555
+ * model resolve INDEPENDENTLY over the same tier list — a phase override may
556
+ * set only `model` while `provider` falls through from a lower tier.
557
+ *
558
+ * Precedence:
559
+ * 1. `config.agents.workflows[workflowName].phases[phase]`
560
+ * 2. `config.agents.workflows[workflowName].default`
561
+ * 3. `config.agents.default` (cluster env folds into this tier via loader)
562
+ * 4. `config.defaultsAgent` (**provider only** — `defaults.agent` is a bare string)
563
+ * 5. Built-in `DEFAULT_PROVIDER = 'claude-code'` (**provider only**)
564
+ *
565
+ * The `model` walk terminates at tier 3 returning `undefined` (no built-in
566
+ * model default). The `provider` walk always returns a value.
567
+ */
568
+ export declare function resolveAgentForPhase(config: WorkerConfig, workflowName: string, phase: WorkflowPhase): {
569
+ provider: string;
570
+ model?: string;
571
+ };
160
572
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/worker/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B,qCAAqC;;IAErC,uCAAuC;;IAEvC,gCAAgC;;;;;;;;;;EAEhC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;GAQ1B,CAAC;AACf,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,2FAA2F;;IAE3F,sDAAsD;;;;;;;;;;;;;;;;;;;;IAEtD,wCAAwC;;IAExC,gDAAgD;;IAEhD,+CAA+C;;IAE/C,sFAAsF;;IAEtF,4EAA4E;;IAE5E,wHAAwH;;IAExH,4CAA4C;;QAvD5C,qCAAqC;;QAErC,uCAAuC;;QAEvC,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEhC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,GACxC,MAAM,CAIR"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/worker/config.ts"],"names":[],"mappings":"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"}