agentic-orchestrator 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/apps/control-plane/src/cli/dashboard-command-handler.ts +42 -5
  2. package/apps/control-plane/src/cli/retry-command-handler.ts +0 -1
  3. package/apps/control-plane/src/core/tool-caller.ts +18 -3
  4. package/apps/control-plane/src/supervisor/build-wave-executor.ts +21 -4
  5. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +21 -4
  6. package/apps/control-plane/src/supervisor/runtime.ts +9 -4
  7. package/apps/control-plane/src/supervisor/types.ts +1 -0
  8. package/apps/control-plane/test/cli-helpers.spec.ts +4 -0
  9. package/apps/control-plane/test/dashboard-command.spec.ts +36 -0
  10. package/apps/control-plane/test/supervisor-collaborators.spec.ts +86 -0
  11. package/apps/control-plane/test/supervisor.unit.spec.ts +1 -1
  12. package/config/agentic/orchestrator/agents.yaml +0 -1
  13. package/dist/apps/control-plane/cli/dashboard-command-handler.js +32 -5
  14. package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
  15. package/dist/apps/control-plane/cli/retry-command-handler.js +0 -1
  16. package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
  17. package/dist/apps/control-plane/core/tool-caller.d.ts +11 -1
  18. package/dist/apps/control-plane/supervisor/build-wave-executor.js +20 -4
  19. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  20. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +20 -4
  21. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  22. package/dist/apps/control-plane/supervisor/runtime.d.ts +2 -2
  23. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  24. package/dist/apps/control-plane/supervisor/types.d.ts +1 -1
  25. package/dist/apps/control-plane/supervisor/types.js.map +1 -1
  26. package/package.json +1 -1
  27. package/spec-files/progress.md +19 -0
@@ -1,10 +1,46 @@
1
1
  import { execFile, spawn } from 'node:child_process';
2
+ import fs from 'node:fs/promises';
2
3
  import path from 'node:path';
3
4
  import { fileURLToPath } from 'node:url';
4
5
  import { promisify } from 'node:util';
5
6
 
6
7
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
8
  const execFileAsync = promisify(execFile);
9
+ const DASHBOARD_WORKSPACE = '@aop/web-dashboard';
10
+
11
+ async function hasDashboardCli(repoRoot: string): Promise<boolean> {
12
+ const candidates = [
13
+ path.join(repoRoot, 'node_modules', '.bin', 'next'),
14
+ path.join(repoRoot, 'packages', 'web-dashboard', 'node_modules', '.bin', 'next'),
15
+ ];
16
+ for (const candidate of candidates) {
17
+ try {
18
+ await fs.access(candidate);
19
+ return true;
20
+ } catch {
21
+ // continue
22
+ }
23
+ }
24
+ return false;
25
+ }
26
+
27
+ async function ensureDashboardDependencies(
28
+ repoRoot: string,
29
+ env: NodeJS.ProcessEnv,
30
+ ): Promise<void> {
31
+ if (await hasDashboardCli(repoRoot)) {
32
+ return;
33
+ }
34
+
35
+ await execFileAsync(
36
+ 'npm',
37
+ ['install', '--workspace', DASHBOARD_WORKSPACE, '--no-audit', '--no-fund'],
38
+ {
39
+ cwd: repoRoot,
40
+ env,
41
+ },
42
+ );
43
+ }
8
44
 
