@keystrokehq/cli 0.0.2 → 0.0.4

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 (95) hide show
  1. package/README.md +10 -0
  2. package/dist/{accept.handler-DFtM0IuO.mjs → accept.handler-CudtwdDV.mjs} +1 -1
  3. package/dist/{admin-D_7tenRC.mjs → admin-ByNq50FH.mjs} +9 -9
  4. package/dist/{agents-DMEo-6QB.mjs → agents-DbekD_Vx.mjs} +2 -2
  5. package/dist/{api-keys-BThGvtdn.mjs → api-keys-kvwq9Jb4.mjs} +5 -5
  6. package/dist/{auth-Byry35LJ.mjs → auth-DS3C07ib.mjs} +4 -4
  7. package/dist/{auth.handler-BBPObKwk.mjs → auth.handler-CbhiLOG1.mjs} +80 -5
  8. package/dist/{build-agents-DfbiMZ_e-CRnzruSu.mjs → build-agents-DfbiMZ_e-in-if4_C.mjs} +2 -2
  9. package/dist/{build-tasks-O1jYtlv1-Y65uGWuz.mjs → build-tasks-O1jYtlv1-B2Dm4hFj.mjs} +2 -2
  10. package/dist/{build-workflows-3fdvdHHf-DJ_lH1NH.mjs → build-workflows-3fdvdHHf-Bg5XV7hM.mjs} +2 -2
  11. package/dist/{build.handler-Tb3IpABI.mjs → build.handler-BzQRnkC3.mjs} +1 -1
  12. package/dist/{clear.handler-YS8gPriq.mjs → clear.handler-U9n_V1IM.mjs} +1 -1
  13. package/dist/{commander-DZ3F3CVq.mjs → commander-pxSPDCZ4.mjs} +1 -1
  14. package/dist/{connect-DpQgYg8z.mjs → connect-B_uc0wqI.mjs} +2 -2
  15. package/dist/{connect.handler-DuRr_yyN.mjs → connect.handler-VJgm2ZQG.mjs} +1 -1
  16. package/dist/{context-Y1f1hGYy.mjs → context-D-YKFNxL.mjs} +1 -1
  17. package/dist/{create.handler-uNG3I4wS.mjs → create.handler-d9nfcKfp.mjs} +1 -1
  18. package/dist/{credentials-UpgEcaub.mjs → credentials-CL_PCuhM.mjs} +4 -4
  19. package/dist/{current-deployment-workflow-M8GEIHxv.mjs → current-deployment-workflow-BRYuEubW.mjs} +1 -1
  20. package/dist/{current.handler-BqPUKCvn.mjs → current.handler-vJG2Dohx.mjs} +1 -1
  21. package/dist/{delete.handler-CJTHVZaz.mjs → delete.handler-RsYTkJLV.mjs} +1 -1
  22. package/dist/{deploy-Gw0KPrkf.mjs → deploy-BE3F62Mz.mjs} +2 -2
  23. package/dist/{deploy.handler-zzFAt7pp.mjs → deploy.handler-Dlyd8Zqs.mjs} +8 -8
  24. package/dist/{diff.handler--zdSkUnK.mjs → diff.handler-CH0xP8pk.mjs} +2 -2
  25. package/dist/{env.handler-d4sJ706C.mjs → env.handler-BkCO2vjR.mjs} +2 -2
  26. package/dist/{init-C0sps8R7.mjs → init-CWFlBuxT.mjs} +2 -2
  27. package/dist/{init.handler-DSW6XFZn.mjs → init.handler-HRdgViGH.mjs} +1 -1
  28. package/dist/{inspect.handler-DbN0ZVTh.mjs → inspect.handler-DRMKUJsh.mjs} +2 -2
  29. package/dist/{integration-catalog-DFlytKJS.mjs → integration-catalog-ClP7YGqM.mjs} +1 -1
  30. package/dist/{integrations-Dcadds2b.mjs → integrations-CoBzLNEe.mjs} +3 -3
  31. package/dist/{invites-DvsxTRAb.mjs → invites-BmNy1RHp.mjs} +4 -4
  32. package/dist/{invites.list.handler-B5quln3m.mjs → invites.list.handler-ICP2V3p4.mjs} +1 -1
  33. package/dist/{invites.resend.handler-CSpj7bQ5.mjs → invites.resend.handler-BGaTTMka.mjs} +1 -1
  34. package/dist/{invites.revoke.handler-_hdEkBdO.mjs → invites.revoke.handler-DBwF5Lxc.mjs} +1 -1
  35. package/dist/keystroke.d.mts +0 -0
  36. package/dist/keystroke.mjs +27 -19
  37. package/dist/{list.handler-08GY-wnx.mjs → list.handler-B2bN8NsQ.mjs} +1 -1
  38. package/dist/{list.handler-BRq-nScx.mjs → list.handler-BXTGPazY.mjs} +1 -1
  39. package/dist/{list.handler-DSPr0OxS.mjs → list.handler-BjihvxHn.mjs} +1 -1
  40. package/dist/{list.handler-CWO6DExh.mjs → list.handler-Vv9KmhB9.mjs} +2 -2
  41. package/dist/{list.handler-DLl8ca6F.mjs → list.handler-b4qYQtwn.mjs} +1 -1
  42. package/dist/{list.handler-20v4uRMk.mjs → list.handler-rnyzLJDy.mjs} +1 -1
  43. package/dist/listen-DVV1fp5c.mjs +25 -0
  44. package/dist/listen.handler-CyFpUSOu.mjs +212 -0
  45. package/dist/{logs-D_48skmi.mjs → logs-BRticZ00.mjs} +3 -3
  46. package/dist/{logs.handler-4ctMVYMj.mjs → logs.handler-CsnG7Bb0.mjs} +2 -2
  47. package/dist/{members.add.handler-Dq_giQ8g.mjs → members.add.handler-CH0RhbgE.mjs} +1 -1
  48. package/dist/{members.invite.handler-v404bUsq.mjs → members.invite.handler-CYB7RQ9A.mjs} +1 -1
  49. package/dist/{members.list.handler-D6TE0yp8.mjs → members.list.handler-DrDtmMei.mjs} +1 -1
  50. package/dist/{members.remove.handler-BhQ3cyeR.mjs → members.remove.handler-uGoZt2Me.mjs} +1 -1
  51. package/dist/{members.update.handler-BVy2cv1K.mjs → members.update.handler-DXCWkzOc.mjs} +1 -1
  52. package/dist/{org-CkRr-f3S.mjs → org-GdHhuSNk.mjs} +15 -15
  53. package/dist/{orgs.create.handler-swGnT2ce.mjs → orgs.create.handler-5AaPgTZV.mjs} +1 -1
  54. package/dist/{orgs.get.handler-ClAqYTH0.mjs → orgs.get.handler-BTfopRVm.mjs} +1 -1
  55. package/dist/{orgs.list.handler-D-ptz8It.mjs → orgs.list.handler-DKJgs6x0.mjs} +1 -1
  56. package/dist/{paused.handler-B3aVqw-m.mjs → paused.handler-BUifVTyQ.mjs} +1 -1
  57. package/dist/{projects-yA9AAaDM.mjs → projects-BjnCG-pc.mjs} +4 -4
  58. package/dist/{runs-B8mW4PqP.mjs → runs-2BdRfql3.mjs} +2 -2
  59. package/dist/{skills.command-DWxcc3Ui.mjs → skills.command-mMs4o12N.mjs} +3 -3
  60. package/dist/{src-J09NGJ6Z.mjs → src-CBL7AJ0H.mjs} +11 -0
  61. package/dist/{switch.handler-C4hgbhcH.mjs → switch.handler-DV0wiJP8.mjs} +1 -1
  62. package/dist/{sync-CL6zXiiA.mjs → sync-D098Vbv2.mjs} +2 -2
  63. package/dist/{sync.handler-D1uF8E8I.mjs → sync.handler-BocldSG_.mjs} +2 -2
  64. package/dist/{task-target-build-DTzz4fpG.mjs → task-target-build-Di8gflnj.mjs} +3 -3
  65. package/dist/task-target-deploy-runner.d.mts +0 -0
  66. package/dist/task-target-deploy-runner.mjs +4 -4
  67. package/dist/{test-BsTLXIPB.mjs → test-BZt0Duhs.mjs} +6 -6
  68. package/dist/{test.handler-D25kziPi.mjs → test.handler-iCUotLes.mjs} +1 -1
  69. package/dist/{trigger-artifacts-B3OCTX9K-DG-FGGJT.mjs → trigger-artifacts-B3OCTX9K-Cgt51KLh.mjs} +2 -2
  70. package/dist/{try-deploy.handler-2aX5TmLk.mjs → try-deploy.handler-YDOirkk1.mjs} +3 -3
  71. package/dist/upgrade-Bdez-X6_.mjs +41 -0
  72. package/dist/upgrade.handler-DhH_Cuza.mjs +80 -0
  73. package/dist/{upload.handler-CqProKVJ.mjs → upload.handler-BmqZAPxZ.mjs} +2 -2
  74. package/dist/{users.get.handler-C_d2GWKX.mjs → users.get.handler-uoEgEwI-.mjs} +1 -1
  75. package/dist/{users.list.handler-DXAsO8Yk.mjs → users.list.handler-DLWPOIHD.mjs} +1 -1
  76. package/dist/{users.set-role.handler-Bn_yV4RI.mjs → users.set-role.handler-BCJhTsyb.mjs} +1 -1
  77. package/dist/{validate.handler-CGD6GttR.mjs → validate.handler-ROzzUI85.mjs} +1 -1
  78. package/dist/{workflow-build-BcaIdRR6.mjs → workflow-build-DD8TLlPu.mjs} +5 -5
  79. package/dist/{workflow-bundler-BzHk73PM-Cde7cKiU.mjs → workflow-bundler-BzHk73PM-Bt-poFqX.mjs} +1 -1
  80. package/dist/{workflows-S-gbfw8f.mjs → workflows-DypSJM0t.mjs} +12 -12
  81. package/package.json +32 -31
  82. package/LICENSE +0 -21
  83. /package/dist/{build-metadata-zidV9Cai-RgG4ndIH.mjs → build-metadata-zidV9Cai-BAS0FMxT.mjs} +0 -0
  84. /package/dist/{clear-cache.handler-BEbPz5Ej.mjs → clear-cache.handler-BDV-a3ku.mjs} +0 -0
  85. /package/dist/{clear.handler-CtOZ4aRn.mjs → clear.handler-Dh6QoVO1.mjs} +0 -0
  86. /package/dist/{deploy-CdnaZY3s.mjs → deploy-B_bkUlIL.mjs} +0 -0
  87. /package/dist/{detect-env-access-CwkOYeYM-h2W05D_Q.mjs → detect-env-access-CwkOYeYM-CsrSOCcj.mjs} +0 -0
  88. /package/dist/{list.handler-DAiJtW20.mjs → list.handler-DO0PnyWP.mjs} +0 -0
  89. /package/dist/{logs.handler-C3QnSCaH.mjs → logs.handler-ddQu_MXN.mjs} +0 -0
  90. /package/dist/{options-Dn9t3K4a.mjs → options-BhB9qA5P.mjs} +0 -0
  91. /package/dist/{read-credential-keys-77a91T8M-CAJLnMRi.mjs → read-credential-keys-77a91T8M-aLuQvlIq.mjs} +0 -0
  92. /package/dist/{run-polling-CTzhTgyN.mjs → run-polling-CF9OeLWl.mjs} +0 -0
  93. /package/dist/{skills-sync.handler-C2faeat-.mjs → skills-sync.handler-IB73kEeA.mjs} +0 -0
  94. /package/dist/{skills.handler-8KCSF7wp.mjs → skills.handler-JauTJV1C.mjs} +0 -0
  95. /package/dist/{task-target-deploy-BPLlP__P.mjs → task-target-deploy-BzGRNDiv.mjs} +0 -0
