@canaryai/cli 0.2.8 → 0.2.12
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/README.md +77 -92
- package/dist/chunk-CEW4BDXD.js +186 -0
- package/dist/chunk-CEW4BDXD.js.map +1 -0
- package/dist/chunk-ERSNYLMZ.js +229 -0
- package/dist/chunk-ERSNYLMZ.js.map +1 -0
- package/dist/{chunk-FK3EZADZ.js → chunk-MSMC6UXW.js} +2021 -873
- package/dist/chunk-MSMC6UXW.js.map +1 -0
- package/dist/{chunk-K2OB72B6.js → chunk-Q7WFBG5C.js} +2 -2
- package/dist/{debug-workflow-55G4Y6YT.js → debug-workflow-53ULOFJC.js} +57 -36
- package/dist/debug-workflow-53ULOFJC.js.map +1 -0
- package/dist/{docs-RPFT7ZJB.js → docs-BEE3LOCO.js} +2 -2
- package/dist/{feature-flag-2FDSKOVX.js → feature-flag-CYTDV4ZB.js} +3 -2
- package/dist/{feature-flag-2FDSKOVX.js.map → feature-flag-CYTDV4ZB.js.map} +1 -1
- package/dist/index.js +72 -137
- package/dist/index.js.map +1 -1
- package/dist/init-M6I3MG3D.js +146 -0
- package/dist/init-M6I3MG3D.js.map +1 -0
- package/dist/{issues-6ZDNDSD6.js → issues-NLM72HLU.js} +3 -2
- package/dist/{issues-6ZDNDSD6.js.map → issues-NLM72HLU.js.map} +1 -1
- package/dist/{knobs-MZRTYS3P.js → knobs-O35GAU5M.js} +3 -2
- package/dist/{knobs-MZRTYS3P.js.map → knobs-O35GAU5M.js.map} +1 -1
- package/dist/list-4K4EIGAT.js +57 -0
- package/dist/list-4K4EIGAT.js.map +1 -0
- package/dist/local-NHXXPHZ3.js +63 -0
- package/dist/local-NHXXPHZ3.js.map +1 -0
- package/dist/{local-browser-X7J27IGS.js → local-browser-VAZORCO3.js} +3 -3
- package/dist/login-ZLP64YQP.js +130 -0
- package/dist/login-ZLP64YQP.js.map +1 -0
- package/dist/mcp-ZF5G5DCB.js +377 -0
- package/dist/mcp-ZF5G5DCB.js.map +1 -0
- package/dist/{record-4OX7HXWQ.js → record-V6QKFFH3.js} +133 -72
- package/dist/record-V6QKFFH3.js.map +1 -0
- package/dist/{release-L4IXOHDF.js → release-7TI7EIGD.js} +8 -4
- package/dist/release-7TI7EIGD.js.map +1 -0
- package/dist/session-UGNJXRUW.js +819 -0
- package/dist/session-UGNJXRUW.js.map +1 -0
- package/dist/skill-ORWAPBDW.js +424 -0
- package/dist/skill-ORWAPBDW.js.map +1 -0
- package/dist/{src-I4EXB5OD.js → src-4VIDSK4A.js} +18 -2
- package/dist/start-E532F3BU.js +112 -0
- package/dist/start-E532F3BU.js.map +1 -0
- package/dist/workflow-HXIUXRFI.js +613 -0
- package/dist/workflow-HXIUXRFI.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-6WWHXWCS.js +0 -65
- package/dist/chunk-6WWHXWCS.js.map +0 -1
- package/dist/chunk-DXIAHB72.js +0 -340
- package/dist/chunk-DXIAHB72.js.map +0 -1
- package/dist/chunk-FK3EZADZ.js.map +0 -1
- package/dist/debug-workflow-55G4Y6YT.js.map +0 -1
- package/dist/mcp-4JVLADZL.js +0 -688
- package/dist/mcp-4JVLADZL.js.map +0 -1
- package/dist/record-4OX7HXWQ.js.map +0 -1
- package/dist/release-L4IXOHDF.js.map +0 -1
- /package/dist/{chunk-K2OB72B6.js.map → chunk-Q7WFBG5C.js.map} +0 -0
- /package/dist/{docs-RPFT7ZJB.js.map → docs-BEE3LOCO.js.map} +0 -0
- /package/dist/{local-browser-X7J27IGS.js.map → local-browser-VAZORCO3.js.map} +0 -0
- /package/dist/{src-I4EXB5OD.js.map → src-4VIDSK4A.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; const require = __cr(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
connectTunnel,
|
|
4
|
-
createLocalRun,
|
|
5
|
-
createTunnel,
|
|
6
|
-
runLocalTest,
|
|
7
|
-
runTunnel
|
|
8
|
-
} from "./chunk-DXIAHB72.js";
|
|
9
2
|
import {
|
|
10
3
|
ENV_URLS,
|
|
11
4
|
envToProfile,
|
|
@@ -27,7 +20,7 @@ import {
|
|
|
27
20
|
// src/index.ts
|
|
28
21
|
import { spawnSync as spawnSync2 } from "child_process";
|
|
29
22
|
import { createRequire as createRequire2 } from "module";
|
|
30
|
-
import
|
|
23
|
+
import process6 from "process";
|
|
31
24
|
import path4 from "path";
|
|
32
25
|
import { fileURLToPath as fileURLToPath2, pathToFileURL as pathToFileURL2 } from "url";
|
|
33
26
|
|
|
@@ -547,79 +540,10 @@ async function runOrgs(argv) {
|
|
|
547
540
|
console.log("To switch: canary login --org <name>");
|
|
548
541
|
}
|
|
549
542
|
|
|
550
|
-
// src/run-local.ts
|
|
551
|
-
import process4 from "process";
|
|
552
|
-
function getArgValue2(argv, key) {
|
|
553
|
-
const index = argv.indexOf(key);
|
|
554
|
-
if (index === -1) return void 0;
|
|
555
|
-
return argv[index + 1];
|
|
556
|
-
}
|
|
557
|
-
async function runLocalSession(argv) {
|
|
558
|
-
const apiUrl = getArgValue2(argv, "--api-url") ?? process4.env.CANARY_API_URL ?? "https://api.trycanary.ai";
|
|
559
|
-
const token = getArgValue2(argv, "--token") ?? process4.env.CANARY_API_TOKEN ?? await readStoredToken();
|
|
560
|
-
if (!token) {
|
|
561
|
-
console.error("Missing token. Run `canary login` first or set CANARY_API_TOKEN.");
|
|
562
|
-
process4.exit(1);
|
|
563
|
-
}
|
|
564
|
-
const portRaw = getArgValue2(argv, "--port") ?? process4.env.CANARY_LOCAL_PORT;
|
|
565
|
-
const tunnelUrl = getArgValue2(argv, "--tunnel-url");
|
|
566
|
-
const title = getArgValue2(argv, "--title");
|
|
567
|
-
const featureSpec = getArgValue2(argv, "--feature");
|
|
568
|
-
const startUrl = getArgValue2(argv, "--start-url");
|
|
569
|
-
if (!tunnelUrl && !portRaw) {
|
|
570
|
-
console.error("Missing --port or --tunnel-url");
|
|
571
|
-
process4.exit(1);
|
|
572
|
-
}
|
|
573
|
-
let publicUrl = tunnelUrl;
|
|
574
|
-
let ws = null;
|
|
575
|
-
if (!publicUrl && portRaw) {
|
|
576
|
-
const port = Number(portRaw);
|
|
577
|
-
if (Number.isNaN(port) || port <= 0) {
|
|
578
|
-
console.error("Invalid --port value");
|
|
579
|
-
process4.exit(1);
|
|
580
|
-
}
|
|
581
|
-
const tunnel = await createTunnel({ apiUrl, token, port });
|
|
582
|
-
publicUrl = tunnel.publicUrl;
|
|
583
|
-
ws = connectTunnel({
|
|
584
|
-
apiUrl,
|
|
585
|
-
tunnelId: tunnel.tunnelId,
|
|
586
|
-
token: tunnel.token,
|
|
587
|
-
port,
|
|
588
|
-
onReady: () => {
|
|
589
|
-
console.log(`Tunnel connected: ${publicUrl ?? tunnel.tunnelId}`);
|
|
590
|
-
}
|
|
591
|
-
});
|
|
592
|
-
}
|
|
593
|
-
if (!publicUrl) {
|
|
594
|
-
console.error("Failed to resolve tunnel URL");
|
|
595
|
-
process4.exit(1);
|
|
596
|
-
}
|
|
597
|
-
const run2 = await createLocalRun({
|
|
598
|
-
apiUrl,
|
|
599
|
-
token,
|
|
600
|
-
title,
|
|
601
|
-
featureSpec,
|
|
602
|
-
startUrl,
|
|
603
|
-
tunnelUrl: publicUrl
|
|
604
|
-
});
|
|
605
|
-
console.log(`Local test queued: ${run2.runId}`);
|
|
606
|
-
if (run2.watchUrl) {
|
|
607
|
-
console.log(`Watch: ${run2.watchUrl}`);
|
|
608
|
-
}
|
|
609
|
-
if (ws) {
|
|
610
|
-
console.log("Tunnel active. Press Ctrl+C to stop.");
|
|
611
|
-
process4.on("SIGINT", () => {
|
|
612
|
-
ws?.close();
|
|
613
|
-
process4.exit(0);
|
|
614
|
-
});
|
|
615
|
-
await new Promise(() => void 0);
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
|
|
619
543
|
// src/remote-test.ts
|
|
620
|
-
import
|
|
544
|
+
import process4 from "process";
|
|
621
545
|
import { createParser } from "eventsource-parser";
|
|
622
|
-
function
|
|
546
|
+
function getArgValue2(argv, key) {
|
|
623
547
|
const index = argv.indexOf(key);
|
|
624
548
|
if (index === -1 || index >= argv.length - 1) return void 0;
|
|
625
549
|
return argv[index + 1];
|
|
@@ -708,12 +632,12 @@ ${available}`
|
|
|
708
632
|
return result;
|
|
709
633
|
}
|
|
710
634
|
async function runRemoteTest(argv) {
|
|
711
|
-
const apiUrl =
|
|
712
|
-
const token =
|
|
713
|
-
const tag =
|
|
714
|
-
const namePattern =
|
|
715
|
-
const propertyArg =
|
|
716
|
-
const environmentArg =
|
|
635
|
+
const apiUrl = getArgValue2(argv, "--api-url") ?? process4.env.CANARY_API_URL ?? "https://api.trycanary.ai";
|
|
636
|
+
const token = getArgValue2(argv, "--token") ?? process4.env.CANARY_API_TOKEN ?? await readStoredToken();
|
|
637
|
+
const tag = getArgValue2(argv, "--tag");
|
|
638
|
+
const namePattern = getArgValue2(argv, "--name-pattern");
|
|
639
|
+
const propertyArg = getArgValue2(argv, "--property");
|
|
640
|
+
const environmentArg = getArgValue2(argv, "--environment");
|
|
717
641
|
const verbose = hasFlag2(argv, "--verbose", "-v");
|
|
718
642
|
if (!token) {
|
|
719
643
|
console.error("Error: No API token found.");
|
|
@@ -723,7 +647,7 @@ async function runRemoteTest(argv) {
|
|
|
723
647
|
console.error("");
|
|
724
648
|
console.error("Or create an API key in Settings > API Keys and pass it:");
|
|
725
649
|
console.error(" canary test --remote --token cnry_...");
|
|
726
|
-
|
|
650
|
+
process4.exit(1);
|
|
727
651
|
}
|
|
728
652
|
let resolvedConfig = {};
|
|
729
653
|
if (propertyArg || environmentArg) {
|
|
@@ -731,7 +655,7 @@ async function runRemoteTest(argv) {
|
|
|
731
655
|
resolvedConfig = await resolveTestConfig(apiUrl, token, propertyArg, environmentArg);
|
|
732
656
|
} catch (err) {
|
|
733
657
|
console.error(`${err instanceof Error ? err.message : String(err)}`);
|
|
734
|
-
|
|
658
|
+
process4.exit(1);
|
|
735
659
|
}
|
|
736
660
|
}
|
|
737
661
|
console.log("Starting remote workflow tests...");
|
|
@@ -759,18 +683,18 @@ async function runRemoteTest(argv) {
|
|
|
759
683
|
});
|
|
760
684
|
} catch (err) {
|
|
761
685
|
console.error(`Failed to connect to API: ${err}`);
|
|
762
|
-
|
|
686
|
+
process4.exit(1);
|
|
763
687
|
}
|
|
764
688
|
if (!triggerRes.ok) {
|
|
765
689
|
const errorText = await triggerRes.text();
|
|
766
690
|
console.error(`Failed to start tests: ${triggerRes.status}`);
|
|
767
691
|
console.error(errorText);
|
|
768
|
-
|
|
692
|
+
process4.exit(1);
|
|
769
693
|
}
|
|
770
694
|
const triggerData = await triggerRes.json();
|
|
771
695
|
if (!triggerData.ok || !triggerData.suiteId) {
|
|
772
696
|
console.error(`Failed to start tests: ${triggerData.error ?? "Unknown error"}`);
|
|
773
|
-
|
|
697
|
+
process4.exit(1);
|
|
774
698
|
}
|
|
775
699
|
const { suiteId, jobId, appUrl } = triggerData;
|
|
776
700
|
if (verbose) {
|
|
@@ -789,11 +713,11 @@ async function runRemoteTest(argv) {
|
|
|
789
713
|
});
|
|
790
714
|
} catch (err) {
|
|
791
715
|
console.error(`Failed to connect to event stream: ${err}`);
|
|
792
|
-
|
|
716
|
+
process4.exit(1);
|
|
793
717
|
}
|
|
794
718
|
if (!streamRes.ok || !streamRes.body) {
|
|
795
719
|
console.error(`Failed to connect to event stream: ${streamRes.status}`);
|
|
796
|
-
|
|
720
|
+
process4.exit(1);
|
|
797
721
|
}
|
|
798
722
|
let exitCode = 0;
|
|
799
723
|
let hasCompleted = false;
|
|
@@ -869,7 +793,7 @@ async function runRemoteTest(argv) {
|
|
|
869
793
|
console.log("\u2500".repeat(50));
|
|
870
794
|
if (totalWorkflows === 0) {
|
|
871
795
|
console.log("No workflows found matching the filter criteria.");
|
|
872
|
-
|
|
796
|
+
process4.exit(0);
|
|
873
797
|
}
|
|
874
798
|
const passRate = totalWorkflows > 0 ? Math.round(successfulWorkflows / totalWorkflows * 100) : 0;
|
|
875
799
|
if (failedWorkflows > 0) {
|
|
@@ -886,14 +810,14 @@ async function runRemoteTest(argv) {
|
|
|
886
810
|
if (failedSection) {
|
|
887
811
|
console.log(failedSection);
|
|
888
812
|
}
|
|
889
|
-
|
|
813
|
+
process4.exit(exitCode);
|
|
890
814
|
}
|
|
891
815
|
|
|
892
816
|
// src/debug-session.ts
|
|
893
817
|
import fs3 from "fs/promises";
|
|
894
818
|
import os from "os";
|
|
895
819
|
import path3 from "path";
|
|
896
|
-
import
|
|
820
|
+
import process5 from "process";
|
|
897
821
|
async function writeDebugSession(loginUrl, expiresAt, apiUrl) {
|
|
898
822
|
const dir = path3.join(os.homedir(), ".config", "canary-cli");
|
|
899
823
|
const filePath = path3.join(dir, "debug-session.json");
|
|
@@ -921,17 +845,17 @@ async function runDebugSession(argv) {
|
|
|
921
845
|
if (res.status === 401) {
|
|
922
846
|
console.error("Error: Unauthorized. Your session may have expired.");
|
|
923
847
|
console.error("Run: canary login");
|
|
924
|
-
|
|
848
|
+
process5.exit(1);
|
|
925
849
|
}
|
|
926
850
|
if (res.status === 403) {
|
|
927
851
|
console.error("Error: Forbidden. Debug session creation requires superadmin access.");
|
|
928
|
-
|
|
852
|
+
process5.exit(1);
|
|
929
853
|
}
|
|
930
854
|
if (res.status === 404) {
|
|
931
855
|
console.error(
|
|
932
856
|
"Error: Endpoint not found. The debug-session feature may not be deployed to this environment."
|
|
933
857
|
);
|
|
934
|
-
|
|
858
|
+
process5.exit(1);
|
|
935
859
|
}
|
|
936
860
|
try {
|
|
937
861
|
const errorJson = JSON.parse(text);
|
|
@@ -939,12 +863,12 @@ async function runDebugSession(argv) {
|
|
|
939
863
|
} catch {
|
|
940
864
|
console.error(`Error (${res.status}): ${text || res.statusText}`);
|
|
941
865
|
}
|
|
942
|
-
|
|
866
|
+
process5.exit(1);
|
|
943
867
|
}
|
|
944
868
|
const json = await res.json();
|
|
945
869
|
if (!json.ok || !json.loginUrl) {
|
|
946
870
|
console.error(`Error: ${json.message ?? json.error ?? "Failed to create debug session"}`);
|
|
947
|
-
|
|
871
|
+
process5.exit(1);
|
|
948
872
|
}
|
|
949
873
|
const filePath = await writeDebugSession(json.loginUrl, json.expiresAt ?? "", apiUrl);
|
|
950
874
|
if (jsonOutput) {
|
|
@@ -971,7 +895,7 @@ async function runDebugSession(argv) {
|
|
|
971
895
|
}
|
|
972
896
|
} catch (err) {
|
|
973
897
|
console.error(`Failed to create debug session: ${err}`);
|
|
974
|
-
|
|
898
|
+
process5.exit(1);
|
|
975
899
|
}
|
|
976
900
|
}
|
|
977
901
|
|
|
@@ -1000,10 +924,12 @@ function isSuperadminToken(token) {
|
|
|
1000
924
|
// src/index.ts
|
|
1001
925
|
var require2 = createRequire2(import.meta.url);
|
|
1002
926
|
var pkg = require2("../package.json");
|
|
1003
|
-
var loadMcp = () => import("./mcp-
|
|
1004
|
-
var loadLocalBrowser = () => import("./local-browser-
|
|
1005
|
-
var loadDebugWorkflow = () => import("./debug-workflow-
|
|
1006
|
-
var loadRecord = () => import("./record-
|
|
927
|
+
var loadMcp = () => import("./mcp-ZF5G5DCB.js").then((m) => m.runMcp);
|
|
928
|
+
var loadLocalBrowser = () => import("./local-browser-VAZORCO3.js").then((m) => m.runLocalBrowser);
|
|
929
|
+
var loadDebugWorkflow = () => import("./debug-workflow-53ULOFJC.js").then((m) => m.runDebugWorkflow);
|
|
930
|
+
var loadRecord = () => import("./record-V6QKFFH3.js").then((m) => m.runRecord);
|
|
931
|
+
var loadSession = () => import("./session-UGNJXRUW.js").then((m) => m.runSession);
|
|
932
|
+
var loadLocal = () => import("./local-NHXXPHZ3.js").then((m) => m.runLocal);
|
|
1007
933
|
var canary = { run };
|
|
1008
934
|
var baseDir = typeof __dirname !== "undefined" ? __dirname : path4.dirname(fileURLToPath2(import.meta.url));
|
|
1009
935
|
var preloadPath = path4.join(baseDir, "runner", "preload.js");
|
|
@@ -1011,23 +937,23 @@ var requireFn = makeRequire();
|
|
|
1011
937
|
function runPlaywrightTests(args) {
|
|
1012
938
|
const playwrightCli = requireFn.resolve("@playwright/test/cli");
|
|
1013
939
|
const { runnerBin, preloadFlag } = resolveRunner(preloadPath);
|
|
1014
|
-
const nodeOptions =
|
|
940
|
+
const nodeOptions = process6.env.NODE_OPTIONS && preloadFlag ? `${process6.env.NODE_OPTIONS} ${preloadFlag}` : preloadFlag ?? process6.env.NODE_OPTIONS;
|
|
1015
941
|
const env = {
|
|
1016
|
-
...
|
|
1017
|
-
CANARY_ENABLED:
|
|
942
|
+
...process6.env,
|
|
943
|
+
CANARY_ENABLED: process6.env.CANARY_ENABLED ?? "1",
|
|
1018
944
|
CANARY_RUNNER: "canary",
|
|
1019
945
|
...nodeOptions ? { NODE_OPTIONS: nodeOptions } : {}
|
|
1020
946
|
};
|
|
1021
947
|
const result = spawnSync2(runnerBin, [playwrightCli, "test", ...args], {
|
|
1022
948
|
env,
|
|
1023
949
|
stdio: "inherit",
|
|
1024
|
-
cwd:
|
|
950
|
+
cwd: process6.cwd()
|
|
1025
951
|
});
|
|
1026
952
|
if (result.error) {
|
|
1027
953
|
console.error("canary failed to launch Playwright:", result.error);
|
|
1028
|
-
|
|
954
|
+
process6.exit(1);
|
|
1029
955
|
}
|
|
1030
|
-
|
|
956
|
+
process6.exit(result.status ?? 1);
|
|
1031
957
|
}
|
|
1032
958
|
function printVersion() {
|
|
1033
959
|
console.log(`canary v${pkg.version}`);
|
|
@@ -1039,16 +965,17 @@ function printHelp({ isSuperadmin }) {
|
|
|
1039
965
|
"Usage:",
|
|
1040
966
|
" canary test [playwright options] Run local Playwright tests",
|
|
1041
967
|
" canary test --remote [options] Run remote workflow tests",
|
|
1042
|
-
" canary local-run --tunnel-url <url> [options]",
|
|
1043
|
-
" canary tunnel --port <localPort> [options]",
|
|
1044
|
-
" canary run --port <localPort> [options]",
|
|
1045
968
|
" canary mcp",
|
|
1046
969
|
" canary browser [--mode playwright|cdp] [--cdp-url <url>] [--no-headless]",
|
|
1047
970
|
" canary login [--org <name>] [--app-url https://app.trycanary.ai] [--no-open]",
|
|
1048
971
|
" canary orgs List organizations",
|
|
1049
972
|
" canary debug <workflowId> [options] Debug workflow in local headed browser",
|
|
1050
973
|
" canary record [options] Record browser interactions",
|
|
1051
|
-
" canary
|
|
974
|
+
" canary local <sub-command> Set up and manage local testing",
|
|
975
|
+
" canary session <sub-command> Manage local browser sessions",
|
|
976
|
+
" canary issues <sub-command> Search and view issues",
|
|
977
|
+
" canary workflow <sub-command> Inspect workflow definitions",
|
|
978
|
+
" canary skill <name> Install an AI agent skill template"
|
|
1052
979
|
];
|
|
1053
980
|
lines.push(
|
|
1054
981
|
" canary release <sub-command> Release QA gate (CI/CD)"
|
|
@@ -1201,9 +1128,9 @@ function printTestHelp() {
|
|
|
1201
1128
|
].join("\n")
|
|
1202
1129
|
);
|
|
1203
1130
|
}
|
|
1204
|
-
var COMMANDS_WITH_HELP = /* @__PURE__ */ new Set(["test"]);
|
|
1131
|
+
var COMMANDS_WITH_HELP = /* @__PURE__ */ new Set(["test", "session", "local", "issues", "workflow", "release", "skill", "skills"]);
|
|
1205
1132
|
async function resolveIsSuperadmin() {
|
|
1206
|
-
const envToken =
|
|
1133
|
+
const envToken = process6.env.CANARY_API_TOKEN;
|
|
1207
1134
|
if (envToken) return isSuperadminToken(envToken);
|
|
1208
1135
|
const tokens = await readAllStoredTokens();
|
|
1209
1136
|
return tokens.some((t) => isSuperadminToken(t));
|
|
@@ -1240,23 +1167,11 @@ async function main(argv) {
|
|
|
1240
1167
|
runPlaywrightTests(rest);
|
|
1241
1168
|
return;
|
|
1242
1169
|
}
|
|
1243
|
-
if (command === "local-run") {
|
|
1244
|
-
await runLocalTest(rest);
|
|
1245
|
-
return;
|
|
1246
|
-
}
|
|
1247
|
-
if (command === "run") {
|
|
1248
|
-
await runLocalSession(rest);
|
|
1249
|
-
return;
|
|
1250
|
-
}
|
|
1251
1170
|
if (command === "mcp") {
|
|
1252
1171
|
const runMcp = await loadMcp();
|
|
1253
1172
|
await runMcp(rest);
|
|
1254
1173
|
return;
|
|
1255
1174
|
}
|
|
1256
|
-
if (command === "tunnel") {
|
|
1257
|
-
await runTunnel(rest);
|
|
1258
|
-
return;
|
|
1259
|
-
}
|
|
1260
1175
|
if (command === "login") {
|
|
1261
1176
|
await runLogin(rest);
|
|
1262
1177
|
return;
|
|
@@ -1280,6 +1195,16 @@ async function main(argv) {
|
|
|
1280
1195
|
await runRecord(rest);
|
|
1281
1196
|
return;
|
|
1282
1197
|
}
|
|
1198
|
+
if (command === "session") {
|
|
1199
|
+
const runSession = await loadSession();
|
|
1200
|
+
await runSession(rest);
|
|
1201
|
+
return;
|
|
1202
|
+
}
|
|
1203
|
+
if (command === "local") {
|
|
1204
|
+
const runLocal = await loadLocal();
|
|
1205
|
+
await runLocal(rest);
|
|
1206
|
+
return;
|
|
1207
|
+
}
|
|
1283
1208
|
if (command === "debug-session") {
|
|
1284
1209
|
await runDebugSession(rest);
|
|
1285
1210
|
return;
|
|
@@ -1295,36 +1220,46 @@ async function main(argv) {
|
|
|
1295
1220
|
return;
|
|
1296
1221
|
}
|
|
1297
1222
|
if (command === "release") {
|
|
1298
|
-
const { runRelease } = await import("./release-
|
|
1223
|
+
const { runRelease } = await import("./release-7TI7EIGD.js");
|
|
1299
1224
|
await runRelease(rest);
|
|
1300
1225
|
return;
|
|
1301
1226
|
}
|
|
1302
1227
|
if (command === "docs") {
|
|
1303
|
-
const { runDocs } = await import("./docs-
|
|
1228
|
+
const { runDocs } = await import("./docs-BEE3LOCO.js");
|
|
1304
1229
|
await runDocs(rest);
|
|
1305
1230
|
return;
|
|
1306
1231
|
}
|
|
1307
1232
|
if (command === "feature-flag") {
|
|
1308
|
-
const { runFeatureFlag } = await import("./feature-flag-
|
|
1233
|
+
const { runFeatureFlag } = await import("./feature-flag-CYTDV4ZB.js");
|
|
1309
1234
|
await runFeatureFlag(rest);
|
|
1310
1235
|
return;
|
|
1311
1236
|
}
|
|
1312
1237
|
if (command === "knobs") {
|
|
1313
|
-
const { runKnobs } = await import("./knobs-
|
|
1238
|
+
const { runKnobs } = await import("./knobs-O35GAU5M.js");
|
|
1314
1239
|
await runKnobs(rest);
|
|
1315
1240
|
return;
|
|
1316
1241
|
}
|
|
1317
1242
|
if (command === "issues") {
|
|
1318
|
-
const { runIssues } = await import("./issues-
|
|
1243
|
+
const { runIssues } = await import("./issues-NLM72HLU.js");
|
|
1319
1244
|
await runIssues(rest);
|
|
1320
1245
|
return;
|
|
1321
1246
|
}
|
|
1247
|
+
if (command === "workflow") {
|
|
1248
|
+
const { runWorkflow } = await import("./workflow-HXIUXRFI.js");
|
|
1249
|
+
await runWorkflow(rest);
|
|
1250
|
+
return;
|
|
1251
|
+
}
|
|
1252
|
+
if (command === "skill" || command === "skills") {
|
|
1253
|
+
const { runSkill } = await import("./skill-ORWAPBDW.js");
|
|
1254
|
+
await runSkill(rest);
|
|
1255
|
+
return;
|
|
1256
|
+
}
|
|
1322
1257
|
console.log(`Unknown command "${command}".`);
|
|
1323
1258
|
printHelp({ isSuperadmin: await resolveIsSuperadmin() });
|
|
1324
|
-
|
|
1259
|
+
process6.exit(1);
|
|
1325
1260
|
}
|
|
1326
|
-
if (import.meta.url === pathToFileURL2(
|
|
1327
|
-
void main(
|
|
1261
|
+
if (import.meta.url === pathToFileURL2(process6.argv[1]).href) {
|
|
1262
|
+
void main(process6.argv.slice(2));
|
|
1328
1263
|
}
|
|
1329
1264
|
export {
|
|
1330
1265
|
canary,
|