@usenaive-sdk/cli 0.12.5 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -6
- package/dist/client.d.ts +48 -0
- package/dist/client.js +199 -27
- package/dist/client.js.map +1 -1
- package/dist/commands/aeo.js +56 -21
- package/dist/commands/aeo.js.map +1 -1
- package/dist/commands/app-data.js +29 -11
- package/dist/commands/app-data.js.map +1 -1
- package/dist/commands/apps.d.ts +7 -0
- package/dist/commands/apps.js +255 -18
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/audio.d.ts +9 -0
- package/dist/commands/audio.js +391 -0
- package/dist/commands/audio.js.map +1 -0
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +20 -17
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/billing.js +9 -9
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/brain.js +798 -52
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/browser.js +8 -8
- package/dist/commands/browser.js.map +1 -1
- package/dist/commands/business.js +117 -16
- package/dist/commands/business.js.map +1 -1
- package/dist/commands/clone.js +6 -2
- package/dist/commands/clone.js.map +1 -1
- package/dist/commands/companies.d.ts +8 -0
- package/dist/commands/companies.js +137 -47
- package/dist/commands/companies.js.map +1 -1
- package/dist/commands/company-data.d.ts +2 -0
- package/dist/commands/company-data.js +168 -0
- package/dist/commands/company-data.js.map +1 -0
- package/dist/commands/compute.js +10 -3
- package/dist/commands/compute.js.map +1 -1
- package/dist/commands/connections.d.ts +6 -0
- package/dist/commands/connections.js +29 -1
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/domains.js +1 -1
- package/dist/commands/ecommerce.js +19 -9
- package/dist/commands/ecommerce.js.map +1 -1
- package/dist/commands/email.js +56 -9
- package/dist/commands/email.js.map +1 -1
- package/dist/commands/formation.js +3 -3
- package/dist/commands/identity.js +4 -3
- package/dist/commands/identity.js.map +1 -1
- package/dist/commands/images.js +85 -11
- package/dist/commands/images.js.map +1 -1
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.js +39 -36
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/jobs.js +1 -0
- package/dist/commands/jobs.js.map +1 -1
- package/dist/commands/legacy-auth.d.ts +27 -0
- package/dist/commands/legacy-auth.js +64 -0
- package/dist/commands/legacy-auth.js.map +1 -0
- package/dist/commands/llm.js +13 -0
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/login.js +2 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/media.js +3 -3
- package/dist/commands/media.js.map +1 -1
- package/dist/commands/mobile.d.ts +2 -0
- package/dist/commands/mobile.js +42 -1
- package/dist/commands/mobile.js.map +1 -1
- package/dist/commands/payments.js +1 -1
- package/dist/commands/people.d.ts +2 -0
- package/dist/commands/people.js +193 -0
- package/dist/commands/people.js.map +1 -0
- package/dist/commands/phone.js +3 -78
- package/dist/commands/phone.js.map +1 -1
- package/dist/commands/projects.d.ts +13 -0
- package/dist/commands/projects.js +220 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/register.js +13 -5
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/sandbox.d.ts +2 -0
- package/dist/commands/sandbox.js +245 -0
- package/dist/commands/sandbox.js.map +1 -0
- package/dist/commands/search.js +26 -12
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/seo.js +16 -8
- package/dist/commands/seo.js.map +1 -1
- package/dist/commands/sessions.d.ts +6 -0
- package/dist/commands/sessions.js +109 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/social-data.d.ts +2 -0
- package/dist/commands/social-data.js +244 -0
- package/dist/commands/social-data.js.map +1 -0
- package/dist/commands/social.js +8 -6
- package/dist/commands/social.js.map +1 -1
- package/dist/commands/teams.d.ts +69 -0
- package/dist/commands/teams.js +503 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/up.d.ts +150 -0
- package/dist/commands/up.js +415 -15
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/usage.js +15 -4
- package/dist/commands/usage.js.map +1 -1
- package/dist/commands/use.d.ts +9 -0
- package/dist/commands/use.js +76 -11
- package/dist/commands/use.js.map +1 -1
- package/dist/commands/users.d.ts +8 -0
- package/dist/commands/users.js +28 -9
- package/dist/commands/users.js.map +1 -1
- package/dist/commands/vault.js +28 -1
- package/dist/commands/vault.js.map +1 -1
- package/dist/commands/video.js +117 -18
- package/dist/commands/video.js.map +1 -1
- package/dist/commands/wallet.js +3 -3
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/whoami.js +17 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config.d.ts +9 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +228 -24
- package/dist/index.js.map +1 -1
- package/dist/lib/brain-select.d.ts +193 -0
- package/dist/lib/brain-select.js +403 -0
- package/dist/lib/brain-select.js.map +1 -0
- package/dist/lib/cli-validation.d.ts +12 -0
- package/dist/lib/cli-validation.js +46 -0
- package/dist/lib/cli-validation.js.map +1 -0
- package/dist/lib/deprecation.d.ts +158 -0
- package/dist/lib/deprecation.js +140 -0
- package/dist/lib/deprecation.js.map +1 -0
- package/dist/lib/duration.d.ts +8 -0
- package/dist/lib/duration.js +11 -0
- package/dist/lib/duration.js.map +1 -0
- package/dist/lib/http-response.d.ts +11 -0
- package/dist/lib/http-response.js +96 -0
- package/dist/lib/http-response.js.map +1 -0
- package/dist/lib/pricing.d.ts +132 -0
- package/dist/lib/pricing.js +148 -0
- package/dist/lib/pricing.js.map +1 -0
- package/dist/lib/stream-frames.d.ts +114 -0
- package/dist/lib/stream-frames.js +169 -0
- package/dist/lib/stream-frames.js.map +1 -0
- package/dist/lib/teams-catalog.d.ts +141 -0
- package/dist/lib/teams-catalog.js +765 -0
- package/dist/lib/teams-catalog.js.map +1 -0
- package/dist/lib/unknown-command.d.ts +41 -1
- package/dist/lib/unknown-command.js +74 -0
- package/dist/lib/unknown-command.js.map +1 -1
- package/dist/output.d.ts +99 -5
- package/dist/output.js +160 -11
- package/dist/output.js.map +1 -1
- package/package.json +3 -3
- package/dist/commands/link.d.ts +0 -3
- package/dist/commands/link.js +0 -91
- package/dist/commands/link.js.map +0 -1
|
@@ -2,51 +2,132 @@ import { Command } from "commander";
|
|
|
2
2
|
import { apiRequest, handleApiError } from "../client.js";
|
|
3
3
|
import { saveConfig } from "../config.js";
|
|
4
4
|
import { agentOutput } from "../output.js";
|
|
5
|
+
async function listCompanies() {
|
|
6
|
+
const resp = await apiRequest("GET", "/v1/auth/companies");
|
|
7
|
+
handleApiError("companies.list", resp);
|
|
8
|
+
const data = resp.data;
|
|
9
|
+
agentOutput({
|
|
10
|
+
action: "companies.list",
|
|
11
|
+
result: data,
|
|
12
|
+
next_steps: [
|
|
13
|
+
{ command: "naive organization select <company_id>", description: "Switch to a different organization context", when: "You want to operate under a different organization" },
|
|
14
|
+
{ command: "naive status", description: "See full status for current organization" },
|
|
15
|
+
],
|
|
16
|
+
hints: [
|
|
17
|
+
`Found ${data.companies?.length ?? 0} accessible organizations`,
|
|
18
|
+
"Use 'naive organization select <id>' to switch. A new API key will be issued for that organization.",
|
|
19
|
+
],
|
|
20
|
+
related_commands: ["naive organization select", "naive whoami", "naive status"],
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* `naive companies` — the ORGANIZATION.
|
|
25
|
+
*
|
|
26
|
+
* `organization` is the product noun and the alias below is what the docs and
|
|
27
|
+
* help text use; `companies` stays as the command name, the route
|
|
28
|
+
* (`/v1/company`) and the config key, because every script and agent profile in
|
|
29
|
+
* the wild already types it.
|
|
30
|
+
*/
|
|
5
31
|
export const companiesCmd = new Command("companies")
|
|
6
|
-
.
|
|
32
|
+
.alias("organization")
|
|
33
|
+
.alias("org")
|
|
34
|
+
.description("List/create/switch organizations accessible to the current agent")
|
|
7
35
|
.addHelpText("after", `
|
|
8
36
|
Examples:
|
|
9
|
-
$ naive companies
|
|
37
|
+
$ naive organization (alias of: naive companies)
|
|
38
|
+
$ naive companies list
|
|
39
|
+
$ naive companies create --name "ProbeCo"
|
|
40
|
+
$ naive organization select <company_id>
|
|
10
41
|
|
|
11
42
|
What this does:
|
|
12
|
-
Lists every
|
|
13
|
-
-
|
|
14
|
-
-
|
|
43
|
+
Lists every organization your agent/account has access to, showing:
|
|
44
|
+
- Organization ID (UUID)
|
|
45
|
+
- Organization name
|
|
15
46
|
- Current credit balance
|
|
16
47
|
- Billing tier (free, pro, enterprise)
|
|
17
48
|
|
|
18
49
|
Use this to:
|
|
19
50
|
- See which workspaces you can operate in
|
|
20
|
-
- Find
|
|
21
|
-
- Check credit balances across
|
|
51
|
+
- Find an organization ID to switch context with 'naive organization select'
|
|
52
|
+
- Check credit balances across organizations
|
|
53
|
+
- Create an additional workspace with 'naive companies create --name …'
|
|
22
54
|
`)
|
|
23
55
|
.action(async () => {
|
|
24
|
-
|
|
25
|
-
|
|
56
|
+
await listCompanies();
|
|
57
|
+
});
|
|
58
|
+
companiesCmd
|
|
59
|
+
.command("create")
|
|
60
|
+
.description("Create an additional company and switch the CLI to it")
|
|
61
|
+
.requiredOption("--name <name>", "Company / project name")
|
|
62
|
+
.addHelpText("after", `
|
|
63
|
+
Examples:
|
|
64
|
+
$ naive companies create --name "ProbeCo"
|
|
65
|
+
$ naive companies create --name "Acme Staging"
|
|
66
|
+
|
|
67
|
+
What this does:
|
|
68
|
+
1. Creates a new company owned by, and billed to, your current company's owner
|
|
69
|
+
2. Issues a fresh API key scoped to that company (sealed to its default user)
|
|
70
|
+
3. Overwrites ~/.naive/config.json with that key — same as 'companies select'
|
|
71
|
+
|
|
72
|
+
Notes:
|
|
73
|
+
- register already creates your first company; use this for extra workspaces
|
|
74
|
+
- Capped at 5 companies per owner, 3 creates per hour
|
|
75
|
+
- The owner is charged for the new company whichever key in your company runs
|
|
76
|
+
this. Read /docs/api-reference/auth/companies before wiring it into a loop.
|
|
77
|
+
`)
|
|
78
|
+
.action(async (opts) => {
|
|
79
|
+
const resp = await apiRequest("POST", "/v1/auth/companies", { name: opts.name });
|
|
80
|
+
handleApiError("companies.create", resp);
|
|
26
81
|
const data = resp.data;
|
|
82
|
+
saveConfig({
|
|
83
|
+
api_key: data.api_key,
|
|
84
|
+
agent_id: data.agent_id,
|
|
85
|
+
company_id: data.company_id,
|
|
86
|
+
company_name: data.company_name,
|
|
87
|
+
});
|
|
27
88
|
agentOutput({
|
|
28
|
-
action: "companies.
|
|
29
|
-
result:
|
|
89
|
+
action: "companies.create",
|
|
90
|
+
result: {
|
|
91
|
+
company_id: data.company_id,
|
|
92
|
+
company_name: data.company_name,
|
|
93
|
+
agent_id: data.agent_id,
|
|
94
|
+
credits: data.credits,
|
|
95
|
+
new_key_issued: true,
|
|
96
|
+
},
|
|
30
97
|
next_steps: [
|
|
31
|
-
{ command: "naive
|
|
32
|
-
{ command: "naive status", description: "See
|
|
98
|
+
{ command: "naive whoami", description: "Confirm the new organization context" },
|
|
99
|
+
{ command: "naive status", description: "See credits and API status" },
|
|
100
|
+
{ command: "naive apps create --name <name>", description: "Create an app in this organization" },
|
|
33
101
|
],
|
|
34
102
|
hints: [
|
|
35
|
-
`
|
|
36
|
-
"
|
|
103
|
+
`Created "${data.company_name}" and switched CLI context. New API key saved.`,
|
|
104
|
+
"The previous organization's key is no longer in ~/.naive/config.json — use 'naive organization select <id>' to go back.",
|
|
37
105
|
],
|
|
38
|
-
related_commands: ["naive companies select", "naive whoami", "naive status"],
|
|
106
|
+
related_commands: ["naive companies list", "naive organization select", "naive whoami", "naive status"],
|
|
39
107
|
});
|
|
40
108
|
});
|
|
109
|
+
// `naive companies list` — the bare `naive companies` used to reject any extra
|
|
110
|
+
// argument, so an agent that spelled the verb out got a usage error.
|
|
111
|
+
companiesCmd
|
|
112
|
+
.command("list")
|
|
113
|
+
.description("List all companies accessible to the current agent")
|
|
114
|
+
.addHelpText("after", `
|
|
115
|
+
Examples:
|
|
116
|
+
$ naive companies list
|
|
117
|
+
$ naive companies
|
|
118
|
+
`)
|
|
119
|
+
.action(async () => {
|
|
120
|
+
await listCompanies();
|
|
121
|
+
});
|
|
41
122
|
companiesCmd
|
|
42
123
|
.command("show")
|
|
43
124
|
.description("Show details of the current company")
|
|
44
125
|
.addHelpText("after", `
|
|
45
126
|
Examples:
|
|
46
|
-
$ naive
|
|
127
|
+
$ naive organization show
|
|
47
128
|
|
|
48
129
|
What this does:
|
|
49
|
-
Returns detailed information about the
|
|
130
|
+
Returns detailed information about the organization your agent is
|
|
50
131
|
currently operating under, including:
|
|
51
132
|
- Name and slug
|
|
52
133
|
- Description
|
|
@@ -55,8 +136,8 @@ What this does:
|
|
|
55
136
|
- Creation date
|
|
56
137
|
|
|
57
138
|
Use this to:
|
|
58
|
-
- Check the current
|
|
59
|
-
- See
|
|
139
|
+
- Check the current organization name
|
|
140
|
+
- See organization metadata before making changes
|
|
60
141
|
`)
|
|
61
142
|
.action(async () => {
|
|
62
143
|
const resp = await apiRequest("GET", "/v1/company");
|
|
@@ -65,14 +146,14 @@ Use this to:
|
|
|
65
146
|
action: "companies.show",
|
|
66
147
|
result: resp.data,
|
|
67
148
|
next_steps: [
|
|
68
|
-
{ command: "naive
|
|
69
|
-
{ command: "naive
|
|
149
|
+
{ command: "naive organization rename \"New Name\"", description: "Change the organization name", when: "The name needs updating" },
|
|
150
|
+
{ command: "naive organization update --description \"...\"", description: "Update the organization description" },
|
|
70
151
|
{ command: "naive status", description: "See credits and API status" },
|
|
71
152
|
],
|
|
72
153
|
hints: [
|
|
73
|
-
"Use 'naive
|
|
154
|
+
"Use 'naive organization rename' to change the organization name",
|
|
74
155
|
],
|
|
75
|
-
related_commands: ["naive
|
|
156
|
+
related_commands: ["naive organization rename", "naive organization update", "naive status"],
|
|
76
157
|
});
|
|
77
158
|
});
|
|
78
159
|
companiesCmd
|
|
@@ -80,16 +161,16 @@ companiesCmd
|
|
|
80
161
|
.description("Rename the current company")
|
|
81
162
|
.addHelpText("after", `
|
|
82
163
|
Examples:
|
|
83
|
-
$ naive
|
|
84
|
-
$ naive
|
|
164
|
+
$ naive organization rename "Acme Corp"
|
|
165
|
+
$ naive organization rename "My Startup Inc"
|
|
85
166
|
|
|
86
167
|
What this does:
|
|
87
|
-
Changes the display name of the
|
|
168
|
+
Changes the display name of the organization your agent currently
|
|
88
169
|
operates under. The slug and other identifiers remain unchanged.
|
|
89
170
|
|
|
90
171
|
Notes:
|
|
91
172
|
- The name must be a non-empty string
|
|
92
|
-
- This does not change the
|
|
173
|
+
- This does not change the organization slug or issue prefix
|
|
93
174
|
- The change takes effect immediately across the platform
|
|
94
175
|
`)
|
|
95
176
|
.action(async (name) => {
|
|
@@ -100,24 +181,24 @@ Notes:
|
|
|
100
181
|
action: "companies.rename",
|
|
101
182
|
result: data,
|
|
102
183
|
next_steps: [
|
|
103
|
-
{ command: "naive
|
|
184
|
+
{ command: "naive organization show", description: "Verify the updated organization details" },
|
|
104
185
|
{ command: "naive status", description: "See full status" },
|
|
105
186
|
],
|
|
106
187
|
hints: [
|
|
107
|
-
`
|
|
188
|
+
`Organization renamed to "${data.name}"`,
|
|
108
189
|
],
|
|
109
|
-
related_commands: ["naive
|
|
190
|
+
related_commands: ["naive organization show", "naive organization update", "naive status"],
|
|
110
191
|
});
|
|
111
192
|
});
|
|
112
193
|
companiesCmd
|
|
113
194
|
.command("update")
|
|
114
|
-
.description("Update
|
|
115
|
-
.option("--name <name>", "New
|
|
195
|
+
.description("Update organization details (name, description)")
|
|
196
|
+
.option("--name <name>", "New organization name")
|
|
116
197
|
.option("--description <description>", "Company description")
|
|
117
198
|
.addHelpText("after", `
|
|
118
199
|
Examples:
|
|
119
|
-
$ naive
|
|
120
|
-
$ naive
|
|
200
|
+
$ naive organization update --name "Acme Corp" --description "Building the future"
|
|
201
|
+
$ naive organization update --description "An AI-native startup"
|
|
121
202
|
|
|
122
203
|
What this does:
|
|
123
204
|
Updates one or more fields on the current company. At least one
|
|
@@ -135,31 +216,31 @@ What this does:
|
|
|
135
216
|
action: "companies.update",
|
|
136
217
|
result: resp.data,
|
|
137
218
|
next_steps: [
|
|
138
|
-
{ command: "naive
|
|
219
|
+
{ command: "naive organization show", description: "Verify the updated organization details" },
|
|
139
220
|
],
|
|
140
221
|
hints: [
|
|
141
222
|
"Company details updated successfully",
|
|
142
223
|
],
|
|
143
|
-
related_commands: ["naive
|
|
224
|
+
related_commands: ["naive organization show", "naive organization rename", "naive status"],
|
|
144
225
|
});
|
|
145
226
|
});
|
|
146
227
|
companiesCmd
|
|
147
228
|
.command("select <company_id>")
|
|
148
|
-
.description("Switch active
|
|
229
|
+
.description("Switch active organization context (issues a new API key for that organization)")
|
|
149
230
|
.addHelpText("after", `
|
|
150
231
|
Examples:
|
|
151
|
-
$ naive
|
|
232
|
+
$ naive organization select 550e8400-e29b-41d4-a716-446655440000
|
|
152
233
|
|
|
153
234
|
What this does:
|
|
154
|
-
1. Verifies you have access to the specified
|
|
155
|
-
2. Issues a new API key scoped to that
|
|
235
|
+
1. Verifies you have access to the specified organization
|
|
236
|
+
2. Issues a new API key scoped to that organization
|
|
156
237
|
3. Saves the new key to ~/.naive/config.json
|
|
157
|
-
4. All future commands operate under the new
|
|
238
|
+
4. All future commands operate under the new organization
|
|
158
239
|
|
|
159
240
|
Notes:
|
|
160
|
-
- Your old key for the previous
|
|
161
|
-
- Use 'naive
|
|
162
|
-
- The new key has access only to the selected
|
|
241
|
+
- Your old key for the previous organization remains valid
|
|
242
|
+
- Use 'naive organization' first to get the organization ID
|
|
243
|
+
- The new key has access only to the selected organization's resources
|
|
163
244
|
`)
|
|
164
245
|
.action(async (id) => {
|
|
165
246
|
const resp = await apiRequest("POST", "/v1/auth/select-company", { company_id: id });
|
|
@@ -170,6 +251,15 @@ Notes:
|
|
|
170
251
|
agent_id: data.agent_id,
|
|
171
252
|
company_id: data.company_id,
|
|
172
253
|
company_name: data.company_name,
|
|
254
|
+
// A project belongs to ONE organization, so a project selected in the old
|
|
255
|
+
// one is meaningless — and worse than meaningless: it would be sent as
|
|
256
|
+
// `X-Naive-Project-Id` against the new organization and 404 every command
|
|
257
|
+
// until the operator guessed why. Same for the child project inside it,
|
|
258
|
+
// which is why the organization switch also invalidates any prior
|
|
259
|
+
// `naive use` subject.
|
|
260
|
+
active_project_id: undefined,
|
|
261
|
+
active_project_name: undefined,
|
|
262
|
+
active_user_id: undefined,
|
|
173
263
|
});
|
|
174
264
|
agentOutput({
|
|
175
265
|
action: "companies.select",
|
|
@@ -179,13 +269,13 @@ Notes:
|
|
|
179
269
|
new_key_issued: true,
|
|
180
270
|
},
|
|
181
271
|
next_steps: [
|
|
182
|
-
{ command: "naive identity", description: "View resources available in the new
|
|
272
|
+
{ command: "naive identity", description: "View resources available in the new organization context" },
|
|
183
273
|
{ command: "naive email inboxes", description: "Check email addresses for this company" },
|
|
184
274
|
{ command: "naive status", description: "See credits and status for this company" },
|
|
185
275
|
],
|
|
186
276
|
hints: [
|
|
187
277
|
`Now operating under "${data.company_name}". New API key saved.`,
|
|
188
|
-
"All subsequent commands use the new
|
|
278
|
+
"All subsequent commands use the new organization context.",
|
|
189
279
|
],
|
|
190
280
|
related_commands: ["naive whoami", "naive identity", "naive status"],
|
|
191
281
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companies.js","sourceRoot":"","sources":["../../src/commands/companies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACjD,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"companies.js","sourceRoot":"","sources":["../../src/commands/companies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
+
import { agentOutput, creditCostHint } from "../output.js";
|
|
4
|
+
import { parseIntegerOption } from "../lib/cli-validation.js";
|
|
5
|
+
export const companyDataCmd = new Command("company-data")
|
|
6
|
+
.description("Company Data — private company firmographics, funding, headcount & tech stack")
|
|
7
|
+
.addHelpText("after", `
|
|
8
|
+
Subcommands:
|
|
9
|
+
naive company-data search Find companies by industry or geography
|
|
10
|
+
naive company-data enrich Enrich one company from a domain or name
|
|
11
|
+
naive company-data batch Async batch enrich (up to 1,000 identities)
|
|
12
|
+
naive company-data task <id> Check a batch task
|
|
13
|
+
naive company-data terms The acceptable-use terms this primitive binds you to
|
|
14
|
+
|
|
15
|
+
SEARCH TAKES INDUSTRY AND GEO ONLY. Funding, stage and headcount thresholds are
|
|
16
|
+
NOT offered here on purpose: the search provider returns none of those fields,
|
|
17
|
+
so the API refuses those filters rather than running a query that would match
|
|
18
|
+
nothing and bill for it. Filter on industry/geo, then enrich the results with
|
|
19
|
+
--include-signals, which does return funding and headcount.
|
|
20
|
+
|
|
21
|
+
Cost: 3x what the provider run really cost, on every operation.
|
|
22
|
+
--include-signals costs more because it starts more runs, and adds funding,
|
|
23
|
+
investors and the technology stack. A no-match is billed too — the run still
|
|
24
|
+
happened — and the 404 reports what it cost. Every charge reports the
|
|
25
|
+
provider_usd it came from (see \`naive usage\`).
|
|
26
|
+
|
|
27
|
+
All data comes from ONE provider (Apify) on one token — that is the "provider"
|
|
28
|
+
field, and it is always "apify". The "sources" field is a different thing: the
|
|
29
|
+
DATASETS a record was assembled from. LinkedIn supplies firmographics
|
|
30
|
+
(headcount, founded, industry, headquarters); Crunchbase supplies funding and
|
|
31
|
+
investors; a direct scan of the domain supplies the technology stack.
|
|
32
|
+
|
|
33
|
+
Funding is matched on a derived slug and can miss, so an absent "crunchbase"
|
|
34
|
+
means no match rather than an error — you still get the firmographics.
|
|
35
|
+
|
|
36
|
+
Not to be confused with \`naive companies\`, which manages tenant companies, or
|
|
37
|
+
with \`naive business\` (Reviews & Listings), which is reputation rather than the
|
|
38
|
+
company itself.
|
|
39
|
+
`);
|
|
40
|
+
companyDataCmd
|
|
41
|
+
.command("search")
|
|
42
|
+
.description("Find private companies by industry or geography (billed on 3x the run's cost)")
|
|
43
|
+
.option("--industry <industry>", "Industry, e.g. 'fintech'")
|
|
44
|
+
.option("--geo <geo>", "Location, e.g. 'United States'")
|
|
45
|
+
.option("--limit <n>", "Max records, 1-50")
|
|
46
|
+
.action(async (opts) => {
|
|
47
|
+
const filters = {};
|
|
48
|
+
if (opts.industry)
|
|
49
|
+
filters.industry = opts.industry;
|
|
50
|
+
if (opts.geo)
|
|
51
|
+
filters.geo = opts.geo;
|
|
52
|
+
const body = { filters };
|
|
53
|
+
if (opts.limit)
|
|
54
|
+
body.limit = parseIntegerOption(opts.limit, "--limit", 1, 50);
|
|
55
|
+
const resp = await apiRequest("POST", "/v1/company-data/search", body);
|
|
56
|
+
handleApiError("company-data.search", resp);
|
|
57
|
+
const records = resp.data?.data?.length ?? 0;
|
|
58
|
+
agentOutput({
|
|
59
|
+
action: "company-data.search",
|
|
60
|
+
result: resp.data,
|
|
61
|
+
next_steps: [
|
|
62
|
+
{ command: "naive company-data enrich --domain <domain> --include-signals", description: "Get funding, investors and tech stack for one company" },
|
|
63
|
+
{ command: "naive people search --company <name>", description: "Find people at one of these companies" },
|
|
64
|
+
],
|
|
65
|
+
hints: [
|
|
66
|
+
`${records} record${records === 1 ? "" : "s"} returned.`,
|
|
67
|
+
creditCostHint(resp.data) ?? "",
|
|
68
|
+
"Search returns no funding or headcount — enrich a result with --include-signals for those.",
|
|
69
|
+
].filter(Boolean),
|
|
70
|
+
related_commands: ["naive company-data enrich", "naive people search"],
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
companyDataCmd
|
|
74
|
+
.command("enrich")
|
|
75
|
+
.description("Enrich one company (LinkedIn firmographics + Crunchbase funding, merged)")
|
|
76
|
+
.option("--domain <domain>", "Company domain, e.g. 'stripe.com'")
|
|
77
|
+
.option("--name <name>", "Company name")
|
|
78
|
+
.option("--cb-id <id>", "Crunchbase entity id (accepted, but lookup keys on domain or name)")
|
|
79
|
+
.option("--include-signals", "Add funding, investors and tech stack (higher meter)")
|
|
80
|
+
.action(async (opts) => {
|
|
81
|
+
const identity = {};
|
|
82
|
+
if (opts.domain)
|
|
83
|
+
identity.domain = opts.domain;
|
|
84
|
+
if (opts.name)
|
|
85
|
+
identity.name = opts.name;
|
|
86
|
+
if (opts.cbId)
|
|
87
|
+
identity.cb_id = opts.cbId;
|
|
88
|
+
const resp = await apiRequest("POST", "/v1/company-data/enrich", {
|
|
89
|
+
identity,
|
|
90
|
+
include_signals: opts.includeSignals === true,
|
|
91
|
+
});
|
|
92
|
+
handleApiError("company-data.enrich", resp);
|
|
93
|
+
const sources = resp.data?.sources ?? [];
|
|
94
|
+
agentOutput({
|
|
95
|
+
action: "company-data.enrich",
|
|
96
|
+
result: resp.data,
|
|
97
|
+
next_steps: [
|
|
98
|
+
{ command: "naive people search --company <name> --title 'VP Engineering'", description: "Find people at this company" },
|
|
99
|
+
],
|
|
100
|
+
hints: [
|
|
101
|
+
creditCostHint(resp.data) ?? "",
|
|
102
|
+
sources.length === 1
|
|
103
|
+
? "Only one dataset contributed — funding and tech stack may be absent because nothing matched."
|
|
104
|
+
: "",
|
|
105
|
+
].filter(Boolean),
|
|
106
|
+
related_commands: ["naive company-data search", "naive people search"],
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
companyDataCmd
|
|
110
|
+
.command("batch")
|
|
111
|
+
.description("Async batch enrich — up to 1,000 identities")
|
|
112
|
+
.requiredOption("--identities <json>", "JSON array: [{\"domain\":\"stripe.com\"}, ...]")
|
|
113
|
+
.option("--include-signals", "Add funding, investors and tech stack (higher meter)")
|
|
114
|
+
.action(async (opts) => {
|
|
115
|
+
let identities;
|
|
116
|
+
try {
|
|
117
|
+
identities = JSON.parse(opts.identities);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
throw new Error("--identities must be valid JSON, e.g. '[{\"domain\":\"stripe.com\"}]'");
|
|
121
|
+
}
|
|
122
|
+
const resp = await apiRequest("POST", "/v1/company-data/tasks", {
|
|
123
|
+
identities,
|
|
124
|
+
include_signals: opts.includeSignals === true,
|
|
125
|
+
});
|
|
126
|
+
handleApiError("company-data.batch", resp);
|
|
127
|
+
const id = resp.data?.id;
|
|
128
|
+
agentOutput({
|
|
129
|
+
action: "company-data.batch",
|
|
130
|
+
result: resp.data,
|
|
131
|
+
next_steps: [
|
|
132
|
+
{ command: `naive company-data task ${id ?? "<id>"}`, description: "Check the batch status and collect results" },
|
|
133
|
+
],
|
|
134
|
+
hints: ["Only matched records are billed."],
|
|
135
|
+
related_commands: ["naive company-data task"],
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
companyDataCmd
|
|
139
|
+
.command("task <id>")
|
|
140
|
+
.description("Check an async batch task")
|
|
141
|
+
.action(async (id) => {
|
|
142
|
+
const resp = await apiRequest("GET", `/v1/company-data/tasks/${id}`);
|
|
143
|
+
handleApiError("company-data.task", resp);
|
|
144
|
+
agentOutput({
|
|
145
|
+
action: "company-data.task",
|
|
146
|
+
result: resp.data,
|
|
147
|
+
next_steps: [
|
|
148
|
+
{ command: `naive company-data task ${id}`, description: "Poll again if still processing" },
|
|
149
|
+
],
|
|
150
|
+
hints: [creditCostHint(resp.data) ?? ""].filter(Boolean),
|
|
151
|
+
related_commands: ["naive company-data batch"],
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
companyDataCmd
|
|
155
|
+
.command("terms")
|
|
156
|
+
.description("The acceptable-use terms this primitive binds you to (free)")
|
|
157
|
+
.action(async () => {
|
|
158
|
+
const resp = await apiRequest("GET", "/v1/company-data/terms");
|
|
159
|
+
handleApiError("company-data.terms", resp);
|
|
160
|
+
agentOutput({
|
|
161
|
+
action: "company-data.terms",
|
|
162
|
+
result: resp.data,
|
|
163
|
+
next_steps: [],
|
|
164
|
+
hints: ["Unmetered. These are the product surface of ToS Section 18."],
|
|
165
|
+
related_commands: ["naive company-data enrich"],
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
//# sourceMappingURL=company-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company-data.js","sourceRoot":"","sources":["../../src/commands/company-data.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/compute.js
CHANGED
|
@@ -51,10 +51,11 @@ computeCmd
|
|
|
51
51
|
.requiredOption("--name <name>", "Workload name")
|
|
52
52
|
.requiredOption("--type <type>", "service | job | schedule")
|
|
53
53
|
.requiredOption("--image <image>", "OCI/Docker image")
|
|
54
|
-
|
|
54
|
+
// <command...> so unquoted multi-word commands (echo foo) are not excess args
|
|
55
|
+
.option("--command <command...>", "Container command (space-separated argv; unquoted multi-word OK)")
|
|
55
56
|
.option("--cpu <cpu>", "Fargate CPU units (256 = 0.25 vCPU)")
|
|
56
57
|
.option("--memory <mb>", "Memory in MB")
|
|
57
|
-
.option("--port <port>", "Container port to expose via the ALB (services)")
|
|
58
|
+
.option("--port <port>", "Container port to expose via the ALB (services; requires compute ALB config)")
|
|
58
59
|
.option("--env <kv...>", "Env vars KEY=VALUE (repeatable)")
|
|
59
60
|
.option("--schedule <expr>", "cron(...) or rate(...) expression (schedules)")
|
|
60
61
|
.action(async (opts) => {
|
|
@@ -64,11 +65,17 @@ computeCmd
|
|
|
64
65
|
if (i > 0)
|
|
65
66
|
env[String(kv).slice(0, i)] = String(kv).slice(i + 1);
|
|
66
67
|
}
|
|
68
|
+
const commandArg = opts.command;
|
|
69
|
+
const command = Array.isArray(commandArg)
|
|
70
|
+
? commandArg
|
|
71
|
+
: commandArg
|
|
72
|
+
? String(commandArg).split(" ")
|
|
73
|
+
: undefined;
|
|
67
74
|
const body = {
|
|
68
75
|
name: opts.name,
|
|
69
76
|
type: opts.type,
|
|
70
77
|
image: opts.image,
|
|
71
|
-
command
|
|
78
|
+
command,
|
|
72
79
|
cpu: opts.cpu ? Number(opts.cpu) : undefined,
|
|
73
80
|
memory: opts.memory ? Number(opts.memory) : undefined,
|
|
74
81
|
port: opts.port ? Number(opts.port) : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/commands/compute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC7C,WAAW,CAAC,6GAA6G,CAAC;KAC1H,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC,CAAC;AAEH,UAAU;KACP,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACpC,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACpD,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEL,UAAU;KACP,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;KAChD,cAAc,CAAC,eAAe,EAAE,0BAA0B,CAAC;KAC3D,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/commands/compute.ts"],"names":[],"mappings":"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"}
|