@wildorder/nightshift 0.5.0 → 0.6.0

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.
@@ -0,0 +1,51 @@
1
+ import type { NightshiftConfig } from "./config.js";
2
+ import { type PackageManager } from "./detect-package-manager.js";
3
+ export declare const WORKFLOW_PATH = ".github/workflows/nightshift.yml";
4
+ export type RunnerVariant = "hosted" | "self-hosted";
5
+ export declare const RUNNER_VARIANTS: readonly RunnerVariant[];
6
+ export interface GenerateWorkflowInput {
7
+ config: NightshiftConfig;
8
+ runner: RunnerVariant;
9
+ /** Pinned into the workflow's run line for reproducibility. */
10
+ packageVersion: string;
11
+ /** Chooses the dependency-install line in the hosted variant. */
12
+ packageManager: PackageManager;
13
+ }
14
+ /**
15
+ * Pure: config + variant + version + manager -> workflow YAML. No I/O.
16
+ * Throws when `runner` is "hosted" and the config names an agent command the
17
+ * known-agents registry does not recognize — the writer surfaces this as a
18
+ * refusal before writing anything. The self-hosted variant never consults
19
+ * the registry, since it installs nothing.
20
+ */
21
+ export declare function generateWorkflow(input: GenerateWorkflowInput): string;
22
+ /** Minimal filesystem boundary, injected so the writer is testable off-disk. */
23
+ export interface CiInitFs {
24
+ exists(path: string): Promise<boolean>;
25
+ mkdir(path: string): Promise<void>;
26
+ writeFile(path: string, content: string): Promise<void>;
27
+ }
28
+ export interface CiInitOptions {
29
+ cwd: string;
30
+ /** Loaded by the CLI (loadConfig) and passed in; the writer never loads it. */
31
+ config: NightshiftConfig;
32
+ /** The CLI supplies this, defaulting to "hosted" before it calls the writer. */
33
+ runner: RunnerVariant;
34
+ force: boolean;
35
+ /** Defaults to a real-fs implementation; tests inject an in-memory one. */
36
+ fs?: CiInitFs;
37
+ }
38
+ export interface CiInitResult {
39
+ path: string;
40
+ action: "created" | "overwritten";
41
+ runner: RunnerVariant;
42
+ /** Agent commands the generator recognized and wired (hosted only). */
43
+ wiredAgents: string[];
44
+ }
45
+ /**
46
+ * Writes `.github/workflows/nightshift.yml`. Refuses to overwrite an
47
+ * existing workflow without `force`, and refuses (writing nothing) when a
48
+ * hosted config names an agent CLI `generateWorkflow` does not recognize.
49
+ */
50
+ export declare function ciInitGithub(options: CiInitOptions): Promise<CiInitResult>;
51
+ //# sourceMappingURL=ci-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-init.d.ts","sourceRoot":"","sources":["../src/ci-init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAKrC,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAC;AAErD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA8B,CAAC;AAgFnF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,cAAc,EAAE,cAAc,CAAC;CAChC;AAgJD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAmBrE;AAED,gFAAgF;AAChF,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAmBD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,MAAM,EAAE,gBAAgB,CAAC;IACzB,gFAAgF;IAChF,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,2EAA2E;IAC3E,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,aAAa,CAAC;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkChF"}
@@ -0,0 +1,274 @@
1
+ import { access, mkdir, writeFile } from "node:fs/promises";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { detectPackageManager, } from "./detect-package-manager.js";
4
+ import { EXIT_CODES } from "./exit-codes.js";
5
+ import { packageVersion as resolvePackageVersion } from "./package-assets.js";
6
+ import { programBranchName } from "./program-branch.js";
7
+ export const WORKFLOW_PATH = ".github/workflows/nightshift.yml";
8
+ export const RUNNER_VARIANTS = ["hosted", "self-hosted"];
9
+ /**
10
+ * The currently-known agent CLIs the hosted variant can install — the single
11
+ * place this mapping lives. A command absent here cannot be honestly
12
+ * installed (its npm package and secret env var are not derivable from the
13
+ * command string alone), so `generateWorkflow` refuses a hosted config that
14
+ * names one instead of writing a partial workflow (see the ADR).
15
+ */
16
+ const KNOWN_AGENTS = [
17
+ {
18
+ command: "claude",
19
+ installLine: "npm install -g @anthropic-ai/claude-code",
20
+ secretEnvVar: "ANTHROPIC_API_KEY",
21
+ },
22
+ {
23
+ command: "codex",
24
+ installLine: "npm install -g @openai/codex",
25
+ secretEnvVar: "OPENAI_API_KEY",
26
+ },
27
+ {
28
+ command: "gemini",
29
+ installLine: "npm install -g @google/gemini-cli",
30
+ secretEnvVar: "GEMINI_API_KEY",
31
+ },
32
+ {
33
+ command: "cursor-agent",
34
+ installLine: "curl https://cursor.com/install -fsS | bash",
35
+ secretEnvVar: "CURSOR_API_KEY",
36
+ },
37
+ ];
38
+ const KNOWN_AGENTS_BY_COMMAND = new Map(KNOWN_AGENTS.map((agent) => [agent.command, agent]));
39
+ function knownAgent(command) {
40
+ const agent = KNOWN_AGENTS_BY_COMMAND.get(command);
41
+ if (!agent) {
42
+ throw new Error(`unreachable: "${command}" is not a known agent CLI`);
43
+ }
44
+ return agent;
45
+ }
46
+ /** Fixed role order; a command's first appearance in this order wins the dedup. */
47
+ const AGENT_ROLES = [
48
+ "agent",
49
+ "authorAgent",
50
+ "deciderAgent",
51
+ "reviewerAgent",
52
+ "recoveryAgent",
53
+ ];
54
+ const INSTALL_LINES = {
55
+ npm: "npm ci",
56
+ pnpm: "pnpm install --frozen-lockfile",
57
+ yarn: "yarn install --frozen-lockfile",
58
+ bun: "bun install --frozen-lockfile",
59
+ };
60
+ /** The agent commands named in the config, deduped by command, first-seen across the fixed role order. */
61
+ function configuredAgentCommands(config) {
62
+ const seen = new Set();
63
+ const commands = [];
64
+ for (const role of AGENT_ROLES) {
65
+ const command = config[role]?.command;
66
+ if (command !== undefined && !seen.has(command)) {
67
+ seen.add(command);
68
+ commands.push(command);
69
+ }
70
+ }
71
+ return commands;
72
+ }
73
+ // The `program-id` dispatch input is hyphenated, so every reference to it
74
+ // uses bracket access — `inputs.program-id` parses the hyphen as subtraction
75
+ // and silently yields a wrong value.
76
+ const PROGRAM_ID_EXPR = "${{ inputs['program-id'] }}";
77
+ function headerLines() {
78
+ return [
79
+ "# .github/workflows/nightshift.yml",
80
+ "# Generated by `nightshift ci init github`. You may edit this file; re-run with",
81
+ "# --force to regenerate it from nightshift.config.json.",
82
+ "name: nightshift",
83
+ "",
84
+ "on:",
85
+ " # Manual dispatch is the ONLY trigger. A run is a deliberate act; a push",
86
+ " # trigger would start one every time a plan is revised. No push, no schedule.",
87
+ " workflow_dispatch:",
88
+ " inputs:",
89
+ " program-id:",
90
+ ' description: "Program ID from /plan-program (e.g. ci-surface)"',
91
+ " required: true",
92
+ " type: string",
93
+ "",
94
+ "# One run per program at a time. A second dispatch of the SAME program-id",
95
+ "# queues behind the first (cancel-in-progress: false), because two runs of one",
96
+ "# program would contend for its single branch. DIFFERENT program-ids run",
97
+ "# concurrently. This does NOT bound how many programs one self-hosted runner",
98
+ "# accepts at once — size your runner count for that (program risk register).",
99
+ "concurrency:",
100
+ ` group: nightshift-${PROGRAM_ID_EXPR}`,
101
+ " cancel-in-progress: false",
102
+ "",
103
+ ];
104
+ }
105
+ function exitCodeCommentLines() {
106
+ return [
107
+ " # Exit codes (nightshift termination contract, WS-02):",
108
+ ` # 0 = complete · ${EXIT_CODES.PARTIAL} = partial build (a red job is correct — read the`,
109
+ ` # PR) · ${EXIT_CODES.COULD_NOT_START} = could-not-start (a planning/config defect, nothing built).`,
110
+ " # --publish opens/updates the draft PR before a partial build's non-zero",
111
+ " # exit, so the runs most worth reading always leave a PR behind.",
112
+ ];
113
+ }
114
+ function hostedAgentInstallStepLines(commands) {
115
+ if (commands.length === 0)
116
+ return [];
117
+ return [
118
+ " - name: Install agent CLIs",
119
+ " run: |",
120
+ ...commands.map((command) => ` ${knownAgent(command).installLine}`),
121
+ ];
122
+ }
123
+ function hostedSecretEnvLines(commands) {
124
+ return commands.map((command) => {
125
+ const secret = knownAgent(command).secretEnvVar;
126
+ return ` ${secret}: \${{ secrets.${secret} }}`;
127
+ });
128
+ }
129
+ function hostedWorkflowLines(commands, version, packageManager) {
130
+ const ref = programBranchName(PROGRAM_ID_EXPR);
131
+ return [
132
+ ...headerLines(),
133
+ "# gh (used by publish) needs to push the branch and open/update the draft PR.",
134
+ "permissions:",
135
+ " contents: write",
136
+ " pull-requests: write",
137
+ "",
138
+ "jobs:",
139
+ " run:",
140
+ " runs-on: ubuntu-latest",
141
+ " steps:",
142
+ " - uses: actions/checkout@v4",
143
+ " with:",
144
+ " # Check out THIS program's branch, not the dispatch ref. A run refuses",
145
+ " # to proceed on any branch other than this program's own branch; it",
146
+ " # is created and pushed by planning, so it already exists on the remote.",
147
+ ` ref: ${ref}`,
148
+ " - uses: actions/setup-node@v4",
149
+ " with:",
150
+ ' node-version: "20"',
151
+ " - name: Install project dependencies",
152
+ ` run: ${INSTALL_LINES[packageManager]}`,
153
+ " - name: Configure git identity",
154
+ " # The runner commits with plain `git commit`; a fresh hosted runner has",
155
+ " # no user.name/user.email, so the first commit would fail without this.",
156
+ " run: |",
157
+ ' git config user.name "nightshift-bot"',
158
+ ' git config user.email "nightshift-bot@users.noreply.github.com"',
159
+ ...hostedAgentInstallStepLines(commands),
160
+ " - name: Run and publish",
161
+ " env:",
162
+ ' CI: "1"',
163
+ " # Passed via env, never interpolated into the shell line, so a crafted",
164
+ " # program-id cannot inject script into the run: line below.",
165
+ ` PROGRAM_ID: ${PROGRAM_ID_EXPR}`,
166
+ " # gh reads this in Actions; it is the auto-provided job token, scoped",
167
+ " # by the permissions block above.",
168
+ " GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}",
169
+ ...hostedSecretEnvLines(commands),
170
+ ...exitCodeCommentLines(),
171
+ ` run: npx --yes @wildorder/nightshift@${version} run "$PROGRAM_ID" --publish`,
172
+ "",
173
+ ];
174
+ }
175
+ function selfHostedWorkflowLines(version) {
176
+ const ref = programBranchName(PROGRAM_ID_EXPR);
177
+ return [
178
+ ...headerLines(),
179
+ "# No `permissions:` block — this variant uses no Actions-provided token.",
180
+ "",
181
+ "jobs:",
182
+ " run:",
183
+ " # A self-hosted runner already has Node, the agent CLIs (authenticated by",
184
+ " # subscription login), gh authenticated, and a git identity configured on",
185
+ " # the box. This workflow installs and wires nothing; it expects the box to",
186
+ " # be ready.",
187
+ " runs-on: [self-hosted]",
188
+ " steps:",
189
+ " - uses: actions/checkout@v4",
190
+ " with:",
191
+ " # Same program-branch checkout as hosted (WS-01's precondition applies",
192
+ " # identically), but push with the box's own git credentials.",
193
+ ` ref: ${ref}`,
194
+ " persist-credentials: false",
195
+ " - name: Run and publish",
196
+ " env:",
197
+ ' CI: "1"',
198
+ ` PROGRAM_ID: ${PROGRAM_ID_EXPR}`,
199
+ ` run: npx --yes @wildorder/nightshift@${version} run "$PROGRAM_ID" --publish`,
200
+ "",
201
+ ];
202
+ }
203
+ /**
204
+ * Pure: config + variant + version + manager -> workflow YAML. No I/O.
205
+ * Throws when `runner` is "hosted" and the config names an agent command the
206
+ * known-agents registry does not recognize — the writer surfaces this as a
207
+ * refusal before writing anything. The self-hosted variant never consults
208
+ * the registry, since it installs nothing.
209
+ */
210
+ export function generateWorkflow(input) {
211
+ const commands = configuredAgentCommands(input.config);
212
+ if (input.runner === "self-hosted") {
213
+ return `${selfHostedWorkflowLines(input.packageVersion).join("\n")}\n`;
214
+ }
215
+ const unknown = commands.find((command) => !KNOWN_AGENTS_BY_COMMAND.has(command));
216
+ if (unknown !== undefined) {
217
+ throw new Error("nightshift ci init github (hosted) does not know how to install the " +
218
+ `agent CLI "${unknown}". Known CLIs: ` +
219
+ `${KNOWN_AGENTS.map((agent) => agent.command).join(", ")}. Add it to ` +
220
+ "nightshift's registry, install it yourself with --runner self-hosted, " +
221
+ "or remove that agent from nightshift.config.json.");
222
+ }
223
+ return `${hostedWorkflowLines(commands, input.packageVersion, input.packageManager).join("\n")}\n`;
224
+ }
225
+ const realCiInitFs = {
226
+ async exists(path) {
227
+ try {
228
+ await access(path);
229
+ return true;
230
+ }
231
+ catch {
232
+ return false;
233
+ }
234
+ },
235
+ async mkdir(path) {
236
+ await mkdir(path, { recursive: true });
237
+ },
238
+ async writeFile(path, content) {
239
+ await writeFile(path, content, "utf8");
240
+ },
241
+ };
242
+ /**
243
+ * Writes `.github/workflows/nightshift.yml`. Refuses to overwrite an
244
+ * existing workflow without `force`, and refuses (writing nothing) when a
245
+ * hosted config names an agent CLI `generateWorkflow` does not recognize.
246
+ */
247
+ export async function ciInitGithub(options) {
248
+ const cwd = resolve(options.cwd);
249
+ const fs = options.fs ?? realCiInitFs;
250
+ const destination = join(cwd, WORKFLOW_PATH);
251
+ const alreadyExists = await fs.exists(destination);
252
+ if (alreadyExists && !options.force) {
253
+ throw new Error(`${WORKFLOW_PATH} already exists; re-run with --force to overwrite it.`);
254
+ }
255
+ const [version, packageManager] = await Promise.all([
256
+ resolvePackageVersion(),
257
+ Promise.resolve(detectPackageManager(cwd)),
258
+ ]);
259
+ const content = generateWorkflow({
260
+ config: options.config,
261
+ runner: options.runner,
262
+ packageVersion: version,
263
+ packageManager,
264
+ });
265
+ await fs.mkdir(dirname(destination));
266
+ await fs.writeFile(destination, content);
267
+ return {
268
+ path: WORKFLOW_PATH,
269
+ action: alreadyExists ? "overwritten" : "created",
270
+ runner: options.runner,
271
+ wiredAgents: options.runner === "hosted" ? configuredAgentCommands(options.config) : [],
272
+ };
273
+ }
274
+ //# sourceMappingURL=ci-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-init.js","sourceRoot":"","sources":["../src/ci-init.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -12,7 +12,11 @@ import { createProjectManifest } from "./project-manifest.js";
12
12
  import { authorProgram } from "./author.js";
