@genspark/cli 1.0.22 β†’ 1.0.23

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 CHANGED
@@ -26,7 +26,7 @@
26
26
  | πŸ“± **Social Media** | Twitter/X, Instagram, Reddit β€” search posts/users, get comments, connections, and more (30 APIs) |
27
27
  | πŸ€– **Agents** | Podcasts, docs, slides, deep research, fact-checking, websites, batch media generation |
28
28
  | πŸ”Š **Voice** | Voice cloning, voice changer |
29
- | πŸ•ΈοΈ **Mesh** | Secure SSH between your devices over a private tailnet β€” `gsk mesh join`, `ssh`, `scp`, `forward` |
29
+ | πŸ•ΈοΈ **Mesh** | Secure SSH between your devices over a private tailnet β€” `gsk mesh join` / `serve` / `ssh` / `scp` / `sftp` / `forward` |
30
30
 
31
31
  ## Table of Contents
32
32
 
@@ -564,9 +564,10 @@ gsk meeting get --task_id "e02fd0f1-..."
564
564
 
565
565
  #### google_drive
566
566
 
567
- Google Drive file operations: search, read, upload.
567
+ Google Drive file operations: list, search, read, upload.
568
568
 
569
569
  ```bash
570
+ gsk google_drive list --folder_url "https://drive.google.com/drive/folders/..."
570
571
  gsk google_drive search --query "budget 2026"
571
572
  gsk google_drive read --file_id 1hq9kH63sc...
572
573
  ```
@@ -880,42 +881,106 @@ This separation allows programs to parse clean JSON from stdout while humans can
880
881
 
881
882
  ## Mesh β€” Secure SSH Between Your Devices
882
883
 
883
- `gsk mesh` adds peer-to-peer encrypted networking + SSH to the CLI, powered by Genspark Mesh (Tailscale-based). It reuses your `gsk` login β€” no separate authentication.
884
+ `gsk mesh` gives all the devices signed in to your Genspark account a private, end-to-end-encrypted network (a "tailnet", Tailscale-based) and SSH over it β€” no public IPs, no port-forwarding on your router, no separate login. Each device gets a stable `100.64.x.x` address; any device can reach any other.
884
885
 
885
- `gsk mesh` is a thin wrapper around the native `gsk-mesh` binary, fetched from the Genspark CDN on first use (~8 MB), verified by sha256, and cached at `~/.genspark-tool-cli/bin/gsk-mesh` (Apple-notarized on macOS, DigiCert-signed on Windows). Supported platforms: macOS (arm64/x64), Linux (x64/arm64), Windows (x64).
886
+ It reuses your `gsk` login: once you `gsk login`, every `gsk mesh` command authenticates with the same token.
886
887
 
887
- ### First Run
888
+ `gsk mesh` is a thin wrapper around the native `gsk-mesh` binary, fetched from the Genspark CDN on first use (~45 MB), verified by sha256, cached at `~/.genspark-tool-cli/bin/gsk-mesh`, and re-verified on every run (Apple-notarized on macOS, DigiCert-signed on Windows). Supported platforms: macOS (arm64/x64), Linux (x64/arm64), Windows (x64).
889
+
890
+ > **Scope:** the mesh only spans devices signed in to **your own account**. "Other devices" below always means your other devices β€” there is no cross-account access.
891
+
892
+ ### Command reference
893
+
894
+ | Command | What it does |
895
+ |---|---|
896
+ | `gsk mesh join [--name <name>]` | Enroll **this** device in the mesh. Starts the local tailscaled daemon and reports the assigned tailnet IP. Run once per device. |
897
+ | `gsk mesh leave` | Sign this device out of the mesh, stop tailscaled, and remove its published SSH key. |
898
+ | `gsk mesh serve [--stop]` | Make this device **accept** incoming mesh SSH (runs an embedded SSH server β€” no OS-level `sshd` needed). Requires `join`. Keeps serving via a detached daemon; `--stop` tears it down. |
899
+ | `gsk mesh ssh <[user@]node> [-- <args>]` | SSH **into** another device. Anything after `--` is passed to `ssh` (a remote command, `-i`, etc.). |
900
+ | `gsk mesh scp <src...> <dst>` | Copy files to/from a node. Remote refs look like `[user@]node:path`. |
901
+ | `gsk mesh sftp <node>` | Interactive SFTP session to a node. |
902
+ | `gsk mesh forward -L <spec> <node>` | Hold an SSH port-forward open through the mesh (`-L` local, `-R` remote; repeatable). |
903
+ | `gsk mesh devices` | List the devices currently on your tailnet. |
904
+ | `gsk mesh status` | Health of the mesh + whether this device is serving. |
905
+ | `gsk mesh revoke <node-id>` | Expire another device by its id (from `gsk mesh devices`). |
906
+ | `gsk mesh whoami` | Show the resolved auth state (token source, base URL). |
907
+ | `gsk mesh upgrade [--force\|--prerelease]` | Update the native `gsk-mesh` binary. |
908
+
909
+ `node` is either a device name (resolved against `gsk mesh devices`) or a tailnet IP. Run `gsk mesh --help` (or `gsk mesh <cmd> --help`) for the authoritative, native help.
910
+
911
+ ### 1. First-time setup (every device)
888
912
 
