@openrig/cli 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/daemon/dist/adapters/claude-code-adapter.d.ts +1 -0
  2. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  3. package/daemon/dist/adapters/claude-code-adapter.js +10 -0
  4. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  5. package/daemon/dist/adapters/cmux.d.ts.map +1 -1
  6. package/daemon/dist/adapters/cmux.js +1 -0
  7. package/daemon/dist/adapters/cmux.js.map +1 -1
  8. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  9. package/daemon/dist/domain/native-resume-probe.js +11 -0
  10. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  11. package/daemon/dist/startup.d.ts.map +1 -1
  12. package/daemon/dist/startup.js +14 -0
  13. package/daemon/dist/startup.js.map +1 -1
  14. package/daemon/docs/reference/agent-spec.md +411 -0
  15. package/daemon/docs/reference/agent-startup-guide.md +339 -0
  16. package/daemon/docs/reference/edge-types.md +126 -0
  17. package/daemon/docs/reference/rig-spec.md +474 -0
  18. package/daemon/specs/agents/shared/agent.yaml +2 -0
  19. package/daemon/specs/agents/shared/skills/rig-architect/SKILL.md +332 -0
  20. package/dist/bin-wrapper.d.ts +1 -0
  21. package/dist/bin-wrapper.d.ts.map +1 -1
  22. package/dist/bin-wrapper.js +41 -1
  23. package/dist/bin-wrapper.js.map +1 -1
  24. package/dist/commands/bootstrap.js +1 -1
  25. package/dist/commands/bootstrap.js.map +1 -1
  26. package/dist/commands/docs.d.ts +3 -0
  27. package/dist/commands/docs.d.ts.map +1 -0
  28. package/dist/commands/docs.js +55 -0
  29. package/dist/commands/docs.js.map +1 -0
  30. package/dist/commands/doctor.d.ts +6 -1
  31. package/dist/commands/doctor.d.ts.map +1 -1
  32. package/dist/commands/doctor.js +53 -10
  33. package/dist/commands/doctor.js.map +1 -1
  34. package/dist/commands/setup.d.ts +39 -0
  35. package/dist/commands/setup.d.ts.map +1 -0
  36. package/dist/commands/setup.js +345 -0
  37. package/dist/commands/setup.js.map +1 -0
  38. package/dist/commands/up.d.ts.map +1 -1
  39. package/dist/commands/up.js +6 -2
  40. package/dist/commands/up.js.map +1 -1
  41. package/dist/daemon-lifecycle.d.ts +7 -0
  42. package/dist/daemon-lifecycle.d.ts.map +1 -1
  43. package/dist/daemon-lifecycle.js +45 -8
  44. package/dist/daemon-lifecycle.js.map +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/mcp-server.js +1 -1
  49. package/dist/mcp-server.js.map +1 -1
  50. package/package.json +1 -1
@@ -97,13 +97,15 @@ export function runDoctorChecks(deps) {
97
97
  fix: "Install tmux: brew install tmux (macOS), apt install tmux (Linux).",
98
98
  });
99
99
  }
100
- // 5. cmux (optional but recommended for Open CMUX workflows)
100
+ // 5. cmux shell check (optional but recommended for Open CMUX workflows)
101
+ let shellCmuxPassed = false;
101
102
  try {
102
103
  deps.exec("cmux capabilities --json");
104
+ shellCmuxPassed = true;
103
105
  checks.push({
104
- name: "cmux",
106
+ name: "cmux_shell",
105
107
  status: "pass",
106
- message: "cmux control available.",
108
+ message: "cmux shell control available.",
107
109
  });
108
110
  }
