@usenaive-sdk/cli 0.12.2 → 0.13.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 (193) hide show
  1. package/README.md +76 -5
  2. package/dist/client.d.ts +74 -1
  3. package/dist/client.js +351 -17
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/aeo.js +69 -27
  6. package/dist/commands/aeo.js.map +1 -1
  7. package/dist/commands/app-data.js +29 -11
  8. package/dist/commands/app-data.js.map +1 -1
  9. package/dist/commands/apps.d.ts +7 -0
  10. package/dist/commands/apps.js +255 -18
  11. package/dist/commands/apps.js.map +1 -1
  12. package/dist/commands/audio.d.ts +9 -0
  13. package/dist/commands/audio.js +391 -0
  14. package/dist/commands/audio.js.map +1 -0
  15. package/dist/commands/auth.d.ts +31 -0
  16. package/dist/commands/auth.js +403 -0
  17. package/dist/commands/auth.js.map +1 -0
  18. package/dist/commands/billing.js +12 -12
  19. package/dist/commands/billing.js.map +1 -1
  20. package/dist/commands/brain.d.ts +2 -0
  21. package/dist/commands/brain.js +1255 -0
  22. package/dist/commands/brain.js.map +1 -0
  23. package/dist/commands/browser.js +35 -8
  24. package/dist/commands/browser.js.map +1 -1
  25. package/dist/commands/business.js +117 -16
  26. package/dist/commands/business.js.map +1 -1
  27. package/dist/commands/clone.d.ts +2 -0
  28. package/dist/commands/clone.js +203 -0
  29. package/dist/commands/clone.js.map +1 -0
  30. package/dist/commands/companies.d.ts +8 -0
  31. package/dist/commands/companies.js +137 -47
  32. package/dist/commands/companies.js.map +1 -1
  33. package/dist/commands/company-data.d.ts +2 -0
  34. package/dist/commands/company-data.js +168 -0
  35. package/dist/commands/company-data.js.map +1 -0
  36. package/dist/commands/compute.js +10 -3
  37. package/dist/commands/compute.js.map +1 -1
  38. package/dist/commands/config.d.ts +2 -0
  39. package/dist/commands/config.js +36 -0
  40. package/dist/commands/config.js.map +1 -0
  41. package/dist/commands/connections.d.ts +6 -0
  42. package/dist/commands/connections.js +29 -1
  43. package/dist/commands/connections.js.map +1 -1
  44. package/dist/commands/domains.js +1 -1
  45. package/dist/commands/ecommerce.js +19 -9
  46. package/dist/commands/ecommerce.js.map +1 -1
  47. package/dist/commands/email.js +56 -9
  48. package/dist/commands/email.js.map +1 -1
  49. package/dist/commands/env.d.ts +3 -3
  50. package/dist/commands/env.js +68 -4
  51. package/dist/commands/env.js.map +1 -1
  52. package/dist/commands/formation.js +3 -3
  53. package/dist/commands/identity.js +4 -3
  54. package/dist/commands/identity.js.map +1 -1
  55. package/dist/commands/images.js +87 -13
  56. package/dist/commands/images.js.map +1 -1
  57. package/dist/commands/init.d.ts +3 -0
  58. package/dist/commands/init.js +39 -36
  59. package/dist/commands/init.js.map +1 -1
  60. package/dist/commands/jobs.js +1 -0
  61. package/dist/commands/jobs.js.map +1 -1
  62. package/dist/commands/keys.js +26 -3
  63. package/dist/commands/keys.js.map +1 -1
  64. package/dist/commands/legacy-auth.d.ts +27 -0
  65. package/dist/commands/legacy-auth.js +64 -0
  66. package/dist/commands/legacy-auth.js.map +1 -0
  67. package/dist/commands/llm.js +13 -0
  68. package/dist/commands/llm.js.map +1 -1
  69. package/dist/commands/login.js +2 -0
  70. package/dist/commands/login.js.map +1 -1
  71. package/dist/commands/loops.d.ts +2 -0
  72. package/dist/commands/loops.js +260 -0
  73. package/dist/commands/loops.js.map +1 -0
  74. package/dist/commands/media.js +3 -3
  75. package/dist/commands/media.js.map +1 -1
  76. package/dist/commands/mobile.d.ts +4 -0
  77. package/dist/commands/mobile.js +382 -0
  78. package/dist/commands/mobile.js.map +1 -0
  79. package/dist/commands/payments.d.ts +2 -0
  80. package/dist/commands/payments.js +131 -0
  81. package/dist/commands/payments.js.map +1 -0
  82. package/dist/commands/people.d.ts +2 -0
  83. package/dist/commands/people.js +193 -0
  84. package/dist/commands/people.js.map +1 -0
  85. package/dist/commands/phone.js +3 -3
  86. package/dist/commands/phone.js.map +1 -1
  87. package/dist/commands/projects.d.ts +13 -0
  88. package/dist/commands/projects.js +220 -0
  89. package/dist/commands/projects.js.map +1 -0
  90. package/dist/commands/register.js +16 -8
  91. package/dist/commands/register.js.map +1 -1
  92. package/dist/commands/sandbox.d.ts +2 -0
  93. package/dist/commands/sandbox.js +245 -0
  94. package/dist/commands/sandbox.js.map +1 -0
  95. package/dist/commands/search.js +26 -12
  96. package/dist/commands/search.js.map +1 -1
  97. package/dist/commands/seo.js +16 -8
  98. package/dist/commands/seo.js.map +1 -1
  99. package/dist/commands/sessions.d.ts +6 -0
  100. package/dist/commands/sessions.js +109 -0
  101. package/dist/commands/sessions.js.map +1 -0
  102. package/dist/commands/social-data.d.ts +2 -0
  103. package/dist/commands/social-data.js +244 -0
  104. package/dist/commands/social-data.js.map +1 -0
  105. package/dist/commands/social.js +8 -6
  106. package/dist/commands/social.js.map +1 -1
  107. package/dist/commands/teams.d.ts +69 -0
  108. package/dist/commands/teams.js +503 -0
  109. package/dist/commands/teams.js.map +1 -0
  110. package/dist/commands/up.d.ts +150 -0
  111. package/dist/commands/up.js +415 -15
  112. package/dist/commands/up.js.map +1 -1
  113. package/dist/commands/usage.js +15 -4
  114. package/dist/commands/usage.js.map +1 -1
  115. package/dist/commands/use.d.ts +9 -0
  116. package/dist/commands/use.js +76 -11
  117. package/dist/commands/use.js.map +1 -1
  118. package/dist/commands/users.d.ts +8 -0
  119. package/dist/commands/users.js +28 -9
  120. package/dist/commands/users.js.map +1 -1
  121. package/dist/commands/vault.js +28 -1
  122. package/dist/commands/vault.js.map +1 -1
  123. package/dist/commands/video.js +190 -270
  124. package/dist/commands/video.js.map +1 -1
  125. package/dist/commands/voice.d.ts +2 -0
  126. package/dist/commands/voice.js +516 -0
  127. package/dist/commands/voice.js.map +1 -0
  128. package/dist/commands/wallet.d.ts +2 -0
  129. package/dist/commands/wallet.js +244 -0
  130. package/dist/commands/wallet.js.map +1 -0
  131. package/dist/commands/whoami.js +17 -1
  132. package/dist/commands/whoami.js.map +1 -1
  133. package/dist/config.d.ts +24 -1
  134. package/dist/config.js +36 -7
  135. package/dist/config.js.map +1 -1
  136. package/dist/index.d.ts +2 -1
  137. package/dist/index.js +290 -20
  138. package/dist/index.js.map +1 -1
  139. package/dist/lib/brain-select.d.ts +193 -0
  140. package/dist/lib/brain-select.js +403 -0
  141. package/dist/lib/brain-select.js.map +1 -0
  142. package/dist/lib/cli-validation.d.ts +12 -0
  143. package/dist/lib/cli-validation.js +46 -0
  144. package/dist/lib/cli-validation.js.map +1 -0
  145. package/dist/lib/deprecation.d.ts +158 -0
  146. package/dist/lib/deprecation.js +140 -0
  147. package/dist/lib/deprecation.js.map +1 -0
  148. package/dist/lib/duration.d.ts +8 -0
  149. package/dist/lib/duration.js +11 -0
  150. package/dist/lib/duration.js.map +1 -0
  151. package/dist/lib/http-response.d.ts +11 -0
  152. package/dist/lib/http-response.js +96 -0
  153. package/dist/lib/http-response.js.map +1 -0
  154. package/dist/lib/pricing.d.ts +132 -0
  155. package/dist/lib/pricing.js +148 -0
  156. package/dist/lib/pricing.js.map +1 -0
  157. package/dist/lib/stream-frames.d.ts +114 -0
  158. package/dist/lib/stream-frames.js +169 -0
  159. package/dist/lib/stream-frames.js.map +1 -0
  160. package/dist/lib/teams-catalog.d.ts +141 -0
  161. package/dist/lib/teams-catalog.js +765 -0
  162. package/dist/lib/teams-catalog.js.map +1 -0
  163. package/dist/lib/unknown-command.d.ts +57 -0
  164. package/dist/lib/unknown-command.js +93 -0
  165. package/dist/lib/unknown-command.js.map +1 -0
  166. package/dist/lib/version-check.d.ts +26 -0
  167. package/dist/lib/version-check.js +21 -0
  168. package/dist/lib/version-check.js.map +1 -0
  169. package/dist/output.d.ts +119 -10
  170. package/dist/output.js +309 -15
  171. package/dist/output.js.map +1 -1
  172. package/dist/prompt.d.ts +17 -0
  173. package/dist/prompt.js +70 -0
  174. package/dist/prompt.js.map +1 -0
  175. package/package.json +11 -6
  176. package/dist/commands/billing-client.d.ts +0 -2
  177. package/dist/commands/billing-client.js +0 -271
  178. package/dist/commands/billing-client.js.map +0 -1
  179. package/dist/commands/crm-app.d.ts +0 -2
  180. package/dist/commands/crm-app.js +0 -306
  181. package/dist/commands/crm-app.js.map +0 -1
  182. package/dist/commands/crm.d.ts +0 -2
  183. package/dist/commands/crm.js +0 -319
  184. package/dist/commands/crm.js.map +0 -1
  185. package/dist/commands/integrations.d.ts +0 -2
  186. package/dist/commands/integrations.js +0 -199
  187. package/dist/commands/integrations.js.map +0 -1
  188. package/dist/commands/link.d.ts +0 -3
  189. package/dist/commands/link.js +0 -91
  190. package/dist/commands/link.js.map +0 -1
  191. package/dist/commands/operators.d.ts +0 -11
  192. package/dist/commands/operators.js +0 -120
  193. package/dist/commands/operators.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ import { Command, Option } from "commander";
