codex-orchestrator 2.0.11 → 2.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +25 -51
- package/dist/src/index.d.ts +2 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/v2/acceptance-proof.d.ts +46 -31
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +157 -195
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/active-attempt.d.ts +94 -0
- package/dist/src/v2/active-attempt.d.ts.map +1 -0
- package/dist/src/v2/active-attempt.js +200 -0
- package/dist/src/v2/active-attempt.js.map +1 -0
- package/dist/src/v2/adapters/command.d.ts +6 -0
- package/dist/src/v2/adapters/command.d.ts.map +1 -1
- package/dist/src/v2/adapters/command.js +43 -2
- package/dist/src/v2/adapters/command.js.map +1 -1
- package/dist/src/v2/candidate.d.ts +15 -31
- package/dist/src/v2/candidate.d.ts.map +1 -1
- package/dist/src/v2/candidate.js +7 -29
- package/dist/src/v2/candidate.js.map +1 -1
- package/dist/src/v2/checked-change.d.ts +3 -2
- package/dist/src/v2/checked-change.d.ts.map +1 -1
- package/dist/src/v2/checked-change.js +4 -3
- package/dist/src/v2/checked-change.js.map +1 -1
- package/dist/src/v2/cli-contract.d.ts +1 -1
- package/dist/src/v2/cli-contract.d.ts.map +1 -1
- package/dist/src/v2/cli-contract.js +4 -6
- package/dist/src/v2/cli-contract.js.map +1 -1
- package/dist/src/v2/cli.d.ts +8 -0
- package/dist/src/v2/cli.d.ts.map +1 -1
- package/dist/src/v2/cli.js +13 -0
- package/dist/src/v2/cli.js.map +1 -1
- package/dist/src/v2/code-review-report.d.ts +10 -18
- package/dist/src/v2/code-review-report.d.ts.map +1 -1
- package/dist/src/v2/code-review-report.js +63 -60
- package/dist/src/v2/code-review-report.js.map +1 -1
- package/dist/src/v2/codex-process.d.ts +6 -2
- package/dist/src/v2/codex-process.d.ts.map +1 -1
- package/dist/src/v2/codex-process.js +25 -9
- package/dist/src/v2/codex-process.js.map +1 -1
- package/dist/src/v2/config.d.ts +0 -2
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +3 -6
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/contained-report-operation.d.ts +41 -196
- package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
- package/dist/src/v2/contained-report-operation.js +139 -466
- package/dist/src/v2/contained-report-operation.js.map +1 -1
- package/dist/src/v2/containment.d.ts +1 -0
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +12 -2
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/delivery-authority.d.ts +26 -0
- package/dist/src/v2/delivery-authority.d.ts.map +1 -0
- package/dist/src/v2/delivery-authority.js +44 -0
- package/dist/src/v2/delivery-authority.js.map +1 -0
- package/dist/src/v2/direct-delivery.d.ts +16 -36
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +135 -122
- package/dist/src/v2/direct-delivery.js.map +1 -1
- package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -1
- package/dist/src/v2/immutable-workflow-publisher.js +3 -1
- package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
- package/dist/src/v2/implementation-report.d.ts +3 -1
- package/dist/src/v2/implementation-report.d.ts.map +1 -1
- package/dist/src/v2/implementation-report.js +17 -4
- package/dist/src/v2/implementation-report.js.map +1 -1
- package/dist/src/v2/implementation-reviewer.d.ts +41 -12
- package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
- package/dist/src/v2/implementation-reviewer.js +114 -42
- package/dist/src/v2/implementation-reviewer.js.map +1 -1
- package/dist/src/v2/pending-effect-settlement.d.ts +44 -0
- package/dist/src/v2/pending-effect-settlement.d.ts.map +1 -0
- package/dist/src/v2/pending-effect-settlement.js +69 -0
- package/dist/src/v2/pending-effect-settlement.js.map +1 -0
- package/dist/src/v2/process-identity.d.ts +45 -0
- package/dist/src/v2/process-identity.d.ts.map +1 -0
- package/dist/src/v2/process-identity.js +118 -0
- package/dist/src/v2/process-identity.js.map +1 -0
- package/dist/src/v2/proof-report.d.ts +2 -1
- package/dist/src/v2/proof-report.d.ts.map +1 -1
- package/dist/src/v2/proof-report.js +10 -4
- package/dist/src/v2/proof-report.js.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.d.ts +1 -1
- package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.js +1 -1
- package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
- package/dist/src/v2/review-feedback.d.ts +14 -20
- package/dist/src/v2/review-feedback.d.ts.map +1 -1
- package/dist/src/v2/review-feedback.js +45 -87
- package/dist/src/v2/review-feedback.js.map +1 -1
- package/dist/src/v2/run-issue.d.ts +129 -88
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +1965 -2381
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-state-projections.d.ts +84 -0
- package/dist/src/v2/run-state-projections.d.ts.map +1 -0
- package/dist/src/v2/run-state-projections.js +142 -0
- package/dist/src/v2/run-state-projections.js.map +1 -0
- package/dist/src/v2/run-store.d.ts +99 -81
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +245 -542
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime-assets.d.ts +3 -0
- package/dist/src/v2/runtime-assets.d.ts.map +1 -1
- package/dist/src/v2/runtime-assets.js +104 -0
- package/dist/src/v2/runtime-assets.js.map +1 -1
- package/dist/src/v2/runtime.d.ts +56 -44
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +383 -503
- package/dist/src/v2/runtime.js.map +1 -1
- package/dist/src/v2/setup.js +0 -2
- package/dist/src/v2/setup.js.map +1 -1
- package/dist/src/v2/validation-progression.d.ts +70 -0
- package/dist/src/v2/validation-progression.d.ts.map +1 -0
- package/dist/src/v2/validation-progression.js +247 -0
- package/dist/src/v2/validation-progression.js.map +1 -0
- package/dist/src/v2/workflow-assets.d.ts +9 -3
- package/dist/src/v2/workflow-assets.d.ts.map +1 -1
- package/dist/src/v2/workflow-assets.js +256 -43
- package/dist/src/v2/workflow-assets.js.map +1 -1
- package/internal-workflow/docs/agents/bug-workflow-routing.md +9 -7
- package/internal-workflow/docs/agents/coding-skill-routing.md +170 -120
- package/internal-workflow/docs/agents/tool-usage.md +23 -12
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/operations/code-review/SKILL.md +34 -15
- package/internal-workflow/operations/implementation/SKILL.md +21 -16
- package/internal-workflow/profiles/implementer.toml +9 -0
- package/internal-workflow/profiles/review_coordinator.toml +9 -0
- package/internal-workflow/profiles/spec_reviewer.toml +9 -0
- package/internal-workflow/profiles/standards_reviewer.toml +9 -0
- package/internal-workflow/schemas/code-review-v1.json +1 -1
- package/internal-workflow/schemas/implementation-report-v1.json +1 -1
- package/internal-workflow/schemas/proof-report-v1.json +1 -1
- package/internal-workflow/skills/bug-root-cause-explainer/SKILL.md +114 -0
- package/internal-workflow/skills/bug-root-cause-explainer/agents/openai.yaml +7 -0
- package/internal-workflow/skills/bug-root-cause-explainer/evals/evals.json +18 -0
- package/internal-workflow/skills/code-review/SKILL.md +84 -306
- package/internal-workflow/skills/code-review/agents/openai.yaml +5 -3
- package/internal-workflow/skills/code-review/evals/evals.json +83 -0
- package/internal-workflow/skills/code-review/references/standards-smells.md +41 -0
- package/internal-workflow/skills/diagnosing-bugs/SKILL.md +69 -32
- package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +2 -2
- package/internal-workflow/skills/diagnosing-bugs/evals/evals.json +63 -0
- package/internal-workflow/skills/grilling/SKILL.md +51 -0
- package/internal-workflow/skills/grilling/agents/openai.yaml +6 -0
- package/internal-workflow/skills/grilling/evals/evals.json +47 -0
- package/internal-workflow/skills/implement/SKILL.md +135 -0
- package/internal-workflow/skills/implement/agents/openai.yaml +6 -0
- package/internal-workflow/skills/implement/evals/evals.json +150 -0
- package/internal-workflow/skills/plan/SKILL.md +59 -0
- package/internal-workflow/skills/plan/agents/openai.yaml +6 -0
- package/internal-workflow/skills/plan/evals/evals.json +36 -0
- package/internal-workflow/skills/prototype/LOGIC.md +130 -0
- package/internal-workflow/skills/prototype/SKILL.md +69 -0
- package/internal-workflow/skills/prototype/UI.md +157 -0
- package/internal-workflow/skills/prototype/agents/openai.yaml +6 -0
- package/internal-workflow/skills/prototype/evals/evals.json +67 -0
- package/internal-workflow/skills/research/SKILL.md +110 -0
- package/internal-workflow/skills/research/agents/openai.yaml +6 -0
- package/internal-workflow/skills/research/evals/evals.json +49 -0
- package/internal-workflow/skills/tdd/SKILL.md +72 -67
- package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
- package/internal-workflow/skills/tdd/evals/evals.json +12 -0
- package/internal-workflow/skills/tdd/mocking.md +48 -1
- package/internal-workflow/skills/tdd/refactoring.md +3 -3
- package/internal-workflow/skills/tickets-orchestrator/SKILL.md +199 -0
- package/internal-workflow/skills/tickets-orchestrator/agents/openai.yaml +6 -0
- package/internal-workflow/skills/tickets-orchestrator/evals/evals.json +126 -0
- package/internal-workflow/skills/tickets-orchestrator/references/delegate-integrate.md +83 -0
- package/internal-workflow/skills/tickets-orchestrator/references/finish-delivery.md +69 -0
- package/internal-workflow/skills/tickets-orchestrator/references/stop-completion.md +63 -0
- package/internal-workflow/skills/to-spec/SKILL.md +133 -0
- package/internal-workflow/skills/to-spec/agents/openai.yaml +6 -0
- package/internal-workflow/skills/to-spec/evals/evals.json +24 -0
- package/internal-workflow/skills/to-tickets/SKILL.md +189 -0
- package/internal-workflow/skills/to-tickets/agents/openai.yaml +6 -0
- package/internal-workflow/skills/to-tickets/evals/evals.json +79 -0
- package/internal-workflow/skills/to-tickets/references/publishing-details.md +117 -0
- package/package.json +1 -1
- package/dist/src/v2/proof-store.d.ts +0 -54
- package/dist/src/v2/proof-store.d.ts.map +0 -1
- package/dist/src/v2/proof-store.js +0 -301
- package/dist/src/v2/proof-store.js.map +0 -1
- package/dist/src/v2/route-continuations.d.ts +0 -32
- package/dist/src/v2/route-continuations.d.ts.map +0 -1
- package/dist/src/v2/route-continuations.js +0 -2
- package/dist/src/v2/route-continuations.js.map +0 -1
- package/dist/src/v2/route-coordinator.d.ts +0 -72
- package/dist/src/v2/route-coordinator.d.ts.map +0 -1
- package/dist/src/v2/route-coordinator.js +0 -275
- package/dist/src/v2/route-coordinator.js.map +0 -1
- package/dist/src/v2/route-decision.d.ts +0 -120
- package/dist/src/v2/route-decision.d.ts.map +0 -1
- package/dist/src/v2/route-decision.js +0 -380
- package/dist/src/v2/route-decision.js.map +0 -1
- package/dist/src/v2/spec-coordinator.d.ts +0 -73
- package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
- package/dist/src/v2/spec-coordinator.js +0 -126
- package/dist/src/v2/spec-coordinator.js.map +0 -1
- package/dist/src/v2/spec-delivery.d.ts +0 -112
- package/dist/src/v2/spec-delivery.d.ts.map +0 -1
- package/dist/src/v2/spec-delivery.js +0 -336
- package/dist/src/v2/spec-delivery.js.map +0 -1
- package/dist/src/v2/triage-route.d.ts +0 -68
- package/dist/src/v2/triage-route.d.ts.map +0 -1
- package/dist/src/v2/triage-route.js +0 -223
- package/dist/src/v2/triage-route.js.map +0 -1
- package/dist/src/v2/waiting-human-coordinator.d.ts +0 -49
- package/dist/src/v2/waiting-human-coordinator.d.ts.map +0 -1
- package/dist/src/v2/waiting-human-coordinator.js +0 -509
- package/dist/src/v2/waiting-human-coordinator.js.map +0 -1
- package/dist/src/v2/waiting-human.d.ts +0 -143
- package/dist/src/v2/waiting-human.d.ts.map +0 -1
- package/dist/src/v2/waiting-human.js +0 -408
- package/dist/src/v2/waiting-human.js.map +0 -1
- package/internal-workflow/docs/agents/contract-test-ledger.md +0 -71
- package/internal-workflow/docs/agents/review-gates.md +0 -42
- package/internal-workflow/docs/agents/review-protocol.md +0 -98
- package/internal-workflow/evals/coding-skill-evals.json +0 -373
- package/internal-workflow/operations/ambiguity-review/SKILL.md +0 -5
- package/internal-workflow/operations/qualification-repair/SKILL.md +0 -17
- package/internal-workflow/operations/spec-author/SKILL.md +0 -12
- package/internal-workflow/operations/spec-review/SKILL.md +0 -12
- package/internal-workflow/operations/triage/SKILL.md +0 -12
- package/internal-workflow/profiles/analyst_deep.toml +0 -9
- package/internal-workflow/profiles/implementer_standard.toml +0 -9
- package/internal-workflow/profiles/proof_agent.toml +0 -8
- package/internal-workflow/profiles/reviewer_deep.toml +0 -9
- package/internal-workflow/profiles/reviewer_standard.toml +0 -9
- package/internal-workflow/schemas/ambiguity-review-v1.json +0 -1
- package/internal-workflow/schemas/spec-author-v1.json +0 -1
- package/internal-workflow/schemas/spec-review-v1.json +0 -30
- package/internal-workflow/schemas/triage-route-v1.json +0 -1
- package/internal-workflow/skills/agent-auto/SKILL.md +0 -19
- package/internal-workflow/skills/agent-auto/agents/openai.yaml +0 -6
- package/internal-workflow/skills/code-debugger/SKILL.md +0 -122
- package/internal-workflow/skills/code-debugger/agents/openai.yaml +0 -7
- package/internal-workflow/skills/code-review/references/bug-classes.md +0 -56
- package/internal-workflow/skills/code-review/references/cleanup-lens.md +0 -52
- package/internal-workflow/skills/code-review/references/framework-lenses.md +0 -34
- package/internal-workflow/skills/code-review/references/targeted-recipes.md +0 -49
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +0 -107
- package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +0 -6
- package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +0 -32
- package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +0 -146
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +0 -131
- package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +0 -6
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +0 -78
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +0 -121
- package/internal-workflow/skills/small-task-implementer/SKILL.md +0 -112
- package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +0 -6
- package/internal-workflow/skills/spec-implementer/SKILL.md +0 -133
- package/internal-workflow/skills/spec-implementer/agents/openai.yaml +0 -6
- package/internal-workflow/skills/spec-implementer/evals/evals.json +0 -30
- package/internal-workflow/skills/spec-implementer/references/review-loop.md +0 -100
- package/internal-workflow/skills/triage/AGENT-BRIEF.md +0 -192
- package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +0 -101
- package/internal-workflow/skills/triage/SKILL.md +0 -134
- package/internal-workflow/skills/triage/agents/openai.yaml +0 -6
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { FrozenCriterion, IssueSnapshot } from './acceptance-proof.js';
|
|
2
|
+
import type { AgentAutoConfig } from './config.js';
|
|
3
|
+
import type { RunRecord, RunStateInspection, RunTerminalOutcome } from './run-store.js';
|
|
4
|
+
interface IssueObservation {
|
|
5
|
+
number: number;
|
|
6
|
+
title: string;
|
|
7
|
+
body: string;
|
|
8
|
+
url: string;
|
|
9
|
+
state: 'OPEN' | 'CLOSED';
|
|
10
|
+
labels: string[];
|
|
11
|
+
comments: Array<{
|
|
12
|
+
id?: string;
|
|
13
|
+
body: string;
|
|
14
|
+
authorAssociation: string;
|
|
15
|
+
createdAt?: string;
|
|
16
|
+
updatedAt?: string;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
export declare function isClaimMarkerComment(comment: {
|
|
20
|
+
body: string;
|
|
21
|
+
}): boolean;
|
|
22
|
+
export declare function isExactClaimMarkerLine(line: string): boolean;
|
|
23
|
+
export declare function claimRunId(comment: {
|
|
24
|
+
body: string;
|
|
25
|
+
}): string | undefined;
|
|
26
|
+
export declare function observedHistoricalClaimKeys(comment: IssueObservation['comments'][number], record: RunRecord): string[];
|
|
27
|
+
export declare function historicalClaimCounts(record: RunRecord): Map<string, number>;
|
|
28
|
+
export declare function refreshClaimedIssueSnapshot(baseline: RunRecord['issueSnapshot'], issue: IssueObservation): RunRecord['issueSnapshot'];
|
|
29
|
+
export declare function snapshotIssue(issue: IssueObservation): IssueSnapshot & Pick<IssueObservation, 'comments'>;
|
|
30
|
+
export declare function publicIssueSnapshot(issue: IssueSnapshot): IssueSnapshot;
|
|
31
|
+
export declare function freezeCriteria(issue: IssueSnapshot): FrozenCriterion[];
|
|
32
|
+
export declare function claimComment(runId: string, issueNumber: number, branchName: string): string;
|
|
33
|
+
export declare function blockedLabelPolicy(config: AgentAutoConfig): {
|
|
34
|
+
auto: string;
|
|
35
|
+
running: string;
|
|
36
|
+
blocked: string;
|
|
37
|
+
review: string;
|
|
38
|
+
};
|
|
39
|
+
export declare function blockedLabelProjection(labels: string[], config: AgentAutoConfig): {
|
|
40
|
+
status: 'settled';
|
|
41
|
+
expected: string[];
|
|
42
|
+
} | {
|
|
43
|
+
status: 'transition' | 'diverged';
|
|
44
|
+
};
|
|
45
|
+
export declare function sameStrings(left: string[], right: string[]): boolean;
|
|
46
|
+
export declare function isAdoptableAttempt(attempt: RunRecord['activeAttempt']): boolean;
|
|
47
|
+
export declare function semanticChangesMatch(record: RunRecord, changes: Omit<Partial<RunRecord>, 'activeAttempt'>): boolean;
|
|
48
|
+
export declare function sameInspectionIdentity(left: Pick<RunStateInspection, 'status' | 'rawSha256'>, right: Pick<RunStateInspection, 'status' | 'rawSha256'>): boolean;
|
|
49
|
+
export declare function publicOutcome(outcome: RunTerminalOutcome): {
|
|
50
|
+
status: "review-ready";
|
|
51
|
+
pullRequestUrl: string;
|
|
52
|
+
evidencePath: string;
|
|
53
|
+
continuationEpoch?: string;
|
|
54
|
+
} | {
|
|
55
|
+
status: "blocked";
|
|
56
|
+
kind: "external" | "safety" | "decision-delta" | "out-of-scope" | "authority-boundary";
|
|
57
|
+
resumable: boolean;
|
|
58
|
+
evidencePath: string;
|
|
59
|
+
blocker?: {
|
|
60
|
+
kind: string;
|
|
61
|
+
summary: string;
|
|
62
|
+
attempted: string[];
|
|
63
|
+
resumable: boolean;
|
|
64
|
+
reviewerRejectionDetail?: string;
|
|
65
|
+
};
|
|
66
|
+
} | {
|
|
67
|
+
status: "transport-failed";
|
|
68
|
+
resumable: boolean;
|
|
69
|
+
evidencePath: string;
|
|
70
|
+
} | {
|
|
71
|
+
status: "cancelled";
|
|
72
|
+
evidencePath: string;
|
|
73
|
+
} | {
|
|
74
|
+
status: "internal-error";
|
|
75
|
+
evidencePath: string;
|
|
76
|
+
};
|
|
77
|
+
export declare function outcomeEvidenceBytes(input: {
|
|
78
|
+
runId: string;
|
|
79
|
+
code: string;
|
|
80
|
+
summary: string;
|
|
81
|
+
recordedAt: string;
|
|
82
|
+
}): Buffer;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=run-state-projections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-state-projections.d.ts","sourceRoot":"","sources":["../../../src/v2/run-state-projections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { canonicalJson } from './containment.js';
|
|
2
|
+
const claimMarkerPattern = /^<!-- codex-orchestrator:run:([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}):claim -->$/u;
|
|
3
|
+
export function isClaimMarkerComment(comment) {
|
|
4
|
+
return claimMarkerPattern.test(comment.body.split('\n')[0] ?? '');
|
|
5
|
+
}
|
|
6
|
+
export function isExactClaimMarkerLine(line) {
|
|
7
|
+
return claimMarkerPattern.test(line);
|
|
8
|
+
}
|
|
9
|
+
export function claimRunId(comment) {
|
|
10
|
+
return (comment.body.split('\n')[0] ?? '').match(claimMarkerPattern)?.[1];
|
|
11
|
+
}
|
|
12
|
+
function trustedHistoricalClaimBodyKey(comment, issueNumber, branchName) {
|
|
13
|
+
const runId = claimRunId(comment);
|
|
14
|
+
if (!runId || !['OWNER', 'MEMBER', 'COLLABORATOR'].includes(comment.authorAssociation))
|
|
15
|
+
return undefined;
|
|
16
|
+
if (comment.body !== claimComment(runId, issueNumber, branchName))
|
|
17
|
+
return undefined;
|
|
18
|
+
return `${comment.authorAssociation}\u0000${comment.body}`;
|
|
19
|
+
}
|
|
20
|
+
function frozenHistoricalClaimKey(comment, issueNumber, branchName) {
|
|
21
|
+
const bodyKey = trustedHistoricalClaimBodyKey(comment, issueNumber, branchName);
|
|
22
|
+
if (!bodyKey)
|
|
23
|
+
return undefined;
|
|
24
|
+
return comment.id ? `id\u0000${comment.id}\u0000${bodyKey}` : `legacy\u0000${bodyKey}`;
|
|
25
|
+
}
|
|
26
|
+
export function observedHistoricalClaimKeys(comment, record) {
|
|
27
|
+
const bodyKey = trustedHistoricalClaimBodyKey(comment, record.issueNumber, record.branchName);
|
|
28
|
+
if (!bodyKey)
|
|
29
|
+
return [];
|
|
30
|
+
const keys = comment.id ? [`id\u0000${comment.id}\u0000${bodyKey}`] : [];
|
|
31
|
+
if (timestampAtOrBefore(comment.createdAt, record.createdAt) && timestampAtOrBefore(comment.updatedAt, record.createdAt)) {
|
|
32
|
+
keys.push(`legacy\u0000${bodyKey}`);
|
|
33
|
+
}
|
|
34
|
+
return keys;
|
|
35
|
+
}
|
|
36
|
+
function timestampAtOrBefore(value, cutoff) {
|
|
37
|
+
if (!value)
|
|
38
|
+
return false;
|
|
39
|
+
const timestamp = Date.parse(value);
|
|
40
|
+
return !Number.isNaN(timestamp) && timestamp <= Date.parse(cutoff);
|
|
41
|
+
}
|
|
42
|
+
export function historicalClaimCounts(record) {
|
|
43
|
+
const counts = new Map();
|
|
44
|
+
for (const comment of record.issueSnapshot.comments ?? []) {
|
|
45
|
+
const key = frozenHistoricalClaimKey(comment, record.issueNumber, record.branchName);
|
|
46
|
+
if (!key || claimRunId(comment) === record.runId)
|
|
47
|
+
continue;
|
|
48
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
49
|
+
}
|
|
50
|
+
return counts;
|
|
51
|
+
}
|
|
52
|
+
export function refreshClaimedIssueSnapshot(baseline, issue) {
|
|
53
|
+
return {
|
|
54
|
+
...structuredClone(baseline),
|
|
55
|
+
comments: [
|
|
56
|
+
...(baseline.comments ?? []).filter(isClaimMarkerComment),
|
|
57
|
+
...issue.comments.filter((comment) => !isClaimMarkerComment(comment)),
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export function snapshotIssue(issue) {
|
|
62
|
+
if (issue.state !== 'OPEN')
|
|
63
|
+
throw new Error('cannot snapshot a closed issue');
|
|
64
|
+
return {
|
|
65
|
+
number: issue.number, title: issue.title, body: issue.body, url: issue.url, state: 'OPEN',
|
|
66
|
+
labels: sortedUnique(issue.labels), comments: structuredClone(issue.comments),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function publicIssueSnapshot(issue) {
|
|
70
|
+
return { number: issue.number, title: issue.title, body: issue.body, url: issue.url, state: issue.state, labels: [...issue.labels] };
|
|
71
|
+
}
|
|
72
|
+
export function freezeCriteria(issue) {
|
|
73
|
+
const lines = issue.body.split(/\r?\n/u);
|
|
74
|
+
const heading = lines.findIndex((line) => /^#{1,6}\s+acceptance criteria\s*$/iu.test(line.trim()));
|
|
75
|
+
const texts = [];
|
|
76
|
+
if (heading >= 0) {
|
|
77
|
+
for (const line of lines.slice(heading + 1)) {
|
|
78
|
+
if (/^#{1,6}\s+/u.test(line.trim()))
|
|
79
|
+
break;
|
|
80
|
+
const text = line.match(/^\s*[-*]\s+(?:\[[ xX]\]\s*)?(.+?)\s*$/u)?.[1]?.trim();
|
|
81
|
+
if (text && !texts.includes(text))
|
|
82
|
+
texts.push(text);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (texts.length === 0)
|
|
86
|
+
return [{ id: 'fallback-001', order: 1, source: 'fallback', text: `${issue.title}\n\n${issue.body}` }];
|
|
87
|
+
return texts.map((text, index) => ({ id: `ac-${String(index + 1).padStart(3, '0')}`, order: index + 1, source: 'explicit', text }));
|
|
88
|
+
}
|
|
89
|
+
export function claimComment(runId, issueNumber, branchName) {
|
|
90
|
+
return `<!-- codex-orchestrator:run:${runId}:claim -->\ncodex-orchestrator claimed #${issueNumber} for branch ${branchName}`;
|
|
91
|
+
}
|
|
92
|
+
export function blockedLabelPolicy(config) {
|
|
93
|
+
return {
|
|
94
|
+
auto: config.github.labels.auto.name, running: config.github.labels.running.name,
|
|
95
|
+
blocked: config.github.labels.blocked.name, review: config.github.labels.review.name,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function blockedLabelProjection(labels, config) {
|
|
99
|
+
const policy = blockedLabelPolicy(config);
|
|
100
|
+
const present = new Set(labels);
|
|
101
|
+
if (present.has(policy.review))
|
|
102
|
+
return { status: 'diverged' };
|
|
103
|
+
const auto = present.has(policy.auto);
|
|
104
|
+
const running = present.has(policy.running);
|
|
105
|
+
const blocked = present.has(policy.blocked);
|
|
106
|
+
if (running || (auto && !blocked))
|
|
107
|
+
return { status: 'transition' };
|
|
108
|
+
if (blocked)
|
|
109
|
+
return { status: 'settled', expected: auto ? [policy.auto, policy.blocked].sort() : [policy.blocked] };
|
|
110
|
+
return { status: 'settled', expected: [] };
|
|
111
|
+
}
|
|
112
|
+
export function sameStrings(left, right) {
|
|
113
|
+
const a = [...left].sort();
|
|
114
|
+
const b = [...right].sort();
|
|
115
|
+
return a.length === b.length && a.every((value, index) => value === b[index]);
|
|
116
|
+
}
|
|
117
|
+
export function isAdoptableAttempt(attempt) {
|
|
118
|
+
return attempt?.stage === 'launched' || (attempt?.stage === 'observed' && attempt.result !== null);
|
|
119
|
+
}
|
|
120
|
+
export function semanticChangesMatch(record, changes) {
|
|
121
|
+
return Object.entries(changes).every(([key, expected]) => {
|
|
122
|
+
const observed = record[key];
|
|
123
|
+
return expected === undefined ? observed === undefined : canonicalJson(observed) === canonicalJson(expected);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
export function sameInspectionIdentity(left, right) {
|
|
127
|
+
return left.status === right.status && left.rawSha256 === right.rawSha256;
|
|
128
|
+
}
|
|
129
|
+
export function publicOutcome(outcome) {
|
|
130
|
+
if (outcome.status === 'internal-error')
|
|
131
|
+
return { status: 'internal-error', evidencePath: outcome.evidencePath };
|
|
132
|
+
return structuredClone(outcome);
|
|
133
|
+
}
|
|
134
|
+
export function outcomeEvidenceBytes(input) {
|
|
135
|
+
return Buffer.from(`${canonicalJson({
|
|
136
|
+
version: 1, runId: input.runId, code: input.code, summary: input.summary, recordedAt: input.recordedAt,
|
|
137
|
+
})}\n`, 'utf8');
|
|
138
|
+
}
|
|
139
|
+
function sortedUnique(values) {
|
|
140
|
+
return [...new Set(values)].sort();
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=run-state-projections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-state-projections.js","sourceRoot":"","sources":["../../../src/v2/run-state-projections.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,36 @@
|
|
|
1
1
|
import type { ProofReceipt } from './proof-report.js';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ActiveAttempt } from './active-attempt.js';
|
|
3
3
|
import { type DirectReviewV1 } from './direct-delivery.js';
|
|
4
|
-
import { type SpecDeliveryV1 } from './spec-delivery.js';
|
|
5
|
-
import { type RouteExecutionV1, type RouteReceiptV1 } from './route-decision.js';
|
|
6
4
|
import type { WorkflowGenerationReceipt } from './workflow-assets.js';
|
|
7
|
-
import { type
|
|
5
|
+
import { type DeliveryAuthority } from './delivery-authority.js';
|
|
8
6
|
import { type AtomicStateFileOptions } from './atomic-store.js';
|
|
9
|
-
import { type CandidateBindingV2, type
|
|
10
|
-
import { type
|
|
11
|
-
export type Lifecycle = 'claimed' | '
|
|
12
|
-
|
|
7
|
+
import { type CandidateBindingV2, type CandidateMaterializationV2 } from './candidate.js';
|
|
8
|
+
import { type ReviewFeedbackRunDataV1 } from './review-feedback.js';
|
|
9
|
+
export type Lifecycle = 'claimed' | 'implementing' | 'checking' | 'proving' | 'reviewing' | 'publishing' | 'safe-halt' | 'review-ready' | 'blocked' | 'transport-failed' | 'cancelled' | 'internal-error';
|
|
10
|
+
type EffectIdentity = {
|
|
11
|
+
effectId: string;
|
|
12
|
+
};
|
|
13
|
+
export type PendingEffect = EffectIdentity & ({
|
|
13
14
|
kind: 'claim-labels';
|
|
14
15
|
issueNumber: number;
|
|
15
16
|
expected: string[];
|
|
16
17
|
} | {
|
|
17
|
-
kind: '
|
|
18
|
+
kind: 'claim-comment' | 'handoff-comment';
|
|
19
|
+
issueNumber: number;
|
|
20
|
+
marker: string;
|
|
21
|
+
bodySha256: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'initial-commit';
|
|
18
24
|
parentSha: string;
|
|
19
25
|
treeSha: string;
|
|
20
26
|
message: string;
|
|
21
27
|
candidateRef?: string;
|
|
22
28
|
} | {
|
|
23
|
-
kind: 'push';
|
|
29
|
+
kind: 'initial-push';
|
|
24
30
|
branch: string;
|
|
25
31
|
sha: string;
|
|
26
32
|
} | {
|
|
27
|
-
kind: 'pr';
|
|
33
|
+
kind: 'draft-pr';
|
|
28
34
|
owner: string;
|
|
29
35
|
repo: string;
|
|
30
36
|
head: string;
|
|
@@ -32,19 +38,14 @@ export type PublicationIntent = {
|
|
|
32
38
|
issueNumber: number;
|
|
33
39
|
marker: string;
|
|
34
40
|
} | {
|
|
35
|
-
kind: '
|
|
36
|
-
issueNumber: number;
|
|
37
|
-
marker: string;
|
|
38
|
-
bodySha256: string;
|
|
39
|
-
} | {
|
|
40
|
-
kind: 'labels';
|
|
41
|
+
kind: 'final-labels';
|
|
41
42
|
issueNumber: number;
|
|
42
43
|
expected: string[];
|
|
43
44
|
} | {
|
|
44
45
|
kind: 'blocked-labels';
|
|
45
46
|
issueNumber: number;
|
|
46
47
|
expected: string[];
|
|
47
|
-
blockKind: 'external' | 'safety' | '
|
|
48
|
+
blockKind: 'external' | 'safety' | 'decision-delta' | 'out-of-scope' | 'authority-boundary';
|
|
48
49
|
resumable: boolean;
|
|
49
50
|
evidenceCode: string;
|
|
50
51
|
} | {
|
|
@@ -87,9 +88,35 @@ export type PublicationIntent = {
|
|
|
87
88
|
issueNumber: number;
|
|
88
89
|
batchId: string;
|
|
89
90
|
expected: string[];
|
|
90
|
-
blockKind: 'safety' | '
|
|
91
|
+
blockKind: 'external' | 'safety' | 'decision-delta' | 'out-of-scope' | 'authority-boundary';
|
|
91
92
|
evidenceCode: string;
|
|
92
|
-
}
|
|
93
|
+
} | {
|
|
94
|
+
kind: 'worktree-create';
|
|
95
|
+
worktreePath: string;
|
|
96
|
+
branchName: string;
|
|
97
|
+
baseBranch: string;
|
|
98
|
+
baseSha: string;
|
|
99
|
+
} | {
|
|
100
|
+
kind: 'continuation-worktree-create';
|
|
101
|
+
worktreePath: string;
|
|
102
|
+
branchName: string;
|
|
103
|
+
baseBranch: string;
|
|
104
|
+
publishedHeadSha: string;
|
|
105
|
+
} | {
|
|
106
|
+
kind: 'candidate-pin-release';
|
|
107
|
+
bindingId: string;
|
|
108
|
+
expectedPinnedCommitSha: string;
|
|
109
|
+
} | {
|
|
110
|
+
kind: 'outcome-evidence';
|
|
111
|
+
path: string;
|
|
112
|
+
runId: string;
|
|
113
|
+
code: string;
|
|
114
|
+
summary: string;
|
|
115
|
+
recordedAt: string;
|
|
116
|
+
bytesSha256: string;
|
|
117
|
+
});
|
|
118
|
+
export type PendingEffectInput = PendingEffect extends infer T ? T extends EffectIdentity ? Omit<T, 'effectId'> : never : never;
|
|
119
|
+
export declare function createPendingEffect<T extends PendingEffectInput>(effect: T): T & EffectIdentity;
|
|
93
120
|
export type RunTerminalOutcome = {
|
|
94
121
|
status: 'review-ready';
|
|
95
122
|
pullRequestUrl: string;
|
|
@@ -97,9 +124,16 @@ export type RunTerminalOutcome = {
|
|
|
97
124
|
continuationEpoch?: string;
|
|
98
125
|
} | {
|
|
99
126
|
status: 'blocked';
|
|
100
|
-
kind: 'external' | 'safety' | '
|
|
127
|
+
kind: 'external' | 'safety' | 'decision-delta' | 'out-of-scope' | 'authority-boundary';
|
|
101
128
|
resumable: boolean;
|
|
102
129
|
evidencePath: string;
|
|
130
|
+
blocker?: {
|
|
131
|
+
kind: string;
|
|
132
|
+
summary: string;
|
|
133
|
+
attempted: string[];
|
|
134
|
+
resumable: boolean;
|
|
135
|
+
reviewerRejectionDetail?: string;
|
|
136
|
+
};
|
|
103
137
|
} | {
|
|
104
138
|
status: 'transport-failed';
|
|
105
139
|
resumable: boolean;
|
|
@@ -142,7 +176,7 @@ export interface CandidateCheckReceiptV2 {
|
|
|
142
176
|
candidateTreeSha: string;
|
|
143
177
|
checkPolicySha256: string;
|
|
144
178
|
}
|
|
145
|
-
export interface
|
|
179
|
+
export interface RunRecord {
|
|
146
180
|
runId: string;
|
|
147
181
|
issueNumber: number;
|
|
148
182
|
canonicalRepository: string;
|
|
@@ -150,101 +184,85 @@ export interface RunRecordV1 {
|
|
|
150
184
|
branchName: string;
|
|
151
185
|
worktreePath: string;
|
|
152
186
|
lifecycle: Lifecycle;
|
|
153
|
-
cycle:
|
|
154
|
-
reportRepairs:
|
|
187
|
+
cycle: number;
|
|
188
|
+
reportRepairs: number;
|
|
189
|
+
transportRetries: number;
|
|
155
190
|
issueSnapshot: PersistedIssueSnapshotV1;
|
|
156
191
|
frozenCriteria: PersistedFrozenCriterionV1[];
|
|
157
192
|
reworkFindings: string[];
|
|
158
193
|
packageVersion: string;
|
|
159
194
|
workflowGeneration: WorkflowGenerationReceipt;
|
|
160
|
-
|
|
161
|
-
routeReceipt?: RouteReceiptV1;
|
|
162
|
-
waitingHuman?: WaitingHumanExecutionV1;
|
|
195
|
+
deliveryAuthority?: DeliveryAuthority;
|
|
163
196
|
directReview?: DirectReviewV1;
|
|
164
|
-
|
|
165
|
-
reportInvocation?: DurableReportInvocationV1;
|
|
166
|
-
mutableInvocation?: DurableMutableInvocationV1;
|
|
167
|
-
reviewFeedback?: ReviewFeedbackExecutionV1;
|
|
197
|
+
reviewFeedback?: ReviewFeedbackRunDataV1;
|
|
168
198
|
changeBindingVersion?: 2;
|
|
169
199
|
candidateBinding?: CandidateBindingV2;
|
|
170
|
-
|
|
171
|
-
checkQualification?: {
|
|
172
|
-
version: 1;
|
|
173
|
-
checkPolicySha256: string;
|
|
174
|
-
repairAttempts: 0 | 1 | 2 | 3 | 4 | 5;
|
|
175
|
-
checks: Array<{
|
|
176
|
-
id: string;
|
|
177
|
-
command: string;
|
|
178
|
-
status: 'passed' | 'failed';
|
|
179
|
-
outputSha256: string;
|
|
180
|
-
} | CandidateCheckReceiptV2>;
|
|
181
|
-
repairFindings?: string[];
|
|
182
|
-
};
|
|
200
|
+
candidateMaterialization?: CandidateMaterializationV2;
|
|
183
201
|
skillHashes: Record<string, string>;
|
|
184
|
-
|
|
185
|
-
baselineChecks?: Array<{
|
|
186
|
-
id: string;
|
|
187
|
-
command: string;
|
|
188
|
-
status: 'passed' | 'failed';
|
|
189
|
-
outputSha256: string;
|
|
190
|
-
}>;
|
|
191
|
-
/** `unchanged-failure` is accepted only so historical terminal runs remain readable. */
|
|
202
|
+
activeAttempt?: ActiveAttempt;
|
|
192
203
|
checks: Array<{
|
|
193
204
|
id: string;
|
|
194
205
|
command: string;
|
|
195
|
-
status: 'passed' | 'failed'
|
|
206
|
+
status: 'passed' | 'failed';
|
|
196
207
|
outputSha256: string;
|
|
197
208
|
} | CandidateCheckReceiptV2>;
|
|
198
209
|
checkedChangeSha256?: string;
|
|
199
210
|
proofId?: string;
|
|
211
|
+
proofExecution?: {
|
|
212
|
+
startedAt: string;
|
|
213
|
+
transportRetryCount: number;
|
|
214
|
+
reportRepairCount: number;
|
|
215
|
+
reportRepairFindings: string[];
|
|
216
|
+
};
|
|
200
217
|
proofReceipt?: ProofReceipt;
|
|
201
|
-
|
|
218
|
+
pendingEffect?: PendingEffect;
|
|
202
219
|
outcomeEvidenceId?: string;
|
|
203
220
|
terminalOutcome?: RunTerminalOutcome;
|
|
204
221
|
createdAt: string;
|
|
205
222
|
updatedAt: string;
|
|
206
223
|
}
|
|
207
|
-
export interface
|
|
208
|
-
schema: 'codex-orchestrator.
|
|
209
|
-
version: 2 | 3;
|
|
224
|
+
export interface RunStateFile {
|
|
225
|
+
schema: 'codex-orchestrator.run-state';
|
|
210
226
|
generation: number;
|
|
211
|
-
runs:
|
|
227
|
+
runs: RunRecord[];
|
|
212
228
|
}
|
|
213
|
-
export type
|
|
229
|
+
export type RunStateBody = Omit<RunStateFile, 'generation'>;
|
|
230
|
+
export type RunStateInspection = {
|
|
231
|
+
status: 'absent';
|
|
232
|
+
rawSha256: null;
|
|
233
|
+
} | {
|
|
234
|
+
status: 'supported';
|
|
235
|
+
rawSha256: string;
|
|
236
|
+
state: RunStateFile;
|
|
237
|
+
} | {
|
|
238
|
+
status: 'unsupported';
|
|
239
|
+
rawSha256: string;
|
|
240
|
+
};
|
|
214
241
|
export interface RunRecordWriter {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
242
|
+
inspect(): Promise<RunStateInspection>;
|
|
243
|
+
read(): Promise<RunStateFile>;
|
|
244
|
+
compareAndSwap(expectedGeneration: number, next: RunStateBody): Promise<RunStateFile>;
|
|
218
245
|
}
|
|
219
246
|
export declare class WorkflowGenerationUnrecoverableError extends Error {
|
|
220
247
|
constructor();
|
|
221
248
|
}
|
|
222
|
-
export declare class
|
|
249
|
+
export declare class IssueInitializationUnrecoverableError extends Error {
|
|
223
250
|
constructor();
|
|
224
251
|
}
|
|
225
252
|
export declare class FileRunRecordWriter implements RunRecordWriter {
|
|
226
253
|
private readonly file;
|
|
227
|
-
private readonly
|
|
228
|
-
private readonly migrationMetadataPath;
|
|
229
|
-
private readonly reportLifecycleBackupPath;
|
|
230
|
-
private readonly mutableLifecycleBackupPath;
|
|
231
|
-
private readonly now;
|
|
254
|
+
private readonly maxBytes;
|
|
232
255
|
constructor(path: string, options?: AtomicStateFileOptions);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
rollbackCandidateMigration(input: {
|
|
237
|
-
assertNoActiveProcesses: () => Promise<void>;
|
|
238
|
-
cleanupCandidateState: (state: RunStateFileV1) => Promise<void>;
|
|
239
|
-
}): Promise<RunStateFileV1>;
|
|
240
|
-
private ensureCandidateMigrationBackup;
|
|
241
|
-
private migrateLegacyReportLifecycle;
|
|
256
|
+
inspect(): Promise<RunStateInspection>;
|
|
257
|
+
read(): Promise<RunStateFile>;
|
|
258
|
+
compareAndSwap(expectedGeneration: number, next: RunStateBody): Promise<RunStateFile>;
|
|
242
259
|
}
|
|
243
260
|
export declare class InMemoryRunRecordWriter implements RunRecordWriter {
|
|
244
261
|
private state;
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
262
|
+
inspect(): Promise<RunStateInspection>;
|
|
263
|
+
read(): Promise<RunStateFile>;
|
|
264
|
+
compareAndSwap(expectedGeneration: number, next: RunStateBody): Promise<RunStateFile>;
|
|
248
265
|
}
|
|
249
|
-
export declare function validateRunStateFile(value: unknown):
|
|
266
|
+
export declare function validateRunStateFile(value: unknown): RunStateFile;
|
|
267
|
+
export {};
|
|
250
268
|
//# sourceMappingURL=run-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../../src/v2/run-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../../src/v2/run-store.ts"],"names":[],"mappings":"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"}
|