@springbrand/cli 0.1.7-alpha.0 → 0.1.7-alpha.2

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 (98) 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 +36 -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 +12 -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.map +1 -1
  36. package/dist/lib/connect-fallback.js +13 -4
  37. package/dist/lib/connect-fallback.js.map +1 -1
  38. package/dist/lib/connect-generic.d.ts +12 -0
  39. package/dist/lib/connect-generic.d.ts.map +1 -0
  40. package/dist/lib/connect-generic.js +80 -0
  41. package/dist/lib/connect-generic.js.map +1 -0
  42. package/dist/lib/connect-preflight.d.ts +1 -0
  43. package/dist/lib/connect-preflight.d.ts.map +1 -1
  44. package/dist/lib/connect-preflight.js +31 -19
  45. package/dist/lib/connect-preflight.js.map +1 -1
  46. package/dist/lib/connect-result.d.ts +1 -1
  47. package/dist/lib/constants.d.ts +2 -0
  48. package/dist/lib/constants.d.ts.map +1 -1
  49. package/dist/lib/constants.js +4 -1
  50. package/dist/lib/constants.js.map +1 -1
  51. package/dist/lib/cursor-config.d.ts +2 -2
  52. package/dist/lib/cursor-config.d.ts.map +1 -1
  53. package/dist/lib/cursor-config.js +5 -5
  54. package/dist/lib/cursor-config.js.map +1 -1
  55. package/dist/lib/devin-config.d.ts +9 -0
  56. package/dist/lib/devin-config.d.ts.map +1 -0
  57. package/dist/lib/devin-config.js +32 -0
  58. package/dist/lib/devin-config.js.map +1 -0
  59. package/dist/lib/doctor-checks.d.ts +1 -1
  60. package/dist/lib/doctor-checks.d.ts.map +1 -1
  61. package/dist/lib/doctor-checks.js +7 -4
  62. package/dist/lib/doctor-checks.js.map +1 -1
  63. package/dist/lib/doctor-report.d.ts +2 -2
  64. package/dist/lib/install-report.d.ts +1 -1
  65. package/dist/lib/key-environment.d.ts +14 -0
  66. package/dist/lib/key-environment.d.ts.map +1 -0
  67. package/dist/lib/key-environment.js +8 -0
  68. package/dist/lib/key-environment.js.map +1 -0
  69. package/dist/lib/mcp-endpoint.d.ts +4 -1
  70. package/dist/lib/mcp-endpoint.d.ts.map +1 -1
  71. package/dist/lib/mcp-endpoint.js +5 -0
  72. package/dist/lib/mcp-endpoint.js.map +1 -1
  73. package/dist/lib/mcp-json-config.d.ts +2 -0
  74. package/dist/lib/mcp-json-config.d.ts.map +1 -1
  75. package/dist/lib/mcp-json-config.js +10 -4
  76. package/dist/lib/mcp-json-config.js.map +1 -1
  77. package/dist/lib/omp-config.d.ts +2 -2
  78. package/dist/lib/omp-config.d.ts.map +1 -1
  79. package/dist/lib/omp-config.js +5 -5
  80. package/dist/lib/omp-config.js.map +1 -1
  81. package/dist/lib/pi-config.d.ts +2 -2
  82. package/dist/lib/pi-config.d.ts.map +1 -1
  83. package/dist/lib/pi-config.js +5 -5
  84. package/dist/lib/pi-config.js.map +1 -1
  85. package/dist/lib/registration-detect.js +5 -5
  86. package/dist/lib/registration-detect.js.map +1 -1
  87. package/dist/lib/workbuddy-config.d.ts +1 -1
  88. package/dist/lib/workbuddy-config.d.ts.map +1 -1
  89. package/dist/lib/workbuddy-config.js +5 -5
  90. package/dist/lib/workbuddy-config.js.map +1 -1
  91. package/package.json +1 -1
  92. package/skill/springbrand-action-api/SKILL.md +20 -7
  93. package/skill/springbrand-action-api/references/action-discovery.md +20 -4
  94. package/skill/springbrand-connector/SKILL.md +3 -2
  95. package/skill/springbrand-gtm/SKILL.md +38 -5
  96. package/skill/springbrand-platform/SKILL.md +4 -2
  97. package/skill/springbrand-platform/references/plugin-discovery.md +5 -4
  98. package/skill/use-springbrand/SKILL.md +127 -18