2
+ import { readFileSync, existsSync } from "node:fs";
3
+ import { basename } from "node:path";
4
+ import { apiRequest, handleApiError, parseJsonOrUpstreamError } from "../client.js";
5
+ import { loadConfig, getApiKey } from "../config.js";
6
+ import { agentOutput, formatApiError } from "../output.js";
7
+ // naive clone generate — one-shot digital-twin video (reference image + a saved cloned
8
+ // voice + a script + an optional scene -> a lip-synced talking video). Mirrors
9
+ // `naive video generate`: submit (async, returns a job id), optional --wait poll.
10
+ // If --image is a LOCAL path, it is uploaded via `media upload` first to get a public URL.
11
+ export const cloneCmd = new Command("clone")
12
+ .description("Generate a lip-synced talking video of a real person from a reference image + a saved cloned voice + a script")
13
+ .addHelpText("after", `
14
+ Subcommands:
15
+ naive clone generate Generate a talking video (image + voice + script -> video)
16
+ naive clone status Check a clone generation job
17
+
18
+ Examples:
19
+ $ naive clone generate --voice <voice_id> --image ./frame.png --text "Hey, welcome." --i-affirm
20
+ $ naive clone generate --voice <voice_id> --image https://example.com/frame.jpg \\
21
+ --text "Walking the pool deck" --scene "cliffside mansion pool deck at golden hour" --i-affirm --wait
22
+
23
+ Cost:
24
+ - Image edit (only with --scene) + animate, billed on completion. The voice synth is
25
+ billed on its own meter. Credits deducted only on successful completion.
26
+ `);
27
+ cloneCmd
28
+ .command("generate")
29
+ .description("Generate a talking video (async — returns a job ID)")
30
+ .requiredOption("--voice <id>", "An existing cloned voice profile id (the subject's voice + consent)")
31
+ .requiredOption("--image <path|url>", "Reference image — a local file path or a public https URL")
32
+ .requiredOption("--text <script>", "The script the cloned voice should speak")
33
+ .option("--scene <description>", "Optional scene/relight, e.g. 'cliffside pool deck at golden hour'")
34
+ .addOption(new Option("--quality <tier>", "Animate model: 'max' (OmniHuman, best lip-sync, default) or 'fast' (Kling, ~27% cheaper, stabler background)").choices(["max", "fast"]))
35
+ .option("--i-affirm", "Affirm the depicted person consented to this likeness animation (required)")
36
+ .option("--wait", "Wait for the job to complete (polls until done)")
37
+ .addHelpText("after", `
38
+ What this does:
39
+ 1. (If --image is a local file) uploads it to get a public URL
40
+ 2. Submits a clone generation job (image + voice + script [+ scene])
41
+ 3. Returns a job ID (async, typically 1-3 minutes)
42
+ 4. Use --wait to block until done, or check with 'naive clone status'
43
+
44
+ Consent:
45
+ --i-affirm is required: you attest the depicted person consented to this likeness
46
+ animation. The voice must be a saved cloned-voice profile with self or verified
47
+ third-party consent (you are animating that subject's likeness), AND that consent
48
+ must authorize the clone_generate use. Clone the voice with that use enabled:
49
+ naive voice clone <file> --consent-type self --i-affirm \\
50
+ --authorized-uses voice_synthesis,clone_generate ...
51
+ A voice cloned without clone_generate in --authorized-uses will be rejected.
52
+ `)
53
+ .action(async (opts) => {
54
+ if (!opts.iAffirm) {
55
+ console.error(JSON.stringify({
56
+ success: false,
57
+ action: "clone.generate",
58
+ error: {
59
+ code: "missing_argument",
60
+ message: "--i-affirm is required: affirm the depicted person consented to this likeness animation",
61
+ },
62
+ recovery_steps: [
63
+ {
64
+ command: 'naive clone generate --voice <id> --image <path|url> --text "..." --i-affirm',
65
+ description: "Re-run with the consent affirmation",
66
+ },
67
+ ],
68
+ }, null, 2));
69
+ process.exit(1);
70
+ }
71
+ // Resolve --image to a public URL. A local path is uploaded first (the S3 bucket
72
+ // returns a presigned URL fal can GET); an http(s) URL is passed through unchanged.
73
+ let imageUrl = opts.image;
74
+ if (!/^https?:\/\//i.test(opts.image)) {
75
+ if (!existsSync(opts.image)) {
76
+ console.error(JSON.stringify({
77
+ success: false,
78
+ action: "clone.generate",
79
+ error: { code: "invalid_input", message: `Image file not found: ${opts.image}` },
80
+ }, null, 2));
81
+ process.exit(1);
82
+ }
83
+ imageUrl = await uploadLocalImage(opts.image);
84
+ }
85
+ const resp = await apiRequest("POST", "/v1/clone/generate", {
86
+ voice_id: opts.voice,
87
+ image_url: imageUrl,
88
+ text: opts.text,
89
+ ...(opts.scene ? { scene: opts.scene } : {}),
90
+ ...(opts.quality ? { quality: opts.quality } : {}),
91
+ i_affirm: true,
92
+ });
93
+ handleApiError("clone.generate", resp);
94
+ const data = resp.data;
95
+ if (opts.wait) {
96
+ agentOutput({
97
+ action: "clone.generate.submitted",
98
+ result: { job_id: data.job_id, status: "polling" },
99
+ next_steps: [],
100
+ hints: ["Waiting for clone generation to complete (typically 1-3 minutes)..."],
101
+ });
102
+ await pollJob(data.job_id);
103
+ }
104
+ else {
105
+ agentOutput({
106
+ action: "clone.generate.submitted",
107
+ result: { job_id: data.job_id, status: "queued" },
108
+ next_steps: [
109
+ { command: `naive clone status ${data.job_id}`, description: "Check clone generation progress" },
110
+ { command: `naive jobs get ${data.job_id}`, description: "Get full job details" },
111
+ ],
112
+ hints: [
113
+ "Clone generation submitted",
114
+ "Credits deducted only on successful completion",
115
+ "Typical time: 1-3 minutes",
116
+ ],
117
+ related_commands: ["naive clone status", "naive jobs"],
118
+ });
119
+ }
120
+ });
121
+ cloneCmd
122
+ .command("status <job_id>")
123
+ .description("Check the status of a clone generation job")
124
+ .addHelpText("after", `
125
+ Examples:
126
+ $ naive clone status 550e8400-e29b-41d4-a716-446655440000
127
+
128
+ When completed, the result includes the talking-video URL (result.url).
129
+ `)
130
+ .action(async (jobId) => {
131
+ const resp = await apiRequest("GET", `/v1/clone/${jobId}`);
132
+ handleApiError("clone.status", resp);
133
+ const data = resp.data;
134
+ agentOutput({
135
+ action: "clone.status",
136
+ result: resp.data,
137
+ next_steps: [
138
+ ...(data.status === "completed" && data.result?.url
139
+ ? [{ command: `# Download: curl -o clone.mp4 "${data.result.url}"`, description: "Download the talking video" }]
140
+ : []),
141
+ ...(data.status === "queued" || data.status === "processing"
142
+ ? [{ command: `naive clone status ${jobId}`, description: "Check again in 10-30 seconds" }]
143
+ : []),
144
+ ],
145
+ hints: [`Job status: ${data.status}`],
146
+ related_commands: ["naive clone generate", "naive jobs"],
147
+ });
148
+ });
149
+ // Upload a local image and return its presigned public URL (so fal can GET it). Mirrors
150
+ // the local-file branch of `media upload` (multipart to /v1/media/upload/file).
151
+ async function uploadLocalImage(filePath) {
152
+ const fileBuffer = readFileSync(filePath);
153
+ const filename = basename(filePath);
154
+ const config = loadConfig();
155
+ const url = `${config.base_url}/v1/media/upload/file`;
156
+ const formData = new FormData();
157
+ formData.append("file", new Blob([fileBuffer]), filename);
158
+ const resp = await fetch(url, {
159
+ method: "POST",
160
+ headers: { Authorization: `Bearer ${getApiKey()}` },
161
+ body: formData,
162
+ });
163
+ // parseJsonOrUpstreamError never throws on a non-JSON gateway page; a non-JSON
164
+ // body comes back as { error: { code: "upstream_error", … } }, so the guard below
165
+ // routes it through formatApiError like any other failure.
166
+ const data = (await parseJsonOrUpstreamError(resp));
167
+ if (resp.status >= 400 || !data.url) {
168
+ formatApiError("clone.generate", data);
169
+ process.exit(1);
170
+ }
171
+ return data.url;
172
+ }
173
+ // Polls a clone job to completion for `clone generate --wait`. Mirrors video.ts's pollJob.
174
+ async function pollJob(jobId) {
175
+ while (true) {
176
+ await new Promise((r) => setTimeout(r, 3000));
177
+ const resp = await apiRequest("GET", `/v1/jobs/${jobId}`);
178
+ handleApiError("clone.generate.poll", resp);
179
+ const data = resp.data;
180
+ if (data.status === "completed" || data.status === "failed") {
181
+ const videoUrl = data.result?.url;
182
+ agentOutput({
183
+ action: "clone.generate.completed",
184
+ result: resp.data,
185
+ // On success surface a download command; on failure point at the full job details.
186
+ next_steps: data.status === "completed" && videoUrl
187
+ ? [{ command: `curl -L -o clone.mp4 "${videoUrl}"`, description: "Download the talking video" }]
188
+ : [{ command: `naive jobs get ${jobId}`, description: "Get full job details" }],
189
+ hints: [
190
+ data.status === "completed"
191
+ ? videoUrl
192
+ ? `Clone generation complete — video: ${videoUrl}`
193
+ : "Clone generation complete"
194
+ : `Generation failed: ${data.error ?? "see job details"} (no credits deducted)`,
195
+ ],
196
+ related_commands: ["naive clone generate", "naive clone status", "naive jobs"],
197
+ });
198
+ return;
199
+ }
200
+ process.stderr.write(` Progress: ${data.progress ?? 0}% (${data.status})\n`);
201
+ }
202
+ }
203
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/commands/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3D,uFAAuF;AACvF,+EAA+E;AAC/E,kFAAkF;AAClF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACzC,WAAW,CAAC,+GAA+G,CAAC;KAC5H,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;CAavB,CAAC,CAAC;AAEH,QAAQ;KACL,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,qDAAqD,CAAC;KAClE,cAAc,CAAC,cAAc,EAAE,qEAAqE,CAAC;KACrG,cAAc,CAAC,oBAAoB,EAAE,2DAA2D,CAAC;KACjG,cAAc,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KAC7E,MAAM,CAAC,uBAAuB,EAAE,mEAAmE,CAAC;KACpG,SAAS,CAAC,IAAI,MAAM,CAAC,kBAAkB,EAAE,8GAA8G,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;KAClL,MAAM,CAAC,YAAY,EAAE,4EAA4E,CAAC;KAClG,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACnE,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;CAevB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,IAQd,EAAE,EAAE;IACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,yFAAyF;aACnG;YACD,cAAc,EAAE;gBACd;oBACE,OAAO,EAAE,8EAA8E;oBACvF,WAAW,EAAE,qCAAqC;iBACnD;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,oFAAoF;IACpF,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,IAAI,CAAC,KAAK,EAAE,EAAE;aACjF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE;QAC1D,QAAQ,EAAE,IAAI,CAAC,KAAK;QACpB,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;IAC7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,CAAC;YACV,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;YAClD,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,CAAC,qEAAqE,CAAC;SAC/E,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,WAAW,CAAC;YACV,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;YACjD,UAAU,EAAE;gBACV,EAAE,OAAO,EAAE,sBAAsB,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAChG,EAAE,OAAO,EAAE,kBAAkB,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE;aAClF;YACD,KAAK,EAAE;gBACL,4BAA4B;gBAC5B,gDAAgD;gBAChD,2BAA2B;aAC5B;YACD,gBAAgB,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ;KACL,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,4CAA4C,CAAC;KACzD,WAAW,CAAC,OAAO,EAAE;;;;;CAKvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,aAAa,KAAK,EAAE,CAAC,CAAC;IAC3D,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAqD,CAAC;IACxE,WAAW,CAAC;QACV,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG;gBACjD,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kCAAkC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;gBAChH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;gBAC1D,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,KAAK,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;gBAC3F,CAAC,CAAC,EAAE,CAAC;SACR;QACD,KAAK,EAAE,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,gBAAgB,EAAE,CAAC,sBAAsB,EAAE,YAAY,CAAC;KACzD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,wFAAwF;AACxF,gFAAgF;AAChF,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,uBAAuB,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC5B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE;QACnD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IACH,+EAA+E;IAC/E,kFAAkF;IAClF,2DAA2D;IAC3D,MAAM,IAAI,GAAG,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAqB,CAAC;IACxE,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,CAAC;AAED,2FAA2F;AAC3F,KAAK,UAAU,OAAO,CAAC,KAAa;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC;QAC1D,cAAc,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAkH,CAAC;QACrI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;YAClC,WAAW,CAAC;gBACV,MAAM,EAAE,0BAA0B;gBAClC,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,mFAAmF;gBACnF,UAAU,EACR,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ;oBACrC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,yBAAyB,QAAQ,GAAG,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;oBAChG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,KAAK,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;gBACnF,KAAK,EAAE;oBACL,IAAI,CAAC,MAAM,KAAK,WAAW;wBACzB,CAAC,CAAC,QAAQ;4BACR,CAAC,CAAC,sCAAsC,QAAQ,EAAE;4BAClD,CAAC,CAAC,2BAA2B;wBAC/B,CAAC,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,iBAAiB,wBAAwB;iBAClF;gBACD,gBAAgB,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,CAAC;aAC/E,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -1,2 +1,10 @@
1
1
  import { Command } from "commander";
