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
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Cost tracking and budget enforcement service.
|
|
3
|
+
*/
|
|
1
4
|
export interface FeatureCost {
|
|
2
5
|
feature_id: string;
|
|
3
6
|
tokens_used: number;
|
|
@@ -19,10 +22,86 @@ export interface CostTrackingServicePort {
|
|
|
19
22
|
featureCostPath(featureId: string): string;
|
|
20
23
|
getPolicySnapshot(): Record<string, unknown>;
|
|
21
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Manages cost tracking and budget enforcement.
|
|
27
|
+
*
|
|
28
|
+
* ## Responsibilities
|
|
29
|
+
* - Record token usage and API costs per feature
|
|
30
|
+
* - Enforce per_feature_limit_usd budget
|
|
31
|
+
* - Aggregate costs by provider/model
|
|
32
|
+
* - Pause features exceeding budget
|
|
33
|
+
*
|
|
34
|
+
* ## Dependencies
|
|
35
|
+
* Depends on {@link CostTrackingServicePort} for:
|
|
36
|
+
* - Cost file path resolution
|
|
37
|
+
* - Policy budget configuration
|
|
38
|
+
*
|
|
39
|
+
* ## Key Methods
|
|
40
|
+
* - `recordCost()` - record cost entry
|
|
41
|
+
* - `getFeatureCost()` - retrieve accumulated costs
|
|
42
|
+
* - `checkBudget()` - enforce budget threshold
|
|
43
|
+
*
|
|
44
|
+
* ## Error Conditions
|
|
45
|
+
* - BUDGET_EXCEEDED - feature cost exceeds policy limit
|
|
46
|
+
* - FILE_NOT_FOUND - cost file does not exist
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const costService = new CostTrackingService(port);
|
|
51
|
+
* await costService.recordCost('my_feature', { tokens: 1000, cost_usd: 0.02 });
|
|
52
|
+
* const costs = await costService.getFeatureCost('my_feature');
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ## Cost Format
|
|
56
|
+
* cost.json: { entries: [{ timestamp, tokens, cost_usd, provider, model }], total_usd }
|
|
57
|
+
*/
|
|
22
58
|
export declare class CostTrackingService {
|
|
23
59
|
private readonly port;
|
|
24
60
|
constructor(port: CostTrackingServicePort);
|
|
61
|
+
/**
|
|
62
|
+
* Retrieves accumulated costs for a feature.
|
|
63
|
+
*
|
|
64
|
+
* @param featureId - feature identifier
|
|
65
|
+
* @returns Cost summary with entries and total
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const costs = await costService.getFeatureCost('my_feature');
|
|
70
|
+
* console.log(costs.total_cost_usd);
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
25
73
|
getFeatureCost(featureId: string): Promise<FeatureCost>;
|
|
74
|
+
/**
|
|
75
|
+
* Records a cost entry for a feature.
|
|
76
|
+
*
|
|
77
|
+
* @param featureId - feature identifier
|
|
78
|
+
* @param entry - cost entry with tokens, USD amount, provider, model
|
|
79
|
+
* @returns Success response
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* await costService.recordCost('my_feature', {
|
|
84
|
+
* tokens: 1000,
|
|
85
|
+
* cost_usd: 0.02,
|
|
86
|
+
* provider: 'claude',
|
|
87
|
+
* model: 'claude-3-5-sonnet-20241022'
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
26
91
|
recordCost(featureId: string, tokensDelta: number, costUsdDelta: number): Promise<FeatureCost>;
|
|
92
|
+
/**
|
|
93
|
+
* Checks if feature is within budget limits.
|
|
94
|
+
*
|
|
95
|
+
* @param featureId - feature identifier
|
|
96
|
+
* @returns Budget check result with over_budget and alert flags
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const check = await costService.checkBudget('my_feature');
|
|
101
|
+
* if (check.over_budget) {
|
|
102
|
+
* console.log('Budget exceeded!');
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
27
106
|
checkBudget(featureId: string): Promise<BudgetCheckResult>;
|
|
28
107
|
}
|
|
@@ -1,9 +1,54 @@
|
|
|
1
1
|
import { atomicWriteJson, nowIso, readJson } from '../../core/fs.js';
|
|
2
|
+
/**
|
|
3
|
+
* Manages cost tracking and budget enforcement.
|
|
4
|
+
*
|
|
5
|
+
* ## Responsibilities
|
|
6
|
+
* - Record token usage and API costs per feature
|
|
7
|
+
* - Enforce per_feature_limit_usd budget
|
|
8
|
+
* - Aggregate costs by provider/model
|
|
9
|
+
* - Pause features exceeding budget
|
|
10
|
+
*
|
|
11
|
+
* ## Dependencies
|
|
12
|
+
* Depends on {@link CostTrackingServicePort} for:
|
|
13
|
+
* - Cost file path resolution
|
|
14
|
+
* - Policy budget configuration
|
|
15
|
+
*
|
|
16
|
+
* ## Key Methods
|
|
17
|
+
* - `recordCost()` - record cost entry
|
|
18
|
+
* - `getFeatureCost()` - retrieve accumulated costs
|
|
19
|
+
* - `checkBudget()` - enforce budget threshold
|
|
20
|
+
*
|
|
21
|
+
* ## Error Conditions
|
|
22
|
+
* - BUDGET_EXCEEDED - feature cost exceeds policy limit
|
|
23
|
+
* - FILE_NOT_FOUND - cost file does not exist
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const costService = new CostTrackingService(port);
|
|
28
|
+
* await costService.recordCost('my_feature', { tokens: 1000, cost_usd: 0.02 });
|
|
29
|
+
* const costs = await costService.getFeatureCost('my_feature');
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* ## Cost Format
|
|
33
|
+
* cost.json: { entries: [{ timestamp, tokens, cost_usd, provider, model }], total_usd }
|
|
34
|
+
*/
|
|
2
35
|
export class CostTrackingService {
|
|
3
36
|
port;
|
|
4
37
|
constructor(port) {
|
|
5
38
|
this.port = port;
|
|
6
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves accumulated costs for a feature.
|
|
42
|
+
*
|
|
43
|
+
* @param featureId - feature identifier
|
|
44
|
+
* @returns Cost summary with entries and total
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const costs = await costService.getFeatureCost('my_feature');
|
|
49
|
+
* console.log(costs.total_cost_usd);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
7
52
|
async getFeatureCost(featureId) {
|
|
8
53
|
const existing = await readJson(this.port.featureCostPath(featureId), null);
|
|
9
54
|
return (existing ?? {
|
|
@@ -13,6 +58,23 @@ export class CostTrackingService {
|
|
|
13
58
|
last_updated: nowIso(),
|
|
14
59
|
});
|
|
15
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Records a cost entry for a feature.
|
|
63
|
+
*
|
|
64
|
+
* @param featureId - feature identifier
|
|
65
|
+
* @param entry - cost entry with tokens, USD amount, provider, model
|
|
66
|
+
* @returns Success response
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* await costService.recordCost('my_feature', {
|
|
71
|
+
* tokens: 1000,
|
|
72
|
+
* cost_usd: 0.02,
|
|
73
|
+
* provider: 'claude',
|
|
74
|
+
* model: 'claude-3-5-sonnet-20241022'
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
16
78
|
async recordCost(featureId, tokensDelta, costUsdDelta) {
|
|
17
79
|
const current = await this.getFeatureCost(featureId);
|
|
18
80
|
const updated = {
|
|
@@ -24,6 +86,20 @@ export class CostTrackingService {
|
|
|
24
86
|
await atomicWriteJson(this.port.featureCostPath(featureId), updated);
|
|
25
87
|
return updated;
|
|
26
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Checks if feature is within budget limits.
|
|
91
|
+
*
|
|
92
|
+
* @param featureId - feature identifier
|
|
93
|
+
* @returns Budget check result with over_budget and alert flags
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const check = await costService.checkBudget('my_feature');
|
|
98
|
+
* if (check.over_budget) {
|
|
99
|
+
* console.log('Budget exceeded!');
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
27
103
|
async checkBudget(featureId) {
|
|
28
104
|
const policy = this.port.getPolicySnapshot();
|
|
29
105
|
const budgetPolicy = (policy.budget && typeof policy.budget === 'object' ? policy.budget : {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracking-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/cost-tracking-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cost-tracking-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/cost-tracking-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA+BrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,mBAAmB;IACb,IAAI,CAA0B;IAE/C,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAc,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACzF,OAAO,CACL,QAAQ,IAAI;YACV,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,CAAC;YACd,kBAAkB,EAAE,GAAG;YACvB,YAAY,EAAE,MAAM,EAAE;SACvB,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,WAAmB,EACnB,YAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAgB;YAC3B,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,WAAW;YAC9C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,GAAG,YAAY;YAC7D,YAAY,EAAE,MAAM,EAAE;SACvB,CAAC;QACF,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,CACnB,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACxD,CAAC;QAElB,MAAM,QAAQ,GACZ,OAAO,YAAY,CAAC,qBAAqB,KAAK,QAAQ;YACpD,CAAC,CAAC,YAAY,CAAC,qBAAqB;YACpC,CAAC,CAAC,QAAQ,CAAC;QACf,MAAM,cAAc,GAClB,OAAO,YAAY,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;QAExF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC;QACpF,MAAM,qBAAqB,GACzB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,IAAI,QAAQ,GAAG,cAAc,CAAC;QAEpF,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,uBAAuB,EAAE,qBAAqB;YAC9C,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;YACzC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,eAAe,EAAE,cAAc;SAChC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -70,9 +70,66 @@ export interface FeatureDeletionServicePort {
|
|
|
70
70
|
isRunLeaseFresh(runtimeSessions: RuntimeSessionsSnapshot): boolean;
|
|
71
71
|
locksRelease(resource: string, featureId: string): Promise<unknown>;
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Manages feature deletion and cleanup.
|
|
75
|
+
*
|
|
76
|
+
* ## Responsibilities
|
|
77
|
+
* - Delete feature artifacts (state, plan, logs, evidence)
|
|
78
|
+
* - Remove worktree and branch (optional)
|
|
79
|
+
* - Clean up index references
|
|
80
|
+
* - Release held locks
|
|
81
|
+
* - Remove runtime session assignments
|
|
82
|
+
*
|
|
83
|
+
* ## Dependencies
|
|
84
|
+
* Depends on {@link FeatureDeletionServicePort} for:
|
|
85
|
+
* - File operations
|
|
86
|
+
* - Git operations
|
|
87
|
+
* - Index and run-lease updates
|
|
88
|
+
* - Lock release
|
|
89
|
+
*
|
|
90
|
+
* ## Key Methods
|
|
91
|
+
* - `featureDelete()` - delete feature with configurable cleanup
|
|
92
|
+
*
|
|
93
|
+
* ## Error Conditions
|
|
94
|
+
* - FILE_NOT_FOUND - feature does not exist
|
|
95
|
+
* - RUN_ALREADY_ACTIVE - cannot delete during active run
|
|
96
|
+
* - GIT_ERROR - worktree/branch removal failed
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const deletionService = new FeatureDeletionService(port);
|
|
101
|
+
* await deletionService.featureDelete('my_feature', {
|
|
102
|
+
* dry_run: false,
|
|
103
|
+
* remove_worktree: true,
|
|
104
|
+
* remove_branch: 'safe'
|
|
105
|
+
* });
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
73
108
|
export declare class FeatureDeletionService {
|
|
74
109
|
private readonly port;
|
|
75
110
|
constructor(port: FeatureDeletionServicePort);
|
|
111
|
+
/**
|
|
112
|
+
* Deletes feature artifacts with configurable cleanup options.
|
|
113
|
+
*
|
|
114
|
+
* @param featureId - feature identifier
|
|
115
|
+
* @param options - deletion options (dry_run, remove_worktree, remove_branch)
|
|
116
|
+
* @returns Deletion result with cleanup summary
|
|
117
|
+
* @throws FILE_NOT_FOUND - feature does not exist
|
|
118
|
+
* @throws RUN_ALREADY_ACTIVE - cannot delete during active run
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* // Preview deletion
|
|
123
|
+
* await deletionService.featureDelete('my_feature', { dry_run: true });
|
|
124
|
+
*
|
|
125
|
+
* // Execute deletion with worktree cleanup
|
|
126
|
+
* await deletionService.featureDelete('my_feature', {
|
|
127
|
+
* dry_run: false,
|
|
128
|
+
* remove_worktree: true,
|
|
129
|
+
* remove_branch: 'safe'
|
|
130
|
+
* });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
76
133
|
featureDelete(featureId: string | null, options?: DeleteOptions): Promise<FeatureDeleteResult>;
|
|
77
134
|
private hasFreshRunLease;
|
|
78
135
|
private loadStateFrontMatter;
|
|
@@ -65,11 +65,68 @@ function normalizeFeatureSessions(runtimeSessions) {
|
|
|
65
65
|
? runtimeSessions.feature_sessions
|
|
66
66
|
: {};
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Manages feature deletion and cleanup.
|
|
70
|
+
*
|
|
71
|
+
* ## Responsibilities
|
|
72
|
+
* - Delete feature artifacts (state, plan, logs, evidence)
|
|
73
|
+
* - Remove worktree and branch (optional)
|
|
74
|
+
* - Clean up index references
|
|
75
|
+
* - Release held locks
|
|
76
|
+
* - Remove runtime session assignments
|
|
77
|
+
*
|
|
78
|
+
* ## Dependencies
|
|
79
|
+
* Depends on {@link FeatureDeletionServicePort} for:
|
|
80
|
+
* - File operations
|
|
81
|
+
* - Git operations
|
|
82
|
+
* - Index and run-lease updates
|
|
83
|
+
* - Lock release
|
|
84
|
+
*
|
|
85
|
+
* ## Key Methods
|
|
86
|
+
* - `featureDelete()` - delete feature with configurable cleanup
|
|
87
|
+
*
|
|
88
|
+
* ## Error Conditions
|
|
89
|
+
* - FILE_NOT_FOUND - feature does not exist
|
|
90
|
+
* - RUN_ALREADY_ACTIVE - cannot delete during active run
|
|
91
|
+
* - GIT_ERROR - worktree/branch removal failed
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const deletionService = new FeatureDeletionService(port);
|
|
96
|
+
* await deletionService.featureDelete('my_feature', {
|
|
97
|
+
* dry_run: false,
|
|
98
|
+
* remove_worktree: true,
|
|
99
|
+
* remove_branch: 'safe'
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
68
103
|
export class FeatureDeletionService {
|
|
69
104
|
port;
|
|
70
105
|
constructor(port) {
|
|
71
106
|
this.port = port;
|
|
72
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Deletes feature artifacts with configurable cleanup options.
|
|
110
|
+
*
|
|
111
|
+
* @param featureId - feature identifier
|
|
112
|
+
* @param options - deletion options (dry_run, remove_worktree, remove_branch)
|
|
113
|
+
* @returns Deletion result with cleanup summary
|
|
114
|
+
* @throws FILE_NOT_FOUND - feature does not exist
|
|
115
|
+
* @throws RUN_ALREADY_ACTIVE - cannot delete during active run
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Preview deletion
|
|
120
|
+
* await deletionService.featureDelete('my_feature', { dry_run: true });
|
|
121
|
+
*
|
|
122
|
+
* // Execute deletion with worktree cleanup
|
|
123
|
+
* await deletionService.featureDelete('my_feature', {
|
|
124
|
+
* dry_run: false,
|
|
125
|
+
* remove_worktree: true,
|
|
126
|
+
* remove_branch: 'safe'
|
|
127
|
+
* });
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
73
130
|
async featureDelete(featureId, options = {}) {
|
|
74
131
|
if (!featureId) {
|
|
75
132
|
throw {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-deletion-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/feature-deletion-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feature-deletion-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/feature-deletion-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@ type FeatureContext = {
|
|
|
3
3
|
actorType: string;
|
|
4
4
|
actorId: string;
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* @fileoverview Feature initialization and lifecycle management service.
|
|
8
|
+
*/
|
|
6
9
|
export interface FeatureLifecycleServicePort {
|
|
7
10
|
getRepoRoot(): string;
|
|
8
11
|
getFeaturesDir(): string;
|
|
@@ -42,9 +45,49 @@ export interface FeatureLifecycleServicePort {
|
|
|
42
45
|
};
|
|
43
46
|
}>;
|
|
44
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Manages feature initialization and lifecycle.
|
|
50
|
+
*
|
|
51
|
+
* ## Responsibilities
|
|
52
|
+
* - Discover canonical feature specs
|
|
53
|
+
* - Initialize feature directories and state.md
|
|
54
|
+
* - Create feature branches and worktrees
|
|
55
|
+
* - Validate feature IDs
|
|
56
|
+
* - Handle spec ingestion (canonical and non-canonical)
|
|
57
|
+
*
|
|
58
|
+
* ## Dependencies
|
|
59
|
+
* Depends on {@link FeatureLifecycleServicePort} for:
|
|
60
|
+
* - File operations and path resolution
|
|
61
|
+
* - Index updates
|
|
62
|
+
* - State/plan/evidence access
|
|
63
|
+
*
|
|
64
|
+
* ## Key Methods
|
|
65
|
+
* - `featureDiscoverSpecs()` - discover canonical spec files
|
|
66
|
+
* - `featureInit()` - initialize feature folder and state
|
|
67
|
+
* - `featureGetContext()` - return spec + state + plan + evidence bundle
|
|
68
|
+
* - `featureLogAppend()` - append timestamped log entry
|
|
69
|
+
*
|
|
70
|
+
* ## Error Conditions
|
|
71
|
+
* - FEATURE_ALREADY_EXISTS - feature already initialized
|
|
72
|
+
* - INVALID_FEATURE_ID - feature ID format invalid
|
|
73
|
+
* - FILE_NOT_FOUND - spec or state file missing
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const lifecycleService = new FeatureLifecycleService(port);
|
|
78
|
+
* const specs = await lifecycleService.featureDiscoverSpecs();
|
|
79
|
+
* await lifecycleService.featureInit('my_feature');
|
|
80
|
+
* const context = await lifecycleService.featureGetContext('my_feature');
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
45
83
|
export declare class FeatureLifecycleService {
|
|
46
84
|
private readonly port;
|
|
47
85
|
constructor(port: FeatureLifecycleServicePort);
|
|
86
|
+
/**
|
|
87
|
+
* Discovers canonical feature spec files.
|
|
88
|
+
*
|
|
89
|
+
* @returns Array of discovered specs with feature_id and path
|
|
90
|
+
*/
|
|
48
91
|
featureDiscoverSpecs(): Promise<{
|
|
49
92
|
data: {
|
|
50
93
|
specs: Array<{
|
|
@@ -53,6 +96,13 @@ export declare class FeatureLifecycleService {
|
|
|
53
96
|
}>;
|
|
54
97
|
};
|
|
55
98
|
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Initializes feature folder, state, branch, and worktree.
|
|
101
|
+
*
|
|
102
|
+
* @param featureId - feature identifier
|
|
103
|
+
* @returns Initialization result
|
|
104
|
+
* @throws FEATURE_ALREADY_EXISTS - feature already initialized
|
|
105
|
+
*/
|
|
56
106
|
featureInit(featureId: string | null): Promise<{
|
|
57
107
|
data: {
|
|
58
108
|
feature_id: string | null;
|
|
@@ -60,6 +110,12 @@ export declare class FeatureLifecycleService {
|
|
|
60
110
|
worktree_path: string;
|
|
61
111
|
};
|
|
62
112
|
}>;
|
|
113
|
+
/**
|
|
114
|
+
* Returns complete feature context bundle.
|
|
115
|
+
*
|
|
116
|
+
* @param featureId - feature identifier
|
|
117
|
+
* @returns Context bundle with spec, state, plan, evidence, QA index
|
|
118
|
+
*/
|
|
63
119
|
featureGetContext(featureId: string): Promise<{
|
|
64
120
|
data: {
|
|
65
121
|
feature_id: string;
|
|
@@ -70,6 +126,14 @@ export declare class FeatureLifecycleService {
|
|
|
70
126
|
latest_evidence: unknown;
|
|
71
127
|
};
|
|
72
128
|
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Appends timestamped entry to feature decision log.
|
|
131
|
+
*
|
|
132
|
+
* @param featureId - feature identifier
|
|
133
|
+
* @param note - log entry content
|
|
134
|
+
* @param context - actor context
|
|
135
|
+
* @returns Success response
|
|
136
|
+
*/
|
|
73
137
|
featureLogAppend(featureId: string, note: string, context: FeatureContext): Promise<{
|
|
74
138
|
data: {
|
|
75
139
|
feature_id: string;
|
|
@@ -13,11 +13,51 @@ function normalizeRepoPathForState(repoRoot, absolutePath) {
|
|
|
13
13
|
}
|
|
14
14
|
return relative;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Manages feature initialization and lifecycle.
|
|
18
|
+
*
|
|
19
|
+
* ## Responsibilities
|
|
20
|
+
* - Discover canonical feature specs
|
|
21
|
+
* - Initialize feature directories and state.md
|
|
22
|
+
* - Create feature branches and worktrees
|
|
23
|
+
* - Validate feature IDs
|
|
24
|
+
* - Handle spec ingestion (canonical and non-canonical)
|
|
25
|
+
*
|
|
26
|
+
* ## Dependencies
|
|
27
|
+
* Depends on {@link FeatureLifecycleServicePort} for:
|
|
28
|
+
* - File operations and path resolution
|
|
29
|
+
* - Index updates
|
|
30
|
+
* - State/plan/evidence access
|
|
31
|
+
*
|
|
32
|
+
* ## Key Methods
|
|
33
|
+
* - `featureDiscoverSpecs()` - discover canonical spec files
|
|
34
|
+
* - `featureInit()` - initialize feature folder and state
|
|
35
|
+
* - `featureGetContext()` - return spec + state + plan + evidence bundle
|
|
36
|
+
* - `featureLogAppend()` - append timestamped log entry
|
|
37
|
+
*
|
|
38
|
+
* ## Error Conditions
|
|
39
|
+
* - FEATURE_ALREADY_EXISTS - feature already initialized
|
|
40
|
+
* - INVALID_FEATURE_ID - feature ID format invalid
|
|
41
|
+
* - FILE_NOT_FOUND - spec or state file missing
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const lifecycleService = new FeatureLifecycleService(port);
|
|
46
|
+
* const specs = await lifecycleService.featureDiscoverSpecs();
|
|
47
|
+
* await lifecycleService.featureInit('my_feature');
|
|
48
|
+
* const context = await lifecycleService.featureGetContext('my_feature');
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
16
51
|
export class FeatureLifecycleService {
|
|
17
52
|
port;
|
|
18
53
|
constructor(port) {
|
|
19
54
|
this.port = port;
|
|
20
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Discovers canonical feature spec files.
|
|
58
|
+
*
|
|
59
|
+
* @returns Array of discovered specs with feature_id and path
|
|
60
|
+
*/
|
|
21
61
|
async featureDiscoverSpecs() {
|
|
22
62
|
const discovered = [];
|
|
23
63
|
const repoRoot = this.port.getRepoRoot();
|
|
@@ -41,6 +81,13 @@ export class FeatureLifecycleService {
|
|
|
41
81
|
discovered.sort((a, b) => a.feature_id.localeCompare(b.feature_id));
|
|
42
82
|
return { data: { specs: discovered } };
|
|
43
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Initializes feature folder, state, branch, and worktree.
|
|
86
|
+
*
|
|
87
|
+
* @param featureId - feature identifier
|
|
88
|
+
* @returns Initialization result
|
|
89
|
+
* @throws FEATURE_ALREADY_EXISTS - feature already initialized
|
|
90
|
+
*/
|
|
44
91
|
async featureInit(featureId) {
|
|
45
92
|
if (!featureId) {
|
|
46
93
|
throw {
|
|
@@ -83,6 +130,12 @@ export class FeatureLifecycleService {
|
|
|
83
130
|
},
|
|
84
131
|
};
|
|
85
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Returns complete feature context bundle.
|
|
135
|
+
*
|
|
136
|
+
* @param featureId - feature identifier
|
|
137
|
+
* @returns Context bundle with spec, state, plan, evidence, QA index
|
|
138
|
+
*/
|
|
86
139
|
async featureGetContext(featureId) {
|
|
87
140
|
const state = await this.port.featureStateGet(featureId);
|
|
88
141
|
const plan = await this.port.planGet(featureId);
|
|
@@ -100,6 +153,14 @@ export class FeatureLifecycleService {
|
|
|
100
153
|
},
|
|
101
154
|
};
|
|
102
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Appends timestamped entry to feature decision log.
|
|
158
|
+
*
|
|
159
|
+
* @param featureId - feature identifier
|
|
160
|
+
* @param note - log entry content
|
|
161
|
+
* @param context - actor context
|
|
162
|
+
* @returns Success response
|
|
163
|
+
*/
|
|
103
164
|
async featureLogAppend(featureId, note, context) {
|
|
104
165
|
const repoRoot = this.port.getRepoRoot();
|
|
105
166
|
const logPath = this.port.decisionsPath(featureId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-lifecycle-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/feature-lifecycle-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAUxD,SAAS,YAAY,CAAC,KAAe;IACnC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB,EAAE,YAAoB;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-lifecycle-service.js","sourceRoot":"","sources":["../../../../../apps/control-plane/src/application/services/feature-lifecycle-service.ts"],"names":[],"mappings":"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"}
|