@velaro/cli 0.7.0 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +161 -138
  2. package/bin/velaro.js +177 -62
  3. package/lib/api.js +91 -52
  4. package/lib/api.test.js +46 -0
  5. package/lib/banner.js +76 -0
  6. package/lib/commands/activity.js +133 -0
  7. package/lib/commands/acuity.js +66 -0
  8. package/lib/commands/agent.js +204 -50
  9. package/lib/commands/ai-config.js +193 -0
  10. package/lib/commands/ai-models.js +159 -0
  11. package/lib/commands/appointments.js +198 -0
  12. package/lib/commands/article.js +668 -388
  13. package/lib/commands/automation-draft.js +134 -0
  14. package/lib/commands/avatar.js +75 -0
  15. package/lib/commands/bigcommerce.js +50 -0
  16. package/lib/commands/billing-contacts.js +62 -0
  17. package/lib/commands/billing-email-preference.js +64 -0
  18. package/lib/commands/billing-subscription.js +265 -0
  19. package/lib/commands/billing.js +138 -0
  20. package/lib/commands/bot.js +141 -137
  21. package/lib/commands/bundle.js +168 -0
  22. package/lib/commands/calendly.js +62 -0
  23. package/lib/commands/callback.js +125 -0
  24. package/lib/commands/callrail.js +88 -0
  25. package/lib/commands/campaigns.js +44 -0
  26. package/lib/commands/case.js +102 -0
  27. package/lib/commands/check.js +163 -163
  28. package/lib/commands/compliance.js +229 -0
  29. package/lib/commands/conversation-efficiency.js +178 -0
  30. package/lib/commands/copilotstudio.js +114 -0
  31. package/lib/commands/coupon-grant.js +192 -0
  32. package/lib/commands/db.js +101 -0
  33. package/lib/commands/deployment.js +107 -107
  34. package/lib/commands/diagnostics.js +298 -0
  35. package/lib/commands/email-campaign.js +47 -0
  36. package/lib/commands/email-inbox.js +88 -0
  37. package/lib/commands/entitlement.js +176 -0
  38. package/lib/commands/env.js +45 -45
  39. package/lib/commands/feature-discovery.js +40 -0
  40. package/lib/commands/focus.js +278 -0
  41. package/lib/commands/index.js +38 -5
  42. package/lib/commands/ingest.js +31 -31
  43. package/lib/commands/inline-widget-config.js +126 -0
  44. package/lib/commands/integration.js +93 -0
  45. package/lib/commands/kb.js +450 -309
  46. package/lib/commands/login.js +86 -86
  47. package/lib/commands/logs.js +680 -0
  48. package/lib/commands/magento.js +210 -0
  49. package/lib/commands/mcp-key.js +188 -159
  50. package/lib/commands/migrate.js +134 -0
  51. package/lib/commands/migration-status.js +66 -0
  52. package/lib/commands/monday.js +137 -0
  53. package/lib/commands/netsuite.js +87 -0
  54. package/lib/commands/notifications.js +63 -0
  55. package/lib/commands/notion.js +70 -0
  56. package/lib/commands/ops.js +267 -173
  57. package/lib/commands/payment-recovery.js +170 -0
  58. package/lib/commands/pickup.js +172 -0
  59. package/lib/commands/pricing.js +132 -0
  60. package/lib/commands/product.js +55 -0
  61. package/lib/commands/recruiting.js +374 -0
  62. package/lib/commands/report.js +462 -0
  63. package/lib/commands/routing.js +304 -0
  64. package/lib/commands/rule.js +85 -85
  65. package/lib/commands/sharepoint.js +167 -0
  66. package/lib/commands/site-provision.js +68 -0
  67. package/lib/commands/site.js +62 -62
  68. package/lib/commands/sitesync.js +158 -0
  69. package/lib/commands/slack.js +64 -0
  70. package/lib/commands/squarespace.js +108 -0
  71. package/lib/commands/status.js +24 -24
  72. package/lib/commands/subscription.js +43 -0
  73. package/lib/commands/support.js +128 -0
  74. package/lib/commands/survey.js +216 -0
  75. package/lib/commands/team.js +144 -144
  76. package/lib/commands/teams-phone.js +131 -0
  77. package/lib/commands/teams.js +106 -0
  78. package/lib/commands/telephony.js +99 -0
  79. package/lib/commands/update.js +47 -47
  80. package/lib/commands/webflow.js +128 -0
  81. package/lib/commands/whoami.js +25 -22
  82. package/lib/commands/widget-container.js +152 -0
  83. package/lib/commands/woocommerce.js +240 -0
  84. package/lib/commands/workflow.js +233 -98
  85. package/lib/config.js +85 -83
  86. package/lib/kb-screenshot.js +320 -0
  87. package/lib/migrations/amscro.json +72 -0
  88. package/lib/migrations/azenta.json +68 -0
  89. package/lib/migrations/bluefire.json +49 -0
  90. package/lib/migrations/donaldson.json +75 -0
  91. package/lib/oauth.js +149 -135
  92. package/lib/run.js +21 -16
  93. package/lib/sharepoint-auth.js +138 -0
  94. package/lib/subscription.js +41 -39
  95. package/lib/track.js +35 -35
  96. package/lib/update-check.js +64 -64
  97. package/package.json +34 -19
  98. package/scripts/postinstall.js +12 -0
