@neurodock/cli 0.2.0 → 0.4.3

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 (75) hide show
  1. package/CHANGELOG.md +105 -1
  2. package/LICENSE +657 -7
  3. package/README.md +128 -27
  4. package/dist/clients/claude-code.d.ts.map +1 -1
  5. package/dist/clients/claude-code.js +3 -1
  6. package/dist/clients/claude-code.js.map +1 -1
  7. package/dist/clients/claude-desktop.d.ts.map +1 -1
  8. package/dist/clients/claude-desktop.js +3 -1
  9. package/dist/clients/claude-desktop.js.map +1 -1
  10. package/dist/clients/cursor.d.ts.map +1 -1
  11. package/dist/clients/cursor.js +3 -1
  12. package/dist/clients/cursor.js.map +1 -1
  13. package/dist/clients/index.d.ts.map +1 -1
  14. package/dist/clients/index.js.map +1 -1
  15. package/dist/commands/doctor.d.ts.map +1 -1
  16. package/dist/commands/doctor.js +59 -4
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/examples.d.ts +28 -0
  19. package/dist/commands/examples.d.ts.map +1 -0
  20. package/dist/commands/examples.js +168 -0
  21. package/dist/commands/examples.js.map +1 -0
  22. package/dist/commands/host.d.ts.map +1 -1
  23. package/dist/commands/host.js +1 -1
  24. package/dist/commands/host.js.map +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +14 -4
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/install-all.d.ts +78 -0
  29. package/dist/commands/install-all.d.ts.map +1 -0
  30. package/dist/commands/install-all.js +283 -0
  31. package/dist/commands/install-all.js.map +1 -0
  32. package/dist/commands/plugin.d.ts +122 -0
  33. package/dist/commands/plugin.d.ts.map +1 -0
  34. package/dist/commands/plugin.js +545 -0
  35. package/dist/commands/plugin.js.map +1 -0
  36. package/dist/commands/profile.d.ts.map +1 -1
  37. package/dist/commands/profile.js +11 -2
  38. package/dist/commands/profile.js.map +1 -1
  39. package/dist/commands/uninstall.d.ts.map +1 -1
  40. package/dist/commands/uninstall.js +11 -3
  41. package/dist/commands/uninstall.js.map +1 -1
  42. package/dist/commands/update.d.ts.map +1 -1
  43. package/dist/commands/update.js +5 -1
  44. package/dist/commands/update.js.map +1 -1
  45. package/dist/commands/validate.d.ts.map +1 -1
  46. package/dist/commands/validate.js +12 -3
  47. package/dist/commands/validate.js.map +1 -1
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +145 -6
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/json-patch.d.ts.map +1 -1
  53. package/dist/lib/json-patch.js +1 -1
  54. package/dist/lib/json-patch.js.map +1 -1
  55. package/dist/lib/mcp-entries.d.ts.map +1 -1
  56. package/dist/lib/mcp-entries.js +25 -3
  57. package/dist/lib/mcp-entries.js.map +1 -1
  58. package/dist/lib/paths.d.ts +10 -0
  59. package/dist/lib/paths.d.ts.map +1 -1
  60. package/dist/lib/paths.js +19 -2
  61. package/dist/lib/paths.js.map +1 -1
  62. package/dist/lib/plugin-schema.d.ts +12 -0
  63. package/dist/lib/plugin-schema.d.ts.map +1 -0
  64. package/dist/lib/plugin-schema.js +71 -0
  65. package/dist/lib/plugin-schema.js.map +1 -0
  66. package/dist/profile/defaults.d.ts.map +1 -1
  67. package/dist/profile/defaults.js +3 -1
  68. package/dist/profile/defaults.js.map +1 -1
  69. package/dist/profile/loader.d.ts.map +1 -1
  70. package/dist/profile/loader.js +3 -1
  71. package/dist/profile/loader.js.map +1 -1
  72. package/dist/profile/validator.d.ts.map +1 -1
  73. package/dist/profile/validator.js +5 -1
  74. package/dist/profile/validator.js.map +1 -1
  75. package/package.json +21 -4
