agentic-orchestrator 0.1.25 → 0.1.26
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/agentic/orchestrator/defaults/policy.defaults.yaml +1 -0
- package/agentic/orchestrator/policy.yaml +1 -0
- package/agentic/orchestrator/schemas/policy.schema.json +4 -0
- package/agentic/orchestrator/schemas/policy.user.schema.json +4 -0
- package/apps/control-plane/src/application/services/activity-monitor-service.ts +42 -0
- package/apps/control-plane/src/application/services/collision-queue-service.ts +48 -0
- package/apps/control-plane/src/application/services/cost-tracking-service.ts +80 -0
- package/apps/control-plane/src/application/services/feature-deletion-service.ts +57 -0
- package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +65 -0
- package/apps/control-plane/src/application/services/feature-state-service.ts +87 -0
- package/apps/control-plane/src/application/services/gate-selection-service.ts +28 -0
- package/apps/control-plane/src/application/services/gate-service.ts +148 -0
- package/apps/control-plane/src/application/services/issue-tracker-service.ts +28 -0
- package/apps/control-plane/src/application/services/lock-service.ts +88 -0
- package/apps/control-plane/src/application/services/merge-service.ts +63 -0
- package/apps/control-plane/src/application/services/notifier-service.ts +70 -0
- package/apps/control-plane/src/application/services/patch-service.ts +95 -0
- package/apps/control-plane/src/application/services/performance-analytics-service.ts +90 -0
- package/apps/control-plane/src/application/services/plan-service.ts +184 -0
- package/apps/control-plane/src/application/services/pr-monitor-service.ts +58 -0
- package/apps/control-plane/src/application/services/qa-index-service.ts +68 -0
- package/apps/control-plane/src/application/services/reactions-service.ts +77 -0
- package/apps/control-plane/src/application/services/reporting-service.ts +79 -0
- package/apps/control-plane/src/application/services/run-lease-service.ts +79 -0
- package/apps/control-plane/src/application/tools/tool-router.ts +76 -0
- package/apps/control-plane/src/mcp/tool-runtime.ts +4 -0
- package/apps/control-plane/src/providers/providers.ts +96 -0
- package/apps/control-plane/src/providers/worker-provider-factory.ts +4 -0
- package/apps/control-plane/src/supervisor/build-wave-executor.ts +4 -0
- package/apps/control-plane/src/supervisor/planning-wave-executor.ts +4 -0
- package/apps/control-plane/src/supervisor/qa-wave-executor.ts +4 -0
- package/apps/control-plane/src/supervisor/run-coordinator.ts +4 -0
- package/apps/control-plane/src/supervisor/runtime.ts +4 -0
- package/apps/control-plane/src/supervisor/session-orchestrator.ts +4 -0
- package/apps/control-plane/test/dashboard-api.integration.spec.ts +310 -1
- package/apps/control-plane/test/dashboard-client.spec.ts +136 -1
- package/apps/control-plane/test/dashboard-live-feed.spec.ts +153 -0
- package/apps/control-plane/test/dashboard-ui-utils.spec.ts +132 -0
- package/apps/control-plane/test/mcp.spec.ts +96 -0
- package/apps/control-plane/test/tool-runtime.spec.ts +68 -0
- package/config/agentic/orchestrator/policy.yaml +1 -0
- package/dist/apps/control-plane/application/services/activity-monitor-service.d.ts +42 -0
- package/dist/apps/control-plane/application/services/activity-monitor-service.js +42 -0
- package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/collision-queue-service.d.ts +48 -0
- package/dist/apps/control-plane/application/services/collision-queue-service.js +48 -0
- package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/cost-tracking-service.d.ts +79 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.js +76 -0
- package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-deletion-service.d.ts +57 -0
- package/dist/apps/control-plane/application/services/feature-deletion-service.js +57 -0
- package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.d.ts +64 -0
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +61 -0
- package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/feature-state-service.d.ts +86 -0
- package/dist/apps/control-plane/application/services/feature-state-service.js +83 -0
- package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/gate-selection-service.d.ts +28 -0
- package/dist/apps/control-plane/application/services/gate-selection-service.js +28 -0
- package/dist/apps/control-plane/application/services/gate-selection-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/gate-service.d.ts +148 -0
- package/dist/apps/control-plane/application/services/gate-service.js +120 -0
- package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/issue-tracker-service.d.ts +28 -0
- package/dist/apps/control-plane/application/services/issue-tracker-service.js +28 -0
- package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/lock-service.d.ts +88 -0
- package/dist/apps/control-plane/application/services/lock-service.js +64 -0
- package/dist/apps/control-plane/application/services/lock-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/merge-service.d.ts +62 -0
- package/dist/apps/control-plane/application/services/merge-service.js +59 -0
- package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/notifier-service.d.ts +70 -0
- package/dist/apps/control-plane/application/services/notifier-service.js +70 -0
- package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/patch-service.d.ts +94 -0
- package/dist/apps/control-plane/application/services/patch-service.js +91 -0
- package/dist/apps/control-plane/application/services/patch-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/performance-analytics-service.d.ts +89 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.js +86 -0
- package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/plan-service.d.ts +287 -0
- package/dist/apps/control-plane/application/services/plan-service.js +207 -0
- package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/pr-monitor-service.d.ts +58 -0
- package/dist/apps/control-plane/application/services/pr-monitor-service.js +58 -0
- package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/qa-index-service.d.ts +67 -0
- package/dist/apps/control-plane/application/services/qa-index-service.js +64 -0
- package/dist/apps/control-plane/application/services/qa-index-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/reactions-service.d.ts +76 -0
- package/dist/apps/control-plane/application/services/reactions-service.js +73 -0
- package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/reporting-service.d.ts +78 -0
- package/dist/apps/control-plane/application/services/reporting-service.js +75 -0
- package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
- package/dist/apps/control-plane/application/services/run-lease-service.d.ts +79 -0
- package/dist/apps/control-plane/application/services/run-lease-service.js +79 -0
- package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
- package/dist/apps/control-plane/application/tools/tool-router.d.ts +76 -0
- package/dist/apps/control-plane/application/tools/tool-router.js +62 -0
- package/dist/apps/control-plane/application/tools/tool-router.js.map +1 -1
- package/dist/apps/control-plane/mcp/tool-runtime.d.ts +3 -0
- package/dist/apps/control-plane/mcp/tool-runtime.js +3 -0
- package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
- package/dist/apps/control-plane/providers/providers.d.ts +88 -0
- package/dist/apps/control-plane/providers/providers.js.map +1 -1
- package/dist/apps/control-plane/providers/worker-provider-factory.d.ts +3 -0
- package/dist/apps/control-plane/providers/worker-provider-factory.js.map +1 -1
- package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/build-wave-executor.js +3 -0
- package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/planning-wave-executor.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js +3 -0
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js +3 -0
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/run-coordinator.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/run-coordinator.js +3 -0
- package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
- package/dist/apps/control-plane/supervisor/runtime.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/runtime.js +3 -0
- package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
- package/dist/apps/control-plane/supervisor/session-orchestrator.d.ts +3 -0
- package/dist/apps/control-plane/supervisor/session-orchestrator.js +3 -0
- package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
- package/package.json +1 -1
- package/packages/web-dashboard/src/app/analytics/page.tsx +451 -0
- package/packages/web-dashboard/src/app/api/analytics/route.ts +62 -0
- package/packages/web-dashboard/src/app/api/collisions/route.ts +63 -0
- package/packages/web-dashboard/src/app/api/features/[id]/cost/route.ts +29 -0
- package/packages/web-dashboard/src/app/api/features/[id]/review-brief/route.ts +31 -0
- package/packages/web-dashboard/src/app/api/features/[id]/route.ts +5 -8
- package/packages/web-dashboard/src/app/api/features/[id]/test-index/route.ts +31 -0
- package/packages/web-dashboard/src/app/api/flaky/route.ts +20 -0
- package/packages/web-dashboard/src/app/api/policy/budget/route.ts +31 -0
- package/packages/web-dashboard/src/app/api/run/route.ts +162 -0
- package/packages/web-dashboard/src/app/api/status/route.ts +2 -5
- package/packages/web-dashboard/src/app/feature/[id]/page.tsx +112 -0
- package/packages/web-dashboard/src/app/page.tsx +379 -77
- package/packages/web-dashboard/src/components/agent-pipeline-stepper.tsx +100 -0
- package/packages/web-dashboard/src/components/dependency-chains.tsx +58 -0
- package/packages/web-dashboard/src/components/detail-panel.tsx +215 -5
- package/packages/web-dashboard/src/components/feature-card.tsx +5 -0
- package/packages/web-dashboard/src/components/feature-cost-panel.tsx +66 -0
- package/packages/web-dashboard/src/components/feature-list-view.tsx +336 -0
- package/packages/web-dashboard/src/components/gate-step-drilldown.tsx +92 -0
- package/packages/web-dashboard/src/components/kanban-board.tsx +3 -0
- package/packages/web-dashboard/src/components/live-event-feed.tsx +60 -0
- package/packages/web-dashboard/src/components/lock-resource-map.tsx +73 -0
- package/packages/web-dashboard/src/components/plan-revision-timeline.tsx +55 -0
- package/packages/web-dashboard/src/components/plan-risk-annotations.tsx +63 -0
- package/packages/web-dashboard/src/components/plan-scope-tree.tsx +285 -0
- package/packages/web-dashboard/src/components/qa-coverage-map.tsx +174 -0
- package/packages/web-dashboard/src/components/quick-launch-panel.tsx +70 -0
- package/packages/web-dashboard/src/components/review-brief-panel.tsx +75 -0
- package/packages/web-dashboard/src/components/run-health-panel.tsx +85 -0
- package/packages/web-dashboard/src/components/summary-bar.tsx +59 -2
- package/packages/web-dashboard/src/components/verification-signals.tsx +167 -0
- package/packages/web-dashboard/src/lib/analytics-utils.ts +3 -0
- package/packages/web-dashboard/src/lib/aop-client.ts +510 -11
- package/packages/web-dashboard/src/lib/api-envelope.ts +48 -0
- package/packages/web-dashboard/src/lib/authz-adapter.ts +33 -0
- package/packages/web-dashboard/src/lib/dashboard-utils.ts +304 -0
- package/packages/web-dashboard/src/lib/live-feed.ts +218 -0
- package/packages/web-dashboard/src/lib/policy-reader.ts +22 -0
- package/packages/web-dashboard/src/lib/types.ts +114 -0
- package/packages/web-dashboard/src/styles/dashboard.module.css +341 -1
- package/spec-files/{outstanding → completed}/agentic_orchestrator_dashboard_advanced_ux_spec.md +1 -1
- package/spec-files/outstanding/agentic_orchestrator_evidence_integrity_doctor_spec.md +561 -0
- package/spec-files/outstanding/agentic_orchestrator_kernel_simplification_spec.md +834 -0
- package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +12 -5
- package/spec-files/outstanding/agentic_orchestrator_observability_replay_spec.md +442 -0
- package/spec-files/progress.md +174 -1
|
@@ -20,6 +20,57 @@ function readHeldLocks(frontMatter) {
|
|
|
20
20
|
const locks = readObjectField(frontMatter, 'locks');
|
|
21
21
|
return asArray(locks.held).filter((item) => typeof item === 'string');
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Manages plan submission, validation, and collision detection.
|
|
25
|
+
*
|
|
26
|
+
* ## Responsibilities
|
|
27
|
+
* - Validate plan schema and policy compliance
|
|
28
|
+
* - Detect file/area/contract collisions with other features
|
|
29
|
+
* - Enforce lock requirements for protected resources
|
|
30
|
+
* - Manage plan versioning with optimistic concurrency
|
|
31
|
+
* - Select appropriate gate profiles based on plan intent
|
|
32
|
+
*
|
|
33
|
+
* ## Dependencies
|
|
34
|
+
* Depends on {@link PlanServicePort} for:
|
|
35
|
+
* - Policy and schema access
|
|
36
|
+
* - State and index operations
|
|
37
|
+
* - File locking primitives
|
|
38
|
+
*
|
|
39
|
+
* ## Key Methods
|
|
40
|
+
* - `planSubmit()` - submit initial plan with full validation
|
|
41
|
+
* - `planUpdate()` - submit versioned plan revision
|
|
42
|
+
* - `planGet()` - retrieve accepted plan
|
|
43
|
+
* - `checkPlanCollision()` - detect collisions with other features
|
|
44
|
+
* - `assertPlanLocksHeld()` - verify required locks are held
|
|
45
|
+
*
|
|
46
|
+
* ## Error Conditions
|
|
47
|
+
* - SCHEMA_VALIDATION_FAILED - plan fails JSON schema validation
|
|
48
|
+
* - PLAN_COLLISION - file/area/contract conflicts with another feature
|
|
49
|
+
* - LOCK_NOT_HELD - required resource locks not acquired
|
|
50
|
+
* - VERSION_CONFLICT - plan version mismatch (concurrent update)
|
|
51
|
+
* - DEPENDENCY_CYCLE - circular feature dependencies detected
|
|
52
|
+
*
|
|
53
|
+
* ## Thread Safety
|
|
54
|
+
* All mutations are protected by feature-level or index-level locks.
|
|
55
|
+
* Concurrent reads are safe. Concurrent writes are serialized.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const planService = new PlanService(port);
|
|
60
|
+
*
|
|
61
|
+
* // Submit initial plan
|
|
62
|
+
* await planService.planSubmit('my_feature', planData, null);
|
|
63
|
+
*
|
|
64
|
+
* // Update plan with version guard
|
|
65
|
+
* await planService.planUpdate('my_feature', updatedPlan, 1);
|
|
66
|
+
*
|
|
67
|
+
* // Check for collisions
|
|
68
|
+
* const result = await planService.checkPlanCollision('my_feature', planData);
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @see CollisionDetector - for collision detection algorithm
|
|
72
|
+
* @see GateSelectionService - for gate profile selection
|
|
73
|
+
*/
|
|
23
74
|
export class PlanService {
|
|
24
75
|
port;
|
|
25
76
|
gateSelectionService;
|
|
@@ -27,6 +78,19 @@ export class PlanService {
|
|
|
27
78
|
this.port = port;
|
|
28
79
|
this.gateSelectionService = new GateSelectionService(port);
|
|
29
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Retrieves the accepted plan for a feature.
|
|
83
|
+
*
|
|
84
|
+
* @param featureId - feature identifier
|
|
85
|
+
* @returns Plan data wrapped in success response
|
|
86
|
+
* @throws FILE_NOT_FOUND - plan file does not exist
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const result = await planService.planGet('my_feature');
|
|
91
|
+
* console.log(result.data.plan);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
30
94
|
async planGet(featureId) {
|
|
31
95
|
const plan = await readJson(this.port.planPath(featureId), null);
|
|
32
96
|
return {
|
|
@@ -36,6 +100,20 @@ export class PlanService {
|
|
|
36
100
|
},
|
|
37
101
|
};
|
|
38
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Collects all accepted plans from discovered features.
|
|
105
|
+
*
|
|
106
|
+
* Used for collision detection and dependency analysis.
|
|
107
|
+
*
|
|
108
|
+
* @param excludeFeatureId - optional feature to exclude from collection
|
|
109
|
+
* @returns Array of plan objects
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* // Get all plans except current feature
|
|
114
|
+
* const plans = await planService.collectAcceptedPlans('my_feature');
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
39
117
|
async collectAcceptedPlans(excludeFeatureId = null) {
|
|
40
118
|
const specs = await this.port.featureDiscoverSpecs();
|
|
41
119
|
const plans = [];
|
|
@@ -50,6 +128,20 @@ export class PlanService {
|
|
|
50
128
|
}
|
|
51
129
|
return plans;
|
|
52
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Determines required resource locks based on plan contracts.
|
|
133
|
+
*
|
|
134
|
+
* Maps contract modifications to resource identifiers per policy.
|
|
135
|
+
*
|
|
136
|
+
* @param plan - plan object with contracts section
|
|
137
|
+
* @returns Sorted array of required resource identifiers
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const resources = planService.requiredResourcesForPlan(plan);
|
|
142
|
+
* // ['openapi', 'db_migrations']
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
53
145
|
requiredResourcesForPlan(plan) {
|
|
54
146
|
const resources = [];
|
|
55
147
|
const policy = this.port.getPolicySnapshot();
|
|
@@ -64,6 +156,18 @@ export class PlanService {
|
|
|
64
156
|
}
|
|
65
157
|
return sortResourcesDeterministically(resources);
|
|
66
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Verifies that all required resource locks are held by the feature.
|
|
161
|
+
*
|
|
162
|
+
* @param featureId - feature identifier
|
|
163
|
+
* @param plan - plan object requiring locks
|
|
164
|
+
* @throws LOCK_NOT_HELD - required locks are not held
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* await planService.assertPlanLocksHeld('my_feature', plan);
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
67
171
|
async assertPlanLocksHeld(featureId, plan) {
|
|
68
172
|
const state = await this.port.readState(featureId);
|
|
69
173
|
const held = new Set(readHeldLocks(state.frontMatter));
|
|
@@ -81,6 +185,20 @@ export class PlanService {
|
|
|
81
185
|
};
|
|
82
186
|
}
|
|
83
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Validates plan revision rules for versioning and optimistic concurrency.
|
|
190
|
+
*
|
|
191
|
+
* Enforces:
|
|
192
|
+
* - Initial plans must be version 1 without revision_of
|
|
193
|
+
* - Updates must increment version and reference previous version
|
|
194
|
+
* - Version guard must match current plan version
|
|
195
|
+
*
|
|
196
|
+
* @param existingPlan - current plan or null for initial submission
|
|
197
|
+
* @param plan - new plan to validate
|
|
198
|
+
* @param expectedPlanVersion - expected current version for concurrency guard
|
|
199
|
+
* @throws PLAN_VALIDATION_FAILED - revision rules violated
|
|
200
|
+
* @throws VERSION_CONFLICT - version mismatch (concurrent update)
|
|
201
|
+
*/
|
|
84
202
|
validatePlanRevisionRules(existingPlan, plan, expectedPlanVersion = null) {
|
|
85
203
|
if (!existingPlan) {
|
|
86
204
|
if (plan.plan_version !== 1 || plan.revision_of != null) {
|
|
@@ -112,6 +230,17 @@ export class PlanService {
|
|
|
112
230
|
};
|
|
113
231
|
}
|
|
114
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Validates plan against JSON schema.
|
|
235
|
+
*
|
|
236
|
+
* @param plan - plan object to validate
|
|
237
|
+
* @throws SCHEMA_VALIDATION_FAILED - plan does not conform to schema
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```typescript
|
|
241
|
+
* await planService.validatePlanSchema(planData);
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
115
244
|
async validatePlanSchema(plan) {
|
|
116
245
|
const validation = await this.port.validateSchema('plan.schema.json', plan);
|
|
117
246
|
if (!validation.valid) {
|
|
@@ -124,6 +253,24 @@ export class PlanService {
|
|
|
124
253
|
};
|
|
125
254
|
}
|
|
126
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Detects file, area, and contract collisions with other features.
|
|
258
|
+
*
|
|
259
|
+
* Compares plan against all accepted plans to find conflicts.
|
|
260
|
+
*
|
|
261
|
+
* @param featureId - feature identifier
|
|
262
|
+
* @param plan - plan to check for collisions
|
|
263
|
+
* @returns Collision matrix with conflicts by feature
|
|
264
|
+
* @throws PLAN_COLLISION - collisions detected (per policy)
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```typescript
|
|
268
|
+
* const result = await planService.checkPlanCollision('my_feature', plan);
|
|
269
|
+
* if (result.data.has_collisions) {
|
|
270
|
+
* console.log(result.data.collisions);
|
|
271
|
+
* }
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
127
274
|
async checkPlanCollision(featureId, plan) {
|
|
128
275
|
const policy = this.port.getPolicySnapshot();
|
|
129
276
|
const acceptedPlans = await this.collectAcceptedPlans(featureId);
|
|
@@ -175,6 +322,17 @@ export class PlanService {
|
|
|
175
322
|
}),
|
|
176
323
|
};
|
|
177
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Validates feature dependencies and detects circular references.
|
|
327
|
+
*
|
|
328
|
+
* @param featureId - feature to check (null checks all features)
|
|
329
|
+
* @throws DEPENDENCY_CYCLE - circular dependency detected
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```typescript
|
|
333
|
+
* await planService.checkDependencies('my_feature');
|
|
334
|
+
* ```
|
|
335
|
+
*/
|
|
178
336
|
async checkDependencies(featureId) {
|
|
179
337
|
if (!featureId) {
|
|
180
338
|
return;
|
|
@@ -225,6 +383,33 @@ export class PlanService {
|
|
|
225
383
|
};
|
|
226
384
|
}
|
|
227
385
|
}
|
|
386
|
+
/**
|
|
387
|
+
* Submits initial plan with full validation pipeline.
|
|
388
|
+
*
|
|
389
|
+
* Validation steps:
|
|
390
|
+
* 1. Schema validation
|
|
391
|
+
* 2. Revision rules check
|
|
392
|
+
* 3. Lock requirement verification
|
|
393
|
+
* 4. Collision detection
|
|
394
|
+
* 5. Dependency cycle check
|
|
395
|
+
* 6. Gate profile selection
|
|
396
|
+
*
|
|
397
|
+
* @param featureId - feature identifier
|
|
398
|
+
* @param plan - plan object to submit
|
|
399
|
+
* @param expectedVersion - expected state version for concurrency guard
|
|
400
|
+
* @returns Acceptance result with plan version
|
|
401
|
+
* @throws INVALID_ARGUMENT - missing or invalid plan
|
|
402
|
+
* @throws SCHEMA_VALIDATION_FAILED - plan schema invalid
|
|
403
|
+
* @throws LOCK_NOT_HELD - required locks not held
|
|
404
|
+
* @throws PLAN_COLLISION - collisions detected
|
|
405
|
+
* @throws DEPENDENCY_CYCLE - circular dependencies
|
|
406
|
+
*
|
|
407
|
+
* @example
|
|
408
|
+
* ```typescript
|
|
409
|
+
* const result = await planService.planSubmit('my_feature', planData, null);
|
|
410
|
+
* console.log(`Plan accepted: version ${result.data.plan_version}`);
|
|
411
|
+
* ```
|
|
412
|
+
*/
|
|
228
413
|
async planSubmit(featureId, plan, expectedVersion = null) {
|
|
229
414
|
if (!plan || typeof plan !== 'object') {
|
|
230
415
|
throw {
|
|
@@ -289,6 +474,28 @@ export class PlanService {
|
|
|
289
474
|
},
|
|
290
475
|
};
|
|
291
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Submits versioned plan revision with full revalidation.
|
|
479
|
+
*
|
|
480
|
+
* Requires plan_version to be current_version + 1 and revision_of
|
|
481
|
+
* to reference current version. Runs full validation pipeline.
|
|
482
|
+
*
|
|
483
|
+
* @param featureId - feature identifier
|
|
484
|
+
* @param plan - updated plan object
|
|
485
|
+
* @param expectedPlanVersion - expected current plan version
|
|
486
|
+
* @returns Acceptance result with new plan version
|
|
487
|
+
* @throws VERSION_CONFLICT - plan version mismatch
|
|
488
|
+
* @throws PLAN_VALIDATION_FAILED - revision rules violated
|
|
489
|
+
* @throws SCHEMA_VALIDATION_FAILED - plan schema invalid
|
|
490
|
+
* @throws LOCK_NOT_HELD - required locks not held
|
|
491
|
+
* @throws PLAN_COLLISION - collisions detected
|
|
492
|
+
*
|
|
493
|
+
* @example
|
|
494
|
+
* ```typescript
|
|
495
|
+
* // Update plan from version 1 to version 2
|
|
496
|
+
* const result = await planService.planUpdate('my_feature', updatedPlan, 1);
|
|
497
|
+
* ```
|
|
498
|
+
*/
|
|
292
499
|
async planUpdate(featureId, expectedPlanVersion, plan) {
|
|
293
500
|
return await this.planSubmit(featureId, plan, expectedPlanVersion);
|
|
294
501
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/plan-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/plan-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,15 +30,73 @@ export interface PrMonitorServiceDependencies {
|
|
|
30
30
|
};
|
|
31
31
|
ghRunner?: GhRunner;
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Monitors pull request status and handles review feedback.
|
|
35
|
+
*
|
|
36
|
+
* ## Responsibilities
|
|
37
|
+
* - Detect PRs for feature branches
|
|
38
|
+
* - Monitor PR status and review decisions
|
|
39
|
+
* - Handle changes_requested events
|
|
40
|
+
* - Store PR metadata in feature state
|
|
41
|
+
*
|
|
42
|
+
* ## Dependencies
|
|
43
|
+
* - {@link SupervisorToolCaller} - for tool invocation
|
|
44
|
+
* - {@link NotifierService} - for PR notifications
|
|
45
|
+
* - GitHub CLI - for PR queries
|
|
46
|
+
*
|
|
47
|
+
* ## Key Methods
|
|
48
|
+
* - `detectPr()` - detect PR for feature branch
|
|
49
|
+
* - `checkAndUpdate()` - check PR status and update state
|
|
50
|
+
* - `handleChangesRequested()` - handle review feedback
|
|
51
|
+
* - `storePrState()` - persist PR metadata
|
|
52
|
+
*
|
|
53
|
+
* ## Error Conditions
|
|
54
|
+
* - PR detection failures are logged but don't block
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const prMonitor = new PrMonitorService({ toolCaller, notifier });
|
|
59
|
+
* const pr = await prMonitor.detectPr('my_feature', 'my_feature');
|
|
60
|
+
* if (pr) {
|
|
61
|
+
* await prMonitor.checkAndUpdate('my_feature', 'my_feature');
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
33
65
|
export declare class PrMonitorService {
|
|
34
66
|
private readonly toolCaller;
|
|
35
67
|
private readonly notifier;
|
|
36
68
|
private readonly reactionsPolicy;
|
|
37
69
|
private readonly ghRunner;
|
|
38
70
|
constructor(dependencies: PrMonitorServiceDependencies);
|
|
71
|
+
/**
|
|
72
|
+
* Detects PR for feature branch.
|
|
73
|
+
*
|
|
74
|
+
* @param featureId - feature identifier
|
|
75
|
+
* @param branch - branch name
|
|
76
|
+
* @returns PR info or null if not found
|
|
77
|
+
*/
|
|
39
78
|
detectPr(featureId: string, branch: string): Promise<PrInfo | null>;
|
|
79
|
+
/**
|
|
80
|
+
* Stores PR metadata in feature state.
|
|
81
|
+
*
|
|
82
|
+
* @param featureId - feature identifier
|
|
83
|
+
* @param prInfo - PR information
|
|
84
|
+
*/
|
|
40
85
|
storePrState(featureId: string, prInfo: PrInfo): Promise<void>;
|
|
41
86
|
computeMergeScore(prInfo: PrInfo): number;
|
|
87
|
+
/**
|
|
88
|
+
* Handles changes_requested review decision.
|
|
89
|
+
*
|
|
90
|
+
* @param featureId - feature identifier
|
|
91
|
+
* @param prInfo - PR information with review decision
|
|
92
|
+
*/
|
|
42
93
|
handleChangesRequested(featureId: string, prInfo: PrInfo): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Checks PR status and updates feature state.
|
|
96
|
+
*
|
|
97
|
+
* @param featureId - feature identifier
|
|
98
|
+
* @param branch - branch name
|
|
99
|
+
* @returns Updated PR info or null
|
|
100
|
+
*/
|
|
43
101
|
checkAndUpdate(featureId: string, branch: string): Promise<PrInfo | null>;
|
|
44
102
|
}
|
|
@@ -49,6 +49,38 @@ function mapReviewDecision(decision) {
|
|
|
49
49
|
return 'none';
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Monitors pull request status and handles review feedback.
|
|
54
|
+
*
|
|
55
|
+
* ## Responsibilities
|
|
56
|
+
* - Detect PRs for feature branches
|
|
57
|
+
* - Monitor PR status and review decisions
|
|
58
|
+
* - Handle changes_requested events
|
|
59
|
+
* - Store PR metadata in feature state
|
|
60
|
+
*
|
|
61
|
+
* ## Dependencies
|
|
62
|
+
* - {@link SupervisorToolCaller} - for tool invocation
|
|
63
|
+
* - {@link NotifierService} - for PR notifications
|
|
64
|
+
* - GitHub CLI - for PR queries
|
|
65
|
+
*
|
|
66
|
+
* ## Key Methods
|
|
67
|
+
* - `detectPr()` - detect PR for feature branch
|
|
68
|
+
* - `checkAndUpdate()` - check PR status and update state
|
|
69
|
+
* - `handleChangesRequested()` - handle review feedback
|
|
70
|
+
* - `storePrState()` - persist PR metadata
|
|
71
|
+
*
|
|
72
|
+
* ## Error Conditions
|
|
73
|
+
* - PR detection failures are logged but don't block
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const prMonitor = new PrMonitorService({ toolCaller, notifier });
|
|
78
|
+
* const pr = await prMonitor.detectPr('my_feature', 'my_feature');
|
|
79
|
+
* if (pr) {
|
|
80
|
+
* await prMonitor.checkAndUpdate('my_feature', 'my_feature');
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
52
84
|
export class PrMonitorService {
|
|
53
85
|
toolCaller;
|
|
54
86
|
notifier;
|
|
@@ -60,6 +92,13 @@ export class PrMonitorService {
|
|
|
60
92
|
this.reactionsPolicy = dependencies.reactionsPolicy;
|
|
61
93
|
this.ghRunner = dependencies.ghRunner ?? createGhRunner();
|
|
62
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Detects PR for feature branch.
|
|
97
|
+
*
|
|
98
|
+
* @param featureId - feature identifier
|
|
99
|
+
* @param branch - branch name
|
|
100
|
+
* @returns PR info or null if not found
|
|
101
|
+
*/
|
|
63
102
|
async detectPr(featureId, branch) {
|
|
64
103
|
const candidates = [
|
|
65
104
|
...new Set([branch, featureId, `feature/${featureId}`].map((value) => value.trim()).filter(Boolean)),
|
|
@@ -108,6 +147,12 @@ export class PrMonitorService {
|
|
|
108
147
|
const merge_score = this.computeMergeScore({ ...partial, merge_score: 0 });
|
|
109
148
|
return { ...partial, merge_score };
|
|
110
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Stores PR metadata in feature state.
|
|
152
|
+
*
|
|
153
|
+
* @param featureId - feature identifier
|
|
154
|
+
* @param prInfo - PR information
|
|
155
|
+
*/
|
|
111
156
|
async storePrState(featureId, prInfo) {
|
|
112
157
|
const current = await this.toolCaller.callTool('orchestrator', TOOLS.FEATURE_STATE_GET, { feature_id: featureId });
|
|
113
158
|
await this.toolCaller.callTool('orchestrator', TOOLS.FEATURE_STATE_PATCH, {
|
|
@@ -145,6 +190,12 @@ export class PrMonitorService {
|
|
|
145
190
|
}
|
|
146
191
|
return score;
|
|
147
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Handles changes_requested review decision.
|
|
195
|
+
*
|
|
196
|
+
* @param featureId - feature identifier
|
|
197
|
+
* @param prInfo - PR information with review decision
|
|
198
|
+
*/
|
|
148
199
|
async handleChangesRequested(featureId, prInfo) {
|
|
149
200
|
const reaction = this.reactionsPolicy?.changes_requested;
|
|
150
201
|
if (!reaction?.enabled) {
|
|
@@ -189,6 +240,13 @@ export class PrMonitorService {
|
|
|
189
240
|
});
|
|
190
241
|
}
|
|
191
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Checks PR status and updates feature state.
|
|
245
|
+
*
|
|
246
|
+
* @param featureId - feature identifier
|
|
247
|
+
* @param branch - branch name
|
|
248
|
+
* @returns Updated PR info or null
|
|
249
|
+
*/
|
|
192
250
|
async checkAndUpdate(featureId, branch) {
|
|
193
251
|
const prInfo = await this.detectPr(featureId, branch);
|
|
194
252
|
if (!prInfo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-monitor-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/pr-monitor-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr-monitor-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/pr-monitor-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
type AnyRecord = Record<string, any>;
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview QA test obligation tracking service.
|
|
4
|
+
*/
|
|
2
5
|
export interface QaIndexServicePort {
|
|
3
6
|
qaIndexPath(featureId: string): string;
|
|
4
7
|
validateSchema(schemaName: string, value: unknown): Promise<{
|
|
@@ -6,9 +9,56 @@ export interface QaIndexServicePort {
|
|
|
6
9
|
errors?: unknown;
|
|
7
10
|
}>;
|
|
8
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Manages QA test obligation tracking.
|
|
14
|
+
*
|
|
15
|
+
* ## Responsibilities
|
|
16
|
+
* - Create qa_test_index.json from diff hunks
|
|
17
|
+
* - Track test status per hunk (pending/covered/skipped)
|
|
18
|
+
* - Link evidence to test obligations
|
|
19
|
+
* - Validate all obligations are resolved
|
|
20
|
+
*
|
|
21
|
+
* ## Dependencies
|
|
22
|
+
* Depends on {@link QaIndexServicePort} for:
|
|
23
|
+
* - QA index file path resolution
|
|
24
|
+
* - Schema validation
|
|
25
|
+
*
|
|
26
|
+
* ## Key Methods
|
|
27
|
+
* - `qaTestIndexGet()` - retrieve test index
|
|
28
|
+
* - `qaTestIndexUpdate()` - update hunk statuses with evidence
|
|
29
|
+
*
|
|
30
|
+
* ## Error Conditions
|
|
31
|
+
* - FILE_NOT_FOUND - index file does not exist
|
|
32
|
+
* - VERSION_CONFLICT - concurrent index update
|
|
33
|
+
* - SCHEMA_VALIDATION_FAILED - invalid index structure
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const qaService = new QaIndexService(port);
|
|
38
|
+
* const index = await qaService.qaTestIndexGet('my_feature');
|
|
39
|
+
* await qaService.qaTestIndexUpdate('my_feature', updates, 1);
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* ## Index Format
|
|
43
|
+
* Each hunk has: path, line range, required tests, status, evidence refs
|
|
44
|
+
*/
|
|
9
45
|
export declare class QaIndexService {
|
|
10
46
|
private readonly port;
|
|
11
47
|
constructor(port: QaIndexServicePort);
|
|
48
|
+
/**
|
|
49
|
+
* Retrieves QA test index for a feature.
|
|
50
|
+
*
|
|
51
|
+
* @param featureId - feature identifier
|
|
52
|
+
* @returns Test index with hunk obligations and pending summary
|
|
53
|
+
* @throws FILE_NOT_FOUND - index does not exist
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const index = await qaService.qaTestIndexGet('my_feature');
|
|
58
|
+
* console.log(index.data.items);
|
|
59
|
+
* console.log(index.data.pending_obligations);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
12
62
|
qaTestIndexGet(featureId: string): Promise<{
|
|
13
63
|
data: {
|
|
14
64
|
index: AnyRecord;
|
|
@@ -16,6 +66,23 @@ export declare class QaIndexService {
|
|
|
16
66
|
pending_required_tests: AnyRecord;
|
|
17
67
|
};
|
|
18
68
|
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Updates hunk statuses with evidence references and version guard.
|
|
71
|
+
*
|
|
72
|
+
* @param featureId - feature identifier
|
|
73
|
+
* @param updates - hunk status updates with evidence refs
|
|
74
|
+
* @param expectedVersion - expected index version
|
|
75
|
+
* @returns Updated index
|
|
76
|
+
* @throws VERSION_CONFLICT - version mismatch
|
|
77
|
+
* @throws SCHEMA_VALIDATION_FAILED - invalid updates
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* await qaService.qaTestIndexUpdate('my_feature', {
|
|
82
|
+
* items: [{ path: 'file.ts', status: 'covered', evidence_refs: ['gate_123'] }]
|
|
83
|
+
* }, 1);
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
19
86
|
qaTestIndexUpdate(featureId: string, expectedVersion: number | null, updates: unknown, evidenceRefs: unknown[]): Promise<{
|
|
20
87
|
data: {
|
|
21
88
|
feature_id: string;
|