@epilot/cli 0.1.4 → 0.1.5

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 (57) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-token-56RMQQAV.js → access-token-BDNU3ZFC.js} +2 -2
  3. package/dist/{address-ILFNEEKQ.js → address-ZCYZYRP4.js} +2 -2
  4. package/dist/{address-suggestions-HBXNOBTY.js → address-suggestions-RP5N7NVQ.js} +2 -2
  5. package/dist/{ai-agents-3GVB2MHH.js → ai-agents-PLUGVZTI.js} +2 -2
  6. package/dist/{app-PMVGDA44.js → app-HZECIN6N.js} +2 -2
  7. package/dist/{audit-logs-SAD6TZ6T.js → audit-logs-JWKGNHPP.js} +2 -2
  8. package/dist/{auth-LMXCPY77.js → auth-O5LQZAG7.js} +1 -1
  9. package/dist/auth-login-NM74PQRP.js +332 -0
  10. package/dist/{automation-VF6AL6TZ.js → automation-73BC4PYK.js} +2 -2
  11. package/dist/{billing-LW6XV26L.js → billing-GQDSK4H2.js} +2 -2
  12. package/dist/bin/epilot.js +57 -59
  13. package/dist/{blueprint-manifest-GVONSIWC.js → blueprint-manifest-4M7DNWYE.js} +2 -2
  14. package/dist/{chunk-SACM5JJP.js → chunk-BJOXXFMA.js} +10 -9
  15. package/dist/{chunk-3FZ36LAB.js → chunk-HN4QDJOJ.js} +18 -15
  16. package/dist/{completion-YVPB2HSP.js → completion-RCVUCEMM.js} +3 -6
  17. package/dist/{consent-L7PPM2RS.js → consent-OJBGOI54.js} +2 -2
  18. package/dist/{customer-portal-FKEQLBZT.js → customer-portal-BDKNWKHA.js} +2 -2
  19. package/dist/{dashboard-N7ZV5LV7.js → dashboard-IAEU3JFY.js} +2 -2
  20. package/dist/{data-management-B2HKXR7L.js → data-management-UEDSGAKB.js} +2 -2
  21. package/dist/{deduplication-RY2NOUVL.js → deduplication-JJS3TOJ2.js} +2 -2
  22. package/dist/{design-KXZPNB7R.js → design-WKSDZFBJ.js} +2 -2
  23. package/dist/{document-OMWQI4SG.js → document-P5OL4NYY.js} +2 -2
  24. package/dist/{email-settings-IA36PUXF.js → email-settings-743JHCKS.js} +2 -2
  25. package/dist/{email-template-V56KH5HB.js → email-template-MW4IVDPM.js} +2 -2
  26. package/dist/{entity-3AYPUKDS.js → entity-K5X6FWJI.js} +2 -2
  27. package/dist/{entity-mapping-LQW3SXIQ.js → entity-mapping-QBJ2I2VR.js} +2 -2
  28. package/dist/{environments-W36TPCFO.js → environments-VUR7ME42.js} +2 -2
  29. package/dist/{erp-integration-3HQ7E5NA.js → erp-integration-A2KAIXUQ.js} +2 -2
  30. package/dist/{event-catalog-3L3622DH.js → event-catalog-6YEG5CEM.js} +2 -2
  31. package/dist/{file-OKYWWEU2.js → file-J6PHZ447.js} +2 -2
  32. package/dist/{iban-JASOQGKM.js → iban-DJSUCRU6.js} +2 -2
  33. package/dist/{interactive-5J6X74Q7.js → interactive-XXYFAJEI.js} +1 -1
  34. package/dist/{journey-ITMLYX23.js → journey-QJZKU3PZ.js} +2 -2
  35. package/dist/{kanban-JDRCIYF6.js → kanban-ZF4IIG7Q.js} +2 -2
  36. package/dist/{message-NI45JYMQ.js → message-WH4GD5SC.js} +2 -2
  37. package/dist/{metering-J6L5IPRJ.js → metering-FCWUZ2TC.js} +2 -2
  38. package/dist/{notes-WSEYYM2I.js → notes-KKVPGK7K.js} +2 -2
  39. package/dist/{notification-GOGQMIRR.js → notification-4MVAZTRP.js} +2 -2
  40. package/dist/{organization-IFUJHPGJ.js → organization-2UT2KFMB.js} +2 -2
  41. package/dist/{partner-directory-O5HSDE2K.js → partner-directory-SUNW4XN7.js} +2 -2
  42. package/dist/{permissions-7MMSNXB5.js → permissions-36VGB4BQ.js} +2 -2
  43. package/dist/{pricing-Z7HT4ROJ.js → pricing-RCNFEEHO.js} +2 -2
  44. package/dist/{pricing-tier-MMWT57MJ.js → pricing-tier-MNCLLXD5.js} +2 -2
  45. package/dist/{purpose-BGXEOLJ7.js → purpose-3JN63WTQ.js} +2 -2
  46. package/dist/{sandbox-PQW5425Q.js → sandbox-C676YDRV.js} +2 -2
  47. package/dist/{submission-5OFXHA3T.js → submission-5XTNMMCK.js} +2 -2
  48. package/dist/{targeting-ESL32NRT.js → targeting-C52KV6IW.js} +2 -2
  49. package/dist/{template-variables-DHSWLYWH.js → template-variables-5SKJEJF4.js} +2 -2
  50. package/dist/{upgrade-GNXLL2NI.js → upgrade-VJCKIUNZ.js} +1 -1
  51. package/dist/{user-HCHAYBZU.js → user-DYAR3N6L.js} +2 -2
  52. package/dist/{validation-rules-CQRPRNDS.js → validation-rules-LDAOUPOO.js} +2 -2
  53. package/dist/{webhooks-OOLV3K4A.js → webhooks-MT2P33A2.js} +2 -2
  54. package/dist/{workflow-GHNKO7IJ.js → workflow-YGWGE6L4.js} +2 -2
  55. package/dist/{workflow-definition-XPEHPQVQ.js → workflow-definition-JG54ZWGL.js} +2 -2
  56. package/package.json +1 -1
  57. package/dist/auth-login-J2R6SME7.js +0 -194
