codex-workflow-v2 2.0.0-alpha.6.2 → 2.0.0-alpha.7.1

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 (48) hide show
  1. package/README.md +43 -71
  2. package/dist/src/alpha6/handoff.d.ts +1 -0
  3. package/dist/src/alpha6/handoff.js +6 -0
  4. package/dist/src/alpha6/handoff.js.map +1 -1
  5. package/dist/src/alpha6/milestone.d.ts +3 -0
  6. package/dist/src/alpha6/milestone.js +57 -3
  7. package/dist/src/alpha6/milestone.js.map +1 -1
  8. package/dist/src/alpha6/plan-risk.js +61 -0
  9. package/dist/src/alpha6/plan-risk.js.map +1 -1
  10. package/dist/src/alpha6/remediation.d.ts +4 -20
  11. package/dist/src/alpha6/remediation.js +73 -150
  12. package/dist/src/alpha6/remediation.js.map +1 -1
  13. package/dist/src/alpha7/autonomy.d.ts +61 -0
  14. package/dist/src/alpha7/autonomy.js +256 -0
  15. package/dist/src/alpha7/autonomy.js.map +1 -0
  16. package/dist/src/cli.js +23 -16
  17. package/dist/src/cli.js.map +1 -1
  18. package/dist/src/contracts.d.ts +11 -6
  19. package/dist/src/index.d.ts +3 -0
  20. package/dist/src/index.js +3 -0
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/state/lock.d.ts +1 -3
  23. package/dist/src/state/lock.js +2 -5
  24. package/dist/src/state/lock.js.map +1 -1
  25. package/dist/src/version.d.ts +1 -1
  26. package/dist/src/version.js +1 -1
  27. package/dist/src/workflow.d.ts +21 -65
  28. package/dist/src/workflow.js +548 -657
  29. package/dist/src/workflow.js.map +1 -1
  30. package/docs/alpha7.1-implementation-brief.md +268 -0
  31. package/docs/autonomy-guardrails.md +56 -20
  32. package/docs/decisions.md +16 -4
  33. package/docs/delegated-approval.md +12 -5
  34. package/docs/development-flow.md +12 -7
  35. package/docs/release.md +4 -6
  36. package/docs/updating-existing-project.md +9 -39
  37. package/docs/validation-report.md +50 -63
  38. package/package.json +2 -2
  39. package/plugins/codex-workflow-gateway/references/protocol.md +53 -17
  40. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +33 -9
  41. package/references/state-machine.md +31 -13
  42. package/roles/delivery-coordinator.md +10 -1
  43. package/roles/technical-planner.md +3 -0
  44. package/schemas/context-envelope.schema.json +0 -10
  45. package/schemas/milestone-autonomy-event.schema.json +45 -0
  46. package/schemas/milestone-scope-change-event.schema.json +3 -1
  47. package/schemas/plan-risk-audit-event.schema.json +21 -4
  48. package/schemas/corrective-plan-audit-record.schema.json +0 -47
