@springbrand/cli 0.1.8 → 0.2.0-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 +25 -12
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +156 -40
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/connect.d.ts +2 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +38 -22
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/lib/auth.d.ts +23 -12
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +243 -55
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/codex-plugin.d.ts +8 -0
- package/dist/lib/codex-plugin.d.ts.map +1 -1
- package/dist/lib/codex-plugin.js +191 -21
- package/dist/lib/codex-plugin.js.map +1 -1
- package/dist/lib/connect-all-uninstall.d.ts +2 -2
- package/dist/lib/connect-all-uninstall.d.ts.map +1 -1
- package/dist/lib/connect-all-uninstall.js +70 -32
- package/dist/lib/connect-all-uninstall.js.map +1 -1
- package/dist/lib/connect-all.d.ts +4 -0
- package/dist/lib/connect-all.d.ts.map +1 -1
- package/dist/lib/connect-all.js +8 -5
- package/dist/lib/connect-all.js.map +1 -1
- package/dist/lib/connect-auth.d.ts +4 -2
- package/dist/lib/connect-auth.d.ts.map +1 -1
- package/dist/lib/connect-auth.js +14 -9
- package/dist/lib/connect-auth.js.map +1 -1
- package/dist/lib/connect-clients.d.ts +1 -1
- package/dist/lib/connect-clients.d.ts.map +1 -1
- package/dist/lib/connect-clients.js +17 -10
- package/dist/lib/connect-clients.js.map +1 -1
- package/dist/lib/connect-fallback.d.ts +2 -0
- package/dist/lib/connect-fallback.d.ts.map +1 -1
- package/dist/lib/connect-fallback.js +18 -4
- package/dist/lib/connect-fallback.js.map +1 -1
- package/dist/lib/connect-generic.d.ts +2 -0
- package/dist/lib/connect-generic.d.ts.map +1 -1
- package/dist/lib/connect-generic.js +3 -2
- package/dist/lib/connect-generic.js.map +1 -1
- package/dist/lib/connect-preflight.d.ts +1 -0
- package/dist/lib/connect-preflight.d.ts.map +1 -1
- package/dist/lib/connect-preflight.js +31 -19
- package/dist/lib/connect-preflight.js.map +1 -1
- package/dist/lib/connect-result.d.ts +1 -1
- package/dist/lib/constants.d.ts +2 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +4 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/cursor-config.d.ts +2 -2
- package/dist/lib/cursor-config.d.ts.map +1 -1
- package/dist/lib/cursor-config.js +5 -5
- package/dist/lib/cursor-config.js.map +1 -1
- package/dist/lib/devin-config.d.ts +1 -1
- package/dist/lib/devin-config.d.ts.map +1 -1
- package/dist/lib/devin-config.js +5 -5
- package/dist/lib/devin-config.js.map +1 -1
- package/dist/lib/doctor-checks.d.ts +1 -1
- package/dist/lib/doctor-checks.d.ts.map +1 -1
- package/dist/lib/doctor-checks.js +7 -4
- package/dist/lib/doctor-checks.js.map +1 -1
- package/dist/lib/doctor-report.d.ts +2 -2
- package/dist/lib/install-report.d.ts +1 -1
- package/dist/lib/key-environment.d.ts +14 -0
- package/dist/lib/key-environment.d.ts.map +1 -0
- package/dist/lib/key-environment.js +8 -0
- package/dist/lib/key-environment.js.map +1 -0
- package/dist/lib/mcp-endpoint.d.ts +4 -1
- package/dist/lib/mcp-endpoint.d.ts.map +1 -1
- package/dist/lib/mcp-endpoint.js +5 -0
- package/dist/lib/mcp-endpoint.js.map +1 -1
- package/dist/lib/mcp-json-config.d.ts +2 -0
- package/dist/lib/mcp-json-config.d.ts.map +1 -1
- package/dist/lib/mcp-json-config.js +10 -4
- package/dist/lib/mcp-json-config.js.map +1 -1
- package/dist/lib/omp-config.d.ts +2 -2
- package/dist/lib/omp-config.d.ts.map +1 -1
- package/dist/lib/omp-config.js +5 -5
- package/dist/lib/omp-config.js.map +1 -1
- package/dist/lib/pi-config.d.ts +2 -2
- package/dist/lib/pi-config.d.ts.map +1 -1
- package/dist/lib/pi-config.js +5 -5
- package/dist/lib/pi-config.js.map +1 -1
- package/dist/lib/registration-detect.js +5 -5
- package/dist/lib/registration-detect.js.map +1 -1
- package/dist/lib/skill-install.d.ts.map +1 -1
- package/dist/lib/skill-install.js +19 -12
- package/dist/lib/skill-install.js.map +1 -1
- package/dist/lib/workbuddy-config.d.ts +1 -1
- package/dist/lib/workbuddy-config.d.ts.map +1 -1
- package/dist/lib/workbuddy-config.js +5 -5
- package/dist/lib/workbuddy-config.js.map +1 -1
- package/package.json +1 -1
- package/skill/springbrand-action-api/SKILL.md +4 -2
- package/skill/springbrand-action-api/references/action-discovery.md +5 -4
- package/skill/springbrand-connector/SKILL.md +3 -2
- package/skill/springbrand-gtm/SKILL.md +38 -5
- package/skill/springbrand-platform/SKILL.md +4 -2
- package/skill/springbrand-platform/references/plugin-discovery.md +5 -4
- package/skill/use-springbrand/SKILL.md +110 -12
- package/dist/commands/uninstall.d.ts +0 -3
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js +0 -71
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/lib/uninstall.d.ts +0 -23
- package/dist/lib/uninstall.d.ts.map +0 -1
- package/dist/lib/uninstall.js +0 -72
- package/dist/lib/uninstall.js.map +0 -1
package/dist/lib/auth.js
CHANGED
|
@@ -4,7 +4,7 @@ import * as os from 'os';
|
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import spawn from 'cross-spawn';
|
|
6
6
|
import { err, errLine } from './output.js';
|
|
7
|
-
import {
|
|
7
|
+
import { apiKeyEnvVar, KEY_ENVIRONMENTS } from './key-environment.js';
|
|
8
8
|
/**
|
|
9
9
|
* The wire format the platform mints and the Gateway parses:
|
|
10
10
|
* `sbk_v1_<environment>_<16-byte id>_<32-byte secret>`. Authoritative definition lives in
|
|
@@ -39,6 +39,9 @@ export function loadConfig() {
|
|
|
39
39
|
const config = {};
|
|
40
40
|
if (typeof obj['api_key'] === 'string')
|
|
41
41
|
config.api_key = obj['api_key'];
|
|
42
|
+
const apiKeys = parseApiKeyMap(obj['api_keys']);
|
|
43
|
+
if (apiKeys)
|
|
44
|
+
config.api_keys = apiKeys;
|
|
42
45
|
const connect = parseConnectMap(obj['connect']);
|
|
43
46
|
if (connect)
|
|
44
47
|
config.connect = connect;
|
|
@@ -51,6 +54,18 @@ export function loadConfig() {
|
|
|
51
54
|
return {};
|
|
52
55
|
}
|
|
53
56
|
}
|
|
57
|
+
function parseApiKeyMap(value) {
|
|
58
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
59
|
+
return undefined;
|
|
60
|
+
const record = value;
|
|
61
|
+
const out = {};
|
|
62
|
+
for (const environment of KEY_ENVIRONMENTS) {
|
|
63
|
+
const key = record[environment];
|
|
64
|
+
if (typeof key === 'string')
|
|
65
|
+
out[environment] = key;
|
|
66
|
+
}
|
|
67
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
68
|
+
}
|
|
54
69
|
function parseConnectMap(value) {
|
|
55
70
|
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
56
71
|
return undefined;
|
|
@@ -123,12 +138,22 @@ export function takePendingConnectAttempt() {
|
|
|
123
138
|
return Date.now() - pending.ts <= PENDING_ATTEMPT_MAX_AGE_MS ? pending.id : undefined;
|
|
124
139
|
}
|
|
125
140
|
/** Throwing variant for callers with their own cleanup (connect's telemetry flush). */
|
|
126
|
-
export function writeConfig(apiKey) {
|
|
127
|
-
updateConfig((config) =>
|
|
141
|
+
export function writeConfig(apiKey, environment) {
|
|
142
|
+
updateConfig((config) => {
|
|
143
|
+
const next = {
|
|
144
|
+
...config,
|
|
145
|
+
api_keys: { ...config.api_keys, [environment]: apiKey },
|
|
146
|
+
};
|
|
147
|
+
// A legacy key moves into its parsed environment on the first write. A key for
|
|
148
|
+
// the other environment stays until that environment writes its own slot.
|
|
149
|
+
if (config.api_key && parseKeyIdentity(config.api_key)?.environment === environment)
|
|
150
|
+
delete next.api_key;
|
|
151
|
+
return next;
|
|
152
|
+
});
|
|
128
153
|
}
|
|
129
|
-
export function saveConfig(apiKey) {
|
|
154
|
+
export function saveConfig(apiKey, environment) {
|
|
130
155
|
try {
|
|
131
|
-
writeConfig(apiKey);
|
|
156
|
+
writeConfig(apiKey, environment);
|
|
132
157
|
}
|
|
133
158
|
catch (e) {
|
|
134
159
|
err({ error: `Could not write config: ${e instanceof Error ? e.message : String(e)}` });
|
|
@@ -136,15 +161,25 @@ export function saveConfig(apiKey) {
|
|
|
136
161
|
}
|
|
137
162
|
}
|
|
138
163
|
/** `authMode` omitted rewrites the entry without one: a reconnect that degraded must not keep a stale key claim. */
|
|
164
|
+
function connectContextKey(client, mcpUrl) {
|
|
165
|
+
return mcpUrl ? `${client}:${new URL(mcpUrl).origin}` : client;
|
|
166
|
+
}
|
|
167
|
+
function isClientContextKey(key, client) {
|
|
168
|
+
return key === client || key.startsWith(`${client}:`);
|
|
169
|
+
}
|
|
139
170
|
export function saveConnectContext(client, attemptId, authMode, mcpUrl) {
|
|
140
171
|
const entry = authMode
|
|
141
172
|
? { attempt_id: attemptId, auth_mode: authMode }
|
|
142
173
|
: { attempt_id: attemptId };
|
|
143
174
|
try {
|
|
144
|
-
updateConfig((config) =>
|
|
145
|
-
...config
|
|
146
|
-
|
|
147
|
-
|
|
175
|
+
updateConfig((config) => {
|
|
176
|
+
const connect = { ...config.connect };
|
|
177
|
+
// The environment-scoped key supersedes the pre-environment marker.
|
|
178
|
+
if (mcpUrl)
|
|
179
|
+
delete connect[client];
|
|
180
|
+
connect[connectContextKey(client, mcpUrl)] = entry;
|
|
181
|
+
return { ...config, connect };
|
|
182
|
+
});
|
|
148
183
|
}
|
|
149
184
|
catch (e) {
|
|
150
185
|
// Best-effort attribution marker: a write failure must not fail a connect that has
|
|
@@ -153,7 +188,7 @@ export function saveConnectContext(client, attemptId, authMode, mcpUrl) {
|
|
|
153
188
|
}
|
|
154
189
|
}
|
|
155
190
|
/** Distinguishes a missing entry from an unreadable config file. */
|
|
156
|
-
export function connectContextState(client) {
|
|
191
|
+
export function connectContextState(client, mcpUrl) {
|
|
157
192
|
let raw;
|
|
158
193
|
try {
|
|
159
194
|
raw = fs.readFileSync(configFile(), 'utf8');
|
|
@@ -163,23 +198,31 @@ export function connectContextState(client) {
|
|
|
163
198
|
}
|
|
164
199
|
try {
|
|
165
200
|
const parsed = JSON.parse(raw);
|
|
166
|
-
const
|
|
167
|
-
|
|
201
|
+
const connect = parsed && typeof parsed === 'object' ? parsed.connect : undefined;
|
|
202
|
+
if (!connect || typeof connect !== 'object' || Array.isArray(connect))
|
|
203
|
+
return 'absent';
|
|
204
|
+
const keys = Object.keys(connect);
|
|
205
|
+
return mcpUrl
|
|
206
|
+
? (connect[connectContextKey(client, mcpUrl)] || connect[client] ? 'present' : 'absent')
|
|
207
|
+
: (keys.some((key) => isClientContextKey(key, client)) ? 'present' : 'absent');
|
|
168
208
|
}
|
|
169
209
|
catch {
|
|
170
210
|
return 'unreadable';
|
|
171
211
|
}
|
|
172
212
|
}
|
|
173
213
|
/** Kept marker after uninstall makes doctor offer to reinstall the harness. */
|
|
174
|
-
export function clearConnectContext(client) {
|
|
214
|
+
export function clearConnectContext(client, mcpUrl) {
|
|
175
215
|
// Read-first: writing through an unreadable config would rewrite it as {}.
|
|
176
|
-
if (connectContextState(client) !== 'present')
|
|
216
|
+
if (connectContextState(client, mcpUrl) !== 'present')
|
|
177
217
|
return;
|
|
178
218
|
try {
|
|
179
219
|
updateConfig((config) => {
|
|
180
|
-
if (!config.connect
|
|
220
|
+
if (!config.connect)
|
|
181
221
|
return config;
|
|
182
|
-
const
|
|
222
|
+
const exact = connectContextKey(client, mcpUrl);
|
|
223
|
+
const remaining = Object.fromEntries(Object.entries(config.connect).filter(([key]) => mcpUrl
|
|
224
|
+
? key !== exact && key !== client
|
|
225
|
+
: !isClientContextKey(key, client)));
|
|
183
226
|
const { connect, ...rest } = config;
|
|
184
227
|
void connect;
|
|
185
228
|
return Object.keys(remaining).length > 0 ? { ...rest, connect: remaining } : rest;
|
|
@@ -203,12 +246,64 @@ function resolveProfilePath(shell, platform) {
|
|
|
203
246
|
return path.join(home, '.config', 'fish', 'config.fish');
|
|
204
247
|
return path.join(home, '.profile');
|
|
205
248
|
}
|
|
206
|
-
|
|
249
|
+
function escapeRegExp(value) {
|
|
250
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
251
|
+
}
|
|
252
|
+
function labelledManagedBlockPattern(environment) {
|
|
253
|
+
const begin = `${MANAGED_ENV_BEGIN} (${environment})`;
|
|
254
|
+
const end = `${MANAGED_ENV_END} (${environment})`;
|
|
255
|
+
return new RegExp(`^${escapeRegExp(begin)}$[\\s\\S]*?^${escapeRegExp(end)}$\\n?`, 'gm');
|
|
256
|
+
}
|
|
257
|
+
// The pre-environment CLI wrote one unlabelled block. It belongs to production.
|
|
258
|
+
const LEGACY_MANAGED_BLOCK = new RegExp(`^${escapeRegExp(MANAGED_ENV_BEGIN)}$[\\s\\S]*?^${escapeRegExp(MANAGED_ENV_END)}$\\n?`, 'gm');
|
|
259
|
+
/** The environment of the key in the single pre-environment managed block, when readable. */
|
|
260
|
+
function legacyManagedBlockEnvironment(content) {
|
|
261
|
+
const block = new RegExp(`^${escapeRegExp(MANAGED_ENV_BEGIN)}$([\\s\\S]*?)^${escapeRegExp(MANAGED_ENV_END)}$`, 'm').exec(content)?.[1];
|
|
262
|
+
if (!block)
|
|
263
|
+
return undefined;
|
|
264
|
+
const value = /(?:export\s+SPRINGBRAND_API_KEY=|set\s+-gx\s+SPRINGBRAND_API_KEY\s+)'([^']+)'/.exec(block)?.[1];
|
|
265
|
+
return value ? parseKeyIdentity(value)?.environment : undefined;
|
|
266
|
+
}
|
|
267
|
+
function stripManagedBlocks(content, environment) {
|
|
268
|
+
let next = content;
|
|
269
|
+
if (environment === undefined || environment === 'production')
|
|
270
|
+
next = next.replace(LEGACY_MANAGED_BLOCK, '');
|
|
271
|
+
if (environment === undefined || environment === 'production')
|
|
272
|
+
next = next.replace(labelledManagedBlockPattern('production'), '');
|
|
273
|
+
if (environment === undefined || environment === 'dev')
|
|
274
|
+
next = next.replace(labelledManagedBlockPattern('dev'), '');
|
|
275
|
+
return next;
|
|
276
|
+
}
|
|
277
|
+
/** Logout must not delete another environment's legacy dev export. */
|
|
278
|
+
function stripManagedBlocksForRemoval(content, environment) {
|
|
279
|
+
if (environment === 'all')
|
|
280
|
+
return stripManagedBlocks(content, undefined);
|
|
281
|
+
if (environment === 'dev') {
|
|
282
|
+
let next = content.replace(labelledManagedBlockPattern('dev'), '');
|
|
283
|
+
if (legacyManagedBlockEnvironment(content) === 'dev')
|
|
284
|
+
next = next.replace(LEGACY_MANAGED_BLOCK, '');
|
|
285
|
+
return next;
|
|
286
|
+
}
|
|
287
|
+
let next = content.replace(labelledManagedBlockPattern('production'), '');
|
|
288
|
+
if (legacyManagedBlockEnvironment(content) !== 'dev')
|
|
289
|
+
next = next.replace(LEGACY_MANAGED_BLOCK, '');
|
|
290
|
+
return next;
|
|
291
|
+
}
|
|
292
|
+
function writeProfile(profile, content) {
|
|
293
|
+
fs.mkdirSync(path.dirname(profile), { recursive: true });
|
|
294
|
+
const temporary = `${profile}.tmp-${process.pid}-${Date.now()}`;
|
|
295
|
+
fs.writeFileSync(temporary, content, { mode: 0o600 });
|
|
296
|
+
fs.chmodSync(temporary, 0o600);
|
|
297
|
+
fs.renameSync(temporary, profile);
|
|
298
|
+
fs.chmodSync(profile, 0o600);
|
|
299
|
+
}
|
|
300
|
+
export function persistApiKeyToEnvironment(apiKey, environment, options) {
|
|
207
301
|
const platform = options?.platform ?? process.platform;
|
|
302
|
+
const variable = apiKeyEnvVar(environment);
|
|
208
303
|
if (platform === 'win32') {
|
|
209
|
-
const result = spawn.sync('setx', [
|
|
304
|
+
const result = spawn.sync('setx', [variable, apiKey], { stdio: 'ignore' });
|
|
210
305
|
if (result.error || result.status !== 0) {
|
|
211
|
-
throw new Error(
|
|
306
|
+
throw new Error(`Could not set ${variable} in the Windows user environment`, {
|
|
212
307
|
cause: result.error,
|
|
213
308
|
});
|
|
214
309
|
}
|
|
@@ -218,37 +313,101 @@ export function persistApiKeyToEnvironment(apiKey, options) {
|
|
|
218
313
|
const fish = shell === 'fish';
|
|
219
314
|
const profile = resolveProfilePath(shell, platform);
|
|
220
315
|
const quotedKey = `'${apiKey.replaceAll("'", "'\\''")}'`;
|
|
221
|
-
const prefix = fish ? `set -gx ${
|
|
316
|
+
const prefix = fish ? `set -gx ${variable} ` : `export ${variable}=`;
|
|
222
317
|
const assignment = `${prefix}${quotedKey}`;
|
|
223
318
|
const existing = fs.existsSync(profile) ? fs.readFileSync(profile, 'utf8') : '';
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
319
|
+
// A pre-environment dev key lived in the production variable. On the first dev
|
|
320
|
+
// write, move it into the dev block instead of leaving a broad export behind.
|
|
321
|
+
const source = environment === 'dev' && legacyManagedBlockEnvironment(existing) === 'dev'
|
|
322
|
+
? existing.replace(LEGACY_MANAGED_BLOCK, '')
|
|
323
|
+
: existing;
|
|
324
|
+
const withoutManaged = stripManagedBlocks(source, environment).trimEnd();
|
|
325
|
+
const block = `${MANAGED_ENV_BEGIN} (${environment})\n${assignment}\n${MANAGED_ENV_END} (${environment})`;
|
|
326
|
+
writeProfile(profile, `${withoutManaged}${withoutManaged ? '\n\n' : ''}${block}\n`);
|
|
327
|
+
}
|
|
328
|
+
/** Best-effort removal of one environment's export, or both with `all`. */
|
|
329
|
+
export function removeApiKeyFromEnvironment(environment, options) {
|
|
330
|
+
const platform = options?.platform ?? process.platform;
|
|
331
|
+
if (platform === 'win32') {
|
|
332
|
+
const variables = environment === 'all'
|
|
333
|
+
? KEY_ENVIRONMENTS.map(apiKeyEnvVar)
|
|
334
|
+
: [apiKeyEnvVar(environment)];
|
|
335
|
+
for (const variable of variables) {
|
|
336
|
+
// setx has no "unset"; deleting the user variable is the Windows equivalent.
|
|
337
|
+
spawn.sync('reg', ['delete', 'HKCU\\Environment', '/v', variable, '/f'], { stdio: 'ignore' });
|
|
338
|
+
}
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
const shell = path.basename(options?.shell ?? process.env['SHELL'] ?? '');
|
|
342
|
+
const profile = resolveProfilePath(shell, platform);
|
|
343
|
+
if (!fs.existsSync(profile))
|
|
344
|
+
return;
|
|
345
|
+
const existing = fs.readFileSync(profile, 'utf8');
|
|
346
|
+
const next = stripManagedBlocksForRemoval(existing, environment);
|
|
347
|
+
if (next === existing)
|
|
348
|
+
return;
|
|
349
|
+
writeProfile(profile, next);
|
|
350
|
+
}
|
|
351
|
+
/** Remove one environment's saved key; returns whether anything was removed. */
|
|
352
|
+
export function clearConfig(environment) {
|
|
353
|
+
const config = loadConfig();
|
|
354
|
+
const hasLegacy = config.api_key !== undefined &&
|
|
355
|
+
(parseKeyIdentity(config.api_key)?.environment === environment ||
|
|
356
|
+
(environment === 'production' && parseKeyIdentity(config.api_key) === undefined));
|
|
357
|
+
if (!config.api_keys?.[environment] && !hasLegacy)
|
|
358
|
+
return false;
|
|
359
|
+
try {
|
|
360
|
+
updateConfig((current) => {
|
|
361
|
+
const keys = { ...current.api_keys };
|
|
362
|
+
delete keys[environment];
|
|
363
|
+
const next = {
|
|
364
|
+
...current,
|
|
365
|
+
...(Object.keys(keys).length > 0 ? { api_keys: keys } : {}),
|
|
366
|
+
};
|
|
367
|
+
if (Object.keys(keys).length === 0)
|
|
368
|
+
delete next.api_keys;
|
|
369
|
+
if (hasLegacy)
|
|
370
|
+
delete next.api_key;
|
|
371
|
+
return next;
|
|
372
|
+
});
|
|
373
|
+
return true;
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
// Write failed — key was not actually removed
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
237
379
|
}
|
|
238
|
-
|
|
239
|
-
|
|
380
|
+
/** Remove every saved key and the parked install attempt. */
|
|
381
|
+
export function clearAllConfig() {
|
|
382
|
+
const config = loadConfig();
|
|
383
|
+
if (!config.api_key && !config.api_keys)
|
|
240
384
|
return false;
|
|
241
385
|
try {
|
|
242
386
|
// The parked id goes too: the next person to sign in on this machine is not the one
|
|
243
387
|
// whose copy minted it.
|
|
244
|
-
updateConfig(({ api_key: _key, pending_connect_attempt: _attempt, ...rest }) => rest);
|
|
388
|
+
updateConfig(({ api_key: _key, api_keys: _keys, pending_connect_attempt: _attempt, ...rest }) => rest);
|
|
245
389
|
return true;
|
|
246
390
|
}
|
|
247
391
|
catch {
|
|
248
|
-
// Write failed — key was not actually removed
|
|
249
392
|
return false;
|
|
250
393
|
}
|
|
251
394
|
}
|
|
395
|
+
/** Environments with a saved key, in canonical order. */
|
|
396
|
+
export function savedKeyEnvironments() {
|
|
397
|
+
const config = loadConfig();
|
|
398
|
+
const saved = new Set();
|
|
399
|
+
for (const environment of KEY_ENVIRONMENTS) {
|
|
400
|
+
if (config.api_keys?.[environment])
|
|
401
|
+
saved.add(environment);
|
|
402
|
+
}
|
|
403
|
+
if (config.api_key) {
|
|
404
|
+
const identity = parseKeyIdentity(config.api_key);
|
|
405
|
+
// The legacy slot was production by default; keep an unparseable value visible
|
|
406
|
+
// to logout --all without claiming it belongs to dev.
|
|
407
|
+
saved.add(identity?.environment ?? 'production');
|
|
408
|
+
}
|
|
409
|
+
return KEY_ENVIRONMENTS.filter((environment) => saved.has(environment));
|
|
410
|
+
}
|
|
252
411
|
/** The one rule that is ours to enforce: the key becomes an HTTP header, so CR/LF cannot pass. */
|
|
253
412
|
function isHeaderSafe(key) {
|
|
254
413
|
for (let i = 0; i < key.length; i += 1) {
|
|
@@ -284,47 +443,76 @@ export function maskKey(key) {
|
|
|
284
443
|
: key.slice(0, 12) + '...' + key.slice(-4);
|
|
285
444
|
}
|
|
286
445
|
// The one flag/env/config precedence chain; `source` says which place a caller must name.
|
|
287
|
-
function lookupApiKey(explicitApiKey) {
|
|
446
|
+
function lookupApiKey(explicitApiKey, environment) {
|
|
288
447
|
if (explicitApiKey)
|
|
289
|
-
return { value: explicitApiKey, source: 'explicit' };
|
|
290
|
-
const envKey = process.env[
|
|
291
|
-
if (envKey)
|
|
292
|
-
|
|
448
|
+
return { value: explicitApiKey, source: 'explicit', environment };
|
|
449
|
+
const envKey = process.env[apiKeyEnvVar(environment)];
|
|
450
|
+
if (envKey) {
|
|
451
|
+
// The generic production variable may still hold a pre-environment dev key.
|
|
452
|
+
// It is not a production credential; let production fall through to its slot.
|
|
453
|
+
const legacyDevInProduction = environment === 'production' &&
|
|
454
|
+
parseKeyIdentity(envKey)?.environment === 'dev';
|
|
455
|
+
if (!legacyDevInProduction)
|
|
456
|
+
return { value: envKey, source: 'env', environment, envVar: apiKeyEnvVar(environment) };
|
|
457
|
+
}
|
|
458
|
+
// A dev key exported by the pre-environment CLI lived in the production variable.
|
|
459
|
+
// Accept it only for dev, and only when the key itself proves the environment.
|
|
460
|
+
if (environment === 'dev') {
|
|
461
|
+
const legacyEnvKey = process.env[apiKeyEnvVar('production')];
|
|
462
|
+
if (legacyEnvKey && parseKeyIdentity(legacyEnvKey)?.environment === 'dev')
|
|
463
|
+
return { value: legacyEnvKey, source: 'env', environment, envVar: apiKeyEnvVar('production') };
|
|
464
|
+
}
|
|
293
465
|
// No try/catch: loadConfig swallows its own errors and returns {}.
|
|
294
|
-
const
|
|
295
|
-
|
|
466
|
+
const config = loadConfig();
|
|
467
|
+
const stored = config.api_keys?.[environment];
|
|
468
|
+
if (stored)
|
|
469
|
+
return { value: stored, source: 'config', environment };
|
|
470
|
+
if (config.api_key && parseKeyIdentity(config.api_key)?.environment === environment)
|
|
471
|
+
return { value: config.api_key, source: 'config', environment };
|
|
472
|
+
return { source: 'none', environment };
|
|
296
473
|
}
|
|
297
474
|
/** Key for optional paths (telemetry, auth probes) — absent is a valid answer, so never exits. */
|
|
298
|
-
export function resolvedApiKey(explicitApiKey) {
|
|
299
|
-
return lookupApiKey(explicitApiKey).value;
|
|
475
|
+
export function resolvedApiKey(explicitApiKey, environment = 'production') {
|
|
476
|
+
return lookupApiKey(explicitApiKey, environment).value;
|
|
300
477
|
}
|
|
301
478
|
/** Answers "is this the CLI's own key" without the value leaving the caller; see sdk/cli/CLAUDE.md. */
|
|
302
479
|
export function matchesCliKey(value) {
|
|
303
|
-
|
|
480
|
+
if (value === undefined)
|
|
481
|
+
return false;
|
|
482
|
+
for (const environment of KEY_ENVIRONMENTS) {
|
|
483
|
+
if (value === lookupApiKey(undefined, environment).value)
|
|
484
|
+
return true;
|
|
485
|
+
}
|
|
486
|
+
return false;
|
|
304
487
|
}
|
|
305
488
|
/** resolvedApiKey for keys that reach a config file or the wire — loadConfig() is unvalidated on read. */
|
|
306
|
-
export function validatedApiKey(explicitApiKey) {
|
|
307
|
-
const key = resolvedApiKey(explicitApiKey);
|
|
489
|
+
export function validatedApiKey(explicitApiKey, environment = 'production') {
|
|
490
|
+
const key = resolvedApiKey(explicitApiKey, environment);
|
|
308
491
|
return key && validateKeyFormat(key) ? key : undefined;
|
|
309
492
|
}
|
|
310
493
|
/**
|
|
311
494
|
* The diagnosis, not the key: doctor must report a bad credential and say where it came from
|
|
312
495
|
* rather than exit like getApiKey does.
|
|
313
496
|
*/
|
|
314
|
-
export function apiKeyStatus(explicitApiKey) {
|
|
315
|
-
const { value, source } = lookupApiKey(explicitApiKey);
|
|
497
|
+
export function apiKeyStatus(explicitApiKey, environment = 'production') {
|
|
498
|
+
const { value, source, envVar } = lookupApiKey(explicitApiKey, environment);
|
|
316
499
|
if (!value || source === 'none') {
|
|
317
|
-
return {
|
|
500
|
+
return {
|
|
501
|
+
error: environment === 'production'
|
|
502
|
+
? 'No API key found. Run: sp auth login'
|
|
503
|
+
: 'No development API key found. Run: sp auth login --env dev',
|
|
504
|
+
source: 'none',
|
|
505
|
+
};
|
|
318
506
|
}
|
|
319
507
|
// Shape is the server's call. A local prefix rule turns a key format we have not shipped
|
|
320
508
|
// support for yet into a hard failure the user cannot work around, and the 401 says more.
|
|
321
509
|
if (!isHeaderSafe(value)) {
|
|
322
510
|
return { error: 'The API key contains control characters and cannot be sent', source };
|
|
323
511
|
}
|
|
324
|
-
return { key: value, source };
|
|
512
|
+
return { key: value, source, environment, ...(envVar ? { envVar } : {}) };
|
|
325
513
|
}
|
|
326
|
-
export function getApiKey() {
|
|
327
|
-
const resolved = apiKeyStatus();
|
|
514
|
+
export function getApiKey(environment = 'production') {
|
|
515
|
+
const resolved = apiKeyStatus(undefined, environment);
|
|
328
516
|
if ('key' in resolved)
|
|
329
517
|
return resolved.key;
|
|
330
518
|
err({ error: resolved.error });
|
package/dist/lib/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
export declare const CODEX_PLUGIN_NAME = "springbrand-cli";
|
|
2
2
|
export declare const CODEX_MARKETPLACE_NAME = "springbrand-cli-local";
|
|
3
|
+
/**
|
|
4
|
+
* Remove one environment's server, or both when no URL is selected. When no SpringBrand
|
|
5
|
+
* server remains, unregister the local plugin as well.
|
|
6
|
+
*/
|
|
7
|
+
export declare function removeCodexPluginServers(mcpUrl?: string): {
|
|
8
|
+
removed: boolean;
|
|
9
|
+
pluginRemoved: boolean;
|
|
10
|
+
};
|
|
3
11
|
export declare function installCodexPlugin(options: {
|
|
4
12
|
mcpUrl: string;
|
|
5
13
|
apiKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-plugin.d.ts","sourceRoot":"","sources":["../../src/lib/codex-plugin.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-plugin.d.ts","sourceRoot":"","sources":["../../src/lib/codex-plugin.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAsQ9D;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAgCtG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASrF"}
|