@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.
- package/README.md +43 -354
- package/dist/index.js +51775 -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 -245
- 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 -106
- 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 -80
- 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 -73
- 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 -112
- 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/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 -174
- package/dist/output.js +0 -435
- 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
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
export const employeesCmd = new Command("employees")
|
|
5
|
-
.description("Manage AI employees — hire, fire, configure, and list your workforce")
|
|
6
|
-
.addHelpText("after", `
|
|
7
|
-
Subcommands:
|
|
8
|
-
naive employees list List all employees in your company
|
|
9
|
-
naive employees hire Hire a new AI employee
|
|
10
|
-
naive employees fire <id> Terminate an employee
|
|
11
|
-
naive employees configure <id> Update an employee's model, skills, or settings
|
|
12
|
-
|
|
13
|
-
Workflow:
|
|
14
|
-
1. naive employees hire --role engineer --name "Alice" → hire an employee
|
|
15
|
-
2. naive employees list → see your workforce
|
|
16
|
-
3. naive employees configure <id> --model gpt-4o --skills "coding,devops"
|
|
17
|
-
4. naive tasks dispatch → dispatch tasks to employees
|
|
18
|
-
5. naive employees fire <id> → terminate if no longer needed
|
|
19
|
-
|
|
20
|
-
Employees are AI agents that execute tasks on the kanban board. Each employee
|
|
21
|
-
has a role (engineer, marketer, writer, etc.), a model configuration, and
|
|
22
|
-
a set of skills that determine which tasks they can handle.
|
|
23
|
-
|
|
24
|
-
Examples:
|
|
25
|
-
$ naive employees list
|
|
26
|
-
$ naive employees hire --role marketer --name "Marketing Max"
|
|
27
|
-
$ naive employees hire --role engineer --name "Dev Diana" --skills "typescript,react,devops"
|
|
28
|
-
$ naive employees configure emp-123 --model claude-sonnet-4-20250514
|
|
29
|
-
$ naive employees fire emp-123
|
|
30
|
-
`);
|
|
31
|
-
employeesCmd
|
|
32
|
-
.command("list")
|
|
33
|
-
.description("List all AI employees in your company")
|
|
34
|
-
.addHelpText("after", `
|
|
35
|
-
Examples:
|
|
36
|
-
$ naive employees list
|
|
37
|
-
|
|
38
|
-
Returns employee details:
|
|
39
|
-
- id, name, role
|
|
40
|
-
- Model configuration
|
|
41
|
-
- Skills list
|
|
42
|
-
- Current status (idle, working, offline)
|
|
43
|
-
- Active task (if working)
|
|
44
|
-
- Tasks completed count
|
|
45
|
-
`)
|
|
46
|
-
.action(async () => {
|
|
47
|
-
const resp = await apiRequest("GET", "/v1/employees");
|
|
48
|
-
handleApiError("employees.list", resp);
|
|
49
|
-
const data = resp.data;
|
|
50
|
-
const count = data.employees?.length ?? 0;
|
|
51
|
-
const working = data.employees?.filter((e) => e.status === "working") ?? [];
|
|
52
|
-
agentOutput({
|
|
53
|
-
action: "employees.list",
|
|
54
|
-
result: resp.data,
|
|
55
|
-
next_steps: [
|
|
56
|
-
{ command: "naive employees hire --role <role> --name <name>", description: "Hire a new employee" },
|
|
57
|
-
...(count > 0
|
|
58
|
-
? [{ command: `naive employees configure ${data.employees[0].id} --model <model>`, description: "Configure an employee" }]
|
|
59
|
-
: []),
|
|
60
|
-
{ command: "naive tasks dispatch", description: "Dispatch tasks to available employees" },
|
|
61
|
-
],
|
|
62
|
-
hints: [
|
|
63
|
-
`${count} employee${count !== 1 ? "s" : ""} in your company`,
|
|
64
|
-
`${working.length} currently working on tasks`,
|
|
65
|
-
],
|
|
66
|
-
related_commands: ["naive employees hire", "naive employees configure", "naive tasks dispatch"],
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
employeesCmd
|
|
70
|
-
.command("hire")
|
|
71
|
-
.description("Hire a new AI employee for your company")
|
|
72
|
-
.requiredOption("--role <role>", "Employee role: engineer | marketer | writer | sales | designer | researcher | support")
|
|
73
|
-
.requiredOption("--name <name>", "Display name for the employee")
|
|
74
|
-
.option("--skills <skills>", "Comma-separated skill tags (e.g., 'typescript,react,seo')")
|
|
75
|
-
.option("--model <model>", "AI model to use (default: auto-selected based on role)")
|
|
76
|
-
.addHelpText("after", `
|
|
77
|
-
Examples:
|
|
78
|
-
$ naive employees hire --role engineer --name "Dev Diana"
|
|
79
|
-
$ naive employees hire --role marketer --name "Marketing Max" --skills "seo,content,social"
|
|
80
|
-
$ naive employees hire --role writer --name "Content Casey" --model gpt-4o
|
|
81
|
-
|
|
82
|
-
Available roles:
|
|
83
|
-
engineer — coding, deployment, infrastructure
|
|
84
|
-
marketer — SEO, social media, content marketing, ads
|
|
85
|
-
writer — blog posts, copy, documentation, emails
|
|
86
|
-
sales — outreach, lead generation, proposals
|
|
87
|
-
designer — branding, visual assets, UI mockups
|
|
88
|
-
researcher — market research, competitive analysis, reports
|
|
89
|
-
support — customer service, ticket handling, FAQ management
|
|
90
|
-
|
|
91
|
-
Skills help the task dispatcher match employees to appropriate tasks.
|
|
92
|
-
`)
|
|
93
|
-
.action(async (opts) => {
|
|
94
|
-
const resp = await apiRequest("POST", "/v1/employees", {
|
|
95
|
-
role: opts.role,
|
|
96
|
-
name: opts.name,
|
|
97
|
-
...(opts.skills && { skills: opts.skills.split(",").map((s) => s.trim()) }),
|
|
98
|
-
...(opts.model && { model: opts.model }),
|
|
99
|
-
});
|
|
100
|
-
handleApiError("employees.hire", resp);
|
|
101
|
-
const data = resp.data;
|
|
102
|
-
agentOutput({
|
|
103
|
-
action: "employees.hire",
|
|
104
|
-
result: resp.data,
|
|
105
|
-
next_steps: [
|
|
106
|
-
{ command: `naive employees configure ${data.id} --skills <skills>`, description: "Fine-tune skills" },
|
|
107
|
-
{ command: "naive employees list", description: "View your full team" },
|
|
108
|
-
{ command: "naive tasks dispatch", description: "Dispatch tasks to the new employee" },
|
|
109
|
-
],
|
|
110
|
-
hints: [
|
|
111
|
-
`Employee hired: ${data.name} (${data.role}, id: ${data.id})`,
|
|
112
|
-
"New employees start in 'idle' status and can receive tasks immediately",
|
|
113
|
-
],
|
|
114
|
-
related_commands: ["naive employees list", "naive employees configure", "naive tasks dispatch"],
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
employeesCmd
|
|
118
|
-
.command("fire <id>")
|
|
119
|
-
.description("Terminate an AI employee — reassigns their active tasks")
|
|
120
|
-
.addHelpText("after", `
|
|
121
|
-
Examples:
|
|
122
|
-
$ naive employees fire emp-abc-123
|
|
123
|
-
|
|
124
|
-
What this does:
|
|
125
|
-
1. Marks the employee as terminated
|
|
126
|
-
2. Any active tasks are returned to 'pending' status
|
|
127
|
-
3. The employee can no longer receive new tasks
|
|
128
|
-
4. Historical task completions are preserved
|
|
129
|
-
|
|
130
|
-
Note: This does not delete the employee record — it remains in history.
|
|
131
|
-
`)
|
|
132
|
-
.action(async (id) => {
|
|
133
|
-
const resp = await apiRequest("DELETE", `/v1/employees/${id}`);
|
|
134
|
-
handleApiError("employees.fire", resp);
|
|
135
|
-
agentOutput({
|
|
136
|
-
action: "employees.fire",
|
|
137
|
-
result: resp.data,
|
|
138
|
-
next_steps: [
|
|
139
|
-
{ command: "naive employees list", description: "View remaining employees" },
|
|
140
|
-
{ command: "naive tasks list --status pending", description: "Check for reassigned tasks" },
|
|
141
|
-
{ command: "naive tasks dispatch", description: "Redistribute orphaned tasks" },
|
|
142
|
-
],
|
|
143
|
-
hints: [
|
|
144
|
-
`Employee ${id} terminated`,
|
|
145
|
-
"Active tasks have been returned to pending status",
|
|
146
|
-
],
|
|
147
|
-
related_commands: ["naive employees list", "naive employees hire", "naive tasks dispatch"],
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
employeesCmd
|
|
151
|
-
.command("configure <id>")
|
|
152
|
-
.description("Update an employee's model, skills, or other configuration")
|
|
153
|
-
.option("--model <model>", "Change the AI model (e.g., gpt-4o, claude-sonnet-4-20250514)")
|
|
154
|
-
.option("--skills <skills>", "Replace skill tags (comma-separated)")
|
|
155
|
-
.option("--name <name>", "Update display name")
|
|
156
|
-
.addHelpText("after", `
|
|
157
|
-
Examples:
|
|
158
|
-
$ naive employees configure emp-123 --model gpt-4o
|
|
159
|
-
$ naive employees configure emp-123 --skills "typescript,react,nextjs,devops"
|
|
160
|
-
$ naive employees configure emp-123 --name "Senior Dev Diana" --model claude-sonnet-4-20250514
|
|
161
|
-
|
|
162
|
-
Changes take effect for the next task the employee picks up.
|
|
163
|
-
Active tasks continue with the previous configuration.
|
|
164
|
-
`)
|
|
165
|
-
.action(async (id, opts) => {
|
|
166
|
-
const body = {};
|
|
167
|
-
if (opts.model)
|
|
168
|
-
body.model = opts.model;
|
|
169
|
-
if (opts.skills)
|
|
170
|
-
body.skills = opts.skills.split(",").map((s) => s.trim());
|
|
171
|
-
if (opts.name)
|
|
172
|
-
body.name = opts.name;
|
|
173
|
-
const resp = await apiRequest("PATCH", `/v1/employees/${id}`, body);
|
|
174
|
-
handleApiError("employees.configure", resp);
|
|
175
|
-
agentOutput({
|
|
176
|
-
action: "employees.configure",
|
|
177
|
-
result: resp.data,
|
|
178
|
-
next_steps: [
|
|
179
|
-
{ command: `naive employees list`, description: "View updated employee roster" },
|
|
180
|
-
{ command: "naive tasks dispatch", description: "Dispatch tasks with updated skills matching" },
|
|
181
|
-
],
|
|
182
|
-
hints: [
|
|
183
|
-
`Employee ${id} configuration updated`,
|
|
184
|
-
...(opts.model ? [`Model → ${opts.model}`] : []),
|
|
185
|
-
...(opts.skills ? [`Skills → ${opts.skills}`] : []),
|
|
186
|
-
],
|
|
187
|
-
related_commands: ["naive employees list", "naive employees hire"],
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
//# sourceMappingURL=employees.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../src/commands/employees.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/env.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
/**
|
|
3
|
-
* Environments — the sandbox/production primitive (per-operator mode with
|
|
4
|
-
* stamped resources; see docs: getting-started/environments), plus the legacy
|
|
5
|
-
* base-URL switch and preview-sandbox helpers.
|
|
6
|
-
*/
|
|
7
|
-
export declare const envCmd: Command;
|
package/dist/commands/env.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { saveConfig, loadConfig } from "../config.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
import { apiRequest } from "../client.js";
|
|
5
|
-
/**
|
|
6
|
-
* Environments — the sandbox/production primitive (per-operator mode with
|
|
7
|
-
* stamped resources; see docs: getting-started/environments), plus the legacy
|
|
8
|
-
* base-URL switch and preview-sandbox helpers.
|
|
9
|
-
*/
|
|
10
|
-
export const envCmd = new Command("env")
|
|
11
|
-
.description("Operator environments (sandbox/production): status, promote, reset");
|
|
12
|
-
/** Resolve the target user segment: explicit --user, else the active user. */
|
|
13
|
-
function userSegment(user) {
|
|
14
|
-
if (user)
|
|
15
|
-
return user;
|
|
16
|
-
const active = loadConfig().active_user_id;
|
|
17
|
-
if (active)
|
|
18
|
-
return active;
|
|
19
|
-
throw new Error("No target user: pass --user <id> or set one with `naive use <id>`.");
|
|
20
|
-
}
|
|
21
|
-
envCmd
|
|
22
|
-
.command("status")
|
|
23
|
-
.description("Show the operator's current environment (sandbox|production)")
|
|
24
|
-
.option("--user <id>", "Target a specific tenant user")
|
|
25
|
-
.action(async (opts) => {
|
|
26
|
-
const uid = userSegment(opts.user);
|
|
27
|
-
const { status, data } = await apiRequest("GET", `/v1/users/${uid}/environment`);
|
|
28
|
-
agentOutput({
|
|
29
|
-
action: "env.status",
|
|
30
|
-
result: status === 200 ? data : { error: data, status },
|
|
31
|
-
next_steps: [
|
|
32
|
-
{ command: `naive env promote --user ${uid} --to production`, description: "Promote to production" },
|
|
33
|
-
{ command: `naive env reset --user ${uid} --sandbox`, description: "Purge sandbox resources (keeps audit)" },
|
|
34
|
-
],
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
envCmd
|
|
38
|
-
.command("promote")
|
|
39
|
-
.description("Promote (or demote) the operator's environment")
|
|
40
|
-
.option("--user <id>", "Target a specific tenant user")
|
|
41
|
-
.option("--to <environment>", "Target environment: production|sandbox", "production")
|
|
42
|
-
.action(async (opts) => {
|
|
43
|
-
const uid = userSegment(opts.user);
|
|
44
|
-
const { status, data } = await apiRequest("POST", `/v1/users/${uid}/environment`, {
|
|
45
|
-
environment: opts.to,
|
|
46
|
-
});
|
|
47
|
-
agentOutput({
|
|
48
|
-
action: "env.promote",
|
|
49
|
-
result: status === 200 ? data : { error: data, status },
|
|
50
|
-
next_steps: [
|
|
51
|
-
{ command: "naive env status", description: "Confirm the operator's mode" },
|
|
52
|
-
],
|
|
53
|
-
hints: [
|
|
54
|
-
"Promote flips only the mode. Sandbox residue keeps its stamp: excluded from default listings, never billed against production caps; frozen sandbox approvals must be re-requested.",
|
|
55
|
-
],
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
envCmd
|
|
59
|
-
.command("reset")
|
|
60
|
-
.description("Purge the operator's sandbox resources (audit/trajectories are retained)")
|
|
61
|
-
.option("--user <id>", "Target a specific tenant user")
|
|
62
|
-
.option("--sandbox", "Confirm the sandbox purge (required)")
|
|
63
|
-
.action(async (opts) => {
|
|
64
|
-
if (!opts.sandbox) {
|
|
65
|
-
throw new Error("Pass --sandbox to confirm: this deletes sandbox-stamped resources (never audit).");
|
|
66
|
-
}
|
|
67
|
-
const uid = userSegment(opts.user);
|
|
68
|
-
const { status, data } = await apiRequest("POST", `/v1/users/${uid}/environment/reset`, {});
|
|
69
|
-
agentOutput({
|
|
70
|
-
action: "env.reset",
|
|
71
|
-
result: status === 200 ? data : { error: data, status },
|
|
72
|
-
next_steps: [{ command: "naive env status", description: "Confirm the operator's mode" }],
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
envCmd
|
|
76
|
-
.command("use")
|
|
77
|
-
.description("Point the CLI at an API base URL (e.g. staging)")
|
|
78
|
-
.argument("<base_url>", "API base URL, e.g. https://staging-api.usenaive.ai")
|
|
79
|
-
.action((baseUrl) => {
|
|
80
|
-
saveConfig({ base_url: baseUrl.replace(/\/+$/, "") });
|
|
81
|
-
agentOutput({
|
|
82
|
-
action: "env.use",
|
|
83
|
-
result: { base_url: loadConfig().base_url },
|
|
84
|
-
next_steps: [{ command: "naive status", description: "Verify connectivity against the new environment" }],
|
|
85
|
-
hints: [`CLI now targets ${baseUrl}. Override per-command with NAIVE_BASE_URL.`],
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
envCmd
|
|
89
|
-
.command("create")
|
|
90
|
-
.description("Create an isolated per-tenant preview sandbox (test-mode card, no real sends)")
|
|
91
|
-
.option("--tenant <id>", "Tenant id to create a sandbox for")
|
|
92
|
-
.option("--from <env>", "Environment to clone settings from (e.g. production)", "production")
|
|
93
|
-
.action((opts) => {
|
|
94
|
-
// Preview sandboxes are a managed-environment feature; this records intent and
|
|
95
|
-
// returns guidance. (Full per-tenant sandbox provisioning is a managed add-on.)
|
|
96
|
-
agentOutput({
|
|
97
|
-
action: "env.create",
|
|
98
|
-
result: {
|
|
99
|
-
tenant: opts.tenant ?? null,
|
|
100
|
-
from: opts.from ?? "production",
|
|
101
|
-
status: "requested",
|
|
102
|
-
},
|
|
103
|
-
next_steps: [
|
|
104
|
-
{ command: "naive agent-profiles provision <template> --user " + (opts.tenant ?? "<tenant>"), description: "Provision a test agent profile in the sandbox" },
|
|
105
|
-
],
|
|
106
|
-
hints: [
|
|
107
|
-
"Preview sandboxes isolate a tenant with a test-mode card and no real sends.",
|
|
108
|
-
"Hosted sandbox provisioning is a managed feature — contact support to enable it for your workspace.",
|
|
109
|
-
],
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
//# sourceMappingURL=env.js.map
|
package/dist/commands/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
export const formationCmd = new Command("formation")
|
|
5
|
-
.description("Company formation (LLC incorporation) via Doola — requires completed KYC")
|
|
6
|
-
.addHelpText("after", `
|
|
7
|
-
Subcommands:
|
|
8
|
-
naive formation naics-codes List NAICS industry codes
|
|
9
|
-
naive formation submit [options] Step 1: Validate KYC + create $349 Stripe Checkout
|
|
10
|
-
naive formation retry-payment <id> Regenerate checkout URL if it expired
|
|
11
|
-
naive formation execute <id> Step 2: Submit to Doola after payment
|
|
12
|
-
naive formation list List all formations
|
|
13
|
-
naive formation status <id> Get formation details
|
|
14
|
-
naive formation documents <id> List formation documents
|
|
15
|
-
naive formation download <formationId> <docId> Get document download URL
|
|
16
|
-
|
|
17
|
-
Flow:
|
|
18
|
-
1. submit creates a draft formation and returns a Stripe Checkout URL ($349)
|
|
19
|
-
2. User pays via the checkout URL
|
|
20
|
-
3. execute submits the formation to Doola (decrypts PII from Footprint, maps fields)
|
|
21
|
-
|
|
22
|
-
If the checkout session expires before payment, run 'retry-payment' to get a fresh URL.
|
|
23
|
-
|
|
24
|
-
Requires completed identity verification (all members passed KYC).
|
|
25
|
-
PII (SSN, DOB, address) is pulled from Footprint vault automatically.
|
|
26
|
-
|
|
27
|
-
Governance:
|
|
28
|
-
'submit' (starts a paid formation) and 'execute' (irreversible legal filing
|
|
29
|
-
to Doola) are SENSITIVE and may require human approval. If so the command
|
|
30
|
-
returns status "pending_approval" and the action runs only after
|
|
31
|
-
'naive approvals approve <id>'.
|
|
32
|
-
`);
|
|
33
|
-
formationCmd
|
|
34
|
-
.command("naics-codes")
|
|
35
|
-
.description("List available NAICS industry codes for company formation")
|
|
36
|
-
.action(async () => {
|
|
37
|
-
const resp = await apiRequest("GET", "/v1/formation/naics-codes");
|
|
38
|
-
handleApiError("formation.naics-codes", resp);
|
|
39
|
-
const data = resp.data;
|
|
40
|
-
agentOutput({
|
|
41
|
-
action: "formation.naics-codes",
|
|
42
|
-
result: resp.data,
|
|
43
|
-
next_steps: [
|
|
44
|
-
{ command: "naive formation submit --verification-id <id> --entity-type LLC --state WY --naics <naicsCodeId> ...", description: "Submit formation with a NAICS code" },
|
|
45
|
-
],
|
|
46
|
-
hints: [`Found ${data.naics_codes?.length ?? 0} NAICS codes`],
|
|
47
|
-
related_commands: ["naive formation submit"],
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
formationCmd
|
|
51
|
-
.command("submit")
|
|
52
|
-
.description("Submit company formation — requires completed KYC verification")
|
|
53
|
-
.requiredOption("--verification-id <id>", "UUID of the completed KYC verification")
|
|
54
|
-
.requiredOption("--entity-type <type>", "Entity type to form (currently supports LLC)")
|
|
55
|
-
.requiredOption("--state <state>", "2-letter US state code (e.g. WY, DE)")
|
|
56
|
-
.requiredOption("--naics <naicsCodeId>", "NAICS code ID from 'naive formation naics-codes'")
|
|
57
|
-
.requiredOption("--description <desc>", "Business description (max 256 chars)")
|
|
58
|
-
.requiredOption("--names <json>", "JSON array of name options: [{name, entity_type_ending}]")
|
|
59
|
-
.option("--address <json>", "JSON mailing address (optional — defaults to primary member's KYC address)")
|
|
60
|
-
.action(async (opts) => {
|
|
61
|
-
let nameOptions;
|
|
62
|
-
let mailingAddress;
|
|
63
|
-
try {
|
|
64
|
-
nameOptions = JSON.parse(opts.names);
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
console.log(JSON.stringify({ success: false, error: "Invalid JSON for --names" }));
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
70
|
-
if (opts.address) {
|
|
71
|
-
try {
|
|
72
|
-
mailingAddress = JSON.parse(opts.address);
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
console.log(JSON.stringify({ success: false, error: "Invalid JSON for --address" }));
|
|
76
|
-
process.exit(1);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const body = {
|
|
80
|
-
verification_id: opts.verificationId,
|
|
81
|
-
entity_type: opts.entityType,
|
|
82
|
-
state: opts.state,
|
|
83
|
-
naics_code_id: opts.naics,
|
|
84
|
-
description: opts.description,
|
|
85
|
-
name_options: nameOptions,
|
|
86
|
-
};
|
|
87
|
-
if (mailingAddress)
|
|
88
|
-
body.mailing_address = mailingAddress;
|
|
89
|
-
const resp = await apiRequest("POST", "/v1/formation", body);
|
|
90
|
-
handleApiError("formation.submit", resp);
|
|
91
|
-
if (handlePendingApproval("formation.submit", resp))
|
|
92
|
-
return;
|
|
93
|
-
const data = resp.data;
|
|
94
|
-
agentOutput({
|
|
95
|
-
action: "formation.submit",
|
|
96
|
-
result: resp.data,
|
|
97
|
-
next_steps: [
|
|
98
|
-
...(data.checkout_url
|
|
99
|
-
? [{ command: `Open ${data.checkout_url}`, description: `Pay the ${data.price_usd} formation fee in browser` }]
|
|
100
|
-
: []),
|
|
101
|
-
{ command: `naive formation execute ${data.id}`, description: "After paying, run this to submit to Doola", when: "payment is complete" },
|
|
102
|
-
{ command: `naive formation status ${data.id}`, description: "Check formation status" },
|
|
103
|
-
],
|
|
104
|
-
hints: [
|
|
105
|
-
`Formation ${data.id} created with status: ${data.status}`,
|
|
106
|
-
`A ${data.price_usd} payment is required before submission to Doola`,
|
|
107
|
-
"Open the checkout_url, pay, then run 'naive formation execute' to submit",
|
|
108
|
-
],
|
|
109
|
-
related_commands: ["naive formation execute", "naive formation status", "naive formation list"],
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
formationCmd
|
|
113
|
-
.command("retry-payment <id>")
|
|
114
|
-
.description("Generate a fresh Stripe Checkout URL for a formation whose checkout expired")
|
|
115
|
-
.action(async (id) => {
|
|
116
|
-
const resp = await apiRequest("POST", `/v1/formation/${id}/retry-payment`);
|
|
117
|
-
handleApiError("formation.retry-payment", resp);
|
|
118
|
-
const data = resp.data;
|
|
119
|
-
agentOutput({
|
|
120
|
-
action: "formation.retry-payment",
|
|
121
|
-
result: resp.data,
|
|
122
|
-
next_steps: [
|
|
123
|
-
...(data.checkout_url
|
|
124
|
-
? [{ command: `Open ${data.checkout_url}`, description: `Pay the ${data.price_usd} formation fee in browser` }]
|
|
125
|
-
: []),
|
|
126
|
-
{ command: `naive formation status ${data.id}`, description: "Check formation status" },
|
|
127
|
-
],
|
|
128
|
-
hints: [
|
|
129
|
-
`New checkout URL generated for formation ${data.id}`,
|
|
130
|
-
"Open the URL and complete payment, then call 'naive formation execute' to submit to Doola",
|
|
131
|
-
],
|
|
132
|
-
related_commands: ["naive formation execute", "naive formation status"],
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
formationCmd
|
|
136
|
-
.command("execute <id>")
|
|
137
|
-
.description("Submit formation to Doola (after payment is complete)")
|
|
138
|
-
.action(async (id) => {
|
|
139
|
-
const resp = await apiRequest("POST", `/v1/formation/${id}/submit`);
|
|
140
|
-
handleApiError("formation.execute", resp);
|
|
141
|
-
if (handlePendingApproval("formation.execute", resp))
|
|
142
|
-
return;
|
|
143
|
-
const data = resp.data;
|
|
144
|
-
agentOutput({
|
|
145
|
-
action: "formation.execute",
|
|
146
|
-
result: resp.data,
|
|
147
|
-
next_steps: [
|
|
148
|
-
{ command: `naive formation status ${data.id}`, description: "Track formation progress" },
|
|
149
|
-
{ command: `naive formation documents ${data.id}`, description: "List documents (after completion)", when: "formation is completed" },
|
|
150
|
-
],
|
|
151
|
-
hints: [
|
|
152
|
-
`Formation ${data.id} status: ${data.status}`,
|
|
153
|
-
data.doola_company_id ? `Doola Company ID: ${data.doola_company_id}` : "Doola is processing the formation",
|
|
154
|
-
"Formation typically takes days to weeks. Documents will be available after completion.",
|
|
155
|
-
],
|
|
156
|
-
related_commands: ["naive formation status", "naive formation documents", "naive formation list"],
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
formationCmd
|
|
160
|
-
.command("list")
|
|
161
|
-
.description("List all company formation requests")
|
|
162
|
-
.action(async () => {
|
|
163
|
-
const resp = await apiRequest("GET", "/v1/formation");
|
|
164
|
-
handleApiError("formation.list", resp);
|
|
165
|
-
const data = resp.data;
|
|
166
|
-
const awaitingPayment = data.formations.filter((f) => f.status === "awaiting_payment");
|
|
167
|
-
const readyToExecute = data.formations.filter((f) => f.status === "pending" && f.payment_status === "paid");
|
|
168
|
-
const nextSteps = [];
|
|
169
|
-
if (readyToExecute.length > 0) {
|
|
170
|
-
nextSteps.push({ command: `naive formation execute ${readyToExecute[0].id}`, description: "Submit paid formation to Doola" });
|
|
171
|
-
}
|
|
172
|
-
else if (awaitingPayment.length > 0) {
|
|
173
|
-
nextSteps.push({ command: `naive formation status ${awaitingPayment[0].id}`, description: "View formation awaiting payment" });
|
|
174
|
-
}
|
|
175
|
-
else if (data.formations.length > 0) {
|
|
176
|
-
nextSteps.push({ command: `naive formation status ${data.formations[0].id}`, description: "View details of the latest formation" });
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
nextSteps.push({ command: "naive formation submit ...", description: "Submit a new formation" });
|
|
180
|
-
}
|
|
181
|
-
agentOutput({
|
|
182
|
-
action: "formation.list",
|
|
183
|
-
result: resp.data,
|
|
184
|
-
next_steps: nextSteps,
|
|
185
|
-
hints: [
|
|
186
|
-
`Found ${data.formations.length} formation(s)`,
|
|
187
|
-
...(awaitingPayment.length > 0 ? [`${awaitingPayment.length} awaiting payment`] : []),
|
|
188
|
-
...(readyToExecute.length > 0 ? [`${readyToExecute.length} paid and ready to execute`] : []),
|
|
189
|
-
],
|
|
190
|
-
related_commands: ["naive formation submit", "naive formation execute", "naive formation status"],
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
formationCmd
|
|
194
|
-
.command("status <id>")
|
|
195
|
-
.description("Get formation details and status")
|
|
196
|
-
.action(async (id) => {
|
|
197
|
-
const resp = await apiRequest("GET", `/v1/formation/${id}`);
|
|
198
|
-
handleApiError("formation.status", resp);
|
|
199
|
-
const data = resp.data;
|
|
200
|
-
const nextSteps = [];
|
|
201
|
-
const hints = [`Status: ${data.status}`, `Payment: ${data.payment_status}`];
|
|
202
|
-
if (data.status === "awaiting_payment" && data.payment_status === "unpaid") {
|
|
203
|
-
hints.push("Formation is waiting for $349 payment via Stripe Checkout");
|
|
204
|
-
nextSteps.push({ command: `naive formation retry-payment ${data.id}`, description: "Generate a fresh Stripe Checkout URL (if the original expired)" });
|
|
205
|
-
}
|
|
206
|
-
else if (data.status === "pending" && data.payment_status === "paid") {
|
|
207
|
-
hints.push("Payment received — ready to submit to Doola");
|
|
208
|
-
nextSteps.push({ command: `naive formation execute ${data.id}`, description: "Submit formation to Doola now" });
|
|
209
|
-
}
|
|
210
|
-
else if (data.status === "submitted" || data.status === "formation_completed") {
|
|
211
|
-
if (data.doola_company_id)
|
|
212
|
-
hints.push(`Doola Company ID: ${data.doola_company_id}`);
|
|
213
|
-
hints.push("Doola is processing the formation. Documents will appear when complete.");
|
|
214
|
-
if (data.doola_company_id) {
|
|
215
|
-
nextSteps.push({ command: `naive formation documents ${data.id}`, description: "List available documents" });
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
else if (data.status === "failed") {
|
|
219
|
-
hints.push(`Error: ${data.doola_error ?? "(unknown)"}`);
|
|
220
|
-
if (data.payment_status === "paid") {
|
|
221
|
-
hints.push("Payment was completed but formation failed at Doola. Contact support@usenaive.ai for assistance.");
|
|
222
|
-
nextSteps.push({ command: `naive formation execute ${data.id}`, description: "Retry the Doola submission (may resolve transient errors)" });
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
hints.push("Payment was not completed. You can retry payment or start a new formation.");
|
|
226
|
-
nextSteps.push({ command: `naive formation retry-payment ${data.id}`, description: "Generate a fresh checkout URL and try again" });
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
agentOutput({
|
|
230
|
-
action: "formation.status",
|
|
231
|
-
result: resp.data,
|
|
232
|
-
next_steps: nextSteps,
|
|
233
|
-
hints,
|
|
234
|
-
related_commands: ["naive formation list", "naive formation execute", "naive formation documents"],
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
formationCmd
|
|
238
|
-
.command("documents <id>")
|
|
239
|
-
.description("List documents for a formation (Articles of Organization, EIN Letter, etc.)")
|
|
240
|
-
.action(async (id) => {
|
|
241
|
-
const resp = await apiRequest("GET", `/v1/formation/${id}/documents`);
|
|
242
|
-
handleApiError("formation.documents", resp);
|
|
243
|
-
const data = resp.data;
|
|
244
|
-
agentOutput({
|
|
245
|
-
action: "formation.documents",
|
|
246
|
-
result: resp.data,
|
|
247
|
-
next_steps: data.documents.length > 0
|
|
248
|
-
? [{ command: `naive formation download ${id} ${data.documents[0].id}`, description: `Download ${data.documents[0].documentType}` }]
|
|
249
|
-
: [],
|
|
250
|
-
hints: [`Found ${data.documents.length} document(s)`],
|
|
251
|
-
related_commands: ["naive formation status", "naive formation download"],
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
formationCmd
|
|
255
|
-
.command("download <formationId> <documentId>")
|
|
256
|
-
.description("Get a temporary signed download URL for a formation document")
|
|
257
|
-
.action(async (formationId, documentId) => {
|
|
258
|
-
const resp = await apiRequest("GET", `/v1/formation/${formationId}/documents/${documentId}`);
|
|
259
|
-
handleApiError("formation.download", resp);
|
|
260
|
-
const data = resp.data;
|
|
261
|
-
agentOutput({
|
|
262
|
-
action: "formation.download",
|
|
263
|
-
result: resp.data,
|
|
264
|
-
next_steps: data.downloadUrl
|
|
265
|
-
? [{ command: `curl -o "${data.name ?? "document.pdf"}" "${data.downloadUrl}"`, description: "Download the document" }]
|
|
266
|
-
: [],
|
|
267
|
-
hints: data.downloadUrl
|
|
268
|
-
? ["Download URL is temporary — use it within 1 hour"]
|
|
269
|
-
: ["Document may not be ready yet"],
|
|
270
|
-
related_commands: ["naive formation documents"],
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
//# sourceMappingURL=formation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formation.js","sourceRoot":"","sources":["../../src/commands/formation.ts"],"names":[],"mappings":"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"}
|