@usenaive-sdk/cli 0.15.1 → 1.0.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 (281) hide show
  1. package/README.md +43 -402
  2. package/dist/index.js +51796 -502
  3. package/package.json +22 -18
  4. package/dist/client.d.ts +0 -108
  5. package/dist/client.js +0 -458
  6. package/dist/client.js.map +0 -1
  7. package/dist/commands/account-kits.d.ts +0 -2
  8. package/dist/commands/account-kits.js +0 -71
  9. package/dist/commands/account-kits.js.map +0 -1
  10. package/dist/commands/aeo.d.ts +0 -2
  11. package/dist/commands/aeo.js +0 -451
  12. package/dist/commands/aeo.js.map +0 -1
  13. package/dist/commands/agent-profiles.d.ts +0 -11
  14. package/dist/commands/agent-profiles.js +0 -120
  15. package/dist/commands/agent-profiles.js.map +0 -1
  16. package/dist/commands/agents.d.ts +0 -2
  17. package/dist/commands/agents.js +0 -916
  18. package/dist/commands/agents.js.map +0 -1
  19. package/dist/commands/app-data.d.ts +0 -2
  20. package/dist/commands/app-data.js +0 -445
  21. package/dist/commands/app-data.js.map +0 -1
  22. package/dist/commands/approvals.d.ts +0 -2
  23. package/dist/commands/approvals.js +0 -242
  24. package/dist/commands/approvals.js.map +0 -1
  25. package/dist/commands/apps.d.ts +0 -9
  26. package/dist/commands/apps.js +0 -844
  27. package/dist/commands/apps.js.map +0 -1
  28. package/dist/commands/audio.d.ts +0 -9
  29. package/dist/commands/audio.js +0 -391
  30. package/dist/commands/audio.js.map +0 -1
  31. package/dist/commands/auth.d.ts +0 -31
  32. package/dist/commands/auth.js +0 -428
  33. package/dist/commands/auth.js.map +0 -1
  34. package/dist/commands/billing.d.ts +0 -2
  35. package/dist/commands/billing.js +0 -250
  36. package/dist/commands/billing.js.map +0 -1
  37. package/dist/commands/brain.d.ts +0 -2
  38. package/dist/commands/brain.js +0 -1300
  39. package/dist/commands/brain.js.map +0 -1
  40. package/dist/commands/browser.d.ts +0 -2
  41. package/dist/commands/browser.js +0 -378
  42. package/dist/commands/browser.js.map +0 -1
  43. package/dist/commands/business.d.ts +0 -2
  44. package/dist/commands/business.js +0 -566
  45. package/dist/commands/business.js.map +0 -1
  46. package/dist/commands/cards.d.ts +0 -2
  47. package/dist/commands/cards.js +0 -419
  48. package/dist/commands/cards.js.map +0 -1
  49. package/dist/commands/ceo.d.ts +0 -2
  50. package/dist/commands/ceo.js +0 -369
  51. package/dist/commands/ceo.js.map +0 -1
  52. package/dist/commands/clone.d.ts +0 -2
  53. package/dist/commands/clone.js +0 -203
  54. package/dist/commands/clone.js.map +0 -1
  55. package/dist/commands/companies.d.ts +0 -10
  56. package/dist/commands/companies.js +0 -283
  57. package/dist/commands/companies.js.map +0 -1
  58. package/dist/commands/company-data.d.ts +0 -2
  59. package/dist/commands/company-data.js +0 -168
  60. package/dist/commands/company-data.js.map +0 -1
  61. package/dist/commands/compute.d.ts +0 -2
  62. package/dist/commands/compute.js +0 -498
  63. package/dist/commands/compute.js.map +0 -1
  64. package/dist/commands/config.d.ts +0 -2
  65. package/dist/commands/config.js +0 -36
  66. package/dist/commands/config.js.map +0 -1
  67. package/dist/commands/connections.d.ts +0 -8
  68. package/dist/commands/connections.js +0 -137
  69. package/dist/commands/connections.js.map +0 -1
  70. package/dist/commands/cron-jobs.d.ts +0 -2
  71. package/dist/commands/cron-jobs.js +0 -245
  72. package/dist/commands/cron-jobs.js.map +0 -1
  73. package/dist/commands/domains.d.ts +0 -2
  74. package/dist/commands/domains.js +0 -474
  75. package/dist/commands/domains.js.map +0 -1
  76. package/dist/commands/ecommerce.d.ts +0 -2
  77. package/dist/commands/ecommerce.js +0 -277
  78. package/dist/commands/ecommerce.js.map +0 -1
  79. package/dist/commands/email.d.ts +0 -2
  80. package/dist/commands/email.js +0 -336
  81. package/dist/commands/email.js.map +0 -1
  82. package/dist/commands/employees.d.ts +0 -2
  83. package/dist/commands/employees.js +0 -190
  84. package/dist/commands/employees.js.map +0 -1
  85. package/dist/commands/env.d.ts +0 -7
  86. package/dist/commands/env.js +0 -112
  87. package/dist/commands/env.js.map +0 -1
  88. package/dist/commands/formation.d.ts +0 -2
  89. package/dist/commands/formation.js +0 -273
  90. package/dist/commands/formation.js.map +0 -1
  91. package/dist/commands/identity.d.ts +0 -2
  92. package/dist/commands/identity.js +0 -110
  93. package/dist/commands/identity.js.map +0 -1
  94. package/dist/commands/images.d.ts +0 -2
  95. package/dist/commands/images.js +0 -371
  96. package/dist/commands/images.js.map +0 -1
  97. package/dist/commands/init.d.ts +0 -5
  98. package/dist/commands/init.js +0 -43
  99. package/dist/commands/init.js.map +0 -1
  100. package/dist/commands/jobs.d.ts +0 -2
  101. package/dist/commands/jobs.js +0 -144
  102. package/dist/commands/jobs.js.map +0 -1
  103. package/dist/commands/keys.d.ts +0 -2
  104. package/dist/commands/keys.js +0 -156
  105. package/dist/commands/keys.js.map +0 -1
  106. package/dist/commands/legacy-auth.d.ts +0 -27
  107. package/dist/commands/legacy-auth.js +0 -64
  108. package/dist/commands/legacy-auth.js.map +0 -1
  109. package/dist/commands/llm.d.ts +0 -2
  110. package/dist/commands/llm.js +0 -125
  111. package/dist/commands/llm.js.map +0 -1
  112. package/dist/commands/login.d.ts +0 -2
  113. package/dist/commands/login.js +0 -65
  114. package/dist/commands/login.js.map +0 -1
  115. package/dist/commands/logout.d.ts +0 -7
  116. package/dist/commands/logout.js +0 -55
  117. package/dist/commands/logout.js.map +0 -1
  118. package/dist/commands/logs.d.ts +0 -2
  119. package/dist/commands/logs.js +0 -42
  120. package/dist/commands/logs.js.map +0 -1
  121. package/dist/commands/loops.d.ts +0 -2
  122. package/dist/commands/loops.js +0 -260
  123. package/dist/commands/loops.js.map +0 -1
  124. package/dist/commands/media.d.ts +0 -2
  125. package/dist/commands/media.js +0 -183
  126. package/dist/commands/media.js.map +0 -1
  127. package/dist/commands/memory.d.ts +0 -2
  128. package/dist/commands/memory.js +0 -151
  129. package/dist/commands/memory.js.map +0 -1
  130. package/dist/commands/mobile.d.ts +0 -4
  131. package/dist/commands/mobile.js +0 -382
  132. package/dist/commands/mobile.js.map +0 -1
  133. package/dist/commands/module.d.ts +0 -8
  134. package/dist/commands/module.js +0 -48
  135. package/dist/commands/module.js.map +0 -1
  136. package/dist/commands/objectives.d.ts +0 -2
  137. package/dist/commands/objectives.js +0 -243
  138. package/dist/commands/objectives.js.map +0 -1
  139. package/dist/commands/payments.d.ts +0 -2
  140. package/dist/commands/payments.js +0 -131
  141. package/dist/commands/payments.js.map +0 -1
  142. package/dist/commands/people.d.ts +0 -2
  143. package/dist/commands/people.js +0 -197
  144. package/dist/commands/people.js.map +0 -1
  145. package/dist/commands/phone.d.ts +0 -2
  146. package/dist/commands/phone.js +0 -289
  147. package/dist/commands/phone.js.map +0 -1
  148. package/dist/commands/projects.d.ts +0 -13
  149. package/dist/commands/projects.js +0 -220
  150. package/dist/commands/projects.js.map +0 -1
  151. package/dist/commands/queue.d.ts +0 -2
  152. package/dist/commands/queue.js +0 -121
  153. package/dist/commands/queue.js.map +0 -1
  154. package/dist/commands/register.d.ts +0 -2
  155. package/dist/commands/register.js +0 -88
  156. package/dist/commands/register.js.map +0 -1
  157. package/dist/commands/report.d.ts +0 -17
  158. package/dist/commands/report.js +0 -109
  159. package/dist/commands/report.js.map +0 -1
  160. package/dist/commands/sandbox.d.ts +0 -2
  161. package/dist/commands/sandbox.js +0 -558
  162. package/dist/commands/sandbox.js.map +0 -1
  163. package/dist/commands/search.d.ts +0 -2
  164. package/dist/commands/search.js +0 -223
  165. package/dist/commands/search.js.map +0 -1
  166. package/dist/commands/seo.d.ts +0 -2
  167. package/dist/commands/seo.js +0 -528
  168. package/dist/commands/seo.js.map +0 -1
  169. package/dist/commands/sessions.d.ts +0 -6
  170. package/dist/commands/sessions.js +0 -109
  171. package/dist/commands/sessions.js.map +0 -1
  172. package/dist/commands/social-data.d.ts +0 -2
  173. package/dist/commands/social-data.js +0 -245
  174. package/dist/commands/social-data.js.map +0 -1
  175. package/dist/commands/social.d.ts +0 -2
  176. package/dist/commands/social.js +0 -407
  177. package/dist/commands/social.js.map +0 -1
  178. package/dist/commands/status.d.ts +0 -2
  179. package/dist/commands/status.js +0 -79
  180. package/dist/commands/status.js.map +0 -1
  181. package/dist/commands/support.d.ts +0 -2
  182. package/dist/commands/support.js +0 -134
  183. package/dist/commands/support.js.map +0 -1
  184. package/dist/commands/tasks.d.ts +0 -2
  185. package/dist/commands/tasks.js +0 -409
  186. package/dist/commands/tasks.js.map +0 -1
  187. package/dist/commands/teams.d.ts +0 -69
  188. package/dist/commands/teams.js +0 -503
  189. package/dist/commands/teams.js.map +0 -1
  190. package/dist/commands/trading.d.ts +0 -2
  191. package/dist/commands/trading.js +0 -333
  192. package/dist/commands/trading.js.map +0 -1
  193. package/dist/commands/up.d.ts +0 -551
  194. package/dist/commands/up.js +0 -1149
  195. package/dist/commands/up.js.map +0 -1
  196. package/dist/commands/usage.d.ts +0 -2
  197. package/dist/commands/usage.js +0 -73
  198. package/dist/commands/usage.js.map +0 -1
  199. package/dist/commands/use.d.ts +0 -12
  200. package/dist/commands/use.js +0 -96
  201. package/dist/commands/use.js.map +0 -1
  202. package/dist/commands/users.d.ts +0 -10
  203. package/dist/commands/users.js +0 -82
  204. package/dist/commands/users.js.map +0 -1
  205. package/dist/commands/vault.d.ts +0 -2
  206. package/dist/commands/vault.js +0 -101
  207. package/dist/commands/vault.js.map +0 -1
  208. package/dist/commands/verification.d.ts +0 -2
  209. package/dist/commands/verification.js +0 -152
  210. package/dist/commands/verification.js.map +0 -1
  211. package/dist/commands/verify-email.d.ts +0 -19
  212. package/dist/commands/verify-email.js +0 -130
  213. package/dist/commands/verify-email.js.map +0 -1
  214. package/dist/commands/video.d.ts +0 -2
  215. package/dist/commands/video.js +0 -417
  216. package/dist/commands/video.js.map +0 -1
  217. package/dist/commands/voice.d.ts +0 -2
  218. package/dist/commands/voice.js +0 -516
  219. package/dist/commands/voice.js.map +0 -1
  220. package/dist/commands/wallet.d.ts +0 -2
  221. package/dist/commands/wallet.js +0 -244
  222. package/dist/commands/wallet.js.map +0 -1
  223. package/dist/commands/webhooks.d.ts +0 -13
  224. package/dist/commands/webhooks.js +0 -119
  225. package/dist/commands/webhooks.js.map +0 -1
  226. package/dist/commands/whoami.d.ts +0 -2
  227. package/dist/commands/whoami.js +0 -53
  228. package/dist/commands/whoami.js.map +0 -1
  229. package/dist/config.d.ts +0 -42
  230. package/dist/config.js +0 -83
  231. package/dist/config.js.map +0 -1
  232. package/dist/index.d.ts +0 -3
  233. package/dist/index.js.map +0 -1
  234. package/dist/lib/brain-select.d.ts +0 -193
  235. package/dist/lib/brain-select.js +0 -403
  236. package/dist/lib/brain-select.js.map +0 -1
  237. package/dist/lib/cli-validation.d.ts +0 -12
  238. package/dist/lib/cli-validation.js +0 -46
  239. package/dist/lib/cli-validation.js.map +0 -1
  240. package/dist/lib/config-errors.d.ts +0 -4
  241. package/dist/lib/config-errors.js +0 -13
  242. package/dist/lib/config-errors.js.map +0 -1
  243. package/dist/lib/deprecation.d.ts +0 -158
  244. package/dist/lib/deprecation.js +0 -140
  245. package/dist/lib/deprecation.js.map +0 -1
  246. package/dist/lib/duration.d.ts +0 -8
  247. package/dist/lib/duration.js +0 -11
  248. package/dist/lib/duration.js.map +0 -1
  249. package/dist/lib/http-response.d.ts +0 -11
  250. package/dist/lib/http-response.js +0 -96
  251. package/dist/lib/http-response.js.map +0 -1
  252. package/dist/lib/llm-paywall.d.ts +0 -82
  253. package/dist/lib/llm-paywall.js +0 -231
  254. package/dist/lib/llm-paywall.js.map +0 -1
  255. package/dist/lib/pricing.d.ts +0 -132
  256. package/dist/lib/pricing.js +0 -148
  257. package/dist/lib/pricing.js.map +0 -1
  258. package/dist/lib/starter-config.d.ts +0 -13
  259. package/dist/lib/starter-config.js +0 -71
  260. package/dist/lib/starter-config.js.map +0 -1
  261. package/dist/lib/stream-frames.d.ts +0 -114
  262. package/dist/lib/stream-frames.js +0 -169
  263. package/dist/lib/stream-frames.js.map +0 -1
  264. package/dist/lib/teams-catalog.d.ts +0 -141
  265. package/dist/lib/teams-catalog.js +0 -841
  266. package/dist/lib/teams-catalog.js.map +0 -1
  267. package/dist/lib/unknown-command.d.ts +0 -71
  268. package/dist/lib/unknown-command.js +0 -132
  269. package/dist/lib/unknown-command.js.map +0 -1
  270. package/dist/lib/version-check.d.ts +0 -26
  271. package/dist/lib/version-check.js +0 -21
  272. package/dist/lib/version-check.js.map +0 -1
  273. package/dist/output.d.ts +0 -246
  274. package/dist/output.js +0 -539
  275. package/dist/output.js.map +0 -1
  276. package/dist/prompt.d.ts +0 -17
  277. package/dist/prompt.js +0 -70
  278. package/dist/prompt.js.map +0 -1
  279. package/dist/version.d.ts +0 -2
  280. package/dist/version.js +0 -14
  281. package/dist/version.js.map +0 -1