109
111
  catch (err) {
@@ -114,7 +116,7 @@ export function runDoctorChecks(deps) {
114
116
  ? ` Likely cause on macOS: cmux socketControlMode is '${socketMode}'. Tell the user to allow OpenRig/cmux socket control, then rerun 'rig doctor'.`
115
117
  : "";
116
118
  checks.push({
117
- name: "cmux",
119
+ name: "cmux_shell",
118
120
  status: "warn",
119
121
  message: "cmux installed, but control unavailable right now.",
120
122
  reason: "OpenRig can run without cmux, but Open CMUX actions and cmux-aware node control will be unavailable until cmux control works.",
@@ -123,7 +125,7 @@ export function runDoctorChecks(deps) {
123
125
  }
124
126
  catch {
125
127
  checks.push({
126
- name: "cmux",
128
+ name: "cmux_shell",
127
129
  status: "warn",
128
130
  message: "cmux not found.",
129
131
  reason: "OpenRig can run without cmux, but Open CMUX actions and surface control will be unavailable.",
@@ -166,7 +168,48 @@ export function runDoctorChecks(deps) {
166
168
  fix: `Stop the process using port ${DEFAULT_PORT}, or start the daemon on a different port with: rig daemon start --port <port>`,
167
169
  };
168
170
  });
169
- return { checks, portCheck };
171
+ // 8. Daemon cmux control (async, only when shell cmux passed)
172
+ const asyncChecks = [portCheck];
173
+ if (shellCmuxPassed) {
174
+ const fetchFn = deps.fetch ?? globalThis.fetch;
175
+ const daemonCmuxCheck = (async () => {
176
+ try {
177
+ const healthRes = await fetchFn(`http://127.0.0.1:${DEFAULT_PORT}/healthz`);
178
+ if (!healthRes.ok) {
179
+ return { name: "cmux_daemon", status: "skipped", message: "Daemon not running. Skipping daemon cmux check." };
180
+ }
181
+ }
182
+ catch {
183
+ return { name: "cmux_daemon", status: "skipped", message: "Daemon not reachable. Skipping daemon cmux check." };
184
+ }
185
+ try {
186
+ const cmuxRes = await fetchFn(`http://127.0.0.1:${DEFAULT_PORT}/api/adapters/cmux/status`);
187
+ if (cmuxRes.ok && cmuxRes.json) {
188
+ const data = (await cmuxRes.json());
189
+ if (data.available) {
190
+ return { name: "cmux_daemon", status: "pass", message: "Daemon cmux control available." };
191
+ }
192
+ return {
193
+ name: "cmux_daemon",
194
+ status: "warn",
195
+ message: "Shell cmux works, but the daemon cannot control cmux.",
196
+ reason: "The daemon inherited a terminal/session environment that broke cmux adapter initialization.",
197
+ fix: "Restart the daemon with `rig daemon start` after setup. If it still fails, inspect the daemon log with `rig daemon logs`.",
198
+ };
199
+ }
200
+ }
201
+ catch { /* fetch failed */ }
202
+ return {
203
+ name: "cmux_daemon",
204
+ status: "warn",
205
+ message: "Shell cmux works, but the daemon cannot control cmux.",
206
+ reason: "The daemon inherited a terminal/session environment that broke cmux adapter initialization.",
207
+ fix: "Restart the daemon with `rig daemon start` after setup. If it still fails, inspect the daemon log with `rig daemon logs`.",
208
+ };
209
+ })();
210
+ asyncChecks.push(daemonCmuxCheck);
211
+ }
212
+ return { checks, portCheck, asyncChecks };
170
213
  }
171
214
  function readCmuxSocketControlMode(deps) {
172
215
  try {
@@ -202,9 +245,9 @@ export function doctorCommand(depsOverride) {
202
245
  mkdirp: (dirPath) => mkdirSync(dirPath, { recursive: true }),
203
246
  checkWritable: (dirPath) => accessSync(dirPath, constants.W_OK),
204
247
  };
205
- const { checks, portCheck } = runDoctorChecks(deps);
206
- const portResult = await portCheck;
207
- const allChecks = [...checks, portResult];
248
+ const { checks, asyncChecks } = runDoctorChecks(deps);
249
+ const resolvedAsync = await Promise.all(asyncChecks);
250
+ const allChecks = [...checks, ...resolvedAsync];
208
251
  const healthy = allChecks.every((c) => c.status !== "fail");
209
252
  if (opts.json) {
210
253
  console.log(JSON.stringify({ healthy, checks: allChecks }, null, 2));
@@ -213,7 +256,7 @@ export function doctorCommand(depsOverride) {
213
256
  return;
214
257
  }
215
258
  for (const check of allChecks) {
216
- const icon = check.status === "pass" ? "OK" : check.status === "warn" ? "WARN" : "FAIL";
259
+ const icon = check.status === "pass" ? "OK" : check.status === "warn" ? "WARN" : check.status === "skipped" ? "SKIP" : "FAIL";
217
260
  console.log(` [${icon}] ${check.name}: ${check.message}`);
218
261
  if (check.reason)
219
262
  console.log(` Why: ${check.reason}`);
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Command } from "commander";
2
+ import { type DoctorDeps } from "./doctor.js";
3
+ export interface SetupStep {
4
+ id: string;
5
+ status: "pass" | "applied" | "warn" | "fail" | "skipped";
6
+ message: string;
7
+ reason?: string;
8
+ fixHint?: string;
9
+ }
10
+ export interface VerificationCheck {
11
+ name: string;
12
+ status: "pass" | "warn" | "fail" | "skipped";
13
+ message: string;
14
+ reason?: string;
15
+ fix?: string;
16
+ }
17
+ export interface SetupResult {
18
+ profile: "core" | "full";
19
+ platform: string;
20
+ ready: boolean;
21
+ steps: SetupStep[];
22
+ verification?: {
23
+ checks: VerificationCheck[];
24
+ };
25
+ }
26
+ export interface SetupDeps {
27
+ exec: (cmd: string) => string;
28
+ readFile: (path: string) => string | null;
29
+ writeFile: (path: string, content: string) => void;
30
+ exists: (path: string) => boolean;
31
+ platform?: NodeJS.Platform;
32
+ }
33
+ export declare function runSetup(deps: SetupDeps, opts: {
34
+ dryRun?: boolean;
35
+ full?: boolean;
36
+ doctorDeps?: DoctorDeps;
37
+ }): Promise<SetupResult>;
38
+ export declare function setupCommand(depsOverride?: SetupDeps): Command;
39
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAI/D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,iBAAiB,EAAE,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAwBD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA4PzI;AAyBD,wBAAgB,YAAY,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAiC9D"}
@@ -0,0 +1,345 @@
1
+ import { Command } from "commander";
2
+ import { execSync } from "node:child_process";
3
+ import { readFileSync, writeFileSync, existsSync, accessSync, constants, mkdirSync } from "node:fs";
4
+ import path from "node:path";
5
+ import { runDoctorChecks } from "./doctor.js";
6
+ import { ConfigStore } from "../config-store.js";
7
+ const CORE_STEP_IDS = [
8
+ "brew",
9
+ "tmux_install",
10
+ "cmux_install",
11
+ "claude_install",
12
+ "claude_auth",
13
+ "codex_install",
14
+ "codex_auth",
15
+ "tmux_config",
16
+ "verify",
17
+ ];
18
+ const FULL_EXTRA_STEP_IDS = ["jq_install", "gh_install"];
19
+ function defaultDeps() {
20
+ return {
21
+ exec: (cmd) => execSync(cmd, { encoding: "utf-8", timeout: 30_000 }),
22
+ readFile: (p) => { try {
23
+ return readFileSync(p, "utf-8");
24
+ }
25
+ catch {
26
+ return null;
27
+ } },
28
+ writeFile: (p, c) => writeFileSync(p, c, "utf-8"),
29
+ exists: (p) => existsSync(p),
30
+ };
31
+ }
32
+ export async function runSetup(deps, opts) {
33
+ const profile = opts.full ? "full" : "core";
34
+ const platform = deps.platform ?? process.platform;
35
+ const stepIds = opts.full ? [...CORE_STEP_IDS, ...FULL_EXTRA_STEP_IDS] : [...CORE_STEP_IDS];
36
+ const steps = [];
37
+ if (opts.dryRun) {
38
+ for (const id of stepIds) {
39
+ steps.push({ id, status: "skipped", message: `Dry run: ${id} would be attempted.` });
40
+ }
41
+ return { profile, platform, ready: false, steps };
42
+ }
43
+ // Core steps
44
+ // 1. Homebrew (macOS-first setup path)
45
+ let brewOk = false;
46
+ if (platform !== "darwin") {
47
+ steps.push({
48
+ id: "brew",
49
+ status: "skipped",
50
+ message: "Skipped: Homebrew setup path is only used on macOS.",
51
+ });
52
+ }
53
+ else {
54
+ try {
55
+ deps.exec("brew --version");
56
+ brewOk = true;
57
+ steps.push({ id: "brew", status: "pass", message: "Homebrew available." });
58
+ }
59
+ catch {
60
+ steps.push({
61
+ id: "brew",
62
+ status: "fail",
63
+ message: "Homebrew not found.",
64
+ reason: "Homebrew is required to install tmux and cmux on macOS.",
65
+ fixHint: "Install Homebrew: https://brew.sh",
66
+ });
67
+ }
68
+ }
69
+ // 2. tmux
70
+ try {
71
+ deps.exec("tmux -V");
72
+ steps.push({ id: "tmux_install", status: "pass", message: "tmux available." });
73
+ }
74
+ catch {
75
+ if (!brewOk) {
76
+ steps.push({ id: "tmux_install", status: "skipped", message: "Skipped: Homebrew not available.", reason: "tmux install requires Homebrew." });
77
+ }
78
+ else {
79
+ try {
80
+ deps.exec("brew install tmux");
81
+ steps.push({ id: "tmux_install", status: "applied", message: "Installed tmux with Homebrew." });
82
+ }
83
+ catch (err) {
84
+ steps.push({ id: "tmux_install", status: "fail", message: `Failed to install tmux: ${err.message}` });
85
+ }
86
+ }
87
+ }
88
+ // 3. cmux
89
+ try {
90
+ deps.exec("cmux capabilities --json");
91
+ steps.push({ id: "cmux_install", status: "pass", message: "cmux available." });
92
+ }
93
+ catch {
94
+ try {
95
+ deps.exec("cmux --help");
96
+ steps.push({ id: "cmux_install", status: "warn", message: "cmux installed but control unavailable.", fixHint: "Open cmux and enable socket control." });
97
+ }
98
+ catch {
99
+ if (!brewOk) {
100
+ steps.push({ id: "cmux_install", status: "skipped", message: "Skipped: Homebrew not available." });
101
+ }
102
+ else {
103
+ try {
104
+ deps.exec("brew install --cask cmux");
105
+ steps.push({ id: "cmux_install", status: "applied", message: "Installed cmux with Homebrew." });
106
+ }
107
+ catch {
108
+ steps.push({ id: "cmux_install", status: "warn", message: "cmux not installed. Open CMUX workflows will be unavailable.", fixHint: "Install cmux manually if needed." });
109
+ }
110
+ }
111
+ }
112
+ }
113
+ // 4. tmux config
114
+ // 4. Claude Code runtime
115
+ let claudeInstalled = false;
116
+ try {
117
+ deps.exec("claude --version");
118
+ claudeInstalled = true;
119
+ steps.push({ id: "claude_install", status: "pass", message: "Claude Code available." });
120
+ }
121
+ catch {
122
+ try {
123
+ deps.exec("npm install -g @anthropic-ai/claude-code");
124
+ deps.exec("claude --version");
125
+ claudeInstalled = true;
126
+ steps.push({ id: "claude_install", status: "applied", message: "Installed Claude Code with npm." });
127
+ }
128
+ catch (err) {
129
+ steps.push({
130
+ id: "claude_install",
131
+ status: "fail",
132
+ message: `Failed to install Claude Code: ${err.message}`,
133
+ reason: "The demo rig launches Claude Code nodes, so the Claude CLI must be installed on this machine.",
134
+ fixHint: "Install Claude Code with `npm install -g @anthropic-ai/claude-code`.",
135
+ });
136
+ }
137
+ }
138
+ if (claudeInstalled) {
139
+ try {
140
+ deps.exec("claude auth status");
141
+ steps.push({ id: "claude_auth", status: "pass", message: "Claude Code authentication available." });
142
+ }
143
+ catch (err) {
144
+ steps.push({
145
+ id: "claude_auth",
146
+ status: "fail",
147
+ message: `Claude Code is installed but not ready to launch: ${err.message}`,
148
+ reason: "The demo rig cannot launch Claude Code nodes until the Claude CLI is logged in and usable.",
149
+ fixHint: "Run `claude auth login` or open `claude` once to complete authentication, then rerun `rig setup` or `rig doctor`.",
150
+ });
151
+ }
152
+ }
153
+ else {
154
+ steps.push({
155
+ id: "claude_auth",
156
+ status: "skipped",
157
+ message: "Skipped: Claude Code is not installed.",
158
+ reason: "Authentication cannot be checked until the Claude Code CLI is installed.",
159
+ });
160
+ }
161
+ // 5. Codex runtime
162
+ let codexInstalled = false;
163
+ try {
164
+ deps.exec("codex --version");
165
+ codexInstalled = true;
166
+ steps.push({ id: "codex_install", status: "pass", message: "Codex available." });
167
+ }
168
+ catch {
169
+ try {
170
+ deps.exec("npm install -g @openai/codex");
171
+ deps.exec("codex --version");
172
+ codexInstalled = true;
173
+ steps.push({ id: "codex_install", status: "applied", message: "Installed Codex with npm." });
174
+ }
175
+ catch (err) {
176
+ steps.push({
177
+ id: "codex_install",
178
+ status: "fail",
179
+ message: `Failed to install Codex: ${err.message}`,
180
+ reason: "The demo rig launches Codex nodes, so the Codex CLI must be installed on this machine.",
181
+ fixHint: "Install Codex with `npm install -g @openai/codex`.",
182
+ });
183
+ }
184
+ }
185
+ if (codexInstalled) {
186
+ try {
187
+ deps.exec("codex login status");
188
+ steps.push({ id: "codex_auth", status: "pass", message: "Codex authentication available." });
189
+ }
190
+ catch (err) {
191
+ steps.push({
192
+ id: "codex_auth",
193
+ status: "fail",
194
+ message: `Codex is installed but not ready to launch: ${err.message}`,
195
+ reason: "The demo rig cannot launch Codex nodes until the Codex CLI is logged in and usable.",
196
+ fixHint: "Run `codex login` and complete authentication, then rerun `rig setup` or `rig doctor`.",
197
+ });
198
+ }
199
+ }
200
+ else {
201
+ steps.push({
202
+ id: "codex_auth",
203
+ status: "skipped",
204
+ message: "Skipped: Codex is not installed.",
205
+ reason: "Authentication cannot be checked until the Codex CLI is installed.",
206
+ });
207
+ }
208
+ // 6. tmux config
209
+ const TMUX_CONF = `${process.env["HOME"] ?? "~"}/.tmux.conf`;
210
+ const MANAGED_MARKER = "# OpenRig managed block";
211
+ const MANAGED_BLOCK = [
212
+ MANAGED_MARKER,
213
+ "set -g mouse on",
214
+ "set -g history-limit 50000",
215
+ `# End ${MANAGED_MARKER}`,
216
+ ].join("\n");
217
+ try {
218
+ const existing = deps.readFile(TMUX_CONF);
219
+ if (existing && existing.includes(MANAGED_MARKER)) {
220
+ // Replace existing managed block
221
+ const replaced = existing.replace(new RegExp(`${MANAGED_MARKER.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}[\\s\\S]*?# End ${MANAGED_MARKER.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`), MANAGED_BLOCK);
222
+ deps.writeFile(TMUX_CONF, replaced);
223
+ steps.push({ id: "tmux_config", status: "applied", message: "Updated OpenRig managed tmux config block." });
224
+ }
225
+ else if (existing) {
226
+ deps.writeFile(TMUX_CONF, existing.trimEnd() + "\n\n" + MANAGED_BLOCK + "\n");
227
+ steps.push({ id: "tmux_config", status: "applied", message: "Appended OpenRig managed tmux config block." });
228
+ }
229
+ else {
230
+ deps.writeFile(TMUX_CONF, MANAGED_BLOCK + "\n");
231
+ steps.push({ id: "tmux_config", status: "applied", message: "Created .tmux.conf with OpenRig managed block." });
232
+ }
233
+ }
234
+ catch (err) {
235
+ steps.push({ id: "tmux_config", status: "warn", message: `Could not update tmux config: ${err.message}` });
236
+ }
237
+ // 7. Verify
238
+ const tmuxOk = steps.some((s) => s.id === "tmux_install" && (s.status === "pass" || s.status === "applied"));
239
+ const anyFail = steps.some((s) => s.status === "fail");
240
+ steps.push({
241
+ id: "verify",
242
+ status: anyFail ? "warn" : "pass",
243
+ message: anyFail ? "Some setup steps failed. Run `rig doctor` for detailed diagnostics." : "Core setup verified.",
244
+ });
245
+ // Full profile extras
246
+ if (opts.full) {
247
+ for (const tool of [{ id: "jq_install", cmd: "jq", brew: "jq" }, { id: "gh_install", cmd: "gh", brew: "gh" }]) {
248
+ try {
249
+ deps.exec(`${tool.cmd} --version`);
250
+ steps.push({ id: tool.id, status: "pass", message: `${tool.cmd} available.` });
251
+ }
252
+ catch {
253
+ if (!brewOk) {
254
+ steps.push({ id: tool.id, status: "skipped", message: `Skipped: Homebrew not available.` });
255
+ }
256
+ else {
257
+ try {
258
+ deps.exec(`brew install ${tool.brew}`);
259
+ steps.push({ id: tool.id, status: "applied", message: `Installed ${tool.cmd} with Homebrew.` });
260
+ }
261
+ catch {
262
+ steps.push({ id: tool.id, status: "warn", message: `Failed to install ${tool.cmd}.`, fixHint: `Install ${tool.cmd} manually.` });
263
+ }
264
+ }
265
+ }
266
+ }
267
+ }
268
+ // Run doctor-backed verification if not dry-run and doctorDeps available
269
+ let verification;
270
+ if (!opts.dryRun && opts.doctorDeps) {
271
+ const doctorDeps = opts.doctorDeps;
272
+ const doctor = runDoctorChecks(doctorDeps);
273
+ const asyncResults = await Promise.all(doctor.asyncChecks);
274
+ const allDoctorChecks = [...doctor.checks, ...asyncResults];
275
+ verification = {
276
+ checks: allDoctorChecks.map((c) => ({
277
+ name: c.name,
278
+ status: c.status,
279
+ message: c.message,
280
+ ...(c.reason ? { reason: c.reason } : {}),
281
+ ...(c.fix ? { fix: c.fix } : {}),
282
+ })),
283
+ };
284
+ }
285
+ // ready = no fail statuses in steps or verification checks
286
+ const stepsFailed = steps.some((s) => s.status === "fail");
287
+ const verificationFailed = verification?.checks.some((c) => c.status === "fail") ?? false;
288
+ const ready = !stepsFailed && !verificationFailed;
289
+ return { profile, platform, ready, steps, ...(verification ? { verification } : {}) };
290
+ }
291
+ function buildDefaultDoctorDeps(setupDeps) {
292
+ const platform = setupDeps.platform ?? process.platform;
293
+ const baseDir = path.dirname(path.dirname(new URL(import.meta.url).pathname));
294
+ return {
295
+ exists: setupDeps.exists,
296
+ baseDir,
297
+ exec: setupDeps.exec,
298
+ checkPort: async (port) => {
299
+ const net = await import("node:net");
300
+ return new Promise((resolve) => {
301
+ const socket = new net.default.Socket();
302
+ socket.once("connect", () => { socket.destroy(); resolve(false); });
303
+ socket.once("error", () => resolve(true));
304
+ socket.connect(port, "127.0.0.1");
305
+ });
306
+ },
307
+ configStore: new ConfigStore(),
308
+ platform: platform,
309
+ mkdirp: (p) => mkdirSync(p, { recursive: true }),
310
+ checkWritable: (p) => accessSync(p, constants.W_OK),
311
+ };
312
+ }
313
+ export function setupCommand(depsOverride) {
314
+ const cmd = new Command("setup").description("Prepare the machine for OpenRig");
315
+ cmd
316
+ .option("--dry-run", "Show the plan without making changes")
317
+ .option("--json", "Machine-readable JSON output")
318
+ .option("--full", "Install broader operator workstation tools")
319
+ .action(async (opts) => {
320
+ const deps = depsOverride ?? defaultDeps();
321
+ const doctorDeps = opts.dryRun ? undefined : buildDefaultDoctorDeps(deps);
322
+ const result = await runSetup(deps, { dryRun: opts.dryRun, full: opts.full, doctorDeps });
323
+ if (opts.json) {
324
+ console.log(JSON.stringify(result, null, 2));
325
+ if (!opts.dryRun && !result.ready)
326
+ process.exitCode = 1;
327
+ return;
328
+ }
329
+ console.log(`\nProfile: ${result.profile}`);
330
+ console.log(`Platform: ${result.platform}\n`);
331
+ for (const step of result.steps) {
332
+ const icon = step.status === "pass" ? "OK" : step.status === "applied" ? "APPLIED" : step.status === "warn" ? "WARN" : step.status === "skipped" ? "SKIP" : "FAIL";
333
+ console.log(` [${icon}] ${step.id}: ${step.message}`);
334
+ if (step.reason)
335
+ console.log(` Why: ${step.reason}`);
336
+ if (step.fixHint)
337
+ console.log(` Fix: ${step.fixHint}`);
338
+ }
339
+ console.log(`\n${result.ready ? "Setup complete." : "Some steps need attention. Run `rig doctor` for detailed diagnostics."}`);
340
+ if (!opts.dryRun && !result.ready)
341
+ process.exitCode = 1;
342
+ });
343
+ return cmd;
344
+ }
345
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAExG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,wBAAgB,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAAG,OAAO,CAsNhG"}
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAExG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,wBAAgB,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAAG,OAAO,CA0NhG"}
@@ -3,7 +3,7 @@ import { Command } from "commander";
3
3
  import { DaemonClient } from "../client.js";
4
4
  import { getDaemonStatus, getDaemonUrl, startDaemon } from "../daemon-lifecycle.js";
5
5
  import { realDeps } from "./daemon.js";
6
- const LONG_RUNNING_UP_TIMEOUT_MS = 45_000;
6
+ const LONG_RUNNING_UP_TIMEOUT_MS = 120_000;
7
7
  export function upCommand(depsOverride) {
8
8
  const cmd = new Command("up")
9
9
  .description("Launch a rig or managed app from a spec, library entry, or bundle")
@@ -84,6 +84,7 @@ Examples:
84
84
  const isRigName = !source.includes("/") && !source.match(/\.(ya?ml|rigbundle)$/i);
85
85
  let sourceRef = isRigName ? source : nodePath.resolve(source);
86
86
  // If it looks like a name, check for library spec match
87
+ let defaultLibraryCwdOverride;
87
88
  if (isRigName) {
88
89
  try {
89
90
  const { resolveLibrarySpec } = await import("./specs.js");
@@ -101,6 +102,9 @@ Examples:
101
102
  return;
102
103
  }
103
104
  sourceRef = entry.sourcePath;
105
+ if (!opts.cwd && entry.kind === "rig" && entry.sourceType === "builtin") {
106
+ defaultLibraryCwdOverride = process.cwd();
107
+ }
104
108
  }
105
109
  catch (resolveErr) {
106
110
  // Ambiguity within library — surface it
@@ -118,7 +122,7 @@ Examples:
118
122
  sourceRef,
119
123
  plan: opts.plan ?? false,
120
124
  autoApprove: opts.yes ?? false,
121
- cwdOverride: opts.cwd ? nodePath.resolve(opts.cwd) : undefined,
125
+ cwdOverride: opts.cwd ? nodePath.resolve(opts.cwd) : defaultLibraryCwdOverride,
122
126
  targetRoot,
123
127
  }, opts.plan ? undefined : { timeoutMs: LONG_RUNNING_UP_TIMEOUT_MS });
124
128
  if (opts.json) {