package/README.md CHANGED
@@ -16,7 +16,7 @@ npm install -g @epilot/cli # scoped package (same thing)
16
16
 
17
17
  <!-- usage-help -->
18
18
  ```
19
- epilot v0.1.4 — CLI for epilot APIs
19
+ epilot v0.1.5 — CLI for epilot APIs
20
20
 
21
21
  USAGE
22
22
  epilot <api> <operationId> [params...] [flags]
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/access-token.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/address.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/address-suggestions.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/ai-agents.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/app.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/audit-logs.ts
@@ -21,7 +21,7 @@ var auth_default = defineCommand({
21
21
  description: "Manage authentication"
22
22
  },
23
23
  subCommands: {
24
- login: () => import("./auth-login-J2R6SME7.js").then((m) => m.default),
24
+ login: () => import("./auth-login-NM74PQRP.js").then((m) => m.default),
25
25
  token: () => import("./auth-token-VSNRXUBI.js").then((m) => m.default),
26
26
  logout: defineCommand({
27
27
  meta: { name: "logout", description: "Remove stored credentials" },
@@ -0,0 +1,332 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ saveCredentials
4
+ } from "./chunk-RSA7K5HB.js";
5
+ import "./chunk-PDMWUCWD.js";
6
+ import {
7
+ BOLD,
8
+ CYAN,
9
+ DIM,
10
+ GREEN,
11
+ RED,
12
+ RESET,
13
+ YELLOW
14
+ } from "./chunk-6RBLA5YE.js";
15
+
16
+ // src/commands/auth-login.ts
17
+ import { defineCommand } from "citty";
18
+ import { randomBytes } from "crypto";
19
+ import { createServer } from "http";
20
+ var auth_login_default = defineCommand({
21
+ meta: { name: "login", description: "Authenticate with epilot" },
22
+ args: {
23
+ token: { type: "string", description: "Manually provide a token instead of browser login" },
24
+ profile: { type: "string", description: "Save credentials to this profile" }
25
+ },
26
+ run: async ({ args }) => {
27
+ const profileName = args.profile || process.env.EPILOT_PROFILE;
28
+ if (args.token) {
29
+ saveCredentials({ token: args.token }, profileName);
30
+ const suffix = profileName ? ` to profile "${profileName}"` : "";
31
+ process.stdout.write(`${GREEN}Token saved${suffix}.${RESET}
32
+ `);
33
+ return;
34
+ }
35
+ if (!process.stdin.isTTY) {
36
+ process.stderr.write(`${RED}Browser login requires an interactive terminal.${RESET}
37
+ `);
38
+ process.stderr.write(
39
+ `Use ${BOLD}epilot auth login --token <token>${RESET} or ${BOLD}epilot auth token${RESET} instead.
40
+ `
41
+ );
42
+ process.exit(1);
43
+ }
44
+ const token = await browserLogin(profileName);
45
+ if (token) {
46
+ process.stdout.write(`${GREEN}${BOLD}Login successful!${RESET}
47
+ `);
48
+ } else {
49
+ process.stderr.write(`${RED}Login failed or was cancelled.${RESET}
50
+ `);
51
+ process.exit(1);
52
+ }
53
+ }
54
+ });
55
+ var browserLogin = async (profileName) => {
56
+ const state = randomBytes(32).toString("hex");
57
+ const verificationCode = randomBytes(3).toString("hex").toUpperCase();
58
+ const suffix = profileName ? ` ${DIM}(profile: ${profileName})${RESET}` : "";
59
+ process.stdout.write(`
60
+ ${BOLD}epilot CLI Login${RESET}${suffix}
61
+
62
+ `);
63
+ process.stdout.write("This will open your browser to authenticate with epilot.\n");
64
+ process.stdout.write("\n");
65
+ process.stdout.write(` ${YELLOW}Verification code: ${BOLD}${verificationCode}${RESET}
66
+ `);
67
+ process.stdout.write("\n");
68
+ process.stdout.write(`${DIM}Verify this code matches what is shown in your browser after login.${RESET}
69
+ `);
70
+ process.stdout.write(`${DIM}This ensures you are logging into the correct CLI session.${RESET}
71
+ `);
72
+ process.stdout.write("\n");
73
+ const { confirm } = await import("@inquirer/prompts");
74
+ const proceed = await confirm({ message: "Open browser to log in?", default: true });
75
+ if (!proceed) {
76
+ return null;
77
+ }
78
+ return new Promise((resolve) => {
79
+ let settled = false;
80
+ let timeoutId;
81
+ let tokenPromptController;
82
+ const done = (token) => {
83
+ if (settled) return;
84
+ settled = true;
85
+ clearTimeout(timeoutId);
86
+ tokenPromptController?.abort();
87
+ server.close();
88
+ resolve(token);
89
+ };
90
+ const onServerListening = async () => {
91
+ const address = server.address();
92
+ if (!address || typeof address === "string") {
93
+ done(null);
94
+ return;
95
+ }
96
+ const port = address.port;
97
+ const callbackUrl = `http://localhost:${port}/callback`;
98
+ const loginUrl = `https://portal.epilot.cloud/login?cli_callback=${encodeURIComponent(callbackUrl)}&state=${state}&code=${verificationCode}`;
99
+ process.stdout.write(`
100
+ ${DIM}Login URL: ${loginUrl}${RESET}
101
+
102
+ `);
103
+ try {
104
+ const open = (await import("open")).default;
105
+ await open(loginUrl);
106
+ process.stdout.write(`${CYAN}Browser opened.${RESET} Waiting for authentication...
107
+ `);
108
+ } catch {
109
+ process.stdout.write(`Could not open browser. Please visit this URL manually:
110
+
111
+ ${loginUrl}
112
+
113
+ `);
114
+ }
115
+ process.stdout.write(`
116
+ ${DIM}Or paste a token manually:${RESET}
117
+ `);
118
+ try {
119
+ const { password } = await import("@inquirer/prompts");
120
+ tokenPromptController = new AbortController();
121
+ const token = await password(
122
+ { message: "Token:", theme: { prefix: "" } },
123
+ { signal: tokenPromptController.signal }
124
+ );
125
+ if (token?.trim()) {
126
+ saveCredentials({ token: token.trim() }, profileName);
127
+ done(token.trim());
128
+ }
129
+ } catch {
130
+ }
131
+ timeoutId = setTimeout(
132
+ () => {
133
+ process.stderr.write(`
134
+ ${RED}Login timed out after 5 minutes.${RESET}
135
+ `);
136
+ done(null);
137
+ },
138
+ 5 * 60 * 1e3
139
+ );
140
+ timeoutId.unref();
141
+ };
142
+ const server = createServer((req, res) => {
143
+ const url = new URL(req.url, "http://localhost");
144
+ if (url.pathname === "/callback") {
145
+ const token = url.searchParams.get("token");
146
+ const returnedState = url.searchParams.get("state");
147
+ const orgId = url.searchParams.get("org_id");
148
+ const userId = url.searchParams.get("user_id");
149
+ const name = url.searchParams.get("name");
150
+ if (returnedState && returnedState !== state) {
151
+ res.writeHead(403, { "Content-Type": "text/html; charset=utf-8" });
152
+ res.end(
153
+ renderPage("Login Failed", "Invalid session. This request may not have originated from your CLI.", "error")
154
+ );
155
+ return;
156
+ }
157
+ if (!returnedState) {
158
+ process.stderr.write(
159
+ `${YELLOW}Warning: Login portal did not return state parameter. CSRF protection is not active.${RESET}
160
+ `
161
+ );
162
+ }
163
+ if (token) {
164
+ saveCredentials(
165
+ {
166
+ token,
167
+ org_id: orgId ?? void 0,
168
+ user_id: userId ?? void 0,
169
+ name: name ?? void 0
170
+ },
171
+ profileName
172
+ );
173
+ res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
174
+ res.end(
175
+ renderPage(
176
+ "Login Successful",
177
+ "You can close this tab and return to your terminal.",
178
+ "success",
179
+ verificationCode
180
+ )
181
+ );
182
+ done(token);
183
+ } else {
184
+ res.writeHead(400, { "Content-Type": "text/html; charset=utf-8" });
185
+ res.end(renderPage("Login Failed", "No token was received. Please try again.", "error"));
186
+ done(null);
187
+ }
188
+ } else {
189
+ res.writeHead(404);
190
+ res.end();
191
+ }
192
+ });
193
+ server.unref();
194
+ server.listen(0, () => {
195
+ onServerListening().catch(() => done(null));
196
+ });
197
+ });
198
+ };
199
+ var renderPage = (title, message, status, code) => {
200
+ const icon = status === "success" ? "\u2713" : "\u2715";
201
+ const iconBg = status === "success" ? "#e8f5e9" : "#ffeef0";
202
+ const iconColor = status === "success" ? "#2e7d32" : "#c62828";
203
+ const titleColor = status === "success" ? "#1b5e20" : "#b71c1c";
204
+ const codeBlock = code ? `
205
+ <div class="code-section">
206
+ <p class="code-label">Verification code</p>
207
+ <div class="code">${escapeHtml(code)}</div>
208
+ </div>` : "";
209
+ return `<!DOCTYPE html>
210
+ <html lang="en">
211
+ <head>
212
+ <meta charset="utf-8" />
213
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
214
+ <title>${escapeHtml(title)} \u2014 epilot CLI</title>
215
+ <link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;900&display=swap" rel="stylesheet" />
216
+ <style>
217
+ * { margin: 0; padding: 0; box-sizing: border-box; }
218
+ body {
219
+ font-family: 'Nunito Sans', 'Helvetica Neue', Arial, sans-serif;
220
+ background: #f0f4f8;
221
+ color: #172b4d;
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: center;
225
+ min-height: 100vh;
226
+ padding: 2rem;
227
+ }
228
+ .card {
229
+ background: #fff;
230
+ border-radius: 24px;
231
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
232
+ padding: 3rem 2.5rem;
233
+ max-width: 420px;
234
+ width: 100%;
235
+ text-align: center;
236
+ }
237
+ .logo {
238
+ margin-bottom: 2rem;
239
+ }
240
+ .logo svg {
241
+ height: 32px;
242
+ width: auto;
243
+ }
244
+ .icon-circle {
245
+ width: 96px;
246
+ height: 96px;
247
+ border-radius: 50%;
248
+ background: ${iconBg};
249
+ display: flex;
250
+ align-items: center;
251
+ justify-content: center;
252
+ margin: 0 auto 1.5rem;
253
+ }
254
+ .icon {
255
+ font-size: 48px;
256
+ color: ${iconColor};
257
+ line-height: 1;
258
+ }
259
+ h1 {
260
+ font-size: 28px;
261
+ font-weight: 900;
262
+ color: ${titleColor};
263
+ margin-bottom: 0.5rem;
264
+ }
265
+ .message {
266
+ font-size: 16px;
267
+ color: #5e6c84;
268
+ line-height: 1.5;
269
+ margin-bottom: 1.5rem;
270
+ }
271
+ .code-section {
272
+ margin: 1.5rem 0;
273
+ }
274
+ .code-label {
275
+ font-size: 13px;
276
+ color: #8993a4;
277
+ margin-bottom: 0.5rem;
278
+ text-transform: uppercase;
279
+ letter-spacing: 0.05em;
280
+ }
281
+ .code {
282
+ font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;
283
+ font-size: 28px;
284
+ font-weight: 700;
285
+ letter-spacing: 0.25em;
286
+ color: #172b4d;
287
+ background: #f4f5f7;
288
+ border: 2px solid #dfe1e6;
289
+ border-radius: 12px;
290
+ padding: 0.75rem 1.5rem;
291
+ display: inline-block;
292
+ }
293
+ .footer {
294
+ font-size: 13px;
295
+ color: #8993a4;
296
+ margin-top: 1.5rem;
297
+ }
298
+ .footer a {
299
+ color: #005eb4;
300
+ text-decoration: none;
301
+ }
302
+ </style>
303
+ </head>
304
+ <body>
305
+ <div class="card">
306
+ <div class="logo">
307
+ <svg viewBox="0 0 552 138" fill="none" xmlns="http://www.w3.org/2000/svg">
308
+ <path d="M71.19 95.55c-12.85 0-24.72-5.46-33.46-14.97l-.41-.45-19.59 16.08.45.52C30.37 110.64 49.8 120 71.19 120c34.26 0 59.25-24.7 59.25-58.76h-25.53c0 20.42-14.32 34.31-33.72 34.31Z" fill="#005EB4"/>
309
+ <path d="M71.19 36.42c13.56 0 24.8 5.32 33.36 15.04l.41.46 19.52-16.15-.44-.52C111.8 21.27 92.34 12 71.19 12 36.41 12 12 36.7 12 70.63h25.53c0-20.3 14.32-34.21 33.66-34.21Z" fill="#005EB4"/>
310
+ <path d="M190.05 96.74V76.2h38.82V58.01h-38.82V42.44h43.48V24.04h-64.12v91.32h66.46V96.74h-45.82Z" fill="#005EB4"/>
311
+ <path d="M287.9 45.04c-6.53 0-12.37 1.73-17.36 5.15V24.04h-20v91.32h20v-4.3c4.99 3.63 10.96 5.49 17.75 5.49 18.74 0 33.01-15.58 33.01-36.09 0-20.25-14.54-35.42-33.4-35.42Zm-2.53 53.5c-9.62 0-16.63-7.52-16.63-17.86 0-10.07 7-17.53 16.29-17.53 9.62 0 16.63 7.46 16.63 17.53 0 10.34-7.01 17.86-16.29 17.86Z" fill="#005EB4"/>
312
+ <path d="M335.35 24.04h20.64v91.32h-20.64V24.04Z" fill="#005EB4"/>
313
+ <path d="M397.25 45.04c-20.78 0-36.74 15.37-36.74 35.42 0 20.32 15.96 36.09 36.39 36.09 20.78 0 36.74-15.5 36.74-35.82 0-20.45-15.97-35.69-36.39-35.69Zm-.18 53.5c-9.48 0-16.11-7.52-16.11-18.28 0-10.14 6.86-17.25 16.65-17.25 9.41 0 16.04 7.11 16.04 17.25 0 10.76-6.86 18.28-16.58 18.28Z" fill="#005EB4"/>
314
+ <path d="M460.2 62.87v-16.4h-13.06v68.89h20.64V79.07c0-9.35 5.73-14.7 14.18-14.7h6.53V45.04h-4.62c-10.3 0-18.68 5.73-23.67 17.83Z" fill="#005EB4"/>
315
+ <circle cx="526" cy="90" r="14" fill="#FF7043"/>
316
+ </svg>
317
+ </div>
318
+ <div class="icon-circle">
319
+ <span class="icon">${icon}</span>
320
+ </div>
321
+ <h1>${escapeHtml(title)}</h1>
322
+ <p class="message">${escapeHtml(message)}</p>
323
+ ${codeBlock}
324
+ <p class="footer">Powered by <a href="https://epilot.cloud" target="_blank" rel="noopener">epilot</a></p>
325
+ </div>
326
+ </body>
327
+ </html>`;
328
+ };
329
+ var escapeHtml = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
330
+ export {
331
+ auth_login_default as default
332
+ };
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/automation.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/billing.ts
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
11
11
  var main = defineCommand({
12
12
  meta: {
13
13
  name: "epilot",
14
- version: "0.1.4",
14
+ version: "0.1.5",
15
15
  description: "CLI for epilot APIs"
16
16
  },
17
17
  args: {
@@ -24,65 +24,65 @@ var main = defineCommand({
24
24
  jsonata: { type: "string", description: "JSONata expression" }
25
25
  },
26
26
  subCommands: {
27
- auth: () => import("../auth-LMXCPY77.js").then((m) => m.default),
27
+ auth: () => import("../auth-O5LQZAG7.js").then((m) => m.default),
28
28
  profile: () => import("../profile-MZ3VK7PO.js").then((m) => m.default),
29
- completion: () => import("../completion-YVPB2HSP.js").then((m) => m.default),
30
- upgrade: () => import("../upgrade-GNXLL2NI.js").then((m) => m.default),
31
- "access-token": () => import("../access-token-56RMQQAV.js").then((m) => m.default),
32
- address: () => import("../address-ILFNEEKQ.js").then((m) => m.default),
33
- "address-suggestions": () => import("../address-suggestions-HBXNOBTY.js").then((m) => m.default),
34
- "ai-agents": () => import("../ai-agents-3GVB2MHH.js").then((m) => m.default),
35
- app: () => import("../app-PMVGDA44.js").then((m) => m.default),
36
- "audit-logs": () => import("../audit-logs-SAD6TZ6T.js").then((m) => m.default),
37
- automation: () => import("../automation-VF6AL6TZ.js").then((m) => m.default),
38
- billing: () => import("../billing-LW6XV26L.js").then((m) => m.default),
39
- "blueprint-manifest": () => import("../blueprint-manifest-GVONSIWC.js").then((m) => m.default),
40
- consent: () => import("../consent-L7PPM2RS.js").then((m) => m.default),
41
- "customer-portal": () => import("../customer-portal-FKEQLBZT.js").then((m) => m.default),
42
- dashboard: () => import("../dashboard-N7ZV5LV7.js").then((m) => m.default),
43
- "data-management": () => import("../data-management-B2HKXR7L.js").then((m) => m.default),
44
- deduplication: () => import("../deduplication-RY2NOUVL.js").then((m) => m.default),
45
- design: () => import("../design-KXZPNB7R.js").then((m) => m.default),
46
- document: () => import("../document-OMWQI4SG.js").then((m) => m.default),
47
- "email-settings": () => import("../email-settings-IA36PUXF.js").then((m) => m.default),
48
- "email-template": () => import("../email-template-V56KH5HB.js").then((m) => m.default),
49
- entity: () => import("../entity-3AYPUKDS.js").then((m) => m.default),
50
- "entity-mapping": () => import("../entity-mapping-LQW3SXIQ.js").then((m) => m.default),
51
- environments: () => import("../environments-W36TPCFO.js").then((m) => m.default),
52
- "erp-integration": () => import("../erp-integration-3HQ7E5NA.js").then((m) => m.default),
53
- "event-catalog": () => import("../event-catalog-3L3622DH.js").then((m) => m.default),
54
- file: () => import("../file-OKYWWEU2.js").then((m) => m.default),
55
- iban: () => import("../iban-JASOQGKM.js").then((m) => m.default),
56
- journey: () => import("../journey-ITMLYX23.js").then((m) => m.default),
57
- kanban: () => import("../kanban-JDRCIYF6.js").then((m) => m.default),
58
- message: () => import("../message-NI45JYMQ.js").then((m) => m.default),
59
- metering: () => import("../metering-J6L5IPRJ.js").then((m) => m.default),
60
- notes: () => import("../notes-WSEYYM2I.js").then((m) => m.default),
61
- notification: () => import("../notification-GOGQMIRR.js").then((m) => m.default),
62
- organization: () => import("../organization-IFUJHPGJ.js").then((m) => m.default),
63
- "partner-directory": () => import("../partner-directory-O5HSDE2K.js").then((m) => m.default),
64
- permissions: () => import("../permissions-7MMSNXB5.js").then((m) => m.default),
65
- pricing: () => import("../pricing-Z7HT4ROJ.js").then((m) => m.default),
66
- "pricing-tier": () => import("../pricing-tier-MMWT57MJ.js").then((m) => m.default),
67
- purpose: () => import("../purpose-BGXEOLJ7.js").then((m) => m.default),
68
- sandbox: () => import("../sandbox-PQW5425Q.js").then((m) => m.default),
69
- submission: () => import("../submission-5OFXHA3T.js").then((m) => m.default),
70
- targeting: () => import("../targeting-ESL32NRT.js").then((m) => m.default),
71
- "template-variables": () => import("../template-variables-DHSWLYWH.js").then((m) => m.default),
72
- user: () => import("../user-HCHAYBZU.js").then((m) => m.default),
73
- "validation-rules": () => import("../validation-rules-CQRPRNDS.js").then((m) => m.default),
74
- webhooks: () => import("../webhooks-OOLV3K4A.js").then((m) => m.default),
75
- workflow: () => import("../workflow-GHNKO7IJ.js").then((m) => m.default),
76
- "workflow-definition": () => import("../workflow-definition-XPEHPQVQ.js").then((m) => m.default)
29
+ completion: () => import("../completion-RCVUCEMM.js").then((m) => m.default),
30
+ upgrade: () => import("../upgrade-VJCKIUNZ.js").then((m) => m.default),
31
+ "access-token": () => import("../access-token-BDNU3ZFC.js").then((m) => m.default),
32
+ address: () => import("../address-ZCYZYRP4.js").then((m) => m.default),
33
+ "address-suggestions": () => import("../address-suggestions-RP5N7NVQ.js").then((m) => m.default),
34
+ "ai-agents": () => import("../ai-agents-PLUGVZTI.js").then((m) => m.default),
35
+ app: () => import("../app-HZECIN6N.js").then((m) => m.default),
36
+ "audit-logs": () => import("../audit-logs-JWKGNHPP.js").then((m) => m.default),
37
+ automation: () => import("../automation-73BC4PYK.js").then((m) => m.default),
38
+ billing: () => import("../billing-GQDSK4H2.js").then((m) => m.default),
39
+ "blueprint-manifest": () => import("../blueprint-manifest-4M7DNWYE.js").then((m) => m.default),
40
+ consent: () => import("../consent-OJBGOI54.js").then((m) => m.default),
41
+ "customer-portal": () => import("../customer-portal-BDKNWKHA.js").then((m) => m.default),
42
+ dashboard: () => import("../dashboard-IAEU3JFY.js").then((m) => m.default),
43
+ "data-management": () => import("../data-management-UEDSGAKB.js").then((m) => m.default),
44
+ deduplication: () => import("../deduplication-JJS3TOJ2.js").then((m) => m.default),
45
+ design: () => import("../design-WKSDZFBJ.js").then((m) => m.default),
46
+ document: () => import("../document-P5OL4NYY.js").then((m) => m.default),
47
+ "email-settings": () => import("../email-settings-743JHCKS.js").then((m) => m.default),
48
+ "email-template": () => import("../email-template-MW4IVDPM.js").then((m) => m.default),
49
+ entity: () => import("../entity-K5X6FWJI.js").then((m) => m.default),
50
+ "entity-mapping": () => import("../entity-mapping-QBJ2I2VR.js").then((m) => m.default),
51
+ environments: () => import("../environments-VUR7ME42.js").then((m) => m.default),
52
+ "erp-integration": () => import("../erp-integration-A2KAIXUQ.js").then((m) => m.default),
53
+ "event-catalog": () => import("../event-catalog-6YEG5CEM.js").then((m) => m.default),
54
+ file: () => import("../file-J6PHZ447.js").then((m) => m.default),
55
+ iban: () => import("../iban-DJSUCRU6.js").then((m) => m.default),
56
+ journey: () => import("../journey-QJZKU3PZ.js").then((m) => m.default),
57
+ kanban: () => import("../kanban-ZF4IIG7Q.js").then((m) => m.default),
58
+ message: () => import("../message-WH4GD5SC.js").then((m) => m.default),
59
+ metering: () => import("../metering-FCWUZ2TC.js").then((m) => m.default),
60
+ notes: () => import("../notes-KKVPGK7K.js").then((m) => m.default),
61
+ notification: () => import("../notification-4MVAZTRP.js").then((m) => m.default),
62
+ organization: () => import("../organization-2UT2KFMB.js").then((m) => m.default),
63
+ "partner-directory": () => import("../partner-directory-SUNW4XN7.js").then((m) => m.default),
64
+ permissions: () => import("../permissions-36VGB4BQ.js").then((m) => m.default),
65
+ pricing: () => import("../pricing-RCNFEEHO.js").then((m) => m.default),
66
+ "pricing-tier": () => import("../pricing-tier-MNCLLXD5.js").then((m) => m.default),
67
+ purpose: () => import("../purpose-3JN63WTQ.js").then((m) => m.default),
68
+ sandbox: () => import("../sandbox-C676YDRV.js").then((m) => m.default),
69
+ submission: () => import("../submission-5XTNMMCK.js").then((m) => m.default),
70
+ targeting: () => import("../targeting-C52KV6IW.js").then((m) => m.default),
71
+ "template-variables": () => import("../template-variables-5SKJEJF4.js").then((m) => m.default),
72
+ user: () => import("../user-DYAR3N6L.js").then((m) => m.default),
73
+ "validation-rules": () => import("../validation-rules-LDAOUPOO.js").then((m) => m.default),
74
+ webhooks: () => import("../webhooks-MT2P33A2.js").then((m) => m.default),
75
+ workflow: () => import("../workflow-YGWGE6L4.js").then((m) => m.default),
76
+ "workflow-definition": () => import("../workflow-definition-JG54ZWGL.js").then((m) => m.default)
77
77
  }
78
78
  });
79
79
 
80
80
  // bin/epilot.ts
81
- var VERSION = true ? "0.1.4" : (await null).default.version;
81
+ var VERSION = true ? "0.1.5" : (await null).default.version;
82
82
  var args = process.argv.slice(2);
83
83
  var completionsIdx = args.indexOf("--_completions");
84
84
  if (completionsIdx >= 0) {
85
- const { handleCompletions } = await import("../completion-YVPB2HSP.js");
85
+ const { handleCompletions } = await import("../completion-RCVUCEMM.js");
86
86
  handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
87
87
  process.exit(0);
88
88
  }
@@ -98,19 +98,17 @@ if (hasNoSubcommand && (hasHelp || args.length === 0)) {
98
98
  printRootHelp();
99
99
  process.exit(0);
100
100
  }
101
- if (hasHelp && args.length >= 2) {
101
+ if (hasHelp) {
102
102
  const apiArg = args.find((a) => !a.startsWith("-"));
103
103
  const isApi = apiArg && API_LIST.some((api) => api.kebabName === apiArg);
104
104
  if (isApi) {
105
105
  const positionals = args.filter((a) => !a.startsWith("-"));
106
106
  const operationId = positionals[1];
107
+ const filteredArgs = args.filter((a) => a !== "--help" && a !== "-h");
107
108
  if (operationId) {
108
- process.argv = [
109
- process.argv[0],
110
- process.argv[1],
111
- ...args.filter((a) => a !== "--help" && a !== "-h"),
112
- "--_ophelp"
113
- ];
109
+ process.argv = [process.argv[0], process.argv[1], ...filteredArgs, "--_ophelp"];
110
+ } else {
111
+ process.argv = [process.argv[0], process.argv[1], ...filteredArgs];
114
112
  }
115
113
  }
116
114
  }
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-SACM5JJP.js";
4
+ } from "./chunk-BJOXXFMA.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
- import "./chunk-3FZ36LAB.js";
7
+ import "./chunk-HN4QDJOJ.js";
8
8
  import "./chunk-6RBLA5YE.js";
9
9
 
10
10
  // src/commands/apis/blueprint-manifest.ts