2
+ /**
3
+ * `naive companies` — the ORGANIZATION.
4
+ *
5
+ * `organization` is the product noun and the alias below is what the docs and
6
+ * help text use; `companies` stays as the command name, the route
7
+ * (`/v1/company`) and the config key, because every script and agent profile in
8
+ * the wild already types it.
9
+ */
2
10
  export declare const companiesCmd: Command;
@@ -2,51 +2,132 @@ import { Command } from "commander";
2
2
  import { apiRequest, handleApiError } from "../client.js";
3
3
  import { saveConfig } from "../config.js";
4
4
  import { agentOutput } from "../output.js";
5
+ async function listCompanies() {
6
+ const resp = await apiRequest("GET", "/v1/auth/companies");
7
+ handleApiError("companies.list", resp);
8
+ const data = resp.data;
9
+ agentOutput({
10
+ action: "companies.list",
11
+ result: data,
12
+ next_steps: [
13
+ { command: "naive organization select <company_id>", description: "Switch to a different organization context", when: "You want to operate under a different organization" },
14
+ { command: "naive status", description: "See full status for current organization" },
15
+ ],
16
+ hints: [
17
+ `Found ${data.companies?.length ?? 0} accessible organizations`,
18
+ "Use 'naive organization select <id>' to switch. A new API key will be issued for that organization.",
19
+ ],
20
+ related_commands: ["naive organization select", "naive whoami", "naive status"],
21
+ });
22
+ }
23
+ /**
24
+ * `naive companies` — the ORGANIZATION.
25
+ *
26
+ * `organization` is the product noun and the alias below is what the docs and
27
+ * help text use; `companies` stays as the command name, the route
28
+ * (`/v1/company`) and the config key, because every script and agent profile in
29
+ * the wild already types it.
30
+ */
5
31
  export const companiesCmd = new Command("companies")