13
13
  import { loadConfig } from "./config.js";
14
14
  import { decide } from "./decide.js";
15
- import { runProgram } from "./run-program.js";
15
+ import { createOrSwitchProgramBranch } from "./program-branch.js";
16
+ import { publish } from "./publish.js";
17
+ import { runAndPublish } from "./run-publish.js";
18
+ import { CouldNotStartError, exitCodeForError, } from "./exit-codes.js";
19
+ import { ciInitGithub, RUNNER_VARIANTS } from "./ci-init.js";
16
20
  const SCOPES = ["user", "project", "both"];
17
21
  function parseScope(value) {
18
22
  const scope = value.trim().toLowerCase();
@@ -24,6 +28,13 @@ function parseScope(value) {
24
28
  function collect(value, previous) {
25
29
  return [...previous, value];
26
30
  }
31
+ function parseRunnerVariant(value) {
32
+ const runner = value.trim().toLowerCase();
33
+ if (!RUNNER_VARIANTS.includes(runner)) {
34
+ throw new Error(`Unknown runner "${value}". Expected: ${RUNNER_VARIANTS.join(", ")}.`);
35
+ }
36
+ return runner;
37
+ }
27
38
  /** Shared option surface for `install` and `setup`. */
28
39
  function withSkillOptions(command) {
29
40
  return command
@@ -213,26 +224,103 @@ withSkillOptions(program
213
224
  console.log("setup complete; run /init-project from your agent to continue");
214
225
  }
215
226
  });
227
+ program
228
+ .command("branch")
229
+ .description("Create or switch to a program's branch, reporting which it did")
230
+ .argument("<program-id>", "Program ID from /plan-program")
231
+ .option("--cwd <path>", "Project directory", process.cwd())
232
+ .action(async (programId, options) => {
233
+ const result = await createOrSwitchProgramBranch(programId, {
234
+ cwd: options.cwd,
235
+ });
236
+ console.log(result.action === "created"
237
+ ? `created branch ${result.branch}`
238
+ : `switched to existing branch ${result.branch}`);
239
+ });
216
240
  program
217
241
  .command("run")
218
242
  .description("Run a planned program to termination: build every workstream, journal " +
219
- "every decision, park failures, and write the run report")
243
+ "every decision, park failures, and write the run report; exits 0 " +
244
+ "complete, 2 partial, 3 could-not-start — see docs/as-built.md; with " +
245
+ "--publish, hands the run over as a draft PR via gh")
220
246
  .argument("<program-id>", "Program ID from /plan-program")
