@soku-ai/cli 0.1.0-alpha.16 → 0.1.0-alpha.18

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 (49) hide show
  1. package/dist/commands/ads.d.ts +3 -0
  2. package/dist/commands/ads.d.ts.map +1 -1
  3. package/dist/commands/ads.js +373 -10
  4. package/dist/commands/ads.js.map +1 -1
  5. package/dist/commands/auth.d.ts +1 -3
  6. package/dist/commands/auth.d.ts.map +1 -1
  7. package/dist/commands/auth.js +18 -3
  8. package/dist/commands/auth.js.map +1 -1
  9. package/dist/commands/automation.d.ts +46 -0
  10. package/dist/commands/automation.d.ts.map +1 -1
  11. package/dist/commands/automation.js +150 -0
  12. package/dist/commands/automation.js.map +1 -1
  13. package/dist/commands/changelog.d.ts +79 -0
  14. package/dist/commands/changelog.d.ts.map +1 -0
  15. package/dist/commands/changelog.js +123 -0
  16. package/dist/commands/changelog.js.map +1 -0
  17. package/dist/commands/context.d.ts +54 -0
  18. package/dist/commands/context.d.ts.map +1 -1
  19. package/dist/commands/context.js +362 -43
  20. package/dist/commands/context.js.map +1 -1
  21. package/dist/commands/egress.d.ts +49 -1
  22. package/dist/commands/egress.d.ts.map +1 -1
  23. package/dist/commands/egress.js +222 -33
  24. package/dist/commands/egress.js.map +1 -1
  25. package/dist/commands/workspace.d.ts +13 -0
  26. package/dist/commands/workspace.d.ts.map +1 -1
  27. package/dist/commands/workspace.js +34 -7
  28. package/dist/commands/workspace.js.map +1 -1
  29. package/dist/generated/capabilities.json +4829 -1680
  30. package/dist/generated/changelog.json +1448 -0
  31. package/dist/http/client.d.ts +16 -0
  32. package/dist/http/client.d.ts.map +1 -1
  33. package/dist/http/client.js +25 -5
  34. package/dist/http/client.js.map +1 -1
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/upload-journal.d.ts +46 -0
  38. package/dist/upload-journal.d.ts.map +1 -0
  39. package/dist/upload-journal.js +102 -0
  40. package/dist/upload-journal.js.map +1 -0
  41. package/dist/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/package.json +3 -3
  44. package/skills/soku/SKILL.md +17 -2
  45. package/skills/soku/references/ads-write.md +48 -19
  46. package/skills/soku/references/auth-workspace.md +27 -12
  47. package/skills/soku/references/egress-security.md +44 -0
  48. package/skills/soku/references/seo-automation-files.md +67 -3
  49. package/skills/soku/references/skills-updates.md +23 -0
@@ -14,11 +14,59 @@ export interface ParsedCurl {
14
14
  url?: string;
15
15
  headers: Record<string, string>;
16
16
  body?: Buffer;
17
+ /** `-o/--output`: write the upstream body here instead of stdout. */
18
+ output?: string;
17
19
  }
