@usenaive-sdk/cli 0.3.1 → 0.4.0

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 (39) hide show
  1. package/README.md +53 -6
  2. package/dist/commands/apps.d.ts +2 -0
  3. package/dist/commands/apps.js +424 -0
  4. package/dist/commands/apps.js.map +1 -0
  5. package/dist/commands/ceo.d.ts +2 -0
  6. package/dist/commands/ceo.js +369 -0
  7. package/dist/commands/ceo.js.map +1 -0
  8. package/dist/commands/companies.js +105 -0
  9. package/dist/commands/companies.js.map +1 -1
  10. package/dist/commands/cron-jobs.d.ts +2 -0
  11. package/dist/commands/cron-jobs.js +208 -0
  12. package/dist/commands/cron-jobs.js.map +1 -0
  13. package/dist/commands/employees.d.ts +2 -0
  14. package/dist/commands/employees.js +190 -0
  15. package/dist/commands/employees.js.map +1 -0
  16. package/dist/commands/media.d.ts +2 -0
  17. package/dist/commands/media.js +183 -0
  18. package/dist/commands/media.js.map +1 -0
  19. package/dist/commands/memory.d.ts +2 -0
  20. package/dist/commands/memory.js +151 -0
  21. package/dist/commands/memory.js.map +1 -0
  22. package/dist/commands/objectives.d.ts +2 -0
  23. package/dist/commands/objectives.js +243 -0
  24. package/dist/commands/objectives.js.map +1 -0
  25. package/dist/commands/register.js +5 -6
  26. package/dist/commands/register.js.map +1 -1
  27. package/dist/commands/social.js +3 -0
  28. package/dist/commands/social.js.map +1 -1
  29. package/dist/commands/tasks.d.ts +2 -0
  30. package/dist/commands/tasks.js +400 -0
  31. package/dist/commands/tasks.js.map +1 -0
  32. package/dist/commands/usage.js +5 -5
  33. package/dist/commands/video.js +259 -11
  34. package/dist/commands/video.js.map +1 -1
  35. package/dist/config.js +1 -1
  36. package/dist/config.js.map +1 -1
  37. package/dist/index.js +30 -6
  38. package/dist/index.js.map +1 -1
  39. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@ Command-line interface for the Naive API v2. Register, manage identity, and use
4
4
 
5
5
  ## What It Provides
6
6
 
7
- - **Auth & Onboarding** — Register new accounts (email + password) or log in to existing ones; API keys are minted automatically
7
+ - **Auth & Onboarding** — Register new accounts, login, link existing ones, manage API keys
8
8
  - **Identity** — View agent profile, company, email inboxes, resources
9
9
  - **Domains** — List domains, connect custom domains (BYOD), view DNS records, verify, search, purchase
10
10
  - **Billing** — Plans, subscribe, upgrade, credit top-ups, billing portal
@@ -71,10 +71,10 @@ The CLI stores config at `~/.naive/config.json`:
71
71
  }
72
72
  ```
73
73
 
74
- Set via registration or environment. Auth is **email + password only** — the CLI mints the API key for you.
74
+ Set via registration or environment:
75
75
 
76
76
  ```bash
77
- # Auto-saved on register / login
77
+ # Auto-saved on register/login/link
78
78
  naive register --name "My Agent" --email owner@example.com --password yourpassword
79
79
 
80
80
  # Or set manually
@@ -82,14 +82,13 @@ export NAIVE_API_KEY=nv_sk_live_...
82
82
  export NAIVE_BASE_URL=http://localhost:3100 # for local dev
83
83
  ```
84
84
 
85
- > **Agents and AI assistants**: only use `naive register` (new owner) or `naive login` (existing owner). Do not instruct the user to open `app.usenaive.ai`, "Sign in with Google," or copy an API key from a Settings / Developers / Keys page — the CLI does that for you.
86
-
87
85
  ### Commands
88
86
 
89
87
  ```bash
90
- # Auth (email + password only — API key is provisioned automatically)
88
+ # Auth
91
89
  naive register --name "Agent" --email user@example.com --password mypassword --company "Acme"