9
45
  export class DashboardCommandHandler {
10
46
  async execute(options: {
@@ -14,7 +50,6 @@ export class DashboardCommandHandler {
14
50
  }): Promise<Record<string, unknown>> {
15
51
  const port = options.port ?? 3000;
16
52
  const repoRoot = path.resolve(__dirname, '../../../../');
17
- const dashboardWorkspace = '@aop/web-dashboard';
18
53
  const devMode = options.dev === true;
19
54
  const foreground = options.foreground === true || devMode;
20
55
 
@@ -25,8 +60,10 @@ export class DashboardCommandHandler {
25
60
  AOP_ROOT: process.cwd(),
26
61
  };
27
62
 
63
+ await ensureDashboardDependencies(repoRoot, env);
64
+
28
65
  if (devMode) {
29
- const child = spawn('npm', ['run', '--workspace', dashboardWorkspace, 'dev'], {
66
+ const child = spawn('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'dev'], {
30
67
  cwd: repoRoot,
31
68
  env,
32
69
  stdio: 'inherit',
@@ -38,13 +75,13 @@ export class DashboardCommandHandler {
38
75
  return { ok: true, data: { message: 'Dashboard stopped', port, mode: 'dev' } };
39
76
  }
40
77
 
41
- await execFileAsync('npm', ['run', '--workspace', dashboardWorkspace, 'build'], {
78
+ await execFileAsync('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'build'], {
42
79
  cwd: repoRoot,
43
80
  env,
44
81
  });
45
82
 
46
83
  if (foreground) {
47
- const child = spawn('npm', ['run', '--workspace', dashboardWorkspace, 'start'], {
84
+ const child = spawn('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'start'], {
48
85
  cwd: repoRoot,
49
86
  env,
50
87
  stdio: 'inherit',
@@ -56,7 +93,7 @@ export class DashboardCommandHandler {
56
93
  return { ok: true, data: { message: 'Dashboard stopped', port, mode: 'production' } };
57
94
  }
58
95
 
59
- const child = spawn('npm', ['run', '--workspace', dashboardWorkspace, 'start'], {
96
+ const child = spawn('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'start'], {
60
97
  cwd: repoRoot,
61
98
  env,
62
99
  detached: true,
@@ -113,7 +113,6 @@ export class RetryCommandHandler {
113
113
 
114
114
  const gate = await callCliTool(this.toolClient, this.runId, TOOLS.GATES_RUN, {
115
115
  feature_id: featureId,
116
- profile: null,
117
116
  mode: inferredMode,
118
117
  });
119
118
  const retryExecuted = true;
@@ -1,10 +1,25 @@
1
1
  export type RuntimeRole = 'orchestrator' | 'planner' | 'builder' | 'qa';
2
2
 
3
+ export interface GatesRunToolArgs {
4
+ feature_id: string;
5
+ mode: string;
6
+ profile?: string;
7
+ operation_id?: string;
8
+ }
9
+
10
+ export interface ToolArgsByName {
11
+ 'gates.run': GatesRunToolArgs;
12
+ }
13
+
14
+ export type ToolArgs<TToolName extends string> = TToolName extends keyof ToolArgsByName
15
+ ? ToolArgsByName[TToolName]
16
+ : Record<string, unknown>;
17
+
3
18
  export interface ToolCaller {
4
- callTool<TData = Record<string, unknown>>(
19
+ callTool<TData = Record<string, unknown>, TToolName extends string = string>(
5
20
  role: RuntimeRole,
6
- toolName: string,
7
- args: Record<string, unknown>,
21
+ toolName: TToolName,
22
+ args: ToolArgs<TToolName>,
8
23
  ): Promise<{ ok: true; data: TData }>;
9
24
  }
10
25
 
@@ -17,6 +17,17 @@ interface BuildWaveExecutorDependencies {
17
17
  reactionsService?: ReactionsService;
18
18
  }
19
19
 
20
+ function isRetryableToolError(error: unknown): boolean {
21
+ if (!error || typeof error !== 'object') {
22
+ return false;
23
+ }
24
+ const details = (error as { details?: unknown }).details;
25
+ if (!details || typeof details !== 'object') {
26
+ return false;
27
+ }
28
+ return (details as { retryable?: unknown }).retryable === true;
29
+ }
30
+
20
31
  export class BuildWaveExecutor {
21
32
  private readonly toolCaller: SupervisorToolCaller;
22
33
  private readonly workerDecisionRunner: WorkerDecisionRunner;
@@ -72,6 +83,7 @@ export class BuildWaveExecutor {
72
83
  let gateExitCode: number;
73
84
  let gateEvidencePath = '';
74
85
  let gateLogs = '';
86
+ let gateRetryEligible: boolean;
75
87
  const failureHistory: GateRepairContext['failureHistory'] = [];
76
88
 
77
89
  try {
@@ -80,18 +92,19 @@ export class BuildWaveExecutor {
80
92
  TOOLS.GATES_RUN,
81
93
  {
82
94
  feature_id: featureId,
83
- profile: null,
84
95
  mode: 'fast',
85
96
  },
86
97
  );
87
98
  gateOverall = gateResult.data.overall ?? GATE_RESULT.PASS;
88
99
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
89
100
  gateEvidencePath = gateResult.data.evidence_path ?? '';
101
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
90
102
  } catch (error) {
91
103
  gateOverall = GATE_RESULT.FAIL;
92
104
  gateExitCode = 1;
93
105
  const typed = error as { message?: string };
94
106
  gateLogs = typed.message ?? '';
107
+ gateRetryEligible = isRetryableToolError(error);
95
108
  }
96
109
 
97
110
  if (gateOverall === GATE_RESULT.FAIL) {
@@ -106,13 +119,13 @@ export class BuildWaveExecutor {
106
119
  });
107
120
  }
108
121
 
109
- if (this.reactionsService && gateOverall === GATE_RESULT.FAIL) {
122
+ if (this.reactionsService && gateOverall === GATE_RESULT.FAIL && gateRetryEligible) {
110
123
  const context = await this.toolCaller.callTool('builder', TOOLS.FEATURE_GET_CONTEXT, {
111
124
  feature_id: featureId,
112
125
  });
113
126
  let retryCount = initialRetryCount;
114
127
  const retryDelayMs = this.reactionsService.retryDelayMs();
115
- while (this.reactionsService.shouldRetry(featureId, retryCount)) {
128
+ while (gateRetryEligible && this.reactionsService.shouldRetry(featureId, retryCount)) {
116
129
  if (typeof this.reactionsService.waitBeforeRetry === 'function') {
117
130
  await this.reactionsService.waitBeforeRetry();
118
131
  }
@@ -140,7 +153,6 @@ export class BuildWaveExecutor {
140
153
  TOOLS.GATES_RUN,
141
154
  {
142
155
  feature_id: featureId,
143
- profile: null,
144
156
  mode: 'fast',
145
157
  },
146
158
  );
@@ -148,11 +160,13 @@ export class BuildWaveExecutor {
148
160
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
149
161
  gateEvidencePath = retryResult.data.evidence_path ?? gateEvidencePath;
150
162
  gateLogs = '';
163
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
151
164
  } catch (error) {
152
165
  gateOverall = GATE_RESULT.FAIL;
153
166
  gateExitCode = 1;
154
167
  const typed = error as { message?: string };
155
168
  gateLogs = typed.message ?? '';
169
+ gateRetryEligible = isRetryableToolError(error);
156
170
  }
157
171
 
158
172
  retryCount += 1;
@@ -173,6 +187,9 @@ export class BuildWaveExecutor {
173
187
  if (gateOverall === GATE_RESULT.PASS) {
174
188
  break;
175
189
  }
190
+ if (!gateRetryEligible) {
191
+ break;
192
+ }
176
193
  }
177
194
 
178
195
  if (gateOverall === GATE_RESULT.FAIL && this.reactionsService.shouldEscalate(retryCount)) {
@@ -31,6 +31,17 @@ interface QaWaveExecutorDependencies {
31
31
  reactionsService?: ReactionsService;
32
32
  }
33
33
 
34
+ function isRetryableToolError(error: unknown): boolean {
35
+ if (!error || typeof error !== 'object') {
36
+ return false;
37
+ }
38
+ const details = (error as { details?: unknown }).details;
39
+ if (!details || typeof details !== 'object') {
40
+ return false;
41
+ }
42
+ return (details as { retryable?: unknown }).retryable === true;
43
+ }
44
+
34
45
  export class QaWaveExecutor {
35
46
  private readonly kernel: FeatureOrchestrationPort;
36
47
  private readonly provider: WorkerProvider;
@@ -93,22 +104,24 @@ export class QaWaveExecutor {
93
104
  let gateExitCode: number;
94
105
  let gateEvidencePath = '';
95
106
  let gateLogs = '';
107
+ let gateRetryEligible: boolean;
96
108
  const failureHistory: GateRepairContext['failureHistory'] = [];
97
109
 
98
110
  try {
99
111
  const gateResult = await this.toolCaller.callTool<GatesRunData>('qa', TOOLS.GATES_RUN, {
100
112
  feature_id: featureId,
101
- profile: null,
102
113
  mode: 'full',
103
114
  });
104
115
  gateOverall = gateResult.data.overall ?? GATE_RESULT.PASS;
105
116
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
106
117
  gateEvidencePath = gateResult.data.evidence_path ?? '';
118
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
107
119
  } catch (error) {
108
120
  gateOverall = GATE_RESULT.FAIL;
109
121
  gateExitCode = 1;
110
122
  const typed = error as { message?: string };
111
123
  gateLogs = typed.message ?? '';
124
+ gateRetryEligible = isRetryableToolError(error);
112
125
  }
113
126
 
114
127
  if (gateOverall === GATE_RESULT.FAIL) {
@@ -123,10 +136,10 @@ export class QaWaveExecutor {
123
136
  });
124
137
  }
125
138
 
126
- if (this.reactionsService && gateOverall === GATE_RESULT.FAIL) {
139
+ if (this.reactionsService && gateOverall === GATE_RESULT.FAIL && gateRetryEligible) {
127
140
  let retryCount = initialRetryCount;
128
141
  const retryDelayMs = this.reactionsService.retryDelayMs();
129
- while (this.reactionsService.shouldRetry(featureId, retryCount)) {
142
+ while (gateRetryEligible && this.reactionsService.shouldRetry(featureId, retryCount)) {
130
143
  if (typeof this.reactionsService.waitBeforeRetry === 'function') {
131
144
  await this.reactionsService.waitBeforeRetry();
132
145
  }
@@ -154,7 +167,6 @@ export class QaWaveExecutor {
154
167
  TOOLS.GATES_RUN,
155
168
  {
156
169
  feature_id: featureId,
157
- profile: null,
158
170
  mode: 'full',
159
171
  },
160
172
  );
@@ -162,11 +174,13 @@ export class QaWaveExecutor {
162
174
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
163
175
  gateEvidencePath = retryResult.data.evidence_path ?? gateEvidencePath;
164
176
  gateLogs = '';
177
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
165
178
  } catch (error) {
166
179
  gateOverall = GATE_RESULT.FAIL;
167
180
  gateExitCode = 1;
168
181
  const typed = error as { message?: string };
169
182
  gateLogs = typed.message ?? '';
183
+ gateRetryEligible = isRetryableToolError(error);
170
184
  }
171
185
 
172
186
  retryCount += 1;
@@ -187,6 +201,9 @@ export class QaWaveExecutor {
187
201
  if (gateOverall === GATE_RESULT.PASS) {
188
202
  break;
189
203
  }
204
+ if (!gateRetryEligible) {
205
+ break;
206
+ }
190
207
  }
191
208
 
192
209
  if (gateOverall === GATE_RESULT.FAIL && this.reactionsService.shouldEscalate(retryCount)) {
@@ -32,6 +32,7 @@ import type {
32
32
  InitialPlanGenerator,
33
33
  PromptBundle,
34
34
  RuntimeRole,
35
+ ToolArgs,
35
36
  SupervisorKernelPort,
36
37
  SupervisorOptions,
37
38
  SupervisorRuntimeState,
@@ -472,12 +473,16 @@ export class SupervisorRuntime
472
473
  }
473
474
  }
474
475
 
475
- async callTool<TData = Record<string, unknown>>(
476
+ async callTool<TData = Record<string, unknown>, TToolName extends string = string>(
476
477
  role: RuntimeRole,
477
- toolName: string,
478
- args: Record<string, unknown>,
478
+ toolName: TToolName,
479
+ args: ToolArgs<TToolName>,
479
480
  ): Promise<{ ok: true; data: TData }> {
480
- const payload = withOperationIdIfRequired(toolName, args, createOperationId);
481
+ const payload = withOperationIdIfRequired(
482
+ toolName,
483
+ args as Record<string, unknown>,
484
+ createOperationId,
485
+ );
481
486
  const roleSessionId = this.resolveRoleSessionId(role, payload);
482
487
 
483
488
  const response = await this.toolClient.call(toolName, payload, {
@@ -5,6 +5,7 @@ export type {
5
5
  FeatureStateFrontMatter,
6
6
  FeatureStatePayload,
7
7
  RuntimeRole,
8
+ ToolArgs,
8
9
  ToolCaller as SupervisorToolCaller,
9
10
  } from '../core/tool-caller.js';
10
11
 
@@ -221,6 +221,8 @@ describe('RetryCommandHandler', () => {
221
221
  expect.objectContaining({ feature_id: 'feature_abc', mode: 'full' }),
222
222
  expect.any(Object),
223
223
  );
224
+ const gatesRunCall = callMock.mock.calls.find((call) => call[0] === TOOLS.GATES_RUN);
225
+ expect(gatesRunCall?.[1]).not.toHaveProperty('profile');
224
226
  });
225
227
 
226
228
  it('GIVEN_valid_feature_id_with_force_WHEN_execute_called_THEN_gets_current_state_and_patches_retry_count', async () => {
@@ -259,6 +261,8 @@ describe('RetryCommandHandler', () => {
259
261
  expect.objectContaining({ feature_id: 'feature_abc' }),
260
262
  expect.any(Object),
261
263
  );
264
+ const gatesRunCall = callMock.mock.calls.find((call) => call[0] === TOOLS.GATES_RUN);
265
+ expect(gatesRunCall?.[1]).not.toHaveProperty('profile');
262
266
  });
263
267
  });
264
268
 
@@ -2,6 +2,12 @@ import { describe, expect, it, vi, afterEach } from 'vitest';
2
2
  import { DashboardCommandHandler } from '../src/cli/dashboard-command-handler.js';
3
3
  import type { ChildProcess } from 'node:child_process';
4
4
 
5
+ vi.mock('node:fs/promises', () => ({
6
+ default: {
7
+ access: vi.fn(async () => undefined),
8
+ },
9
+ }));
10
+
5
11
  vi.mock('node:child_process', () => ({
6
12
  execFile: vi.fn(),
7
13
  spawn: vi.fn(),
@@ -104,4 +110,34 @@ describe('DashboardCommandHandler', () => {
104
110
  );
105
111
  expect(result).toMatchObject({ ok: true, data: { mode: 'dev' } });
106
112
  });
113
+
114
+ it('GIVEN_dashboard_cli_missing_WHEN_dashboard_command_THEN_installs_workspace_dependencies_before_build', async () => {
115
+ const { default: fs } = await import('node:fs/promises');
116
+ const { execFile, spawn } = await import('node:child_process');
117
+ const mockChild = { unref: vi.fn(), on: vi.fn() } as unknown as ChildProcess;
118
+
119
+ vi.mocked(fs.access).mockRejectedValue(new Error('missing'));
120
+ vi.mocked(execFile).mockImplementation((_file, _args, _opts, cb) => {
121
+ cb?.(null, '', '');
122
+ return {} as never;
123
+ });
124
+ vi.mocked(spawn).mockReturnValue(mockChild);
125
+
126
+ const handler = new DashboardCommandHandler();
127
+ const result = await handler.execute({ foreground: false });
128
+
129
+ expect(execFile).toHaveBeenCalledWith(
130
+ 'npm',
131
+ ['install', '--workspace', '@aop/web-dashboard', '--no-audit', '--no-fund'],
132
+ expect.any(Object),
133
+ expect.any(Function),
134
+ );
135
+ expect(execFile).toHaveBeenCalledWith(
136
+ 'npm',
137
+ ['run', '--workspace', '@aop/web-dashboard', 'build'],
138
+ expect.any(Object),
139
+ expect.any(Function),
140
+ );
141
+ expect(result).toMatchObject({ ok: true, data: { built: true } });
142
+ });
107
143
  });
@@ -124,6 +124,48 @@ describe('QaWaveExecutor collaborator branches', () => {
124
124
  expect(provider.createSession).toHaveBeenCalledWith('qa', 'feature_x', 'qa-prompt');
125
125
  });
126
126
 
127
+ it('GIVEN_non_retryable_gate_error_WHEN_qa_wave_runs_THEN_skips_retry_loop', async () => {
128
+ const { state, provider, kernel, promptProvider, featureClusterPatcher } = makeBaseDeps();
129
+ const nonRetryableError = new Error('tool_input_schema_validation_failed') as Error & {
130
+ details?: { retryable?: boolean };
131
+ };
132
+ nonRetryableError.details = { retryable: false };
133
+ const toolCaller = {
134
+ callTool: vi.fn(async (_role: string, toolName: string) => {
135
+ if (toolName === TOOLS.FEATURE_STATE_GET) {
136
+ return { ok: true, data: { front_matter: { status: STATUS.QA, gate_retry_count: 0 } } };
137
+ }
138
+ if (toolName === TOOLS.GATES_RUN) {
139
+ throw nonRetryableError;
140
+ }
141
+ return { ok: true, data: {} };
142
+ }),
143
+ };
144
+ const reactionsService = {
145
+ retryDelayMs: vi.fn(() => 5),
146
+ shouldRetry: vi.fn().mockReturnValue(true),
147
+ buildRepairPrompt: vi.fn(() => 'repair prompt'),
148
+ recordRetry: vi.fn(async () => undefined),
149
+ shouldEscalate: vi.fn(() => false),
150
+ notifyEscalation: vi.fn(async () => undefined),
151
+ };
152
+
153
+ const executor = new QaWaveExecutor({
154
+ kernel: kernel as never,
155
+ provider: provider as never,
156
+ toolCaller: toolCaller as never,
157
+ promptProvider: promptProvider as never,
158
+ featureClusterPatcher: featureClusterPatcher as never,
159
+ state: state as never,
160
+ reactionsService: reactionsService as never,
161
+ });
162
+
163
+ await executor.run(['feature_x'], 1);
164
+
165
+ expect(reactionsService.shouldRetry).not.toHaveBeenCalled();
166
+ expect(reactionsService.recordRetry).not.toHaveBeenCalled();
167
+ });
168
+
127
169
  it('GIVEN_reactions_service_with_retries_WHEN_gate_fails_initially_THEN_retries_until_pass', async () => {
128
170
  const { state, provider, kernel, promptProvider, featureClusterPatcher } = makeBaseDeps();
129
171
  let gateCallCount = 0;
@@ -552,6 +594,50 @@ describe('BuildWaveExecutor catch and reactions branches', () => {
552
594
  expect(reactionsService.shouldEscalate).not.toHaveBeenCalled();
553
595
  expect(reactionsService.notifyEscalation).not.toHaveBeenCalled();
554
596
  });
597
+
598
+ it('GIVEN_non_retryable_gate_error_WHEN_build_wave_runs_THEN_skips_retry_loop', async () => {
599
+ const { workerDecisionRunner } = makeBaseBuildDeps();
600
+ const nonRetryableError = new Error('tool_input_schema_validation_failed') as Error & {
601
+ details?: { retryable?: boolean };
602
+ };
603
+ nonRetryableError.details = { retryable: false };
604
+ const toolCaller = {
605
+ callTool: vi.fn(async (_role: string, toolName: string) => {
606
+ if (toolName === TOOLS.FEATURE_STATE_GET) {
607
+ return {
608
+ ok: true,
609
+ data: { front_matter: { status: STATUS.BUILDING, gate_retry_count: 0 } },
610
+ };
611
+ }
612
+ if (toolName === TOOLS.FEATURE_GET_CONTEXT) {
613
+ return { ok: true, data: {} };
614
+ }
615
+ if (toolName === TOOLS.GATES_RUN) {
616
+ throw nonRetryableError;
617
+ }
618
+ return { ok: true, data: {} };
619
+ }),
620
+ };
621
+ const reactionsService = {
622
+ retryDelayMs: vi.fn(() => 5),
623
+ shouldRetry: vi.fn().mockReturnValue(true),
624
+ buildRepairPrompt: vi.fn(() => 'repair prompt'),
625
+ recordRetry: vi.fn(async () => undefined),
626
+ shouldEscalate: vi.fn(() => false),
627
+ notifyEscalation: vi.fn(async () => undefined),
628
+ };
629
+
630
+ const executor = new BuildWaveExecutor({
631
+ toolCaller: toolCaller as never,
632
+ workerDecisionRunner: workerDecisionRunner as never,
633
+ reactionsService: reactionsService as never,
634
+ });
635
+
636
+ await executor.run(['feature_build'], 1);
637
+
638
+ expect(reactionsService.shouldRetry).not.toHaveBeenCalled();
639
+ expect(reactionsService.recordRetry).not.toHaveBeenCalled();
640
+ });
555
641
  });
556
642
 
557
643
  describe('PromptBundleLoader behavior', () => {
@@ -441,7 +441,7 @@ describe('SupervisorRuntime unit behavior', () => {
441
441
  });
442
442
 
443
443
  await expect(
444
- runtime.callTool('builder', TOOLS.GATES_RUN, { feature_id: 'feature_a' }),
444
+ runtime.callTool('builder', TOOLS.GATES_RUN, { feature_id: 'feature_a', mode: 'fast' }),
445
445
  ).rejects.toMatchObject({
446
446
  code: ERROR_CODES.LOCK_CONFLICT,
447
447
  details: { holder: 'feature_b' },
@@ -10,5 +10,4 @@ missing_prompt_behavior: ignore
10
10
  runtime:
11
11
  default_provider: claude
12
12
  default_model: local-default
13
- provider_config_env: AOP_PROVIDER_CONFIG_ENV
14
13
  role_provider_overrides: {}
@@ -1,14 +1,40 @@
1
1
  import { execFile, spawn } from 'node:child_process';
2
+ import fs from 'node:fs/promises';
2
3
  import path from 'node:path';
3
4
  import { fileURLToPath } from 'node:url';
4
5
  import { promisify } from 'node:util';
5
6
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
7
  const execFileAsync = promisify(execFile);
8
+ const DASHBOARD_WORKSPACE = '@aop/web-dashboard';
9
+ async function hasDashboardCli(repoRoot) {
10
+ const candidates = [
11
+ path.join(repoRoot, 'node_modules', '.bin', 'next'),
12
+ path.join(repoRoot, 'packages', 'web-dashboard', 'node_modules', '.bin', 'next'),
13
+ ];
14
+ for (const candidate of candidates) {
15
+ try {
16
+ await fs.access(candidate);
17
+ return true;
18
+ }
19
+ catch {
20
+ // continue
21
+ }
22
+ }
23
+ return false;
24
+ }
25
+ async function ensureDashboardDependencies(repoRoot, env) {
26
+ if (await hasDashboardCli(repoRoot)) {
27
+ return;
28
+ }
29
+ await execFileAsync('npm', ['install', '--workspace', DASHBOARD_WORKSPACE, '--no-audit', '--no-fund'], {
30
+ cwd: repoRoot,
31
+ env,
32
+ });
33
+ }
7
34
  export class DashboardCommandHandler {
8
35
  async execute(options) {
9
36
  const port = options.port ?? 3000;
10
37
  const repoRoot = path.resolve(__dirname, '../../../../');
11
- const dashboardWorkspace = '@aop/web-dashboard';
12
38
  const devMode = options.dev === true;
13
39
  const foreground = options.foreground === true || devMode;
14
40
  const env = {
@@ -17,8 +43,9 @@ export class DashboardCommandHandler {
17
43
  HOSTNAME: '0.0.0.0',
18
44
  AOP_ROOT: process.cwd(),
19
45
  };
46
+ await ensureDashboardDependencies(repoRoot, env);
20
47
  if (devMode) {
21
- const child = spawn('npm', ['run', '--workspace', dashboardWorkspace, 'dev'], {
48
+ const child = spawn('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'dev'], {
22
49
  cwd: repoRoot,
23
50
  env,
24
51
  stdio: 'inherit',
@@ -29,12 +56,12 @@ export class DashboardCommandHandler {
29
56
  });
30
57
  return { ok: true, data: { message: 'Dashboard stopped', port, mode: 'dev' } };
31
58
  }
32
- await execFileAsync('npm', ['run', '--workspace', dashboardWorkspace, 'build'], {
59
+ await execFileAsync('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'build'], {
33
60
  cwd: repoRoot,
34
61
  env,
35
62
  });
36
63
  if (foreground) {
37
- const child = spawn('npm', ['run', '--workspace', dashboardWorkspace, 'start'], {
64
+ const child = spawn('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'start'], {
38
65
  cwd: repoRoot,
39
66
  env,
40
67
  stdio: 'inherit',
@@ -45,7 +72,7 @@ export class DashboardCommandHandler {
45
72
  });
46
73
  return { ok: true, data: { message: 'Dashboard stopped', port, mode: 'production' } };
47
74
  }
48
- const child = spawn('npm', ['run', '--workspace', dashboardWorkspace, 'start'], {
75
+ const child = spawn('npm', ['run', '--workspace', DASHBOARD_WORKSPACE, 'start'], {
49
76
  cwd: repoRoot,
50
77
  env,
51
78
  detached: true,
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-command-handler.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/cli/dashboard-command-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,OAAO,uBAAuB;IAClC,KAAK,CAAC,OAAO,CAAC,OAIb;QACC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC;QAE1D,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE;gBAC5E,GAAG,EAAE,QAAQ;gBACb,GAAG;gBACH,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC3B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjF,CAAC;QAED,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE;YAC9E,GAAG,EAAE,QAAQ;YACb,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE;gBAC9E,GAAG,EAAE,QAAQ;gBACb,GAAG;gBACH,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC3B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;QACxF,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE;YAC9E,GAAG,EAAE,QAAQ;YACb,GAAG;YACH,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE;gBACJ,OAAO,EAAE,yCAAyC,IAAI,EAAE;gBACxD,IAAI;gBACJ,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,YAAY;aACnB;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"dashboard-command-handler.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/cli/dashboard-command-handler.ts"],"names":[],"mappings":"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"}
@@ -86,7 +86,6 @@ export class RetryCommandHandler {
86
86
  }
87
87
  const gate = await callCliTool(this.toolClient, this.runId, TOOLS.GATES_RUN, {
88
88
  feature_id: featureId,
89
- profile: null,
90
89
  mode: inferredMode,
91
90
  });
92
91
  const retryExecuted = true;
@@ -1 +1 @@
1
- {"version":3,"file":"retry-command-handler.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/cli/retry-command-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry-command-handler.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/cli/retry-command-handler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  export type RuntimeRole = 'orchestrator' | 'planner' | 'builder' | 'qa';
2
+ export interface GatesRunToolArgs {
3
+ feature_id: string;
4
+ mode: string;
5
+ profile?: string;
6
+ operation_id?: string;
7
+ }
8
+ export interface ToolArgsByName {
9
+ 'gates.run': GatesRunToolArgs;
10
+ }
11
+ export type ToolArgs<TToolName extends string> = TToolName extends keyof ToolArgsByName ? ToolArgsByName[TToolName] : Record<string, unknown>;
2
12
  export interface ToolCaller {
3
- callTool<TData = Record<string, unknown>>(role: RuntimeRole, toolName: string, args: Record<string, unknown>): Promise<{
13
+ callTool<TData = Record<string, unknown>, TToolName extends string = string>(role: RuntimeRole, toolName: TToolName, args: ToolArgs<TToolName>): Promise<{
4
14
  ok: true;
5
15
  data: TData;
6
16
  }>;
@@ -1,5 +1,15 @@
1
1
  import { GATE_RESULT, STATUS, TOOLS } from '../core/constants.js';
2
2
  import { NOOP_WORKER_DECISION_RUNNER } from './worker-decision-loop.js';
3
+ function isRetryableToolError(error) {
4
+ if (!error || typeof error !== 'object') {
5
+ return false;
6
+ }
7
+ const details = error.details;
8
+ if (!details || typeof details !== 'object') {
9
+ return false;
10
+ }
11
+ return details.retryable === true;
12
+ }
3
13
  export class BuildWaveExecutor {
4
14
  toolCaller;
5
15
  workerDecisionRunner;
@@ -40,22 +50,24 @@ export class BuildWaveExecutor {
40
50
  let gateExitCode;
41
51
  let gateEvidencePath = '';
42
52
  let gateLogs = '';
53
+ let gateRetryEligible;
43
54
  const failureHistory = [];
44
55
  try {
45
56
  const gateResult = await this.toolCaller.callTool('builder', TOOLS.GATES_RUN, {
46
57
  feature_id: featureId,
47
- profile: null,
48
58
  mode: 'fast',
49
59
  });
50
60
  gateOverall = gateResult.data.overall ?? GATE_RESULT.PASS;
51
61
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
52
62
  gateEvidencePath = gateResult.data.evidence_path ?? '';
63
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
53
64
  }
54
65
  catch (error) {
55
66
  gateOverall = GATE_RESULT.FAIL;
56
67
  gateExitCode = 1;
57
68
  const typed = error;
58
69
  gateLogs = typed.message ?? '';
70
+ gateRetryEligible = isRetryableToolError(error);
59
71
  }
60
72
  if (gateOverall === GATE_RESULT.FAIL) {
61
73
  failureHistory.push({
@@ -68,13 +80,13 @@ export class BuildWaveExecutor {
68
80
  retry_delay_ms: this.reactionsService?.retryDelayMs(),
69
81
  });
70
82
  }
71
- if (this.reactionsService && gateOverall === GATE_RESULT.FAIL) {
83
+ if (this.reactionsService && gateOverall === GATE_RESULT.FAIL && gateRetryEligible) {
72
84
  const context = await this.toolCaller.callTool('builder', TOOLS.FEATURE_GET_CONTEXT, {
73
85
  feature_id: featureId,
74
86
  });
75
87
  let retryCount = initialRetryCount;
76
88
  const retryDelayMs = this.reactionsService.retryDelayMs();
77
- while (this.reactionsService.shouldRetry(featureId, retryCount)) {
89
+ while (gateRetryEligible && this.reactionsService.shouldRetry(featureId, retryCount)) {
78
90
  if (typeof this.reactionsService.waitBeforeRetry === 'function') {
79
91
  await this.reactionsService.waitBeforeRetry();
80
92
  }
@@ -98,19 +110,20 @@ export class BuildWaveExecutor {
98
110
  try {
99
111
  const retryResult = await this.toolCaller.callTool('builder', TOOLS.GATES_RUN, {
100
112
  feature_id: featureId,
101
- profile: null,
102
113
  mode: 'fast',
103
114
  });
104
115
  gateOverall = retryResult.data.overall ?? GATE_RESULT.PASS;
105
116
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
106
117
  gateEvidencePath = retryResult.data.evidence_path ?? gateEvidencePath;
107
118
  gateLogs = '';
119
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
108
120
  }
109
121
  catch (error) {
110
122
  gateOverall = GATE_RESULT.FAIL;
111
123
  gateExitCode = 1;
112
124
  const typed = error;
113
125
  gateLogs = typed.message ?? '';
126
+ gateRetryEligible = isRetryableToolError(error);
114
127
  }
115
128
  retryCount += 1;
116
129
  await this.reactionsService.recordRetry(featureId, retryCount);
@@ -128,6 +141,9 @@ export class BuildWaveExecutor {
128
141
  if (gateOverall === GATE_RESULT.PASS) {
129
142
  break;
130
143
  }
144
+ if (!gateRetryEligible) {
145
+ break;
146
+ }
131
147
  }
132
148
  if (gateOverall === GATE_RESULT.FAIL && this.reactionsService.shouldEscalate(retryCount)) {
133
149
  const escalateCtx = {
@@ -1 +1 @@
1
- {"version":3,"file":"build-wave-executor.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/build-wave-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-wave-executor.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/build-wave-executor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import { GATE_RESULT, STATUS, TOOLS } from '../core/constants.js';
2
2
  import { UNASSIGNED_SESSION_ID } from './types.js';
3
3
  import { NOOP_WORKER_DECISION_RUNNER } from './worker-decision-loop.js';
4
+ function isRetryableToolError(error) {
5
+ if (!error || typeof error !== 'object') {
6
+ return false;
7
+ }
8
+ const details = error.details;
9
+ if (!details || typeof details !== 'object') {
10
+ return false;
11
+ }
12
+ return details.retryable === true;
13
+ }
4
14
  export class QaWaveExecutor {
5
15
  kernel;
6
16
  provider;
@@ -48,22 +58,24 @@ export class QaWaveExecutor {
48
58
  let gateExitCode;
49
59
  let gateEvidencePath = '';
50
60
  let gateLogs = '';
61
+ let gateRetryEligible;
51
62
  const failureHistory = [];
52
63
  try {
53
64
  const gateResult = await this.toolCaller.callTool('qa', TOOLS.GATES_RUN, {
54
65
  feature_id: featureId,
55
- profile: null,
56
66
  mode: 'full',
57
67
  });
58
68
  gateOverall = gateResult.data.overall ?? GATE_RESULT.PASS;
59
69
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
60
70
  gateEvidencePath = gateResult.data.evidence_path ?? '';
71
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
61
72
  }
62
73
  catch (error) {
63
74
  gateOverall = GATE_RESULT.FAIL;
64
75
  gateExitCode = 1;
65
76
  const typed = error;
66
77
  gateLogs = typed.message ?? '';
78
+ gateRetryEligible = isRetryableToolError(error);
67
79
  }
68
80
  if (gateOverall === GATE_RESULT.FAIL) {
69
81
  failureHistory.push({
@@ -76,10 +88,10 @@ export class QaWaveExecutor {
76
88
  retry_delay_ms: this.reactionsService?.retryDelayMs(),
77
89
  });
78
90
  }
79
- if (this.reactionsService && gateOverall === GATE_RESULT.FAIL) {
91
+ if (this.reactionsService && gateOverall === GATE_RESULT.FAIL && gateRetryEligible) {
80
92
  let retryCount = initialRetryCount;
81
93
  const retryDelayMs = this.reactionsService.retryDelayMs();
82
- while (this.reactionsService.shouldRetry(featureId, retryCount)) {
94
+ while (gateRetryEligible && this.reactionsService.shouldRetry(featureId, retryCount)) {
83
95
  if (typeof this.reactionsService.waitBeforeRetry === 'function') {
84
96
  await this.reactionsService.waitBeforeRetry();
85
97
  }
@@ -103,19 +115,20 @@ export class QaWaveExecutor {
103
115
  try {
104
116
  const retryResult = await this.toolCaller.callTool('qa', TOOLS.GATES_RUN, {
105
117
  feature_id: featureId,
106
- profile: null,
107
118
  mode: 'full',
108
119
  });
109
120
  gateOverall = retryResult.data.overall ?? GATE_RESULT.PASS;
110
121
  gateExitCode = gateOverall === GATE_RESULT.FAIL ? 1 : 0;
111
122
  gateEvidencePath = retryResult.data.evidence_path ?? gateEvidencePath;
112
123
  gateLogs = '';
124
+ gateRetryEligible = gateOverall === GATE_RESULT.FAIL;
113
125
  }
114
126
  catch (error) {
115
127
  gateOverall = GATE_RESULT.FAIL;
116
128
  gateExitCode = 1;
117
129
  const typed = error;
118
130
  gateLogs = typed.message ?? '';
131
+ gateRetryEligible = isRetryableToolError(error);
119
132
  }
120
133
  retryCount += 1;
121
134
  await this.reactionsService.recordRetry(featureId, retryCount);
@@ -133,6 +146,9 @@ export class QaWaveExecutor {
133
146
  if (gateOverall === GATE_RESULT.PASS) {
134
147
  break;
135
148
  }
149
+ if (!gateRetryEligible) {
150
+ break;
151
+ }
136
152
  }
137
153
  if (gateOverall === GATE_RESULT.FAIL && this.reactionsService.shouldEscalate(retryCount)) {
138
154
  const escalateCtx = {
@@ -1 +1 @@
1
- {"version":3,"file":"qa-wave-executor.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/qa-wave-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qa-wave-executor.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/qa-wave-executor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { WorkerProvider } from '../providers/providers.js';
2
2
  import { type ToolClient } from '../mcp/tool-client.js';
3
- import type { AgentPromptProvider, FeatureClusterPatcher, FeatureInput, InitialPlanGenerator, PromptBundle, RuntimeRole, SupervisorKernelPort, SupervisorOptions, SupervisorToolCaller, WorkerSessions } from './types.js';
3
+ import type { AgentPromptProvider, FeatureClusterPatcher, FeatureInput, InitialPlanGenerator, PromptBundle, RuntimeRole, ToolArgs, SupervisorKernelPort, SupervisorOptions, SupervisorToolCaller, WorkerSessions } from './types.js';
4
4
  export declare class SupervisorRuntime implements SupervisorToolCaller, AgentPromptProvider, InitialPlanGenerator, FeatureClusterPatcher {
5
5
  kernel: SupervisorKernelPort;
6
6
  provider: WorkerProvider;
@@ -54,7 +54,7 @@ export declare class SupervisorRuntime implements SupervisorToolCaller, AgentPro
54
54
  renewLeaseHeartbeats(): Promise<void>;
55
55
  generateInitialPlan(featureId: string): Promise<Record<string, unknown>>;
56
56
  private resolveRoleSessionId;
57
- callTool<TData = Record<string, unknown>>(role: RuntimeRole, toolName: string, args: Record<string, unknown>): Promise<{
57
+ callTool<TData = Record<string, unknown>, TToolName extends string = string>(role: RuntimeRole, toolName: TToolName, args: ToolArgs<TToolName>): Promise<{
58
58
  ok: true;
59
59
  data: TData;
60
60
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAmB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,6CAA6C,CAAC;AAmBrD,SAAS,kBAAkB,CACzB,IAAgC,EAChC,eAAwB,EACxB,QAAuB;IAEvB,MAAM,UAAU,GACd,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,MAAM,SAAS,GAAG,UAAU,IAAI,QAAQ,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,OAAO,iBAAiB;IAG5B,MAAM,CAAuB;IAC7B,QAAQ,CAAiB;IACzB,UAAU,CAAa;IACvB,iBAAiB,CAAS;IAC1B,mBAAmB,CAAS;IAC5B,qBAAqB,CAAS;IAC9B,gBAAgB,CAAU;IAET,KAAK,CAAyB;IAC9B,kBAAkB,CAAqB;IACvC,mBAAmB,CAAsB;IACzC,oBAAoB,CAAuB;IAC3C,iBAAiB,CAAoB;IACrC,cAAc,CAAiB;IAC/B,kBAAkB,CAAqB;IACvC,qBAAqB,CAAwB;IAC7C,cAAc,CAAiB;IACxC,MAAM,CAAU,gCAAgC,GAAG,CAAC,CAAC;IAE7D,YACE,MAA4B,EAC5B,QAAwB,EACxB,UAAsB,EACtB,UAA6B,EAAE;QAE/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC3F,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,4BAA4B,CAC5D,OAAO,CAAC,wBAAwB,CACjC,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACpD,MAAM,eAAe,GACnB,OAAO,CAAC,iBAAiB,IAAI,cAAc,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QAClF,MAAM,cAAc,GAClB,OAAQ,IAAI,CAAC,MAAgE;aAC1E,iBAAiB,KAAK,UAAU;YACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACjC,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,mBAAmB,GAAG,kBAAkB,CAC5C,yBAAyB,EACzB,cAAc,CAAC,sBAAsB,CAAC,EACtC,IAAI,CACL,CAAC;QACF,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,sBAAsB,EACtB,cAAc,CAAC,mBAAmB,CAAC,EACnC,cAAc,CACf,CAAC;QACF,MAAM,WAAW,GAAG,kBAAkB,CACpC,iBAAiB,EACjB,cAAc,CAAC,cAAc,CAAC,EAC9B,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG;YACX,KAAK;YACL,eAAe;YACf,qBAAqB,EAAE,IAAI;YAC3B,iBAAiB,EAAE,IAAI,GAAG,EAAE;YAC5B,KAAK,EAAE,EAAE;YACT,WAAW,EAAE;gBACX,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,iBAAiB,EAAE,eAAe;gBAClC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;gBACzC,iBAAiB,EAAE,QAAQ,CAAC,SAAS;gBACrC,QAAQ,EAAE;oBACR,oBAAoB,EAAE,mBAAmB;oBACzC,iBAAiB,EAAE,gBAAgB;oBACnC,YAAY,EAAE,WAAW;iBAC1B;aACF;SACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC;YACjD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,MAAM;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC7F,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;YAC5C,UAAU,EAAE,IAAI;YAChB,QAAQ;YACR,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC;YACjD,UAAU,EAAE,IAAI;YAChB,QAAQ;YACR,eAAe;YACf,eAAe,EAAE,IAAI,CAAC,8BAA8B,EAAE;YACtD,YAAY,EAAE,gBAAgB,IAAI,cAAc;SACjD,CAAC,CAAC;QAEH,MAAM,SAAS,GACb,WAAW,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI,gBAAgB,CAAC;gBACnB,UAAU,EAAE,IAAI;gBAChB,QAAQ;gBACR,eAAe;gBACf,QAAQ,EAAE,cAAc,EAAE;aAC3B,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,qBAAqB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,kBAAkB,GACtB,OAAO,qBAAqB,KAAK,QAAQ,IAAI,qBAAqB,KAAK,IAAI;YACzE,CAAC,CAAE,qBAA2E;YAC9E,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,YAAY,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAE5D,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI;YAChB,eAAe;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;YACnD,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,UAAU,EAAE,IAAI;YAChB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;YAC7C,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;YACpB,qBAAqB,EAAE,IAAI;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;YAC7C,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC;YACrD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACzD,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;YAC7C,QAAQ;YACR,SAAS;YACT,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,CAAC;IAED,IAAI,eAAe,CAAC,KAAa;QAC/B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAC1C,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAoB;QAC5C,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC3C,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACtC,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAkC;QACtD,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAqB;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,IAAI,WAAW,CAAC,KAA8B;QAC5C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,YAAY,CAAC,KAA0B;QACzC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAwB;QAClC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,qBAAqB;QACnB,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC;IAC3E,CAAC;IAEO,4BAA4B,CAAC,WAA+B;QAClE,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACxF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;YACxD,CAAC,CAAE,MAAM,CAAC,UAAsC;YAChD,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,UAAU,GAAG,UAAU,EAAE,wBAAwB,CAAC;QACxD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACrF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,iBAAiB,CAAC,gCAAgC,CAAC;IAC5D,CAAC;IAEO,0BAA0B,CAAC,WAA+B;QAChE,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACxF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;YACxD,CAAC,CAAE,MAAM,CAAC,UAAsC;YAChD,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,UAAU,GAAG,UAAU,EAAE,sBAAsB,CAAC;QACtD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACrF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,sBAAsB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7D,OAAO,MAAM,CAAC,SAA4B,CAAC;QAC7C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,8BAA8B;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;YACxD,CAAC,CAAE,MAAM,CAAC,UAAsC;YAChD,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,UAAU,GAAG,UAAU,EAAE,uBAAuB,CAAC;QACvD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,+BAA+B,EAAE,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,gBAA0B;QAC1D,MAAM,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,SAAiB;QAC9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,gBAA0B;QAC5D,MAAM,IAAI,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,SAAiB,EACjB,YAAoC;QAEpC,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAoB;QACxC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAoB,EAAE,SAAiB;QACvE,MAAM,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAoB;QACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAoB;QAClC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM;aAC9B,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;aAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,mCAAmC,SAAS,EAAE;YACvD,aAAa,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,SAAS,EAAE,CAAC;YACnE,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;aACX;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,MAAM;aACX;YACD,mBAAmB,EAAE,CAAC,oEAAoE,CAAC;YAC3F,YAAY,EAAE,SAAS;SACxB,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,IAAiB,EAAE,OAAgC;QAC9E,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;QAC1C,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,OAAO,CAAC;YACzB,KAAK,IAAI;gBACP,OAAO,OAAO,CAAC,EAAE,CAAC;YACpB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAiB,EACjB,QAAgB,EAChB,IAA6B;QAE7B,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YAC7D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACxB,UAAU,EAAE,aAAa,IAAI,aAAa,IAAI,EAAE;YAChD,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,cAAc,IAAI,EAAE;SAC/B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAa,CAAC;YACxD,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAa,EAAE,CAAC;IACpD,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { AgentsConfigSnapshot } from '../core/kernel.js';
2
2
  import type { FeatureStatePayload } from '../core/tool-caller.js';
3
3
  import type { BudgetCheckResult } from '../application/services/cost-tracking-service.js';
4
- export type { FeatureStateFrontMatter, FeatureStatePayload, RuntimeRole, ToolCaller as SupervisorToolCaller, } from '../core/tool-caller.js';
4
+ export type { FeatureStateFrontMatter, FeatureStatePayload, RuntimeRole, ToolArgs, ToolCaller as SupervisorToolCaller, } from '../core/tool-caller.js';
5
5
  export interface AppError extends Error {
6
6
  code?: string;
7
7
  details?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/types.ts"],"names":[],"mappings":"AA0JA,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/types.ts"],"names":[],"mappings":"AA2JA,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-orchestrator",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "private": false,
5
5
  "workspaces": [
6
6
  "packages/*"
@@ -987,3 +987,22 @@ Open blockers:
987
987
  - `agentic/orchestrator/schemas/adapters.schema.json` — added root description + descriptions on all 4 adapter slot properties.
988
988
  - `agentic/orchestrator/schemas/multi-project.schema.json` — added root description + descriptions on all defaults and projects properties.
989
989
  - **Result:** `npm run validate:mcp-contracts` ✅. `npm run validate:architecture` ✅. No structural changes; only `description` annotations added.
990
+
991
+ ✅ **Entry 179 — MCP-First `gates.run` Contract Enforcement and Retry Guarding**
992
+
993
+ - **Goal:** Eliminate kernel-style nullable argument semantics on gate execution paths so all orchestration traffic is valid against MCP tool schemas first.
994
+ - **Changes made:**
995
+ - Added tool-name keyed argument typing in `apps/control-plane/src/core/tool-caller.ts`:
996
+ - `ToolArgsByName` + `ToolArgs<TToolName>` map with strict `gates.run` args (`feature_id`, `mode`, optional string `profile`, optional `operation_id`).
997
+ - Updated `ToolCaller.callTool(...)` generic signature to enforce tool-specific arg shapes.
998
+ - Updated supervisor caller implementation in `apps/control-plane/src/supervisor/runtime.ts` to use `ToolArgs<TToolName>` so typed MCP argument contracts apply at compile time in runtime orchestration code.
999
+ - Removed invalid nullable profile payloads (`profile: null`) from all `gates.run` call sites:
1000
+ - `apps/control-plane/src/supervisor/build-wave-executor.ts`
1001
+ - `apps/control-plane/src/supervisor/qa-wave-executor.ts`
1002
+ - `apps/control-plane/src/cli/retry-command-handler.ts`
1003
+ - Added retry eligibility guards in build/qa executors:
1004
+ - retries now proceed only when a gate failure is explicitly retryable (`error.details.retryable === true`) or when the gate returns an explicit `overall: fail` result envelope.
1005
+ - non-retryable MCP errors (for example, schema validation `invalid_argument`) no longer enter auto-repair retry loops.
1006
+ - Expanded tests:
1007
+ - `apps/control-plane/test/cli-helpers.spec.ts` now asserts retry command omits `profile` from `gates.run` payload.
1008
+ - `apps/control-plane/test/supervisor-collaborators.spec.ts` adds regressions proving build/qa skip retries on non-retryable gate errors.