@epilot/cli 0.1.7 → 0.1.9

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 (53) hide show
  1. package/README.md +32 -4
  2. package/dist/{access-token-BV7OAX75.js → access-token-PTTCRMGK.js} +3 -2
  3. package/dist/{address-4Z6WADBJ.js → address-2FDPEPR6.js} +3 -2
  4. package/dist/{address-suggestions-7BXTJCZH.js → address-suggestions-XBEK5DDQ.js} +3 -2
  5. package/dist/{ai-agents-VB2WGMIZ.js → ai-agents-ZY5BNVTN.js} +3 -2
  6. package/dist/{app-DXDK7UZX.js → app-IT5FWGUK.js} +3 -2
  7. package/dist/{audit-logs-5ZEZNO5T.js → audit-logs-FB4TE4TI.js} +3 -2
  8. package/dist/{automation-V5CN2KUO.js → automation-JE5LDKJM.js} +3 -2
  9. package/dist/{billing-FKPDTZ6G.js → billing-GOFCP5T3.js} +3 -2
  10. package/dist/bin/epilot.js +52 -49
  11. package/dist/{blueprint-manifest-2CINVMTI.js → blueprint-manifest-WJIQKFYK.js} +3 -2
  12. package/dist/{chunk-AMOFZJ5W.js → chunk-IOLKUHUB.js} +2 -1
  13. package/dist/{chunk-EU2A2ORP.js → chunk-P5IZZW4Y.js} +29 -13
  14. package/dist/{consent-HZ7EVD4I.js → consent-DSMWWHUL.js} +3 -2
  15. package/dist/{customer-portal-XHM7X235.js → customer-portal-IJYTJYUZ.js} +3 -2
  16. package/dist/{dashboard-NVP6FMOH.js → dashboard-DOAX6XDG.js} +3 -2
  17. package/dist/{data-management-JGDAGO75.js → data-management-C4JPPUPD.js} +3 -2
  18. package/dist/{deduplication-DTY4VICH.js → deduplication-7OGLZLAC.js} +3 -2
  19. package/dist/{design-72XM3PQR.js → design-3CAYTWFY.js} +3 -2
  20. package/dist/{document-OH4T743T.js → document-NT5JOJQV.js} +3 -2
  21. package/dist/{email-settings-BSU45CNC.js → email-settings-2M3WJTQS.js} +3 -2
  22. package/dist/{email-template-VHUF3OYL.js → email-template-F4PLBPPC.js} +3 -2
  23. package/dist/{entity-RBMVRPDS.js → entity-32LKMZAU.js} +3 -2
  24. package/dist/{entity-mapping-7QUMDAQO.js → entity-mapping-OBCZDYQJ.js} +3 -2
  25. package/dist/{environments-RM333MM3.js → environments-H3TBCDQE.js} +3 -2
  26. package/dist/{erp-integration-RBW2CSPM.js → erp-integration-UW6H55EK.js} +3 -2
  27. package/dist/{event-catalog-APQS5GOU.js → event-catalog-NVAPTZ4M.js} +3 -2
  28. package/dist/{file-SU2T5RF6.js → file-US2HR4SV.js} +3 -2
  29. package/dist/{iban-XRAJ3QJA.js → iban-7QUCOULB.js} +3 -2
  30. package/dist/{interactive-CD3I3Q5X.js → interactive-LSY5SADM.js} +1 -1
  31. package/dist/{journey-SRK5MDRQ.js → journey-E5T4BZZX.js} +3 -2
  32. package/dist/{kanban-2IDQXJ4R.js → kanban-7UHU5VE6.js} +3 -2
  33. package/dist/{message-TV7TZI2Y.js → message-7KY33RJE.js} +3 -2
  34. package/dist/{metering-LHBESUA2.js → metering-P7BZGMY7.js} +3 -2
  35. package/dist/{notes-3KTVUFIQ.js → notes-TNJ7FPA3.js} +3 -2
  36. package/dist/{notification-6FHJXYCH.js → notification-6KXEFVO5.js} +3 -2
  37. package/dist/{organization-MBRTAROH.js → organization-FF4Y3PBO.js} +3 -2
  38. package/dist/{partner-directory-NUWSXNVD.js → partner-directory-VH2SBAS2.js} +3 -2
  39. package/dist/{permissions-CD2OPGOC.js → permissions-KENZ4HNY.js} +3 -2
  40. package/dist/{pricing-6C6LWKER.js → pricing-P6QZ77VJ.js} +3 -2
  41. package/dist/{pricing-tier-U67UYOP5.js → pricing-tier-2IRJMTM6.js} +3 -2
  42. package/dist/{purpose-3UTD6PG2.js → purpose-IHROR6LQ.js} +3 -2
  43. package/dist/{sandbox-AU5TUO7G.js → sandbox-62XQPOU6.js} +3 -2
  44. package/dist/{submission-LXDAZTAB.js → submission-PUWGOYQB.js} +3 -2
  45. package/dist/{targeting-YDU2O744.js → targeting-QB3DFYNI.js} +3 -2
  46. package/dist/{template-variables-MLSMLLYA.js → template-variables-IPKRUJ4E.js} +3 -2
  47. package/dist/{upgrade-KIOCOPB7.js → upgrade-KDDTJRUC.js} +1 -1
  48. package/dist/{user-WMSSXQHK.js → user-2CP75TFC.js} +3 -2
  49. package/dist/{validation-rules-W7A4DMWK.js → validation-rules-GNI4EEG5.js} +3 -2
  50. package/dist/{webhooks-QSYAFFQ2.js → webhooks-2OWUX7UL.js} +3 -2
  51. package/dist/{workflow-KKAMUHYE.js → workflow-WSLERVJI.js} +3 -2
  52. package/dist/{workflow-definition-ECXHF425.js → workflow-definition-FP3WKHGG.js} +3 -2
  53. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,19 @@