@@ -0,0 +1,545 @@
1
+ import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync, } from "node:fs";
2
+ import { isAbsolute, join, resolve } from "node:path";
3
+ import { parse as parseYaml } from "yaml";
4
+ import prompts from "prompts";
5
+ import { readEnv } from "../lib/env.js";
6
+ import { pluginsDir } from "../lib/paths.js";
7
+ import { validatePluginManifest, } from "../lib/plugin-schema.js";
8
+ /**
9
+ * Marker file written by `neurodock plugin enable <name>` inside the
10
+ * plugin's install directory. Chosen over a central `plugins.yaml`
11
+ * registry because:
12
+ * - presence-on-disk is the single source of truth for both "is
13
+ * installed" and "is enabled"
14
+ * - filesystem-only state lets the substrate walk
15
+ * `<pluginsDir>/<name>/` exactly per ADR 0007 with no extra file
16
+ * to keep in sync
17
+ * - removing the plugin directory naturally removes the enable state
18
+ */
19
+ export const ENABLED_MARKER = ".enabled";
20
+ export async function runPluginAdd(options, deps = {}) {
21
+ const env = readEnv(deps.envOverrides ?? {});
22
+ const messages = [];
23
+ const resolvedSource = isAbsolute(options.source)
24
+ ? options.source
25
+ : resolve(env.cwd, options.source);
26
+ // Validate source dir exists and is a directory.
27
+ if (!existsSync(resolvedSource)) {
28
+ messages.push(`Source path does not exist: ${resolvedSource}`);
29
+ return failResult("fail", options, resolvedSource, "", null, messages, [], 1);
30
+ }
31
+ const sourceStat = statSync(resolvedSource);
32
+ if (!sourceStat.isDirectory()) {
33
+ messages.push(`Source must be a directory: ${resolvedSource}`);
34
+ return failResult("fail", options, resolvedSource, "", null, messages, [], 1);
35
+ }
36
+ // Load + validate manifest.
37
+ const loaded = loadManifest(resolvedSource);
38
+ if (loaded.missing) {
39
+ messages.push(`No plugin.yaml in ${resolvedSource}`);
40
+ return failResult("fail", options, resolvedSource, "", null, messages, [], 1);
41
+ }
42
+ if (loaded.parseError !== undefined) {
43
+ messages.push(`Failed to parse plugin.yaml: ${loaded.parseError}`);
44
+ return failResult("fail", options, resolvedSource, "", null, messages, [], 3);
45
+ }
46
+ if (loaded.manifest === null) {
47
+ messages.push("plugin.yaml is invalid:");
48
+ for (const v of loaded.schemaViolations) {
49
+ messages.push(` ${v.path} (${v.keyword}): ${v.message}`);
50
+ }
51
+ return failResult("fail", options, resolvedSource, "", null, messages, loaded.schemaViolations, 3);
52
+ }
53
+ const manifest = loaded.manifest;
54
+ const destination = join(pluginsDir(env), manifest.name);
55
+ const alreadyInstalled = existsSync(destination);
56
+ if (alreadyInstalled && !options.force) {
57
+ if (options.yes) {
58
+ messages.push(`Plugin '${manifest.name}' is already installed at ${destination}.`);
59
+ messages.push("Re-run with --force to overwrite.");
60
+ return {
61
+ source: options.source,
62
+ resolvedSource,
63
+ destination,
64
+ manifest,
65
+ action: "aborted",
66
+ messages,
67
+ violations: [],
68
+ exitCode: 2,
69
+ };
70
+ }
71
+ const confirm = deps.confirm ?? defaultConfirm;
72
+ const ok = await confirm(`Plugin '${manifest.name}' is already installed. Overwrite ${destination}?`);
73
+ if (!ok) {
74
+ messages.push("Aborted. Existing install left in place.");
75
+ return {
76
+ source: options.source,
77
+ resolvedSource,
78
+ destination,
79
+ manifest,
80
+ action: "aborted",
81
+ messages,
82
+ violations: [],
83
+ exitCode: 2,
84
+ };
85
+ }
86
+ }
87
+ if (options.dryRun) {
88
+ messages.push(`Would install '${manifest.name}' (v${manifest.version}, type=${manifest.type})`);
89
+ messages.push(` from: ${resolvedSource}`);
90
+ messages.push(` to: ${destination}`);
91
+ if (alreadyInstalled) {
92
+ messages.push(" (would overwrite existing install)");
93
+ }
94
+ return {
95
+ source: options.source,
96
+ resolvedSource,
97
+ destination,
98
+ manifest,
99
+ action: "dry-run",
100
+ messages,
101
+ violations: [],
102
+ exitCode: 0,
103
+ };
104
+ }
105
+ // Perform install: ensure parent dir, remove existing if overwriting, copy.
106
+ mkdirSync(pluginsDir(env), { recursive: true });
107
+ if (alreadyInstalled) {
108
+ rmSync(destination, { recursive: true, force: true });
109
+ }
110
+ cpSync(resolvedSource, destination, { recursive: true });
111
+ const action = alreadyInstalled
112
+ ? "overwritten"
113
+ : "installed";
114
+ messages.push(`${alreadyInstalled ? "Overwrote" : "Installed"} plugin '${manifest.name}' (v${manifest.version}, type=${manifest.type})`);
115
+ messages.push(` to: ${destination}`);
116
+ messages.push("");
117
+ messages.push("Next: restart your MCP client to pick up the new plugin.");
118
+ messages.push("Run 'neurodock plugin enable " +
119
+ manifest.name +
120
+ "' to activate it (disabled by default).");
121
+ return {
122
+ source: options.source,
123
+ resolvedSource,
124
+ destination,
125
+ manifest,
126
+ action,
127
+ messages,
128
+ violations: [],
129
+ exitCode: 0,
130
+ };
131
+ }
132
+ function failResult(action, options, resolvedSource, destination, manifest, messages, violations, exitCode) {
133
+ return {
134
+ source: options.source,
135
+ resolvedSource,
136
+ destination,
137
+ manifest,
138
+ action,
139
+ messages,
140
+ violations,
141
+ exitCode,
142
+ };
143
+ }
144
+ export async function runPluginRemove(options, deps = {}) {
145
+ const env = readEnv(deps.envOverrides ?? {});
146
+ const messages = [];
147
+ const destination = join(pluginsDir(env), options.name);
148
+ if (!existsSync(destination)) {
149
+ messages.push(`Plugin '${options.name}' is not installed (no ${destination}).`);
150
+ return {
151
+ name: options.name,
152
+ destination,
153
+ action: "missing",
154
+ messages,
155
+ exitCode: 1,
156
+ };
157
+ }
158
+ if (options.dryRun) {
159
+ messages.push(`Would remove ${destination}`);
160
+ return {
161
+ name: options.name,
162
+ destination,
163
+ action: "dry-run",
164
+ messages,
165
+ exitCode: 0,
166
+ };
167
+ }
168
+ if (!options.yes) {
169
+ const confirm = deps.confirm ?? defaultConfirm;
170
+ const ok = await confirm(`Remove plugin '${options.name}' from ${destination}?`);
171
+ if (!ok) {
172
+ messages.push("Aborted. Plugin left in place.");
173
+ return {
174
+ name: options.name,
175
+ destination,
176
+ action: "aborted",
177
+ messages,
178
+ exitCode: 0,
179
+ };
180
+ }
181
+ }
182
+ rmSync(destination, { recursive: true, force: true });
183
+ messages.push(`Removed plugin '${options.name}' from ${destination}`);
184
+ return {
185
+ name: options.name,
186
+ destination,
187
+ action: "removed",
188
+ messages,
189
+ exitCode: 0,
190
+ };
191
+ }
192
+ export async function runPluginList(options, deps = {}) {
193
+ const env = readEnv(deps.envOverrides ?? {});
194
+ const root = pluginsDir(env);
195
+ const messages = [];
196
+ const plugins = [];
197
+ if (!existsSync(root)) {
198
+ if (options.json) {
199
+ messages.push(JSON.stringify({ root, plugins: [] }, null, 2));
200
+ }
201
+ else {
202
+ messages.push(`No plugins installed (no ${root}).`);
203
+ }
204
+ return { root, plugins, messages };
205
+ }
206
+ const entries = readdirSync(root, { withFileTypes: true })
207
+ .filter((e) => e.isDirectory())
208
+ .map((e) => e.name)
209
+ .sort();
210
+ for (const name of entries) {
211
+ const pluginPath = join(root, name);
212
+ const enabled = existsSync(join(pluginPath, ENABLED_MARKER));
213
+ const loaded = loadManifest(pluginPath);
214
+ plugins.push({
215
+ name,
216
+ path: pluginPath,
217
+ enabled,
218
+ manifest: loaded.manifest,
219
+ invalid: loaded.missing || loaded.manifest === null,
220
+ });
221
+ }
222
+ if (options.json) {
223
+ messages.push(JSON.stringify({
224
+ root,
225
+ plugins: plugins.map((p) => ({
226
+ name: p.name,
227
+ path: p.path,
228
+ enabled: p.enabled,
229
+ invalid: p.invalid,
230
+ ...(p.manifest
231
+ ? {
232
+ manifest: {
233
+ name: p.manifest.name,
234
+ type: p.manifest.type,
235
+ version: p.manifest.version,
236
+ },
237
+ }
238
+ : {}),
239
+ })),
240
+ }, null, 2));
241
+ return { root, plugins, messages };
242
+ }
243
+ if (plugins.length === 0) {
244
+ messages.push(`No plugins installed in ${root}.`);
245
+ return { root, plugins, messages };
246
+ }
247
+ messages.push(`Installed plugins in ${root}:`);
248
+ for (const p of plugins) {
249
+ const state = p.enabled ? "enabled " : "disabled";
250
+ const meta = p.manifest
251
+ ? `${p.manifest.type} v${p.manifest.version}`
252
+ : p.invalid
253
+ ? "(invalid manifest)"
254
+ : "(unknown)";
255
+ messages.push(` [${state}] ${p.name.padEnd(32)} ${meta}`);
256
+ }
257
+ return { root, plugins, messages };
258
+ }
259
+ export async function runPluginEnable(options, deps = {}) {
260
+ const env = readEnv(deps.envOverrides ?? {});
261
+ const messages = [];
262
+ const destination = join(pluginsDir(env), options.name);
263
+ const markerPath = join(destination, ENABLED_MARKER);
264
+ if (!existsSync(destination)) {
265
+ messages.push(`Plugin '${options.name}' is not installed (no ${destination}).`);
266
+ messages.push("Run 'neurodock plugin add <source>' first, then 'plugin enable'.");
267
+ return {
268
+ name: options.name,
269
+ destination,
270
+ markerPath,
271
+ action: "missing",
272
+ messages,
273
+ exitCode: 1,
274
+ };
275
+ }
276
+ if (existsSync(markerPath)) {
277
+ messages.push(`Plugin '${options.name}' is already enabled.`);
278
+ return {
279
+ name: options.name,
280
+ destination,
281
+ markerPath,
282
+ action: "already-enabled",
283
+ messages,
284
+ exitCode: 0,
285
+ };
286
+ }
287
+ writeFileSync(markerPath, `# Created by 'neurodock plugin enable'. Delete (or run\n# 'neurodock plugin disable ${options.name}') to deactivate.\n`, "utf8");
288
+ messages.push(`Enabled plugin '${options.name}'.`);
289
+ messages.push("Restart your MCP client to pick up the change.");
290
+ return {
291
+ name: options.name,
292
+ destination,
293
+ markerPath,
294
+ action: "enabled",
295
+ messages,
296
+ exitCode: 0,
297
+ };
298
+ }
299
+ export async function runPluginDisable(options, deps = {}) {
300
+ const env = readEnv(deps.envOverrides ?? {});
301
+ const messages = [];
302
+ const destination = join(pluginsDir(env), options.name);
303
+ const markerPath = join(destination, ENABLED_MARKER);
304
+ if (!existsSync(destination)) {
305
+ messages.push(`Plugin '${options.name}' is not installed (no ${destination}).`);
306
+ return {
307
+ name: options.name,
308
+ destination,
309
+ markerPath,
310
+ action: "missing",
311
+ messages,
312
+ exitCode: 1,
313
+ };
314
+ }
315
+ if (!existsSync(markerPath)) {
316
+ messages.push(`Plugin '${options.name}' is already disabled.`);
317
+ return {
318
+ name: options.name,
319
+ destination,
320
+ markerPath,
321
+ action: "already-disabled",
322
+ messages,
323
+ exitCode: 0,
324
+ };
325
+ }
326
+ rmSync(markerPath, { force: true });
327
+ messages.push(`Disabled plugin '${options.name}'.`);
328
+ messages.push("Restart your MCP client to pick up the change.");
329
+ return {
330
+ name: options.name,
331
+ destination,
332
+ markerPath,
333
+ action: "disabled",
334
+ messages,
335
+ exitCode: 0,
336
+ };
337
+ }
338
+ export async function runPluginValidate(options, deps = {}) {
339
+ const env = readEnv(deps.envOverrides ?? {});
340
+ const messages = [];
341
+ const resolvedSource = isAbsolute(options.source)
342
+ ? options.source
343
+ : resolve(env.cwd, options.source);
344
+ const manifestPath = join(resolvedSource, "plugin.yaml");
345
+ if (!existsSync(resolvedSource) || !statSync(resolvedSource).isDirectory()) {
346
+ if (options.json) {
347
+ messages.push(JSON.stringify({
348
+ valid: false,
349
+ missing: true,
350
+ manifest_path: manifestPath,
351
+ error: "source directory not found",
352
+ }, null, 2));
353
+ }
354
+ else {
355
+ messages.push(`Source directory not found: ${resolvedSource}`);
356
+ }
357
+ return {
358
+ source: options.source,
359
+ resolvedSource,
360
+ manifestPath,
361
+ valid: false,
362
+ missing: true,
363
+ violations: [],
364
+ manifest: null,
365
+ messages,
366
+ exitCode: 2,
367
+ };
368
+ }
369
+ const loaded = loadManifest(resolvedSource);
370
+ if (loaded.missing) {
371
+ if (options.json) {
372
+ messages.push(JSON.stringify({
373
+ valid: false,
374
+ missing: true,
375
+ manifest_path: manifestPath,
376
+ error: "plugin.yaml not found",
377
+ }, null, 2));
378
+ }
379
+ else {
380
+ messages.push(`Missing: ${manifestPath}`);
381
+ }
382
+ return {
383
+ source: options.source,
384
+ resolvedSource,
385
+ manifestPath,
386
+ valid: false,
387
+ missing: true,
388
+ violations: [],
389
+ manifest: null,
390
+ messages,
391
+ exitCode: 2,
392
+ };
393
+ }
394
+ if (loaded.parseError !== undefined) {
395
+ const violations = [
396
+ { path: "/", message: loaded.parseError, keyword: "parse" },
397
+ ];
398
+ if (options.json) {
399
+ messages.push(JSON.stringify({
400
+ valid: false,
401
+ missing: false,
402
+ manifest_path: manifestPath,
403
+ parse_error: loaded.parseError,
404
+ violations,
405
+ }, null, 2));
406
+ }
407
+ else {
408
+ messages.push(`Parse error in ${manifestPath}: ${loaded.parseError}`);
409
+ }
410
+ return {
411
+ source: options.source,
412
+ resolvedSource,
413
+ manifestPath,
414
+ valid: false,
415
+ missing: false,
416
+ parseError: loaded.parseError,
417
+ violations,
418
+ manifest: null,
419
+ messages,
420
+ exitCode: 1,
421
+ };
422
+ }
423
+ if (loaded.manifest === null) {
424
+ if (options.json) {
425
+ messages.push(JSON.stringify({
426
+ valid: false,
427
+ missing: false,
428
+ manifest_path: manifestPath,
429
+ violations: loaded.schemaViolations,
430
+ }, null, 2));
431
+ }
432
+ else {
433
+ messages.push(`Invalid: ${manifestPath}`);
434
+ for (const v of loaded.schemaViolations) {
435
+ messages.push(` ${v.path} (${v.keyword}): ${v.message}`);
436
+ }
437
+ }
438
+ return {
439
+ source: options.source,
440
+ resolvedSource,
441
+ manifestPath,
442
+ valid: false,
443
+ missing: false,
444
+ violations: loaded.schemaViolations,
445
+ manifest: null,
446
+ messages,
447
+ exitCode: 1,
448
+ };
449
+ }
450
+ if (options.json) {
451
+ messages.push(JSON.stringify({
452
+ valid: true,
453
+ missing: false,
454
+ manifest_path: manifestPath,
455
+ manifest: {
456
+ name: loaded.manifest.name,
457
+ type: loaded.manifest.type,
458
+ version: loaded.manifest.version,
459
+ },
460
+ }, null, 2));
461
+ }
462
+ else {
463
+ messages.push(`Valid: ${manifestPath}`);
464
+ messages.push(` name=${loaded.manifest.name} type=${loaded.manifest.type} version=${loaded.manifest.version}`);
465
+ }
466
+ return {
467
+ source: options.source,
468
+ resolvedSource,
469
+ manifestPath,
470
+ valid: true,
471
+ missing: false,
472
+ violations: [],
473
+ manifest: loaded.manifest,
474
+ messages,
475
+ exitCode: 0,
476
+ };
477
+ }
478
+ // ---------------------------------------------------------------------------
479
+ // shared helpers
480
+ // ---------------------------------------------------------------------------
481
+ function loadManifest(pluginDir) {
482
+ const manifestPath = join(pluginDir, "plugin.yaml");
483
+ if (!existsSync(manifestPath)) {
484
+ return {
485
+ raw: null,
486
+ manifest: null,
487
+ missing: true,
488
+ schemaViolations: [],
489
+ };
490
+ }
491
+ let raw;
492
+ try {
493
+ const text = readFileSync(manifestPath, "utf8");
494
+ raw = parseYaml(text);
495
+ }
496
+ catch (err) {
497
+ const message = err instanceof Error ? err.message : String(err);
498
+ return {
499
+ raw: null,
500
+ manifest: null,
501
+ missing: false,
502
+ parseError: message,
503
+ schemaViolations: [],
504
+ };
505
+ }
506
+ const result = validatePluginManifest(raw);
507
+ if (!result.valid) {
508
+ return {
509
+ raw,
510
+ manifest: null,
511
+ missing: false,
512
+ schemaViolations: result.violations,
513
+ };
514
+ }
515
+ // Schema-valid: extract the fields we use.
516
+ const obj = raw;
517
+ const manifest = {
518
+ name: String(obj["name"]),
519
+ type: String(obj["type"]),
520
+ version: String(obj["version"]),
521
+ ...(typeof obj["description"] === "string"
522
+ ? { description: obj["description"] }
523
+ : {}),
524
+ };
525
+ return {
526
+ raw,
527
+ manifest,
528
+ missing: false,
529
+ schemaViolations: [],
530
+ };
531
+ }
532
+ async function defaultConfirm(message) {
533
+ const response = await prompts({
534
+ type: "confirm",
535
+ name: "ok",
536
+ message,
537
+ initial: false,
538
+ }, {
539
+ onCancel: () => {
540
+ return false;
541
+ },
542
+ });
543
+ return response.ok === true;
544
+ }
545
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,CAalE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAQ1D"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,CAsBlE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAQ1D"}
@@ -2,7 +2,7 @@ import { existsSync } from "node:fs";
2
2
  import { readEnv } from "../lib/env.js";
