codex-orchestrator 0.1.25 → 0.1.27
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 +24 -0
- package/README.md +52 -8
- package/dist/src/cli.js +56 -9
- package/dist/src/cli.js.map +1 -1
- package/dist/src/codex/command-adapter.d.ts +12 -2
- package/dist/src/codex/command-adapter.d.ts.map +1 -1
- package/dist/src/codex/command-adapter.js +27 -7
- package/dist/src/codex/command-adapter.js.map +1 -1
- package/dist/src/config/constants.d.ts +1 -1
- package/dist/src/config/constants.d.ts.map +1 -1
- package/dist/src/config/constants.js +6 -1
- package/dist/src/config/constants.js.map +1 -1
- package/dist/src/config/schema.d.ts +11 -0
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +59 -1
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/index.d.ts +8 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/runner/context-snapshot.d.ts +28 -0
- package/dist/src/runner/context-snapshot.d.ts.map +1 -0
- package/dist/src/runner/context-snapshot.js +82 -0
- package/dist/src/runner/context-snapshot.js.map +1 -0
- package/dist/src/runner/doctor-command.d.ts +39 -0
- package/dist/src/runner/doctor-command.d.ts.map +1 -0
- package/dist/src/runner/doctor-command.js +123 -0
- package/dist/src/runner/doctor-command.js.map +1 -0
- package/dist/src/runner/fresh-context-review.d.ts.map +1 -1
- package/dist/src/runner/fresh-context-review.js +20 -1
- package/dist/src/runner/fresh-context-review.js.map +1 -1
- package/dist/src/runner/handoff-evidence.d.ts +1 -0
- package/dist/src/runner/handoff-evidence.d.ts.map +1 -1
- package/dist/src/runner/handoff-evidence.js +3 -0
- package/dist/src/runner/handoff-evidence.js.map +1 -1
- package/dist/src/runner/issue-state-machine.d.ts +1 -1
- package/dist/src/runner/issue-state-machine.d.ts.map +1 -1
- package/dist/src/runner/issue-state-machine.js +5 -0
- package/dist/src/runner/issue-state-machine.js.map +1 -1
- package/dist/src/runner/issue-tree.d.ts.map +1 -1
- package/dist/src/runner/issue-tree.js +0 -12
- package/dist/src/runner/issue-tree.js.map +1 -1
- package/dist/src/runner/lifecycle-events.d.ts +44 -0
- package/dist/src/runner/lifecycle-events.d.ts.map +1 -0
- package/dist/src/runner/lifecycle-events.js +108 -0
- package/dist/src/runner/lifecycle-events.js.map +1 -0
- package/dist/src/runner/plan-auto-command.d.ts.map +1 -1
- package/dist/src/runner/plan-auto-command.js +121 -15
- package/dist/src/runner/plan-auto-command.js.map +1 -1
- package/dist/src/runner/scoped-auto-command.d.ts.map +1 -1
- package/dist/src/runner/scoped-auto-command.js +130 -0
- package/dist/src/runner/scoped-auto-command.js.map +1 -1
- package/dist/src/runner/status-command.d.ts +21 -0
- package/dist/src/runner/status-command.d.ts.map +1 -1
- package/dist/src/runner/status-command.js +26 -2
- package/dist/src/runner/status-command.js.map +1 -1
- package/dist/src/setup/project-config.d.ts.map +1 -1
- package/dist/src/setup/project-config.js +22 -4
- package/dist/src/setup/project-config.js.map +1 -1
- package/dist/src/setup/setup-command.d.ts +0 -1
- package/dist/src/setup/setup-command.d.ts.map +1 -1
- package/dist/src/setup/setup-command.js +34 -2
- package/dist/src/setup/setup-command.js.map +1 -1
- package/dist/src/setup/workflows.d.ts +1 -2
- package/dist/src/setup/workflows.d.ts.map +1 -1
- package/dist/src/setup/workflows.js +8 -32
- package/dist/src/setup/workflows.js.map +1 -1
- package/docs/deep-dive.md +6 -3
- package/package.json +8 -1
- package/prompts/workflows/breakdown-review.md +46 -3
- package/prompts/workflows/issue-breakdown.md +116 -3
- package/prompts/workflows/issue-tree-orchestration.md +156 -3
- package/prompts/workflows/prd.md +68 -3
- package/prompts/workflows/scoped-implementation.md +81 -22
- package/prompts/workflows/triage.md +137 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,30 @@ The format is based on Keep a Changelog, and this project follows SemVer.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.27] - 2026-05-18
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Setup and docs now describe the package-bundled workflow prompt model
|
|
13
|
+
clearly, so installed repositories do not depend on local Codex `SKILL.md`
|
|
14
|
+
files.
|
|
15
|
+
- `agent:auto` is reserved for standalone scoped issues, while issue-tree
|
|
16
|
+
children use only `agent:child` plus runner metadata and are executed by their
|
|
17
|
+
parent `agent:plan-auto` flow.
|
|
18
|
+
- The default workflow prompts are full package-bundled workflows instead of
|
|
19
|
+
fallback stubs, with setup preserving project-owned prompt edits by default.
|
|
20
|
+
|
|
21
|
+
## [0.1.26] - 2026-05-16
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Runner diagnostics wave: read-only `doctor`, `status --json`, phase-specific
|
|
25
|
+
Codex profiles, lifecycle events, and bounded context snapshots before Codex
|
|
26
|
+
sessions.
|
|
27
|
+
- Live smoke coverage for diagnostics/profile evidence through the packaged CLI.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- Status and handoff evidence now point to bounded runner artifacts instead of
|
|
31
|
+
requiring operators to inspect raw Codex transcripts.
|
|
32
|
+
|
|
9
33
|
## [0.1.25] - 2026-05-15
|
|
10
34
|
|
|
11
35
|
### Added
|
package/README.md
CHANGED
|
@@ -55,7 +55,9 @@ There are two main modes.
|
|
|
55
55
|
|
|
56
56
|
### `agent:auto`
|
|
57
57
|
|
|
58
|
-
Use `agent:auto` for one clear implementation issue.
|
|
58
|
+
Use `agent:auto` for one clear standalone implementation issue. Do not use it
|
|
59
|
+
for child issues created by `agent:plan-auto`; those are marked with
|
|
60
|
+
`agent:child` and are executed only by the parent issue-tree flow.
|
|
59
61
|
|
|
60
62
|
The runner:
|
|
61
63
|
|
|
@@ -77,6 +79,8 @@ integration draft PR.
|
|
|
77
79
|
|
|
78
80
|
Only child issues explicitly marked by the runner belong to the autonomous tree.
|
|
79
81
|
Ordinary links, milestones, project fields, or casual references are not enough.
|
|
82
|
+
Child issues use `agent:child`, not `agent:auto`, so the daemon cannot confuse
|
|
83
|
+
parent-owned child work with standalone scoped work.
|
|
80
84
|
|
|
81
85
|
## Basic Workflow
|
|
82
86
|
|
|
@@ -145,6 +149,8 @@ Check eligible work:
|
|
|
145
149
|
|
|
146
150
|
```sh
|
|
147
151
|
codex-orchestrator status --target .
|
|
152
|
+
codex-orchestrator status --target . --json
|
|
153
|
+
codex-orchestrator doctor --target .
|
|
148
154
|
```
|
|
149
155
|
|
|
150
156
|
Run one issue:
|
|
@@ -200,9 +206,12 @@ controls the GitHub repo, labels, base branch, branch names, validation checks,
|
|
|
200
206
|
review gates, blocked paths, child issue concurrency, durable logs, PR titles,
|
|
201
207
|
and the prompts used for planning and implementation.
|
|
202
208
|
|
|
203
|
-
The package ships
|
|
204
|
-
|
|
205
|
-
|
|
209
|
+
The package ships bundled workflow prompts, so a repository does not need local
|
|
210
|
+
Codex `SKILL.md` files installed on the user's machine. Setup copies those
|
|
211
|
+
prompts into `.codex-orchestrator/prompts/workflows/`, and the runner reads the
|
|
212
|
+
copied prompt files during `agent:auto` and `agent:plan-auto` runs. Workflow
|
|
213
|
+
`skillName` values in config are descriptive metadata for the workflow role;
|
|
214
|
+
they are not a runtime dependency on the user's local Codex skill directory.
|
|
206
215
|
|
|
207
216
|
Configured checks run before publication. By default, missing
|
|
208
217
|
`npm run <script>` checks are reported as skipped warnings, not failures. You can
|
|
@@ -216,6 +225,35 @@ The default quality gate is conservative for runtime code changes. It can
|
|
|
216
225
|
require TDD evidence, changed tests, code review, cleanup review for larger
|
|
217
226
|
changes, and visual proof for UI work.
|
|
218
227
|
|
|
228
|
+
## Diagnostics
|
|
229
|
+
|
|
230
|
+
`doctor` is a read-only readiness check for operators. It validates the target
|
|
231
|
+
config, GitHub label visibility, git/base branch access, runner state paths,
|
|
232
|
+
configured checks, the Codex command, phase profiles, and visual proof settings.
|
|
233
|
+
It never launches Codex, creates worktrees, edits labels, or changes issues.
|
|
234
|
+
|
|
235
|
+
```sh
|
|
236
|
+
codex-orchestrator doctor --target .
|
|
237
|
+
codex-orchestrator doctor --target . --json
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
`status --json` returns the same queue view as text status plus active local
|
|
241
|
+
runs and recent lifecycle events. The JSON is designed for wrappers and
|
|
242
|
+
dashboards; it includes bounded artifact paths such as context snapshots, but
|
|
243
|
+
not raw Codex transcripts, secrets, prompt text, or full issue comments.
|
|
244
|
+
|
|
245
|
+
Codex command profiles can be set per runner phase under `codex.profiles`.
|
|
246
|
+
Supported phases are `plan-parent`, `scoped-issue`, `tree-child`,
|
|
247
|
+
`fresh-context-review`, `visual-proof`, and `quality-review`. Missing profile
|
|
248
|
+
fields fall back to the global `codex.command`, `codex.args`, `timeoutMs`, and
|
|
249
|
+
`idleTimeoutMs`, so existing configs keep working.
|
|
250
|
+
|
|
251
|
+
Each Codex session writes a bounded context snapshot before invocation and links
|
|
252
|
+
it from lifecycle events under the runner state directory. Snapshots record the
|
|
253
|
+
issue identity, runner decision, selected profile, workspace paths, and
|
|
254
|
+
publication boundaries so a maintainer can reproduce why a session started
|
|
255
|
+
without reading raw logs.
|
|
256
|
+
|
|
219
257
|
## Visual Proof
|
|
220
258
|
|
|
221
259
|
For browser UI work, configure a runner-owned proof command, usually a
|
|
@@ -274,7 +312,8 @@ Default labels:
|
|
|
274
312
|
|
|
275
313
|
- `agent:auto` - run one scoped issue;
|
|
276
314
|
- `agent:plan-auto` - plan and run a parent issue tree;
|
|
277
|
-
- `agent:child` - child issue in an autonomous tree;
|
|
315
|
+
- `agent:child` - child issue in an autonomous tree; this is not a standalone
|
|
316
|
+
authorization label;
|
|
278
317
|
- `agent:running` - runner is working;
|
|
279
318
|
- `agent:blocked` - maintainer input needed;
|
|
280
319
|
- `agent:manual` - reserved for human work;
|
|
@@ -288,9 +327,10 @@ Default labels:
|
|
|
288
327
|
codex-orchestrator --help
|
|
289
328
|
codex-orchestrator --version
|
|
290
329
|
codex-orchestrator health
|
|
330
|
+
codex-orchestrator doctor --target <path> [--json]
|
|
291
331
|
codex-orchestrator setup [--target <path>] [--github-owner <owner>] \
|
|
292
332
|
[--github-repo <repo>] [--dry-run] [--prepare-labels]
|
|
293
|
-
codex-orchestrator status --target <path> [--dry-run]
|
|
333
|
+
codex-orchestrator status --target <path> [--dry-run] [--json]
|
|
294
334
|
codex-orchestrator run --target <path> --issue <number>
|
|
295
335
|
codex-orchestrator daemon --target <path> [--once] \
|
|
296
336
|
[--interval-seconds <seconds>] [--max-runs <count>]
|
|
@@ -304,10 +344,14 @@ codex-orchestrator daemon --target <path> [--once] \
|
|
|
304
344
|
- `--target <path>` - override the target directory, which defaults to the current directory;
|
|
305
345
|
- `--github-owner <owner>` - override the GitHub owner inferred from `origin`;
|
|
306
346
|
- `--github-repo <repo>` - override the GitHub repo inferred from `origin`;
|
|
307
|
-
- `--skills-
|
|
308
|
-
|
|
347
|
+
- `--replace-package-skills` - refresh package-bundled prompt files. The flag
|
|
348
|
+
name is kept for compatibility; it does not install or require local Codex
|
|
349
|
+
skills.
|
|
309
350
|
|
|
310
351
|
Setup does not launch Codex, commit changes, or open pull requests.
|
|
352
|
+
When the target repository already has a `package.json`, setup also adds
|
|
353
|
+
`orchestrator:*` npm scripts. Daemon scripts run `doctor` first, then start the
|
|
354
|
+
daemon only if the readiness check passes.
|
|
311
355
|
|
|
312
356
|
`status` is read-only. It shows eligible issues, skipped issues with reasons,
|
|
313
357
|
and local recovery state.
|
package/dist/src/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import { readPackageInfo } from './package-info.js';
|
|
|
5
5
|
import { readRunnerConfig } from './runner/command-utils.js';
|
|
6
6
|
import { discoverIssueWork } from './runner/issue-state-machine.js';
|
|
7
7
|
import { runDaemonCommand } from './runner/daemon-command.js';
|
|
8
|
+
import { runDoctorCommand } from './runner/doctor-command.js';
|
|
8
9
|
import { runPlanAutoCommand } from './runner/plan-auto-command.js';
|
|
9
10
|
import { runScopedAutoCommand } from './runner/scoped-auto-command.js';
|
|
10
11
|
import { runStatusCommand } from './runner/status-command.js';
|
|
@@ -15,13 +16,15 @@ Usage:
|
|
|
15
16
|
codex-orchestrator --help
|
|
16
17
|
codex-orchestrator --version
|
|
17
18
|
codex-orchestrator health
|
|
19
|
+
codex-orchestrator doctor --target <path> [--json]
|
|
18
20
|
codex-orchestrator setup [--target <path>] [--github-owner <owner>] [--github-repo <repo>] [--dry-run] [--prepare-labels]
|
|
19
|
-
codex-orchestrator status --target <path> [--dry-run]
|
|
21
|
+
codex-orchestrator status --target <path> [--dry-run] [--json]
|
|
20
22
|
codex-orchestrator run --target <path> --issue <number>
|
|
21
23
|
codex-orchestrator daemon --target <path> [--interval-seconds <number>] [--once] [--max-runs <number>]
|
|
22
24
|
|
|
23
25
|
Commands:
|
|
24
26
|
health Run a no-op local health check.
|
|
27
|
+
doctor Run read-only runner readiness diagnostics.
|
|
25
28
|
setup Create or dry-run project-local orchestrator config. Use --prepare-labels to create missing agent labels.
|
|
26
29
|
status Show eligible/skipped issue work and local recovery state.
|
|
27
30
|
run Execute one authorized issue: scoped agent:auto or full agent:plan-auto issue tree.
|
|
@@ -59,7 +62,6 @@ async function main(args) {
|
|
|
59
62
|
githubRepo: parsed.value.githubRepo,
|
|
60
63
|
dryRun: parsed.value.dryRun,
|
|
61
64
|
prepareLabels: parsed.value.prepareLabels,
|
|
62
|
-
skillsRoot: parsed.value.skillsRoot,
|
|
63
65
|
replacePackageSkills: parsed.value.replacePackageSkills,
|
|
64
66
|
});
|
|
65
67
|
process.stdout.write(`${result.output}\n`);
|
|
@@ -71,6 +73,26 @@ async function main(args) {
|
|
|
71
73
|
return 1;
|
|
72
74
|
}
|
|
73
75
|
}
|
|
76
|
+
if (command === 'doctor') {
|
|
77
|
+
const parsed = parseDoctorArgs(args.slice(1));
|
|
78
|
+
if (!parsed.ok) {
|
|
79
|
+
process.stderr.write(`${parsed.error}\nRun codex-orchestrator --help for usage.\n`);
|
|
80
|
+
return 2;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const result = await runDoctorCommand({
|
|
84
|
+
targetRoot: parsed.value.target,
|
|
85
|
+
json: parsed.value.json,
|
|
86
|
+
});
|
|
87
|
+
process.stdout.write(`${result.output}\n`);
|
|
88
|
+
return result.json.summary.fail > 0 ? 1 : 0;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
const message = error instanceof Error ? error.message : 'doctor failed';
|
|
92
|
+
process.stderr.write(`${message}\n`);
|
|
93
|
+
return 1;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
74
96
|
if (command === 'status') {
|
|
75
97
|
const parsed = parseStatusArgs(args.slice(1));
|
|
76
98
|
if (!parsed.ok) {
|
|
@@ -81,6 +103,7 @@ async function main(args) {
|
|
|
81
103
|
const result = await runStatusCommand({
|
|
82
104
|
targetRoot: parsed.value.target,
|
|
83
105
|
dryRun: parsed.value.dryRun,
|
|
106
|
+
json: parsed.value.json,
|
|
84
107
|
});
|
|
85
108
|
process.stdout.write(`${result.output}\n`);
|
|
86
109
|
return 0;
|
|
@@ -188,6 +211,7 @@ function parseRunArgs(args) {
|
|
|
188
211
|
function parseStatusArgs(args) {
|
|
189
212
|
const parsed = {
|
|
190
213
|
dryRun: false,
|
|
214
|
+
json: false,
|
|
191
215
|
};
|
|
192
216
|
for (let index = 0; index < args.length; index += 1) {
|
|
193
217
|
const arg = args[index];
|
|
@@ -203,6 +227,9 @@ function parseStatusArgs(args) {
|
|
|
203
227
|
case '--dry-run':
|
|
204
228
|
parsed.dryRun = true;
|
|
205
229
|
break;
|
|
230
|
+
case '--json':
|
|
231
|
+
parsed.json = true;
|
|
232
|
+
break;
|
|
206
233
|
default:
|
|
207
234
|
return { ok: false, error: `Unknown status option: ${arg ?? ''}` };
|
|
208
235
|
}
|
|
@@ -212,6 +239,33 @@ function parseStatusArgs(args) {
|
|
|
212
239
|
}
|
|
213
240
|
return { ok: true, value: { ...parsed, target: parsed.target } };
|
|
214
241
|
}
|
|
242
|
+
function parseDoctorArgs(args) {
|
|
243
|
+
const parsed = {
|
|
244
|
+
json: false,
|
|
245
|
+
};
|
|
246
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
247
|
+
const arg = args[index];
|
|
248
|
+
const next = args[index + 1];
|
|
249
|
+
switch (arg) {
|
|
250
|
+
case '--target':
|
|
251
|
+
if (!next || next.startsWith('--')) {
|
|
252
|
+
return { ok: false, error: `${arg} requires a value` };
|
|
253
|
+
}
|
|
254
|
+
parsed.target = next;
|
|
255
|
+
index += 1;
|
|
256
|
+
break;
|
|
257
|
+
case '--json':
|
|
258
|
+
parsed.json = true;
|
|
259
|
+
break;
|
|
260
|
+
default:
|
|
261
|
+
return { ok: false, error: `Unknown doctor option: ${arg ?? ''}` };
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (!parsed.target) {
|
|
265
|
+
return { ok: false, error: 'doctor requires --target <path>' };
|
|
266
|
+
}
|
|
267
|
+
return { ok: true, value: { ...parsed, target: parsed.target } };
|
|
268
|
+
}
|
|
215
269
|
function parseDaemonArgs(args) {
|
|
216
270
|
const parsed = {
|
|
217
271
|
intervalSeconds: 300,
|
|
@@ -285,13 +339,6 @@ function parseSetupArgs(args) {
|
|
|
285
339
|
parsed.githubRepo = next;
|
|
286
340
|
index += 1;
|
|
287
341
|
break;
|
|
288
|
-
case '--skills-root':
|
|
289
|
-
if (!next || next.startsWith('--')) {
|
|
290
|
-
return { ok: false, error: `${arg} requires a value` };
|
|
291
|
-
}
|
|
292
|
-
parsed.skillsRoot = next;
|
|
293
|
-
index += 1;
|
|
294
|
-
break;
|
|
295
342
|
case '--dry-run':
|
|
296
343
|
parsed.dryRun = true;
|
|
297
344
|
break;
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CodexOrchestratorConfig, type CodexPhase } from '../config/schema.js';
|
|
2
2
|
import type { ProcessExecutor } from '../process/command.js';
|
|
3
3
|
export interface CodexCommandRunInput {
|
|
4
4
|
targetRoot: string;
|
|
@@ -11,6 +11,7 @@ export interface CodexCommandRunInput {
|
|
|
11
11
|
issueNumber: number;
|
|
12
12
|
sessionId: string;
|
|
13
13
|
branchName: string;
|
|
14
|
+
phase?: CodexPhase;
|
|
14
15
|
timeoutMs?: number;
|
|
15
16
|
logPath?: string;
|
|
16
17
|
}
|
|
@@ -26,5 +27,14 @@ export declare class CodexCommandAdapter {
|
|
|
26
27
|
constructor(config: CodexOrchestratorConfig, executor?: ProcessExecutor);
|
|
27
28
|
run(input: CodexCommandRunInput): Promise<CodexCommandRunResult>;
|
|
28
29
|
}
|
|
29
|
-
export declare function buildCodexProcessEnv(input: CodexCommandRunInput, sourceEnv: NodeJS.ProcessEnv): Record<string, string>;
|
|
30
|
+
export declare function buildCodexProcessEnv(input: CodexCommandRunInput, sourceEnv: NodeJS.ProcessEnv, profileEnv?: Record<string, string>): Record<string, string>;
|
|
31
|
+
export interface EffectiveCodexProfile {
|
|
32
|
+
phase: CodexPhase;
|
|
33
|
+
command: string;
|
|
34
|
+
args: string[];
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
idleTimeoutMs?: number;
|
|
37
|
+
env: Record<string, string>;
|
|
38
|
+
}
|
|
39
|
+
export declare function resolveCodexProfile(config: CodexOrchestratorConfig, phase: CodexPhase): EffectiveCodexProfile;
|
|
30
40
|
//# sourceMappingURL=command-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-adapter.d.ts","sourceRoot":"","sources":["../../../src/codex/command-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"command-adapter.d.ts","sourceRoot":"","sources":["../../../src/codex/command-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAA2B,MAAM,qBAAqB,CAAC;AAC3I,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,GAAE,eAAwC;IAGxD,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAsB9E;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,EAC3B,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACtC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,GAAG,qBAAqB,CAU7G"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { homedir } from 'node:os';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { forbiddenCodexProfileEnvKeys } from '../config/schema.js';
|
|
3
4
|
import { defaultProcessExecutor } from '../process/command.js';
|
|
4
5
|
import { RunLogWriter } from '../runner/run-log.js';
|
|
5
6
|
export class CodexCommandAdapter {
|
|
@@ -10,16 +11,19 @@ export class CodexCommandAdapter {
|
|
|
10
11
|
this.executor = executor;
|
|
11
12
|
}
|
|
12
13
|
async run(input) {
|
|
13
|
-
const
|
|
14
|
+
const phase = input.phase ?? 'scoped-issue';
|
|
15
|
+
const effectiveProfile = resolveCodexProfile(this.config, phase);
|
|
16
|
+
const profileTimeoutMs = this.config.codex.profiles?.[phase]?.timeoutMs;
|
|
17
|
+
const args = effectiveProfile.args.map((arg) => renderCodexArg(arg, input));
|
|
14
18
|
const logWriter = input.logPath ? new RunLogWriter(input.logPath) : undefined;
|
|
15
|
-
await logWriter?.appendLifecycle(`starting ${
|
|
19
|
+
await logWriter?.appendLifecycle(`starting ${effectiveProfile.command} ${args.join(' ')}`);
|
|
16
20
|
try {
|
|
17
|
-
const result = await this.executor(
|
|
21
|
+
const result = await this.executor(effectiveProfile.command, args, {
|
|
18
22
|
cwd: input.worktreePath,
|
|
19
23
|
stdin: input.promptText,
|
|
20
|
-
env: buildCodexProcessEnv(input, process.env),
|
|
21
|
-
timeoutMs: input.timeoutMs ?? this.config.codex.timeoutMs,
|
|
22
|
-
idleTimeoutMs:
|
|
24
|
+
env: buildCodexProcessEnv(input, process.env, effectiveProfile.env),
|
|
25
|
+
timeoutMs: profileTimeoutMs ?? input.timeoutMs ?? this.config.codex.timeoutMs,
|
|
26
|
+
idleTimeoutMs: effectiveProfile.idleTimeoutMs,
|
|
23
27
|
onStdoutChunk: logWriter ? (chunk) => logWriter.appendStdout(chunk) : undefined,
|
|
24
28
|
onStderrChunk: logWriter ? (chunk) => logWriter.appendStderr(chunk) : undefined,
|
|
25
29
|
});
|
|
@@ -30,7 +34,7 @@ export class CodexCommandAdapter {
|
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
|
-
export function buildCodexProcessEnv(input, sourceEnv) {
|
|
37
|
+
export function buildCodexProcessEnv(input, sourceEnv, profileEnv = {}) {
|
|
34
38
|
const allowed = ['PATH', 'CODEX_HOME', 'LANG', 'LC_ALL', 'TMPDIR'];
|
|
35
39
|
const env = {};
|
|
36
40
|
for (const key of allowed) {
|
|
@@ -40,11 +44,27 @@ export function buildCodexProcessEnv(input, sourceEnv) {
|
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
env.CODEX_HOME = env.CODEX_HOME || join(homedir(), '.codex');
|
|
47
|
+
for (const [key, value] of Object.entries(profileEnv)) {
|
|
48
|
+
if (!forbiddenCodexProfileEnvKeys.has(key)) {
|
|
49
|
+
env[key] = renderCodexArg(value, input);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
43
52
|
env.HOME = input.isolatedHomePath;
|
|
44
53
|
env[input.config.codex.promptFileEnv] = input.promptPath;
|
|
45
54
|
env[input.config.codex.reportFileEnv] = input.reportPath;
|
|
46
55
|
return env;
|
|
47
56
|
}
|
|
57
|
+
export function resolveCodexProfile(config, phase) {
|
|
58
|
+
const profile = config.codex.profiles?.[phase] ?? {};
|
|
59
|
+
return {
|
|
60
|
+
phase,
|
|
61
|
+
command: profile.command ?? config.codex.command,
|
|
62
|
+
args: profile.args ?? config.codex.args,
|
|
63
|
+
timeoutMs: profile.timeoutMs ?? config.codex.timeoutMs,
|
|
64
|
+
idleTimeoutMs: profile.idleTimeoutMs ?? config.codex.idleTimeoutMs,
|
|
65
|
+
env: profile.env ?? {},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
48
68
|
function renderCodexArg(arg, input) {
|
|
49
69
|
return arg
|
|
50
70
|
.replaceAll('${targetRoot}', input.targetRoot)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-adapter.js","sourceRoot":"","sources":["../../../src/codex/command-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"command-adapter.js","sourceRoot":"","sources":["../../../src/codex/command-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const labelKeys: readonly ["auto", "planAuto", "running", "blocked", "manual", "review", "child"];
|
|
2
2
|
export declare const workflowKeys: readonly ["prd", "issueBreakdown", "breakdownReview", "triage", "scopedImplementation", "issueTreeOrchestration"];
|
|
3
3
|
export declare const labelPreparationPolicies: readonly ["report-only", "create-missing"];
|
|
4
|
-
export declare const workflowSources: readonly ["existing-skill", "package-owned-skill", "package-owned-prompt-fallback"];
|
|
4
|
+
export declare const workflowSources: readonly ["existing-skill", "package-owned-skill", "package-bundled-prompt", "package-owned-prompt-fallback"];
|
|
5
5
|
export declare const forbiddenRuntimeKeys: readonly ["runtime", "state", "locks", "sessions", "worktrees", "retries", "cache"];
|
|
6
6
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,kFAAmF,CAAC;AAE1G,eAAO,MAAM,YAAY,mHAOf,CAAC;AAEX,eAAO,MAAM,wBAAwB,4CAA6C,CAAC;AAEnF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,kFAAmF,CAAC;AAE1G,eAAO,MAAM,YAAY,mHAOf,CAAC;AAEX,eAAO,MAAM,wBAAwB,4CAA6C,CAAC;AAEnF,eAAO,MAAM,eAAe,+GAKlB,CAAC;AAEX,eAAO,MAAM,oBAAoB,qFAAsF,CAAC"}
|
|
@@ -8,6 +8,11 @@ export const workflowKeys = [
|
|
|
8
8
|
'issueTreeOrchestration',
|
|
9
9
|
];
|
|
10
10
|
export const labelPreparationPolicies = ['report-only', 'create-missing'];
|
|
11
|
-
export const workflowSources = [
|
|
11
|
+
export const workflowSources = [
|
|
12
|
+
'existing-skill',
|
|
13
|
+
'package-owned-skill',
|
|
14
|
+
'package-bundled-prompt',
|
|
15
|
+
'package-owned-prompt-fallback',
|
|
16
|
+
];
|
|
12
17
|
export const forbiddenRuntimeKeys = ['runtime', 'state', 'locks', 'sessions', 'worktrees', 'retries', 'cache'];
|
|
13
18
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAE1G,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK;IACL,gBAAgB;IAChB,iBAAiB;IACjB,QAAQ;IACR,sBAAsB;IACtB,wBAAwB;CAChB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAU,CAAC;AAEnF,MAAM,CAAC,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAE1G,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK;IACL,gBAAgB;IAChB,iBAAiB;IACjB,QAAQ;IACR,sBAAsB;IACtB,wBAAwB;CAChB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAU,CAAC;AAEnF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,+BAA+B;CACvB,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC"}
|
|
@@ -7,6 +7,16 @@ export type ClarificationGate = 'block-and-comment';
|
|
|
7
7
|
export type IssueSelectionTieBreaker = 'issue-number-asc';
|
|
8
8
|
export type RetryableReworkBlocker = 'missing-completion-report' | 'invalid-completion-report' | 'no-changed-files' | 'failed-configured-checks' | 'missing-quality-gate-evidence';
|
|
9
9
|
export type FreshContextReviewMode = 'advisory';
|
|
10
|
+
export declare const codexPhaseKeys: readonly ["plan-parent", "scoped-issue", "tree-child", "fresh-context-review", "visual-proof", "quality-review"];
|
|
11
|
+
export type CodexPhase = (typeof codexPhaseKeys)[number];
|
|
12
|
+
export interface CodexProfileConfig {
|
|
13
|
+
command?: string;
|
|
14
|
+
args?: string[];
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
idleTimeoutMs?: number;
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
export declare const forbiddenCodexProfileEnvKeys: Set<string>;
|
|
10
20
|
export interface LabelDefinition {
|
|
11
21
|
name: string;
|
|
12
22
|
color: string;
|
|
@@ -72,6 +82,7 @@ export interface CodexOrchestratorConfig {
|
|
|
72
82
|
timeoutMs?: number;
|
|
73
83
|
mobileTimeoutMs?: number;
|
|
74
84
|
idleTimeoutMs?: number;
|
|
85
|
+
profiles?: Partial<Record<CodexPhase, CodexProfileConfig>>;
|
|
75
86
|
promptFileEnv: 'CODEX_ORCHESTRATOR_PROMPT_FILE';
|
|
76
87
|
reportFileEnv: 'CODEX_ORCHESTRATOR_REPORT_FILE';
|
|
77
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAET,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,gBAAgB,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACpD,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAC1D,MAAM,MAAM,sBAAsB,GAC9B,2BAA2B,GAC3B,2BAA2B,GAC3B,kBAAkB,GAClB,0BAA0B,GAC1B,+BAA+B,CAAC;AACpC,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
import { forbiddenRuntimeKeys, labelKeys, labelPreparationPolicies, workflowKeys, workflowSources, } from './constants.js';
|
|
2
|
+
export const codexPhaseKeys = [
|
|
3
|
+
'plan-parent',
|
|
4
|
+
'scoped-issue',
|
|
5
|
+
'tree-child',
|
|
6
|
+
'fresh-context-review',
|
|
7
|
+
'visual-proof',
|
|
8
|
+
'quality-review',
|
|
9
|
+
];
|
|
10
|
+
export const forbiddenCodexProfileEnvKeys = new Set([
|
|
11
|
+
'GH_TOKEN',
|
|
12
|
+
'GITHUB_TOKEN',
|
|
13
|
+
'SSH_AUTH_SOCK',
|
|
14
|
+
'GIT_ASKPASS',
|
|
15
|
+
'HOME',
|
|
16
|
+
'CODEX_ORCHESTRATOR_PROMPT_FILE',
|
|
17
|
+
'CODEX_ORCHESTRATOR_REPORT_FILE',
|
|
18
|
+
]);
|
|
2
19
|
export function validateConfig(input) {
|
|
3
20
|
const errors = [];
|
|
4
21
|
const root = asObject(input);
|
|
@@ -49,6 +66,7 @@ export function validateConfig(input) {
|
|
|
49
66
|
expectOptionalPositiveInteger(codex, 'codex.timeoutMs', errors);
|
|
50
67
|
expectOptionalPositiveInteger(codex, 'codex.mobileTimeoutMs', errors);
|
|
51
68
|
expectOptionalPositiveInteger(codex, 'codex.idleTimeoutMs', errors);
|
|
69
|
+
validateCodexProfiles(codex, errors);
|
|
52
70
|
expectLiteral(codex, 'codex.promptFileEnv', 'CODEX_ORCHESTRATOR_PROMPT_FILE', errors);
|
|
53
71
|
expectLiteral(codex, 'codex.reportFileEnv', 'CODEX_ORCHESTRATOR_REPORT_FILE', errors);
|
|
54
72
|
}
|
|
@@ -206,7 +224,7 @@ function validateWorkflow(parent, path, errors) {
|
|
|
206
224
|
if (source === 'existing-skill' || source === 'package-owned-skill') {
|
|
207
225
|
expectString(workflow, `${path}.skillPath`, errors);
|
|
208
226
|
}
|
|
209
|
-
if (source === 'package-owned-prompt-fallback') {
|
|
227
|
+
if (source === 'package-bundled-prompt' || source === 'package-owned-prompt-fallback') {
|
|
210
228
|
expectString(workflow, `${path}.promptPath`, errors);
|
|
211
229
|
}
|
|
212
230
|
}
|
|
@@ -217,6 +235,46 @@ function validateChecks(checks, errors) {
|
|
|
217
235
|
}
|
|
218
236
|
}
|
|
219
237
|
}
|
|
238
|
+
function validateCodexProfiles(codex, errors) {
|
|
239
|
+
const profiles = expectOptionalObject(codex, 'codex.profiles', errors);
|
|
240
|
+
if (!profiles) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
for (const key of Object.keys(profiles)) {
|
|
244
|
+
if (!codexPhaseKeys.includes(key)) {
|
|
245
|
+
errors.push(`codex.profiles contains unknown phase ${key}`);
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
const profile = expectOptionalObject(profiles, `codex.profiles.${key}`, errors);
|
|
249
|
+
if (!profile) {
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
expectOptionalString(profile, `codex.profiles.${key}.command`, errors);
|
|
253
|
+
expectOptionalStringArray(profile, `codex.profiles.${key}.args`, errors);
|
|
254
|
+
expectOptionalPositiveInteger(profile, `codex.profiles.${key}.timeoutMs`, errors);
|
|
255
|
+
expectOptionalPositiveInteger(profile, `codex.profiles.${key}.idleTimeoutMs`, errors);
|
|
256
|
+
validateCodexProfileEnv(profile, key, errors);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function validateCodexProfileEnv(profile, phase, errors) {
|
|
260
|
+
const env = expectOptionalObject(profile, `codex.profiles.${phase}.env`, errors);
|
|
261
|
+
if (!env) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const keys = Object.keys(env);
|
|
265
|
+
if (keys.some((key) => !/^[A-Z_][A-Z0-9_]*$/.test(key))) {
|
|
266
|
+
errors.push(`codex.profiles.${phase}.env must contain valid environment variable names`);
|
|
267
|
+
}
|
|
268
|
+
const forbidden = keys.find((key) => forbiddenCodexProfileEnvKeys.has(key));
|
|
269
|
+
if (forbidden) {
|
|
270
|
+
errors.push(`codex.profiles.${phase}.env must not contain forbidden key ${forbidden}`);
|
|
271
|
+
}
|
|
272
|
+
for (const [key, value] of Object.entries(env)) {
|
|
273
|
+
if (typeof value !== 'string') {
|
|
274
|
+
errors.push(`codex.profiles.${phase}.env.${key} must be a string`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
220
278
|
function validateChecksPolicy(policy, errors) {
|
|
221
279
|
if ('missingNpmScript' in policy) {
|
|
222
280
|
expectUnion(policy, 'checksPolicy.missingNpmScript', ['fail', 'skip'], errors);
|