1
- # epilot CLI
1
+ <h1 align="center"><img alt="epilot" src="https://raw.githubusercontent.com/epilot-dev/sdk-js/main/logo.png" width="200"><br>@epilot/cli</h1>
2
2
 
3
- CLI for epilot APIs. Call any epilot API operation directly from the command line.
3
+ <p align="center">
4
+ <a href="https://github.com/epilot-dev/sdk-js/actions?query=workflow%3ACI"><img src="https://github.com/epilot-dev/sdk-js/workflows/CI/badge.svg" alt="CI"></a>
5
+ <a href="https://www.npmjs.com/package/@epilot/cli"><img src="https://img.shields.io/npm/v/@epilot/cli.svg" alt="npm version"></a>
6
+ <a href="https://github.com/epilot-dev/sdk-js/blob/main/"><img src="http://img.shields.io/:license-mit-blue.svg" alt="License"></a>
7
+ </p>
8
+
9
+ <p align="center">Command-line interface for all epilot APIs. One command to call any operation.</p>
10
+
11
+ Built for developers, automation scripts, and AI agents. The epilot CLI gives you direct access to the entire epilot platform from your terminal — no SDK setup, no boilerplate, just `npx epilot`.
12
+
13
+ - **Quick API calls** — look up entities, search data, check configurations without writing code
14
+ - **Automation & scripting** — pipe JSON in/out, `--json` mode for `jq`-friendly output, `--no-interactive` for CI
15
+ - **AI agent tool use** — structured `--json` output and `--no-interactive` mode make it ideal as a tool for LLM agents and MCP servers
16
+ - **Explore & discover** — interactive operation picker, `--guided` mode, and built-in help with sample requests/responses for every operation
4
17
 
5
18
  ## Install
6
19
 
@@ -16,7 +29,7 @@ npm install -g @epilot/cli
16
29
 
17
30
  <!-- usage-help -->
