@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.
Files changed (66) hide show
  1. package/README.md +14 -0
  2. package/dist/commands/aeo.js +2 -2
  3. package/dist/commands/aeo.js.map +1 -1
  4. package/dist/commands/approvals.js +142 -9
  5. package/dist/commands/approvals.js.map +1 -1
  6. package/dist/commands/audio.js +1 -1
  7. package/dist/commands/audio.js.map +1 -1
  8. package/dist/commands/auth.js +27 -2
  9. package/dist/commands/auth.js.map +1 -1
  10. package/dist/commands/brain.js +17 -4
  11. package/dist/commands/brain.js.map +1 -1
  12. package/dist/commands/browser.js +1 -1
  13. package/dist/commands/clone.js +2 -2
  14. package/dist/commands/clone.js.map +1 -1
  15. package/dist/commands/compute.js +285 -15
  16. package/dist/commands/compute.js.map +1 -1
  17. package/dist/commands/connections.js +13 -1
  18. package/dist/commands/connections.js.map +1 -1
  19. package/dist/commands/domains.js +62 -18
  20. package/dist/commands/domains.js.map +1 -1
  21. package/dist/commands/formation.js +2 -2
  22. package/dist/commands/formation.js.map +1 -1
  23. package/dist/commands/images.js +2 -2
  24. package/dist/commands/images.js.map +1 -1
  25. package/dist/commands/init.d.ts +1 -1
  26. package/dist/commands/init.js +7 -2
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/llm.js +1 -1
  29. package/dist/commands/llm.js.map +1 -1
  30. package/dist/commands/logout.d.ts +7 -0
  31. package/dist/commands/logout.js +55 -0
  32. package/dist/commands/logout.js.map +1 -0
  33. package/dist/commands/people.js +4 -0
  34. package/dist/commands/people.js.map +1 -1
  35. package/dist/commands/phone.js +37 -5
  36. package/dist/commands/phone.js.map +1 -1
  37. package/dist/commands/sandbox.js +334 -21
  38. package/dist/commands/sandbox.js.map +1 -1
  39. package/dist/commands/search.js +1 -1
  40. package/dist/commands/search.js.map +1 -1
  41. package/dist/commands/social-data.js +4 -3
  42. package/dist/commands/social-data.js.map +1 -1
  43. package/dist/commands/social.js +1 -1
  44. package/dist/commands/social.js.map +1 -1
  45. package/dist/commands/tasks.js +9 -0
  46. package/dist/commands/tasks.js.map +1 -1
  47. package/dist/commands/up.js +52 -2
  48. package/dist/commands/up.js.map +1 -1
  49. package/dist/commands/vault.js +3 -0
  50. package/dist/commands/vault.js.map +1 -1
  51. package/dist/commands/verification.js +1 -1
  52. package/dist/commands/verification.js.map +1 -1
  53. package/dist/commands/video.js +3 -3
  54. package/dist/commands/video.js.map +1 -1
  55. package/dist/config.d.ts +7 -0
  56. package/dist/config.js +14 -0
  57. package/dist/config.js.map +1 -1
  58. package/dist/index.js +22 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/lib/unknown-command.d.ts +18 -4
  61. package/dist/lib/unknown-command.js +45 -6
  62. package/dist/lib/unknown-command.js.map +1 -1
  63. package/dist/output.d.ts +28 -0
  64. package/dist/output.js +29 -1
  65. package/dist/output.js.map +1 -1
  66. package/package.json +1 -1
@@ -2,6 +2,54 @@ import { Command } from "commander";
2
2
  import { spawnSync } from "node:child_process";
3
3
  import { apiRequest, handleApiError, handlePendingApproval } 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), /cli/overview documents the same shape, and the CLI's whole claim