package/README.md CHANGED
@@ -1,138 +1,161 @@
1
- # Velaro CLI
2
-
3
- Command-line interface for managing your Velaro account — bots, knowledge base ingestion, and MCP API keys.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install -g @velaro/cli
9
- ```
10
-
11
- Or run without installing:
12
-
13
- ```bash
14
- npx @velaro/cli login
15
- ```
16
-
17
- > Requires Node.js 18 or later.
18
-
19
- ## Authentication
20
-
21
- Velaro CLI uses your existing Velaro account — the same login you use in the admin portal. No separate API key or password required.
22
-
23
- ```bash
24
- velaro login
25
- ```
26
-
27
- This opens your browser to a short code page. Enter the code shown in the terminal, sign in with your Velaro account, and you're done. Your session is saved to `~/.velaro/config.json` and refreshes automatically — you won't need to log in again for months.
28
-
29
- ```bash
30
- velaro logout # clear saved credentials
31
- velaro whoami # confirm who you're logged in as
32
- ```
33
-
34
- ## Commands
35
-
36
- ### `velaro bot list`
37
- List all AI bots configured on your site.
38
-
39
- ```
40
- [42] Support Bot model=velaro-gpt-4o-mini status=ready
41
- [43] Sales Bot model=velaro-gpt-4o-mini status=ready
42
- ```
43
-
44
- ### `velaro bot setup`
45
- Create or update an AI bot (upsert by name).
46
-
47
- ```bash
48
- velaro bot setup \
49
- --name "Support Bot" \
50
- --prompt "You are a helpful support assistant for Acme Corp..." \
51
- --tone Professional \
52
- --reply-length Medium \
53
- --urls "https://help.acme.com,https://acme.com/faq"
54
- ```
55
-
56
- Options:
57
- | Flag | Description | Default |
58
- |---|---|---|
59
- | `--name` | Bot name (required) | — |
60
- | `--prompt` | System prompt | — |
61
- | `--model` | AI model | `velaro-gpt-4o-mini` |
62
- | `--tone` | `Professional`, `Friendly`, `Formal`, `Casual` | `Professional` |
63
- | `--reply-length` | `Short`, `Medium`, `Long` | `Medium` |
64
- | `--urls` | Comma-separated knowledge base URLs | — |
65
-
66
- ### `velaro ingest --job-id <id>`
67
- Trigger knowledge base ingestion for a completed scraper job. The job runs in the background — embedding 50+ pages typically takes 1–2 minutes.
68
-
69
- ```bash
70
- velaro ingest --job-id d2d93504
71
- ```
72
-
73
- > Requires the **Knowledge Base** feature on your subscription.
74
-
75
- ### `velaro mcp-key list`
76
- List MCP API keys for your site (used to connect AI tools like Claude).
77
-
78
- ```
79
- [1] Claude Code prefix=vel_live_aB4 active last used=4/9/2026
80
- [2] Zapier prefix=vel_live_xC7 active last used=never
81
- ```
82
-
83
- ### `velaro mcp-key create --label <label>`
84
- Create a new MCP API key. The full key is shown **once** — copy it immediately.
85
-
86
- ```bash
87
- velaro mcp-key create --label "Claude Code"
88
- velaro mcp-key create --label "Zapier" --expires 2027-01-01
89
- ```
90
-
91
- ### `velaro mcp-key revoke <id>`
92
- Revoke an MCP key by ID.
93
-
94
- ```bash
95
- velaro mcp-key revoke 2
96
- ```
97
-
98
- ### `velaro status`
99
- Check that the Velaro API is reachable.
100
-
101
- ```bash
102
- velaro status
103
- # Checking https://velaro-messaging-api-staging.azurewebsites.net/Status ... OK
104
- ```
105
-
106
- ## Environment variables
107
-
108
- | Variable | Description |
109
- |---|---|
110
- | `VELARO_API_BASE` | Override the API base URL (defaults to production) |
111
- | `VELARO_CLI_CLIENT_ID` | Override the Entra app ID (advanced) |
112
-
113
- ## What the CLI can access
114
-
115
- The CLI operates under your Velaro account with the same permissions you have in the admin portal. It can only access **your own site's data** — it is not possible to read or modify another customer's account.
116
-
117
- Feature access is gated by your subscription plan:
118
- - **Bot setup** — requires the AI feature on your plan
119
- - **KB ingestion**requires the Knowledge Base feature
120
- - **MCP keys** — requires the MCP API Access feature
121
-
122
- ## Security
123
-
124
- - Login uses OAuth 2.0 device authorization (RFC 8628) — no password is ever stored
125
- - Credentials are saved to `~/.velaro/config.json` with owner-only permissions (`0600`)
126
- - Your Velaro JWT expires after 1 hour and is silently refreshed using a secure refresh token
127
- - All API calls go over HTTPS to `velaro-messaging-api.azurewebsites.net`
128
-
129
- ## Publishing (internal)
130
-
131
- The CLI lives in `velaro-admin/cli/`. To publish to npm:
132
-
133
- ```bash
134
- cd cli
135
- npm publish --access public
136
- ```
137
-
138
- Requires `npm login` with the `@velaro` organization access.
1
+ # Velaro CLI
2
+
3
+ Command-line interface for managing your Velaro account — bots, knowledge base ingestion, and MCP API keys.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @velaro/cli
9
+ ```
10
+
11
+ Or run without installing:
12
+
13
+ ```bash
14
+ npx @velaro/cli login
15
+ ```
16
+
17
+ > Requires Node.js 18 or later.
18
+
19
+ ## Authentication
20
+
21
+ Velaro CLI uses your existing Velaro account — the same login you use in the admin portal. No separate API key or password required.
22
+
23
+ ```bash
24
+ velaro login
25
+ ```
26
+
27
+ This opens your browser to a short code page. Enter the code shown in the terminal, sign in with your Velaro account, and you're done. Your session is saved to `~/.velaro/config.json` and refreshes automatically — you won't need to log in again for months.
28
+
29
+ ```bash
30
+ velaro logout # clear saved credentials
31
+ velaro whoami # confirm who you're logged in as
32
+ ```
33
+
34
+ ## Commands
35
+
36
+ ### `velaro bot list`
37
+ List all AI bots configured on your site.
38
+
39
+ ```
40
+ [42] Support Bot model=velaro-gpt-4o-mini status=ready
41
+ [43] Sales Bot model=velaro-gpt-4o-mini status=ready
42
+ ```
43
+
44
+ ### `velaro bot setup`
45
+ Create or update an AI bot (upsert by name).
46
+
47
+ ```bash
48
+ velaro bot setup \
49
+ --name "Support Bot" \
50
+ --prompt "You are a helpful support assistant for Acme Corp..." \
51
+ --tone Professional \
52
+ --reply-length Medium \
53
+ --urls "https://help.acme.com,https://acme.com/faq"
54
+ ```
55
+
56
+ Options:
57
+ | Flag | Description | Default |
58
+ |---|---|---|
59
+ | `--name` | Bot name (required) | — |
60
+ | `--prompt` | System prompt | — |
61
+ | `--model` | AI model | `velaro-gpt-4o-mini` |
62
+ | `--tone` | `Professional`, `Friendly`, `Formal`, `Casual` | `Professional` |
63
+ | `--reply-length` | `Short`, `Medium`, `Long` | `Medium` |
64
+ | `--urls` | Comma-separated knowledge base URLs | — |
65
+
66
+ ### `velaro ingest --job-id <id>`
67
+ Trigger knowledge base ingestion for a completed scraper job. The job runs in the background — embedding 50+ pages typically takes 1–2 minutes.
68
+
69
+ ```bash
70
+ velaro ingest --job-id d2d93504
71
+ ```
72
+
73
+ > Requires the **Knowledge Base** feature on your subscription.
74
+
75
+ ### `velaro mcp-key list`
76
+ List MCP API keys for your site (used to connect AI tools like Claude).
77
+
78
+ ```
79
+ [1] Claude Code prefix=vel_live_aB4 active last used=4/9/2026
80
+ [2] Zapier prefix=vel_live_xC7 active last used=never
81
+ ```
82
+
83
+ ### `velaro mcp-key create --label <label>`
84
+ Create a new MCP API key. The full key is shown **once** — copy it immediately.
85
+
86
+ ```bash
87
+ velaro mcp-key create --label "Claude Code"
88
+ velaro mcp-key create --label "Zapier" --expires 2027-01-01
89
+ ```
90
+
91
+ ### `velaro mcp-key revoke <id>`
92
+ Revoke an MCP key by ID.
93
+
94
+ ```bash
95
+ velaro mcp-key revoke 2
96
+ ```
97
+
98
+ ### `velaro kb article <subcommand>`
99
+ Manage your help.velaro.com knowledge base articles. Full reference (including the REST/MCP equivalents and the screenshot pipeline): [`docs/architecture/kb-publishing-system.md`](../docs/architecture/kb-publishing-system.md).
100
+
101
+ ```bash
102
+ velaro kb article topics # list topics (get a topicId first)
103
+ velaro kb article list --search "smart routing" # search/list articles
104
+ velaro kb article get 1234 # fetch one article
105
+ velaro kb article push ./my-article.md --topic-id 4 --publish # create (or --update-id to update)
106
+ velaro kb article preview 1234 # render an article's HTML locally
107
+ velaro kb article improve 1234 --instruction "add a troubleshooting section" --publish
108
+ velaro kb article seed-views 1234 # seed a realistic view count (new articles)
109
+ velaro kb article delete 1234
110
+
111
+ # Grab a real screenshot off staging, polish it, and drop it into an article:
112
+ velaro kb article screenshot 1234 \
113
+ --app admin \
114
+ --route "/Settings/SmartRouting" \
115
+ --heading "Turning on Smart Routing" \
116
+ --annotate 120,80,1
117
+ ```
118
+
119
+ > Titles are auto-normalized to Title Case with no dashes, even if you pass a slug-style name use `--no-title-normalize` to skip that.
120
+
121
+ ### `velaro status`
122
+ Check that the Velaro API is reachable.
123
+
124
+ ```bash
125
+ velaro status
126
+ # Checking https://velaro-messaging-api-staging.azurewebsites.net/Status ... OK
127
+ ```
128
+
129
+ ## Environment variables
130
+
131
+ | Variable | Description |
132
+ |---|---|
133
+ | `VELARO_API_BASE` | Override the API base URL (defaults to production) |
134
+ | `VELARO_CLI_CLIENT_ID` | Override the Entra app ID (advanced) |
135
+
136
+ ## What the CLI can access
137
+
138
+ The CLI operates under your Velaro account with the same permissions you have in the admin portal. It can only access **your own site's data** — it is not possible to read or modify another customer's account.
139
+
140
+ Feature access is gated by your subscription plan:
141
+ - **Bot setup** — requires the AI feature on your plan
142
+ - **KB ingestion** — requires the Knowledge Base feature
143
+ - **MCP keys** — requires the MCP API Access feature
144
+
145
+ ## Security
146
+
147
+ - Login uses OAuth 2.0 device authorization (RFC 8628) — no password is ever stored
148
+ - Credentials are saved to `~/.velaro/config.json` with owner-only permissions (`0600`)
149
+ - Your Velaro JWT expires after 1 hour and is silently refreshed using a secure refresh token
150
+ - All API calls go over HTTPS to `velaro-messaging-api.azurewebsites.net`
151
+
152
+ ## Publishing (internal)
153
+
154
+ The CLI lives in `velaro-admin/cli/`. To publish to npm:
155
+
156
+ ```bash
157
+ cd cli
158
+ npm publish --access public
159
+ ```
160
+
161
+ Requires `npm login` with the `@velaro` organization access.
package/bin/velaro.js CHANGED
@@ -1,62 +1,177 @@
1
- #!/usr/bin/env node
2
-
3
- import yargs from 'yargs';
4
- import { hideBin } from 'yargs/helpers';
5
- import { loginCommand, logoutCommand } from '../lib/commands/login.js';
6
- import { envCommand } from '../lib/commands/env.js';
7
- import { whoamiCommand } from '../lib/commands/whoami.js';
8
- import { teamCommand } from '../lib/commands/team.js';
9
- import { botCommand } from '../lib/commands/bot.js';
10
- import { kbCommand } from '../lib/commands/kb.js';
11
- import { workflowCommand } from '../lib/commands/workflow.js';
12
- import { ruleCommand } from '../lib/commands/rule.js';
13
- import { agentCommand } from '../lib/commands/agent.js';
14
- import { ingestCommand } from '../lib/commands/ingest.js';
15
- import { mcpKeyCommand } from '../lib/commands/mcp-key.js';
16
- import { indexCommand } from '../lib/commands/index.js';
17
- import { opsCommand } from '../lib/commands/ops.js';
18
- import { statusCommand } from '../lib/commands/status.js';
19
- import { siteCommand } from '../lib/commands/site.js';
20
- import { checkCommand } from '../lib/commands/check.js';
21
- import { updateCommand } from '../lib/commands/update.js';
22
- import { startUpdateCheck } from '../lib/update-check.js';
23
-
24
- // Start background update check — doesn't block the command
25
- const printUpdateNotice = startUpdateCheck();
26
-
27
- await yargs(hideBin(process.argv))
28
- .scriptName('velaro')
29
- .usage('$0 <command> [options]')
30
- // Auth
31
- .command(loginCommand)
32
- .command(logoutCommand)
33
- .command(whoamiCommand)
34
- .command(envCommand)
35
- // Info
36
- .command(siteCommand)
37
- .command(checkCommand)
38
- .command(statusCommand)
39
- // Config
40
- .command(teamCommand)
41
- .command(botCommand)
42
- .command(kbCommand)
43
- .command(workflowCommand)
44
- .command(ruleCommand)
45
- .command(agentCommand)
46
- // Integrations / keys / indexes
47
- .command(ingestCommand)
48
- .command(mcpKeyCommand)
49
- .command(indexCommand)
50
- .command(opsCommand)
51
- // CLI maintenance
52
- .command(updateCommand)
53
- .demandCommand(1, 'Specify a command. Run velaro --help for a list.')
54
- .strict()
55
- .help()
56
- .alias('h', 'help')
57
- .alias('v', 'version')
58
- .wrap(Math.min(100, process.stdout.columns || 100))
59
- .parseAsync();
60
-
61
- // Print update notice after command output (non-intrusive)
62
- await printUpdateNotice();
1
+ #!/usr/bin/env node
2
+ import yargs from 'yargs';
3
+ import { hideBin } from 'yargs/helpers';
4
+
5
+ import { loginCommand, logoutCommand } from '../lib/commands/login.js';
6
+ import { envCommand } from '../lib/commands/env.js';
7
+ import { whoamiCommand } from '../lib/commands/whoami.js';
8
+ import { kbCommand } from '../lib/commands/kb.js';
9
+ import { botCommand } from '../lib/commands/bot.js';
10
+ import { indexCommand } from '../lib/commands/index.js';
11
+ import { ingestCommand } from '../lib/commands/ingest.js';
12
+ import { productCommand } from '../lib/commands/product.js';
13
+ import { mcpKeyCommand } from '../lib/commands/mcp-key.js';
14
+ import { opsCommand } from '../lib/commands/ops.js';
15
+ import { checkCommand } from '../lib/commands/check.js';
16
+ import { logsCommand } from '../lib/commands/logs.js';
17
+ import { aiModelsCommand } from '../lib/commands/ai-models.js';
18
+ import { siteCommand } from '../lib/commands/site.js';
19
+ import { siteProvisionCommand } from '../lib/commands/site-provision.js';
20
+ import { siteSyncCommand } from '../lib/commands/sitesync.js';
21
+ import { statusCommand } from '../lib/commands/status.js';
22
+ import { activityCommand } from '../lib/commands/activity.js';
23
+ import { ruleCommand } from '../lib/commands/rule.js';
24
+ import { teamCommand } from '../lib/commands/team.js';
25
+ import { workflowCommand } from '../lib/commands/workflow.js';
26
+ import { aiConfigCommand } from '../lib/commands/ai-config.js';
27
+ import { deploymentCommand } from '../lib/commands/deployment.js';
28
+ import { updateCommand } from '../lib/commands/update.js';
29
+ import { agentCommand } from '../lib/commands/agent.js';
30
+ import { notificationsCommand } from '../lib/commands/notifications.js';
31
+ import { articleCommand } from '../lib/commands/article.js';
32
+ import { sharepointCommand } from '../lib/commands/sharepoint.js';
33
+ import { calendlyCommand } from '../lib/commands/calendly.js';
34
+ import { copilotStudioCommand } from '../lib/commands/copilotstudio.js';
35
+ import { acuityCommand } from '../lib/commands/acuity.js';
36
+ import { avatarCommand } from '../lib/commands/avatar.js';
37
+ import { integrationCommand } from '../lib/commands/integration.js';
38
+ import { appointmentsCommand } from '../lib/commands/appointments.js';
39
+ import { reportCommand } from '../lib/commands/report.js';
40
+ import { conversationEfficiencyCommand } from '../lib/commands/conversation-efficiency.js';
41
+ import { dbCommand } from '../lib/commands/db.js';
42
+ import { focusCommand } from '../lib/commands/focus.js';
43
+ import { automationDraftCommand } from '../lib/commands/automation-draft.js';
44
+ import { magentoCommand } from '../lib/commands/magento.js';
45
+ import { mondayCommand } from '../lib/commands/monday.js';
46
+ import { notionCommand } from '../lib/commands/notion.js';
47
+ import { callrailCommand } from '../lib/commands/callrail.js';
48
+ import { emailCampaignCommand } from '../lib/commands/email-campaign.js';
49
+ import { telephonyCommand } from '../lib/commands/telephony.js';
50
+ import { teamsPhoneCommand } from '../lib/commands/teams-phone.js';
51
+ import { teamsCommand } from '../lib/commands/teams.js';
52
+ import { slackCommand } from '../lib/commands/slack.js';
53
+ import { webflowCommand } from '../lib/commands/webflow.js';
54
+ import { netsuiteCommand } from '../lib/commands/netsuite.js';
55
+ import { woocommerceCommand } from '../lib/commands/woocommerce.js';
56
+ import { squarespaceCommand } from '../lib/commands/squarespace.js';
57
+ import { bigcommerceCommand } from '../lib/commands/bigcommerce.js';
58
+ import { migrateCommand } from '../lib/commands/migrate.js';
59
+ import { migrationStatusCommand } from '../lib/commands/migration-status.js';
60
+ import { complianceCommand } from '../lib/commands/compliance.js';
61
+ import { billingContactsCommand } from '../lib/commands/billing-contacts.js';
62
+ import { billingSubscriptionCommand } from '../lib/commands/billing-subscription.js';
63
+ import { billingEmailPreferenceCommand } from '../lib/commands/billing-email-preference.js';
64
+ import { billingCommand } from '../lib/commands/billing.js';
65
+ import { couponGrantCommand } from '../lib/commands/coupon-grant.js';
66
+ import { widgetContainerCommand } from '../lib/commands/widget-container.js';
67
+ import { inlineWidgetConfigCommand } from '../lib/commands/inline-widget-config.js';
68
+ import { pricingCommand } from '../lib/commands/pricing.js';
69
+ import { entitlementCommand } from '../lib/commands/entitlement.js';
70
+ import { subscriptionCommand } from '../lib/commands/subscription.js';
71
+ import { supportCommand } from '../lib/commands/support.js';
72
+ import { routingCommand } from '../lib/commands/routing.js';
73
+ import { diagnosticsCommand } from '../lib/commands/diagnostics.js';
74
+ import { emailInboxCommand } from '../lib/commands/email-inbox.js';
75
+ import { callbackCommand } from '../lib/commands/callback.js';
76
+ import { caseCommand } from '../lib/commands/case.js';
77
+ import { pickupCommand } from '../lib/commands/pickup.js';
78
+ import { paymentRecoveryCommand } from '../lib/commands/payment-recovery.js';
79
+ import { recruitingCommand } from '../lib/commands/recruiting.js';
80
+ import { surveyCommand } from '../lib/commands/survey.js';
81
+ import { bundleCommand } from '../lib/commands/bundle.js';
82
+ import { featureDiscoveryCommand } from '../lib/commands/feature-discovery.js';
83
+ import { campaignsCommand } from '../lib/commands/campaigns.js';
84
+ import { startUpdateCheck } from '../lib/update-check.js';
85
+ import { printBannerIfFirstRun } from '../lib/banner.js';
86
+
87
+ printBannerIfFirstRun();
88
+
89
+ startUpdateCheck();
90
+
91
+ yargs(hideBin(process.argv))
92
+ .scriptName('velaro')
93
+ .usage('$0 <command> [options]')
94
+ .command(loginCommand)
95
+ .command(logoutCommand)
96
+ .command(envCommand)
97
+ .command(whoamiCommand)
98
+ .command(kbCommand)
99
+ .command(botCommand)
100
+ .command(indexCommand)
101
+ .command(ingestCommand)
102
+ .command(productCommand)
103
+ .command(mcpKeyCommand)
104
+ .command(opsCommand)
105
+ .command(checkCommand)
106
+ .command(logsCommand)
107
+ .command(aiModelsCommand)
108
+ .command(siteCommand)
109
+ .command(siteProvisionCommand)
110
+ .command(siteSyncCommand)
111
+ .command(statusCommand)
112
+ .command(activityCommand)
113
+ .command(ruleCommand)
114
+ .command(teamCommand)
115
+ .command(workflowCommand)
116
+ .command(aiConfigCommand)
117
+ .command(deploymentCommand)
118
+ .command(updateCommand)
119
+ .command(agentCommand)
120
+ .command(notificationsCommand)
121
+ .command(articleCommand)
122
+ .command(sharepointCommand)
123
+ .command(calendlyCommand)
124
+ .command(copilotStudioCommand)
125
+ .command(acuityCommand)
126
+ .command(avatarCommand)
127
+ .command(integrationCommand)
128
+ .command(appointmentsCommand)
129
+ .command(reportCommand)
130
+ .command(conversationEfficiencyCommand)
131
+ .command(dbCommand)
132
+ .command(focusCommand)
133
+ .command(automationDraftCommand)
134
+ .command(magentoCommand)
135
+ .command(mondayCommand)
136
+ .command(notionCommand)
137
+ .command(callrailCommand)
138
+ .command(emailCampaignCommand)
139
+ .command(telephonyCommand)
140
+ .command(teamsPhoneCommand)
141
+ .command(teamsCommand)
142
+ .command(slackCommand)
143
+ .command(webflowCommand)
144
+ .command(netsuiteCommand)
145
+ .command(woocommerceCommand)
146
+ .command(squarespaceCommand)
147
+ .command(bigcommerceCommand)
148
+ .command(migrateCommand)
149
+ .command(migrationStatusCommand)
150
+ .command(complianceCommand)
151
+ .command(billingContactsCommand)
152
+ .command(billingSubscriptionCommand)
153
+ .command(billingEmailPreferenceCommand)
154
+ .command(billingCommand)
155
+ .command(couponGrantCommand)
156
+ .command(widgetContainerCommand)
157
+ .command(inlineWidgetConfigCommand)
158
+ .command({ command: 'pricing', desc: 'View and manage the pricing catalog', builder: pricingCommand, handler: () => {} })
159
+ .command({ command: 'entitlement', desc: 'Query and manage site feature entitlements (superadmin only)', builder: entitlementCommand, handler: () => {} })
160
+ .command({ command: 'subscription', desc: 'Apply/diff SubscriptionPackage packages on a site (superadmin only)', builder: subscriptionCommand, handler: () => {} })
161
+ .command({ command: 'support', desc: 'Staff SupportTools actions on a site (superadmin only)', builder: supportCommand, handler: () => {} })
162
+ .command(routingCommand)
163
+ .command(diagnosticsCommand)
164
+ .command(emailInboxCommand)
165
+ .command(callbackCommand)
166
+ .command(caseCommand)
167
+ .command(pickupCommand)
168
+ .command(paymentRecoveryCommand)
169
+ .command(recruitingCommand)
170
+ .command(surveyCommand)
171
+ .command(bundleCommand)
172
+ .command({ command: 'feature-discovery', desc: 'View and act on feature-discovery suggestions for this site', builder: featureDiscoveryCommand, handler: () => {} })
173
+ .command(campaignsCommand)
174
+ .demandCommand(1, 'Specify a command. Run "velaro --help" for options.')
175
+ .strict()
176
+ .help()
177
+ .argv;