agentic-orchestrator 0.1.4 → 0.1.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/.claude/settings.local.json +6 -1
- package/README.md +81 -54
- package/agentic/orchestrator/defaults/policy.defaults.yaml +212 -0
- package/agentic/orchestrator/schemas/adapters.schema.json +17 -4
- package/agentic/orchestrator/schemas/agents.schema.json +58 -13
- package/agentic/orchestrator/schemas/gates.schema.json +88 -17
- package/agentic/orchestrator/schemas/index.schema.json +172 -37
- package/agentic/orchestrator/schemas/multi-project.schema.json +85 -17
- package/agentic/orchestrator/schemas/plan.schema.json +135 -30
- package/agentic/orchestrator/schemas/policy.schema.json +198 -69
- package/agentic/orchestrator/schemas/policy.user.schema.json +165 -0
- package/agentic/orchestrator/schemas/qa_test_index.schema.json +71 -14
- package/agentic/orchestrator/schemas/state.schema.json +196 -39
- package/apps/control-plane/scripts/validate-architecture-rules.mjs +5 -3
- package/apps/control-plane/scripts/validate-docker-mcp-contract.mjs +0 -3
- package/apps/control-plane/scripts/validate-mcp-contracts.ts +2 -6
- package/apps/control-plane/src/application/services/policy-loader-service.ts +115 -0
- package/apps/control-plane/src/cli/aop.ts +35 -1
- package/apps/control-plane/src/cli/cli-argument-parser.ts +4 -0
- package/apps/control-plane/src/cli/help-command-handler.ts +2 -1
- package/apps/control-plane/src/cli/init-command-handler.ts +136 -27
- package/apps/control-plane/src/cli/retry-command-handler.ts +3 -6
- package/apps/control-plane/src/cli/types.ts +1 -0
- package/apps/control-plane/src/core/git.ts +1 -3
- package/apps/control-plane/src/core/kernel.ts +3 -6
- package/apps/control-plane/src/core/schemas.ts +36 -1
- package/apps/control-plane/src/interfaces/cli/bootstrap.ts +1 -1
- package/apps/control-plane/src/mcp/tool-registry-loader.ts +37 -1
- package/apps/control-plane/src/supervisor/qa-wave-executor.ts +1 -1
- package/apps/control-plane/test/aop.spec.ts +37 -0
- package/apps/control-plane/test/batch-operations.spec.ts +5 -3
- package/apps/control-plane/test/bootstrap-attach.spec.ts +28 -18
- package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +25 -15
- package/apps/control-plane/test/bootstrap.spec.ts +30 -22
- package/apps/control-plane/test/cli.unit.spec.ts +55 -10
- package/apps/control-plane/test/core-utils.spec.ts +12 -3
- package/apps/control-plane/test/feature-deletion-service.spec.ts +2 -1
- package/apps/control-plane/test/feature-lifecycle.spec.ts +1 -1
- package/apps/control-plane/test/helpers.ts +22 -2
- package/apps/control-plane/test/init-wizard.spec.ts +160 -7
- package/apps/control-plane/test/issue-tracker.spec.ts +3 -3
- package/apps/control-plane/test/kernel.spec.ts +62 -0
- package/apps/control-plane/test/lock-service.spec.ts +4 -4
- package/apps/control-plane/test/policy-loader-service.spec.ts +346 -0
- package/apps/control-plane/test/reactions.spec.ts +8 -6
- package/apps/control-plane/test/resume-command.spec.ts +31 -15
- package/apps/control-plane/test/supervisor.unit.spec.ts +2 -2
- package/apps/control-plane/test/tool-registry-loader.spec.ts +12 -0
- package/apps/control-plane/vitest.config.ts +1 -1
- package/dist/apps/control-plane/application/services/policy-loader-service.d.ts +24 -0
- package/dist/apps/control-plane/application/services/policy-loader-service.js +90 -0
- package/dist/apps/control-plane/application/services/policy-loader-service.js.map +1 -0
- package/dist/apps/control-plane/application/tools/tool-metadata.js +1 -0
- package/dist/apps/control-plane/application/tools/tool-metadata.js.map +1 -1
- package/dist/apps/control-plane/cli/aop.js +33 -1
- package/dist/apps/control-plane/cli/aop.js.map +1 -1
- package/dist/apps/control-plane/cli/cli-argument-parser.js +4 -0
- package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
- package/dist/apps/control-plane/cli/dashboard-command-handler.js +11 -5
- package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/help-command-handler.js +5 -4
- package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/init-command-handler.d.ts +1 -0
- package/dist/apps/control-plane/cli/init-command-handler.js +110 -26
- package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/retry-command-handler.js +3 -6
- package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/types.d.ts +1 -0
- package/dist/apps/control-plane/core/git.js +1 -3
- package/dist/apps/control-plane/core/git.js.map +1 -1
- package/dist/apps/control-plane/core/kernel.js +3 -5
- package/dist/apps/control-plane/core/kernel.js.map +1 -1
- package/dist/apps/control-plane/core/schemas.d.ts +2 -0
- package/dist/apps/control-plane/core/schemas.js +31 -1
- package/dist/apps/control-plane/core/schemas.js.map +1 -1
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js +1 -1
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-registry-loader.d.ts +2 -0
- package/dist/apps/control-plane/mcp/tool-registry-loader.js +31 -1
- package/dist/apps/control-plane/mcp/tool-registry-loader.js.map +1 -1
- package/dist/apps/control-plane/supervisor/build-wave-executor.js +1 -1
- package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
- package/package.json +18 -17
- package/packages/web-dashboard/package.json +1 -1
- package/packages/web-dashboard/src/app/api/actions/route.ts +2 -2
- package/packages/web-dashboard/src/app/api/events/route.ts +1 -1
- package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +1 -1
- package/packages/web-dashboard/src/app/api/features/[id]/diff/route.ts +1 -1
- package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +1 -1
- package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +2 -2
- package/packages/web-dashboard/src/app/api/features/[id]/route.ts +1 -1
- package/packages/web-dashboard/src/app/api/projects/route.ts +2 -2
- package/packages/web-dashboard/src/app/api/status/route.ts +1 -1
- package/packages/web-dashboard/src/app/page.tsx +1 -1
- package/packages/web-dashboard/src/lib/aop-client.ts +1 -1
- package/packages/web-dashboard/src/lib/orchestrator-tools.ts +1 -1
- package/packages/web-dashboard/tsconfig.json +1 -0
- package/spec-files/completed/agentic_orchestrator_init_policy_ux_simplification_spec.md +481 -0
- package/spec-files/outstanding/agentic_orchestrator_artifact_database_publishing_spec.md +500 -0
- package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +500 -195
- package/spec-files/outstanding/agentic_orchestrator_performance_improvements_spec.md +471 -162
- package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +532 -268
- package/spec-files/outstanding/agentic_orchestrator_productization_commercial_spec.md +645 -0
- package/spec-files/progress.md +99 -2
- package/tsconfig.base.json +4 -0
- /package/spec-files/{outstanding → completed}/agentic_orchestrator_validator_hardening_spec.md +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://example.local/agentic/plan.schema.json",
|
|
4
|
+
"description": "Feature plan submitted by the planner agent and stored in .aop/features/<id>/plan.json. Governs which files and contracts the builder agent may touch.",
|
|
4
5
|
"type": "object",
|
|
5
6
|
"additionalProperties": false,
|
|
6
7
|
"required": [
|
|
@@ -18,82 +19,169 @@
|
|
|
18
19
|
"properties": {
|
|
19
20
|
"feature_id": {
|
|
20
21
|
"type": "string",
|
|
21
|
-
"pattern": "^[a-z0-9_][a-z0-9_-]*$"
|
|
22
|
+
"pattern": "^[a-z0-9_][a-z0-9_-]*$",
|
|
23
|
+
"description": "Identifier of the feature this plan belongs to. Must match the enclosing feature ID and the state's feature_id."
|
|
22
24
|
},
|
|
23
25
|
"plan_version": {
|
|
24
26
|
"type": "integer",
|
|
25
|
-
"minimum": 1
|
|
27
|
+
"minimum": 1,
|
|
28
|
+
"description": "Monotonically incrementing plan version. The first plan must be version 1; each revision must increment by exactly 1."
|
|
26
29
|
},
|
|
27
30
|
"summary": {
|
|
28
31
|
"type": "string",
|
|
29
|
-
"minLength": 5
|
|
32
|
+
"minLength": 5,
|
|
33
|
+
"description": "Human-readable description of what this feature implements or changes."
|
|
30
34
|
},
|
|
31
35
|
"allowed_areas": {
|
|
32
36
|
"type": "array",
|
|
33
|
-
"items": {
|
|
34
|
-
|
|
37
|
+
"items": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1
|
|
40
|
+
},
|
|
41
|
+
"minItems": 1,
|
|
42
|
+
"description": "Path prefixes or glob patterns that agent patches are permitted to touch. Enforced by patch_policy.enforce_allowed_areas."
|
|
35
43
|
},
|
|
36
44
|
"forbidden_areas": {
|
|
37
45
|
"type": "array",
|
|
38
|
-
"items": {
|
|
46
|
+
"items": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1
|
|
49
|
+
},
|
|
50
|
+
"description": "Path prefixes or glob patterns that agent patches must not touch, regardless of allowed_areas."
|
|
39
51
|
},
|
|
40
52
|
"base_ref": {
|
|
41
53
|
"type": "string",
|
|
42
|
-
"minLength": 1
|
|
54
|
+
"minLength": 1,
|
|
55
|
+
"description": "Git ref (branch name or commit SHA) from which the feature worktree was created."
|
|
43
56
|
},
|
|
44
57
|
"files": {
|
|
45
58
|
"type": "object",
|
|
59
|
+
"description": "Planned file operations. When a plan is present, every patched file must appear in one of these lists.",
|
|
46
60
|
"additionalProperties": false,
|
|
47
|
-
"required": [
|
|
61
|
+
"required": [
|
|
62
|
+
"create",
|
|
63
|
+
"modify",
|
|
64
|
+
"delete"
|
|
65
|
+
],
|
|
48
66
|
"properties": {
|
|
49
|
-
"create": {
|
|
50
|
-
|
|
51
|
-
|
|
67
|
+
"create": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"minLength": 1
|
|
72
|
+
},
|
|
73
|
+
"description": "Files the plan intends to create. Patches creating unlisted files are rejected when a plan exists."
|
|
74
|
+
},
|
|
75
|
+
"modify": {
|
|
76
|
+
"type": "array",
|
|
77
|
+
"items": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"minLength": 1
|
|
80
|
+
},
|
|
81
|
+
"description": "Files the plan intends to modify. Patches modifying unlisted files are rejected when a plan exists."
|
|
82
|
+
},
|
|
83
|
+
"delete": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"minLength": 1
|
|
88
|
+
},
|
|
89
|
+
"description": "Files the plan intends to delete."
|
|
90
|
+
}
|
|
52
91
|
}
|
|
53
92
|
},
|
|
54
93
|
"contracts": {
|
|
55
94
|
"type": "object",
|
|
95
|
+
"description": "Declares which shared contract types this plan modifies. Each 'modify' or 'migration' value triggers a lock requirement.",
|
|
56
96
|
"additionalProperties": false,
|
|
57
|
-
"required": [
|
|
97
|
+
"required": [
|
|
98
|
+
"openapi",
|
|
99
|
+
"events",
|
|
100
|
+
"db"
|
|
101
|
+
],
|
|
58
102
|
"properties": {
|
|
59
|
-
"openapi": {
|
|
60
|
-
|
|
61
|
-
|
|
103
|
+
"openapi": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"enum": [
|
|
106
|
+
"none",
|
|
107
|
+
"modify"
|
|
108
|
+
],
|
|
109
|
+
"description": "'modify' means this plan changes the OpenAPI contract file, requiring the 'openapi' lock to be held before plan submission."
|
|
110
|
+
},
|
|
111
|
+
"events": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"enum": [
|
|
114
|
+
"none",
|
|
115
|
+
"modify"
|
|
116
|
+
],
|
|
117
|
+
"description": "'modify' means this plan changes the events contract file, requiring the 'events' lock."
|
|
118
|
+
},
|
|
119
|
+
"db": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"enum": [
|
|
122
|
+
"none",
|
|
123
|
+
"migration"
|
|
124
|
+
],
|
|
125
|
+
"description": "'migration' means this plan adds a database schema migration, requiring the 'db' lock."
|
|
126
|
+
}
|
|
62
127
|
}
|
|
63
128
|
},
|
|
64
129
|
"acceptance_criteria": {
|
|
65
130
|
"type": "array",
|
|
66
|
-
"items": {
|
|
67
|
-
|
|
131
|
+
"items": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"minLength": 1
|
|
134
|
+
},
|
|
135
|
+
"minItems": 1,
|
|
136
|
+
"description": "Human-readable conditions that must all be met before the feature is considered complete and ready for merge."
|
|
137
|
+
},
|
|
138
|
+
"gate_profile": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"minLength": 1,
|
|
141
|
+
"description": "Name of the gates profile to apply to this feature. Written to state.gate_profile on plan acceptance."
|
|
68
142
|
},
|
|
69
|
-
"gate_profile": { "type": "string", "minLength": 1 },
|
|
70
143
|
"gate_targets": {
|
|
71
144
|
"type": "array",
|
|
72
|
-
"items": {
|
|
73
|
-
|
|
145
|
+
"items": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"minLength": 1
|
|
148
|
+
},
|
|
149
|
+
"minItems": 1,
|
|
150
|
+
"description": "Optional explicit list of gate mode names to run. When omitted the profile's full mode set is used."
|
|
74
151
|
},
|
|
75
152
|
"risk": {
|
|
76
153
|
"type": "array",
|
|
77
|
-
"items": {
|
|
154
|
+
"items": {
|
|
155
|
+
"type": "string",
|
|
156
|
+
"minLength": 1
|
|
157
|
+
},
|
|
158
|
+
"description": "Free-text notes about known risks, edge cases, or areas needing extra care during implementation."
|
|
78
159
|
},
|
|
79
160
|
"revision_of": {
|
|
80
161
|
"type": "integer",
|
|
81
|
-
"minimum": 1
|
|
162
|
+
"minimum": 1,
|
|
163
|
+
"description": "plan_version of the previous plan this revision supersedes. Must equal expectedPlanVersion when updating a plan."
|
|
82
164
|
},
|
|
83
165
|
"revision_reason": {
|
|
84
166
|
"type": "string",
|
|
85
|
-
"minLength": 1
|
|
167
|
+
"minLength": 1,
|
|
168
|
+
"description": "Human-readable explanation of why this plan revision was made."
|
|
86
169
|
},
|
|
87
170
|
"verification_overrides": {
|
|
88
171
|
"type": "object",
|
|
172
|
+
"description": "Per-mode step overrides that replace the profile's default steps for this specific feature only.",
|
|
89
173
|
"additionalProperties": false,
|
|
90
174
|
"properties": {
|
|
91
175
|
"modes": {
|
|
92
176
|
"type": "object",
|
|
93
177
|
"additionalProperties": false,
|
|
94
178
|
"properties": {
|
|
95
|
-
"fast": {
|
|
96
|
-
|
|
179
|
+
"fast": {
|
|
180
|
+
"$ref": "#/$defs/modeOverride"
|
|
181
|
+
},
|
|
182
|
+
"full": {
|
|
183
|
+
"$ref": "#/$defs/modeOverride"
|
|
184
|
+
}
|
|
97
185
|
}
|
|
98
186
|
}
|
|
99
187
|
}
|
|
@@ -102,22 +190,39 @@
|
|
|
102
190
|
"$defs": {
|
|
103
191
|
"modeOverride": {
|
|
104
192
|
"type": "object",
|
|
193
|
+
"description": "Override steps for a single gate mode. Replaces the profile's default step list for this feature.",
|
|
105
194
|
"additionalProperties": false,
|
|
106
195
|
"properties": {
|
|
107
196
|
"steps": {
|
|
108
197
|
"type": "array",
|
|
198
|
+
"description": "Replacement step list for this mode.",
|
|
109
199
|
"items": {
|
|
110
200
|
"type": "object",
|
|
111
201
|
"additionalProperties": false,
|
|
112
|
-
"required": [
|
|
202
|
+
"required": [
|
|
203
|
+
"name",
|
|
204
|
+
"cmd"
|
|
205
|
+
],
|
|
113
206
|
"properties": {
|
|
114
|
-
"name": {
|
|
207
|
+
"name": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"minLength": 1,
|
|
210
|
+
"description": "Step identifier."
|
|
211
|
+
},
|
|
115
212
|
"cmd": {
|
|
116
213
|
"type": "array",
|
|
117
|
-
"items": {
|
|
118
|
-
|
|
214
|
+
"items": {
|
|
215
|
+
"type": "string",
|
|
216
|
+
"minLength": 1
|
|
217
|
+
},
|
|
218
|
+
"minItems": 1,
|
|
219
|
+
"description": "Command tokens to execute."
|
|
119
220
|
},
|
|
120
|
-
"timeout_seconds": {
|
|
221
|
+
"timeout_seconds": {
|
|
222
|
+
"type": "number",
|
|
223
|
+
"minimum": 1,
|
|
224
|
+
"description": "Timeout in seconds for this step."
|
|
225
|
+
}
|
|
121
226
|
}
|
|
122
227
|
}
|
|
123
228
|
}
|