11
+ * to be agent-native rests on it. Every `agentOutput` below therefore carries
12
+ * non-empty `next_steps` and `hints`; `compute` shipped with 15 of its 16
13
+ * success envelopes passing `next_steps: []`, so an agent that ran a workload
14
+ * got the data and no route onward.
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. This is the
19
+ * same rule `creditCostHint` follows in output.ts. Where the API returns its own
20
+ * advisory `hint` (`compute logs` on a service with no running task), it is
21
+ * lifted into `hints` instead of being left buried inside `result`.
22
+ */
23
+ /** The id for a suggested command: the one the API echoed, else what the caller
24
+ * typed, so a next step is copy-pasteable rather than a `<id>` placeholder. */
25
+ function wid(data, typed) {
26
+ const id = data?.id;
27
+ return typeof id === "string" && id ? id : (typed ?? "<id>");
28
+ }
29
+ /** Hints echoed off a workload the API returned — restated, never asserted. */
30
+ function workloadHints(data) {
31
+ const w = (data ?? {});
32
+ const out = [];
33
+ if (typeof w.type === "string")
34
+ out.push(`Type: ${w.type}`);
35
+ if (typeof w.status === "string")
36
+ out.push(`Status: ${w.status}`);
37
+ if (typeof w.desired_count === "number")
38
+ out.push(`Desired replicas: ${w.desired_count}`);
39
+ if (typeof w.public_url === "string" && w.public_url)
40
+ out.push(`Public URL: ${w.public_url}`);
41
+ return out;
42
+ }
43
+ /** The API's own advisory `hint`, lifted out of `result` where it sent one. */
44
+ function apiHint(data) {
45
+ const h = data?.hint;
46
+ return typeof h === "string" && h ? [h] : [];
47
+ }
48
+ /** `service` runs continuously (start/stop/scale); `job`/`schedule` are triggered (run). */
49
+ function isService(data, typed) {
50
+ const t = data?.type;
51
+ return (typeof t === "string" ? t : typed) === "service";
52
+ }
5
53
  export const computeCmd = new Command("compute")
6
54
  .description("Compute — run Docker containers, background workers & scheduled jobs on managed cloud compute (ECS/Fargate)")