6
- .description("List all companies accessible to the current agent")
32
+ .alias("organization")
33
+ .alias("org")
34
+ .description("List/create/switch organizations accessible to the current agent")
7
35
  .addHelpText("after", `
8
36
  Examples:
9
- $ naive companies
37
+ $ naive organization (alias of: naive companies)
38
+ $ naive companies list
39
+ $ naive companies create --name "ProbeCo"
40
+ $ naive organization select <company_id>
10
41
 
11
42
  What this does:
12
- Lists every company your agent/account has access to, showing:
13
- - Company ID (UUID)
14
- - Company name
43
+ Lists every organization your agent/account has access to, showing:
44
+ - Organization ID (UUID)
45
+ - Organization name
15
46
  - Current credit balance
16
47
  - Billing tier (free, pro, enterprise)
17
48
 
18
49
  Use this to:
19
50
  - See which workspaces you can operate in
20
- - Find a company ID to switch context with 'naive companies select'
21
- - Check credit balances across companies
51
+ - Find an organization ID to switch context with 'naive organization select'
52
+ - Check credit balances across organizations
53
+ - Create an additional workspace with 'naive companies create --name …'
22
54
  `)
23
55
  .action(async () => {
24
- const resp = await apiRequest("GET", "/v1/auth/companies");
25
- handleApiError("companies.list", resp);
56
+ await listCompanies();
57
+ });
58
+ companiesCmd
59
+ .command("create")
60
+ .description("Create an additional company and switch the CLI to it")
61
+ .requiredOption("--name <name>", "Company / project name")
62
+ .addHelpText("after", `
63
+ Examples:
64
+ $ naive companies create --name "ProbeCo"
65
+ $ naive companies create --name "Acme Staging"
66
+
67
+ What this does:
68
+ 1. Creates a new company owned by, and billed to, your current company's owner
69
+ 2. Issues a fresh API key scoped to that company (sealed to its default user)
70
+ 3. Overwrites ~/.naive/config.json with that key — same as 'companies select'
71
+
72
+ Notes:
73
+ - register already creates your first company; use this for extra workspaces
74
+ - Capped at 5 companies per owner, 3 creates per hour
75
+ - The owner is charged for the new company whichever key in your company runs
76
+ this. Read /docs/api-reference/auth/companies before wiring it into a loop.
77
+ `)
78
+ .action(async (opts) => {
79
+ const resp = await apiRequest("POST", "/v1/auth/companies", { name: opts.name });
80
+ handleApiError("companies.create", resp);
26
81
  const data = resp.data;
82
+ saveConfig({
83
+ api_key: data.api_key,
84
+ agent_id: data.agent_id,
85
+ company_id: data.company_id,
86
+ company_name: data.company_name,
87
+ });
27
88
  agentOutput({
28
- action: "companies.list",
29
- result: data,
89
+ action: "companies.create",
90
+ result: {
91
+ company_id: data.company_id,
92
+ company_name: data.company_name,
93
+ agent_id: data.agent_id,
94
+ credits: data.credits,
95
+ new_key_issued: true,
96
+ },
30
97
  next_steps: [
31
- { command: "naive companies select <company_id>", description: "Switch to a different company context", when: "You want to operate under a different company" },
32
- { command: "naive status", description: "See full status for current company" },
98
+ { command: "naive whoami", description: "Confirm the new organization context" },
99
+ { command: "naive status", description: "See credits and API status" },
100
+ { command: "naive apps create --name <name>", description: "Create an app in this organization" },
33
101
  ],
34
102
  hints: [
35
- `Found ${data.companies?.length ?? 0} accessible companies`,
36
- "Use 'naive companies select <id>' to switch. A new API key will be issued for that company.",
103
+ `Created "${data.company_name}" and switched CLI context. New API key saved.`,
104
+ "The previous organization's key is no longer in ~/.naive/config.json — use 'naive organization select <id>' to go back.",
37
105
  ],
38
- related_commands: ["naive companies select", "naive whoami", "naive status"],
106
+ related_commands: ["naive companies list", "naive organization select", "naive whoami", "naive status"],
39
107
  });
40
108
  });