18
31
  ```
19
- epilot v0.1.7 — CLI for epilot APIs
32
+ epilot v0.1.9 — CLI for epilot APIs
20
33
 
21
34
  USAGE
22
35
  epilot <api> <operationId> [params...] [flags]
@@ -30,6 +43,7 @@ FLAGS
30
43
  --json Output raw JSON (no formatting)
31
44
  -v, --verbose Verbose output (show request details)
32
45
  --jsonata <expr> JSONata expression to transform response
46
+ --guided Prompt for all parameters interactively
33
47
  --no-interactive Disable interactive prompts
34
48
 
35
49
  PARAMETER FLAGS
@@ -246,12 +260,26 @@ epilot entity getEntity contact abc123 # automatically uses override
246
260
 
247
261
  When running in a TTY without required arguments, the CLI prompts interactively:
248
262
 
249
- - **No operation**: shows an operation picker
263
+ - **No operation**: shows a searchable operation picker
250
264
  - **Missing required params**: prompts for each one
251
265
  - **No auth token**: prompts to paste a token
252
266
 
253
267
  Disable with `--no-interactive` for CI/scripts.
254
268
 
269
+ ### Guided Mode
270
+
271
+ Use `--guided` to be prompted for **all** parameters, not just required ones. This is useful for exploring an API operation without having to look up every available parameter.
272
+
273
+ ```bash
274
+ # Walk through all parameters for getEntity
275
+ epilot entity getEntity --guided
276
+
277
+ # Guided mode also opens the body editor for operations with a request body
278
+ epilot entity searchEntities --guided
279
+ ```
280
+
281
+ Each optional parameter shows "(optional, press Enter to skip)" so you can quickly skip ones you don't need.
282
+
255
283
  ## Shell Completions
256
284
 
257
285
  Tab completion for API names, operation IDs, and flags.
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/access-token.ts
@@ -23,6 +23,7 @@ var access_token_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/address.ts
@@ -23,6 +23,7 @@ var address_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/address-suggestions.ts
@@ -23,6 +23,7 @@ var address_suggestions_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/ai-agents.ts
@@ -23,6 +23,7 @@ var ai_agents_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/app.ts
@@ -23,6 +23,7 @@ var app_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/audit-logs.ts
@@ -23,6 +23,7 @@ var audit_logs_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/automation.ts
@@ -23,6 +23,7 @@ var automation_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/billing.ts
@@ -23,6 +23,7 @@ var billing_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
11
11
  var main = defineCommand({
12
12
  meta: {
13
13
  name: "epilot",
14
- version: "0.1.7",
14
+ version: "0.1.9",
15
15
  description: "CLI for epilot APIs"
16
16
  },
17
17
  args: {
@@ -20,6 +20,7 @@ var main = defineCommand({
20
20
  server: { type: "string", alias: "s", description: "Override server base URL" },
21
21
  json: { type: "boolean", description: "Output raw JSON" },
22
22
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
23
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
23
24
  interactive: { type: "boolean", default: true, description: "Interactive mode" },
24
25
  jsonata: { type: "string", description: "JSONata expression" }
25
26
  },
@@ -27,53 +28,53 @@ var main = defineCommand({
27
28
  auth: () => import("../auth-AAF6Z5WZ.js").then((m) => m.default),
28
29
  profile: () => import("../profile-EK4HSQ57.js").then((m) => m.default),
29
30
  completion: () => import("../completion-EKFXGPNK.js").then((m) => m.default),
30
- upgrade: () => import("../upgrade-KIOCOPB7.js").then((m) => m.default),
31
- "access-token": () => import("../access-token-BV7OAX75.js").then((m) => m.default),
32
- address: () => import("../address-4Z6WADBJ.js").then((m) => m.default),
33
- "address-suggestions": () => import("../address-suggestions-7BXTJCZH.js").then((m) => m.default),
34
- "ai-agents": () => import("../ai-agents-VB2WGMIZ.js").then((m) => m.default),
35
- app: () => import("../app-DXDK7UZX.js").then((m) => m.default),
36
- "audit-logs": () => import("../audit-logs-5ZEZNO5T.js").then((m) => m.default),
37
- automation: () => import("../automation-V5CN2KUO.js").then((m) => m.default),
38
- billing: () => import("../billing-FKPDTZ6G.js").then((m) => m.default),
39
- "blueprint-manifest": () => import("../blueprint-manifest-2CINVMTI.js").then((m) => m.default),
40
- consent: () => import("../consent-HZ7EVD4I.js").then((m) => m.default),
41
- "customer-portal": () => import("../customer-portal-XHM7X235.js").then((m) => m.default),
42
- dashboard: () => import("../dashboard-NVP6FMOH.js").then((m) => m.default),
43
- "data-management": () => import("../data-management-JGDAGO75.js").then((m) => m.default),
44
- deduplication: () => import("../deduplication-DTY4VICH.js").then((m) => m.default),
45
- design: () => import("../design-72XM3PQR.js").then((m) => m.default),
46
- document: () => import("../document-OH4T743T.js").then((m) => m.default),
47
- "email-settings": () => import("../email-settings-BSU45CNC.js").then((m) => m.default),
48
- "email-template": () => import("../email-template-VHUF3OYL.js").then((m) => m.default),
49
- entity: () => import("../entity-RBMVRPDS.js").then((m) => m.default),
50
- "entity-mapping": () => import("../entity-mapping-7QUMDAQO.js").then((m) => m.default),
51
- environments: () => import("../environments-RM333MM3.js").then((m) => m.default),
52
- "erp-integration": () => import("../erp-integration-RBW2CSPM.js").then((m) => m.default),
53
- "event-catalog": () => import("../event-catalog-APQS5GOU.js").then((m) => m.default),
54
- file: () => import("../file-SU2T5RF6.js").then((m) => m.default),
55
- iban: () => import("../iban-XRAJ3QJA.js").then((m) => m.default),
56
- journey: () => import("../journey-SRK5MDRQ.js").then((m) => m.default),
57
- kanban: () => import("../kanban-2IDQXJ4R.js").then((m) => m.default),
58
- message: () => import("../message-TV7TZI2Y.js").then((m) => m.default),
59
- metering: () => import("../metering-LHBESUA2.js").then((m) => m.default),
60
- notes: () => import("../notes-3KTVUFIQ.js").then((m) => m.default),
61
- notification: () => import("../notification-6FHJXYCH.js").then((m) => m.default),
62
- organization: () => import("../organization-MBRTAROH.js").then((m) => m.default),
63
- "partner-directory": () => import("../partner-directory-NUWSXNVD.js").then((m) => m.default),
64
- permissions: () => import("../permissions-CD2OPGOC.js").then((m) => m.default),
65
- pricing: () => import("../pricing-6C6LWKER.js").then((m) => m.default),
66
- "pricing-tier": () => import("../pricing-tier-U67UYOP5.js").then((m) => m.default),
67
- purpose: () => import("../purpose-3UTD6PG2.js").then((m) => m.default),
68
- sandbox: () => import("../sandbox-AU5TUO7G.js").then((m) => m.default),
69
- submission: () => import("../submission-LXDAZTAB.js").then((m) => m.default),
70
- targeting: () => import("../targeting-YDU2O744.js").then((m) => m.default),
71
- "template-variables": () => import("../template-variables-MLSMLLYA.js").then((m) => m.default),
72
- user: () => import("../user-WMSSXQHK.js").then((m) => m.default),
73
- "validation-rules": () => import("../validation-rules-W7A4DMWK.js").then((m) => m.default),
74
- webhooks: () => import("../webhooks-QSYAFFQ2.js").then((m) => m.default),
75
- workflow: () => import("../workflow-KKAMUHYE.js").then((m) => m.default),
76
- "workflow-definition": () => import("../workflow-definition-ECXHF425.js").then((m) => m.default)
31
+ upgrade: () => import("../upgrade-KDDTJRUC.js").then((m) => m.default),
32
+ "access-token": () => import("../access-token-PTTCRMGK.js").then((m) => m.default),
33
+ address: () => import("../address-2FDPEPR6.js").then((m) => m.default),
34
+ "address-suggestions": () => import("../address-suggestions-XBEK5DDQ.js").then((m) => m.default),
35
+ "ai-agents": () => import("../ai-agents-ZY5BNVTN.js").then((m) => m.default),
36
+ app: () => import("../app-IT5FWGUK.js").then((m) => m.default),
37
+ "audit-logs": () => import("../audit-logs-FB4TE4TI.js").then((m) => m.default),
38
+ automation: () => import("../automation-JE5LDKJM.js").then((m) => m.default),
39
+ billing: () => import("../billing-GOFCP5T3.js").then((m) => m.default),
40
+ "blueprint-manifest": () => import("../blueprint-manifest-WJIQKFYK.js").then((m) => m.default),
41
+ consent: () => import("../consent-DSMWWHUL.js").then((m) => m.default),
42
+ "customer-portal": () => import("../customer-portal-IJYTJYUZ.js").then((m) => m.default),
43
+ dashboard: () => import("../dashboard-DOAX6XDG.js").then((m) => m.default),
44
+ "data-management": () => import("../data-management-C4JPPUPD.js").then((m) => m.default),
45
+ deduplication: () => import("../deduplication-7OGLZLAC.js").then((m) => m.default),
46
+ design: () => import("../design-3CAYTWFY.js").then((m) => m.default),
47
+ document: () => import("../document-NT5JOJQV.js").then((m) => m.default),
48
+ "email-settings": () => import("../email-settings-2M3WJTQS.js").then((m) => m.default),
49
+ "email-template": () => import("../email-template-F4PLBPPC.js").then((m) => m.default),
50
+ entity: () => import("../entity-32LKMZAU.js").then((m) => m.default),
51
+ "entity-mapping": () => import("../entity-mapping-OBCZDYQJ.js").then((m) => m.default),
52
+ environments: () => import("../environments-H3TBCDQE.js").then((m) => m.default),
53
+ "erp-integration": () => import("../erp-integration-UW6H55EK.js").then((m) => m.default),
54
+ "event-catalog": () => import("../event-catalog-NVAPTZ4M.js").then((m) => m.default),
55
+ file: () => import("../file-US2HR4SV.js").then((m) => m.default),
56
+ iban: () => import("../iban-7QUCOULB.js").then((m) => m.default),
57
+ journey: () => import("../journey-E5T4BZZX.js").then((m) => m.default),
58
+ kanban: () => import("../kanban-7UHU5VE6.js").then((m) => m.default),
59
+ message: () => import("../message-7KY33RJE.js").then((m) => m.default),
60
+ metering: () => import("../metering-P7BZGMY7.js").then((m) => m.default),
61
+ notes: () => import("../notes-TNJ7FPA3.js").then((m) => m.default),
62
+ notification: () => import("../notification-6KXEFVO5.js").then((m) => m.default),
63
+ organization: () => import("../organization-FF4Y3PBO.js").then((m) => m.default),
64
+ "partner-directory": () => import("../partner-directory-VH2SBAS2.js").then((m) => m.default),
65
+ permissions: () => import("../permissions-KENZ4HNY.js").then((m) => m.default),
66
+ pricing: () => import("../pricing-P6QZ77VJ.js").then((m) => m.default),
67
+ "pricing-tier": () => import("../pricing-tier-2IRJMTM6.js").then((m) => m.default),
68
+ purpose: () => import("../purpose-IHROR6LQ.js").then((m) => m.default),
69
+ sandbox: () => import("../sandbox-62XQPOU6.js").then((m) => m.default),
70
+ submission: () => import("../submission-PUWGOYQB.js").then((m) => m.default),
71
+ targeting: () => import("../targeting-QB3DFYNI.js").then((m) => m.default),
72
+ "template-variables": () => import("../template-variables-IPKRUJ4E.js").then((m) => m.default),
73
+ user: () => import("../user-2CP75TFC.js").then((m) => m.default),
74
+ "validation-rules": () => import("../validation-rules-GNI4EEG5.js").then((m) => m.default),
75
+ webhooks: () => import("../webhooks-2OWUX7UL.js").then((m) => m.default),
76
+ workflow: () => import("../workflow-WSLERVJI.js").then((m) => m.default),
77
+ "workflow-definition": () => import("../workflow-definition-FP3WKHGG.js").then((m) => m.default)
77
78
  }
78
79
  });
79
80
 
@@ -86,7 +87,7 @@ process.stderr.on("error", (err) => {
86
87
  if (err.code === "EPIPE") process.exit(0);
87
88
  throw err;
88
89
  });
89
- var VERSION = true ? "0.1.7" : (await null).default.version;
90
+ var VERSION = true ? "0.1.9" : (await null).default.version;
90
91
  var args = process.argv.slice(2);
91
92
  var completionsIdx = args.indexOf("--_completions");
92
93
  if (completionsIdx >= 0) {
@@ -156,6 +157,8 @@ function printRootHelp() {
156
157
  w(` ${GREEN}-v, --verbose${R} Verbose output (show request details)
