@springbrand/cli 0.1.7-alpha.1 → 0.1.7-alpha.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 (102) hide show
  1. package/README.md +25 -12
  2. package/dist/commands/auth.d.ts.map +1 -1
  3. package/dist/commands/auth.js +156 -40
  4. package/dist/commands/auth.js.map +1 -1
  5. package/dist/commands/connect.d.ts +2 -0
  6. package/dist/commands/connect.d.ts.map +1 -1
  7. package/dist/commands/connect.js +37 -22
  8. package/dist/commands/connect.js.map +1 -1
  9. package/dist/commands/doctor.js +2 -2
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/lib/auth.d.ts +23 -12
  12. package/dist/lib/auth.d.ts.map +1 -1
  13. package/dist/lib/auth.js +243 -55
  14. package/dist/lib/auth.js.map +1 -1
  15. package/dist/lib/codex-plugin.d.ts +8 -0
  16. package/dist/lib/codex-plugin.d.ts.map +1 -1
  17. package/dist/lib/codex-plugin.js +191 -21
  18. package/dist/lib/codex-plugin.js.map +1 -1
  19. package/dist/lib/connect-all-uninstall.d.ts +2 -2
  20. package/dist/lib/connect-all-uninstall.d.ts.map +1 -1
  21. package/dist/lib/connect-all-uninstall.js +69 -31
  22. package/dist/lib/connect-all-uninstall.js.map +1 -1
  23. package/dist/lib/connect-all.d.ts +4 -0
  24. package/dist/lib/connect-all.d.ts.map +1 -1
  25. package/dist/lib/connect-all.js +13 -9
  26. package/dist/lib/connect-all.js.map +1 -1
  27. package/dist/lib/connect-auth.d.ts +4 -2
  28. package/dist/lib/connect-auth.d.ts.map +1 -1
  29. package/dist/lib/connect-auth.js +14 -9
  30. package/dist/lib/connect-auth.js.map +1 -1
  31. package/dist/lib/connect-clients.d.ts +1 -1
  32. package/dist/lib/connect-clients.d.ts.map +1 -1
  33. package/dist/lib/connect-clients.js +23 -14
  34. package/dist/lib/connect-clients.js.map +1 -1
  35. package/dist/lib/connect-fallback.d.ts +2 -0
  36. package/dist/lib/connect-fallback.d.ts.map +1 -1
  37. package/dist/lib/connect-fallback.js +18 -4
  38. package/dist/lib/connect-fallback.js.map +1 -1
  39. package/dist/lib/connect-generic.d.ts +12 -0
  40. package/dist/lib/connect-generic.d.ts.map +1 -0
  41. package/dist/lib/connect-generic.js +80 -0
  42. package/dist/lib/connect-generic.js.map +1 -0
  43. package/dist/lib/connect-preflight.d.ts +1 -0
  44. package/dist/lib/connect-preflight.d.ts.map +1 -1
  45. package/dist/lib/connect-preflight.js +31 -19
  46. package/dist/lib/connect-preflight.js.map +1 -1
  47. package/dist/lib/connect-result.d.ts +1 -1
  48. package/dist/lib/constants.d.ts +2 -0
  49. package/dist/lib/constants.d.ts.map +1 -1
  50. package/dist/lib/constants.js +4 -1
  51. package/dist/lib/constants.js.map +1 -1
  52. package/dist/lib/cursor-config.d.ts +2 -2
  53. package/dist/lib/cursor-config.d.ts.map +1 -1
  54. package/dist/lib/cursor-config.js +5 -5
  55. package/dist/lib/cursor-config.js.map +1 -1
  56. package/dist/lib/devin-config.d.ts +9 -0
  57. package/dist/lib/devin-config.d.ts.map +1 -0
  58. package/dist/lib/devin-config.js +32 -0
  59. package/dist/lib/devin-config.js.map +1 -0
  60. package/dist/lib/doctor-checks.d.ts +1 -1
  61. package/dist/lib/doctor-checks.d.ts.map +1 -1
  62. package/dist/lib/doctor-checks.js +7 -4
  63. package/dist/lib/doctor-checks.js.map +1 -1
  64. package/dist/lib/doctor-report.d.ts +2 -2
  65. package/dist/lib/install-report.d.ts +1 -1
  66. package/dist/lib/key-environment.d.ts +14 -0
  67. package/dist/lib/key-environment.d.ts.map +1 -0
  68. package/dist/lib/key-environment.js +8 -0
  69. package/dist/lib/key-environment.js.map +1 -0
  70. package/dist/lib/mcp-endpoint.d.ts +4 -1
  71. package/dist/lib/mcp-endpoint.d.ts.map +1 -1
  72. package/dist/lib/mcp-endpoint.js +5 -0
  73. package/dist/lib/mcp-endpoint.js.map +1 -1
  74. package/dist/lib/mcp-json-config.d.ts +2 -0
  75. package/dist/lib/mcp-json-config.d.ts.map +1 -1
  76. package/dist/lib/mcp-json-config.js +10 -4
  77. package/dist/lib/mcp-json-config.js.map +1 -1
  78. package/dist/lib/omp-config.d.ts +2 -2
  79. package/dist/lib/omp-config.d.ts.map +1 -1
  80. package/dist/lib/omp-config.js +5 -5
  81. package/dist/lib/omp-config.js.map +1 -1
  82. package/dist/lib/pi-config.d.ts +2 -2
  83. package/dist/lib/pi-config.d.ts.map +1 -1
  84. package/dist/lib/pi-config.js +5 -5
  85. package/dist/lib/pi-config.js.map +1 -1
  86. package/dist/lib/registration-detect.js +5 -5
  87. package/dist/lib/registration-detect.js.map +1 -1
  88. package/dist/lib/skill-install.d.ts.map +1 -1
  89. package/dist/lib/skill-install.js +17 -8
  90. package/dist/lib/skill-install.js.map +1 -1
  91. package/dist/lib/workbuddy-config.d.ts +1 -1
  92. package/dist/lib/workbuddy-config.d.ts.map +1 -1
  93. package/dist/lib/workbuddy-config.js +5 -5
  94. package/dist/lib/workbuddy-config.js.map +1 -1
  95. package/package.json +1 -1
  96. package/skill/springbrand-action-api/SKILL.md +20 -7
  97. package/skill/springbrand-action-api/references/action-discovery.md +20 -4
  98. package/skill/springbrand-connector/SKILL.md +3 -2
  99. package/skill/springbrand-gtm/SKILL.md +38 -5
  100. package/skill/springbrand-platform/SKILL.md +4 -2
  101. package/skill/springbrand-platform/references/plugin-discovery.md +5 -4
  102. package/skill/use-springbrand/SKILL.md +127 -18
