@springbrand/cli 0.1.0 → 0.1.1-alpha.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/README.md +35 -1
- package/dist/commands/auth.d.ts +13 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +8 -3
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +6 -1
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +42 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/lib/connect-all-summary.d.ts.map +1 -1
- package/dist/lib/connect-all-summary.js +5 -1
- package/dist/lib/connect-all-summary.js.map +1 -1
- package/dist/lib/connect-all.d.ts +4 -1
- package/dist/lib/connect-all.d.ts.map +1 -1
- package/dist/lib/connect-all.js +8 -2
- package/dist/lib/connect-all.js.map +1 -1
- package/dist/lib/doctor-checks.d.ts +6 -0
- package/dist/lib/doctor-checks.d.ts.map +1 -1
- package/dist/lib/doctor-checks.js +27 -0
- package/dist/lib/doctor-checks.js.map +1 -1
- package/dist/lib/doctor-machine.d.ts +13 -0
- package/dist/lib/doctor-machine.d.ts.map +1 -0
- package/dist/lib/doctor-machine.js +208 -0
- package/dist/lib/doctor-machine.js.map +1 -0
- package/dist/lib/doctor-report.d.ts +307 -0
- package/dist/lib/doctor-report.d.ts.map +1 -1
- package/dist/lib/doctor-report.js +80 -0
- package/dist/lib/doctor-report.js.map +1 -1
- package/dist/lib/mcp-endpoint.d.ts +6 -0
- package/dist/lib/mcp-endpoint.d.ts.map +1 -1
- package/dist/lib/mcp-endpoint.js +8 -0
- package/dist/lib/mcp-endpoint.js.map +1 -1
- package/dist/lib/registration-detect.d.ts +13 -0
- package/dist/lib/registration-detect.d.ts.map +1 -1
- package/dist/lib/registration-detect.js +45 -0
- package/dist/lib/registration-detect.js.map +1 -1
- package/package.json +2 -1
|
@@ -167,6 +167,309 @@ export declare const doctorReportSchema: z.ZodObject<{
|
|
|
167
167
|
hermes_plugin_version: z.ZodOptional<z.ZodString>;
|
|
168
168
|
hermes_plugin_expected_version: z.ZodOptional<z.ZodString>;
|
|
169
169
|
}, z.core.$strip>;
|
|
170
|
+
/**
|
|
171
|
+
* Explicit machine mode is versioned independently from the legacy default JSON.
|
|
172
|
+
* Version policy: bump for breaking reads; additive optional fields remain
|
|
173
|
+
* forward-compatible under the same version.
|
|
174
|
+
*/
|
|
175
|
+
export declare const DOCTOR_MACHINE_SCHEMA_VERSION = 1;
|
|
176
|
+
declare const machinePhaseStatusSchema: z.ZodEnum<{
|
|
177
|
+
unknown: "unknown";
|
|
178
|
+
pass: "pass";
|
|
179
|
+
fail: "fail";
|
|
180
|
+
warn: "warn";
|
|
181
|
+
skip: "skip";
|
|
182
|
+
}>;
|
|
183
|
+
declare const machinePhaseNameSchema: z.ZodEnum<{
|
|
184
|
+
auth: "auth";
|
|
185
|
+
skills: "skills";
|
|
186
|
+
detection: "detection";
|
|
187
|
+
mcp_configured: "mcp_configured";
|
|
188
|
+
tools: "tools";
|
|
189
|
+
restart: "restart";
|
|
190
|
+
}>;
|
|
191
|
+
export declare const doctorMachineReportSchema: z.ZodObject<{
|
|
192
|
+
schema_version: z.ZodLiteral<1>;
|
|
193
|
+
outcome: z.ZodLiteral<"completed">;
|
|
194
|
+
cli_version: z.ZodString;
|
|
195
|
+
verdict: z.ZodEnum<{
|
|
196
|
+
pass: "pass";
|
|
197
|
+
fail: "fail";
|
|
198
|
+
warn: "warn";
|
|
199
|
+
}>;
|
|
200
|
+
ok_harnesses: z.ZodBoolean;
|
|
201
|
+
ok_cli: z.ZodBoolean;
|
|
202
|
+
checks: z.ZodArray<z.ZodObject<{
|
|
203
|
+
id: z.ZodString;
|
|
204
|
+
status: z.ZodEnum<{
|
|
205
|
+
pass: "pass";
|
|
206
|
+
fail: "fail";
|
|
207
|
+
warn: "warn";
|
|
208
|
+
skip: "skip";
|
|
209
|
+
}>;
|
|
210
|
+
harness: z.ZodNullable<z.ZodEnum<{
|
|
211
|
+
openclaw: "openclaw";
|
|
212
|
+
omp: "omp";
|
|
213
|
+
grok: "grok";
|
|
214
|
+
cursor: "cursor";
|
|
215
|
+
codex: "codex";
|
|
216
|
+
hermes: "hermes";
|
|
217
|
+
"command-code": "command-code";
|
|
218
|
+
opencode: "opencode";
|
|
219
|
+
pi: "pi";
|
|
220
|
+
"claude-code": "claude-code";
|
|
221
|
+
}>>;
|
|
222
|
+
scope: z.ZodEnum<{
|
|
223
|
+
cli: "cli";
|
|
224
|
+
harness: "harness";
|
|
225
|
+
info: "info";
|
|
226
|
+
}>;
|
|
227
|
+
}, z.core.$strip>>;
|
|
228
|
+
hosts: z.ZodArray<z.ZodObject<{
|
|
229
|
+
harness: z.ZodEnum<{
|
|
230
|
+
openclaw: "openclaw";
|
|
231
|
+
omp: "omp";
|
|
232
|
+
grok: "grok";
|
|
233
|
+
cursor: "cursor";
|
|
234
|
+
codex: "codex";
|
|
235
|
+
hermes: "hermes";
|
|
236
|
+
"command-code": "command-code";
|
|
237
|
+
opencode: "opencode";
|
|
238
|
+
pi: "pi";
|
|
239
|
+
"claude-code": "claude-code";
|
|
240
|
+
}>;
|
|
241
|
+
detected: z.ZodBoolean;
|
|
242
|
+
mcp_configured: z.ZodObject<{
|
|
243
|
+
status: z.ZodEnum<{
|
|
244
|
+
unknown: "unknown";
|
|
245
|
+
pass: "pass";
|
|
246
|
+
fail: "fail";
|
|
247
|
+
warn: "warn";
|
|
248
|
+
skip: "skip";
|
|
249
|
+
}>;
|
|
250
|
+
code: z.ZodEnum<{
|
|
251
|
+
not_detected: "not_detected";
|
|
252
|
+
configured: "configured";
|
|
253
|
+
not_configured: "not_configured";
|
|
254
|
+
mcp_misconfigured: "mcp_misconfigured";
|
|
255
|
+
registration_unknown: "registration_unknown";
|
|
256
|
+
not_applicable: "not_applicable";
|
|
257
|
+
auth_failed: "auth_failed";
|
|
258
|
+
auth_unknown: "auth_unknown";
|
|
259
|
+
auth_unverified: "auth_unverified";
|
|
260
|
+
auth_configured: "auth_configured";
|
|
261
|
+
skills_ready: "skills_ready";
|
|
262
|
+
skills_pass: "skills_pass";
|
|
263
|
+
skills_warn: "skills_warn";
|
|
264
|
+
skills_fail: "skills_fail";
|
|
265
|
+
skills_skip: "skills_skip";
|
|
266
|
+
skills_unknown: "skills_unknown";
|
|
267
|
+
tools_unreachable: "tools_unreachable";
|
|
268
|
+
tools_unverified: "tools_unverified";
|
|
269
|
+
tools_unknown: "tools_unknown";
|
|
270
|
+
harness_reach_verified: "harness_reach_verified";
|
|
271
|
+
skills_need_attention: "skills_need_attention";
|
|
272
|
+
not_required: "not_required";
|
|
273
|
+
restart_required: "restart_required";
|
|
274
|
+
restart_unknown: "restart_unknown";
|
|
275
|
+
}>;
|
|
276
|
+
}, z.core.$strip>;
|
|
277
|
+
auth: z.ZodObject<{
|
|
278
|
+
status: z.ZodEnum<{
|
|
279
|
+
unknown: "unknown";
|
|
280
|
+
pass: "pass";
|
|
281
|
+
fail: "fail";
|
|
282
|
+
warn: "warn";
|
|
283
|
+
skip: "skip";
|
|
284
|
+
}>;
|
|
285
|
+
code: z.ZodEnum<{
|
|
286
|
+
not_detected: "not_detected";
|
|
287
|
+
configured: "configured";
|
|
288
|
+
not_configured: "not_configured";
|
|
289
|
+
mcp_misconfigured: "mcp_misconfigured";
|
|
290
|
+
registration_unknown: "registration_unknown";
|
|
291
|
+
not_applicable: "not_applicable";
|
|
292
|
+
auth_failed: "auth_failed";
|
|
293
|
+
auth_unknown: "auth_unknown";
|
|
294
|
+
auth_unverified: "auth_unverified";
|
|
295
|
+
auth_configured: "auth_configured";
|
|
296
|
+
skills_ready: "skills_ready";
|
|
297
|
+
skills_pass: "skills_pass";
|
|
298
|
+
skills_warn: "skills_warn";
|
|
299
|
+
skills_fail: "skills_fail";
|
|
300
|
+
skills_skip: "skills_skip";
|
|
301
|
+
skills_unknown: "skills_unknown";
|
|
302
|
+
tools_unreachable: "tools_unreachable";
|
|
303
|
+
tools_unverified: "tools_unverified";
|
|
304
|
+
tools_unknown: "tools_unknown";
|
|
305
|
+
harness_reach_verified: "harness_reach_verified";
|
|
306
|
+
skills_need_attention: "skills_need_attention";
|
|
307
|
+
not_required: "not_required";
|
|
308
|
+
restart_required: "restart_required";
|
|
309
|
+
restart_unknown: "restart_unknown";
|
|
310
|
+
}>;
|
|
311
|
+
}, z.core.$strip>;
|
|
312
|
+
skills: z.ZodObject<{
|
|
313
|
+
status: z.ZodEnum<{
|
|
314
|
+
unknown: "unknown";
|
|
315
|
+
pass: "pass";
|
|
316
|
+
fail: "fail";
|
|
317
|
+
warn: "warn";
|
|
318
|
+
skip: "skip";
|
|
319
|
+
}>;
|
|
320
|
+
code: z.ZodEnum<{
|
|
321
|
+
not_detected: "not_detected";
|
|
322
|
+
configured: "configured";
|
|
323
|
+
not_configured: "not_configured";
|
|
324
|
+
mcp_misconfigured: "mcp_misconfigured";
|
|
325
|
+
registration_unknown: "registration_unknown";
|
|
326
|
+
not_applicable: "not_applicable";
|
|
327
|
+
auth_failed: "auth_failed";
|
|
328
|
+
auth_unknown: "auth_unknown";
|
|
329
|
+
auth_unverified: "auth_unverified";
|
|
330
|
+
auth_configured: "auth_configured";
|
|
331
|
+
skills_ready: "skills_ready";
|
|
332
|
+
skills_pass: "skills_pass";
|
|
333
|
+
skills_warn: "skills_warn";
|
|
334
|
+
skills_fail: "skills_fail";
|
|
335
|
+
skills_skip: "skills_skip";
|
|
336
|
+
skills_unknown: "skills_unknown";
|
|
337
|
+
tools_unreachable: "tools_unreachable";
|
|
338
|
+
tools_unverified: "tools_unverified";
|
|
339
|
+
tools_unknown: "tools_unknown";
|
|
340
|
+
harness_reach_verified: "harness_reach_verified";
|
|
341
|
+
skills_need_attention: "skills_need_attention";
|
|
342
|
+
not_required: "not_required";
|
|
343
|
+
restart_required: "restart_required";
|
|
344
|
+
restart_unknown: "restart_unknown";
|
|
345
|
+
}>;
|
|
346
|
+
}, z.core.$strip>;
|
|
347
|
+
tools: z.ZodObject<{
|
|
348
|
+
status: z.ZodEnum<{
|
|
349
|
+
unknown: "unknown";
|
|
350
|
+
pass: "pass";
|
|
351
|
+
fail: "fail";
|
|
352
|
+
warn: "warn";
|
|
353
|
+
skip: "skip";
|
|
354
|
+
}>;
|
|
355
|
+
code: z.ZodEnum<{
|
|
356
|
+
not_detected: "not_detected";
|
|
357
|
+
configured: "configured";
|
|
358
|
+
not_configured: "not_configured";
|
|
359
|
+
mcp_misconfigured: "mcp_misconfigured";
|
|
360
|
+
registration_unknown: "registration_unknown";
|
|
361
|
+
not_applicable: "not_applicable";
|
|
362
|
+
auth_failed: "auth_failed";
|
|
363
|
+
auth_unknown: "auth_unknown";
|
|
364
|
+
auth_unverified: "auth_unverified";
|
|
365
|
+
auth_configured: "auth_configured";
|
|
366
|
+
skills_ready: "skills_ready";
|
|
367
|
+
skills_pass: "skills_pass";
|
|
368
|
+
skills_warn: "skills_warn";
|
|
369
|
+
skills_fail: "skills_fail";
|
|
370
|
+
skills_skip: "skills_skip";
|
|
371
|
+
skills_unknown: "skills_unknown";
|
|
372
|
+
tools_unreachable: "tools_unreachable";
|
|
373
|
+
tools_unverified: "tools_unverified";
|
|
374
|
+
tools_unknown: "tools_unknown";
|
|
375
|
+
harness_reach_verified: "harness_reach_verified";
|
|
376
|
+
skills_need_attention: "skills_need_attention";
|
|
377
|
+
not_required: "not_required";
|
|
378
|
+
restart_required: "restart_required";
|
|
379
|
+
restart_unknown: "restart_unknown";
|
|
380
|
+
}>;
|
|
381
|
+
}, z.core.$strip>;
|
|
382
|
+
restart_required: z.ZodObject<{
|
|
383
|
+
status: z.ZodEnum<{
|
|
384
|
+
unknown: "unknown";
|
|
385
|
+
pass: "pass";
|
|
386
|
+
fail: "fail";
|
|
387
|
+
warn: "warn";
|
|
388
|
+
skip: "skip";
|
|
389
|
+
}>;
|
|
390
|
+
code: z.ZodEnum<{
|
|
391
|
+
not_detected: "not_detected";
|
|
392
|
+
configured: "configured";
|
|
393
|
+
not_configured: "not_configured";
|
|
394
|
+
mcp_misconfigured: "mcp_misconfigured";
|
|
395
|
+
registration_unknown: "registration_unknown";
|
|
396
|
+
not_applicable: "not_applicable";
|
|
397
|
+
auth_failed: "auth_failed";
|
|
398
|
+
auth_unknown: "auth_unknown";
|
|
399
|
+
auth_unverified: "auth_unverified";
|
|
400
|
+
auth_configured: "auth_configured";
|
|
401
|
+
skills_ready: "skills_ready";
|
|
402
|
+
skills_pass: "skills_pass";
|
|
403
|
+
skills_warn: "skills_warn";
|
|
404
|
+
skills_fail: "skills_fail";
|
|
405
|
+
skills_skip: "skills_skip";
|
|
406
|
+
skills_unknown: "skills_unknown";
|
|
407
|
+
tools_unreachable: "tools_unreachable";
|
|
408
|
+
tools_unverified: "tools_unverified";
|
|
409
|
+
tools_unknown: "tools_unknown";
|
|
410
|
+
harness_reach_verified: "harness_reach_verified";
|
|
411
|
+
skills_need_attention: "skills_need_attention";
|
|
412
|
+
not_required: "not_required";
|
|
413
|
+
restart_required: "restart_required";
|
|
414
|
+
restart_unknown: "restart_unknown";
|
|
415
|
+
}>;
|
|
416
|
+
required: z.ZodBoolean;
|
|
417
|
+
}, z.core.$strip>;
|
|
418
|
+
failed_phase: z.ZodNullable<z.ZodEnum<{
|
|
419
|
+
auth: "auth";
|
|
420
|
+
skills: "skills";
|
|
421
|
+
detection: "detection";
|
|
422
|
+
mcp_configured: "mcp_configured";
|
|
423
|
+
tools: "tools";
|
|
424
|
+
restart: "restart";
|
|
425
|
+
}>>;
|
|
426
|
+
}, z.core.$strip>>;
|
|
427
|
+
repairs: z.ZodArray<z.ZodObject<{
|
|
428
|
+
action: z.ZodEnum<{
|
|
429
|
+
connect: "connect";
|
|
430
|
+
"auth-login": "auth-login";
|
|
431
|
+
}>;
|
|
432
|
+
harness: z.ZodNullable<z.ZodEnum<{
|
|
433
|
+
openclaw: "openclaw";
|
|
434
|
+
omp: "omp";
|
|
435
|
+
grok: "grok";
|
|
436
|
+
cursor: "cursor";
|
|
437
|
+
codex: "codex";
|
|
438
|
+
hermes: "hermes";
|
|
439
|
+
"command-code": "command-code";
|
|
440
|
+
opencode: "opencode";
|
|
441
|
+
pi: "pi";
|
|
442
|
+
"claude-code": "claude-code";
|
|
443
|
+
}>>;
|
|
444
|
+
status: z.ZodEnum<{
|
|
445
|
+
failed: "failed";
|
|
446
|
+
offered: "offered";
|
|
447
|
+
repaired: "repaired";
|
|
448
|
+
skipped: "skipped";
|
|
449
|
+
}>;
|
|
450
|
+
code: z.ZodEnum<{
|
|
451
|
+
repaired: "repaired";
|
|
452
|
+
skipped: "skipped";
|
|
453
|
+
repair_available: "repair_available";
|
|
454
|
+
no_terminal: "no_terminal";
|
|
455
|
+
interactive_auth_required: "interactive_auth_required";
|
|
456
|
+
repair_failed: "repair_failed";
|
|
457
|
+
}>;
|
|
458
|
+
}, z.core.$strip>>;
|
|
459
|
+
}, z.core.$strip>;
|
|
460
|
+
export declare const doctorMachineErrorSchema: z.ZodObject<{
|
|
461
|
+
schema_version: z.ZodLiteral<1>;
|
|
462
|
+
outcome: z.ZodLiteral<"could_not_run">;
|
|
463
|
+
phase: z.ZodEnum<{
|
|
464
|
+
input: "input";
|
|
465
|
+
run: "run";
|
|
466
|
+
}>;
|
|
467
|
+
error_code: z.ZodEnum<{
|
|
468
|
+
invalid_input: "invalid_input";
|
|
469
|
+
doctor_failed: "doctor_failed";
|
|
470
|
+
}>;
|
|
471
|
+
retryable: z.ZodBoolean;
|
|
472
|
+
}, z.core.$strip>;
|
|
170
473
|
/** Doctor itself broke, which is a different claim from "your setup is broken". */
|
|
171
474
|
export declare const DOCTOR_COULD_NOT_RUN = 2;
|
|
172
475
|
/** The invocation was wrong, not the machine; exit 2 stays "doctor broke". */
|
|
@@ -185,6 +488,10 @@ export type DoctorCheck = z.infer<typeof doctorCheckSchema>;
|
|
|
185
488
|
export type DoctorHarness = z.infer<typeof doctorHarnessSchema>;
|
|
186
489
|
export type DoctorRepair = z.infer<typeof doctorRepairSchema>;
|
|
187
490
|
export type DoctorReport = z.infer<typeof doctorReportSchema>;
|
|
491
|
+
export type MachinePhaseStatus = z.infer<typeof machinePhaseStatusSchema>;
|
|
492
|
+
export type MachinePhase = z.infer<typeof machinePhaseNameSchema>;
|
|
493
|
+
export type DoctorMachineReport = z.infer<typeof doctorMachineReportSchema>;
|
|
494
|
+
export type DoctorMachineError = z.infer<typeof doctorMachineErrorSchema>;
|
|
188
495
|
export interface DoctorOptions {
|
|
189
496
|
mcpUrl: string;
|
|
190
497
|
harness?: Harness;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-report.d.ts","sourceRoot":"","sources":["../../src/lib/doctor-report.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1E,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,QAAA,MAAM,iBAAiB;;;;;EAA2C,CAAC;AAGnE,QAAA,MAAM,gBAAgB;;;;EAAqC,CAAC;AAC5D,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOrB,CAAC;AACH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAQvB,CAAC;AAGH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;iBAMtB,CAAC;AAKH,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;IACzB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3B,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;QAChB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7B,QAAQ,EAAE,UAAU,CAAC;YACrB,GAAG,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,QAAQ,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE,QAAQ,CAAC;YACjB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,UAAU,CAAC;YACrB,EAAE,EAAE,IAAI,CAAC;YACT,aAAa,EAAE,aAAa,CAAC;SAChC,CAAC,CAAC,CAAC;QACJ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;YACb,GAAG,EAAE,KAAK,CAAC;YACX,OAAO,EAAE,SAAS,CAAC;YACnB,IAAI,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACN,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;YACf,QAAQ,EAAE,UAAU,CAAC;YACrB,GAAG,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,QAAQ,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE,QAAQ,CAAC;YACjB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,UAAU,CAAC;YACrB,EAAE,EAAE,IAAI,CAAC;YACT,aAAa,EAAE,aAAa,CAAC;SAChC,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;QACvB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;QACzC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;QACtC,kBAAkB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE,SAAS,CAAC;YACrB,KAAK,EAAE,OAAO,CAAC;YACf,QAAQ,EAAE,UAAU,CAAC;SACxB,CAAC,CAAC,CAAC;QACJ,oBAAoB,EAAE,CAAC,CAAC,UAAU,CAAC;KACtC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5B,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC;QACjB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,EAAE,SAAS,CAAC;YACnB,YAAY,EAAE,YAAY,CAAC;SAC9B,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7B,QAAQ,EAAE,UAAU,CAAC;YACrB,GAAG,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,QAAQ,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE,QAAQ,CAAC;YACjB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,UAAU,CAAC;YACrB,EAAE,EAAE,IAAI,CAAC;YACT,aAAa,EAAE,aAAa,CAAC;SAChC,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;QACrB,eAAe,EAAE,CAAC,CAAC,UAAU,CAAC;KACjC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnB,qBAAqB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,8BAA8B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAC9D,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAsBd,CAAC;AAEH,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACnB,CAEA;AACD,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAExD;AAeD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAWzD;AAGD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"doctor-report.d.ts","sourceRoot":"","sources":["../../src/lib/doctor-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,86 @@ export const doctorReportSchema = z
|
|
|
60
60
|
message: 'ok_cli cannot be true while a CLI check has failed',
|
|
61
61
|
path: ['ok_cli'],
|
|
62
62
|
});
|
|
63
|
+
/**
|
|
64
|
+
* Explicit machine mode is versioned independently from the legacy default JSON.
|
|
65
|
+
* Version policy: bump for breaking reads; additive optional fields remain
|
|
66
|
+
* forward-compatible under the same version.
|
|
67
|
+
*/
|
|
68
|
+
export const DOCTOR_MACHINE_SCHEMA_VERSION = 1;
|
|
69
|
+
const machinePhaseStatusSchema = z.enum(['pass', 'fail', 'warn', 'skip', 'unknown']);
|
|
70
|
+
const machinePhaseSchema = z.object({
|
|
71
|
+
status: machinePhaseStatusSchema,
|
|
72
|
+
// Codes are authored by the CLI; free text is deliberately not part of this contract.
|
|
73
|
+
code: z.enum([
|
|
74
|
+
'not_detected',
|
|
75
|
+
'configured',
|
|
76
|
+
'not_configured',
|
|
77
|
+
'mcp_misconfigured',
|
|
78
|
+
'registration_unknown',
|
|
79
|
+
'not_applicable',
|
|
80
|
+
'auth_failed',
|
|
81
|
+
'auth_unknown',
|
|
82
|
+
'auth_unverified',
|
|
83
|
+
'auth_configured',
|
|
84
|
+
'skills_ready',
|
|
85
|
+
'skills_pass',
|
|
86
|
+
'skills_warn',
|
|
87
|
+
'skills_fail',
|
|
88
|
+
'skills_skip',
|
|
89
|
+
'skills_unknown',
|
|
90
|
+
'tools_unreachable',
|
|
91
|
+
'tools_unverified',
|
|
92
|
+
'tools_unknown',
|
|
93
|
+
'harness_reach_verified',
|
|
94
|
+
'skills_need_attention',
|
|
95
|
+
'not_required',
|
|
96
|
+
'restart_required',
|
|
97
|
+
'restart_unknown',
|
|
98
|
+
]),
|
|
99
|
+
});
|
|
100
|
+
const machinePhaseNameSchema = z.enum(['detection', 'mcp_configured', 'auth', 'skills', 'tools', 'restart']);
|
|
101
|
+
const machineCheckSchema = z.object({
|
|
102
|
+
id: z.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/),
|
|
103
|
+
status: checkStatusSchema,
|
|
104
|
+
harness: harnessSchema.nullable(),
|
|
105
|
+
scope: checkScopeSchema,
|
|
106
|
+
});
|
|
107
|
+
const machineHostSchema = z.object({
|
|
108
|
+
harness: harnessSchema,
|
|
109
|
+
detected: z.boolean(),
|
|
110
|
+
mcp_configured: machinePhaseSchema,
|
|
111
|
+
auth: machinePhaseSchema,
|
|
112
|
+
skills: machinePhaseSchema,
|
|
113
|
+
tools: machinePhaseSchema,
|
|
114
|
+
restart_required: machinePhaseSchema.extend({ required: z.boolean() }),
|
|
115
|
+
failed_phase: machinePhaseNameSchema.nullable(),
|
|
116
|
+
});
|
|
117
|
+
const machineRepairSchema = z.object({
|
|
118
|
+
action: z.enum(['connect', 'auth-login']),
|
|
119
|
+
harness: harnessSchema.nullable(),
|
|
120
|
+
status: z.enum(['offered', 'repaired', 'skipped', 'failed']),
|
|
121
|
+
code: z.enum(['repair_available', 'repaired', 'no_terminal', 'interactive_auth_required', 'skipped', 'repair_failed']),
|
|
122
|
+
});
|
|
123
|
+
export const doctorMachineReportSchema = z.object({
|
|
124
|
+
schema_version: z.literal(DOCTOR_MACHINE_SCHEMA_VERSION),
|
|
125
|
+
outcome: z.literal('completed'),
|
|
126
|
+
cli_version: z.string().max(32),
|
|
127
|
+
verdict: z.enum(['pass', 'warn', 'fail']),
|
|
128
|
+
ok_harnesses: z.boolean(),
|
|
129
|
+
ok_cli: z.boolean(),
|
|
130
|
+
checks: z.array(machineCheckSchema),
|
|
131
|
+
hosts: z.array(machineHostSchema),
|
|
132
|
+
repairs: z.array(machineRepairSchema),
|
|
133
|
+
});
|
|
134
|
+
const machineErrorPhaseSchema = z.enum(['input', 'run']);
|
|
135
|
+
const machineErrorCodeSchema = z.enum(['invalid_input', 'doctor_failed']);
|
|
136
|
+
export const doctorMachineErrorSchema = z.object({
|
|
137
|
+
schema_version: z.literal(DOCTOR_MACHINE_SCHEMA_VERSION),
|
|
138
|
+
outcome: z.literal('could_not_run'),
|
|
139
|
+
phase: machineErrorPhaseSchema,
|
|
140
|
+
error_code: machineErrorCodeSchema,
|
|
141
|
+
retryable: z.boolean(),
|
|
142
|
+
});
|
|
63
143
|
const GLYPHS = { pass: '✓', fail: '✗', warn: '⚠', skip: '…' };
|
|
64
144
|
/** Doctor itself broke, which is a different claim from "your setup is broken". */
|
|
65
145
|
export const DOCTOR_COULD_NOT_RUN = 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-report.js","sourceRoot":"","sources":["../../src/lib/doctor-report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor-report.js","sourceRoot":"","sources":["../../src/lib/doctor-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** 复刻自 tiny-fish CLI 编译产物:mcp-endpoint.d.ts + mcp-endpoint.impl.js */
|
|
2
2
|
import type { KeyEnvironment } from './auth.js';
|
|
3
3
|
export declare const DEFAULT_MCP_URL = "https://connector.springbrand.ai/mcp";
|
|
4
|
+
export declare const DEV_MCP_URL = "https://devconnector.springbrand.ai/mcp";
|
|
4
5
|
/**
|
|
5
6
|
* Which environment's keys an endpoint accepts. Mirrors the Gateway's `mcpWireEnvironment`:
|
|
6
7
|
* the production host serves production keys and every other host — dev, local — serves dev.
|
|
@@ -11,6 +12,11 @@ export declare function environmentOf(mcpUrl: string): KeyEnvironment | undefine
|
|
|
11
12
|
export declare function endpointOf(url: string): string;
|
|
12
13
|
/** One host serves `/mcp` and `/v1`, so origin is the API base. */
|
|
13
14
|
export declare function apiBaseFromMcpUrl(mcpUrl: string): string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* For callers with no URL context (`sp auth status --verify`): the key's own environment
|
|
17
|
+
* picks the gateway. Production keeps the `BASE_URL` fallback; only dev is remapped.
|
|
18
|
+
*/
|
|
19
|
+
export declare function apiBaseForKeyEnvironment(environment: KeyEnvironment | undefined): string | undefined;
|
|
14
20
|
/** doctor reuses the CLI's own BASE_URL check; off-default endpoints cannot. */
|
|
15
21
|
export declare function isDefaultEndpoint(mcpUrl: string): boolean;
|
|
16
22
|
//# sourceMappingURL=mcp-endpoint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-endpoint.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-endpoint.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,eAAO,MAAM,eAAe,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-endpoint.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-endpoint.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,eAAO,MAAM,eAAe,yCAAyC,CAAC;AACtE,eAAO,MAAM,WAAW,4CAA4C,CAAC;AAErE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAOxE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AACD,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOpE;AACD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEpG;AACD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOzD"}
|
package/dist/lib/mcp-endpoint.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** 复刻自 tiny-fish CLI 编译产物:mcp-endpoint.d.ts + mcp-endpoint.impl.js */
|
|
2
2
|
export const DEFAULT_MCP_URL = 'https://connector.springbrand.ai/mcp';
|
|
3
|
+
export const DEV_MCP_URL = 'https://devconnector.springbrand.ai/mcp';
|
|
3
4
|
const PRODUCTION_HOST = 'connector.springbrand.ai';
|
|
4
5
|
/**
|
|
5
6
|
* Which environment's keys an endpoint accepts. Mirrors the Gateway's `mcpWireEnvironment`:
|
|
@@ -29,6 +30,13 @@ export function apiBaseFromMcpUrl(mcpUrl) {
|
|
|
29
30
|
return undefined;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* For callers with no URL context (`sp auth status --verify`): the key's own environment
|
|
35
|
+
* picks the gateway. Production keeps the `BASE_URL` fallback; only dev is remapped.
|
|
36
|
+
*/
|
|
37
|
+
export function apiBaseForKeyEnvironment(environment) {
|
|
38
|
+
return environment === 'dev' ? apiBaseFromMcpUrl(DEV_MCP_URL) : undefined;
|
|
39
|
+
}
|
|
32
40
|
/** doctor reuses the CLI's own BASE_URL check; off-default endpoints cannot. */
|
|
33
41
|
export function isDefaultEndpoint(mcpUrl) {
|
|
34
42
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-endpoint.js","sourceRoot":"","sources":["../../src/lib/mcp-endpoint.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAGtE,MAAM,CAAC,MAAM,eAAe,GAAG,sCAAsC,CAAC;AACtE,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,IAAI,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AACnE,CAAC;AACD,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,IAAI,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,IAAI,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-endpoint.js","sourceRoot":"","sources":["../../src/lib/mcp-endpoint.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAGtE,MAAM,CAAC,MAAM,eAAe,GAAG,sCAAsC,CAAC;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,yCAAyC,CAAC;AACrE,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,IAAI,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AACnE,CAAC;AACD,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,IAAI,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAuC;IAC5E,OAAO,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AACD,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC5C,IAAI,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
|
|
@@ -4,6 +4,19 @@ import type { Harness } from './harness-detect.js';
|
|
|
4
4
|
import { AuthMode, Registered } from './harness-detect.js';
|
|
5
5
|
/** Per-harness sign-in probes; connect composes these rather than the descriptor carrying them. */
|
|
6
6
|
export declare const SIGN_IN_PROBES: Partial<Record<Harness, () => boolean | undefined>>;
|
|
7
|
+
/** Pure, so the doctor check and tests pin the matcher without spawning anything. */
|
|
8
|
+
export declare function parseLegacyPluginList(output: string): 'registered' | 'absent' | 'unknown';
|
|
9
|
+
export interface LegacyPluginEvidence {
|
|
10
|
+
registered: boolean;
|
|
11
|
+
/** Authored: this can reach pasted output, so it never quotes the raw listing. */
|
|
12
|
+
reason?: string;
|
|
13
|
+
}
|
|
14
|
+
/** The removal command, for hints that leave the decision — and the keystroke — to the user. */
|
|
15
|
+
export declare function legacyPluginRemoval(harness: Harness): string | undefined;
|
|
16
|
+
/** One authored line for connect; undefined when there is nothing to flag. */
|
|
17
|
+
export declare function legacyPluginHint(harness: Harness, probe: LegacyPluginEvidence | undefined): string | undefined;
|
|
18
|
+
/** Undefined: no readable plugin system, or the probe could not decide. Never a guess. */
|
|
19
|
+
export declare function detectLegacyPlugin(harness: Harness): LegacyPluginEvidence | undefined;
|
|
7
20
|
/** Never throws; a failed probe is `unknown` with a reason, so no caller can read it as healthy. */
|
|
8
21
|
export declare function detectRegistrations(harnesses?: Harness[]): RegistrationStatus[];
|
|
9
22
|
export interface RegistrationStatus {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-detect.d.ts","sourceRoot":"","sources":["../../src/lib/registration-detect.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAgBnD,OAAO,EAAmE,QAAQ,EAAE,UAAU,EAAG,MAAM,qBAAqB,CAAC;AA2O7H,mGAAmG;AACnG,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC,CAE9E,CAAC;
|
|
1
|
+
{"version":3,"file":"registration-detect.d.ts","sourceRoot":"","sources":["../../src/lib/registration-detect.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAgBnD,OAAO,EAAmE,QAAQ,EAAE,UAAU,EAAG,MAAM,qBAAqB,CAAC;AA2O7H,mGAAmG;AACnG,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC,CAE9E,CAAC;AA4SF,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAKzF;AACD,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAExE;AACD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO9G;AACD,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAYrF;AACD,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CA4B/E;AAGD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -530,6 +530,51 @@ const PROBES = {
|
|
|
530
530
|
opencode: probeOpencode,
|
|
531
531
|
pi: probePi,
|
|
532
532
|
};
|
|
533
|
+
/**
|
|
534
|
+
* A plugin registers under its own namespace (`plugin:springbrand:springbrand`), which the
|
|
535
|
+
* CLI's config write never touches: the two coexist and the tool list shows SpringBrand twice.
|
|
536
|
+
* Only hosts with a plugin system the CLI can read belong here. Codex shares one flat MCP
|
|
537
|
+
* namespace, so its existing read-back already covers plugin-provided servers.
|
|
538
|
+
*/
|
|
539
|
+
const PLUGIN_LISTED_SPRINGBRAND = /^\s*springbrand(?:-dev)?(?:\s|@|$)/m;
|
|
540
|
+
const NO_PLUGINS_INSTALLED = /no plugins installed/i;
|
|
541
|
+
/** Pure, so the doctor check and tests pin the matcher without spawning anything. */
|
|
542
|
+
export function parseLegacyPluginList(output) {
|
|
543
|
+
if (NO_PLUGINS_INSTALLED.test(output))
|
|
544
|
+
return 'absent';
|
|
545
|
+
// Name at line start: a description merely mentioning springbrand is not evidence.
|
|
546
|
+
return PLUGIN_LISTED_SPRINGBRAND.test(output) ? 'registered' : 'unknown';
|
|
547
|
+
}
|
|
548
|
+
const LEGACY_PLUGIN_REMOVAL = {
|
|
549
|
+
'claude-code': 'claude plugin uninstall springbrand',
|
|
550
|
+
};
|
|
551
|
+
/** The removal command, for hints that leave the decision — and the keystroke — to the user. */
|
|
552
|
+
export function legacyPluginRemoval(harness) {
|
|
553
|
+
return LEGACY_PLUGIN_REMOVAL[harness];
|
|
554
|
+
}
|
|
555
|
+
/** One authored line for connect; undefined when there is nothing to flag. */
|
|
556
|
+
export function legacyPluginHint(harness, probe) {
|
|
557
|
+
if (!probe?.registered)
|
|
558
|
+
return undefined;
|
|
559
|
+
const removal = legacyPluginRemoval(harness);
|
|
560
|
+
return `Note: a SpringBrand plugin is also registered in ${harness} (plugin systems and this CLI registration coexist), ` +
|
|
561
|
+
'so SpringBrand tools may appear twice. Nothing was changed.' +
|
|
562
|
+
(removal ? ` To remove the plugin yourself: \`${removal}\`` : '');
|
|
563
|
+
}
|
|
564
|
+
/** Undefined: no readable plugin system, or the probe could not decide. Never a guess. */
|
|
565
|
+
export function detectLegacyPlugin(harness) {
|
|
566
|
+
if (harness !== 'claude-code')
|
|
567
|
+
return undefined;
|
|
568
|
+
const probe = runProbe('claude', ['plugin', 'list']);
|
|
569
|
+
if (probe.outcome === 'unavailable' || probe.exitCode !== 0)
|
|
570
|
+
return undefined;
|
|
571
|
+
const parsed = parseLegacyPluginList(probe.output);
|
|
572
|
+
if (parsed === 'unknown')
|
|
573
|
+
return undefined;
|
|
574
|
+
return parsed === 'registered'
|
|
575
|
+
? { registered: true, reason: 'listed by `claude plugin list`' }
|
|
576
|
+
: { registered: false };
|
|
577
|
+
}
|
|
533
578
|
/** Never throws; a failed probe is `unknown` with a reason, so no caller can read it as healthy. */
|
|
534
579
|
export function detectRegistrations(harnesses) {
|
|
535
580
|
const connect = loadConfig().connect ?? {};
|