agentic-orchestrator 0.1.13 → 0.1.15
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/AGENTS.md +139 -0
- package/CLAUDE.md +12 -0
- package/agentic/orchestrator/agents.yaml +3 -0
- package/agentic/orchestrator/defaults/policy.defaults.yaml +3 -0
- package/agentic/orchestrator/policy.yaml +3 -0
- package/agentic/orchestrator/schemas/agents.schema.json +15 -0
- package/agentic/orchestrator/schemas/policy.schema.json +14 -0
- package/apps/control-plane/src/cli/cli-argument-parser.ts +7 -0
- package/apps/control-plane/src/cli/help-command-handler.ts +8 -0
- package/apps/control-plane/src/cli/init-command-handler.ts +6 -0
- package/apps/control-plane/src/cli/resume-command-handler.ts +31 -2
- package/apps/control-plane/src/cli/run-command-handler.ts +31 -3
- package/apps/control-plane/src/cli/types.ts +1 -0
- package/apps/control-plane/src/core/error-codes.ts +4 -0
- package/apps/control-plane/src/core/kernel.ts +3 -0
- package/apps/control-plane/src/index.ts +14 -0
- package/apps/control-plane/src/interfaces/cli/bootstrap.ts +25 -3
- package/apps/control-plane/src/providers/api-worker-provider.ts +115 -0
- package/apps/control-plane/src/providers/cli-worker-provider.ts +385 -0
- package/apps/control-plane/src/providers/output-parsers/generic-output-parser.ts +100 -0
- package/apps/control-plane/src/providers/output-parsers/index.ts +11 -0
- package/apps/control-plane/src/providers/output-parsers/types.ts +23 -0
- package/apps/control-plane/src/providers/providers.ts +19 -0
- package/apps/control-plane/src/providers/worker-provider-factory.ts +198 -0
- package/apps/control-plane/src/supervisor/build-wave-executor.ts +140 -3
- package/apps/control-plane/src/supervisor/planning-wave-executor.ts +125 -5
- package/apps/control-plane/src/supervisor/qa-wave-executor.ts +144 -2
- package/apps/control-plane/src/supervisor/runtime.ts +24 -0
- package/apps/control-plane/src/supervisor/worker-decision-loop.ts +134 -12
- package/apps/control-plane/test/cli.unit.spec.ts +36 -0
- package/apps/control-plane/test/dashboard-api.integration.spec.ts +2 -2
- package/apps/control-plane/test/resume-command.spec.ts +31 -1
- package/apps/control-plane/test/worker-decision-loop.spec.ts +3 -0
- package/apps/control-plane/test/worker-execution-policy.spec.ts +284 -0
- package/apps/control-plane/test/worker-provider-adapters.spec.ts +440 -0
- package/apps/control-plane/test/worker-provider-factory.spec.ts +151 -0
- package/config/agentic/orchestrator/agents.yaml +3 -0
- package/dist/apps/control-plane/cli/cli-argument-parser.js +7 -0
- package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
- package/dist/apps/control-plane/cli/help-command-handler.js +8 -0
- package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/init-command-handler.js +6 -0
- package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/resume-command-handler.d.ts +3 -0
- package/dist/apps/control-plane/cli/resume-command-handler.js +18 -2
- package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/run-command-handler.d.ts +3 -1
- package/dist/apps/control-plane/cli/run-command-handler.js +17 -3
- package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
- package/dist/apps/control-plane/cli/types.d.ts +1 -0
- package/dist/apps/control-plane/core/error-codes.d.ts +4 -0
- package/dist/apps/control-plane/core/error-codes.js +4 -0
- package/dist/apps/control-plane/core/error-codes.js.map +1 -1
- package/dist/apps/control-plane/core/kernel.d.ts +3 -0
- package/dist/apps/control-plane/core/kernel.js.map +1 -1
- package/dist/apps/control-plane/index.d.ts +2 -0
- package/dist/apps/control-plane/index.js +1 -0
- package/dist/apps/control-plane/index.js.map +1 -1
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js +14 -2
- package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
- package/dist/apps/control-plane/providers/api-worker-provider.d.ts +31 -0
- package/dist/apps/control-plane/providers/api-worker-provider.js +73 -0
- package/dist/apps/control-plane/providers/api-worker-provider.js.map +1 -0
- package/dist/apps/control-plane/providers/cli-worker-provider.d.ts +46 -0
- package/dist/apps/control-plane/providers/cli-worker-provider.js +274 -0
- package/dist/apps/control-plane/providers/cli-worker-provider.js.map +1 -0
- package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.d.ts +10 -0
- package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js +79 -0
- package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js.map +1 -0
- package/dist/apps/control-plane/providers/output-parsers/index.d.ts +2 -0
- package/dist/apps/control-plane/providers/output-parsers/index.js +2 -0
- package/dist/apps/control-plane/providers/output-parsers/index.js.map +1 -0
- package/dist/apps/control-plane/providers/output-parsers/types.d.ts +21 -0
- package/dist/apps/control-plane/providers/output-parsers/types.js +2 -0
- package/dist/apps/control-plane/providers/output-parsers/types.js.map +1 -0
- package/dist/apps/control-plane/providers/providers.d.ts +4 -0
- package/dist/apps/control-plane/providers/providers.js +15 -0
- package/dist/apps/control-plane/providers/providers.js.map +1 -1
- package/dist/apps/control-plane/providers/worker-provider-factory.d.ts +41 -0
- package/dist/apps/control-plane/providers/worker-provider-factory.js +104 -0
- package/dist/apps/control-plane/providers/worker-provider-factory.js.map +1 -0
- package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +13 -0
- package/dist/apps/control-plane/supervisor/build-wave-executor.js +92 -3
- package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/planning-wave-executor.d.ts +12 -0
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js +83 -5
- package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +13 -0
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js +91 -2
- package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
- package/dist/apps/control-plane/supervisor/runtime.js +19 -0
- package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
- package/dist/apps/control-plane/supervisor/worker-decision-loop.d.ts +10 -0
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js +113 -12
- package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
- package/package.json +2 -2
- package/packages/web-dashboard/next-env.d.ts +2 -1
- package/packages/web-dashboard/src/app/api/features/[id]/checkout/route.ts +4 -3
- package/packages/web-dashboard/src/app/api/features/[id]/diff/route.ts +6 -2
- package/packages/web-dashboard/src/app/api/features/[id]/evidence/[artifact]/route.ts +6 -5
- package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +5 -4
- package/packages/web-dashboard/src/app/api/features/[id]/route.ts +7 -3
- package/packages/web-dashboard/src/lib/aop-client.ts +2 -2
- package/packages/web-dashboard/src/lib/orchestrator-tools.ts +1 -1
- package/packages/web-dashboard/tsconfig.json +1 -0
- package/spec-files/outstanding/agentic_orchestrator_human_input_interaction_protocol_spec.md +590 -0
- package/spec-files/outstanding/agentic_orchestrator_real_worker_provider_execution_spec.md +616 -0
- package/spec-files/progress.md +91 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
1
3
|
import { TOOLS } from '../core/constants.js';
|
|
4
|
+
import { ERROR_CODES } from '../core/error-codes.js';
|
|
2
5
|
function asRecord(value) {
|
|
3
6
|
return value && typeof value === 'object' ? value : {};
|
|
4
7
|
}
|
|
@@ -41,6 +44,9 @@ function makeEmptyResult() {
|
|
|
41
44
|
patchApplied: false,
|
|
42
45
|
noteLogged: false,
|
|
43
46
|
requestHandled: false,
|
|
47
|
+
invalidOutput: false,
|
|
48
|
+
noProgress: false,
|
|
49
|
+
outputTypes: [],
|
|
44
50
|
priorityOrder: [],
|
|
45
51
|
toolResults: [],
|
|
46
52
|
};
|
|
@@ -52,50 +58,102 @@ export class WorkerDecisionLoop {
|
|
|
52
58
|
provider;
|
|
53
59
|
toolCaller;
|
|
54
60
|
activityMonitor;
|
|
61
|
+
repoRoot;
|
|
62
|
+
runId;
|
|
55
63
|
constructor(dependencies) {
|
|
56
64
|
this.provider = dependencies.provider;
|
|
57
65
|
this.toolCaller = dependencies.toolCaller;
|
|
58
66
|
this.activityMonitor = dependencies.activityMonitor;
|
|
67
|
+
this.repoRoot = dependencies.repoRoot ?? null;
|
|
68
|
+
this.runId = dependencies.runId ?? null;
|
|
59
69
|
}
|
|
60
70
|
async execute(input) {
|
|
61
71
|
const result = makeEmptyResult();
|
|
62
72
|
if (typeof this.provider.runWorker !== 'function') {
|
|
63
73
|
return result;
|
|
64
74
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
let workerOutput;
|
|
76
|
+
try {
|
|
77
|
+
workerOutput = await this.provider.runWorker({
|
|
78
|
+
role: input.role,
|
|
79
|
+
feature_id: input.featureId,
|
|
80
|
+
context_bundle: input.contextBundle,
|
|
81
|
+
instructions: input.instructions,
|
|
82
|
+
last_tool_results: input.lastToolResults ?? [],
|
|
83
|
+
runtime_selection: {
|
|
84
|
+
provider: this.provider.selection.provider,
|
|
85
|
+
model: this.provider.selection.model,
|
|
86
|
+
provider_config_ref: this.provider.selection.provider_config_ref,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
const typed = error;
|
|
92
|
+
await this.appendWorkerEvent({
|
|
93
|
+
featureId: input.featureId,
|
|
94
|
+
role: input.role,
|
|
95
|
+
outputTypes: [],
|
|
96
|
+
patchCount: 0,
|
|
97
|
+
planSubmissionCount: 0,
|
|
98
|
+
requestCount: 0,
|
|
99
|
+
noteCount: 0,
|
|
100
|
+
valid: false,
|
|
101
|
+
errorCode: typeof typed.code === 'string' && typed.code.length > 0
|
|
102
|
+
? typed.code
|
|
103
|
+
: ERROR_CODES.PROVIDER_RUNTIME_UNAVAILABLE,
|
|
104
|
+
});
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
77
107
|
const outputs = asOutputs(workerOutput);
|
|
108
|
+
const allowedTypes = new Set(['PLAN_SUBMISSION', 'PATCH', 'NOTE', 'REQUEST']);
|
|
109
|
+
let planSubmissionCount = 0;
|
|
110
|
+
let patchCount = 0;
|
|
111
|
+
let requestCount = 0;
|
|
112
|
+
let noteCount = 0;
|
|
78
113
|
for (const output of outputs) {
|
|
79
114
|
const outputType = asNonEmptyString(output.type)?.toUpperCase();
|
|
80
115
|
if (!outputType) {
|
|
116
|
+
result.invalidOutput = true;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
result.outputTypes.push(outputType);
|
|
120
|
+
if (!allowedTypes.has(outputType)) {
|
|
121
|
+
result.invalidOutput = true;
|
|
81
122
|
continue;
|
|
82
123
|
}
|
|
83
124
|
if (outputType === 'PLAN_SUBMISSION') {
|
|
125
|
+
planSubmissionCount += 1;
|
|
84
126
|
await this.routePlanSubmission(input, output, result);
|
|
85
127
|
continue;
|
|
86
128
|
}
|
|
87
129
|
if (outputType === 'PATCH') {
|
|
130
|
+
patchCount += 1;
|
|
88
131
|
await this.routePatch(input, output, result);
|
|
89
132
|
continue;
|
|
90
133
|
}
|
|
91
134
|
if (outputType === 'NOTE') {
|
|
135
|
+
noteCount += 1;
|
|
92
136
|
await this.routeNote(input.featureId, output, result);
|
|
93
137
|
continue;
|
|
94
138
|
}
|
|
95
139
|
if (outputType === 'REQUEST') {
|
|
140
|
+
requestCount += 1;
|
|
96
141
|
await this.routeRequest(input, output, result);
|
|
97
142
|
}
|
|
98
143
|
}
|
|
144
|
+
const hasProgress = result.planSubmission || result.patchApplied || result.requestHandled;
|
|
145
|
+
result.noProgress = !hasProgress;
|
|
146
|
+
await this.appendWorkerEvent({
|
|
147
|
+
featureId: input.featureId,
|
|
148
|
+
role: input.role,
|
|
149
|
+
outputTypes: result.outputTypes,
|
|
150
|
+
patchCount,
|
|
151
|
+
planSubmissionCount,
|
|
152
|
+
requestCount,
|
|
153
|
+
noteCount,
|
|
154
|
+
valid: !result.invalidOutput,
|
|
155
|
+
errorCode: result.invalidOutput ? ERROR_CODES.PROVIDER_OUTPUT_INVALID : null,
|
|
156
|
+
});
|
|
99
157
|
if (this.activityMonitor) {
|
|
100
158
|
await this.activityMonitor.checkAndNotifyStuck(input.featureId);
|
|
101
159
|
}
|
|
@@ -235,5 +293,48 @@ export class WorkerDecisionLoop {
|
|
|
235
293
|
result.planSubmission = true;
|
|
236
294
|
}
|
|
237
295
|
}
|
|
296
|
+
resolveRunId() {
|
|
297
|
+
if (typeof this.runId === 'function') {
|
|
298
|
+
const value = this.runId();
|
|
299
|
+
return value && value.length > 0 ? value : `run:unknown:${Date.now()}`;
|
|
300
|
+
}
|
|
301
|
+
if (typeof this.runId === 'string' && this.runId.length > 0) {
|
|
302
|
+
return this.runId;
|
|
303
|
+
}
|
|
304
|
+
return `run:unknown:${Date.now()}`;
|
|
305
|
+
}
|
|
306
|
+
sanitizeRunId(runId) {
|
|
307
|
+
return runId.replace(/[^a-zA-Z0-9._:-]/g, '_');
|
|
308
|
+
}
|
|
309
|
+
async appendWorkerEvent(event) {
|
|
310
|
+
if (!this.repoRoot) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
const runId = this.resolveRunId();
|
|
314
|
+
const workerEventsDir = path.join(this.repoRoot, '.aop', 'runtime', 'worker-events');
|
|
315
|
+
const filePath = path.join(workerEventsDir, `${this.sanitizeRunId(runId)}.jsonl`);
|
|
316
|
+
const payload = {
|
|
317
|
+
ts: new Date().toISOString(),
|
|
318
|
+
run_id: runId,
|
|
319
|
+
feature_id: event.featureId,
|
|
320
|
+
role: event.role,
|
|
321
|
+
output_types: event.outputTypes,
|
|
322
|
+
patch_count: event.patchCount,
|
|
323
|
+
plan_submission_count: event.planSubmissionCount,
|
|
324
|
+
request_count: event.requestCount,
|
|
325
|
+
note_count: event.noteCount,
|
|
326
|
+
valid: event.valid,
|
|
327
|
+
error_code: event.errorCode,
|
|
328
|
+
provider: this.provider.selection.provider,
|
|
329
|
+
model: this.provider.selection.model,
|
|
330
|
+
};
|
|
331
|
+
try {
|
|
332
|
+
await fs.mkdir(workerEventsDir, { recursive: true });
|
|
333
|
+
await fs.appendFile(filePath, `${JSON.stringify(payload)}\n`, 'utf8');
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
// Diagnostic logging is best-effort and must not alter wave behavior.
|
|
337
|
+
}
|
|
338
|
+
}
|
|
238
339
|
}
|
|
239
340
|
//# sourceMappingURL=worker-decision-loop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-decision-loop.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/worker-decision-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-decision-loop.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/worker-decision-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA+BrD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,MAA+B;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,eAAe;IACtB,OAAO;QACL,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAyB;IAC/D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;CAClD,CAAC;AAUF,MAAM,OAAO,kBAAkB;IACZ,QAAQ,CAAiB;IACzB,UAAU,CAAuB;IACjC,eAAe,CAAqC;IACpD,QAAQ,CAAgB;IACxB,KAAK,CAAiC;IAEvD,YAAY,YAA4C;QACtD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,YAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,cAAc,EAAE,KAAK,CAAC,aAAa;gBACnC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,iBAAiB,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;gBAC9C,iBAAiB,EAAE;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBAC1C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;oBACpC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB;iBACjE;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,CAAC;gBACb,mBAAmB,EAAE,CAAC;gBACtB,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,KAAK;gBACZ,SAAS,EACP,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBACrD,CAAC,CAAC,KAAK,CAAC,IAAI;oBACZ,CAAC,CAAC,WAAW,CAAC,4BAA4B;aAC/C,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9E,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,IAAI,UAAU,KAAK,iBAAiB,EAAE,CAAC;gBACrC,mBAAmB,IAAI,CAAC,CAAC;gBACzB,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAC3B,UAAU,IAAI,CAAC,CAAC;gBAChB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,SAAS,IAAI,CAAC,CAAC;gBACf,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,YAAY,IAAI,CAAC,CAAC;gBAClB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,cAAc,CAAC;QAC1F,MAAM,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC;QAEjC,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU;YACV,mBAAmB;YACnB,YAAY;YACZ,SAAS;YACT,KAAK,EAAE,CAAC,MAAM,CAAC,aAAa;YAC5B,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI;SAC7E,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,KAA0B,EAC1B,MAAiB,EACjB,MAA4B;QAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,wBAAwB,GAAG,eAAe,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE/E,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;gBAC5E,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAG,wBAAwB,IAAI,eAAe,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;YAC5E,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,qBAAqB,EAAE,mBAAmB;YAC1C,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,KAA0B,EAC1B,MAAiB,EACjB,MAA4B;QAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAAE;YAClF,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,SAAiB,EACjB,MAAiB,EACjB,MAA4B;QAE5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,EAAE;gBACxF,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,4EAA4E;QAC9E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,KAA0B,EAC1B,MAAiB,EACjB,MAA4B;QAE5B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;QACvF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;gBACpC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE;gBACnF,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,SAAS;aACV,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE;gBACnF,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,SAAS;aACV,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,cAAc,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAAE;gBACrF,UAAU,EAAE,KAAK,CAAC,SAAS;aAC5B,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,wBAAwB,GAAG,eAAe,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAChF,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;oBAC5E,UAAU,EAAE,KAAK,CAAC,SAAS;oBAC3B,SAAS,EAAE,QAAQ;iBACpB,CAAC,CAAC;gBACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;gBAC5E,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,qBAAqB,EAAE,wBAAwB,IAAI,eAAe;gBAClE,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACzE,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,OAAO,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACrC,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAU/B;QACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,KAAK,CAAC,WAAW;YAC/B,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,qBAAqB,EAAE,KAAK,CAAC,mBAAmB;YAChD,aAAa,EAAE,KAAK,CAAC,YAAY;YACjC,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;YAC1C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;SACrC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-orchestrator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"private": false,
|
|
5
5
|
"workspaces": [
|
|
6
6
|
"packages/*"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"test": "npm run nx -- run control-plane:test",
|
|
13
13
|
"run": "tsx apps/control-plane/src/cli/aop.ts",
|
|
14
14
|
"build": "npm run lint && npm run nx -- run control-plane:build",
|
|
15
|
-
"verify": "npm run typecheck && npm run validate:all && npm run lint:fix && npm run format && npm run test && npm run nx -- run control-plane:build",
|
|
15
|
+
"verify": "npm run typecheck && npm run validate:all && npm run lint:fix && npm run format && npm run test && npm run nx -- run control-plane:build && npm run dashboard:build",
|
|
16
16
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
17
17
|
"validate:mcp-contracts": "tsx apps/control-plane/scripts/validate-mcp-contracts.ts",
|
|
18
18
|
"validate:docker-mcp": "node apps/control-plane/scripts/validate-docker-mcp-contract.mjs",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="next" />
|
|
2
2
|
/// <reference types="next/image-types/global" />
|
|
3
|
+
import "./.next/types/routes.d.ts";
|
|
3
4
|
|
|
4
5
|
// NOTE: This file should not be edited
|
|
5
|
-
// see https://nextjs.org/docs/app/
|
|
6
|
+
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
|
|
@@ -293,15 +293,16 @@ async function restoreCheckout(repoRoot: string, featureId: string): Promise<Res
|
|
|
293
293
|
|
|
294
294
|
export async function POST(
|
|
295
295
|
req: Request,
|
|
296
|
-
{ params }: { params: { id: string } },
|
|
296
|
+
{ params }: { params: Promise<{ id: string }> },
|
|
297
297
|
): Promise<Response> {
|
|
298
|
+
const { id } = await params;
|
|
298
299
|
const url = new URL(req.url);
|
|
299
300
|
const project = url.searchParams.get('project');
|
|
300
301
|
const repoRoot = await resolveProjectRoot(project);
|
|
301
302
|
const body = (await req.json()) as CheckoutRequest;
|
|
302
303
|
const action = body.action ?? 'checkout';
|
|
303
304
|
if (action === 'restore') {
|
|
304
|
-
return await restoreCheckout(repoRoot,
|
|
305
|
+
return await restoreCheckout(repoRoot, id);
|
|
305
306
|
}
|
|
306
|
-
return await checkoutFeature(repoRoot,
|
|
307
|
+
return await checkoutFeature(repoRoot, id, body.stash_changes ?? true);
|
|
307
308
|
}
|
|
@@ -2,9 +2,13 @@ import { readFeatureDiff, resolveProjectRoot } from '@/lib/aop-client.js';
|
|
|
2
2
|
|
|
3
3
|
export const dynamic = 'force-dynamic';
|
|
4
4
|
|
|
5
|
-
export async function GET(
|
|
5
|
+
export async function GET(
|
|
6
|
+
req: Request,
|
|
7
|
+
{ params }: { params: Promise<{ id: string }> },
|
|
8
|
+
): Promise<Response> {
|
|
9
|
+
const { id } = await params;
|
|
6
10
|
const project = new URL(req.url).searchParams.get('project');
|
|
7
11
|
const repoRoot = await resolveProjectRoot(project);
|
|
8
|
-
const diff = await readFeatureDiff(
|
|
12
|
+
const diff = await readFeatureDiff(id, repoRoot);
|
|
9
13
|
return new Response(diff, { headers: { 'Content-Type': 'text/plain' } });
|
|
10
14
|
}
|
|
@@ -4,16 +4,17 @@ export const dynamic = 'force-dynamic';
|
|
|
4
4
|
|
|
5
5
|
export async function GET(
|
|
6
6
|
req: Request,
|
|
7
|
-
{ params }: { params: { id: string; artifact: string } },
|
|
7
|
+
{ params }: { params: Promise<{ id: string; artifact: string }> },
|
|
8
8
|
): Promise<Response> {
|
|
9
|
+
const { id, artifact } = await params;
|
|
9
10
|
const project = new URL(req.url).searchParams.get('project');
|
|
10
11
|
const repoRoot = await resolveProjectRoot(project);
|
|
11
|
-
const content = await readEvidenceArtifact(
|
|
12
|
+
const content = await readEvidenceArtifact(id, artifact, repoRoot);
|
|
12
13
|
if (content == null) {
|
|
13
14
|
return Response.json(
|
|
14
15
|
{
|
|
15
16
|
ok: false,
|
|
16
|
-
error: { code: 'artifact_not_found', message: `Artifact not found: ${
|
|
17
|
+
error: { code: 'artifact_not_found', message: `Artifact not found: ${artifact}` },
|
|
17
18
|
},
|
|
18
19
|
{ status: 404 },
|
|
19
20
|
);
|
|
@@ -21,8 +22,8 @@ export async function GET(
|
|
|
21
22
|
|
|
22
23
|
return new Response(content, {
|
|
23
24
|
headers: {
|
|
24
|
-
'Content-Type':
|
|
25
|
-
'Content-Disposition': `attachment; filename="${
|
|
25
|
+
'Content-Type': artifact.endsWith('.json') ? 'application/json' : 'text/plain',
|
|
26
|
+
'Content-Disposition': `attachment; filename="${artifact}"`,
|
|
26
27
|
},
|
|
27
28
|
});
|
|
28
29
|
}
|
|
@@ -18,8 +18,9 @@ interface ReviewRequest {
|
|
|
18
18
|
|
|
19
19
|
export async function POST(
|
|
20
20
|
req: Request,
|
|
21
|
-
{ params }: { params: { id: string } },
|
|
21
|
+
{ params }: { params: Promise<{ id: string }> },
|
|
22
22
|
): Promise<Response> {
|
|
23
|
+
const { id } = await params;
|
|
23
24
|
const project = new URL(req.url).searchParams.get('project');
|
|
24
25
|
const repoRoot = await resolveProjectRoot(project);
|
|
25
26
|
const body = (await req.json()) as ReviewRequest;
|
|
@@ -52,7 +53,7 @@ export async function POST(
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
const response = await approveFeatureReview(
|
|
55
|
-
|
|
56
|
+
id,
|
|
56
57
|
body.approval_token.trim(),
|
|
57
58
|
body.merge_strategy ?? 'merge_commit',
|
|
58
59
|
body.commit_message,
|
|
@@ -72,10 +73,10 @@ export async function POST(
|
|
|
72
73
|
{ status: 400 },
|
|
73
74
|
);
|
|
74
75
|
}
|
|
75
|
-
const response = await denyFeatureReview(
|
|
76
|
+
const response = await denyFeatureReview(id, reason, repoRoot);
|
|
76
77
|
return Response.json(response, { status: response.ok ? 200 : 409 });
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
const response = await requestFeatureChanges(
|
|
80
|
+
const response = await requestFeatureChanges(id, body.message ?? '', repoRoot);
|
|
80
81
|
return Response.json(response, { status: response.ok ? 200 : 409 });
|
|
81
82
|
}
|
|
@@ -2,15 +2,19 @@ import { readFeatureDetail, resolveProjectRoot } from '@/lib/aop-client.js';
|
|
|
2
2
|
|
|
3
3
|
export const dynamic = 'force-dynamic';
|
|
4
4
|
|
|
5
|
-
export async function GET(
|
|
5
|
+
export async function GET(
|
|
6
|
+
req: Request,
|
|
7
|
+
{ params }: { params: Promise<{ id: string }> },
|
|
8
|
+
): Promise<Response> {
|
|
9
|
+
const { id } = await params;
|
|
6
10
|
const project = new URL(req.url).searchParams.get('project');
|
|
7
11
|
const repoRoot = await resolveProjectRoot(project);
|
|
8
|
-
const detail = await readFeatureDetail(
|
|
12
|
+
const detail = await readFeatureDetail(id, repoRoot);
|
|
9
13
|
if (!detail) {
|
|
10
14
|
return Response.json(
|
|
11
15
|
{
|
|
12
16
|
ok: false,
|
|
13
|
-
error: { code: 'feature_not_found', message: `Feature ${
|
|
17
|
+
error: { code: 'feature_not_found', message: `Feature ${id} not found` },
|
|
14
18
|
},
|
|
15
19
|
{ status: 404 },
|
|
16
20
|
);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import YAML from 'yaml';
|
|
4
|
-
import { getProjectByName, readMultiProjectConfig } from '
|
|
4
|
+
import { getProjectByName, readMultiProjectConfig } from '@/lib/multi-project-config.js';
|
|
5
5
|
import type {
|
|
6
6
|
DashboardStatusPayload,
|
|
7
7
|
EvidenceArtifact,
|
|
8
8
|
FeatureDetail,
|
|
9
9
|
FeaturesIndex,
|
|
10
10
|
FeatureSummary,
|
|
11
|
-
} from '
|
|
11
|
+
} from '@/lib/types.js';
|
|
12
12
|
|
|
13
13
|
const AOP_ROOT = process.env.AOP_ROOT ?? process.cwd();
|
|
14
14
|
|