7
55
  .addHelpText("after", `
@@ -43,7 +91,27 @@ computeCmd
43
91
  .action(async () => {
44
92
  const resp = await apiRequest("GET", "/v1/compute");
45
93
  handleApiError("compute.list", resp);
46
- agentOutput({ action: "compute.list", result: resp.data, next_steps: [] });
94
+ const workloads = (resp.data?.compute ?? []);
95
+ const first = workloads[0]?.id ?? "<id>";
96
+ agentOutput({
97
+ action: "compute.list",
98
+ result: resp.data,
99
+ next_steps: [
100
+ { command: `naive compute show ${first}`, description: "Inspect a workload — type, status, replicas, public URL" },
101
+ { command: `naive compute logs ${first}`, description: "Tail its logs", when: "it is not behaving as expected" },
102
+ {
103
+ command: "naive compute create --name <name> --type service --image <image>",
104
+ description: "Create another workload",
105
+ },
106
+ ],
107
+ hints: [
108
+ `${workloads.length} workload${workloads.length === 1 ? "" : "s"}.`,
109
+ ...(workloads.length === 0
110
+ ? ["Nothing to act on yet — create a service, job or schedule first."]
111
+ : [`Statuses: ${[...new Set(workloads.map((w) => w.status ?? "unknown"))].join(", ")}.`]),
112
+ ],
113
+ related_commands: ["naive compute create", "naive compute show", "naive compute logs"],
114
+ });
47
115
  });
48
116
  computeCmd
49
117
  .command("create")
@@ -86,7 +154,28 @@ computeCmd
86
154
  if (handlePendingApproval("compute.create", resp))
87
155
  return;
88
156
  handleApiError("compute.create", resp);
89
- agentOutput({ action: "compute.create", result: resp.data, next_steps: [] });
157
+ const id = wid(resp.data);
158
+ agentOutput({
159
+ action: "compute.create",
160
+ result: resp.data,
161
+ next_steps: [
162
+ { command: `naive compute show ${id}`, description: "Poll until status leaves provisioning" },
163
+ isService(resp.data, opts.type)
164
+ ? { command: `naive compute scale ${id} 1`, description: "Set the running replica count" }
165
+ : { command: `naive compute run ${id}`, description: "Trigger the first run now" },
166
+ { command: `naive compute logs ${id}`, description: "Tail its logs" },
167
+ {
168
+ command: `naive compute secret set ${id} <KEY> <VALUE>`,
169
+ description: "Set an encrypted env var",
170
+ when: "the container needs a credential",
171
+ },
172
+ ],
173
+ hints: [
174
+ ...workloadHints(resp.data),
175
+ "Provisioning is asynchronous — `compute show` reports when it is live.",
176
+ ],
177
+ related_commands: ["naive compute show", "naive compute logs", "naive compute delete"],
178
+ });
90
179
  });
91
180
  computeCmd
92
181
  .command("show <id>")
@@ -94,7 +183,26 @@ computeCmd
94
183
  .action(async (id) => {
95
184
  const resp = await apiRequest("GET", `/v1/compute/${id}`);
96
185
  handleApiError("compute.show", resp);
97
- agentOutput({ action: "compute.show", result: resp.data, next_steps: [] });
186
+ const wl = wid(resp.data, id);
187
+ agentOutput({
188
+ action: "compute.show",
189
+ result: resp.data,
190
+ next_steps: [
191
+ { command: `naive compute logs ${wl}`, description: "Tail its logs" },
192
+ ...(isService(resp.data)
193
+ ? [
194
+ { command: `naive compute scale ${wl} <count>`, description: "Change the running replica count" },
195
+ { command: `naive compute stop ${wl}`, description: "Scale to zero", when: "you are done with it" },
196
+ ]
197
+ : [
198
+ { command: `naive compute run ${wl}`, description: "Trigger a run now" },
199
+ { command: `naive compute runs ${wl}`, description: "List past runs" },
200
+ ]),
201
+ { command: `naive compute delete ${wl}`, description: "Delete the workload", when: "it is no longer needed" },
202
+ ],
203
+ hints: [...workloadHints(resp.data), "`compute logs` is the fastest way to see why a status is not what you expect."],
204
+ related_commands: ["naive compute list", "naive compute logs", "naive compute delete"],
205
+ });
98
206
  });
99
207
  computeCmd
100
208
  .command("delete <id>")
@@ -102,7 +210,23 @@ computeCmd
102
210
  .action(async (id) => {
103
211
  const resp = await apiRequest("DELETE", `/v1/compute/${id}`);
104
212
  handleApiError("compute.delete", resp);
105
- agentOutput({ action: "compute.delete", result: resp.data, next_steps: [] });
213
+ agentOutput({
214
+ action: "compute.delete",
215
+ result: resp.data,
216
+ next_steps: [
217
+ { command: "naive compute list", description: "Confirm what is left" },
218
+ {
219
+ command: "naive compute create --name <name> --type service --image <image>",
220
+ description: "Create a replacement",
221
+ when: "you deleted it to redeploy",
222
+ },
223
+ ],
224
+ hints: [
225
+ ...workloadHints(resp.data),
226
+ "Deleting stops the workload's in-flight runs; its secrets go with it.",
227
+ ],
228
+ related_commands: ["naive compute list", "naive compute create"],
229
+ });
106
230
  });
107
231
  for (const verb of ["start", "stop"]) {
108
232
  computeCmd
@@ -111,7 +235,24 @@ for (const verb of ["start", "stop"]) {
111
235
  .action(async (id) => {
112
236
  const resp = await apiRequest("POST", `/v1/compute/${id}/${verb}`);
113
237
  handleApiError(`compute.${verb}`, resp);
114
- agentOutput({ action: `compute.${verb}`, result: resp.data, next_steps: [] });
238
+ const wl = wid(resp.data, id);
239
+ agentOutput({
240
+ action: `compute.${verb}`,
241
+ result: resp.data,
242
+ next_steps: [
243
+ { command: `naive compute show ${wl}`, description: "Confirm the new status and replica count" },
244
+ verb === "start"
245
+ ? { command: `naive compute logs ${wl}`, description: "Watch it come up" }
246
+ : { command: `naive compute start ${wl}`, description: "Wake it again", when: "you need it back" },
247
+ ],
248
+ hints: [
249
+ ...workloadHints(resp.data),
250
+ verb === "start"
251
+ ? "Start sets the desired replica count to 1; use `scale` for any other count."
252
+ : "Stop sets the desired replica count to 0 — the workload is kept, not deleted.",
253
+ ],
254
+ related_commands: ["naive compute show", "naive compute scale", "naive compute logs"],
255
+ });
115
256
  });
116
257
  }
117
258
  computeCmd
@@ -120,7 +261,17 @@ computeCmd
120
261
  .action(async (id, count) => {
121
262
  const resp = await apiRequest("POST", `/v1/compute/${id}/scale`, { count: Number(count) });
122
263
  handleApiError("compute.scale", resp);
123
- agentOutput({ action: "compute.scale", result: resp.data, next_steps: [] });
264
+ const wl = wid(resp.data, id);
265
+ agentOutput({
266
+ action: "compute.scale",
267
+ result: resp.data,
268
+ next_steps: [
269
+ { command: `naive compute show ${wl}`, description: "Confirm the running replica count" },
270
+ { command: `naive compute logs ${wl}`, description: "Watch the new replicas start" },
271
+ ],
272
+ hints: [...workloadHints(resp.data), "Scaling to 0 is the same as `compute stop` — the workload is kept."],
273
+ related_commands: ["naive compute show", "naive compute start", "naive compute stop"],
274
+ });
124
275
  });
125
276
  computeCmd
126
277
  .command("run <id>")
@@ -130,7 +281,20 @@ computeCmd
130
281
  const body = opts.command ? { command: String(opts.command).split(" ") } : {};
131
282
  const resp = await apiRequest("POST", `/v1/compute/${id}/run`, body);
132
283
  handleApiError("compute.run", resp);
133
- agentOutput({ action: "compute.run", result: resp.data, next_steps: [] });
284
+ const runId = wid(resp.data);
285
+ agentOutput({
286
+ action: "compute.run",
287
+ result: resp.data,
288
+ next_steps: [
289
+ { command: `naive compute logs ${id} --run ${runId}`, description: "Tail this run's logs" },
290
+ { command: `naive compute runs ${id}`, description: "Poll the run's status" },
291
+ ],
292
+ hints: [
293
+ ...workloadHints(resp.data),
294
+ "The run is asynchronous — this returns the run id, not its result.",
295
+ ],
296
+ related_commands: ["naive compute runs", "naive compute logs"],
297
+ });
134
298
  });
135
299
  computeCmd
136
300
  .command("runs <id>")
@@ -138,7 +302,23 @@ computeCmd
138
302
  .action(async (id) => {
139
303
  const resp = await apiRequest("GET", `/v1/compute/${id}/runs`);
140
304
  handleApiError("compute.runs", resp);
141
- agentOutput({ action: "compute.runs", result: resp.data, next_steps: [] });
305
+ const runs = (resp.data?.runs ?? []);
306
+ const latest = runs[0]?.id ?? "<runId>";
307
+ agentOutput({
308
+ action: "compute.runs",
309
+ result: resp.data,
310
+ next_steps: [
311
+ { command: `naive compute logs ${id} --run ${latest}`, description: "Tail a specific run's logs" },
312
+ { command: `naive compute run ${id}`, description: "Trigger another run" },
313
+ ],
314
+ hints: [
315
+ `${runs.length} run${runs.length === 1 ? "" : "s"}.`,
316
+ ...(runs.length === 0
317
+ ? ["No runs yet — `compute run <id>` triggers the first one."]
318
+ : [`Latest run status: ${runs[0]?.status ?? "unknown"}.`]),
319
+ ],
320
+ related_commands: ["naive compute run", "naive compute logs"],
321
+ });
142
322
  });
143
323
  computeCmd
144
324
  .command("logs <id>")
@@ -151,7 +331,24 @@ computeCmd
151
331
  : `/v1/compute/${id}/logs?limit=${opts.limit}`;
152
332
  const resp = await apiRequest("GET", path);
153
333
  handleApiError("compute.logs", resp);
154
- agentOutput({ action: "compute.logs", result: resp.data, next_steps: [] });
334
+ const events = (resp.data?.events ?? []);
335
+ agentOutput({
336
+ action: "compute.logs",
337
+ result: resp.data,
338
+ next_steps: [
339
+ { command: `naive compute show ${id}`, description: "Check the workload's status" },
340
+ { command: `naive compute logs ${id} --limit 1000`, description: "Widen the window", when: "you need more history" },
341
+ { command: `naive compute runs ${id}`, description: "Pick a specific run to tail" },
342
+ ],
343
+ hints: [
344
+ `${events.length} log event${events.length === 1 ? "" : "s"}.`,
345
+ // The API returns its own advisory when there is no stream to read
346
+ // ("No running tasks…", "No runs yet…"). Surface it rather than leaving
347
+ // an agent to find it inside `result`.
348
+ ...apiHint(resp.data),
349
+ ],
350
+ related_commands: ["naive compute show", "naive compute runs"],
351
+ });
155
352
  });
156
353
  computeCmd
157
354
  .command("exec <id> <command>")
@@ -161,7 +358,19 @@ computeCmd
161
358
  if (handlePendingApproval("compute.exec", resp))
162
359
  return;
163
360
  handleApiError("compute.exec", resp);
164
- agentOutput({ action: "compute.exec", result: resp.data, next_steps: [] });
361
+ agentOutput({
362
+ action: "compute.exec",
363
+ result: resp.data,
364
+ next_steps: [
365
+ { command: `naive compute ssh ${id}`, description: "Open an interactive shell instead" },
366
+ { command: `naive compute logs ${id}`, description: "Read what the command wrote to the log stream" },
367
+ ],
368
+ hints: [
369
+ ...apiHint(resp.data),
370
+ "exec brokers an SSM session against a RUNNING task — start/scale a service, or run a job, first.",
371
+ ],
372
+ related_commands: ["naive compute ssh", "naive compute logs"],
373
+ });
165
374
  });
166
375
  computeCmd
167
376
  .command("ssh <id>")
@@ -174,7 +383,19 @@ computeCmd
174
383
  handleApiError("compute.ssh", resp);
175
384
  const data = resp.data;
176
385
  if (!data.session) {
177
- agentOutput({ action: "compute.ssh", result: resp.data, next_steps: [] });
386
+ agentOutput({
387
+ action: "compute.ssh",
388
+ result: resp.data,
389
+ next_steps: [
390
+ { command: `naive compute show ${id}`, description: "Check the workload has a running task to attach to" },
391
+ { command: `naive compute logs ${id}`, description: "Read the logs instead" },
392
+ ],
393
+ hints: [
394
+ ...apiHint(resp.data),
395
+ "No SSM session was returned, so there is nothing to attach to yet.",
396
+ ],
397
+ related_commands: ["naive compute show", "naive compute exec"],
398
+ });
178
399
  return;
179
400
  }
180
401
  const region = data.region ?? "us-east-1";
@@ -191,12 +412,16 @@ computeCmd
191
412
  agentOutput({
192
413
  action: "compute.ssh",
193
414
  result: { session: data.session, region },
194
- next_steps: [],
415
+ next_steps: [
416
+ { command: `naive compute exec ${id} "<command>"`, description: "Run a one-off command without the plugin" },
417
+ { command: `naive compute logs ${id}`, description: "Read the logs instead" },
418
+ ],
195
419
  hints: [
196
420
  "The AWS session-manager-plugin is required for the interactive shell and was not found on PATH.",
197
421
  "Install it: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html",
198
422
  "The returned session (streamUrl + tokenValue) can also be consumed by any SSM data-channel client.",
199
423
  ],
424
+ related_commands: ["naive compute exec", "naive compute logs"],
200
425
  });
201
426
  }
202
427
  });
@@ -207,7 +432,23 @@ secret
207
432
  .action(async (id, key, value) => {
208
433
  const resp = await apiRequest("POST", `/v1/compute/${id}/secrets`, { key, value });
209
434
  handleApiError("compute.secret.set", resp);
210
- agentOutput({ action: "compute.secret.set", result: resp.data, next_steps: [] });
435
+ agentOutput({
436
+ action: "compute.secret.set",
437
+ result: resp.data,
438
+ next_steps: [
439
+ { command: `naive compute secret list ${id}`, description: "Confirm the key is set" },
440
+ {
441
+ command: `naive compute run ${id}`,
442
+ description: "Re-run so the container picks the value up",
443
+ when: "it is a job or a schedule",
444
+ },
445
+ ],
446
+ hints: [
447
+ `Key \`${key}\` is stored encrypted; its value is never returned by \`secret list\`.`,
448
+ "A running container keeps its old environment until it is restarted or re-run.",
449
+ ],
450
+ related_commands: ["naive compute secret list", "naive compute secret delete"],
451
+ });
211
452
  });