package/README.md CHANGED
@@ -80,6 +80,7 @@ keystroke --api-key sk_... --server-url https://api.example.com workflows list
80
80
  | `keystroke agents inspect` | Inspect built agent manifests and workflow-tool metadata. |
81
81
  | `keystroke test` | Test workflows and agent-callable tools. |
82
82
  | `keystroke connect` | Connect official integrations through OAuth. |
83
+ | `keystroke listen` | Create a temporary URL and print the first captured request body. |
83
84
  | `keystroke integrations` | List available integrations and registration metadata. |
84
85
  | `keystroke credentials` | List credential sets, inspect requirements, and upload credential values. |
85
86
  | `keystroke org` | View and switch organization context. |
@@ -87,9 +88,18 @@ keystroke --api-key sk_... --server-url https://api.example.com workflows list
87
88
  | `keystroke runs inspect` | Inspect workflow and agent runs. |
88
89
  | `keystroke logs` | View or clear local CLI logs. |
89
90
  | `keystroke skills sync` | Sync installed Keystroke agent skills into editor skill folders. |
91
+ | `keystroke upgrade` | Upgrade the installed Keystroke CLI package. |
90
92
 
91
93
  Run `keystroke <command> --help` for exact arguments and flags.
92
94
 
95
+ Capture one incoming webhook or API request body:
96
+
97
+ ```bash
98
+ keystroke listen
99
+ keystroke listen --timeout 60
100
+ keystroke listen --json
101
+ ```
102
+
93
103
  ## Project Workflow