92
90
  naive login --email user@example.com --password mypassword
91
+ naive link --email existing@example.com
93
92
  naive whoami
94
93
  naive companies
95
94
  naive keys list
@@ -101,6 +100,48 @@ naive identity
101
100
  naive identity emails
102
101
  naive identity resources
103
102
 
103
+ # CEO (orchestration)
104
+ naive ceo run "Launch my product"
105
+ naive ceo stream <runId>
106
+ naive ceo message "Approved, hire the team"
107
+ naive ceo status
108
+ naive ceo sessions
109
+
110
+ # Tasks (kanban)
111
+ naive tasks list
112
+ naive tasks list --status running --assignee "Jordan Kim"
113
+ naive tasks create "Build landing page" --description "Responsive hero section" --assignee "Jordan Kim" --priority high
114
+ naive tasks show <id> # Accepts UUID or hermes task ID (t_*)
115
+ naive tasks complete <id> --summary "Deployed to prod"
116
+ naive tasks block <id> --reason "Waiting for DNS"
117
+ naive tasks unblock <id>
118
+ naive tasks comment <id> "Added SEO meta tags"
119
+ naive tasks dispatch
120
+ naive tasks stats
121
+
122
+ # Employees
123
+ naive employees list
124
+ naive employees hire --name "Jordan Kim" --role engineer --skills "typescript,react"
125
+ naive employees fire <id>
126
+ naive employees configure <id> --model gpt-4o
127
+
128
+ # Objectives
129
+ naive objectives list
130
+ naive objectives create "Launch product" --criteria "100 signups"
131
+ naive objectives update <id> --status completed
132
+ naive objectives show <id>
133
+
134
+ # Cron Jobs
135
+ naive cron create "0 9 * * *" "Check email and summarize"
136
+ naive cron list
137
+ naive cron trigger <id>
138
+ naive cron pause <id>
139
+
140
+ # Memory
141
+ naive memory add --target memory "Brand color is #FF6B00"
142
+ naive memory list
143
+ naive memory remove <id>
144
+
104
145
  # Domains
105
146
  naive domains # List all domains
106
147
  naive domains connect example.com # Connect a custom domain (BYOD)
@@ -233,6 +274,12 @@ src/
233
274
  ├── client.ts # HTTP client (fetch wrapper with auth + error handling)
234
275
  ├── output.ts # Structured agent-native JSON output (agentOutput/agentError)
235
276
  └── commands/
277
+ ├── ceo.ts # naive ceo (run/message/status/sessions/stream)
278
+ ├── tasks.ts # naive tasks (list/create/show/complete/block/unblock/comment/dispatch/stats)
279
+ ├── employees.ts # naive employees (list/hire/fire/configure)
280
+ ├── objectives.ts # naive objectives (list/create/update/show)
281
+ ├── memory.ts # naive memory (add/list/remove)
282
+ ├── cron-jobs.ts # naive cron (create/list/trigger/pause/resume/delete)
236
283
  ├── register.ts # naive register
237
284
  ├── login.ts # naive login