package/README.md CHANGED
@@ -17,7 +17,7 @@ npm link
17
17
 
18
18
  ## Installation: OAuth first
19
19
 
20
- Run `sp connect <client> --json` once. Without an explicit API key, the CLI writes native MCP configuration and returns the Host's OAuth action. Follow `next_action`; keep the selected Host, endpoint and authentication mode.
20
+ Run `sp connect <client> --json` once. Without a usable key for the selected environment, the CLI writes native MCP configuration and returns the Host's OAuth action. Follow `next_action`; keep the selected Host, endpoint and authentication mode.
21
21
 
22
22
  ```bash
23
23
  sp connect codex --json
@@ -27,7 +27,7 @@ sp doctor --harness codex --json --wait-for-auth
27
27
 
28
28
  `--wait-for-auth` waits for OAuth for up to five minutes without reinstalling configuration. For API-key installs, use the same doctor command without this flag. A timeout remains pending; complete authorization before retrying.
29
29
 
30
- An explicit `--api-key` or `SPRINGBRAND_API_KEY` selects API-key authentication. A saved CLI key alone does not change a keyless connect into an API-key install. Invalid keys and verification outages never trigger an automatic OAuth fallback or overwrite a previously saved key.
30
+ An explicit `--api-key`, the target environment variable, or a saved key for that environment selects API-key authentication. Use `--oauth` to force keyless. Invalid keys and verification outages never trigger an automatic OAuth fallback or overwrite a previously saved key.
31
31
 
32
32
  ### Installation report (schema version 2)
33
33
 
@@ -131,8 +131,8 @@ npm run publish:stable
131
131
  ```bash
132
132
  sp connect [client] # 把 SpringBrand 写入客户端的 MCP 配置并安装 Skill 集合
133
133
  sp doctor # Show a compact installation summary; --json for automation
134
- sp auth login|set|status|logout # 管理 API key
135
- sp auth status --verify # 额外拿这把 key 探一次 /mcp,报告账号、keyId 与环境
134
+ sp auth login|set|status|logout # 管理 API key(支持 --env dev|production)
135
+ sp auth status --env dev --verify # 额外拿这把 key 探一次 /mcp,报告账号、keyId 与环境
136
136
  sp upgrade # 更新 CLI 并刷新随包分发的 Skill 集合
137
137
  sp check-version # 报告是否需要升级,供 agent 调用
138
138
  ```
@@ -145,13 +145,25 @@ sp check-version # 报告是否需要升级,供 agent 调用
145
145
  installs or upgrades the CLI itself. Install the desired CLI channel separately
146
146
  with npm (for development: `npm install -g @springbrand/cli@alpha`).
147
147
 
148
+ The Codex Plugin installer sets `tool_timeout_sec` to 900 seconds (15 minutes)
149
+ for each SpringBrand server in the generated `.mcp.json`, so a ten-minute Agent
150
+ result query can finish. Reinstalling preserves a larger valid timeout already
151
+ set for that Plugin server. This works for both OAuth and API key installs; it
152
+ does not add `MCP_TOOL_TIMEOUT` to the environment or edit global Codex settings
153
+ and other MCP servers. Reload Codex after refreshing the Plugin. Older Codex
154
+ versions using the native MCP fallback still need their own per-server timeout
155
+ configuration; this automatic setting applies to the Plugin path only.
156
+
148
157
  ```bash
149
158
  sp connect # 从本机检测到的客户端里挑一个
150
159
  sp connect cursor # 指定客户端
151
160
  sp connect --all # 连接本机所有支持的客户端
152
161
  sp connect --all --dry-run # 只打印将要写入什么,不落盘
153
162
  sp connect --all --uninstall # 移除 connect 写入的条目
163
+ sp connect --all --uninstall --url https://devconnector.springbrand.ai/mcp
164
+ # 只移除开发环境条目
154
165
  sp connect cursor --url http://127.0.0.1:8789/mcp # 覆盖端点(本地开发)