94
104
 
95
105
  Create a new project:
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { t as ui } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-q4KljAhu.mjs";
5
- import { i as requireClient } from "./context-Y1f1hGYy.mjs";
5
+ import { i as requireClient } from "./context-D-YKFNxL.mjs";
6
6
  import { n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CNC8JfZ5.mjs";
7
7
  //#region src/commands/invites/accept.handler.ts
8
8
  async function handleInvitesAccept(options, ctx) {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
4
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
4
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
5
5
  import { t as OrgRoleSchema } from "./schema-_FQrHcIS.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/admin/orgs.command.ts
@@ -28,21 +28,21 @@ function createAdminOrgsCommand() {
28
28
  description: "Manage organizations as a platform admin",
29
29
  schema: AdminOrgsListOptionsSchema,
30
30
  optionsConfig: { ...JSON_OPTION_CONFIG },
31
- loadHandler: async () => (await import("./orgs.list.handler-D-ptz8It.mjs")).handleAdminOrgsList,
31
+ loadHandler: async () => (await import("./orgs.list.handler-DKJgs6x0.mjs")).handleAdminOrgsList,
32
32
  subcommands: [
33
33
  createTypedCommand({
34
34
  name: "create",
35
35
  description: "Create an organization (requires system.create_org)",
36
36
  schema: AdminOrgsCreateOptionsSchema,
37
37
  optionsConfig: CREATE_OPTIONS_CONFIG,
38
- loadHandler: async () => (await import("./orgs.create.handler-swGnT2ce.mjs")).handleAdminOrgsCreate
38
+ loadHandler: async () => (await import("./orgs.create.handler-5AaPgTZV.mjs")).handleAdminOrgsCreate
39
39
  }),
40
40
  createTypedCommand({
41
41
  name: "list",
42
42
  description: "List organizations (requires system.view_orgs)",
43
43
  schema: AdminOrgsListOptionsSchema,
44
44
  optionsConfig: { ...JSON_OPTION_CONFIG },
45
- loadHandler: async () => (await import("./orgs.list.handler-D-ptz8It.mjs")).handleAdminOrgsList
45
+ loadHandler: async () => (await import("./orgs.list.handler-DKJgs6x0.mjs")).handleAdminOrgsList
46
46
  }),
47
47
  createTypedCommand({
48
48
  name: "get",
@@ -54,7 +54,7 @@ function createAdminOrgsCommand() {
54
54
  description: "Organization ID",
55
55
  key: "orgId"
56
56
  },
57
- loadHandler: async () => (await import("./orgs.get.handler-ClAqYTH0.mjs")).handleAdminOrgsGet
57
+ loadHandler: async () => (await import("./orgs.get.handler-BTfopRVm.mjs")).handleAdminOrgsGet
58
58
  })
59
59
  ]
60
60
  });
@@ -157,14 +157,14 @@ function createAdminUsersCommand() {
157
157
  description: "Manage platform users",
158
158
  schema: AdminUsersListOptionsSchema,
159
159
  optionsConfig: { ...JSON_OPTION_CONFIG },
160
- loadHandler: async () => (await import("./users.list.handler-DXAsO8Yk.mjs")).handleAdminUsersList,
160
+ loadHandler: async () => (await import("./users.list.handler-DLWPOIHD.mjs")).handleAdminUsersList,
161
161
  subcommands: [
162
162
  createTypedCommand({
163
163
  name: "list",
164
164
  description: "List platform users",
165
165
  schema: AdminUsersListOptionsSchema,
166
166
  optionsConfig: { ...JSON_OPTION_CONFIG },
167
- loadHandler: async () => (await import("./users.list.handler-DXAsO8Yk.mjs")).handleAdminUsersList
167
+ loadHandler: async () => (await import("./users.list.handler-DLWPOIHD.mjs")).handleAdminUsersList
168
168
  }),
169
169
  createTypedCommand({
170
170
  name: "get",
@@ -176,7 +176,7 @@ function createAdminUsersCommand() {
176
176
  description: "User ID",
177
177
  key: "userId"
178
178
  },
179
- loadHandler: async () => (await import("./users.get.handler-C_d2GWKX.mjs")).handleAdminUsersGet
179
+ loadHandler: async () => (await import("./users.get.handler-uoEgEwI-.mjs")).handleAdminUsersGet
180
180
  }),
181
181
  createTypedCommand({
182
182
  name: "set-role",
@@ -188,7 +188,7 @@ function createAdminUsersCommand() {
188
188
  description: "User ID",
189
189
  key: "userId"
190
190
  },
191
- loadHandler: async () => (await import("./users.set-role.handler-Bn_yV4RI.mjs")).handleAdminUsersSetRole
191
+ loadHandler: async () => (await import("./users.set-role.handler-BCJhTsyb.mjs")).handleAdminUsersSetRole
192
192
  })
193
193
  ]
194
194
  });
@@ -3,11 +3,11 @@
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, o as ANSI, s as style, t as ui } from "./keystroke.mjs";
4
4
  import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
