@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.
- package/dist/commands/ads.d.ts +3 -0
- package/dist/commands/ads.d.ts.map +1 -1
- package/dist/commands/ads.js +373 -10
- package/dist/commands/ads.js.map +1 -1
- package/dist/commands/auth.d.ts +1 -3
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +18 -3
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/automation.d.ts +46 -0
- package/dist/commands/automation.d.ts.map +1 -1
- package/dist/commands/automation.js +150 -0
- package/dist/commands/automation.js.map +1 -1
- package/dist/commands/changelog.d.ts +79 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +123 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/context.d.ts +54 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +362 -43
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/egress.d.ts +49 -1
- package/dist/commands/egress.d.ts.map +1 -1
- package/dist/commands/egress.js +222 -33
- package/dist/commands/egress.js.map +1 -1
- package/dist/commands/workspace.d.ts +13 -0
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +34 -7
- package/dist/commands/workspace.js.map +1 -1
- package/dist/generated/capabilities.json +4829 -1680
- package/dist/generated/changelog.json +1448 -0
- package/dist/http/client.d.ts +16 -0
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +25 -5
- package/dist/http/client.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/upload-journal.d.ts +46 -0
- package/dist/upload-journal.d.ts.map +1 -0
- package/dist/upload-journal.js +102 -0
- package/dist/upload-journal.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/skills/soku/SKILL.md +17 -2
- package/skills/soku/references/ads-write.md +48 -19
- package/skills/soku/references/auth-workspace.md +27 -12
- package/skills/soku/references/egress-security.md +44 -0
- package/skills/soku/references/seo-automation-files.md +67 -3
- 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
|
-
|
|
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;
|
|
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"}
|
package/dist/commands/egress.js
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
|
166
|
+
let output;
|
|
33
167
|
let getMode = false;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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 =
|
|
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 =
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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 =
|
|
220
|
+
url = requireValue(t);
|
|
221
|
+
break;
|
|
222
|
+
case '-o':
|
|
223
|
+
case '--output':
|
|
224
|
+
output = requireValue(t);
|
|
68
225
|
break;
|
|
69
|
-
default:
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
url =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
78
|
+
const active = resolveActiveWorkspace();
|
|
59
79
|
const orgsData = await apiRequest('/api/cli/orgs');
|
|
60
|
-
const org =
|
|
80
|
+
const org = active.orgId ? orgsData.orgs.find((item) => item.id === active.orgId) : undefined;
|
|
61
81
|
let brand;
|
|
62
|
-
if (org &&
|
|
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 ===
|
|
84
|
+
brand = brandsData.brands.find((item) => item.id === active.brandId);
|
|
65
85
|
}
|
|
66
86
|
const data = {
|
|
67
|
-
active_org_id:
|
|
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:
|
|
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":"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
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
|