889
913
  ```bash
890
- gsk login # if you haven't already
891
- gsk mesh join --name laptop # downloads gsk-mesh on first use, joins the mesh
914
+ gsk login # once per machine; shared with all gsk commands
915
+ gsk mesh join --name laptop # downloads gsk-mesh on first use, joins the mesh
892
916
  # Joined mesh as laptop (100.64.0.5).
893
917
  ```
894
918
 
895
- ### Common Workflows
919
+ Do this on each device you want in the mesh (`--name` defaults to the hostname).
920
+
921
+ ### 2. Make a device reachable (the "server" side)
922
+
923
+ To let your **other** devices SSH *into* this one β€” e.g. a home workstation, a build box, a cloud VM:
896
924
 
897
925
  ```bash
898
- gsk mesh devices # list devices on your tailnet
899
- gsk mesh ssh laptop # SSH into another device (system ssh + ProxyCommand)
900
- gsk mesh scp file laptop:~/ # scp via mesh
901
- gsk mesh forward -L 8080:localhost:80 laptop # port-forward
902
- gsk mesh status # is the mesh service healthy?
903
- gsk mesh leave # disconnect this device
926
+ gsk mesh serve # embedded SSH server; no sshd to install/configure
927
+ # Serving mesh SSH. Reachable at 100.64.0.7:22.
928
+ gsk mesh serve --stop # stop accepting connections
904
929
  ```
905
930
 
906
- Run `gsk mesh --help` for the full command list (served by the native binary).
931
+ `serve` runs in the background and keeps serving after the command returns. Authorization is automatic: each serving device publishes its mesh SSH public key to your account, and peers pull the set β€” so a freshly-joined device can connect without any manual key exchange. (No `~/.ssh/authorized_keys` editing, no OpenSSH Server feature on Windows.)
932
+
933
+ ### 3. Connect to other devices (the "client" side)
934
+
935
+ ```bash
936
+ gsk mesh ssh laptop # interactive shell
937
+ gsk mesh ssh user@laptop # specify the remote login user
938
+ gsk mesh ssh laptop -- 'systemctl status nginx' # run a remote command and exit
939
+ gsk mesh ssh laptop -i ~/.ssh/id_ed25519 # use a specific identity file
940
+
941
+ gsk mesh scp ./build.tar.gz laptop:~/releases/ # push a file
942
+ gsk mesh scp laptop:/var/log/app.log ./ # pull a file
943
+ gsk mesh sftp laptop # interactive file browsing
944
+
945
+ # Forward a remote service to your local machine (e.g. a DB on the workstation):
946
+ gsk mesh forward -L 5432:localhost:5432 workstation
947
+ # Now localhost:5432 tunnels to the workstation over the mesh.
948
+ ```
907
949
 
908
- > `gsk mesh login` is not a separate flow β€” `gsk` and `gsk mesh` share one authentication. Use `gsk login`.
950
+ `ssh`/`scp`/`sftp`/`forward` shell out to your system `ssh`/`scp` over the tunnel, so all OpenSSH features work as-is: agent forwarding, `~/.ssh/config`, PTY, signal handling. To use a **non-default port**, set it in `~/.ssh/config` (`Host laptop` / `Port 2222`) β€” trailing `-- ...` args land in the remote-command position, so they're not the place for ssh options like `-p`.
909
951
 
910
- ### Upgrading
952
+ ### 4. Manage & inspect
911
953
 
912
954
  ```bash
913
- gsk mesh upgrade # check + pull the latest gsk-mesh release
914
- gsk mesh upgrade --force # reinstall even if already at the latest
915
- gsk mesh upgrade --prerelease # opt into the beta channel
955
+ gsk mesh devices # who's on the tailnet
956
+ gsk mesh status # mesh health + serve state
957
+ gsk mesh revoke <node-id> # kick a lost/old device (id from `devices`)
958
+ gsk mesh leave # remove THIS device from the mesh
916
959
  ```
917
960
 
