@inquir/compute-cli 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -2
- package/dist/commands/admin-tenants.d.ts.map +1 -1
- package/dist/commands/admin-tenants.js +8 -7
- package/dist/commands/admin-tenants.js.map +1 -1
- package/dist/commands/admin.js +2 -2
- package/dist/commands/admin.js.map +1 -1
- package/dist/commands/apps-replicas.d.ts +27 -0
- package/dist/commands/apps-replicas.d.ts.map +1 -0
- package/dist/commands/apps-replicas.js +278 -0
- package/dist/commands/apps-replicas.js.map +1 -0
- package/dist/commands/apps.d.ts +5 -3
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +58 -15
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/compose.d.ts +29 -0
- package/dist/commands/compose.d.ts.map +1 -0
- package/dist/commands/compose.js +159 -0
- package/dist/commands/compose.js.map +1 -0
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +9 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/sandbox.d.ts +58 -0
- package/dist/commands/sandbox.d.ts.map +1 -0
- package/dist/commands/sandbox.js +462 -0
- package/dist/commands/sandbox.js.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/mcp-replica-tools.d.ts +10 -0
- package/dist/lib/mcp-replica-tools.d.ts.map +1 -0
- package/dist/lib/mcp-replica-tools.js +77 -0
- package/dist/lib/mcp-replica-tools.js.map +1 -0
- package/dist/lib/mcp-sandbox-tools.d.ts +30 -0
- package/dist/lib/mcp-sandbox-tools.d.ts.map +1 -0
- package/dist/lib/mcp-sandbox-tools.js +211 -0
- package/dist/lib/mcp-sandbox-tools.js.map +1 -0
- package/dist/lib/replica-roles.d.ts +22 -0
- package/dist/lib/replica-roles.d.ts.map +1 -0
- package/dist/lib/replica-roles.js +39 -0
- package/dist/lib/replica-roles.js.map +1 -0
- package/dist/lib/sandbox-api.d.ts +165 -0
- package/dist/lib/sandbox-api.d.ts.map +1 -0
- package/dist/lib/sandbox-api.js +241 -0
- package/dist/lib/sandbox-api.js.map +1 -0
- package/dist/lib/tar-safety.d.ts +17 -0
- package/dist/lib/tar-safety.d.ts.map +1 -0
- package/dist/lib/tar-safety.js +135 -0
- package/dist/lib/tar-safety.js.map +1 -0
- package/dist/utils/api.d.ts +31 -2
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +61 -2
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +2 -4
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/context.d.ts +7 -0
- package/dist/utils/context.d.ts.map +1 -1
- package/dist/utils/context.js +23 -1
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/errors.d.ts +11 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +42 -7
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/package-metadata.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI and MCP client of /v1/sandboxes (docs/roadmap/SANDBOXES.md §5).
|
|
3
|
+
* Built on the SDK transport (auth headers, error mapping) without adding a
|
|
4
|
+
* `client.sandboxes` surface to the published SDK: that is P2, and this CLI
|
|
5
|
+
* must keep working against the SDK version it depends on.
|
|
6
|
+
*/
|
|
7
|
+
import { randomUUID } from 'node:crypto';
|
|
8
|
+
import { authHeaders, rawRequest, toApiError } from '../sdk.js';
|
|
9
|
+
import { createApiClient } from '../utils/api.js';
|
|
10
|
+
async function client(options) {
|
|
11
|
+
return createApiClient(options);
|
|
12
|
+
}
|
|
13
|
+
export async function createSandbox(spec, options, settings = {}) {
|
|
14
|
+
const transport = await client(options);
|
|
15
|
+
const response = await transport.fetchImpl(`${transport.baseUrl}/v1/sandboxes${settings.wait === false ? '' : '?wait=running'}`, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
headers: { 'Content-Type': 'application/json', 'Idempotency-Key': settings.idempotencyKey ?? randomUUID(), ...authHeaders(transport) },
|
|
18
|
+
body: JSON.stringify(spec),
|
|
19
|
+
redirect: 'error',
|
|
20
|
+
});
|
|
21
|
+
const text = await response.text();
|
|
22
|
+
let payload;
|
|
23
|
+
try {
|
|
24
|
+
payload = text ? JSON.parse(text) : undefined;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
payload = text;
|
|
28
|
+
}
|
|
29
|
+
if (!response.ok)
|
|
30
|
+
throw toApiError(response, payload);
|
|
31
|
+
return payload;
|
|
32
|
+
}
|
|
33
|
+
export async function listSandboxes(options, filter = {}) {
|
|
34
|
+
const transport = await client(options);
|
|
35
|
+
const items = [];
|
|
36
|
+
let cursor;
|
|
37
|
+
for (let page = 0; page < 20; page += 1) {
|
|
38
|
+
const query = new URLSearchParams({ limit: '200', ...(filter.all ? { status: 'all' } : {}), ...(cursor ? { cursor } : {}) });
|
|
39
|
+
const result = await rawRequest(transport, 'GET', `/v1/sandboxes?${query}`);
|
|
40
|
+
items.push(...result.items);
|
|
41
|
+
if (!result.nextCursor)
|
|
42
|
+
break;
|
|
43
|
+
cursor = result.nextCursor;
|
|
44
|
+
}
|
|
45
|
+
return items;
|
|
46
|
+
}
|
|
47
|
+
export async function getSandbox(id, options) {
|
|
48
|
+
return rawRequest(await client(options), 'GET', `/v1/sandboxes/${encodeURIComponent(id)}`);
|
|
49
|
+
}
|
|
50
|
+
export async function destroySandbox(id, options) {
|
|
51
|
+
return rawRequest(await client(options), 'DELETE', `/v1/sandboxes/${encodeURIComponent(id)}`);
|
|
52
|
+
}
|
|
53
|
+
/** An id (`sbx_…`) as is; otherwise the live sandbox with that name. */
|
|
54
|
+
export async function resolveSandboxId(reference, options) {
|
|
55
|
+
if (reference.startsWith('sbx_'))
|
|
56
|
+
return reference;
|
|
57
|
+
const match = (await listSandboxes(options)).find((sandbox) => sandbox.name === reference);
|
|
58
|
+
if (!match)
|
|
59
|
+
throw new Error(`No live sandbox named '${reference}'`);
|
|
60
|
+
return match.id;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Run one exec and stream its NDJSON frames: `start`, `stdout`/`stderr`
|
|
64
|
+
* (`data`, UTF-8), then `exit` or `error`. Aborting the signal closes the
|
|
65
|
+
* stream, which cancels the exec on the server.
|
|
66
|
+
*/
|
|
67
|
+
export async function execInSandbox(id, input, options, handlers = {}) {
|
|
68
|
+
const transport = await client(options);
|
|
69
|
+
const response = await transport.fetchImpl(`${transport.baseUrl}/v1/sandboxes/${encodeURIComponent(id)}/exec`, {
|
|
70
|
+
method: 'POST',
|
|
71
|
+
headers: { 'Content-Type': 'application/json', Accept: 'application/x-ndjson', ...authHeaders(transport) },
|
|
72
|
+
body: JSON.stringify(input),
|
|
73
|
+
signal: handlers.signal,
|
|
74
|
+
redirect: 'error',
|
|
75
|
+
});
|
|
76
|
+
if (!response.ok || !response.body) {
|
|
77
|
+
const text = await response.text();
|
|
78
|
+
let payload;
|
|
79
|
+
try {
|
|
80
|
+
payload = text ? JSON.parse(text) : undefined;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
payload = text;
|
|
84
|
+
}
|
|
85
|
+
throw toApiError(response, payload);
|
|
86
|
+
}
|
|
87
|
+
const result = { execId: response.headers.get('x-sandbox-exec-id'), exitCode: null, timedOut: false, truncated: false, durationMs: 0 };
|
|
88
|
+
let ended = false;
|
|
89
|
+
const decoder = new TextDecoder();
|
|
90
|
+
let buffer = '';
|
|
91
|
+
const handle = (line) => {
|
|
92
|
+
if (!line.trim())
|
|
93
|
+
return;
|
|
94
|
+
const frame = JSON.parse(line);
|
|
95
|
+
switch (frame.type) {
|
|
96
|
+
case 'start':
|
|
97
|
+
result.execId = typeof frame.execId === 'string' ? frame.execId : result.execId;
|
|
98
|
+
break;
|
|
99
|
+
case 'stdout':
|
|
100
|
+
handlers.onStdout?.(String(frame.data ?? ''));
|
|
101
|
+
break;
|
|
102
|
+
case 'stderr':
|
|
103
|
+
handlers.onStderr?.(String(frame.data ?? ''));
|
|
104
|
+
break;
|
|
105
|
+
case 'exit':
|
|
106
|
+
ended = true;
|
|
107
|
+
result.exitCode = typeof frame.exitCode === 'number' ? frame.exitCode : null;
|
|
108
|
+
result.timedOut = frame.timedOut === true;
|
|
109
|
+
result.truncated = frame.truncated === true;
|
|
110
|
+
result.durationMs = typeof frame.durationMs === 'number' ? frame.durationMs : 0;
|
|
111
|
+
break;
|
|
112
|
+
case 'error':
|
|
113
|
+
ended = true;
|
|
114
|
+
result.errorCode = String(frame.code ?? 'SANDBOX_EXEC_FAILED');
|
|
115
|
+
result.errorMessage = String(frame.message ?? result.errorCode);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const reader = response.body.getReader();
|
|
120
|
+
for (;;) {
|
|
121
|
+
const { value, done } = await reader.read();
|
|
122
|
+
if (done)
|
|
123
|
+
break;
|
|
124
|
+
buffer += decoder.decode(value, { stream: true });
|
|
125
|
+
let newline = buffer.indexOf('\n');
|
|
126
|
+
while (newline >= 0) {
|
|
127
|
+
handle(buffer.slice(0, newline));
|
|
128
|
+
buffer = buffer.slice(newline + 1);
|
|
129
|
+
newline = buffer.indexOf('\n');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
buffer += decoder.decode();
|
|
133
|
+
handle(buffer);
|
|
134
|
+
if (!ended) {
|
|
135
|
+
result.errorCode = 'SANDBOX_STREAM_ENDED';
|
|
136
|
+
result.errorMessage = 'The exec stream ended without an exit status';
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
export async function writeSandboxFile(id, path, data, options, format = 'file') {
|
|
141
|
+
const transport = await client(options);
|
|
142
|
+
const query = new URLSearchParams({ path });
|
|
143
|
+
const response = await transport.fetchImpl(`${transport.baseUrl}/v1/sandboxes/${encodeURIComponent(id)}/files?${query}`, {
|
|
144
|
+
method: 'PUT',
|
|
145
|
+
headers: { 'Content-Type': format === 'tar' ? 'application/x-tar' : 'application/octet-stream', ...authHeaders(transport) },
|
|
146
|
+
body: data,
|
|
147
|
+
redirect: 'error',
|
|
148
|
+
});
|
|
149
|
+
const text = await response.text();
|
|
150
|
+
let payload;
|
|
151
|
+
try {
|
|
152
|
+
payload = text ? JSON.parse(text) : undefined;
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
payload = text;
|
|
156
|
+
}
|
|
157
|
+
if (!response.ok)
|
|
158
|
+
throw toApiError(response, payload);
|
|
159
|
+
return payload;
|
|
160
|
+
}
|
|
161
|
+
export async function readSandboxFile(id, path, options, format = 'file') {
|
|
162
|
+
const transport = await client(options);
|
|
163
|
+
const query = new URLSearchParams({ path, format });
|
|
164
|
+
const response = await transport.fetchImpl(`${transport.baseUrl}/v1/sandboxes/${encodeURIComponent(id)}/files?${query}`, {
|
|
165
|
+
method: 'GET',
|
|
166
|
+
headers: { ...authHeaders(transport) },
|
|
167
|
+
redirect: 'error',
|
|
168
|
+
});
|
|
169
|
+
if (!response.ok) {
|
|
170
|
+
const text = await response.text();
|
|
171
|
+
let payload;
|
|
172
|
+
try {
|
|
173
|
+
payload = text ? JSON.parse(text) : undefined;
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
payload = text;
|
|
177
|
+
}
|
|
178
|
+
throw toApiError(response, payload);
|
|
179
|
+
}
|
|
180
|
+
return Buffer.from(await response.arrayBuffer());
|
|
181
|
+
}
|
|
182
|
+
/** `90s`, `15m`, `1h`, `1h30m` → the same string after validation (the API parses it). */
|
|
183
|
+
export function parseDurationFlag(value, flag) {
|
|
184
|
+
const text = value.trim().toLowerCase();
|
|
185
|
+
if (!/^\d+$/.test(text) && !/^(?:\d+h)?(?:\d+m)?(?:\d+s)?$/.test(text))
|
|
186
|
+
throw new Error(`${flag} must be like 90s, 15m, 1h or 1h30m`);
|
|
187
|
+
if (text === '')
|
|
188
|
+
throw new Error(`${flag} needs a value`);
|
|
189
|
+
return text;
|
|
190
|
+
}
|
|
191
|
+
/** `512m`, `1g`, `1.5g`, `1024` (MiB) → MiB. */
|
|
192
|
+
export function parseSizeMb(value, flag) {
|
|
193
|
+
const match = /^(\d+(?:\.\d+)?)\s*([mg]i?b?)?$/i.exec(value.trim());
|
|
194
|
+
if (!match)
|
|
195
|
+
throw new Error(`${flag} must be like 512m, 1g or a number of MiB`);
|
|
196
|
+
const amount = Number(match[1]);
|
|
197
|
+
const unit = (match[2] ?? 'm').toLowerCase();
|
|
198
|
+
const mb = unit.startsWith('g') ? amount * 1_024 : amount;
|
|
199
|
+
if (!Number.isFinite(mb) || mb <= 0)
|
|
200
|
+
throw new Error(`${flag} must be positive`);
|
|
201
|
+
return Math.round(mb);
|
|
202
|
+
}
|
|
203
|
+
/** S/M/L presets of the dashboard form and `--size` (§6.1, §6.2). */
|
|
204
|
+
export const SANDBOX_SIZES = {
|
|
205
|
+
s: { vcpu: 0.5, memoryMb: 512, diskGb: 2 },
|
|
206
|
+
m: { vcpu: 1, memoryMb: 1_024, diskGb: 5 },
|
|
207
|
+
l: { vcpu: 2, memoryMb: 4_096, diskGb: 10 },
|
|
208
|
+
};
|
|
209
|
+
export async function issueShellTicket(id, size, options) {
|
|
210
|
+
return rawRequest(await client(options), 'POST', `/v1/sandboxes/${encodeURIComponent(id)}/shell-ticket`, size);
|
|
211
|
+
}
|
|
212
|
+
const nodeWebSocket = (url, init) => {
|
|
213
|
+
const WebSocketImpl = globalThis.WebSocket;
|
|
214
|
+
if (!WebSocketImpl)
|
|
215
|
+
throw new Error('This Node.js has no WebSocket client; use Node.js 22 or newer for `inquir sandbox shell`');
|
|
216
|
+
// Node's (undici's) WebSocket takes the credential headers next to the subprotocols; it sends no Origin.
|
|
217
|
+
return new WebSocketImpl(url, { protocols: init.protocols, headers: init.headers });
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Open the shell WebSocket of a sandbox with a fresh ticket: the ticket rides
|
|
221
|
+
* in the negotiated subprotocol (never in the URL) and the credential in the
|
|
222
|
+
* same headers every API call carries.
|
|
223
|
+
*/
|
|
224
|
+
export async function openShellSocket(id, size, options, factory = nodeWebSocket) {
|
|
225
|
+
const transport = await client(options);
|
|
226
|
+
const ticket = await issueShellTicket(id, size, options);
|
|
227
|
+
const url = `${transport.baseUrl.replace(/^http/, 'ws')}/v1/sandboxes/${encodeURIComponent(id)}/shell`;
|
|
228
|
+
return factory(url, { protocols: [ticket.protocol], headers: authHeaders(transport) });
|
|
229
|
+
}
|
|
230
|
+
/** Parse one server frame; null for anything else. */
|
|
231
|
+
export function parseShellFrame(data) {
|
|
232
|
+
try {
|
|
233
|
+
const text = typeof data === 'string' ? data : Buffer.isBuffer(data) ? data.toString('utf8') : String(data);
|
|
234
|
+
const frame = JSON.parse(text);
|
|
235
|
+
return frame && typeof frame.type === 'string' ? frame : null;
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=sandbox-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-api.js","sourceRoot":"","sources":["../../src/lib/sandbox-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `inquir sandbox cp sbx:…/ <dir>` extracts a tar the sandbox produced: code we
|
|
3
|
+
* do not trust built it. Before the local `tar` runs, every member is read
|
|
4
|
+
* from the archive headers and the extraction is refused when one could land
|
|
5
|
+
* outside the target directory or is not a plain file or directory:
|
|
6
|
+
* absolute paths, drive letters, `..` segments, backslashes, symlinks, hard
|
|
7
|
+
* links, devices and FIFOs, including names set by pax (`x`: `path`,
|
|
8
|
+
* `GNU.sparse.name`) or GNU long-name (`L`/`K`) records. Extraction then runs without restoring owners or modes.
|
|
9
|
+
*/
|
|
10
|
+
export declare class UnsafeTarError extends Error {
|
|
11
|
+
constructor(message: string);
|
|
12
|
+
}
|
|
13
|
+
/** Throws UnsafeTarError unless every member is a plain file or directory inside the target. */
|
|
14
|
+
export declare function assertSafeTarMembers(archive: Buffer): void;
|
|
15
|
+
/** `tar` arguments that extract stdin into `directory` without restoring owners or permissions. */
|
|
16
|
+
export declare function tarExtractArgs(directory: string): string[];
|
|
17
|
+
//# sourceMappingURL=tar-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tar-safety.d.ts","sourceRoot":"","sources":["../../src/lib/tar-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAoDD,gGAAgG;AAChG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAiD1D;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `inquir sandbox cp sbx:…/ <dir>` extracts a tar the sandbox produced: code we
|
|
3
|
+
* do not trust built it. Before the local `tar` runs, every member is read
|
|
4
|
+
* from the archive headers and the extraction is refused when one could land
|
|
5
|
+
* outside the target directory or is not a plain file or directory:
|
|
6
|
+
* absolute paths, drive letters, `..` segments, backslashes, symlinks, hard
|
|
7
|
+
* links, devices and FIFOs, including names set by pax (`x`: `path`,
|
|
8
|
+
* `GNU.sparse.name`) or GNU long-name (`L`/`K`) records. Extraction then runs without restoring owners or modes.
|
|
9
|
+
*/
|
|
10
|
+
const BLOCK = 512;
|
|
11
|
+
export class UnsafeTarError extends Error {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'UnsafeTarError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function cString(block, start, length) {
|
|
18
|
+
const slice = block.subarray(start, start + length);
|
|
19
|
+
const end = slice.indexOf(0);
|
|
20
|
+
return slice.subarray(0, end < 0 ? slice.length : end).toString('utf8');
|
|
21
|
+
}
|
|
22
|
+
function size(block) {
|
|
23
|
+
const field = block.subarray(124, 136);
|
|
24
|
+
if (field[0] & 0x80) {
|
|
25
|
+
// base-256 (GNU): a size this large is no file the CLI should write.
|
|
26
|
+
throw new UnsafeTarError('The archive declares a member too large to extract');
|
|
27
|
+
}
|
|
28
|
+
const text = cString(block, 124, 12).trim();
|
|
29
|
+
if (text === '')
|
|
30
|
+
return 0;
|
|
31
|
+
if (!/^[0-7]+$/.test(text))
|
|
32
|
+
throw new UnsafeTarError('The archive has a malformed member size');
|
|
33
|
+
return parseInt(text, 8);
|
|
34
|
+
}
|
|
35
|
+
function checksumOk(block) {
|
|
36
|
+
const stored = cString(block, 148, 8).trim();
|
|
37
|
+
if (!/^[0-7]+$/.test(stored))
|
|
38
|
+
return false;
|
|
39
|
+
let sum = 0;
|
|
40
|
+
for (let index = 0; index < BLOCK; index += 1)
|
|
41
|
+
sum += index >= 148 && index < 156 ? 32 : block[index];
|
|
42
|
+
return sum === parseInt(stored, 8);
|
|
43
|
+
}
|
|
44
|
+
/** Records of a pax extended header: `<len> key=value\n`. */
|
|
45
|
+
function paxRecords(body) {
|
|
46
|
+
const records = new Map();
|
|
47
|
+
let offset = 0;
|
|
48
|
+
while (offset < body.length) {
|
|
49
|
+
const space = body.indexOf(0x20, offset);
|
|
50
|
+
if (space < 0)
|
|
51
|
+
break;
|
|
52
|
+
const length = Number(body.subarray(offset, space).toString('ascii'));
|
|
53
|
+
if (!Number.isSafeInteger(length) || length <= 0 || offset + length > body.length)
|
|
54
|
+
throw new UnsafeTarError('The archive has a malformed pax header');
|
|
55
|
+
const record = body.subarray(space + 1, offset + length - 1).toString('utf8');
|
|
56
|
+
const eq = record.indexOf('=');
|
|
57
|
+
if (eq > 0)
|
|
58
|
+
records.set(record.slice(0, eq), record.slice(eq + 1));
|
|
59
|
+
offset += length;
|
|
60
|
+
}
|
|
61
|
+
return records;
|
|
62
|
+
}
|
|
63
|
+
function assertSafeName(name) {
|
|
64
|
+
if (name === '' || name.includes('\0'))
|
|
65
|
+
throw new UnsafeTarError('The archive has an empty member name');
|
|
66
|
+
if (name.includes('\\'))
|
|
67
|
+
throw new UnsafeTarError(`The archive member '${name}' contains a backslash`);
|
|
68
|
+
if (name.startsWith('/') || /^[A-Za-z]:/.test(name))
|
|
69
|
+
throw new UnsafeTarError(`The archive member '${name}' is an absolute path`);
|
|
70
|
+
if (name.split('/').some((segment) => segment === '..'))
|
|
71
|
+
throw new UnsafeTarError(`The archive member '${name}' leaves the target directory`);
|
|
72
|
+
}
|
|
73
|
+
/** Throws UnsafeTarError unless every member is a plain file or directory inside the target. */
|
|
74
|
+
export function assertSafeTarMembers(archive) {
|
|
75
|
+
let offset = 0;
|
|
76
|
+
let longName = null;
|
|
77
|
+
let paxPath = null;
|
|
78
|
+
let sawEnd = false;
|
|
79
|
+
while (offset + BLOCK <= archive.length) {
|
|
80
|
+
const header = archive.subarray(offset, offset + BLOCK);
|
|
81
|
+
if (header.every((byte) => byte === 0)) {
|
|
82
|
+
sawEnd = true;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
if (!checksumOk(header))
|
|
86
|
+
throw new UnsafeTarError('The archive has a corrupt header');
|
|
87
|
+
const bodySize = size(header);
|
|
88
|
+
const bodyStart = offset + BLOCK;
|
|
89
|
+
const bodyEnd = bodyStart + bodySize;
|
|
90
|
+
if (bodyEnd > archive.length)
|
|
91
|
+
throw new UnsafeTarError('The archive is truncated');
|
|
92
|
+
const body = archive.subarray(bodyStart, bodyEnd);
|
|
93
|
+
const type = String.fromCharCode(header[156] || 0x30);
|
|
94
|
+
offset = bodyStart + Math.ceil(bodySize / BLOCK) * BLOCK;
|
|
95
|
+
if (type === 'x') {
|
|
96
|
+
const records = paxRecords(body);
|
|
97
|
+
if (records.has('linkpath'))
|
|
98
|
+
throw new UnsafeTarError('The archive contains a link');
|
|
99
|
+
// GNU sparse files carry their real name here; tar extracts under it, so it is a path like `path`.
|
|
100
|
+
for (const key of ['path', 'GNU.sparse.name']) {
|
|
101
|
+
const value = records.get(key);
|
|
102
|
+
if (value !== undefined)
|
|
103
|
+
assertSafeName(value);
|
|
104
|
+
}
|
|
105
|
+
paxPath = records.get('GNU.sparse.name') ?? records.get('path') ?? paxPath;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (type === 'g')
|
|
109
|
+
continue;
|
|
110
|
+
if (type === 'L') {
|
|
111
|
+
longName = cString(body, 0, body.length);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (type === 'K')
|
|
115
|
+
throw new UnsafeTarError('The archive contains a link');
|
|
116
|
+
const magic = cString(header, 257, 6);
|
|
117
|
+
const prefix = magic.startsWith('ustar') ? cString(header, 345, 155) : '';
|
|
118
|
+
const ownName = cString(header, 0, 100);
|
|
119
|
+
const name = paxPath ?? longName ?? (prefix ? `${prefix}/${ownName}` : ownName);
|
|
120
|
+
paxPath = null;
|
|
121
|
+
longName = null;
|
|
122
|
+
if (type === '1' || type === '2')
|
|
123
|
+
throw new UnsafeTarError(`The archive member '${name}' is a link`);
|
|
124
|
+
if (type !== '0' && type !== '5' && type !== '7')
|
|
125
|
+
throw new UnsafeTarError(`The archive member '${name}' is not a plain file or directory`);
|
|
126
|
+
assertSafeName(name);
|
|
127
|
+
}
|
|
128
|
+
if (!sawEnd && offset < archive.length)
|
|
129
|
+
throw new UnsafeTarError('The archive is truncated');
|
|
130
|
+
}
|
|
131
|
+
/** `tar` arguments that extract stdin into `directory` without restoring owners or permissions. */
|
|
132
|
+
export function tarExtractArgs(directory) {
|
|
133
|
+
return ['-xf', '-', '--no-same-owner', '--no-same-permissions', '-C', directory];
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=tar-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tar-safety.js","sourceRoot":"","sources":["../../src/lib/tar-safety.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/api.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { deleteRemoteFunction as sdkDeleteRemoteFunction, type AppDomain, type Build, type BuildStatus, type DomainVerificationInstructions, type AppRollout, type AppRolloutPhase, type PromoteAccepted, type PromoteResponse, type PromoteResult, type QueueBuildInput, type QueueBuildResponse, type AppLimits, type AppConnectionInfo, type Application, type ApplicationDetail, type ApplicationListResponse, type AppLogEvent, type AppNetworkPolicy, type AppPortSpec, type AppRuntimeSpec, type AppScaleActionResponse, type AppScalingActivation, type AppScalingPolicy, type CreateApplicationInput, type UpdateApplicationInput, type AppLocationStatus, type CreateReleaseInput, type CreateReleaseResponse, type Release, type ReleasePort, type ReleaseStatus, type CreateRemoteFunctionInput, type DeployRemoteFunctionOptions, type RemoteFunctionRecord, type TransportClient, type UpdateRemoteFunctionInput, type QueueDeployInput, type QueuedDeployResponse, type DeployRecord, type DeployListResponse, type DeployLogEvent, type RollbackDeployOptions, type MeResponse, type WorkspaceSummary } from '../sdk.js';
|
|
1
|
+
import { deleteRemoteFunction as sdkDeleteRemoteFunction, type AppDomain, type Build, type BuildStatus, type DomainVerificationInstructions, type AppRollout, type AppRolloutPhase, type PromoteAccepted, type PromoteResponse, type PromoteResult, type QueueBuildInput, type QueueBuildResponse, type AppLimits, type AppConnectionInfo, type Application, type ApplicationDetail, type ApplicationListResponse, type AppLogEvent, type AppNetworkPolicy, type AppNetworkPolicyInput, type AppPortSpec, type AppRuntimeSpec, type AppScaleActionResponse, type AppScalingActivation, type AppScalingPolicy, type CreateApplicationInput, type UpdateApplicationInput, type AppLocationStatus, type CreateReleaseInput, type CreateReleaseResponse, type Release, type ReleasePort, type ReleaseStatus, type CreateRemoteFunctionInput, type DeployRemoteFunctionOptions, type RemoteFunctionRecord, type TransportClient, type UpdateRemoteFunctionInput, type QueueDeployInput, type QueuedDeployResponse, type DeployRecord, type DeployListResponse, type DeployLogEvent, type RollbackDeployOptions, type MeResponse, type WorkspaceSummary } from '../sdk.js';
|
|
2
2
|
import type { AppVolumeBackup, AppVolumeBackupListResponse, AppVolumeBackupRunResponse, AppBackupPolicy } from '../sdk.js';
|
|
3
3
|
export type { AppVolumeBackup, AppVolumeBackupListResponse, AppVolumeBackupRunResponse, AppBackupPolicy };
|
|
4
|
+
import { type ValidateComposeInput } from '../sdk.js';
|
|
4
5
|
import { type CreateProjectInput, type ProjectResourceRef } from '../sdk.js';
|
|
5
6
|
import { type ProductionReplacementOperation } from '@inquir/compute';
|
|
6
7
|
export interface ApiRequestOptions {
|
|
@@ -28,6 +29,10 @@ export interface ApiRequestOptions {
|
|
|
28
29
|
}
|
|
29
30
|
/** Resolve credentials and throw a friendly auth error if none are present. */
|
|
30
31
|
export declare function requireAuth(options?: ApiRequestOptions): Promise<void>;
|
|
32
|
+
export declare function setClientChannel(channel: 'cli' | 'mcp'): void;
|
|
33
|
+
export declare function inquirClientHeader(): string;
|
|
34
|
+
/** Adds X-Inquir-Client to every request unless the caller set one. */
|
|
35
|
+
export declare function withClientHeader(base?: typeof fetch): typeof fetch;
|
|
31
36
|
export declare function createApiClient(options?: ApiRequestOptions): Promise<TransportClient>;
|
|
32
37
|
export declare function listRemoteFunctions(options?: ApiRequestOptions): Promise<RemoteFunctionRecord[]>;
|
|
33
38
|
export declare function resolveRemoteFunction(identifier: string, options?: ApiRequestOptions): Promise<RemoteFunctionRecord>;
|
|
@@ -55,6 +60,8 @@ export declare function listProjects(listOptions?: {
|
|
|
55
60
|
cursor?: string;
|
|
56
61
|
}, options?: ApiRequestOptions): Promise<systemSdk.ProjectListResponse>;
|
|
57
62
|
export declare function getProject(project: string, options?: ApiRequestOptions): Promise<systemSdk.ProjectDetail>;
|
|
63
|
+
/** POST /v1/compose/validate: the platform's own inquir-compose validator. */
|
|
64
|
+
export declare function validateCompose(input: ValidateComposeInput, options?: ApiRequestOptions): Promise<systemSdk.ComposeValidation>;
|
|
58
65
|
export declare function createProject(input: CreateProjectInput, options?: ApiRequestOptions): Promise<systemSdk.Project>;
|
|
59
66
|
export declare function addProjectResource(project: string, resource: ProjectResourceRef, options?: ApiRequestOptions): Promise<systemSdk.ProjectMember>;
|
|
60
67
|
export declare function removeProjectResource(project: string, resource: ProjectResourceRef, options?: ApiRequestOptions): Promise<{
|
|
@@ -116,6 +123,28 @@ export declare function getApplicationRollout(applicationId: string, rolloutId:
|
|
|
116
123
|
export declare function updateApplication(applicationId: string, patch: UpdateApplicationInput, options?: ApiRequestOptions): Promise<Application & {
|
|
117
124
|
warnings?: string[];
|
|
118
125
|
}>;
|
|
126
|
+
/** Rollouts of an application, newest first. */
|
|
127
|
+
export declare function listApplicationRollouts(applicationId: string, limit: number | undefined, options?: ApiRequestOptions): Promise<{
|
|
128
|
+
items: AppRollout[];
|
|
129
|
+
}>;
|
|
130
|
+
/** Cancel a stateful rollout: ABORTED when it can move nothing any more, else PAUSED. */
|
|
131
|
+
export declare function cancelApplicationRollout(applicationId: string, rolloutId: string, body: {
|
|
132
|
+
reason?: string;
|
|
133
|
+
}, options?: ApiRequestOptions): Promise<AppRollout>;
|
|
134
|
+
/** The ordinals of a stateful application (stateful replicas). */
|
|
135
|
+
export declare function getAppReplicas(applicationId: string, options?: ApiRequestOptions): Promise<systemSdk.AppReplicas>;
|
|
136
|
+
export declare function rebuildAppReplica(applicationId: string, ordinal: number, body: {
|
|
137
|
+
reason?: string;
|
|
138
|
+
}, options?: ApiRequestOptions): Promise<{
|
|
139
|
+
ordinal: number;
|
|
140
|
+
fromRunnerId: string | null;
|
|
141
|
+
status: string;
|
|
142
|
+
}>;
|
|
143
|
+
export declare function deleteAppReplicaVolumes(applicationId: string, ordinal: number, options?: ApiRequestOptions): Promise<{
|
|
144
|
+
ordinal: number;
|
|
145
|
+
volumes: number;
|
|
146
|
+
status: string;
|
|
147
|
+
}>;
|
|
119
148
|
/** Where a service runs and may run (experimental service location). */
|
|
120
149
|
export declare function getAppLocation(applicationId: string, options?: ApiRequestOptions): Promise<AppLocationStatus>;
|
|
121
150
|
export declare function wakeApplication(applicationId: string, options?: ApiRequestOptions): Promise<AppScaleActionResponse>;
|
|
@@ -162,7 +191,7 @@ export declare function listApplicationDomains(applicationId: string, options?:
|
|
|
162
191
|
export declare function removeApplicationDomain(applicationId: string, hostname: string, options?: ApiRequestOptions): Promise<{
|
|
163
192
|
removed: boolean;
|
|
164
193
|
}>;
|
|
165
|
-
export type { AppDomain, Application, ApplicationDetail, ApplicationListResponse, AppLimits, AppLogEvent, AppNetworkPolicy, AppPortSpec, AppRuntimeSpec, AppScaleActionResponse, AppScalingActivation, AppScalingPolicy, Build, BuildStatus, DomainVerificationInstructions, PromoteResponse, PromoteAccepted, PromoteResult, AppRollout, AppRolloutPhase, QueueBuildInput, QueueBuildResponse, CreateApplicationInput, UpdateApplicationInput, AppLocationStatus, CreateReleaseInput, CreateReleaseResponse, Release, ReleasePort, ReleaseStatus, CreateRemoteFunctionInput, UpdateRemoteFunctionInput, QueueDeployInput, QueuedDeployResponse, DeployRecord, DeployListResponse, DeployLogEvent, RollbackDeployOptions, MeResponse, WorkspaceSummary, };
|
|
194
|
+
export type { AppDomain, Application, ApplicationDetail, ApplicationListResponse, AppLimits, AppLogEvent, AppNetworkPolicy, AppNetworkPolicyInput, AppPortSpec, AppRuntimeSpec, AppScaleActionResponse, AppScalingActivation, AppScalingPolicy, Build, BuildStatus, DomainVerificationInstructions, PromoteResponse, PromoteAccepted, PromoteResult, AppRollout, AppRolloutPhase, QueueBuildInput, QueueBuildResponse, CreateApplicationInput, UpdateApplicationInput, AppLocationStatus, CreateReleaseInput, CreateReleaseResponse, Release, ReleasePort, ReleaseStatus, CreateRemoteFunctionInput, UpdateRemoteFunctionInput, QueueDeployInput, QueuedDeployResponse, DeployRecord, DeployListResponse, DeployLogEvent, RollbackDeployOptions, MeResponse, WorkspaceSummary, };
|
|
166
195
|
import * as systemSdk from '../sdk.js';
|
|
167
196
|
import type { FunctionSystemImageStatus, SystemPresetCatalog } from '../sdk.js';
|
|
168
197
|
export declare function getFunctionSystemImage(functionId: string, options?: ApiRequestOptions): Promise<FunctionSystemImageStatus>;
|
package/dist/utils/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|