@usenaive-sdk/cli 0.15.0 → 1.0.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 (278) hide show
  1. package/README.md +43 -354
  2. package/dist/index.js +51775 -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 -245
  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 -106
  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 -80
  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 -73
  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 -112
  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/pricing.d.ts +0 -132
  253. package/dist/lib/pricing.js +0 -148
  254. package/dist/lib/pricing.js.map +0 -1
  255. package/dist/lib/starter-config.d.ts +0 -13
  256. package/dist/lib/starter-config.js +0 -71
  257. package/dist/lib/starter-config.js.map +0 -1
  258. package/dist/lib/stream-frames.d.ts +0 -114
  259. package/dist/lib/stream-frames.js +0 -169
  260. package/dist/lib/stream-frames.js.map +0 -1
  261. package/dist/lib/teams-catalog.d.ts +0 -141
  262. package/dist/lib/teams-catalog.js +0 -841
  263. package/dist/lib/teams-catalog.js.map +0 -1
  264. package/dist/lib/unknown-command.d.ts +0 -71
  265. package/dist/lib/unknown-command.js +0 -132
  266. package/dist/lib/unknown-command.js.map +0 -1
  267. package/dist/lib/version-check.d.ts +0 -26
  268. package/dist/lib/version-check.js +0 -21
  269. package/dist/lib/version-check.js.map +0 -1
  270. package/dist/output.d.ts +0 -174
  271. package/dist/output.js +0 -435
  272. package/dist/output.js.map +0 -1
  273. package/dist/prompt.d.ts +0 -17
  274. package/dist/prompt.js +0 -70
  275. package/dist/prompt.js.map +0 -1
  276. package/dist/version.d.ts +0 -2
  277. package/dist/version.js +0 -14
  278. package/dist/version.js.map +0 -1