918
- The native binary upgrades independently of `@genspark/cli`, so newer mesh features land without an `npm install -g @genspark/cli` cycle. When a binary is already installed, `gsk mesh` also checks for updates in the background on the same 4-hour cadence as the CLI's own auto-update (honoring `GSK_NO_AUTO_UPDATE` / `"auto_update": false`).
961
+ ### 5. Keeping the binary current
962
+
963
+ ```bash
964
+ gsk mesh upgrade # check + pull the latest gsk-mesh release
965
+ gsk mesh upgrade --force # reinstall even if already at the latest
966
+ gsk mesh upgrade --prerelease # opt into the beta channel
967
+ ```
968
+
969
+ The native binary versions independently of `@genspark/cli`, so new mesh features land without an `npm install -g @genspark/cli` cycle. Once a binary is installed, `gsk mesh` also checks for updates in the background on the same 4-hour cadence as the CLI's own auto-update (honoring `GSK_NO_AUTO_UPDATE` / `"auto_update": false`; the background check is skipped on Windows, where a running `.exe` can't be replaced in place β€” run `gsk mesh upgrade` explicitly there).
970
+
971
+ > `gsk mesh login` / `logout` are not separate flows β€” `gsk` and `gsk mesh` share one authentication. Use `gsk login` / `gsk logout`.
972
+
973
+ ### End-to-end example: reach a home box from a laptop
974
+
975
+ ```bash
976
+ # On the home workstation:
977
+ gsk login && gsk mesh join --name workstation && gsk mesh serve
978
+
979
+ # On the laptop (anywhere in the world):
980
+ gsk login && gsk mesh join --name laptop
981
+ gsk mesh ssh workstation -- 'uname -a && uptime'
982
+ gsk mesh forward -L 8080:localhost:80 workstation # browse its local web app at localhost:8080
983
+ ```
919
984
 
920
985
  ## Available Models
921
986
 