18
- /** Extract method / url / headers / body from a curl-style token list. Pure. */
20
+ export declare class CurlUsageError extends Error {
21
+ readonly hint?: string | undefined;
22
+ constructor(message: string, hint?: string | undefined);
23
+ }
24
+ /** Encode exactly as curl's `--data-urlencode` does.
25
+ *
26
+ * Measured against curl 8.7.1 rather than assumed, because two details are easy
27
+ * to get wrong and both change the bytes the upstream receives:
28
+ *
29
+ * - a space becomes `+`, NOT `%20` — this is form encoding, not RFC 3986
30
+ * - hex digits are LOWERCASE (`%2c`), where `encodeURIComponent` emits `%2C`
31
+ *
32
+ * Unreserved characters (`A-Za-z0-9-._~`) pass through; everything else is
33
+ * percent-encoded per UTF-8 byte. Matching curl is the point: the whole promise
34
+ * of `soku egress` is that prefixing an existing skill's curl changes nothing
35
+ * about the request that reaches the third party.
36
+ */
37
+ export declare function curlEscape(value: string): string;
38
+ /** Build one `--data-urlencode` segment, following curl's four forms.
39
+ *
40
+ * content -> encoded content, no name
41
+ * =content -> encoded content, no name (leading `=` dropped)
42
+ * name=content -> `name=` kept literal, content encoded
43
+ * @file -> encoded file bytes, no name
44
+ * name@file -> `name=` kept literal, encoded file bytes
45
+ *
46
+ * Whichever of `=` or `@` appears first decides the form, matching curl.
47
+ */
48
+ export declare function buildUrlEncodedSegment(spec: string, readFile?: (path: string) => string): string;
49
+ /** Expand a bundled short-flag token (`-sSL`) into its parts.
50
+ *
51
+ * Only bundles made entirely of no-value short flags expand; anything else is
52
+ * rejected rather than guessed at, because a bundle ending in a value-taking
53
+ * flag (`-so out.json`) would otherwise silently mis-assign the value.
54
+ */
55
+ export declare function expandShortBundle(token: string): string[] | null;
56
+ /** Extract method / url / headers / body from a curl-style token list. Pure.
57
+ *
58
+ * Anything this parser does not understand is now an error. The previous
59
+ * behaviour — skip the flag, and do not consume its value — meant an
60
+ * unsupported flag vanished, its value was dropped as a stray token, and the
61
+ * request went out anyway with parameters missing. The upstream then answered
62
+ * about the first thing it noticed missing, which sent every investigation in
63
+ * the wrong direction.
64
+ */
19
65
  export declare function parseCurl(tokens: string[]): ParsedCurl;
20
66
  /** Drop empty / bare-scheme auth headers so the server injects the real key
21
67
  * (an empty `Authorization: Bearer ` would otherwise be treated as BYO). */
22
68
  export declare function stripPlaceholderAuth(headers: Record<string, string>): Record<string, string>;
69
+ /** Where the upstream body goes: the `-o` file, or stdout when none was given. */
70
+ export declare function responseSink(output: string | undefined): NodeJS.WritableStream;
23
71
  export declare function registerEgressCommands(program: Command): void;
24
72
  //# sourceMappingURL=egress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"egress.d.ts","sourceRoot":"","sources":["../../src/commands/egress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAWD,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CA0DtD;AAED;4EAC4E;AAC5E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO5F;AA4FD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC7D"}
