@somewhere-cloud/cli 0.38.9 → 0.38.10

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.
@@ -0,0 +1,197 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import prompts from 'prompts';
3
+ import { ApiClient, CliApiError } from '../lib/client.js';
4
+ import { getToken } from '../lib/config.js';
5
+ import { dim, error, info, printJson, printJsonError, success, teal } from '../lib/output.js';
6
+ // `somewhere ai keys` — a project's own AI provider keys (bring your own key,
7
+ // tsk_c91717a5). Routes: worker/src/routes/ai-provider-keys.ts.
8
+ // GET /v1/ai/provider-keys?project_id= → { project_id, keys: [{ provider, updated_at }] }
9
+ // POST /v1/ai/provider-keys { project_id, provider, key } → { project_id, provider, set: true }
10
+ // DELETE /v1/ai/provider-keys/:project_id/:provider → { project_id, provider, deleted: true }
11
+ // The key is write-only. It is read from a hidden prompt or stdin, never from
12
+ // an argument, and no output, error or local record of this command holds it.
13
+ const PROVIDERS = ['anthropic', 'openai'];
14
+ const PROVIDER_NAMES = { anthropic: 'Anthropic', openai: 'OpenAI' };
15
+ const KEY_MAX_LENGTH = 4096; // the route's own limit
16
+ const KEY_INPUT_NOTE = 'The key is read from a hidden prompt, or from stdin with --stdin; it is never passed as an argument.';
17
+ /** Fail without naming the rejected value: it may be a key typed in the wrong place. */
18
+ function fail(message) {
19
+ error(message);
20
+ process.exit(1);
21
+ }
22
+ function requireProvider(value) {
23
+ if (PROVIDERS.includes(value))
24
+ return value;
25
+ fail(`The provider must be ${PROVIDERS.join(' or ')}.`);
26
+ }
27
+ /** The project is named on every call: a secret write never lands on a project inferred from the folder. */
28
+ function requireProject(value) {
29
+ const project = value?.trim();
30
+ if (!project)
31
+ fail('Pass --project <id>: the project whose AI provider keys this changes or lists.');
32
+ return project;
33
+ }
34
+ async function readKey(stdin) {
35
+ let raw;
36
+ if (stdin) {
37
+ if (process.stdin.isTTY)
38
+ fail('Pipe the key into --stdin, or leave out --stdin to type it into a hidden prompt.');
39
+ raw = readFileSync(0, 'utf8');
40
+ }
41
+ else {
42
+ if (!process.stdin.isTTY)
43
+ fail('Pass --stdin to read the key from a pipe. Nothing was sent.');
44
+ // The prompt goes to stderr so --json keeps stdout to the result alone.
45
+ const answer = await prompts({ type: 'password', name: 'key', message: 'API key', stdout: process.stderr });
46
+ raw = typeof answer.key === 'string' ? answer.key : '';
47
+ }
48
+ // One final line ending is the pipe's, not the key's (as `env set --stdin`).
49
+ const key = raw.replace(/\r?\n$/, '');
50
+ if (!key.trim())
51
+ fail('No key was entered. Nothing was sent.');
52
+ if (/\s/.test(key))
53
+ fail('The key contains spaces or line breaks; pass the key alone. Nothing was sent.');
54
+ if (key.length > KEY_MAX_LENGTH)
55
+ fail(`The key is longer than ${KEY_MAX_LENGTH} characters. Nothing was sent.`);
56
+ return key;
57
+ }
58
+ function report(err) {
59
+ error(err instanceof Error ? err.message : String(err), err);
60
+ process.exit(1);
61
+ }
62
+ const options = (cmd) => cmd.optsWithGlobals();
63
+ /**
64
+ * The status read (GET) ships with the platform after the set and remove
65
+ * routes. Until then the platform answers 405 (only POST at that path) or a
66
+ * bare "endpoint not found" 404. That is "status unknown", never "no keys":
67
+ * an empty list would tell someone their key is gone when it is not.
68
+ * PROJECT_NOT_FOUND and permission refusals carry their own codes and are
69
+ * reported as they are.
70
+ */
71
+ function statusUnavailable(project, json) {
72
+ const message = 'Listing keys needs a newer platform, so which keys are set is not known here; set and remove work now ' +
73
+ `(somewhere ai keys set anthropic --project ${project}).`;
74
+ if (json)
75
+ printJsonError('AI_KEY_STATUS_UNAVAILABLE', message);
76
+ else
77
+ error(message);
78
+ process.exit(1);
79
+ }
80
+ function isMissingStatusRoute(err) {
81
+ return err instanceof CliApiError
82
+ && ((err.statusCode === 405 && err.code === 'METHOD_NOT_ALLOWED') || (err.statusCode === 404 && err.code === 'NOT_FOUND'));
83
+ }
84
+ async function listKeys(_opts, cmd) {
85
+ const opts = options(cmd);
86
+ const project = requireProject(opts.project);
87
+ const client = new ApiClient(getToken());
88
+ let result;
89
+ try {
90
+ result = await client.call('GET', '/ai/provider-keys', undefined, { project_id: project });
91
+ }
92
+ catch (err) {
93
+ if (isMissingStatusRoute(err))
94
+ statusUnavailable(project, opts.json);
95
+ report(err);
96
+ }
97
+ if (!Array.isArray(result?.keys))
98
+ statusUnavailable(project, opts.json);
99
+ if (opts.json) {
100
+ printJson(result);
101
+ return;
102
+ }
103
+ const keys = result.keys
104
+ .filter((k) => typeof k?.provider === 'string');
105
+ if (!keys.length) {
106
+ info(dim('No AI provider keys set for this project.'));
107
+ info(dim(`Set one with: somewhere ai keys set anthropic --project ${project}`));
108
+ return;
109
+ }
110
+ for (const k of keys) {
111
+ console.log(` ${teal(k.provider)} ${dim(typeof k.updated_at === 'string' ? `set ${k.updated_at}` : 'set')}`);
112
+ }
113
+ }
114
+ export function registerAi(program) {
115
+ const ai = program
116
+ .command('ai')
117
+ .description('Manage AI settings for a project');
118
+ const keys = ai
119
+ .command('keys')
120
+ .description("List, set or remove a project's own AI provider keys (the key itself is never shown)")
121
+ .option('--project <id>', 'Project slug or ID (required)')
122
+ .option('--json', 'Print the raw response as JSON')
123
+ .allowExcessArguments(false)
124
+ .action(listKeys);
125
+ keys
126
+ .command('list')
127
+ .alias('ls')
128
+ .description('List which providers have a key set, and when (never the key)')
129
+ .option('--project <id>', 'Project slug or ID (required)')
130
+ .option('--json', 'Print the raw response as JSON')
131
+ .allowExcessArguments(false)
132
+ .action(listKeys);
133
+ keys
134
+ .command('set <provider>')
135
+ .description(`Save a provider key (${PROVIDERS.join(' or ')}) for sw.ai in a project. ${KEY_INPUT_NOTE}`)
136
+ .option('--project <id>', 'Project slug or ID (required)')
137
+ .option('--stdin', 'Read the key from stdin instead of a hidden prompt')
138
+ .option('--json', 'Print the raw response as JSON')
139
+ // Parsed here instead of by commander, whose refusal repeats the
140
+ // offending text — and that text may be the key.
141
+ .allowUnknownOption()
142
+ .allowExcessArguments()
143
+ .action(async (providerArg, _opts, cmd) => {
144
+ const opts = options(cmd);
145
+ if (cmd.args.length !== 1) {
146
+ fail('`ai keys set` takes only the provider and its options. ' + KEY_INPUT_NOTE +
147
+ ' If you typed the key on the command line, it may be in your shell history: replace that key with your provider.');
148
+ }
149
+ const provider = requireProvider(providerArg);
150
+ const project = requireProject(opts.project);
151
+ const client = new ApiClient(getToken());
152
+ const key = await readKey(opts.stdin);
153
+ let result;
154
+ try {
155
+ result = await client.call('POST', '/ai/provider-keys', { project_id: project, provider, key });
156
+ }
157
+ catch (err) {
158
+ report(err);
159
+ }
160
+ if (opts.json) {
161
+ printJson(result);
162
+ return;
163
+ }
164
+ const name = PROVIDER_NAMES[provider];
165
+ success(`${name} key saved for ${project}. sw.ai completions that name an ${name} model or provider use it from the next call; no redeploy is needed.`);
166
+ });
167
+ keys
168
+ .command('remove <provider>')
169
+ .alias('rm')
170
+ .description('Remove a provider key from a project')
171
+ .option('--project <id>', 'Project slug or ID (required)')
172
+ .option('--json', 'Print the raw response as JSON')
173
+ .allowExcessArguments(false)
174
+ .action(async (providerArg, _opts, cmd) => {
175
+ const opts = options(cmd);
176
+ const provider = requireProvider(providerArg);
177
+ const project = requireProject(opts.project);
178
+ const client = new ApiClient(getToken());
179
+ let result;
180
+ try {
181
+ result = await client.call('DELETE', `/ai/provider-keys/${encodeURIComponent(project)}/${encodeURIComponent(provider)}`);
182
+ }
183
+ catch (err) {
184
+ if (!opts.json && err instanceof CliApiError && err.statusCode === 404 && err.code === 'NOT_FOUND') {
185
+ error(`No ${PROVIDER_NAMES[provider]} key was set for ${project}.`, err);
186
+ process.exit(1);
187
+ }
188
+ report(err);
189
+ }
190
+ if (opts.json) {
191
+ printJson(result);
192
+ return;
193
+ }
194
+ success(`${PROVIDER_NAMES[provider]} key removed for ${project}.`);
195
+ });
196
+ }
197
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -44,6 +44,7 @@ import { registerTestUsers } from './commands/test-users.js';
44
44
  import { registerSupport } from './commands/support.js';