166
+ sp connect cursor --oauth # 忽略已保存 key,强制走客户端 OAuth
155
167
  ```
156
168
 
157
169
  支持 11 个客户端。Gateway 同时提供 OAuth 与 API key,实际可用情况分三档:
@@ -160,7 +172,7 @@ sp connect cursor --url http://127.0.0.1:8789/mcp # 覆盖端点(本地开
160
172
  |---|---|---|
161
173
  | `cursor` | 可用 | 真实写入 `~/.cursor/mcp.json` + skill,OAuth 与 API key 两种形态 |
162
174
  | `claude-code` | 可用 | 真实 `claude mcp add`,条目落入 `~/.claude/.claude.json`,OAuth 由客户端接手 |
163
- | `codex` | 可用 | 注册本地 `springbrand-cli` Plugin;OAuth 由 `codex mcp login` 接手,旧版 Codex 回退到原生 MCP 条目 |
175
+ | `codex` | 可用 | 注册本地 `springbrand-cli` Plugin;同一 Plugin 可同时包含 `springbrand` 与 `springbrand-dev`,OAuth 由 `codex mcp login` 接手 |
164
176
  | `pi` | 可用 | 真实写入 `~/.pi/agent/mcp.json` + skill |
165
177
  | `omp` | 可用 | 真实写入 `~/.omp/mcp.json`(不装 skill) |
166
178
  | `opencode` | 可用 | stub 校验命令构造:`mcp add <name> --url ...` 与 `mcp auth` |
@@ -174,14 +186,14 @@ sp connect cursor --url http://127.0.0.1:8789/mcp # 覆盖端点(本地开
174
186
 
175
187
  两种认证形态由客户端能力决定:
176
188
 
177
- - **OAuth(默认)**:不提供 key 时,写入的条目只有 URL,由客户端自己的 MCP OAuth 完成注册、登录和授权。
178
- - **API key(显式)**:只有本次命令的 `--api-key` 或 `SPRINGBRAND_API_KEY` 会选择 key 路径;CLI 不会从保存的 key 配置自动改变 keyless landing flow。选中 key 后,CLI 把它写进 `Authorization: Bearer`(或 Host 的等价安全引用),并禁止 OAuth fallback。
189
+ - **OAuth(默认)**:目标环境没有可用 key 时,写入的条目只有 URL,由客户端自己的 MCP OAuth 完成注册、登录和授权。
190
+ - **API key**:`--api-key`、目标环境变量或目标环境已保存的 key 会选择 key 路径。CLI 把 key 写进 `Authorization: Bearer`(或 Host 的等价安全引用),并禁止 OAuth fallback。`--oauth` 可强制忽略已保存 key。
179
191
 
180
- **`Authorization: Bearer` 是 Gateway 唯一读取 key 的位置**(`src/auth/mcp-api-key.ts` 的 `classifyMcpAuthorization`),key 写进别的请求头等于没带凭据,客户端会被推回 OAuth。Codex 与 Grok 例外地传环境变量名而非 key 本身:前者用 `--bearer-token-env-var`,后者在加载时展开 `${SPRINGBRAND_API_KEY}`,两者都由客户端自己拼成 Bearer,key 因此不进 argv 与配置文件。
192
+ **`Authorization: Bearer` 是 Gateway 唯一读取 key 的位置**(`src/auth/mcp-api-key.ts` 的 `classifyMcpAuthorization`),key 写进别的请求头等于没带凭据,客户端会被推回 OAuth。Codex 与 Grok 例外地传环境变量名而非 key 本身:production 使用 `SPRINGBRAND_API_KEY`,dev/local 使用 `SPRINGBRAND_DEV_API_KEY`,两者都由客户端自己拼成 Bearer,key 因此不进 argv。
181
193
 
182
194
  key 形态是 `sbk_v1_<dev|production>_<id>_<secret>`,环境段决定它能用在哪个端点:生产端点 `connector.springbrand.ai` 只收 production key,其余(dev、本机)只收 dev key。不匹配的组合在写任何配置之前就被拒绝,不必等服务端的 401。
183
195
 
184
- 写入前会把原配置备份成带时间戳的副本。`claude-code` 和 `codex` 不由 CLI 直接改文件,而是调用它们各自的 `mcp add` 命令。
196
+ 写入前会把原配置备份成带时间戳的副本。`claude-code` 调用自己的 `mcp add`;`codex` 由 CLI 写入本地 Plugin 的 `mcp.json`/`.mcp.json` 后调用 `codex plugin add`。同一 Plugin 中两个环境各自保留 server entry 和 `bearer_token_env_var`,互不覆盖。
185
197
 
186
198
  ### sp doctor
187
199
 
@@ -199,11 +211,12 @@ Without `--url`, doctor checks development and production registrations and sele
199
211
 
200
212
  ## 端点与配置
201
213
 
202
- MCP 端点默认 `https://connector.springbrand.ai/mcp`。写入客户端配置时的服务名固定为 `springbrand`,与 Gateway 声明的服务别名一致。
214
+ MCP 端点默认 `https://connector.springbrand.ai/mcp`。production 使用服务名 `springbrand`;dev 和 local 使用 `springbrand-dev`。
203
215
 
