@rehpic/vcli 0.1.0-beta.76.1 → 0.1.0-beta.78.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 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
  }