codex-orchestrator 0.1.0 → 0.1.1
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/README.md +262 -50
- package/dist/src/cli.js +71 -5
- package/dist/src/cli.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/runner/daemon-command.d.ts +21 -0
- package/dist/src/runner/daemon-command.d.ts.map +1 -0
- package/dist/src/runner/daemon-command.js +73 -0
- package/dist/src/runner/daemon-command.js.map +1 -0
- package/dist/src/setup/setup-command.d.ts.map +1 -1
- package/dist/src/setup/setup-command.js +30 -3
- package/dist/src/setup/setup-command.js.map +1 -1
- package/package.json +1 -1
- package/prompts/setup-skill.md +8 -7
package/README.md
CHANGED
|
@@ -1,85 +1,297 @@
|
|
|
1
1
|
# codex-orchestrator
|
|
2
2
|
|
|
3
|
-
`codex-orchestrator` is a reusable
|
|
3
|
+
`codex-orchestrator` is a reusable runner for Codex work driven by GitHub
|
|
4
|
+
Issues.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
It lets a maintainer mark an issue as safe for autonomous work, run Codex in an
|
|
7
|
+
isolated workspace, and receive the result as a reviewable draft pull request.
|
|
8
|
+
For larger features, it can turn one parent issue into a planned issue tree,
|
|
9
|
+
execute safe child issues in dependency-aware waves, and open one integration
|
|
10
|
+
draft PR.
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
The package is designed to be installed into any repository. The generic
|
|
13
|
+
orchestration lives in this npm package; each target repository keeps its own
|
|
14
|
+
policy in `.codex-orchestrator/`.
|
|
8
15
|
|
|
9
|
-
The
|
|
16
|
+
## The Problem
|
|
10
17
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- A Codex adapter boundary, starting with `codex-cli`.
|
|
14
|
-
- Project-local `.codex-orchestrator/` config.
|
|
15
|
-
- Setup, status, scoped issue execution, parent issue-tree planning, and parent issue-tree execution.
|
|
18
|
+
Codex is useful for implementation work, but coordinating it manually does not
|
|
19
|
+
scale well:
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
- a maintainer has to start a new chat for every small issue;
|
|
22
|
+
- large features need PRD, issue breakdown, triage, child issue execution, and
|
|
23
|
+
final integration;
|
|
24
|
+
- concurrent agent work can conflict if multiple tasks touch the same files;
|
|
25
|
+
- agents should not decide by themselves which linked issues are authorized;
|
|
26
|
+
- publication should be consistent: branch, commit, push, and pull request
|
|
27
|
+
creation should follow one project policy;
|
|
28
|
+
- humans still need review control before anything is merged.
|
|
18
29
|
|
|
19
|
-
|
|
30
|
+
`codex-orchestrator` solves the coordination layer. GitHub Issues become the
|
|
31
|
+
work queue, GitHub labels become the state machine, and draft pull requests
|
|
32
|
+
become the handoff point back to humans.
|
|
33
|
+
|
|
34
|
+
## What It Does
|
|
35
|
+
|
|
36
|
+
`codex-orchestrator` coordinates the full path from issue to draft PR:
|
|
37
|
+
|
|
38
|
+
- finds GitHub Issues that are explicitly authorized for autonomous work;
|
|
39
|
+
- blocks issues that are manual, already running, under review, or unsafe;
|
|
40
|
+
- creates isolated git worktrees and branches for Codex sessions;
|
|
41
|
+
- gives Codex project-local prompts and the current issue context;
|
|
42
|
+
- validates Codex's completion report and changed files;
|
|
43
|
+
- runs the configured project checks;
|
|
44
|
+
- owns commit, push, merge, labels, comments, and pull request creation;
|
|
45
|
+
- opens draft PRs instead of merging automatically;
|
|
46
|
+
- keeps local runner state so interrupted work can be inspected or recovered.
|
|
47
|
+
|
|
48
|
+
Codex edits files. The runner owns publication.
|
|
49
|
+
|
|
50
|
+
## Authorization Modes
|
|
51
|
+
|
|
52
|
+
There are two main labels.
|
|
53
|
+
|
|
54
|
+
### `agent:auto`
|
|
55
|
+
|
|
56
|
+
Use `agent:auto` for one scoped implementation issue.
|
|
57
|
+
|
|
58
|
+
Example:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
codex-orchestrator run --target . --issue 123
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The runner checks that issue `#123` is eligible, creates a worktree and branch,
|
|
65
|
+
runs Codex, validates the result, commits the changes, pushes the branch, and
|
|
66
|
+
opens one draft PR.
|
|
67
|
+
|
|
68
|
+
### `agent:plan-auto`
|
|
69
|
+
|
|
70
|
+
Use `agent:plan-auto` for a larger parent issue.
|
|
71
|
+
|
|
72
|
+
This mode is for work that should be planned before implementation. The runner
|
|
73
|
+
asks Codex to produce or update the PRD, break the work into child issues,
|
|
74
|
+
review the breakdown, triage the children, and execute the autonomous children
|
|
75
|
+
in waves.
|
|
76
|
+
|
|
77
|
+
Only explicitly marked child issues belong to the autonomous tree. A child issue
|
|
78
|
+
must have the configured child label and the runner-owned parent marker. A link,
|
|
79
|
+
milestone, project, or casual reference is not enough.
|
|
80
|
+
|
|
81
|
+
Successful tree execution opens one integration draft PR.
|
|
82
|
+
|
|
83
|
+
## How It Works
|
|
84
|
+
|
|
85
|
+
1. Install the package.
|
|
86
|
+
2. Run `setup` in the repository you want to automate.
|
|
87
|
+
3. Commit the generated `.codex-orchestrator/` policy into that repository.
|
|
88
|
+
4. Add `agent:auto` or `agent:plan-auto` to a GitHub Issue.
|
|
89
|
+
5. Run `status` to see what is eligible or blocked.
|
|
90
|
+
6. Run one selected issue with `run`.
|
|
91
|
+
7. Review the draft PR created by the runner.
|
|
92
|
+
|
|
93
|
+
The runner does not auto-merge.
|
|
94
|
+
|
|
95
|
+
## Installation
|
|
96
|
+
|
|
97
|
+
Requirements:
|
|
98
|
+
|
|
99
|
+
- Node.js 18 or newer;
|
|
100
|
+
- `git`;
|
|
101
|
+
- GitHub CLI `gh`, authenticated for the target repository;
|
|
102
|
+
- Codex CLI, installed and authenticated;
|
|
103
|
+
- write access to the target GitHub repository.
|
|
104
|
+
|
|
105
|
+
Install globally:
|
|
106
|
+
|
|
107
|
+
```sh
|
|
108
|
+
npm install -g codex-orchestrator
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Check the CLI:
|
|
20
112
|
|
|
21
113
|
```sh
|
|
22
|
-
codex-orchestrator --help
|
|
23
114
|
codex-orchestrator --version
|
|
24
115
|
codex-orchestrator health
|
|
25
|
-
codex-orchestrator setup --target <path> --github-owner <owner> --github-repo <repo> --dry-run
|
|
26
|
-
codex-orchestrator status --target <path> --dry-run
|
|
27
|
-
codex-orchestrator run --target <path> --issue <number>
|
|
28
116
|
```
|
|
29
117
|
|
|
30
|
-
|
|
118
|
+
You can also run it with `npx`:
|
|
31
119
|
|
|
32
|
-
|
|
33
|
-
|
|
120
|
+
```sh
|
|
121
|
+
npx codex-orchestrator --help
|
|
122
|
+
```
|
|
34
123
|
|
|
35
|
-
|
|
124
|
+
## Quick Start
|
|
36
125
|
|
|
37
|
-
|
|
126
|
+
Open the repository that should receive autonomous Codex work:
|
|
38
127
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
128
|
+
```sh
|
|
129
|
+
cd /path/to/your/repo
|
|
130
|
+
```
|
|
42
131
|
|
|
43
|
-
|
|
132
|
+
Run setup and create missing labels:
|
|
44
133
|
|
|
45
|
-
|
|
46
|
-
|
|
134
|
+
```sh
|
|
135
|
+
codex-orchestrator setup --prepare-labels
|
|
136
|
+
```
|
|
47
137
|
|
|
48
|
-
|
|
138
|
+
By default, setup reads the GitHub owner and repository name from `git remote
|
|
139
|
+
origin` and uses the current directory as the target repository. Use `--target`,
|
|
140
|
+
`--github-owner`, and `--github-repo` only when you need to override those
|
|
141
|
+
defaults.
|
|
49
142
|
|
|
50
|
-
|
|
51
|
-
|
|
143
|
+
Commit the generated `.codex-orchestrator/` directory to your repository. It is
|
|
144
|
+
the repository-owned policy for how autonomous work should run.
|
|
52
145
|
|
|
53
|
-
|
|
146
|
+
Check eligible work:
|
|
54
147
|
|
|
55
|
-
```
|
|
56
|
-
|
|
148
|
+
```sh
|
|
149
|
+
codex-orchestrator status --target .
|
|
57
150
|
```
|
|
58
151
|
|
|
59
|
-
|
|
152
|
+
Run one issue:
|
|
60
153
|
|
|
61
|
-
|
|
154
|
+
```sh
|
|
155
|
+
codex-orchestrator run --target . --issue 123
|
|
156
|
+
```
|
|
62
157
|
|
|
63
|
-
-
|
|
64
|
-
- Children marked HITL, manual, blocked, running, review, closed, malformed, or missing `agent:auto` block the parent tree before execution.
|
|
65
|
-
- At most three child implementations run in parallel, and children with overlapping ownership scopes are serialized into later batches.
|
|
66
|
-
- Every parallel child runs in its own temporary worktree and branch. Codex changes files only; the runner owns commits, merges, pushes, labels, comments, and pull requests.
|
|
67
|
-
- Completed child commits merge sequentially into the parent integration branch. Merge conflicts block the parent tree, preserve relevant worktrees/branches for inspection, and do not push or open a PR.
|
|
68
|
-
- Successful issue trees open one integration draft PR. The runner does not create separate child PRs in this POC.
|
|
158
|
+
## Agent-Assisted Setup
|
|
69
159
|
|
|
70
|
-
|
|
160
|
+
A user does not need a long prompt. They can ask an agent:
|
|
71
161
|
|
|
72
|
-
|
|
162
|
+
```text
|
|
163
|
+
Set up codex-orchestrator for this repo.
|
|
164
|
+
```
|
|
73
165
|
|
|
74
|
-
|
|
166
|
+
The agent should inspect the repository, confirm it has a GitHub `origin`
|
|
167
|
+
remote, and run:
|
|
75
168
|
|
|
76
|
-
|
|
169
|
+
```sh
|
|
170
|
+
codex-orchestrator setup --prepare-labels
|
|
171
|
+
```
|
|
77
172
|
|
|
78
|
-
|
|
173
|
+
If needed, the agent can discover the exact setup behavior from:
|
|
79
174
|
|
|
80
|
-
|
|
175
|
+
```sh
|
|
176
|
+
codex-orchestrator --help
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The package also ships a setup prompt in `prompts/setup-skill.md`. Setup copies
|
|
180
|
+
that prompt into `.codex-orchestrator/prompts/setup-skill.md`, so future agents
|
|
181
|
+
working in the repository can find the repository-local setup guidance.
|
|
182
|
+
|
|
183
|
+
Use `--dry-run` only when you want a preview without writing files or creating
|
|
184
|
+
labels.
|
|
185
|
+
|
|
186
|
+
## Project Policy
|
|
187
|
+
|
|
188
|
+
Every installed repository owns its own config:
|
|
189
|
+
|
|
190
|
+
```sh
|
|
191
|
+
.codex-orchestrator/config.json
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
That config controls:
|
|
195
|
+
|
|
196
|
+
- GitHub owner and repo;
|
|
197
|
+
- labels used for the runner state machine;
|
|
198
|
+
- base branch and branch name templates;
|
|
199
|
+
- validation checks such as `npm test`;
|
|
200
|
+
- deny rules for secrets and unsafe actions;
|
|
201
|
+
- concurrency for child issue execution;
|
|
202
|
+
- pull request title templates;
|
|
203
|
+
- prompts used for PRD, issue breakdown, triage, scoped implementation, and
|
|
204
|
+
issue-tree orchestration.
|
|
81
205
|
|
|
82
|
-
|
|
206
|
+
The package ships fallback prompts so a user does not need to already have a
|
|
207
|
+
local Codex skill pack installed. During setup, compatible existing local skills
|
|
208
|
+
can be reused; missing workflows fall back to package-owned prompts.
|
|
209
|
+
|
|
210
|
+
## Labels
|
|
211
|
+
|
|
212
|
+
Default labels:
|
|
213
|
+
|
|
214
|
+
- `agent:auto` - a scoped issue is authorized for autonomous implementation;
|
|
215
|
+
- `agent:plan-auto` - a parent issue is authorized for planning and issue-tree
|
|
216
|
+
execution;
|
|
217
|
+
- `agent:child` - a child issue belongs to an autonomous parent tree;
|
|
218
|
+
- `agent:running` - the runner is currently working on the issue;
|
|
219
|
+
- `agent:blocked` - the runner needs maintainer input;
|
|
220
|
+
- `agent:manual` - the issue is reserved for human work;
|
|
221
|
+
- `agent:review` - the result is ready for human review.
|
|
222
|
+
|
|
223
|
+
`setup --prepare-labels` creates missing labels through `gh`.
|
|
224
|
+
|
|
225
|
+
## Safety Model
|
|
226
|
+
|
|
227
|
+
The package is intentionally PR-first and human-reviewed.
|
|
228
|
+
|
|
229
|
+
Important guardrails:
|
|
230
|
+
|
|
231
|
+
- no automatic merge;
|
|
232
|
+
- draft PRs only;
|
|
233
|
+
- Codex changes files, but the runner owns git and GitHub publication;
|
|
234
|
+
- child issues are never inferred from ordinary links or references;
|
|
235
|
+
- manual, blocked, running, review, and closed issues are not started;
|
|
236
|
+
- child implementations run in isolated worktrees;
|
|
237
|
+
- parallel child work is limited and avoids overlapping ownership scopes;
|
|
238
|
+
- secret files are blocked by policy;
|
|
239
|
+
- destructive database/cache actions and production deploy/release actions are
|
|
240
|
+
blocked by default;
|
|
241
|
+
- underspecified work can be blocked for maintainer clarification instead of
|
|
242
|
+
letting Codex invent product decisions.
|
|
243
|
+
|
|
244
|
+
## CLI Reference
|
|
245
|
+
|
|
246
|
+
```sh
|
|
247
|
+
codex-orchestrator --help
|
|
248
|
+
codex-orchestrator --version
|
|
249
|
+
codex-orchestrator health
|
|
250
|
+
codex-orchestrator setup [--target <path>] [--github-owner <owner>] [--github-repo <repo>] [--dry-run] [--prepare-labels]
|
|
251
|
+
codex-orchestrator status --target <path> [--dry-run]
|
|
252
|
+
codex-orchestrator run --target <path> --issue <number>
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### `setup`
|
|
256
|
+
|
|
257
|
+
Creates project-local config and prompt files under `.codex-orchestrator/`.
|
|
258
|
+
|
|
259
|
+
Useful flags:
|
|
260
|
+
|
|
261
|
+
- `--dry-run` - show the setup plan without writing files or creating labels;
|
|
262
|
+
- `--prepare-labels` - create missing GitHub labels;
|
|
263
|
+
- `--target <path>` - override the target directory, which defaults to the current directory;
|
|
264
|
+
- `--github-owner <owner>` - override the GitHub owner inferred from `origin`;
|
|
265
|
+
- `--github-repo <repo>` - override the GitHub repo inferred from `origin`;
|
|
266
|
+
- `--skills-root <path>` - choose where setup looks for existing Codex skills;
|
|
267
|
+
- `--replace-package-skills` - refresh package-owned prompt files.
|
|
268
|
+
|
|
269
|
+
Setup does not launch Codex, commit changes, or open pull requests.
|
|
270
|
+
|
|
271
|
+
### `status`
|
|
272
|
+
|
|
273
|
+
Shows eligible issues, skipped issues with reasons, and local recovery state.
|
|
274
|
+
|
|
275
|
+
`status` is read-only. It does not launch Codex and does not mutate GitHub.
|
|
276
|
+
|
|
277
|
+
### `run`
|
|
278
|
+
|
|
279
|
+
Executes one selected issue if its labels and state authorize autonomous work.
|
|
280
|
+
|
|
281
|
+
For `agent:auto`, it runs one scoped implementation and opens one draft PR.
|
|
282
|
+
|
|
283
|
+
For `agent:plan-auto`, it runs parent planning, child issue management,
|
|
284
|
+
dependency-aware child waves, final validation, and one integration draft PR.
|
|
285
|
+
|
|
286
|
+
## Current Scope
|
|
287
|
+
|
|
288
|
+
The package currently focuses on explicit CLI-driven runs and project-local
|
|
289
|
+
configuration. The state machine and runner boundaries are designed for
|
|
290
|
+
always-on local runner workflows, but hosted infrastructure and automatic
|
|
291
|
+
polling are not part of this package today.
|
|
292
|
+
|
|
293
|
+
Non-GitHub trackers and non-Codex agents are also out of scope for the current
|
|
294
|
+
version, although the code keeps adapter boundaries for future expansion.
|
|
83
295
|
|
|
84
296
|
## Development
|
|
85
297
|
|
|
@@ -89,6 +301,6 @@ npm run build
|
|
|
89
301
|
npm run typecheck
|
|
90
302
|
```
|
|
91
303
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
304
|
+
Publishing is configured through GitHub Actions. A push to `main` runs tests and
|
|
305
|
+
publishes the package to npm only when the current package version is not already
|
|
306
|
+
published. The repository must provide the GitHub secret `NPM_KEY`.
|
package/dist/src/cli.js
CHANGED
|
@@ -4,6 +4,7 @@ import { GhCliIssueAdapter } from './github/gh-issue-adapter.js';
|
|
|
4
4
|
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
|
+
import { runDaemonCommand } from './runner/daemon-command.js';
|
|
7
8
|
import { runPlanAutoCommand } from './runner/plan-auto-command.js';
|
|
8
9
|
import { runScopedAutoCommand } from './runner/scoped-auto-command.js';
|
|
9
10
|
import { runStatusCommand } from './runner/status-command.js';
|
|
@@ -14,15 +15,17 @@ Usage:
|
|
|
14
15
|
codex-orchestrator --help
|
|
15
16
|
codex-orchestrator --version
|
|
16
17
|
codex-orchestrator health
|
|
17
|
-
codex-orchestrator setup --target <path> --github-owner <owner> --github-repo <repo> [--dry-run] [--prepare-labels]
|
|
18
|
+
codex-orchestrator setup [--target <path>] [--github-owner <owner>] [--github-repo <repo>] [--dry-run] [--prepare-labels]
|
|
18
19
|
codex-orchestrator status --target <path> [--dry-run]
|
|
19
20
|
codex-orchestrator run --target <path> --issue <number>
|
|
21
|
+
codex-orchestrator daemon --target <path> [--interval-seconds <number>] [--once] [--max-runs <number>]
|
|
20
22
|
|
|
21
23
|
Commands:
|
|
22
24
|
health Run a no-op local health check.
|
|
23
25
|
setup Create or dry-run project-local orchestrator config. Use --prepare-labels to create missing agent labels.
|
|
24
26
|
status Show eligible/skipped issue work and local recovery state.
|
|
25
27
|
run Execute one authorized issue: scoped agent:auto or full agent:plan-auto issue tree.
|
|
28
|
+
daemon Poll GitHub Issues and execute eligible autonomous work until stopped.
|
|
26
29
|
|
|
27
30
|
Options:
|
|
28
31
|
--help, -h Show this help.
|
|
@@ -105,6 +108,30 @@ async function main(args) {
|
|
|
105
108
|
return 1;
|
|
106
109
|
}
|
|
107
110
|
}
|
|
111
|
+
if (command === 'daemon') {
|
|
112
|
+
const parsed = parseDaemonArgs(args.slice(1));
|
|
113
|
+
if (!parsed.ok) {
|
|
114
|
+
process.stderr.write(`${parsed.error}\nRun codex-orchestrator --help for usage.\n`);
|
|
115
|
+
return 2;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
await runDaemonCommand({
|
|
119
|
+
targetRoot: parsed.value.target,
|
|
120
|
+
intervalMs: parsed.value.intervalSeconds * 1000,
|
|
121
|
+
once: parsed.value.once,
|
|
122
|
+
maxRuns: parsed.value.maxRuns,
|
|
123
|
+
onEvent: (line) => {
|
|
124
|
+
process.stdout.write(`${line}\n`);
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
const message = error instanceof Error ? error.message : 'daemon failed';
|
|
131
|
+
process.stderr.write(`${message}\n`);
|
|
132
|
+
return 1;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
108
135
|
process.stderr.write(`Unknown command: ${command}\nRun codex-orchestrator --help for usage.\n`);
|
|
109
136
|
return 1;
|
|
110
137
|
}
|
|
@@ -185,6 +212,48 @@ function parseStatusArgs(args) {
|
|
|
185
212
|
}
|
|
186
213
|
return { ok: true, value: { ...parsed, target: parsed.target } };
|
|
187
214
|
}
|
|
215
|
+
function parseDaemonArgs(args) {
|
|
216
|
+
const parsed = {
|
|
217
|
+
intervalSeconds: 300,
|
|
218
|
+
once: false,
|
|
219
|
+
};
|
|
220
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
221
|
+
const arg = args[index];
|
|
222
|
+
const next = args[index + 1];
|
|
223
|
+
switch (arg) {
|
|
224
|
+
case '--target':
|
|
225
|
+
if (!next || next.startsWith('--')) {
|
|
226
|
+
return { ok: false, error: `${arg} requires a value` };
|
|
227
|
+
}
|
|
228
|
+
parsed.target = next;
|
|
229
|
+
index += 1;
|
|
230
|
+
break;
|
|
231
|
+
case '--interval-seconds':
|
|
232
|
+
if (!next || next.startsWith('--') || !Number.isInteger(Number(next)) || Number(next) < 1) {
|
|
233
|
+
return { ok: false, error: 'daemon requires --interval-seconds <positive integer>' };
|
|
234
|
+
}
|
|
235
|
+
parsed.intervalSeconds = Number(next);
|
|
236
|
+
index += 1;
|
|
237
|
+
break;
|
|
238
|
+
case '--once':
|
|
239
|
+
parsed.once = true;
|
|
240
|
+
break;
|
|
241
|
+
case '--max-runs':
|
|
242
|
+
if (!next || next.startsWith('--') || !Number.isInteger(Number(next)) || Number(next) < 1) {
|
|
243
|
+
return { ok: false, error: 'daemon requires --max-runs <positive integer>' };
|
|
244
|
+
}
|
|
245
|
+
parsed.maxRuns = Number(next);
|
|
246
|
+
index += 1;
|
|
247
|
+
break;
|
|
248
|
+
default:
|
|
249
|
+
return { ok: false, error: `Unknown daemon option: ${arg ?? ''}` };
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (!parsed.target) {
|
|
253
|
+
return { ok: false, error: 'daemon requires --target <path>' };
|
|
254
|
+
}
|
|
255
|
+
return { ok: true, value: { ...parsed, target: parsed.target, intervalSeconds: parsed.intervalSeconds ?? 300 } };
|
|
256
|
+
}
|
|
188
257
|
function parseSetupArgs(args) {
|
|
189
258
|
const parsed = {
|
|
190
259
|
dryRun: false,
|
|
@@ -236,10 +305,7 @@ function parseSetupArgs(args) {
|
|
|
236
305
|
return { ok: false, error: `Unknown setup option: ${arg ?? ''}` };
|
|
237
306
|
}
|
|
238
307
|
}
|
|
239
|
-
|
|
240
|
-
return { ok: false, error: 'setup requires --target <path>' };
|
|
241
|
-
}
|
|
242
|
-
return { ok: true, value: { ...parsed, target: parsed.target } };
|
|
308
|
+
return { ok: true, value: { ...parsed, target: parsed.target ?? process.cwd() } };
|
|
243
309
|
}
|
|
244
310
|
main(process.argv.slice(2))
|
|
245
311
|
.then((exitCode) => {
|
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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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export { RunnerStateStore } from './runner/local-state.js';
|
|
|
16
16
|
export type { RunnerProcessMetadata, RunnerStateFile } from './runner/local-state.js';
|
|
17
17
|
export { buildPlanAutoPrompt, buildScopedImplementationPrompt, readPlanAutoCompletionReport, readScopedCompletionReport, sessionPromptPath, sessionReportPath, writeDurablePrompt, } from './runner/prompt.js';
|
|
18
18
|
export type { PlanAutoCompletionReport, PlanAutoPromptInput, ScopedCompletionReport, ScopedPromptInput, } from './runner/prompt.js';
|
|
19
|
+
export { runDaemonCommand } from './runner/daemon-command.js';
|
|
20
|
+
export type { DaemonCommandOptions, DaemonCommandResult } from './runner/daemon-command.js';
|
|
19
21
|
export { reconcileRunnerState } from './runner/recovery.js';
|
|
20
22
|
export type { ReconcileRunnerStateInput, RecoveryEntry, RecoveryStatus } from './runner/recovery.js';
|
|
21
23
|
export { runPlanAutoCommand } from './runner/plan-auto-command.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvF,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1H,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,6CAA6C,GAC9C,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACzG,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { applyClarificationGate, applyCodexSessionResult, claimIssue, clearClari
|
|
|
8
8
|
export { ensureAutonomousChildBody, isAutonomousChildOfParent, renderAutonomousChildMarker, validatePlanGraph, } from './runner/issue-tree.js';
|
|
9
9
|
export { RunnerStateStore } from './runner/local-state.js';
|
|
10
10
|
export { buildPlanAutoPrompt, buildScopedImplementationPrompt, readPlanAutoCompletionReport, readScopedCompletionReport, sessionPromptPath, sessionReportPath, writeDurablePrompt, } from './runner/prompt.js';
|
|
11
|
+
export { runDaemonCommand } from './runner/daemon-command.js';
|
|
11
12
|
export { reconcileRunnerState } from './runner/recovery.js';
|
|
12
13
|
export { runPlanAutoCommand } from './runner/plan-auto-command.js';
|
|
13
14
|
export { runScopedAutoCommand } from './runner/scoped-auto-command.js';
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAU9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,6CAA6C,GAC9C,MAAM,iCAAiC,CAAC;AASzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAU9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,6CAA6C,GAC9C,MAAM,iCAAiC,CAAC;AASzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { GitHubIssueAdapter } from '../github/issues.js';
|
|
2
|
+
export interface DaemonCommandOptions {
|
|
3
|
+
targetRoot: string;
|
|
4
|
+
issueAdapter?: GitHubIssueAdapter;
|
|
5
|
+
intervalMs?: number;
|
|
6
|
+
once?: boolean;
|
|
7
|
+
maxRuns?: number;
|
|
8
|
+
sleep?: (milliseconds: number) => Promise<void>;
|
|
9
|
+
executeIssue?: (issueNumber: number) => Promise<{
|
|
10
|
+
reportComment: string;
|
|
11
|
+
}>;
|
|
12
|
+
onEvent?: (line: string) => void;
|
|
13
|
+
now?: () => Date;
|
|
14
|
+
}
|
|
15
|
+
export interface DaemonCommandResult {
|
|
16
|
+
output: string;
|
|
17
|
+
scanned: number;
|
|
18
|
+
executed: number[];
|
|
19
|
+
}
|
|
20
|
+
export declare function runDaemonCommand(options: DaemonCommandOptions): Promise<DaemonCommandResult>;
|
|
21
|
+
//# sourceMappingURL=daemon-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-command.d.ts","sourceRoot":"","sources":["../../../src/runner/daemon-command.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkDlG"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { setTimeout as sleep } from 'node:timers/promises';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { GhCliIssueAdapter } from '../github/gh-issue-adapter.js';
|
|
4
|
+
import { readRunnerConfig } from './command-utils.js';
|
|
5
|
+
import { discoverIssueWork } from './issue-state-machine.js';
|
|
6
|
+
import { runPlanAutoCommand } from './plan-auto-command.js';
|
|
7
|
+
import { runScopedAutoCommand } from './scoped-auto-command.js';
|
|
8
|
+
const defaultIntervalMs = 300_000;
|
|
9
|
+
export async function runDaemonCommand(options) {
|
|
10
|
+
const targetRoot = resolve(options.targetRoot);
|
|
11
|
+
const config = await readRunnerConfig(targetRoot);
|
|
12
|
+
const adapter = options.issueAdapter ?? new GhCliIssueAdapter(config.github.owner, config.github.repo);
|
|
13
|
+
const intervalMs = options.intervalMs ?? defaultIntervalMs;
|
|
14
|
+
const once = options.once ?? false;
|
|
15
|
+
const maxRuns = options.maxRuns;
|
|
16
|
+
const wait = options.sleep ?? sleep;
|
|
17
|
+
const now = options.now ?? (() => new Date());
|
|
18
|
+
const lines = [];
|
|
19
|
+
const executed = [];
|
|
20
|
+
let scanned = 0;
|
|
21
|
+
const emit = (line) => {
|
|
22
|
+
lines.push(line);
|
|
23
|
+
options.onEvent?.(line);
|
|
24
|
+
};
|
|
25
|
+
emit('codex-orchestrator daemon');
|
|
26
|
+
emit(`repo: ${config.github.owner}/${config.github.repo}`);
|
|
27
|
+
emit(`target: ${targetRoot}`);
|
|
28
|
+
emit(`intervalMs: ${intervalMs}`);
|
|
29
|
+
while (true) {
|
|
30
|
+
scanned += 1;
|
|
31
|
+
const decision = await findNextEligibleIssue(adapter, config);
|
|
32
|
+
if (!decision) {
|
|
33
|
+
emit(`[${now().toISOString()}] no eligible issues`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
emit(`[${now().toISOString()}] running #${decision.issueNumber} ${decision.mode}`);
|
|
37
|
+
try {
|
|
38
|
+
const executeIssue = options.executeIssue ?? ((issueNumber) => runIssue(targetRoot, issueNumber, decision.mode));
|
|
39
|
+
await executeIssue(decision.issueNumber);
|
|
40
|
+
executed.push(decision.issueNumber);
|
|
41
|
+
emit(`[${now().toISOString()}] completed #${decision.issueNumber}`);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
const message = error instanceof Error ? error.message : 'issue execution failed';
|
|
45
|
+
emit(`[${now().toISOString()}] failed #${decision.issueNumber}: ${message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (once || (maxRuns !== undefined && executed.length >= maxRuns)) {
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
await wait(intervalMs);
|
|
52
|
+
}
|
|
53
|
+
return { output: lines.join('\n'), scanned, executed };
|
|
54
|
+
}
|
|
55
|
+
async function findNextEligibleIssue(adapter, config) {
|
|
56
|
+
const discoveryLabels = [
|
|
57
|
+
config.github.labels.auto.name,
|
|
58
|
+
config.github.labels.planAuto.name,
|
|
59
|
+
config.github.labels.manual.name,
|
|
60
|
+
config.github.labels.blocked.name,
|
|
61
|
+
config.github.labels.running.name,
|
|
62
|
+
config.github.labels.review.name,
|
|
63
|
+
];
|
|
64
|
+
const issues = await adapter.listOpenIssuesWithAnyLabel(discoveryLabels);
|
|
65
|
+
return discoverIssueWork(issues, config).find((decision) => decision.kind === 'eligible');
|
|
66
|
+
}
|
|
67
|
+
function runIssue(targetRoot, issueNumber, mode) {
|
|
68
|
+
if (mode === 'plan-parent') {
|
|
69
|
+
return runPlanAutoCommand({ targetRoot, issueNumber });
|
|
70
|
+
}
|
|
71
|
+
return runScopedAutoCommand({ targetRoot, issueNumber });
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=daemon-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-command.js","sourceRoot":"","sources":["../../../src/runner/daemon-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-command.d.ts","sourceRoot":"","sources":["../../../src/setup/setup-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-command.d.ts","sourceRoot":"","sources":["../../../src/setup/setup-command.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAajE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgD/F"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
1
2
|
import { cp, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
3
|
import { dirname, join } from 'node:path';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
3
5
|
import { validateConfig } from '../config/schema.js';
|
|
4
6
|
import { GhCliLabelAdapter } from './github-label-adapter.js';
|
|
5
7
|
import { planLabels } from './labels.js';
|
|
6
8
|
import { assertNoRuntimeState, buildProjectConfig, projectConfigPath, readExistingConfig, writeProjectConfig, } from './project-config.js';
|
|
7
9
|
import { defaultSkillsRoot, resolveWorkflowConfigs, workflowDefinitions } from './workflows.js';
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
8
11
|
export async function runSetupCommand(options) {
|
|
9
12
|
const dryRun = options.dryRun ?? false;
|
|
10
13
|
const configPath = projectConfigPath(options.targetRoot);
|
|
11
14
|
const existingConfig = await readExistingConfig(configPath);
|
|
12
15
|
assertNoRuntimeState(existingConfig);
|
|
13
|
-
const
|
|
14
|
-
const
|
|
16
|
+
const inferredGitHubRepo = await inferGitHubRepoFromOrigin(options.targetRoot);
|
|
17
|
+
const owner = options.githubOwner ?? readExistingString(existingConfig, 'github', 'owner') ?? inferredGitHubRepo?.owner;
|
|
18
|
+
const repo = options.githubRepo ?? readExistingString(existingConfig, 'github', 'repo') ?? inferredGitHubRepo?.repo;
|
|
15
19
|
if (!owner || !repo) {
|
|
16
|
-
throw new Error('setup requires --github-owner and --github-repo unless existing config provides them');
|
|
20
|
+
throw new Error('setup requires --github-owner and --github-repo unless existing config or git origin remote provides them');
|
|
17
21
|
}
|
|
18
22
|
const prepareLabels = options.prepareLabels ? 'create-missing' : 'report-only';
|
|
19
23
|
const workflows = await resolveWorkflowConfigs(options.skillsRoot ?? defaultSkillsRoot());
|
|
@@ -101,4 +105,27 @@ function readExistingString(config, section, key) {
|
|
|
101
105
|
const value = sectionValue[key];
|
|
102
106
|
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
103
107
|
}
|
|
108
|
+
async function inferGitHubRepoFromOrigin(targetRoot) {
|
|
109
|
+
try {
|
|
110
|
+
const result = await execFileAsync('git', ['-C', targetRoot, 'remote', 'get-url', 'origin']);
|
|
111
|
+
return parseGitHubRemoteUrl(result.stdout.trim());
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function parseGitHubRemoteUrl(remoteUrl) {
|
|
118
|
+
const patterns = [
|
|
119
|
+
/^https:\/\/github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/,
|
|
120
|
+
/^git@github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/,
|
|
121
|
+
/^ssh:\/\/git@github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/,
|
|
122
|
+
];
|
|
123
|
+
for (const pattern of patterns) {
|
|
124
|
+
const match = remoteUrl.match(pattern);
|
|
125
|
+
if (match?.[1] && match[2]) {
|
|
126
|
+
return { owner: match[1], repo: match[2] };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
104
131
|
//# sourceMappingURL=setup-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../../src/setup/setup-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../../src/setup/setup-command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/prompts/setup-skill.md
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Use this prompt to help a maintainer install `codex-orchestrator` in a repository.
|
|
4
4
|
|
|
5
|
-
1. Confirm the
|
|
6
|
-
2.
|
|
7
|
-
3.
|
|
8
|
-
4.
|
|
9
|
-
5.
|
|
10
|
-
6.
|
|
11
|
-
7. Do not
|
|
5
|
+
1. Confirm the target repository path.
|
|
6
|
+
2. Check that the repository has a GitHub `origin` remote.
|
|
7
|
+
3. From the target repository root, run `codex-orchestrator setup --prepare-labels`.
|
|
8
|
+
4. Use `--target <path>`, `--github-owner <owner>`, and `--github-repo <repo>` only when the target or GitHub repository cannot be inferred from the current directory and `origin`.
|
|
9
|
+
5. Review the generated config, label report, workflow sources, and checks.
|
|
10
|
+
6. Use `--dry-run` only when the maintainer explicitly asks for a preview without writing files or creating labels.
|
|
11
|
+
7. Do not launch Codex implementation from setup.
|
|
12
|
+
8. Do not commit, push, or open a pull request from setup unless the maintainer explicitly asks for that follow-up.
|