204
216
  | 环境变量 | 作用 |
205
217
  |---|---|
206
- | `SPRINGBRAND_API_KEY` | API key,优先级高于已保存的配置 |
218
+ | `SPRINGBRAND_API_KEY` | production API key,优先级高于 `api_keys.production` |
219
+ | `SPRINGBRAND_DEV_API_KEY` | dev/local API key,优先级高于 `api_keys.dev` |
207
220
  | `SPRINGBRAND_API_URL` | 覆盖端点,必须是 https 或 loopback http |
208
221
  | `SPRINGBRAND_WEB_URL` | 覆盖 `sp auth login` 打开的网页地址;与端点覆盖相互独立 |
209
222
  | `SPRINGBRAND_DEBUG=1` | 打印 HTTP 请求与响应到 stderr(等同 `--debug`) |
@@ -220,7 +233,7 @@ MCP 端点默认 `https://connector.springbrand.ai/mcp`。写入客户端配置
220
233
 
221
234
  另有一条被动通道:`connect` 期间会向所连接端点的 `/api/cli/connect-event` 上报六次安装进度,并从响应头 `x-sp-notice` 系列读取版本提示,`doctor` 与 `upgrade` 同样会读。但用户装完就不再跑这些命令,触达有限,所以主动通道才是主要手段。Gateway 已实现该端点(见 `src/http/cli-events.ts`):事件不落库,作用是承载版本通告——CLI 装在用户机器上,服务端只能借它主动发起的请求把「该升级了」捎回去。版本门槛由 Wrangler 的 `CLI_LATEST_VERSION`(与可选的 `CLI_MIN_VERSION`)配置,**发布新版 CLI 后需同步该变量**,否则老版本收不到提示。
222
235
 
223
- CLI 自己的配置在 `~/.springbrand/config.json`。
236
+ CLI 自己的配置在 `~/.springbrand/config.json`,两把 key 分别保存在 `api_keys.production` 和 `api_keys.dev`。升级到支持双环境的版本后,分别对需要保留的环境重跑一次 `sp connect ... --url ...`,以刷新客户端引用和 Codex Plugin。
224
237
 
225
238
  skill 的安装位置随客户端而定:默认 `~/.agents/skills/`,`claude-code` 用 `~/.claude/skills/`,`pi` 用 `~/.pi/agent/skills/`,`command-code` 用 `~/.commandcode/skills/`,`hermes` 用 `~/.hermes/skills/`。`openclaw` 例外,走它自己的 ClawHub 包管理器。
226
239
 
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAwF1D,KAAK,QAAQ,GACP;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACnF,sGAAsG;AACtG,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBlF;AAeD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0HnD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAyL1D,KAAK,QAAQ,GACP;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACnF,sGAAsG;AACtG,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBlF;AAyBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgKnD"}
@@ -2,11 +2,12 @@
2
2
  import { spawn } from 'child_process';
3
3
  import * as readline from 'readline';
4
4
  import { Option } from 'commander';