@@ -1,498 +0,0 @@
1
- import { Command } from "commander";
2
- import { spawnSync } from "node:child_process";
3
- import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
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
- }
53
- export const computeCmd = new Command("compute")
54
- .description("Compute — run Docker containers, background workers & scheduled jobs on managed cloud compute (ECS/Fargate)")
55
- .addHelpText("after", `
56
- Subcommands:
57
- naive compute list List your workloads
58
- naive compute create Create a service / job / schedule
59
- naive compute show <id> Show workload details
60
- naive compute delete <id> Delete a workload
61
- naive compute start <id> Wake a scaled-to-zero service
62
- naive compute stop <id> Scale a service to zero
63
- naive compute scale <id> <count> Set replica count
64
- naive compute run <id> Trigger a job/schedule run now
65
- naive compute runs <id> List runs
66
- naive compute logs <id> [--run <runId>] Tail CloudWatch logs
67
- naive compute exec <id> "<cmd>" One-off command (ECS Exec)
68
- naive compute ssh <id> Interactive shell (ECS Exec/SSM)
69
- naive compute secret set <id> <KEY> <VAL> Set an encrypted env var
70
- naive compute secret list <id> List secret keys
71
- naive compute secret delete <id> <KEY> Delete a secret
72
-
73
- Types:
74
- service long-running container (daemon/bot/API), optional public URL, scale-to-zero
75
- job run-to-completion batch (ETL/scrape/render)
76
- schedule a job on a cron/rate expression (e.g. 'cron(0 9 * * ? *)' or 'rate(1 hour)')
77
-
78
- Governance:
79
- Creating a workload and opening a shell (exec/ssh) are SENSITIVE and may
80
- require human approval depending on the Account Kit (status "pending_approval").
81
-
82
- Examples:
83
- $ naive compute create --name bot --type service --image ghcr.io/me/bot:latest --port 8080
84
- $ naive compute create --name nightly --type schedule --image me/etl --schedule "cron(0 9 * * ? *)"
85
- $ naive compute run <id>
86
- $ naive compute ssh <id>
87
- `);
88
- computeCmd
89
- .command("list", { isDefault: true })
90
- .description("List your compute workloads")
91
- .action(async () => {
92
- const resp = await apiRequest("GET", "/v1/compute");
93
- handleApiError("compute.list", resp);
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
- });
115
- });
116
- computeCmd
117
- .command("create")
118
- .description("Create a compute workload")
119
- .requiredOption("--name <name>", "Workload name")
120
- .requiredOption("--type <type>", "service | job | schedule")
121
- .requiredOption("--image <image>", "OCI/Docker image")
122
- // <command...> so unquoted multi-word commands (echo foo) are not excess args
123
- .option("--command <command...>", "Container command (space-separated argv; unquoted multi-word OK)")
124
- .option("--cpu <cpu>", "Fargate CPU units (256 = 0.25 vCPU)")
125
- .option("--memory <mb>", "Memory in MB")
126
- .option("--port <port>", "Container port to expose via the ALB (services; requires compute ALB config)")
127
- .option("--env <kv...>", "Env vars KEY=VALUE (repeatable)")
128
- .option("--schedule <expr>", "cron(...) or rate(...) expression (schedules)")
129
- .action(async (opts) => {
130
- const env = {};
131
- for (const kv of opts.env ?? []) {
132
- const i = String(kv).indexOf("=");
133
- if (i > 0)
134
- env[String(kv).slice(0, i)] = String(kv).slice(i + 1);
135
- }
136
- const commandArg = opts.command;
137
- const command = Array.isArray(commandArg)
138
- ? commandArg
139
- : commandArg
140
- ? String(commandArg).split(" ")
141
- : undefined;
142
- const body = {
143
- name: opts.name,
144
- type: opts.type,
145
- image: opts.image,
146
- command,
147
- cpu: opts.cpu ? Number(opts.cpu) : undefined,
148
- memory: opts.memory ? Number(opts.memory) : undefined,
149
- port: opts.port ? Number(opts.port) : undefined,
150
- env: Object.keys(env).length ? env : undefined,
151
- schedule_expr: opts.schedule,
152
- };
153
- const resp = await apiRequest("POST", "/v1/compute", body);
154
- if (handlePendingApproval("compute.create", resp))
155
- return;
156
- handleApiError("compute.create", resp);
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
- });
179
- });
180
- computeCmd
181
- .command("show <id>")
182
- .description("Show workload details")
183
- .action(async (id) => {
184
- const resp = await apiRequest("GET", `/v1/compute/${id}`);
185
- handleApiError("compute.show", resp);
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
- });
206
- });
207
- computeCmd
208
- .command("delete <id>")
209
- .description("Delete a workload")
210
- .action(async (id) => {
211
- const resp = await apiRequest("DELETE", `/v1/compute/${id}`);
212
- handleApiError("compute.delete", resp);
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
- });
230
- });
231
- for (const verb of ["start", "stop"]) {
232
- computeCmd
233
- .command(`${verb} <id>`)
234
- .description(verb === "start" ? "Wake a scaled-to-zero service" : "Scale a service to zero")
235
- .action(async (id) => {
236
- const resp = await apiRequest("POST", `/v1/compute/${id}/${verb}`);
237
- handleApiError(`compute.${verb}`, resp);
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
- });
256
- });
257
- }
258
- computeCmd
259
- .command("scale <id> <count>")
260
- .description("Set the running replica count")
261
- .action(async (id, count) => {
262
- const resp = await apiRequest("POST", `/v1/compute/${id}/scale`, { count: Number(count) });
263
- handleApiError("compute.scale", resp);
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
- });
275
- });
276
- computeCmd
277
- .command("run <id>")
278
- .description("Trigger a job/schedule run now")
279
- .option("--command <command>", "Override the container command (space-separated)")
280
- .action(async (id, opts) => {
281
- const body = opts.command ? { command: String(opts.command).split(" ") } : {};
282
- const resp = await apiRequest("POST", `/v1/compute/${id}/run`, body);
283
- handleApiError("compute.run", resp);
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
- });
298
- });
299
- computeCmd
300
- .command("runs <id>")
301
- .description("List runs for a workload")
302
- .action(async (id) => {
303
- const resp = await apiRequest("GET", `/v1/compute/${id}/runs`);
304
- handleApiError("compute.runs", resp);
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
- });
322
- });
323
- computeCmd
324
- .command("logs <id>")
325
- .description("Tail CloudWatch logs")
326
- .option("--run <runId>", "Logs for a specific run")
327
- .option("--limit <n>", "Max events", "200")
328
- .action(async (id, opts) => {
329
- const path = opts.run
330
- ? `/v1/compute/${id}/runs/${opts.run}/logs?limit=${opts.limit}`
331
- : `/v1/compute/${id}/logs?limit=${opts.limit}`;
332
- const resp = await apiRequest("GET", path);
333
- handleApiError("compute.logs", resp);
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
- });
352
- });
353
- computeCmd
354
- .command("exec <id> <command>")
355
- .description("Run a one-off command in a running task (ECS Exec)")
356
- .action(async (id, command) => {
357
- const resp = await apiRequest("POST", `/v1/compute/${id}/exec`, { command });
358
- if (handlePendingApproval("compute.exec", resp))
359
- return;
360
- handleApiError("compute.exec", resp);
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
- });
374
- });
375
- computeCmd
376
- .command("ssh <id>")
377
- .description("Open an interactive shell into a running task (ECS Exec / SSM)")
378
- .option("--command <command>", "Shell to launch", "/bin/sh")
379
- .action(async (id, opts) => {
380
- const resp = await apiRequest("POST", `/v1/compute/${id}/shell`, { command: opts.command });
381
- if (handlePendingApproval("compute.ssh", resp))
382
- return;
383
- handleApiError("compute.ssh", resp);
384
- const data = resp.data;
385
- if (!data.session) {
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
- });
399
- return;
400
- }
401
- const region = data.region ?? "us-east-1";
402
- const sessionJson = JSON.stringify({
403
- SessionId: data.session.sessionId,
404
- StreamUrl: data.session.streamUrl,
405
- TokenValue: data.session.tokenValue,
406
- });
407
- // Hand the brokered SSM session to the AWS session-manager-plugin, which
408
- // owns the WebSocket + interactive TTY. No AWS creds are needed — the
409
- // streamUrl + tokenValue ARE the short-lived, task-scoped credential.
410
- const result = spawnSync("session-manager-plugin", [sessionJson, region, "StartSession", "", JSON.stringify({}), `https://ssm.${region}.amazonaws.com`], { stdio: "inherit" });
411
- if (result.error) {
412
- agentOutput({
413
- action: "compute.ssh",
414
- result: { session: data.session, region },
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
- ],
419
- hints: [
420
- "The AWS session-manager-plugin is required for the interactive shell and was not found on PATH.",
421
- "Install it: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html",
422
- "The returned session (streamUrl + tokenValue) can also be consumed by any SSM data-channel client.",
423
- ],
424
- related_commands: ["naive compute exec", "naive compute logs"],
425
- });
426
- }
427
- });
428
- const secret = computeCmd.command("secret").description("Manage encrypted env vars for a workload");
429
- secret
430
- .command("set <id> <key> <value>")
431
- .description("Set an encrypted env var")
432
- .action(async (id, key, value) => {
433
- const resp = await apiRequest("POST", `/v1/compute/${id}/secrets`, { key, value });
434
- handleApiError("compute.secret.set", resp);
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
- });
452
- });
453
- secret
454
- .command("list <id>")
455
- .description("List secret keys")
456
- .action(async (id) => {
457
- const resp = await apiRequest("GET", `/v1/compute/${id}/secrets`);
458
- handleApiError("compute.secret.list", resp);
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
- });
473
- });
474
- secret
475
- .command("delete <id> <key>")
476
- .description("Delete a secret")
477
- .action(async (id, key) => {
478
- const resp = await apiRequest("DELETE", `/v1/compute/${id}/secrets/${encodeURIComponent(key)}`);
479
- handleApiError("compute.secret.delete", resp);
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
- });
497
- });
498
- //# sourceMappingURL=compute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/commands/compute.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const configCmd: Command;
@@ -1,36 +0,0 @@
1
- import { Command } from "commander";
2
- import { loadConfig, saveConfig } from "../config.js";
3
- import { agentOutput, agentError } from "../output.js";
4
- export const configCmd = new Command("config").description("View or set CLI preferences (e.g. output format)");
5
- configCmd
6
- .command("output <mode>")
7
- .description("Set output format: human (friendly, interactive) | json (machine, default)")
8
- .action((mode) => {
9
- if (mode !== "human" && mode !== "json") {
10
- agentError({
11
- action: "config.output",
12
- error: { code: "invalid_input", message: "mode must be 'human' or 'json'" },
13
- recovery_steps: [{ command: "naive config output human", description: "Enable friendly output" }],
14
- });
15
- return;
16
- }
17
- saveConfig({ output: mode, human_hint_shown: true });
18
- agentOutput({
19
- action: "config.output",
20
- result: { output: mode },
21
- next_steps: [{ command: "naive voice list", description: "Try it" }],
22
- hints: [mode === "human" ? "Friendly output enabled. Agents/scripts can still force JSON with --json or NAIVE_JSON=1." : "Machine JSON output set."],
23
- });
24
- });
25
- configCmd
26
- .command("show")
27
- .description("Show current CLI preferences")
28
- .action(() => {
29
- const c = loadConfig();
30
- agentOutput({
31
- action: "config.show",
32
- result: { output: c.output ?? "json (default)", base_url: c.base_url },
33
- next_steps: [{ command: "naive config output human", description: "Switch to friendly output" }],
34
- });
35
- });
36
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,kDAAkD,CAAC,CAAC;AAE/G,SAAS;KACN,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACxC,UAAU,CAAC;YACT,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,gCAAgC,EAAE;YAC3E,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;SAClG,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,UAAU,CAAC,EAAE,MAAM,EAAE,IAAwB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,WAAW,CAAC;QACV,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACxB,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QACpE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,2FAA2F,CAAC,CAAC,CAAC,0BAA0B,CAAC;KACrJ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,WAAW,CAAC;QACV,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;KACjG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function connectionsListCommand(opts: {
3
- user?: string;
4
- search?: string;
5
- connected?: boolean;
6
- limit?: number;
7
- }, cursor: string): string;
8
- export declare const connectionsCmd: Command;