157
158
  `);
158
159
  w(` ${GREEN}--jsonata${R} <expr> JSONata expression to transform response
160
+ `);
161
+ w(` ${GREEN}--guided${R} Prompt for all parameters interactively
159
162
  `);
160
163
  w(` ${GREEN}--no-interactive${R} Disable interactive prompts
161
164
  `);
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/blueprint-manifest.ts
@@ -23,6 +23,7 @@ var blueprint_manifest_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -31,8 +31,9 @@ var promptParam = async (name, param) => {
31
31
  const { input } = await import("@inquirer/prompts");
32
32
  const schema = param.schema;
33
33
  const defaultValue = schema?.default != null ? String(schema.default) : void 0;
34
+ const hint = param.required ? "(required)" : "(optional, press Enter to skip)";
34
35
  const result = await input({
35
- message: `${name}${param.required ? " (required)" : ""}:`,
36
+ message: `${name} ${hint}:`,
36
37
  default: defaultValue,
37
38
  validate: (value) => {
38
39
  if (param.required && !value.trim()) {
@@ -10,7 +10,7 @@ import {
10
10
  isInteractive,
11
11
  pickOperation,
12
12
  promptParam
13
- } from "./chunk-AMOFZJ5W.js";
13
+ } from "./chunk-IOLKUHUB.js";
14
14
  import {
15
15
  BG_GREEN,
16
16
  BG_RED,
@@ -79,7 +79,7 @@ var loadDefinition = async (apiName, definitionOverride) => {
79
79
 
80
80
  // src/lib/param-collector.ts
81
81
  var getOperationParams = (spec, operationId) => {
82
- for (const [_path, methods] of Object.entries(spec.paths ?? {})) {
82
+ for (const [path, methods] of Object.entries(spec.paths ?? {})) {
83
83
  if (!methods) continue;
84
84
  const pathParams = methods.parameters || [];
85
85
  for (const method of ["get", "post", "put", "patch", "delete", "head", "options"]) {
@@ -93,14 +93,18 @@ var getOperationParams = (spec, operationId) => {
93
93
  if (idx >= 0) merged[idx] = p;
94
94
  else merged.push(p);
95
95
  }
96
- return merged;
96
+ return { params: merged, pathTemplate: path };
97
97
  }
98
98
  }
99
- return [];
99
+ return { params: [], pathTemplate: "" };
100
100
  };
101
- var collectParams = (params, paramFlags, positionalArgs) => {
101
+ var collectParams = (params, paramFlags, positionalArgs, pathTemplate) => {
102
102
  const result = {};
103
- const pathParams = params.filter((p) => p.in === "path");
103
+ let pathParams = params.filter((p) => p.in === "path");
104
+ if (pathTemplate) {
105
+ const templateOrder = [...pathTemplate.matchAll(/\{([^}]+)\}/g)].map((m) => m[1]);
106
+ pathParams = templateOrder.map((name) => pathParams.find((p) => p.name === name)).filter((p) => !!p);
107
+ }
104
108
  for (let i = 0; i < positionalArgs.length && i < pathParams.length; i++) {
105
109
  result[pathParams[i].name] = parseParamValue(positionalArgs[i]);
106
110
  }
@@ -536,6 +540,8 @@ ${BOLD}epilot ${apiName} ${operationId}${RESET}`);
536
540
  w(` ${GREEN}--jsonata${RESET} <expr> JSONata expression to transform response
537
541
  `);