109
+ // `naive companies list` — the bare `naive companies` used to reject any extra
110
+ // argument, so an agent that spelled the verb out got a usage error.
111
+ companiesCmd
112
+ .command("list")
113
+ .description("List all companies accessible to the current agent")
114
+ .addHelpText("after", `
115
+ Examples:
116
+ $ naive companies list
117
+ $ naive companies
118
+ `)
119
+ .action(async () => {
120
+ await listCompanies();
121
+ });
41
122
  companiesCmd
42
123
  .command("show")
43
124
  .description("Show details of the current company")
44
125
  .addHelpText("after", `
45
126
  Examples:
46
- $ naive companies show
127
+ $ naive organization show
47
128
 
48
129
  What this does:
49
- Returns detailed information about the company your agent is
130
+ Returns detailed information about the organization your agent is
50
131
  currently operating under, including:
51
132
  - Name and slug
52
133
  - Description
@@ -55,8 +136,8 @@ What this does:
55
136
  - Creation date
56
137
 
57
138
  Use this to:
58
- - Check the current company name
59
- - See company metadata before making changes
139
+ - Check the current organization name
140
+ - See organization metadata before making changes
60
141
  `)
61
142
  .action(async () => {
62
143
  const resp = await apiRequest("GET", "/v1/company");
@@ -65,14 +146,14 @@ Use this to:
65
146
  action: "companies.show",
66
147
  result: resp.data,
67
148
  next_steps: [
68
- { command: "naive companies rename \"New Name\"", description: "Change the company name", when: "The name needs updating" },
69
- { command: "naive companies update --description \"...\"", description: "Update the company description" },
149
+ { command: "naive organization rename \"New Name\"", description: "Change the organization name", when: "The name needs updating" },
150
+ { command: "naive organization update --description \"...\"", description: "Update the organization description" },
70
151
  { command: "naive status", description: "See credits and API status" },
71
152
  ],
72
153
  hints: [
73
- "Use 'naive companies rename' to change the company name",
154
+ "Use 'naive organization rename' to change the organization name",
74
155
  ],
75
- related_commands: ["naive companies rename", "naive companies update", "naive status"],
156
+ related_commands: ["naive organization rename", "naive organization update", "naive status"],
76
157
  });
