@ai-dev-orchestrator/schemas 0.1.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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -0
  3. package/dist/artifacts/agreement-artifacts.d.ts +311 -0
  4. package/dist/artifacts/agreement-artifacts.js +48 -0
  5. package/dist/artifacts/artifact-dependency-graph.d.ts +775 -0
  6. package/dist/artifacts/artifact-dependency-graph.js +57 -0
  7. package/dist/artifacts/artifact-system.d.ts +657 -0
  8. package/dist/artifacts/artifact-system.js +124 -0
  9. package/dist/artifacts/index.d.ts +3 -0
  10. package/dist/artifacts/index.js +3 -0
  11. package/dist/config/configuration.d.ts +324 -0
  12. package/dist/config/configuration.js +93 -0
  13. package/dist/config/event-bus-config.d.ts +153 -0
  14. package/dist/config/event-bus-config.js +27 -0
  15. package/dist/config/event-payloads.d.ts +919 -0
  16. package/dist/config/event-payloads.js +304 -0
  17. package/dist/config/event-system.d.ts +3231 -0
  18. package/dist/config/event-system.js +428 -0
  19. package/dist/config/event-types.d.ts +62 -0
  20. package/dist/config/event-types.js +66 -0
  21. package/dist/config/index.d.ts +5 -0
  22. package/dist/config/index.js +5 -0
  23. package/dist/dashboard/dashboard-api.d.ts +149 -0
  24. package/dist/dashboard/dashboard-api.js +80 -0
  25. package/dist/dashboard/dashboard-domain.d.ts +1076 -0
  26. package/dist/dashboard/dashboard-domain.js +305 -0
  27. package/dist/dashboard/index.d.ts +3 -0
  28. package/dist/dashboard/index.js +3 -0
  29. package/dist/dashboard/run-creation-params.d.ts +111 -0
  30. package/dist/dashboard/run-creation-params.js +14 -0
  31. package/dist/governance/governance.d.ts +1119 -0
  32. package/dist/governance/governance.js +111 -0
  33. package/dist/governance/index.d.ts +3 -0
  34. package/dist/governance/index.js +3 -0
  35. package/dist/governance/policy-engine.d.ts +634 -0
  36. package/dist/governance/policy-engine.js +214 -0
  37. package/dist/governance/review-resolution.d.ts +1053 -0
  38. package/dist/governance/review-resolution.js +67 -0
  39. package/dist/index.d.ts +10 -0
  40. package/dist/index.js +10 -0
  41. package/dist/observability/diagnostics.d.ts +185 -0
  42. package/dist/observability/diagnostics.js +63 -0
  43. package/dist/observability/index.d.ts +2 -0
  44. package/dist/observability/index.js +2 -0
  45. package/dist/observability/metrics.d.ts +187 -0
  46. package/dist/observability/metrics.js +67 -0
  47. package/dist/persistence/execution-analytics.d.ts +173 -0
  48. package/dist/persistence/execution-analytics.js +71 -0
  49. package/dist/persistence/index.d.ts +5 -0
  50. package/dist/persistence/index.js +5 -0
  51. package/dist/persistence/project-context.d.ts +164 -0
  52. package/dist/persistence/project-context.js +88 -0
  53. package/dist/persistence/repository-model.d.ts +27 -0
  54. package/dist/persistence/repository-model.js +16 -0
  55. package/dist/persistence/run-manifest.d.ts +422 -0
  56. package/dist/persistence/run-manifest.js +118 -0
  57. package/dist/persistence/state-persistence.d.ts +276 -0
  58. package/dist/persistence/state-persistence.js +83 -0
  59. package/dist/runner/built-in-runner-ids.d.ts +8 -0
  60. package/dist/runner/built-in-runner-ids.js +11 -0
  61. package/dist/runner/collaboration-model.d.ts +100 -0
  62. package/dist/runner/collaboration-model.js +19 -0
  63. package/dist/runner/confidence.d.ts +17 -0
  64. package/dist/runner/confidence.js +11 -0
  65. package/dist/runner/index.d.ts +8 -0
  66. package/dist/runner/index.js +8 -0
  67. package/dist/runner/permission-approval.d.ts +38 -0
  68. package/dist/runner/permission-approval.js +14 -0
  69. package/dist/runner/prompt-engine.d.ts +1467 -0
  70. package/dist/runner/prompt-engine.js +193 -0
  71. package/dist/runner/role-system.d.ts +458 -0
  72. package/dist/runner/role-system.js +94 -0
  73. package/dist/runner/runner-system.d.ts +1721 -0
  74. package/dist/runner/runner-system.js +268 -0
  75. package/dist/runner/task-brief.d.ts +18 -0
  76. package/dist/runner/task-brief.js +12 -0
  77. package/dist/shared/index.d.ts +3 -0
  78. package/dist/shared/index.js +3 -0
  79. package/dist/shared/shared.d.ts +30 -0
  80. package/dist/shared/shared.js +27 -0
  81. package/dist/shared/string-enums.d.ts +59 -0
  82. package/dist/shared/string-enums.js +24 -0
  83. package/dist/shared/utils.d.ts +25 -0
  84. package/dist/shared/utils.js +22 -0
  85. package/dist/specification/canonical-specification.d.ts +475 -0
  86. package/dist/specification/canonical-specification.js +151 -0
  87. package/dist/specification/index.d.ts +3 -0
  88. package/dist/specification/index.js +3 -0
  89. package/dist/specification/intake.d.ts +419 -0
  90. package/dist/specification/intake.js +70 -0
  91. package/dist/specification/iteration-contracts.d.ts +421 -0
  92. package/dist/specification/iteration-contracts.js +61 -0
  93. package/dist/workflow/index.d.ts +4 -0
  94. package/dist/workflow/index.js +4 -0
  95. package/dist/workflow/workflow-dsl.d.ts +81 -0
  96. package/dist/workflow/workflow-dsl.js +38 -0
  97. package/dist/workflow/workflow-engine.d.ts +5788 -0
  98. package/dist/workflow/workflow-engine.js +414 -0
  99. package/dist/workflow/workflow-file.d.ts +331 -0
  100. package/dist/workflow/workflow-file.js +41 -0
  101. package/dist/workflow/workflow-journal.d.ts +520 -0
  102. package/dist/workflow/workflow-journal.js +151 -0
  103. package/package.json +39 -0