5
  import { i as writeJson, n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
6
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
6
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
7
7
  import { i as readAgentManifestsFromOutDir } from "./dist-C2Dq_nx3.mjs";
8
8
  import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
9
9
  import { t as createSpinnerProgress } from "./spinner-progress-bvKd1jXc.mjs";
10
- import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-BcaIdRR6.mjs";
10
+ import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-DD8TLlPu.mjs";
11
11
  import { i as resolveTypeHint } from "./schema-display-D4A1gQEM.mjs";
12
12
  import { z } from "zod";
13
13
  //#region src/commands/agents/inspect-display.ts
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
4
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
4
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/api-keys/api-keys.command.ts
7
7
  const ApiKeysCreateOptionsSchema = JsonOptionSchema.extend({ name: z.string().optional() });
@@ -23,21 +23,21 @@ function createApiKeysCommand() {
23
23
  description: "Manage API keys for your organization",
24
24
  schema: JsonOptionSchema,
25
25
  optionsConfig: { ...JSON_OPTION_CONFIG },
26
- loadHandler: async () => (await import("./list.handler-20v4uRMk.mjs")).handleApiKeysList,
26
+ loadHandler: async () => (await import("./list.handler-rnyzLJDy.mjs")).handleApiKeysList,
27
27
  subcommands: [
28
28
  createTypedCommand({
29
29
  name: "list",
30
30
  description: "List all API keys for your organization",
31
31
  schema: JsonOptionSchema,
32
32
  optionsConfig: { ...JSON_OPTION_CONFIG },
33
- loadHandler: async () => (await import("./list.handler-20v4uRMk.mjs")).handleApiKeysList
33
+ loadHandler: async () => (await import("./list.handler-rnyzLJDy.mjs")).handleApiKeysList
34
34
  }),
35
35
  createTypedCommand({
36
36
  name: "create",
37
37
  description: "Create a new API key (raw key shown once)",
38
38
  schema: ApiKeysCreateOptionsSchema,
39
39
  optionsConfig: CREATE_OPTIONS_CONFIG,
40
- loadHandler: async () => (await import("./create.handler-uNG3I4wS.mjs")).handleApiKeysCreate
40
+ loadHandler: async () => (await import("./create.handler-d9nfcKfp.mjs")).handleApiKeysCreate
41
41
  }),
42
42
  createTypedCommand({
43
43
  name: "delete",
@@ -49,7 +49,7 @@ function createApiKeysCommand() {
49
49
  description: "API key ID to delete",
50
50
  key: "apiKeyId"
51
51
  },
52
- loadHandler: async () => (await import("./delete.handler-CJTHVZaz.mjs")).handleApiKeysDelete
52
+ loadHandler: async () => (await import("./delete.handler-RsYTkJLV.mjs")).handleApiKeysDelete
53
53
  })
54
54
  ]
55
55
  });
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { n as DEFAULT_CLI_WEB_URL } from "./default-urls-BS4twrsS.mjs";
4
4
  import { g as AUTH_TIMEOUT_SECONDS } from "./keystroke.mjs";