5
- import { CONNECT_ATTEMPT_ENV, KEY_FORMAT_HINT, clearConfig, configFile, getDashboardUrl, loadConfig, maskKey, parseKeyIdentity, savePendingConnectAttempt, saveConfig, validateKeyFormat, } from '../lib/auth.js';
6
- import { SPRINGBRAND_API_KEY_VAR } from '../lib/constants.js';
7
- import { apiBaseForKeyEnvironment, apiBaseFromMcpUrl } from '../lib/mcp-endpoint.js';
5
+ import { CONNECT_ATTEMPT_ENV, KEY_FORMAT_HINT, apiKeyStatus, clearAllConfig, clearConfig, configFile, getDashboardUrl, maskKey, parseKeyIdentity, removeApiKeyFromEnvironment, saveConfig, savePendingConnectAttempt, savedKeyEnvironments, validateKeyFormat, } from '../lib/auth.js';
6
+ import { apiKeyEnvVar } from '../lib/key-environment.js';
7
+ import { DEFAULT_MCP_URL, DEV_MCP_URL, apiBaseForKeyEnvironment, apiBaseFromMcpUrl, environmentOf, } from '../lib/mcp-endpoint.js';
8
8
  import { err, errLine, out, outLine, warnLine } from '../lib/output.js';
9
9
  import { verifyMcpAuth } from '../lib/verify.js';
10
+ const ENVIRONMENTS = ['production', 'dev'];
10
11
  /**
11
12
  * Read a key from stdin without echoing it to the terminal.
12
13
  * Uses setRawMode on TTY so characters are never written to the screen.
@@ -77,17 +78,90 @@ function parkSeedAttempt() {
77
78
  if (seed)
78
79
  savePendingConnectAttempt(seed);
79
80
  }
81
+ function parseEnvironmentOption(value) {
82
+ if (value === undefined)
83
+ return undefined;
84
+ if (value === 'dev' || value === 'production')
85
+ return value;
86
+ throw new Error('--env must be dev or production');
87
+ }
88
+ function selectedEnvironment(options) {
89
+ const fromFlag = parseEnvironmentOption(options.env);
90
+ const fromUrl = options.url ? environmentOf(options.url) : undefined;
91
+ if (options.url && !fromUrl)
92
+ throw new Error(`Invalid --url value: ${options.url}`);
93
+ if (fromFlag && fromUrl && fromFlag !== fromUrl) {
94
+ throw new Error(`--env ${fromFlag} does not match the environment of --url ${options.url}`);
95
+ }
96
+ return fromFlag ?? fromUrl;
97
+ }
98
+ function dashboardUrl(options) {
99
+ const environment = selectedEnvironment(options);
100
+ const mcpUrl = options.url ?? (environment === 'dev' ? DEV_MCP_URL : DEFAULT_MCP_URL);
101
+ return getDashboardUrl(options.source, mcpUrl);
102
+ }
103
+ function keyEnvironment(key, selected) {
104
+ const identity = parseKeyIdentity(key);
105
+ if (!identity) {
106
+ err(`Invalid key format. ${KEY_FORMAT_HINT}`);
107
+ process.exit(1);
108
+ }
109
+ if (selected && selected !== identity.environment) {
110
+ err(`This is a ${identity.environment} key. Use --env ${identity.environment} or the matching --url.`);
111
+ process.exit(1);
112
+ }
113
+ return identity.environment;
114
+ }
80
115
  // Env var wins every later lookup; a silent save misleads.
81
- function warnIfEnvShadows(savedKey) {
82
- const envKey = process.env[SPRINGBRAND_API_KEY_VAR];
83
- if (!envKey || envKey === savedKey)
116
+ function warnIfEnvShadows(savedKey, environment) {
117
+ const active = apiKeyStatus(undefined, environment);
118
+ if (!('key' in active) || active.key === savedKey)
84
119
  return;
85
- warnLine(`Warning: ${SPRINGBRAND_API_KEY_VAR} is set in your environment and overrides the key just saved. ` +
86
- `Unset it or update your shell profile, then check with 'sp auth status'.`);
120
+ const where = active.source === 'env'
121
+ ? active.envVar ?? apiKeyEnvVar(environment)
122
+ : configFile();
123
+ warnLine(`Warning: ${where} is set in your environment and overrides the key just saved. ` +
124
+ `Unset it or update your shell profile, then check with 'sp auth status --env ${environment}'.`);
125
+ }
126
+ function removeEnvironmentExport(environment) {
127
+ try {
128
+ removeApiKeyFromEnvironment(environment);
129
+ }
130
+ catch (error) {
131
+ warnLine(`Warning: could not remove the managed shell export: ${error instanceof Error ? error.message : String(error)}`);
132
+ }
133
+ }
134
+ function environmentStatus(environment) {
135
+ const status = apiKeyStatus(undefined, environment);
136
+ if (!('key' in status))
137
+ return { configured: false, source: status.source };
138
+ const identity = parseKeyIdentity(status.key);
139
+ return {
140
+ configured: true,
141
+ source: status.source,
142
+ key_preview: maskKey(status.key),
143
+ ...(identity ? { environment: identity.environment, key_id: identity.keyId } : {}),
144
+ };
87
145
  }
88
- function keyFromConfig() {
89
- const stored = loadConfig().api_key;
90
- return stored ? { key: stored, source: 'config', where: configFile() } : undefined;
146
+ function environmentStatuses() {
147
+ return Object.fromEntries(ENVIRONMENTS.map((environment) => [environment, environmentStatus(environment)]));
148
+ }
149
+ function configuredKeyEnvironments() {
150
+ return ENVIRONMENTS.filter((environment) => 'key' in apiKeyStatus(undefined, environment));
151
+ }
152
+ function primaryEnvironment(options) {
153
+ const selected = selectedEnvironment(options);
154
+ if (selected)
155
+ return selected;
156
+ const configured = configuredKeyEnvironments();
157
+ if (configured.includes('production'))
158
+ return 'production';
159
+ if (configured.length > 0)
160
+ return configured[0];
161
+ const saved = savedKeyEnvironments();
162
+ if (saved.includes('production'))
163
+ return 'production';
164
+ return saved[0] ?? 'production';
91
165
  }
92
166
  /** `--verify` only: says the endpoint accepts the key, never that an agent has loaded SpringBrand. */
