codex-orchestrator 2.0.5 → 2.0.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.
- package/CHANGELOG.md +57 -0
- package/README.md +6 -2
- package/dist/src/v2/acceptance-proof.d.ts +7 -0
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +111 -5
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/adapters/command.d.ts +2 -0
- package/dist/src/v2/adapters/command.d.ts.map +1 -1
- package/dist/src/v2/adapters/command.js +67 -8
- package/dist/src/v2/adapters/command.js.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.js +16 -5
- package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
- package/dist/src/v2/android-proof-runner.d.ts +93 -0
- package/dist/src/v2/android-proof-runner.d.ts.map +1 -0
- package/dist/src/v2/android-proof-runner.js +921 -0
- package/dist/src/v2/android-proof-runner.js.map +1 -0
- package/dist/src/v2/checked-change.d.ts +1 -1
- package/dist/src/v2/checked-change.d.ts.map +1 -1
- package/dist/src/v2/checked-change.js +3 -2
- package/dist/src/v2/checked-change.js.map +1 -1
- package/dist/src/v2/code-review-report.d.ts +1 -2
- package/dist/src/v2/code-review-report.d.ts.map +1 -1
- package/dist/src/v2/code-review-report.js +6 -11
- package/dist/src/v2/code-review-report.js.map +1 -1
- package/dist/src/v2/config.d.ts +13 -0
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +57 -1
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/containment.d.ts +0 -52
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +1 -195
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/direct-delivery.d.ts +11 -2
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +62 -17
- package/dist/src/v2/direct-delivery.js.map +1 -1
- package/dist/src/v2/immutable-workflow-publisher.js +6 -1
- package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
- package/dist/src/v2/implementation-reviewer.d.ts +1 -1
- package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
- package/dist/src/v2/implementation-reviewer.js +1 -2
- package/dist/src/v2/implementation-reviewer.js.map +1 -1
- package/dist/src/v2/mobile-lease.d.ts +9 -0
- package/dist/src/v2/mobile-lease.d.ts.map +1 -1
- package/dist/src/v2/mobile-lease.js +27 -3
- package/dist/src/v2/mobile-lease.js.map +1 -1
- package/dist/src/v2/proof-report.d.ts +1 -1
- package/dist/src/v2/proof-report.d.ts.map +1 -1
- package/dist/src/v2/proof-report.js +6 -4
- package/dist/src/v2/proof-report.js.map +1 -1
- package/dist/src/v2/run-issue.d.ts +18 -1
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +504 -109
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +17 -1
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +30 -4
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +84 -27
- package/dist/src/v2/runtime.js.map +1 -1
- package/docs/deep-dive.md +25 -11
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/schemas/proof-report-v1.json +1 -1
- package/internal-workflow/skills/acceptance-proof/SKILL.md +1 -1
- package/internal-workflow/skills/acceptance-proof/references/android.md +6 -6
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +10 -8
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +17 -3
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +30 -0
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +30 -6
- package/package.json +1 -2
- package/internal-workflow/skills/acceptance-proof/tools/android-lease.mjs +0 -280
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,63 @@ The format is based on Keep a Changelog, and this project follows SemVer.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [2.0.7] - 2026-07-28
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Blocked terminal outcomes now durably reconcile GitHub issue status before
|
|
13
|
+
completion. Recovery removes stale `agent:running`, preserves unrelated
|
|
14
|
+
labels, never restores revoked `agent:auto` authorization, and resumes safely
|
|
15
|
+
after remote-effect or state-write interruption without rerunning work.
|
|
16
|
+
- Code-review coverage is now descriptive instead of byte-correlated. Closure
|
|
17
|
+
normalizes outcome order, preserves stable defect identity across paraphrased
|
|
18
|
+
prose, gives each target revision four report-only repairs, and can safely
|
|
19
|
+
recover eligible legacy malformed-report terminals without rerunning
|
|
20
|
+
implementation. Exhausted current revisions remain terminal.
|
|
21
|
+
- Configured checks now establish a clean-base baseline. A byte-identical
|
|
22
|
+
failure on the changed worktree is retained as `unchanged-failure` evidence
|
|
23
|
+
instead of being misclassified as task-owned rework; new or changed failures
|
|
24
|
+
still consume the normal repair loop.
|
|
25
|
+
- After a trusted claim is established, `agent:auto` alone carries execution
|
|
26
|
+
authorization; disappearance of the `agent:running` status label no longer
|
|
27
|
+
causes an unrelated safety block.
|
|
28
|
+
- The trusted claim comment is now observed before adding the `agent:running`
|
|
29
|
+
status label, with crash-safe compatibility for older label-first runs.
|
|
30
|
+
|
|
31
|
+
### Removed
|
|
32
|
+
- Removed the local containment certificate, canary command, and pre-claim
|
|
33
|
+
certification gate. Authorized runs now start without operator-managed
|
|
34
|
+
certification while retaining the fixed worker sandbox, scrubbed
|
|
35
|
+
environment, denied network, and external-authority restrictions. This also
|
|
36
|
+
removes the exported `RunIssueDependencies.validateContainment` member and is
|
|
37
|
+
a breaking change for direct consumers of the low-level Runner API.
|
|
38
|
+
|
|
39
|
+
## [2.0.6] - 2026-07-28
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- Bound GitHub issue comments to the 16,384-code-unit persisted run-state
|
|
43
|
+
contract on both read and write, with an explicit truncation marker and
|
|
44
|
+
surrogate-safe Unicode handling.
|
|
45
|
+
- Treat issue-worktree creation failures as resumable local transport failures.
|
|
46
|
+
The claimed run is preserved for an idempotent retry after local Git state or
|
|
47
|
+
target configuration is corrected, and bounded local evidence retains the
|
|
48
|
+
underlying Git diagnostic instead of collapsing it into a terminal
|
|
49
|
+
`local-git-effect-failed`.
|
|
50
|
+
- Preserve valid claim markers that predate a new run as ID-bound audit history
|
|
51
|
+
while continuing to block malformed, duplicate-current, replaced-history, and
|
|
52
|
+
newly competing claim authority before triage, implementation, or publication
|
|
53
|
+
effects; safely retain pre-upgrade snapshots through GitHub timestamps and
|
|
54
|
+
refresh ordinary issue comments immediately before triage.
|
|
55
|
+
- Move Android Acceptance Proof device authority into the trusted Runner. A
|
|
56
|
+
configured run now starts its own selected AVD with clean ephemeral data,
|
|
57
|
+
owns the durable lease outside the contained worktree sandbox, builds and
|
|
58
|
+
launches the app, waits for configured accessibility-label navigation,
|
|
59
|
+
captures PID-bound visual evidence (including blocked navigation), and stops
|
|
60
|
+
only its own emulator and removes its own data after terminal settlement.
|
|
61
|
+
Preparation is durably fenced before emulator startup, the installed APK is
|
|
62
|
+
an exact Runner-owned snapshot, process identity and artifact digests are
|
|
63
|
+
revalidated across the workflow, and Android infrastructure failure is
|
|
64
|
+
retained as a non-blocking unfinished-UI-proof warning.
|
|
65
|
+
|
|
9
66
|
## [2.0.5] - 2026-07-28
|
|
10
67
|
|
|
11
68
|
### Added
|
package/README.md
CHANGED
|
@@ -180,12 +180,16 @@ All outcomes include structured evidence or a path to local evidence. Quiet term
|
|
|
180
180
|
|
|
181
181
|
- `github.baseBranch` and `github.labels`: where completed branches target and which labels control the workflow.
|
|
182
182
|
- `runner.pollIntervalSeconds`: daemon polling interval.
|
|
183
|
-
- `checks`: finite Runner-owned commands
|
|
183
|
+
- `checks`: finite Runner-owned commands. The Runner snapshots them on the clean
|
|
184
|
+
base and reruns them after implementation; only a new or changed failure is
|
|
185
|
+
task-owned rework, while a byte-identical base failure is retained as an
|
|
186
|
+
explicit `unchanged-failure` warning.
|
|
184
187
|
- `proof.artifactDir`: repository-relative location for proof artifacts inside the run worktree.
|
|
188
|
+
- `proof.android`: optional Runner-owned Android recipe. It selects `avdName`, creates an ephemeral clean data directory, requires fixed `build apk` arguments, removes any old `apkPath`, snapshots a fresh no-symlink APK outside the worker-writable tree, and binds its digest to the checked change. It installs and launches that exact snapshot, repeatedly verifies emulator process identity, waits up to `navigationTimeoutMs` for each exact `tapText` accessibility label, and captures proof-bound screenshot, hierarchy, PID log, and lease artifacts. Commands are bounded, cancellable, and process-group quiescent; URI query/fragment credentials are rejected. The contained proof worker never receives `adb`, emulator, Flutter, or durable lease authority. Emulator or Android-tool startup failure is retained as an explicit unfinished-UI-proof warning and does not by itself block delivery.
|
|
185
189
|
- `deny.readPaths`: paths the worker must not read or modify.
|
|
186
190
|
- `deny.commands`: absolute command paths that must not be exposed to the worker.
|
|
187
191
|
|
|
188
|
-
`runner.maxCycles`, the branch template, and containment settings are fixed policy in the current schema rather than open-ended tuning knobs. There is no configured Codex version pin: the Runner uses the installed `codex` command
|
|
192
|
+
`runner.maxCycles`, the branch template, and containment settings are fixed policy in the current schema rather than open-ended tuning knobs. There is no configured Codex version pin or local certification step: the Runner uses the installed `codex` command and applies the fixed sandbox, environment, network, and authority restrictions to every worker invocation.
|
|
189
193
|
|
|
190
194
|
## Safety model in plain language
|
|
191
195
|
|
|
@@ -43,6 +43,9 @@ export interface ProofAgent {
|
|
|
43
43
|
checkedChangeSha256: string;
|
|
44
44
|
changedFiles: string[];
|
|
45
45
|
checks: CheckedChangePayloadV1['checks'];
|
|
46
|
+
runnerPreparedArtifactPaths: string[];
|
|
47
|
+
runnerPreparedArtifactSha256: Record<string, string>;
|
|
48
|
+
runnerPreparationWarnings: string[];
|
|
46
49
|
repairOnly: boolean;
|
|
47
50
|
repairFindings: string[];
|
|
48
51
|
workflowGeneration?: WorkflowGenerationReceipt;
|
|
@@ -106,10 +109,14 @@ export declare class AcceptanceProof {
|
|
|
106
109
|
checkedChange: CheckedChange;
|
|
107
110
|
workflowGeneration?: WorkflowGenerationReceipt;
|
|
108
111
|
beforeAgentLaunch?: () => Promise<void>;
|
|
112
|
+
runnerPreparedArtifactPaths?: string[];
|
|
113
|
+
runnerPreparedArtifactSha256?: Record<string, string>;
|
|
114
|
+
runnerPreparationWarnings?: string[];
|
|
109
115
|
}): Promise<ProveChangeResult>;
|
|
110
116
|
private execute;
|
|
111
117
|
private validateArtifactsAndDiff;
|
|
112
118
|
private releaseMobileLeasesIfSettled;
|
|
119
|
+
private releaseMobileLeases;
|
|
113
120
|
private startProofRetry;
|
|
114
121
|
private isFresh;
|
|
115
122
|
private persistOperationalTerminal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptance-proof.d.ts","sourceRoot":"","sources":["../../../src/v2/acceptance-proof.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acceptance-proof.d.ts","sourceRoot":"","sources":["../../../src/v2/acceptance-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,14 +41,23 @@ export class AcceptanceProof {
|
|
|
41
41
|
frozenCriteria: input.frozenCriteria,
|
|
42
42
|
payload: checked.payload,
|
|
43
43
|
checkedChangeSha256: checked.checkedChangeSha256,
|
|
44
|
+
runnerPreparedArtifactPaths: input.runnerPreparedArtifactPaths ?? [],
|
|
44
45
|
});
|
|
45
46
|
const result = await this.execute({ ...input, ...checked, bindingSha256 });
|
|
46
47
|
await this.releaseMobileLeasesIfSettled(input.proofId, bindingSha256);
|
|
47
48
|
return result;
|
|
48
49
|
}
|
|
49
50
|
catch (error) {
|
|
50
|
-
if (error instanceof ProofQuiescenceError
|
|
51
|
+
if (error instanceof ProofQuiescenceError) {
|
|
52
|
+
throw new ProofQuiescenceError(error.pid, error.processGroupId, async () => {
|
|
53
|
+
await error.waitForAbsence();
|
|
54
|
+
await this.releaseMobileLeases(input.proofId);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (error instanceof ProofLaunchAuthorizationError) {
|
|
58
|
+
await this.releaseMobileLeases(input.proofId);
|
|
51
59
|
throw error;
|
|
60
|
+
}
|
|
52
61
|
return { status: 'internal-error', receipt: emptyReceipt(input.proofId, bindingSha256, 'Acceptance proof failed internally.') };
|
|
53
62
|
}
|
|
54
63
|
}
|
|
@@ -113,6 +122,9 @@ export class AcceptanceProof {
|
|
|
113
122
|
checkedChangeSha256: input.checkedChangeSha256,
|
|
114
123
|
changedFiles: [...input.payload.changedFiles],
|
|
115
124
|
checks: structuredClone(input.payload.checks),
|
|
125
|
+
runnerPreparedArtifactPaths: [...(input.runnerPreparedArtifactPaths ?? [])],
|
|
126
|
+
runnerPreparedArtifactSha256: { ...(input.runnerPreparedArtifactSha256 ?? {}) },
|
|
127
|
+
runnerPreparationWarnings: [...(input.runnerPreparationWarnings ?? [])],
|
|
116
128
|
repairOnly: purpose === 'report-repair',
|
|
117
129
|
repairFindings: purpose === 'report-repair' ? [...reportRepairFindings] : [],
|
|
118
130
|
workflowGeneration: input.workflowGeneration ? structuredClone(input.workflowGeneration) : undefined,
|
|
@@ -147,6 +159,10 @@ export class AcceptanceProof {
|
|
|
147
159
|
try {
|
|
148
160
|
report = validateProofReport(agentResult.report);
|
|
149
161
|
validateReportAgainstFrozenCriteria(report, input.frozenCriteria);
|
|
162
|
+
for (const warning of input.runnerPreparationWarnings ?? []) {
|
|
163
|
+
if (!report.residualRisks.includes(warning) && report.residualRisks.length < 256)
|
|
164
|
+
report.residualRisks.push(warning);
|
|
165
|
+
}
|
|
150
166
|
}
|
|
151
167
|
catch (error) {
|
|
152
168
|
const alreadyRepaired = state.attempts.some((attempt) => attempt.purpose === 'report-repair');
|
|
@@ -158,7 +174,7 @@ export class AcceptanceProof {
|
|
|
158
174
|
return this.persistOperationalTerminal(state, 'internal-error', input, 'Proof report is invalid.');
|
|
159
175
|
}
|
|
160
176
|
try {
|
|
161
|
-
await this.validateArtifactsAndDiff(input.proofId, report, agentResult.proofPhaseChangedFiles, state.startedAt, purpose !== 'report-repair');
|
|
177
|
+
await this.validateArtifactsAndDiff(input.proofId, report, agentResult.proofPhaseChangedFiles, state.startedAt, purpose !== 'report-repair', input.runnerPreparedArtifactPaths ?? [], input.runnerPreparedArtifactSha256 ?? {}, input.checkedChangeSha256, input.payload.checks.map((check) => check.id));
|
|
162
178
|
}
|
|
163
179
|
catch {
|
|
164
180
|
return this.persistOperationalTerminal(state, 'internal-error', input, 'Proof artifacts are invalid.');
|
|
@@ -172,7 +188,9 @@ export class AcceptanceProof {
|
|
|
172
188
|
proofId: input.proofId,
|
|
173
189
|
bindingSha256: input.bindingSha256,
|
|
174
190
|
summary: report.status === 'passed'
|
|
175
|
-
?
|
|
191
|
+
? input.runnerPreparationWarnings?.length
|
|
192
|
+
? `Acceptance proof passed with warning: ${input.runnerPreparationWarnings.join(' ')}`
|
|
193
|
+
: 'Acceptance proof passed.'
|
|
176
194
|
: report.status === 'needs-rework'
|
|
177
195
|
? 'Acceptance proof needs rework.'
|
|
178
196
|
: 'Acceptance proof is externally blocked.',
|
|
@@ -186,9 +204,22 @@ export class AcceptanceProof {
|
|
|
186
204
|
return { status: 'needs-rework', findings: [...report.findings], receipt: persisted.receipt };
|
|
187
205
|
return { status: 'external-block', blocker: structuredClone(report.blocker), receipt: persisted.receipt };
|
|
188
206
|
}
|
|
189
|
-
async validateArtifactsAndDiff(proofId, report, changedFiles, proofStartedAt, requireCurrentVisualWrites) {
|
|
207
|
+
async validateArtifactsAndDiff(proofId, report, changedFiles, proofStartedAt, requireCurrentVisualWrites, runnerPreparedArtifactPaths, runnerPreparedArtifactSha256, checkedChangeSha256, configuredCheckIds) {
|
|
190
208
|
if (!Array.isArray(changedFiles) || changedFiles.length > 256)
|
|
191
209
|
throw new Error('proof phase diff is invalid');
|
|
210
|
+
if (!Array.isArray(runnerPreparedArtifactPaths) || runnerPreparedArtifactPaths.length > 256) {
|
|
211
|
+
throw new Error('Runner-prepared proof artifact set is invalid');
|
|
212
|
+
}
|
|
213
|
+
for (const path of runnerPreparedArtifactPaths) {
|
|
214
|
+
assertRelativePath(path, 'Runner-prepared proof artifact');
|
|
215
|
+
if (!isInsideRelativeRoot(this.dependencies.proofArtifactDir, path)) {
|
|
216
|
+
throw new Error('Runner-prepared proof artifact escapes proof-owned directory');
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (Object.keys(runnerPreparedArtifactSha256).length !== runnerPreparedArtifactPaths.length
|
|
220
|
+
|| runnerPreparedArtifactPaths.some((path) => !/^[0-9a-f]{64}$/u.test(runnerPreparedArtifactSha256[path] ?? ''))) {
|
|
221
|
+
throw new Error('Runner-prepared proof artifact digest set is invalid');
|
|
222
|
+
}
|
|
192
223
|
const artifactPaths = new Set();
|
|
193
224
|
const mobileTarget = report.decision.mode === 'visual' && ['android', 'ios'].includes(report.decision.targets[0] ?? '')
|
|
194
225
|
? report.decision.targets[0]
|
|
@@ -199,11 +230,20 @@ export class AcceptanceProof {
|
|
|
199
230
|
? report.visualEvidence.lease.leaseRef
|
|
200
231
|
: undefined;
|
|
201
232
|
let mobileLeaseArtifact;
|
|
233
|
+
let androidRunnerReceiptArtifact;
|
|
234
|
+
const androidReceiptPaths = runnerPreparedArtifactPaths.filter((path) => path.endsWith(`/${proofId}/android-runner-receipt.json`));
|
|
235
|
+
if (androidReceiptPaths.length > 1)
|
|
236
|
+
throw new Error('Android Runner receipt set is ambiguous');
|
|
237
|
+
const expectedAndroidReceiptPath = androidReceiptPaths[0];
|
|
202
238
|
for (const artifact of report.artifacts) {
|
|
203
239
|
if (!isInsideRelativeRoot(this.dependencies.proofArtifactDir, artifact.relativePath)) {
|
|
204
240
|
throw new Error('proof artifact escapes proof-owned directory');
|
|
205
241
|
}
|
|
206
242
|
const bytes = await this.dependencies.readArtifact(artifact.relativePath);
|
|
243
|
+
if (runnerPreparedArtifactPaths.includes(artifact.relativePath)
|
|
244
|
+
&& sha256(bytes) !== runnerPreparedArtifactSha256[artifact.relativePath]) {
|
|
245
|
+
throw new Error('Runner-prepared proof artifact changed after capture');
|
|
246
|
+
}
|
|
207
247
|
if (sha256(bytes) !== artifact.sha256)
|
|
208
248
|
throw new Error('proof artifact hash mismatch');
|
|
209
249
|
validateArtifactBytes(artifact, bytes);
|
|
@@ -220,6 +260,11 @@ export class AcceptanceProof {
|
|
|
220
260
|
artifactPaths.add(artifact.relativePath);
|
|
221
261
|
if (artifact.id === mobileLeaseRef)
|
|
222
262
|
mobileLeaseArtifact = { relativePath: artifact.relativePath, bytes };
|
|
263
|
+
if (artifact.relativePath === expectedAndroidReceiptPath) {
|
|
264
|
+
if (artifact.kind !== 'generated-file' || artifact.publishable)
|
|
265
|
+
throw new Error('Android Runner receipt classification is invalid');
|
|
266
|
+
androidRunnerReceiptArtifact = { relativePath: artifact.relativePath, bytes };
|
|
267
|
+
}
|
|
223
268
|
}
|
|
224
269
|
for (const path of changedFiles) {
|
|
225
270
|
assertRelativePath(path, 'proof phase changed file');
|
|
@@ -227,12 +272,28 @@ export class AcceptanceProof {
|
|
|
227
272
|
throw new Error('proof phase changed a non-artifact path');
|
|
228
273
|
}
|
|
229
274
|
if (report.decision.mode === 'visual' && requireCurrentVisualWrites) {
|
|
230
|
-
const changed = new Set(changedFiles);
|
|
275
|
+
const changed = new Set([...changedFiles, ...runnerPreparedArtifactPaths]);
|
|
231
276
|
if (report.artifacts.some((artifact) => !changed.has(artifact.relativePath))) {
|
|
232
277
|
throw new Error('visual proof reused an unchanged artifact');
|
|
233
278
|
}
|
|
234
279
|
}
|
|
280
|
+
if (androidReceiptPaths.length === 1
|
|
281
|
+
&& (report.decision.mode !== 'visual' || report.decision.targets[0] !== 'android' || !mobileLeaseRef)) {
|
|
282
|
+
throw new Error('Runner-prepared Android proof requires Android visual evidence and lease custody');
|
|
283
|
+
}
|
|
235
284
|
if (mobileLeaseRef && mobileTarget) {
|
|
285
|
+
if (mobileTarget === 'android' && expectedAndroidReceiptPath) {
|
|
286
|
+
if (!androidRunnerReceiptArtifact)
|
|
287
|
+
throw new Error('Android Runner receipt artifact is required');
|
|
288
|
+
validateAndroidRunnerReceipt({
|
|
289
|
+
bytes: androidRunnerReceiptArtifact.bytes,
|
|
290
|
+
proofId,
|
|
291
|
+
checkedChangeSha256,
|
|
292
|
+
configuredCheckIds,
|
|
293
|
+
runnerPreparedArtifactPaths,
|
|
294
|
+
reportArtifactPaths: artifactPaths,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
236
297
|
const verifier = mobileTarget === 'android' ? this.dependencies.androidLease : this.dependencies.iosLease;
|
|
237
298
|
if (!verifier || !mobileLeaseArtifact)
|
|
238
299
|
throw new Error(`${mobileTarget} lease verification is unavailable`);
|
|
@@ -249,6 +310,9 @@ export class AcceptanceProof {
|
|
|
249
310
|
const state = await this.dependencies.proofRecords.read(proofId);
|
|
250
311
|
if (!state || state.bindingSha256 !== bindingSha256 || !isTerminalStatus(state.status))
|
|
251
312
|
return;
|
|
313
|
+
await this.releaseMobileLeases(proofId);
|
|
314
|
+
}
|
|
315
|
+
async releaseMobileLeases(proofId) {
|
|
252
316
|
await this.dependencies.androidLease?.release(proofId);
|
|
253
317
|
await this.dependencies.iosLease?.release(proofId);
|
|
254
318
|
}
|
|
@@ -304,6 +368,7 @@ function createBindingSha256(input) {
|
|
|
304
368
|
packageVersion: input.payload.packageVersion,
|
|
305
369
|
proofSchemaVersion: input.payload.proofSchemaVersion,
|
|
306
370
|
checkPolicySha256: input.payload.checkPolicySha256,
|
|
371
|
+
runnerPreparedArtifactPathsSha256: sha256(canonicalJson(input.runnerPreparedArtifactPaths)),
|
|
307
372
|
}));
|
|
308
373
|
}
|
|
309
374
|
function validateReportAgainstFrozenCriteria(report, criteria) {
|
|
@@ -345,6 +410,47 @@ function validateArtifactBytes(artifact, bytes) {
|
|
|
345
410
|
function containsHostIdentityEvidence(value) {
|
|
346
411
|
return /(?:^|[\s"'])(?:\/Users\/[^/\s"']+|\/home\/[^/\s"']+|[A-Za-z]:\\Users\\[^\\\s"']+)/mu.test(value);
|
|
347
412
|
}
|
|
413
|
+
function validateAndroidRunnerReceipt(input) {
|
|
414
|
+
if (input.bytes.length === 0 || input.bytes.length > 64 * 1024)
|
|
415
|
+
throw new Error('Android Runner receipt bytes are invalid');
|
|
416
|
+
const value = JSON.parse(input.bytes.toString('utf8'));
|
|
417
|
+
assertExactObject(value, [
|
|
418
|
+
'schema', 'version', 'status', 'proofId', 'configuredCheckIds', 'buildOutputSha256',
|
|
419
|
+
'checkedChangeSha256', 'apkSha256', 'artifactRefs', 'navigation', 'capturedAt',
|
|
420
|
+
], 'Android Runner receipt');
|
|
421
|
+
if (value.schema !== 'codex-orchestrator.runner-android-proof' || value.version !== 1
|
|
422
|
+
|| value.status !== 'prepared' || value.proofId !== input.proofId) {
|
|
423
|
+
throw new Error('Android Runner receipt identity is invalid');
|
|
424
|
+
}
|
|
425
|
+
const shaPattern = /^[0-9a-f]{64}$/u;
|
|
426
|
+
for (const field of ['buildOutputSha256', 'checkedChangeSha256', 'apkSha256']) {
|
|
427
|
+
if (typeof value[field] !== 'string' || !shaPattern.test(value[field]))
|
|
428
|
+
throw new Error(`Android Runner receipt ${field} is invalid`);
|
|
429
|
+
}
|
|
430
|
+
if (value.checkedChangeSha256 !== input.checkedChangeSha256)
|
|
431
|
+
throw new Error('Android Runner receipt checked change is stale');
|
|
432
|
+
if (!Array.isArray(value.configuredCheckIds)
|
|
433
|
+
|| value.configuredCheckIds.length !== input.configuredCheckIds.length
|
|
434
|
+
|| value.configuredCheckIds.some((id, index) => id !== input.configuredCheckIds[index])) {
|
|
435
|
+
throw new Error('Android Runner receipt check policy is invalid');
|
|
436
|
+
}
|
|
437
|
+
if (!Array.isArray(value.artifactRefs) || value.artifactRefs.length !== 4
|
|
438
|
+
|| new Set(value.artifactRefs).size !== value.artifactRefs.length
|
|
439
|
+
|| value.artifactRefs.some((path) => typeof path !== 'string'
|
|
440
|
+
|| !input.runnerPreparedArtifactPaths.includes(path)
|
|
441
|
+
|| !input.reportArtifactPaths.has(path))) {
|
|
442
|
+
throw new Error('Android Runner receipt artifact binding is invalid');
|
|
443
|
+
}
|
|
444
|
+
assertExactObject(value.navigation, ['launchUriConfigured', 'tapText'], 'Android Runner receipt navigation');
|
|
445
|
+
if (typeof value.navigation.launchUriConfigured !== 'boolean' || !Array.isArray(value.navigation.tapText)
|
|
446
|
+
|| value.navigation.tapText.some((text) => typeof text !== 'string' || text.length === 0)) {
|
|
447
|
+
throw new Error('Android Runner receipt navigation is invalid');
|
|
448
|
+
}
|
|
449
|
+
if (typeof value.capturedAt !== 'string' || Number.isNaN(Date.parse(value.capturedAt))
|
|
450
|
+
|| new Date(value.capturedAt).toISOString() !== value.capturedAt) {
|
|
451
|
+
throw new Error('Android Runner receipt timestamp is invalid');
|
|
452
|
+
}
|
|
453
|
+
}
|
|
348
454
|
function validateIssue(value) {
|
|
349
455
|
assertExactObject(value, ['number', 'title', 'body', 'url', 'state', 'labels'], 'issue snapshot');
|
|
350
456
|
if (!Number.isSafeInteger(value.number) || value.number <= 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptance-proof.js","sourceRoot":"","sources":["../../../src/v2/acceptance-proof.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acceptance-proof.js","sourceRoot":"","sources":["../../../src/v2/acceptance-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ export interface ProcessCommandOptions {
|
|
|
4
4
|
stdin?: string;
|
|
5
5
|
timeoutMs?: number;
|
|
6
6
|
idleTimeoutMs?: number;
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
processGroup?: boolean;
|
|
7
9
|
onStdoutChunk?: (chunk: string) => void | Promise<void>;
|
|
8
10
|
onStderrChunk?: (chunk: string) => void | Promise<void>;
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvH,eAAO,MAAM,sBAAsB,EAAE,eACe,CAAC;AAErD,eAAO,MAAM,2BAA2B,EAAE,oBACU,CAAC"}
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvH,eAAO,MAAM,sBAAsB,EAAE,eACe,CAAC;AAErD,eAAO,MAAM,2BAA2B,EAAE,oBACU,CAAC"}
|
|
@@ -6,12 +6,15 @@ function runSpawn(file, args, options) {
|
|
|
6
6
|
let settled = false;
|
|
7
7
|
let timedOut = false;
|
|
8
8
|
let idleTimedOut = false;
|
|
9
|
+
let aborted = false;
|
|
9
10
|
const callbackTasks = [];
|
|
11
|
+
const ownsProcessGroup = options.processGroup === true && process.platform !== 'win32';
|
|
10
12
|
const child = spawn(file, args, {
|
|
11
13
|
cwd: options.cwd,
|
|
12
14
|
env: options.env ? { ...options.env } : process.env,
|
|
13
15
|
shell: options.shell,
|
|
14
16
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
17
|
+
detached: ownsProcessGroup,
|
|
15
18
|
});
|
|
16
19
|
let stdout = '';
|
|
17
20
|
let stderr = '';
|
|
@@ -32,11 +35,10 @@ function runSpawn(file, args, options) {
|
|
|
32
35
|
}
|
|
33
36
|
idleTimeout = setTimeout(() => {
|
|
34
37
|
idleTimedOut = true;
|
|
35
|
-
child.
|
|
38
|
+
signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGTERM');
|
|
36
39
|
setTimeout(() => {
|
|
37
|
-
if (!settled)
|
|
38
|
-
child.
|
|
39
|
-
}
|
|
40
|
+
if (ownsProcessGroup || !settled)
|
|
41
|
+
signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGKILL');
|
|
40
42
|
}, 2_000).unref();
|
|
41
43
|
}, options.idleTimeoutMs);
|
|
42
44
|
idleTimeout.unref();
|
|
@@ -55,15 +57,26 @@ function runSpawn(file, args, options) {
|
|
|
55
57
|
const timeout = options.timeoutMs && options.timeoutMs > 0
|
|
56
58
|
? setTimeout(() => {
|
|
57
59
|
timedOut = true;
|
|
58
|
-
child.
|
|
60
|
+
signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGTERM');
|
|
59
61
|
setTimeout(() => {
|
|
60
|
-
if (!settled)
|
|
61
|
-
child.
|
|
62
|
-
}
|
|
62
|
+
if (ownsProcessGroup || !settled)
|
|
63
|
+
signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGKILL');
|
|
63
64
|
}, 2_000).unref();
|
|
64
65
|
}, options.timeoutMs)
|
|
65
66
|
: undefined;
|
|
66
67
|
timeout?.unref();
|
|
68
|
+
const abort = () => {
|
|
69
|
+
aborted = true;
|
|
70
|
+
signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGTERM');
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
if (ownsProcessGroup || !settled)
|
|
73
|
+
signalOwnedProcess(child.pid, ownsProcessGroup, 'SIGKILL');
|
|
74
|
+
}, 2_000).unref();
|
|
75
|
+
};
|
|
76
|
+
if (options.signal?.aborted)
|
|
77
|
+
abort();
|
|
78
|
+
else
|
|
79
|
+
options.signal?.addEventListener('abort', abort, { once: true });
|
|
67
80
|
child.on('error', (error) => {
|
|
68
81
|
if (settled) {
|
|
69
82
|
return;
|
|
@@ -75,6 +88,7 @@ function runSpawn(file, args, options) {
|
|
|
75
88
|
if (idleTimeout) {
|
|
76
89
|
clearTimeout(idleTimeout);
|
|
77
90
|
}
|
|
91
|
+
options.signal?.removeEventListener('abort', abort);
|
|
78
92
|
reject(error);
|
|
79
93
|
});
|
|
80
94
|
child.on('close', (exitCode) => {
|
|
@@ -88,8 +102,16 @@ function runSpawn(file, args, options) {
|
|
|
88
102
|
if (idleTimeout) {
|
|
89
103
|
clearTimeout(idleTimeout);
|
|
90
104
|
}
|
|
105
|
+
options.signal?.removeEventListener('abort', abort);
|
|
91
106
|
const finish = async () => {
|
|
92
107
|
await Promise.all(callbackTasks);
|
|
108
|
+
if ((aborted || timedOut || idleTimedOut) && ownsProcessGroup && child.pid) {
|
|
109
|
+
await waitForProcessGroupAbsence(child.pid);
|
|
110
|
+
}
|
|
111
|
+
if (aborted) {
|
|
112
|
+
resolve({ stdout, stderr: stderr ? `${stderr}\nCommand cancelled.` : 'Command cancelled.', exitCode: 130 });
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
93
115
|
if (idleTimedOut) {
|
|
94
116
|
const timeoutMessage = `Command idle timed out after ${options.idleTimeoutMs}ms.`;
|
|
95
117
|
resolve({
|
|
@@ -120,4 +142,41 @@ function runSpawn(file, args, options) {
|
|
|
120
142
|
}
|
|
121
143
|
});
|
|
122
144
|
}
|
|
145
|
+
function signalOwnedProcess(pid, processGroup, signal) {
|
|
146
|
+
if (!pid)
|
|
147
|
+
return;
|
|
148
|
+
try {
|
|
149
|
+
process.kill(processGroup ? -pid : pid, signal);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (error.code !== 'ESRCH')
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
async function waitForProcessGroupAbsence(processGroupId) {
|
|
157
|
+
for (let attempt = 0; attempt < 50; attempt += 1) {
|
|
158
|
+
try {
|
|
159
|
+
process.kill(-processGroupId, 0);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error.code === 'ESRCH')
|
|
163
|
+
return;
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
await new Promise((resolveWait) => setTimeout(resolveWait, 100));
|
|
167
|
+
}
|
|
168
|
+
signalOwnedProcess(processGroupId, true, 'SIGKILL');
|
|
169
|
+
for (let attempt = 0; attempt < 50; attempt += 1) {
|
|
170
|
+
try {
|
|
171
|
+
process.kill(-processGroupId, 0);
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
if (error.code === 'ESRCH')
|
|
175
|
+
return;
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
178
|
+
await new Promise((resolveWait) => setTimeout(resolveWait, 100));
|
|
179
|
+
}
|
|
180
|
+
throw new Error('Command process group remained active after SIGKILL.');
|
|
181
|
+
}
|
|
123
182
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/v2/adapters/command.ts"],"names":[],"mappings":"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"}
|