5
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
5
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/auth/auth.command.ts
8
8
  const AuthOptionsSchema = z.object({
@@ -25,21 +25,21 @@ function createAuthCommand() {
25
25
  description: "Authenticate Keystroke CLI via device flow",
26
26
  schema: AuthOptionsSchema,
27
27
  optionsConfig: AUTH_OPTIONS_CONFIG,
28
- loadHandler: async () => (await import("./auth.handler-BBPObKwk.mjs")).handleAuth,
28
+ loadHandler: async () => (await import("./auth.handler-CbhiLOG1.mjs")).handleAuth,
29
29
  subcommands: [
30
30
  createTypedCommand({
31
31
  name: "clear",
32
32
  description: "Revoke the saved API key and remove local credentials",
33
33
  schema: z.object({}),
34
34
  optionsConfig: {},
35
- loadHandler: async () => (await import("./clear.handler-YS8gPriq.mjs")).handleAuthClear
35
+ loadHandler: async () => (await import("./clear.handler-U9n_V1IM.mjs")).handleAuthClear
36
36
  }),
37
37
  createTypedCommand({
38
38
  name: "test",
39
39
  description: "Verify that the saved API key is valid",
40
40
  schema: z.object({}),
41
41
  optionsConfig: {},
42
- loadHandler: async () => (await import("./test.handler-D25kziPi.mjs")).handleAuthTest
42
+ loadHandler: async () => (await import("./test.handler-iCUotLes.mjs")).handleAuthTest
43
43
  }),
44
44
  createTypedCommand({
45
45
  name: "status",
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { _ as AUTH_URL_PATH, b as CALLBACK_PATH, h as toErrorMessage, i as logger, t as ui, v as CALLBACK_LOOPBACK_HOST, x as CLI_AUTH_COMMAND, y as CALLBACK_LOOPBACK_ORIGIN } from "./keystroke.mjs";
3
+ import { n as DEFAULT_CLI_WEB_URL, t as DEFAULT_CLI_SERVER_URL } from "./default-urls-BS4twrsS.mjs";
4
+ import { C as CliExitError, _ as AUTH_URL_PATH, b as CALLBACK_PATH, h as toErrorMessage, i as logger, t as ui, v as CALLBACK_LOOPBACK_HOST, x as CLI_AUTH_COMMAND, y as CALLBACK_LOOPBACK_ORIGIN } from "./keystroke.mjs";
4
5
  import { f as upsertOrgCredentials, i as getCredentialsFilePath } from "./dist-BF6r1hfv.mjs";
5
6
  import { a as resolveCliWebUrl, i as resolveCliServerUrl } from "./env-YTZGKGIu.mjs";
6
7
  import { t as openBrowser } from "./browser-gddMccBQ.mjs";
7
8
  import { hostname } from "node:os";
8
9
  import { z } from "zod";
10
+ import { confirm, isCancel } from "@clack/prompts";
9
11
  import { randomBytes } from "node:crypto";
10
12
  import { createServer } from "node:http";
11
13
  //#region src/commands/auth/device-auth.ts
@@ -237,6 +239,74 @@ async function createDeviceCallbackListener(expectedState, timeoutMs) {
237
239
  }
238
240
  //#endregion
239
241
  //#region src/commands/auth/auth.handler.ts
242
+ const LOOPBACK_HOSTNAMES = new Set([
243
+ "localhost",
244
+ "127.0.0.1",
245
+ "::1"
246
+ ]);
247
+ function isLoopbackUrl(rawUrl) {
248
+ try {
249
+ const parsed = new URL(rawUrl);
250
+ const host = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
251
+ return LOOPBACK_HOSTNAMES.has(host);
252
+ } catch {
253
+ return false;
254
+ }
255
+ }
256
+ function resolveAuthHosts(options, ctx) {
257
+ const savedWeb = ctx.storedCredentials?.webUrl;
258
+ const savedServer = ctx.storedCredentials?.serverUrl;
259
+ const webUrl = resolveCliWebUrl(options.webUrl, savedWeb);
260
+ const serverUrl = resolveCliServerUrl(ctx.baseUrl);
261
+ return {
262
+ webUrl,
263
+ serverUrl,
264
+ webFromFlag: typeof options.webUrl === "string" && options.webUrl.length > 0,
265
+ webMatchesSaved: savedWeb === webUrl,
266
+ serverMatchesSaved: savedServer === serverUrl
267
+ };
268
+ }
269
+ function shouldConfirmLoopback(hosts) {
270
+ if (isLoopbackUrl("https://keystroke.ai") && isLoopbackUrl("https://api.kestroke.ai")) return false;
271
+ const webNeedsConfirm = !hosts.webFromFlag && isLoopbackUrl(hosts.webUrl);
272
+ const serverNeedsConfirm = isLoopbackUrl(hosts.serverUrl);
273
+ return webNeedsConfirm || serverNeedsConfirm;
274
+ }
275
+ function describeHostSource(matchesSaved, fromFlag = false) {
276
+ if (fromFlag) return "flag";
277
+ if (matchesSaved) return "saved credentials";
278
+ return "env or default";
279
+ }
280
+ function printResolvedHosts(hosts) {
281
+ ui.hint(`Web URL: ${hosts.webUrl} (${describeHostSource(hosts.webMatchesSaved, hosts.webFromFlag)})`);
282
+ ui.hint(`API URL: ${hosts.serverUrl} (${describeHostSource(hosts.serverMatchesSaved)})`);
283
+ }
284
+ async function confirmLoopbackHostsOrExit(hosts) {
285
+ ui.br();
286
+ ui.warn("About to authenticate against a local development environment");
287
+ if (hosts.webMatchesSaved || hosts.serverMatchesSaved) ui.hint(`Saved at: ${getCredentialsFilePath()} (from a previous keystroke auth run)`);
288
+ else ui.hint("Resolved from your environment (WEB_URL / SERVER_URL).");
289
+ ui.hint(`CLI default is ${DEFAULT_CLI_WEB_URL} / ${DEFAULT_CLI_SERVER_URL}.`);
290
+ ui.hint("To switch hosts:");
291
+ ui.hint(` - Reset and re-auth: ${CLI_AUTH_COMMAND} clear, then ${CLI_AUTH_COMMAND}`);
292
+ ui.hint(` - Override once: ${CLI_AUTH_COMMAND} --web-url <url> --server-url <url>`);
293
+ ui.br();
294
+ if (process.stdin.isTTY !== true) {
295
+ ui.warn("Non-interactive shell detected — continuing with the local URLs.");
296
+ return;
297
+ }
298
+ const proceed = await confirm({
299
+ message: "Continue signing in against these local URLs?",
300
+ initialValue: false
301
+ });
302
+ if (isCancel(proceed) || proceed !== true) {
303
+ ui.hint("Cancelled. No credentials were changed.");
304
+ throw new CliExitError("Auth cancelled by user.", {
305
+ exitCode: 0,
306
+ reported: true
307
+ });
308
+ }
309
+ }
240
310
  function getVerificationCode(state) {
241
311
  return state.slice(0, 8).toUpperCase();
242
312
  }
@@ -266,17 +336,22 @@ async function warnIfAlreadyAuthenticated(ctx) {
266
336
  } catch {
267
337
  return;
268
338
  }
269
- const identity = ctx.storedCredentials?.user?.email ?? "unknown user";
339
+ const stored = ctx.storedCredentials;
340
+ const identity = stored?.user?.email ?? "unknown user";
341
+ const activeOrg = stored?.orgs.find((o) => o.organizationId === stored?.activeOrgId);
270
342
  ui.br();
271
343
  ui.warn("Already authenticated");
272
- ui.hint(`Signed in as ${identity}`);
344
+ ui.hint(`Signed in as ${identity}${activeOrg ? ` (${activeOrg.organizationName})` : ""}`);
345
+ if (stored?.webUrl || stored?.serverUrl) ui.hint(`Saved hosts: web ${stored.webUrl ?? "(none)"} | api ${stored.serverUrl ?? "(none)"}`);
273
346
  ui.hint("Continuing will add or replace credentials for the selected organization.");
274
347
  ui.br();
275
348
  }
276
349
  async function handleAuth(options, ctx, overrides) {
277
350
  await warnIfAlreadyAuthenticated(ctx);
278
- const webUrl = resolveCliWebUrl(options.webUrl, ctx.storedCredentials?.webUrl);
279
- const serverUrl = resolveCliServerUrl(ctx.baseUrl);
351
+ const hosts = resolveAuthHosts(options, ctx);
352
+ printResolvedHosts(hosts);
353
+ if (shouldConfirmLoopback(hosts)) await confirmLoopbackHostsOrExit(hosts);
354
+ const { webUrl, serverUrl } = hosts;
280
355
  const timeoutMs = options.timeout * 1e3;
281
356
  const state = createDeviceAuthState();
282
357
  logger.info("Starting auth flow", {
@@ -3,8 +3,8 @@
3
3
  import { n as readOptionalJsonSchemaKeys, t as manifestToDeclaredCredentialRequirement } from "./declared-credential-requirements-Bwlb-KZE.mjs";
4
4
  import { t as AgentVersionManifestSchema } from "./agent-manifest-Bfa3DBgc.mjs";
5
5
  import { i as createAgentSandboxPackage, n as AGENT_VM_PI_SKILLS_ROOT, r as AGENT_VM_TOOLS_RUNTIME_RELATIVE_PATH, t as AGENT_VM_HOST_CALL_RELATIVE_PATH } from "./agent-bundle-package-DWV6B_5q-FPT0bJaA.mjs";
6
- import { t as readCredentialKeysFromSchemaObject } from "./read-credential-keys-77a91T8M-CAJLnMRi.mjs";
7
- import { t as bundleSandboxAgentTarget } from "./workflow-bundler-BzHk73PM-Cde7cKiU.mjs";
6
+ import { t as readCredentialKeysFromSchemaObject } from "./read-credential-keys-77a91T8M-aLuQvlIq.mjs";
7
+ import { t as bundleSandboxAgentTarget } from "./workflow-bundler-BzHk73PM-Bt-poFqX.mjs";
8
8
  import { builtinModules } from "node:module";
9
9
  import { lstat, readFile, readdir, realpath } from "node:fs/promises";
10
10
  import path from "node:path";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as TaskBuildManifestSchema } from "./task-DsrXI6XH.mjs";
4
- import { n as bundleWorkflowTarget } from "./workflow-bundler-BzHk73PM-Cde7cKiU.mjs";
5
- import { t as buildTriggerArtifacts } from "./trigger-artifacts-B3OCTX9K-DG-FGGJT.mjs";
4
+ import { n as bundleWorkflowTarget } from "./workflow-bundler-BzHk73PM-Bt-poFqX.mjs";
5
+ import { t as buildTriggerArtifacts } from "./trigger-artifacts-B3OCTX9K-Cgt51KLh.mjs";
6
6
  import { performance } from "node:perf_hooks";
7
7
  //#region ../../packages/workflow-builder/dist/build-tasks-O1jYtlv1.mjs
8
8
  async function buildTaskArtifact(options) {
@@ -6,8 +6,8 @@ import { a as MANIFEST_FILE_NAME, i as FLOW_FILE_NAME, r as BUNDLE_FILE_NAME, s
6
6
  import { t as runWithConcurrency } from "./concurrency-gXn9Rw8x-BTlfau8D.mjs";
7
7
  import { n as WorkflowLoaderProtocolError, r as WorkflowMetadataLoadError, s as createLoaderProtocolFailure } from "./import-module-DDPnzlJ1-CYJD2n2b.mjs";
8
8
  import { r as toRelativeFilePath } from "./normalize-path-CojS-CgQ-BKRFUzWW.mjs";
9
- import { n as bundleWorkflowTarget } from "./workflow-bundler-BzHk73PM-Cde7cKiU.mjs";
10
- import { t as buildTriggerArtifacts } from "./trigger-artifacts-B3OCTX9K-DG-FGGJT.mjs";
9
+ import { n as bundleWorkflowTarget } from "./workflow-bundler-BzHk73PM-Bt-poFqX.mjs";
10
+ import { t as buildTriggerArtifacts } from "./trigger-artifacts-B3OCTX9K-Cgt51KLh.mjs";
11
11
  import { realpathSync } from "node:fs";
12
12
  import { readFile } from "node:fs/promises";
13
13
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@
3
3
  import { C as CliExitError } from "./keystroke.mjs";
4
4
  import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
5
  import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
6
- import { a as runWorkflowBuild, i as renderBuildSummary, n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-BcaIdRR6.mjs";
6
+ import { a as runWorkflowBuild, i as renderBuildSummary, n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-DD8TLlPu.mjs";
7
7
  import { t as createBuildProgress } from "./build-progress-Cn2j1LqF.mjs";
8
8
  import { t as withErrorBoundary } from "./error-boundary-B9PgBkv8.mjs";
9
9
  //#region src/commands/workflows/build.handler.ts
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { h as toErrorMessage, i as logger, l as AUTH_HINT, t as ui } from "./keystroke.mjs";
4
4
  import { c as removeOrgCredentials, r as deleteStoredCredentials } from "./dist-BF6r1hfv.mjs";
5
- import { createClient } from "./src-J09NGJ6Z.mjs";
5
+ import { createClient } from "./src-CBL7AJ0H.mjs";
6
6
  //#region src/commands/auth/clear.handler.ts
7
7
  async function tryRevokeKey(apiKey, apiKeyId, baseUrl, organizationId) {
8
8
  try {
@@ -78,7 +78,7 @@ function createTypedCommand(params) {
78
78
  const globalOpts = cmd.optsWithGlobals();
79
79
  if (globalOpts.debug) logger.setDebug(true);
80
80
  const contextMode = params.contextMode ?? "full";
81
- const contextModule = await import("./context-Y1f1hGYy.mjs").then((n) => n.n);
81
+ const contextModule = await import("./context-D-YKFNxL.mjs").then((n) => n.n);
82
82
  const base = contextMode === "auth" ? await contextModule.resolveAuthContext({
83
83
  apiKey: globalOpts.apiKey,
84
84
  serverUrl: globalOpts.serverUrl,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
4
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
4
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
5
5
  import { z } from "zod";
6
6
  //#region src/commands/connect/connect.command.ts
7
7
  const ConnectOptionsSchema = JsonOptionSchema.extend({
@@ -31,7 +31,7 @@ function createConnectCommand() {
31
31
  description: "Connect an official integration via OAuth (e.g., keystroke connect slack)",
32
32
  schema: ConnectOptionsSchema,
33
33
  optionsConfig: CONNECT_OPTIONS_CONFIG,
34
- loadHandler: async () => (await import("./connect.handler-DuRr_yyN.mjs")).handleConnect,
34
+ loadHandler: async () => (await import("./connect.handler-VJgm2ZQG.mjs")).handleConnect,
35
35
  argument: {
36
36
  name: "integrationId",
37
37
  description: "Integration to connect (e.g., slack, linear)",
@@ -4,7 +4,7 @@ import { D as throwReportedCliExit, h as toErrorMessage, l as AUTH_HINT, m as is
4
4
  import { i as writeJson } from "./output-q4KljAhu.mjs";
5
5
  import { n as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-Di90TXoX.mjs";
6
6
  import { t as openBrowser } from "./browser-gddMccBQ.mjs";
7
- import { t as getIntegrationCatalog } from "./integration-catalog-DFlytKJS.mjs";
7
+ import { t as getIntegrationCatalog } from "./integration-catalog-ClP7YGqM.mjs";
8
8
  import { z } from "zod";
9
9
  //#region ../../packages/shared-types/src/connections/api.ts
10
10
  /**
@@ -37,7 +37,7 @@ async function resolveBaseContext(overrides = {}) {
37
37
  const authContext = await resolveAuthContext(overrides);
38
38
  let client = null;
39
39
  if (authContext.apiKey && authContext.baseUrl) try {
40
- const { createClient } = await import("./src-J09NGJ6Z.mjs");
40
+ const { createClient } = await import("./src-CBL7AJ0H.mjs");
41
41
  client = createClient({
42
42
  apiKey: authContext.apiKey,
43
43
  baseUrl: authContext.baseUrl,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, t as ui } from "./keystroke.mjs";
4
4
  import { i as writeJson } from "./output-q4KljAhu.mjs";
5
- import { i as requireClient } from "./context-Y1f1hGYy.mjs";
5
+ import { i as requireClient } from "./context-D-YKFNxL.mjs";
6
6
  //#region src/commands/api-keys/create.handler.ts
7
7
  async function handleApiKeysCreate(options, ctx) {
8
8
  const client = requireClient(ctx);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-q4KljAhu.mjs";
4
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
4
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
5
5
  import { n as CredentialScopeSchema, r as CredentialScopeValues } from "./schema-Di90TXoX.mjs";
6
6
  import { z } from "zod";
7
7
  //#region src/commands/credentials/list/list.command.ts
@@ -46,7 +46,7 @@ function createCredentialsListCommand() {
46
46
  description: "List credential sets on the server",
47
47
  schema: ListOptionsSchema,
48
48
  optionsConfig: LIST_OPTIONS_CONFIG,
49
- loadHandler: async () => (await import("./list.handler-DSPr0OxS.mjs")).handleCredentialsList
49
+ loadHandler: async () => (await import("./list.handler-BjihvxHn.mjs")).handleCredentialsList
50
50
  });
51
51
  }
52
52
  //#endregion
@@ -121,7 +121,7 @@ function createCredentialsUploadCommand() {
121
121
  description: "Upload credentials from env vars to the server. Default: reads requirements from built workflow manifests. Use --integration for an official integration or --credential-set + --keys for a custom explicit upload.",
122
122
  schema: UploadOptionsSchema,
123
123
  optionsConfig: UPLOAD_OPTIONS_CONFIG,
124
- loadHandler: async () => (await import("./upload.handler-CqProKVJ.mjs")).handleCredentialsUpload
124
+ loadHandler: async () => (await import("./upload.handler-BmqZAPxZ.mjs")).handleCredentialsUpload
125
125
  });
126
126
  }
127
127
  //#endregion
@@ -152,7 +152,7 @@ function createCredentialsCommand() {
152
152
  }
153
153
  },
154
154
  handler: async (opts, ctx) => {
155
- const { handleCredentialsList } = await import("./list.handler-DSPr0OxS.mjs");
155
+ const { handleCredentialsList } = await import("./list.handler-BjihvxHn.mjs");
156
156
  await handleCredentialsList({
157
157
  ...opts,
158
158
  scope: void 0,
@@ -5,7 +5,7 @@ import { t as assertWorkflowProjectRoot } from "./project-config-opj6DsPF.mjs";
5
5
  import { a as readManifestsFromOutDir } from "./dist-C2Dq_nx3.mjs";
6
6
  import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
7
7
  import { t as createSpinnerProgress } from "./spinner-progress-bvKd1jXc.mjs";
8
- import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-BcaIdRR6.mjs";
8
+ import { a as runWorkflowBuild, n as renderBuildFailure } from "./workflow-build-DD8TLlPu.mjs";
9
9
  //#region src/commands/workflows/_shared/current-deployment-workflow.ts
10
10
  /**
11
11
  * Lightweight resolution: gets projectId from keystroke.config.ts and authoredWorkflowId
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { t as ui } from "./keystroke.mjs";
4
- import { i as requireClient } from "./context-Y1f1hGYy.mjs";
4
+ import { i as requireClient } from "./context-D-YKFNxL.mjs";
5
5
  //#region src/commands/org/current.handler.ts
6
6
  async function handleOrgCurrent(_options, ctx) {
7
7
  if (!ctx.organizationId) {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { D as throwReportedCliExit, h as toErrorMessage, t as ui } from "./keystroke.mjs";
4
- import { i as requireClient } from "./context-Y1f1hGYy.mjs";
4
+ import { i as requireClient } from "./context-D-YKFNxL.mjs";
5
5
  //#region src/commands/api-keys/delete.handler.ts
6
6
  async function handleApiKeysDelete(options, ctx) {
7
7
  const client = requireClient(ctx);
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
3
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/commands/deploy/deploy.command.ts
6
6
  /**
@@ -64,7 +64,7 @@ function createDeployCommand() {
64
64
  schema: DeployOptionsSchema,
65
65
  optionsConfig: DEPLOY_OPTIONS_CONFIG,
66
66
  contextMode: "auth",
67
- loadHandler: async () => (await import("./deploy.handler-zzFAt7pp.mjs")).handleDeploy
67
+ loadHandler: async () => (await import("./deploy.handler-Dlyd8Zqs.mjs")).handleDeploy
68
68
  });
69
69
  cmd.enablePositionalOptions();
70
70
  cmd.passThroughOptions();
@@ -4,14 +4,14 @@ import { C as CliExitError, i as logger, o as ANSI, s as style, t as ui } from "
4
4
  import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
5
  import { t as assertWorkflowProjectRoot } from "./project-config-opj6DsPF.mjs";
6
6
  import { r as isLocalMode } from "./env-YTZGKGIu.mjs";
7
- import { r as requireAuthOptions, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Y1f1hGYy.mjs";
7
+ import { r as requireAuthOptions, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-D-YKFNxL.mjs";
8
8
  import { i as readAgentManifestsFromOutDir, o as readWorkflowsFromDisk } from "./dist-C2Dq_nx3.mjs";
9
9
  import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
10
- import { n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-BcaIdRR6.mjs";
10
+ import { n as renderBuildFailure, r as renderBuildHeader } from "./workflow-build-DD8TLlPu.mjs";
11
11
  import { t as createBuildProgress } from "./build-progress-Cn2j1LqF.mjs";
12
12
  import { t as createDeployProgress } from "./deploy-progress-CZ2rPlOj.mjs";
13
13
  import { t as withErrorBoundary } from "./error-boundary-B9PgBkv8.mjs";
14
- import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-M8GEIHxv.mjs";
14
+ import { t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-BRYuEubW.mjs";
15
15
  import { t as computeWorkflowDiff } from "./diff-utils-DWNcRA8g.mjs";
16
16
  import { access } from "node:fs/promises";
17
17
  import path from "node:path";
@@ -199,7 +199,7 @@ async function handleDeploy(options, ctx) {
199
199
  let outDir;
200
200
  let artifactFilter;
201
201
  try {
202
- const { runWorkflowBuild } = await import("./workflow-build-BcaIdRR6.mjs").then((n) => n.o);
202
+ const { runWorkflowBuild } = await import("./workflow-build-DD8TLlPu.mjs").then((n) => n.o);
203
203
  const buildOutcome = await runWorkflowBuild({
204
204
  workflowsDir,
205
205
  verbose: options.verbose,
@@ -261,7 +261,7 @@ async function handleDeploy(options, ctx) {
261
261
  }
262
262
  async function handleTaskTargetDeploy(options) {
263
263
  renderBuildHeader(void 0);
264
- const buildResult = await (deployHandlerDependencies.buildTaskTargets ?? (await import("./task-target-build-DTzz4fpG.mjs")).buildTaskTargets)({
264
+ const buildResult = await (deployHandlerDependencies.buildTaskTargets ?? (await import("./task-target-build-Di8gflnj.mjs")).buildTaskTargets)({
265
265
  projectRoot: options.workflowsDir,
266
266
  targetFiles: options.targetFiles,
267
267
  disableSourcemaps: options.options.disableSourcemaps
@@ -279,7 +279,7 @@ async function handleTaskTargetDeploy(options) {
279
279
  const progress = createDeployProgress();
280
280
  let result;
281
281
  try {
282
- result = await (deployHandlerDependencies.deployTaskTargets ?? (await import("./task-target-deploy-BPLlP__P.mjs")).deployTaskTargets)({
282
+ result = await (deployHandlerDependencies.deployTaskTargets ?? (await import("./task-target-deploy-BzGRNDiv.mjs")).deployTaskTargets)({
283
283
  preparedTasks: buildResult.preparedTasks,
284
284
  client,
285
285
  organizationId: options.projectConfig.organizationId,
@@ -301,7 +301,7 @@ async function handleTaskTargetDeploy(options) {
301
301
  }
302
302
  async function createFullDeployClient(ctx) {
303
303
  const authOptions = requireAuthOptions(ctx);
304
- const { createClient } = await import("./src-J09NGJ6Z.mjs");
304
+ const { createClient } = await import("./src-CBL7AJ0H.mjs");
305
305
  return createClient({
306
306
  ...authOptions,
307
307
  onRequest: (info) => logger.debug(`-> ${info.method} ${info.url}`, {
@@ -316,7 +316,7 @@ async function createFullDeployClient(ctx) {
316
316
  }
317
317
  async function createTaskDeployClient(ctx) {
318
318
  const authOptions = requireAuthOptions(ctx);
319
- return (deployHandlerDependencies.createDeployClient ?? (await import("./deploy-CdnaZY3s.mjs")).createDeployClient)(authOptions);
319
+ return (deployHandlerDependencies.createDeployClient ?? (await import("./deploy-B_bkUlIL.mjs")).createDeployClient)(authOptions);
320
320
  }
321
321
  function renderSuccessSummary(result) {
322
322
  const tasks = result.tasks || [];
@@ -3,8 +3,8 @@
3
3
  import { C as CliExitError, D as throwReportedCliExit, h as toErrorMessage, t as ui } from "./keystroke.mjs";
4
4
  import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
5
  import { i as writeJson } from "./output-q4KljAhu.mjs";
6
- import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-Y1f1hGYy.mjs";
7
- import { n as resolveLocalWorkflowManifest, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-M8GEIHxv.mjs";
6
+ import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-D-YKFNxL.mjs";
7
+ import { n as resolveLocalWorkflowManifest, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-BRYuEubW.mjs";
8
8
  import { n as renderDiff, t as computeWorkflowDiff } from "./diff-utils-DWNcRA8g.mjs";
9
9
  //#region src/commands/workflows/diff/diff.handler.ts
10
10
  async function handleWorkflowsDiff(options, ctx) {
@@ -3,12 +3,12 @@
3
3
  import { C as CliExitError, D as throwReportedCliExit, h as toErrorMessage, m as isNetworkError, o as ANSI, p as isAuthError, s as style, t as ui, u as REAUTH_HINT } from "./keystroke.mjs";
4
4
  import { d as trackProject } from "./dist-BF6r1hfv.mjs";
5
5
  import { i as writeJson } from "./output-q4KljAhu.mjs";
6
- import { i as requireClient } from "./context-Y1f1hGYy.mjs";
6
+ import { i as requireClient } from "./context-D-YKFNxL.mjs";
7
7
  import { n as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-Di90TXoX.mjs";
8
8
  import { a as readManifestsFromOutDir } from "./dist-C2Dq_nx3.mjs";
9
9
  import { t as requireWorkflowsDir } from "./resolve-project-DgfftdPm.mjs";
10
10
  import { t as groupCredentialRequirements } from "./credentials-DHlK_O4L.mjs";
11
- import { t as getIntegrationCatalog } from "./integration-catalog-DFlytKJS.mjs";
11
+ import { t as getIntegrationCatalog } from "./integration-catalog-ClP7YGqM.mjs";
12
12
  import { z } from "zod";
13
13
  import Table from "cli-table3";
14
14
  //#region ../../packages/shared-types/src/credentials/api/responses.ts
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { t as createTypedCommand } from "./commander-DZ3F3CVq.mjs";
3
+ import { t as createTypedCommand } from "./commander-pxSPDCZ4.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/commands/init/init.command.ts
6
6
  const InitOptionsSchema = z.object({
@@ -38,7 +38,7 @@ function createInitCommand() {
38
38
  description: "Initialize a Keystroke project (creates keystroke.config.ts)",
39
39
  schema: InitOptionsSchema,
40
40
  optionsConfig: INIT_OPTIONS_CONFIG,
41
- loadHandler: async () => (await import("./init.handler-DSW6XFZn.mjs")).handleInit
41
+ loadHandler: async () => (await import("./init.handler-HRdgViGH.mjs")).handleInit
42
42
  });
43
43
  }
44
44
  //#endregion