@usenaive-sdk/cli 0.13.0 → 0.13.1
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 +14 -0
- package/dist/commands/aeo.js +2 -2
- package/dist/commands/aeo.js.map +1 -1
- package/dist/commands/approvals.js +142 -9
- package/dist/commands/approvals.js.map +1 -1
- package/dist/commands/audio.js +1 -1
- package/dist/commands/audio.js.map +1 -1
- package/dist/commands/auth.js +27 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/brain.js +17 -4
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/browser.js +1 -1
- package/dist/commands/clone.js +2 -2
- package/dist/commands/clone.js.map +1 -1
- package/dist/commands/compute.js +285 -15
- package/dist/commands/compute.js.map +1 -1
- package/dist/commands/connections.js +13 -1
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/domains.js +62 -18
- package/dist/commands/domains.js.map +1 -1
- package/dist/commands/formation.js +2 -2
- package/dist/commands/formation.js.map +1 -1
- package/dist/commands/images.js +2 -2
- package/dist/commands/images.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +7 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/llm.js +1 -1
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/logout.d.ts +7 -0
- package/dist/commands/logout.js +55 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/people.js +4 -0
- package/dist/commands/people.js.map +1 -1
- package/dist/commands/phone.js +37 -5
- package/dist/commands/phone.js.map +1 -1
- package/dist/commands/sandbox.js +334 -21
- package/dist/commands/sandbox.js.map +1 -1
- package/dist/commands/search.js +1 -1
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/social-data.js +4 -3
- package/dist/commands/social-data.js.map +1 -1
- package/dist/commands/social.js +1 -1
- package/dist/commands/social.js.map +1 -1
- package/dist/commands/tasks.js +9 -0
- package/dist/commands/tasks.js.map +1 -1
- package/dist/commands/up.js +52 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/vault.js +3 -0
- package/dist/commands/vault.js.map +1 -1
- package/dist/commands/verification.js +1 -1
- package/dist/commands/verification.js.map +1 -1
- package/dist/commands/video.js +3 -3
- package/dist/commands/video.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/unknown-command.d.ts +18 -4
- package/dist/lib/unknown-command.js +45 -6
- package/dist/lib/unknown-command.js.map +1 -1
- package/dist/output.d.ts +28 -0
- package/dist/output.js +29 -1
- package/dist/output.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/sandbox.js
CHANGED
|
@@ -2,6 +2,61 @@ import { Command } from "commander";
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { apiRequest, handleApiError } from "../client.js";
|
|
4
4
|
import { agentOutput } from "../output.js";
|
|
5
|
+
/**
|
|
6
|
+
* THE SUCCESS ENVELOPE.
|
|
7
|
+
*
|
|
8
|
+
* `naive --help` promises "every command returns structured JSON with result
|
|
9
|
+
* data, next steps, and contextual guidance for autonomous operation"
|
|
10
|
+
* (index.ts), and /cli/overview documents the same shape. `sandbox` shipped with
|
|
11
|
+
* 16 of its 20 success envelopes passing `next_steps: []` and none carrying
|
|
12
|
+
* `hints`, so an agent that created a sandbox and ran a command in it got the
|
|
13
|
+
* data and no route onward — on the one primitive where the route onward
|
|
14
|
+
* (`park`, `sleep`, `destroy`) is what stops the meter.
|
|
15
|
+
*
|
|
16
|
+
* Both are DERIVED from the response the API just returned — the id in a
|
|
17
|
+
* suggested command is the id the API echoed, a hint restates a field it
|
|
18
|
+
* actually sent — so neither can drift from what the platform did. Same rule as
|
|
19
|
+
* `creditCostHint` in output.ts. The API's own advisory `note` (`sleep` explains
|
|
20
|
+
* what wakes the sandbox) is lifted into `hints` rather than left buried inside
|
|
21
|
+
* `result`.
|
|
22
|
+
*/
|
|
23
|
+
/** The sandbox id for a suggested command: the one the API echoed (top level or
|
|
24
|
+
* nested under `sandbox`), else what the caller typed, so a next step is
|
|
25
|
+
* copy-pasteable rather than a `<id>` placeholder. */
|
|
26
|
+
function sid(data, typed) {
|
|
27
|
+
const d = (data ?? {});
|
|
28
|
+
const id = d.sandbox_id ?? d.sandbox?.sandbox_id;
|
|
29
|
+
return typeof id === "string" && id ? id : (typed ?? "<id>");
|
|
30
|
+
}
|
|
31
|
+
/** Hints echoed off a sandbox the API returned — restated, never asserted. */
|
|
32
|
+
function sandboxHints(data) {
|
|
33
|
+
const d = (data ?? {});
|
|
34
|
+
const sb = (d.sandbox && typeof d.sandbox === "object" ? d.sandbox : d);
|
|
35
|
+
const out = [];
|
|
36
|
+
if (typeof sb.status === "string")
|
|
37
|
+
out.push(`Status: ${sb.status}`);
|
|
38
|
+
if (typeof sb.size === "string")
|
|
39
|
+
out.push(`Size: ${sb.size}`);
|
|
40
|
+
if (typeof sb.metered_credits === "number" && Number.isFinite(sb.metered_credits)) {
|
|
41
|
+
const credits = Math.round(sb.metered_credits * 10000) / 10000;
|
|
42
|
+
out.push(`Metered so far: ${credits} ${credits === 1 ? "credit" : "credits"}`);
|
|
43
|
+
}
|
|
44
|
+
// Why a sandbox is in its current status ("Auto-destroyed: credits exhausted…")
|
|
45
|
+
// — the only way a tenant learns why one stopped, so it belongs in `hints`.
|
|
46
|
+
if (typeof sb.error === "string" && sb.error)
|
|
47
|
+
out.push(sb.error);
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
/** The API's own advisory `note`/`hint`, lifted out of `result` where it sent one. */
|
|
51
|
+
function apiNote(data) {
|
|
52
|
+
const d = (data ?? {});
|
|
53
|
+
const out = [];
|
|
54
|
+
if (typeof d.note === "string" && d.note)
|
|
55
|
+
out.push(d.note);
|
|
56
|
+
if (typeof d.hint === "string" && d.hint)
|
|
57
|
+
out.push(d.hint);
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
5
60
|
export const sandboxCmd = new Command("sandbox")
|
|
6
61
|
.description("Sandbox — disposable micro-VM code sandboxes (usage billed from credits)")
|
|
7
62
|
.addHelpText("after", `
|
|
@@ -35,7 +90,6 @@ Billing:
|
|
|
35
90
|
Sizes (ceilings, not reservations — you pay only for what you use):
|
|
36
91
|
s 1 vCPU · up to 16 GiB memory · up to 32 GiB disk
|
|
37
92
|
m 4 vCPU · up to 32 GiB memory · up to 128 GiB disk (default)
|
|
38
|
-
l 8 vCPU · up to 64 GiB memory · up to 256 GiB disk
|
|
39
93
|
|
|
40
94
|
Examples:
|
|
41
95
|
$ naive sandbox create --name scratch --size s
|
|
@@ -52,7 +106,22 @@ sandboxCmd
|
|
|
52
106
|
.action(async () => {
|
|
53
107
|
const resp = await apiRequest("GET", "/v1/sandboxes/status");
|
|
54
108
|
handleApiError("sandbox.status", resp);
|
|
55
|
-
|
|
109
|
+
const s = (resp.data ?? {});
|
|
110
|
+
agentOutput({
|
|
111
|
+
action: "sandbox.status",
|
|
112
|
+
result: resp.data,
|
|
113
|
+
next_steps: [
|
|
114
|
+
{ command: "naive sandbox list", description: "List the sandboxes you have" },
|
|
115
|
+
{ command: "naive sandbox create --size s", description: "Create one", when: "configured and reachable" },
|
|
116
|
+
],
|
|
117
|
+
hints: [
|
|
118
|
+
`Provider configured: ${s.configured === true}; reachable: ${s.reachable === true}.`,
|
|
119
|
+
`${s.sandboxes ?? 0} sandbox(es), ${s.running_sandboxes ?? 0} running.`,
|
|
120
|
+
...(s.error ? [s.error] : []),
|
|
121
|
+
"`rates` in the result are the per-hour usage rates the meter actually charges.",
|
|
122
|
+
],
|
|
123
|
+
related_commands: ["naive sandbox list", "naive sandbox create"],
|
|
124
|
+
});
|
|
56
125
|
});
|
|
57
126
|
sandboxCmd
|
|
58
127
|
.command("list", { isDefault: true })
|
|
@@ -60,7 +129,25 @@ sandboxCmd
|
|
|
60
129
|
.action(async () => {
|
|
61
130
|
const resp = await apiRequest("GET", "/v1/sandboxes");
|
|
62
131
|
handleApiError("sandbox.list", resp);
|
|
63
|
-
|
|
132
|
+
const boxes = (resp.data?.sandboxes ?? []);
|
|
133
|
+
const first = boxes[0]?.sandbox_id ?? "<id>";
|
|
134
|
+
const running = boxes.filter((b) => b.status === "running").length;
|
|
135
|
+
agentOutput({
|
|
136
|
+
action: "sandbox.list",
|
|
137
|
+
result: resp.data,
|
|
138
|
+
next_steps: [
|
|
139
|
+
{ command: `naive sandbox show ${first}`, description: "Inspect one — status, size, metered credits" },
|
|
140
|
+
{ command: `naive sandbox exec ${first} "<command>"`, description: "Run a shell command in it" },
|
|
141
|
+
{ command: `naive sandbox park ${first}`, description: "Checkpoint and stop its meter", when: "it is running and idle" },
|
|
142
|
+
],
|
|
143
|
+
hints: [
|
|
144
|
+
`${boxes.length} sandbox${boxes.length === 1 ? "" : "es"}, ${running} running.`,
|
|
145
|
+
...(running > 0
|
|
146
|
+
? ["Running sandboxes bill observed usage — `park` or `sleep` stops the meter without losing state."]
|
|
147
|
+
: ["Nothing is metering right now."]),
|
|
148
|
+
],
|
|
149
|
+
related_commands: ["naive sandbox show", "naive sandbox park", "naive sandbox destroy"],
|
|
150
|
+
});
|
|
64
151
|
});
|
|
65
152
|
sandboxCmd
|
|
66
153
|
.command("create")
|
|
@@ -77,13 +164,20 @@ sandboxCmd
|
|
|
77
164
|
disk_gib: opts.disk ? Number(opts.disk) : undefined,
|
|
78
165
|
});
|
|
79
166
|
handleApiError("sandbox.create", resp);
|
|
167
|
+
const id = sid(resp.data);
|
|
80
168
|
agentOutput({
|
|
81
169
|
action: "sandbox.create",
|
|
82
170
|
result: resp.data,
|
|
83
171
|
next_steps: [
|
|
84
|
-
{ command:
|
|
85
|
-
{ command:
|
|
172
|
+
{ command: `naive sandbox exec ${id} "<command>"`, description: "Run a shell command in the sandbox" },
|
|
173
|
+
{ command: `naive sandbox write ${id} <path> --file <local>`, description: "Upload a file into it" },
|
|
174
|
+
{ command: `naive sandbox park ${id}`, description: "Checkpoint and stop the usage meter", when: "done for now" },
|
|
175
|
+
],
|
|
176
|
+
hints: [
|
|
177
|
+
...sandboxHints(resp.data),
|
|
178
|
+
"The meter runs while the sandbox is running — `park` or `sleep` is free, `destroy` is final.",
|
|
86
179
|
],
|
|
180
|
+
related_commands: ["naive sandbox exec", "naive sandbox park", "naive sandbox destroy"],
|
|
87
181
|
});
|
|
88
182
|
});
|
|
89
183
|
sandboxCmd
|
|
@@ -92,7 +186,21 @@ sandboxCmd
|
|
|
92
186
|
.action(async (id) => {
|
|
93
187
|
const resp = await apiRequest("GET", `/v1/sandboxes/${id}`);
|
|
94
188
|
handleApiError("sandbox.show", resp);
|
|
95
|
-
|
|
189
|
+
const sb = sid(resp.data, id);
|
|
190
|
+
agentOutput({
|
|
191
|
+
action: "sandbox.show",
|
|
192
|
+
result: resp.data,
|
|
193
|
+
next_steps: [
|
|
194
|
+
{ command: `naive sandbox exec ${sb} "<command>"`, description: "Run a shell command in it" },
|
|
195
|
+
{ command: `naive sandbox ports ${sb}`, description: "See which guest ports are exposed" },
|
|
196
|
+
{ command: `naive sandbox park ${sb}`, description: "Checkpoint and stop the meter", when: "it is running and idle" },
|
|
197
|
+
],
|
|
198
|
+
hints: [
|
|
199
|
+
...sandboxHints(resp.data),
|
|
200
|
+
"`metered_credits` is what this sandbox has cost so far, not a forecast.",
|
|
201
|
+
],
|
|
202
|
+
related_commands: ["naive sandbox exec", "naive sandbox park", "naive sandbox destroy"],
|
|
203
|
+
});
|
|
96
204
|
});
|
|
97
205
|
sandboxCmd
|
|
98
206
|
.command("exec <id> <command...>")
|
|
@@ -106,7 +214,24 @@ sandboxCmd
|
|
|
106
214
|
timeout_ms: opts.timeout ? Number(opts.timeout) : undefined,
|
|
107
215
|
});
|
|
108
216
|
handleApiError("sandbox.exec", resp);
|
|
109
|
-
|
|
217
|
+
const sb = sid(resp.data, id);
|
|
218
|
+
const exit = resp.data?.exit_code;
|
|
219
|
+
agentOutput({
|
|
220
|
+
action: "sandbox.exec",
|
|
221
|
+
result: resp.data,
|
|
222
|
+
next_steps: [
|
|
223
|
+
{ command: `naive sandbox exec ${sb} "<command>"`, description: "Run the next command" },
|
|
224
|
+
{ command: `naive sandbox ls ${sb} <path>`, description: "Inspect what the command wrote" },
|
|
225
|
+
{ command: `naive sandbox park ${sb}`, description: "Checkpoint and stop the meter", when: "done for now" },
|
|
226
|
+
],
|
|
227
|
+
hints: [
|
|
228
|
+
typeof exit === "number"
|
|
229
|
+
? `Exit code: ${exit}${exit === 0 ? "" : " — stderr in the result has the reason"}.`
|
|
230
|
+
: "The command ran; `stdout`/`stderr` are in the result.",
|
|
231
|
+
"Output is truncated past 256 KiB — write large output to a file and `sandbox read` it.",
|
|
232
|
+
],
|
|
233
|
+
related_commands: ["naive sandbox read", "naive sandbox ls", "naive sandbox park"],
|
|
234
|
+
});
|
|
110
235
|
});
|
|
111
236
|
sandboxCmd
|
|
112
237
|
.command("write <id> <path>")
|
|
@@ -117,7 +242,21 @@ sandboxCmd
|
|
|
117
242
|
const content = opts.file ? readFileSync(opts.file, "utf8") : (opts.content ?? "");
|
|
118
243
|
const resp = await apiRequest("POST", `/v1/sandboxes/${id}/files`, { path, content });
|
|
119
244
|
handleApiError("sandbox.write", resp);
|
|
120
|
-
|
|
245
|
+
const sb = sid(resp.data, id);
|
|
246
|
+
const size = resp.data?.size;
|
|
247
|
+
agentOutput({
|
|
248
|
+
action: "sandbox.write",
|
|
249
|
+
result: resp.data,
|
|
250
|
+
next_steps: [
|
|
251
|
+
{ command: `naive sandbox read ${sb} ${path}`, description: "Read it back" },
|
|
252
|
+
{ command: `naive sandbox exec ${sb} "<command>"`, description: "Run it" },
|
|
253
|
+
],
|
|
254
|
+
hints: [
|
|
255
|
+
typeof size === "number" ? `Wrote ${size} byte${size === 1 ? "" : "s"} to ${path}.` : `Wrote ${path}.`,
|
|
256
|
+
"This surface caps a file at 4 MiB — use `sandbox exec` to fetch anything larger inside the VM.",
|
|
257
|
+
],
|
|
258
|
+
related_commands: ["naive sandbox read", "naive sandbox ls", "naive sandbox exec"],
|
|
259
|
+
});
|
|
121
260
|
});
|
|
122
261
|
sandboxCmd
|
|
123
262
|
.command("read <id> <path>")
|
|
@@ -125,7 +264,21 @@ sandboxCmd
|
|
|
125
264
|
.action(async (id, path) => {
|
|
126
265
|
const resp = await apiRequest("GET", `/v1/sandboxes/${id}/files?path=${encodeURIComponent(path)}`);
|
|
127
266
|
handleApiError("sandbox.read", resp);
|
|
128
|
-
|
|
267
|
+
const sb = sid(resp.data, id);
|
|
268
|
+
const size = resp.data?.size;
|
|
269
|
+
agentOutput({
|
|
270
|
+
action: "sandbox.read",
|
|
271
|
+
result: resp.data,
|
|
272
|
+
next_steps: [
|
|
273
|
+
{ command: `naive sandbox write ${sb} ${path} --content "<text>"`, description: "Overwrite it" },
|
|
274
|
+
{ command: `naive sandbox ls ${sb} <dir>`, description: "List the directory it lives in" },
|
|
275
|
+
],
|
|
276
|
+
hints: [
|
|
277
|
+
typeof size === "number" ? `${size} byte${size === 1 ? "" : "s"} from ${path}.` : `Read ${path}.`,
|
|
278
|
+
"Content comes back inside the envelope — binary files should be base64-encoded in the sandbox first.",
|
|
279
|
+
],
|
|
280
|
+
related_commands: ["naive sandbox write", "naive sandbox ls"],
|
|
281
|
+
});
|
|
129
282
|
});
|
|
130
283
|
sandboxCmd
|
|
131
284
|
.command("ls <id> <path>")
|
|
@@ -133,7 +286,21 @@ sandboxCmd
|
|
|
133
286
|
.action(async (id, path) => {
|
|
134
287
|
const resp = await apiRequest("GET", `/v1/sandboxes/${id}/files/ls?path=${encodeURIComponent(path)}`);
|
|
135
288
|
handleApiError("sandbox.ls", resp);
|
|
136
|
-
|
|
289
|
+
const sb = sid(resp.data, id);
|
|
290
|
+
const entries = (resp.data?.entries ?? []);
|
|
291
|
+
agentOutput({
|
|
292
|
+
action: "sandbox.ls",
|
|
293
|
+
result: resp.data,
|
|
294
|
+
next_steps: [
|
|
295
|
+
{ command: `naive sandbox read ${sb} ${path}/<name>`, description: "Read one of the entries" },
|
|
296
|
+
{ command: `naive sandbox rm ${sb} ${path}/<name>`, description: "Remove one", when: "you are cleaning up" },
|
|
297
|
+
],
|
|
298
|
+
hints: [
|
|
299
|
+
`${entries.length} entr${entries.length === 1 ? "y" : "ies"} in ${path}.`,
|
|
300
|
+
"This lists immediate entries only — it does not recurse.",
|
|
301
|
+
],
|
|
302
|
+
related_commands: ["naive sandbox read", "naive sandbox mkdir", "naive sandbox rm"],
|
|
303
|
+
});
|
|
137
304
|
});
|
|
138
305
|
sandboxCmd
|
|
139
306
|
.command("mkdir <id> <path>")
|
|
@@ -141,7 +308,20 @@ sandboxCmd
|
|
|
141
308
|
.action(async (id, path) => {
|
|
142
309
|
const resp = await apiRequest("POST", `/v1/sandboxes/${id}/files/mkdir`, { path });
|
|
143
310
|
handleApiError("sandbox.mkdir", resp);
|
|
144
|
-
|
|
311
|
+
const sb = sid(resp.data, id);
|
|
312
|
+
agentOutput({
|
|
313
|
+
action: "sandbox.mkdir",
|
|
314
|
+
result: resp.data,
|
|
315
|
+
next_steps: [
|
|
316
|
+
{ command: `naive sandbox write ${sb} ${path}/<name> --file <local>`, description: "Put a file in it" },
|
|
317
|
+
{ command: `naive sandbox ls ${sb} ${path}`, description: "Confirm what is there" },
|
|
318
|
+
],
|
|
319
|
+
hints: [
|
|
320
|
+
`Created ${path} (and any missing parents).`,
|
|
321
|
+
"It behaves like `mkdir -p` — creating an existing directory is not an error.",
|
|
322
|
+
],
|
|
323
|
+
related_commands: ["naive sandbox write", "naive sandbox ls"],
|
|
324
|
+
});
|
|
145
325
|
});
|
|
146
326
|
sandboxCmd
|
|
147
327
|
.command("rm <id> <path>")
|
|
@@ -149,7 +329,20 @@ sandboxCmd
|
|
|
149
329
|
.action(async (id, path) => {
|
|
150
330
|
const resp = await apiRequest("DELETE", `/v1/sandboxes/${id}/files?path=${encodeURIComponent(path)}`);
|
|
151
331
|
handleApiError("sandbox.rm", resp);
|
|
152
|
-
|
|
332
|
+
const sb = sid(resp.data, id);
|
|
333
|
+
agentOutput({
|
|
334
|
+
action: "sandbox.rm",
|
|
335
|
+
result: resp.data,
|
|
336
|
+
next_steps: [
|
|
337
|
+
{ command: `naive sandbox ls ${sb} <dir>`, description: "Confirm what is left" },
|
|
338
|
+
{ command: `naive sandbox destroy ${sb}`, description: "Throw the whole sandbox away", when: "you are done with it" },
|
|
339
|
+
],
|
|
340
|
+
hints: [
|
|
341
|
+
`Removed ${path}.`,
|
|
342
|
+
"This is recursive, like `rm -rf` — a checkpoint taken before it is the only way back.",
|
|
343
|
+
],
|
|
344
|
+
related_commands: ["naive sandbox ls", "naive sandbox checkpoint"],
|
|
345
|
+
});
|
|
153
346
|
});
|
|
154
347
|
sandboxCmd
|
|
155
348
|
.command("expose <id> <port>")
|
|
@@ -161,7 +354,21 @@ sandboxCmd
|
|
|
161
354
|
protocol: opts.protocol,
|
|
162
355
|
});
|
|
163
356
|
handleApiError("sandbox.expose", resp);
|
|
164
|
-
|
|
357
|
+
const sb = sid(resp.data, id);
|
|
358
|
+
const url = resp.data?.url;
|
|
359
|
+
agentOutput({
|
|
360
|
+
action: "sandbox.expose",
|
|
361
|
+
result: resp.data,
|
|
362
|
+
next_steps: [
|
|
363
|
+
{ command: `naive sandbox ports ${sb}`, description: "See every port this sandbox exposes" },
|
|
364
|
+
{ command: `naive sandbox unexpose ${sb} ${port}`, description: "Take it down again", when: "you are done" },
|
|
365
|
+
],
|
|
366
|
+
hints: [
|
|
367
|
+
typeof url === "string" && url ? `Reachable at ${url}` : `Port ${port} is exposed; the URL is in the result.`,
|
|
368
|
+
"A public port is reachable by anyone who has the URL — unexpose it when you are finished.",
|
|
369
|
+
],
|
|
370
|
+
related_commands: ["naive sandbox ports", "naive sandbox unexpose"],
|
|
371
|
+
});
|
|
165
372
|
});
|
|
166
373
|
sandboxCmd
|
|
167
374
|
.command("unexpose <id> <port>")
|
|
@@ -169,7 +376,20 @@ sandboxCmd
|
|
|
169
376
|
.action(async (id, port) => {
|
|
170
377
|
const resp = await apiRequest("DELETE", `/v1/sandboxes/${id}/expose/${Number(port)}`);
|
|
171
378
|
handleApiError("sandbox.unexpose", resp);
|
|
172
|
-
|
|
379
|
+
const sb = sid(resp.data, id);
|
|
380
|
+
agentOutput({
|
|
381
|
+
action: "sandbox.unexpose",
|
|
382
|
+
result: resp.data,
|
|
383
|
+
next_steps: [
|
|
384
|
+
{ command: `naive sandbox ports ${sb}`, description: "Confirm what is still exposed" },
|
|
385
|
+
{ command: `naive sandbox expose ${sb} ${port}`, description: "Expose it again", when: "you need it back" },
|
|
386
|
+
],
|
|
387
|
+
hints: [
|
|
388
|
+
`Port ${port} is no longer exposed.`,
|
|
389
|
+
"The process inside the sandbox keeps running — only the public listener is gone.",
|
|
390
|
+
],
|
|
391
|
+
related_commands: ["naive sandbox ports", "naive sandbox expose"],
|
|
392
|
+
});
|
|
173
393
|
});
|
|
174
394
|
sandboxCmd
|
|
175
395
|
.command("ports <id>")
|
|
@@ -177,7 +397,24 @@ sandboxCmd
|
|
|
177
397
|
.action(async (id) => {
|
|
178
398
|
const resp = await apiRequest("GET", `/v1/sandboxes/${id}/expose`);
|
|
179
399
|
handleApiError("sandbox.ports", resp);
|
|
180
|
-
|
|
400
|
+
const sb = sid(resp.data, id);
|
|
401
|
+
const ports = (resp.data?.ports ?? []);
|
|
402
|
+
agentOutput({
|
|
403
|
+
action: "sandbox.ports",
|
|
404
|
+
result: resp.data,
|
|
405
|
+
next_steps: [
|
|
406
|
+
{ command: `naive sandbox expose ${sb} <port>`, description: "Expose another guest port" },
|
|
407
|
+
...(ports.length > 0
|
|
408
|
+
? [{ command: `naive sandbox unexpose ${sb} ${ports[0].port ?? "<port>"}`, description: "Take one down" }]
|
|
409
|
+
: []),
|
|
410
|
+
{ command: `naive sandbox show ${sb}`, description: "Check the sandbox's status" },
|
|
411
|
+
],
|
|
412
|
+
hints: [
|
|
413
|
+
`${ports.length} exposed port${ports.length === 1 ? "" : "s"}.`,
|
|
414
|
+
"Listing ports does not wake a sleeping sandbox.",
|
|
415
|
+
],
|
|
416
|
+
related_commands: ["naive sandbox expose", "naive sandbox unexpose"],
|
|
417
|
+
});
|
|
181
418
|
});
|
|
182
419
|
sandboxCmd
|
|
183
420
|
.command("checkpoint <id>")
|
|
@@ -186,10 +423,21 @@ sandboxCmd
|
|
|
186
423
|
.action(async (id, opts) => {
|
|
187
424
|
const resp = await apiRequest("POST", `/v1/sandboxes/${id}/checkpoints`, { name: opts.name });
|
|
188
425
|
handleApiError("sandbox.checkpoint", resp);
|
|
426
|
+
const sb = sid(resp.data, id);
|
|
427
|
+
const cp = resp.data ?? {};
|
|
189
428
|
agentOutput({
|
|
190
429
|
action: "sandbox.checkpoint",
|
|
191
430
|
result: resp.data,
|
|
192
|
-
next_steps: [
|
|
431
|
+
next_steps: [
|
|
432
|
+
{ command: `naive sandbox fork ${sb}`, description: "Start a new sandbox from the checkpoint" },
|
|
433
|
+
{ command: `naive sandbox park ${sb}`, description: "Checkpoint and stop the meter", when: "done for now" },
|
|
434
|
+
],
|
|
435
|
+
hints: [
|
|
436
|
+
typeof cp.checkpoint_id === "string" ? `Checkpoint ${cp.checkpoint_id}.` : "Checkpoint taken.",
|
|
437
|
+
...(typeof cp.expires_at === "string" ? [`Expires ${cp.expires_at}.`] : []),
|
|
438
|
+
"The sandbox keeps running — checkpointing does not stop the meter, `park` does.",
|
|
439
|
+
],
|
|
440
|
+
related_commands: ["naive sandbox fork", "naive sandbox park"],
|
|
193
441
|
});
|
|
194
442
|
});
|
|
195
443
|
sandboxCmd
|
|
@@ -203,7 +451,21 @@ sandboxCmd
|
|
|
203
451
|
checkpoint_id: opts.checkpoint,
|
|
204
452
|
});
|
|
205
453
|
handleApiError("sandbox.fork", resp);
|
|
206
|
-
|
|
454
|
+
const forked = sid(resp.data);
|
|
455
|
+
agentOutput({
|
|
456
|
+
action: "sandbox.fork",
|
|
457
|
+
result: resp.data,
|
|
458
|
+
next_steps: [
|
|
459
|
+
{ command: `naive sandbox exec ${forked} "<command>"`, description: "Run a command in the fork" },
|
|
460
|
+
{ command: `naive sandbox park ${forked}`, description: "Checkpoint and stop the fork's meter", when: "done for now" },
|
|
461
|
+
{ command: "naive sandbox list", description: "See the original and the fork side by side" },
|
|
462
|
+
],
|
|
463
|
+
hints: [
|
|
464
|
+
...sandboxHints(resp.data),
|
|
465
|
+
`The fork is a separate sandbox with its own meter — ${id} keeps running independently.`,
|
|
466
|
+
],
|
|
467
|
+
related_commands: ["naive sandbox list", "naive sandbox exec", "naive sandbox park"],
|
|
468
|
+
});
|
|
207
469
|
});
|
|
208
470
|
sandboxCmd
|
|
209
471
|
.command("park <id>")
|
|
@@ -211,10 +473,20 @@ sandboxCmd
|
|
|
211
473
|
.action(async (id) => {
|
|
212
474
|
const resp = await apiRequest("POST", `/v1/sandboxes/${id}/park`, {});
|
|
213
475
|
handleApiError("sandbox.park", resp);
|
|
476
|
+
const sb = sid(resp.data, id);
|
|
214
477
|
agentOutput({
|
|
215
478
|
action: "sandbox.park",
|
|
216
479
|
result: resp.data,
|
|
217
|
-
next_steps: [
|
|
480
|
+
next_steps: [
|
|
481
|
+
{ command: `naive sandbox resume ${sb}`, description: "Restore the checkpoint and restart the meter" },
|
|
482
|
+
{ command: `naive sandbox destroy ${sb}`, description: "Throw it away for good", when: "you will not come back to it" },
|
|
483
|
+
],
|
|
484
|
+
hints: [
|
|
485
|
+
...sandboxHints(resp.data),
|
|
486
|
+
...apiNote(resp.data),
|
|
487
|
+
"Parked sandboxes are free — the meter is stopped, the checkpointed state is kept.",
|
|
488
|
+
],
|
|
489
|
+
related_commands: ["naive sandbox resume", "naive sandbox destroy"],
|
|
218
490
|
});
|
|
219
491
|
});
|
|
220
492
|
sandboxCmd
|
|
@@ -224,7 +496,23 @@ sandboxCmd
|
|
|
224
496
|
.action(async (id, opts) => {
|
|
225
497
|
const resp = await apiRequest("POST", `/v1/sandboxes/${id}/sleep`, opts.wakeAt ? { wake_at: opts.wakeAt } : {});
|
|
226
498
|
handleApiError("sandbox.sleep", resp);
|
|
227
|
-
|
|
499
|
+
const sb = sid(resp.data, id);
|
|
500
|
+
const wakeAt = resp.data?.wake_at;
|
|
501
|
+
agentOutput({
|
|
502
|
+
action: "sandbox.sleep",
|
|
503
|
+
result: resp.data,
|
|
504
|
+
next_steps: [
|
|
505
|
+
{ command: `naive sandbox resume ${sb}`, description: "Wake it now and restart the meter" },
|
|
506
|
+
{ command: `naive sandbox ports ${sb}`, description: "Check its exposed ports without waking it" },
|
|
507
|
+
],
|
|
508
|
+
hints: [
|
|
509
|
+
...sandboxHints(resp.data),
|
|
510
|
+
// The API explains what wakes it; that advisory is the point of the call.
|
|
511
|
+
...apiNote(resp.data),
|
|
512
|
+
...(typeof wakeAt === "string" ? [`Scheduled wake: ${wakeAt}.`] : []),
|
|
513
|
+
],
|
|
514
|
+
related_commands: ["naive sandbox resume", "naive sandbox park"],
|
|
515
|
+
});
|
|
228
516
|
});
|
|
229
517
|
sandboxCmd
|
|
230
518
|
.command("resume <id>")
|
|
@@ -232,7 +520,20 @@ sandboxCmd
|
|
|
232
520
|
.action(async (id) => {
|
|
233
521
|
const resp = await apiRequest("POST", `/v1/sandboxes/${id}/resume`, {});
|
|
234
522
|
handleApiError("sandbox.resume", resp);
|
|
235
|
-
|
|
523
|
+
const sb = sid(resp.data, id);
|
|
524
|
+
agentOutput({
|
|
525
|
+
action: "sandbox.resume",
|
|
526
|
+
result: resp.data,
|
|
527
|
+
next_steps: [
|
|
528
|
+
{ command: `naive sandbox exec ${sb} "<command>"`, description: "Carry on where you left off" },
|
|
529
|
+
{ command: `naive sandbox park ${sb}`, description: "Stop the meter again", when: "done for now" },
|
|
530
|
+
],
|
|
531
|
+
hints: [
|
|
532
|
+
...sandboxHints(resp.data),
|
|
533
|
+
"The meter restarts from the resume time — park or sleep it again when you stop working.",
|
|
534
|
+
],
|
|
535
|
+
related_commands: ["naive sandbox exec", "naive sandbox park"],
|
|
536
|
+
});
|
|
236
537
|
});
|
|
237
538
|
sandboxCmd
|
|
238
539
|
.command("destroy <id>")
|
|
@@ -240,6 +541,18 @@ sandboxCmd
|
|
|
240
541
|
.action(async (id) => {
|
|
241
542
|
const resp = await apiRequest("DELETE", `/v1/sandboxes/${id}`);
|
|
242
543
|
handleApiError("sandbox.destroy", resp);
|
|
243
|
-
agentOutput({
|
|
544
|
+
agentOutput({
|
|
545
|
+
action: "sandbox.destroy",
|
|
546
|
+
result: resp.data,
|
|
547
|
+
next_steps: [
|
|
548
|
+
{ command: "naive sandbox list", description: "Confirm what is left" },
|
|
549
|
+
{ command: "naive sandbox create --size s", description: "Start a fresh one", when: "you need another" },
|
|
550
|
+
],
|
|
551
|
+
hints: [
|
|
552
|
+
...sandboxHints(resp.data),
|
|
553
|
+
"Destroy is final and stops billing — un-checkpointed state is gone.",
|
|
554
|
+
],
|
|
555
|
+
related_commands: ["naive sandbox list", "naive sandbox create"],
|
|
556
|
+
});
|
|
244
557
|
});
|
|
245
558
|
//# sourceMappingURL=sandbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/commands/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,iEAAiE,CAAC;KAC9E,QAAQ,CAAC,SAAS,EAAE,6CAA6C,CAAC;KAClE,MAAM,CAAC,aAAa,EAAE,0CAA0C,EAAE,GAAG,CAAC;KACtE,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;UAiBd,kBAAkB,CAAC,SAAS;;;;;UAK5B,kBAAkB,CAAC,OAAO;;;;;;UAM1B,kBAAkB,CAAC,aAAa,qBAAqB,kBAAkB,CAAC,gBAAgB,wBAAwB,kBAAkB,CAAC,kBAAkB;CAC9J,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,IAAI,EAAE,EAAE;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,8 @@ export const socialDataCmd = new Command("social-data")
|
|
|
38
38
|
Subcommands:
|
|
39
39
|
naive social-data discover Search public posts by keyword
|
|
40
40
|
naive social-data collect Fetch known posts by id, optionally with comments
|
|
41
|
-
naive social-data batch Async read (up to 1,000 posts) — the only route to
|
|
41
|
+
naive social-data batch Async read (up to 1,000 posts) — the only route to
|
|
42
|
+
reddit, instagram, tiktok and youtube
|
|
42
43
|
naive social-data task <id> Check a batch task
|
|
43
44
|
naive social-data terms The acceptable-use terms this primitive binds you to
|
|
44
45
|
naive social-data erase Honour a deletion request from a post author
|
|
@@ -47,7 +48,7 @@ Platforms: bluesky, hackernews, x — plus reddit, instagram, tiktok and youtube
|
|
|
47
48
|
on \`batch\` only (their collection runs for minutes).
|
|
48
49
|
|
|
49
50
|
bluesky and hackernews are the platforms' own public APIs: no credential, and a
|
|
50
|
-
flat meter rather than
|
|
51
|
+
flat meter rather than 3x a vendor's bill — prefer them where they fit.
|
|
51
52
|
|
|
52
53
|
Capabilities differ, and an unsupported combination is refused rather than served
|
|
53
54
|
thinner at the same price:
|
|
@@ -133,7 +134,7 @@ socialDataCmd
|
|
|
133
134
|
});
|
|
134
135
|
socialDataCmd
|
|
135
136
|
.command("batch")
|
|
136
|
-
.description("Async read — up to 1,000 posts, and the only route to reddit")
|
|
137
|
+
.description("Async read — up to 1,000 posts, and the only route to reddit, instagram, tiktok and youtube")
|
|
137
138
|
.requiredOption("--platform <platform>", ALL_PLATFORMS.join(", "))
|
|
138
139
|
.option("--mode <mode>", "discover (default) searches a query; collect takes --post-ids")
|
|
139
140
|
.option("--query <query>", "Keyword, phrase, #hashtag or @profile (mode discover)")
|