538
542
  w(` ${GREEN}--definition${RESET} <file> Override OpenAPI spec file/URL
543
+ `);
544
+ w(` ${GREEN}--guided${RESET} Prompt for all parameters interactively
539
545
  `);
540
546
  w(` ${GREEN}--no-interactive${RESET} Disable interactive prompts
541
547
  `);
@@ -718,7 +724,7 @@ ${BOLD}Available operations:${RESET}
718
724
  let token = resolveToken(args.token, args.profile);
719
725
  if (!token) {
720
726
  if (isInteractive({ interactive: args.interactive })) {
721
- const { promptToken } = await import("./interactive-CD3I3Q5X.js");
727
+ const { promptToken } = await import("./interactive-LSY5SADM.js");
722
728
  token = await promptToken();
723
729
  }
724
730
  if (!token) {
@@ -729,17 +735,26 @@ ${BOLD}Available operations:${RESET}
729
735
  process.exit(1);
730
736
  }
731
737
  }
732
- const opParams = getOperationParams(spec, operationId);
738
+ const { params: opParams, pathTemplate } = getOperationParams(spec, operationId);
733
739
  const positionalArgs = args._args ?? [];
734
- const collected = collectParams(opParams, args.param, positionalArgs);
735
- const missing = getMissingRequired(opParams, collected);
736
- if (missing.length > 0 && isInteractive({ interactive: args.interactive })) {
740
+ const collected = collectParams(opParams, args.param, positionalArgs, pathTemplate);
741
+ if (args.guided && isInteractive({ interactive: args.interactive })) {
737
742
  for (const param of opParams) {
738
- if (param.required && !(param.name in collected)) {
743
+ if (!(param.name in collected)) {
739
744
  const value = await promptParam(param.name, param);
740
745
  if (value) collected[param.name] = value;
741
746
  }
742
747
  }
748
+ } else {
749
+ const missing = getMissingRequired(opParams, collected);
750
+ if (missing.length > 0 && isInteractive({ interactive: args.interactive })) {
751
+ for (const param of opParams) {
752
+ if (param.required && !(param.name in collected)) {
753
+ const value = await promptParam(param.name, param);
754
+ if (value) collected[param.name] = value;
755
+ }
756
+ }
757
+ }
743
758
  }
744
759
  const stillMissing = getMissingRequired(opParams, collected);
745
760
  if (stillMissing.length > 0) {
@@ -748,8 +763,9 @@ ${BOLD}Available operations:${RESET}
748
763
  process.exit(1);
749
764
  }
750
765
  const { hasBody, isRequired } = getRequestBodyInfo(spec, operationId);
766
+ const forceBodyPrompt = args.guided && hasBody;
751
767
  let bodyTemplate;
752
- if (hasBody && isInteractive({ interactive: args.interactive })) {
768
+ if (hasBody && (forceBodyPrompt || isInteractive({ interactive: args.interactive }))) {
753
769
  const bodySchema = getBodySchema(spec, operationId);
754
770
  if (bodySchema) {
755
771
  try {
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/consent.ts
@@ -23,6 +23,7 @@ var consent_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/customer-portal.ts
@@ -23,6 +23,7 @@ var customer_portal_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/dashboard.ts
@@ -23,6 +23,7 @@ var dashboard_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/data-management.ts
@@ -23,6 +23,7 @@ var data_management_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-EU2A2ORP.js";
4
+ } from "./chunk-P5IZZW4Y.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-AMOFZJ5W.js";
7
+ import "./chunk-IOLKUHUB.js";
8
8
  import "./chunk-7ZQ666ZQ.js";
9
9
 
10
10
  // src/commands/apis/deduplication.ts
@@ -23,6 +23,7 @@ var deduplication_default = defineCommand({
23
23
  token: { type: "string", alias: "t", description: "Bearer token" },
24
24
  json: { type: "boolean", description: "Output raw JSON" },
25
25
  verbose: { type: "boolean", alias: "v", description: "Verbose output" },
26
+ guided: { type: "boolean", description: "Prompt for all parameters interactively" },
26
27
  interactive: { type: "boolean", description: "Interactive mode" },
27
28
  jsonata: { type: "string", description: "JSONata expression to transform response" },
28
29
  _ophelp: { type: "boolean", description: "Show operation help", required: false },