238
285
  ├── link.ts # naive link
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const appsCmd: Command;
@@ -0,0 +1,424 @@
1
+ import { Command } from "commander";
2
+ import { apiRequest, handleApiError } from "../client.js";
3
+ import { agentOutput } from "../output.js";
4
+ export const appsCmd = new Command("apps")
5
+ .description("Web apps — create, deploy, manage Vercel-backed web applications with dedicated engineer agents")
6
+ .addHelpText("after", `
7
+ Subcommands:
8
+ naive apps list List all apps
9
+ naive apps create Create a new app
10
+ naive apps show <id> Show app details
11
+ naive apps delete <id> Delete an app
12
+ naive apps deploy <id> Trigger a preview deployment
13
+ naive apps publish <id> --deployment <id> Promote a deployment to production
14
+ naive apps deployments <id> List deployment history
15
+ naive apps retry <id> Retry failed provisioning
16
+ naive apps secrets list <id> List env variable keys
17
+ naive apps secrets set <id> <KEY> <VALUE> Set an env variable
18
+ naive apps secrets delete <id> <KEY> Delete an env variable
19
+ naive apps secrets reveal <id> <KEY> Reveal env variable value
20
+ naive apps domains list <id> List app domains
21
+ naive apps domains add <id> <domain> Add a custom domain
22
+ naive apps domains remove <id> <domainId> Remove a domain
23
+ naive apps domains connect <id> <domainId> Connect a company domain
24
+ naive apps domains disconnect <id> <domainId> Disconnect a company domain
25
+ naive apps domains verify-dns <id> <domainId> Verify DNS for connected domain
26
+ naive apps db tables <id> List database tables (fullstack only)
27
+ naive apps db query <id> "<sql>" Run SQL query (fullstack only)
28
+
29
+ Typical Workflow:
30
+ 1. naive apps create --name "My Site" --type frontend_only
31
+ → Creates Vercel project, provisions engineer agent
32
+ 2. Engineer builds the app (via task system or direct instruction)
33
+ 3. naive apps deploy <id>
34
+ → Pushes code to Vercel, returns preview URL
35
+ 4. naive apps publish <id> --deployment <deploymentId>
36
+ → Promotes preview to production
37
+ 5. naive apps domains connect <id> <domainId>
38
+ → Points a custom domain to the production app
39
+
40
+ Fullstack Workflow (adds Supabase):
41
+ 1. naive apps create --name "My App" --type fullstack
42
+ → Creates Vercel + Supabase project
43
+ 2. naive apps db tables <id> → inspect database schema
44
+ 3. naive apps db query <id> "..." → run ad-hoc queries
45
+ 4. naive apps secrets set <id> KEY VALUE --target production
46
+ → configure environment variables
47
+
48
+ Each app gets a dedicated engineer agent that can build, deploy, and iterate
49
+ on the code autonomously via the kanban task system.
50
+ `);
51
+ // ─── List ────────────────────────────────────────────────────────────────────
52
+ appsCmd
53
+ .command("list")
54
+ .description("List all apps for the current company")
55
+ .action(async () => {
56
+ const resp = await apiRequest("GET", "/v1/apps");
57
+ handleApiError("apps.list", resp);
58
+ const data = resp.data;
59
+ const count = data.apps?.length ?? 0;
60
+ agentOutput({
61
+ action: "apps.list",
62
+ result: resp.data,
63
+ next_steps: [
64
+ ...(count > 0
65
+ ? [{ command: `naive apps show ${data.apps[0].id}`, description: "View details of the first app" }]
66
+ : []),
67
+ { command: "naive apps create --name <name> --type frontend_only", description: "Create a new app" },
68
+ ],
69
+ hints: [`${count} app${count !== 1 ? "s" : ""} found`],
70
+ related_commands: ["naive apps create", "naive apps show", "naive apps deploy"],
71
+ });
72
+ });
73
+ // ─── Create ──────────────────────────────────────────────────────────────────
74
+ appsCmd
75
+ .command("create")
76
+ .description("Create a new web app with a dedicated engineer agent")
77
+ .requiredOption("--name <name>", "App name")
78
+ .requiredOption("--type <type>", "App type: frontend_only or fullstack")
79
+ .option("--variant <variant>", "Template variant: dark-premium, clean-minimal, bold-energetic, warm-human")
80
+ .option("--description <desc>", "Short description")
81
+ .action(async (opts) => {
82
+ const resp = await apiRequest("POST", "/v1/apps", {
83
+ name: opts.name,
84
+ type: opts.type,
85
+ ...(opts.variant && { variant: opts.variant }),
86
+ ...(opts.description && { description: opts.description }),
87
+ });
88
+ handleApiError("apps.create", resp);
89
+ const data = resp.data;
90
+ agentOutput({
91
+ action: "apps.create",
92
+ result: resp.data,
93
+ next_steps: [
94
+ { command: `naive apps show ${data.id}`, description: "View app details" },
95
+ { command: `naive apps deploy ${data.id}`, description: "Trigger first deployment" },
96
+ ],
97
+ hints: [
98
+ `App "${data.name}" created with status: ${data.status}`,
99
+ "An engineer agent has been provisioned and can build the app",
100
+ ],
101
+ related_commands: ["naive apps deploy", "naive apps secrets set", "naive apps show"],
102
+ });
103
+ });
104
+ // ─── Show ────────────────────────────────────────────────────────────────────
105
+ appsCmd
106
+ .command("show <id>")
107
+ .description("Show full details of an app")
108
+ .action(async (id) => {
109
+ const resp = await apiRequest("GET", `/v1/apps/${id}`);
110
+ handleApiError("apps.show", resp);
111
+ agentOutput({
112
+ action: "apps.show",
113
+ result: resp.data,
114
+ next_steps: [
115
+ { command: `naive apps deploy ${id}`, description: "Deploy latest code" },
116
+ { command: `naive apps deployments ${id}`, description: "View deployment history" },
117
+ { command: `naive apps secrets list ${id}`, description: "View environment variables" },
118
+ ],
119
+ related_commands: ["naive apps deploy", "naive apps publish", "naive apps secrets set", "naive apps delete"],
120
+ });
121
+ });
122
+ // ─── Delete ──────────────────────────────────────────────────────────────────
123
+ appsCmd
124
+ .command("delete <id>")
125
+ .description("Permanently delete an app and all infrastructure")
126
+ .action(async (id) => {
127
+ const resp = await apiRequest("DELETE", `/v1/apps/${id}`);
128
+ handleApiError("apps.delete", resp);
129
+ agentOutput({
130
+ action: "apps.delete",
131
+ result: resp.data,
132
+ next_steps: [{ command: "naive apps list", description: "View remaining apps" }],
133
+ hints: ["App and all associated resources have been deleted"],
134
+ });
135
+ });
136
+ // ─── Deploy ──────────────────────────────────────────────────────────────────
137
+ appsCmd
138
+ .command("deploy <id>")
139
+ .description("Trigger a preview deployment from the current workspace code")
140
+ .option("--workspace-path <path>", "Override workspace path (relative to hermes home)")
141
+ .action(async (id, opts) => {
142
+ const body = {};
143
+ if (opts.workspacePath) {
144
+ body.workspacePath = opts.workspacePath;
145
+ }
146
+ else {
147
+ // Auto-detect: if CWD contains an app/ dir and HERMES_HOME is set,
148
+ // send the relative path so the API deploys from the right location
149
+ const hermesHome = process.env.HERMES_HOME;
150
+ const cwd = process.cwd();
151
+ if (hermesHome && cwd.startsWith(hermesHome)) {
152
+ const fs = await import("node:fs");
153
+ const appDir = `${cwd}/app`;
154
+ if (fs.existsSync(appDir)) {
155
+ body.workspacePath = cwd.slice(hermesHome.length + 1);
156
+ }
157
+ }
158
+ }
159
+ const resp = await apiRequest("POST", `/v1/apps/${id}/deploy`, Object.keys(body).length > 0 ? body : undefined);
160
+ handleApiError("apps.deploy", resp);
161
+ const data = resp.data;
162
+ agentOutput({
163
+ action: "apps.deploy",
164
+ result: resp.data,
165
+ next_steps: [
166
+ { command: `naive apps publish ${id} --deployment ${data.id}`, description: "Promote to production" },
167
+ { command: `naive apps deployments ${id}`, description: "View all deployments" },
168
+ ],
169
+ hints: [`Preview deployment: ${data.url}`],
170
+ related_commands: ["naive apps publish", "naive apps deployments"],
171
+ });
172
+ });
173
+ // ─── Publish ─────────────────────────────────────────────────────────────────
174
+ appsCmd
175
+ .command("publish <id>")
176
+ .description("Promote a deployment to production")
177
+ .requiredOption("--deployment <deploymentId>", "Deployment ID to promote")
178
+ .action(async (id, opts) => {
179
+ const resp = await apiRequest("POST", `/v1/apps/${id}/publish`, {
180
+ deploymentId: opts.deployment,
181
+ });
182
+ handleApiError("apps.publish", resp);
183
+ const data = resp.data;
184
+ agentOutput({
185
+ action: "apps.publish",
186
+ result: resp.data,
187
+ next_steps: [
188
+ { command: `naive apps show ${id}`, description: "View updated app details" },
189
+ { command: `naive apps domains connect ${id} <domainId>`, description: "Connect a custom domain" },
190
+ ],
191
+ hints: [`Production URL: ${data.url}`],
192
+ });
193
+ });
194
+ // ─── Deployments ─────────────────────────────────────────────────────────────
195
+ appsCmd
196
+ .command("deployments <id>")
197
+ .description("List deployment history for an app")
198
+ .action(async (id) => {
199
+ const resp = await apiRequest("GET", `/v1/apps/${id}/deployments`);
200
+ handleApiError("apps.deployments", resp);
201
+ const data = resp.data;
202
+ const count = data.deployments?.length ?? 0;
203
+ agentOutput({
204
+ action: "apps.deployments",
205
+ result: resp.data,
206
+ next_steps: count > 0
207
+ ? [{ command: `naive apps publish ${id} --deployment ${data.deployments[0].id}`, description: "Promote latest to production" }]
208
+ : [{ command: `naive apps deploy ${id}`, description: "Trigger a deployment" }],
209
+ hints: [`${count} deployment${count !== 1 ? "s" : ""}`],
210
+ });
211
+ });
212
+ // ─── Secrets ─────────────────────────────────────────────────────────────────
213
+ const secretsCmd = appsCmd
214
+ .command("secrets")
215
+ .description("Manage app environment variables");
216
+ secretsCmd
217
+ .command("list <appId>")
218
+ .description("List environment variable keys (values are hidden)")
219
+ .action(async (appId) => {
220
+ const resp = await apiRequest("GET", `/v1/apps/${appId}/secrets`);
221
+ handleApiError("apps.secrets.list", resp);
222
+ agentOutput({
223
+ action: "apps.secrets.list",
224
+ result: resp.data,
225
+ next_steps: [
226
+ { command: `naive apps secrets set ${appId} MY_KEY my_value --target preview`, description: "Add a variable" },
227
+ ],
228
+ related_commands: ["naive apps secrets set", "naive apps secrets delete", "naive apps secrets reveal"],
229
+ });
230
+ });
231
+ secretsCmd
232
+ .command("set <appId> <key> <value>")
233
+ .description("Create or update an environment variable")
234
+ .requiredOption("--target <target>", "Target: preview or production")
235
+ .action(async (appId, key, value, opts) => {
236
+ const resp = await apiRequest("POST", `/v1/apps/${appId}/secrets`, {
237
+ key,
238
+ value,
239
+ target: opts.target,
240
+ });
241
+ handleApiError("apps.secrets.set", resp);
242
+ agentOutput({
243
+ action: "apps.secrets.set",
244
+ result: resp.data,
245
+ next_steps: [
246
+ { command: `naive apps secrets list ${appId}`, description: "View all variables" },
247
+ { command: `naive apps deploy ${appId}`, description: "Redeploy to apply changes" },
248
+ ],
249
+ hints: [`Set ${key} for ${opts.target}. Redeploy for changes to take effect.`],
250
+ });
251
+ });
252
+ secretsCmd
253
+ .command("delete <appId> <key>")
254
+ .description("Delete an environment variable")
255
+ .requiredOption("--target <target>", "Target: preview or production")
256
+ .action(async (appId, key, opts) => {
257
+ const resp = await apiRequest("DELETE", `/v1/apps/${appId}/secrets/${encodeURIComponent(key)}?target=${opts.target}`);
258
+ handleApiError("apps.secrets.delete", resp);
259
+ agentOutput({
260
+ action: "apps.secrets.delete",
261
+ result: resp.data,
262
+ next_steps: [{ command: `naive apps secrets list ${appId}`, description: "View remaining variables" }],
263
+ hints: [`Deleted ${key} from ${opts.target}`],
264
+ });
265
+ });
266
+ secretsCmd
267
+ .command("reveal <appId> <key>")
268
+ .description("Reveal the value of an environment variable")
269
+ .requiredOption("--target <target>", "Target: preview or production")
270
+ .action(async (appId, key, opts) => {
271
+ const resp = await apiRequest("GET", `/v1/apps/${appId}/secrets/${encodeURIComponent(key)}/reveal?target=${opts.target}`);
272
+ handleApiError("apps.secrets.reveal", resp);
273
+ agentOutput({
274
+ action: "apps.secrets.reveal",
275
+ result: resp.data,
276
+ next_steps: [
277
+ { command: `naive apps secrets set ${appId} ${key} <new-value> --target ${opts.target}`, description: "Update this variable" },
278
+ ],
279
+ });
280
+ });
281
+ // ─── Domains ─────────────────────────────────────────────────────────────────
282
+ const domainsCmd = appsCmd
283
+ .command("domains")
284
+ .description("Manage app domains");
285
+ domainsCmd
286
+ .command("list <appId>")
287
+ .description("List domains attached to an app")
288
+ .action(async (appId) => {
289
+ const resp = await apiRequest("GET", `/v1/apps/${appId}/domains`);
290
+ handleApiError("apps.domains.list", resp);
291
+ agentOutput({
292
+ action: "apps.domains.list",
293
+ result: resp.data,
294
+ next_steps: [
295
+ { command: `naive apps domains add ${appId} example.com`, description: "Add a custom domain" },
296
+ { command: `naive apps domains connect ${appId} <domainId>`, description: "Connect a company domain" },
297
+ ],
298
+ });
299
+ });
300
+ domainsCmd
301
+ .command("add <appId> <domain>")
302
+ .description("Add a custom domain to an app")
303
+ .action(async (appId, domain) => {
304
+ const resp = await apiRequest("POST", `/v1/apps/${appId}/domains`, { domain });
305
+ handleApiError("apps.domains.add", resp);
306
+ agentOutput({
307
+ action: "apps.domains.add",
308
+ result: resp.data,
309
+ next_steps: [{ command: `naive apps domains list ${appId}`, description: "View all domains" }],
310
+ hints: [`Added domain ${domain}. Configure DNS records to point to Vercel.`],
311
+ });
312
+ });
313
+ domainsCmd
314
+ .command("remove <appId> <domainId>")
315
+ .description("Remove a domain from an app")
316
+ .action(async (appId, domainId) => {
317
+ const resp = await apiRequest("DELETE", `/v1/apps/${appId}/domains/${domainId}`);
318
+ handleApiError("apps.domains.remove", resp);
319
+ agentOutput({
320
+ action: "apps.domains.remove",
321
+ result: resp.data,
322
+ next_steps: [{ command: `naive apps domains list ${appId}`, description: "View remaining domains" }],
323
+ });
324
+ });
325
+ domainsCmd
326
+ .command("connect <appId> <domainId>")
327
+ .description("Connect a company-owned domain to an app as its production domain")
328
+ .action(async (appId, domainId) => {
329
+ const resp = await apiRequest("POST", `/v1/apps/${appId}/connect-domain`, { domainId });
330
+ handleApiError("apps.domains.connect", resp);
331
+ const data = resp.data;
332
+ agentOutput({
333
+ action: "apps.domains.connect",
334
+ result: resp.data,
335
+ next_steps: data.pendingDns
336
+ ? [{ command: `naive apps domains verify-dns ${appId} ${domainId}`, description: "Verify DNS after configuring records" }]
337
+ : [{ command: `naive apps show ${appId}`, description: "View updated app" }],
338
+ hints: data.pendingDns
339
+ ? [`DNS records required for ${data.domain}. Add A and CNAME records, then verify.`]
340
+ : [`Domain ${data.domain} connected successfully`],
341
+ });
342
+ });
343
+ domainsCmd
344
+ .command("disconnect <appId> <domainId>")
345
+ .description("Disconnect a company domain from an app")
346
+ .action(async (appId, domainId) => {
347
+ const resp = await apiRequest("DELETE", `/v1/apps/${appId}/connect-domain/${domainId}`);
348
+ handleApiError("apps.domains.disconnect", resp);
349
+ agentOutput({
350
+ action: "apps.domains.disconnect",
351
+ result: resp.data,
352
+ next_steps: [{ command: `naive apps show ${appId}`, description: "View updated app" }],
353
+ });
354
+ });
355
+ domainsCmd
356
+ .command("verify-dns <appId> <domainId>")
357
+ .description("Verify DNS configuration for a connected domain")
358
+ .action(async (appId, domainId) => {
359
+ const resp = await apiRequest("POST", `/v1/apps/${appId}/verify-domain-dns`, { domainId });
360
+ handleApiError("apps.domains.verify-dns", resp);
361
+ const data = resp.data;
362
+ agentOutput({
363
+ action: "apps.domains.verify-dns",
364
+ result: resp.data,
365
+ next_steps: data.verified
366
+ ? [{ command: `naive apps show ${appId}`, description: "View app with verified domain" }]
367
+ : [{ command: `naive apps domains verify-dns ${appId} ${domainId}`, description: "Try again after DNS propagation (up to 48h)" }],
368
+ hints: data.verified
369
+ ? [`Domain ${data.domain} verified and connected`]
370
+ : [`DNS not ready for ${data.domain}. Propagation can take up to 48 hours.`],
371
+ });
372
+ });
373
+ // ─── Retry ──────────────────────────────────────────────────────────────────
374
+ appsCmd
375
+ .command("retry <id>")
376
+ .description("Retry failed provisioning (Vercel/Supabase setup)")
377
+ .action(async (id) => {
378
+ const resp = await apiRequest("POST", `/v1/apps/${id}/retry`);
379
+ handleApiError("apps.retry", resp);
380
+ agentOutput({
381
+ action: "apps.retry",
382
+ result: resp.data,
383
+ next_steps: [
384
+ { command: `naive apps show ${id}`, description: "Check provisioning status" },
385
+ ],
386
+ hints: ["Retrying provisioning — check status in a few seconds"],
387
+ related_commands: ["naive apps show", "naive apps deploy"],
388
+ });
389
+ });
390
+ // ─── Database (fullstack apps) ──────────────────────────────────────────────
391
+ const dbCmd = appsCmd
392
+ .command("db")
393
+ .description("Database operations for fullstack apps (Supabase)");
394
+ dbCmd
395
+ .command("tables <appId>")
396
+ .description("List database tables for a fullstack app")
397
+ .action(async (appId) => {
398
+ const resp = await apiRequest("GET", `/v1/apps/${appId}/db/tables`);
399
+ handleApiError("apps.db.tables", resp);
400
+ agentOutput({
401
+ action: "apps.db.tables",
402
+ result: resp.data,
403
+ next_steps: [
404
+ { command: `naive apps db query ${appId} "SELECT * FROM <table> LIMIT 10"`, description: "Query a table" },
405
+ ],
406
+ related_commands: ["naive apps db query"],
407
+ });
408
+ });
409
+ dbCmd
410
+ .command("query <appId> <sql>")
411
+ .description("Run a SQL query against the app's Supabase database")
412
+ .action(async (appId, sql) => {
413
+ const resp = await apiRequest("POST", `/v1/apps/${appId}/db/query`, { sql });
414
+ handleApiError("apps.db.query", resp);
415
+ agentOutput({
416
+ action: "apps.db.query",
417
+ result: resp.data,
418
+ next_steps: [
419
+ { command: `naive apps db tables ${appId}`, description: "List available tables" },
420
+ ],
421
+ related_commands: ["naive apps db tables"],
422
+ });
423
+ });
424
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/commands/apps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const ceoCmd: Command;