@rehpic/vcli 0.1.0-beta.76.1 → 0.1.0-beta.77.1
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/index.js +167 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -735,6 +735,76 @@ var init_open = __esm({
|
|
|
735
735
|
}
|
|
736
736
|
});
|
|
737
737
|
|
|
738
|
+
// package.json
|
|
739
|
+
var package_exports = {};
|
|
740
|
+
__export(package_exports, {
|
|
741
|
+
default: () => package_default
|
|
742
|
+
});
|
|
743
|
+
var package_default;
|
|
744
|
+
var init_package = __esm({
|
|
745
|
+
"package.json"() {
|
|
746
|
+
package_default = {
|
|
747
|
+
name: "@rehpic/vcli",
|
|
748
|
+
version: "0.1.0",
|
|
749
|
+
description: "Command line interface for Vector workspaces.",
|
|
750
|
+
license: "Apache-2.0",
|
|
751
|
+
type: "module",
|
|
752
|
+
repository: {
|
|
753
|
+
type: "git",
|
|
754
|
+
url: "git+https://github.com/xrehpicx/vector.git",
|
|
755
|
+
directory: "packages/vector-cli"
|
|
756
|
+
},
|
|
757
|
+
homepage: "https://github.com/xrehpicx/vector/tree/main/packages/vector-cli#readme",
|
|
758
|
+
bugs: {
|
|
759
|
+
url: "https://github.com/xrehpicx/vector/issues"
|
|
760
|
+
},
|
|
761
|
+
keywords: [
|
|
762
|
+
"vector",
|
|
763
|
+
"cli",
|
|
764
|
+
"project-management",
|
|
765
|
+
"convex",
|
|
766
|
+
"issues"
|
|
767
|
+
],
|
|
768
|
+
engines: {
|
|
769
|
+
node: ">=20.19.0"
|
|
770
|
+
},
|
|
771
|
+
bin: {
|
|
772
|
+
vcli: "dist/index.js"
|
|
773
|
+
},
|
|
774
|
+
files: [
|
|
775
|
+
"dist",
|
|
776
|
+
"native",
|
|
777
|
+
"scripts",
|
|
778
|
+
"README.md"
|
|
779
|
+
],
|
|
780
|
+
scripts: {
|
|
781
|
+
build: "node scripts/build-menubar-app.js && tsup --config tsup.config.ts"
|
|
782
|
+
},
|
|
783
|
+
dependencies: {
|
|
784
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.79",
|
|
785
|
+
"@clack/prompts": "^1.1.0",
|
|
786
|
+
commander: "^14.0.3",
|
|
787
|
+
convex: "^1.33.1",
|
|
788
|
+
dotenv: "^16.4.5",
|
|
789
|
+
localtunnel: "^2.0.2",
|
|
790
|
+
"node-datachannel": "^0.32.1",
|
|
791
|
+
"node-pty": "1.2.0-beta.12",
|
|
792
|
+
tunnelmole: "^2.4.0",
|
|
793
|
+
werift: "^0.22.9",
|
|
794
|
+
ws: "^8.19.0"
|
|
795
|
+
},
|
|
796
|
+
publishConfig: {
|
|
797
|
+
access: "public",
|
|
798
|
+
provenance: true
|
|
799
|
+
},
|
|
800
|
+
devDependencies: {
|
|
801
|
+
"@types/localtunnel": "^2.0.4",
|
|
802
|
+
"@types/ws": "^8.18.1"
|
|
803
|
+
}
|
|
804
|
+
};
|
|
805
|
+
}
|
|
806
|
+
});
|
|
807
|
+
|
|
738
808
|
// src/index.ts
|
|
739
809
|
import { readFileSync as readFileSync3 } from "fs";
|
|
740
810
|
import { readFile as readFile2 } from "fs/promises";
|
|
@@ -5839,6 +5909,103 @@ bridgeCommand.command("status").description("Show bridge status").action(() => {
|
|
|
5839
5909
|
` Status: ${s.running ? `Running (PID ${s.pid})` : "Not running"}`
|
|
5840
5910
|
);
|
|
5841
5911
|
});
|
|
5912
|
+
function detectInstallMethod() {
|
|
5913
|
+
const execPath = process.argv[1] ?? "";
|
|
5914
|
+
if (execPath.includes(".volta")) {
|
|
5915
|
+
return {
|
|
5916
|
+
method: "volta",
|
|
5917
|
+
command: ["volta", "install", "@rehpic/vcli@latest"]
|
|
5918
|
+
};
|
|
5919
|
+
}
|
|
5920
|
+
if (execPath.includes("pnpm")) {
|
|
5921
|
+
return {
|
|
5922
|
+
method: "pnpm",
|
|
5923
|
+
command: ["pnpm", "add", "-g", "@rehpic/vcli@latest"]
|
|
5924
|
+
};
|
|
5925
|
+
}
|
|
5926
|
+
if (execPath.includes("yarn")) {
|
|
5927
|
+
return {
|
|
5928
|
+
method: "yarn",
|
|
5929
|
+
command: ["yarn", "global", "add", "@rehpic/vcli@latest"]
|
|
5930
|
+
};
|
|
5931
|
+
}
|
|
5932
|
+
return {
|
|
5933
|
+
method: "npm",
|
|
5934
|
+
command: ["npm", "install", "-g", "@rehpic/vcli@latest"]
|
|
5935
|
+
};
|
|
5936
|
+
}
|
|
5937
|
+
async function checkForUpdate() {
|
|
5938
|
+
try {
|
|
5939
|
+
const { execSync: exec } = await import("child_process");
|
|
5940
|
+
const latest = exec("npm view @rehpic/vcli version", {
|
|
5941
|
+
encoding: "utf-8",
|
|
5942
|
+
timeout: 1e4
|
|
5943
|
+
}).trim();
|
|
5944
|
+
const pkg = await Promise.resolve().then(() => (init_package(), package_exports));
|
|
5945
|
+
const current = pkg.default?.version ?? pkg.version ?? "0.0.0";
|
|
5946
|
+
return {
|
|
5947
|
+
current,
|
|
5948
|
+
latest,
|
|
5949
|
+
hasUpdate: latest !== current && !current.includes("beta")
|
|
5950
|
+
};
|
|
5951
|
+
} catch {
|
|
5952
|
+
return null;
|
|
5953
|
+
}
|
|
5954
|
+
}
|
|
5955
|
+
program.command("update").description("Update the CLI to the latest version").action(async () => {
|
|
5956
|
+
const { spinner, log } = await import("@clack/prompts");
|
|
5957
|
+
const s = spinner();
|
|
5958
|
+
s.start("Checking for updates...");
|
|
5959
|
+
const updateInfo = await checkForUpdate();
|
|
5960
|
+
if (!updateInfo) {
|
|
5961
|
+
s.stop("Could not check for updates.");
|
|
5962
|
+
return;
|
|
5963
|
+
}
|
|
5964
|
+
if (!updateInfo.hasUpdate) {
|
|
5965
|
+
s.stop(`Already on the latest version (${updateInfo.current}).`);
|
|
5966
|
+
return;
|
|
5967
|
+
}
|
|
5968
|
+
s.stop(`Update available: ${updateInfo.current} \u2192 ${updateInfo.latest}`);
|
|
5969
|
+
const install = detectInstallMethod();
|
|
5970
|
+
log.info(`Install method: ${install.method}`);
|
|
5971
|
+
s.start("Stopping bridge service...");
|
|
5972
|
+
const wasRunning = getBridgeStatus().running;
|
|
5973
|
+
if (wasRunning) {
|
|
5974
|
+
stopBridge({ includeMenuBar: true });
|
|
5975
|
+
if (osPlatform() === "darwin") {
|
|
5976
|
+
unloadLaunchAgent();
|
|
5977
|
+
}
|
|
5978
|
+
stopMenuBar();
|
|
5979
|
+
}
|
|
5980
|
+
s.stop(wasRunning ? "Bridge stopped." : "Bridge was not running.");
|
|
5981
|
+
s.start(`Updating via ${install.method}...`);
|
|
5982
|
+
try {
|
|
5983
|
+
const { execFileSync: exec } = await import("child_process");
|
|
5984
|
+
exec(install.command[0], install.command.slice(1), {
|
|
5985
|
+
stdio: "inherit",
|
|
5986
|
+
timeout: 12e4
|
|
5987
|
+
});
|
|
5988
|
+
s.stop("CLI updated successfully.");
|
|
5989
|
+
} catch (err) {
|
|
5990
|
+
s.stop("Update failed.");
|
|
5991
|
+
log.error(`Run manually: ${install.command.join(" ")}`);
|
|
5992
|
+
return;
|
|
5993
|
+
}
|
|
5994
|
+
if (wasRunning) {
|
|
5995
|
+
s.start("Restarting bridge service...");
|
|
5996
|
+
try {
|
|
5997
|
+
const { execFileSync: exec } = await import("child_process");
|
|
5998
|
+
exec("vcli", ["service", "start"], {
|
|
5999
|
+
stdio: "inherit",
|
|
6000
|
+
timeout: 3e4
|
|
6001
|
+
});
|
|
6002
|
+
s.stop("Bridge restarted.");
|
|
6003
|
+
} catch {
|
|
6004
|
+
s.stop("Could not auto-restart. Run: vcli service start");
|
|
6005
|
+
}
|
|
6006
|
+
}
|
|
6007
|
+
log.success(`Updated to v${updateInfo.latest}`);
|
|
6008
|
+
});
|
|
5842
6009
|
async function main() {
|
|
5843
6010
|
await program.parseAsync(process.argv);
|
|
5844
6011
|
}
|