@inquir/compute-cli 0.4.2 → 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 +61 -11
- 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/deploy.d.ts +8 -11
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +23 -33
- package/dist/commands/deploy.js.map +1 -1
- 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 +10 -2
- 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/deploy-follow.d.ts +1 -5
- package/dist/utils/deploy-follow.d.ts.map +1 -1
- package/dist/utils/deploy-follow.js +21 -1
- package/dist/utils/deploy-follow.js.map +1 -1
- package/dist/utils/detect.d.ts.map +1 -1
- package/dist/utils/detect.js +35 -9
- package/dist/utils/detect.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/go-handler.d.ts +59 -0
- package/dist/utils/go-handler.d.ts.map +1 -0
- package/dist/utils/go-handler.js +417 -0
- package/dist/utils/go-handler.js.map +1 -0
- package/dist/utils/package-metadata.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `inquir sandbox`: isolated, ephemeral Linux environments
|
|
3
|
+
* (docs/roadmap/SANDBOXES.md §6.2). Flags map 1:1 onto SandboxSpec.
|
|
4
|
+
*
|
|
5
|
+
* `inquir sandbox shell <id>` (and `create --shell`) opens an interactive
|
|
6
|
+
* terminal: a one-use ticket from POST /v1/sandboxes/:id/shell-ticket, then
|
|
7
|
+
* the WebSocket with the ticket in its subprotocol and the credential in its
|
|
8
|
+
* headers; the local terminal goes raw while the shell runs, and the shell's
|
|
9
|
+
* exit status becomes the CLI's.
|
|
10
|
+
*
|
|
11
|
+
* Two flags differ from the design sketch because the CLI already owns them
|
|
12
|
+
* as global flags: the working directory inside the sandbox is `--workdir`
|
|
13
|
+
* (global `--cwd` selects the local project), and environment variables are
|
|
14
|
+
* `--set KEY=VALUE` (global `--env` selects a credential environment), as in
|
|
15
|
+
* `inquir apps`.
|
|
16
|
+
*/
|
|
17
|
+
import { type SandboxSpecInput, type ShellSocket } from '../lib/sandbox-api.js';
|
|
18
|
+
/** The SandboxSpec the create flags describe. */
|
|
19
|
+
export declare function sandboxSpecFromFlags(args: string[]): SandboxSpecInput;
|
|
20
|
+
/** The local side of a shell: the terminal (or pipes) the CLI runs in. */
|
|
21
|
+
export interface ShellIo {
|
|
22
|
+
stdin: NodeJS.ReadableStream & {
|
|
23
|
+
isTTY?: boolean;
|
|
24
|
+
setRawMode?: (raw: boolean) => unknown;
|
|
25
|
+
};
|
|
26
|
+
stdout: {
|
|
27
|
+
write(data: Uint8Array | string): unknown;
|
|
28
|
+
columns?: number;
|
|
29
|
+
rows?: number;
|
|
30
|
+
on?(event: 'resize', listener: () => void): unknown;
|
|
31
|
+
off?(event: 'resize', listener: () => void): unknown;
|
|
32
|
+
};
|
|
33
|
+
stderr: {
|
|
34
|
+
write(data: string): unknown;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** How a shell session ended: the shell's exit status (null: a signal), or the server's refusal. */
|
|
38
|
+
export interface ShellOutcome {
|
|
39
|
+
exitCode: number | null;
|
|
40
|
+
error?: {
|
|
41
|
+
code: string;
|
|
42
|
+
message: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Drive one shell WebSocket: local input (raw, once the shell is ready) as
|
|
47
|
+
* input frames, terminal size changes as resize frames, output to stdout.
|
|
48
|
+
* Resolves with the exit status, or with the error the server sent. The
|
|
49
|
+
* local terminal is always restored.
|
|
50
|
+
*/
|
|
51
|
+
export declare function runSandboxShell(socket: ShellSocket, io: ShellIo): Promise<ShellOutcome>;
|
|
52
|
+
/** `sbx:<id|name>:/path` → its parts; null for a local path. */
|
|
53
|
+
export declare function parseSandboxLocation(value: string): {
|
|
54
|
+
sandbox: string;
|
|
55
|
+
path: string;
|
|
56
|
+
} | null;
|
|
57
|
+
export declare function sandboxCommand(args: string[]): Promise<void>;
|
|
58
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,EAeL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAyD/B,iDAAiD;AACjD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAyDrE;AAcD,0EAA0E;AAC1E,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;KAAE,CAAC;IAC3F,MAAM,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACnF,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;QAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAA;KAAE,CAAC;IAC9G,MAAM,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAC1C;AAED,oGAAoG;AACpG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAyDvF;AAWD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG5F;AAmED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHlE"}
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `inquir sandbox`: isolated, ephemeral Linux environments
|
|
3
|
+
* (docs/roadmap/SANDBOXES.md §6.2). Flags map 1:1 onto SandboxSpec.
|
|
4
|
+
*
|
|
5
|
+
* `inquir sandbox shell <id>` (and `create --shell`) opens an interactive
|
|
6
|
+
* terminal: a one-use ticket from POST /v1/sandboxes/:id/shell-ticket, then
|
|
7
|
+
* the WebSocket with the ticket in its subprotocol and the credential in its
|
|
8
|
+
* headers; the local terminal goes raw while the shell runs, and the shell's
|
|
9
|
+
* exit status becomes the CLI's.
|
|
10
|
+
*
|
|
11
|
+
* Two flags differ from the design sketch because the CLI already owns them
|
|
12
|
+
* as global flags: the working directory inside the sandbox is `--workdir`
|
|
13
|
+
* (global `--cwd` selects the local project), and environment variables are
|
|
14
|
+
* `--set KEY=VALUE` (global `--env` selects a credential environment), as in
|
|
15
|
+
* `inquir apps`.
|
|
16
|
+
*/
|
|
17
|
+
import { spawn } from 'node:child_process';
|
|
18
|
+
import { mkdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
19
|
+
import path from 'node:path';
|
|
20
|
+
import { requireAuth } from '../utils/api.js';
|
|
21
|
+
import { hasFlag, readFlagValue, readJsonFlag, readMultiFlag, readPositionalArgs } from '../utils/args.js';
|
|
22
|
+
import { buildApiOptions } from '../utils/context.js';
|
|
23
|
+
import { CliError, ExitCode, usageError } from '../utils/errors.js';
|
|
24
|
+
import { dim, formatTable, printCommandHelp, printLine } from '../utils/output.js';
|
|
25
|
+
import { createSandbox, destroySandbox, execInSandbox, listSandboxes, openShellSocket, parseShellFrame, parseDurationFlag, parseSizeMb, readSandboxFile, resolveSandboxId, SANDBOX_SIZES, writeSandboxFile, getSandbox, } from '../lib/sandbox-api.js';
|
|
26
|
+
import { assertSafeTarMembers, tarExtractArgs } from '../lib/tar-safety.js';
|
|
27
|
+
const VALUE_FLAGS = [
|
|
28
|
+
'--name', '--image', '--size', '--cpu', '--memory', '--disk', '--network', '--allow', '--idle', '--ttl',
|
|
29
|
+
'--region', '--project', '--set', '--workdir', '--timeout', '--stdin-file',
|
|
30
|
+
];
|
|
31
|
+
function usage(message) {
|
|
32
|
+
return usageError(message, 'inquir sandbox --help');
|
|
33
|
+
}
|
|
34
|
+
function printHelp() {
|
|
35
|
+
printCommandHelp('sandbox', 'sandbox <subcommand> [options]', [
|
|
36
|
+
'create Create a sandbox and wait until it runs',
|
|
37
|
+
' --name N unique among your live sandboxes',
|
|
38
|
+
' --image I a configured sandbox image (default: the platform image)',
|
|
39
|
+
' --size s|m|l 0.5 vCPU/512 MiB/2 GiB, 1/1 GiB/5 GiB, 2/4 GiB/10 GiB',
|
|
40
|
+
' --cpu 1 --memory 1g --disk 5g explicit resources (instead of --size)',
|
|
41
|
+
' --network none|proxy default none (no network); proxy: --allow only',
|
|
42
|
+
' --allow npm,pypi,host proxy presets (npm, pypi, github) or public hostnames',
|
|
43
|
+
' --idle 30m --ttl 1h idle timeout (default 30m: no exec, file, shell I/O or keepalive) and lifetime',
|
|
44
|
+
' --region auto|ru|nl --project P --set KEY=VALUE (repeatable)',
|
|
45
|
+
' --no-wait return once accepted, before it runs',
|
|
46
|
+
' --shell [--rm] then open a shell in it (--rm: destroy it when the shell exits)',
|
|
47
|
+
'list [--all] Live sandboxes (--all: ended ones too)',
|
|
48
|
+
'get <id|name> One sandbox',
|
|
49
|
+
'exec <id|name> [--workdir D] [--set K=V] [--timeout 10m] [--stdin-file F] -- <cmd> [args...]',
|
|
50
|
+
' Run a command; its output streams and its exit code is yours.',
|
|
51
|
+
' One argument after -- runs through `sh -c`; several are exec\'d as argv.',
|
|
52
|
+
'shell <id|name> Interactive terminal (a login shell in /workspace); its exit code is yours',
|
|
53
|
+
'cp <src> <dst> Copy a file or directory: sbx:<id|name>:/path on one side',
|
|
54
|
+
' (directories travel as tar; the local `tar` command is used)',
|
|
55
|
+
'rm <id|name>... | --all Destroy sandboxes',
|
|
56
|
+
'--json Machine-readable output',
|
|
57
|
+
], [
|
|
58
|
+
'inquir sandbox create --network proxy --allow npm,pypi,github --json',
|
|
59
|
+
'inquir sandbox cp ./repo sbx:my-box:/workspace/repo',
|
|
60
|
+
'inquir sandbox exec my-box --workdir /workspace/repo -- npm test',
|
|
61
|
+
'inquir sandbox exec my-box -- "ls -la /workspace"',
|
|
62
|
+
'inquir sandbox create --shell --rm',
|
|
63
|
+
'inquir sandbox shell my-box',
|
|
64
|
+
'inquir sandbox rm my-box',
|
|
65
|
+
]);
|
|
66
|
+
}
|
|
67
|
+
function parseEnv(entries) {
|
|
68
|
+
if (entries.length === 0)
|
|
69
|
+
return undefined;
|
|
70
|
+
const env = {};
|
|
71
|
+
for (const entry of entries) {
|
|
72
|
+
const eq = entry.indexOf('=');
|
|
73
|
+
if (eq <= 0)
|
|
74
|
+
throw usage(`Invalid --set value '${entry}': use KEY=VALUE`);
|
|
75
|
+
env[entry.slice(0, eq)] = entry.slice(eq + 1);
|
|
76
|
+
}
|
|
77
|
+
return env;
|
|
78
|
+
}
|
|
79
|
+
/** The SandboxSpec the create flags describe. */
|
|
80
|
+
export function sandboxSpecFromFlags(args) {
|
|
81
|
+
const spec = {};
|
|
82
|
+
const name = readFlagValue(args, '--name');
|
|
83
|
+
if (name)
|
|
84
|
+
spec.name = name;
|
|
85
|
+
const image = readFlagValue(args, '--image');
|
|
86
|
+
if (image)
|
|
87
|
+
spec.image = image;
|
|
88
|
+
const region = readFlagValue(args, '--region');
|
|
89
|
+
if (region) {
|
|
90
|
+
if (region !== 'auto' && region !== 'ru' && region !== 'nl')
|
|
91
|
+
throw usage('--region must be auto, ru or nl');
|
|
92
|
+
spec.region = region;
|
|
93
|
+
}
|
|
94
|
+
const size = readFlagValue(args, '--size');
|
|
95
|
+
const cpu = readFlagValue(args, '--cpu');
|
|
96
|
+
const memory = readFlagValue(args, '--memory');
|
|
97
|
+
const disk = readFlagValue(args, '--disk');
|
|
98
|
+
if (size && (cpu || memory || disk))
|
|
99
|
+
throw usage('Use either --size or --cpu/--memory/--disk');
|
|
100
|
+
try {
|
|
101
|
+
if (size) {
|
|
102
|
+
const preset = SANDBOX_SIZES[size.toLowerCase()];
|
|
103
|
+
if (!preset)
|
|
104
|
+
throw usage('--size must be s, m or l');
|
|
105
|
+
spec.resources = { ...preset };
|
|
106
|
+
}
|
|
107
|
+
else if (cpu || memory || disk) {
|
|
108
|
+
spec.resources = {};
|
|
109
|
+
if (cpu) {
|
|
110
|
+
const vcpu = Number(cpu);
|
|
111
|
+
if (!Number.isFinite(vcpu) || vcpu <= 0)
|
|
112
|
+
throw usage('--cpu must be a positive number of vCPUs');
|
|
113
|
+
spec.resources.vcpu = vcpu;
|
|
114
|
+
}
|
|
115
|
+
if (memory)
|
|
116
|
+
spec.resources.memoryMb = parseSizeMb(memory, '--memory');
|
|
117
|
+
if (disk)
|
|
118
|
+
spec.resources.diskGb = Math.round((parseSizeMb(disk, '--disk') / 1_024) * 100) / 100;
|
|
119
|
+
}
|
|
120
|
+
const network = readFlagValue(args, '--network');
|
|
121
|
+
const allow = readFlagValue(args, '--allow');
|
|
122
|
+
if (network || allow) {
|
|
123
|
+
if (network && network !== 'none' && network !== 'proxy' && network !== 'open')
|
|
124
|
+
throw usage('--network must be none or proxy');
|
|
125
|
+
spec.network = {
|
|
126
|
+
mode: (network ?? 'proxy'),
|
|
127
|
+
...(allow ? { allow: allow.split(',').map((entry) => entry.trim()).filter(Boolean) } : {}),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const idle = readFlagValue(args, '--idle');
|
|
131
|
+
const ttl = readFlagValue(args, '--ttl');
|
|
132
|
+
if (idle || ttl) {
|
|
133
|
+
spec.lifetime = {
|
|
134
|
+
...(idle ? { idle: parseDurationFlag(idle, '--idle') } : {}),
|
|
135
|
+
...(ttl ? { max: parseDurationFlag(ttl, '--ttl') } : {}),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
if (error instanceof CliError)
|
|
141
|
+
throw error;
|
|
142
|
+
throw usage(error instanceof Error ? error.message : String(error));
|
|
143
|
+
}
|
|
144
|
+
const project = readFlagValue(args, '--project');
|
|
145
|
+
if (project)
|
|
146
|
+
spec.project = project;
|
|
147
|
+
const env = parseEnv(readMultiFlag(args, '--set'));
|
|
148
|
+
if (env)
|
|
149
|
+
spec.env = env;
|
|
150
|
+
return spec;
|
|
151
|
+
}
|
|
152
|
+
function summary(sandbox) {
|
|
153
|
+
const left = sandbox.status === 'RUNNING' ? Math.max(0, Math.round((Date.parse(sandbox.expiresAt) - Date.now()) / 60_000)) : undefined;
|
|
154
|
+
return {
|
|
155
|
+
id: sandbox.id,
|
|
156
|
+
name: sandbox.name ?? '',
|
|
157
|
+
status: sandbox.status,
|
|
158
|
+
size: `${sandbox.resources.vcpu} vCPU / ${sandbox.resources.memoryMb} MiB`,
|
|
159
|
+
network: sandbox.network.mode,
|
|
160
|
+
left: left === undefined ? '' : `${left} min`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const SHELL_INPUT_FRAME_BYTES = 16 * 1024;
|
|
164
|
+
/**
|
|
165
|
+
* Drive one shell WebSocket: local input (raw, once the shell is ready) as
|
|
166
|
+
* input frames, terminal size changes as resize frames, output to stdout.
|
|
167
|
+
* Resolves with the exit status, or with the error the server sent. The
|
|
168
|
+
* local terminal is always restored.
|
|
169
|
+
*/
|
|
170
|
+
export function runSandboxShell(socket, io) {
|
|
171
|
+
return new Promise((resolve) => {
|
|
172
|
+
let settled = false;
|
|
173
|
+
let raw = false;
|
|
174
|
+
const send = (frame) => {
|
|
175
|
+
if (socket.readyState === 1)
|
|
176
|
+
socket.send(JSON.stringify(frame));
|
|
177
|
+
};
|
|
178
|
+
const onInput = (chunk) => {
|
|
179
|
+
const data = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, 'utf8');
|
|
180
|
+
for (let offset = 0; offset < data.length; offset += SHELL_INPUT_FRAME_BYTES) {
|
|
181
|
+
send({ type: 'input', dataBase64: data.subarray(offset, offset + SHELL_INPUT_FRAME_BYTES).toString('base64') });
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
const onResize = () => {
|
|
185
|
+
if (io.stdout.columns && io.stdout.rows)
|
|
186
|
+
send({ type: 'resize', cols: io.stdout.columns, rows: io.stdout.rows });
|
|
187
|
+
};
|
|
188
|
+
const finish = (outcome) => {
|
|
189
|
+
if (settled)
|
|
190
|
+
return;
|
|
191
|
+
settled = true;
|
|
192
|
+
io.stdin.off('data', onInput);
|
|
193
|
+
io.stdout.off?.('resize', onResize);
|
|
194
|
+
if (raw)
|
|
195
|
+
io.stdin.setRawMode?.(false);
|
|
196
|
+
io.stdin.pause();
|
|
197
|
+
if (socket.readyState === 0 || socket.readyState === 1)
|
|
198
|
+
socket.close(1000, 'done');
|
|
199
|
+
resolve(outcome);
|
|
200
|
+
};
|
|
201
|
+
socket.addEventListener('message', (event) => {
|
|
202
|
+
const frame = parseShellFrame(event.data);
|
|
203
|
+
if (!frame)
|
|
204
|
+
return;
|
|
205
|
+
switch (frame.type) {
|
|
206
|
+
case 'ready':
|
|
207
|
+
if (io.stdin.isTTY && io.stdin.setRawMode) {
|
|
208
|
+
io.stdin.setRawMode(true);
|
|
209
|
+
raw = true;
|
|
210
|
+
}
|
|
211
|
+
io.stdin.on('data', onInput);
|
|
212
|
+
io.stdin.resume();
|
|
213
|
+
io.stdout.on?.('resize', onResize);
|
|
214
|
+
return;
|
|
215
|
+
case 'output':
|
|
216
|
+
io.stdout.write(Buffer.from(frame.dataBase64, 'base64'));
|
|
217
|
+
return;
|
|
218
|
+
case 'exit':
|
|
219
|
+
finish({ exitCode: frame.exitCode });
|
|
220
|
+
return;
|
|
221
|
+
case 'error':
|
|
222
|
+
finish({ exitCode: null, error: frame.error });
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
socket.addEventListener('close', (event) => {
|
|
227
|
+
finish({ exitCode: null, error: { code: 'SANDBOX_SHELL_CLOSED', message: `The shell connection closed (${event.code ?? 'no code'})` } });
|
|
228
|
+
});
|
|
229
|
+
socket.addEventListener('error', () => {
|
|
230
|
+
finish({ exitCode: null, error: { code: 'SANDBOX_SHELL_TRANSPORT', message: 'The shell connection failed' } });
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/** `inquir sandbox shell`: open, drive, and turn the outcome into the CLI's exit status. */
|
|
235
|
+
async function interactiveShell(id, apiOptions) {
|
|
236
|
+
const size = { cols: process.stdout.columns || 80, rows: process.stdout.rows || 24 };
|
|
237
|
+
const socket = await openShellSocket(id, size, apiOptions);
|
|
238
|
+
const outcome = await runSandboxShell(socket, { stdin: process.stdin, stdout: process.stdout, stderr: process.stderr });
|
|
239
|
+
if (outcome.error)
|
|
240
|
+
throw new CliError(outcome.error.message, { code: outcome.error.code });
|
|
241
|
+
process.exitCode = outcome.exitCode ?? 137;
|
|
242
|
+
}
|
|
243
|
+
/** `sbx:<id|name>:/path` → its parts; null for a local path. */
|
|
244
|
+
export function parseSandboxLocation(value) {
|
|
245
|
+
const match = /^sbx:([^:]+):(\/.*)$/.exec(value);
|
|
246
|
+
return match ? { sandbox: match[1], path: match[2] } : null;
|
|
247
|
+
}
|
|
248
|
+
/** Canonical absolute POSIX path (no trailing slash): what the API accepts. */
|
|
249
|
+
function canonicalRemotePath(value) {
|
|
250
|
+
const parts = value.split('/').filter((part) => part !== '' && part !== '.');
|
|
251
|
+
if (parts.includes('..'))
|
|
252
|
+
throw usage(`Remote path '${value}' may not contain '..'`);
|
|
253
|
+
return `/${parts.join('/')}`;
|
|
254
|
+
}
|
|
255
|
+
function runTar(args, input) {
|
|
256
|
+
return new Promise((resolve, reject) => {
|
|
257
|
+
const child = spawn('tar', args, { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
258
|
+
const out = [];
|
|
259
|
+
const err = [];
|
|
260
|
+
child.stdout.on('data', (chunk) => out.push(chunk));
|
|
261
|
+
child.stderr.on('data', (chunk) => err.push(chunk));
|
|
262
|
+
child.on('error', (error) => reject(new CliError('The local `tar` command is needed to copy directories', { explanation: error.message })));
|
|
263
|
+
child.on('close', (code) => {
|
|
264
|
+
if (code === 0)
|
|
265
|
+
resolve(Buffer.concat(out));
|
|
266
|
+
else
|
|
267
|
+
reject(new CliError(`tar failed (${code})`, { explanation: Buffer.concat(err).toString('utf8').trim() }));
|
|
268
|
+
});
|
|
269
|
+
child.stdin.end(input);
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
async function copy(args, positionals, apiOptions) {
|
|
273
|
+
if (positionals.length !== 2)
|
|
274
|
+
throw usage('cp needs <src> and <dst>');
|
|
275
|
+
const [source, target] = positionals;
|
|
276
|
+
const from = parseSandboxLocation(source);
|
|
277
|
+
const to = parseSandboxLocation(target);
|
|
278
|
+
if (Boolean(from) === Boolean(to))
|
|
279
|
+
throw usage('Exactly one side of cp must be sbx:<id|name>:/path');
|
|
280
|
+
if (to) {
|
|
281
|
+
const local = path.resolve(source);
|
|
282
|
+
const id = await resolveSandboxId(to.sandbox, apiOptions);
|
|
283
|
+
const remote = canonicalRemotePath(to.path);
|
|
284
|
+
const isDirectory = statSync(local).isDirectory();
|
|
285
|
+
const data = isDirectory ? await runTar(['-cf', '-', '-C', local, '.']) : readFileSync(local);
|
|
286
|
+
const result = await writeSandboxFile(id, remote, data, apiOptions, isDirectory ? 'tar' : 'file');
|
|
287
|
+
printLine(readJsonFlag(args) ? JSON.stringify(result, null, 2) : `Copied ${result.bytes} bytes to ${id}:${remote}`);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const id = await resolveSandboxId(from.sandbox, apiOptions);
|
|
291
|
+
const remote = canonicalRemotePath(from.path);
|
|
292
|
+
const asDirectory = from.path.endsWith('/') || hasFlag(args, '-r') || hasFlag(args, '--recursive');
|
|
293
|
+
const data = await readSandboxFile(id, remote, apiOptions, asDirectory ? 'tar' : 'file');
|
|
294
|
+
const local = path.resolve(target);
|
|
295
|
+
if (asDirectory) {
|
|
296
|
+
// Built inside the sandbox, so untrusted: refuse links, absolute paths and `..` before tar sees it.
|
|
297
|
+
try {
|
|
298
|
+
assertSafeTarMembers(data);
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
throw new CliError('Refusing to extract the archive from the sandbox', { explanation: error.message });
|
|
302
|
+
}
|
|
303
|
+
mkdirSync(local, { recursive: true });
|
|
304
|
+
await runTar(tarExtractArgs(local), data);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
let destination = local;
|
|
308
|
+
try {
|
|
309
|
+
if (statSync(local).isDirectory())
|
|
310
|
+
destination = path.join(local, path.posix.basename(remote));
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
// A new file.
|
|
314
|
+
}
|
|
315
|
+
writeFileSync(destination, data);
|
|
316
|
+
}
|
|
317
|
+
printLine(readJsonFlag(args) ? JSON.stringify({ path: local, bytes: data.length }, null, 2) : `Copied ${data.length} bytes to ${local}`);
|
|
318
|
+
}
|
|
319
|
+
export async function sandboxCommand(args) {
|
|
320
|
+
const terminator = args.indexOf('--');
|
|
321
|
+
const head = terminator < 0 ? args : args.slice(0, terminator);
|
|
322
|
+
const command = terminator < 0 ? [] : args.slice(terminator + 1);
|
|
323
|
+
const [subcommand, ...positionals] = readPositionalArgs(head, {
|
|
324
|
+
valueFlags: VALUE_FLAGS, booleanFlags: ['--all', '--no-wait', '-r', '--recursive', '--shell', '--rm'],
|
|
325
|
+
});
|
|
326
|
+
if (!subcommand || hasFlag(head, '--help') || hasFlag(head, '-h')) {
|
|
327
|
+
printHelp();
|
|
328
|
+
if (!subcommand && !hasFlag(head, '--help') && !hasFlag(head, '-h'))
|
|
329
|
+
throw usage('Missing sandbox subcommand');
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const apiOptions = buildApiOptions(head);
|
|
333
|
+
await requireAuth(apiOptions);
|
|
334
|
+
const json = readJsonFlag(head);
|
|
335
|
+
switch (subcommand) {
|
|
336
|
+
case 'create': {
|
|
337
|
+
if (positionals.length > 0)
|
|
338
|
+
throw usage('create takes no positional arguments; name it with --name');
|
|
339
|
+
const sandbox = await createSandbox(sandboxSpecFromFlags(head), apiOptions, { wait: !hasFlag(head, '--no-wait') });
|
|
340
|
+
if (json)
|
|
341
|
+
printLine(JSON.stringify(sandbox, null, 2));
|
|
342
|
+
else {
|
|
343
|
+
printLine(`Sandbox ${sandbox.id}${sandbox.name ? ` (${sandbox.name})` : ''}: ${sandbox.status}`);
|
|
344
|
+
printLine(dim(` run: inquir sandbox exec ${sandbox.name ?? sandbox.id} -- <command>`));
|
|
345
|
+
printLine(dim(` destroy: inquir sandbox rm ${sandbox.name ?? sandbox.id}`));
|
|
346
|
+
}
|
|
347
|
+
if (sandbox.status === 'FAILED') {
|
|
348
|
+
throw new CliError(`The sandbox failed to start (${sandbox.failureCode ?? 'unknown'})`, { code: sandbox.failureCode ?? 'SANDBOX_FAILED' });
|
|
349
|
+
}
|
|
350
|
+
if (hasFlag(head, '--shell')) {
|
|
351
|
+
if (sandbox.status !== 'RUNNING')
|
|
352
|
+
throw usage('--shell needs the sandbox running; drop --no-wait');
|
|
353
|
+
try {
|
|
354
|
+
await interactiveShell(sandbox.id, apiOptions);
|
|
355
|
+
}
|
|
356
|
+
finally {
|
|
357
|
+
if (hasFlag(head, '--rm'))
|
|
358
|
+
await destroySandbox(sandbox.id, apiOptions).catch(() => undefined);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
case 'shell': {
|
|
364
|
+
if (positionals.length !== 1)
|
|
365
|
+
throw usage('shell needs one sandbox id or name');
|
|
366
|
+
await interactiveShell(await resolveSandboxId(positionals[0], apiOptions), apiOptions);
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
case 'list': {
|
|
370
|
+
const sandboxes = await listSandboxes(apiOptions, { all: hasFlag(head, '--all') });
|
|
371
|
+
if (json)
|
|
372
|
+
printLine(JSON.stringify(sandboxes, null, 2));
|
|
373
|
+
else
|
|
374
|
+
printLine(sandboxes.length
|
|
375
|
+
? formatTable(sandboxes.map(summary), ['id', 'name', 'status', 'size', 'network', 'left'])
|
|
376
|
+
: 'No live sandboxes. Create one with: inquir sandbox create');
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
case 'get': {
|
|
380
|
+
if (positionals.length !== 1)
|
|
381
|
+
throw usage('get needs one sandbox id or name');
|
|
382
|
+
const sandbox = await getSandbox(await resolveSandboxId(positionals[0], apiOptions), apiOptions);
|
|
383
|
+
printLine(json ? JSON.stringify(sandbox, null, 2) : formatTable([summary(sandbox)], ['id', 'name', 'status', 'size', 'network', 'left']));
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
case 'exec': {
|
|
387
|
+
if (positionals.length !== 1)
|
|
388
|
+
throw usage('exec needs one sandbox id or name');
|
|
389
|
+
if (command.length === 0)
|
|
390
|
+
throw usage('exec needs a command after --');
|
|
391
|
+
const id = await resolveSandboxId(positionals[0], apiOptions);
|
|
392
|
+
const timeout = readFlagValue(head, '--timeout');
|
|
393
|
+
const stdinFile = readFlagValue(head, '--stdin-file');
|
|
394
|
+
const workdir = readFlagValue(head, '--workdir');
|
|
395
|
+
const env = parseEnv(readMultiFlag(head, '--set'));
|
|
396
|
+
let timeoutMs;
|
|
397
|
+
if (timeout) {
|
|
398
|
+
const text = parseDurationFlag(timeout, '--timeout');
|
|
399
|
+
const match = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(text);
|
|
400
|
+
timeoutMs = /^\d+$/.test(text) ? Number(text) * 1_000
|
|
401
|
+
: (Number(match?.[1] ?? 0) * 3_600 + Number(match?.[2] ?? 0) * 60 + Number(match?.[3] ?? 0)) * 1_000;
|
|
402
|
+
}
|
|
403
|
+
const abort = new AbortController();
|
|
404
|
+
const onSignal = () => abort.abort();
|
|
405
|
+
process.once('SIGINT', onSignal);
|
|
406
|
+
try {
|
|
407
|
+
const result = await execInSandbox(id, {
|
|
408
|
+
cmd: command.length === 1 ? command[0] : command,
|
|
409
|
+
...(workdir ? { cwd: canonicalRemotePath(workdir) } : {}),
|
|
410
|
+
...(env ? { env } : {}),
|
|
411
|
+
...(timeoutMs ? { timeoutMs } : {}),
|
|
412
|
+
...(stdinFile ? { stdin: readFileSync(stdinFile, 'utf8') } : {}),
|
|
413
|
+
}, apiOptions, {
|
|
414
|
+
onStdout: (text) => { if (!json)
|
|
415
|
+
process.stdout.write(text); },
|
|
416
|
+
onStderr: (text) => { if (!json)
|
|
417
|
+
process.stderr.write(text); },
|
|
418
|
+
signal: abort.signal,
|
|
419
|
+
});
|
|
420
|
+
if (json)
|
|
421
|
+
printLine(JSON.stringify(result, null, 2));
|
|
422
|
+
if (result.errorCode) {
|
|
423
|
+
throw new CliError(result.errorMessage ?? 'The exec failed', { code: result.errorCode });
|
|
424
|
+
}
|
|
425
|
+
if (result.truncated && !json)
|
|
426
|
+
process.stderr.write(dim('\n[output truncated at the sandbox output cap]\n'));
|
|
427
|
+
if (result.timedOut)
|
|
428
|
+
process.exitCode = 124;
|
|
429
|
+
else if (result.exitCode === null)
|
|
430
|
+
process.exitCode = 137;
|
|
431
|
+
else
|
|
432
|
+
process.exitCode = result.exitCode;
|
|
433
|
+
}
|
|
434
|
+
finally {
|
|
435
|
+
process.off('SIGINT', onSignal);
|
|
436
|
+
}
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
case 'cp':
|
|
440
|
+
await copy(head, positionals, apiOptions);
|
|
441
|
+
return;
|
|
442
|
+
case 'rm': {
|
|
443
|
+
const all = hasFlag(head, '--all');
|
|
444
|
+
if (all === (positionals.length > 0))
|
|
445
|
+
throw usage('rm needs sandbox ids/names, or --all');
|
|
446
|
+
const ids = all
|
|
447
|
+
? (await listSandboxes(apiOptions)).filter((sandbox) => sandbox.status !== 'STOPPING').map((sandbox) => sandbox.id)
|
|
448
|
+
: await Promise.all(positionals.map((reference) => resolveSandboxId(reference, apiOptions)));
|
|
449
|
+
const results = [];
|
|
450
|
+
for (const id of ids)
|
|
451
|
+
results.push(await destroySandbox(id, apiOptions));
|
|
452
|
+
if (json)
|
|
453
|
+
printLine(JSON.stringify(results, null, 2));
|
|
454
|
+
else
|
|
455
|
+
printLine(results.length ? results.map((sandbox) => `${sandbox.id}: ${sandbox.status}`).join('\n') : 'No live sandboxes.');
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
default:
|
|
459
|
+
throw new CliError(`Unknown sandbox subcommand: ${subcommand}`, { exitCode: ExitCode.USAGE, command: 'inquir sandbox --help' });
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,8 +17,10 @@ import { logoutCommand } from './commands/logout.js';
|
|
|
17
17
|
import { logsCommand } from './commands/logs.js';
|
|
18
18
|
import { mcpCommand } from './commands/mcp.js';
|
|
19
19
|
import { projectsCommand } from './commands/projects.js';
|
|
20
|
+
import { composeCommand } from './commands/compose.js';
|
|
20
21
|
import { rollbackCommand } from './commands/rollback.js';
|
|
21
22
|
import { runCommand } from './commands/run.js';
|
|
23
|
+
import { sandboxCommand } from './commands/sandbox.js';
|
|
22
24
|
import { statusCommand } from './commands/status.js';
|
|
23
25
|
import { syncStatusCommand } from './commands/sync-status.js';
|
|
24
26
|
import { upgradeCommand } from './commands/upgrade.js';
|
|
@@ -72,6 +74,8 @@ const COMMANDS = {
|
|
|
72
74
|
functions: functionsCommand,
|
|
73
75
|
apps: appsCommand,
|
|
74
76
|
projects: projectsCommand,
|
|
77
|
+
compose: composeCommand,
|
|
78
|
+
sandbox: sandboxCommand,
|
|
75
79
|
rollback: rollbackCommand,
|
|
76
80
|
status: statusCommand,
|
|
77
81
|
logs: logsCommand,
|
|
@@ -131,6 +135,11 @@ function printHelp() {
|
|
|
131
135
|
printLine(' apps Long-lived containers: any image, HTTP or raw TCP ports');
|
|
132
136
|
printLine(' list | create | deploy | status | logs | promote | rollback | stop | exec');
|
|
133
137
|
printLine(' projects Group applications: list | create | use | current | add | remove | move');
|
|
138
|
+
printLine(' compose Stacks of services from inquir-compose.yaml: validate (up/status/down next)');
|
|
139
|
+
printLine('');
|
|
140
|
+
printLine(bold('Sandboxes'));
|
|
141
|
+
printLine(' sandbox Isolated, short-lived Linux environments for untrusted code');
|
|
142
|
+
printLine(' create | list | get | exec | cp | rm');
|
|
134
143
|
printLine('');
|
|
135
144
|
printLine(bold('Diagnostics & config'));
|
|
136
145
|
printLine(' doctor Diagnose environment, credentials, and connectivity');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ApiRequestOptions } from '../utils/api.js';
|
|
2
|
+
interface ReplicaTool {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: Record<string, unknown>;
|
|
6
|
+
handler: (args: Record<string, unknown>, apiOptions: ApiRequestOptions) => Promise<unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare const REPLICA_TOOLS: ReplicaTool[];
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=mcp-replica-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-replica-tools.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-replica-tools.ts"],"names":[],"mappings":"AAOA,OAAO,EAC8F,KAAK,iBAAiB,EAC1H,MAAM,iBAAiB,CAAC;AAEzB,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7F;AAUD,eAAO,MAAM,aAAa,EAAE,WAAW,EA2DtC,CAAC"}
|