@keystrokehq/cli 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept.handler-tvT9pleH.mjs → accept.handler-DNfIXPSP.mjs} +1 -1
- package/dist/{admin-DsAQ0WWj.mjs → admin-CJp8XksD.mjs} +9 -9
- package/dist/{agents-Bc3B9_ms.mjs → agents-G37PM35Z.mjs} +5 -5
- package/dist/{api-O5tdGdzc.mjs → api-BK3EhPvs.mjs} +77 -3
- package/dist/{api-keys-tle_m3kk.mjs → api-keys-4igNHJ_W.mjs} +5 -5
- package/dist/{auth-DLaY5yCZ.mjs → auth-CIOmmV4x.mjs} +4 -4
- package/dist/{auth.handler-Dq2fXO3S.mjs → auth.handler-CznN_vfz.mjs} +1 -1
- package/dist/{build-agents-DseUtzd4-Cmd-kNNO.mjs → build-agents-DseUtzd4-CSGpNXur.mjs} +2 -2
- package/dist/{build-tasks-C09SdfjC-B0F7BZZG.mjs → build-tasks-C09SdfjC-BmAVLTtQ.mjs} +2 -2
- package/dist/{build-workflows-BZ_m97Pr-HQZY4xBV.mjs → build-workflows-BZ_m97Pr-BiyptCrn.mjs} +3 -3
- package/dist/{build.handler-5CpbMuHx.mjs → build.handler-zHimoO7c.mjs} +5 -5
- package/dist/{clear-cache.handler-DpP1VlbR.mjs → clear-cache.handler-BP0K1-uN.mjs} +1 -1
- package/dist/{clear.handler-FzohTmpU.mjs → clear.handler-PsA5QKHx.mjs} +2 -2
- package/dist/{commander-BTMzBiLq.mjs → commander-BlrSdFcu.mjs} +1 -1
- package/dist/{connect-BUu2ojK7.mjs → connect-BbLJhlIA.mjs} +2 -2
- package/dist/{connect.handler-D7oO_5WS.mjs → connect.handler-BthE-7Wg.mjs} +4 -4
- package/dist/{context-DHOTSgPb.mjs → context-sgKhRc5v.mjs} +3 -3
- package/dist/{create.handler-BuxP18uj.mjs → create.handler-BovbO_g0.mjs} +1 -1
- package/dist/{credential-env-map-CtmzNkwU.mjs → credential-env-map-CRs0llf0.mjs} +2 -2
- package/dist/{credentials-DQW8xxof.mjs → credentials-DKrSaaLw.mjs} +1 -1
- package/dist/credentials-LmhgE-Co.mjs +460 -0
- package/dist/{current-deployment-workflow-Cm_aU9rQ.mjs → current-deployment-workflow-B1VQCYC-.mjs} +2 -2
- package/dist/{current.handler-BXec-Bhy.mjs → current.handler-BaGaCLzB.mjs} +1 -1
- package/dist/{delete.handler-CpYOMtsv.mjs → delete.handler-DkAK396w.mjs} +1 -1
- package/dist/{deploy-CDY7Qo5L.mjs → deploy-DvPfR9fC.mjs} +2 -2
- package/dist/{deploy.handler-CLoYxHOr.mjs → deploy.handler-BW3f2N2G.mjs} +14 -14
- package/dist/{diff.handler-Dcli35A1.mjs → diff.handler-BwhsoAg0.mjs} +4 -4
- package/dist/{dist-D_KgdxW5.mjs → dist-Dw7gCE7y.mjs} +132 -15
- package/dist/{env.handler-DzDtYyqj.mjs → env.handler-Dks6ZQh-.mjs} +5 -5
- package/dist/{error-boundary-DVZipk-A.mjs → error-boundary-0veZ_RDS.mjs} +1 -1
- package/dist/{init-DonAqdBg.mjs → init-DX08T87c.mjs} +3 -3
- package/dist/{init.handler-C60qFTIV.mjs → init.handler-CzlmkNXi.mjs} +3 -3
- package/dist/{inspect.handler-Bd4imZI8.mjs → inspect.handler-v9snxDLi.mjs} +4 -4
- package/dist/{integration-catalog-Cub_7xCw.mjs → integration-catalog-CiZ62hb_.mjs} +1 -1
- package/dist/{integrations-BfeKNPg6.mjs → integrations-MEExmqcg.mjs} +54 -31
- package/dist/{invites-RO4Dy-m6.mjs → invites-BuatfJmN.mjs} +4 -4
- package/dist/{invites.list.handler-B2RoiFCu.mjs → invites.list.handler-CK6mL10z.mjs} +1 -1
- package/dist/{invites.resend.handler-C4rzRkqX.mjs → invites.resend.handler-CKZouK1Z.mjs} +1 -1
- package/dist/{invites.revoke.handler-CMf6PpeL.mjs → invites.revoke.handler-H0VI-3sp.mjs} +1 -1
- package/dist/keystroke.mjs +31 -23
- package/dist/{list-enrichment-CCRHYslm.mjs → list-enrichment-DP1wEyBZ.mjs} +1 -1
- package/dist/{list.handler-DpdVFRYl.mjs → list.handler-BEMj3FyH.mjs} +1 -1
- package/dist/list.handler-BKfGLkFu.mjs +30 -0
- package/dist/{list.handler-DrY5bgm1.mjs → list.handler-BiY5NFWd.mjs} +1 -1
- package/dist/{list.handler-C78XjR-o.mjs → list.handler-Cq_oQY5B.mjs} +3 -3
- package/dist/list.handler-DIMWZx78.mjs +24 -0
- package/dist/{list.handler-DxT7YHW7.mjs → list.handler-DVnFrlis.mjs} +4 -4
- package/dist/{list.handler-BjKZ9-QO.mjs → list.handler-Jk_vK66s.mjs} +2 -2
- package/dist/{list.handler-ijBH6Ow_.mjs → list.handler-LxZInip2.mjs} +1 -1
- package/dist/{list.handler-wYGZhl1g.mjs → list.handler-htR9TeiS.mjs} +1 -1
- package/dist/{listen-CEn4PucV.mjs → listen-C_7Rgwkb.mjs} +2 -2
- package/dist/{listen.handler-B7s6mz82.mjs → listen.handler-dJgorIzr.mjs} +2 -2
- package/dist/{logs-DiH8JXn1.mjs → logs-B9YMhUGt.mjs} +3 -3
- package/dist/{logs.handler-D0sNlOz4.mjs → logs.handler-BfjCsAyq.mjs} +2 -2
- package/dist/{members.add.handler-Dr9SCjrS.mjs → members.add.handler-DSRCRxsI.mjs} +1 -1
- package/dist/{members.invite.handler-8-pTOtw_.mjs → members.invite.handler-BNpHn1dY.mjs} +1 -1
- package/dist/{members.list.handler-CUZGd-3B.mjs → members.list.handler-Bn9LJEPG.mjs} +1 -1
- package/dist/{members.remove.handler-BCiLt3pa.mjs → members.remove.handler-Dkr2t_tX.mjs} +1 -1
- package/dist/{members.update.handler-BAbB9ssa.mjs → members.update.handler-DBtUYuAY.mjs} +1 -1
- package/dist/operations-wXS1s3du.mjs +81 -0
- package/dist/{org-BD4fj8Yh.mjs → org-DOH7YHk2.mjs} +15 -15
- package/dist/{orgs.create.handler-B_7WjV3s.mjs → orgs.create.handler-BO70zIdp.mjs} +1 -1
- package/dist/{orgs.get.handler-BgjeDmfl.mjs → orgs.get.handler-BuGg5bc9.mjs} +1 -1
- package/dist/{orgs.list.handler-ZRdb-yu5.mjs → orgs.list.handler--5HutMkl.mjs} +1 -1
- package/dist/package-manager-DT1EhOkS.mjs +61 -0
- package/dist/{paths-JzzFkXQA-CEipIeVl.mjs → paths-DpHfoaXN-CdPimpky.mjs} +2 -2
- package/dist/{paused.handler-CzQkBKS6.mjs → paused.handler-DHvxz-cC.mjs} +1 -1
- package/dist/{projects-CgtfPFGu.mjs → projects-C5GZ5Jrf.mjs} +4 -4
- package/dist/render-credential-Bn15FEUC.mjs +23 -0
- package/dist/render-operation-Bc7Wu1sP.mjs +36 -0
- package/dist/{requirements.handler-Cje-GJ8H.mjs → requirements.handler-B5rqCjMu.mjs} +4 -4
- package/dist/{resolve-cli-credentials-B4crOe_y.mjs → resolve-cli-credentials-CAOSVMJP.mjs} +1 -1
- package/dist/{resolve-project-DJJZIOmu.mjs → resolve-project-E9mrh_el.mjs} +1 -1
- package/dist/{run-polling-cylAR4FL.mjs → run-polling-DawiBus-.mjs} +2 -2
- package/dist/{run.handler-CUgLQrsQ.mjs → run.handler-BG7xitEK.mjs} +5 -5
- package/dist/{runs-CZRwB58H.mjs → runs-swYYBT6C.mjs} +2 -2
- package/dist/{schema-display-XrRCdFL0.mjs → schema-display-FvI8QjOQ.mjs} +28 -1
- package/dist/schemas-4Mq_bxob.mjs +39 -0
- package/dist/search-BEfy2fG9.mjs +53 -0
- package/dist/search.handler-V7ObLGjN.mjs +79 -0
- package/dist/show.handler-C_VDYU91.mjs +31 -0
- package/dist/show.handler-CsidInW8.mjs +21 -0
- package/dist/show.handler-Wmv0tkxx.mjs +35 -0
- package/dist/{skills-sync.handler-DsJP_-XZ.mjs → skills-sync.handler-BAATdT6N.mjs} +1 -1
- package/dist/{skills.command-B6jly3ew.mjs → skills.command-0-E8mcYE.mjs} +4 -4
- package/dist/{src-DNhUmpSl.mjs → src-DI-ybNjR.mjs} +166 -25
- package/dist/{switch.handler-B3QBoSSl.mjs → switch.handler-BwYndsP-.mjs} +2 -2
- package/dist/{sync-BssJv3Fd.mjs → sync-6fZkIUtn.mjs} +2 -2
- package/dist/{sync.handler-Ia7cO3xj.mjs → sync.handler-Ctr-cN9X.mjs} +6 -6
- package/dist/{task-target-build-CrPLSXnu.mjs → task-target-build-QllcCfoN.mjs} +5 -5
- package/dist/task-target-deploy-runner.mjs +7 -7
- package/dist/{test-RFvyK7rK.mjs → test-C8VIZe9V.mjs} +2 -2
- package/dist/{test.handler-CLqnDqY6.mjs → test.handler-BCW0YBPd.mjs} +1 -1
- package/dist/{test.handler-DBXBhJ59.mjs → test.handler-DLaxrJ9V.mjs} +8 -8
- package/dist/{tool.handler-BzyxzKK8.mjs → tool.handler-8qNmgdRe.mjs} +8 -8
- package/dist/{trigger-artifacts-BcRScRSp-C-JBJ6y8.mjs → trigger-artifacts-BcRScRSp-BiD2h6do.mjs} +2 -2
- package/dist/{upgrade-B6Prb1K-.mjs → upgrade-DgOcc8IT.mjs} +2 -2
- package/dist/{upload.handler-B2vPQp8w.mjs → upload.handler-B7xle1oX.mjs} +6 -6
- package/dist/{users.get.handler-DoajzImx.mjs → users.get.handler-C4t1vXwi.mjs} +1 -1
- package/dist/{users.list.handler-CRk2J8mi.mjs → users.list.handler-Dvl90grq.mjs} +1 -1
- package/dist/{users.set-role.handler-CHYjbx5M.mjs → users.set-role.handler-Djw1_VGf.mjs} +1 -1
- package/dist/{validate.handler-DmiJmNA0.mjs → validate.handler-Drf_lssw.mjs} +5 -5
- package/dist/{workflow-build-DPqt_edf.mjs → workflow-build-Begvjfq8.mjs} +7 -7
- package/dist/{workflow-bundler-BzHk73PM-xQwAF08W.mjs → workflow-bundler-BzHk73PM-muPv1yGG.mjs} +1 -1
- package/dist/{workflows-DYwiYttT.mjs → workflows-DjMlxuBX.mjs} +13 -45
- package/package.json +12 -12
- package/dist/credentials-C-MN9q-b.mjs +0 -176
- package/dist/{build-metadata-BB_L45ZS-BtGGjHIV.mjs → build-metadata-BB_L45ZS-DSJL7dTy.mjs} +0 -0
- package/dist/{build-progress-O9f-4Z4D.mjs → build-progress-DLM1Bt4T.mjs} +0 -0
- package/dist/{clear.handler-BdR56Cok.mjs → clear.handler-T27GpgSu.mjs} +0 -0
- package/dist/{credential-schema-mismatch-kfGeiSB1.mjs → credential-schema-mismatch-ClQgEVtO.mjs} +0 -0
- package/dist/{deploy-BURTx92e.mjs → deploy-DhCbYFc7.mjs} +0 -0
- package/dist/{deploy-progress-C1Y73QVM.mjs → deploy-progress-BsUH7fGE.mjs} +0 -0
- package/dist/{detect-env-access-CwkOYeYM-D4aTZv4R.mjs → detect-env-access-CwkOYeYM-COq4U-4Y.mjs} +0 -0
- package/dist/{diff-utils-CXKNQUXO.mjs → diff-utils-Bs--xmoV.mjs} +0 -0
- package/dist/{import-module-y0glInUe-BwuOxEY3.mjs → import-module-y0glInUe-DV_3dsU0.mjs} +1 -1
- /package/dist/{logs.handler-Bs1DVMaO.mjs → logs.handler-DGGVPMOX.mjs} +0 -0
- /package/dist/{read-credential-keys-77a91T8M-aLuQvlIq.mjs → read-credential-keys-77a91T8M-DGK5XTQp.mjs} +0 -0
- /package/dist/{register.handler-C_NqMLir.mjs → register.handler-CePNU3sP.mjs} +0 -0
- /package/dist/{run-polling-DKWPGLyF.mjs → run-polling-fBouPjJ2.mjs} +0 -0
- /package/dist/{skill-installer-AX0X-u1J.mjs → skill-installer-D6j9IA3Z.mjs} +0 -0
- /package/dist/{skills.handler-KEUkV5NH.mjs → skills.handler-DYIQK0Vu.mjs} +0 -0
- /package/dist/{task-target-deploy-DeUyfi9H.mjs → task-target-deploy-B_3HPSo2.mjs} +0 -0
- /package/dist/{types-D1cVpE7_.mjs → types-AlA-ifK9.mjs} +0 -0
- /package/dist/{upgrade.handler-C7KvNL0x.mjs → upgrade.handler-DSZuw7-9.mjs} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { n as getKeystrokeBaseDir, t as KEYSTROKE_DIR } from "./paths-
|
|
4
|
-
import * as os from "node:os";
|
|
3
|
+
import { n as getKeystrokeBaseDir, t as KEYSTROKE_DIR } from "./paths-DpHfoaXN-CdPimpky.mjs";
|
|
5
4
|
import * as path$1 from "node:path";
|
|
5
|
+
import * as os from "node:os";
|
|
6
6
|
import * as fs from "node:fs/promises";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
//#region ../../packages/local-memory/dist/index.mjs
|
|
@@ -252,12 +252,13 @@ const credentialUserSchema = z.object({
|
|
|
252
252
|
email: z.email(),
|
|
253
253
|
name: z.string().optional()
|
|
254
254
|
});
|
|
255
|
-
const
|
|
255
|
+
const orgEntrySchema = z.object({
|
|
256
256
|
organizationId: z.uuid(),
|
|
257
257
|
organizationName: z.string().min(1),
|
|
258
258
|
apiKeyId: z.uuid().optional(),
|
|
259
259
|
createdAt: z.string().min(1)
|
|
260
|
-
}).strict()
|
|
260
|
+
}).strict();
|
|
261
|
+
const storedOrgEntrySchema = orgEntrySchema.extend({ apiKey: z.string().min(1) });
|
|
261
262
|
const credentialsMetadataSchema = z.object({
|
|
262
263
|
version: z.literal(3),
|
|
263
264
|
serverUrl: z.url(),
|
|
@@ -266,8 +267,93 @@ const credentialsMetadataSchema = z.object({
|
|
|
266
267
|
activeOrgId: z.uuid().optional(),
|
|
267
268
|
orgs: z.array(storedOrgEntrySchema)
|
|
268
269
|
}).strict();
|
|
270
|
+
/**
|
|
271
|
+
* Pre-#372 split credential storage: metadata in credentials.json, API keys in
|
|
272
|
+
* secrets.json or the OS keychain. Used only to detect and upgrade on-disk files.
|
|
273
|
+
*/
|
|
274
|
+
const credentialSecretStorageSchema = z.discriminatedUnion("kind", [z.object({
|
|
275
|
+
kind: z.literal("keychain"),
|
|
276
|
+
service: z.string().min(1)
|
|
277
|
+
}).strict(), z.object({
|
|
278
|
+
kind: z.literal("file"),
|
|
279
|
+
reason: z.enum([
|
|
280
|
+
"legacy",
|
|
281
|
+
"insecure-storage",
|
|
282
|
+
"test"
|
|
283
|
+
]).optional()
|
|
284
|
+
}).strict()]);
|
|
285
|
+
const credentialsMetadataSchemaV3Split = z.object({
|
|
286
|
+
version: z.literal(3),
|
|
287
|
+
serverUrl: z.url(),
|
|
288
|
+
webUrl: z.url(),
|
|
289
|
+
user: z.object({
|
|
290
|
+
id: z.string().min(1),
|
|
291
|
+
email: z.email(),
|
|
292
|
+
name: z.string().optional()
|
|
293
|
+
}).optional(),
|
|
294
|
+
activeOrgId: z.uuid().optional(),
|
|
295
|
+
orgs: z.array(orgEntrySchema),
|
|
296
|
+
secretStorage: credentialSecretStorageSchema
|
|
297
|
+
}).strict();
|
|
298
|
+
const orgSecretsSchema = z.object({
|
|
299
|
+
version: z.literal(1),
|
|
300
|
+
byOrgId: z.record(z.uuid(), z.string().min(1))
|
|
301
|
+
});
|
|
302
|
+
const SECRETS_FILE = "secrets.json";
|
|
303
|
+
const CREDENTIALS_FILE_MODE = 384;
|
|
304
|
+
var SplitCredentialConsolidationError = class extends Error {
|
|
305
|
+
constructor(message) {
|
|
306
|
+
super(message);
|
|
307
|
+
this.name = "SplitCredentialConsolidationError";
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
/**
|
|
311
|
+
* Upgrades pre-#372 split credential files (metadata + secrets.json) into the
|
|
312
|
+
* current single-file shape. Returns whether credentials.json was rewritten.
|
|
313
|
+
*/
|
|
314
|
+
async function consolidateSplitCredentialsIfNeeded(credentialsFilePath) {
|
|
315
|
+
const raw = await readJsonFile(credentialsFilePath);
|
|
316
|
+
if (raw === null) return false;
|
|
317
|
+
if (credentialsMetadataSchema.safeParse(raw).success) return false;
|
|
318
|
+
const split = credentialsMetadataSchemaV3Split.safeParse(raw);
|
|
319
|
+
if (!split.success) return false;
|
|
320
|
+
const consolidated = await buildConsolidatedCredentials(split.data, credentialsFilePath);
|
|
321
|
+
credentialsMetadataSchema.parse(consolidated);
|
|
322
|
+
await atomicWriteFile(credentialsFilePath, `${JSON.stringify(consolidated, null, 2)}\n`, { mode: CREDENTIALS_FILE_MODE });
|
|
323
|
+
await unlinkFileIfExists(path$1.join(path$1.dirname(credentialsFilePath), SECRETS_FILE));
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
async function buildConsolidatedCredentials(split, credentialsFilePath) {
|
|
327
|
+
const byOrgId = await readLegacySecretsByOrgId(credentialsFilePath);
|
|
328
|
+
const orgs = split.orgs.map((org) => {
|
|
329
|
+
const apiKey = byOrgId[org.organizationId];
|
|
330
|
+
if (!apiKey) throw new SplitCredentialConsolidationError(`Could not find a stored API key for organization "${org.organizationName}" while upgrading ~/.keystroke credential files. Run \`keystroke auth clear\`, then \`keystroke auth\` to sign in again.`);
|
|
331
|
+
return {
|
|
332
|
+
...org,
|
|
333
|
+
apiKey
|
|
334
|
+
};
|
|
335
|
+
});
|
|
336
|
+
return {
|
|
337
|
+
version: 3,
|
|
338
|
+
serverUrl: split.serverUrl,
|
|
339
|
+
webUrl: split.webUrl,
|
|
340
|
+
user: split.user,
|
|
341
|
+
activeOrgId: split.activeOrgId,
|
|
342
|
+
orgs
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
async function readLegacySecretsByOrgId(credentialsFilePath) {
|
|
346
|
+
const secretsPath = path$1.join(path$1.dirname(credentialsFilePath), SECRETS_FILE);
|
|
347
|
+
const secretsRaw = await readJsonFile(secretsPath);
|
|
348
|
+
if (secretsRaw === null) return {};
|
|
349
|
+
const parsed = orgSecretsSchema.safeParse(secretsRaw);
|
|
350
|
+
if (!parsed.success) throw new SplitCredentialConsolidationError(`Invalid legacy secrets file at ${secretsPath}. Run \`keystroke auth clear\`, then \`keystroke auth\` to sign in again.`);
|
|
351
|
+
return parsed.data.byOrgId;
|
|
352
|
+
}
|
|
269
353
|
const CREDENTIALS_FILE = "credentials.json";
|
|
354
|
+
const LEGACY_SECRETS_FILE = "secrets.json";
|
|
270
355
|
const METADATA_VERSION = 3;
|
|
356
|
+
const INVALID_CREDENTIALS_HINT = "Run `keystroke auth clear`, then `keystroke auth` to sign in again.";
|
|
271
357
|
/**
|
|
272
358
|
* Domain controller for Keystroke credentials.
|
|
273
359
|
*
|
|
@@ -275,6 +361,7 @@ const METADATA_VERSION = 3;
|
|
|
275
361
|
*/
|
|
276
362
|
var Credentials = class {
|
|
277
363
|
credentials;
|
|
364
|
+
splitConsolidationAttempted = false;
|
|
278
365
|
constructor(options = {}) {
|
|
279
366
|
this.credentials = new Store({
|
|
280
367
|
name: CREDENTIALS_FILE,
|
|
@@ -288,7 +375,7 @@ var Credentials = class {
|
|
|
288
375
|
return this.credentials.filePath;
|
|
289
376
|
}
|
|
290
377
|
async getActiveOrg() {
|
|
291
|
-
const meta = await this.
|
|
378
|
+
const meta = await this.readCredentials();
|
|
292
379
|
if (!meta?.activeOrgId) return null;
|
|
293
380
|
const org = meta.orgs.find((o) => o.organizationId === meta.activeOrgId);
|
|
294
381
|
if (!org) return null;
|
|
@@ -298,34 +385,34 @@ var Credentials = class {
|
|
|
298
385
|
};
|
|
299
386
|
}
|
|
300
387
|
async listOrgs() {
|
|
301
|
-
return (await this.
|
|
388
|
+
return (await this.readCredentials())?.orgs.map(toOrgEntry) ?? [];
|
|
302
389
|
}
|
|
303
390
|
async getApiKey(orgId) {
|
|
304
|
-
return (await this.
|
|
391
|
+
return (await this.readCredentials())?.orgs.find((org) => org.organizationId === orgId)?.apiKey ?? null;
|
|
305
392
|
}
|
|
306
393
|
async getServerUrls() {
|
|
307
|
-
const meta = await this.
|
|
394
|
+
const meta = await this.readCredentials();
|
|
308
395
|
return meta ? {
|
|
309
396
|
serverUrl: meta.serverUrl,
|
|
310
397
|
webUrl: meta.webUrl
|
|
311
398
|
} : null;
|
|
312
399
|
}
|
|
313
400
|
async getUser() {
|
|
314
|
-
return (await this.
|
|
401
|
+
return (await this.readCredentials())?.user;
|
|
315
402
|
}
|
|
316
403
|
async getActiveOrgId() {
|
|
317
|
-
return (await this.
|
|
404
|
+
return (await this.readCredentials())?.activeOrgId;
|
|
318
405
|
}
|
|
319
406
|
async hasStoredCredentials() {
|
|
320
|
-
const meta = await this.
|
|
407
|
+
const meta = await this.readCredentials();
|
|
321
408
|
return meta !== null && meta.orgs.length > 0;
|
|
322
409
|
}
|
|
323
410
|
async getStorageInfo() {
|
|
324
|
-
await this.
|
|
411
|
+
await this.readCredentials();
|
|
325
412
|
return { credentialsFilePath: this.credentials.filePath };
|
|
326
413
|
}
|
|
327
414
|
async upsertOrg(input) {
|
|
328
|
-
const existing = await this.
|
|
415
|
+
const existing = await this.readCredentials();
|
|
329
416
|
const orgWithApiKey = {
|
|
330
417
|
...input.org,
|
|
331
418
|
apiKey: input.apiKey
|
|
@@ -348,7 +435,7 @@ var Credentials = class {
|
|
|
348
435
|
await this.credentials.write(newMeta);
|
|
349
436
|
}
|
|
350
437
|
async setActiveOrg(orgId) {
|
|
351
|
-
const meta = await this.
|
|
438
|
+
const meta = await this.readCredentials();
|
|
352
439
|
if (!meta) throw new Error("No stored credentials found. Run `keystroke auth` first.");
|
|
353
440
|
if (!meta.orgs.some((o) => o.organizationId === orgId)) throw new Error(`No stored API key for organization ${orgId}. Run \`keystroke auth\` to add credentials for this org.`);
|
|
354
441
|
await this.credentials.update((m) => ({
|
|
@@ -357,7 +444,7 @@ var Credentials = class {
|
|
|
357
444
|
}));
|
|
358
445
|
}
|
|
359
446
|
async removeOrg(orgId) {
|
|
360
|
-
const meta = await this.
|
|
447
|
+
const meta = await this.readCredentials();
|
|
361
448
|
if (!meta) return null;
|
|
362
449
|
const removed = meta.orgs.find((o) => o.organizationId === orgId);
|
|
363
450
|
if (!removed) return null;
|
|
@@ -376,8 +463,38 @@ var Credentials = class {
|
|
|
376
463
|
}
|
|
377
464
|
async clear() {
|
|
378
465
|
await this.credentials.delete();
|
|
466
|
+
await unlinkFileIfExists(this.legacySecretsFilePath);
|
|
467
|
+
this.splitConsolidationAttempted = false;
|
|
468
|
+
}
|
|
469
|
+
get legacySecretsFilePath() {
|
|
470
|
+
return path$1.join(path$1.dirname(this.credentials.filePath), LEGACY_SECRETS_FILE);
|
|
471
|
+
}
|
|
472
|
+
async readCredentials() {
|
|
473
|
+
await this.consolidateSplitStorageIfNeeded();
|
|
474
|
+
try {
|
|
475
|
+
return await this.credentials.read();
|
|
476
|
+
} catch (error) {
|
|
477
|
+
throw toCredentialsReadError(error, this.credentials.filePath);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
async consolidateSplitStorageIfNeeded() {
|
|
481
|
+
if (this.splitConsolidationAttempted) return;
|
|
482
|
+
this.splitConsolidationAttempted = true;
|
|
483
|
+
try {
|
|
484
|
+
await consolidateSplitCredentialsIfNeeded(this.credentials.filePath);
|
|
485
|
+
} catch (error) {
|
|
486
|
+
if (error instanceof SplitCredentialConsolidationError) throw error;
|
|
487
|
+
throw toCredentialsReadError(error, this.credentials.filePath);
|
|
488
|
+
}
|
|
379
489
|
}
|
|
380
490
|
};
|
|
491
|
+
function toCredentialsReadError(error, credentialsFilePath) {
|
|
492
|
+
if (error instanceof SplitCredentialConsolidationError) return error;
|
|
493
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
494
|
+
if (message.includes("no migrations are configured")) return /* @__PURE__ */ new Error(`Stored credentials at ${credentialsFilePath} use an outdated format that could not be upgraded automatically. ${INVALID_CREDENTIALS_HINT}`);
|
|
495
|
+
if (error instanceof Error) return error;
|
|
496
|
+
return new Error(message);
|
|
497
|
+
}
|
|
381
498
|
/**
|
|
382
499
|
* Production singleton — the primary public API for credential storage. Tests
|
|
383
500
|
* should construct `new Credentials({ homeDir })` instead.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { D as CliExitError, _ as isAuthError, a as ui, j as throwReportedCliExit, m as REAUTH_HINT, n as style, t as ANSI, v as isNetworkError, y as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
-
import { i as projects } from "./dist-
|
|
4
|
+
import { i as projects } from "./dist-Dw7gCE7y.mjs";
|
|
5
5
|
import { i as writeJson } from "./output-BWcVRt-T.mjs";
|
|
6
|
-
import { i as requireClient } from "./context-
|
|
6
|
+
import { i as requireClient } from "./context-sgKhRc5v.mjs";
|
|
7
7
|
import { n as CredentialConnectionIdSchema, r as CredentialScopeSchema, t as ConnectionStatusSchema } from "./schema-DFJiNWyd.mjs";
|
|
8
8
|
import { a as readManifestsFromOutDir } from "./dist-CTEtWDW4.mjs";
|
|
9
|
-
import { t as requireWorkflowsDir } from "./resolve-project-
|
|
10
|
-
import { t as getIntegrationCatalog } from "./integration-catalog-
|
|
11
|
-
import { t as groupCredentialRequirements } from "./credentials-
|
|
9
|
+
import { t as requireWorkflowsDir } from "./resolve-project-E9mrh_el.mjs";
|
|
10
|
+
import { t as getIntegrationCatalog } from "./integration-catalog-CiZ62hb_.mjs";
|
|
11
|
+
import { t as groupCredentialRequirements } from "./credentials-DKrSaaLw.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
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { D as CliExitError, P as logger, a as ui, v as isNetworkError, y as toErrorMessage } from "./keystroke.mjs";
|
|
4
4
|
import { r as isJsonMode } from "./output-BWcVRt-T.mjs";
|
|
5
|
-
import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-
|
|
5
|
+
import { n as renderCredentialSchemaMismatchText, r as writeCredentialSchemaMismatchJson, t as isCredentialSchemaMismatchErrorLike } from "./credential-schema-mismatch-ClQgEVtO.mjs";
|
|
6
6
|
//#region src/lib/error-boundary.ts
|
|
7
7
|
async function withErrorBoundary(commandName, fn, options = {}) {
|
|
8
8
|
const jsonMode = options.json ?? isJsonMode({});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { t as createTypedCommand } from "./commander-
|
|
4
|
-
import { t as SKILL_INSTALL_METHODS } from "./types-
|
|
3
|
+
import { t as createTypedCommand } from "./commander-BlrSdFcu.mjs";
|
|
4
|
+
import { t as SKILL_INSTALL_METHODS } from "./types-AlA-ifK9.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/init/init.command.ts
|
|
7
7
|
const InitOptionsSchema = z.object({
|
|
@@ -45,7 +45,7 @@ function createInitCommand() {
|
|
|
45
45
|
description: "Initialize a Keystroke project (creates keystroke.config.ts)",
|
|
46
46
|
schema: InitOptionsSchema,
|
|
47
47
|
optionsConfig: INIT_OPTIONS_CONFIG,
|
|
48
|
-
loadHandler: async () => (await import("./init.handler-
|
|
48
|
+
loadHandler: async () => (await import("./init.handler-CzlmkNXi.mjs")).handleInit
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
//#endregion
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { D as CliExitError, a as ui, i as fetchLatestNpmPackageVersion } from "./keystroke.mjs";
|
|
4
|
-
import { i as projects } from "./dist-
|
|
4
|
+
import { i as projects } from "./dist-Dw7gCE7y.mjs";
|
|
5
5
|
import { a as writeProjectConfig, i as readProjectConfig, r as getProjectConfigPath } from "./project-config-DudGRFPO.mjs";
|
|
6
|
-
import { i as requireClient } from "./context-
|
|
7
|
-
import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-
|
|
6
|
+
import { i as requireClient } from "./context-sgKhRc5v.mjs";
|
|
7
|
+
import { i as UnknownSkillAgentError, n as resolveSkillInstallChoices, r as installKeystrokeAgentSkills, t as summarizeSkillInstall } from "./skill-installer-D6j9IA3Z.mjs";
|
|
8
8
|
import { createRequire } from "node:module";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { access, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { a as ui, j as throwReportedCliExit, n as style, t as ANSI, y as toErrorMessage } from "./keystroke.mjs";
|
|
4
|
-
import { i as projects } from "./dist-
|
|
4
|
+
import { i as projects } from "./dist-Dw7gCE7y.mjs";
|
|
5
5
|
import { i as writeJson } from "./output-BWcVRt-T.mjs";
|
|
6
|
-
import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-
|
|
7
|
-
import {
|
|
8
|
-
import { n as resolveLocalWorkflowManifest, r as resolveProjectContext, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-
|
|
6
|
+
import { i as requireClient, t as assertProjectConfigMatchesAuthenticatedOrg } from "./context-sgKhRc5v.mjs";
|
|
7
|
+
import { a as resolveTypeHint } from "./schema-display-FvI8QjOQ.mjs";
|
|
8
|
+
import { n as resolveLocalWorkflowManifest, r as resolveProjectContext, t as lookupCurrentDeploymentWorkflow } from "./current-deployment-workflow-B1VQCYC-.mjs";
|
|
9
9
|
import dayjs from "dayjs";
|
|
10
10
|
//#region src/commands/workflows/inspect/inspect-display.ts
|
|
11
11
|
function formatBuildTimestamp(iso) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { D as CliExitError, _ as isAuthError, a as ui, j as throwReportedCliExit, m as REAUTH_HINT, v as isNetworkError, y as toErrorMessage } from "./keystroke.mjs";
|
|
4
4
|
import { a as writeJsonError } from "./output-BWcVRt-T.mjs";
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
5
|
+
import { i as requireClient } from "./context-sgKhRc5v.mjs";
|
|
6
6
|
//#region src/lib/integration-catalog.ts
|
|
7
7
|
const catalogCache = /* @__PURE__ */ new WeakMap();
|
|
8
8
|
function buildView(entries) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { n as JsonOptionSchema, t as JSON_OPTION_CONFIG } from "./output-BWcVRt-T.mjs";
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
5
|
-
import { t as ConnectionKindValues } from "./api-
|
|
4
|
+
import { t as createTypedCommand } from "./commander-BlrSdFcu.mjs";
|
|
5
|
+
import { t as ConnectionKindValues } from "./api-BK3EhPvs.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
//#region ../../packages/shared-types/src/official-providers/index.ts
|
|
8
8
|
const officialProviderRegistry = {
|
|
@@ -99,6 +99,14 @@ const IntegrationsListOptionsSchema = JsonOptionSchema.extend({
|
|
|
99
99
|
connected: z.boolean().optional(),
|
|
100
100
|
details: z.boolean().optional()
|
|
101
101
|
});
|
|
102
|
+
const IntegrationShowOptionsSchema = JsonOptionSchema.extend({ id: z.string().min(1) });
|
|
103
|
+
const INTEGRATION_SHOW_OPTIONS_CONFIG = {
|
|
104
|
+
...JSON_OPTION_CONFIG,
|
|
105
|
+
id: {
|
|
106
|
+
flag: "",
|
|
107
|
+
description: ""
|
|
108
|
+
}
|
|
109
|
+
};
|
|
102
110
|
const INTEGRATIONS_LIST_OPTIONS_CONFIG = {
|
|
103
111
|
...JSON_OPTION_CONFIG,
|
|
104
112
|
kind: {
|
|
@@ -150,35 +158,50 @@ function createIntegrationsCommand() {
|
|
|
150
158
|
description: "List Keystroke integrations available to your organization",
|
|
151
159
|
schema: IntegrationsListOptionsSchema,
|
|
152
160
|
optionsConfig: INTEGRATIONS_LIST_OPTIONS_CONFIG,
|
|
153
|
-
loadHandler: async () => (await import("./list.handler-
|
|
154
|
-
subcommands: [
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
161
|
+
loadHandler: async () => (await import("./list.handler-Jk_vK66s.mjs")).handleIntegrationsList,
|
|
162
|
+
subcommands: [
|
|
163
|
+
createTypedCommand({
|
|
164
|
+
name: "list",
|
|
165
|
+
description: "List Keystroke integrations available to your organization",
|
|
166
|
+
schema: IntegrationsListOptionsSchema,
|
|
167
|
+
optionsConfig: INTEGRATIONS_LIST_OPTIONS_CONFIG,
|
|
168
|
+
loadHandler: async () => (await import("./list.handler-Jk_vK66s.mjs")).handleIntegrationsList
|
|
169
|
+
}),
|
|
170
|
+
createTypedCommand({
|
|
171
|
+
name: "show",
|
|
172
|
+
description: "Show details about an integration, including its operations",
|
|
173
|
+
schema: IntegrationShowOptionsSchema,
|
|
174
|
+
optionsConfig: INTEGRATION_SHOW_OPTIONS_CONFIG,
|
|
175
|
+
argument: {
|
|
176
|
+
name: "id",
|
|
177
|
+
description: "Integration id, e.g. aws-s3",
|
|
178
|
+
key: "id"
|
|
179
|
+
},
|
|
180
|
+
loadHandler: async () => (await import("./show.handler-C_VDYU91.mjs")).handleIntegrationShow
|
|
181
|
+
}),
|
|
182
|
+
createTypedCommand({
|
|
183
|
+
name: "register",
|
|
184
|
+
description: "Register an org-scoped custom provider app for custom OAuth support",
|
|
185
|
+
schema: IntegrationsRegisterOptionsSchema,
|
|
186
|
+
optionsConfig: INTEGRATIONS_REGISTER_OPTIONS_CONFIG,
|
|
187
|
+
handler: async (opts, ctx) => {
|
|
188
|
+
const { handleIntegrationsRegister } = await import("./register.handler-CePNU3sP.mjs");
|
|
189
|
+
await handleIntegrationsRegister({
|
|
190
|
+
integrationId: opts.integrationId,
|
|
191
|
+
clientAppCredentialSetId: opts.clientApp,
|
|
192
|
+
provider: opts.provider,
|
|
193
|
+
externalAppId: opts.externalAppId,
|
|
194
|
+
displayName: opts.displayName,
|
|
195
|
+
json: opts.json
|
|
196
|
+
}, ctx);
|
|
197
|
+
},
|
|
198
|
+
argument: {
|
|
199
|
+
name: "integrationId",
|
|
200
|
+
description: "Workspace integration id to register (e.g., acmeCrm)",
|
|
201
|
+
key: "integrationId"
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
]
|
|
182
205
|
});
|
|
183
206
|
}
|
|
184
207
|
//#endregion
|
|
@@ -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-BWcVRt-T.mjs";
|
|
4
|
-
import { t as createTypedCommand } from "./commander-
|
|
4
|
+
import { t as createTypedCommand } from "./commander-BlrSdFcu.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region src/commands/invites/invites.command.ts
|
|
7
7
|
const InvitesListOptionsSchema = JsonOptionSchema;
|
|
@@ -19,13 +19,13 @@ function createInvitesCommand() {
|
|
|
19
19
|
description: "Manage invitations for the current user",
|
|
20
20
|
schema: InvitesListOptionsSchema,
|
|
21
21
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
22
|
-
loadHandler: async () => (await import("./list.handler-
|
|
22
|
+
loadHandler: async () => (await import("./list.handler-LxZInip2.mjs")).handleInvitesList,
|
|
23
23
|
subcommands: [createTypedCommand({
|
|
24
24
|
name: "list",
|
|
25
25
|
description: "List pending invites for the current user",
|
|
26
26
|
schema: InvitesListOptionsSchema,
|
|
27
27
|
optionsConfig: { ...JSON_OPTION_CONFIG },
|
|
28
|
-
loadHandler: async () => (await import("./list.handler-
|
|
28
|
+
loadHandler: async () => (await import("./list.handler-LxZInip2.mjs")).handleInvitesList
|
|
29
29
|
}), createTypedCommand({
|
|
30
30
|
name: "accept",
|
|
31
31
|
description: "Accept a pending invite",
|
|
@@ -36,7 +36,7 @@ function createInvitesCommand() {
|
|
|
36
36
|
description: "Invite ID to accept",
|
|
37
37
|
key: "inviteId"
|
|
38
38
|
},
|
|
39
|
-
loadHandler: async () => (await import("./accept.handler-
|
|
39
|
+
loadHandler: async () => (await import("./accept.handler-DNfIXPSP.mjs")).handleInvitesAccept
|
|
40
40
|
})]
|
|
41
41
|
});
|
|
42
42
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { a as ui } from "./keystroke.mjs";
|
|
4
4
|
import { i as writeJson } from "./output-BWcVRt-T.mjs";
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
5
|
+
import { i as requireClient } from "./context-sgKhRc5v.mjs";
|
|
6
6
|
import { i as requireOrganizationId, n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CSZj4XlH.mjs";
|
|
7
7
|
import Table from "cli-table3";
|
|
8
8
|
//#region src/commands/org/invites.list.handler.ts
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { a as ui } from "./keystroke.mjs";
|
|
4
4
|
import { i as writeJson } from "./output-BWcVRt-T.mjs";
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
5
|
+
import { i as requireClient } from "./context-sgKhRc5v.mjs";
|
|
6
6
|
import { i as requireOrganizationId, n as isIamJsonMode, t as handleIamError } from "./iam-command-utils-CSZj4XlH.mjs";
|
|
7
7
|
//#region src/commands/org/invites.resend.handler.ts
|
|
8
8
|
async function handleOrgInvitesResend(options, ctx) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { a as ui } from "./keystroke.mjs";
|
|
4
4
|
import { i as writeJson } from "./output-BWcVRt-T.mjs";
|
|
5
|
-
import { i as requireClient } from "./context-
|
|
5
|
+
import { i as requireClient } from "./context-sgKhRc5v.mjs";
|
|
6
6
|
import { i as requireOrganizationId, n as isIamJsonMode, r as requireConfirmation, t as handleIamError } from "./iam-command-utils-CSZj4XlH.mjs";
|
|
7
7
|
//#region src/commands/org/invites.revoke.handler.ts
|
|
8
8
|
async function handleOrgInvitesRevoke(options, ctx) {
|
package/dist/keystroke.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { n as getKeystrokeBaseDir } from "./paths-
|
|
3
|
+
import { n as getKeystrokeBaseDir } from "./paths-DpHfoaXN-CdPimpky.mjs";
|
|
4
4
|
import { n as DEFAULT_CLI_WEB_URL, t as DEFAULT_CLI_SERVER_URL } from "./default-urls-BoSm4s9C.mjs";
|
|
5
|
-
import * as os from "node:os";
|
|
6
5
|
import * as path$1 from "node:path";
|
|
7
6
|
import path from "node:path";
|
|
7
|
+
import * as os from "node:os";
|
|
8
8
|
import * as fsPromises from "node:fs/promises";
|
|
9
9
|
import * as fs from "node:fs";
|
|
10
10
|
import { existsSync, writeFileSync } from "node:fs";
|
|
@@ -521,7 +521,7 @@ const logger = {
|
|
|
521
521
|
};
|
|
522
522
|
//#endregion
|
|
523
523
|
//#region package.json
|
|
524
|
-
var version = "0.0.
|
|
524
|
+
var version = "0.0.30";
|
|
525
525
|
//#endregion
|
|
526
526
|
//#region src/command-registry.ts
|
|
527
527
|
const ROOT_OPTIONS_WITH_VALUES$1 = new Set([
|
|
@@ -533,84 +533,92 @@ const ROOT_VERSION_FLAGS = new Set(["-V", "--version"]);
|
|
|
533
533
|
const lazyCommandDefinitions = [
|
|
534
534
|
{
|
|
535
535
|
name: "agents",
|
|
536
|
-
loadCommand: async () => (await import("./agents-
|
|
536
|
+
loadCommand: async () => (await import("./agents-G37PM35Z.mjs")).createAgentsCommand()
|
|
537
537
|
},
|
|
538
538
|
{
|
|
539
539
|
name: "admin",
|
|
540
|
-
loadCommand: async () => (await import("./admin-
|
|
540
|
+
loadCommand: async () => (await import("./admin-CJp8XksD.mjs")).createAdminCommand()
|
|
541
541
|
},
|
|
542
542
|
{
|
|
543
543
|
name: "api-keys",
|
|
544
|
-
loadCommand: async () => (await import("./api-keys-
|
|
544
|
+
loadCommand: async () => (await import("./api-keys-4igNHJ_W.mjs")).createApiKeysCommand()
|
|
545
545
|
},
|
|
546
546
|
{
|
|
547
547
|
name: "auth",
|
|
548
|
-
loadCommand: async () => (await import("./auth-
|
|
548
|
+
loadCommand: async () => (await import("./auth-CIOmmV4x.mjs")).createAuthCommand()
|
|
549
549
|
},
|
|
550
550
|
{
|
|
551
551
|
name: "connect",
|
|
552
|
-
loadCommand: async () => (await import("./connect-
|
|
552
|
+
loadCommand: async () => (await import("./connect-BbLJhlIA.mjs")).createConnectCommand()
|
|
553
553
|
},
|
|
554
554
|
{
|
|
555
555
|
name: "credentials",
|
|
556
|
-
loadCommand: async () => (await import("./credentials-
|
|
556
|
+
loadCommand: async () => (await import("./credentials-LmhgE-Co.mjs")).createCredentialsCommand(),
|
|
557
557
|
copyInheritedSettings: true
|
|
558
558
|
},
|
|
559
559
|
{
|
|
560
560
|
name: "org",
|
|
561
|
-
loadCommand: async () => (await import("./org-
|
|
561
|
+
loadCommand: async () => (await import("./org-DOH7YHk2.mjs")).createOrgCommand()
|
|
562
562
|
},
|
|
563
563
|
{
|
|
564
564
|
name: "deploy",
|
|
565
|
-
loadCommand: async () => (await import("./deploy-
|
|
565
|
+
loadCommand: async () => (await import("./deploy-DvPfR9fC.mjs")).createDeployCommand()
|
|
566
566
|
},
|
|
567
567
|
{
|
|
568
568
|
name: "init",
|
|
569
|
-
loadCommand: async () => (await import("./init-
|
|
569
|
+
loadCommand: async () => (await import("./init-DX08T87c.mjs")).createInitCommand()
|
|
570
570
|
},
|
|
571
571
|
{
|
|
572
572
|
name: "integrations",
|
|
573
|
-
loadCommand: async () => (await import("./integrations-
|
|
573
|
+
loadCommand: async () => (await import("./integrations-MEExmqcg.mjs")).createIntegrationsCommand()
|
|
574
574
|
},
|
|
575
575
|
{
|
|
576
576
|
name: "invites",
|
|
577
|
-
loadCommand: async () => (await import("./invites-
|
|
577
|
+
loadCommand: async () => (await import("./invites-BuatfJmN.mjs")).createInvitesCommand()
|
|
578
578
|
},
|
|
579
579
|
{
|
|
580
580
|
name: "logs",
|
|
581
|
-
loadCommand: async () => (await import("./logs-
|
|
581
|
+
loadCommand: async () => (await import("./logs-B9YMhUGt.mjs")).createLogsCommand()
|
|
582
582
|
},
|
|
583
583
|
{
|
|
584
584
|
name: "listen",
|
|
585
|
-
loadCommand: async () => (await import("./listen-
|
|
585
|
+
loadCommand: async () => (await import("./listen-C_7Rgwkb.mjs")).createListenCommand()
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
name: "operations",
|
|
589
|
+
loadCommand: async () => (await import("./operations-wXS1s3du.mjs")).createOperationsCommand()
|
|
586
590
|
},
|
|
587
591
|
{
|
|
588
592
|
name: "projects",
|
|
589
|
-
loadCommand: async () => (await import("./projects-
|
|
593
|
+
loadCommand: async () => (await import("./projects-C5GZ5Jrf.mjs")).createProjectsCommand()
|
|
590
594
|
},
|
|
591
595
|
{
|
|
592
596
|
name: "runs",
|
|
593
|
-
loadCommand: async () => (await import("./runs-
|
|
597
|
+
loadCommand: async () => (await import("./runs-swYYBT6C.mjs")).createRunsCommand()
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
name: "search",
|
|
601
|
+
loadCommand: async () => (await import("./search-BEfy2fG9.mjs")).createSearchCommand()
|
|
594
602
|
},
|
|
595
603
|
{
|
|
596
604
|
name: "skills",
|
|
597
|
-
loadCommand: async () => (await import("./skills.command-
|
|
605
|
+
loadCommand: async () => (await import("./skills.command-0-E8mcYE.mjs")).createSkillsCommand()
|
|
598
606
|
},
|
|
599
607
|
{
|
|
600
608
|
name: "sync",
|
|
601
|
-
loadCommand: async () => (await import("./sync-
|
|
609
|
+
loadCommand: async () => (await import("./sync-6fZkIUtn.mjs")).createSyncCommand()
|
|
602
610
|
},
|
|
603
611
|
{
|
|
604
612
|
name: "test",
|
|
605
|
-
loadCommand: async () => (await import("./test-
|
|
613
|
+
loadCommand: async () => (await import("./test-C8VIZe9V.mjs")).createTestCommand()
|
|
606
614
|
},
|
|
607
615
|
{
|
|
608
616
|
name: "upgrade",
|
|
609
|
-
loadCommand: async () => (await import("./upgrade-
|
|
617
|
+
loadCommand: async () => (await import("./upgrade-DgOcc8IT.mjs")).createUpgradeCommand()
|
|
610
618
|
},
|
|
611
619
|
{
|
|
612
620
|
name: "workflows",
|
|
613
|
-
loadCommand: async () => (await import("./workflows-
|
|
621
|
+
loadCommand: async () => (await import("./workflows-DjMlxuBX.mjs")).createWorkflowsCommand()
|
|
614
622
|
}
|
|
615
623
|
];
|
|
616
624
|
function selectCommandRegistration(argv, commandNames = new Set(lazyCommandDefinitions.map((definition) => definition.name))) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { a as ui, n as style, t as ANSI } from "./keystroke.mjs";
|
|
4
|
-
import { n as resolveCredentialValuesFromEnv, t as groupCredentialRequirements } from "./credentials-
|
|
4
|
+
import { n as resolveCredentialValuesFromEnv, t as groupCredentialRequirements } from "./credentials-DKrSaaLw.mjs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { readFile } from "node:fs/promises";
|
|
7
7
|
import { parse } from "dotenv";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { a as ui, n as style, t as ANSI } from "./keystroke.mjs";
|
|
4
|
-
import { i as projects } from "./dist-
|
|
4
|
+
import { i as projects } from "./dist-Dw7gCE7y.mjs";
|
|
5
5
|
import { i as readProjectConfig } from "./project-config-DudGRFPO.mjs";
|
|
6
6
|
import { i as writeJson } from "./output-BWcVRt-T.mjs";
|
|
7
7
|
import { access } from "node:fs/promises";
|