3
3
  import { profilePath } from "../lib/paths.js";
4
4
  import { loadProfileFromFile, renderResolvedYaml } from "../profile/loader.js";
5
- import { validateProfile } from "../profile/validator.js";
5
+ import { validateProfile, } from "../profile/validator.js";
6
6
  export async function runProfileValidate() {
7
7
  const env = readEnv();
8
8
  const p = profilePath(env);
@@ -10,7 +10,16 @@ export async function runProfileValidate() {
10
10
  return {
11
11
  path: p,
12
12
  missing: true,
13
- result: { valid: false, violations: [{ path: "/", message: "profile file does not exist", keyword: "missing" }] },
13
+ result: {
14
+ valid: false,
15
+ violations: [
16
+ {
17
+ path: "/",
18
+ message: "profile file does not exist",
19
+ keyword: "missing",
20
+ },
21
+ ],
22
+ },
14
23
  };
15
24
  }
16
25
  const loaded = loadProfileFromFile(p);
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAyB,MAAM,yBAAyB,CAAC;AAQjF,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;SAClH,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AAQjC,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,IAAI;YACb,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,GAAG;wBACT,OAAO,EAAE,6BAA6B;wBACtC,OAAO,EAAE,SAAS;qBACnB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAChF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKxC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1F;AAID,wBAAsB,YAAY,CAChC,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAyF7B"}
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAUxC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,CACvB,MAAM,EAAE,SAAS,GAAG,OAAO,EAC3B,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAID,wBAAsB,YAAY,CAChC,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAmG7B"}
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync, } from "nod
2
2
  import { dirname, join } from "node:path";
