@usenaive-sdk/cli 0.15.1 → 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 -402
- 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 -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/social.js
DELETED
|
@@ -1,407 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
import { FIXED_CREDIT_COSTS } from "../lib/pricing.js";
|
|
5
|
-
export const socialCmd = new Command("social")
|
|
6
|
-
.description("Social media — connect accounts, create posts, view analytics")
|
|
7
|
-
.addHelpText("after", `
|
|
8
|
-
Subcommands:
|
|
9
|
-
naive social status Check activation + connected accounts
|
|
10
|
-
naive social activate Activate social media for your company
|
|
11
|
-
naive social connect Get OAuth URL for a platform
|
|
12
|
-
naive social portal Get multi-platform portal URL
|
|
13
|
-
naive social accounts List connected accounts
|
|
14
|
-
naive social label <id> --label ... Set a label on an account
|
|
15
|
-
naive social disconnect <id> Disconnect an account
|
|
16
|
-
naive social sync Sync connected accounts
|
|
17
|
-
naive social upload --url <url> Upload media from URL
|
|
18
|
-
naive social posts List posts
|
|
19
|
-
naive social post <content> Create a post (draft by default)
|
|
20
|
-
naive social get <id> Get post details
|
|
21
|
-
naive social edit <id> Edit a draft post
|
|
22
|
-
naive social delete <id> Delete a post
|
|
23
|
-
naive social publish <id> Publish a draft
|
|
24
|
-
naive social analytics <id> Get post analytics
|
|
25
|
-
naive social comments <id> Get post comments
|
|
26
|
-
naive social account-analytics <id> Get account analytics
|
|
27
|
-
|
|
28
|
-
Supported Platforms:
|
|
29
|
-
TWITTER, LINKEDIN, INSTAGRAM, FACEBOOK, TIKTOK, YOUTUBE,
|
|
30
|
-
THREADS, PINTEREST, REDDIT, BLUESKY
|
|
31
|
-
|
|
32
|
-
Platform Tips:
|
|
33
|
-
YouTube: --youtube-type SHORT (vertical, <3min) or VIDEO (landscape)
|
|
34
|
-
TikTok: privacy auto-set to PUBLIC_TO_EVERYONE
|
|
35
|
-
Instagram: defaults to Reel type for video posts
|
|
36
|
-
Twitter: auto-truncated to 280 chars
|
|
37
|
-
Reddit: pass --platform-data '{"REDDIT":{"sr":"subreddit"}}' for subreddit
|
|
38
|
-
|
|
39
|
-
Cost:
|
|
40
|
-
- Publishing a post: ${FIXED_CREDIT_COSTS.socialPost} credits, plus ${FIXED_CREDIT_COSTS.socialXPost} if it targets X
|
|
41
|
-
(${FIXED_CREDIT_COSTS.socialXPostWithLink} instead when that X post contains a link — X charges us far more for those)
|
|
42
|
-
- Drafts, analytics, account management: free
|
|
43
|
-
`);
|
|
44
|
-
socialCmd
|
|
45
|
-
.command("status")
|
|
46
|
-
.description("Check social media activation status and connected accounts")
|
|
47
|
-
.action(async () => {
|
|
48
|
-
const resp = await apiRequest("GET", "/v1/social/status");
|
|
49
|
-
handleApiError("social.status", resp);
|
|
50
|
-
agentOutput({
|
|
51
|
-
action: "social.status",
|
|
52
|
-
result: resp.data,
|
|
53
|
-
next_steps: [
|
|
54
|
-
...(resp.data.activated
|
|
55
|
-
? [{ command: "naive social accounts", description: "List connected accounts" }]
|
|
56
|
-
: [{ command: "naive social activate", description: "Activate social media" }]),
|
|
57
|
-
],
|
|
58
|
-
hints: [resp.data.activated ? "Social media is active" : "Social media is not yet activated"],
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
socialCmd
|
|
62
|
-
.command("activate")
|
|
63
|
-
.description("Activate social media integration for your company")
|
|
64
|
-
.action(async () => {
|
|
65
|
-
const resp = await apiRequest("POST", "/v1/social/activate");
|
|
66
|
-
handleApiError("social.activate", resp);
|
|
67
|
-
agentOutput({
|
|
68
|
-
action: "social.activate",
|
|
69
|
-
result: resp.data,
|
|
70
|
-
next_steps: [
|
|
71
|
-
{ command: 'naive social connect --platform twitter --redirect-url https://example.com', description: "Connect a social account" },
|
|
72
|
-
{ command: "naive social portal --redirect-url https://example.com", description: "Open multi-platform connect portal" },
|
|
73
|
-
],
|
|
74
|
-
hints: ["Social media activated. Connect accounts to start posting."],
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
socialCmd
|
|
78
|
-
.command("connect")
|
|
79
|
-
.description("Get OAuth URL to connect a social media account")
|
|
80
|
-
.requiredOption("--platform <platform>", "Platform: TWITTER, LINKEDIN, INSTAGRAM, FACEBOOK, TIKTOK, YOUTUBE, THREADS, PINTEREST, REDDIT, BLUESKY")
|
|
81
|
-
.option("--redirect-url <url>", "URL to redirect after connection", "https://dashboard.usenaive.ai")
|
|
82
|
-
.action(async (opts) => {
|
|
83
|
-
const resp = await apiRequest("POST", "/v1/social/connect", {
|
|
84
|
-
platform: opts.platform.toUpperCase(),
|
|
85
|
-
redirect_url: opts.redirectUrl,
|
|
86
|
-
});
|
|
87
|
-
handleApiError("social.connect", resp);
|
|
88
|
-
agentOutput({
|
|
89
|
-
action: "social.connect",
|
|
90
|
-
result: resp.data,
|
|
91
|
-
next_steps: [
|
|
92
|
-
{ command: "naive social sync", description: "Sync accounts after connecting" },
|
|
93
|
-
{ command: "naive social accounts", description: "List connected accounts" },
|
|
94
|
-
],
|
|
95
|
-
hints: [
|
|
96
|
-
`Open this URL to connect your ${opts.platform.toUpperCase()} account:`,
|
|
97
|
-
resp.data.url,
|
|
98
|
-
"After connecting, run 'naive social sync' to refresh accounts.",
|
|
99
|
-
],
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
socialCmd
|
|
103
|
-
.command("portal")
|
|
104
|
-
.description("Get a portal URL to connect multiple social media platforms at once")
|
|
105
|
-
.option("--redirect-url <url>", "URL to redirect after connection", "https://dashboard.usenaive.ai")
|
|
106
|
-
.option("--platforms <list>", "Comma-separated platform list to show")
|
|
107
|
-
.action(async (opts) => {
|
|
108
|
-
const body = { redirect_url: opts.redirectUrl };
|
|
109
|
-
if (opts.platforms)
|
|
110
|
-
body.platforms = opts.platforms.split(",").map((p) => p.trim().toUpperCase());
|
|
111
|
-
const resp = await apiRequest("POST", "/v1/social/portal", body);
|
|
112
|
-
handleApiError("social.portal", resp);
|
|
113
|
-
agentOutput({
|
|
114
|
-
action: "social.portal",
|
|
115
|
-
result: resp.data,
|
|
116
|
-
next_steps: [
|
|
117
|
-
{ command: "naive social sync", description: "Sync accounts after connecting" },
|
|
118
|
-
],
|
|
119
|
-
hints: [
|
|
120
|
-
"Open this URL to connect multiple social accounts:",
|
|
121
|
-
resp.data.url,
|
|
122
|
-
],
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
socialCmd
|
|
126
|
-
.command("accounts")
|
|
127
|
-
.description("List connected social media accounts")
|
|
128
|
-
.action(async () => {
|
|
129
|
-
const resp = await apiRequest("GET", "/v1/social/accounts");
|
|
130
|
-
handleApiError("social.accounts", resp);
|
|
131
|
-
agentOutput({
|
|
132
|
-
action: "social.accounts",
|
|
133
|
-
result: resp.data,
|
|
134
|
-
next_steps: [
|
|
135
|
-
{ command: 'naive social post "Hello!" --platforms twitter', description: "Create a post" },
|
|
136
|
-
{ command: 'naive social connect --platform <platform> --redirect-url <url>', description: "Connect more accounts" },
|
|
137
|
-
],
|
|
138
|
-
hints: [`${(resp.data.accounts ?? []).length} connected account(s)`],
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
socialCmd
|
|
142
|
-
.command("label <account-id>")
|
|
143
|
-
.description("Set a label on a social media account")
|
|
144
|
-
.requiredOption("--label <label>", "Label text to set")
|
|
145
|
-
.action(async (accountId, opts) => {
|
|
146
|
-
const resp = await apiRequest("POST", `/v1/social/accounts/${accountId}/label`, { label: opts.label });
|
|
147
|
-
handleApiError("social.label", resp);
|
|
148
|
-
agentOutput({
|
|
149
|
-
action: "social.label",
|
|
150
|
-
result: resp.data,
|
|
151
|
-
next_steps: [
|
|
152
|
-
{ command: "naive social accounts", description: "List accounts" },
|
|
153
|
-
],
|
|
154
|
-
hints: [`Label set to "${opts.label}"`],
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
socialCmd
|
|
158
|
-
.command("disconnect <account-id>")
|
|
159
|
-
.description("Disconnect a social media account")
|
|
160
|
-
.action(async (accountId) => {
|
|
161
|
-
const resp = await apiRequest("DELETE", `/v1/social/accounts/${accountId}`);
|
|
162
|
-
handleApiError("social.disconnect", resp);
|
|
163
|
-
agentOutput({
|
|
164
|
-
action: "social.disconnect",
|
|
165
|
-
result: resp.data,
|
|
166
|
-
next_steps: [
|
|
167
|
-
{ command: "naive social accounts", description: "List remaining accounts" },
|
|
168
|
-
],
|
|
169
|
-
hints: ["Account disconnected"],
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
socialCmd
|
|
173
|
-
.command("sync")
|
|
174
|
-
.description("Sync connected social accounts")
|
|
175
|
-
.action(async () => {
|
|
176
|
-
const resp = await apiRequest("POST", "/v1/social/sync");
|
|
177
|
-
handleApiError("social.sync", resp);
|
|
178
|
-
agentOutput({
|
|
179
|
-
action: "social.sync",
|
|
180
|
-
result: resp.data,
|
|
181
|
-
next_steps: [
|
|
182
|
-
{ command: "naive social accounts", description: "View synced accounts" },
|
|
183
|
-
],
|
|
184
|
-
hints: [`Synced ${resp.data.synced ?? 0} account(s)`],
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
socialCmd
|
|
188
|
-
.command("upload")
|
|
189
|
-
.description("Upload media from a URL for use in social posts")
|
|
190
|
-
.requiredOption("--url <url>", "Public URL of the media file")
|
|
191
|
-
.action(async (opts) => {
|
|
192
|
-
const resp = await apiRequest("POST", "/v1/social/upload", { url: opts.url });
|
|
193
|
-
handleApiError("social.upload", resp);
|
|
194
|
-
agentOutput({
|
|
195
|
-
action: "social.upload",
|
|
196
|
-
result: resp.data,
|
|
197
|
-
next_steps: [
|
|
198
|
-
{ command: 'naive social post "content" --platforms youtube --media-url <url>', description: "Create a post with media" },
|
|
199
|
-
],
|
|
200
|
-
hints: ["Media uploaded. Use the upload ID or pass media_urls when creating posts (auto-upload)."],
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
socialCmd
|
|
204
|
-
.command("posts")
|
|
205
|
-
.description("List social media posts")
|
|
206
|
-
.option("--status <status>", "Filter by status: draft, scheduled, published, failed")
|
|
207
|
-
.option("--limit <n>", "Max results", "50")
|
|
208
|
-
.option("--offset <n>", "Pagination offset", "0")
|
|
209
|
-
.action(async (opts) => {
|
|
210
|
-
const params = new URLSearchParams();
|
|
211
|
-
if (opts.status)
|
|
212
|
-
params.set("status", opts.status);
|
|
213
|
-
params.set("limit", opts.limit);
|
|
214
|
-
params.set("offset", opts.offset);
|
|
215
|
-
const resp = await apiRequest("GET", `/v1/social/posts?${params}`);
|
|
216
|
-
handleApiError("social.posts", resp);
|
|
217
|
-
agentOutput({
|
|
218
|
-
action: "social.posts",
|
|
219
|
-
result: resp.data,
|
|
220
|
-
next_steps: [
|
|
221
|
-
{ command: 'naive social post "content" --platforms twitter', description: "Create a new post" },
|
|
222
|
-
],
|
|
223
|
-
hints: [`${resp.data.count ?? 0} post(s) returned`],
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
socialCmd
|
|
227
|
-
.command("post [content]")
|
|
228
|
-
.description("Create a social media post (draft by default, use --publish to publish immediately)")
|
|
229
|
-
.requiredOption("--platforms <list>", "Comma-separated platforms: twitter,linkedin,youtube,...")
|
|
230
|
-
.option("--publish", "Publish immediately (default: create as draft)")
|
|
231
|
-
.option("--media-url <url>", "Media URL (auto-uploaded for video/image platforms)")
|
|
232
|
-
.option("--upload-ids <ids>", "Comma-separated pre-uploaded media IDs (bundle_upload_id from Media Assets). Skips re-upload.")
|
|
233
|
-
.option("--youtube-type <type>", "YouTube type: SHORT (vertical, <3min) or VIDEO (landscape)")
|
|
234
|
-
.option("--platform-data <json>", "Per-platform overrides as JSON")
|
|
235
|
-
.option("--title <title>", "Post title (auto-generated from content if omitted)")
|
|
236
|
-
.option("--account-ids <ids>", "Comma-separated account UUIDs to post from")
|
|
237
|
-
.option("--schedule-at <datetime>", "ISO 8601 datetime to schedule the post")
|
|
238
|
-
.action(async (content, opts) => {
|
|
239
|
-
if (!content) {
|
|
240
|
-
console.log(JSON.stringify({
|
|
241
|
-
success: false,
|
|
242
|
-
action: "social.post",
|
|
243
|
-
error: { code: "missing_argument", message: "Provide the post content as a positional argument" },
|
|
244
|
-
recovery_steps: [
|
|
245
|
-
{ command: 'naive social post "Your content here" --platforms twitter,linkedin --publish', description: "Create and publish a post" },
|
|
246
|
-
{ command: 'naive social post "Your content here" --platforms twitter,linkedin', description: "Create a draft" },
|
|
247
|
-
],
|
|
248
|
-
}, null, 2));
|
|
249
|
-
process.exit(1);
|
|
250
|
-
}
|
|
251
|
-
const body = {
|
|
252
|
-
content,
|
|
253
|
-
platforms: opts.platforms.split(",").map((p) => p.trim().toUpperCase()),
|
|
254
|
-
publish_now: !!(opts.publish || opts.scheduleAt),
|
|
255
|
-
};
|
|
256
|
-
if (opts.title)
|
|
257
|
-
body.title = opts.title;
|
|
258
|
-
if (opts.mediaUrl)
|
|
259
|
-
body.media_urls = [opts.mediaUrl];
|
|
260
|
-
if (opts.uploadIds)
|
|
261
|
-
body.upload_ids = opts.uploadIds.split(",").map((id) => id.trim());
|
|
262
|
-
if (opts.youtubeType)
|
|
263
|
-
body.youtube_type = opts.youtubeType.toUpperCase();
|
|
264
|
-
if (opts.platformData)
|
|
265
|
-
body.platform_data = JSON.parse(opts.platformData);
|
|
266
|
-
if (opts.accountIds)
|
|
267
|
-
body.account_ids = opts.accountIds.split(",").map((id) => id.trim());
|
|
268
|
-
if (opts.scheduleAt)
|
|
269
|
-
body.scheduled_at = opts.scheduleAt;
|
|
270
|
-
const resp = await apiRequest("POST", "/v1/social/posts", body);
|
|
271
|
-
handleApiError("social.post", resp);
|
|
272
|
-
const data = resp.data;
|
|
273
|
-
agentOutput({
|
|
274
|
-
action: "social.post",
|
|
275
|
-
result: resp.data,
|
|
276
|
-
next_steps: [
|
|
277
|
-
...(data.status === "draft"
|
|
278
|
-
? [{ command: `naive social publish ${data.id}`, description: "Publish this draft" }]
|
|
279
|
-
: [{ command: `naive social get ${data.id}`, description: "Check post status" }]),
|
|
280
|
-
{ command: `naive social analytics ${data.id}`, description: "View post analytics (after publishing)" },
|
|
281
|
-
],
|
|
282
|
-
hints: [
|
|
283
|
-
data.status === "draft"
|
|
284
|
-
? "Draft created. Use 'naive social publish' to publish, or re-run with --publish."
|
|
285
|
-
: `Post ${data.status === "publishing" ? "queued for publishing" : "scheduled"}. From ${FIXED_CREDIT_COSTS.socialPost} credits deducted (see 'naive usage').`,
|
|
286
|
-
],
|
|
287
|
-
related_commands: ["naive social posts", "naive social analytics"],
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
socialCmd
|
|
291
|
-
.command("get <post-id>")
|
|
292
|
-
.description("Get details of a social media post")
|
|
293
|
-
.action(async (postId) => {
|
|
294
|
-
const resp = await apiRequest("GET", `/v1/social/posts/${postId}`);
|
|
295
|
-
handleApiError("social.get", resp);
|
|
296
|
-
agentOutput({
|
|
297
|
-
action: "social.get",
|
|
298
|
-
result: resp.data,
|
|
299
|
-
next_steps: [
|
|
300
|
-
{ command: `naive social analytics ${postId}`, description: "View analytics" },
|
|
301
|
-
{ command: `naive social comments ${postId}`, description: "View comments" },
|
|
302
|
-
],
|
|
303
|
-
hints: [`Post status: ${resp.data.status}`],
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
socialCmd
|
|
307
|
-
.command("edit <post-id>")
|
|
308
|
-
.description("Edit a draft social media post")
|
|
309
|
-
.option("--content <text>", "Updated content")
|
|
310
|
-
.option("--platforms <list>", "Updated comma-separated platform list")
|
|
311
|
-
.option("--platform-data <json>", "Updated per-platform overrides as JSON")
|
|
312
|
-
.action(async (postId, opts) => {
|
|
313
|
-
const body = {};
|
|
314
|
-
if (opts.content)
|
|
315
|
-
body.content = opts.content;
|
|
316
|
-
if (opts.platforms)
|
|
317
|
-
body.platforms = opts.platforms.split(",").map((p) => p.trim().toUpperCase());
|
|
318
|
-
if (opts.platformData)
|
|
319
|
-
body.platform_data = JSON.parse(opts.platformData);
|
|
320
|
-
const resp = await apiRequest("PATCH", `/v1/social/posts/${postId}`, body);
|
|
321
|
-
handleApiError("social.edit", resp);
|
|
322
|
-
agentOutput({
|
|
323
|
-
action: "social.edit",
|
|
324
|
-
result: resp.data,
|
|
325
|
-
next_steps: [
|
|
326
|
-
{ command: `naive social publish ${postId}`, description: "Publish the updated draft" },
|
|
327
|
-
],
|
|
328
|
-
hints: ["Draft updated"],
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
socialCmd
|
|
332
|
-
.command("delete <post-id>")
|
|
333
|
-
.description("Delete a social media post")
|
|
334
|
-
.action(async (postId) => {
|
|
335
|
-
const resp = await apiRequest("DELETE", `/v1/social/posts/${postId}`);
|
|
336
|
-
handleApiError("social.delete", resp);
|
|
337
|
-
agentOutput({
|
|
338
|
-
action: "social.delete",
|
|
339
|
-
result: resp.data,
|
|
340
|
-
next_steps: [
|
|
341
|
-
{ command: "naive social posts", description: "View remaining posts" },
|
|
342
|
-
],
|
|
343
|
-
hints: ["Post deleted"],
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
socialCmd
|
|
347
|
-
.command("publish <post-id>")
|
|
348
|
-
.description(`Publish a draft social media post (from ${FIXED_CREDIT_COSTS.socialPost} credits)`)
|
|
349
|
-
.action(async (postId) => {
|
|
350
|
-
const resp = await apiRequest("POST", `/v1/social/posts/${postId}/publish`);
|
|
351
|
-
handleApiError("social.publish", resp);
|
|
352
|
-
agentOutput({
|
|
353
|
-
action: "social.publish",
|
|
354
|
-
result: resp.data,
|
|
355
|
-
next_steps: [
|
|
356
|
-
{ command: `naive social get ${postId}`, description: "Check post status" },
|
|
357
|
-
{ command: `naive social analytics ${postId}`, description: "View analytics" },
|
|
358
|
-
],
|
|
359
|
-
hints: [`Post published (from ${FIXED_CREDIT_COSTS.socialPost} credits deducted — see 'naive usage')`],
|
|
360
|
-
});
|
|
361
|
-
});
|
|
362
|
-
socialCmd
|
|
363
|
-
.command("analytics <post-id>")
|
|
364
|
-
.description("Get analytics for a published social media post")
|
|
365
|
-
.action(async (postId) => {
|
|
366
|
-
const resp = await apiRequest("GET", `/v1/social/posts/${postId}/analytics`);
|
|
367
|
-
handleApiError("social.analytics", resp);
|
|
368
|
-
agentOutput({
|
|
369
|
-
action: "social.analytics",
|
|
370
|
-
result: resp.data,
|
|
371
|
-
next_steps: [
|
|
372
|
-
{ command: `naive social comments ${postId}`, description: "View comments" },
|
|
373
|
-
],
|
|
374
|
-
hints: ["Post analytics retrieved"],
|
|
375
|
-
});
|
|
376
|
-
});
|
|
377
|
-
socialCmd
|
|
378
|
-
.command("comments <post-id>")
|
|
379
|
-
.description("Get comments on a published social media post")
|
|
380
|
-
.action(async (postId) => {
|
|
381
|
-
const resp = await apiRequest("GET", `/v1/social/posts/${postId}/comments`);
|
|
382
|
-
handleApiError("social.comments", resp);
|
|
383
|
-
agentOutput({
|
|
384
|
-
action: "social.comments",
|
|
385
|
-
result: resp.data,
|
|
386
|
-
next_steps: [
|
|
387
|
-
{ command: `naive social analytics ${postId}`, description: "View analytics" },
|
|
388
|
-
],
|
|
389
|
-
hints: ["Post comments retrieved"],
|
|
390
|
-
});
|
|
391
|
-
});
|
|
392
|
-
socialCmd
|
|
393
|
-
.command("account-analytics <account-id>")
|
|
394
|
-
.description("Get analytics for a connected social media account")
|
|
395
|
-
.action(async (accountId) => {
|
|
396
|
-
const resp = await apiRequest("GET", `/v1/social/accounts/${accountId}/analytics`);
|
|
397
|
-
handleApiError("social.account-analytics", resp);
|
|
398
|
-
agentOutput({
|
|
399
|
-
action: "social.account-analytics",
|
|
400
|
-
result: resp.data,
|
|
401
|
-
next_steps: [
|
|
402
|
-
{ command: "naive social accounts", description: "List all accounts" },
|
|
403
|
-
],
|
|
404
|
-
hints: ["Account analytics retrieved"],
|
|
405
|
-
});
|
|
406
|
-
});
|
|
407
|
-
//# sourceMappingURL=social.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/commands/social.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
export const statusCmd = new Command("status")
|
|
5
|
-
.description("Show full agent status: identity, credits, tier, and resource summary")
|
|
6
|
-
.addHelpText("after", `
|
|
7
|
-
Examples:
|
|
8
|
-
$ naive status
|
|
9
|
-
|
|
10
|
-
What this does:
|
|
11
|
-
Returns a comprehensive status overview:
|
|
12
|
-
- Agent identity (name, ID)
|
|
13
|
-
- Company context (name, ID)
|
|
14
|
-
- Credit balance and billing tier
|
|
15
|
-
- Resource counts (inboxes, active jobs, etc.)
|
|
16
|
-
- API connectivity confirmation
|
|
17
|
-
|
|
18
|
-
Use this to:
|
|
19
|
-
- Verify the CLI is properly configured and authenticated
|
|
20
|
-
- Check remaining credits before starting a task
|
|
21
|
-
- Get a quick overview of available resources
|
|
22
|
-
- Confirm which company you're operating under
|
|
23
|
-
`)
|
|
24
|
-
.action(async () => {
|
|
25
|
-
const resp = await apiRequest("GET", "/v1/status");
|
|
26
|
-
handleApiError("status", resp);
|
|
27
|
-
const data = resp.data;
|
|
28
|
-
const lowCredits = data.credits?.balance < 10;
|
|
29
|
-
// Strictly `=== false`. The field is null when no owner row resolves, and a
|
|
30
|
-
// null must not be rendered as "unverified" — that would tell a working
|
|
31
|
-
// account to go and fix something that is not wrong with it.
|
|
32
|
-
const unverified = data.account?.email_verified === false;
|
|
33
|
-
agentOutput({
|
|
34
|
-
action: "status",
|
|
35
|
-
result: resp.data,
|
|
36
|
-
next_steps: [
|
|
37
|
-
// FIRST, and ahead of the low-balance line, because for an unverified
|
|
38
|
-
// account the balance is not low — it is withheld, and buying credits
|
|
39
|
-
// is the wrong action. This is the most common state a new account can
|
|
40
|
-
// be in and `status` used to report it as a bare "0" with no cause.
|
|
41
|
-
...(unverified
|
|
42
|
-
? [
|
|
43
|
-
{
|
|
44
|
-
command: "naive verify-email --resend",
|
|
45
|
-
description: `Verify ${data.account?.email ?? "the account email"} to release the 20 free signup credits`,
|
|
46
|
-
when: "The account email is not verified yet",
|
|
47
|
-
},
|
|
48
|
-
]
|
|
49
|
-
: []),
|
|
50
|
-
...(lowCredits && !unverified
|
|
51
|
-
? [{ command: "# Add credits at https://usenaive.ai/billing", description: "Your credit balance is low", when: "Balance below 10 credits" }]
|
|
52
|
-
: []),
|
|
53
|
-
{ command: "naive usage", description: "See detailed credit usage history" },
|
|
54
|
-
{ command: "naive identity", description: "View full resource details" },
|
|
55
|
-
{ command: "naive jobs --status processing", description: "Check active async jobs" },
|
|
56
|
-
],
|
|
57
|
-
hints: [
|
|
58
|
-
`Balance: ${data.credits?.balance ?? "?"} credits (${data.credits?.tier ?? "free"} tier)`,
|
|
59
|
-
...(unverified
|
|
60
|
-
? [
|
|
61
|
-
`EMAIL NOT VERIFIED: the 20 free signup credits are withheld until ${data.account?.email ?? "the account email"} is verified. ` +
|
|
62
|
-
`Every billable call is refused with insufficient_credits until then. Run 'naive verify-email --resend', then 'naive verify-email <token>'.`,
|
|
63
|
-
// Said HERE, next to the promise, and not only at the moment the
|
|
64
|
-
// router refuses. This hint is what an agent plans against: it is
|
|
65
|
-
// about to conclude "verify, then everything works", and for the
|
|
66
|
-
// one primitive it is most likely to reach for, that is false.
|
|
67
|
-
`Verification does not unlock the LLM router. 'naive llm chat' (and /v1/llm, and the provider proxies) ` +
|
|
68
|
-
`require a PAID account — a credit pack or a subscription. Free credit does not buy model routing.`,
|
|
69
|
-
]
|
|
70
|
-
: []),
|
|
71
|
-
// Suppressed while unverified: "low balance, some operations may fail"
|
|
72
|
-
// is true but points at the wrong remedy, and a zero that is EXPLAINED
|
|
73
|
-
// one line above does not also need to be alarming.
|
|
74
|
-
...(lowCredits && !unverified ? ["WARNING: Low credit balance. Some operations may fail."] : []),
|
|
75
|
-
],
|
|
76
|
-
related_commands: ["naive whoami", "naive usage", "naive identity", "naive jobs"],
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
//# sourceMappingURL=status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,uEAAuE,CAAC;KACpF,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;CAiBvB,CAAC;KACC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACnD,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAMjB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC;IAC9C,4EAA4E;IAC5E,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,KAAK,KAAK,CAAC;IAE1D,WAAW,CAAC;QACV,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,oEAAoE;YACpE,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC;oBACE;wBACE,OAAO,EAAE,6BAA6B;wBACtC,WAAW,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,mBAAmB,wCAAwC;wBACzG,IAAI,EAAE,uCAAuC;qBAC9C;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,UAAU,IAAI,CAAC,UAAU;gBAC3B,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,WAAW,EAAE,4BAA4B,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;gBAC5I,CAAC,CAAC,EAAE,CAAC;YACP,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mCAAmC,EAAE;YAC5E,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,4BAA4B,EAAE;YACxE,EAAE,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,yBAAyB,EAAE;SACtF;QACD,KAAK,EAAE;YACL,YAAY,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,GAAG,aAAa,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,QAAQ;YACzF,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC;oBACE,qEAAqE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,mBAAmB,gBAAgB;wBAC7H,4IAA4I;oBAC9I,iEAAiE;oBACjE,kEAAkE;oBAClE,iEAAiE;oBACjE,+DAA+D;oBAC/D,wGAAwG;wBACtG,mGAAmG;iBACtG;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,uEAAuE;YACvE,uEAAuE;YACvE,oDAAoD;YACpD,GAAG,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjG;QACD,gBAAgB,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,CAAC;KAClF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/commands/support.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { apiRequest, handleApiError } from "../client.js";
|
|
3
|
-
import { agentOutput } from "../output.js";
|
|
4
|
-
/**
|
|
5
|
-
* Agent-facing context for the reply. When the support agent escalated the
|
|
6
|
-
* conversation (bug or manual-intervention), the hints instruct the caller's
|
|
7
|
-
* agent to relay that to the user explicitly.
|
|
8
|
-
*/
|
|
9
|
-
function replyHints(reply, fallback) {
|
|
10
|
-
if (!reply)
|
|
11
|
-
return [fallback];
|
|
12
|
-
const hints = [`Support agent: ${reply.text}`];
|
|
13
|
-
const tools = (reply.metadata?.tool_calls ?? []).map((t) => t.tool);
|
|
14
|
-
if (tools.includes("escalate_bug")) {
|
|
15
|
-
hints.push("CONTEXT FOR YOUR AGENT: this bug was reported to the naive team and an automated fix has been queued. Tell the user explicitly: the bug has been reported to the naive team, they can contact us at support@usenaive.ai, and ask them whether they'd like to share any follow-up feedback or details (send it with `naive support send <ticketId> \"…\"`).");
|
|
16
|
-
}
|
|
17
|
-
else if (tools.includes("escalate")) {
|
|
18
|
-
hints.push("CONTEXT FOR YOUR AGENT: this ticket was escalated to a human on the naive team. Tell the user explicitly: the naive team has been notified and will follow up, they can contact us at support@usenaive.ai, and ask them whether they'd like to add any follow-up details (send it with `naive support send <ticketId> \"…\"`).");
|
|
19
|
-
}
|
|
20
|
-
return hints;
|
|
21
|
-
}
|
|
22
|
-
function printThread(messages) {
|
|
23
|
-
return messages.map((m) => {
|
|
24
|
-
const who = m.role === "user" ? "you" : m.role === "human_agent" ? "naive team" : m.role;
|
|
25
|
-
return `[${who}] ${m.text}`;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
const askCmd = new Command("ask")
|
|
29
|
-
.description("Open a support ticket — the naive support agent replies immediately")
|
|
30
|
-
.argument("<message...>", "What you need help with")
|
|
31
|
-
.option("-s, --subject <subject>", "Ticket subject (defaults to the message)")
|
|
32
|
-
.action(async (messageWords, opts) => {
|
|
33
|
-
const message = messageWords.join(" ");
|
|
34
|
-
const resp = await apiRequest("POST", "/v1/support/tickets", {
|
|
35
|
-
message,
|
|
36
|
-
...(opts.subject ? { subject: opts.subject } : {}),
|
|
37
|
-
});
|
|
38
|
-
handleApiError("support ask", resp);
|
|
39
|
-
const data = resp.data;
|
|
40
|
-
agentOutput({
|
|
41
|
-
action: "support ask",
|
|
42
|
-
result: resp.data,
|
|
43
|
-
next_steps: [
|
|
44
|
-
{ command: `naive support show ${data.ticket.id}`, description: "View the full thread" },
|
|
45
|
-
{ command: `naive support send ${data.ticket.id} "…"`, description: "Reply on this ticket" },
|
|
46
|
-
],
|
|
47
|
-
hints: replyHints(data.reply, "Ticket created — the team will follow up."),
|
|
48
|
-
related_commands: ["naive support list", "naive report"],
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
const listCmd = new Command("list")
|
|
52
|
-
.description("List your support tickets")
|
|
53
|
-
.action(async () => {
|
|
54
|
-
const resp = await apiRequest("GET", "/v1/support/tickets");
|
|
55
|
-
handleApiError("support list", resp);
|
|
56
|
-
const data = resp.data;
|
|
57
|
-
agentOutput({
|
|
58
|
-
action: "support list",
|
|
59
|
-
result: resp.data,
|
|
60
|
-
next_steps: [{ command: "naive support show <ticketId>", description: "View a ticket's thread" }],
|
|
61
|
-
hints: data.tickets.map((t) => `${t.id} · ${t.status} · ${t.subject}`),
|
|
62
|
-
related_commands: ["naive support ask"],
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
const showCmd = new Command("show")
|
|
66
|
-
.description("Show a support ticket's full thread")
|
|
67
|
-
.argument("<ticketId>", "Ticket id")
|
|
68
|
-
.action(async (ticketId) => {
|
|
69
|
-
const resp = await apiRequest("GET", `/v1/support/tickets/${ticketId}`);
|
|
70
|
-
handleApiError("support show", resp);
|
|
71
|
-
const data = resp.data;
|
|
72
|
-
agentOutput({
|
|
73
|
-
action: "support show",
|
|
74
|
-
result: resp.data,
|
|
75
|
-
next_steps: [
|
|
76
|
-
{ command: `naive support send ${ticketId} "…"`, description: "Reply on this ticket" },
|
|
77
|
-
{ command: `naive support close ${ticketId}`, description: "Mark it resolved" },
|
|
78
|
-
],
|
|
79
|
-
hints: printThread(data.messages),
|
|
80
|
-
related_commands: ["naive support list"],
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
const sendCmd = new Command("send")
|
|
84
|
-
.description("Send a message on a support ticket")
|
|
85
|
-
.argument("<ticketId>", "Ticket id")
|
|
86
|
-
.argument("<message...>", "Your message")
|
|
87
|
-
.action(async (ticketId, messageWords) => {
|
|
88
|
-
const resp = await apiRequest("POST", `/v1/support/tickets/${ticketId}/messages`, {
|
|
89
|
-
message: messageWords.join(" "),
|
|
90
|
-
});
|
|
91
|
-
handleApiError("support send", resp);
|
|
92
|
-
const data = resp.data;
|
|
93
|
-
agentOutput({
|
|
94
|
-
action: "support send",
|
|
95
|
-
result: resp.data,
|
|
96
|
-
next_steps: [{ command: `naive support show ${ticketId}`, description: "View the full thread" }],
|
|
97
|
-
hints: replyHints(data.reply, "Message delivered — a human from the naive team holds this ticket and will reply."),
|
|
98
|
-
related_commands: ["naive support list"],
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
const closeCmd = new Command("close")
|
|
102
|
-
.description("Mark a support ticket resolved")
|
|
103
|
-
.argument("<ticketId>", "Ticket id")
|
|
104
|
-
.action(async (ticketId) => {
|
|
105
|
-
const resp = await apiRequest("POST", `/v1/support/tickets/${ticketId}/close`);
|
|
106
|
-
handleApiError("support close", resp);
|
|
107
|
-
agentOutput({
|
|
108
|
-
action: "support close",
|
|
109
|
-
result: resp.data,
|
|
110
|
-
next_steps: [{ command: "naive support ask <message>", description: "Open a new ticket" }],
|
|
111
|
-
related_commands: ["naive support list"],
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
export const supportCmd = new Command("support")
|
|
115
|
-
.description("Contact naive support: chat with the support agent, manage your tickets")
|
|
116
|
-
.addHelpText("after", `
|
|
117
|
-
Examples:
|
|
118
|
-
$ naive support ask "My agent's card decline says spend_cap_exceeded but the cap looks fine"
|
|
119
|
-
$ naive support list
|
|
120
|
-
$ naive support show <ticketId>
|
|
121
|
-
$ naive support send <ticketId> "Here is the error output..."
|
|
122
|
-
$ naive support close <ticketId>
|
|
123
|
-
|
|
124
|
-
What this does:
|
|
125
|
-
Opens a ticket with the naive support agent — it answers from the docs,
|
|
126
|
-
escalates refunds/account changes to a human, and files platform bugs to
|
|
127
|
-
the team plus an automated fix queue. Humans reply on the same thread.
|
|
128
|
-
`)
|
|
129
|
-
.addCommand(askCmd)
|
|
130
|
-
.addCommand(listCmd)
|
|
131
|
-
.addCommand(showCmd)
|
|
132
|
-
.addCommand(sendCmd)
|
|
133
|
-
.addCommand(closeCmd);
|
|
134
|
-
//# sourceMappingURL=support.js.map
|