1
+ {"version":3,"file":"egress.d.ts","sourceRoot":"","sources":["../../src/commands/egress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAMD,qBAAa,cAAe,SAAQ,KAAK;IACV,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;gBAAvC,OAAO,EAAE,MAAM,EAAW,IAAI,CAAC,EAAE,MAAM,YAAA;CAGpD;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAShD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAA6C,GACxE,MAAM,CAuBR;AAgDD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAKhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAwGtD;AAED;4EAC4E;AAC5E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO5F;AA6BD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,cAAc,CAE9E;AAqED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C7D"}
@@ -9,7 +9,7 @@
9
9
  * failures (auth, allowlist, billing) become a CLI error envelope.
10
10
  */
11
11
  import { randomUUID } from 'node:crypto';
12
- import { readFileSync } from 'node:fs';
12
+ import { createWriteStream, readFileSync } from 'node:fs';
13
13
  import { Readable } from 'node:stream';
14
14
  import { pipeline } from 'node:stream/promises';
15
15
  import { clearToken, loadToken } from '../auth/store.js';
@@ -19,73 +19,244 @@ import { cyan, dim, emitError, emitSuccess, ExitCode, table } from '../output/en
19
19
  // A header value carrying only an auth scheme word (or nothing) — the result of
20
20
  // `-H "Authorization: Bearer $X"` when `$X` is unset. Not a real credential.
21
21
  const PLACEHOLDER_AUTH = /^\s*(bearer|token|key|basic)?\s*$/i;
22
+ export class CurlUsageError extends Error {
23
+ hint;
24
+ constructor(message, hint) {
25
+ super(message);
26
+ this.hint = hint;
27
+ }
28
+ }
22
29
  function readData(value) {
30
+ // `@-` means stdin, which is how the published Gemini skills feed a heredoc
31
+ // JSON body. `readFileSync('-')` looked for a file literally named `-`.
32
+ if (value === '@-')
33
+ return readFileSync(0);
23
34
  if (value.startsWith('@'))
24
35
  return readFileSync(value.slice(1));
25
36
  return Buffer.from(value);
26
37
  }
27
- /** Extract method / url / headers / body from a curl-style token list. Pure. */
38
+ /** Encode exactly as curl's `--data-urlencode` does.
39
+ *
40
+ * Measured against curl 8.7.1 rather than assumed, because two details are easy
41
+ * to get wrong and both change the bytes the upstream receives:
42
+ *
43
+ * - a space becomes `+`, NOT `%20` — this is form encoding, not RFC 3986
44
+ * - hex digits are LOWERCASE (`%2c`), where `encodeURIComponent` emits `%2C`
45
+ *
46
+ * Unreserved characters (`A-Za-z0-9-._~`) pass through; everything else is
47
+ * percent-encoded per UTF-8 byte. Matching curl is the point: the whole promise
48
+ * of `soku egress` is that prefixing an existing skill's curl changes nothing
49
+ * about the request that reaches the third party.
50
+ */
51
+ export function curlEscape(value) {
52
+ let out = '';
53
+ for (const byte of Buffer.from(value, 'utf8')) {
54
+ const ch = String.fromCharCode(byte);
55
+ if (/[A-Za-z0-9\-._~]/.test(ch))
56
+ out += ch;
57
+ else if (ch === ' ')
58
+ out += '+';
59
+ else
60
+ out += `%${byte.toString(16).padStart(2, '0')}`;
61
+ }
62
+ return out;
63
+ }
64
+ /** Build one `--data-urlencode` segment, following curl's four forms.
65
+ *
66
+ * content -> encoded content, no name
67
+ * =content -> encoded content, no name (leading `=` dropped)
68
+ * name=content -> `name=` kept literal, content encoded
69
+ * @file -> encoded file bytes, no name
70
+ * name@file -> `name=` kept literal, encoded file bytes
71
+ *
72
+ * Whichever of `=` or `@` appears first decides the form, matching curl.
73
+ */
74
+ export function buildUrlEncodedSegment(spec, readFile = (path) => readFileSync(path, 'utf8')) {
75
+ const eq = spec.indexOf('=');
76
+ const at = spec.indexOf('@');
77
+ if (eq !== -1 && (at === -1 || eq < at)) {
78
+ const name = spec.slice(0, eq);
79
+ const content = spec.slice(eq + 1);
80
+ return name ? `${name}=${curlEscape(content)}` : curlEscape(content);
81
+ }
82
+ if (at !== -1) {
83
+ const name = spec.slice(0, at);
84
+ const path = spec.slice(at + 1);
85
+ let content;
86
+ try {
87
+ content = path === '-' ? readFileSync(0, 'utf8') : readFile(path);
88
+ }
89
+ catch (err) {
90
+ throw new CurlUsageError(`--data-urlencode could not read file: ${path} (${err.message})`);
91
+ }
92
+ return name ? `${name}=${curlEscape(content)}` : curlEscape(content);
93
+ }
94
+ return curlEscape(spec);
95
+ }
96
+ /** Short flags that take no value, so `-sSL` can be split into `-s -S -L`. */
97
+ const NO_VALUE_SHORT = new Set(['s', 'S', 'i', 'v', 'k', 'f', 'L', 'G', 'I', 'g', 'j', '#']);
98
+ /** Flags accepted and deliberately ignored, with no value to consume.
99
+ *
100
+ * Every one of these shapes curl's LOCAL behaviour — stderr noise, TLS
101
+ * strictness, redirect handling, exit-code policy — and cannot change the
102
+ * `{method, url, headers, body}` this command forwards. Ignoring them is
103
+ * therefore not silent data loss; dropping a flag that WOULD change the request
104
+ * is, which is why anything not listed here is now an error.
105
+ */
106
+ const IGNORED_NO_VALUE = new Set([
107
+ '-s', '--silent',
108
+ '-S', '--show-error',
109
+ '-i', '--include',
110
+ '-v', '--verbose',
111
+ '-k', '--insecure',
112
+ '-f', '--fail', '--fail-with-body', '--fail-early',
113
+ '-L', '--location', '--location-trusted',
114
+ '--compressed',
115
+ '--no-progress-meter',
116
+ '-#', '--progress-bar',
117
+ '--retry-all-errors', '--retry-connrefused',
118
+ '-g', '--globoff',
119
+ '-j', '--junk-session-cookies',
120
+ '--no-keepalive',
121
+ '--tcp-nodelay',
122
+ ]);
123
+ /** Accepted-and-ignored flags that consume one value.
124
+ *
125
+ * Consuming the value is the point: an unconsumed value becomes a stray token,
126
+ * which is exactly how `--data-urlencode country=us` used to lose its argument.
127
+ */
128
+ const IGNORED_WITH_VALUE = new Set([
129
+ '-m', '--max-time',
130
+ '--connect-timeout',
131
+ '--retry', '--retry-delay', '--retry-max-time',
132
+ '--limit-rate',
133
+ '-w', '--write-out',
134
+ '--resolve',
135
+ '--max-redirs',
136
+ '--noproxy',
137
+ '-D', '--dump-header',
138
+ ]);
139
+ /** Expand a bundled short-flag token (`-sSL`) into its parts.
140
+ *
141
+ * Only bundles made entirely of no-value short flags expand; anything else is
142
+ * rejected rather than guessed at, because a bundle ending in a value-taking
143
+ * flag (`-so out.json`) would otherwise silently mis-assign the value.
144
+ */
145
+ export function expandShortBundle(token) {
146
+ if (!/^-[A-Za-z#]{2,}$/.test(token))
147
+ return null;
148
+ const letters = token.slice(1).split('');
149
+ if (!letters.every((c) => NO_VALUE_SHORT.has(c)))
150
+ return null;
151
+ return letters.map((c) => `-${c}`);
152
+ }
153
+ /** Extract method / url / headers / body from a curl-style token list. Pure.
154
+ *
155
+ * Anything this parser does not understand is now an error. The previous
156
+ * behaviour — skip the flag, and do not consume its value — meant an
157
+ * unsupported flag vanished, its value was dropped as a stray token, and the
158
+ * request went out anyway with parameters missing. The upstream then answered
159
+ * about the first thing it noticed missing, which sent every investigation in
160
+ * the wrong direction.
161
+ */
28
162
  export function parseCurl(tokens) {
29
163
  const headers = {};
30
164
  let method;
31
165
  let url;
32
- let body;
166
+ let output;
33
167
  let getMode = false;
34
- let i = tokens[0] === 'curl' ? 1 : 0;
35
- for (; i < tokens.length; i++) {
36
- const t = tokens[i];
168
+ // Every data flag appends here, and the parts join with `&`, matching curl.
169
+ // Assigning instead (the old behaviour) meant `-d a=1 -d b=2` sent only b=2.
170
+ const dataParts = [];
171
+ const expanded = [];
172
+ const start = tokens[0] === 'curl' ? 1 : 0;
173
+ for (let i = start; i < tokens.length; i++) {
174
+ const bundle = expandShortBundle(tokens[i]);
175
+ if (bundle)
176
+ expanded.push(...bundle);
177
+ else
178
+ expanded.push(tokens[i]);
179
+ }
180
+ for (let i = 0; i < expanded.length; i++) {
181
+ const t = expanded[i];
182
+ const requireValue = (flag) => {
183
+ const v = expanded[++i];
184
+ if (v === undefined)
185
+ throw new CurlUsageError(`${flag} expects a value.`);
186
+ return v;
187
+ };
37
188
  switch (t) {
38
189
  case '-X':
39
190
  case '--request':
40
- method = tokens[++i]?.toUpperCase();
191
+ method = requireValue(t).toUpperCase();
192
+ break;
193
+ case '-I':
194
+ case '--head':
195
+ method = 'HEAD';
41
196
  break;
42
197
  case '-H':
43
198
  case '--header': {
44
- const h = tokens[++i];
45
- if (h) {
46
- const idx = h.indexOf(':');
47
- if (idx > 0)
48
- headers[h.slice(0, idx).trim().toLowerCase()] = h.slice(idx + 1).trim();
49
- }
199
+ const h = requireValue(t);
200
+ const idx = h.indexOf(':');
201
+ if (idx > 0)
202
+ headers[h.slice(0, idx).trim().toLowerCase()] = h.slice(idx + 1).trim();
50
203
  break;
51
204
  }
52
205
  case '-d':
53
206
  case '--data':
54
207
  case '--data-raw':
55
208
  case '--data-ascii':
56
- case '--data-binary': {
57
- const d = tokens[++i];
58
- if (d !== undefined)
59
- body = readData(d);
209
+ case '--data-binary':
210
+ dataParts.push(readData(requireValue(t)).toString());
211
+ break;
212
+ case '--data-urlencode':
213
+ dataParts.push(buildUrlEncodedSegment(requireValue(t)));
60
214
  break;
61
- }
62
215
  case '-G':
63
216
  case '--get':
64
217
  getMode = true;
65
218
  break;
66
219
  case '--url':
67
- url = tokens[++i];
220
+ url = requireValue(t);
221
+ break;
222
+ case '-o':
223
+ case '--output':
224
+ output = requireValue(t);
68
225
  break;
69
- default:
70
- if (/^https?:\/\//i.test(t))
71
- url = t;
72
- // Unknown flags are skipped; we do not consume their value, so a few
73
- // exotic curl flags may leak a token — the documented subset is
74
- // -X/-H/-d/--data*/-G/--url + the URL.
226
+ default: {
227
+ if (IGNORED_NO_VALUE.has(t))
228
+ break;
229
+ if (IGNORED_WITH_VALUE.has(t)) {
230
+ requireValue(t);
231
+ break;
232
+ }
233
+ if (t.startsWith('-')) {
234
+ throw new CurlUsageError(`Unsupported curl flag: ${t}`, 'soku egress forwards {method, url, headers, body}. Supported: ' +
235
+ '-X/--request, -I/--head, -H/--header, -d/--data(-raw|-ascii|-binary), ' +
236
+ '--data-urlencode, -G/--get, --url, -o/--output. ' +
237
+ 'Rewrite the request without this flag, or open an issue to add it.');
238
+ }
239
+ if (url !== undefined) {
240
+ throw new CurlUsageError(`Unexpected argument: ${t}`, 'Only one URL is supported; a stray argument usually means a flag before it was misspelled.');
241
+ }
242
+ url = t;
75
243
  break;
244
+ }
76
245
  }
77
246
  }
247
+ const data = dataParts.join('&');
248
+ let body = data ? Buffer.from(data) : undefined;
78
249
  if (!method)
79
250
  method = body ? 'POST' : 'GET';
80
251
  if (getMode && body && url) {
81
- const u = new URL(url);
82
- for (const [k, v] of new URLSearchParams(body.toString()))
83
- u.searchParams.append(k, v);
84
- url = u.toString();
252
+ // Append the already-encoded query verbatim. Round-tripping it through
253
+ // URLSearchParams would re-encode it, changing the exact bytes curl would
254
+ // have sent (uppercase hex, and `%2A` where curl writes `%2a`).
255
+ url = `${url}${url.includes('?') ? '&' : '?'}${data}`;
85
256
  body = undefined;
86
257
  method = 'GET';
87
258
  }
88
- return { method, url, headers, body };
259
+ return { method, url, headers, body, output };
89
260
  }
90
261
  /** Drop empty / bare-scheme auth headers so the server injects the real key
91
262
  * (an empty `Authorization: Bearer ` would otherwise be treated as BYO). */
@@ -117,6 +288,10 @@ function egressErrorExit(status, type, message) {
117
288
  : ExitCode.RUNTIME;
118
289
  return emitError(type, message, code);
119
290
  }
291
+ /** Where the upstream body goes: the `-o` file, or stdout when none was given. */
292
+ export function responseSink(output) {
293
+ return output ? createWriteStream(output) : process.stdout;
294
+ }
120
295
  async function runEgress(parsed) {
121
296
  if (!parsed.url) {
122
297
  emitError('usage', 'No URL found in the egress request.', ExitCode.USAGE, 'Usage: soku egress -- curl <url>');
@@ -160,9 +335,13 @@ async function runEgress(parsed) {
160
335
  const message = String(errObj.message ?? `Egress failed (HTTP ${res.status}).`);
161
336
  egressErrorExit(res.status, type, message);
162
337
  }
163
- // Passthrough: stream the upstream body to stdout verbatim.
338
+ // Passthrough: stream the upstream body verbatim — to the `-o` file when the
339
+ // caller asked for one, otherwise stdout. Skills that download binary assets
340
+ // (a rendered screenshot, say) pass `-o`, and dropping it would put the bytes
341
+ // on stdout while the next step went looking for a file that never appeared.
164
342
  if (res.body) {
165
- await pipeline(Readable.fromWeb(res.body), process.stdout);
343
+ const source = Readable.fromWeb(res.body);
344
+ await pipeline(source, responseSink(parsed.output));
166
345
  }
167
346
  process.exit(ExitCode.OK);
168
347
  }
@@ -173,7 +352,17 @@ export function registerEgressCommands(program) {
173
352
  .argument('[request...]', 'the third-party request, e.g. `-- curl -H "..." https://host/path`')
174
353
  .allowUnknownOption()
175
354
  .action(async (request) => {
176
- await runEgress(parseCurl(request));
355
+ let parsed;
356
+ try {
357
+ parsed = parseCurl(request);
358
+ }
359
+ catch (err) {
360
+ if (err instanceof CurlUsageError) {
361
+ emitError('usage', err.message, ExitCode.USAGE, err.hint);
362
+ }
363
+ throw err;
364
+ }
365
+ await runEgress(parsed);
177
366
  });
178
367
  egress
179
368
  .command('providers')
@@ -1 +1 @@
1
- {"version":3,"file":"egress.js","sourceRoot":"","sources":["../../src/commands/egress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"egress.js","sourceRoot":"","sources":["../../src/commands/egress.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
1
  /** `soku workspace` — inspect and resolve the active org/brand selection. */
2
2
  import { Command } from 'commander';
3
+ /** Where the active org/brand actually came from for this invocation.
4
+ *
5
+ * `apiRequest` lets `SOKU_ORG_ID` / `SOKU_BRAND_ID` override saved config, and
6
+ * the agent docs recommend exactly that for one-off scripts. `status` used to
7
+ * read only the config file, so in an env-driven session it reported "(none)"
8
+ * while every write went to the env-specified brand — the one check an agent is
9
+ * told to run before writing could not see where the write would land.
10
+ */
11
+ export declare function resolveActiveWorkspace(): {
12
+ orgId: string | null;
13
+ brandId: string | null;
14
+ source: 'env' | 'config';
15
+ };
3
16
  export declare function registerWorkspaceCommands(program: Command): void;
4
17
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsFnC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwFhE"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsFnC;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI;IACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CACzB,CAWA;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+FhE"}
@@ -49,28 +49,52 @@ function useResolvedBrand(result, ref) {
49
49
  const candidates = result.candidates.map((b) => `${b.slug} (${b.org_slug || b.org_name || b.org_id})`).join(', ');
50
50
  return emitError('ambiguous', `"${ref}" matches ${result.candidates.length} brands.`, ExitCode.USAGE, `Use an exact slug or id: ${candidates}`);
51
51
  }
52
+ /** Where the active org/brand actually came from for this invocation.
53
+ *
54
+ * `apiRequest` lets `SOKU_ORG_ID` / `SOKU_BRAND_ID` override saved config, and
55
+ * the agent docs recommend exactly that for one-off scripts. `status` used to
56
+ * read only the config file, so in an env-driven session it reported "(none)"
57
+ * while every write went to the env-specified brand — the one check an agent is
58
+ * told to run before writing could not see where the write would land.
59
+ */
60
+ export function resolveActiveWorkspace() {
61
+ const cfg = loadConfig();
62
+ const envOrg = process.env.SOKU_ORG_ID || null;
63
+ const envBrand = process.env.SOKU_BRAND_ID || null;
64
+ return {
65
+ orgId: envOrg ?? cfg.activeOrgId ?? null,
66
+ brandId: envBrand ?? cfg.activeBrandId ?? null,
67
+ // Either override alone changes where requests go, so either one makes the
68
+ // effective workspace env-decided.
69
+ source: envOrg || envBrand ? 'env' : 'config',
70
+ };
71
+ }
52
72
  export function registerWorkspaceCommands(program) {
53
73
  const workspace = program.command('workspace').description('Inspect or set the active Soku workspace');
54
74
  workspace
55
75
  .command('status')
56
76
  .description('Show the active organization and brand')
57
77
  .action(async () => {
58
- const cfg = loadConfig();
78
+ const active = resolveActiveWorkspace();
59
79
  const orgsData = await apiRequest('/api/cli/orgs');
60
- const org = cfg.activeOrgId ? orgsData.orgs.find((item) => item.id === cfg.activeOrgId) : undefined;
80
+ const org = active.orgId ? orgsData.orgs.find((item) => item.id === active.orgId) : undefined;
61
81
  let brand;
62
- if (org && cfg.activeBrandId) {
82
+ if (org && active.brandId) {
63
83
  const brandsData = await apiRequest(`/api/cli/brands?org_id=${encodeURIComponent(org.id)}`);
64
- brand = brandsData.brands.find((item) => item.id === cfg.activeBrandId);
84
+ brand = brandsData.brands.find((item) => item.id === active.brandId);
65
85
  }
66
86
  const data = {
67
- active_org_id: cfg.activeOrgId ?? null,
87
+ active_org_id: active.orgId,
68
88
  active_org_name: org?.name ?? null,
69
89
  active_org_slug: org?.slug ?? null,
70
- active_brand_id: cfg.activeBrandId ?? null,
90
+ active_brand_id: active.brandId,
71
91
  active_brand_name: brand?.name ?? null,
72
92
  active_brand_slug: brand?.slug ?? null,
73
93
  workspace_ready: Boolean(org && brand),
94
+ // Which of the two sources decided the answer. An agent that checks the
95
+ // brand before a write needs to know an env override is in play, since
96
+ // `use-brand` writes config and would not change where writes land.
97
+ source: active.source,
74
98
  };
75
99
  emitSuccess(data, (d) => {
76
100
  const orgLabel = d.active_org_slug || d.active_org_name || d.active_org_id || '(none)';
@@ -79,7 +103,10 @@ export function registerWorkspaceCommands(program) {
79
103
  return [
80
104
  `Workspace: ${ready}`,
81
105
  `Org: ${orgLabel}`,
82
- `Brand: ${brandLabel}`,
106
+ `Brand: ${brandLabel} ${dim('(current target — not the limit of your access)')}`,
107
+ d.source === 'env'
108
+ ? dim('Source: SOKU_ORG_ID / SOKU_BRAND_ID (env overrides saved config)')
109
+ : dim('Source: saved config'),
83
110
  d.workspace_ready
84
111
  ? dim('Next: soku resources list')
85
112
  : dim('Next: soku workspace use-brand <brand>'),
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAI7E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AACjG,OAAO,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAA;AAwB1D,SAAS,kBAAkB,CAAC,MAAe,EAAE,GAAW;IACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAClE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IACpE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,KAAa;IACtD,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,4BAA4B,kBAAkB,CAAC,KAAK,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CACnG,CAAA;IACD,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe,EAAE,GAAW;IAC1D,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;IACrF,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;IACvF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAmB;IAChD,OAAO,KAAK,CACV,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM;QACzC,EAAE,EAAE,CAAC,CAAC,EAAE;KACT,CAAC,CAAC,EACH;QACE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;QAChC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAC/B,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAC7B,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;KAC5B,CACF,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA0B,EAAE,GAAW;IAC/D,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,KAAK,CAAA;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,SAAS,CAAC,WAAW,EAAE,iCAAiC,GAAG,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,6DAA6D,CAAC,CAAA;IACrJ,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjH,OAAO,SAAS,CACd,WAAW,EACX,IAAI,GAAG,aAAa,MAAM,CAAC,UAAU,CAAC,MAAM,UAAU,EACtD,QAAQ,CAAC,KAAK,EACd,4BAA4B,UAAU,EAAE,CACzC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAA;IAEtG,SAAS;SACN,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAiC,eAAe,CAAC,CAAA;QAClF,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,IAAI,KAAwB,CAAA;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAM,UAAU,CACjC,0BAA0B,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACvD,CAAA;YACD,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,aAAa,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,IAAI,GAAG;YACX,aAAa,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACtC,eAAe,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI;YAClC,eAAe,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI;YAClC,eAAe,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;YAC1C,iBAAiB,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;YACtC,iBAAiB,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;YACtC,eAAe,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;SACvC,CAAA;QACD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAA;YACtF,MAAM,UAAU,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,eAAe,IAAI,QAAQ,CAAA;YAC9F,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;YAC9D,OAAO;gBACL,cAAc,KAAK,EAAE;gBACrB,QAAQ,QAAQ,EAAE;gBAClB,UAAU,UAAU,EAAE;gBACtB,CAAC,CAAC,eAAe;oBACf,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBAClC,CAAC,CAAC,GAAG,CAAC,wCAAwC,CAAC;aAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEJ,SAAS;SACN,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,gFAAgF,CAAC;SAC7F,MAAM,CAAC,aAAa,EAAE,+BAA+B,EAAE,IAAI,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,IAAuB,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACzC,SAAS,CAAC,OAAO,EAAE,oCAAoC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1E,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;gBAClE,OAAO;oBACL,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE;oBAC9F,GAAG,CAAC,kCAAkC,GAAG,EAAE,CAAC;iBAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,GAAG,GAAG,CAAC,kCAAkC,CAAC,KAAK,GAAG,CAAC,qCAAqC,CAAC,EAAE,CAAA;YAChI,OAAO;gBACL,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,EAAE;gBACxD,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC;gBACnC,GAAG,CAAC,6CAA6C,CAAC;aACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEJ,SAAS;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACvE,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC3C,YAAY,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QACpE,WAAW,CACT;YACE,aAAa,EAAE,KAAK,CAAC,MAAM;YAC3B,eAAe,EAAE,KAAK,CAAC,EAAE;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,EACD,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,KAAK,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,OAAO,GAAG,CAAC,2BAA2B,CAAC,EAAE,CACnL,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}