@@ -1,25 +1,27 @@
1
1
  /** 复刻自 tiny-fish CLI 编译产物:connect-preflight.d.ts + connect-preflight.impl.js */
2
- import { KEY_FORMAT_HINT, configFile, parseKeyIdentity, validateKeyFormat } from './auth.js';
3
- import { SPRINGBRAND_API_KEY_VAR } from './constants.js';
2
+ import { KEY_FORMAT_HINT, apiKeyStatus, configFile, parseKeyIdentity, validateKeyFormat } from './auth.js';
3
+ import { apiKeyEnvVar } from './key-environment.js';
4
4
  import { apiBaseFromMcpUrl, endpointOf, environmentOf } from './mcp-endpoint.js';
5
5
  import { errLine, warnLine } from './output.js';
6
6
  import { sendSetupBlocked, } from './setup-telemetry.js';
7
- import { connectApiKey } from './connect-auth.js';
8
7
  import { verifyMcpAuth } from './verify.js';
9
- function sourceAdvice(source) {
8
+ function sourceAdvice(source, environment, envVar) {
10
9
  switch (source) {
11
10
  case 'env':
12
- return `The key came from ${SPRINGBRAND_API_KEY_VAR}, which overrides a saved key — fix or unset that export.`;
11
+ return `The key came from ${envVar ?? apiKeyEnvVar(environment)}, which overrides a saved key — fix or unset that export.`;
13
12
  case 'explicit':
14
13
  return 'The key came from --api-key.';
15
14
  default:
16
- return `The key came from ${configFile()}. Save a working one: sp auth login, or pipe a key to sp auth set.`;
15
+ return `The key came from ${configFile()} for the ${environment} environment. ` +
16
+ `Save a working one: ${environment === 'production' ? 'sp auth login' : 'sp auth login --env dev'}, ` +
17
+ 'or pipe a key to sp auth set.';
17
18
  }
18
19
  }
19
20
  async function block(detail, options) {
20
21
  options.onBlocked?.({ code: detail.reason, message: `${detail.message} Nothing was installed.` });
21
22
  errLine(`${detail.message} Nothing was installed.`);
22
- errLine(sourceAdvice(detail.source));
23
+ const environment = environmentOf(options.mcpUrl) ?? 'production';
24
+ errLine(sourceAdvice(detail.source, environment, detail.envVar));
23
25
  errLine(`Then re-run: ${options.retryCommand}`);
24
26
  await sendSetupBlocked(options.mcpUrl, {
25
27
  blockReason: detail.reason,
@@ -35,33 +37,42 @@ async function block(detail, options) {
35
37
  * A bad key otherwise fails all seven installs the slow way, and Hermes refuses outright.
36
38
  */
37
39
  export async function gateApiKey(options) {
38
- const key = connectApiKey(options.apiKey);
39
- if (key === undefined)
40
+ if (options.oauth)
40
41
  return 'ok';
41
- const status = { key, source: options.apiKey !== undefined ? 'explicit' : 'env' };
42
- // No key at all is a valid answer: the OAuth harnesses still connect without one.
43
- const source = status.source;
42
+ const endpointEnvironment = environmentOf(options.mcpUrl);
43
+ const status = apiKeyStatus(options.apiKey, endpointEnvironment ?? 'production');
44
+ if (status.source === 'none')
45
+ return 'ok';
46
+ if (!('key' in status)) {
47
+ return block({
48
+ reason: 'key_malformed',
49
+ source: status.source,
50
+ message: status.error,
51
+ }, options);
52
+ }
53
+ const key = status.key;
44
54
  // Downstream this key is dropped as unusable, which reads as "no key" and silently
45
55
  // downgrades every install to a browser sign-in Hermes cannot take.
46
- if (!validateKeyFormat(status.key)) {
56
+ if (!validateKeyFormat(key)) {
47
57
  return block({
48
58
  reason: 'key_malformed',
49
- source,
59
+ source: status.source,
50
60
  message: `Your SpringBrand API key is not shaped like one. ${KEY_FORMAT_HINT}`,
61
+ envVar: status.envVar,
51
62
  }, options);
52
63
  }
53
64
  // Local evidence, so the mismatch is named here rather than arriving as a bare 401 later.
54
- const keyEnvironment = parseKeyIdentity(status.key)?.environment;
55
- const endpointEnvironment = environmentOf(options.mcpUrl);
65
+ const keyEnvironment = parseKeyIdentity(key)?.environment;
56
66
  if (keyEnvironment && endpointEnvironment && keyEnvironment !== endpointEnvironment) {
57
67
  return block({
58
68
  reason: 'key_environment_mismatch',
59
- source,
69
+ source: status.source,
60
70
  message: `Your SpringBrand API key is a ${keyEnvironment} key, but ${endpointOf(options.mcpUrl)} ` +
61
71
  `only accepts ${endpointEnvironment} keys.`,
72
+ envVar: status.envVar,
62
73
  }, options);
63
74
  }
64
- const verified = await verifyMcpAuth(status.key, apiBaseFromMcpUrl(options.mcpUrl));
75
+ const verified = await verifyMcpAuth(key, apiBaseFromMcpUrl(options.mcpUrl));
65
76
  if (verified.ok)
66
77
  return 'ok';
67
78
  // Rate limits, verification outages and network faults keep the credential: blocking a whole
@@ -80,8 +91,9 @@ export async function gateApiKey(options) {
80
91
  }
81
92
  return block({
82
93
  reason: 'key_rejected',
83
- source,
94
+ source: status.source,
84
95
  message: `Your SpringBrand API key was rejected (${verified.code ?? 'unknown'}).`,
96
+ envVar: status.envVar,
85
97
  ...(verified.status === undefined ? {} : { status: verified.status }),
86
98
  }, options);
87
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connect-preflight.js","sourceRoot":"","sources":["../../src/lib/connect-preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect-preflight.js","sourceRoot":"","sources":["../../src/lib/connect-preflight.ts"],"names":[],"mappings":"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"}
@@ -45,8 +45,8 @@ export declare const connectResultSchema: z.ZodObject<{
45
45
  schema_version: z.ZodLiteral<1>;
46
46
  host: z.ZodString;
47
47
  environment: z.ZodEnum<{
48
- unknown: "unknown";
49
48
  production: "production";
49
+ unknown: "unknown";
50
50
  development: "development";
51
51
  }>;
52
52
  mcp_entry_name: z.ZodEnum<{
@@ -11,6 +11,8 @@ export declare const WEB_SKILL_NAME = "use-springbrand";
11
11
  export declare const BUNDLED_SKILL_NAMES: readonly ["use-springbrand", "springbrand-platform", "springbrand-action-api", "springbrand-connector", "springbrand-gtm"];
12
12
  /** The descriptor hands this name to harnesses; the probes resolve it. */
13
13
  export declare const SPRINGBRAND_API_KEY_VAR = "SPRINGBRAND_API_KEY";
14
+ /** Development and local endpoints use their own variable. */
15
+ export declare const SPRINGBRAND_DEV_API_KEY_VAR = "SPRINGBRAND_DEV_API_KEY";
14
16
  export declare const BASE_URL: string;
15
17
  export declare const API_URL_OVERRIDE: string | undefined;
16
18
  export declare const WEB_APP_URL: string;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAMhE,eAAO,MAAM,WAAW,EAAE,MAAqB,CAAC;AAChD,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,MAAqB,CAAC;AACtD,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AACpD,2EAA2E;AAC3E,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAChD,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,4HAMtB,CAAC;AACX,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAkB7D,eAAO,MAAM,QAAQ,EAAE,MAA6D,CAAC;AAGrF,eAAO,MAAM,gBAAgB,EAAE,MAAM,GAAG,SAA0B,CAAC;AAGnE,eAAO,MAAM,WAAW,EAAE,MAAsE,CAAC;AAuCjG,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxE;AACD,eAAO,MAAM,aAAa,EAAE,MAA0B,CAAC;AACvD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAOhE,eAAO,MAAM,WAAW,EAAE,MAAqB,CAAC;AAChD,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,MAAqB,CAAC;AACtD,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AACpD,2EAA2E;AAC3E,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAChD,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,4HAMtB,CAAC;AACX,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,wBAAyB,CAAC;AAC9D,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B,4BAAkB,CAAC;AAkB3D,eAAO,MAAM,QAAQ,EAAE,MAA6D,CAAC;AAGrF,eAAO,MAAM,gBAAgB,EAAE,MAAM,GAAG,SAA0B,CAAC;AAGnE,eAAO,MAAM,WAAW,EAAE,MAAsE,CAAC;AAuCjG,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxE;AACD,eAAO,MAAM,aAAa,EAAE,MAA0B,CAAC;AACvD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /** 复刻自 tiny-fish CLI 编译产物:constants.d.ts + constants.impl.js */
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { createRequire } from 'module';
4
+ import { DEV_API_KEY_VAR, PRODUCTION_API_KEY_VAR } from './key-environment.js';
4
5
  const _require = createRequire(import.meta.url);
5
6
  const _pkg = _require('../../package.json');
6
7
  export const CLI_VERSION = _pkg.version;
@@ -21,7 +22,9 @@ export const BUNDLED_SKILL_NAMES = [
21
22
  'springbrand-gtm',
22
23
  ];
23
24
  /** The descriptor hands this name to harnesses; the probes resolve it. */
24
- export const SPRINGBRAND_API_KEY_VAR = 'SPRINGBRAND_API_KEY';
25
+ export const SPRINGBRAND_API_KEY_VAR = PRODUCTION_API_KEY_VAR;
26
+ /** Development and local endpoints use their own variable. */
27
+ export const SPRINGBRAND_DEV_API_KEY_VAR = DEV_API_KEY_VAR;
25
28
  /** Base URL for the SpringBrand API. Override with SPRINGBRAND_API_URL for staging/self-hosted. */
26
29
  const apiUrlOverride = process.env['SPRINGBRAND_API_URL']?.trim() || undefined;
27
30
  if (apiUrlOverride) {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ export declare function planCursorWrite(mcpUrl: string, apiKey?: string): string
7
7
  export declare function readCursorSpringbrandEntry(mcpUrl?: string): CursorSpringbrandEntry;
8
8
  /** Merges only the `springbrand` key; skips unreadable/corrupt files rather than clobber. */
9
9
  export declare function writeCursorMcpConfig(mcpUrl: string, apiKey?: string): CursorMcpWriteResult;
10
- /** Removes only the `springbrand` key. */
11
- export declare function removeCursorMcpServer(): CursorMcpWriteResult;
10
+ /** Removes the selected environment's entry, or both when no URL is selected. */
11
+ export declare function removeCursorMcpServer(mcpUrl?: string): CursorMcpWriteResult;
12
12
  /** Cursor deeplink format: cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64 */
13
13
  export declare function cursorInstallDeeplink(mcpUrl: string): string;
14
14
  export type CursorMcpWriteResult = McpJsonWriteResult;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-config.d.ts","sourceRoot":"","sources":["../../src/lib/cursor-config.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAanF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AACD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AACD,mDAAmD;AACnD,wBAAgB,0BAA0B,CAAC,MAAM,SAAkB,GAAG,sBAAsB,CAE3F;AACD,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE1F;AACD,0CAA0C;AAC1C,wBAAgB,qBAAqB,IAAI,oBAAoB,CAE5D;AACD,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5D;AAGD,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEtD,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"cursor-config.d.ts","sourceRoot":"","sources":["../../src/lib/cursor-config.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAanF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AACD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AACD,mDAAmD;AACnD,wBAAgB,0BAA0B,CAAC,MAAM,SAAkB,GAAG,sBAAsB,CAE3F;AACD,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE1F;AACD,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE3E;AACD,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5D;AAGD,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEtD,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /** 复刻自 tiny-fish CLI 编译产物:cursor-config.d.ts + cursor-config.impl.js */
2
2
  import * as os from 'os';
3
3
  import * as path from 'path';
4
- import { buildSpringbrandServerEntry, planWrite, readSpringbrandEntry, removeServer, writeMcpConfig, } from './mcp-json-config.js';
5
- import { mcpServerName, DEFAULT_MCP_URL } from './mcp-endpoint.js';
4
+ import { buildSpringbrandServerEntry, planWrite, readSpringbrandEntry, removeServers, writeMcpConfig, } from './mcp-json-config.js';
5
+ import { mcpServerName, springbrandServerNamesFor, DEFAULT_MCP_URL } from './mcp-endpoint.js';
6
6
  const CURSOR_TARGET = {
7
7
  serverKey: 'springbrand',
8
8
  dir: () => path.join(os.homedir(), '.cursor'),
@@ -26,9 +26,9 @@ export function readCursorSpringbrandEntry(mcpUrl = DEFAULT_MCP_URL) {
26
26
  export function writeCursorMcpConfig(mcpUrl, apiKey) {
27
27
  return writeMcpConfig(cursorTarget(mcpUrl), mcpUrl, apiKey);
28
28
  }
29
- /** Removes only the `springbrand` key. */
30
- export function removeCursorMcpServer() {
31
- return removeServer(CURSOR_TARGET);
29
+ /** Removes the selected environment's entry, or both when no URL is selected. */
30
+ export function removeCursorMcpServer(mcpUrl) {
31
+ return removeServers(CURSOR_TARGET, springbrandServerNamesFor(mcpUrl));
32
32
  }
33
33
  /** Cursor deeplink format: cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64 */
34
34
  export function cursorInstallDeeplink(mcpUrl) {
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-config.js","sourceRoot":"","sources":["../../src/lib/cursor-config.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAGxE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,GAAG,MAAM,sBAAsB,CAAC;AACnI,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,MAAM,aAAa,GAAG;IAClB,SAAS,EAAE,aAAa;IACxB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;IAC7C,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;CAC7D,CAAC;AACF,SAAS,YAAY,CAAC,MAAc;IAChC,OAAO,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAClE,CAAC;AACD,MAAM,UAAU,aAAa;IACzB,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AACD,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAe;IAC3D,OAAO,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AACD,mDAAmD;AACnD,MAAM,UAAU,0BAA0B,CAAC,MAAM,GAAG,eAAe;IAC/D,OAAO,oBAAoB,CAAC,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AACD,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,MAAe;IAChE,OAAO,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AACD,0CAA0C;AAC1C,MAAM,UAAU,qBAAqB;IACjC,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC;AACvC,CAAC;AACD,uGAAuG;AACvG,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnG,OAAO,uDAAuD,aAAa,CAAC,MAAM,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/H,CAAC"}
1
+ {"version":3,"file":"cursor-config.js","sourceRoot":"","sources":["../../src/lib/cursor-config.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAGxE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,GAAG,MAAM,sBAAsB,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9F,MAAM,aAAa,GAAG;IAClB,SAAS,EAAE,aAAa;IACxB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;IAC7C,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;CAC7D,CAAC;AACF,SAAS,YAAY,CAAC,MAAc;IAChC,OAAO,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAClE,CAAC;AACD,MAAM,UAAU,aAAa;IACzB,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AACD,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAe;IAC3D,OAAO,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AACD,mDAAmD;AACnD,MAAM,UAAU,0BAA0B,CAAC,MAAM,GAAG,eAAe;IAC/D,OAAO,oBAAoB,CAAC,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AACD,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,MAAe;IAChE,OAAO,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AACD,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACjD,OAAO,aAAa,CAAC,aAAa,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AACD,uGAAuG;AACvG,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnG,OAAO,uDAAuD,aAAa,CAAC,MAAM,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/H,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Direct config access for Devin Desktop's MCP store. */
2
+ import type { McpJsonServerEntry, McpJsonWriteResult } from './mcp-json-config.js';
3
+ export declare function devinConfigDir(): string;
4
+ export declare function devinMcpPath(): string;
5
+ export declare function planDevinWrite(mcpUrl: string, apiKey?: string): string;
6
+ export declare function readDevinSpringbrandEntry(mcpUrl?: string): McpJsonServerEntry;
7
+ export declare function writeDevinMcpConfig(mcpUrl: string, apiKey?: string): McpJsonWriteResult;
8
+ export declare function removeDevinMcpServer(): McpJsonWriteResult;
9
+ //# sourceMappingURL=devin-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devin-config.d.ts","sourceRoot":"","sources":["../../src/lib/devin-config.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AASnF,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAQD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,SAAkB,GAAG,kBAAkB,CAEtF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAEvF;AAED,wBAAgB,oBAAoB,IAAI,kBAAkB,CAEzD"}
@@ -0,0 +1,32 @@
1
+ /** Direct config access for Devin Desktop's MCP store. */
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
4
+ import { planWrite, readSpringbrandEntry, removeServer, writeMcpConfig } from './mcp-json-config.js';
5
+ import { mcpServerName, DEFAULT_MCP_URL } from './mcp-endpoint.js';
6
+ // Devin reads $XDG_CONFIG_HOME/devin/mcp_config.json when XDG_CONFIG_HOME is set
7
+ // (docs.devin.ai/desktop/cascade/mcp); remote entries take `url` + `headers`, and
8
+ // `transport: 'http'` is the default, so no `type` discriminator is written.
9
+ export function devinConfigDir() {
10
+ return path.join(process.env['XDG_CONFIG_HOME']?.trim() || path.join(os.homedir(), '.config'), 'devin');
11
+ }
12
+ const DEVIN_TARGET = {
13
+ serverKey: 'springbrand',
14
+ dir: devinConfigDir,
15
+ file: () => path.join(devinConfigDir(), 'mcp_config.json'),
16
+ };
17
+ export function devinMcpPath() {
18
+ return DEVIN_TARGET.file();
19
+ }
20
+ export function planDevinWrite(mcpUrl, apiKey) {
21
+ return planWrite(DEVIN_TARGET, mcpUrl, apiKey);
22
+ }
23
+ export function readDevinSpringbrandEntry(mcpUrl = DEFAULT_MCP_URL) {
24
+ return readSpringbrandEntry({ ...DEVIN_TARGET, serverKey: mcpServerName(mcpUrl) });
25
+ }
26
+ export function writeDevinMcpConfig(mcpUrl, apiKey) {
27
+ return writeMcpConfig({ ...DEVIN_TARGET, serverKey: mcpServerName(mcpUrl) }, mcpUrl, apiKey);
28
+ }
29
+ export function removeDevinMcpServer() {
30
+ return removeServer(DEVIN_TARGET);
31
+ }
32
+ //# sourceMappingURL=devin-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devin-config.js","sourceRoot":"","sources":["../../src/lib/devin-config.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAG1D,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnE,iFAAiF;AACjF,kFAAkF;AAClF,6EAA6E;AAC7E,MAAM,UAAU,cAAc;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,YAAY,GAAG;IACjB,SAAS,EAAE,aAAa;IACxB,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,iBAAiB,CAAC;CAC7D,CAAC;AAEF,MAAM,UAAU,YAAY;IACxB,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,MAAe;IAC1D,OAAO,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAM,GAAG,eAAe;IAC9D,OAAO,oBAAoB,CAAC,EAAE,GAAG,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,MAAe;IAC/D,OAAO,cAAc,CAAC,EAAE,GAAG,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,oBAAoB;IAChC,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC"}
@@ -7,7 +7,7 @@ export declare function provesHarnessReach(status: RegistrationStatus, keyAuth:
7
7
  export declare function checkCliVersion(): DoctorCheck;
8
8
  export declare function checkConnectivity(mcpUrl: string): Promise<DoctorCheck>;
9
9
  export declare function checkRegistration(status: RegistrationStatus, mcpUrl: string, keyAuth: VerifyResult | undefined, cliKeyMissing: boolean): DoctorCheck;
10
- export declare function checkCredential(): {
10
+ export declare function checkCredential(mcpUrl?: string): {
11
11
  check: DoctorCheck;
12
12
  key?: string;
13
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-checks.d.ts","sourceRoot":"","sources":["../../src/lib/doctor-checks.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAOrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAe5I;AAED,wBAAgB,eAAe,IAAI,WAAW,CAS7C;AACD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAW5E;AA+FD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,CAQpJ;AACD,wBAAgB,eAAe,IAAI;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAWA;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,CAuBzE;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,CAM1J;AA2DD,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAgCtE;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAqBhF;AAGD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,GAAG,SAAS,GAAG,WAAW,CAqBlH"}
1
+ {"version":3,"file":"doctor-checks.d.ts","sourceRoot":"","sources":["../../src/lib/doctor-checks.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAOrE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAe5I;AAED,wBAAgB,eAAe,IAAI,WAAW,CAS7C;AACD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAW5E;AA+FD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,CAQpJ;AACD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAcA;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,CAuBzE;AACD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,CAM1J;AA2DD,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAgCtE;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAqBhF;AAGD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,GAAG,SAAS,GAAG,WAAW,CAqBlH"}
@@ -4,7 +4,7 @@ import { CLI_VERSION } from './constants.js';
4
4
  import { AuthMode, Registered } from './harness-detect.js';
5
5
  import { resolveHermesHome } from './hermes-env.js';
6
6
  import { hermesWebBackendsOurs, readHermesPluginStatus, } from './hermes-plugin.js';
7
- import { endpointOf } from './mcp-endpoint.js';
7
+ import { endpointOf, environmentOf } from './mcp-endpoint.js';
8
8
  import { PI_ADAPTER_INSTALL_COMMAND, piMcpAdapterState } from './pi-config.js';
9
9
  import { legacyPluginRemoval } from './registration-detect.js';
10
10
  import { boundedVersion } from './output.js';
@@ -152,13 +152,16 @@ export function checkRegistration(status, mcpUrl, keyAuth, cliKeyMissing) {
152
152
  ...registrationVerdict(status, mcpUrl, keyAuth, cliKeyMissing),
153
153
  };
154
154
  }
155
- export function checkCredential() {
156
- const resolved = apiKeyStatus();
155
+ export function checkCredential(mcpUrl) {
156
+ const environment = environmentOf(mcpUrl ?? '') ?? 'production';
157
+ const resolved = apiKeyStatus(undefined, environment);
157
158
  const check = {
158
159
  id: 'cli-credential',
159
160
  title: 'CLI credential',
160
161
  status: 'key' in resolved ? 'pass' : 'fail',
161
- detail: 'key' in resolved ? `key present from ${resolved.source}` : resolved.error,
162
+ detail: 'key' in resolved
163
+ ? `key present from ${resolved.source} for ${environment}`
164
+ : resolved.error,
162
165
  harness: null,
163
166
  scope: 'cli',
164
167
  };
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-checks.js","sourceRoot":"","sources":["../../src/lib/doctor-checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-checks.js","sourceRoot":"","sources":["../../src/lib/doctor-checks.ts"],"names":[],"mappings":"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"}
@@ -174,8 +174,8 @@ export declare const doctorReportSchema: z.ZodObject<{
174
174
  schema_version: z.ZodLiteral<1>;
175
175
  host: z.ZodString;
176
176
  environment: z.ZodEnum<{
177
- unknown: "unknown";
178
177
  production: "production";
178
+ unknown: "unknown";
179
179
  development: "development";
180
180
  }>;
181
181
  mcp_entry_name: z.ZodEnum<{
@@ -517,8 +517,8 @@ export declare const doctorMachineReportSchema: z.ZodObject<{
517
517
  schema_version: z.ZodLiteral<1>;
518
518
  host: z.ZodString;
519
519
  environment: z.ZodEnum<{
520
- unknown: "unknown";
521
520
  production: "production";
521
+ unknown: "unknown";
522
522
  development: "development";
523
523
  }>;
524
524
  mcp_entry_name: z.ZodEnum<{
@@ -31,8 +31,8 @@ export declare const installReportSchema: z.ZodObject<{
31
31
  }, z.core.$strip>>;
32
32
  error_code: z.ZodOptional<z.ZodString>;
33
33
  environment: z.ZodOptional<z.ZodEnum<{
34
- unknown: "unknown";
35
34
  production: "production";
35
+ unknown: "unknown";
36
36
  development: "development";
37
37
  }>>;
38
38
  mcp_entry_name: z.ZodOptional<z.ZodEnum<{
@@ -0,0 +1,14 @@
1
+ /**
2
+ * One definition of the key environments and the variables that carry them.
3
+ *
4
+ * `SPRINGBRAND_API_KEY` predates environment separation and remains the production
5
+ * variable so existing installs keep working. Development gets a distinct variable;
6
+ * neither variable is a fallback for the other environment.
7
+ */
8
+ export type KeyEnvironment = 'dev' | 'production';
9
+ export declare const PRODUCTION_API_KEY_VAR = "SPRINGBRAND_API_KEY";
10
+ export declare const DEV_API_KEY_VAR = "SPRINGBRAND_DEV_API_KEY";
11
+ /** Stable order for config, status output, and managed shell blocks. */
12
+ export declare const KEY_ENVIRONMENTS: readonly KeyEnvironment[];
13
+ export declare function apiKeyEnvVar(environment: KeyEnvironment): string;
14
+ //# sourceMappingURL=key-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-environment.d.ts","sourceRoot":"","sources":["../../src/lib/key-environment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,YAAY,CAAC;AAElD,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAA0B,CAAC;AAEjF,wBAAgB,YAAY,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,8 @@
1
+ export const PRODUCTION_API_KEY_VAR = 'SPRINGBRAND_API_KEY';
2
+ export const DEV_API_KEY_VAR = 'SPRINGBRAND_DEV_API_KEY';
3
+ /** Stable order for config, status output, and managed shell blocks. */
4
+ export const KEY_ENVIRONMENTS = ['production', 'dev'];
5
+ export function apiKeyEnvVar(environment) {
6
+ return environment === 'dev' ? DEV_API_KEY_VAR : PRODUCTION_API_KEY_VAR;
7
+ }
8
+ //# sourceMappingURL=key-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-environment.js","sourceRoot":"","sources":["../../src/lib/key-environment.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAEzD,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAEjF,MAAM,UAAU,YAAY,CAAC,WAA2B;IACpD,OAAO,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC;AAC5E,CAAC"}
@@ -1,9 +1,12 @@
1
1
  /** 复刻自 tiny-fish CLI 编译产物:mcp-endpoint.d.ts + mcp-endpoint.impl.js */
2
- import type { KeyEnvironment } from './auth.js';
2
+ import type { KeyEnvironment } from './key-environment.js';
3
3
  export declare const DEFAULT_MCP_URL = "https://connector.springbrand.ai/mcp";
4
4
  export declare const DEV_MCP_URL = "https://devconnector.springbrand.ai/mcp";
5
+ export declare const SPRINGBRAND_SERVER_NAMES: readonly ["springbrand", "springbrand-dev"];
5
6
  /** The Gateway advertises a distinct MCP entry name for the development host. */
6
7
  export declare function mcpServerName(mcpUrl: string): 'springbrand' | 'springbrand-dev';
8
+ /** One environment's server name, or both when no target URL is selected. */
9
+ export declare function springbrandServerNamesFor(mcpUrl?: string): string[];
7
10
  /**
8
11
  * Which environment's keys an endpoint accepts. Mirrors the Gateway's `mcpWireEnvironment`:
9
12
  * the production host serves production keys and every other host — dev, local — serves dev.
@@ -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;AACtE,eAAO,MAAM,WAAW,4CAA4C,CAAC;AAErE,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAE/E;AAED;;;;;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"}
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,sBAAsB,CAAC;AAC3D,eAAO,MAAM,eAAe,yCAAyC,CAAC;AACtE,eAAO,MAAM,WAAW,4CAA4C,CAAC;AACrE,eAAO,MAAM,wBAAwB,6CAA8C,CAAC;AAEpF,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAE/E;AACD,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED;;;;;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"}
@@ -1,10 +1,15 @@
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
3
  export const DEV_MCP_URL = 'https://devconnector.springbrand.ai/mcp';
4
+ export const SPRINGBRAND_SERVER_NAMES = ['springbrand', 'springbrand-dev'];
4
5
  /** The Gateway advertises a distinct MCP entry name for the development host. */
5
6
  export function mcpServerName(mcpUrl) {
6
7
  return environmentOf(mcpUrl) === 'production' ? 'springbrand' : 'springbrand-dev';
7
8
  }
9
+ /** One environment's server name, or both when no target URL is selected. */
10
+ export function springbrandServerNamesFor(mcpUrl) {
11
+ return mcpUrl ? [mcpServerName(mcpUrl)] : [...SPRINGBRAND_SERVER_NAMES];
12
+ }
8
13
  const PRODUCTION_HOST = 'connector.springbrand.ai';
9
14
  /**
10
15
  * Which environment's keys an endpoint accepts. Mirrors the Gateway's `mcpWireEnvironment`:
@@ -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,CAAC,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAErE,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACpF,CAAC;AACD,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"}
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,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAU,CAAC;AAEpF,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACpF,CAAC;AACD,6EAA6E;AAC7E,MAAM,UAAU,yBAAyB,CAAC,MAAe;IACvD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;AAC1E,CAAC;AACD,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"}
@@ -6,6 +6,8 @@ export declare function planWrite(target: McpJsonTarget, mcpUrl: string, apiKey?
6
6
  export declare function readSpringbrandEntry(target: McpJsonTarget): McpJsonServerEntry;
7
7
  /** Merges only the target's key; skips unreadable/corrupt files rather than clobber. */
8
8
  export declare function writeMcpConfig(target: McpJsonTarget, mcpUrl: string, apiKey?: string): McpJsonWriteResult;
9
+ /** Removes one or more target keys in a single write. */
10
+ export declare function removeServers(target: McpJsonTarget, serverKeys: readonly string[]): McpJsonWriteResult;
9
11
  /** Removes only the target's key. */
10
12
  export declare function removeServer(target: McpJsonTarget): McpJsonWriteResult;
11
13
  export interface McpJsonTarget {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-json-config.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-json-config.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAqB5E,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKnH;AA+BD,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBxF;AAGD,mDAAmD;AACnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAmB9E;AAiDD,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAczG;AACD,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAatE;AAGD,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,IAAI,MAAM,CAAC;IACd,IAAI,IAAI,MAAM,CAAC;IACf,2FAA2F;IAC3F,SAAS,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,wFAAwF;IACxF,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,mGAAmG;IACnG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"mcp-json-config.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-json-config.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAqB5E,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKnH;AA+BD,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBxF;AAGD,mDAAmD;AACnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAmB9E;AAiDD,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAczG;AACD,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,CAetG;AACD,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAEtE;AAGD,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,IAAI,MAAM,CAAC;IACd,IAAI,IAAI,MAAM,CAAC;IACf,2FAA2F;IAC3F,SAAS,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,wFAAwF;IACxF,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,mGAAmG;IACnG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -149,8 +149,8 @@ export function writeMcpConfig(target, mcpUrl, apiKey) {
149
149
  servers[target.serverKey] = nextEntry;
150
150
  return { ...commitServers(target, existing, servers), repaired };
151
151
  }
152
- /** Removes only the target's key. */
153
- export function removeServer(target) {
152
+ /** Removes one or more target keys in a single write. */
153
+ export function removeServers(target, serverKeys) {
154
154
  const existing = readExisting(target);
155
155
  if ('error' in existing)
156
156
  return { status: 'corrupt_skip', error: existing.error };
@@ -159,9 +159,15 @@ export function removeServer(target) {
159
159
  const servers = isPlainRecord(existing.parsed.mcpServers)
160
160
  ? { ...existing.parsed.mcpServers }
161
161
  : {};
162
- if (!(target.serverKey in servers))
162
+ const present = serverKeys.filter((serverKey) => serverKey in servers);
163
+ if (present.length === 0)
163
164
  return { status: 'unchanged' };
164
- delete servers[target.serverKey];
165
+ for (const serverKey of present)
166
+ delete servers[serverKey];
165
167
  return commitServers(target, existing, servers);
166
168
  }
169
+ /** Removes only the target's key. */
170
+ export function removeServer(target) {
171
+ return removeServers(target, [target.serverKey]);
172
+ }
167
173
  //# sourceMappingURL=mcp-json-config.js.map