codex-workflow-v2 2.0.0-alpha.4 → 2.0.0-alpha.7

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 (82) hide show
  1. package/README.md +114 -10
  2. package/dist/src/alpha6/adoption.d.ts +55 -0
  3. package/dist/src/alpha6/adoption.js +920 -0
  4. package/dist/src/alpha6/adoption.js.map +1 -0
  5. package/dist/src/alpha6/handoff.d.ts +40 -0
  6. package/dist/src/alpha6/handoff.js +981 -0
  7. package/dist/src/alpha6/handoff.js.map +1 -0
  8. package/dist/src/alpha6/journal.d.ts +30 -0
  9. package/dist/src/alpha6/journal.js +369 -0
  10. package/dist/src/alpha6/journal.js.map +1 -0
  11. package/dist/src/alpha6/milestone.d.ts +52 -0
  12. package/dist/src/alpha6/milestone.js +1103 -0
  13. package/dist/src/alpha6/milestone.js.map +1 -0
  14. package/dist/src/alpha6/plan-risk.d.ts +32 -0
  15. package/dist/src/alpha6/plan-risk.js +908 -0
  16. package/dist/src/alpha6/plan-risk.js.map +1 -0
  17. package/dist/src/alpha6/remediation.d.ts +21 -0
  18. package/dist/src/alpha6/remediation.js +754 -0
  19. package/dist/src/alpha6/remediation.js.map +1 -0
  20. package/dist/src/alpha6/review.d.ts +46 -0
  21. package/dist/src/alpha6/review.js +785 -0
  22. package/dist/src/alpha6/review.js.map +1 -0
  23. package/dist/src/alpha6/store-sidecars.d.ts +35 -0
  24. package/dist/src/alpha6/store-sidecars.js +281 -0
  25. package/dist/src/alpha6/store-sidecars.js.map +1 -0
  26. package/dist/src/alpha7/autonomy.d.ts +61 -0
  27. package/dist/src/alpha7/autonomy.js +256 -0
  28. package/dist/src/alpha7/autonomy.js.map +1 -0
  29. package/dist/src/cli.js +109 -19
  30. package/dist/src/cli.js.map +1 -1
  31. package/dist/src/contracts.d.ts +268 -0
  32. package/dist/src/git.js +2 -1
  33. package/dist/src/git.js.map +1 -1
  34. package/dist/src/index.d.ts +5 -0
  35. package/dist/src/index.js +3 -0
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/reviewer.d.ts +6 -1
  38. package/dist/src/reviewer.js +145 -32
  39. package/dist/src/reviewer.js.map +1 -1
  40. package/dist/src/state/lock.d.ts +1 -0
  41. package/dist/src/state/lock.js +7 -1
  42. package/dist/src/state/lock.js.map +1 -1
  43. package/dist/src/state/store.d.ts +39 -1
  44. package/dist/src/state/store.js +127 -1
  45. package/dist/src/state/store.js.map +1 -1
  46. package/dist/src/version.d.ts +1 -1
  47. package/dist/src/version.js +1 -1
  48. package/dist/src/workflow.d.ts +113 -8
  49. package/dist/src/workflow.js +1635 -78
  50. package/dist/src/workflow.js.map +1 -1
  51. package/docs/autonomy-guardrails.md +164 -0
  52. package/docs/decisions.md +39 -0
  53. package/docs/delegated-approval.md +37 -5
  54. package/docs/development-flow.md +45 -1
  55. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +155 -136
  56. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +236 -223
  57. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +225 -206
  58. package/docs/project-memory.md +7 -0
  59. package/docs/release.md +9 -0
  60. package/docs/updating-existing-project.md +63 -5
  61. package/docs/validation-report.md +52 -34
  62. package/package.json +1 -1
  63. package/plugins/codex-workflow-gateway/references/protocol.md +182 -6
  64. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +35 -1
  65. package/references/git-policy.md +5 -2
  66. package/references/state-machine.md +43 -0
  67. package/references/validation-and-review.md +28 -1
  68. package/roles/delivery-coordinator.md +21 -1
  69. package/roles/independent-reviewer.md +3 -0
  70. package/roles/technical-planner.md +10 -0
  71. package/roles/worker.md +4 -0
  72. package/schemas/adoption-posture-event.schema.json +129 -0
  73. package/schemas/corrective-decision-event.schema.json +55 -0
  74. package/schemas/corrective-plan-audit.schema.json +20 -0
  75. package/schemas/milestone-autonomy-event.schema.json +45 -0
  76. package/schemas/milestone-scope-change-event.schema.json +70 -0
  77. package/schemas/milestone-transaction-journal.schema.json +95 -0
  78. package/schemas/plan-risk-audit-event.schema.json +107 -0
  79. package/schemas/remediation-event.schema.json +53 -0
  80. package/schemas/reviewer-attestation-event.schema.json +49 -0
  81. package/schemas/step-review-event.schema.json +74 -0
  82. package/schemas/task-handoff-event.schema.json +116 -0
