@devflow-tools/delivery-line 0.18.18 → 0.18.20

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 (65) hide show
  1. package/dist/adapters/delivery-package.d.ts.map +1 -1
  2. package/dist/adapters/delivery-package.js +2 -1
  3. package/dist/adapters/delivery-package.js.map +1 -1
  4. package/dist/adapters/integration.d.ts +7 -0
  5. package/dist/adapters/integration.d.ts.map +1 -1
  6. package/dist/adapters/integration.js +11 -0
  7. package/dist/adapters/integration.js.map +1 -1
  8. package/dist/adapters/plugin-capability.d.ts +14 -0
  9. package/dist/adapters/plugin-capability.d.ts.map +1 -0
  10. package/dist/adapters/plugin-capability.js +61 -0
  11. package/dist/adapters/plugin-capability.js.map +1 -0
  12. package/dist/adapters/workflow-execution.d.ts +6 -0
  13. package/dist/adapters/workflow-execution.d.ts.map +1 -1
  14. package/dist/adapters/workflow-execution.js +54 -5
  15. package/dist/adapters/workflow-execution.js.map +1 -1
  16. package/dist/artifacts/artifact-contract.d.ts +1 -0
  17. package/dist/artifacts/artifact-contract.d.ts.map +1 -1
  18. package/dist/artifacts/artifact-contract.js +8 -7
  19. package/dist/artifacts/artifact-contract.js.map +1 -1
  20. package/dist/composition.d.ts +1 -1
  21. package/dist/composition.d.ts.map +1 -1
  22. package/dist/composition.js +17 -0
  23. package/dist/composition.js.map +1 -1
  24. package/dist/domain/plugin-capability.d.ts +33 -0
  25. package/dist/domain/plugin-capability.d.ts.map +1 -1
  26. package/dist/domain/plugin-capability.js +16 -0
  27. package/dist/domain/plugin-capability.js.map +1 -1
  28. package/dist/domain/types.d.ts +94 -2
  29. package/dist/domain/types.d.ts.map +1 -1
  30. package/dist/domain/types.js.map +1 -1
  31. package/dist/facade/delivery-line-facade.d.ts +8 -0
  32. package/dist/facade/delivery-line-facade.d.ts.map +1 -1
  33. package/dist/facade/delivery-line-facade.js +149 -25
  34. package/dist/facade/delivery-line-facade.js.map +1 -1
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/persistence/memory-store.js +1 -1
  40. package/dist/persistence/memory-store.js.map +1 -1
  41. package/dist/persistence/sqlite-store.js +1 -1
  42. package/dist/persistence/sqlite-store.js.map +1 -1
  43. package/dist/ports/index.d.ts +118 -3
  44. package/dist/ports/index.d.ts.map +1 -1
  45. package/dist/runtime/context-binder.d.ts +21 -0
  46. package/dist/runtime/context-binder.d.ts.map +1 -1
  47. package/dist/runtime/context-binder.js +52 -16
  48. package/dist/runtime/context-binder.js.map +1 -1
  49. package/dist/runtime/execution-coordinator.d.ts +12 -1
  50. package/dist/runtime/execution-coordinator.d.ts.map +1 -1
  51. package/dist/runtime/execution-coordinator.js +193 -43
  52. package/dist/runtime/execution-coordinator.js.map +1 -1
  53. package/dist/runtime/memory-writeback.d.ts +8 -0
  54. package/dist/runtime/memory-writeback.d.ts.map +1 -1
  55. package/dist/runtime/memory-writeback.js +12 -2
  56. package/dist/runtime/memory-writeback.js.map +1 -1
  57. package/dist/runtime/operation-journal.d.ts +1 -1
  58. package/dist/runtime/operation-journal.d.ts.map +1 -1
  59. package/dist/runtime/operation-journal.js +5 -1
  60. package/dist/runtime/operation-journal.js.map +1 -1
  61. package/dist/runtime/plan-compiler.d.ts +4 -0
  62. package/dist/runtime/plan-compiler.d.ts.map +1 -1
  63. package/dist/runtime/plan-compiler.js +15 -0
  64. package/dist/runtime/plan-compiler.js.map +1 -1
  65. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { type DeliveryCase, type TaskEnvelope, type VerificationReceipt } from '../domain/types.js';
2
- import type { CaseStore, ExecutionResult, OperationJournalPort } from '../ports/index.js';
2
+ import type { CaseStore, ExecutionResult, OperationJournalPort, WorkerInspection } from '../ports/index.js';
3
3
  export interface ExecutionCoordinatorPorts {
4
4
  startTask(input: TaskEnvelope): Promise<ExecutionResult>;
5
5
  verify(input: unknown): Promise<VerificationReceipt>;
@@ -20,6 +20,17 @@ export interface ExecutionCoordinatorPorts {
20
20
  }): Promise<{
21
21
  candidateRevision: string;
22
22
  } | null>;
23
+ inspectWorker?(input: {
24
+ caseId: string;
25
+ taskId: string;
26
+ operationId: string;
27
+ envelope: TaskEnvelope;
28
+ }): Promise<WorkerInspection>;
29
+ runCapabilities?(input: {
30
+ task: DeliveryCase['tasks'][number];
31
+ envelope: TaskEnvelope;
32
+ execution: ExecutionResult;
33
+ }): Promise<Array<Record<string, unknown>>>;
23
34
  }