77
158
  });
78
159
  companiesCmd
@@ -80,16 +161,16 @@ companiesCmd
80
161
  .description("Rename the current company")
81
162
  .addHelpText("after", `
82
163
  Examples:
83
- $ naive companies rename "Acme Corp"
84
- $ naive companies rename "My Startup Inc"
164
+ $ naive organization rename "Acme Corp"
165
+ $ naive organization rename "My Startup Inc"
85
166
 
86
167
  What this does:
87
- Changes the display name of the company your agent currently
168
+ Changes the display name of the organization your agent currently
88
169
  operates under. The slug and other identifiers remain unchanged.
89
170
 
90
171
  Notes:
91
172
  - The name must be a non-empty string
92
- - This does not change the company slug or issue prefix
173
+ - This does not change the organization slug or issue prefix
93
174
  - The change takes effect immediately across the platform
94
175
  `)
95
176
  .action(async (name) => {
@@ -100,24 +181,24 @@ Notes:
100
181
  action: "companies.rename",
101
182
  result: data,
102
183
  next_steps: [
103
- { command: "naive companies show", description: "Verify the updated company details" },
184
+ { command: "naive organization show", description: "Verify the updated organization details" },
104
185
  { command: "naive status", description: "See full status" },
105
186
  ],
106
187
  hints: [
107
- `Company renamed to "${data.name}"`,
188
+ `Organization renamed to "${data.name}"`,
108
189
  ],
109
- related_commands: ["naive companies show", "naive companies update", "naive status"],
190
+ related_commands: ["naive organization show", "naive organization update", "naive status"],
110
191
  });