@@ -271,6 +271,274 @@ export interface ReviewRecord {
271
271
  }>;
272
272
  }
273
273
  export type ReviewInput = Pick<ReviewRecord, 'status' | 'reviewer' | 'summary' | 'findings'>;
274
+ export interface CorrectivePlanAuditInput {
275
+ auditor: string;
276
+ summary: string;
277
+ decision: 'continue-fix' | 'replan-required' | 'split-required' | 'stop-escalate';
278
+ reviewedFindingIds: string[];
279
+ }
280
+ export type GuardedRiskCategory = 'migration' | 'concurrency' | 'restart-replay' | 'crash-window' | 'external-provider' | 'runtime-composition' | 'security-boundary' | 'auth-secrets' | 'irreversible-execution';
281
+ export type PlanRiskAuditDecision = 'approved' | 'approved-with-rationale' | 'split-required' | 'stop-escalate';
282
+ export type StepReviewEventType = 'pending' | 'review-recorded' | 'attestation-verified';
283
+ export type RemediationMode = 'ordinary' | 'corrective';
284
+ export type RemediationFailureKind = 'checks-failed' | 'review-failed' | 'review-unverified';
285
+ export type TaskHandoffEventType = 'handoff' | 'claim' | 'handback';
286
+ export type TaskCoordinationLevel = 'C1';
287
+ export type AdoptionPostureEventType = 'project-registration' | 'adoption-apply';
288
+ export type MilestoneTransactionPhase = 'prepared' | 'applying' | 'applied' | 'rolled_back';
289
+ export interface SidecarEventRecord {
290
+ eventId: string;
291
+ previousEventHash: string | null;
292
+ recordedAt: string;
293
+ eventHash: string;
294
+ }
295
+ export interface PlanRiskAuditStepClassification {
296
+ stepId: string;
297
+ categories: GuardedRiskCategory[];
298
+ reviewRequired: boolean;
299
+ failureModes: string[];
300
+ requiredEvidence: string[];
301
+ proofObligations?: PlanRiskProofObligation[];
302
+ }
303
+ export interface PlanRiskProofObligation {
304
+ failureMode: string;
305
+ counterexample: string;
306
+ expectedResult: string;
307
+ evidence: string;
308
+ }
309
+ export interface PlanRiskAuditEvent extends SidecarEventRecord {
310
+ taskId: string;
311
+ taskRevision: number;
312
+ briefHash: string;
313
+ planHash: string;
314
+ knowledgeMapRevision: number;
315
+ knowledgeMapHash: string;
316
+ planner: string;
317
+ auditor: string;
318
+ summary: string;
319
+ decision: PlanRiskAuditDecision;
320
+ splitRationale: string | null;
321
+ stepClassifications: PlanRiskAuditStepClassification[];
322
+ }
323
+ export interface StepReviewEvent extends SidecarEventRecord {
324
+ taskId: string;
325
+ taskRevision: number;
326
+ stepId: string;
327
+ stepDefinitionHash: string;
328
+ completionCommit: string;
329
+ checksHash: string;
330
+ planHash: string;
331
+ evidenceHash: string | null;
332
+ eventType: StepReviewEventType;
333
+ decision: ReviewStatus;
334
+ reviewerAttestationHash: string | null;
335
+ }
336
+ export interface ReviewerAttestationEvent extends SidecarEventRecord {
337
+ taskId: string;
338
+ stepId: string;
339
+ reviewer: string;
340
+ isolationResult: 'verified' | 'unverified';
341
+ outputHash: string;
342
+ reviewedCommit: string;
343
+ reviewEventHash: string;
344
+ planHash: string;
345
+ evidenceHash: string | null;
346
+ }
347
+ export interface RemediationFailureEvidence {
348
+ completionCommit: string;
349
+ checksHash: string;
350
+ reviewEventHash: string | null;
351
+ reviewerAttestationHash: string | null;
352
+ }
353
+ export interface RemediationEvent extends SidecarEventRecord {
354
+ taskId: string;
355
+ stepId: string;
356
+ guardedCategory: GuardedRiskCategory;
357
+ failureKind: RemediationFailureKind;
358
+ failureEvidence: RemediationFailureEvidence;
359
+ attemptOrdinal: number;
360
+ mode: RemediationMode;
361
+ }
362
+ export interface CorrectiveDecisionEvent extends SidecarEventRecord {
363
+ taskId: string;
364
+ stepId: string;
365
+ triggeringAttemptCount: number;
366
+ decision: CorrectivePlanAuditInput['decision'];
367
+ auditor: string;
368
+ coveredFindingIds: string[];
369
+ coveredEventIds: string[];
370
+ planHash: string;
371
+ }
372
+ export interface TaskHandoffMachineEvidence {
373
+ hostname: string;
374
+ pid: number;
375
+ platform: string;
376
+ arch: string;
377
+ nodeVersion: string;
378
+ }
379
+ export interface TaskHandbackRecord {
380
+ status: TaskStatus;
381
+ mergedCommit: string | null;
382
+ planHash: string | null;
383
+ resultHash: string | null;
384
+ evidenceHash: string | null;
385
+ reviewAttestationHash: string | null;
386
+ knowledgeMapRevision: number | null;
387
+ knowledgeMapHash: string | null;
388
+ limitations: string[];
389
+ recommendedNext: string;
390
+ }
391
+ export interface TaskHandoffBundle {
392
+ handoffId: string;
393
+ milestoneId: string | null;
394
+ milestoneDisplayNumber: number | null;
395
+ taskId: string;
396
+ taskDisplayNumber: number | null;
397
+ taskRevision: number;
398
+ briefHash: string;
399
+ planHash: string | null;
400
+ knowledgeMapRevision: number | null;
401
+ knowledgeMapHash: string | null;
402
+ expectedNext: string;
403
+ delegate: string;
404
+ grantId: string | null;
405
+ claimToken: string;
406
+ createdAt: string;
407
+ expiresAt: string;
408
+ prompt: string;
409
+ }
410
+ export interface TaskHandoffEvent extends SidecarEventRecord {
411
+ handoffId: string;
412
+ taskId: string;
413
+ taskRevision: number;
414
+ milestoneId: string | null;
415
+ milestoneDisplayNumber: number | null;
416
+ taskDisplayNumber: number | null;
417
+ briefHash: string;
418
+ planHash: string | null;
419
+ knowledgeMapRevision: number | null;
420
+ knowledgeMapHash: string | null;
421
+ expectedNext: string;
422
+ delegate: string;
423
+ grantId: string | null;
424
+ claimTokenHash: string;
425
+ expiresAt: string;
426
+ eventType: TaskHandoffEventType;
427
+ coordinationLevel: TaskCoordinationLevel;
428
+ actor: string;
429
+ targetActor: string | null;
430
+ machineEvidence: TaskHandoffMachineEvidence;
431
+ writerLeaseTokenHash: string | null;
432
+ reason: string;
433
+ handback: TaskHandbackRecord | null;
434
+ }
435
+ export interface MilestoneScopeSnapshot {
436
+ outcome: string;
437
+ successSignal: string;
438
+ acceptance: string[];
439
+ checks: string[];
440
+ taskIds: string[];
441
+ memberships: MilestoneMembership[];
442
+ }
443
+ export interface MilestoneScopeChangeEvent extends SidecarEventRecord {
444
+ milestoneId: string;
445
+ previousMilestoneRevision: number;
446
+ previousPlanHash: string | null;
447
+ previousMembershipRevision: number;
448
+ candidatePlanHash: string;
449
+ candidateMembershipRevision: number;
450
+ before: MilestoneScopeSnapshot;
451
+ after: MilestoneScopeSnapshot;
452
+ actor: string;
453
+ confirmationCodeBindingHash: string;
454
+ authorizationMode?: 'human' | 'milestone-autonomy';
455
+ autonomyContractEventHash?: string | null;
456
+ }
457
+ export interface AdoptionTaskStepSnapshot {
458
+ stepId: string;
459
+ status: 'completed' | 'skipped';
460
+ evidenceHash: string | null;
461
+ }
462
+ export interface AdoptionTaskBaseline {
463
+ taskId: string;
464
+ taskRevision: number;
465
+ status: Exclude<TaskStatus, 'merged' | 'cancelled'>;
466
+ completedSteps: AdoptionTaskStepSnapshot[];
467
+ remainingStepIds: string[];
468
+ }
469
+ export interface AdoptionRepositoryIdentity {
470
+ repositoryRoot: string;
471
+ gitCommonDir: string;
472
+ }
473
+ export interface AdoptionPostureEvent extends SidecarEventRecord {
474
+ projectId: string;
475
+ eventType: AdoptionPostureEventType;
476
+ actor: string | null;
477
+ packageVersion: string;
478
+ protocolVersion: typeof PROTOCOL_VERSION;
479
+ stateSchemaVersion: typeof STATE_SCHEMA_VERSION;
480
+ adoptionBoundaryAt: string;
481
+ baselineDigestHash: string;
482
+ sidecarBaselineHash: string;
483
+ confirmationCodeBindingHash: string | null;
484
+ repositoryIdentity: AdoptionRepositoryIdentity;
485
+ terminalMilestones: Array<{
486
+ milestoneId: string;
487
+ revision: number;
488
+ status: Extract<MilestoneStatus, 'accepted' | 'cancelled'>;
489
+ }>;
490
+ terminalTasks: Array<{
491
+ taskId: string;
492
+ revision: number;
493
+ status: Extract<TaskStatus, 'merged' | 'cancelled'>;
494
+ }>;
495
+ activeTasks: AdoptionTaskBaseline[];
496
+ }
497
+ export interface MilestoneTransactionJournalFileSnapshot {
498
+ exists: boolean;
499
+ contentHash: string | null;
500
+ contentBase64: string | null;
501
+ contentPath: string | null;
502
+ }
503
+ export interface MilestoneTransactionJournalTarget {
504
+ path: string;
505
+ preimage: MilestoneTransactionJournalFileSnapshot;
506
+ staged: MilestoneTransactionJournalFileSnapshot;
507
+ }
508
+ export interface MilestoneTransactionJournal {
509
+ transactionId: string;
510
+ milestoneId: string;
511
+ expectedMilestoneRevision: number;
512
+ actor: string;
513
+ confirmationCodeBindingHash: string;
514
+ phase: MilestoneTransactionPhase;
515
+ targetFiles: MilestoneTransactionJournalTarget[];
516
+ preparedAt: string;
517
+ updatedAt: string;
518
+ }
519
+ export interface TaskContextRefreshResult {
520
+ mode: 'delegated-content-only';
521
+ transitions: string[];
522
+ knowledgeMap: ProjectKnowledgeMap;
523
+ task: TaskState;
524
+ }
525
+ export interface UpdatePreflightResult {
526
+ safe: boolean;
527
+ packageVersion: string;
528
+ protocolVersion: typeof PROTOCOL_VERSION;
529
+ stateSchemaVersion: typeof STATE_SCHEMA_VERSION;
530
+ projectId: string;
531
+ repositoryRoot: string;
532
+ clean: boolean;
533
+ changedFiles: string[];
534
+ runningSteps: Array<{
535
+ taskId: string;
536
+ stepId: string;
537
+ }>;
538
+ activeLeases: WriterLease[];
539
+ staleLeases: WriterLease[];
540
+ blockers: string[];
541
+ }
274
542
  export interface TaskState extends RevisionedRecord {
275
543
  kind: 'task';
276
544
  status: TaskStatus;
package/dist/src/git.js CHANGED
@@ -104,11 +104,12 @@ export function validateTaskHistory(repositoryRoot, task) {
104
104
  const missing = expected.filter((commit) => !actual.includes(commit));
105
105
  const unexpected = actual.filter((commit) => !expected.includes(commit));
106
106
  if (missing.length > 0 || unexpected.length > 0 || actual.length !== expected.length) {
107
- throw new WorkflowError('GIT_PRECONDITION_FAILED', 'Task branch history does not match recorded Step evidence.', {
107
+ throw new WorkflowError('GIT_PRECONDITION_FAILED', 'Task branch history contains commits not recorded by Workflow V2. Workers must leave Step changes uncommitted and let task step-complete create the commit. Stop and request coordinator-led Git recovery; do not create another commit or edit workflow state.', {
108
108
  missing,
109
109
  unexpected,
110
110
  baseCommit: task.baseCommit,
111
111
  headCommit: headCommit(repositoryRoot),
112
+ recovery: 'Restore the pre-commit working changes under coordinator control, then invoke task step-complete.',
112
113
  });
113
114
  }
114
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":"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"}
@@ -11,3 +11,8 @@ export * from './state/lock.js';
11
11
  export * from './state/store.js';
12
12
  export * from './workflow.js';
13
13
  export * from './version.js';
14
+ export * from './alpha7/autonomy.js';
15
+ export { defaultTaskWorkerActor } from './alpha6/handoff.js';
16
+ export { defaultCorrectiveAuditorActor } from './alpha6/remediation.js';
17
+ export type { AdoptionPreparation } from './alpha6/adoption.js';
18
+ export type { RecordPlanRiskAuditInput } from './alpha6/plan-risk.js';
package/dist/src/index.js CHANGED
@@ -11,4 +11,7 @@ export * from './state/lock.js';
11
11
  export * from './state/store.js';
12
12
  export * from './workflow.js';
13
13
  export * from './version.js';
14
+ export * from './alpha7/autonomy.js';
15
+ export { defaultTaskWorkerActor } from './alpha6/handoff.js';
16
+ export { defaultCorrectiveAuditorActor } from './alpha6/remediation.js';
14
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ContextEnvelope, ReviewInput, TaskState } from './contracts.js';
1
+ import type { ContextEnvelope, ReviewInput, StepEvidence, TaskState } from './contracts.js';
2
2
  export interface ReviewerProcessResult {
3
3
  status: number | null;
4
4
  stdout: string;
@@ -20,6 +20,10 @@ export interface StrictReviewerLaunchResult {
20
20
  before: RepositorySeal;
21
21
  after: RepositorySeal;
22
22
  }
23
+ export interface StrictStepReviewerLaunchResult extends StrictReviewerLaunchResult {
24
+ reviewedCommit: string;
25
+ reviewerOutputHash: string;
26
+ }
23
27
  interface RepositorySeal {
24
28
  headCommit: string;
25
29
  changedFiles: string[];
@@ -79,4 +83,5 @@ declare const REVIEW_SCHEMA: {
79
83
  };
80
84
  };
81
85
  export declare function launchStrictReviewer(repositoryRoot: string, task: TaskState, taskRoot: string, envelope: ContextEnvelope, runner?: ReviewerCommandRunner): StrictReviewerLaunchResult;
86
+ export declare function launchStrictStepReviewer(repositoryRoot: string, task: TaskState, taskRoot: string, envelope: ContextEnvelope, stepId: string, currentEvidence: StepEvidence, runner?: ReviewerCommandRunner): StrictStepReviewerLaunchResult;
82
87
  export { REVIEW_SCHEMA };
@@ -3,7 +3,9 @@ import { existsSync, lstatSync, mkdtempSync, readFileSync, readdirSync, readlink
3
3
  import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { spawnSync } from 'node:child_process';
6
+ import { canonicalJsonStringify } from './alpha6/store-sidecars.js';
6
7
  import { changedFiles, headCommit, runGit } from './repository.js';
8
+ const FULL_GIT_SHA_PATTERN = /^[a-f0-9]{40}$/;
7
9
  const REVIEW_SCHEMA = {
8
10
  type: 'object',
9
11
  additionalProperties: false,
@@ -32,6 +34,123 @@ const REVIEW_SCHEMA = {
32
34
  },
33
35
  };
34
36
  export function launchStrictReviewer(repositoryRoot, task, taskRoot, envelope, runner = spawnReviewer) {
37
+ const launch = runStrictReviewerLaunch(repositoryRoot, {
38
+ protocol: 'codex-workflow-strict-review-v1',
39
+ task,
40
+ taskRoot,
41
+ envelope,
42
+ commandSummary: 'Strict reviewer did not return valid output proving the denied write probe.',
43
+ packet: {
44
+ protocol: 'codex-workflow-strict-review-v1',
45
+ instruction: [
46
+ 'Act only as the independent reviewer described by the context envelope.',
47
+ 'Before reviewing, attempt to create .codex-reviewer-write-probe in the repository.',
48
+ 'The attempt must be denied by the sandbox. Report isolationProbe="denied" only when it was denied.',
49
+ 'Do not modify any repository file. Return only the requested JSON result.',
50
+ ],
51
+ envelope,
52
+ task: {
53
+ id: task.id,
54
+ baseCommit: task.baseCommit,
55
+ headCommit: headCommit(repositoryRoot),
56
+ brief: readFileSync(path.join(taskRoot, 'brief.md'), 'utf8'),
57
+ plan: readFileSync(path.join(taskRoot, 'plan.md'), 'utf8'),
58
+ evidence: readFileSync(path.join(taskRoot, 'evidence.json'), 'utf8'),
59
+ diff: task.baseCommit ? runGit(repositoryRoot, ['diff', '--no-ext-diff', `${task.baseCommit}..HEAD`]) : '',
60
+ },
61
+ },
62
+ }, runner);
63
+ return {
64
+ review: launch.review,
65
+ verifiedIsolation: launch.verifiedIsolation,
66
+ command: launch.command,
67
+ processStatus: launch.processStatus,
68
+ stderr: launch.stderr,
69
+ before: launch.before,
70
+ after: launch.after,
71
+ };
72
+ }
73
+ export function launchStrictStepReviewer(repositoryRoot, task, taskRoot, envelope, stepId, currentEvidence, runner = spawnReviewer) {
74
+ const step = task.steps.find((candidate) => candidate.id === stepId);
75
+ if (!step) {
76
+ return failedStepLaunch(repositoryRoot, [], null, `Step ${stepId} was not found on task ${task.id}.`, currentEvidence.commitSha);
77
+ }
78
+ if (!step.evidence) {
79
+ return failedStepLaunch(repositoryRoot, [], null, `Step ${stepId} has no canonical evidence to review on task ${task.id}.`, currentEvidence.commitSha);
80
+ }
81
+ if (canonicalJsonStringify(step.evidence) !== canonicalJsonStringify(currentEvidence)) {
82
+ return failedStepLaunch(repositoryRoot, [], null, `Strict step reviewer requires the exact canonical Step evidence for ${stepId} on task ${task.id}.`, currentEvidence.commitSha);
83
+ }
84
+ const reviewedCommit = currentEvidence.commitSha;
85
+ if (!FULL_GIT_SHA_PATTERN.test(reviewedCommit)) {
86
+ return failedStepLaunch(repositoryRoot, [], null, `Strict step reviewer requires a full lowercase Git SHA for ${stepId} on task ${task.id}.`, reviewedCommit);
87
+ }
88
+ const currentHead = headCommit(repositoryRoot);
89
+ if (reviewedCommit !== currentHead) {
90
+ return failedStepLaunch(repositoryRoot, [], null, `Strict step reviewer requires the canonical Step evidence commit to match repository HEAD for ${stepId} on task ${task.id}.`, reviewedCommit);
91
+ }
92
+ const launch = runStrictReviewerLaunch(repositoryRoot, {
93
+ protocol: 'codex-workflow-strict-step-review-v1',
94
+ task,
95
+ taskRoot,
96
+ envelope,
97
+ commandSummary: 'Strict step reviewer did not return valid output proving the denied write probe.',
98
+ packet: {
99
+ protocol: 'codex-workflow-strict-step-review-v1',
100
+ instruction: [
101
+ 'Act only as the independent reviewer described by the context envelope.',
102
+ 'Before reviewing, attempt to create .codex-reviewer-write-probe in the repository.',
103
+ 'The attempt must be denied by the sandbox. Report isolationProbe="denied" only when it was denied.',
104
+ 'Review only the supplied Task Step and bind your findings to the supplied reviewedCommit.',
105
+ 'Do not modify any repository file. Return only the requested JSON result.',
106
+ ],
107
+ envelope,
108
+ task: {
109
+ id: task.id,
110
+ baseCommit: task.baseCommit,
111
+ headCommit: headCommit(repositoryRoot),
112
+ brief: readFileSync(path.join(taskRoot, 'brief.md'), 'utf8'),
113
+ plan: readFileSync(path.join(taskRoot, 'plan.md'), 'utf8'),
114
+ diff: task.baseCommit ? runGit(repositoryRoot, ['diff', '--no-ext-diff', `${task.baseCommit}..HEAD`]) : '',
115
+ },
116
+ step: {
117
+ id: step.id,
118
+ title: step.title,
119
+ objective: step.objective,
120
+ requirements: step.requirements,
121
+ dependencies: step.dependencies,
122
+ expectedOutputs: step.expectedOutputs,
123
+ allowedWrites: step.allowedWrites,
124
+ forbiddenScope: step.forbiddenScope,
125
+ checks: step.checks,
126
+ status: step.status,
127
+ reviewedCommit,
128
+ evidence: currentEvidence,
129
+ },
130
+ },
131
+ }, runner);
132
+ return {
133
+ review: launch.review,
134
+ verifiedIsolation: launch.verifiedIsolation,
135
+ command: launch.command,
136
+ processStatus: launch.processStatus,
137
+ stderr: launch.stderr,
138
+ before: launch.before,
139
+ after: launch.after,
140
+ reviewedCommit,
141
+ reviewerOutputHash: launch.reviewerOutputHash,
142
+ };
143
+ }
144
+ function spawnReviewer(command, args, options) {
145
+ const result = spawnSync(command, args, {
146
+ cwd: options.cwd,
147
+ input: options.input,
148
+ encoding: 'utf8',
149
+ maxBuffer: 16 * 1024 * 1024,
150
+ });
151
+ return { status: result.status, stdout: result.stdout ?? '', stderr: result.stderr ?? '' };
152
+ }
153
+ function runStrictReviewerLaunch(repositoryRoot, options, runner) {
35
154
  const temporary = mkdtempSync(path.join(os.tmpdir(), 'codex-workflow-review-'));
36
155
  const schemaFile = path.join(temporary, 'review-result.schema.json');
37
156
  const outputFile = path.join(temporary, 'last-message.json');
@@ -39,37 +158,19 @@ export function launchStrictReviewer(repositoryRoot, task, taskRoot, envelope, r
39
158
  const probe = path.join(repositoryRoot, '.codex-reviewer-write-probe');
40
159
  if (existsSync(probe)) {
41
160
  rmSync(temporary, { recursive: true, force: true });
42
- return failedLaunch(repositoryRoot, [], null, 'Reviewer probe path already exists; isolation cannot be tested.');
161
+ const failed = failedLaunch(repositoryRoot, [], null, 'Reviewer probe path already exists; isolation cannot be tested.');
162
+ return { ...failed, reviewerOutputHash: hashReviewInput(failed.review) };
43
163
  }
44
164
  const before = sealRepository(repositoryRoot);
45
165
  const command = [
46
166
  'codex', 'exec', '--ephemeral', '--ignore-user-config', '--ignore-rules', '--sandbox', 'read-only',
47
167
  '--output-schema', schemaFile, '--output-last-message', outputFile, '--json', '-C', repositoryRoot, '-',
48
168
  ];
49
- const packet = {
50
- protocol: 'codex-workflow-strict-review-v1',
51
- instruction: [
52
- 'Act only as the independent reviewer described by the context envelope.',
53
- 'Before reviewing, attempt to create .codex-reviewer-write-probe in the repository.',
54
- 'The attempt must be denied by the sandbox. Report isolationProbe="denied" only when it was denied.',
55
- 'Do not modify any repository file. Return only the requested JSON result.',
56
- ],
57
- envelope,
58
- task: {
59
- id: task.id,
60
- baseCommit: task.baseCommit,
61
- headCommit: headCommit(repositoryRoot),
62
- brief: readFileSync(path.join(taskRoot, 'brief.md'), 'utf8'),
63
- plan: readFileSync(path.join(taskRoot, 'plan.md'), 'utf8'),
64
- evidence: readFileSync(path.join(taskRoot, 'evidence.json'), 'utf8'),
65
- diff: task.baseCommit ? runGit(repositoryRoot, ['diff', '--no-ext-diff', `${task.baseCommit}..HEAD`]) : '',
66
- },
67
- };
68
169
  let processResult;
69
170
  try {
70
171
  processResult = runner(command[0], command.slice(1), {
71
172
  cwd: repositoryRoot,
72
- input: `${JSON.stringify(packet)}\n`,
173
+ input: `${JSON.stringify(options.packet)}\n`,
73
174
  });
74
175
  }
75
176
  catch (error) {
@@ -82,7 +183,8 @@ export function launchStrictReviewer(repositoryRoot, task, taskRoot, envelope, r
82
183
  let output = null;
83
184
  if (processResult.status === 0 && existsSync(outputFile)) {
84
185
  try {
85
- output = parseStrictReview(readFileSync(outputFile, 'utf8'));
186
+ const parsed = parseStrictReviewWithHash(readFileSync(outputFile, 'utf8'));
187
+ output = parsed.output;
86
188
  }
87
189
  catch {
88
190
  output = null;
@@ -97,7 +199,8 @@ export function launchStrictReviewer(repositoryRoot, task, taskRoot, envelope, r
97
199
  ? `Strict reviewer process failed with status ${String(processResult.status)}.`
98
200
  : probeWritten || !unchanged
99
201
  ? 'Strict reviewer modified repository state; review discarded.'
100
- : 'Strict reviewer did not return valid output proving the denied write probe.');
202
+ : options.commandSummary);
203
+ const reviewerOutputHash = hashReviewInput(review);
101
204
  return {
102
205
  review,
103
206
  verifiedIsolation,
@@ -106,17 +209,9 @@ export function launchStrictReviewer(repositoryRoot, task, taskRoot, envelope, r
106
209
  stderr: processResult.stderr,
107
210
  before,
108
211
  after,
212
+ reviewerOutputHash,
109
213
  };
110
214
  }
111
- function spawnReviewer(command, args, options) {
112
- const result = spawnSync(command, args, {
113
- cwd: options.cwd,
114
- input: options.input,
115
- encoding: 'utf8',
116
- maxBuffer: 16 * 1024 * 1024,
117
- });
118
- return { status: result.status, stdout: result.stdout ?? '', stderr: result.stderr ?? '' };
119
- }
120
215
  function sealRepository(repositoryRoot) {
121
216
  return {
122
217
  headCommit: headCommit(repositoryRoot),
@@ -157,6 +252,16 @@ function parseStrictReview(value) {
157
252
  throw new Error('invalid probe');
158
253
  return parsed;
159
254
  }
255
+ function parseStrictReviewWithHash(value) {
256
+ const output = parseStrictReview(value);
257
+ return {
258
+ output,
259
+ outputHash: hashReviewInput(stripProbe(output)),
260
+ };
261
+ }
262
+ function hashReviewInput(review) {
263
+ return createHash('sha256').update(canonicalJsonStringify(review)).digest('hex');
264
+ }
160
265
  function stripProbe(output) {
161
266
  return {
162
267
  status: output.status,
@@ -180,5 +285,13 @@ function failedLaunch(repositoryRoot, command, processStatus, summary) {
180
285
  after: seal,
181
286
  };
182
287
  }
288
+ function failedStepLaunch(repositoryRoot, command, processStatus, summary, reviewedCommit) {
289
+ const base = failedLaunch(repositoryRoot, command, processStatus, summary);
290
+ return {
291
+ ...base,
292
+ reviewedCommit,
293
+ reviewerOutputHash: hashReviewInput(base.review),
294
+ };
295
+ }
183
296
  export { REVIEW_SCHEMA };
184
297
  //# sourceMappingURL=reviewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/reviewer.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class WriterLockManager {
7
7
  heartbeat(entityId: string, token: string, leaseMs?: number): WriterLease;
8
8
  release(entityId: string, token: string): void;
9
9
  inspect(entityId: string): WriterLease | null;
10
+ list(): WriterLease[];
10
11
  repairStale(entityId: string): WriterLease;
11
12
  private requireToken;
12
13
  private file;