@@ -0,0 +1,414 @@
1
+ import { z } from 'zod/v4';
2
+ import { agreementTypeSchema } from '../artifacts/agreement-artifacts';
3
+ import { artifactRefSchema, artifactTypeSchema } from '../artifacts/artifact-system';
4
+ import { governanceOutcomeSchema } from '../governance/governance';
5
+ import { runManifestSchema } from '../persistence/run-manifest';
6
+ import { budgetExhaustionContextSchema } from '../persistence/state-persistence';
7
+ import { confidenceReportSchema } from '../runner/confidence';
8
+ import { roleIdSchema } from '../runner/role-system';
9
+ import { agentSessionRefSchema, sessionDispatchOutcomeSchema, sessionPendingRequestSchema, workerErrorTypeSchema, } from '../runner/runner-system';
10
+ export const STATE_TYPES = ['action', 'review', 'judge', 'gate', 'wait', 'terminal'];
11
+ export const stateTypeSchema = z.enum(STATE_TYPES);
12
+ export const TRANSITION_TRIGGERS = [
13
+ 'completion',
14
+ 'failure',
15
+ 'review_approved',
16
+ 'review_rejected',
17
+ 'iteration_exhausted',
18
+ 'judge_approved',
19
+ 'judge_rejected',
20
+ 'escalation',
21
+ 'human_input',
22
+ 'human_approved',
23
+ 'human_rejected',
24
+ 'timeout',
25
+ ];
26
+ export const transitionTriggerSchema = z.enum(TRANSITION_TRIGGERS);
27
+ export const GUARD_TYPES = [
28
+ 'artifact_exists',
29
+ 'artifact_version_min',
30
+ 'agreement_exists',
31
+ 'state_visited',
32
+ 'iteration_below_limit',
33
+ 'findings_indicate_plan_issue',
34
+ 'known_failure_pattern',
35
+ 'verification_failures_are_fixable',
36
+ 'verification_passed',
37
+ 'waiting_context_matches',
38
+ 'plan_structure_valid',
39
+ 'previous_run_pattern',
40
+ 'specification_feasible',
41
+ 'has_clarification_needs',
42
+ 'synthesis_approved',
43
+ 'acceptance_passed',
44
+ 'triage_indicates_plan_issue',
45
+ 'triage_needs_human',
46
+ 'confidence_threshold',
47
+ 'project_context_available',
48
+ ];
49
+ export const guardTypeSchema = z.enum(GUARD_TYPES);
50
+ export const ACTION_TYPES = [
51
+ 'dispatch_worker',
52
+ 'dispatch_parallel_workers',
53
+ 'dispatch_dynamic_workers',
54
+ 'run_script',
55
+ 'store_artifact',
56
+ 'record_journal',
57
+ 'generate_agreement',
58
+ 'produce_manifest',
59
+ 'notify_human',
60
+ ];
61
+ export const actionTypeSchema = z.enum(ACTION_TYPES);
62
+ // --- Guard variant schemas ---
63
+ const guardExtras = { waitForAll: z.boolean().optional() };
64
+ export const artifactExistsGuardSchema = z.object({
65
+ type: z.literal('artifact_exists'),
66
+ params: z.object({ artifactType: artifactTypeSchema, ...guardExtras }),
67
+ });
68
+ export const artifactVersionMinGuardSchema = z.object({
69
+ type: z.literal('artifact_version_min'),
70
+ params: z.object({ artifactType: artifactTypeSchema, minVersion: z.number(), ...guardExtras }),
71
+ });
72
+ export const agreementExistsGuardSchema = z.object({
73
+ type: z.literal('agreement_exists'),
74
+ params: z.object({ agreementType: agreementTypeSchema, ...guardExtras }),
75
+ });
76
+ export const stateVisitedGuardSchema = z.object({
77
+ type: z.literal('state_visited'),
78
+ params: z.object({ stateId: z.string(), ...guardExtras }),
79
+ });
80
+ export const iterationBelowLimitGuardSchema = z.object({
81
+ type: z.literal('iteration_below_limit'),
82
+ params: z.object({ contract: z.string(), ...guardExtras }),
83
+ });
84
+ export const waitingContextMatchesGuardSchema = z.object({
85
+ type: z.literal('waiting_context_matches'),
86
+ params: z.object({ requestingState: z.string(), ...guardExtras }),
87
+ });
88
+ export const findingsIndicatePlanIssueGuardSchema = z.object({
89
+ type: z.literal('findings_indicate_plan_issue'),
90
+ params: z.object({ ...guardExtras }),
91
+ });
92
+ export const verificationFailuresAreFixableGuardSchema = z.object({
93
+ type: z.literal('verification_failures_are_fixable'),
94
+ params: z.object({ ...guardExtras }),
95
+ });
96
+ export const verificationPassedGuardSchema = z.object({
97
+ type: z.literal('verification_passed'),
98
+ params: z.object({ ...guardExtras }),
99
+ });
100
+ export const planStructureValidGuardSchema = z.object({
101
+ type: z.literal('plan_structure_valid'),
102
+ params: z.object({ ...guardExtras }),
103
+ });
104
+ export const specificationFeasibleGuardSchema = z.object({
105
+ type: z.literal('specification_feasible'),
106
+ params: z.object({ ...guardExtras }),
107
+ });
108
+ export const hasClarificationNeedsGuardSchema = z.object({
109
+ type: z.literal('has_clarification_needs'),
110
+ params: z.object({ ...guardExtras }),
111
+ });
112
+ export const synthesisApprovedGuardSchema = z.object({
113
+ type: z.literal('synthesis_approved'),
114
+ params: z.object({ ...guardExtras }),
115
+ });
116
+ export const acceptancePassedGuardSchema = z.object({
117
+ type: z.literal('acceptance_passed'),
118
+ params: z.object({ ...guardExtras }),
119
+ });
120
+ export const knownFailurePatternGuardSchema = z.object({
121
+ type: z.literal('known_failure_pattern'),
122
+ params: z.object({
123
+ patternSubstring: z.string().min(1),
124
+ ...guardExtras,
125
+ }),
126
+ });
127
+ export const previousRunPatternGuardSchema = z.object({
128
+ type: z.literal('previous_run_pattern'),
129
+ params: z.object({
130
+ outcome: z.enum(['completed', 'failed', 'aborted', 'escalated']),
131
+ workflowVariant: z.string().optional(),
132
+ minOccurrences: z.number().int().min(1).optional(),
133
+ ...guardExtras,
134
+ }),
135
+ });
136
+ export const triageIndicatesPlanIssueGuardSchema = z.object({
137
+ type: z.literal('triage_indicates_plan_issue'),
138
+ params: z.object({ ...guardExtras }),
139
+ });
140
+ export const triageNeedsHumanGuardSchema = z.object({
141
+ type: z.literal('triage_needs_human'),
142
+ params: z.object({ ...guardExtras }),
143
+ });
144
+ export const confidenceThresholdGuardSchema = z.object({
145
+ type: z.literal('confidence_threshold'),
146
+ params: z.object({
147
+ minConfidence: z.number().min(0).max(1),
148
+ ...guardExtras,
149
+ }),
150
+ });
151
+ export const projectContextAvailableGuardSchema = z.object({
152
+ type: z.literal('project_context_available'),
153
+ params: z.object({
154
+ category: z.enum(['codebase', 'run_history', 'preferences']).optional(),
155
+ ...guardExtras,
156
+ }),
157
+ });
158
+ export const guardSchema = z.discriminatedUnion('type', [
159
+ artifactExistsGuardSchema,
160
+ artifactVersionMinGuardSchema,
161
+ agreementExistsGuardSchema,
162
+ stateVisitedGuardSchema,
163
+ iterationBelowLimitGuardSchema,
164
+ waitingContextMatchesGuardSchema,
165
+ findingsIndicatePlanIssueGuardSchema,
166
+ knownFailurePatternGuardSchema,
167
+ verificationFailuresAreFixableGuardSchema,
168
+ verificationPassedGuardSchema,
169
+ planStructureValidGuardSchema,
170
+ previousRunPatternGuardSchema,
171
+ specificationFeasibleGuardSchema,
172
+ hasClarificationNeedsGuardSchema,
173
+ synthesisApprovedGuardSchema,
174
+ acceptancePassedGuardSchema,
175
+ triageIndicatesPlanIssueGuardSchema,
176
+ triageNeedsHumanGuardSchema,
177
+ confidenceThresholdGuardSchema,
178
+ projectContextAvailableGuardSchema,
179
+ ]);
180
+ // --- Action variant schemas ---
181
+ export const dispatchWorkerActionSchema = z.object({
182
+ type: z.literal('dispatch_worker'),
183
+ params: z.object({
184
+ role: roleIdSchema,
185
+ parallel: z.boolean().optional(),
186
+ branchId: z.string().optional(),
187
+ stateId: z.string().optional(),
188
+ }),
189
+ });
190
+ export const dispatchParallelWorkersActionSchema = z.object({
191
+ type: z.literal('dispatch_parallel_workers'),
192
+ params: z.object({
193
+ roles: z.array(roleIdSchema).readonly(),
194
+ docsOnlyRoles: z.array(roleIdSchema).readonly().optional(),
195
+ }),
196
+ });
197
+ export const dispatchDynamicWorkersActionSchema = z.object({
198
+ type: z.literal('dispatch_dynamic_workers'),
199
+ params: z.object({
200
+ role: roleIdSchema,
201
+ sourceArtifact: artifactTypeSchema,
202
+ itemsPath: z.string().min(1),
203
+ }),
204
+ });
205
+ export const storeArtifactActionSchema = z.object({
206
+ type: z.literal('store_artifact'),
207
+ params: z.object({
208
+ type: artifactTypeSchema,
209
+ content: z.string(),
210
+ name: z.string().optional(),
211
+ }),
212
+ });
213
+ export const recordJournalActionSchema = z.object({
214
+ type: z.literal('record_journal'),
215
+ params: z.object({
216
+ event: z.enum(['run_started', 'run_completed', 'run_failed', 'run_aborted']),
217
+ }),
218
+ });
219
+ export const generateAgreementActionSchema = z.object({
220
+ type: z.literal('generate_agreement'),
221
+ params: z.object({ type: agreementTypeSchema }),
222
+ });
223
+ export const notifyHumanActionSchema = z.object({
224
+ type: z.literal('notify_human'),
225
+ params: z.object({ reason: z.string().optional() }),
226
+ });
227
+ export const runScriptActionSchema = z.object({
228
+ type: z.literal('run_script'),
229
+ params: z.object({
230
+ script: z.string(),
231
+ timeout: z.number().optional(),
232
+ env: z.record(z.string(), z.string()).optional(),
233
+ storeOutput: z
234
+ .object({
235
+ artifactType: z.string(),
236
+ producedBy: z.string().default('script'),
237
+ })
238
+ .optional(),
239
+ }),
240
+ });
241
+ export const produceManifestActionSchema = z.object({
242
+ type: z.literal('produce_manifest'),
243
+ params: z.object({}),
244
+ });
245
+ export const actionSchema = z.discriminatedUnion('type', [
246
+ dispatchWorkerActionSchema,
247
+ dispatchParallelWorkersActionSchema,
248
+ dispatchDynamicWorkersActionSchema,
249
+ runScriptActionSchema,
250
+ storeArtifactActionSchema,
251
+ recordJournalActionSchema,
252
+ generateAgreementActionSchema,
253
+ notifyHumanActionSchema,
254
+ produceManifestActionSchema,
255
+ ]);
256
+ export const transitionDefinitionSchema = z.object({
257
+ target: z.string(),
258
+ trigger: transitionTriggerSchema,
259
+ guards: z.array(guardSchema).readonly(),
260
+ governanceRequired: z.boolean(),
261
+ priority: z.number(),
262
+ });
263
+ export const stateDefinitionSchema = z.object({
264
+ type: stateTypeSchema,
265
+ label: z.string().optional(),
266
+ description: z.string(),
267
+ entryActions: z.array(actionSchema).readonly().optional(),
268
+ exitActions: z.array(actionSchema).readonly().optional(),
269
+ transitions: z.array(transitionDefinitionSchema).readonly(),
270
+ timeout: z.number().optional(),
271
+ });
272
+ export const workflowBudgetSchema = z.object({
273
+ maxTokensPerRun: z.number().optional(),
274
+ });
275
+ export const workflowDefinitionSchema = z.object({
276
+ name: z.string(),
277
+ version: z.string(),
278
+ states: z.record(z.string(), stateDefinitionSchema),
279
+ initialState: z.string(),
280
+ terminalStates: z.array(z.string()).readonly(),
281
+ budget: workflowBudgetSchema.optional(),
282
+ });
283
+ export const waitingContextSchema = z.object({
284
+ reason: z.string(),
285
+ requiredInput: z.string(),
286
+ requestingState: z.string(),
287
+ autoResumeSafe: z.boolean(),
288
+ presentedArtifacts: z.array(artifactRefSchema).readonly(),
289
+ waitingSince: z.string(),
290
+ budgetExhaustion: budgetExhaustionContextSchema.optional(),
291
+ });
292
+ export const engineStateSchema = z.object({
293
+ runId: z.string(),
294
+ currentState: z.string(),
295
+ previousState: z.string().nullable(),
296
+ stateEnteredAt: z.string(),
297
+ transitionCount: z.number(),
298
+ isWaitingForHuman: z.boolean(),
299
+ waitingContext: waitingContextSchema.optional(),
300
+ });
301
+ export const runResultSchema = z.object({
302
+ runId: z.string(),
303
+ finalState: z.string(),
304
+ artifactInventory: z.array(artifactRefSchema).readonly(),
305
+ manifest: runManifestSchema,
306
+ });
307
+ export const humanInputSchema = z.object({
308
+ type: z.enum(['text', 'approval', 'rejection']),
309
+ content: z.string(),
310
+ artifactRef: artifactRefSchema.optional(),
311
+ });
312
+ export const workflowRunConfigSchema = z.object({
313
+ runId: z.string(),
314
+ workflowDefinition: workflowDefinitionSchema,
315
+ governancePolicy: z.object({}),
316
+ roleAssignments: z.record(z.string(), z.string()),
317
+ sources: z.array(z.string()).readonly(),
318
+ resumeFrom: z.string().optional(),
319
+ globalTransitionLimit: z.number().optional(),
320
+ budgetMaxTokens: z.number().optional(),
321
+ budgetAlertThresholds: z.array(z.number()).readonly().optional(),
322
+ reportOutputPath: z.string().optional(),
323
+ runDir: z.string().optional(),
324
+ repoRoot: z.string().optional(),
325
+ });
326
+ export const transitionContextSchema = z.object({
327
+ runId: z.string(),
328
+ currentIteration: z.number(),
329
+ stateHistory: z.array(z.string()).readonly(),
330
+ artifactRefs: z.array(artifactRefSchema).readonly().optional(),
331
+ waitingContext: waitingContextSchema.optional(),
332
+ tokenUsage: z
333
+ .object({
334
+ inputTokens: z.number(),
335
+ outputTokens: z.number(),
336
+ totalTokens: z.number(),
337
+ })
338
+ .optional(),
339
+ repoRoot: z.string().optional(),
340
+ });
341
+ export const guardResultSchema = z.object({
342
+ guard: guardSchema,
343
+ passed: z.boolean(),
344
+ detail: z.string(),
345
+ });
346
+ export const evaluatedTransitionSchema = z.object({
347
+ definition: transitionDefinitionSchema,
348
+ guardsResult: z.array(guardResultSchema).readonly(),
349
+ governanceDecision: governanceOutcomeSchema.optional(),
350
+ });
351
+ export const transitionRecordSchema = z.object({
352
+ timestamp: z.string(),
353
+ runId: z.string(),
354
+ from: z.string(),
355
+ to: z.string(),
356
+ trigger: transitionTriggerSchema,
357
+ guardsEvaluated: z.array(guardResultSchema).readonly(),
358
+ governanceDecision: governanceOutcomeSchema.optional(),
359
+ actionResults: z
360
+ .array(z.lazy(() => actionResultSchema))
361
+ .readonly()
362
+ .optional(),
363
+ durationMs: z.number(),
364
+ });
365
+ export const workerResultSchema = z.object({
366
+ role: z.string(),
367
+ success: z.boolean(),
368
+ error: z.string().optional(),
369
+ errorType: workerErrorTypeSchema.optional(),
370
+ artifactRef: artifactRefSchema.optional(),
371
+ model: z.string().optional(),
372
+ });
373
+ export const actionUsageSnapshotSchema = z.object({
374
+ totalInputTokens: z.number(),
375
+ totalOutputTokens: z.number(),
376
+ byRole: z.record(z.string(), z.object({
377
+ inputTokens: z.number(),
378
+ outputTokens: z.number(),
379
+ durationMs: z.number(),
380
+ })),
381
+ });
382
+ export const scriptDisplaySchema = z.object({
383
+ /** Human-readable summary shown in the dashboard chat. May contain URLs. */
384
+ message: z.string().min(1),
385
+ });
386
+ export const scriptDirectivesSchema = z.object({
387
+ repoRoot: z.string().optional(),
388
+ });
389
+ export const scriptOutputSchema = z.object({
390
+ message: z.string().min(1).optional(),
391
+ directives: scriptDirectivesSchema.optional(),
392
+ });
393
+ export const scriptResultSchema = z.object({
394
+ exitCode: z.number(),
395
+ stdout: z.string(),
396
+ stderr: z.string(),
397
+ durationMs: z.number(),
398
+ output: scriptOutputSchema.optional(),
399
+ });
400
+ export const actionResultSchema = z.object({
401
+ action: actionSchema,
402
+ success: z.boolean(),
403
+ error: z.string().optional(),
404
+ errorType: workerErrorTypeSchema.optional(),
405
+ artifactRef: artifactRefSchema.optional(),
406
+ artifactRefs: z.array(artifactRefSchema).readonly().optional(),
407
+ workerResults: z.array(workerResultSchema).readonly().optional(),
408
+ usageSnapshot: actionUsageSnapshotSchema.optional(),
409
+ sessionOutcome: sessionDispatchOutcomeSchema.optional(),
410
+ sessionRef: agentSessionRefSchema.optional(),
411
+ pendingRequest: sessionPendingRequestSchema.optional(),
412
+ scriptResult: scriptResultSchema.optional(),
413
+ confidenceReport: confidenceReportSchema.optional(),
414
+ });