@neurodock/cli 0.2.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +198 -1
- package/README.md +155 -27
- package/dist/assets/hooks/neurodock_daemon.py +506 -0
- package/dist/assets/hooks/proactive_guardrail.py +520 -0
- package/dist/clients/claude-code.d.ts.map +1 -1
- package/dist/clients/claude-code.js +3 -1
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/claude-desktop.d.ts.map +1 -1
- package/dist/clients/claude-desktop.js +3 -1
- package/dist/clients/claude-desktop.js.map +1 -1
- package/dist/clients/cursor.d.ts.map +1 -1
- package/dist/clients/cursor.js +3 -1
- package/dist/clients/cursor.js.map +1 -1
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +59 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/examples.d.ts +28 -0
- package/dist/commands/examples.d.ts.map +1 -0
- package/dist/commands/examples.js +168 -0
- package/dist/commands/examples.js.map +1 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +1 -1
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +14 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-all.d.ts +78 -0
- package/dist/commands/install-all.d.ts.map +1 -0
- package/dist/commands/install-all.js +283 -0
- package/dist/commands/install-all.js.map +1 -0
- package/dist/commands/install-hooks.d.ts +20 -0
- package/dist/commands/install-hooks.d.ts.map +1 -0
- package/dist/commands/install-hooks.js +356 -0
- package/dist/commands/install-hooks.js.map +1 -0
- package/dist/commands/plugin.d.ts +122 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/commands/plugin.js +545 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +11 -2
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/sync.d.ts +24 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +179 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +11 -3
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +13 -22
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +11 -172
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +12 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +196 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/json-patch.d.ts.map +1 -1
- package/dist/lib/json-patch.js +1 -1
- package/dist/lib/json-patch.js.map +1 -1
- package/dist/lib/mcp-entries.d.ts.map +1 -1
- package/dist/lib/mcp-entries.js +25 -3
- package/dist/lib/mcp-entries.js.map +1 -1
- package/dist/lib/paths.d.ts +10 -0
- package/dist/lib/paths.d.ts.map +1 -1
- package/dist/lib/paths.js +19 -2
- package/dist/lib/paths.js.map +1 -1
- package/dist/lib/plugin-schema.d.ts +12 -0
- package/dist/lib/plugin-schema.d.ts.map +1 -0
- package/dist/lib/plugin-schema.js +71 -0
- package/dist/lib/plugin-schema.js.map +1 -0
- package/dist/profile/defaults.d.ts.map +1 -1
- package/dist/profile/defaults.js +3 -1
- package/dist/profile/defaults.js.map +1 -1
- package/dist/profile/loader.d.ts.map +1 -1
- package/dist/profile/loader.js +3 -1
- package/dist/profile/loader.js.map +1 -1
- package/dist/profile/validator.d.ts.map +1 -1
- package/dist/profile/validator.js +5 -1
- package/dist/profile/validator.js.map +1 -1
- package/package.json +31 -14
- package/LICENSE +0 -11
package/dist/commands/doctor.js
CHANGED
|
@@ -10,7 +10,7 @@ export async function runDoctor() {
|
|
|
10
10
|
const checks = [];
|
|
11
11
|
checks.push(checkNodeVersion());
|
|
12
12
|
checks.push(checkCommandAvailable("uv", ["--version"]));
|
|
13
|
-
checks.push(
|
|
13
|
+
checks.push(checkPython());
|
|
14
14
|
// Profile presence + validity.
|
|
15
15
|
const pPath = profilePath(env);
|
|
16
16
|
if (!existsSync(pPath)) {
|
|
@@ -32,7 +32,9 @@ export async function runDoctor() {
|
|
|
32
32
|
checks.push({
|
|
33
33
|
name: "Profile schema valid",
|
|
34
34
|
status: "FAIL",
|
|
35
|
-
detail: result.violations
|
|
35
|
+
detail: result.violations
|
|
36
|
+
.map((v) => `${v.path}: ${v.message}`)
|
|
37
|
+
.join("; "),
|
|
36
38
|
});
|
|
37
39
|
}
|
|
38
40
|
}
|
|
@@ -95,13 +97,66 @@ function checkNodeVersion() {
|
|
|
95
97
|
function checkCommandAvailable(cmd, args, label) {
|
|
96
98
|
const name = label ?? `${cmd} available`;
|
|
97
99
|
try {
|
|
98
|
-
const out = execFileSync(cmd, args, {
|
|
100
|
+
const out = execFileSync(cmd, args, {
|
|
101
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
102
|
+
timeout: 4000,
|
|
103
|
+
});
|
|
99
104
|
const text = out.toString().trim().split("\n")[0] ?? "";
|
|
100
105
|
return { name, status: "PASS", detail: text };
|
|
101
106
|
}
|
|
102
107
|
catch (err) {
|
|
103
|
-
const detail = err instanceof Error
|
|
108
|
+
const detail = err instanceof Error
|
|
109
|
+
? err.message.split("\n")[0] ?? "unknown error"
|
|
110
|
+
: String(err);
|
|
104
111
|
return { name, status: "FAIL", detail };
|
|
105
112
|
}
|
|
106
113
|
}
|
|
114
|
+
const PYTHON_CANDIDATES = [
|
|
115
|
+
// Most Unix installs (and explicit pyenv shims).
|
|
116
|
+
{ cmd: "python3", args: ["--version"] },
|
|
117
|
+
// Most Windows installs (and Conda / venvs everywhere).
|
|
118
|
+
{ cmd: "python", args: ["--version"] },
|
|
119
|
+
// Windows Python launcher selecting >=3.x.
|
|
120
|
+
{ cmd: "py", args: ["-3", "--version"] },
|
|
121
|
+
];
|
|
122
|
+
function checkPython() {
|
|
123
|
+
const name = "Python >= 3.11";
|
|
124
|
+
const errors = [];
|
|
125
|
+
for (const { cmd, args } of PYTHON_CANDIDATES) {
|
|
126
|
+
try {
|
|
127
|
+
const out = execFileSync(cmd, args, {
|
|
128
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
129
|
+
timeout: 4000,
|
|
130
|
+
});
|
|
131
|
+
const text = out.toString().trim().split("\n")[0] ?? "";
|
|
132
|
+
const match = text.match(/(\d+)\.(\d+)/);
|
|
133
|
+
if (!match) {
|
|
134
|
+
errors.push(`${cmd}: unexpected version output "${text}"`);
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
const major = Number(match[1]);
|
|
138
|
+
const minor = Number(match[2]);
|
|
139
|
+
const tooOld = major < 3 || (major === 3 && minor < 11);
|
|
140
|
+
const detail = `${cmd} ${match[0]} (${text})`;
|
|
141
|
+
return tooOld
|
|
142
|
+
? {
|
|
143
|
+
name,
|
|
144
|
+
status: "FAIL",
|
|
145
|
+
detail: `${detail} is below 3.11. Upgrade Python.`,
|
|
146
|
+
}
|
|
147
|
+
: { name, status: "PASS", detail };
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
const message = err instanceof Error
|
|
151
|
+
? err.message.split("\n")[0] ?? "unknown error"
|
|
152
|
+
: String(err);
|
|
153
|
+
errors.push(`${cmd}: ${message}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
name,
|
|
158
|
+
status: "FAIL",
|
|
159
|
+
detail: `No Python interpreter found on PATH (tried python3, python, py -3). Errors: ${errors.join("; ")}`,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
107
162
|
//# sourceMappingURL=doctor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { readEnv } from "../lib/env.js";
|
|
2
|
+
export type ServerName = "neurodock-chronometric" | "neurodock-cognitive-graph" | "neurodock-task-fractionator" | "neurodock-translation" | "neurodock-guardrail";
|
|
3
|
+
export interface ExamplePrompt {
|
|
4
|
+
readonly prompt: string;
|
|
5
|
+
readonly tool: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ServerExamples {
|
|
8
|
+
readonly server: ServerName;
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly prompts: ReadonlyArray<ExamplePrompt>;
|
|
11
|
+
}
|
|
12
|
+
export interface ExamplesOptions {
|
|
13
|
+
readonly server?: string;
|
|
14
|
+
readonly json: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ExamplesResult {
|
|
17
|
+
/** which servers are wired anywhere across detected client configs */
|
|
18
|
+
readonly wired: ReadonlyArray<ServerName>;
|
|
19
|
+
readonly groups: ReadonlyArray<ServerExamples>;
|
|
20
|
+
readonly messages: ReadonlyArray<string>;
|
|
21
|
+
}
|
|
22
|
+
export interface ExamplesDependencies {
|
|
23
|
+
readonly envOverrides?: Parameters<typeof readEnv>[0];
|
|
24
|
+
/** Override the color check (defaults to colorEnabled() from env). */
|
|
25
|
+
readonly colorEnabled?: () => boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function runExamples(options: ExamplesOptions, deps?: ExamplesDependencies): Promise<ExamplesResult>;
|
|
28
|
+
//# sourceMappingURL=examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../src/commands/examples.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAItD,MAAM,MAAM,UAAU,GAClB,wBAAwB,GACxB,2BAA2B,GAC3B,6BAA6B,GAC7B,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;CACvC;AAoGD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,cAAc,CAAC,CA+DzB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { readEnv, colorEnabled } from "../lib/env.js";
|
|
4
|
+
import { detectClients } from "../lib/paths.js";
|
|
5
|
+
import { parseJsonSafely } from "../lib/json-patch.js";
|
|
6
|
+
const ALL_GROUPS = [
|
|
7
|
+
{
|
|
8
|
+
server: "neurodock-chronometric",
|
|
9
|
+
label: "mcp-chronometric (time, sessions, energy zone)",
|
|
10
|
+
prompts: [
|
|
11
|
+
{
|
|
12
|
+
prompt: "What time is it and what's my energy zone?",
|
|
13
|
+
tool: "get_time_context",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
prompt: "Start a session — I'm working on emails for the next 30 minutes.",
|
|
17
|
+
tool: "mark_session_start",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
prompt: "I'm done. End my session and summarise what I got through.",
|
|
21
|
+
tool: "mark_session_end",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
server: "neurodock-cognitive-graph",
|
|
27
|
+
label: "mcp-cognitive-graph (memory, facts, decisions)",
|
|
28
|
+
prompts: [
|
|
29
|
+
{
|
|
30
|
+
prompt: "Remember: my dev box is Windows 11, Python 3.11, Node 22.",
|
|
31
|
+
tool: "record_fact",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
prompt: "What do you know about my dev environment?",
|
|
35
|
+
tool: "recall_entity",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
prompt: "What decisions have I made about the auth refactor in the last 30 days?",
|
|
39
|
+
tool: "recall_decisions",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
prompt: "Give me a weekly rollup on the marketing site project.",
|
|
43
|
+
tool: "weekly_rollup",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
server: "neurodock-task-fractionator",
|
|
49
|
+
label: "mcp-task-fractionator (decompose goals, pick next step)",
|
|
50
|
+
prompts: [
|
|
51
|
+
{
|
|
52
|
+
prompt: "Decompose this goal into atomic tasks with a PT3H budget: 'Get the changelog ready for v1.0.'",
|
|
53
|
+
tool: "decompose",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
prompt: "What should I do next on the auth refactor?",
|
|
57
|
+
tool: "next_one",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
server: "neurodock-translation",
|
|
63
|
+
label: "mcp-translation (incoming/outgoing tone, meeting briefs)",
|
|
64
|
+
prompts: [
|
|
65
|
+
{
|
|
66
|
+
prompt: "Translate this incoming Slack message — what is the explicit ask and what's the subtext: 'Hey, can we revisit the timeline next week?'",
|
|
67
|
+
tool: "translate_incoming",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
prompt: "Tone-check this PR comment before I send it: 'this needs a rewrite — let me know'",
|
|
71
|
+
tool: "check_tone",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
prompt: "Rewrite this for a 'warm' register without losing the technical detail: 'Fix the GraphQL N+1 in /api/users.'",
|
|
75
|
+
tool: "rewrite_outgoing",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
prompt: "Brief this 30-minute meeting transcript — pull out my asks, others' asks, decisions, and ambiguous items. [paste transcript]",
|
|
79
|
+
tool: "brief_meeting",
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
server: "neurodock-guardrail",
|
|
85
|
+
label: "mcp-guardrail (rumination + loop checks — mostly invoked via skills)",
|
|
86
|
+
prompts: [
|
|
87
|
+
{
|
|
88
|
+
prompt: "Check whether my last 5 questions about Postgres count as a rumination loop: [list of questions]",
|
|
89
|
+
tool: "check_rumination",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
export async function runExamples(options, deps = {}) {
|
|
95
|
+
const env = readEnv(deps.envOverrides ?? {});
|
|
96
|
+
const messages = [];
|
|
97
|
+
// Probe which servers are wired across all detected client configs.
|
|
98
|
+
const wired = detectWiredServers(env);
|
|
99
|
+
// Filter by --server if supplied.
|
|
100
|
+
const requested = options.server ?? null;
|
|
101
|
+
if (requested !== null && !isKnownServer(requested)) {
|
|
102
|
+
messages.push(`Unknown --server '${requested}'. Known: ${ALL_GROUPS.map((g) => g.server).join(", ")}.`);
|
|
103
|
+
return { wired, groups: [], messages };
|
|
104
|
+
}
|
|
105
|
+
const groups = ALL_GROUPS.filter((g) => {
|
|
106
|
+
if (requested !== null && g.server !== requested)
|
|
107
|
+
return false;
|
|
108
|
+
return wired.includes(g.server);
|
|
109
|
+
});
|
|
110
|
+
if (groups.length === 0) {
|
|
111
|
+
if (requested !== null) {
|
|
112
|
+
messages.push(`Server '${requested}' is not wired in any detected MCP client config.`);
|
|
113
|
+
messages.push("Run 'neurodock init' (or 'neurodock install-all') to wire it.");
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
messages.push("No NeuroDock servers detected in any client config.");
|
|
117
|
+
messages.push("Run 'neurodock init' (or 'neurodock install-all') to wire them.");
|
|
118
|
+
}
|
|
119
|
+
return { wired, groups: [], messages };
|
|
120
|
+
}
|
|
121
|
+
if (options.json) {
|
|
122
|
+
messages.push(JSON.stringify({ wired, groups }, null, 2));
|
|
123
|
+
return { wired, groups, messages };
|
|
124
|
+
}
|
|
125
|
+
// Pretty output.
|
|
126
|
+
const useColor = (deps.colorEnabled ?? colorEnabled)();
|
|
127
|
+
for (const g of groups) {
|
|
128
|
+
messages.push("");
|
|
129
|
+
messages.push(useColor ? chalk.bold(g.label) : g.label);
|
|
130
|
+
for (const p of g.prompts) {
|
|
131
|
+
const promptLine = useColor
|
|
132
|
+
? chalk.cyan(`"${p.prompt}"`)
|
|
133
|
+
: `"${p.prompt}"`;
|
|
134
|
+
const toolLine = useColor ? chalk.dim(`→ ${p.tool}`) : `→ ${p.tool}`;
|
|
135
|
+
messages.push(` ${promptLine}`);
|
|
136
|
+
messages.push(` ${toolLine}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
messages.push("");
|
|
140
|
+
messages.push(`Wired servers: ${wired.join(", ") || "(none)"}`);
|
|
141
|
+
return { wired, groups, messages };
|
|
142
|
+
}
|
|
143
|
+
function detectWiredServers(env) {
|
|
144
|
+
const detections = detectClients(env).filter((d) => d.exists);
|
|
145
|
+
const seen = new Set();
|
|
146
|
+
for (const d of detections) {
|
|
147
|
+
try {
|
|
148
|
+
const raw = readFileSync(d.path, "utf8");
|
|
149
|
+
const parsed = parseJsonSafely(raw);
|
|
150
|
+
if (!parsed.ok)
|
|
151
|
+
continue;
|
|
152
|
+
const cfg = (parsed.value ?? {});
|
|
153
|
+
for (const key of Object.keys(cfg.mcpServers ?? {})) {
|
|
154
|
+
if (isKnownServer(key))
|
|
155
|
+
seen.add(key);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// unreadable config: skip silently.
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Preserve canonical order from ALL_GROUPS so output is deterministic.
|
|
163
|
+
return ALL_GROUPS.map((g) => g.server).filter((s) => seen.has(s));
|
|
164
|
+
}
|
|
165
|
+
function isKnownServer(key) {
|
|
166
|
+
return ALL_GROUPS.some((g) => g.server === key);
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/commands/examples.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAO7F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CACvD;AAoDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAO1E;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,CAIpD"}
|
package/dist/commands/host.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
13
|
import { existsSync, realpathSync } from "node:fs";
|
|
14
14
|
import { join, resolve, dirname } from "node:path";
|
|
15
|
-
import { register, unregister, detectPlatform } from "@neurodock/native-host/dist/registration/index.js";
|
|
15
|
+
import { register, unregister, detectPlatform, } from "@neurodock/native-host/dist/registration/index.js";
|
|
16
16
|
const DEFAULT_EXTENSION_IDS = [
|
|
17
17
|
// Placeholder until the Chrome Web Store ID is allocated.
|
|
18
18
|
"__NEURODOCK_EXTENSION_ID__",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,GACf,MAAM,mDAAmD,CAAC;AAG3D,MAAM,qBAAqB,GAA0B;IACnD,0DAA0D;IAC1D,4BAA4B;CAC7B,CAAC;AAWF,SAAS,kBAAkB;IACzB,sEAAsE;IACtE,iEAAiE;IACjE,iEAAiE;IACjE,kFAAkF;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG;QACjB,iFAAiF;QACjF,OAAO,CACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,MAAM,EACN,QAAQ,CACT;QACD,sEAAsE;QACtE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;QAChE,6FAA6F;QAC7F,OAAO,CACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,aAAa,EACb,MAAM,EACN,QAAQ,CACT;QACD,WAAW;QACX,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;KACjE,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,sDAAsD;IACtD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,MAAM,GAAG,GACP,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC3E,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,QAAQ,EACR,WAAW,EAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,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
|
@@ -2,7 +2,7 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
|
2
2
|
import { dirname, join, resolve } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { readEnv } from "../lib/env.js";
|
|
5
|
-
import { profilePath, detectClients } from "../lib/paths.js";
|
|
5
|
+
import { profilePath, detectClients, } from "../lib/paths.js";
|
|
6
6
|
import { adapterFor } from "../clients/index.js";
|
|
7
7
|
import { mergeMcpServers, parseJsonSafely } from "../lib/json-patch.js";
|
|
8
8
|
import { writeProfileFromTemplate } from "../profile/loader.js";
|
|
@@ -25,7 +25,11 @@ export async function runInit(options, deps = {}) {
|
|
|
25
25
|
}
|
|
26
26
|
messages.push("See: https://docs.neurodock.org/install#supported-clients");
|
|
27
27
|
return {
|
|
28
|
-
diff: {
|
|
28
|
+
diff: {
|
|
29
|
+
profileAction: "skipped",
|
|
30
|
+
profilePath: profilePath(env),
|
|
31
|
+
clients: [],
|
|
32
|
+
},
|
|
29
33
|
applied: false,
|
|
30
34
|
messages,
|
|
31
35
|
};
|
|
@@ -37,7 +41,9 @@ export async function runInit(options, deps = {}) {
|
|
|
37
41
|
});
|
|
38
42
|
// 3. Profile.
|
|
39
43
|
const pPath = profilePath(env);
|
|
40
|
-
const profileAction = existsSync(pPath)
|
|
44
|
+
const profileAction = existsSync(pPath)
|
|
45
|
+
? "exists"
|
|
46
|
+
: "create";
|
|
41
47
|
// 4. Per-client diff.
|
|
42
48
|
const clientDiffs = [];
|
|
43
49
|
// For "all" mode, only act on already-existing locations; for explicit
|
|
@@ -56,7 +62,11 @@ export async function runInit(options, deps = {}) {
|
|
|
56
62
|
return {
|
|
57
63
|
diff,
|
|
58
64
|
applied: false,
|
|
59
|
-
messages: [
|
|
65
|
+
messages: [
|
|
66
|
+
"Dry run. No changes written.",
|
|
67
|
+
...messages,
|
|
68
|
+
...formatDiff(diff),
|
|
69
|
+
],
|
|
60
70
|
};
|
|
61
71
|
}
|
|
62
72
|
// 5. Apply.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { readEnv } from "../lib/env.js";
|
|
2
|
+
import { runInit, type InitRunResult } from "./init.js";
|
|
3
|
+
import { runHostInstall as defaultRunHostInstall, type HostCommandResult } from "./host.js";
|
|
4
|
+
import type { ClientId } from "../types.js";
|
|
5
|
+
export type InstallerKind = "uv" | "pip";
|
|
6
|
+
export type InstallerChoice = InstallerKind | "auto";
|
|
7
|
+
export interface InstallAllOptions {
|
|
8
|
+
readonly client: ClientId | "all";
|
|
9
|
+
readonly profile: "minimal" | "example";
|
|
10
|
+
readonly installer: InstallerChoice;
|
|
11
|
+
readonly skipInstall: boolean;
|
|
12
|
+
readonly yes: boolean;
|
|
13
|
+
readonly dryRun: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* When true, skip the native-messaging host registration step. The host
|
|
16
|
+
* is optional — it only matters if the user also installs the browser
|
|
17
|
+
* extension — but we install it by default so the happy path is one
|
|
18
|
+
* command.
|
|
19
|
+
*/
|
|
20
|
+
readonly noNativeHost: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface NativeHostOutcome {
|
|
23
|
+
/** "installed" = ran, "skipped" = --no-native-host or dry-run, "failed" = error caught. */
|
|
24
|
+
readonly status: "installed" | "skipped" | "failed";
|
|
25
|
+
readonly result?: HostCommandResult;
|
|
26
|
+
readonly error?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface PackageOutcome {
|
|
29
|
+
readonly pkg: string;
|
|
30
|
+
readonly entrypoint: string;
|
|
31
|
+
/** install step succeeded (exit 0) or was skipped */
|
|
32
|
+
readonly installed: boolean;
|
|
33
|
+
/** entrypoint --help returned exit 0 */
|
|
34
|
+
readonly onPath: boolean;
|
|
35
|
+
/** install command stderr (if any) */
|
|
36
|
+
readonly installError?: string;
|
|
37
|
+
/** path-check stderr (if any) */
|
|
38
|
+
readonly pathError?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface InstallAllResult {
|
|
41
|
+
/** "uv", "pip", or "skipped" / "dry-run" */
|
|
42
|
+
readonly installer: InstallerKind | "skipped" | "dry-run";
|
|
43
|
+
readonly packages: ReadonlyArray<PackageOutcome>;
|
|
44
|
+
readonly initResult: InitRunResult | null;
|
|
45
|
+
readonly nativeHost: NativeHostOutcome;
|
|
46
|
+
readonly messages: ReadonlyArray<string>;
|
|
47
|
+
/** 0 = ok, 1 = install/path failure, 2 = init failure */
|
|
48
|
+
readonly exitCode: 0 | 1 | 2;
|
|
49
|
+
}
|
|
50
|
+
export interface InstallAllDependencies {
|
|
51
|
+
readonly envOverrides?: Parameters<typeof readEnv>[0];
|
|
52
|
+
/**
|
|
53
|
+
* Override the spawn used to run install + --help commands. Defaults to
|
|
54
|
+
* `child_process.spawnSync`. Tests inject a fake.
|
|
55
|
+
*/
|
|
56
|
+
readonly spawn?: SpawnFn;
|
|
57
|
+
/**
|
|
58
|
+
* Override the init runner. Defaults to runInit. Tests can stub.
|
|
59
|
+
*/
|
|
60
|
+
readonly runInit?: typeof runInit;
|
|
61
|
+
/**
|
|
62
|
+
* Override the native-host install step. Defaults to the real
|
|
63
|
+
* `runHostInstall` from ./host.js. Tests inject a stub so they don't
|
|
64
|
+
* touch the user's registry / config dirs.
|
|
65
|
+
*/
|
|
66
|
+
readonly runHostInstall?: typeof defaultRunHostInstall;
|
|
67
|
+
}
|
|
68
|
+
export type SpawnFn = (command: string, args: ReadonlyArray<string>, options: {
|
|
69
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
70
|
+
}) => SpawnResult;
|
|
71
|
+
export interface SpawnResult {
|
|
72
|
+
readonly status: number | null;
|
|
73
|
+
readonly stdout: string;
|
|
74
|
+
readonly stderr: string;
|
|
75
|
+
readonly error?: NodeJS.ErrnoException;
|
|
76
|
+
}
|
|
77
|
+
export declare function runInstallAll(options: InstallAllOptions, deps?: InstallAllDependencies): Promise<InstallAllResult>;
|
|
78
|
+
//# sourceMappingURL=install-all.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-all.d.ts","sourceRoot":"","sources":["../../src/commands/install-all.ts"],"names":[],"mappings":"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"}
|