45
45
  import { buildRecord, commandPath, writeLastError } from './lib/repro-packet.js';
46
46
  import { registerSkills } from './commands/skills.js';
47
+ import { registerAi } from './commands/ai.js';
47
48
  import { collectNotices } from './lib/notify/index.js';
48
49
  import { startupNotice } from './lib/startup-notice.js';
49
50
  import { error, info, printJsonError, setFailureHook, setJsonOutputMode, stripAnsi } from './lib/output.js';
@@ -133,6 +134,7 @@ registerGit(program);
133
134
  registerCron(program);
134
135
  registerEmail(program);
135
136
  registerSkills(program);
137
+ registerAi(program);
136
138
  // Configure only the root after registration: command help keeps its full contract.
137
139
  program.configureHelp({
138
140
  subcommandDescription: (command) => command.summary() || helpSummary(command.description()),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@somewhere-cloud/cli",
3
- "version": "0.38.9",
3
+ "version": "0.38.10",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@somewhere-cloud/cli",
9
- "version": "0.38.9",
9
+ "version": "0.38.10",
10
10
  "bundleDependencies": [
11
11
  "@modelcontextprotocol/sdk",
12
12
  "chokidar",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@somewhere-cloud/cli",
3
- "version": "0.38.9",
3
+ "version": "0.38.10",
4
4
  "description": "CLI for somewhere.cloud — auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
5
5
  "keywords": [
6
6
  "somewhere",