3
3
  import prompts from "prompts";
4
4
  import { readEnv } from "../lib/env.js";
5
- import { detectClients, profileDir, profilePath } from "../lib/paths.js";
5
+ import { detectClients, profileDir, profilePath, } from "../lib/paths.js";
6
6
  import { adapterFor } from "../clients/index.js";
7
7
  import { parseJsonSafely } from "../lib/json-patch.js";
8
8
  const NEURODOCK_PREFIX = "neurodock-";
@@ -173,8 +173,16 @@ function formatDiff(clients, data) {
173
173
  out.push(` reason: ${d.reason}`);
174
174
  }
175
175
  out.push("Data files:");
176
- out.push(` profile: ${data.profilePath} (${data.profileExists ? (data.profileWillDelete ? "will delete" : "preserve") : "absent"})`);
177
- out.push(` graph: ${data.graphPath} (${data.graphExists ? (data.graphWillDelete ? "will delete" : "preserve") : "absent"})`);
176
+ out.push(` profile: ${data.profilePath} (${data.profileExists
177
+ ? data.profileWillDelete
178
+ ? "will delete"
179
+ : "preserve"
180
+ : "absent"})`);
181
+ out.push(` graph: ${data.graphPath} (${data.graphExists
182
+ ? data.graphWillDelete
183
+ ? "will delete"
184
+ : "preserve"
185
+ : "absent"})`);
178
186
  return out;
179
187
  }
180
188
  //# sourceMappingURL=uninstall.js.map