212
453
  secret
213
454
  .command("list <id>")
@@ -215,7 +456,20 @@ secret
215
456
  .action(async (id) => {
216
457
  const resp = await apiRequest("GET", `/v1/compute/${id}/secrets`);
217
458
  handleApiError("compute.secret.list", resp);
218
- agentOutput({ action: "compute.secret.list", result: resp.data, next_steps: [] });
459
+ const secrets = (resp.data?.secrets ?? []);
460
+ agentOutput({
461
+ action: "compute.secret.list",
462
+ result: resp.data,
463
+ next_steps: [
464
+ { command: `naive compute secret set ${id} <KEY> <VALUE>`, description: "Add or replace a secret" },
465
+ { command: `naive compute secret delete ${id} <KEY>`, description: "Remove one", when: "it is no longer needed" },
466
+ ],
467
+ hints: [
468
+ `${secrets.length} secret${secrets.length === 1 ? "" : "s"}.`,
469
+ "Keys only — values are encrypted at rest and are not returned here.",
470
+ ],
471
+ related_commands: ["naive compute secret set", "naive compute secret delete"],
472
+ });
219
473
  });
220
474
  secret
221
475
  .command("delete <id> <key>")
@@ -223,6 +477,22 @@ secret
223
477
  .action(async (id, key) => {
224
478
  const resp = await apiRequest("DELETE", `/v1/compute/${id}/secrets/${encodeURIComponent(key)}`);
225
479
  handleApiError("compute.secret.delete", resp);
226
- agentOutput({ action: "compute.secret.delete", result: resp.data, next_steps: [] });
480
+ agentOutput({
481
+ action: "compute.secret.delete",
482
+ result: resp.data,
483
+ next_steps: [
484
+ { command: `naive compute secret list ${id}`, description: "Confirm what is left" },
485
+ {
486
+ command: `naive compute run ${id}`,
487
+ description: "Re-run so the container loses the value",
488
+ when: "it is a job or a schedule",
489
+ },
490
+ ],
491
+ hints: [
492
+ `Key \`${key}\` is removed from the workload's environment.`,
493
+ "A running container keeps its old environment until it is restarted or re-run.",
494
+ ],
495
+ related_commands: ["naive compute secret set", "naive compute secret list"],
496
+ });
227
497
  });