@@ -130,7 +130,7 @@ export async function runMesh(args, baseUrlOverride) {
130
130
  // could call downloadAndInstall at once and race.
131
131
  let bin;
132
132
  try {
133
- bin = await ensureMeshBinary();
133
+ bin = await ensureMeshBinary(baseUrlOverride);
134
134
  }
135
135
  catch (err) {
136
136
  logError(err.message);
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/commands/mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/commands/mesh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Shared gsk-mesh "what's the latest release" probe against the backend.
3
+ *
4
+ * Extracted from upgrade.ts so BOTH the explicit `gsk mesh upgrade` path AND
5
+ * first-run download (download.ts::ensureMeshBinary) can ask the backend for the
6
+ * current release β€” without a circular import (upgrade.ts imports download.ts,
7
+ * and download.ts now needs this probe).
8
+ *
9
+ * Endpoint (gen-spark#32059):
10
+ * GET {base}/api/gsk-mesh/checkupdate/{target}?channel=stable|beta
11
+ * &current_version=<installed>
12
+ * β†’ 200 {version, sha256, url, notes} (update / latest available)
13
+ * β†’ 204 (already latest / none promoted)
14
+ *
15
+ * Pass currentVersion=null to always get the channel's latest (first-run /
16
+ * `--force`). Auth is optional: the probe frequently fires unauthenticated, so
17
+ * the bearer token is sent only when present.
18
+ */
19
+ import { type MeshTarget } from './manifest.js';
20
+ export interface CheckUpdateResponse {
21
+ version: string;
22
+ sha256: string;
23
+ url: string;
24
+ notes?: string;
25
+ }
26
+ /**
27
+ * Resolve the backend base URL the gsk-mesh endpoint is served from.
28
+ *
29
+ * Priority: explicit CLI override > GSK_BASE_URL env > config file > PROD
30
+ * default. Falls back to PROD rather than gsk's localhost dev default because
31
+ * the gsk-mesh binaries + endpoint are production-served.
32
+ */
33
+ export declare function resolveBaseUrl(override?: string): string;
34
+ /**
35
+ * Query the backend for the latest gsk-mesh release for `target` + `channel`.
36
+ * Returns the manifest (200), null (204 / no update), or throws on transport /
37
+ * HTTP errors.
38
+ */
39
+ export declare function fetchCheckUpdate(target: MeshTarget, channel: 'stable' | 'beta', currentVersion: string | null, baseUrlOverride?: string): Promise<CheckUpdateResponse | null>;
40
+ //# sourceMappingURL=checkupdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkupdate.d.ts","sourceRoot":"","sources":["../../src/mesh/checkupdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAG/C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,QAAQ,GAAG,MAAM,EAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA6BrC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Shared gsk-mesh "what's the latest release" probe against the backend.
3
+ *
4
+ * Extracted from upgrade.ts so BOTH the explicit `gsk mesh upgrade` path AND
5
+ * first-run download (download.ts::ensureMeshBinary) can ask the backend for the
6
+ * current release β€” without a circular import (upgrade.ts imports download.ts,
7
+ * and download.ts now needs this probe).
8
+ *
9
+ * Endpoint (gen-spark#32059):
10
+ * GET {base}/api/gsk-mesh/checkupdate/{target}?channel=stable|beta
11
+ * &current_version=<installed>
12
+ * β†’ 200 {version, sha256, url, notes} (update / latest available)
13
+ * β†’ 204 (already latest / none promoted)
14
+ *
15
+ * Pass currentVersion=null to always get the channel's latest (first-run /
16
+ * `--force`). Auth is optional: the probe frequently fires unauthenticated, so
17
+ * the bearer token is sent only when present.
18
+ */
19
+ import { loadConfigFile } from '../config.js';
20
+ /**
21
+ * Resolve the backend base URL the gsk-mesh endpoint is served from.
22
+ *
23
+ * Priority: explicit CLI override > GSK_BASE_URL env > config file > PROD
24
+ * default. Falls back to PROD rather than gsk's localhost dev default because
25
+ * the gsk-mesh binaries + endpoint are production-served.
26
+ */
27
+ export function resolveBaseUrl(override) {
28
+ const cfg = loadConfigFile();
29
+ return (override ||
30
+ process.env.GSK_BASE_URL ||
31
+ cfg.base_url ||
32
+ 'https://www.genspark.ai').replace(/\/$/, '');
33
+ }
34
+ /**
35
+ * Query the backend for the latest gsk-mesh release for `target` + `channel`.
36
+ * Returns the manifest (200), null (204 / no update), or throws on transport /
37
+ * HTTP errors.
38
+ */
39
+ export async function fetchCheckUpdate(target, channel, currentVersion, baseUrlOverride) {
40
+ const base = resolveBaseUrl(baseUrlOverride);
41
+ const cfg = loadConfigFile();
42
+ const apiKey = cfg.api_key || process.env.GSK_API_KEY;
43
+ const params = new URLSearchParams({ channel });
44
+ if (currentVersion)
45
+ params.set('current_version', currentVersion);
46
+ const url = `${base}/api/gsk-mesh/checkupdate/${target}?${params.toString()}`;
47
+ const headers = {
48
+ // gsk-mesh/<ver> UA lets the backend gatekeeper treat this as client
49
+ // traffic for gradual rollout (gk_gsk_mesh_update).
50
+ 'User-Agent': `gsk-mesh/${currentVersion ?? '0.0.0'}`,
51
+ };
52
+ if (currentVersion)
53
+ headers['gs-version'] = currentVersion;
54
+ if (apiKey)
55
+ headers['Authorization'] = `Bearer ${apiKey}`;
56
+ const controller = new AbortController();
57
+ const timeout = setTimeout(() => controller.abort(), 8000);
58
+ try {
59
+ const resp = await fetch(url, { headers, signal: controller.signal });
60
+ if (resp.status === 204)
61
+ return null;
62
+ if (!resp.ok) {
63
+ throw new Error(`checkupdate HTTP ${resp.status}`);
64
+ }
65
+ return (await resp.json());
66
+ }
67
+ finally {
68
+ clearTimeout(timeout);
69
+ }
70
+ }
71
+ //# sourceMappingURL=checkupdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkupdate.js","sourceRoot":"","sources":["../../src/mesh/checkupdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAS7C;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,OAAO,CACL,QAAQ;QACR,OAAO,CAAC,GAAG,CAAC,YAAY;QACxB,GAAG,CAAC,QAAQ;QACZ,yBAAyB,CAC1B,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,OAA0B,EAC1B,cAA6B,EAC7B,eAAwB;IAExB,MAAM,IAAI,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;IAErD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/C,IAAI,cAAc;QAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;IACjE,MAAM,GAAG,GAAG,GAAG,IAAI,6BAA6B,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;IAE7E,MAAM,OAAO,GAA2B;QACtC,qEAAqE;QACrE,oDAAoD;QACpD,YAAY,EAAE,YAAY,cAAc,IAAI,OAAO,EAAE;KACtD,CAAA;IACD,IAAI,cAAc;QAAE,OAAO,CAAC,YAAY,CAAC,GAAG,cAAc,CAAA;IAC1D,IAAI,MAAM;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,EAAE,CAAA;IAEzD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;IAC1D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QACrE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAwB,CAAA;IACnD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC"}
@@ -24,8 +24,11 @@ export declare function getInstalledMeshVersion(): string | null;
24
24
  /**
25
25
  * Ensure the native gsk-mesh binary is present, current, and intact.
26
26
  * Returns the absolute path to the verified binary.
27
+ *
28
+ * `baseUrlOverride` (the CLI `--base-url`) is threaded through to the first-run
29
+ * latest-version probe so it targets the same backend as the rest of the CLI.
27
30
  */
28
- export declare function ensureMeshBinary(): Promise<string>;
31
+ export declare function ensureMeshBinary(baseUrlOverride?: string): Promise<string>;
29
32
  /**
30
33
  * Download a specific version+target from `url`, verify its sha256, install it
31
34
  * atomically, and update the version/sha stamps. Shared by first-run
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/mesh/download.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA8BH,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AA8BD;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CA0CxD;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/mesh/download.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAgCH,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AA8BD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoChF;AA8CD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -23,7 +23,8 @@ import * as os from 'os';
23
23
  import * as crypto from 'crypto';
24
24
  import * as https from 'https';
25
25
  import { spawn } from 'child_process';
26
- import { PINNED_VERSION, CHECKSUMS, cdnUrl, binExt, currentTarget, } from './manifest.js';
26
+ import { PINNED_VERSION, CHECKSUMS, CDN_BASE, cdnUrl, binExt, currentTarget, } from './manifest.js';
27
+ import { fetchCheckUpdate } from './checkupdate.js';
27
28
  import { info, debug } from '../logger.js';
28
29
  const BIN_DIR = path.join(os.homedir(), '.genspark-tool-cli', 'bin');
29
30
  // Monotonic counter so concurrent downloadAndInstall calls within one process
@@ -78,10 +79,12 @@ function expectedShaForCached(target, installedVersion) {
78
79
  /**
79
80
  * Ensure the native gsk-mesh binary is present, current, and intact.
80
81
  * Returns the absolute path to the verified binary.
82
+ *
83
+ * `baseUrlOverride` (the CLI `--base-url`) is threaded through to the first-run
84
+ * latest-version probe so it targets the same backend as the rest of the CLI.
81
85
  */
82
- export async function ensureMeshBinary() {
86
+ export async function ensureMeshBinary(baseUrlOverride) {
83
87
  const target = currentTarget();
84
- const expectedPinned = CHECKSUMS[target];
85
88
  const localPath = binPath(target);
86
89
  if (fs.existsSync(localPath)) {
87
90
  const installedVersion = readStamp(VERSION_STAMP);
@@ -94,30 +97,65 @@ export async function ensureMeshBinary() {
94
97
  return localPath;
95
98
  }
96
99
  info(`gsk-mesh: cached binary failed integrity check (expected ${expected ?? '?'}, ` +
97
- `got ${actual ?? '?'}) β€” re-downloading v${PINNED_VERSION}`);
100
+ `got ${actual ?? '?'}) β€” re-downloading`);
98
101
  }
99
102
  else if (installedVersion) {
100
103
  // Upgraded past the pin via `gsk mesh upgrade`. Verify against the stamp;
101
- // if the stamp is missing/mismatched we can't vouch for it β€” fall back
102
- // to the known-good pinned version.
104
+ // if the stamp is missing/mismatched we can't vouch for it β€” re-download.
103
105
  const expected = readStamp(SHA_STAMP);
104
106
  const actual = fileSha256(localPath);
105
107
  if (expected && actual === expected) {
106
108
  debug(`gsk-mesh cached + verified at ${localPath} (v${installedVersion})`);
107
109
  return localPath;
108
110
  }
109
- info(`gsk-mesh: cached v${installedVersion} failed integrity check β€” ` +
110
- `re-downloading pinned v${PINNED_VERSION}`);
111
+ info(`gsk-mesh: cached v${installedVersion} failed integrity check β€” re-downloading`);
111
112
  }
112
113
  else {
113
- info(`gsk-mesh: cached binary has no version stamp β€” re-downloading v${PINNED_VERSION}`);
114
+ info('gsk-mesh: cached binary has no version stamp β€” re-downloading');
114
115
  }
115
116
  }
116
- info(`Downloading gsk-mesh v${PINNED_VERSION} for ${target} …`);
117
- await downloadAndInstall(cdnUrl(PINNED_VERSION, target), expectedPinned, PINNED_VERSION, target);
117
+ await downloadLatestOrPinned(target, baseUrlOverride);
118
118
  info(`gsk-mesh installed at ${localPath}`);
119
119
  return localPath;
120
120
  }
121
+ /**
122
+ * Install the binary to use when nothing usable is cached.
123
+ *
124
+ * Prefers the backend-promoted latest stable release for this target, so a
125
+ * first-time `gsk mesh` lands directly on the current version instead of the
126
+ * compiled-in floor and only jumping forward on a later run (gen-spark#32378
127
+ * follow-up). Falls back to the pinned floor (PINNED_VERSION + CHECKSUMS)
128
+ * whenever the backend is unreachable, returns no manifest, or serves a URL
129
+ * outside the trusted CDN base.
130
+ *
131
+ * Either way the downloaded bytes are sha256-verified by downloadAndInstall β€”
132
+ * against the backend manifest's sha on the dynamic path, or the compiled-in
133
+ * CHECKSUMS value on the floor path β€” so no unverified binary is ever exec'd.
134
+ */
135
+ async function downloadLatestOrPinned(target, baseUrlOverride) {
136
+ try {
137
+ // current_version=null β†’ the backend returns the channel's latest
138
+ // regardless of what (if anything) we have cached.
139
+ const manifest = await fetchCheckUpdate(target, 'stable', null, baseUrlOverride);
140
+ if (manifest && manifest.version && manifest.sha256) {
141
+ // Defense in depth: only fetch binaries from the trusted CDN base,
142
+ // mirroring the same guard in `gsk mesh upgrade`.
143
+ if (manifest.url.startsWith(`${CDN_BASE}/`)) {
144
+ info(`Downloading gsk-mesh v${manifest.version} for ${target} …`);
145
+ await downloadAndInstall(manifest.url, manifest.sha256, manifest.version, target);
146
+ return;
147
+ }
148
+ debug(`gsk-mesh: ignoring untrusted manifest URL ${manifest.url}`);
149
+ }
150
+ }
151
+ catch (err) {
152
+ debug(`gsk-mesh: latest-version check failed (${err.message}); ` +
153
+ `falling back to pinned v${PINNED_VERSION}`);
154
+ }
155
+ // Fallback: the compiled-in floor, verified against CHECKSUMS.
156
+ info(`Downloading gsk-mesh v${PINNED_VERSION} for ${target} …`);
157
+ await downloadAndInstall(cdnUrl(PINNED_VERSION, target), CHECKSUMS[target], PINNED_VERSION, target);
158
+ }
121
159
  /**
122
160
  * Download a specific version+target from `url`, verify its sha256, install it
123
161
  * atomically, and update the version/sha stamps. Shared by first-run
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/mesh/download.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/mesh/download.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EACL,cAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,aAAa,GAEd,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAA;AAEpE,8EAA8E;AAC9E,2EAA2E;AAC3E,IAAI,WAAW,GAAG,CAAC,CAAA;AAEnB,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACxD,CAAC;AACD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;AAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;AAExD,0EAA0E;AAC1E,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,uBAAuB;IACrC,OAAO,SAAS,CAAC,aAAa,CAAC,CAAA;AACjC,CAAC;AAED,sEAAsE;AACtE,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,MAAkB,EAAE,gBAAwB;IACxE,IAAI,gBAAgB,KAAK,cAAc;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO,SAAS,CAAC,SAAS,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,eAAwB;IAC7D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEjC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,gBAAgB,KAAK,cAAc,EAAE,CAAC;YACxC,iEAAiE;YACjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;YAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,KAAK,CAAC,iCAAiC,SAAS,MAAM,gBAAgB,GAAG,CAAC,CAAA;gBAC1E,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,IAAI,CACF,4DAA4D,QAAQ,IAAI,GAAG,IAAI;gBAC7E,OAAO,MAAM,IAAI,GAAG,oBAAoB,CAC3C,CAAA;QACH,CAAC;aAAM,IAAI,gBAAgB,EAAE,CAAC;YAC5B,0EAA0E;YAC1E,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,KAAK,CAAC,iCAAiC,SAAS,MAAM,gBAAgB,GAAG,CAAC,CAAA;gBAC1E,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,IAAI,CAAC,qBAAqB,gBAAgB,0CAA0C,CAAC,CAAA;QACvF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,+DAA+D,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACrD,IAAI,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAA;IAC1C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAkB,EAClB,eAAwB;IAExB,IAAI,CAAC;QACH,kEAAkE;QAClE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;QAChF,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpD,mEAAmE;YACnE,kDAAkD;YAClD,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,yBAAyB,QAAQ,CAAC,OAAO,QAAQ,MAAM,IAAI,CAAC,CAAA;gBACjE,MAAM,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACjF,OAAM;YACR,CAAC;YACD,KAAK,CAAC,6CAA6C,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CACH,0CAA2C,GAAa,CAAC,OAAO,KAAK;YACnE,2BAA2B,cAAc,EAAE,CAC9C,CAAA;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,yBAAyB,cAAc,QAAQ,MAAM,IAAI,CAAC,CAAA;IAC/D,MAAM,kBAAkB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;AACrG,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,WAAmB,EACnB,OAAe,EACf,MAAc;IAEd,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IAClD,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACzB,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAChC,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACxC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAW,EACX,IAAY,EACZ,WAAmB,EACnB,aAAa,GAAG,CAAC;IAEjB,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,WAAW,EAAE,EAAE,CAAA;IACzD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAA;YAElC,0CAA0C;YAC1C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClE,GAAG,CAAC,MAAM,EAAE,CAAA;gBACZ,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC,CAAA;oBACrE,OAAM;gBACR,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAC1D,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACtF,OAAM;YACR,CAAC;YAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,CAAA;gBACZ,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAA;gBAC3D,OAAM;YACR,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;YAChE,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;YAErC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAA;gBACxB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACtB,IAAI,GAAG,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;oBACzB,SAAS,GAAG,GAAG,CAAA;oBACf,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC5D,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;oBAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;oBAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,OAAO,KAAK,CAAC,CAAA;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEb,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACnC,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBACpB,CAAC;oBAAC,MAAM,CAAC;wBACP,iBAAiB;oBACnB,CAAC;oBACD,MAAM,CACJ,IAAI,KAAK,CACP,8CAA8C,WAAW,iBAAiB,MAAM,EAAE,CACnF,CACF,CAAA;oBACD,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,GAAY,CAAC,CAAA;oBACpB,OAAM;gBACR,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC3D,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnF,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -21,7 +21,7 @@
21
21
  * `gsk mesh upgrade` (and the autorun check) against the backend endpoint, so
22
22
  * we do NOT re-publish @genspark/cli for every gsk-mesh release.
23
23
  */
24
- export declare const PINNED_VERSION = "0.1.2";
24
+ export declare const PINNED_VERSION = "0.1.3";
25
25
  export declare const CDN_BASE = "https://cdn1.genspark.ai/user-upload-image/client/gsk-mesh";
26
26
  export type MeshTarget = 'darwin-arm64' | 'darwin-x64' | 'linux-x64' | 'linux-arm64' | 'win-x64';
27
27
  /**
@@ -21,7 +21,7 @@
21
21
  * `gsk mesh upgrade` (and the autorun check) against the backend endpoint, so
22
22
  * we do NOT re-publish @genspark/cli for every gsk-mesh release.
23
23
  */
24
- export const PINNED_VERSION = '0.1.2';
24
+ export const PINNED_VERSION = '0.1.3';
25
25
  export const CDN_BASE = 'https://cdn1.genspark.ai/user-upload-image/client/gsk-mesh';
26
26
  /**
27
27
  * Map process.platform / process.arch to a gsk-mesh target string.
@@ -67,10 +67,10 @@ export function cdnUrl(version, target) {
67
67
  * The KEYS here are the contract surface with the backend (see top-of-file).
68
68
  */
69
69
  export const CHECKSUMS = {
70
- 'darwin-arm64': '8492aaa47d4f513e49fe75ce83c8b46f52f8d70f996cfc1cb007ed4b10362d53',
71
- 'darwin-x64': '35ddbf4357bdd94d7782c80d0e21288ca6f06fcf79a39303702ae62e06615296',
72
- 'linux-x64': '40be4437dead5c9be148f3cef626c4c562f92b9949d6be12a86c2da4f92ffccd',
73
- 'linux-arm64': '6f73cd7aa9c21a82da11724c1099bde109a8b1ed14fe18f4cab6224a9546481f',
74
- 'win-x64': '254cbfb6bd7b7afcc883ea4b13c824e0906820765156f9d3cdb07b3bf4935ebb',
70
+ 'darwin-arm64': '1d4480204ef20ab49b5c064ac294e398448113fd6803f99a512b20707b5987b3',
71
+ 'darwin-x64': 'a03904876b68162da4caf6ba3cb884ad1d4cf0e94e7090400050f3712b51b9fd',
72
+ 'linux-x64': 'e64024ba13de25cb0bdbf29dfe06793e6920a5cc276e9a2aa68c5c5581428bf0',
73
+ 'linux-arm64': 'f0a86a975d8267773c5a2367ba3f1166adcddcf63d14bdb95190908a7de1975c',
74
+ 'win-x64': 'c79b6fb54771f8d25e0d54e64ab211427d741d14e45ca33f4c7ffb01ebac9c6b',
75
75
  };
76
76
  //# sourceMappingURL=manifest.js.map
@@ -18,7 +18,7 @@ export interface UpgradeOptions {
18
18
  prerelease?: boolean;
19
19
  /**
20
20
  * Explicit `--base-url` from the command line (already resolved by the
21
- * caller). Highest priority β€” see resolveBaseUrl.
21
+ * caller). Highest priority β€” see resolveBaseUrl in checkupdate.ts.
22
22
  */
23
23
  baseUrlOverride?: string;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/mesh/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoBH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAA;AAwE9D;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAiD7E;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsClF"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/mesh/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAA;AAO9D;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAiD7E;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsClF"}
@@ -13,66 +13,16 @@
13
13
  * - Auth is optional: the autorun check frequently fires unauthenticated, so
14
14
  * we send the bearer token when present but never require it.
15
15
  */
16
- import { CDN_BASE, currentTarget, } from './manifest.js';
16
+ import { CDN_BASE, currentTarget } from './manifest.js';
17
17
  import { downloadAndInstall, getInstalledMeshVersion, isMeshInstalled, } from './download.js';
18
+ import { fetchCheckUpdate } from './checkupdate.js';
18
19
  import { loadUpdateMeta, saveUpdateMeta, CHECK_INTERVAL_MS, } from '../updater.js';
19
20
  import { info, debug, error as logError } from '../logger.js';
20
21
  import { loadConfigFile } from '../config.js';
21
- /**
22
- * Resolve the backend base URL the gsk-mesh endpoint is served from.
23
- *
24
- * Priority matches the main CLI's getGlobalOptions (CLI flag > env > config),
25
- * then falls back to PROD rather than gsk's localhost dev default β€” gsk-mesh
26
- * binaries + endpoint are production-served.
27
- */
28
- function resolveBaseUrl(override) {
29
- const cfg = loadConfigFile();
30
- return (override ||
31
- process.env.GSK_BASE_URL ||
32
- cfg.base_url ||
33
- 'https://www.genspark.ai').replace(/\/$/, '');
34
- }
35
22
  /** channel string for the request: --prerelease β†’ beta, else stable. */
36
23
  function channelFor(opts) {
37
24
  return opts.prerelease ? 'beta' : 'stable';
38
25
  }
39
- /**
40
- * Query the backend for the latest gsk-mesh release for this target+channel.
41
- * Returns the manifest (200), null (204 / no update), or throws on transport
42
- * / HTTP errors.
43
- */
44
- async function fetchCheckUpdate(target, channel, currentVersion, baseUrlOverride) {
45
- const base = resolveBaseUrl(baseUrlOverride);
46
- const cfg = loadConfigFile();
47
- const apiKey = cfg.api_key || process.env.GSK_API_KEY;
48
- const params = new URLSearchParams({ channel });
49
- if (currentVersion)
50
- params.set('current_version', currentVersion);
51
- const url = `${base}/api/gsk-mesh/checkupdate/${target}?${params.toString()}`;
52
- const headers = {
53
- // gsk-mesh/<ver> UA lets the backend gatekeeper treat this as client
54
- // traffic for gradual rollout (gk_gsk_mesh_update).
55
- 'User-Agent': `gsk-mesh/${currentVersion ?? '0.0.0'}`,
56
- };
57
- if (currentVersion)
58
- headers['gs-version'] = currentVersion;
59
- if (apiKey)
60
- headers['Authorization'] = `Bearer ${apiKey}`;
61
- const controller = new AbortController();
62
- const timeout = setTimeout(() => controller.abort(), 8000);
63
- try {
64
- const resp = await fetch(url, { headers, signal: controller.signal });
65
- if (resp.status === 204)
66
- return null;
67
- if (!resp.ok) {
68
- throw new Error(`checkupdate HTTP ${resp.status}`);
69
- }
70
- return (await resp.json());
71
- }
72
- finally {
73
- clearTimeout(timeout);
74
- }
75
- }
76
26
  /**
77
27
  * Body of the explicit `gsk mesh upgrade` command.
78
28
  * `--force` ignores the installed version (always pulls the channel's latest).
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/mesh/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/mesh/upgrade.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genspark/cli",
3
- "version": "1.0.22",
3
+ "version": "1.0.23",
4
4
  "description": "CLI tool for Genspark Tool API - search, crawl, analyze images, generate media",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: gsk-google-drive
3
3
  version: 1.0.0
4
- description: 'Google Drive file operations. Actions: search, read, upload.'
4
+ description: 'Google Drive file operations. Actions: list, search, read, upload.'
5
5
  metadata:
6
6
  category: general
7
7
  requires:
@@ -14,7 +14,7 @@ metadata:
14
14
 
15
15
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
16
 
17
- Google Drive file operations. Actions: search, read, upload.
17
+ Google Drive file operations. Actions: list, search, read, upload.
18
18
 
19
19
  ## Usage
20
20
 
@@ -28,12 +28,13 @@ gsk gdrive [options]
28
28
 
29
29
  | Flag | Required | Description |
30
30
  |------|----------|-------------|
31
- | `<action>` (positional) | Yes | Action to perform. 'search': Search files by name, type, or owner; 'read': Read and extract content from a file; 'upload': Upload a file to Google Drive (string, one of: search, read, upload) |
32
- | `--query` | No | [search] Use keywords simply, terms will be combined into advanced search query in the later process.For example, if user ask for 'tax related documents', just use 'tax' as the query,DO NOT use advanced search query like 'name contains 'tax'' or 'fullText contains 'tax''. (string) |
33
- | `--mime_type` | No | [search] Filter by MIME type for 'search' (e.g., 'application/pdf'). \| [upload] The MIME type of the file (optional, will be auto-detected from file_name extension). Examples: 'text/plain', 'text/csv', 'application/json', 'image/png'. (string) |
31
+ | `<action>` (positional) | Yes | Action to perform. 'list': List files directly inside a Google Drive folder; 'search': Search files by name, type, or owner; 'read': Read and extract content from a file; 'upload': Upload a file to Google Drive (string, one of: list, search, read, upload) |
32
+ | `--query` | No | [search] Use keywords simply, terms will be combined into advanced search query later. Use `*` to list all authorized files, especially when `folder_id` or `folder_url` is supplied. (string) |
33
+ | `--mime_type` | No | [list] Optional MIME type filter. \| [search] Filter by MIME type for 'search' (e.g., 'application/pdf'). \| [upload] The MIME type of the file (optional, will be auto-detected from file_name extension). Examples: 'text/plain', 'text/csv', 'application/json', 'image/png'. (string) |
34
34
  | `--owner` | No | [search] Filter by file owner (email address) for 'search' action (string) |
35
- | `--folder_id` | No | [search] Search within a specific folder for 'search' action \| [upload] Google Drive folder ID to upload to. Optional, uploads to root if not specified. (string) |
36
- | `--trashed` | No | [search] Include trashed files in search results for 'search' action (boolean) |
35
+ | `--folder_id` | No | [list] Google Drive folder ID or folder URL. \| [search] Search within a specific folder for 'search' action. Accepts a folder ID or Google Drive folder URL. \| [upload] Google Drive folder ID to upload to. Optional, uploads to root if not specified. (string) |
36
+ | `--folder_url` | No | [list] Google Drive folder URL. \| [search] Google Drive folder URL to list/search within. (string) |
37
+ | `--trashed` | No | [list] Include trashed files. \| [search] Include trashed files in search results for 'search' action (boolean) |
37
38
  | `--file_id` | No | [read] The ID of the file to read from Google Drive. (string) |
38
39
  | `--question` | No | [read] The question to answer about the file content. (string) |
39
40
  | `--content` | No | [upload] Text content to create as a file. Use this for creating text-based files (e.g., .txt, .md, .csv, .json, .html). Either 'content' or 'file_path' is required. (string) |