codex-orchestrator 0.1.31 → 0.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +145 -174
  3. package/dist/src/cli.js +59 -0
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/codex/command-adapter.d.ts +2 -1
  6. package/dist/src/codex/command-adapter.d.ts.map +1 -1
  7. package/dist/src/codex/command-adapter.js +13 -2
  8. package/dist/src/codex/command-adapter.js.map +1 -1
  9. package/dist/src/codex/mobile-device-guard.d.ts +7 -0
  10. package/dist/src/codex/mobile-device-guard.d.ts.map +1 -0
  11. package/dist/src/codex/mobile-device-guard.js +63 -0
  12. package/dist/src/codex/mobile-device-guard.js.map +1 -0
  13. package/dist/src/config/constants.d.ts +1 -1
  14. package/dist/src/config/constants.d.ts.map +1 -1
  15. package/dist/src/config/constants.js +1 -0
  16. package/dist/src/config/constants.js.map +1 -1
  17. package/dist/src/config/schema.d.ts +15 -2
  18. package/dist/src/config/schema.d.ts.map +1 -1
  19. package/dist/src/config/schema.js +30 -0
  20. package/dist/src/config/schema.js.map +1 -1
  21. package/dist/src/github/gh-pull-request-adapter.d.ts +1 -0
  22. package/dist/src/github/gh-pull-request-adapter.d.ts.map +1 -1
  23. package/dist/src/github/gh-pull-request-adapter.js +20 -0
  24. package/dist/src/github/gh-pull-request-adapter.js.map +1 -1
  25. package/dist/src/github/pull-requests.d.ts +2 -0
  26. package/dist/src/github/pull-requests.d.ts.map +1 -1
  27. package/dist/src/github/pull-requests.js +9 -0
  28. package/dist/src/github/pull-requests.js.map +1 -1
  29. package/dist/src/runner/acceptance-proof-runner.d.ts +54 -0
  30. package/dist/src/runner/acceptance-proof-runner.d.ts.map +1 -0
  31. package/dist/src/runner/acceptance-proof-runner.js +229 -0
  32. package/dist/src/runner/acceptance-proof-runner.js.map +1 -0
  33. package/dist/src/runner/acceptance-proof.d.ts +121 -0
  34. package/dist/src/runner/acceptance-proof.d.ts.map +1 -0
  35. package/dist/src/runner/acceptance-proof.js +405 -0
  36. package/dist/src/runner/acceptance-proof.js.map +1 -0
  37. package/dist/src/runner/android-visual-proof-command.d.ts +26 -0
  38. package/dist/src/runner/android-visual-proof-command.d.ts.map +1 -0
  39. package/dist/src/runner/android-visual-proof-command.js +598 -0
  40. package/dist/src/runner/android-visual-proof-command.js.map +1 -0
  41. package/dist/src/runner/command-utils.d.ts.map +1 -1
  42. package/dist/src/runner/command-utils.js +55 -6
  43. package/dist/src/runner/command-utils.js.map +1 -1
  44. package/dist/src/runner/completion-report.d.ts +3 -1
  45. package/dist/src/runner/completion-report.d.ts.map +1 -1
  46. package/dist/src/runner/completion-report.js +2 -1
  47. package/dist/src/runner/completion-report.js.map +1 -1
  48. package/dist/src/runner/daemon-command.d.ts.map +1 -1
  49. package/dist/src/runner/daemon-command.js +20 -0
  50. package/dist/src/runner/daemon-command.js.map +1 -1
  51. package/dist/src/runner/doctor-command.js +3 -3
  52. package/dist/src/runner/doctor-command.js.map +1 -1
  53. package/dist/src/runner/durable-run-summary.d.ts +3 -0
  54. package/dist/src/runner/durable-run-summary.d.ts.map +1 -1
  55. package/dist/src/runner/durable-run-summary.js +2 -0
  56. package/dist/src/runner/durable-run-summary.js.map +1 -1
  57. package/dist/src/runner/handoff-evidence.d.ts +5 -0
  58. package/dist/src/runner/handoff-evidence.d.ts.map +1 -1
  59. package/dist/src/runner/handoff-evidence.js +22 -0
  60. package/dist/src/runner/handoff-evidence.js.map +1 -1
  61. package/dist/src/runner/ios-visual-proof-command.d.ts +25 -0
  62. package/dist/src/runner/ios-visual-proof-command.d.ts.map +1 -0
  63. package/dist/src/runner/ios-visual-proof-command.js +355 -0
  64. package/dist/src/runner/ios-visual-proof-command.js.map +1 -0
  65. package/dist/src/runner/lifecycle-events.d.ts +1 -1
  66. package/dist/src/runner/lifecycle-events.d.ts.map +1 -1
  67. package/dist/src/runner/local-execution-session.d.ts +19 -6
  68. package/dist/src/runner/local-execution-session.d.ts.map +1 -1
  69. package/dist/src/runner/local-execution-session.js +93 -11
  70. package/dist/src/runner/local-execution-session.js.map +1 -1
  71. package/dist/src/runner/local-state.d.ts +6 -0
  72. package/dist/src/runner/local-state.d.ts.map +1 -1
  73. package/dist/src/runner/local-state.js +14 -0
  74. package/dist/src/runner/local-state.js.map +1 -1
  75. package/dist/src/runner/mobile-device-lease.d.ts +11 -0
  76. package/dist/src/runner/mobile-device-lease.d.ts.map +1 -0
  77. package/dist/src/runner/mobile-device-lease.js +121 -0
  78. package/dist/src/runner/mobile-device-lease.js.map +1 -0
  79. package/dist/src/runner/mobile-visual-proof-command.d.ts +17 -0
  80. package/dist/src/runner/mobile-visual-proof-command.d.ts.map +1 -0
  81. package/dist/src/runner/mobile-visual-proof-command.js +168 -0
  82. package/dist/src/runner/mobile-visual-proof-command.js.map +1 -0
  83. package/dist/src/runner/plan-auto-command.d.ts.map +1 -1
  84. package/dist/src/runner/plan-auto-command.js +57 -6
  85. package/dist/src/runner/plan-auto-command.js.map +1 -1
  86. package/dist/src/runner/prompt.js +2 -2
  87. package/dist/src/runner/prompt.js.map +1 -1
  88. package/dist/src/runner/recovery.d.ts +2 -1
  89. package/dist/src/runner/recovery.d.ts.map +1 -1
  90. package/dist/src/runner/recovery.js +24 -0
  91. package/dist/src/runner/recovery.js.map +1 -1
  92. package/dist/src/runner/review-gate-policy.d.ts +7 -0
  93. package/dist/src/runner/review-gate-policy.d.ts.map +1 -1
  94. package/dist/src/runner/review-gate-policy.js +81 -20
  95. package/dist/src/runner/review-gate-policy.js.map +1 -1
  96. package/dist/src/runner/review-gates.d.ts.map +1 -1
  97. package/dist/src/runner/review-gates.js +44 -11
  98. package/dist/src/runner/review-gates.js.map +1 -1
  99. package/dist/src/runner/rework-policy.d.ts +1 -0
  100. package/dist/src/runner/rework-policy.d.ts.map +1 -1
  101. package/dist/src/runner/rework-policy.js +7 -0
  102. package/dist/src/runner/rework-policy.js.map +1 -1
  103. package/dist/src/runner/scoped-auto-command.d.ts +46 -1
  104. package/dist/src/runner/scoped-auto-command.d.ts.map +1 -1
  105. package/dist/src/runner/scoped-auto-command.js +147 -47
  106. package/dist/src/runner/scoped-auto-command.js.map +1 -1
  107. package/dist/src/runner/scoped-recovery.d.ts +65 -0
  108. package/dist/src/runner/scoped-recovery.d.ts.map +1 -0
  109. package/dist/src/runner/scoped-recovery.js +484 -0
  110. package/dist/src/runner/scoped-recovery.js.map +1 -0
  111. package/dist/src/runner/status-command.d.ts.map +1 -1
  112. package/dist/src/runner/status-command.js +1 -0
  113. package/dist/src/runner/status-command.js.map +1 -1
  114. package/dist/src/runner/visual-proof-runner.d.ts +1 -0
  115. package/dist/src/runner/visual-proof-runner.d.ts.map +1 -1
  116. package/dist/src/runner/visual-proof-runner.js +144 -16
  117. package/dist/src/runner/visual-proof-runner.js.map +1 -1
  118. package/dist/src/setup/project-config.d.ts +4 -0
  119. package/dist/src/setup/project-config.d.ts.map +1 -1
  120. package/dist/src/setup/project-config.js +141 -9
  121. package/dist/src/setup/project-config.js.map +1 -1
  122. package/dist/src/setup/setup-command.d.ts.map +1 -1
  123. package/dist/src/setup/setup-command.js +2 -2
  124. package/dist/src/setup/setup-command.js.map +1 -1
  125. package/dist/src/setup/workflows.d.ts.map +1 -1
  126. package/dist/src/setup/workflows.js +5 -0
  127. package/dist/src/setup/workflows.js.map +1 -1
  128. package/docs/deep-dive.md +217 -28
  129. package/package.json +1 -1
  130. package/prompts/workflows/acceptance-proof.md +25 -0
  131. package/prompts/workflows/scoped-implementation.md +6 -2