228
498
  //# sourceMappingURL=compute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/commands/compute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/commands/compute.ts"],"names":[],"mappings":"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"}
@@ -92,8 +92,20 @@ connectionsCmd
92
92
  .description("List the tools a toolkit exposes")
93
93
  .argument("<toolkit>")
94
94
  .option("--user <id>", "Target a specific tenant user")
95
+ .option("--search <text>", "Only tools whose name or description matches")
96
+ .option("--limit <n>", "Maximum tools to return (default 100, max 200)")
95
97
  .action(async (toolkit, opts) => {
96
- const resp = await apiRequest("GET", `${userPath(opts.user)}/connections/${encodeURIComponent(toolkit)}/tools`, undefined, {
98
+ // --search / --limit are the two query parameters the route has always read
99
+ // and MCP has always accepted. Without them this command could only ask for
100
+ // the whole catalog, which is why the same toolkit counted 63 here and 25 on
101
+ // api/mcp for one credential (NV-068).
102
+ const qs = new URLSearchParams();
103
+ if (opts.search)
104
+ qs.set("search", opts.search);
105
+ if (opts.limit)
106
+ qs.set("limit", opts.limit);
107
+ const q = qs.toString();
108
+ const resp = await apiRequest("GET", `${userPath(opts.user)}/connections/${encodeURIComponent(toolkit)}/tools${q ? `?${q}` : ""}`, undefined, {
97
109
  userId: opts.user,
98
110
  });
99
111
  handleApiError("connections.tools", resp);
@@ -1 +1 @@
1
- {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/commands/connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/commands/connections.ts"],"names":[],"mappings":"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"}
@@ -53,9 +53,14 @@ Workflow for editing DNS on a connected domain:
53
53
  2. naive domains set-record <domain_id> --type CNAME --name www --value shops.myshopify.com
54
54
  3. naive domains delete-record <domain_id> <record_id> (use --acknowledge-unowned for non-Naive records)
55
55
 
56
- System domains are auto-provisioned on registration but may start as 'pending_dns'
57
- until DNS verification completes. Use 'naive domains' to check status, and
58
- 'naive domains verify <id>' if needed.
56
+ System domains ({slug}.usenaive.ai):
57
+ Auto-provisioned on registration with status=active. Two independent tracks:
58
+ dns_status → Resend EMAIL readiness (pending_verification | provisioned)
59
+ app_connect_status → app HTTP attach (null | pending_dns | connected |
60
+ agent_managed_pending | agent_managed)
61
+ Do NOT treat dns_status=pending_verification as "app domain broken".
62
+ App attach: naive apps domains connect / verify-dns (platform writes zone DNS).
63
+ Email ready: naive domains verify <id> when dns_status is still pending_verification.
59
64
 
60
65
  DNS edit safety (server-enforced):
61
66
  - Allowed types only: A, AAAA, CNAME, MX, TXT, CAA
@@ -86,13 +91,22 @@ domainsCmd
86
91
  const data = resp.data;
87
92
  const count = data.domains?.length ?? 0;
88
93
  const active = data.domains?.filter((d) => d.status === "active").length ?? 0;
89
- const pending = data.domains?.filter((d) => d.status === "pending_dns").length ?? 0;
94
+ const pendingByod = data.domains?.filter((d) => d.status === "pending_dns").length ?? 0;
95
+ const emailPending = data.domains?.filter((d) => d.dns_status === "pending_verification" || d.dns_status === "provisioning").length ?? 0;
96
+ const appPending = data.domains?.filter((d) => d.app_connect_status === "pending_dns").length ?? 0;
97
+ const appConnected = data.domains?.filter((d) => d.app_connect_status === "connected").length ?? 0;
90
98
  agentOutput({
91
99
  action: "domains.list",
92
100
  result: resp.data,
93
101
  next_steps: [
94
- ...(pending > 0
95
- ? [{ command: "naive domains setup-records <domain_id>", description: "View Resend setup records to add for pending domains" }]
102
+ ...(emailPending > 0
103
+ ? [{ command: "naive domains verify <domain_id>", description: "Re-check Resend EMAIL dns_status (not app HTTP)" }]
104
+ : []),
105
+ ...(pendingByod > 0
106
+ ? [{ command: "naive domains setup-records <domain_id>", description: "View Resend setup records to add for BYOD pending domains" }]
107
+ : []),
108
+ ...(appPending > 0
109
+ ? [{ command: "naive apps domains verify-dns <appId> <domainId>", description: "Finish app HTTP attach (app_connect_status=pending_dns)" }]
96
110
  : []),
97
111
  { command: "naive domains connect --domain <your-domain.com>", description: "Connect a custom domain" },
98
112
  ...(active > 0
@@ -103,11 +117,20 @@ domainsCmd
103
117
  : []),
104
118
  ],
105
119
  hints: [
106
- `${count} domain${count !== 1 ? "s" : ""} total (${active} active, ${pending} pending DNS)`,
107
- "System domains ({slug}.usenaive.ai) are auto-provisioned on registration",
108
- "Custom domains require DNS record setup before they can be used",
120
+ `${count} domain${count !== 1 ? "s" : ""} total (${active} active, ${pendingByod} BYOD pending_dns)`,
121
+ `Tracks: email dns_status pending=${emailPending}; app_connect pending_dns=${appPending}, connected=${appConnected}`,
122
+ "System domains: status=active on register. dns_status=email (Resend); app_connect_status=app HTTP (Vercel). Do not conflate them.",
123
+ "Custom domains require DNS record setup before they can be used for email",
124
+ ],
125
+ related_commands: [
126
+ "naive domains connect",
127
+ "naive domains verify",
128
+ "naive domains zone-records",
129
+ "naive apps domains connect",
130
+ "naive apps domains verify-dns",
131
+ "naive email inboxes",
132
+ "naive email create",
109
133
  ],
110
- related_commands: ["naive domains connect", "naive domains verify", "naive domains zone-records", "naive email inboxes", "naive email create"],
111
134
  });
112
135
  });
113
136
  domainsCmd
@@ -281,20 +304,41 @@ Differs from 'dns-records' (which shows only the Resend setup records).
281
304
  const resp = await apiRequest("GET", `/v1/domains/${domainId}/zone-records`);
282
305
  handleApiError("domains.zone-records", resp);
283
306
  const data = resp.data;
307
+ // Authoritative — the server decides this, not the hostname shape.
308
+ const isSystem = (data.registrar ?? "").trim().toLowerCase() === "system";
284
309
  agentOutput({
285
310
  action: "domains.zone-records",
286
311
  result: resp.data,
287
- next_steps: [
288
- { command: `naive domains set-record ${data.domain_id} --type A --name www --value 76.76.21.21`, description: "Create or replace a DNS record" },
289
- ...(data.records.length > 0
290
- ? [{ command: `naive domains delete-record ${data.domain_id} ${data.records[0].id}`, description: "Delete a DNS record by its provider record ID" }]
291
- : []),
292
- ],
312
+ next_steps: isSystem
313
+ ? [
314
+ {
315
+ command: "naive apps domains connect <appId> <domainId>",
316
+ description: "Attach this system domain to an app (the platform writes the HTTP DNS)",
317
+ },
318
+ {
319
+ command: "naive apps domains verify-dns <appId> <domainId>",
320
+ description: "Re-check the app HTTP attach after connect",
321
+ },
322
+ ]
323
+ : [
324
+ { command: `naive domains set-record ${data.domain_id} --type A --name www --value 76.76.21.21`, description: "Create or replace a DNS record" },
325
+ ...(data.records.length > 0
326
+ ? [{ command: `naive domains delete-record ${data.domain_id} ${data.records[0].id}`, description: "Delete a DNS record by its provider record ID" }]
327
+ : []),
328
+ ],
293
329
  hints: [
294
330
  `${data.records.length} record(s) on ${data.domain}`,
331
+ ...(isSystem
332
+ ? [
333
+ "System domain: zone-records is inspect-only. set/delete → 403 SYSTEM_DOMAIN.",
334
+ "App HTTP DNS is written by `naive apps domains connect` / `verify-dns`, not by you.",
335
+ ]
336
+ : []),
295
337
  ...(data.mock ? ["mock: true — no real Vercel writes occurred (DOMAIN_MOCK or no VERCEL_REGISTRAR_TOKEN)"] : []),
296
338
  ],
297
- related_commands: ["naive domains set-record", "naive domains delete-record", "naive domains"],
339
+ related_commands: isSystem
340
+ ? ["naive apps domains connect", "naive apps domains verify-dns", "naive domains"]
341
+ : ["naive domains set-record", "naive domains delete-record", "naive domains"],
298
342
  });
299
343
  });
300
344
  domainsCmd
@@ -315,7 +359,7 @@ Examples:
315
359
  $ naive domains set-record <id> --type CAA --name @ --value '0 issue "letsencrypt.org"'
316
360
 
317
361
  Safety rules:
318
- - System domains (registrar=system) are read-only.
362
+ - System domains (registrar=system): zone-records list is allowed; set/delete are forbidden.
319
363
  - DMARC/DKIM/inbound MX & TXT records are protected.
320
364
  - Wildcard names ('*' or '*.foo') are rejected.
321
365
  - CAA values must use an allowed CA.