93
167
  export async function checkKey(key, apiBaseUrl) {
@@ -107,8 +181,8 @@ export async function checkKey(key, apiBaseUrl) {
107
181
  ...(result.errorCode ? { verify_code: result.errorCode } : {}),
108
182
  };
109
183
  }
110
- function renderStatus(where, key, identity, verified) {
111
- const lines = [`Source: ${where}`, `Key: ${maskKey(key)}`];
184
+ function renderStatus(environment, where, key, identity, verified) {
185
+ const lines = [`Environment: ${environment}`, `Source: ${where}`, `Key: ${maskKey(key)}`];
112
186
  if (identity) {
113
187
  lines.push(`Env: ${identity.environment}`, `Key ID: ${identity.keyId}`);
114
188
  }
@@ -121,32 +195,38 @@ function renderStatus(where, key, identity, verified) {
121
195
  }
122
196
  return lines.join('\n');
123
197
  }
198
+ function envOption() {
199
+ return new Option('--env <environment>', 'Key environment: dev or production')
200
+ .choices(['dev', 'production']);
201
+ }
124
202
  export function registerAuth(program) {
125
203
  const auth = program.command('auth').description('Manage your SpringBrand API key');
126
204
  auth
127
205
  .command('login')
128
206
  .description('Open the API keys page and save your key interactively')
129
207
  .addOption(new Option('--source <source>', 'API keys page source attribution').default('cli').hideHelp())
208
+ .addOption(envOption())
130
209
  .addOption(new Option('--url <mcpUrl>', 'MCP endpoint used to select the API-key environment').hideHelp())
131
210
  .action(async (options) => {
132
- const dashboardUrl = getDashboardUrl(options.source, options.url);
133
- errLine(`Opening ${dashboardUrl} in your browser...`);
211
+ const selected = selectedEnvironment(options);
212
+ const url = dashboardUrl(options);
213
+ errLine(`Opening ${url} in your browser...`);
134
214
  try {
135
215
  // Use spawn with an explicit args array — no shell, no interpolation
136
216
  let cmd;
137
217
  let args;
138
218
  if (process.platform === 'darwin') {
139
219
  cmd = 'open';
140
- args = [dashboardUrl];
220
+ args = [url];
141
221
  }
142
222
  else if (process.platform === 'win32') {
143
223
  // "start" treats the first quoted arg as a window title — empty string avoids it
144
224
  cmd = 'cmd';
145
- args = ['/c', 'start', '', dashboardUrl];
225
+ args = ['/c', 'start', '', url];
146
226
  }
147
227
  else {
148
228
  cmd = 'xdg-open';
149
- args = [dashboardUrl];
229
+ args = [url];
150
230
  }
151
231
  const child = spawn(cmd, args, { stdio: 'ignore', detached: true });
152
232
  child.unref();
@@ -155,7 +235,7 @@ export function registerAuth(program) {
155
235
  catch {
156
236
  // headless — ignore
157
237
  }
158
- process.stderr.write(`If the browser didn't open, visit: ${dashboardUrl}\n\n`);
238
+ process.stderr.write(`If the browser didn't open, visit: ${url}\n\n`);
159
239
  const key = await readKeyHidden('Paste your API key: ');
160
240
  if (!key) {
161
241
  err('API key cannot be empty');
@@ -165,15 +245,21 @@ export function registerAuth(program) {
165
245
  err(`Invalid key format. ${KEY_FORMAT_HINT}`);
166
246
  process.exit(1);
167
247
  }
168
- saveConfig(key);
248
+ const environment = keyEnvironment(key, selected);
249
+ saveConfig(key, environment);
169
250
  parkSeedAttempt();
170
- out({ status: 'ok', message: 'API key saved', key_preview: maskKey(key) });
171
- warnIfEnvShadows(key);
251
+ out({ status: 'ok', message: 'API key saved', environment, key_preview: maskKey(key) });
252
+ if (!selected && environment === 'dev') {
253
+ warnLine('Saved a development key. Use --env dev next time to open the development key page.');
254
+ }
255
+ warnIfEnvShadows(key, environment);
172
256
  });
173
257
  auth
174
258
  .command('set')
175
259
  .description('Save an API key. Pass via stdin: echo $KEY | sp auth set (safe for CI/CD)')
176
- .action(async () => {
260
+ .addOption(envOption())
261
+ .action(async (options) => {
262
+ const selected = parseEnvironmentOption(options.env);
177
263
  // Read from stdin pipe (CI/CD) or hidden TTY prompt (interactive)
178
264
  const key = await readKeyFromStdinOrPrompt();
179
265
  if (!key) {
@@ -187,28 +273,34 @@ export function registerAuth(program) {
187
273
  err(`Invalid key format. ${KEY_FORMAT_HINT}`);
188
274
  process.exit(1);
189
275
  }
190
- saveConfig(key);
276
+ const environment = keyEnvironment(key, selected);
277
+ saveConfig(key, environment);
191
278
  parkSeedAttempt();
192
- out({ status: 'ok', message: 'API key saved', key_preview: maskKey(key) });
193
- warnIfEnvShadows(key);
279
+ out({ status: 'ok', message: 'API key saved', environment, key_preview: maskKey(key) });
280
+ warnIfEnvShadows(key, environment);
194
281
  });
195
282
  auth
196
283
  .command('status')
197
284
  .description('Show which API key is active and its source')
285
+ .addOption(envOption())
198
286
  .option('--pretty', 'Human-readable output')
199
287
  .option('--verify', 'Also check the key against the SpringBrand MCP endpoint')
200
288
  .option('--url <mcpUrl>', 'MCP endpoint override for --verify')
201
289
  .action(async (opts) => {
202
- const envKey = process.env[SPRINGBRAND_API_KEY_VAR];
203
- const active = envKey
204
- ? { key: envKey, source: 'env', where: `environment variable (${SPRINGBRAND_API_KEY_VAR})` }
205
- : keyFromConfig();
206
- if (!active) {
207
- const result = { source: 'none', key_preview: null, authenticated: false };
208
- if (opts.pretty)
209
- outLine('No API key configured. Run: sp auth login');
210
- else
290
+ const primary = primaryEnvironment(opts);
291
+ const active = apiKeyStatus(undefined, primary);
292
+ const environments = environmentStatuses();
293
+ if (!('key' in active)) {
294
+ const anyConfigured = Object.values(environments).some((entry) => entry.configured);
295
+ const result = { source: 'none', key_preview: null, authenticated: false, environments };
296
+ if (opts.pretty) {
297
+ outLine(anyConfigured
298
+ ? `No API key configured for ${primary}. Use --env dev or --env production.`
299
+ : 'No API key configured. Run: sp auth login');
300
+ }
301
+ else {
211
302
  out(result);
303
+ }
212
304
  process.exit(1);
213
305
  }
214
306
  const authenticated = validateKeyFormat(active.key);
@@ -217,15 +309,19 @@ export function registerAuth(program) {
217
309
  const verified = opts.verify
218
310
  ? await checkKey(active.key, opts.url ? apiBaseFromMcpUrl(opts.url) : undefined)
219
311
  : undefined;
312
+ const where = active.source === 'env'
313
+ ? `environment variable (${active.envVar ?? apiKeyEnvVar(primary)})`
314
+ : configFile();
220
315
  const result = {
221
316
  source: active.source,
222
317
  key_preview: maskKey(active.key),
223
318
  authenticated,
224
319
  ...(identity ? { environment: identity.environment, key_id: identity.keyId } : {}),
320
+ environments,
225
321
  ...(verified ?? {}),
226
322
  };
227
323
  if (opts.pretty) {
228
- outLine(renderStatus(active.where, active.key, identity, verified));
324
+ outLine(renderStatus(primary, where, active.key, identity, verified));
229
325
  }
230
326
  else {
231
327
  out(result);
@@ -235,13 +331,33 @@ export function registerAuth(program) {
235
331
  });
236
332
  auth
237
333
  .command('logout')
238
- .description('Remove stored API key')
239
- .action(() => {
240
- if (!clearConfig()) {
334
+ .description('Remove stored API keys')
335
+ .addOption(envOption())
336
+ .option('--all', 'Remove both environments')
337
+ .action((options) => {
338
+ if (options.all) {
339
+ const removed = clearAllConfig();
340
+ removeEnvironmentExport('all');
341
+ out({ status: 'ok', message: removed ? 'API keys removed' : 'No API key stored' });
342
+ return;
343
+ }
344
+ const selected = parseEnvironmentOption(options.env);
345
+ let environment = selected;
346
+ if (!environment) {
347
+ const configured = configuredKeyEnvironments();
348
+ if (configured.length > 1) {
349
+ err('Both dev and production keys are stored. Use --env dev|production, or --all.');
350
+ process.exit(1);
351
+ }
352
+ environment = configured[0] ?? savedKeyEnvironments()[0] ?? 'production';
353
+ }
354
+ if (!clearConfig(environment)) {
355
+ removeEnvironmentExport(environment);
241
356
  out({ status: 'ok', message: 'No API key stored' });
242
357
  return;
243
358
  }
244
- out({ status: 'ok', message: 'API key removed' });
359
+ removeEnvironmentExport(environment);
360
+ out({ status: 'ok', message: `${environment} API key removed` });
245
361
  });
246
362
  }
247
363
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export interface NativeConnectOptions {
19
19
  /** A shared installation report replaces legacy success and restart hints. */
20
20
  compactReport?: boolean;
21
21
  apiKey?: string;
22
+ /** Force the keyless Host OAuth path for this run; stored keys are not deleted. */
23
+ oauth?: boolean;
22
24
  mcpUrl: string;
23
25
  launch: boolean;
24
26
  attemptId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AACA,4DAA4D;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAyE,MAAM,2BAA2B,CAAC;AA0gBrJ,6EAA6E;AAC7E,wBAAsB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA+DtJ;AAwPD,6DAA6D;AAC7D,wBAAsB,aAAa,CAAC,OAAO,EAAE;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEvC;AAqBD,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAuDD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAI9H;AAgLD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiDtD;AAeD,MAAM,WAAW,oBAAoB;IACjC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AACA,4DAA4D;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAyE,MAAM,2BAA2B,CAAC;AA0hBrJ,6EAA6E;AAC7E,wBAAsB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA+DtJ;AAyPD,6DAA6D;AAC7D,wBAAsB,aAAa,CAAC,OAAO,EAAE;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEvC;AAqBD,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAuDD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAI9H;AAoLD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqDtD;AAgBD,MAAM,WAAW,oBAAoB;IACjC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC"}