@openrig/cli 0.1.9 → 0.1.11
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/daemon/dist/adapters/claude-code-adapter.d.ts +13 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +93 -8
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/cmux-transport.d.ts +7 -2
- package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux-transport.js +149 -24
- package/daemon/dist/adapters/cmux-transport.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +65 -7
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts +2 -2
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +10 -0
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +2 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +28 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +1 -1
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +21 -22
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +6 -2
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +19 -0
- package/daemon/docs/reference/rig-bundle.md +367 -0
- package/daemon/docs/reference/rig-spec.md +5 -0
- package/daemon/specs/agents/product-management/pm/agent.yaml +37 -0
- package/daemon/specs/agents/product-management/pm/guidance/role.md +43 -0
- package/daemon/specs/agents/shared/agent.yaml +15 -0
- package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +43 -0
- package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +87 -0
- package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +84 -0
- package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +129 -0
- package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +98 -0
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +113 -0
- package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +76 -0
- package/daemon/specs/agents/shared/skills/rig-architect/SKILL.md +11 -1
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +17 -0
- package/daemon/specs/rigs/focused/pm-team/rig.yaml +51 -0
- package/dist/cmux-config.d.ts +15 -0
- package/dist/cmux-config.d.ts.map +1 -0
- package/dist/cmux-config.js +67 -0
- package/dist/cmux-config.js.map +1 -0
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +3 -2
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +47 -23
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/setup.d.ts +11 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +256 -16
- package/dist/commands/setup.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +71 -11
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/index.js +0 -0
- package/package.json +2 -1
- package/ui/dist/assets/index-DlMH-REm.css +1 -0
- package/ui/dist/assets/{index-CXZYxZbF.js → index-lEO-zBxz.js} +26 -26
- package/ui/dist/index.html +2 -2
- package/dist/commands/claim.d.ts +0 -4
- package/dist/commands/claim.d.ts.map +0 -1
- package/dist/commands/claim.js +0 -40
- package/dist/commands/claim.js.map +0 -1
- package/dist/commands/docs.d.ts +0 -3
- package/dist/commands/docs.d.ts.map +0 -1
- package/dist/commands/docs.js +0 -55
- package/dist/commands/docs.js.map +0 -1
- package/ui/dist/assets/index-BsXbqPEl.css +0 -1
package/dist/commands/setup.js
CHANGED
|
@@ -4,6 +4,11 @@ import { readFileSync, writeFileSync, existsSync, accessSync, constants, mkdirSy
|
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { runDoctorChecks } from "./doctor.js";
|
|
6
6
|
import { ConfigStore } from "../config-store.js";
|
|
7
|
+
import { CMUX_SETTINGS_DISCLOSURE_PATH, isCmuxSocketControlCompatible, readCmuxSocketControlModeFromText, resolveCmuxSettingsPath, upsertCmuxSocketControlMode, } from "../cmux-config.js";
|
|
8
|
+
const DEFAULT_COMMAND_TIMEOUT_MS = 30_000;
|
|
9
|
+
const INSTALL_COMMAND_TIMEOUT_MS = 5 * 60_000;
|
|
10
|
+
const CMUX_READY_ATTEMPTS = 5;
|
|
11
|
+
const CMUX_READY_DELAY_MS = 1_000;
|
|
7
12
|
const CORE_STEP_IDS = [
|
|
8
13
|
"brew",
|
|
9
14
|
"tmux_install",
|
|
@@ -16,9 +21,50 @@ const CORE_STEP_IDS = [
|
|
|
16
21
|
"verify",
|
|
17
22
|
];
|
|
18
23
|
const FULL_EXTRA_STEP_IDS = ["jq_install", "gh_install"];
|
|
24
|
+
const BASE_RUNTIME_CONFIG_DISCLOSURE = [
|
|
25
|
+
{
|
|
26
|
+
scope: "global",
|
|
27
|
+
runtime: "claude-code",
|
|
28
|
+
path: "~/.claude/settings.json",
|
|
29
|
+
purpose: "Allow OpenRig commands without Claude permission prompts.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
scope: "global",
|
|
33
|
+
runtime: "claude-code",
|
|
34
|
+
path: "~/.claude.json",
|
|
35
|
+
purpose: "Pre-trust managed workspaces and mark Claude onboarding complete.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
scope: "project",
|
|
39
|
+
runtime: "claude-code",
|
|
40
|
+
path: ".claude/settings.local.json",
|
|
41
|
+
purpose: "Apply managed-session Claude permissions and context-collector statusLine config within the project.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
scope: "project",
|
|
45
|
+
runtime: "claude-code",
|
|
46
|
+
path: ".mcp.json",
|
|
47
|
+
purpose: "Configure project-local MCP servers for Claude-managed workspaces.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
scope: "global",
|
|
51
|
+
runtime: "codex",
|
|
52
|
+
path: "~/.codex/config.toml",
|
|
53
|
+
purpose: "Pre-trust managed workspaces and configure Codex MCP servers.",
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
const DARWIN_RUNTIME_CONFIG_DISCLOSURE = {
|
|
57
|
+
scope: "global",
|
|
58
|
+
runtime: "cmux",
|
|
59
|
+
path: CMUX_SETTINGS_DISCLOSURE_PATH,
|
|
60
|
+
purpose: "Set cmux socket control to an OpenRig-compatible automation mode.",
|
|
61
|
+
};
|
|
19
62
|
function defaultDeps() {
|
|
20
63
|
return {
|
|
21
|
-
exec: (cmd) => execSync(cmd, {
|
|
64
|
+
exec: (cmd, opts) => execSync(cmd, {
|
|
65
|
+
encoding: "utf-8",
|
|
66
|
+
timeout: opts?.timeoutMs ?? DEFAULT_COMMAND_TIMEOUT_MS,
|
|
67
|
+
}),
|
|
22
68
|
readFile: (p) => { try {
|
|
23
69
|
return readFileSync(p, "utf-8");
|
|
24
70
|
}
|
|
@@ -27,18 +73,108 @@ function defaultDeps() {
|
|
|
27
73
|
} },
|
|
28
74
|
writeFile: (p, c) => writeFileSync(p, c, "utf-8"),
|
|
29
75
|
exists: (p) => existsSync(p),
|
|
76
|
+
mkdirp: (p) => mkdirSync(p, { recursive: true }),
|
|
30
77
|
};
|
|
31
78
|
}
|
|
79
|
+
function installCommand(deps, cmd) {
|
|
80
|
+
return deps.exec(cmd, { timeoutMs: INSTALL_COMMAND_TIMEOUT_MS });
|
|
81
|
+
}
|
|
82
|
+
function sleep(ms) {
|
|
83
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
84
|
+
}
|
|
85
|
+
async function waitForCmuxCapabilities(deps, attempts = CMUX_READY_ATTEMPTS) {
|
|
86
|
+
for (let index = 0; index < attempts; index += 1) {
|
|
87
|
+
try {
|
|
88
|
+
deps.exec("cmux capabilities --json");
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
if (index < attempts - 1) {
|
|
93
|
+
await sleep(CMUX_READY_DELAY_MS);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
async function tryEnableCmuxControl(deps, platform) {
|
|
100
|
+
if (platform !== "darwin")
|
|
101
|
+
return false;
|
|
102
|
+
const settingsPath = resolveCmuxSettingsPath();
|
|
103
|
+
const settingsText = deps.readFile(settingsPath);
|
|
104
|
+
const currentMode = readCmuxSocketControlModeFromText(settingsText);
|
|
105
|
+
if (currentMode.error) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
deps.mkdirp?.(path.dirname(settingsPath));
|
|
110
|
+
const next = upsertCmuxSocketControlMode(settingsText, "automation");
|
|
111
|
+
if (next.changed) {
|
|
112
|
+
deps.writeFile(settingsPath, next.content);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
const shellReady = await waitForCmuxCapabilities(deps, 1);
|
|
119
|
+
if (shellReady) {
|
|
120
|
+
try {
|
|
121
|
+
deps.exec("cmux reload-config");
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// Best effort: if reload fails, the daemon-side verification will surface it honestly.
|
|
125
|
+
}
|
|
126
|
+
return waitForCmuxCapabilities(deps, 1);
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
deps.exec("open -a /Applications/cmux.app");
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Best effort: cmux may already be running or the app open may be blocked; capability probe decides readiness.
|
|
133
|
+
}
|
|
134
|
+
return waitForCmuxCapabilities(deps);
|
|
135
|
+
}
|
|
136
|
+
function buildRuntimeConfigDisclosure(platform) {
|
|
137
|
+
return platform === "darwin"
|
|
138
|
+
? [...BASE_RUNTIME_CONFIG_DISCLOSURE, DARWIN_RUNTIME_CONFIG_DISCLOSURE]
|
|
139
|
+
: [...BASE_RUNTIME_CONFIG_DISCLOSURE];
|
|
140
|
+
}
|
|
141
|
+
async function probeDaemonCmuxStatus(doctorDeps) {
|
|
142
|
+
const fetchFn = doctorDeps?.fetch;
|
|
143
|
+
if (!fetchFn)
|
|
144
|
+
return "skipped";
|
|
145
|
+
const config = doctorDeps.configStore.resolve();
|
|
146
|
+
const host = config.daemon.host;
|
|
147
|
+
const port = config.daemon.port;
|
|
148
|
+
try {
|
|
149
|
+
const healthRes = await fetchFn(`http://${host}:${port}/healthz`);
|
|
150
|
+
if (!healthRes.ok)
|
|
151
|
+
return "skipped";
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return "skipped";
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
const cmuxRes = await fetchFn(`http://${host}:${port}/api/adapters/cmux/status`);
|
|
158
|
+
if (!cmuxRes.ok || !cmuxRes.json)
|
|
159
|
+
return "unavailable";
|
|
160
|
+
const data = (await cmuxRes.json());
|
|
161
|
+
return data.available ? "available" : "unavailable";
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return "unavailable";
|
|
165
|
+
}
|
|
166
|
+
}
|
|
32
167
|
export async function runSetup(deps, opts) {
|
|
33
168
|
const profile = opts.full ? "full" : "core";
|
|
34
169
|
const platform = deps.platform ?? process.platform;
|
|
170
|
+
const runtimeConfig = buildRuntimeConfigDisclosure(platform);
|
|
35
171
|
const stepIds = opts.full ? [...CORE_STEP_IDS, ...FULL_EXTRA_STEP_IDS] : [...CORE_STEP_IDS];
|
|
36
172
|
const steps = [];
|
|
37
173
|
if (opts.dryRun) {
|
|
38
174
|
for (const id of stepIds) {
|
|
39
175
|
steps.push({ id, status: "skipped", message: `Dry run: ${id} would be attempted.` });
|
|
40
176
|
}
|
|
41
|
-
return { profile, platform, ready: false, steps };
|
|
177
|
+
return { profile, platform, ready: false, steps, runtimeConfig };
|
|
42
178
|
}
|
|
43
179
|
// Core steps
|
|
44
180
|
// 1. Homebrew (macOS-first setup path)
|
|
@@ -77,7 +213,7 @@ export async function runSetup(deps, opts) {
|
|
|
77
213
|
}
|
|
78
214
|
else {
|
|
79
215
|
try {
|
|
80
|
-
deps
|
|
216
|
+
installCommand(deps, "brew install tmux");
|
|
81
217
|
steps.push({ id: "tmux_install", status: "applied", message: "Installed tmux with Homebrew." });
|
|
82
218
|
}
|
|
83
219
|
catch (err) {
|
|
@@ -86,14 +222,94 @@ export async function runSetup(deps, opts) {
|
|
|
86
222
|
}
|
|
87
223
|
}
|
|
88
224
|
// 3. cmux
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
225
|
+
const daemonCmuxBefore = await probeDaemonCmuxStatus(opts.doctorDeps);
|
|
226
|
+
if (await waitForCmuxCapabilities(deps, 1)) {
|
|
227
|
+
const socketMode = readCmuxSocketControlModeFromText(deps.readFile(resolveCmuxSettingsPath()));
|
|
228
|
+
if (platform === "darwin" && socketMode.error) {
|
|
229
|
+
steps.push({
|
|
230
|
+
id: "cmux_install",
|
|
231
|
+
status: "fail",
|
|
232
|
+
message: "cmux settings file is unreadable.",
|
|
233
|
+
reason: `OpenRig could not parse ${CMUX_SETTINGS_DISCLOSURE_PATH}: ${socketMode.error}`,
|
|
234
|
+
fixHint: "Repair or remove the cmux settings file, then rerun `rig setup`.",
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else if (platform === "darwin" && !isCmuxSocketControlCompatible(socketMode.mode)) {
|
|
238
|
+
if (await tryEnableCmuxControl(deps, platform)) {
|
|
239
|
+
const daemonCmuxAfter = await probeDaemonCmuxStatus(opts.doctorDeps);
|
|
240
|
+
if (daemonCmuxAfter === "unavailable") {
|
|
241
|
+
steps.push({
|
|
242
|
+
id: "cmux_install",
|
|
243
|
+
status: "fail",
|
|
244
|
+
message: "OpenRig updated cmux settings, but the running daemon still cannot control cmux.",
|
|
245
|
+
reason: "The cmux settings file is now compatible, so the remaining blocker is in the live daemon/cmux session state.",
|
|
246
|
+
fixHint: "Restart the daemon with `rig daemon start`, then rerun `rig doctor` to confirm cmux daemon control.",
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
steps.push({
|
|
251
|
+
id: "cmux_install",
|
|
252
|
+
status: "applied",
|
|
253
|
+
message: "Normalized cmux socket control to automation mode in ~/.config/cmux/settings.json.",
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
steps.push({
|
|
259
|
+
id: "cmux_install",
|
|
260
|
+
status: "fail",
|
|
261
|
+
message: "cmux shell control works, but OpenRig could not normalize cmux socket control.",
|
|
262
|
+
reason: "OpenRig needs a compatible cmux socket control mode so the daemon can open CMUX surfaces reliably.",
|
|
263
|
+
fixHint: `Set automation.socketControlMode to "automation" in ${CMUX_SETTINGS_DISCLOSURE_PATH}, then rerun \`rig setup\` or \`rig doctor\`.`,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else if (daemonCmuxBefore === "unavailable") {
|
|
268
|
+
steps.push({
|
|
269
|
+
id: "cmux_install",
|
|
270
|
+
status: "fail",
|
|
271
|
+
message: "cmux shell control works, but the running daemon still cannot control cmux.",
|
|
272
|
+
reason: "Current cmux settings already look compatible, so the remaining blocker is outside the cmux settings file OpenRig can repair automatically.",
|
|
273
|
+
fixHint: "Run `rig doctor` for the exact daemon cmux diagnosis, then restart the daemon after clearing the underlying blocker.",
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
steps.push({ id: "cmux_install", status: "pass", message: "cmux available." });
|
|
278
|
+
}
|
|
92
279
|
}
|
|
93
|
-
|
|
280
|
+
else {
|
|
94
281
|
try {
|
|
95
282
|
deps.exec("cmux --help");
|
|
96
|
-
|
|
283
|
+
if (await tryEnableCmuxControl(deps, platform)) {
|
|
284
|
+
const daemonCmuxAfter = await probeDaemonCmuxStatus(opts.doctorDeps);
|
|
285
|
+
if (daemonCmuxAfter === "unavailable") {
|
|
286
|
+
steps.push({
|
|
287
|
+
id: "cmux_install",
|
|
288
|
+
status: "fail",
|
|
289
|
+
message: "OpenRig enabled cmux socket control, but the running daemon still cannot control cmux.",
|
|
290
|
+
reason: "The cmux app and settings are now in place, so the remaining blocker is in the live daemon/cmux session state.",
|
|
291
|
+
fixHint: "Restart the daemon with `rig daemon start`, then rerun `rig doctor` to confirm cmux daemon control.",
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
steps.push({
|
|
296
|
+
id: "cmux_install",
|
|
297
|
+
status: "applied",
|
|
298
|
+
message: "Enabled cmux socket control in ~/.config/cmux/settings.json.",
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
steps.push({
|
|
304
|
+
id: "cmux_install",
|
|
305
|
+
status: platform === "darwin" ? "fail" : "warn",
|
|
306
|
+
message: "cmux installed but control unavailable.",
|
|
307
|
+
reason: "Open CMUX workflows need cmux socket control to be enabled.",
|
|
308
|
+
fixHint: platform === "darwin"
|
|
309
|
+
? `Set automation.socketControlMode to "automation" in ${CMUX_SETTINGS_DISCLOSURE_PATH}, then rerun \`rig setup\` or \`rig doctor\`.`
|
|
310
|
+
: "Open cmux, approve any first-run prompts, and rerun `rig setup` or `rig doctor`.",
|
|
311
|
+
});
|
|
312
|
+
}
|
|
97
313
|
}
|
|
98
314
|
catch {
|
|
99
315
|
if (!brewOk) {
|
|
@@ -101,11 +317,28 @@ export async function runSetup(deps, opts) {
|
|
|
101
317
|
}
|
|
102
318
|
else {
|
|
103
319
|
try {
|
|
104
|
-
deps
|
|
105
|
-
|
|
320
|
+
installCommand(deps, "brew install --cask cmux");
|
|
321
|
+
if (await tryEnableCmuxControl(deps, platform) || await waitForCmuxCapabilities(deps, 1)) {
|
|
322
|
+
steps.push({ id: "cmux_install", status: "applied", message: "Installed cmux with Homebrew." });
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
steps.push({
|
|
326
|
+
id: "cmux_install",
|
|
327
|
+
status: platform === "darwin" ? "fail" : "warn",
|
|
328
|
+
message: "Installed cmux, but control is still unavailable.",
|
|
329
|
+
reason: "Open CMUX workflows need the cmux app to expose socket control after installation.",
|
|
330
|
+
fixHint: "Open cmux, approve any first-run prompts, and rerun `rig setup` or `rig doctor`.",
|
|
331
|
+
});
|
|
332
|
+
}
|
|
106
333
|
}
|
|
107
|
-
catch {
|
|
108
|
-
steps.push({
|
|
334
|
+
catch (err) {
|
|
335
|
+
steps.push({
|
|
336
|
+
id: "cmux_install",
|
|
337
|
+
status: "fail",
|
|
338
|
+
message: `Failed to install cmux: ${err.message}`,
|
|
339
|
+
reason: "Open CMUX workflows stay unavailable until the cmux app and CLI are installed.",
|
|
340
|
+
fixHint: "Retry `brew install --cask cmux` after connectivity stabilizes, or install cmux manually.",
|
|
341
|
+
});
|
|
109
342
|
}
|
|
110
343
|
}
|
|
111
344
|
}
|
|
@@ -120,7 +353,7 @@ export async function runSetup(deps, opts) {
|
|
|
120
353
|
}
|
|
121
354
|
catch {
|
|
122
355
|
try {
|
|
123
|
-
deps
|
|
356
|
+
installCommand(deps, "npm install -g @anthropic-ai/claude-code");
|
|
124
357
|
deps.exec("claude --version");
|
|
125
358
|
claudeInstalled = true;
|
|
126
359
|
steps.push({ id: "claude_install", status: "applied", message: "Installed Claude Code with npm." });
|
|
@@ -167,7 +400,7 @@ export async function runSetup(deps, opts) {
|
|
|
167
400
|
}
|
|
168
401
|
catch {
|
|
169
402
|
try {
|
|
170
|
-
deps
|
|
403
|
+
installCommand(deps, "npm install -g @openai/codex");
|
|
171
404
|
deps.exec("codex --version");
|
|
172
405
|
codexInstalled = true;
|
|
173
406
|
steps.push({ id: "codex_install", status: "applied", message: "Installed Codex with npm." });
|
|
@@ -255,7 +488,7 @@ export async function runSetup(deps, opts) {
|
|
|
255
488
|
}
|
|
256
489
|
else {
|
|
257
490
|
try {
|
|
258
|
-
deps
|
|
491
|
+
installCommand(deps, `brew install ${tool.brew}`);
|
|
259
492
|
steps.push({ id: tool.id, status: "applied", message: `Installed ${tool.cmd} with Homebrew.` });
|
|
260
493
|
}
|
|
261
494
|
catch {
|
|
@@ -286,7 +519,7 @@ export async function runSetup(deps, opts) {
|
|
|
286
519
|
const stepsFailed = steps.some((s) => s.status === "fail");
|
|
287
520
|
const verificationFailed = verification?.checks.some((c) => c.status === "fail") ?? false;
|
|
288
521
|
const ready = !stepsFailed && !verificationFailed;
|
|
289
|
-
return { profile, platform, ready, steps, ...(verification ? { verification } : {}) };
|
|
522
|
+
return { profile, platform, ready, steps, runtimeConfig, ...(verification ? { verification } : {}) };
|
|
290
523
|
}
|
|
291
524
|
function buildDefaultDoctorDeps(setupDeps) {
|
|
292
525
|
const platform = setupDeps.platform ?? process.platform;
|
|
@@ -294,6 +527,7 @@ function buildDefaultDoctorDeps(setupDeps) {
|
|
|
294
527
|
return {
|
|
295
528
|
exists: setupDeps.exists,
|
|
296
529
|
baseDir,
|
|
530
|
+
readFile: setupDeps.readFile,
|
|
297
531
|
exec: setupDeps.exec,
|
|
298
532
|
checkPort: async (port) => {
|
|
299
533
|
const net = await import("node:net");
|
|
@@ -308,6 +542,7 @@ function buildDefaultDoctorDeps(setupDeps) {
|
|
|
308
542
|
platform: platform,
|
|
309
543
|
mkdirp: (p) => mkdirSync(p, { recursive: true }),
|
|
310
544
|
checkWritable: (p) => accessSync(p, constants.W_OK),
|
|
545
|
+
fetch: globalThis.fetch,
|
|
311
546
|
};
|
|
312
547
|
}
|
|
313
548
|
export function setupCommand(depsOverride) {
|
|
@@ -328,6 +563,11 @@ export function setupCommand(depsOverride) {
|
|
|
328
563
|
}
|
|
329
564
|
console.log(`\nProfile: ${result.profile}`);
|
|
330
565
|
console.log(`Platform: ${result.platform}\n`);
|
|
566
|
+
console.log("OpenRig may modify runtime config in these locations:");
|
|
567
|
+
for (const item of result.runtimeConfig) {
|
|
568
|
+
console.log(` - [${item.scope}] ${item.runtime} ${item.path} — ${item.purpose}`);
|
|
569
|
+
}
|
|
570
|
+
console.log(" - Note: already-running adopted sessions may need restart to pick up runtime config changes.\n");
|
|
331
571
|
for (const step of result.steps) {
|
|
332
572
|
const icon = step.status === "pass" ? "OK" : step.status === "applied" ? "APPLIED" : step.status === "warn" ? "WARN" : step.status === "skipped" ? "SKIP" : "FAIL";
|
|
333
573
|
console.log(` [${icon}] ${step.id}: ${step.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-lifecycle.d.ts","sourceRoot":"","sources":["../src/daemon-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon-lifecycle.d.ts","sourceRoot":"","sources":["../src/daemon-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;QACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,YAAY,CAAC;IACnB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,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,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AAED,eAAO,MAAM,WAAW,QAAe,CAAC;AACxC,eAAO,MAAM,UAAU,QAAc,CAAC;AACtC,eAAO,MAAM,UAAU,QAAwC,CAAC;AAChE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,iBAAiB,QAA+C,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA8C,CAAC;AA4C3E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAKzF;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AA8ED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACvG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAqF/F;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDnE;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA+ChF;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAI3D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAW7E"}
|
package/dist/daemon-lifecycle.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
|
+
import { ConfigStore } from "./config-store.js";
|
|
3
4
|
import { OPENRIG_HOME, LEGACY_RIGGED_HOME, readOpenRigEnv } from "./openrig-compat.js";
|
|
4
5
|
/** Build the daemon HTTP URL from status. Uses persisted host or defaults to 127.0.0.1. */
|
|
5
6
|
export function getDaemonUrl(status) {
|
|
6
|
-
return `http://${status.host ??
|
|
7
|
+
return `http://${status.host ?? DEFAULT_HOST}:${status.port}`;
|
|
7
8
|
}
|
|
8
9
|
export const OPENRIG_DIR = OPENRIG_HOME;
|
|
9
10
|
export const RIGGED_DIR = OPENRIG_DIR;
|
|
@@ -11,6 +12,7 @@ export const STATE_FILE = path.join(OPENRIG_DIR, "daemon.json");
|
|
|
11
12
|
export const LOG_FILE = path.join(OPENRIG_DIR, "daemon.log");
|
|
12
13
|
export const LEGACY_STATE_FILE = path.join(LEGACY_RIGGED_HOME, "daemon.json");
|
|
13
14
|
export const LEGACY_LOG_FILE = path.join(LEGACY_RIGGED_HOME, "daemon.log");
|
|
15
|
+
const DEFAULT_HOST = "127.0.0.1";
|
|
14
16
|
const DEFAULT_PORT = 7433;
|
|
15
17
|
const DEFAULT_DB = "openrig.sqlite";
|
|
16
18
|
const HEALTHZ_RETRIES = 20;
|
|
@@ -94,7 +96,7 @@ function resolveLifecycleFile(deps, filename) {
|
|
|
94
96
|
async function checkPid(state, deps) {
|
|
95
97
|
if (!deps.isProcessAlive(state.pid))
|
|
96
98
|
return "dead";
|
|
97
|
-
const host = state.host ??
|
|
99
|
+
const host = state.host ?? DEFAULT_HOST;
|
|
98
100
|
try {
|
|
99
101
|
await fetchDaemonProbe(deps, `http://${host}:${state.port}/healthz`);
|
|
100
102
|
// Any response (ok or not) means something is listening on our port → OpenRig
|
|
@@ -107,6 +109,21 @@ async function checkPid(state, deps) {
|
|
|
107
109
|
return "not_openrig";
|
|
108
110
|
}
|
|
109
111
|
}
|
|
112
|
+
function resolveConfiguredDaemonTarget() {
|
|
113
|
+
try {
|
|
114
|
+
const config = new ConfigStore().resolve();
|
|
115
|
+
return {
|
|
116
|
+
host: config.daemon.host,
|
|
117
|
+
port: config.daemon.port,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return {
|
|
122
|
+
host: DEFAULT_HOST,
|
|
123
|
+
port: DEFAULT_PORT,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
110
127
|
/**
|
|
111
128
|
* Scrub list: environment variable prefixes and exact names that should NOT
|
|
112
129
|
* be forwarded from the operator shell into the daemon process. These are
|
|
@@ -146,6 +163,9 @@ export function buildDaemonEnv(baseEnv, opts) {
|
|
|
146
163
|
return env;
|
|
147
164
|
}
|
|
148
165
|
export async function startDaemon(opts, deps) {
|
|
166
|
+
const port = opts.port ?? DEFAULT_PORT;
|
|
167
|
+
const host = opts.host ?? DEFAULT_HOST;
|
|
168
|
+
const db = opts.db ?? DEFAULT_DB;
|
|
149
169
|
// Check if already running
|
|
150
170
|
const existing = readState(deps);
|
|
151
171
|
if (existing) {
|
|
@@ -159,9 +179,21 @@ export async function startDaemon(opts, deps) {
|
|
|
159
179
|
}
|
|
160
180
|
// "dead" or "not_rigged" → stale state, safe to proceed
|
|
161
181
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
182
|
+
else {
|
|
183
|
+
let recoveredRunning = false;
|
|
184
|
+
try {
|
|
185
|
+
await fetchDaemonProbe(deps, `http://${host}:${port}/healthz`);
|
|
186
|
+
recoveredRunning = true;
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
if (err instanceof HealthProbeTimeoutError) {
|
|
190
|
+
throw new Error(`Daemon on port ${port} is unresponsive, and daemon state is missing — recover it before starting a new daemon.`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (recoveredRunning) {
|
|
194
|
+
throw new Error(`Daemon already running on port ${port}, but daemon state is missing`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
165
197
|
const daemonEntry = path.join(getDaemonPath(), "dist/index.js");
|
|
166
198
|
deps.mkdirp(OPENRIG_DIR);
|
|
167
199
|
const logFd = deps.openForAppend(LOG_FILE);
|
|
@@ -214,8 +246,23 @@ export async function startDaemon(opts, deps) {
|
|
|
214
246
|
}
|
|
215
247
|
export async function stopDaemon(deps) {
|
|
216
248
|
const state = readState(deps);
|
|
217
|
-
if (!state)
|
|
218
|
-
|
|
249
|
+
if (!state) {
|
|
250
|
+
const configured = resolveConfiguredDaemonTarget();
|
|
251
|
+
let recoveredRunning = false;
|
|
252
|
+
try {
|
|
253
|
+
await fetchDaemonProbe(deps, `http://${configured.host}:${configured.port}/healthz`);
|
|
254
|
+
recoveredRunning = true;
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
if (err instanceof HealthProbeTimeoutError) {
|
|
258
|
+
throw new Error(`Daemon state is missing and port ${configured.port} is unresponsive — cannot stop safely.`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (recoveredRunning) {
|
|
262
|
+
throw new Error(`Daemon is running on port ${configured.port}, but daemon state is missing — cannot stop safely.`);
|
|
263
|
+
}
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
219
266
|
const stateFile = resolveLifecycleFile(deps, "daemon.json");
|
|
220
267
|
const pidState = await checkPid(state, deps);
|
|
221
268
|
if (pidState === "dead") {
|
|
@@ -253,22 +300,35 @@ export async function getDaemonStatus(deps) {
|
|
|
253
300
|
try {
|
|
254
301
|
const res = await fetchDaemonProbe(deps, `${openrigUrl}/healthz`);
|
|
255
302
|
const url = new URL(openrigUrl);
|
|
256
|
-
return { state: "running", port: Number(url.port) ||
|
|
303
|
+
return { state: "running", port: Number(url.port) || DEFAULT_PORT, host: url.hostname || DEFAULT_HOST, healthy: res.ok };
|
|
257
304
|
}
|
|
258
305
|
catch {
|
|
259
306
|
return { state: "stopped" };
|
|
260
307
|
}
|
|
261
308
|
}
|
|
262
309
|
const state = readState(deps);
|
|
263
|
-
if (!state)
|
|
264
|
-
|
|
310
|
+
if (!state) {
|
|
311
|
+
const configured = resolveConfiguredDaemonTarget();
|
|
312
|
+
try {
|
|
313
|
+
const res = await fetchDaemonProbe(deps, `http://${configured.host}:${configured.port}/healthz`);
|
|
314
|
+
return {
|
|
315
|
+
state: "running",
|
|
316
|
+
port: configured.port,
|
|
317
|
+
host: configured.host,
|
|
318
|
+
healthy: res.ok,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
return { state: "stopped" };
|
|
323
|
+
}
|
|
324
|
+
}
|
|
265
325
|
if (!deps.isProcessAlive(state.pid)) {
|
|
266
326
|
// Process dead — stale state
|
|
267
327
|
deps.removeFile(resolveLifecycleFile(deps, "daemon.json"));
|
|
268
328
|
return { state: "stale" };
|
|
269
329
|
}
|
|
270
330
|
// Process alive — check healthz
|
|
271
|
-
const host = state.host ??
|
|
331
|
+
const host = state.host ?? DEFAULT_HOST;
|
|
272
332
|
let healthy = false;
|
|
273
333
|
try {
|
|
274
334
|
const res = await fetchDaemonProbe(deps, `http://${host}:${state.port}/healthz`);
|