@usenaive-sdk/cli 0.15.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -402
- package/dist/index.js +51796 -502
- package/package.json +22 -18
- package/dist/client.d.ts +0 -108
- package/dist/client.js +0 -458
- package/dist/client.js.map +0 -1
- package/dist/commands/account-kits.d.ts +0 -2
- package/dist/commands/account-kits.js +0 -71
- package/dist/commands/account-kits.js.map +0 -1
- package/dist/commands/aeo.d.ts +0 -2
- package/dist/commands/aeo.js +0 -451
- package/dist/commands/aeo.js.map +0 -1
- package/dist/commands/agent-profiles.d.ts +0 -11
- package/dist/commands/agent-profiles.js +0 -120
- package/dist/commands/agent-profiles.js.map +0 -1
- package/dist/commands/agents.d.ts +0 -2
- package/dist/commands/agents.js +0 -916
- package/dist/commands/agents.js.map +0 -1
- package/dist/commands/app-data.d.ts +0 -2
- package/dist/commands/app-data.js +0 -445
- package/dist/commands/app-data.js.map +0 -1
- package/dist/commands/approvals.d.ts +0 -2
- package/dist/commands/approvals.js +0 -242
- package/dist/commands/approvals.js.map +0 -1
- package/dist/commands/apps.d.ts +0 -9
- package/dist/commands/apps.js +0 -844
- package/dist/commands/apps.js.map +0 -1
- package/dist/commands/audio.d.ts +0 -9
- package/dist/commands/audio.js +0 -391
- package/dist/commands/audio.js.map +0 -1
- package/dist/commands/auth.d.ts +0 -31
- package/dist/commands/auth.js +0 -428
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/billing.d.ts +0 -2
- package/dist/commands/billing.js +0 -250
- package/dist/commands/billing.js.map +0 -1
- package/dist/commands/brain.d.ts +0 -2
- package/dist/commands/brain.js +0 -1300
- package/dist/commands/brain.js.map +0 -1
- package/dist/commands/browser.d.ts +0 -2
- package/dist/commands/browser.js +0 -378
- package/dist/commands/browser.js.map +0 -1
- package/dist/commands/business.d.ts +0 -2
- package/dist/commands/business.js +0 -566
- package/dist/commands/business.js.map +0 -1
- package/dist/commands/cards.d.ts +0 -2
- package/dist/commands/cards.js +0 -419
- package/dist/commands/cards.js.map +0 -1
- package/dist/commands/ceo.d.ts +0 -2
- package/dist/commands/ceo.js +0 -369
- package/dist/commands/ceo.js.map +0 -1
- package/dist/commands/clone.d.ts +0 -2
- package/dist/commands/clone.js +0 -203
- package/dist/commands/clone.js.map +0 -1
- package/dist/commands/companies.d.ts +0 -10
- package/dist/commands/companies.js +0 -283
- package/dist/commands/companies.js.map +0 -1
- package/dist/commands/company-data.d.ts +0 -2
- package/dist/commands/company-data.js +0 -168
- package/dist/commands/company-data.js.map +0 -1
- package/dist/commands/compute.d.ts +0 -2
- package/dist/commands/compute.js +0 -498
- package/dist/commands/compute.js.map +0 -1
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.js +0 -36
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/connections.d.ts +0 -8
- package/dist/commands/connections.js +0 -137
- package/dist/commands/connections.js.map +0 -1
- package/dist/commands/cron-jobs.d.ts +0 -2
- package/dist/commands/cron-jobs.js +0 -245
- package/dist/commands/cron-jobs.js.map +0 -1
- package/dist/commands/domains.d.ts +0 -2
- package/dist/commands/domains.js +0 -474
- package/dist/commands/domains.js.map +0 -1
- package/dist/commands/ecommerce.d.ts +0 -2
- package/dist/commands/ecommerce.js +0 -277
- package/dist/commands/ecommerce.js.map +0 -1
- package/dist/commands/email.d.ts +0 -2
- package/dist/commands/email.js +0 -336
- package/dist/commands/email.js.map +0 -1
- package/dist/commands/employees.d.ts +0 -2
- package/dist/commands/employees.js +0 -190
- package/dist/commands/employees.js.map +0 -1
- package/dist/commands/env.d.ts +0 -7
- package/dist/commands/env.js +0 -112
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/formation.d.ts +0 -2
- package/dist/commands/formation.js +0 -273
- package/dist/commands/formation.js.map +0 -1
- package/dist/commands/identity.d.ts +0 -2
- package/dist/commands/identity.js +0 -110
- package/dist/commands/identity.js.map +0 -1
- package/dist/commands/images.d.ts +0 -2
- package/dist/commands/images.js +0 -371
- package/dist/commands/images.js.map +0 -1
- package/dist/commands/init.d.ts +0 -5
- package/dist/commands/init.js +0 -43
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/jobs.d.ts +0 -2
- package/dist/commands/jobs.js +0 -144
- package/dist/commands/jobs.js.map +0 -1
- package/dist/commands/keys.d.ts +0 -2
- package/dist/commands/keys.js +0 -156
- package/dist/commands/keys.js.map +0 -1
- package/dist/commands/legacy-auth.d.ts +0 -27
- package/dist/commands/legacy-auth.js +0 -64
- package/dist/commands/legacy-auth.js.map +0 -1
- package/dist/commands/llm.d.ts +0 -2
- package/dist/commands/llm.js +0 -125
- package/dist/commands/llm.js.map +0 -1
- package/dist/commands/login.d.ts +0 -2
- package/dist/commands/login.js +0 -65
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -7
- package/dist/commands/logout.js +0 -55
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/logs.d.ts +0 -2
- package/dist/commands/logs.js +0 -42
- package/dist/commands/logs.js.map +0 -1
- package/dist/commands/loops.d.ts +0 -2
- package/dist/commands/loops.js +0 -260
- package/dist/commands/loops.js.map +0 -1
- package/dist/commands/media.d.ts +0 -2
- package/dist/commands/media.js +0 -183
- package/dist/commands/media.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -2
- package/dist/commands/memory.js +0 -151
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/mobile.d.ts +0 -4
- package/dist/commands/mobile.js +0 -382
- package/dist/commands/mobile.js.map +0 -1
- package/dist/commands/module.d.ts +0 -8
- package/dist/commands/module.js +0 -48
- package/dist/commands/module.js.map +0 -1
- package/dist/commands/objectives.d.ts +0 -2
- package/dist/commands/objectives.js +0 -243
- package/dist/commands/objectives.js.map +0 -1
- package/dist/commands/payments.d.ts +0 -2
- package/dist/commands/payments.js +0 -131
- package/dist/commands/payments.js.map +0 -1
- package/dist/commands/people.d.ts +0 -2
- package/dist/commands/people.js +0 -197
- package/dist/commands/people.js.map +0 -1
- package/dist/commands/phone.d.ts +0 -2
- package/dist/commands/phone.js +0 -289
- package/dist/commands/phone.js.map +0 -1
- package/dist/commands/projects.d.ts +0 -13
- package/dist/commands/projects.js +0 -220
- package/dist/commands/projects.js.map +0 -1
- package/dist/commands/queue.d.ts +0 -2
- package/dist/commands/queue.js +0 -121
- package/dist/commands/queue.js.map +0 -1
- package/dist/commands/register.d.ts +0 -2
- package/dist/commands/register.js +0 -88
- package/dist/commands/register.js.map +0 -1
- package/dist/commands/report.d.ts +0 -17
- package/dist/commands/report.js +0 -109
- package/dist/commands/report.js.map +0 -1
- package/dist/commands/sandbox.d.ts +0 -2
- package/dist/commands/sandbox.js +0 -558
- package/dist/commands/sandbox.js.map +0 -1
- package/dist/commands/search.d.ts +0 -2
- package/dist/commands/search.js +0 -223
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/seo.d.ts +0 -2
- package/dist/commands/seo.js +0 -528
- package/dist/commands/seo.js.map +0 -1
- package/dist/commands/sessions.d.ts +0 -6
- package/dist/commands/sessions.js +0 -109
- package/dist/commands/sessions.js.map +0 -1
- package/dist/commands/social-data.d.ts +0 -2
- package/dist/commands/social-data.js +0 -245
- package/dist/commands/social-data.js.map +0 -1
- package/dist/commands/social.d.ts +0 -2
- package/dist/commands/social.js +0 -407
- package/dist/commands/social.js.map +0 -1
- package/dist/commands/status.d.ts +0 -2
- package/dist/commands/status.js +0 -79
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/support.d.ts +0 -2
- package/dist/commands/support.js +0 -134
- package/dist/commands/support.js.map +0 -1
- package/dist/commands/tasks.d.ts +0 -2
- package/dist/commands/tasks.js +0 -409
- package/dist/commands/tasks.js.map +0 -1
- package/dist/commands/teams.d.ts +0 -69
- package/dist/commands/teams.js +0 -503
- package/dist/commands/teams.js.map +0 -1
- package/dist/commands/trading.d.ts +0 -2
- package/dist/commands/trading.js +0 -333
- package/dist/commands/trading.js.map +0 -1
- package/dist/commands/up.d.ts +0 -551
- package/dist/commands/up.js +0 -1149
- package/dist/commands/up.js.map +0 -1
- package/dist/commands/usage.d.ts +0 -2
- package/dist/commands/usage.js +0 -73
- package/dist/commands/usage.js.map +0 -1
- package/dist/commands/use.d.ts +0 -12
- package/dist/commands/use.js +0 -96
- package/dist/commands/use.js.map +0 -1
- package/dist/commands/users.d.ts +0 -10
- package/dist/commands/users.js +0 -82
- package/dist/commands/users.js.map +0 -1
- package/dist/commands/vault.d.ts +0 -2
- package/dist/commands/vault.js +0 -101
- package/dist/commands/vault.js.map +0 -1
- package/dist/commands/verification.d.ts +0 -2
- package/dist/commands/verification.js +0 -152
- package/dist/commands/verification.js.map +0 -1
- package/dist/commands/verify-email.d.ts +0 -19
- package/dist/commands/verify-email.js +0 -130
- package/dist/commands/verify-email.js.map +0 -1
- package/dist/commands/video.d.ts +0 -2
- package/dist/commands/video.js +0 -417
- package/dist/commands/video.js.map +0 -1
- package/dist/commands/voice.d.ts +0 -2
- package/dist/commands/voice.js +0 -516
- package/dist/commands/voice.js.map +0 -1
- package/dist/commands/wallet.d.ts +0 -2
- package/dist/commands/wallet.js +0 -244
- package/dist/commands/wallet.js.map +0 -1
- package/dist/commands/webhooks.d.ts +0 -13
- package/dist/commands/webhooks.js +0 -119
- package/dist/commands/webhooks.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -2
- package/dist/commands/whoami.js +0 -53
- package/dist/commands/whoami.js.map +0 -1
- package/dist/config.d.ts +0 -42
- package/dist/config.js +0 -83
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js.map +0 -1
- package/dist/lib/brain-select.d.ts +0 -193
- package/dist/lib/brain-select.js +0 -403
- package/dist/lib/brain-select.js.map +0 -1
- package/dist/lib/cli-validation.d.ts +0 -12
- package/dist/lib/cli-validation.js +0 -46
- package/dist/lib/cli-validation.js.map +0 -1
- package/dist/lib/config-errors.d.ts +0 -4
- package/dist/lib/config-errors.js +0 -13
- package/dist/lib/config-errors.js.map +0 -1
- package/dist/lib/deprecation.d.ts +0 -158
- package/dist/lib/deprecation.js +0 -140
- package/dist/lib/deprecation.js.map +0 -1
- package/dist/lib/duration.d.ts +0 -8
- package/dist/lib/duration.js +0 -11
- package/dist/lib/duration.js.map +0 -1
- package/dist/lib/http-response.d.ts +0 -11
- package/dist/lib/http-response.js +0 -96
- package/dist/lib/http-response.js.map +0 -1
- package/dist/lib/llm-paywall.d.ts +0 -82
- package/dist/lib/llm-paywall.js +0 -231
- package/dist/lib/llm-paywall.js.map +0 -1
- package/dist/lib/pricing.d.ts +0 -132
- package/dist/lib/pricing.js +0 -148
- package/dist/lib/pricing.js.map +0 -1
- package/dist/lib/starter-config.d.ts +0 -13
- package/dist/lib/starter-config.js +0 -71
- package/dist/lib/starter-config.js.map +0 -1
- package/dist/lib/stream-frames.d.ts +0 -114
- package/dist/lib/stream-frames.js +0 -169
- package/dist/lib/stream-frames.js.map +0 -1
- package/dist/lib/teams-catalog.d.ts +0 -141
- package/dist/lib/teams-catalog.js +0 -841
- package/dist/lib/teams-catalog.js.map +0 -1
- package/dist/lib/unknown-command.d.ts +0 -71
- package/dist/lib/unknown-command.js +0 -132
- package/dist/lib/unknown-command.js.map +0 -1
- package/dist/lib/version-check.d.ts +0 -26
- package/dist/lib/version-check.js +0 -21
- package/dist/lib/version-check.js.map +0 -1
- package/dist/output.d.ts +0 -246
- package/dist/output.js +0 -539
- package/dist/output.js.map +0 -1
- package/dist/prompt.d.ts +0 -17
- package/dist/prompt.js +0 -70
- package/dist/prompt.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.js +0 -14
- package/dist/version.js.map +0 -1
package/dist/commands/memory.js
DELETED
|
@@ -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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"}
|
package/dist/commands/mobile.js
DELETED
|
@@ -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;
|
package/dist/commands/module.js
DELETED
|
@@ -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"}
|