@@ -1,12 +1,11 @@
1
- import { appendFileSync, existsSync, readFileSync } from 'node:fs';
1
+ import { existsSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { WorkflowError } from '../errors.js';
4
4
  import { createUlid } from '../ulid.js';
5
5
  import { assertHash64 } from './store-sidecars.js';
6
- import { readReviewerAttestations, readStepReviewEvents } from './review.js';
6
+ import { buildCurrentStrictStepReviewCycle, readReviewerAttestations, readStepReviewEvents, } from './review.js';
7
7
  export const REMEDIATION_EVENTS_SIDECAR = 'remediation-events.jsonl';
8
8
  export const CORRECTIVE_DECISIONS_SIDECAR = 'corrective-decisions.jsonl';
9
- export const CORRECTIVE_PLAN_AUDITS_SIDECAR = 'corrective-plan-audits.jsonl';
10
9
  const COMMIT_SHA_PATTERN = /^[a-f0-9]{40}$/;
11
10
  const REMEDIATION_FAILURE_KINDS = new Set([
12
11
  'checks-failed',
@@ -20,84 +19,18 @@ const CORRECTIVE_DECISION_VALUES = new Set([
20
19
  'split-required',
21
20
  'stop-escalate',
22
21
  ]);
23
- export function readCorrectivePlanAuditRecords(store, task) {
24
- const file = path.join(store.taskRoot(task.projectId, task.id), CORRECTIVE_PLAN_AUDITS_SIDECAR);
25
- if (!existsSync(file))
26
- return [];
27
- const records = [];
28
- for (const [index, line] of readFileSync(file, 'utf8').split('\n').entries()) {
29
- if (!line)
30
- continue;
31
- let parsed;
32
- try {
33
- parsed = JSON.parse(line);
34
- }
35
- catch (error) {
36
- throw new WorkflowError('STATE_CORRUPT', `Invalid corrective Plan audit log: ${file}`, {
37
- line: index + 1,
38
- cause: error instanceof Error ? error.message : String(error),
39
- });
40
- }
41
- if (!parsed || typeof parsed !== 'object' || !('decisionEventId' in parsed)) {
42
- // Alpha.6 already used this filename for the older Task-level review audit.
43
- // Those records remain readable but do not authorize guarded corrective execution.
44
- continue;
45
- }
46
- const record = parsed;
47
- validateCorrectivePlanAuditRecord(record, task, file, index + 1);
48
- records.push(record);
49
- }
50
- return records;
51
- }
52
- export function appendCorrectivePlanAuditRecord(store, previous, saved, stepId, decision, audit, now) {
53
- if (!previous.planHash || !saved.planHash) {
54
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit requires previous and replacement Plan hashes.');
55
- }
56
- const record = {
57
- recordedAt: now.toISOString(),
58
- taskId: previous.id,
59
- taskRevision: previous.revision,
60
- stepId,
61
- triggeringAttemptCount: decision.triggeringAttemptCount,
62
- decisionEventId: decision.eventId,
63
- decisionPlanHash: decision.planHash,
64
- previousPlanHash: previous.planHash,
65
- correctivePlanHash: saved.planHash,
66
- failedReviewAttempts: decision.triggeringAttemptCount - 1,
67
- auditor: audit.auditor.trim(),
68
- summary: audit.summary.trim(),
69
- decision: 'continue-fix',
70
- reviewedFindingIds: normalizeStringList(audit.reviewedFindingIds, 'Corrective Plan audit reviewedFindingIds'),
71
- };
72
- validateCorrectivePlanAuditRecord(record, saved, path.join(store.taskRoot(saved.projectId, saved.id), CORRECTIVE_PLAN_AUDITS_SIDECAR), readCorrectivePlanAuditRecords(store, saved).length + 1);
73
- appendFileSync(path.join(store.taskRoot(saved.projectId, saved.id), CORRECTIVE_PLAN_AUDITS_SIDECAR), `${JSON.stringify(record)}\n`, { encoding: 'utf8', mode: 0o600 });
74
- return record;
75
- }
76
- export function hasCorrectivePlanAuditBinding(store, task, decision) {
77
- if (!task.planHash || decision.decision !== 'continue-fix')
78
- return false;
79
- const matches = readCorrectivePlanAuditRecords(store, task).filter((record) => record.taskId === task.id
80
- && record.stepId === decision.stepId
81
- && record.triggeringAttemptCount === decision.triggeringAttemptCount
82
- && record.decisionEventId === decision.eventId
83
- && record.decisionPlanHash === decision.planHash
84
- && record.correctivePlanHash === task.planHash);
85
- if (matches.length > 1) {
86
- throw new WorkflowError('STATE_CORRUPT', 'Multiple corrective Plan audits bind the same decision and Plan.', {
87
- taskId: task.id,
88
- stepId: decision.stepId,
89
- decisionEventId: decision.eventId,
90
- correctivePlanHash: task.planHash,
91
- });
92
- }
93
- return matches.length === 1;
94
- }
95
22
  export function readRemediationEvents(store, task) {
96
23
  return validateRemediationHistory(store, task).remediationEvents;
97
24
  }
98
25
  export function readCorrectiveDecisionEvents(store, task) {
99
26
  return validateRemediationHistory(store, task).correctiveDecisionEvents;
100
27
  }
28
+ export function defaultCorrectiveAuditorActor(taskId) {
29
+ if (!/^TASK-[0-9A-HJKMNP-TV-Z]{26}$/.test(taskId)) {
30
+ throw new WorkflowError('INVALID_ARGUMENT', `Cannot derive a corrective Auditor actor from invalid Task ID ${taskId}.`);
31
+ }
32
+ return `agent:corrective-auditor:${taskId.toLowerCase()}`;
33
+ }
101
34
  export function assertCorrectiveAuditorIndependence(store, task, stepId, auditor) {
102
35
  const remediationEvents = readRemediationEvents(store, task).filter((event) => event.stepId === stepId);
103
36
  const latestRemediationEvent = remediationEvents.at(-1) ?? null;
@@ -171,7 +104,7 @@ export function appendRemediationEvent(store, task, stepId, failureKind, failure
171
104
  if (matching.length === 1) {
172
105
  const reused = matching[0];
173
106
  const priorEvents = existing.filter((event) => event.attemptOrdinal < reused.attemptOrdinal);
174
- const gate = deriveAttemptGateFromHistory(task, stepId, planRiskAudit, priorEvents, readCorrectiveDecisionEvents(store, task), { correctivePlanBound: (decision) => hasCorrectivePlanAuditBinding(store, task, decision) });
107
+ const gate = deriveAttemptGateFromHistory(task, stepId, planRiskAudit, priorEvents, readCorrectiveDecisionEvents(store, task));
175
108
  if (reused.attemptOrdinal !== gate.nextAttemptOrdinal || reused.mode !== gate.mode || reused.guardedCategory !== gate.guardedCategory) {
176
109
  throw new WorkflowError('STATE_CORRUPT', 'Existing remediation event conflicts with the current guarded retry binding.', {
177
110
  taskId: task.id,
@@ -185,7 +118,7 @@ export function appendRemediationEvent(store, task, stepId, failureKind, failure
185
118
  }
186
119
  return reused;
187
120
  }
188
- const gate = deriveAttemptGateFromHistory(task, stepId, planRiskAudit, existing, readCorrectiveDecisionEvents(store, task), { correctivePlanBound: (decision) => hasCorrectivePlanAuditBinding(store, task, decision) });
121
+ const gate = deriveAttemptGateFromHistory(task, stepId, planRiskAudit, existing, readCorrectiveDecisionEvents(store, task));
189
122
  return store.appendSidecarEvent(store.taskRoot(task.projectId, task.id), REMEDIATION_EVENTS_SIDECAR, {
190
123
  eventId: `RME-${createUlid(now.getTime())}`,
191
124
  recordedAt: now.toISOString(),
@@ -281,18 +214,34 @@ export function assertGuardedRemediationAttemptAllowed(store, task, stepId, plan
281
214
  const remediationEvents = readRemediationEvents(store, task).filter((event) => event.stepId === stepId);
282
215
  return deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEvents, readCorrectiveDecisionEvents(store, task), {
283
216
  enforceRuntimeGate: true,
284
- correctivePlanBound: (decision) => hasCorrectivePlanAuditBinding(store, task, decision),
285
217
  });
286
218
  }
287
- export function findFailedGuardedStepRequiringCorrectiveDecision(store, task, planRiskAudit) {
288
- const failedGuardedSteps = task.steps.filter((step) => step.status === 'failed' && planRiskAudit.reviewRequiredStepIds.includes(step.id));
289
- const matches = failedGuardedSteps
290
- .map((step) => {
291
- const remediationEvents = readRemediationEvents(store, task).filter((event) => event.stepId === step.id);
292
- if (remediationEvents.length < 2)
293
- return null;
294
- return deriveAttemptGateFromHistory(task, step.id, planRiskAudit, remediationEvents, readCorrectiveDecisionEvents(store, task), { correctivePlanBound: (decision) => hasCorrectivePlanAuditBinding(store, task, decision) });
295
- })
219
+ export function readGuardedRemediationPostureForStep(store, task, stepId, planRiskAudit) {
220
+ if (!planRiskAudit.reviewRequiredStepIds.includes(stepId))
221
+ return null;
222
+ const step = task.steps.find((candidate) => candidate.id === stepId) ?? null;
223
+ if (!step) {
224
+ throw new WorkflowError('STATE_CORRUPT', `Task ${task.id} is missing guarded Step ${stepId}.`, {
225
+ taskId: task.id,
226
+ stepId,
227
+ });
228
+ }
229
+ const remediationEvents = readRemediationEvents(store, task).filter((event) => event.stepId === stepId);
230
+ if (remediationEvents.length < 2)
231
+ return null;
232
+ if (step.status === 'failed') {
233
+ return deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEvents, readCorrectiveDecisionEvents(store, task));
234
+ }
235
+ if (task.status !== 'blocked' || step.status !== 'in_progress' || !step.evidence)
236
+ return null;
237
+ const currentCycle = buildCurrentStrictStepReviewCycle(store, task, stepId);
238
+ if (currentCycle.resolution !== 'unverified')
239
+ return null;
240
+ return deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEvents, readCorrectiveDecisionEvents(store, task));
241
+ }
242
+ export function findCurrentGuardedRemediationPosture(store, task, planRiskAudit) {
243
+ const matches = planRiskAudit.reviewRequiredStepIds
244
+ .map((stepId) => readGuardedRemediationPostureForStep(store, task, stepId, planRiskAudit))
296
245
  .filter((value) => value !== null);
297
246
  if (matches.length === 0)
298
247
  return null;
@@ -304,18 +253,18 @@ export function findFailedGuardedStepRequiringCorrectiveDecision(store, task, pl
304
253
  }
305
254
  return matches[0];
306
255
  }
256
+ export function findFailedGuardedStepRequiringCorrectiveDecision(store, task, planRiskAudit) {
257
+ const posture = findCurrentGuardedRemediationPosture(store, task, planRiskAudit);
258
+ if (!posture)
259
+ return null;
260
+ return posture.posture === 'decision-required' || posture.posture === 'hard-stop'
261
+ ? posture
262
+ : null;
263
+ }
307
264
  function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEvents, correctiveDecisions, options = {}) {
308
265
  const attemptCount = remediationEvents.length;
309
266
  const nextAttemptOrdinal = attemptCount + 1;
310
267
  const guardedCategory = requireGuardedCategory(planRiskAudit, stepId);
311
- if (attemptCount >= 3) {
312
- throw new WorkflowError('TRANSITION_BLOCKED', `Guarded Step ${stepId} reached the hard stop after its third failed remediation review.`, {
313
- taskId: task.id,
314
- stepId,
315
- failedAttemptCount: attemptCount,
316
- requiredAction: 'Record split-required or stop-escalate; another remediation run is prohibited.',
317
- });
318
- }
319
268
  if (attemptCount < 2) {
320
269
  return {
321
270
  stepId,
@@ -324,19 +273,28 @@ function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEv
324
273
  nextAttemptOrdinal,
325
274
  mode: 'ordinary',
326
275
  correctiveDecision: null,
276
+ posture: 'ordinary',
327
277
  };
328
278
  }
329
279
  const correctiveDecision = findCurrentCorrectiveDecision(task, stepId, nextAttemptOrdinal, correctiveDecisions);
330
- if (!correctiveDecision) {
331
- if (options.enforceRuntimeGate) {
332
- throw new WorkflowError('TRANSITION_BLOCKED', `Guarded Step ${stepId} exhausted two ordinary remediation attempts and requires a corrective decision before another run.`, {
333
- taskId: task.id,
280
+ if (attemptCount >= 3) {
281
+ if (correctiveDecision?.decision === 'split-required' || correctiveDecision?.decision === 'stop-escalate') {
282
+ return {
334
283
  stepId,
284
+ guardedCategory,
335
285
  attemptCount,
336
- requiredSidecar: CORRECTIVE_DECISIONS_SIDECAR,
337
286
  nextAttemptOrdinal,
338
- allowedDecision: 'continue-fix',
339
- escalationDecisions: ['replan-required', 'split-required', 'stop-escalate'],
287
+ mode: 'ordinary',
288
+ correctiveDecision,
289
+ posture: correctiveDecision.decision,
290
+ };
291
+ }
292
+ if (options.enforceRuntimeGate) {
293
+ throw new WorkflowError('TRANSITION_BLOCKED', `Guarded Step ${stepId} reached the hard stop after its third failed remediation review.`, {
294
+ taskId: task.id,
295
+ stepId,
296
+ failedAttemptCount: attemptCount,
297
+ requiredAction: 'Record split-required or stop-escalate; another remediation run is prohibited.',
340
298
  });
341
299
  }
342
300
  return {
@@ -345,18 +303,20 @@ function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEv
345
303
  attemptCount,
346
304
  nextAttemptOrdinal,
347
305
  mode: 'ordinary',
348
- correctiveDecision: null,
306
+ correctiveDecision,
307
+ posture: 'hard-stop',
349
308
  };
350
309
  }
351
- if (correctiveDecision.decision === 'continue-fix'
352
- && !options.correctivePlanBound?.(correctiveDecision)) {
310
+ if (!correctiveDecision) {
353
311
  if (options.enforceRuntimeGate) {
354
- throw new WorkflowError('TRANSITION_BLOCKED', `Guarded Step ${stepId} requires a full corrective Plan with an independent corrective audit before the third run.`, {
312
+ throw new WorkflowError('TRANSITION_BLOCKED', `Guarded Step ${stepId} exhausted two ordinary remediation attempts and requires a corrective decision before another run.`, {
355
313
  taskId: task.id,
356
314
  stepId,
357
315
  attemptCount,
358
- decisionEventId: correctiveDecision.eventId,
359
- requiredAction: 'Run task plan-set with a full replacement Plan and an independent corrective audit.',
316
+ requiredSidecar: CORRECTIVE_DECISIONS_SIDECAR,
317
+ nextAttemptOrdinal,
318
+ allowedDecision: 'continue-fix',
319
+ escalationDecisions: ['replan-required', 'split-required', 'stop-escalate'],
360
320
  });
361
321
  }
362
322
  return {
@@ -365,7 +325,8 @@ function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEv
365
325
  attemptCount,
366
326
  nextAttemptOrdinal,
367
327
  mode: 'ordinary',
368
- correctiveDecision,
328
+ correctiveDecision: null,
329
+ posture: 'decision-required',
369
330
  };
370
331
  }
371
332
  if (correctiveDecision.planHash !== task.planHash) {
@@ -377,16 +338,7 @@ function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEv
377
338
  nextAttemptOrdinal,
378
339
  mode: 'corrective',
379
340
  correctiveDecision,
380
- };
381
- }
382
- if (correctiveDecision.decision === 'continue-fix' && options.correctivePlanBound?.(correctiveDecision)) {
383
- return {
384
- stepId,
385
- guardedCategory,
386
- attemptCount,
387
- nextAttemptOrdinal,
388
- mode: 'corrective',
389
- correctiveDecision,
341
+ posture: 'replan-ready',
390
342
  };
391
343
  }
392
344
  if (options.enforceRuntimeGate) {
@@ -406,6 +358,7 @@ function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEv
406
358
  nextAttemptOrdinal,
407
359
  mode: 'ordinary',
408
360
  correctiveDecision,
361
+ posture: 'decision-required',
409
362
  };
410
363
  }
411
364
  if (correctiveDecision.decision !== 'continue-fix' && options.enforceRuntimeGate) {
@@ -418,6 +371,7 @@ function deriveAttemptGateFromHistory(task, stepId, planRiskAudit, remediationEv
418
371
  nextAttemptOrdinal,
419
372
  mode: correctiveDecision.decision === 'continue-fix' ? 'corrective' : 'ordinary',
420
373
  correctiveDecision,
374
+ posture: correctiveDecision.decision === 'continue-fix' ? 'continue-fix' : correctiveDecision.decision,
421
375
  };
422
376
  }
423
377
  function findCurrentCorrectiveDecision(task, stepId, triggeringAttemptOrdinal, events) {
@@ -806,37 +760,6 @@ function validateCorrectiveDecisionAudit(audit) {
806
760
  }
807
761
  normalizeStringList(audit.reviewedFindingIds, 'Corrective decision reviewedFindingIds');
808
762
  }
809
- function validateCorrectivePlanAuditRecord(record, task, file, line) {
810
- const details = { file, line, taskId: task.id };
811
- if (record.taskId !== task.id) {
812
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit taskId does not match the current Task.', details);
813
- }
814
- if (!Number.isInteger(record.taskRevision) || record.taskRevision < 0) {
815
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit taskRevision is invalid.', details);
816
- }
817
- if (typeof record.stepId !== 'string' || !record.stepId.trim()) {
818
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit stepId is missing.', details);
819
- }
820
- if (!Number.isInteger(record.triggeringAttemptCount) || record.triggeringAttemptCount !== 3) {
821
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit must bind the third attempt.', details);
822
- }
823
- if (typeof record.decisionEventId !== 'string' || !record.decisionEventId.trim()) {
824
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit decisionEventId is missing.', details);
825
- }
826
- assertHash64(record.decisionPlanHash, `Corrective Plan audit decisionPlanHash at ${file}:${line}`);
827
- assertHash64(record.previousPlanHash, `Corrective Plan audit previousPlanHash at ${file}:${line}`);
828
- assertHash64(record.correctivePlanHash, `Corrective Plan audit correctivePlanHash at ${file}:${line}`);
829
- if (record.correctivePlanHash === record.previousPlanHash) {
830
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit must bind a changed replacement Plan.', details);
831
- }
832
- if (record.failedReviewAttempts !== 2 || record.decision !== 'continue-fix') {
833
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit has an invalid breaker posture.', details);
834
- }
835
- if (typeof record.auditor !== 'string' || !record.auditor.trim() || typeof record.summary !== 'string' || !record.summary.trim()) {
836
- throw new WorkflowError('STATE_CORRUPT', 'Corrective Plan audit requires auditor and summary.', details);
837
- }
838
- normalizeStringList(record.reviewedFindingIds, 'Corrective Plan audit reviewedFindingIds');
839
- }
840
763
  function normalizeStringList(values, label) {
841
764
  if (!Array.isArray(values)) {
842
765
  throw new WorkflowError('INVALID_ARGUMENT', `${label} must be an array.`);
@@ -1 +1 @@
1
- {"version":3,"file":"remediation.js","sourceRoot":"","sources":["../../../src/alpha6/remediation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remediation.js","sourceRoot":"","sources":["../../../src/alpha6/remediation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { DelegationGrant, DelegationPolicyInput, MilestonePlanInput, MilestoneState, SidecarEventRecord } from '../contracts.js';
2
+ import type { FileStateStore } from '../state/store.js';
3
+ export interface MilestoneAutonomyEvent extends SidecarEventRecord {
4
+ eventType: 'issued';
5
+ projectId: string;
6
+ milestoneId: string;
7
+ milestoneRevision: number;
8
+ principal: string;
9
+ delegate: string;
10
+ issuedAt: string;
11
+ expiresAt: string;
12
+ semanticScopeHash: string;
13
+ delegationGrantId: string;
14
+ delegationPolicyHash: string;
15
+ }
16
+ export interface MilestoneAutonomyPreparation {
17
+ kind: 'milestone_autonomy_contract';
18
+ projectId: string;
19
+ milestoneId: string;
20
+ milestoneRevision: number;
21
+ principal: string;
22
+ delegate: string;
23
+ expiresAt: string;
24
+ semanticScopeHash: string;
25
+ delegationPolicy: DelegationPolicyInput;
26
+ delegationPolicyHash: string;
27
+ confirmationCodeBindingHash: string;
28
+ confirmationCode: string;
29
+ }
30
+ export interface ActiveMilestoneAutonomy {
31
+ contract: MilestoneAutonomyEvent;
32
+ grant: DelegationGrant;
33
+ }
34
+ export declare function milestoneSemanticScopeHash(milestone: Pick<MilestoneState, 'id' | 'discoveryId' | 'baseBranch' | 'outcome' | 'successSignal' | 'acceptance' | 'checks'>): string;
35
+ export declare function prepareMilestoneAutonomyContract(options: {
36
+ projectId: string;
37
+ milestone: MilestoneState;
38
+ principal: string;
39
+ delegate: string;
40
+ expiresAt: string;
41
+ now: Date;
42
+ }): MilestoneAutonomyPreparation;
43
+ export declare function applyMilestoneAutonomyContract(options: {
44
+ store: FileStateStore;
45
+ projectId: string;
46
+ milestone: MilestoneState;
47
+ principal: string;
48
+ delegate: string;
49
+ expiresAt: string;
50
+ confirmationCode: string;
51
+ now: Date;
52
+ }): ActiveMilestoneAutonomy;
53
+ export declare function requireActiveMilestoneAutonomy(options: {
54
+ store: FileStateStore;
55
+ projectId: string;
56
+ milestone: MilestoneState;
57
+ actor: string;
58
+ now: Date;
59
+ }): ActiveMilestoneAutonomy;
60
+ export declare function assertAutonomousPlanEvolution(milestone: MilestoneState, plan: MilestonePlanInput, contract: MilestoneAutonomyEvent): void;
61
+ export declare function readMilestoneAutonomyEvents(store: FileStateStore, projectId: string, milestoneId: string): MilestoneAutonomyEvent[];