@unimatrix27/ralph-harness 1.0.3 → 1.1.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.
package/README.md CHANGED
@@ -115,7 +115,7 @@ Slice 3 — aws-bootstrap (TS, slice-4 port):
115
115
  Slice 5 — fire-launcher (single-fire EC2 + CloudWatch streaming):
116
116
 
117
117
  - [`lib/fire-launcher.sh`](lib/fire-launcher.sh) — fires one throwaway EC2
118
- in `eu-central-1` (`m7a.xlarge`, 30 GB gp3, AL2023 from public SSM AMI
118
+ in `eu-central-1` (`m7a.xlarge`, 60 GB gp3, AL2023 from public SSM AMI
119
119
  parameter, default-VPC public subnet, auto-assigned public IP, IMDSv2
120
120
  required) using the bootstrapped IAM instance profile and security group.
121
121
  Tags every instance + volume `Project=ralph` plus a UTC `LaunchedAt`
@@ -6,8 +6,11 @@
6
6
  // AWS-side resource ensure, then calls the launcher.
7
7
  //
8
8
  // Usage:
9
- // ralph-fire — fire one EC2 worker
10
- // ralph-fire --version print the package version and exit
9
+ // ralph-fire — fire one EC2 worker (auto-discovery)
10
+ // ralph-fire 42 91 187 fire N EC2 workers in parallel, each
11
+ // targeting the named issue (skips
12
+ // discovery's backlog scan).
13
+ // ralph-fire --version — print the package version and exit
11
14
  //
12
15
  // Env knobs: see lib/fire-launcher.ts (resolveLauncherConfig). The set is
13
16
  // byte-compatible with iteration-1's lib/fire-launcher.sh.
@@ -18,19 +21,72 @@ import { spawnSync } from "node:child_process";
18
21
  import { createRequire } from "node:module";
19
22
  import { loadDotenv } from "../lib/env-loader.js";
20
23
  import { LauncherError, run } from "../lib/fire-launcher.js";
24
+ import { runWizard } from "../lib/ralph-fire-wizard.js";
21
25
  const require = createRequire(import.meta.url);
22
26
  const pkg = require("../../package.json");
27
+ function parseIssueArgs(args) {
28
+ const out = [];
29
+ for (const a of args) {
30
+ // Strict: only positive integers. Reject leading zeros, signs, decimals.
31
+ if (!/^[1-9][0-9]*$/.test(a)) {
32
+ process.stderr.write(`ralph-fire: invalid issue number: ${a} (expected a positive integer)\n`);
33
+ process.exit(2);
34
+ }
35
+ out.push(Number.parseInt(a, 10));
36
+ }
37
+ return out;
38
+ }
39
+ async function fireOne(issue) {
40
+ const prefix = `[#${issue}]`;
41
+ const info = (line) => process.stdout.write(`${prefix} ${line}\n`);
42
+ try {
43
+ const rc = await run({
44
+ defaultHarnessVersion: pkg.version,
45
+ targetIssue: issue,
46
+ info,
47
+ });
48
+ return { issue, rc, error: null };
49
+ }
50
+ catch (err) {
51
+ if (err instanceof LauncherError) {
52
+ info(err.message);
53
+ return { issue, rc: err.exitCode, error: err.message };
54
+ }
55
+ const msg = err instanceof Error ? err.message : String(err);
56
+ info(`ralph-fire: ${msg}`);
57
+ return { issue, rc: 1, error: msg };
58
+ }
59
+ }
60
+ function printSummary(results) {
61
+ process.stdout.write("\nralph-fire: summary\n");
62
+ for (const r of results) {
63
+ const status = r.rc === 0 ? "ok" : `rc=${r.rc}`;
64
+ const detail = r.error ? ` — ${r.error}` : "";
65
+ process.stdout.write(` #${r.issue}: ${status}${detail}\n`);
66
+ }
67
+ }
23
68
  async function main() {
24
69
  const args = process.argv.slice(2);
25
70
  if (args.length === 1 && args[0] === "--version") {
26
71
  process.stdout.write(`${pkg.version}\n`);
27
72
  process.exit(0);
28
73
  }
29
- if (args.length > 0) {
30
- process.stderr.write(`ralph-fire: unexpected arguments: ${args.join(" ")}\n`);
31
- process.exit(2);
74
+ // Reject any flag-shaped arg up front — everything else must be a
75
+ // positive integer issue number.
76
+ for (const a of args) {
77
+ if (a.startsWith("-")) {
78
+ process.stderr.write(`ralph-fire: unknown flag: ${a}\n`);
79
+ process.exit(2);
80
+ }
32
81
  }
82
+ const issues = parseIssueArgs(args);
33
83
  loadDotenv();
84
+ // Issue #36: when invoked from a TTY with required env unset, walk the
85
+ // operator through to a launch (auto-discover RALPH_TARGET_REPO from
86
+ // `git remote get-url origin`, prompt for missing fields, validate the
87
+ // local .ralph/config.yaml schema version). No-op on non-TTY callers
88
+ // (CI, EC2 user-data) — the launcher's existing fail-fast still fires.
89
+ await runWizard({ env: process.env });
34
90
  if (process.env.RALPH_SKIP_BOOTSTRAP !== "1") {
35
91
  const r = spawnSync("ralph-bootstrap-aws", [], {
36
92
  stdio: "inherit",
@@ -44,8 +100,17 @@ async function main() {
44
100
  process.exit(r.status ?? 1);
45
101
  }
46
102
  }
47
- const rc = await run({ defaultHarnessVersion: pkg.version });
48
- process.exit(rc);
103
+ if (issues.length === 0) {
104
+ const rc = await run({ defaultHarnessVersion: pkg.version });
105
+ process.exit(rc);
106
+ }
107
+ process.stdout.write(`ralph-fire: firing ${issues.length} parallel workers for issues ${issues
108
+ .map((i) => `#${i}`)
109
+ .join(", ")}\n`);
110
+ const results = await Promise.all(issues.map((i) => fireOne(i)));
111
+ printSummary(results);
112
+ const worstRc = results.reduce((acc, r) => Math.max(acc, r.rc), 0);
113
+ process.exit(worstRc);
49
114
  }
50
115
  main().catch((err) => {
51
116
  if (err instanceof LauncherError) {
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-fire.js","sourceRoot":"","sources":["../../src/bin/ralph-fire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph-fire.js","sourceRoot":"","sources":["../../src/bin/ralph-fire.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface OrchestratorConfig {
17
17
  implementationPromptPath: string;
18
18
  reviewPromptPath: string;
19
19
  reviewWaitSec: number;
20
+ targetIssue: string;
20
21
  }
21
22
  export declare function resolveOrchestratorConfig(env: NodeJS.ProcessEnv, packageRoot: string): OrchestratorConfig;
22
23
  type ClaudeRunner = (prompt: string, opts?: RunClaudeOptions) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"ec2-orchestrator.d.ts","sourceRoot":"","sources":["../../src/lib/ec2-orchestrator.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAUtE,OAAO,EAML,KAAK,KAAK,EACV,KAAK,IAAI,EACV,MAAM,6BAA6B,CAAC;AAMrC,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,KAAK;aACd,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI9D;AAKD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,MAAM,GAClB,kBAAkB,CA0BpB;AAkCD,KAAK,YAAY,GAAG,CAClB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnC,KAAK,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAG3C,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AA2GD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CA2BR;AA2ED,wBAAsB,GAAG,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0PhE;AAGD,YAAY,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"ec2-orchestrator.d.ts","sourceRoot":"","sources":["../../src/lib/ec2-orchestrator.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAUtE,OAAO,EAML,KAAK,KAAK,EACV,KAAK,IAAI,EACV,MAAM,6BAA6B,CAAC;AAMrC,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,KAAK;aACd,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI9D;AAKD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IAKtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,MAAM,GAClB,kBAAkB,CA2BpB;AAkCD,KAAK,YAAY,GAAG,CAClB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,KACpB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnC,KAAK,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAG3C,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AA4GD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CA2BR;AA2ED,wBAAsB,GAAG,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0PhE;AAGD,YAAY,EAAE,KAAK,EAAE,CAAC"}
@@ -69,6 +69,7 @@ export function resolveOrchestratorConfig(env, packageRoot) {
69
69
  resolvePath(promptsRoot, "implementation.md"),
70
70
  reviewPromptPath: env.RALPH_REVIEW_PROMPT ?? resolvePath(promptsRoot, "review.md"),
71
71
  reviewWaitSec: parseReviewWait(env.RALPH_REVIEW_WAIT_SEC),
72
+ targetIssue: env.RALPH_TARGET_ISSUE ?? "",
72
73
  };
73
74
  }
74
75
  function parseReviewWait(raw) {
@@ -156,6 +157,7 @@ function buildDiscoveryContext(b) {
156
157
  RALPH_BUILD_CMD: b.target?.build_cmd ?? "",
157
158
  RALPH_TEST_CMD: b.target?.test_cmd ?? "",
158
159
  RALPH_BRANCH_PREFIX: b.target?.branch_prefix ?? "",
160
+ RALPH_TARGET_ISSUE: b.config.targetIssue,
159
161
  PROMPT_EXTENSION: b.target?.prompt_extensions?.discovery ?? "",
160
162
  };
161
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ec2-orchestrator.js","sourceRoot":"","sources":["../../src/lib/ec2-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ec2-orchestrator.js","sourceRoot":"","sources":["../../src/lib/ec2-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export declare const DEFAULTS: {
22
22
  readonly githubTokenSsmKey: "/ralph/github-pat";
23
23
  readonly claudeOauthSsmKey: "/ralph/claude-oauth-credential";
24
24
  readonly instanceType: "m7a.xlarge";
25
- readonly rootVolumeGb: 30;
25
+ readonly rootVolumeGb: 60;
26
26
  readonly sgName: "ralph-sg";
27
27
  readonly iamProfile: "ralph-ec2-profile";
28
28
  readonly amiSsmParam: "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64";
@@ -44,6 +44,7 @@ interface WaitOptions {
44
44
  now?: Clock;
45
45
  sleep?: Sleeper;
46
46
  }
47
+ export declare function detectEarlyExit(clients: AwsClients, logGroup: string, instanceId: string): Promise<string | null>;
47
48
  export declare function waitForTerminated(clients: AwsClients, opts: WaitOptions): Promise<number>;
48
49
  export interface RunOptions {
49
50
  env?: NodeJS.ProcessEnv;
@@ -51,6 +52,7 @@ export interface RunOptions {
51
52
  clients?: AwsClients;
52
53
  info?: (line: string) => void;
53
54
  userDataOverride?: string;
55
+ targetIssue?: number;
54
56
  now?: Clock;
55
57
  sleep?: Sleeper;
56
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fire-launcher.d.ts","sourceRoot":"","sources":["../../src/lib/fire-launcher.ts"],"names":[],"mappings":"AA4CA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CAcX,CAAC;AAEX,qBAAa,aAAc,SAAQ,KAAK;aACV,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI9D;AAqBD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,qBAAqB,EAAE,MAAM,GAC5B,cAAc,CAoChB;AAiKD,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAGpD,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAGjC,UAAU,WAAW;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAGxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAsB,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAwF3D"}
1
+ {"version":3,"file":"fire-launcher.d.ts","sourceRoot":"","sources":["../../src/lib/fire-launcher.ts"],"names":[],"mappings":"AA6CA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CAcX,CAAC;AAEX,qBAAa,aAAc,SAAQ,KAAK;aACV,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI9D;AAqBD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,qBAAqB,EAAE,MAAM,GAC5B,cAAc,CAoChB;AAiKD,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAGpD,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAGjC,UAAU,WAAW;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAWD,wBAAsB,eAAe,CACnC,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBxB;AAWD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,MAAM,CAAC,CAoEjB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAGxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAsB,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiG3D"}
@@ -18,7 +18,7 @@
18
18
  // RALPH_GITHUB_TOKEN_SSM_KEY /ralph/github-pat
19
19
  // RALPH_CLAUDE_OAUTH_SSM_KEY /ralph/claude-oauth-credential
20
20
  // RALPH_INSTANCE_TYPE m7a.xlarge
21
- // RALPH_ROOT_VOLUME_GB 30
21
+ // RALPH_ROOT_VOLUME_GB 60
22
22
  // RALPH_SG_NAME ralph-sg
23
23
  // RALPH_IAM_PROFILE ralph-ec2-profile
24
24
  // RALPH_AMI_SSM_PARAM /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
@@ -31,6 +31,7 @@
31
31
  // 0 instance terminated cleanly within the ceiling
32
32
  // 2 missing AWS-side resource OR missing required env
33
33
  // 3 wall-clock ceiling breached; force terminate-instances was issued
34
+ import { FilterLogEventsCommand } from "@aws-sdk/client-cloudwatch-logs";
34
35
  import { DescribeInstancesCommand, DescribeSecurityGroupsCommand, DescribeSubnetsCommand, DescribeVpcsCommand, RunInstancesCommand, TerminateInstancesCommand, } from "@aws-sdk/client-ec2";
35
36
  import { GetParameterCommand } from "@aws-sdk/client-ssm";
36
37
  import { defaultAwsClients, } from "./aws-clients.js";
@@ -43,7 +44,7 @@ export const DEFAULTS = {
43
44
  githubTokenSsmKey: "/ralph/github-pat",
44
45
  claudeOauthSsmKey: "/ralph/claude-oauth-credential",
45
46
  instanceType: "m7a.xlarge",
46
- rootVolumeGb: 30,
47
+ rootVolumeGb: 60,
47
48
  sgName: "ralph-sg",
48
49
  iamProfile: "ralph-ec2-profile",
49
50
  amiSsmParam: "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64",
@@ -215,13 +216,52 @@ async function runInstance(clients, p) {
215
216
  }
216
217
  const realSleep = (ms) => new Promise((r) => setTimeout(r, ms));
217
218
  const realNow = () => Date.now();
219
+ // detectEarlyExit — issue #37 backstop. Looks at the per-instance
220
+ // CloudWatch stream for sentinel lines that prove the orchestrator is
221
+ // done (`ORCHESTRATOR_EXITED rc=N`) or has reached a terminal outcome
222
+ // (`OUTCOME=...`). The trap-shutdown in user-data is the primary
223
+ // mechanism; this check covers the case where the orchestrator process
224
+ // itself was killed (OOM, signal) before its trap could fire. Returns
225
+ // the matching log line on hit, null otherwise. Any read failure is
226
+ // treated as "no signal" — callers fall back to the describe-instances
227
+ // poll + wall-clock ceiling.
228
+ export async function detectEarlyExit(clients, logGroup, instanceId) {
229
+ try {
230
+ const r = await clients.logs.send(new FilterLogEventsCommand({
231
+ logGroupName: logGroup,
232
+ logStreamNames: [instanceId],
233
+ // Match either marker. The CloudWatch filter pattern grammar uses
234
+ // ?-prefixed terms for OR; quoted string literals match anywhere
235
+ // in the message.
236
+ filterPattern: '?"ORCHESTRATOR_EXITED rc=" ?"OUTCOME="',
237
+ }));
238
+ for (const ev of r.events ?? []) {
239
+ const msg = (ev.message ?? "").trim();
240
+ if (msg.includes("ORCHESTRATOR_EXITED rc=") ||
241
+ msg.includes("OUTCOME=")) {
242
+ return msg;
243
+ }
244
+ }
245
+ return null;
246
+ }
247
+ catch {
248
+ return null;
249
+ }
250
+ }
218
251
  // waitForTerminated — polls describe-instances until State.Name=terminated.
219
252
  // Returns 0 on clean termination, 3 on wall-clock ceiling breach (after
220
253
  // firing terminate-instances on best-effort).
254
+ //
255
+ // Each tick also checks CloudWatch for an early-exit sentinel (issue
256
+ // #37). On hit, terminate-instances is fired immediately and the
257
+ // describe-instances loop continues until the state actually flips to
258
+ // `terminated` — that way callers always see a real terminal state and
259
+ // the post-hoc checker still has time to read the stream.
221
260
  export async function waitForTerminated(clients, opts) {
222
261
  const now = opts.now ?? realNow;
223
262
  const sleep = opts.sleep ?? realSleep;
224
263
  const deadline = now() + opts.config.maxLifetimeMin * 60_000;
264
+ let earlyExitForced = false;
225
265
  for (;;) {
226
266
  let state = "";
227
267
  try {
@@ -241,6 +281,22 @@ export async function waitForTerminated(clients, opts) {
241
281
  else {
242
282
  opts.info(moduleInfo(`instance ${opts.instanceId} state=${state}`));
243
283
  }
284
+ // CloudWatch backstop — only fire terminate-instances once. Once the
285
+ // describe-instances loop sees the resulting `terminated` state we
286
+ // exit cleanly.
287
+ if (!earlyExitForced) {
288
+ const marker = await detectEarlyExit(clients, opts.config.logGroup, opts.instanceId);
289
+ if (marker !== null) {
290
+ opts.info(moduleInfo(`early-exit signal observed in CloudWatch: ${marker}; forcing terminate`));
291
+ try {
292
+ await clients.ec2.send(new TerminateInstancesCommand({ InstanceIds: [opts.instanceId] }));
293
+ }
294
+ catch {
295
+ // best-effort
296
+ }
297
+ earlyExitForced = true;
298
+ }
299
+ }
244
300
  if (now() >= deadline) {
245
301
  opts.info(`${MODULE_PREFIX}: error: wall-clock ceiling (${opts.config.maxLifetimeMin}m) breached; forcing terminate`);
246
302
  try {
@@ -269,6 +325,14 @@ export async function run(opts) {
269
325
  info(moduleInfo(`region=${config.region} vpc=${vpcId} subnet=${subnetId} sg=${sgId} ami=${imageId}`));
270
326
  info(moduleInfo(`instance_type=${config.instanceType} root_gb=${config.rootVolumeGb} max_lifetime_min=${config.maxLifetimeMin}`));
271
327
  info(moduleInfo(`target=${config.targetRepo} log_group=${config.logGroup} version=${config.harnessVersion}`));
328
+ const extraEnvFromCaller = {};
329
+ if (env.RALPH_DEBUG_TRANSCRIPT === "1") {
330
+ extraEnvFromCaller.RALPH_DEBUG_TRANSCRIPT = "1";
331
+ }
332
+ if (opts.targetIssue !== undefined) {
333
+ extraEnvFromCaller.RALPH_TARGET_ISSUE = String(opts.targetIssue);
334
+ info(moduleInfo(`target_issue=#${opts.targetIssue}`));
335
+ }
272
336
  const userData = opts.userDataOverride ??
273
337
  renderUserData({
274
338
  targetRepo: config.targetRepo,
@@ -278,8 +342,8 @@ export async function run(opts) {
278
342
  githubTokenSsmKey: config.githubTokenSsmKey,
279
343
  claudeOauthSsmKey: config.claudeOauthSsmKey,
280
344
  agentStuckLabel: config.agentStuckLabel,
281
- extraEnv: env.RALPH_DEBUG_TRANSCRIPT === "1"
282
- ? { RALPH_DEBUG_TRANSCRIPT: "1" }
345
+ extraEnv: Object.keys(extraEnvFromCaller).length > 0
346
+ ? extraEnvFromCaller
283
347
  : undefined,
284
348
  });
285
349
  info(moduleInfo(`user-data size: ${Buffer.byteLength(userData, "utf8")} bytes (cap=16384)`));
@@ -1 +1 @@
1
- {"version":3,"file":"fire-launcher.js","sourceRoot":"","sources":["../../src/lib/fire-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fire-launcher.js","sourceRoot":"","sources":["../../src/lib/fire-launcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare const MODULE_PREFIX = "ralph-fire-wizard";
2
+ export declare function parseGithubRepoFromGitUrl(url: string): string | null;
3
+ export declare function gitRemoteOriginUrl(cwd: string): string | null;
4
+ export interface WizardIO {
5
+ ask: (question: string) => Promise<string>;
6
+ info: (line: string) => void;
7
+ }
8
+ export interface WizardOptions {
9
+ env: NodeJS.ProcessEnv;
10
+ cwd?: string;
11
+ isTty?: boolean;
12
+ io?: WizardIO;
13
+ gitRemote?: (cwd: string) => string | null;
14
+ }
15
+ export declare function runWizard(opts: WizardOptions): Promise<void>;
16
+ //# sourceMappingURL=ralph-fire-wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ralph-fire-wizard.d.ts","sourceRoot":"","sources":["../../src/lib/ralph-fire-wizard.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAUjD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcpE;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,MAAM,WAAW,QAAQ;IAEvB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;IAEd,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC5C;AA8BD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAclE"}
@@ -0,0 +1,166 @@
1
+ // ralph-fire-wizard — interactive UX for `ralph-fire` when run from a TTY.
2
+ //
3
+ // Issue #36: when an operator runs `ralph-fire` from a clone of the
4
+ // target repo with no env vars set, walk them through the launch.
5
+ // Auto-discover RALPH_TARGET_REPO from `git remote get-url origin`,
6
+ // confirm with the operator, prompt for any other missing required
7
+ // fields, and validate the local `.ralph/config.yaml` schema version
8
+ // before handing off to the launcher.
9
+ //
10
+ // Design constraints:
11
+ // - Non-TTY callers (CI, EC2 user-data, the fire-launcher subprocessing
12
+ // `ralph-bootstrap-aws`) MUST NOT block on prompts. We do nothing
13
+ // when stdin or stdout is not a TTY — the launcher's existing fail-
14
+ // fast on missing env still fires downstream, byte-identical to the
15
+ // pre-wizard behaviour.
16
+ // - Operator-typed values always win over auto-discovered ones. If
17
+ // `RALPH_TARGET_REPO` is already set in env, we never overwrite it.
18
+ // - The wizard is purely additive — `ralph-fire` keeps working with
19
+ // no TTY exactly as before.
20
+ //
21
+ // Public surface:
22
+ // parseGithubRepoFromGitUrl(url) — pure, tested in isolation.
23
+ // runWizard(opts) — async; mutates the supplied env.
24
+ import { execFileSync } from "node:child_process";
25
+ import { existsSync, readFileSync } from "node:fs";
26
+ import { resolve as resolvePath } from "node:path";
27
+ import { createInterface } from "node:readline/promises";
28
+ import { CURRENT_SCHEMA_VERSION, validate as validateTargetConfig, ValidateError, readSchemaVersion, } from "./target-config-schema.js";
29
+ export const MODULE_PREFIX = "ralph-fire-wizard";
30
+ // parseGithubRepoFromGitUrl — extract `owner/repo` from a git remote
31
+ // URL. Accepts the three forms `git remote get-url origin` can return:
32
+ // https://github.com/owner/repo(.git)?
33
+ // https://x-access-token:<pat>@github.com/owner/repo(.git)?
34
+ // git@github.com:owner/repo(.git)?
35
+ // Returns null for anything else (gitlab, custom hosts, malformed input).
36
+ // The launcher only knows how to talk to github.com via the gh CLI, so
37
+ // we restrict to that host.
38
+ export function parseGithubRepoFromGitUrl(url) {
39
+ const trimmed = url.trim();
40
+ if (trimmed.length === 0)
41
+ return null;
42
+ // SSH form
43
+ const ssh = trimmed.match(/^[A-Za-z0-9._-]+@github\.com:([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+?)(?:\.git)?$/);
44
+ if (ssh)
45
+ return `${ssh[1]}/${ssh[2]}`;
46
+ // HTTPS form (with or without auth prefix)
47
+ const https = trimmed.match(/^https?:\/\/(?:[^/@]+@)?github\.com\/([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+?)(?:\.git)?\/?$/);
48
+ if (https)
49
+ return `${https[1]}/${https[2]}`;
50
+ return null;
51
+ }
52
+ // gitRemoteOriginUrl — best-effort `git -C <cwd> remote get-url origin`.
53
+ // Returns null if cwd is not in a git repo, the remote doesn't exist,
54
+ // or git isn't installed. Never throws.
55
+ export function gitRemoteOriginUrl(cwd) {
56
+ try {
57
+ const out = execFileSync("git", ["-C", cwd, "remote", "get-url", "origin"], { stdio: ["ignore", "pipe", "ignore"], encoding: "utf8", timeout: 2_000 });
58
+ const trimmed = out.trim();
59
+ return trimmed.length > 0 ? trimmed : null;
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ }
65
+ const DEFAULT_REGION = "eu-central-1";
66
+ function defaultIo() {
67
+ // Lazy readline construction — only wired up when we actually need to
68
+ // prompt, so unit tests that supply their own io stay free of fd leaks.
69
+ let rl = null;
70
+ return {
71
+ ask: async (q) => {
72
+ if (rl === null) {
73
+ rl = createInterface({ input: process.stdin, output: process.stdout });
74
+ }
75
+ const answer = await rl.question(q);
76
+ return answer.trim();
77
+ },
78
+ info: (line) => process.stdout.write(`${line}\n`),
79
+ };
80
+ }
81
+ // confirmYes — Y/n prompt that defaults to yes on empty input.
82
+ async function confirmYes(io, q) {
83
+ const a = (await io.ask(`${q} [Y/n] `)).toLowerCase();
84
+ if (a.length === 0)
85
+ return true;
86
+ return a === "y" || a === "yes";
87
+ }
88
+ // runWizard — interactive prompt path. No-op when not on a TTY. Mutates
89
+ // `opts.env` in place. Operator-typed env always wins; we never override
90
+ // a value the operator already set.
91
+ export async function runWizard(opts) {
92
+ const env = opts.env;
93
+ const cwd = opts.cwd ?? process.cwd();
94
+ const isTty = opts.isTty ??
95
+ (process.stdin.isTTY === true && process.stdout.isTTY === true);
96
+ if (!isTty)
97
+ return;
98
+ const io = opts.io ?? defaultIo();
99
+ const gitRemote = opts.gitRemote ?? gitRemoteOriginUrl;
100
+ await populateTargetRepo(env, cwd, io, gitRemote);
101
+ await populateAwsRegion(env, io);
102
+ await maybeValidateLocalConfig(cwd, io);
103
+ }
104
+ async function populateTargetRepo(env, cwd, io, gitRemote) {
105
+ if (env.RALPH_TARGET_REPO && env.RALPH_TARGET_REPO.length > 0)
106
+ return;
107
+ const remote = gitRemote(cwd);
108
+ const discovered = remote ? parseGithubRepoFromGitUrl(remote) : null;
109
+ if (discovered) {
110
+ if (await confirmYes(io, `Use ${discovered} as RALPH_TARGET_REPO?`)) {
111
+ env.RALPH_TARGET_REPO = discovered;
112
+ return;
113
+ }
114
+ }
115
+ const fallbackHint = discovered ?? "owner/repo";
116
+ for (;;) {
117
+ const typed = await io.ask(`RALPH_TARGET_REPO (${fallbackHint}): `);
118
+ if (typed.length > 0 && /^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+$/.test(typed)) {
119
+ env.RALPH_TARGET_REPO = typed;
120
+ return;
121
+ }
122
+ io.info(`${MODULE_PREFIX}: expected the form owner/repo (got ${JSON.stringify(typed)})`);
123
+ }
124
+ }
125
+ async function populateAwsRegion(env, io) {
126
+ if (env.RALPH_AWS_REGION && env.RALPH_AWS_REGION.length > 0)
127
+ return;
128
+ const typed = await io.ask(`RALPH_AWS_REGION (${DEFAULT_REGION}): `);
129
+ env.RALPH_AWS_REGION = typed.length > 0 ? typed : DEFAULT_REGION;
130
+ }
131
+ // maybeValidateLocalConfig — when the operator is standing in a clone
132
+ // that already has a `.ralph/config.yaml`, surface schema-version
133
+ // mismatches up-front rather than waiting for system-setup.sh to fail
134
+ // on the EC2 worker. We do NOT block the launch — the authoritative
135
+ // validator runs on the worker against the target's tip-of-default-
136
+ // branch, which may differ from the operator's clone — but we warn so
137
+ // the operator can decide whether to fix it locally first.
138
+ async function maybeValidateLocalConfig(cwd, io) {
139
+ const cfgPath = resolvePath(cwd, ".ralph", "config.yaml");
140
+ if (!existsSync(cfgPath))
141
+ return;
142
+ let raw;
143
+ try {
144
+ raw = readFileSync(cfgPath, "utf8");
145
+ }
146
+ catch {
147
+ return;
148
+ }
149
+ const localVersion = readSchemaVersion(raw);
150
+ if (localVersion === undefined) {
151
+ io.info(`${MODULE_PREFIX}: ${cfgPath} has no schema_version; harness expects ${CURRENT_SCHEMA_VERSION}. Add 'schema_version: ${CURRENT_SCHEMA_VERSION}' to silence this warning.`);
152
+ }
153
+ else if (localVersion !== CURRENT_SCHEMA_VERSION) {
154
+ io.info(`${MODULE_PREFIX}: ${cfgPath} declares schema_version=${localVersion}; harness expects ${CURRENT_SCHEMA_VERSION}. The on-EC2 validator will reject this — update the file before launching.`);
155
+ return;
156
+ }
157
+ try {
158
+ validateTargetConfig(raw);
159
+ }
160
+ catch (err) {
161
+ if (err instanceof ValidateError) {
162
+ io.info(`${MODULE_PREFIX}: ${cfgPath} failed local schema validation (code ${err.code}): ${err.message}`);
163
+ }
164
+ }
165
+ }
166
+ //# sourceMappingURL=ralph-fire-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ralph-fire-wizard.js","sourceRoot":"","sources":["../../src/lib/ralph-fire-wizard.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ export declare class ValidateError extends Error {
4
4
  readonly code: ValidateExitCode;
5
5
  constructor(code: ValidateExitCode, message: string);
6
6
  }
7
+ export declare const CURRENT_SCHEMA_VERSION = 1;
7
8
  export declare const TargetConfigSchema: z.ZodObject<{
9
+ schema_version: z.ZodOptional<z.ZodLiteral<1>>;
8
10
  build_cmd: z.ZodString;
9
11
  test_cmd: z.ZodString;
10
12
  branch_prefix: z.ZodString;
@@ -25,4 +27,5 @@ export declare const TargetConfigSchema: z.ZodObject<{
25
27
  export type TargetConfig = z.infer<typeof TargetConfigSchema>;
26
28
  export declare function validate(yamlString: string): TargetConfig;
27
29
  export declare function moduleErr(message: string): string;
30
+ export declare function readSchemaVersion(yamlString: string): number | undefined;
28
31
  //# sourceMappingURL=target-config-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"target-config-schema.d.ts","sourceRoot":"","sources":["../../src/lib/target-config-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM;CAKlB;AAwBD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;kBASpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAqBzD;AAmGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"target-config-schema.d.ts","sourceRoot":"","sources":["../../src/lib/target-config-schema.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM;CAKlB;AAYD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAwBxC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;kBAUpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAqBzD;AAmGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAQD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBxE"}
@@ -25,6 +25,17 @@ export class ValidateError extends Error {
25
25
  this.name = "ValidateError";
26
26
  }
27
27
  }
28
+ // CURRENT_SCHEMA_VERSION — the schema major number the harness expects.
29
+ // Bumped when a breaking change is made to TargetConfigSchema. v1 was the
30
+ // first explicit version; configs with no `schema_version` field are
31
+ // treated as v1 (the implicit shape that shipped through 1.0.x).
32
+ //
33
+ // Migration story: when CURRENT bumps to N, configs declaring 1..N-1 will
34
+ // fail validate() with ValidateError(6). Operators bump the field after
35
+ // applying any field renames the new version requires. The wizard
36
+ // (issue #36) surfaces the mismatch up-front so the operator does not
37
+ // have to wait for the on-EC2 validator to fail.
38
+ export const CURRENT_SCHEMA_VERSION = 1;
28
39
  const NonEmptyString = z.string().min(1);
29
40
  const ReviewBotSchema = z
30
41
  .object({
@@ -42,6 +53,7 @@ const PromptExtensionsSchema = z
42
53
  const BranchPrefixSchema = NonEmptyString.refine((v) => !v.includes("/") && !/\s/.test(v), { message: "branch_prefix must not contain '/' or whitespace" });
43
54
  export const TargetConfigSchema = z
44
55
  .object({
56
+ schema_version: z.literal(CURRENT_SCHEMA_VERSION).optional(),
45
57
  build_cmd: NonEmptyString,
46
58
  test_cmd: NonEmptyString,
47
59
  branch_prefix: BranchPrefixSchema,
@@ -154,4 +166,27 @@ function formatReceived(received) {
154
166
  export function moduleErr(message) {
155
167
  return `${MODULE_PREFIX}: error: ${message}`;
156
168
  }
169
+ // readSchemaVersion — best-effort lookup of the `schema_version` top-
170
+ // level key. Returns undefined when the key is absent OR the document is
171
+ // malformed; callers (e.g. the wizard) treat those as "unspecified" and
172
+ // surface a separate diagnostic. We do not throw — the authoritative
173
+ // validator (`validate`) is the gate, and reading the version here is a
174
+ // pure inspection.
175
+ export function readSchemaVersion(yamlString) {
176
+ let parsed;
177
+ try {
178
+ parsed = parseYaml(yamlString, { prettyErrors: false });
179
+ }
180
+ catch {
181
+ return undefined;
182
+ }
183
+ if (parsed === null ||
184
+ parsed === undefined ||
185
+ typeof parsed !== "object" ||
186
+ Array.isArray(parsed)) {
187
+ return undefined;
188
+ }
189
+ const v = parsed.schema_version;
190
+ return typeof v === "number" ? v : undefined;
191
+ }
157
192
  //# sourceMappingURL=target-config-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"target-config-schema.js","sourceRoot":"","sources":["../../src/lib/target-config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target-config-schema.js","sourceRoot":"","sources":["../../src/lib/target-config-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-data-renderer.d.ts","sourceRoot":"","sources":["../../src/lib/user-data-renderer.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAIlD,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CAM1C;AAED,MAAM,WAAW,aAAa;IAE5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAG5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAqC3D"}
1
+ {"version":3,"file":"user-data-renderer.d.ts","sourceRoot":"","sources":["../../src/lib/user-data-renderer.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAIlD,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CAM1C;AAED,MAAM,WAAW,aAAa;IAE5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAG5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA+C3D"}
@@ -57,14 +57,24 @@ export function renderUserData(input) {
57
57
  // 15-line target — keep this tight. Anything heavyweight goes in
58
58
  // `lib/cloud-init/system-setup.sh` (shipped inside the npm package and
59
59
  // invoked by `ralph-orchestrate` as its first step).
60
+ //
61
+ // The `trap … EXIT` hook (issue #37) emits a sentinel line for the
62
+ // launcher's CloudWatch backstop and runs `shutdown -h now` on any
63
+ // exit so the EC2 instance terminates immediately on orchestrator
64
+ // failure instead of sitting idle until the wall-clock ceiling. The
65
+ // body uses double-quoted single quotes so $rc is expanded by the
66
+ // shell at trap-fire time, not at template render time. We do NOT
67
+ // `exec ralph-orchestrate` because exec replaces the shell and the
68
+ // trap would never fire.
60
69
  const stub = `#!/bin/bash
61
- set -euo pipefail
70
+ set -uo pipefail
62
71
  exec > >(tee -a /var/log/ralph.log) 2>&1
72
+ trap 'rc=$?; printf "ORCHESTRATOR_EXITED rc=%s\\n" "$rc"; shutdown -h now' EXIT
63
73
  ${exports}
64
74
  curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
65
75
  dnf install -y nodejs git jq awscli
66
76
  npm install -g ${pkg}@${input.harnessVersion}
67
- exec ralph-orchestrate
77
+ ralph-orchestrate
68
78
  `;
69
79
  const bytes = Buffer.byteLength(stub, "utf8");
70
80
  if (bytes > USER_DATA_CAP_BYTES) {
@@ -1 +1 @@
1
- {"version":3,"file":"user-data-renderer.js","sourceRoot":"","sources":["../../src/lib/user-data-renderer.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,sEAAsE;AACtE,+DAA+D;AAC/D,EAAE;AACF,kBAAkB;AAClB,oEAAoE;AACpE,kEAAkE;AAClE,mFAAmF;AAEnF,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAElD,sDAAsD;AACtD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACjB;IAA5B,YAA4B,KAAa;QACvC,KAAK,CACH,GAAG,aAAa,2BAA2B,KAAK,kCAAkC,mBAAmB,YAAY,CAClH,CAAC;QAHwB,UAAK,GAAL,KAAK,CAAQ;QAIvC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAmBD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAE1D,uEAAuE;AACvE,uEAAuE;AACvE,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACtD,kEAAkE;IAClE,uDAAuD;IACvD,MAAM,OAAO,GAA2B;QACtC,iBAAiB,EAAE,KAAK,CAAC,UAAU;QACnC,gBAAgB,EAAE,KAAK,CAAC,SAAS;QACjC,eAAe,EAAE,KAAK,CAAC,QAAQ;QAC/B,0BAA0B,EAAE,KAAK,CAAC,iBAAiB;QACnD,0BAA0B,EAAE,KAAK,CAAC,iBAAiB;QACnD,uBAAuB,EAAE,KAAK,CAAC,eAAe;QAC9C,qBAAqB,EAAE,KAAK,CAAC,cAAc;KAC5C,CAAC;IACF,MAAM,MAAM,GAA2B,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;IACjF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,UAAU;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;SACzD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,iEAAiE;IACjE,uEAAuE;IACvE,qDAAqD;IACrD,MAAM,IAAI,GAAG;;;EAGb,OAAO;;;iBAGQ,GAAG,IAAI,KAAK,CAAC,cAAc;;CAE3C,CAAC;IAEA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAChC,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"user-data-renderer.js","sourceRoot":"","sources":["../../src/lib/user-data-renderer.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,sEAAsE;AACtE,+DAA+D;AAC/D,EAAE;AACF,kBAAkB;AAClB,oEAAoE;AACpE,kEAAkE;AAClE,mFAAmF;AAEnF,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAElD,sDAAsD;AACtD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACjB;IAA5B,YAA4B,KAAa;QACvC,KAAK,CACH,GAAG,aAAa,2BAA2B,KAAK,kCAAkC,mBAAmB,YAAY,CAClH,CAAC;QAHwB,UAAK,GAAL,KAAK,CAAQ;QAIvC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAmBD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAE1D,uEAAuE;AACvE,uEAAuE;AACvE,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACtD,kEAAkE;IAClE,uDAAuD;IACvD,MAAM,OAAO,GAA2B;QACtC,iBAAiB,EAAE,KAAK,CAAC,UAAU;QACnC,gBAAgB,EAAE,KAAK,CAAC,SAAS;QACjC,eAAe,EAAE,KAAK,CAAC,QAAQ;QAC/B,0BAA0B,EAAE,KAAK,CAAC,iBAAiB;QACnD,0BAA0B,EAAE,KAAK,CAAC,iBAAiB;QACnD,uBAAuB,EAAE,KAAK,CAAC,eAAe;QAC9C,qBAAqB,EAAE,KAAK,CAAC,cAAc;KAC5C,CAAC;IACF,MAAM,MAAM,GAA2B,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;IACjF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,UAAU;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;SACzD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,iEAAiE;IACjE,uEAAuE;IACvE,qDAAqD;IACrD,EAAE;IACF,mEAAmE;IACnE,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,kEAAkE;IAClE,mEAAmE;IACnE,yBAAyB;IACzB,MAAM,IAAI,GAAG;;;;EAIb,OAAO;;;iBAGQ,GAAG,IAAI,KAAK,CAAC,cAAc;;CAE3C,CAAC;IAEA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAChC,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -182,10 +182,30 @@ setup__fetch_secrets() {
182
182
  setup__err "gh auth login failed"
183
183
  return 1
184
184
  fi
185
- if ! gh auth setup-git >/dev/null 2>&1; then
186
- setup__err "gh auth setup-git failed"
187
- return 1
188
- fi
185
+ # Install a global git credential helper that reads the PAT file
186
+ # directly. We do NOT use `gh auth setup-git` because its helper
187
+ # (`gh auth git-credential`) failed to satisfy `git push` from
188
+ # claude's `general-purpose` subagent shells (the subagent runs
189
+ # with `GIT_TERMINAL_PROMPT=0` and the helper indirection through
190
+ # gh did not produce credentials in time). A direct helper in
191
+ # ~/.gitconfig is read by every git invocation regardless of env
192
+ # or subshell, eliminating the propagation gap.
193
+ local helper=/usr/local/bin/ralph-git-credential
194
+ cat > "$helper" <<HELPER
195
+ #!/bin/sh
196
+ [ "\$1" = "get" ] || exit 0
197
+ host=""
198
+ while IFS='=' read -r k v; do
199
+ [ -z "\$k" ] && break
200
+ [ "\$k" = "host" ] && host="\$v"
201
+ done
202
+ [ "\$host" = "github.com" ] || exit 0
203
+ printf 'username=x-access-token\npassword=%s\n' "\$(cat "${pat_file}")"
204
+ HELPER
205
+ chmod 755 "$helper"
206
+ git config --global --replace-all credential.helper "$helper"
207
+ git config --global credential.useHttpPath false
208
+
189
209
  GH_TOKEN="$(<"$pat_file")"
190
210
  GITHUB_PERSONAL_ACCESS_TOKEN="$GH_TOKEN"
191
211
  export GH_TOKEN GITHUB_PERSONAL_ACCESS_TOKEN
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unimatrix27/ralph-harness",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "Throwaway-EC2 loop that picks one ready-for-agent GitHub issue, implements it, opens a PR, runs one auto-review pass, then terminates.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -18,12 +18,35 @@ about the target.
18
18
  - Build command (informational): `{{RALPH_BUILD_CMD}}`
19
19
  - Test command (informational): `{{RALPH_TEST_CMD}}`
20
20
  - Branch prefix (informational): `{{RALPH_BRANCH_PREFIX}}`
21
+ - Operator-targeted issue (optional): `{{RALPH_TARGET_ISSUE}}`
21
22
 
22
23
  You have `gh` authenticated against the target repo. You have `jq`. You may
23
24
  use the `serena`, `morph-mcp`, `context7`, `github`, and
24
25
  `sequential-thinking` MCPs. You do NOT have a memory MCP — every iteration
25
26
  starts with fresh context, and that is intentional.
26
27
 
28
+ ## Targeted-issue mode
29
+
30
+ If `{{RALPH_TARGET_ISSUE}}` is **non-empty**, the operator has pre-selected
31
+ an issue and you MUST skip the backlog scan in step 1. Instead, treat the
32
+ named issue as the sole candidate and run the rest of the procedure on it:
33
+
34
+ - Fetch it via `gh issue view {{RALPH_TARGET_ISSUE}} --repo {{RALPH_TARGET_REPO}}`.
35
+ - Apply the same eligibility filters as step 1 + 2 below:
36
+ - If the issue is not `state == OPEN`, or its title starts with the
37
+ `[log] ` prefix, or it does not carry the `ready-for-agent` label,
38
+ write `decision.json` with `status=NONE` (reasoning: which check
39
+ failed) and stop.
40
+ - If it has unsatisfied blockers per step 2, write `decision.json`
41
+ with `status=ALL_BLOCKED` and stop.
42
+ - Otherwise, `status=PICKED` with `issue={{RALPH_TARGET_ISSUE}}`. Skip
43
+ step 3 (priority judging) entirely — the operator has made the call.
44
+ - Still execute steps 4 (target conventions), 5 (milestone log), and 6
45
+ (craft impl prompt) exactly as in normal mode.
46
+
47
+ If `{{RALPH_TARGET_ISSUE}}` is empty, proceed with the normal procedure
48
+ below (scan the backlog and pick one).
49
+
27
50
  ## Output contract — you MUST write all four files
28
51
 
29
52
  Write every file under `/tmp/ralph/`. Create the directory if missing