@@ -0,0 +1,25 @@
1
+ type IosProofProjectType = 'auto' | 'flutter' | 'ios';
2
+ export interface IosVisualProofCommandInput {
3
+ issueNumber: number;
4
+ worktreePath?: string;
5
+ artifactDir?: string;
6
+ env?: NodeJS.ProcessEnv;
7
+ platform?: NodeJS.Platform;
8
+ projectType?: IosProofProjectType;
9
+ flutterTarget?: string;
10
+ flutterFlavor?: string;
11
+ iosBundleId?: string;
12
+ iosScheme?: string;
13
+ launchSettleMs?: number;
14
+ fallbackReason?: string;
15
+ }
16
+ export declare function runIosVisualProofCommand(input: IosVisualProofCommandInput): Promise<void>;
17
+ export declare function parseIosVisualProofArgs(args: string[], env?: NodeJS.ProcessEnv): {
18
+ ok: true;
19
+ value: IosVisualProofCommandInput;
20
+ } | {
21
+ ok: false;
22
+ error: string;
23
+ };
24
+ export {};
25
+ //# sourceMappingURL=ios-visual-proof-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ios-visual-proof-command.d.ts","sourceRoot":"","sources":["../../../src/runner/ios-visual-proof-command.ts"],"names":[],"mappings":"AAMA,KAAK,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAeD,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C/F;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,0BAA0B,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA2FhF"}
@@ -0,0 +1,355 @@
1
+ import { access, mkdir, readFile, readdir, stat, writeFile } from 'node:fs/promises';
2
+ import { constants } from 'node:fs';
3
+ import { spawn } from 'node:child_process';
4
+ import { basename, join, relative, resolve, delimiter as hostPathDelimiter } from 'node:path';
5
+ import { platform as hostPlatform } from 'node:os';
6
+ export async function runIosVisualProofCommand(input) {
7
+ const env = input.env ?? process.env;
8
+ const platform = input.platform ?? hostPlatform();
9
+ if (platform !== 'darwin') {
10
+ throw new Error('iOS visual proof requires macOS with Xcode simulator tooling.');
11
+ }
12
+ const worktreePath = resolve(input.worktreePath ?? env.CODEX_ORCHESTRATOR_WORKTREE_PATH ?? process.cwd());
13
+ const artifactDir = input.artifactDir ?? env.CODEX_ORCHESTRATOR_ARTIFACT_DIR ?? '.codex-orchestrator/proofs';
14
+ const proofDir = resolve(worktreePath, artifactDir, `issue-${input.issueNumber}`);
15
+ const runtimeDir = resolve(worktreePath, '.codex-orchestrator/runtime/ios-visual-proof');
16
+ const projectType = await resolveProjectType(worktreePath, input.projectType ?? iosProjectTypeFromEnv(env.CODEX_ORCHESTRATOR_IOS_PROJECT_TYPE));
17
+ const xcrun = await pathExecutable('xcrun', env, platform) ?? fail('xcrun was not found. Install Xcode command line tools or put xcrun on PATH.');
18
+ const simulator = await resolveSimulator(xcrun, env);
19
+ await mkdir(proofDir, { recursive: true });
20
+ await mkdir(runtimeDir, { recursive: true });
21
+ const build = await buildIosApp({
22
+ worktreePath,
23
+ runtimeDir,
24
+ projectType,
25
+ input,
26
+ env,
27
+ platform,
28
+ });
29
+ await runCommand(xcrun, ['simctl', 'install', simulator.udid, build.appPath], { env });
30
+ await runCommand(xcrun, ['simctl', 'launch', simulator.udid, build.bundleId], { env });
31
+ await delay(input.launchSettleMs ?? numberFromEnv(env.CODEX_ORCHESTRATOR_IOS_LAUNCH_SETTLE_MS) ?? 5000);
32
+ await runCommand(xcrun, ['simctl', 'io', simulator.udid, 'screenshot', join(proofDir, 'ios-launch.png')], { env });
33
+ await writeFile(join(proofDir, 'ios-ui-summary.txt'), [
34
+ 'iOS visual proof',
35
+ `issue: ${input.issueNumber}`,
36
+ `projectType: ${projectType}`,
37
+ `simulator: ${simulator.name}`,
38
+ `udid: ${simulator.udid}`,
39
+ `bundleId: ${build.bundleId}`,
40
+ `app: ${relative(worktreePath, build.appPath)}`,
41
+ input.fallbackReason ? `fallbackFrom: ${input.fallbackReason}` : undefined,
42
+ 'screenshot: ios-launch.png',
43
+ ].filter(Boolean).join('\n'));
44
+ }
45
+ export function parseIosVisualProofArgs(args, env = process.env) {
46
+ const parsed = {
47
+ issueNumber: Number(env.CODEX_ORCHESTRATOR_ISSUE_NUMBER),
48
+ worktreePath: env.CODEX_ORCHESTRATOR_WORKTREE_PATH ?? process.cwd(),
49
+ artifactDir: env.CODEX_ORCHESTRATOR_ARTIFACT_DIR,
50
+ flutterTarget: env.CODEX_ORCHESTRATOR_FLUTTER_TARGET,
51
+ flutterFlavor: env.CODEX_ORCHESTRATOR_IOS_FLAVOR,
52
+ iosBundleId: env.CODEX_ORCHESTRATOR_IOS_BUNDLE_ID,
53
+ iosScheme: env.CODEX_ORCHESTRATOR_IOS_SCHEME,
54
+ launchSettleMs: numberFromEnv(env.CODEX_ORCHESTRATOR_IOS_LAUNCH_SETTLE_MS),
55
+ };
56
+ for (let index = 0; index < args.length; index += 1) {
57
+ const arg = args[index];
58
+ const next = () => {
59
+ const value = args[index + 1];
60
+ if (!value || value.startsWith('--'))
61
+ return undefined;
62
+ index += 1;
63
+ return value;
64
+ };
65
+ switch (arg) {
66
+ case '--issue': {
67
+ const value = next();
68
+ if (!value || !Number.isInteger(Number(value)) || Number(value) < 1) {
69
+ return { ok: false, error: 'visual-proof ios requires --issue <number>' };
70
+ }
71
+ parsed.issueNumber = Number(value);
72
+ break;
73
+ }
74
+ case '--target':
75
+ case '--worktree': {
76
+ const value = next();
77
+ if (!value)
78
+ return { ok: false, error: `${arg} requires a value` };
79
+ parsed.worktreePath = value;
80
+ break;
81
+ }
82
+ case '--artifact-dir': {
83
+ const value = next();
84
+ if (!value)
85
+ return { ok: false, error: `${arg} requires a value` };
86
+ parsed.artifactDir = value;
87
+ break;
88
+ }
89
+ case '--project': {
90
+ const value = next();
91
+ if (value !== 'auto' && value !== 'flutter' && value !== 'ios') {
92
+ return { ok: false, error: '--project must be auto, flutter, or ios' };
93
+ }
94
+ parsed.projectType = value;
95
+ break;
96
+ }
97
+ case '--bundle-id': {
98
+ const value = next();
99
+ if (!value)
100
+ return { ok: false, error: `${arg} requires a value` };
101
+ parsed.iosBundleId = value;
102
+ break;
103
+ }
104
+ case '--scheme': {
105
+ const value = next();
106
+ if (!value)
107
+ return { ok: false, error: `${arg} requires a value` };
108
+ parsed.iosScheme = value;
109
+ break;
110
+ }
111
+ case '--flutter-target': {
112
+ const value = next();
113
+ if (!value)
114
+ return { ok: false, error: `${arg} requires a value` };
115
+ parsed.flutterTarget = value;
116
+ break;
117
+ }
118
+ case '--flavor': {
119
+ const value = next();
120
+ if (!value)
121
+ return { ok: false, error: `${arg} requires a value` };
122
+ parsed.flutterFlavor = value;
123
+ break;
124
+ }
125
+ case '--launch-settle-ms': {
126
+ const value = next();
127
+ if (!value || !Number.isFinite(Number(value)) || Number(value) < 0) {
128
+ return { ok: false, error: '--launch-settle-ms must be a non-negative number' };
129
+ }
130
+ parsed.launchSettleMs = Number(value);
131
+ break;
132
+ }
133
+ default:
134
+ return { ok: false, error: `Unknown visual-proof ios option: ${arg ?? ''}` };
135
+ }
136
+ }
137
+ if (!Number.isInteger(parsed.issueNumber) || parsed.issueNumber < 1) {
138
+ return { ok: false, error: 'visual-proof ios requires --issue <number>' };
139
+ }
140
+ return { ok: true, value: parsed };
141
+ }
142
+ async function buildIosApp(input) {
143
+ const bundleId = input.input.iosBundleId
144
+ ?? await inferIosBundleId(input.worktreePath)
145
+ ?? fail('Could not infer iOS bundle identifier. Pass --bundle-id or set CODEX_ORCHESTRATOR_IOS_BUNDLE_ID.');
146
+ if (input.projectType === 'flutter') {
147
+ const flutter = await resolveFlutter(input.env, input.platform);
148
+ const args = ['build', 'ios', '--simulator', '--debug'];
149
+ if (input.input.flutterTarget)
150
+ args.push('-t', input.input.flutterTarget);
151
+ if (input.input.flutterFlavor)
152
+ args.push('--flavor', input.input.flutterFlavor);
153
+ await runCommand(flutter, args, { cwd: input.worktreePath, env: input.env });
154
+ return {
155
+ appPath: await findAppBundle(join(input.worktreePath, 'build', 'ios', 'iphonesimulator')),
156
+ bundleId,
157
+ };
158
+ }
159
+ const xcodebuild = await pathExecutable('xcodebuild', input.env, input.platform)
160
+ ?? fail('xcodebuild was not found. Install Xcode command line tools or put xcodebuild on PATH.');
161
+ const project = await findFirstWithExtension(input.worktreePath, '.xcworkspace')
162
+ ?? await findFirstWithExtension(input.worktreePath, '.xcodeproj')
163
+ ?? fail('Native iOS visual proof expected an .xcworkspace or .xcodeproj.');
164
+ const projectFlag = project.endsWith('.xcworkspace') ? '-workspace' : '-project';
165
+ const scheme = input.input.iosScheme ?? basename(project).replace(/\.(?:xcworkspace|xcodeproj)$/u, '');
166
+ const derivedDataPath = join(input.runtimeDir, 'DerivedData');
167
+ await runCommand(xcodebuild, [
168
+ projectFlag,
169
+ project,
170
+ '-scheme',
171
+ scheme,
172
+ '-configuration',
173
+ 'Debug',
174
+ '-sdk',
175
+ 'iphonesimulator',
176
+ '-derivedDataPath',
177
+ derivedDataPath,
178
+ 'build',
179
+ ], { cwd: input.worktreePath, env: input.env });
180
+ return {
181
+ appPath: await findAppBundle(join(derivedDataPath, 'Build', 'Products')),
182
+ bundleId,
183
+ };
184
+ }
185
+ async function resolveSimulator(xcrun, env) {
186
+ const booted = await listSimulators(xcrun, ['simctl', 'list', 'devices', 'booted', '-j'], env);
187
+ if (booted[0])
188
+ return booted[0];
189
+ const available = await listSimulators(xcrun, ['simctl', 'list', 'devices', 'available', '-j'], env);
190
+ const simulator = available[0] ?? fail('No booted or available iOS simulator was found.');
191
+ await runCommand(xcrun, ['simctl', 'boot', simulator.udid], { env, allowFailure: true });
192
+ return simulator;
193
+ }
194
+ async function listSimulators(xcrun, args, env) {
195
+ const result = await runCommand(xcrun, args, { env });
196
+ const parsed = JSON.parse(String(result.stdout));
197
+ return Object.values(parsed.devices ?? {})
198
+ .flat()
199
+ .filter((device) => device.isAvailable !== false)
200
+ .map((device) => ({ udid: device.udid, name: device.name, state: device.state }));
201
+ }
202
+ async function resolveProjectType(worktreePath, configured) {
203
+ if (configured && configured !== 'auto')
204
+ return configured;
205
+ if (await isFile(join(worktreePath, 'pubspec.yaml')) && await isDirectory(join(worktreePath, 'ios'))) {
206
+ return 'flutter';
207
+ }
208
+ if (await findFirstWithExtension(worktreePath, '.xcodeproj') || await findFirstWithExtension(worktreePath, '.xcworkspace')) {
209
+ return 'ios';
210
+ }
211
+ throw new Error('Could not detect an iOS project. Use --project flutter or --project ios from a Flutter/native iOS repo.');
212
+ }
213
+ async function inferIosBundleId(worktreePath) {
214
+ const files = await listFiles(worktreePath, 4);
215
+ for (const file of files.filter((path) => path.endsWith('project.pbxproj'))) {
216
+ const match = /PRODUCT_BUNDLE_IDENTIFIER\s*=\s*([^;\s]+)/u.exec(await readFile(file, 'utf8'));
217
+ if (match?.[1])
218
+ return match[1].replaceAll('"', '');
219
+ }
220
+ return undefined;
221
+ }
222
+ async function findAppBundle(root) {
223
+ const files = await listFiles(root, 8);
224
+ const app = files.find((path) => path.endsWith('.app'));
225
+ if (!app) {
226
+ throw new Error(`iOS build did not produce an .app under ${root}.`);
227
+ }
228
+ return app;
229
+ }
230
+ async function findFirstWithExtension(root, extension) {
231
+ const entries = await readdir(root, { withFileTypes: true });
232
+ return entries.find((entry) => entry.isDirectory() && entry.name.endsWith(extension))
233
+ ? join(root, entries.find((entry) => entry.isDirectory() && entry.name.endsWith(extension))?.name ?? '')
234
+ : undefined;
235
+ }
236
+ async function resolveFlutter(env, platform) {
237
+ return env.CODEX_ORCHESTRATOR_FLUTTER_BIN
238
+ ?? (env.CODEX_ORCHESTRATOR_FLUTTER_ROOT ? join(env.CODEX_ORCHESTRATOR_FLUTTER_ROOT, 'bin', executableName('flutter', platform)) : undefined)
239
+ ?? (env.FLUTTER_ROOT ? join(env.FLUTTER_ROOT, 'bin', executableName('flutter', platform)) : undefined)
240
+ ?? await pathExecutable('flutter', env, platform)
241
+ ?? fail('Flutter was not found for Flutter iOS visual proof.');
242
+ }
243
+ async function runCommand(command, args, options = {}) {
244
+ return new Promise((resolvePromise, reject) => {
245
+ const child = spawn(command, args, { cwd: options.cwd, env: options.env, stdio: ['ignore', 'pipe', 'pipe'] });
246
+ const stdout = [];
247
+ const stderr = [];
248
+ const timer = options.timeoutMs ? setTimeout(() => child.kill('SIGTERM'), options.timeoutMs) : undefined;
249
+ child.stdout.on('data', (chunk) => stdout.push(chunk));
250
+ child.stderr.on('data', (chunk) => stderr.push(chunk));
251
+ child.on('error', reject);
252
+ child.on('close', (code, signal) => {
253
+ if (timer)
254
+ clearTimeout(timer);
255
+ const result = {
256
+ code,
257
+ signal,
258
+ stdout: Buffer.concat(stdout).toString('utf8'),
259
+ stderr: Buffer.concat(stderr).toString('utf8'),
260
+ };
261
+ if (code === 0 || options.allowFailure) {
262
+ resolvePromise(result);
263
+ return;
264
+ }
265
+ reject(new Error([
266
+ `Command failed (${code ?? signal}): ${command} ${args.join(' ')}`,
267
+ result.stderr || result.stdout,
268
+ ].filter(Boolean).join('\n')));
269
+ });
270
+ });
271
+ }
272
+ async function pathExecutable(name, env, platform) {
273
+ const extensions = platform === 'win32' ? ['.exe', '.cmd', '.bat', ''] : [''];
274
+ for (const entry of (env.PATH ?? '').split(hostPathDelimiter).filter(Boolean)) {
275
+ for (const extension of extensions) {
276
+ const candidate = join(entry, `${name}${extension}`);
277
+ if (await isExecutable(candidate, platform))
278
+ return candidate;
279
+ }
280
+ }
281
+ return undefined;
282
+ }
283
+ async function isExecutable(path, platform) {
284
+ try {
285
+ await access(path, platform === 'win32' ? constants.F_OK : constants.X_OK);
286
+ return true;
287
+ }
288
+ catch {
289
+ return false;
290
+ }
291
+ }
292
+ async function isFile(path) {
293
+ try {
294
+ return (await stat(path)).isFile();
295
+ }
296
+ catch {
297
+ return false;
298
+ }
299
+ }
300
+ async function isDirectory(path) {
301
+ try {
302
+ return (await stat(path)).isDirectory();
303
+ }
304
+ catch {
305
+ return false;
306
+ }
307
+ }
308
+ async function listFiles(root, maxDepth) {
309
+ if (maxDepth < 0)
310
+ return [];
311
+ let entries;
312
+ try {
313
+ entries = await readdir(root, { withFileTypes: true });
314
+ }
315
+ catch {
316
+ return [];
317
+ }
318
+ const files = [];
319
+ for (const entry of entries) {
320
+ const path = join(root, entry.name);
321
+ if (entry.isDirectory()) {
322
+ if (entry.name.endsWith('.app')) {
323
+ files.push(path);
324
+ }
325
+ else {
326
+ files.push(...await listFiles(path, maxDepth - 1));
327
+ }
328
+ }
329
+ else if (entry.isFile()) {
330
+ files.push(path);
331
+ }
332
+ }
333
+ return files;
334
+ }
335
+ function executableName(name, platform) {
336
+ return platform === 'win32' ? `${name}.exe` : name;
337
+ }
338
+ function numberFromEnv(value) {
339
+ if (value === undefined)
340
+ return undefined;
341
+ const number = Number(value);
342
+ return Number.isFinite(number) ? number : undefined;
343
+ }
344
+ function iosProjectTypeFromEnv(value) {
345
+ if (value === 'auto' || value === 'flutter' || value === 'ios')
346
+ return value;
347
+ return undefined;
348
+ }
349
+ function fail(message) {
350
+ throw new Error(message);
351
+ }
352
+ function delay(ms) {
353
+ return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
354
+ }
355
+ //# sourceMappingURL=ios-visual-proof-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ios-visual-proof-command.js","sourceRoot":"","sources":["../../../src/runner/ios-visual-proof-command.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { CodexPhase } from '../config/schema.js';
2
2
  import type { CodexOrchestratorConfig } from '../config/schema.js';
