codex-orchestrator 2.0.10 → 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 +52 -0
- package/README.md +29 -30
- package/dist/src/index.d.ts +4 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/v2/acceptance-proof.d.ts +53 -25
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +189 -197
- 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 +7 -0
- package/dist/src/v2/adapters/command.d.ts.map +1 -1
- package/dist/src/v2/adapters/command.js +44 -3
- package/dist/src/v2/adapters/command.js.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.js +1 -0
- package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -1
- package/dist/src/v2/adapters/pull-requests.d.ts +1 -0
- package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -1
- package/dist/src/v2/adapters/pull-requests.js +1 -0
- package/dist/src/v2/adapters/pull-requests.js.map +1 -1
- package/dist/src/v2/adapters/worktree.js +3 -3
- package/dist/src/v2/adapters/worktree.js.map +1 -1
- package/dist/src/v2/atomic-store.d.ts +15 -0
- package/dist/src/v2/atomic-store.d.ts.map +1 -1
- package/dist/src/v2/atomic-store.js +55 -8
- package/dist/src/v2/atomic-store.js.map +1 -1
- package/dist/src/v2/candidate.d.ts +136 -0
- package/dist/src/v2/candidate.d.ts.map +1 -0
- package/dist/src/v2/candidate.js +107 -0
- package/dist/src/v2/candidate.js.map +1 -0
- package/dist/src/v2/checked-change.d.ts +39 -7
- package/dist/src/v2/checked-change.d.ts.map +1 -1
- package/dist/src/v2/checked-change.js +73 -1
- 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 +14 -0
- package/dist/src/v2/cli.d.ts.map +1 -1
- package/dist/src/v2/cli.js +70 -21
- 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 -1
- package/dist/src/v2/codex-process.d.ts.map +1 -1
- package/dist/src/v2/codex-process.js +36 -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 +17 -6
- package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
- package/dist/src/v2/contained-report-operation.js +11 -24
- 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 +19 -57
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +154 -211
- 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 +22 -13
- package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
- package/dist/src/v2/implementation-reviewer.js +96 -30
- package/dist/src/v2/implementation-reviewer.js.map +1 -1
- package/dist/src/v2/owner-control-lock.d.ts +13 -1
- package/dist/src/v2/owner-control-lock.d.ts.map +1 -1
- package/dist/src/v2/owner-control-lock.js +66 -7
- package/dist/src/v2/owner-control-lock.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 +4 -2
- package/dist/src/v2/proof-report.d.ts.map +1 -1
- package/dist/src/v2/proof-report.js +16 -44
- package/dist/src/v2/proof-report.js.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.d.ts +8 -2
- package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.js +98 -71
- package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
- package/dist/src/v2/review-feedback.d.ts +14 -38
- package/dist/src/v2/review-feedback.d.ts.map +1 -1
- package/dist/src/v2/review-feedback.js +48 -115
- package/dist/src/v2/review-feedback.js.map +1 -1
- package/dist/src/v2/run-issue.d.ts +139 -60
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +2236 -1974
- 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 +114 -82
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +308 -224
- 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 +52 -15
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +818 -348
- 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/docs/deep-dive.md +52 -14
- 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 -288
- 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 -42
- package/dist/src/v2/proof-store.d.ts.map +0 -1
- package/dist/src/v2/proof-store.js +0 -180
- 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 -77
- package/dist/src/v2/route-coordinator.d.ts.map +0 -1
- package/dist/src/v2/route-coordinator.js +0 -370
- package/dist/src/v2/route-coordinator.js.map +0 -1
- package/dist/src/v2/route-decision.d.ts +0 -129
- package/dist/src/v2/route-decision.d.ts.map +0 -1
- package/dist/src/v2/route-decision.js +0 -400
- package/dist/src/v2/route-decision.js.map +0 -1
- package/dist/src/v2/spec-coordinator.d.ts +0 -85
- package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
- package/dist/src/v2/spec-coordinator.js +0 -88
- package/dist/src/v2/spec-coordinator.js.map +0 -1
- package/dist/src/v2/spec-delivery.d.ts +0 -143
- package/dist/src/v2/spec-delivery.d.ts.map +0 -1
- package/dist/src/v2/spec-delivery.js +0 -401
- 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 -332
- 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 -126
- 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
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { AtomicStateFile } from './atomic-store.js';
|
|
3
|
-
const SHA256_PATTERN = /^[0-9a-f]{64}$/;
|
|
4
|
-
const TERMINAL_STATUSES = [
|
|
5
|
-
'passed',
|
|
6
|
-
'needs-rework',
|
|
7
|
-
'external-block',
|
|
8
|
-
'transport-failed',
|
|
9
|
-
'cancelled',
|
|
10
|
-
'internal-error',
|
|
11
|
-
];
|
|
12
|
-
export class InMemoryProofRecordWriter {
|
|
13
|
-
states = new Map();
|
|
14
|
-
async read(proofId) {
|
|
15
|
-
const state = this.states.get(proofId);
|
|
16
|
-
return state ? structuredClone(state) : undefined;
|
|
17
|
-
}
|
|
18
|
-
async compareAndSwap(proofId, expectedBinding, expectedGeneration, next) {
|
|
19
|
-
const current = this.states.get(proofId);
|
|
20
|
-
if (!current) {
|
|
21
|
-
if (expectedGeneration !== 0)
|
|
22
|
-
throw new Error('proof state generation is stale');
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
if (current.bindingSha256 !== expectedBinding)
|
|
26
|
-
throw new Error('proof binding mismatch');
|
|
27
|
-
if (current.generation !== expectedGeneration)
|
|
28
|
-
throw new Error('proof state generation is stale');
|
|
29
|
-
}
|
|
30
|
-
if (next.proofId !== proofId || next.bindingSha256 !== expectedBinding)
|
|
31
|
-
throw new Error('proof state identity mismatch');
|
|
32
|
-
const state = { ...structuredClone(next), generation: expectedGeneration + 1 };
|
|
33
|
-
validateProofState(state);
|
|
34
|
-
this.states.set(proofId, state);
|
|
35
|
-
return structuredClone(state);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export class FileProofRecordWriter {
|
|
39
|
-
proofsRoot;
|
|
40
|
-
options;
|
|
41
|
-
constructor(proofsRoot, options = {}) {
|
|
42
|
-
this.proofsRoot = proofsRoot;
|
|
43
|
-
this.options = options;
|
|
44
|
-
}
|
|
45
|
-
async read(proofId) {
|
|
46
|
-
return this.file(proofId).read();
|
|
47
|
-
}
|
|
48
|
-
async compareAndSwap(proofId, expectedBinding, expectedGeneration, next) {
|
|
49
|
-
assertProofId(proofId);
|
|
50
|
-
assertSha256(expectedBinding, 'expected proof binding');
|
|
51
|
-
if (next.proofId !== proofId || next.bindingSha256 !== expectedBinding)
|
|
52
|
-
throw new Error('proof state identity mismatch');
|
|
53
|
-
const current = await this.read(proofId);
|
|
54
|
-
if (current && current.bindingSha256 !== expectedBinding)
|
|
55
|
-
throw new Error('proof binding mismatch');
|
|
56
|
-
return this.file(proofId).compareAndSwap(expectedGeneration, {
|
|
57
|
-
...structuredClone(next),
|
|
58
|
-
generation: expectedGeneration + 1,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
file(proofId) {
|
|
62
|
-
assertProofId(proofId);
|
|
63
|
-
return new AtomicStateFile(join(this.proofsRoot, proofId, 'state.json'), validateProofState, this.options);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
export function validateProofState(value) {
|
|
67
|
-
assertExactObject(value, [
|
|
68
|
-
'schema',
|
|
69
|
-
'version',
|
|
70
|
-
'generation',
|
|
71
|
-
'proofId',
|
|
72
|
-
'bindingSha256',
|
|
73
|
-
'status',
|
|
74
|
-
'attempts',
|
|
75
|
-
...(hasReceipt(value) ? ['receipt'] : []),
|
|
76
|
-
'startedAt',
|
|
77
|
-
'updatedAt',
|
|
78
|
-
], 'proof state');
|
|
79
|
-
if (value.schema !== 'codex-orchestrator.acceptance-proof-state' || value.version !== 1) {
|
|
80
|
-
throw new Error('proof state schema/version is invalid');
|
|
81
|
-
}
|
|
82
|
-
if (!Number.isSafeInteger(value.generation) || value.generation <= 0)
|
|
83
|
-
throw new Error('proof state generation is invalid');
|
|
84
|
-
assertNonEmptyString(value.proofId, 'proof state.proofId');
|
|
85
|
-
assertSha256(value.bindingSha256, 'proof state.bindingSha256');
|
|
86
|
-
if (!['prepared', 'running', ...TERMINAL_STATUSES].includes(value.status))
|
|
87
|
-
throw new Error('proof state status is invalid');
|
|
88
|
-
if (!Array.isArray(value.attempts) || value.attempts.length === 0 || value.attempts.length > 256) {
|
|
89
|
-
throw new Error('proof state attempts are invalid');
|
|
90
|
-
}
|
|
91
|
-
const attemptIds = new Set();
|
|
92
|
-
const purposeCounts = new Map();
|
|
93
|
-
for (const [index, attempt] of value.attempts.entries()) {
|
|
94
|
-
const keys = hasReportSha(attempt) ? ['attemptId', 'purpose', 'status', 'reportSha256'] : ['attemptId', 'purpose', 'status'];
|
|
95
|
-
assertExactObject(attempt, keys, `proof state.attempts[${index}]`);
|
|
96
|
-
assertNonEmptyString(attempt.attemptId, `proof state.attempts[${index}].attemptId`);
|
|
97
|
-
if (!['proof', 'transport-retry', 'report-repair'].includes(attempt.purpose))
|
|
98
|
-
throw new Error('proof attempt purpose is invalid');
|
|
99
|
-
const purpose = attempt.purpose;
|
|
100
|
-
if (!['prepared', 'running', 'terminal'].includes(attempt.status))
|
|
101
|
-
throw new Error('proof attempt status is invalid');
|
|
102
|
-
if (hasReportSha(attempt))
|
|
103
|
-
assertSha256(attempt.reportSha256, 'proof attempt reportSha256');
|
|
104
|
-
if (attemptIds.has(attempt.attemptId))
|
|
105
|
-
throw new Error('proof attempt IDs must be unique');
|
|
106
|
-
attemptIds.add(attempt.attemptId);
|
|
107
|
-
purposeCounts.set(purpose, (purposeCounts.get(purpose) ?? 0) + 1);
|
|
108
|
-
if (index === 0 && purpose !== 'proof')
|
|
109
|
-
throw new Error('first proof attempt purpose is invalid');
|
|
110
|
-
if (index > 0 && purpose === 'proof')
|
|
111
|
-
throw new Error('proof purpose cannot repeat');
|
|
112
|
-
if (index < value.attempts.length - 1 && attempt.status !== 'terminal')
|
|
113
|
-
throw new Error('prior proof attempts must be terminal');
|
|
114
|
-
}
|
|
115
|
-
if ((purposeCounts.get('transport-retry') ?? 0) > 1 || (purposeCounts.get('report-repair') ?? 0) > 1) {
|
|
116
|
-
throw new Error('proof retry budget is exceeded');
|
|
117
|
-
}
|
|
118
|
-
const terminal = TERMINAL_STATUSES.includes(value.status);
|
|
119
|
-
if (terminal !== hasReceipt(value))
|
|
120
|
-
throw new Error('proof terminal state and receipt must appear together');
|
|
121
|
-
if (hasReceipt(value))
|
|
122
|
-
validateReceipt(value.receipt);
|
|
123
|
-
assertIsoTimestamp(value.startedAt);
|
|
124
|
-
assertIsoTimestamp(value.updatedAt);
|
|
125
|
-
if (Date.parse(value.updatedAt) < Date.parse(value.startedAt))
|
|
126
|
-
throw new Error('proof state timestamps are reversed');
|
|
127
|
-
return value;
|
|
128
|
-
}
|
|
129
|
-
function validateReceipt(value) {
|
|
130
|
-
assertExactObject(value, ['proofId', 'bindingSha256', 'summary', 'publishableEvidence', 'localEvidenceId'], 'proof receipt');
|
|
131
|
-
assertNonEmptyString(value.proofId, 'proof receipt.proofId');
|
|
132
|
-
assertSha256(value.bindingSha256, 'proof receipt.bindingSha256');
|
|
133
|
-
assertNonEmptyString(value.summary, 'proof receipt.summary');
|
|
134
|
-
assertNonEmptyString(value.localEvidenceId, 'proof receipt.localEvidenceId');
|
|
135
|
-
if (!Array.isArray(value.publishableEvidence) || value.publishableEvidence.length > 256) {
|
|
136
|
-
throw new Error('proof receipt publishableEvidence is invalid');
|
|
137
|
-
}
|
|
138
|
-
for (const evidence of value.publishableEvidence) {
|
|
139
|
-
assertExactObject(evidence, ['ref', 'kind', 'sha256', 'description'], 'proof receipt evidence');
|
|
140
|
-
assertNonEmptyString(evidence.ref, 'proof receipt evidence.ref');
|
|
141
|
-
if (evidence.kind !== 'screenshot' && evidence.kind !== 'summary')
|
|
142
|
-
throw new Error('proof receipt evidence.kind is invalid');
|
|
143
|
-
assertSha256(evidence.sha256, 'proof receipt evidence.sha256');
|
|
144
|
-
assertNonEmptyString(evidence.description, 'proof receipt evidence.description');
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
function hasReceipt(value) {
|
|
148
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value) && Object.hasOwn(value, 'receipt');
|
|
149
|
-
}
|
|
150
|
-
function hasReportSha(value) {
|
|
151
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value) && Object.hasOwn(value, 'reportSha256');
|
|
152
|
-
}
|
|
153
|
-
function assertExactObject(value, keys, field) {
|
|
154
|
-
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
155
|
-
throw new Error(`${field} must be an object`);
|
|
156
|
-
const actual = Object.keys(value).sort();
|
|
157
|
-
const expected = [...keys].sort();
|
|
158
|
-
if (actual.length !== expected.length || actual.some((key, index) => key !== expected[index])) {
|
|
159
|
-
throw new Error(`${field} has unknown or missing keys`);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
function assertNonEmptyString(value, field) {
|
|
163
|
-
if (typeof value !== 'string' || value.length === 0 || value.length > 16 * 1024)
|
|
164
|
-
throw new Error(`${field} is invalid`);
|
|
165
|
-
}
|
|
166
|
-
function assertSha256(value, field) {
|
|
167
|
-
if (typeof value !== 'string' || !SHA256_PATTERN.test(value))
|
|
168
|
-
throw new Error(`${field} must be lowercase SHA-256`);
|
|
169
|
-
}
|
|
170
|
-
function assertProofId(value) {
|
|
171
|
-
assertNonEmptyString(value, 'proofId');
|
|
172
|
-
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(value) || value === '.' || value === '..')
|
|
173
|
-
throw new Error('proofId is unsafe');
|
|
174
|
-
}
|
|
175
|
-
function assertIsoTimestamp(value) {
|
|
176
|
-
if (typeof value !== 'string' || Number.isNaN(Date.parse(value)) || new Date(value).toISOString() !== value) {
|
|
177
|
-
throw new Error('proof state updatedAt is invalid');
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
//# sourceMappingURL=proof-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proof-store.js","sourceRoot":"","sources":["../../../src/v2/proof-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { PersistedFrozenCriterionV1, PersistedIssueSnapshotV1 } from './run-store.js';
|
|
2
|
-
import type { RouteReceiptV1 } from './route-decision.js';
|
|
3
|
-
import type { WorkflowGenerationReceipt } from './workflow-assets.js';
|
|
4
|
-
import type { WaitingHumanResult, WaitingHumanState } from './waiting-human-coordinator.js';
|
|
5
|
-
import type { SpecCoordinatorResult, SpecDeliveryState } from './spec-coordinator.js';
|
|
6
|
-
export interface RoutedRunContext {
|
|
7
|
-
runId: string;
|
|
8
|
-
issue: PersistedIssueSnapshotV1;
|
|
9
|
-
frozenCriteria: PersistedFrozenCriterionV1[];
|
|
10
|
-
worktreePath: string;
|
|
11
|
-
workflowGeneration: WorkflowGenerationReceipt;
|
|
12
|
-
receipt: RouteReceiptV1;
|
|
13
|
-
}
|
|
14
|
-
export type RoutedContinuationResult = {
|
|
15
|
-
status: 'completed';
|
|
16
|
-
} | {
|
|
17
|
-
status: 'retryable';
|
|
18
|
-
code: string;
|
|
19
|
-
} | {
|
|
20
|
-
status: 'blocked';
|
|
21
|
-
kind: 'external' | 'safety' | 'exhausted';
|
|
22
|
-
code: string;
|
|
23
|
-
evidence: string[];
|
|
24
|
-
} | {
|
|
25
|
-
status: 'cancelled';
|
|
26
|
-
};
|
|
27
|
-
export interface RoutedContinuationRegistry {
|
|
28
|
-
direct(input: RoutedRunContext): Promise<RoutedContinuationResult>;
|
|
29
|
-
specRequired(input: RoutedRunContext, state: SpecDeliveryState, signal: AbortSignal): Promise<SpecCoordinatorResult>;
|
|
30
|
-
awaitingUser(input: RoutedRunContext, state: WaitingHumanState, signal: AbortSignal): Promise<WaitingHumanResult>;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=route-continuations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-continuations.d.ts","sourceRoot":"","sources":["../../../src/v2/route-continuations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,wBAAwB,CAAC;IAChC,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAClG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnE,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrH,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-continuations.js","sourceRoot":"","sources":["../../../src/v2/route-continuations.ts"],"names":[],"mappings":""}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { type AmbiguityReviewRefV1, type CandidateRepairInputV1, type MalformedRepairInputV1, type RouteArtifactRefV1, type RouteExecutionV1, type RouteReceiptV1 } from './route-decision.js';
|
|
2
|
-
import { type TriageRouteV1 } from './triage-route.js';
|
|
3
|
-
import type { WorkflowGenerationReceipt } from './workflow-assets.js';
|
|
4
|
-
import type { ContainedReportOperation, ContainedReportOperationResult } from './contained-report-operation.js';
|
|
5
|
-
export type { AmbiguityReviewRefV1, CandidateRepairInputV1, ContainedReportOperation, MalformedRepairInputV1, RouteArtifactRefV1, RouteExecutionV1, RouteReceiptV1, };
|
|
6
|
-
export type RouteCoordinatorResult = {
|
|
7
|
-
status: 'succeeded';
|
|
8
|
-
receipt: RouteReceiptV1;
|
|
9
|
-
} | {
|
|
10
|
-
status: 'repairable';
|
|
11
|
-
code: 'triage-artifact-invalid' | 'waiting-candidate-rejected';
|
|
12
|
-
findings: string[];
|
|
13
|
-
} | {
|
|
14
|
-
status: 'retryable';
|
|
15
|
-
owner: 'triage' | 'ambiguity-review';
|
|
16
|
-
code: string;
|
|
17
|
-
} | {
|
|
18
|
-
status: 'safe-halt';
|
|
19
|
-
process: Extract<ContainedReportOperationResult, {
|
|
20
|
-
status: 'safe-halt';
|
|
21
|
-
}>['process'];
|
|
22
|
-
waitForAbsence(): Promise<void>;
|
|
23
|
-
} | {
|
|
24
|
-
status: 'awaiting-user';
|
|
25
|
-
receipt: RouteReceiptV1;
|
|
26
|
-
} | {
|
|
27
|
-
status: 'cancelled';
|
|
28
|
-
} | {
|
|
29
|
-
status: 'blocked';
|
|
30
|
-
kind: 'external' | 'safety' | 'exhausted';
|
|
31
|
-
code: string;
|
|
32
|
-
evidence: string[];
|
|
33
|
-
};
|
|
34
|
-
export interface RouteCoordinatorState {
|
|
35
|
-
read(): Promise<RouteExecutionV1>;
|
|
36
|
-
compareAndSwap(expected: RouteExecutionV1, next: RouteExecutionV1): Promise<boolean>;
|
|
37
|
-
complete(expected: RouteExecutionV1, next: RouteExecutionV1, receipt: RouteReceiptV1): Promise<boolean>;
|
|
38
|
-
cancel(expected: RouteExecutionV1): Promise<boolean>;
|
|
39
|
-
}
|
|
40
|
-
export interface RouteReceiptInput {
|
|
41
|
-
artifact: TriageRouteV1;
|
|
42
|
-
triage: RouteArtifactRefV1;
|
|
43
|
-
review: AmbiguityReviewRefV1 | null;
|
|
44
|
-
decidedAt: string;
|
|
45
|
-
}
|
|
46
|
-
export interface RouteCoordinatorDependencies {
|
|
47
|
-
state: RouteCoordinatorState;
|
|
48
|
-
operation: ContainedReportOperation;
|
|
49
|
-
createAttemptId(): string;
|
|
50
|
-
now(): string;
|
|
51
|
-
createReceipt(input: RouteReceiptInput): RouteReceiptV1;
|
|
52
|
-
}
|
|
53
|
-
export interface RouteCoordinatorInput {
|
|
54
|
-
runId: string;
|
|
55
|
-
worktreePath: string;
|
|
56
|
-
workflowGeneration: WorkflowGenerationReceipt;
|
|
57
|
-
promptFacts: string[];
|
|
58
|
-
signal: AbortSignal;
|
|
59
|
-
}
|
|
60
|
-
export declare function initialRouteExecution(): RouteExecutionV1;
|
|
61
|
-
export declare class RouteCoordinator {
|
|
62
|
-
private readonly dependencies;
|
|
63
|
-
constructor(dependencies: RouteCoordinatorDependencies);
|
|
64
|
-
run(input: RouteCoordinatorInput): Promise<RouteCoordinatorResult>;
|
|
65
|
-
private launchTriage;
|
|
66
|
-
private adoptTriage;
|
|
67
|
-
private launchReview;
|
|
68
|
-
private adoptReview;
|
|
69
|
-
private invalidTriage;
|
|
70
|
-
private retryTriage;
|
|
71
|
-
private retryReview;
|
|
72
|
-
private recoverTriage;
|
|
73
|
-
private recoverReview;
|
|
74
|
-
private complete;
|
|
75
|
-
private cancel;
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=route-coordinator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-coordinator.d.ts","sourceRoot":"","sources":["../../../src/v2/route-coordinator.ts"],"names":[],"mappings":"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"}
|