111
192
  });
112
193
  companiesCmd
113
194
  .command("update")
114
- .description("Update company details (name, description)")
115
- .option("--name <name>", "New company name")
195
+ .description("Update organization details (name, description)")
196
+ .option("--name <name>", "New organization name")
116
197
  .option("--description <description>", "Company description")
117
198
  .addHelpText("after", `
118
199
  Examples:
119
- $ naive companies update --name "Acme Corp" --description "Building the future"
120
- $ naive companies update --description "An AI-native startup"
200
+ $ naive organization update --name "Acme Corp" --description "Building the future"
201
+ $ naive organization update --description "An AI-native startup"
121
202
 
122
203
  What this does:
123
204
  Updates one or more fields on the current company. At least one
@@ -135,31 +216,31 @@ What this does:
135
216
  action: "companies.update",
136
217
  result: resp.data,
137
218
  next_steps: [
138
- { command: "naive companies show", description: "Verify the updated company details" },
219
+ { command: "naive organization show", description: "Verify the updated organization details" },
139
220
  ],
140
221
  hints: [
141
222
  "Company details updated successfully",
142
223
  ],
143
- related_commands: ["naive companies show", "naive companies rename", "naive status"],
224
+ related_commands: ["naive organization show", "naive organization rename", "naive status"],
144
225
  });
145
226
  });
146
227
  companiesCmd
147
228
  .command("select <company_id>")
148
- .description("Switch active company context (issues a new API key for that company)")
229
+ .description("Switch active organization context (issues a new API key for that organization)")
149
230
  .addHelpText("after", `
150
231
  Examples:
151
- $ naive companies select 550e8400-e29b-41d4-a716-446655440000
232
+ $ naive organization select 550e8400-e29b-41d4-a716-446655440000
152
233
 
153
234
  What this does:
154
- 1. Verifies you have access to the specified company
155
- 2. Issues a new API key scoped to that company
235
+ 1. Verifies you have access to the specified organization
236
+ 2. Issues a new API key scoped to that organization
156
237
  3. Saves the new key to ~/.naive/config.json
157
- 4. All future commands operate under the new company
238
+ 4. All future commands operate under the new organization
158
239
 
159
240
  Notes:
160
- - Your old key for the previous company remains valid
161
- - Use 'naive companies' first to get the company ID
162
- - The new key has access only to the selected company's resources
241
+ - Your old key for the previous organization remains valid
242
+ - Use 'naive organization' first to get the organization ID
243
+ - The new key has access only to the selected organization's resources
163
244
  `)
164
245
  .action(async (id) => {
165
246
  const resp = await apiRequest("POST", "/v1/auth/select-company", { company_id: id });
@@ -170,6 +251,15 @@ Notes:
170
251
  agent_id: data.agent_id,
171
252
  company_id: data.company_id,
172
253
  company_name: data.company_name,
254
+ // A project belongs to ONE organization, so a project selected in the old
255
+ // one is meaningless — and worse than meaningless: it would be sent as
256
+ // `X-Naive-Project-Id` against the new organization and 404 every command
257
+ // until the operator guessed why. Same for the child project inside it,
258
+ // which is why the organization switch also invalidates any prior
259
+ // `naive use` subject.
260
+ active_project_id: undefined,
261
+ active_project_name: undefined,
262
+ active_user_id: undefined,
173
263
  });
174
264
  agentOutput({
175
265
  action: "companies.select",
@@ -179,13 +269,13 @@ Notes:
179
269
  new_key_issued: true,
180
270
  },
181
271
  next_steps: [
182
- { command: "naive identity", description: "View resources available in the new company context" },
272
+ { command: "naive identity", description: "View resources available in the new organization context" },
183
273
  { command: "naive email inboxes", description: "Check email addresses for this company" },
184
274
  { command: "naive status", description: "See credits and status for this company" },
185
275
  ],
186
276
  hints: [
187
277
  `Now operating under "${data.company_name}". New API key saved.`,
188
- "All subsequent commands use the new company context.",
278
+ "All subsequent commands use the new organization context.",
189
279
  ],
190
280
  related_commands: ["naive whoami", "naive identity", "naive status"],
191
281
  });
@@ -1 +1 @@
1
- {"version":3,"file":"companies.js","sourceRoot":"","sources":["../../src/commands/companies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"companies.js","sourceRoot":"","sources":["../../src/commands/companies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const companyDataCmd: Command;