3
3
  import type { RunnerMode } from './issue-state-machine.js';
4
- export type LifecycleEventStatus = 'started' | 'completed' | 'blocked' | 'failed' | 'skipped';
4
+ export type LifecycleEventStatus = 'started' | 'completed' | 'needs-rework' | 'blocked' | 'failed' | 'skipped';
5
5
  export type LifecycleArtifactKind = 'prompt' | 'report' | 'log' | 'snapshot' | 'pr' | 'durable-summary' | 'other';
6
6
  export interface LifecycleArtifact {
7
7
  kind: LifecycleArtifactKind;
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-events.d.ts","sourceRoot":"","sources":["../../../src/runner/lifecycle-events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,UAAU,GACV,IAAI,GACJ,iBAAiB,GACjB,OAAO,CAAC;AAEZ,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,uBAAuB;IAG3C,UAAU,IAAI,MAAM;IAId,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBvE,UAAU,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAqBrE"}
1
+ {"version":3,"file":"lifecycle-events.d.ts","sourceRoot":"","sources":["../../../src/runner/lifecycle-events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/G,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,UAAU,GACV,IAAI,GACJ,iBAAiB,GACjB,OAAO,CAAC;AAEZ,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,uBAAuB;IAG3C,UAAU,IAAI,MAAM;IAId,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBvE,UAAU,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAqBrE"}
@@ -1,9 +1,11 @@
1
1
  import type { CodexOrchestratorConfig } from '../config/schema.js';
2
+ import type { CodexCommandRunInput, CodexCommandRunResult } from '../codex/command-adapter.js';
2
3
  import type { GitWorktreeManager, SessionCommitInfo } from '../git/worktree.js';
3
4
  import type { GitHubIssue } from '../github/issues.js';
4
5
  import type { ShellCommandExecutor } from '../process/command.js';
5
6
  import { type ScopedCompletionReport } from './completion-report.js';
6
7
  import type { RunnerValidationLine } from './handoff-evidence.js';
8
+ import { type AcceptanceProofAttemptEvidence } from './acceptance-proof-runner.js';
7
9
  export interface LocalExecutionPhaseInput {
8
10
  phaseId: string;
9
11
  worktreePath: string;
@@ -16,12 +18,7 @@ export interface LocalExecutionPhaseResult {
16
18
  status: 'passed' | 'failed' | 'skipped';
17
19
  summary: string;
18
20
  }>;
19
- artifacts: Array<{
20
- type: 'log' | 'screenshot' | 'other';
21
- path?: string;
22
- url?: string;
23
- description: string;
24
- }>;
21
+ artifacts: ScopedCompletionReport['artifacts'];
25
22
  residualRisks: string[];
26
23
  }
27
24
  export type LocalExecutionPhaseExecutor = (input: LocalExecutionPhaseInput) => Promise<LocalExecutionPhaseResult>;
@@ -39,6 +36,7 @@ export interface LocalExecutionSessionResult {
39
36
  export interface ImplementationPublishabilityInput {
40
37
  config: CodexOrchestratorConfig;
41
38
  issue: GitHubIssue;
39
+ targetRoot?: string;
42
40
  worktreePath: string;
43
41
  reportPath: string;
44
42
  beforeHead: string;
@@ -53,6 +51,19 @@ export interface ImplementationPublishabilityInput {
53
51
  commitMessage: string;
54
52
  localPhases?: string[];
55
53
  localPhaseExecutor?: LocalExecutionPhaseExecutor;
54
+ acceptanceProof?: {
55
+ targetRoot: string;
56
+ sessionId: string;
57
+ branchName: string;
58
+ workflowPromptText: string;
59
+ codexAdapter: {
60
+ run(input: CodexCommandRunInput): Promise<CodexCommandRunResult>;
61
+ };
62
+ onAttemptEvent?: (event: {
63
+ status: 'started' | 'passed' | 'needs-rework' | 'blocked';
64
+ evidence?: AcceptanceProofAttemptEvidence;
65
+ }) => Promise<void>;
66
+ };
56
67
  }
57
68
  export type ImplementationPublishabilityResult = {
58
69
  status: 'publish-ready';
@@ -63,6 +74,7 @@ export type ImplementationPublishabilityResult = {
63
74
  skippedChecks: string[];
64
75
  residualRisks: string[];
65
76
  commits: SessionCommitInfo[];
77
+ acceptanceProofAttempt?: AcceptanceProofAttemptEvidence;
66
78
  } | {
67
79
  status: 'blocked';
68
80
  reasons: string[];
@@ -71,6 +83,7 @@ export type ImplementationPublishabilityResult = {
71
83
  skippedChecks: string[];
72
84
  residualRisks: string[];
73
85
  commits: SessionCommitInfo[];
86
+ acceptanceProofAttempt?: AcceptanceProofAttemptEvidence;
74
87
  } | {
75
88
  status: 'promotion-requested';
76
89
  report: ScopedCompletionReport;
@@ -1 +1 @@
1
- {"version":3,"file":"local-execution-session.d.ts","sourceRoot":"","sources":["../../../src/runner/local-execution-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-execution-session.d.ts","sourceRoot":"","sources":["../../../src/runner/local-execution-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AASlE,OAAO,EAGL,KAAK,8BAA8B,EACpC,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,UAAU,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,SAAS,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC/C,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAElH,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,2BAA2B,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,GAAG,iBAAiB,GAAG,WAAW,CAAC,CAAC;IAC3F,aAAa,EAAE,oBAAoB,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,2BAA2B,CAAC;IACjD,eAAe,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE;YAAE,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;SAAE,CAAC;QACnF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;YACvB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;YAC1D,QAAQ,CAAC,EAAE,8BAA8B,CAAC;SAC3C,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,kCAAkC,GAC1C;IACE,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,SAAS,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC/C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;CACzD,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;CACzD,GACD;IACE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEN,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAyBtH;AAED,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,kCAAkC,CAAC,CAsR7C"}