24
35
  export declare class ExecutionCoordinator {
25
36
  private readonly store;
@@ -1 +1 @@
1
- {"version":3,"file":"execution-coordinator.d.ts","sourceRoot":"","sources":["../../src/runtime/execution-coordinator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,YAAY,EAAoB,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzI,OAAO,KAAK,EAAE,SAAS,EAAiB,eAAe,EAAmB,oBAAoB,EAAoB,MAAM,mBAAmB,CAAC;AAE5I,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,SAAS,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzO,kBAAkB,CAAC,CAAC,KAAK,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAClI;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAa,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA6B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAA9F,KAAK,EAAE,SAAS,EAAmB,KAAK,EAAE,yBAAyB,EAAmB,OAAO,CAAC,EAAE,oBAAoB,YAAA;IAE3I,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAU7C,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAyKvD"}
1
+ {"version":3,"file":"execution-coordinator.d.ts","sourceRoot":"","sources":["../../src/runtime/execution-coordinator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,YAAY,EAAoB,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzI,OAAO,KAAK,EAAE,SAAS,EAAiB,eAAe,EAAmB,oBAAoB,EAAqC,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE/K,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,SAAS,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzO,kBAAkB,CAAC,CAAC,KAAK,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACjI,aAAa,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClI,eAAe,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/J;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAa,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA6B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAA9F,KAAK,EAAE,SAAS,EAAmB,KAAK,EAAE,yBAAyB,EAAmB,OAAO,CAAC,EAAE,oBAAoB,YAAA;IAE3I,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAU7C,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAwPvD"}
@@ -34,29 +34,96 @@ export class ExecutionCoordinator {
34
34
  continue;
35
35
  if (task.dependsOn.some(id => record.tasks.find(candidate => candidate.id === id)?.status !== 'integrated'))
36
36
  continue;
37
+ // Reconcile durable worker operations before trusting the task projection.
38
+ // A crash can leave the task at `running` while the provider already failed.
39
+ if (this.journal && (task.status === 'running' || task.status === 'merge_pending')) {
40
+ const operationId = `worker:${record.id}:${task.id}:${task.attempt}`;
41
+ try {
42
+ const operation = await this.journal.recover(operationId);
43
+ if (operation.status === 'recorded' && operation.receipt) {
44
+ appendOperationEvidence(record, task, operation, 'recorded');
45
+ task.status = 'pending';
46
+ }
47
+ else if (operation.status === 'failed' && operation.failure) {
48
+ appendOperationEvidence(record, task, operation, 'failed');
49
+ task.status = 'failed';
50
+ record.stage = 'failed';
51
+ record.blockers = [{ code: operation.failure.code, message: operation.failure.message ?? 'Worker failed', responsibleRole: 'execution-owner', taskId: task.id, operationId, lastError: operation.failure.message, checkpoint: operation.status, artifactRefs: [], evidenceRefs: [], recoveryAction: operation.failure.retryable ? 'Retry the task after provider recovery.' : 'Fix the provider configuration and create a new attempt.', retryable: operation.failure.retryable }];
52
+ break;
53
+ }
54
+ else if ((operation.status === 'unknown' || operation.status === 'invoked') && this.ports.inspectWorker) {
55
+ const envelope = makeInspectionEnvelope(record, task);
56
+ const inspected = await this.ports.inspectWorker({ caseId: record.id, taskId: task.id, operationId, envelope });
57
+ const inspection = { status: inspected.status, checkedAt: Date.now(), evidenceRefs: inspected.evidenceRefs, details: inspected.details };
58
+ if (inspected.status === 'failed') {
59
+ appendOperationEvidence(record, task, { ...operation, status: 'inspected', inspection }, inspected.status);
60
+ task.status = 'failed';
61
+ record.stage = 'failed';
62
+ record.blockers = [{ code: inspected.failure?.code ?? 'WORKER_FAILED', message: inspected.failure?.message ?? 'Worker failed during reconciliation', responsibleRole: 'execution-owner', taskId: task.id, operationId, lastError: inspected.failure?.message, checkpoint: 'inspected', lease: { owner: task.leaseOwner, expiresAt: task.leaseExpiresAt, fencingToken: task.fencingToken }, artifactRefs: [], evidenceRefs: inspected.evidenceRefs ?? [], recoveryAction: inspected.failure?.retryable ? 'Retry the task.' : 'Resolve the provider failure before retrying.', retryable: inspected.failure?.retryable ?? false }];
63
+ await this.journal.record({ ...operation, status: 'failed', failure: inspected.failure, inspection });
64
+ break;
65
+ }
66
+ if (inspected.status === 'completed' && inspected.result) {
67
+ appendOperationEvidence(record, task, { ...operation, status: 'inspected', inspection }, inspected.status);
68
+ await this.journal.record({ ...operation, status: 'recorded', receipt: inspected.result, inspection });
69
+ task.status = 'pending';
70
+ }
71
+ else {
72
+ await this.journal.record({ ...operation, status: 'inspected', inspection });
73
+ record.stage = 'held';
74
+ record.blockers = [{ code: 'WORKER_RECONCILIATION_INCONCLUSIVE', message: 'Worker inspection could not determine a terminal result.', responsibleRole: 'execution-owner', requiredRole: 'execution-owner', taskId: task.id, operationId, lastError: 'Worker state remains unknown after inspection.', checkpoint: 'inspected', lease: { owner: task.leaseOwner, expiresAt: task.leaseExpiresAt, fencingToken: task.fencingToken }, artifactRefs: [], evidenceRefs: inspected.evidenceRefs ?? [], recoveryAction: 'Inspect the worker status, logs, handoff, and worktree, then run recover_task again or cancel the case.', retryable: false, diagnostics: inspected.details }];
75
+ appendOperationEvidence(record, task, { ...operation, status: 'inspected', inspection }, inspected.status);
76
+ break;
77
+ }
78
+ }
79
+ else if (operation.status === 'unknown' || operation.status === 'invoked') {
80
+ record.stage = 'held';
81
+ break;
82
+ }
83
+ }
84
+ catch (error) {
85
+ if (!(error instanceof DeliveryLineError) || error.code !== 'OPERATION_NOT_FOUND')
86
+ throw error;
87
+ }
88
+ }
37
89
  if (task.status === 'running' || task.status === 'merge_pending') {
38
90
  record.stage = 'held';
39
91
  break;
40
92
  }
41
- if (task.attempt >= record.budgets.maxTaskAttempts) {
42
- record.stage = 'held';
43
- break;
93
+ let execution;
94
+ if (this.journal && task.status === 'pending' && task.attempt > 0) {
95
+ const operationId = `worker:${record.id}:${task.id}:${task.attempt}`;
96
+ try {
97
+ const operation = await this.journal.recover(operationId);
98
+ if (operation.status === 'recorded' && operation.receipt)
99
+ execution = operation.receipt;
100
+ }
101
+ catch (error) {
102
+ if (!(error instanceof DeliveryLineError) || error.code !== 'OPERATION_NOT_FOUND')
103
+ throw error;
104
+ }
44
105
  }
45
- const leaseOwner = `${record.id}:execution`;
46
- const lease = await this.store.acquireTaskLeaseWithFencing?.({ taskId: task.id, caseId: record.id, owner: leaseOwner, now: Date.now(), leaseMs: Math.max(30_000, record.budgets.maxWallTimeMs), payload: JSON.stringify(task) });
47
- if (lease && !lease.acquired && lease.owner) {
106
+ if (task.attempt >= record.budgets.maxTaskAttempts) {
48
107
  record.stage = 'held';
49
108
  break;
50
109
  }
51
- if (lease) {
52
- task.attempt += 1;
53
- task.leaseOwner = lease.owner;
54
- task.leaseExpiresAt = lease.expiresAt;
55
- task.fencingToken = lease.fencingToken;
110
+ if (!execution) {
111
+ const leaseOwner = `${record.id}:execution`;
112
+ const lease = await this.store.acquireTaskLeaseWithFencing?.({ taskId: task.id, caseId: record.id, owner: leaseOwner, now: Date.now(), leaseMs: Math.max(30_000, record.budgets.maxWallTimeMs), payload: JSON.stringify(task) });
113
+ if (lease && !lease.acquired && lease.owner) {
114
+ record.stage = 'held';
115
+ break;
116
+ }
117
+ if (lease) {
118
+ task.attempt += 1;
119
+ task.leaseOwner = lease.owner;
120
+ task.leaseExpiresAt = lease.expiresAt;
121
+ task.fencingToken = lease.fencingToken;
122
+ }
123
+ else
124
+ task.attempt += 1;
125
+ task.status = 'running';
56
126
  }
57
- else
58
- task.attempt += 1;
59
- task.status = 'running';
60
127
  const baseRevision = currentIntegrationRevision;
61
128
  task.baseRevision = baseRevision;
62
129
  const envelope = {
@@ -67,6 +134,7 @@ export class ExecutionCoordinator {
67
134
  allowedFiles: task.allowedFiles,
68
135
  dependencies: task.dependsOn,
69
136
  implementationSteps: task.expectedChanges,
137
+ nodes: task.planNodes,
70
138
  verification: { commands: task.verificationCommands.map(command => ({ command: command.command, args: command.args })), acceptanceCriteria: task.expectedChanges },
71
139
  constraints: task.constraints ?? { testFirst: true, cannotEditTests: true, recursiveWorkers: false },
72
140
  baseRevision,
@@ -76,44 +144,51 @@ export class ExecutionCoordinator {
76
144
  executionAuthority: task.executionAuthority,
77
145
  fencingToken: task.fencingToken,
78
146
  };
79
- let execution;
80
147
  const operationId = `worker:${record.id}:${task.id}:${task.attempt}`;
81
148
  const requestHash = createHash('sha256').update(JSON.stringify(envelope)).digest('hex');
82
149
  try {
83
- let recovered;
84
- if (this.journal) {
85
- try {
86
- recovered = await this.journal.recover(operationId);
87
- }
88
- catch (error) {
89
- if (!(error instanceof DeliveryLineError) || error.code !== 'OPERATION_NOT_FOUND')
90
- throw error;
91
- }
150
+ if (execution) {
151
+ appendOperationEvidence(record, task, { operationId, caseId: record.id, kind: 'worker', idempotencyKey: operationId, status: 'recorded', receipt: execution }, 'recorded');
92
152
  }
93
- if (recovered?.requestHash && recovered.requestHash !== requestHash)
94
- throw new DeliveryLineError('IDEMPOTENCY_CONFLICT', operationId);
95
- const prepared = recovered ?? await this.journal?.prepare({ operationId, caseId: record.id, kind: 'worker', idempotencyKey: operationId, requestHash });
96
- if (recovered?.recovery === 'held' || recovered?.status === 'invoked') {
97
- task.status = 'running';
98
- record.stage = 'held';
99
- break;
100
- }
101
- if (recovered?.status === 'recorded')
102
- execution = recovered.receipt;
103
153
  else {
104
- if (prepared)
105
- await this.journal.record({ ...prepared, status: 'invoked' });
106
- execution = await this.ports.startTask(envelope);
107
- if (prepared)
108
- await this.journal.record({ ...prepared, status: 'recorded', receipt: execution });
154
+ let recovered;
155
+ if (this.journal) {
156
+ try {
157
+ recovered = await this.journal.recover(operationId);
158
+ }
159
+ catch (error) {
160
+ if (!(error instanceof DeliveryLineError) || error.code !== 'OPERATION_NOT_FOUND')
161
+ throw error;
162
+ }
163
+ }
164
+ if (recovered?.requestHash && recovered.requestHash !== requestHash)
165
+ throw new DeliveryLineError('IDEMPOTENCY_CONFLICT', operationId);
166
+ const prepared = recovered ?? await this.journal?.prepare({ operationId, caseId: record.id, kind: 'worker', idempotencyKey: operationId, requestHash });
167
+ if (recovered?.recovery === 'held' || recovered?.status === 'invoked' || recovered?.status === 'unknown') {
168
+ task.status = 'running';
169
+ record.stage = 'held';
170
+ break;
171
+ }
172
+ if (recovered?.status === 'recorded')
173
+ execution = recovered.receipt;
174
+ else {
175
+ if (prepared)
176
+ await this.journal.record({ ...prepared, status: 'invoked' });
177
+ execution = await this.ports.startTask(envelope);
178
+ if (prepared)
179
+ await this.journal.record({ ...prepared, status: 'recorded', receipt: execution });
180
+ }
109
181
  }
110
182
  }
111
- catch {
183
+ catch (error) {
112
184
  const prepared = await this.journal?.prepare({ operationId, caseId: record.id, kind: 'worker', idempotencyKey: operationId, requestHash });
185
+ const failure = classifyWorkerError(error);
113
186
  if (prepared && prepared.status !== 'recorded') {
114
- await this.journal.record({ ...prepared, status: 'unknown' });
115
- task.status = 'running';
116
- record.stage = 'held';
187
+ await this.journal.record(failure ? { ...prepared, status: 'failed', failure } : { ...prepared, status: 'unknown' });
188
+ task.status = failure ? 'failed' : 'running';
189
+ record.stage = failure ? 'failed' : 'held';
190
+ if (failure)
191
+ record.blockers = [{ code: failure.code, message: failure.message ?? 'Worker failed', responsibleRole: 'execution-owner', taskId: task.id, operationId, lastError: failure.message, checkpoint: 'failed', lease: { owner: task.leaseOwner, expiresAt: task.leaseExpiresAt, fencingToken: task.fencingToken }, artifactRefs: [], evidenceRefs: [], recoveryAction: failure.retryable ? 'Retry the task after provider recovery.' : 'Fix provider configuration before creating another attempt.', retryable: failure.retryable }];
117
192
  }
118
193
  else {
119
194
  task.status = 'failed';
@@ -133,6 +208,26 @@ export class ExecutionCoordinator {
133
208
  break;
134
209
  }
135
210
  task.handoff = execution.handoff ? { ...execution.handoff, durable: execution.handoff.durable ?? true } : undefined;
211
+ if (this.ports.runCapabilities) {
212
+ try {
213
+ const receipts = await this.ports.runCapabilities({ task, envelope, execution: execution });
214
+ for (const receipt of receipts) {
215
+ const changedFiles = Array.isArray(receipt.changedFiles) ? receipt.changedFiles.filter((file) => typeof file === 'string') : [];
216
+ if (receipt.verified !== true || changedFiles.some(file => !isAllowedFile(file, task.allowedFiles)))
217
+ throw new DeliveryLineError('CHANGE_OUTSIDE_AUTHORITY', 'plugin capability receipt violates task authority');
218
+ const pluginEvidence = evidence('tool', receipt);
219
+ task.evidence.push(pluginEvidence);
220
+ record.evidence.push(pluginEvidence);
221
+ }
222
+ }
223
+ catch (error) {
224
+ const failure = classifyCapabilityError(error);
225
+ task.status = 'failed';
226
+ record.stage = 'failed';
227
+ record.blockers = [{ code: failure.code, message: failure.message, responsibleRole: 'capability-owner', requiredRole: 'capability-owner', taskId: task.id, operationId: `capability:${record.id}:${task.id}:${task.attempt}`, lastError: failure.message, checkpoint: 'capability', lease: { owner: task.leaseOwner, expiresAt: task.leaseExpiresAt, fencingToken: task.fencingToken }, artifactRefs: [], evidenceRefs: [], recoveryAction: failure.retryable ? 'Repair the selected plugin runner, then retry the task.' : 'Correct the plugin manifest or task authority before creating another attempt.', retryable: failure.retryable }];
228
+ break;
229
+ }
230
+ }
136
231
  const workerVerificationEvidence = evidence('verification', { source: 'worker-output', ...workerVerification });
137
232
  task.evidence.push(workerVerificationEvidence);
138
233
  record.evidence.push(workerVerificationEvidence);
@@ -232,6 +327,61 @@ export class ExecutionCoordinator {
232
327
  return record;
233
328
  }
234
329
  }
330
+ function classifyWorkerError(error) {
331
+ const message = error instanceof Error ? error.message : String(error);
332
+ const typed = /^([A-Z][A-Z0-9_]+):\s*(.*)$/u.exec(message);
333
+ if (typed && ['WORKER_FAILED', 'WORKER_PREFLIGHT_UNAVAILABLE', 'WORKER_HANDOFF_REQUIRED', 'WORKER_VERIFICATION_FAILED', 'WORKER_VERIFICATION_RECEIPT_INCOMPLETE'].includes(typed[1])) {
334
+ return { code: typed[1], message: typed[2] || message, retryable: false, provider: 'host' };
335
+ }
336
+ if (typed?.[1] === 'WORKER_TIMED_OUT')
337
+ return { code: typed[1], message: typed[2] || message, retryable: true, provider: 'host' };
338
+ if (/model .* is not supported|unknown model|invalid model/i.test(message))
339
+ return { code: 'HOST_MODEL_UNAVAILABLE', message, retryable: false, provider: 'claude' };
340
+ if (/unauthori[sz]ed|authentication|api key|\b401\b|\b403\b/i.test(message))
341
+ return { code: 'HOST_AUTHENTICATION_REQUIRED', message, retryable: false, provider: 'host' };
342
+ if (/rate limit|temporar|timeout|overloaded|\b429\b|\b5\d\d\b/i.test(message))
343
+ return { code: 'HOST_PROVIDER_UNAVAILABLE', message, retryable: true, provider: 'host' };
344
+ return undefined;
345
+ }
346
+ function classifyCapabilityError(error) {
347
+ const message = error instanceof Error ? error.message : String(error);
348
+ if (/PLUGIN_RUNNER_FAILED|timeout|timed out/i.test(message))
349
+ return { code: 'PLUGIN_RUNNER_FAILED', message, retryable: true };
350
+ if (/PLUGIN_RUNNER_REQUIRED|PLUGIN_VERSION_REQUIRED/i.test(message))
351
+ return { code: 'PLUGIN_RUNNER_UNAVAILABLE', message, retryable: false };
352
+ if (/PLUGIN_MANIFEST_HASH_MISMATCH|PLUGIN_RUNNER_RECEIPT_INVALID|CHANGE_OUTSIDE_AUTHORITY/i.test(message))
353
+ return { code: 'PLUGIN_CAPABILITY_INVALID', message, retryable: false };
354
+ return { code: 'PLUGIN_CAPABILITY_FAILED', message, retryable: false };
355
+ }
356
+ function appendOperationEvidence(record, task, operation, status) {
357
+ const metadata = {
358
+ operationId: operation.operationId,
359
+ taskId: task.id,
360
+ operationKind: operation.kind,
361
+ checkpoint: operation.status,
362
+ status,
363
+ requestHash: operation.requestHash,
364
+ failure: operation.failure,
365
+ inspection: operation.inspection,
366
+ };
367
+ if (record.evidence.some(item => item.metadata.operationId === operation.operationId && item.metadata.checkpoint === operation.status && item.metadata.status === status))
368
+ return;
369
+ const receipt = evidence('interaction', metadata);
370
+ task.evidence.push(receipt);
371
+ record.evidence.push(receipt);
372
+ }
373
+ function makeInspectionEnvelope(record, task) {
374
+ return {
375
+ caseId: record.id, taskId: task.id, objective: task.title,
376
+ inputArtifacts: task.inputArtifacts ?? record.artifacts.map(item => item.contentHash),
377
+ allowedFiles: task.allowedFiles, dependencies: task.dependsOn, implementationSteps: task.expectedChanges,
378
+ nodes: task.planNodes,
379
+ verification: { commands: task.verificationCommands.map(command => ({ command: command.command, args: command.args })), acceptanceCriteria: task.expectedChanges },
380
+ constraints: task.constraints ?? { testFirst: true, cannotEditTests: true, recursiveWorkers: false },
381
+ baseRevision: task.baseRevision || record.baseRef, planHash: task.planHash, contextReceiptHash: task.contextReceiptHash,
382
+ hostSelectionSnapshotHash: task.hostSelectionSnapshotHash, executionAuthority: task.executionAuthority, fencingToken: task.fencingToken,
383
+ };
384
+ }
235
385
  function evidence(kind, value) {
236
386
  const metadata = value;
237
387
  return { id: randomUUID(), kind, hash: createHash('sha256').update(JSON.stringify(value)).digest('hex'), createdAt: Date.now(), metadata };
@@ -1 +1 @@
1
- {"version":3,"file":"execution-coordinator.js","sourceRoot":"","sources":["../../src/runtime/execution-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAoF,MAAM,oBAAoB,CAAC;AAUzI,MAAM,OAAO,oBAAoB;IACF;IAAmC;IAAmD;IAAnH,YAA6B,KAAgB,EAAmB,KAAgC,EAAmB,OAA8B;QAApH,UAAK,GAAL,KAAK,CAAW;QAAmB,UAAK,GAAL,KAAK,CAA2B;QAAmB,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAErJ,KAAK,CAAC,MAAM,CAAC,MAAc;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;QACvC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,eAAe,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAoB;QAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,eAAe;YAAE,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;QACjE,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,MAAM,CAAC;QAChD,MAAM,4BAA4B,GAAG,MAAM,CAAC,mBAAmB,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACtG,IAAI,0BAA0B,GAAG,4BAA4B,IAAI,MAAM,CAAC,OAAO,CAAC;QAChF,IAAI,uBAAuB,GAAG,4BAA4B,IAAI,IAAI,CAAC;QACnE,IAAI,4BAA4B;YAAE,MAAM,CAAC,mBAAmB,GAAG,4BAA4B,CAAC;QAC5F,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;gBAAE,SAAS;YAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;gBAAE,SAAS;YACtH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;gBACjE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,MAAM;YACR,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACnD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,MAAM;YACR,CAAC;YACD,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,EAAE,YAAY,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjO,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBAAC,MAAM;YAAC,CAAC;YAC9E,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;gBAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACzC,CAAC;;gBAAM,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,MAAM,YAAY,GAAG,0BAA0B,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,MAAM,QAAQ,GAAiB;gBAC7B,MAAM,EAAE,MAAM,CAAC,EAAE;gBACjB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC7F,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,SAAS;gBAC5B,mBAAmB,EAAE,IAAI,CAAC,eAAe;gBACzC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE;gBAClK,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;gBACpG,YAAY;gBACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;gBACzD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;YACF,IAAI,SAAsE,CAAC;YAC3E,MAAM,WAAW,GAAG,UAAU,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrE,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxF,IAAI,CAAC;gBACH,IAAI,SAA2E,CAAC;gBAChF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC;wBAAC,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAAC,CAAC;oBAC5D,OAAO,KAAK,EAAE,CAAC;wBAAC,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;4BAAE,MAAM,KAAK,CAAC;oBAAC,CAAC;gBACnH,CAAC;gBACD,IAAI,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW;oBAAE,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;gBACtI,MAAM,QAAQ,GAAG,SAAS,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBACxJ,IAAI,SAAS,EAAE,QAAQ,KAAK,MAAM,IAAI,SAAS,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;oBACtE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;oBACtB,MAAM;gBACR,CAAC;gBACD,IAAI,SAAS,EAAE,MAAM,KAAK,UAAU;oBAAE,SAAS,GAAG,SAAS,CAAC,OAA0B,CAAC;qBAClF,CAAC;oBACJ,IAAI,QAAQ;wBAAE,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC7E,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACjD,IAAI,QAAQ;wBAAE,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpG,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC3I,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC/C,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACvB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAC1B,CAAC;gBACD,MAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC;YACpE,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACxD,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,kBAAkB;mBACnD,kBAAkB,CAAC,aAAa,KAAK,MAAM;mBAC3C,kBAAkB,CAAC,cAAc,KAAK,YAAY;mBAClD,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;mBACrF,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACxB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACpH,MAAM,0BAA0B,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,kBAAkB,EAAE,CAAC,CAAC;YAChH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,IAAI,YAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACzL,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACxB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACxB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;YAC9B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3C,MAAM,gBAAgB,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC;YAC5N,MAAM,sBAAsB,GAAG,eAAe,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrF,MAAM,sBAAsB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3G,IAAI,CAAC;gBACH,IAAI,SAA2E,CAAC;gBAChF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC;wBAAC,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;oBAAC,CAAC;oBACvE,OAAO,KAAK,EAAE,CAAC;wBAAC,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;4BAAE,MAAM,KAAK,CAAC;oBAAC,CAAC;gBACnH,CAAC;gBACD,IAAI,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC,WAAW,KAAK,sBAAsB;oBAAE,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;gBAC5J,MAAM,QAAQ,GAAG,SAAS,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACxN,IAAI,UAAyC,CAAC;gBAC9C,IAAI,SAAS,EAAE,MAAM,KAAK,UAAU;oBAAE,UAAU,GAAG,SAAS,CAAC,OAAwC,CAAC;qBACjG,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC9H,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;wBACzD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;wBAC9B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;wBACtB,MAAM;oBACR,CAAC;oBACD,UAAU,GAAG,SAAS,CAAC;oBACvB,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACvF,CAAC;qBAAM,CAAC;oBACN,IAAI,QAAQ;wBAAE,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC7E,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;oBAC1D,IAAI,QAAQ;wBAAE,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;gBACrG,CAAC;gBACD,IAAI,UAAU,CAAC,iBAAiB,KAAK,MAAM;oBAAE,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,iDAAiD,CAAC,CAAC;gBACtJ,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,CAAC;gBACvD,0BAA0B,GAAG,UAAU,CAAC,iBAAiB,CAAC;gBAC1D,uBAAuB,GAAG,UAAU,CAAC,iBAAiB,CAAC;gBACvD,MAAM,CAAC,mBAAmB,GAAG,UAAU,CAAC,iBAAiB,CAAC;gBAC1D,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;gBAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;oBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBACrL,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,SAAS,CAAC;oBACd,IAAI,CAAC;wBAAC,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;oBAAC,CAAC;oBACvE,OAAO,KAAK,EAAE,CAAC;wBAAC,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;4BAAE,MAAM,KAAK,CAAC;oBAAC,CAAC;oBACjH,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;oBACvM,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU;wBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBACpG,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;oBAC9B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC3B,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;YAAE,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;QACnH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,IAAyB,EAAE,KAAc;IACzD,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC7I,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAoB;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC;IACxI,OAAO,KAAK,EAAE,QAAQ,CAAC,iBAAuC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"execution-coordinator.js","sourceRoot":"","sources":["../../src/runtime/execution-coordinator.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ export interface MemoryCandidateReceipt {
6
6
  evidenceHashes: string[];
7
7
  candidateHash: string;
8
8
  status: 'proposed';
9
+ sessionId?: string;
10
+ verifiedResolution: true;
11
+ promotionEligible: false;
9
12
  }
10
13
  export interface MemoryLifecyclePort {
11
14
  propose(input: unknown): Promise<unknown> | unknown;
@@ -15,4 +18,9 @@ export declare class MemoryWriteback {
15
18
  constructor(lifecycle?: MemoryLifecyclePort | undefined);
16
19
  propose(record: DeliveryCase): Promise<MemoryCandidateReceipt>;
17
20
  }
21
+ export declare function evaluateMemoryPromotion(candidates: MemoryCandidateReceipt[]): {
22
+ eligible: boolean;
23
+ reason: string;
24
+ evidenceHashes: string[];
25
+ };
18
26
  //# sourceMappingURL=memory-writeback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-writeback.d.ts","sourceRoot":"","sources":["../../src/runtime/memory-writeback.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAAG,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAAE;AAE7F,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,EAAE,mBAAmB,YAAA;IAEtD,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAWrE"}
1
+ {"version":3,"file":"memory-writeback.d.ts","sourceRoot":"","sources":["../../src/runtime/memory-writeback.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,IAAI,CAAC;IACzB,iBAAiB,EAAE,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAAG,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAAE;AAE7F,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,EAAE,mBAAmB,YAAA;IAEtD,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAYrE;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,sBAAsB,EAAE,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAM7I"}
@@ -10,14 +10,24 @@ export class MemoryWriteback {
10
10
  throw new DeliveryLineError('MISSING_PREREQUISITE', 'memory writeback requires a delivered case');
11
11
  const sourceRefs = record.artifacts.map(artifact => artifact.ref).filter(Boolean);
12
12
  const artifactHashes = record.artifacts.map(artifact => artifact.contentHash).filter(Boolean);
13
- const evidenceHashes = record.evidence.map(item => item.hash).filter(Boolean);
13
+ const resolutionEvidence = record.evidence.filter(item => ['verification', 'review', 'merge', 'export'].includes(item.kind));
14
+ const evidenceHashes = resolutionEvidence.map(item => item.hash).filter(Boolean);
14
15
  if (!sourceRefs.length || !artifactHashes.length || !evidenceHashes.length)
15
16
  throw new DeliveryLineError('MISSING_PREREQUISITE', 'memory candidate requires artifact and evidence references');
16
- const candidate = { caseId: record.id, sourceRefs, artifactHashes, evidenceHashes, status: 'proposed' };
17
+ const candidate = { caseId: record.id, sourceRefs, artifactHashes, evidenceHashes, status: 'proposed', sessionId: record.sessionId, verifiedResolution: true, promotionEligible: false };
17
18
  const receipt = { ...candidate, candidateHash: createHash('sha256').update(JSON.stringify(candidate)).digest('hex') };
18
19
  if (this.lifecycle)
19
20
  await this.lifecycle.propose(receipt);
20
21
  return receipt;
21
22
  }
22
23
  }
24
+ export function evaluateMemoryPromotion(candidates) {
25
+ const sessions = new Set(candidates.map(candidate => candidate.sessionId).filter(Boolean));
26
+ const evidenceHashes = [...new Set(candidates.flatMap(candidate => candidate.evidenceHashes))].sort();
27
+ if (candidates.length < 2 || sessions.size < 2)
28
+ return { eligible: false, reason: 'cross_session_threshold_not_met', evidenceHashes };
29
+ if (candidates.some(candidate => !candidate.verifiedResolution) || evidenceHashes.length < 2)
30
+ return { eligible: false, reason: 'verified_resolution_evidence_missing', evidenceHashes };
31
+ return { eligible: true, reason: 'repeated_verified_resolution', evidenceHashes };
32
+ }
23
33
  //# sourceMappingURL=memory-writeback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-writeback.js","sourceRoot":"","sources":["../../src/runtime/memory-writeback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAa1E,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,SAA+B;QAA/B,cAAS,GAAT,SAAS,CAAsB;IAAG,CAAC;IAEhE,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;YAAE,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,4CAA4C,CAAC,CAAC;QACpI,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9F,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,4DAA4D,CAAC,CAAC;QAC9L,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,UAAmB,EAAE,CAAC;QACjH,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACtH,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"memory-writeback.js","sourceRoot":"","sources":["../../src/runtime/memory-writeback.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export declare class OperationJournal implements OperationJournalPort {
7
7
  prepare(input: OperationPrepare): Promise<OperationRecord>;
8
8
  record(input: OperationRecord): Promise<void>;
9
9
  recover(operationId: string): Promise<OperationRecord & {
10
- recovery: 'none' | 'resume' | 'held';
10
+ recovery: 'none' | 'resume' | 'inspect' | 'retry' | 'abandon' | 'held';
11
11
  }>;
12
12
  }
13
13
  //# sourceMappingURL=operation-journal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation-journal.d.ts","sourceRoot":"","sources":["../../src/runtime/operation-journal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE5G,qBAAa,gBAAiB,YAAW,oBAAoB;IAG/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAFnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CAAC,YAAA;IAExG,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAY1D,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG;QAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;KAAE,CAAC;CAMxG"}
1
+ {"version":3,"file":"operation-journal.d.ts","sourceRoot":"","sources":["../../src/runtime/operation-journal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE5G,qBAAa,gBAAiB,YAAW,oBAAoB;IAG/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAFnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CAAC,YAAA;IAExG,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAY1D,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG;QAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;KAAE,CAAC;CAU1I"}
@@ -31,7 +31,11 @@ export class OperationJournal {
31
31
  const record = this.store?.findOperation ? await this.store.findOperation(operationId) : this.records.get(operationId);
32
32
  if (!record)
33
33
  throw new DeliveryLineError('OPERATION_NOT_FOUND', operationId);
34
- const recovery = record.status === 'unknown' ? 'held' : record.status === 'prepared' || record.status === 'invoked' ? 'resume' : 'none';
34
+ const recovery = record.status === 'unknown' || record.status === 'invoked'
35
+ ? 'inspect'
36
+ : record.status === 'prepared' ? 'resume'
37
+ : record.status === 'failed' && record.failure?.retryable ? 'retry'
38
+ : record.status === 'abandoned' ? 'abandon' : 'none';
35
39
  return { ...structuredClone(record), recovery };
36
40
  }
37
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operation-journal.js","sourceRoot":"","sources":["../../src/runtime/operation-journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,OAAO,gBAAgB;IAGE;IAFZ,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC7C,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,YAA6B,KAAiF;QAAjF,UAAK,GAAL,KAAK,CAA4E;IAAG,CAAC;IAElH,KAAK,CAAC,OAAO,CAAC,KAAuB;QACnC,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC,WAAW;YAAE,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACxH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAoB,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAChH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvH,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACxI,OAAO,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"operation-journal.js","sourceRoot":"","sources":["../../src/runtime/operation-journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,OAAO,gBAAgB;IAGE;IAFZ,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC7C,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,YAA6B,KAAiF;QAAjF,UAAK,GAAL,KAAK,CAA4E;IAAG,CAAC;IAElH,KAAK,CAAC,OAAO,CAAC,KAAuB;QACnC,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC,WAAW;YAAE,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACxH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAoB,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAChH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvH,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YACzE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO;oBACjE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,OAAO,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;CACF"}
@@ -15,6 +15,10 @@ export interface ExecutablePlanTask {
15
15
  rollback: string;
16
16
  testFirst?: boolean;
17
17
  cannotEditTests?: boolean;
18
+ testFirstWaiver?: {
19
+ reason: string;
20
+ approvedBy: string;
21
+ };
18
22
  }
19
23
  export interface ExecutablePlanInput {
20
24
  objective: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plan-compiler.d.ts","sourceRoot":"","sources":["../../src/runtime/plan-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oBAAoB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrF,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,EAAE;CAmDrD"}
1
+ {"version":3,"file":"plan-compiler.d.ts","sourceRoot":"","sources":["../../src/runtime/plan-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oBAAoB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrF,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,EAAE;CAiErD"}
@@ -40,6 +40,15 @@ export class PlanCompiler {
40
40
  }
41
41
  if (task.allowedFiles.some(file => !file.trim() || file.startsWith('/') || file.split('/').includes('..')))
42
42
  throw new DeliveryLineError('PLAN_NOT_EXECUTABLE', `task path escapes project: ${task.id}`);
43
+ if (/\bcheckout\b/i.test(task.rollback) || !/\b(revert|revision|commit|ref)\b/i.test(task.rollback))
44
+ throw new DeliveryLineError('PLAN_NOT_EXECUTABLE', `rollback must be revision based: ${task.id}`);
45
+ if (/\b(add|remove|replace|upgrade|downgrade)\b.*\b(dependenc|package|npm|pnpm|yarn|antd)\b/i.test(`${input.plan.objective} ${task.title} ${task.implementationSteps.join(' ')}`)
46
+ && !task.allowedFiles.some(file => /(^|\/)(package\.json|package-lock\.json|pnpm-lock\.yaml|yarn\.lock)$/.test(file))) {
47
+ throw new DeliveryLineError('PLAN_NOT_EXECUTABLE', `dependency change authority is incomplete: ${task.id}`);
48
+ }
49
+ if (task.testFirst === false && (!task.testFirstWaiver?.reason.trim() || !task.testFirstWaiver.approvedBy.trim() || task.risk === 'high')) {
50
+ throw new DeliveryLineError('PLAN_NOT_EXECUTABLE', `test-first waiver is invalid: ${task.id}`);
51
+ }
43
52
  return {
44
53
  caseId: input.caseId,
45
54
  taskId: `${input.caseId}:${task.id}`,
@@ -48,6 +57,12 @@ export class PlanCompiler {
48
57
  allowedFiles: [...task.allowedFiles],
49
58
  dependencies: task.dependsOn.map(dependency => `${input.caseId}:${dependency}`),
50
59
  implementationSteps: [...task.implementationSteps],
60
+ nodes: [
61
+ { kind: 'implementation', steps: [...task.implementationSteps] },
62
+ { kind: 'verification', commands: task.verificationCommands.map(command => ({ command: command.command, args: [...command.args] })) },
63
+ { kind: 'review', policy: 'independent review against the integrated candidate' },
64
+ { kind: 'rollback', action: task.rollback },
65
+ ],
51
66
  verification: { commands: task.verificationCommands.map(command => ({ command: command.command, args: [...command.args] })), acceptanceCriteria: [...task.acceptanceCriteria] },
52
67
  constraints: { testFirst: task.testFirst ?? true, cannotEditTests: task.cannotEditTests ?? true, recursiveWorkers: false },
53
68
  baseRevision: input.baseRevision,
@@ -1 +1 @@
1
- {"version":3,"file":"plan-compiler.js","sourceRoot":"","sources":["../../src/runtime/plan-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-compiler.js","sourceRoot":"","sources":["../../src/runtime/plan-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAkC1E,MAAM,OAAO,YAAY;IACvB,OAAO,CAAC,KAA2B;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,uCAAuC,CAAC,CAAC;QAC/J,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;YACzR,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,GAAG,IAAI,iCAAiC,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,+BAA+B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACtI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAQ,EAAE;YACrC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,0BAA0B,MAAM,EAAE,CAAC,CAAC;YACjH,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO;YAChC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAE,CAAC;YAC1E,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;oBAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,+BAA+B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5H,KAAK,CAAC,UAAU,CAAC,CAAC;YACpB,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;mBAC9K,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC/L,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,2BAA2B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,8BAA8B,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACxM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,oCAAoC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACvM,IAAI,yFAAyF,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;mBAC5K,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,sEAAsE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACxH,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,8CAA8C,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBAC1I,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,iCAAiC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACjG,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,cAAc,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC;gBAC1D,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBACpC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC/E,mBAAmB,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAClD,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE;oBAChE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;oBACrI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,qDAAqD,EAAE;oBACjF,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;iBAC5C;gBACD,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC/K,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE;gBAC1H,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;gBAC5C,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;gBAC1D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;aACtB,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/delivery-line",
3
- "version": "0.18.18",
3
+ "version": "0.18.20",
4
4
  "description": "Auditable, host-neutral delivery orchestration from requirements to verified integration artifacts.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,8 +29,8 @@
29
29
  "vitest": "^2.0.0"
30
30
  },
31
31
  "dependencies": {
32
- "@devflow-tools/sdk": "0.18.18",
33
- "@devflow-tools/workflow-engine": "0.18.18"
32
+ "@devflow-tools/sdk": "0.18.20",
33
+ "@devflow-tools/workflow-engine": "0.18.20"
34
34
  },
35
35
  "files": [
36
36
  "dist",