221
247
  .option("--cwd <path>", "Project directory", process.cwd())
248
+ .option("--force", "Skip the branch preconditions", false)
249
+ .option("--publish", "After the run, push the branch and open or update the draft pull " +
250
+ "request (calls the same path as `nightshift publish`)", false)
222
251
  .action(async (programId, options) => {
223
- const { config } = await loadConfig(resolve(options.cwd));
224
- const result = await runProgram({
252
+ let config;
253
+ try {
254
+ ({ config } = await loadConfig(resolve(options.cwd)));
255
+ }
256
+ catch (error) {
257
+ throw new CouldNotStartError(error.message, { cause: error });
258
+ }
259
+ const outcome = await runAndPublish({
225
260
  cwd: options.cwd,
226
261
  programId,
227
262
  config,
263
+ force: options.force,
264
+ publish: options.publish,
228
265
  });
229
- const built = result.workstreams.filter((entry) => entry.outcome.status === "complete" ||
266
+ const built = outcome.result.workstreams.filter((entry) => entry.outcome.status === "complete" ||
230
267
  entry.outcome.status === "skipped").length;
231
- console.log(`\n${built} of ${result.workstreams.length} workstreams built; ` +
232
- `${result.escalations.length} decision(s) escalated for you.`);
233
- console.log(`read the run report: ${result.reportPath}`);
234
- if (!result.complete)
235
- process.exitCode = 1;
268
+ console.log(`\n${built} of ${outcome.result.workstreams.length} workstreams built; ` +
269
+ `${outcome.result.escalations.length} decision(s) escalated for you.`);
270
+ console.log(`read the run report: ${outcome.result.reportPath}`);
271
+ if (outcome.publish.status === "published") {
272
+ const pr = outcome.publish.result;
273
+ console.log(`published: ${pr.action} draft PR ${pr.prUrl}`);
274
+ }
275
+ else if (outcome.publish.status === "failed") {
276
+ console.error(`publish failed: ${outcome.publish.error.message}`);
277
+ console.error("the run itself finished and its report is on disk; fix the cause " +
278
+ `and re-run \`nightshift publish ${programId}\``);
279
+ }
280
+ process.exitCode = outcome.exitCode;
281
+ });
282
+ program
283
+ .command("publish")
284
+ .description("Push the program branch and open or update its draft pull request, " +
285
+ "rendering the run report as its body and upserting one comment per " +
286
+ "escalated decision")
287
+ .argument("<program-id>", "Program ID from /plan-program")
288
+ .option("--cwd <path>", "Project directory", process.cwd())
289
+ .action(async (programId, options) => {
290
+ const result = await publish({ cwd: options.cwd, programId });
291
+ console.log(`${result.action} draft PR #${result.prNumber}: ${result.prUrl}`);
292
+ console.log(`${result.escalationComments} escalation comment(s), ` +
293
+ `${result.continuationComments} report-continuation comment(s) upserted.`);
294
+ });
295
+ const ciCommand = program
296
+ .command("ci")
297
+ .description("CI integration commands");
298
+ ciCommand
299
+ .command("init")
300
+ .description("Write .github/workflows/nightshift.yml: manual dispatch of `nightshift " +
301
+ "run <program-id> --publish` on the program branch")
302
+ .argument("<forge>", 'CI forge to generate a workflow for; only "github" is supported')
303
+ .option("--runner <runner>", `Runner variant: ${RUNNER_VARIANTS.join(", ")} (default: hosted)`, "hosted")
304
+ .option("--force", "Overwrite an existing workflow file", false)
305
+ .option("--cwd <path>", "Project directory", process.cwd())
306
+ .action(async (forge, options) => {
307
+ if (forge !== "github") {
308
+ throw new Error(`Unknown forge "${forge}"; only \`github\` is supported.`);
309
+ }
310
+ const runner = parseRunnerVariant(options.runner);
311
+ const { config } = await loadConfig(resolve(options.cwd));
312
+ const result = await ciInitGithub({
313
+ cwd: options.cwd,
314
+ config,
315
+ runner,
316
+ force: options.force,
317
+ });
318
+ console.log(`${result.action} ${result.path} (runner: ${result.runner})`);
319
+ if (result.runner === "hosted") {
320
+ console.log(result.wiredAgents.length > 0
321
+ ? `wired agent CLI(s): ${result.wiredAgents.join(", ")}`
322
+ : "no agent CLIs configured; nothing to install");
323
+ }
236
324
  });
237
325
  function renderAuthorResult(result) {
238
326
  console.log(`${result.id} ${result.name}: ${result.outcome.status}`);
@@ -364,6 +452,6 @@ catch (error) {
364
452
  if (process.env.NIGHTSHIFT_DEBUG)
365
453
  throw error;
366
454
  console.error(error.message);
367
- process.exitCode = 1;
455
+ process.exitCode = exitCodeForError(error);
368
456
  }
369
457
  //# sourceMappingURL=cli.js.map
package/dist/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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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The process exit codes a `nightshift run` terminates with — the one place
3
+ * they are defined. A CI author and the generated GitHub Actions workflow
4
+ * (WS-05) both read these; there is exactly one source.
5
+ *
6
+ * 0 COMPLETE every workstream built; the handover is a clean PR.
7
+ * 2 PARTIAL the run terminated with a reviewable handover, but at
8
+ * least one workstream failed or was parked. A red job is
9
+ * the correct signal — the run report is worth reading.
10
+ * 3 COULD_NOT_START the run never began: a dependency cycle, a missing or
11
+ * invalid manifest, an unconfigured implementer, or a
12
+ * branch precondition refused before any agent spawned.
13
+ * There is no run report, because there was no run.
14
+ *
15
+ * 1 is deliberately NOT one of these three. It stays the generic "unexpected
16
+ * error" code that Node (uncaught throw) and Commander (usage error) already
17
+ * emit, so a tool crash or a mistyped command is never read as a run outcome.
18
+ */
19
+ export declare const EXIT_CODES: {
20
+ readonly COMPLETE: 0;
21
+ readonly GENERIC: 1;
22
+ readonly PARTIAL: 2;
23
+ readonly COULD_NOT_START: 3;
24
+ };
25
+ /**
26
+ * Thrown for every condition that stops a run before it starts. The CLI maps
27
+ * it to EXIT_CODES.COULD_NOT_START; anything else thrown out of a run is a
28
+ * genuine, unclassified error and stays EXIT_CODES.GENERIC. The message is the
29
+ * actionable guidance the operator reads — keep it a single readable sentence,
30
+ * exactly as the guards already write it.
31
+ */
32
+ export declare class CouldNotStartError extends Error {
33
+ readonly exitCode: 3;
34
+ constructor(message: string, options?: {
35
+ cause?: unknown;
36
+ });
37
+ }
38
+ /** Complete → 0; partial → 2. The only mapping a returned run outcome needs. */
39
+ export declare function exitCodeForResult(result: {
40
+ complete: boolean;
41
+ }): number;
42
+ /** A could-not-start throw → 3; every other throw → the generic 1. */
43
+ export declare function exitCodeForError(error: unknown): number;
44
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,IAA8B;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAEvE;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIvD"}