@@ -1,151 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
3
- import { agentOutput } from "../output.js";
4
- export const memoryCmd = new Command("memory")
5
- .description("Manage agent memory — add, list, and remove memories for persistent context")
6
- .addHelpText("after", `
7
- Subcommands:
8
- naive memory add <content> Add a new memory entry
9
- naive memory list List all memories
10
- naive memory remove Remove a memory by matching text
11
-
12
- Memory targets:
13
- --target memory Agent memory — facts the agent should always know
14
- --target user User preferences — how to interact with the user
15
-
16
- Workflow:
17
- 1. naive memory add --target memory "Our company brand color is #FF6B00"
18
- 2. naive memory add --target user "User prefers concise bullet-point responses"
19
- 3. naive memory list → see all stored memories
20
- 4. naive memory remove --target memory --text "brand color" → remove outdated info
21
-
22
- Memories persist across sessions and are injected into agent context
23
- automatically. Use them for facts, preferences, and institutional knowledge
24
- that should survive between runs.
25
-
26
- Examples:
27
- $ naive memory add --target memory "We use Stripe for payments, account ID: acct_123"
28
- $ naive memory add --target user "Always address the user as 'Chief'"
29
- $ naive memory list
30
- $ naive memory list --agent-id ceo-1
31
- $ naive memory remove --target memory --text "Stripe"
32
- `);
33
- memoryCmd
34
- .command("add <content>")
35
- .description("Add a new memory entry to the agent's persistent context")
36
- .requiredOption("--target <type>", "Memory target: 'memory' (agent facts) or 'user' (user preferences)")
37
- .option("--agent-id <id>", "Specific agent to store the memory for (default: current agent)")
38
- .addHelpText("after", `
39
- Examples:
40
- $ naive memory add --target memory "Our primary domain is example.com"
41
- $ naive memory add --target user "User is based in EST timezone"
42
- $ naive memory add --target memory "Tech stack: Next.js, Supabase, Stripe" --agent-id engineer-1
43
-
44
- Target types:
45
- memory — factual knowledge the agent should retain
46
- (company info, API keys, preferences, procedures)
47
- user — user interaction preferences
48
- (communication style, timezone, name, formatting preferences)
49
- `)
50
- .action(async (content, opts) => {
51
- const resp = await apiRequest("POST", "/v1/memory", {
52
- target: opts.target,
53
- content,
54
- ...(opts.agentId && { agent_id: opts.agentId }),
55
- });
56
- handleApiError("memory.add", resp);
57
- const data = resp.data;
58
- agentOutput({
59
- action: "memory.add",
60
- result: resp.data,
61
- next_steps: [
62
- { command: "naive memory list", description: "View all stored memories" },
63
- { command: "naive memory add --target <type> <content>", description: "Add another memory" },
64
- ],
65
- hints: [
66
- data.status === "memory_requested"
67
- ? `Memory sent to CEO for incorporation (target: ${opts.target})`
68
- : `Memory added (id: ${data.id}, target: ${opts.target})`,
69
- "This will be included in agent context for future runs",
70
- ],
71
- related_commands: ["naive memory list", "naive memory remove"],
72
- });
73
- });
74
- memoryCmd
75
- .command("list")
76
- .description("List all stored memories")
77
- .option("--agent-id <id>", "Filter by agent ID")
78
- .option("--target <type>", "Filter by target type: memory | user")
79
- .addHelpText("after", `
80
- Examples:
81
- $ naive memory list
82
- $ naive memory list --agent-id ceo-1
83
- $ naive memory list --target user
84
-
85
- Returns memory entries with:
86
- - id, content, target type
87
- - Agent ID the memory belongs to
88
- - Created timestamp
89
- `)
90
- .action(async (opts) => {
91
- const params = new URLSearchParams();
92
- if (opts.agentId)
93
- params.set("agent_id", opts.agentId);
94
- if (opts.target)
95
- params.set("target", opts.target);
96
- const qs = params.toString();
97
- const resp = await apiRequest("GET", `/v1/memory${qs ? `?${qs}` : ""}`);
98
- handleApiError("memory.list", resp);
99
- const data = resp.data;
100
- const count = data.memories?.length ?? 0;
101
- agentOutput({
102
- action: "memory.list",
103
- result: resp.data,
104
- next_steps: [
105
- { command: "naive memory add --target <type> <content>", description: "Add a new memory" },
106
- ...(count > 0
107
- ? [{ command: "naive memory remove --target <type> --text <substring>", description: "Remove an outdated memory" }]
108
- : []),
109
- ],
110
- hints: [
111
- `${count} memor${count !== 1 ? "ies" : "y"} stored`,
112
- ],
113
- related_commands: ["naive memory add", "naive memory remove"],
114
- });
115
- });
116
- memoryCmd
117
- .command("remove")
118
- .description("Remove a memory by matching text content")
119
- .requiredOption("--target <type>", "Memory target: 'memory' or 'user'")
120
- .requiredOption("--text <substring>", "Text substring to match — removes the first memory containing this text")
121
- .option("--agent-id <id>", "Specific agent's memories to search")
122
- .addHelpText("after", `
123
- Examples:
124
- $ naive memory remove --target memory --text "brand color"
125
- $ naive memory remove --target user --text "timezone"
126
- $ naive memory remove --target memory --text "Stripe" --agent-id ceo-1
127
-
128
- Searches for the first memory containing the --text substring and removes it.
129
- Use 'naive memory list' first to see exact contents before removing.
130
- `)
131
- .action(async (opts) => {
132
- const resp = await apiRequest("DELETE", "/v1/memory", {
133
- target: opts.target,
134
- text: opts.text,
135
- ...(opts.agentId && { agent_id: opts.agentId }),
136
- });
137
- handleApiError("memory.remove", resp);
138
- agentOutput({
139
- action: "memory.remove",
140
- result: resp.data,
141
- next_steps: [
142
- { command: "naive memory list", description: "Verify the memory was removed" },
143
- { command: "naive memory add --target <type> <content>", description: "Add a replacement memory" },
144
- ],
145
- hints: [
146
- `Memory matching "${opts.text}" removed (target: ${opts.target})`,
147
- ],
148
- related_commands: ["naive memory list", "naive memory add"],
149
- });
150
- });
151
- //# sourceMappingURL=memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Command } from "commander";
2
- import { type AgentErrorDetails } from "../output.js";
3
- export declare function mobileHealthIssue(data: unknown): AgentErrorDetails | undefined;
4
- export declare const mobileCmd: Command;
@@ -1,382 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
3
- import { agentError, agentOutput } from "../output.js";
4
- export function mobileHealthIssue(data) {
5
- const result = data;
6
- const health = result.provider ?? result;
7
- if (health.configured === false) {
8
- return {
9
- code: "feature_not_configured",
10
- message: "MobileRun is not configured on this deployment.",
11
- operator_action: "Set a valid MOBILERUN_API_KEY on the API deployment, redeploy, then retry.",
12
- };
13
- }
14
- if (health.reachable === false) {
15
- return {
16
- code: "provider_unavailable",
17
- message: "MobileRun is configured but the provider health check failed.",
18
- provider: "mobilerun",
19
- provider_error: health.error,
20
- operator_action: "Validate or rotate MOBILERUN_API_KEY on the API deployment, redeploy, then retry.",
21
- ...(result.devices ? { cached_devices: result.devices } : {}),
22
- };
23
- }
24
- return undefined;
25
- }
26
- function requireMobileHealth(action, data) {
27
- const issue = mobileHealthIssue(data);
28
- if (issue) {
29
- agentError({
30
- action,
31
- error: issue,
32
- recovery_steps: [
33
- {
34
- command: "naive mobile status",
35
- description: issue.code === "feature_not_configured"
36
- ? "Re-check after the deployment operator configures MobileRun"
37
- : "Re-check provider health",
38
- },
39
- ],
40
- });
41
- }
42
- }
43
- export const mobileCmd = new Command("mobile")
44
- .description("Mobile — provision, control & display cloud mobile emulators/devices via Mobilerun")
45
- .addHelpText("after", `
46
- Phones are billed PER MINUTE from your credits: the phone provisions
47
- immediately and the meter runs until you terminate it (there is NO upstream
48
- auto-stop — running out of credits auto-terminates the phone).
49
-
50
- Subcommands:
51
- naive mobile status Integration status + your phone count
52
- naive mobile devices List your phones (alias: phones)
53
- naive mobile provision Create a phone (alias: create-phone)
54
- naive mobile device <id> Show a device's live details
55
- naive mobile stream <id> Get the live stream URL/token (to display)
56
- naive mobile reboot <id> Reboot a device
57
- naive mobile reset <id> Reset a device to a fresh state
58
- naive mobile terminate <id> Release a device (stops the per-minute meter)
59
- naive mobile wait <id> [--timeout <secs>] Block until a device is ready
60
- naive mobile proxy <id> Show the device's proxy attachment
61
- naive mobile proxy-set <id> --host ... Attach a SOCKS5 proxy (residential IP)
62
- naive mobile proxy-remove <id> Detach the proxy (back to datacenter IP)
63
- naive mobile run "<task>" [--device <id>] Run an agent task on a device
64
- naive mobile tasks List agent tasks
65
- naive mobile task <id> Show a task's status/result
66
- naive mobile stop <id> Cancel a running task
67
- naive mobile screenshots <id> List a task's screenshots
68
- naive mobile trajectory <id> Show a task's trajectory
69
- naive mobile apps List apps in the Mobilerun library
70
- naive mobile upload-app <name> Create a signed upload URL for an app
71
- naive mobile search "<query>" Search the Mobilerun API catalog (wildcard)
72
- naive mobile call <operationId> ... Call ANY Mobilerun operation (wildcard)
73
-
74
- Governance:
75
- Provisioning, reboot/reset/terminate, proxy changes, running/stopping tasks,
76
- uploading apps, and mutating wildcard calls are SENSITIVE and may require
77
- human approval depending on the Account Kit (status "pending_approval").
78
-
79
- Examples:
80
- $ naive mobile provision --country US
81
- $ naive mobile run "Open Settings and enable dark mode" --device <id> --vision
82
- $ naive mobile stream <id>
83
- $ naive mobile terminate <id>
84
- $ naive mobile call take-screenshot --path deviceId=<id>
85
- `);
86
- mobileCmd
87
- .command("status", { isDefault: true })
88
- .description("Show mobile integration status + your device count")
89
- .action(async () => {
90
- const resp = await apiRequest("GET", "/v1/mobile/status");
91
- handleApiError("mobile.status", resp);
92
- requireMobileHealth("mobile.status", resp.data);
93
- agentOutput({ action: "mobile.status", result: resp.data, next_steps: [] });
94
- });
95
- mobileCmd
96
- .command("devices")
97
- .alias("phones")
98
- .description("List your phones (cloud mobile devices) with status")
99
- .option("--state <state>", "Filter by state, e.g. ready")
100
- .option("--type <type>", "Filter by device type")
101
- .option("--country <country>", "Filter by country")
102
- .action(async (opts) => {
103
- const params = new URLSearchParams();
104
- if (opts.state)
105
- params.set("state", opts.state);
106
- if (opts.type)
107
- params.set("type", opts.type);
108
- if (opts.country)
109
- params.set("country", opts.country);
110
- const qs = params.toString();
111
- const resp = await apiRequest("GET", `/v1/mobile/devices${qs ? `?${qs}` : ""}`);
112
- handleApiError("mobile.devices", resp);
113
- requireMobileHealth("mobile.devices", resp.data);
114
- agentOutput({ action: "mobile.devices", result: resp.data, next_steps: [] });
115
- });
116
- mobileCmd
117
- .command("provision")
118
- .alias("create-phone")
119
- .description("Create a phone — provisions immediately, billed per minute from your credits")
120
- .option("--type <type>", "Device type (default: dedicated_premium_device — the minute-billed cloud phone)")
121
- .option("--country <country>", "Country code")
122
- .option("--profile <id>", "Device profile id")
123
- .option("--name <name>", "Phone name")
124
- .action(async (opts) => {
125
- const body = {
126
- type: opts.type,
127
- country: opts.country,
128
- profile_id: opts.profile,
129
- name: opts.name,
130
- };
131
- const resp = await apiRequest("POST", "/v1/mobile/devices", body);
132
- if (handlePendingApproval("mobile.provision", resp))
133
- return;
134
- handleApiError("mobile.provision", resp);
135
- const data = resp.data;
136
- agentOutput({
137
- action: "mobile.provision",
138
- result: resp.data,
139
- next_steps: data.phone?.device_id
140
- ? [
141
- { command: `naive mobile wait ${data.phone.device_id}`, description: "Block until the device is ready" },
142
- { command: `naive mobile terminate ${data.phone.device_id}`, description: "Terminate when done (stops the per-minute meter)" },
143
- ]
144
- : [],
145
- hints: [
146
- `Billed ${data.credits_per_minute ?? "a few"} credits/min from your balance until terminated — running out of credits auto-terminates the phone.`,
147
- ],
148
- });
149
- });
150
- mobileCmd
151
- .command("device <id>")
152
- .description("Show a device's live details")
153
- .action(async (id) => {
154
- const resp = await apiRequest("GET", `/v1/mobile/devices/${id}`);
155
- handleApiError("mobile.device", resp);
156
- agentOutput({ action: "mobile.device", result: resp.data, next_steps: [] });
157
- });
158
- mobileCmd
159
- .command("stream <id>")
160
- .description("Get the live stream URL + token (to display the device screen)")
161
- .action(async (id) => {
162
- const resp = await apiRequest("GET", `/v1/mobile/devices/${id}/stream`);
163
- handleApiError("mobile.stream", resp);
164
- agentOutput({ action: "mobile.stream", result: resp.data, next_steps: [] });
165
- });
166
- for (const verb of ["reboot", "reset"]) {
167
- mobileCmd
168
- .command(`${verb} <id>`)
169
- .description(verb === "reboot" ? "Reboot a device" : "Reset a device to a fresh state")
170
- .action(async (id) => {
171
- const resp = await apiRequest("POST", `/v1/mobile/devices/${id}/${verb}`);
172
- if (handlePendingApproval(`mobile.${verb}`, resp))
173
- return;
174
- handleApiError(`mobile.${verb}`, resp);
175
- agentOutput({ action: `mobile.${verb}`, result: resp.data, next_steps: [] });
176
- });
177
- }
178
- mobileCmd
179
- .command("terminate <id>")
180
- .description("Terminate (release) a device")
181
- .action(async (id) => {
182
- const resp = await apiRequest("DELETE", `/v1/mobile/devices/${id}`);
183
- if (handlePendingApproval("mobile.terminate", resp))
184
- return;
185
- handleApiError("mobile.terminate", resp);
186
- agentOutput({ action: "mobile.terminate", result: resp.data, next_steps: [] });
187
- });
188
- mobileCmd
189
- .command("wait <id>")
190
- .description("Block until a device is ready")
191
- .option("--timeout <secs>", "Timeout in seconds")
192
- .action(async (id, opts) => {
193
- const body = opts.timeout ? { timeout_seconds: Number(opts.timeout) } : {};
194
- const resp = await apiRequest("POST", `/v1/mobile/devices/${id}/wait`, body);
195
- handleApiError("mobile.wait", resp);
196
- agentOutput({ action: "mobile.wait", result: resp.data, next_steps: [] });
197
- });
198
- mobileCmd
199
- .command("proxy <id>")
200
- .description("Show a device's proxy attachment (devices default to a datacenter IP)")
201
- .action(async (id) => {
202
- const resp = await apiRequest("GET", `/v1/mobile/devices/${id}/proxy`);
203
- handleApiError("mobile.proxy", resp);
204
- agentOutput({ action: "mobile.proxy", result: resp.data, next_steps: [] });
205
- });
206
- mobileCmd
207
- .command("proxy-set <id>")
208
- .description("Attach a SOCKS5 proxy to a device (residential / country-specific IP)")
209
- .requiredOption("--host <host>", "Proxy host")
210
- .requiredOption("--port <port>", "Proxy port")
211
- .option("--user <user>", "Proxy username")
212
- .option("--password <password>", "Proxy password")
213
- .option("--no-smart-ip", "Disable smart IP rotation handling")
214
- .action(async (id, opts) => {
215
- const resp = await apiRequest("POST", `/v1/mobile/devices/${id}/proxy`, {
216
- host: opts.host,
217
- port: Number(opts.port),
218
- user: opts.user,
219
- password: opts.password,
220
- smart_ip: opts.smartIp,
221
- });
222
- if (handlePendingApproval("mobile.set_proxy", resp))
223
- return;
224
- handleApiError("mobile.set_proxy", resp);
225
- agentOutput({ action: "mobile.set_proxy", result: resp.data, next_steps: [] });
226
- });
227
- mobileCmd
228
- .command("proxy-remove <id>")
229
- .description("Detach the proxy from a device (back to the datacenter IP)")
230
- .action(async (id) => {
231
- const resp = await apiRequest("DELETE", `/v1/mobile/devices/${id}/proxy`);
232
- if (handlePendingApproval("mobile.remove_proxy", resp))
233
- return;
234
- handleApiError("mobile.remove_proxy", resp);
235
- agentOutput({ action: "mobile.remove_proxy", result: resp.data, next_steps: [] });
236
- });
237
- mobileCmd
238
- .command("run <task>")
239
- .description("Run an agent task on one of your phones with a natural-language instruction")
240
- .requiredOption("--device <id>", "Target phone (device) id — required")
241
- .option("--model <model>", "LLM model id")
242
- .option("--vision", "Enable vision (screenshots)")
243
- .option("--reasoning", "Enable multi-step planning")
244
- .option("--steps <n>", "Max execution steps")
245
- .action(async (task, opts) => {
246
- const body = {
247
- task,
248
- device_id: opts.device,
249
- model: opts.model,
250
- vision: opts.vision || undefined,
251
- reasoning: opts.reasoning || undefined,
252
- steps: opts.steps ? Number(opts.steps) : undefined,
253
- };
254
- const resp = await apiRequest("POST", "/v1/mobile/tasks", body);
255
- if (handlePendingApproval("mobile.run", resp))
256
- return;
257
- handleApiError("mobile.run", resp);
258
- agentOutput({ action: "mobile.run", result: resp.data, next_steps: [] });
259
- });
260
- mobileCmd
261
- .command("tasks")
262
- .description("List agent tasks")
263
- .option("--device <id>", "Filter by device id")
264
- .option("--status <status>", "Filter by status")
265
- .action(async (opts) => {
266
- const params = new URLSearchParams();
267
- if (opts.device)
268
- params.set("device_id", opts.device);
269
- if (opts.status)
270
- params.set("status", opts.status);
271
- const qs = params.toString();
272
- const resp = await apiRequest("GET", `/v1/mobile/tasks${qs ? `?${qs}` : ""}`);
273
- handleApiError("mobile.tasks", resp);
274
- agentOutput({ action: "mobile.tasks", result: resp.data, next_steps: [] });
275
- });
276
- mobileCmd
277
- .command("task <id>")
278
- .description("Show a task's status/result")
279
- .action(async (id) => {
280
- const resp = await apiRequest("GET", `/v1/mobile/tasks/${id}`);
281
- handleApiError("mobile.task", resp);
282
- agentOutput({ action: "mobile.task", result: resp.data, next_steps: [] });
283
- });
284
- mobileCmd
285
- .command("stop <id>")
286
- .description("Cancel a running task")
287
- .action(async (id) => {
288
- const resp = await apiRequest("POST", `/v1/mobile/tasks/${id}/stop`);
289
- if (handlePendingApproval("mobile.stop", resp))
290
- return;
291
- handleApiError("mobile.stop", resp);
292
- agentOutput({ action: "mobile.stop", result: resp.data, next_steps: [] });
293
- });
294
- mobileCmd
295
- .command("screenshots <id>")
296
- .description("List a task's screenshot URLs")
297
- .action(async (id) => {
298
- const resp = await apiRequest("GET", `/v1/mobile/tasks/${id}/screenshots`);
299
- handleApiError("mobile.screenshots", resp);
300
- agentOutput({ action: "mobile.screenshots", result: resp.data, next_steps: [] });
301
- });
302
- mobileCmd
303
- .command("trajectory <id>")
304
- .description("Show a task's step-by-step trajectory")
305
- .action(async (id) => {
306
- const resp = await apiRequest("GET", `/v1/mobile/tasks/${id}/trajectory`);
307
- handleApiError("mobile.trajectory", resp);
308
- agentOutput({ action: "mobile.trajectory", result: resp.data, next_steps: [] });
309
- });
310
- mobileCmd
311
- .command("apps")
312
- .description("List apps in the Mobilerun library")
313
- .action(async () => {
314
- const resp = await apiRequest("GET", "/v1/mobile/apps");
315
- handleApiError("mobile.apps", resp);
316
- agentOutput({ action: "mobile.apps", result: resp.data, next_steps: [] });
317
- });
318
- mobileCmd
319
- .command("upload-app <name>")
320
- .description("Create a signed upload URL to add an app (APK) to the library")
321
- .option("--file <name>", "File name of the APK")
322
- .action(async (name, opts) => {
323
- const resp = await apiRequest("POST", "/v1/mobile/apps", { name, file_name: opts.file });
324
- if (handlePendingApproval("mobile.upload_app", resp))
325
- return;
326
- handleApiError("mobile.upload_app", resp);
327
- agentOutput({ action: "mobile.upload_app", result: resp.data, next_steps: [] });
328
- });
329
- mobileCmd
330
- .command("search [query]")
331
- .description("Search the Mobilerun API catalog (wildcard discovery)")
332
- .option("--tag <tag>", "Filter by API group, e.g. Devices, Tasks, Tools")
333
- .action(async (query, opts) => {
334
- const params = new URLSearchParams();
335
- if (query)
336
- params.set("q", query);
337
- if (opts.tag)
338
- params.set("tag", opts.tag);
339
- const qs = params.toString();
340
- const resp = await apiRequest("GET", `/v1/mobile/methods${qs ? `?${qs}` : ""}`);
341
- handleApiError("mobile.search", resp);
342
- agentOutput({ action: "mobile.search", result: resp.data, next_steps: [] });
343
- });
344
- mobileCmd
345
- .command("call <operationId>")
346
- .description("Call ANY Mobilerun operation by operationId (wildcard)")
347
- .option("--path <kv...>", "Path params KEY=VALUE (repeatable), e.g. deviceId=<id>")
348
- .option("--query <kv...>", "Query params KEY=VALUE (repeatable)")
349
- .option("--body <json>", "JSON request body")
350
- .action(async (operationId, opts) => {
351
- const parseKv = (entries) => {
352
- const out = {};
353
- for (const kv of entries ?? []) {
354
- const i = String(kv).indexOf("=");
355
- if (i > 0)
356
- out[String(kv).slice(0, i)] = String(kv).slice(i + 1);
357
- }
358
- return out;
359
- };
360
- let body;
361
- if (opts.body) {
362
- try {
363
- body = JSON.parse(opts.body);
364
- }
365
- catch {
366
- handleApiError("mobile.call", { status: 400, data: { error: { code: "invalid_input", message: "--body must be valid JSON" } } });
367
- return;
368
- }
369
- }
370
- const reqBody = {
371
- operation_id: operationId,
372
- path: parseKv(opts.path),
373
- query: parseKv(opts.query),
374
- ...(body !== undefined ? { body } : {}),
375
- };
376
- const resp = await apiRequest("POST", "/v1/mobile/call", reqBody);
377
- if (handlePendingApproval("mobile.call", resp))
378
- return;
379
- handleApiError("mobile.call", resp);
380
- agentOutput({ action: "mobile.call", result: resp.data, next_steps: [] });
381
- });
382
- //# sourceMappingURL=mobile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mobile.js","sourceRoot":"","sources":["../../src/commands/mobile.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { Command } from "commander";
2
- /**
3
- * Modules — first-party (closed, regulated), open (OSS), or custom capabilities
4
- * an agent profile can use. `module add` connects/enables a capability for the active
5
- * subject; under the hood first-party modules are native primitives and open
6
- * modules map to connections/toolkits.
7
- */
8
- export declare const moduleCmd: Command;
@@ -1,48 +0,0 @@
1
- import { Command } from "commander";
2
- import { apiRequest, handleApiError, activeUserId } from "../client.js";
3
- import { agentOutput } from "../output.js";
4
- function userPath(user) {
5
- return `/v1/users/${user ?? activeUserId() ?? "default"}`;
6
- }
7
- /**
8
- * Modules — first-party (closed, regulated), open (OSS), or custom capabilities
9
- * an agent profile can use. `module add` connects/enables a capability for the active
10
- * subject; under the hood first-party modules are native primitives and open
11
- * modules map to connections/toolkits.
12
- */
13
- export const moduleCmd = new Command("module")
14
- .alias("modules")
15
- .description("Add and list modules (capabilities) available to your agent profiles");
16
- moduleCmd
17
- .command("list")
18
- .description("List available modules (native primitives + connected toolkits)")
19
- .action(async () => {
20
- const resp = await apiRequest("GET", `/v1/toolkits`);
21
- handleApiError("module.list", resp);
22
- agentOutput({
23
- action: "module.list",
24
- result: resp.data,
25
- next_steps: [{ command: "naive module add <name>", description: "Enable a module for your agent profile" }],
26
- hints: ["First-party regulated modules (identity, cards, comms) are always available; open modules map to connections/toolkits."],
27
- });
28
- });
29
- moduleCmd
30
- .command("add")
31
- .description("Add a module (open/custom capability) for the active subject")
32
- .argument("<name>", "Module/toolkit slug to add (e.g. apollo, slack, github)")
33
- .option("--user <id>", "Tenant id to scope the module to")
34
- .action(async (name, opts) => {
35
- // Open modules are Composio toolkits → use the connections flow.
36
- const resp = await apiRequest("POST", `${userPath(opts.user)}/connections/connect`, { toolkit: name }, { userId: opts.user });
37
- handleApiError("module.add", resp);
38
- agentOutput({
39
- action: "module.add",
40
- result: resp.data,
41
- next_steps: [
42
- { command: "naive connections", description: "List connected modules/integrations" },
43
- { command: "naive module list", description: "Browse available modules" },
44
- ],
45
- hints: [`Adding module '${name}'. Complete any OAuth in the returned URL if present.`],
46
- });
47
- });
48
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/commands/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO,aAAa,IAAI,IAAI,YAAY,EAAE,IAAI,SAAS,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,KAAK,CAAC,SAAS,CAAC;KAChB,WAAW,CAAC,sEAAsE,CAAC,CAAC;AAEvF,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACrD,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACpC,WAAW,CAAC;QACV,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;QAC3G,KAAK,EAAE,CAAC,wHAAwH,CAAC;KAClI,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,QAAQ,EAAE,yDAAyD,CAAC;KAC7E,MAAM,CAAC,aAAa,EAAE,kCAAkC,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAuB,EAAE,EAAE;IACtD,iEAAiE;IACjE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9H,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACnC,WAAW,CAAC;QACV,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qCAAqC,EAAE;YACpF,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,0BAA0B,EAAE;SAC1E;QACD,KAAK,EAAE,CAAC,kBAAkB,IAAI,uDAAuD,CAAC;KACvF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const objectivesCmd: Command;