@neurodock/cli 0.6.2 → 0.7.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/CHANGELOG.md +61 -0
- package/README.md +21 -21
- package/dist/assets/hooks/neurodock_daemon.py +87 -44
- package/dist/assets/hooks/proactive_guardrail.py +121 -37
- package/dist/assets/hooks/test_daemon_escape.py +111 -0
- package/dist/commands/guardrail.d.ts +18 -0
- package/dist/commands/guardrail.d.ts.map +1 -0
- package/dist/commands/guardrail.js +223 -0
- package/dist/commands/guardrail.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-hooks.d.ts.map +1 -1
- package/dist/commands/install-hooks.js +26 -3
- package/dist/commands/install-hooks.js.map +1 -1
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +6 -2
- package/dist/commands/plugin.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/util/atomic-write.d.ts +11 -0
- package/dist/util/atomic-write.d.ts.map +1 -0
- package/dist/util/atomic-write.js +40 -0
- package/dist/util/atomic-write.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Tests for the M5 notification-text escape functions in neurodock_daemon.py.
|
|
2
|
+
|
|
3
|
+
Security regression test: verify that shell-injection characters in title/
|
|
4
|
+
message strings are stripped before interpolation into PowerShell and
|
|
5
|
+
AppleScript command strings. All of these characters would allow code
|
|
6
|
+
execution if they reached the script interpreter unescaped.
|
|
7
|
+
|
|
8
|
+
Collected under packages/ so the workspace-level pytest run picks them up.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import importlib.util
|
|
14
|
+
import sys
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
# ---------------------------------------------------------------------------
|
|
18
|
+
# Import the daemon module from its asset path without installing it.
|
|
19
|
+
# ---------------------------------------------------------------------------
|
|
20
|
+
|
|
21
|
+
_DAEMON_PATH = Path(__file__).parent / "neurodock_daemon.py"
|
|
22
|
+
|
|
23
|
+
_spec = importlib.util.spec_from_file_location("neurodock_daemon", _DAEMON_PATH)
|
|
24
|
+
assert _spec is not None and _spec.loader is not None
|
|
25
|
+
_mod = importlib.util.module_from_spec(_spec)
|
|
26
|
+
sys.modules["neurodock_daemon"] = _mod
|
|
27
|
+
_spec.loader.exec_module(_mod) # type: ignore[union-attr]
|
|
28
|
+
|
|
29
|
+
_escape_ps = _mod._escape_ps # type: ignore[attr-defined]
|
|
30
|
+
_escape_as = _mod._escape_as # type: ignore[attr-defined]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# ---------------------------------------------------------------------------
|
|
34
|
+
# PowerShell escape tests
|
|
35
|
+
# ---------------------------------------------------------------------------
|
|
36
|
+
|
|
37
|
+
# PS strips backtick, $, (, ), {, }, ;, &, |, <, >, \, newlines.
|
|
38
|
+
# Double-quote is backslash-escaped (NOT stripped) so the XML text node
|
|
39
|
+
# value is preserved.
|
|
40
|
+
_PS_STRIPPED_CHARS = "`$(){};&|<>\\\n\r"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def test_escape_ps_strips_powershell_injection_chars() -> None:
|
|
44
|
+
"""Listed PS-injection chars must be absent from the output."""
|
|
45
|
+
payload = _PS_STRIPPED_CHARS + "hello"
|
|
46
|
+
result = _escape_ps(payload)
|
|
47
|
+
for ch in _PS_STRIPPED_CHARS:
|
|
48
|
+
assert ch not in result, f"char {ch!r} survived _escape_ps"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def test_escape_ps_double_quote_is_escaped_not_stripped() -> None:
|
|
52
|
+
"""Double-quotes are backslash-escaped so the text node value is literal."""
|
|
53
|
+
result = _escape_ps('say "hello"')
|
|
54
|
+
# The escaped form must be present.
|
|
55
|
+
assert '\\"' in result
|
|
56
|
+
# And no bare (unescaped) double-quote must remain.
|
|
57
|
+
assert '"' not in result.replace('\\"', "")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def test_escape_ps_newlines_removed() -> None:
|
|
61
|
+
result = _escape_ps("line1\nline2\r\nline3")
|
|
62
|
+
assert "\n" not in result
|
|
63
|
+
assert "\r" not in result
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_escape_ps_safe_text_passes_through() -> None:
|
|
67
|
+
safe = "NeuroDock — hyperfocus check: 90 min elapsed"
|
|
68
|
+
result = _escape_ps(safe)
|
|
69
|
+
# Em dash and alphanumerics survive unchanged.
|
|
70
|
+
assert "NeuroDock" in result
|
|
71
|
+
assert "90 min" in result
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# ---------------------------------------------------------------------------
|
|
75
|
+
# AppleScript escape tests
|
|
76
|
+
# ---------------------------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
# AS strips double-quote, backslash, &, |, ;, backtick, and newlines.
|
|
79
|
+
# (AppleScript has no reliable backslash-quote escape, so " is stripped.)
|
|
80
|
+
_AS_STRIPPED_CHARS = '"\\&|;`\n\r'
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def test_escape_as_strips_all_dangerous_chars() -> None:
|
|
84
|
+
"""All listed AS-injection chars must be absent from the output."""
|
|
85
|
+
payload = _AS_STRIPPED_CHARS + "hello"
|
|
86
|
+
result = _escape_as(payload)
|
|
87
|
+
for ch in _AS_STRIPPED_CHARS:
|
|
88
|
+
assert ch not in result, f"char {ch!r} survived _escape_as"
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def test_escape_as_double_quote_is_stripped() -> None:
|
|
92
|
+
"""AppleScript cannot reliably escape " inside a double-quoted literal —
|
|
93
|
+
the function strips it entirely so the resulting string is injection-safe."""
|
|
94
|
+
result = _escape_as('title "check"')
|
|
95
|
+
assert '"' not in result
|
|
96
|
+
# The safe surrounding text is preserved.
|
|
97
|
+
assert "title" in result
|
|
98
|
+
assert "check" in result
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def test_escape_as_newlines_removed() -> None:
|
|
102
|
+
result = _escape_as("line1\nline2\r\nline3")
|
|
103
|
+
assert "\n" not in result
|
|
104
|
+
assert "\r" not in result
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def test_escape_as_safe_text_passes_through() -> None:
|
|
108
|
+
safe = "NeuroDock — it is late night local (22:00). Save and stop."
|
|
109
|
+
result = _escape_as(safe)
|
|
110
|
+
assert "NeuroDock" in result
|
|
111
|
+
assert "22:00" in result
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface StatusLine {
|
|
2
|
+
readonly label: string;
|
|
3
|
+
readonly ok: boolean;
|
|
4
|
+
readonly detail: string;
|
|
5
|
+
}
|
|
6
|
+
interface GuardrailStatusResult {
|
|
7
|
+
readonly lines: ReadonlyArray<StatusLine>;
|
|
8
|
+
readonly anyFailure: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function collectGuardrailStatus(): GuardrailStatusResult;
|
|
11
|
+
export interface GuardrailStatusOptions {
|
|
12
|
+
readonly print: (msg: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function runGuardrailStatus(opts: GuardrailStatusOptions): {
|
|
15
|
+
exitCode: number;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=guardrail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrail.d.ts","sourceRoot":"","sources":["../../src/commands/guardrail.ts"],"names":[],"mappings":"AAqBA,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAuMD,wBAAgB,sBAAsB,IAAI,qBAAqB,CAY9D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB,CAmBA"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
3
|
+
* Copyright (c) 2026 NeuroDock contributors.
|
|
4
|
+
*
|
|
5
|
+
* `neurodock guardrail status` — diagnostic readout of the proactive-
|
|
6
|
+
* guardrail wiring on the current machine. Read-only: never modifies any
|
|
7
|
+
* file.
|
|
8
|
+
*
|
|
9
|
+
* Why this command exists: 2026-05-26 silent-failure incident. The user
|
|
10
|
+
* coded for 6 hours and the substrate never fired a single break warning.
|
|
11
|
+
* Root cause: the Phase 3 daemon was never installed AND the Phase 1
|
|
12
|
+
* session file was in a degraded shape (`{tool_count: N}` only, no
|
|
13
|
+
* `started_at`), so the elapsed-time heuristic could not compute. With
|
|
14
|
+
* `guardrail status` the user can see at a glance which piece is missing
|
|
15
|
+
* before another long session goes silent.
|
|
16
|
+
*/
|
|
17
|
+
import { readFileSync, existsSync, statSync } from "node:fs";
|
|
18
|
+
import { homedir, platform } from "node:os";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { execSync } from "node:child_process";
|
|
21
|
+
function homeFile(...parts) {
|
|
22
|
+
return join(homedir(), ...parts);
|
|
23
|
+
}
|
|
24
|
+
function checkPhase1HookRegistered() {
|
|
25
|
+
const settingsPath = homeFile(".claude", "settings.json");
|
|
26
|
+
if (!existsSync(settingsPath)) {
|
|
27
|
+
return {
|
|
28
|
+
label: "Phase 1 hook (Claude Code)",
|
|
29
|
+
ok: false,
|
|
30
|
+
detail: `~/.claude/settings.json not found — run 'neurodock install-hooks'`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const raw = readFileSync(settingsPath, "utf8");
|
|
35
|
+
const parsed = JSON.parse(raw);
|
|
36
|
+
const text = JSON.stringify(parsed.hooks ?? {});
|
|
37
|
+
if (text.includes("neurodock_proactive_guardrail") ||
|
|
38
|
+
text.includes("proactive_guardrail.py")) {
|
|
39
|
+
return {
|
|
40
|
+
label: "Phase 1 hook (Claude Code)",
|
|
41
|
+
ok: true,
|
|
42
|
+
detail: "registered in ~/.claude/settings.json",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
label: "Phase 1 hook (Claude Code)",
|
|
47
|
+
ok: false,
|
|
48
|
+
detail: "settings.json present but no NeuroDock hook entries — run 'neurodock install-hooks'",
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (cause) {
|
|
52
|
+
const msg = cause instanceof Error ? cause.message : "parse failed";
|
|
53
|
+
return {
|
|
54
|
+
label: "Phase 1 hook (Claude Code)",
|
|
55
|
+
ok: false,
|
|
56
|
+
detail: `could not read settings.json (${msg})`,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function checkSessionShape() {
|
|
61
|
+
const sessionPath = homeFile(".neurodock", "state", "guardrail-session.json");
|
|
62
|
+
if (!existsSync(sessionPath)) {
|
|
63
|
+
return {
|
|
64
|
+
label: "Session state shape",
|
|
65
|
+
ok: false,
|
|
66
|
+
detail: "no session state yet — open Claude Code and submit one prompt to bootstrap",
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
const raw = readFileSync(sessionPath, "utf8");
|
|
71
|
+
const parsed = JSON.parse(raw);
|
|
72
|
+
if (typeof parsed.started_at !== "string") {
|
|
73
|
+
return {
|
|
74
|
+
label: "Session state shape",
|
|
75
|
+
ok: false,
|
|
76
|
+
detail: "missing 'started_at' (degraded shape) — the Phase 1 hook's defensive bootstrap will fix this on the next PreToolUse event",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
label: "Session state shape",
|
|
81
|
+
ok: true,
|
|
82
|
+
detail: `started_at=${parsed.started_at} tool_count=${String(parsed.tool_count ?? 0)}`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (cause) {
|
|
86
|
+
const msg = cause instanceof Error ? cause.message : "parse failed";
|
|
87
|
+
return {
|
|
88
|
+
label: "Session state shape",
|
|
89
|
+
ok: false,
|
|
90
|
+
detail: `could not parse guardrail-session.json (${msg})`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function checkDaemonScriptPresent() {
|
|
95
|
+
const daemonPath = homeFile(".neurodock", "hooks", "neurodock_daemon.py");
|
|
96
|
+
if (!existsSync(daemonPath)) {
|
|
97
|
+
return {
|
|
98
|
+
label: "Phase 3 daemon script",
|
|
99
|
+
ok: false,
|
|
100
|
+
detail: `not found at ${daemonPath} — run 'neurodock install-hooks --install-daemon'`,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
label: "Phase 3 daemon script",
|
|
105
|
+
ok: true,
|
|
106
|
+
detail: daemonPath,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function checkDaemonAutostart() {
|
|
110
|
+
if (platform() === "win32") {
|
|
111
|
+
try {
|
|
112
|
+
const out = execSync('reg query "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run" /v NeuroDockGuardrail', {
|
|
113
|
+
encoding: "utf8",
|
|
114
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
115
|
+
});
|
|
116
|
+
if (out.includes("NeuroDockGuardrail")) {
|
|
117
|
+
return {
|
|
118
|
+
label: "Daemon autostart (HKCU Run)",
|
|
119
|
+
ok: true,
|
|
120
|
+
detail: "registered",
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// reg query failed = key not present
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
label: "Daemon autostart (HKCU Run)",
|
|
129
|
+
ok: false,
|
|
130
|
+
detail: "not registered — run 'neurodock install-hooks --install-daemon'",
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
if (platform() === "darwin") {
|
|
134
|
+
const plistPath = homeFile("Library", "LaunchAgents", "com.neurodock.guardrail.plist");
|
|
135
|
+
if (existsSync(plistPath)) {
|
|
136
|
+
return {
|
|
137
|
+
label: "Daemon autostart (LaunchAgent)",
|
|
138
|
+
ok: true,
|
|
139
|
+
detail: plistPath,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
label: "Daemon autostart (LaunchAgent)",
|
|
144
|
+
ok: false,
|
|
145
|
+
detail: `not at ${plistPath} — run 'neurodock install-hooks --install-daemon'`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const unitPath = homeFile(".config", "systemd", "user", "neurodock-guardrail.service");
|
|
149
|
+
if (existsSync(unitPath)) {
|
|
150
|
+
return {
|
|
151
|
+
label: "Daemon autostart (systemd --user)",
|
|
152
|
+
ok: true,
|
|
153
|
+
detail: unitPath,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
label: "Daemon autostart (systemd --user)",
|
|
158
|
+
ok: false,
|
|
159
|
+
detail: `not at ${unitPath} — run 'neurodock install-hooks --install-daemon'`,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function checkDaemonRunning() {
|
|
163
|
+
const logPath = homeFile(".neurodock", "state", "daemon-log.jsonl");
|
|
164
|
+
if (!existsSync(logPath)) {
|
|
165
|
+
return {
|
|
166
|
+
label: "Daemon liveness",
|
|
167
|
+
ok: false,
|
|
168
|
+
detail: "no daemon-log.jsonl — daemon has never ticked on this machine",
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
const stats = statSync(logPath);
|
|
173
|
+
const ageMin = (Date.now() - stats.mtimeMs) / 60000;
|
|
174
|
+
if (ageMin > 15) {
|
|
175
|
+
return {
|
|
176
|
+
label: "Daemon liveness",
|
|
177
|
+
ok: false,
|
|
178
|
+
detail: `last log entry was ${Math.round(ageMin)} min ago — daemon may have crashed or been stopped`,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
label: "Daemon liveness",
|
|
183
|
+
ok: true,
|
|
184
|
+
detail: `last tick ${Math.round(ageMin)} min ago`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
catch (cause) {
|
|
188
|
+
const msg = cause instanceof Error ? cause.message : "stat failed";
|
|
189
|
+
return { label: "Daemon liveness", ok: false, detail: msg };
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
export function collectGuardrailStatus() {
|
|
193
|
+
const lines = [
|
|
194
|
+
checkPhase1HookRegistered(),
|
|
195
|
+
checkSessionShape(),
|
|
196
|
+
checkDaemonScriptPresent(),
|
|
197
|
+
checkDaemonAutostart(),
|
|
198
|
+
checkDaemonRunning(),
|
|
199
|
+
];
|
|
200
|
+
return {
|
|
201
|
+
lines,
|
|
202
|
+
anyFailure: lines.some((line) => !line.ok),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export function runGuardrailStatus(opts) {
|
|
206
|
+
const result = collectGuardrailStatus();
|
|
207
|
+
opts.print("NeuroDock proactive-guardrail wiring status:");
|
|
208
|
+
opts.print("");
|
|
209
|
+
for (const line of result.lines) {
|
|
210
|
+
const tag = line.ok ? "OK " : "MISSING";
|
|
211
|
+
opts.print(` [${tag}] ${line.label}`);
|
|
212
|
+
opts.print(` ${line.detail}`);
|
|
213
|
+
}
|
|
214
|
+
opts.print("");
|
|
215
|
+
if (result.anyFailure) {
|
|
216
|
+
opts.print("One or more pieces are missing. Run 'neurodock install-hooks --install-daemon' " +
|
|
217
|
+
"to wire everything in one step. Re-run 'neurodock guardrail status' afterwards.");
|
|
218
|
+
return { exitCode: 1 };
|
|
219
|
+
}
|
|
220
|
+
opts.print("All guardrail wiring present.");
|
|
221
|
+
return { exitCode: 0 };
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=guardrail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrail.js","sourceRoot":"","sources":["../../src/commands/guardrail.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,QAAQ,EACR,WAAW,EAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAWxC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,WAAW,EACpB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgHxB"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { readFileSync,
|
|
1
|
+
import { readFileSync, mkdirSync, existsSync } from "node:fs";
|
|
2
2
|
import { dirname, join, resolve } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { atomicWriteOverwrite } from "../util/atomic-write.js";
|
|
4
5
|
import { readEnv } from "../lib/env.js";
|
|
5
6
|
import { profilePath, detectClients, } from "../lib/paths.js";
|
|
6
7
|
import { adapterFor } from "../clients/index.js";
|
|
@@ -165,7 +166,9 @@ function applyClientDiff(cd, desired, overwrite) {
|
|
|
165
166
|
const merged = mergeMcpServers(existing ?? {}, desired, overwrite);
|
|
166
167
|
const shaped = adapter.shapeConfig(existing, merged.merged.mcpServers);
|
|
167
168
|
mkdirSync(dirname(cd.path), { recursive: true });
|
|
168
|
-
|
|
169
|
+
// Atomic overwrite: write to a .tmp sibling then rename into place to
|
|
170
|
+
// prevent a TOCTOU window between existsSync (above) and the write.
|
|
171
|
+
atomicWriteOverwrite(cd.path, `${JSON.stringify(shaped, null, 2)}\n`);
|
|
169
172
|
}
|
|
170
173
|
function resolveTemplatePath(profile) {
|
|
171
174
|
const filename = profile === "minimal" ? "profile.minimal.yaml" : "profile.example.yaml";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAoBD,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA+I7B"}
|
|
@@ -26,10 +26,11 @@
|
|
|
26
26
|
* Environment variable `NEURODOCK_GUARDRAILS=off` disables the hook
|
|
27
27
|
* without touching settings.json.
|
|
28
28
|
*/
|
|
29
|
-
import { mkdirSync, readFileSync,
|
|
29
|
+
import { mkdirSync, readFileSync, existsSync, copyFileSync } from "node:fs";
|
|
30
30
|
import { dirname, join, resolve } from "node:path";
|
|
31
31
|
import { fileURLToPath } from "node:url";
|
|
32
32
|
import { homedir } from "node:os";
|
|
33
|
+
import { atomicWriteOverwrite } from "../util/atomic-write.js";
|
|
33
34
|
import { spawnSync } from "node:child_process";
|
|
34
35
|
const HOOK_EVENTS = [
|
|
35
36
|
"SessionStart",
|
|
@@ -97,7 +98,9 @@ export async function runInstallHooks(options) {
|
|
|
97
98
|
}
|
|
98
99
|
else {
|
|
99
100
|
mkdirSync(dirname(settingsPath), { recursive: true });
|
|
100
|
-
|
|
101
|
+
// Atomic overwrite prevents a TOCTOU race between the existsSync
|
|
102
|
+
// guard (above) and the write to settings.json.
|
|
103
|
+
atomicWriteOverwrite(settingsPath, merged.json + "\n");
|
|
101
104
|
messages.push("[install-hooks] updated ~/.claude/settings.json");
|
|
102
105
|
for (const line of merged.diff)
|
|
103
106
|
messages.push(` ${line}`);
|
|
@@ -136,6 +139,24 @@ export async function runInstallHooks(options) {
|
|
|
136
139
|
}
|
|
137
140
|
else {
|
|
138
141
|
messages.push(`[install-hooks] daemon autostart: ${result.stdout.trim()}`);
|
|
142
|
+
// Also START the daemon immediately so the user does not have to
|
|
143
|
+
// wait for the next login. Detached + unref so it survives this
|
|
144
|
+
// process exit. The 2026-05-26 silent-failure incident was caused
|
|
145
|
+
// exactly by registering autostart but never actually launching
|
|
146
|
+
// the daemon, so the next 6h session ran with no guardrail tick.
|
|
147
|
+
try {
|
|
148
|
+
const { spawn } = await import("node:child_process");
|
|
149
|
+
const child = spawn("python", [daemonTarget, "run"], {
|
|
150
|
+
detached: true,
|
|
151
|
+
stdio: "ignore",
|
|
152
|
+
});
|
|
153
|
+
child.unref();
|
|
154
|
+
messages.push("[install-hooks] daemon started in background (run 'neurodock guardrail status' to confirm).");
|
|
155
|
+
}
|
|
156
|
+
catch (cause) {
|
|
157
|
+
const msg = cause instanceof Error ? cause.message : "spawn failed";
|
|
158
|
+
messages.push(`[install-hooks] daemon autostart registered but background-launch failed (${msg}). It will run on next login.`);
|
|
159
|
+
}
|
|
139
160
|
}
|
|
140
161
|
}
|
|
141
162
|
}
|
|
@@ -212,7 +233,9 @@ function uninstallHooks(settingsPath, dryRun) {
|
|
|
212
233
|
messages.push("[install-hooks] would remove NeuroDock entries from ~/.claude/settings.json");
|
|
213
234
|
}
|
|
214
235
|
else {
|
|
215
|
-
|
|
236
|
+
// Atomic overwrite: the existsSync+read above and the write here have a
|
|
237
|
+
// TOCTOU window; renaming a tmp file into place closes it.
|
|
238
|
+
atomicWriteOverwrite(settingsPath, formatted + "\n");
|
|
216
239
|
messages.push("[install-hooks] removed NeuroDock entries from ~/.claude/settings.json");
|
|
217
240
|
}
|
|
218
241
|
messages.push("Hook script left at ~/.neurodock/hooks/ — delete manually if you want it gone.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,aAAa,CAAC;AAMzC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAErC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAcD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9E,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAgL1B;AA4BD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CAC1B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAuD7B;AAMD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA6E3B;AAMD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CAC1B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAoD7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAyC9B;AAMD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC9B;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA4K/B"}
|
package/dist/commands/plugin.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync,
|
|
1
|
+
import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, } from "node:fs";
|
|
2
2
|
import { isAbsolute, join, resolve } from "node:path";
|
|
3
|
+
import { atomicWriteNew } from "../util/atomic-write.js";
|
|
3
4
|
import { parse as parseYaml } from "yaml";
|
|
4
5
|
import prompts from "prompts";
|
|
5
6
|
import { readEnv } from "../lib/env.js";
|
|
@@ -284,7 +285,10 @@ export async function runPluginEnable(options, deps = {}) {
|
|
|
284
285
|
exitCode: 0,
|
|
285
286
|
};
|
|
286
287
|
}
|
|
287
|
-
|
|
288
|
+
// Atomic exclusive create: the existsSync guard above and this write have
|
|
289
|
+
// a TOCTOU window. O_CREAT | O_EXCL makes the check-and-create one
|
|
290
|
+
// kernel operation — a concurrent enabler gets EEXIST rather than a race.
|
|
291
|
+
atomicWriteNew(markerPath, `# Created by 'neurodock plugin enable'. Delete (or run\n# 'neurodock plugin disable ${options.name}') to deactivate.\n`);
|
|
288
292
|
messages.push(`Enabled plugin '${options.name}'.`);
|
|
289
293
|
messages.push("Restart your MCP client to pick up the change.");
|
|
290
294
|
return {
|