frely-cli 0.10.3 → 0.10.4

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.
Files changed (49) hide show
  1. package/README.md +15 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/agent-help.d.ts +4 -4
  4. package/dist/agent-help.js +2 -2
  5. package/dist/agent-help.js.map +1 -1
  6. package/dist/device/relay-client.d.ts +2 -2
  7. package/dist/device/relay-client.js +5 -5
  8. package/dist/device/relay-client.js.map +1 -1
  9. package/dist/diagnostics.d.ts +4 -4
  10. package/dist/diagnostics.js +6 -6
  11. package/dist/diagnostics.js.map +1 -1
  12. package/dist/index.js +3 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp-command.js +1 -1
  15. package/dist/mcp-command.js.map +1 -1
  16. package/dist/runtime/mcp.d.ts +1 -1
  17. package/dist/runtime/mcp.js +23 -4
  18. package/dist/runtime/mcp.js.map +1 -1
  19. package/dist/runtime/protected-paths.d.ts +12 -0
  20. package/dist/runtime/protected-paths.js +52 -0
  21. package/dist/runtime/protected-paths.js.map +1 -0
  22. package/dist/runtime/web-fetch.d.ts +54 -0
  23. package/dist/runtime/web-fetch.js +209 -0
  24. package/dist/runtime/web-fetch.js.map +1 -0
  25. package/dist/runtime/workspace.d.ts +6 -0
  26. package/dist/runtime/workspace.js +26 -2
  27. package/dist/runtime/workspace.js.map +1 -1
  28. package/dist/{upgrade → update}/installation.d.ts +2 -2
  29. package/dist/{upgrade → update}/installation.js +2 -2
  30. package/dist/update/installation.js.map +1 -0
  31. package/dist/{upgrade → update}/maintenance.d.ts +1 -1
  32. package/dist/{upgrade → update}/maintenance.js +4 -4
  33. package/dist/update/maintenance.js.map +1 -0
  34. package/dist/update/release.d.ts +14 -0
  35. package/dist/{upgrade → update}/release.js +29 -3
  36. package/dist/update/release.js.map +1 -0
  37. package/dist/{upgrade → update}/service-refresh.js +2 -2
  38. package/dist/update/service-refresh.js.map +1 -0
  39. package/dist/{upgrade → update}/update.d.ts +7 -7
  40. package/dist/{upgrade → update}/update.js +42 -19
  41. package/dist/update/update.js.map +1 -0
  42. package/package.json +1 -1
  43. package/dist/upgrade/installation.js.map +0 -1
  44. package/dist/upgrade/maintenance.js.map +0 -1
  45. package/dist/upgrade/release.d.ts +0 -9
  46. package/dist/upgrade/release.js.map +0 -1
  47. package/dist/upgrade/service-refresh.js.map +0 -1
  48. package/dist/upgrade/update.js.map +0 -1
  49. /package/dist/{upgrade → update}/service-refresh.d.ts +0 -0
@@ -1,15 +1,25 @@
1
1
  import { runShellCommand } from "./process-tree.js";
2
2
  import { sandboxCommand } from "./sandbox.js";
3
+ import { pathProtection } from "./protected-paths.js";
3
4
  import { createHash } from "node:crypto";
4
5
  import { constants } from "node:fs";
5
6
  import { chmod, lstat, mkdir, open, readdir, readFile, realpath, rename, rm } from "node:fs/promises";
6
7
  import { basename, dirname, relative, resolve, sep } from "node:path";
7
8
  export const MAX_FILE_BYTES = 1024 * 1024;
8
9
  export const MAX_OUTPUT_BYTES = 1024 * 1024;
10
+ const PROTECTED_MESSAGE = "This path holds credentials or shell start-up files and is protected. If the owner needs a credential store opened for reading, call request_permission.";
9
11
  export class Workspace {
10
12
  root;
11
- constructor(root) {
13
+ grants;
14
+ protection;
15
+ constructor(root, grants = []) {
12
16
  this.root = root;
17
+ this.grants = grants;
18
+ this.protection = pathProtection(grants);
19
+ }
20
+ /** The same workspace for one tool call, with the credential groups the owner approved for it. */
21
+ withGrants(grants) {
22
+ return grants.length === 0 ? this : new Workspace(this.root, grants);
13
23
  }
14
24
  static async open(input) {
15
25
  const root = await realpath(resolve(input));
@@ -189,6 +199,7 @@ export class Workspace {
189
199
  }
190
200
  async deletePath(input, recursive) {
191
201
  const path = await this.existingPath(input);
202
+ this.assertWritable(path);
192
203
  if (path === this.root)
193
204
  throw new Error("Workspace root cannot be deleted.");
194
205
  const stat = await lstat(path);
@@ -200,6 +211,7 @@ export class Workspace {
200
211
  }
201
212
  async movePath(fromInput, toInput, overwrite) {
202
213
  const from = await this.existingPath(fromInput);
214
+ this.assertWritable(from);
203
215
  if (from === this.root)
204
216
  throw new Error("Workspace root cannot be moved.");
205
217
  const to = await this.createPath(toInput);
@@ -234,7 +246,7 @@ export class Workspace {
234
246
  if (entry.name === ".git" || entry.name === "node_modules")
235
247
  continue;
236
248
  const full = resolve(dir, entry.name);
237
- if (entry.isSymbolicLink())
249
+ if (entry.isSymbolicLink() || this.protection.readBlocked(full))
238
250
  continue;
239
251
  if (entry.isDirectory())
240
252
  stack.push(full);
@@ -257,11 +269,13 @@ export class Workspace {
257
269
  }
258
270
  async createPath(input) {
259
271
  const target = this.lexicalPath(input);
272
+ this.assertWritable(target);
260
273
  let cursor = dirname(target);
261
274
  while (true) {
262
275
  const canonical = await realpath(cursor).catch(() => null);
263
276
  if (canonical) {
264
277
  await this.assertCanonicalInside(canonical);
278
+ this.assertWritable(canonical);
265
279
  break;
266
280
  }
267
281
  const parent = dirname(cursor);
@@ -278,12 +292,22 @@ export class Workspace {
278
292
  const rel = relative(this.root, target);
279
293
  if (rel === ".." || rel.startsWith(`..${sep}`))
280
294
  throw new Error("Path escapes workspace.");
295
+ this.assertReadable(target);
281
296
  return target;
282
297
  }
283
298
  async assertCanonicalInside(target) {
284
299
  const rel = relative(this.root, target);
285
300
  if (rel === ".." || rel.startsWith(`..${sep}`))
286
301
  throw new Error("Path escapes workspace.");
302
+ this.assertReadable(target);
303
+ }
304
+ assertReadable(path) {
305
+ if (this.protection.readBlocked(path))
306
+ throw new Error(PROTECTED_MESSAGE);
307
+ }
308
+ assertWritable(path) {
309
+ if (this.protection.writeBlocked(path))
310
+ throw new Error(PROTECTED_MESSAGE);
287
311
  }
288
312
  }
289
313
  export function safeEnv() {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/runtime/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/runtime/workspace.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,8 @@ export declare function inspectInstallation(options?: {
18
18
  find?: typeof findExecutable;
19
19
  run?: CommandRunner;
20
20
  }): Promise<Installation>;
21
- /** An explicit upgrade is exempt from release-age gates (npm min-release-age, bun minimumReleaseAge); older managers ignore the flag. */
21
+ /** An explicit update is exempt from release-age gates (npm min-release-age, bun minimumReleaseAge); older managers ignore the flag. */
22
22
  export declare function packageArguments(installation: Installation, version: string): string[];
23
23
  export declare function shellQuote(value: string, windows?: boolean): string;
24
24
  /** Copyable instructions only: no self-replacement process on Windows. */
25
- export declare function manualUpgradeCommand(installation: Installation, version: string, serviceActive?: boolean): string;
25
+ export declare function manualUpdateCommand(installation: Installation, version: string, serviceActive?: boolean): string;
@@ -98,7 +98,7 @@ export async function inspectInstallation(options = {}) {
98
98
  }
99
99
  return candidates.length === 1 ? candidates[0] : { ...base, method: "unknown", reason: "This is a project, temporary runner, local link, or unrecognized global installation. Update it with the original installer." };
100
100
  }
101
- /** An explicit upgrade is exempt from release-age gates (npm min-release-age, bun minimumReleaseAge); older managers ignore the flag. */
101
+ /** An explicit update is exempt from release-age gates (npm min-release-age, bun minimumReleaseAge); older managers ignore the flag. */
102
102
  export function packageArguments(installation, version) {
103
103
  return installation.method === "npm"
104
104
  ? ["install", "--global", "--ignore-scripts", "--min-release-age-exclude=frely-cli", "--prefix", installation.prefix, `frely-cli@${version}`]
@@ -108,7 +108,7 @@ export function shellQuote(value, windows = false) {
108
108
  return "'" + value.replace(/'/gu, windows ? "''" : "'\\''") + "'";
109
109
  }
110
110
  /** Copyable instructions only: no self-replacement process on Windows. */
111
- export function manualUpgradeCommand(installation, version, serviceActive = false) {
111
+ export function manualUpdateCommand(installation, version, serviceActive = false) {
112
112
  const windows = installation.platform === "win32";
113
113
  const quote = (s) => shellQuote(s, windows);
114
114
  let command;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/update/installation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** An existing relay owns this gate; no updater daemon or remote upgrade jobs. */
1
+ /** An existing relay owns this gate; no updater daemon or remote update jobs. */
2
2
  export declare class MaintenanceGate {
3
3
  private paused;
4
4
  private requests;
@@ -2,14 +2,14 @@ import { createConnection, createServer } from "node:net";
2
2
  import { chmod, lstat, mkdir, rm } from "node:fs/promises";
3
3
  import { homedir } from "node:os";
4
4
  import { dirname, join } from "node:path";
5
- /** An existing relay owns this gate; no updater daemon or remote upgrade jobs. */
5
+ /** An existing relay owns this gate; no updater daemon or remote update jobs. */
6
6
  export class MaintenanceGate {
7
7
  paused = false;
8
8
  requests = 0;
9
9
  processes = new Set();
10
10
  enter() {
11
11
  if (this.paused)
12
- throw new Error("Frely is preparing an upgrade. Retry after it completes.");
12
+ throw new Error("Frely is preparing an update. Retry after it completes.");
13
13
  return this.track();
14
14
  }
15
15
  track() {
@@ -26,7 +26,7 @@ export class MaintenanceGate {
26
26
  }
27
27
  pause() {
28
28
  if (this.paused)
29
- throw new Error("Another upgrade holds this service.");
29
+ throw new Error("Another update holds this service.");
30
30
  this.paused = true;
31
31
  }
32
32
  resume() { this.paused = false; }
@@ -105,7 +105,7 @@ export async function serveMaintenance(gate, path = maintenancePath(process.pid)
105
105
  export async function acquireMaintenance(pid, path = maintenancePath(pid)) {
106
106
  const info = await lstat(path).catch(() => null);
107
107
  if (!info?.isSocket() || info.uid !== process.getuid?.() || (info.mode & 0o077) !== 0) {
108
- throw new Error("The running service has no private upgrade endpoint. Finish its tasks and restart it from a local terminal before upgrading.");
108
+ throw new Error("The running service has no private update endpoint. Finish its tasks and restart it from a local terminal before updating.");
109
109
  }
110
110
  return new Promise((resolve, reject) => {
111
111
  const socket = createConnection(path);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/update/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAe,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,iFAAiF;AACjF,MAAM,OAAO,eAAe;IAClB,MAAM,GAAG,KAAK,CAAC;IACf,QAAQ,GAAG,CAAC,CAAC;IACJ,SAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;IACrD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,iBAAiB,CAAC,KAAmB;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,MAAM,KAAW,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,KAAc,OAAO,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3G;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC;AACzG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAqB,EAAE,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;IAC/F,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrJ,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAClC,IAAI,KAAyB,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;YAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO;YAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACnE,wEAAwE;YACxE,IAAI,CAAC;gBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC7D,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAAC,CAAC;qBAC/D,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;YACrF,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,6EAA6E;IAC7E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,OAAO,KAAK,IAAI,EAAE;QAChB,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC;IAC/E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,4HAA4H,CAAC,CAAC;IAChJ,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+GAA+G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7K,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACxF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK;YAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Installation } from "./installation.js";
2
+ export interface Release {
3
+ version: string;
4
+ baseUrl?: string; /** Tried when `baseUrl` (the mirror) cannot supply the asset. */
5
+ fallbackBaseUrl?: string;
6
+ }
7
+ /** Static mirror of the GitHub release assets, reachable from mainland China. `FRELY_RELEASE_MIRROR=off` disables it; any https URL replaces it. */
8
+ export declare const DEFAULT_RELEASE_MIRROR = "https://dl.frely.cloud/cli";
9
+ export declare function releaseMirror(env?: NodeJS.ProcessEnv): string | null;
10
+ export declare function stableVersion(value: unknown): string;
11
+ export declare function compareVersions(a: string, b: string): number;
12
+ /** `mirror: null` skips the mirror lookup. A standalone installation asks the mirror first and GitHub only when the mirror has no answer. */
13
+ export declare function latestRelease(installation: Installation, request?: typeof fetch, mirror?: string | null): Promise<Release>;
14
+ export declare function standaloneAsset(platform?: NodeJS.Platform, arch?: NodeJS.Architecture, target?: string | undefined): string;
@@ -1,3 +1,22 @@
1
+ /** Static mirror of the GitHub release assets, reachable from mainland China. `FRELY_RELEASE_MIRROR=off` disables it; any https URL replaces it. */
2
+ export const DEFAULT_RELEASE_MIRROR = "https://dl.frely.cloud/cli";
3
+ export function releaseMirror(env = process.env) {
4
+ const value = (env.FRELY_RELEASE_MIRROR ?? "").trim();
5
+ if (value === "off")
6
+ return null;
7
+ const url = new URL(value || DEFAULT_RELEASE_MIRROR);
8
+ if (url.protocol !== "https:" || url.username || url.password)
9
+ throw new Error("FRELY_RELEASE_MIRROR must be an https URL without credentials, or off.");
10
+ return url.toString().replace(/\/+$/u, "");
11
+ }
12
+ const GITHUB_RELEASES = "https://github.com/FrelyHQ/frely-cli/releases/download";
13
+ async function mirrorRelease(mirror, request) {
14
+ const response = await request(`${mirror}/latest`, { headers: { "user-agent": "frely-cli" }, signal: AbortSignal.timeout(4000), redirect: "error" });
15
+ if (!response.ok)
16
+ throw new Error(`Mirror lookup failed (HTTP ${response.status}).`);
17
+ const version = stableVersion((await response.text()).trim());
18
+ return { version, baseUrl: `${mirror}/v${version}`, fallbackBaseUrl: `${GITHUB_RELEASES}/v${version}` };
19
+ }
1
20
  export function stableVersion(value) {
2
21
  if (typeof value !== "string" || !/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u.test(value))
3
22
  throw new Error("Release source did not return a stable version.");
@@ -14,8 +33,15 @@ export function compareVersions(a, b) {
14
33
  return aa[i] > bb[i] ? 1 : -1;
15
34
  return a.includes("-") === b.includes("-") ? 0 : a.includes("-") ? -1 : 1;
16
35
  }
17
- export async function latestRelease(installation, request = fetch) {
36
+ /** `mirror: null` skips the mirror lookup. A standalone installation asks the mirror first and GitHub only when the mirror has no answer. */
37
+ export async function latestRelease(installation, request = fetch, mirror = releaseMirror()) {
18
38
  const standalone = installation.method === "standalone";
39
+ if (standalone && mirror) {
40
+ try {
41
+ return await mirrorRelease(mirror, request);
42
+ }
43
+ catch { /* GitHub below */ }
44
+ }
19
45
  const response = await request(standalone
20
46
  ? "https://api.github.com/repos/FrelyHQ/frely-cli/releases/latest"
21
47
  // npm/bun resolve from the abbreviated packument, which can lag /latest after a publish; check what they will install.
@@ -37,10 +63,10 @@ export async function latestRelease(installation, request = fetch) {
37
63
  const version = stableVersion(standalone ? String(data.tag_name).replace(/^v/u, "") : latest);
38
64
  if (!standalone && !data.versions?.[version])
39
65
  throw new Error("Registry metadata does not list its latest version.");
40
- return { version, ...(standalone ? { baseUrl: `https://github.com/FrelyHQ/frely-cli/releases/download/v${version}` } : {}) };
66
+ return { version, ...(standalone ? { baseUrl: `${GITHUB_RELEASES}/v${version}` } : {}) };
41
67
  }
42
68
  export function standaloneAsset(platform = process.platform, arch = process.arch, target = typeof FRELY_BUILD_TARGET === "string" ? FRELY_BUILD_TARGET : undefined) {
43
- // Compiled target includes libc, so an Alpine executable never changes distribution during an upgrade.
69
+ // Compiled target includes libc, so an Alpine executable never changes distribution during an update.
44
70
  const value = target ?? `${platform === "win32" ? "windows" : platform}-${arch}`;
45
71
  if (!/^(?:darwin-(?:arm64|x64)|linux-(?:arm64|x64)(?:-musl)?|windows-(?:arm64|x64))$/u.test(value))
46
72
  throw new Error("This platform has no standalone release.");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/update/release.ts"],"names":[],"mappings":"AAIA,oJAAoJ;AACpJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AACnE,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,sBAAsB,CAAC,CAAC;IACrD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACzJ,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,eAAe,GAAG,wDAAwD,CAAC;AACjF,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,OAAqB;IAChE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,MAAM,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACrJ,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,OAAO,EAAE,EAAE,eAAe,EAAE,GAAG,eAAe,KAAK,OAAO,EAAE,EAAE,CAAC;AAC1G,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,6CAA6C,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAChK,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAC7C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,6IAA6I;AAC7I,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,YAA0B,EAAE,UAAwB,KAAK,EAAE,SAAwB,aAAa,EAAE;IACpI,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC;IACxD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC;YAAC,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU;QACvC,CAAC,CAAC,gEAAgE;QAClE,uHAAuH;QACvH,CAAC,CAAC,sCAAsC,EAAE;QAC1C,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qCAAqC,EAAE,YAAY,EAAE,WAAW,EAAE;QACvH,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO;KACrD,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACzD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC5I,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChH,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,WAAW,CAAyC,EAAE,MAAM,CAAC;IAC3G,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,IAAI,CAAC,UAAU,IAAI,CAAE,IAAI,CAAC,QAAgD,EAAE,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC9J,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,eAAe,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3F,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;IAChK,sGAAsG;IACtG,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;IACjF,IAAI,CAAC,iFAAiF,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChK,OAAO,SAAS,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtE,CAAC"}
@@ -87,7 +87,7 @@ export class ServiceRefresh {
87
87
  return;
88
88
  if (!gate.idle) {
89
89
  if (this.deferredFingerprint !== candidate.fingerprint) {
90
- diagnostic(log, "relay.upgrade_deferred");
90
+ diagnostic(log, "relay.update_deferred");
91
91
  this.deferredFingerprint = candidate.fingerprint;
92
92
  }
93
93
  return;
@@ -102,7 +102,7 @@ export class ServiceRefresh {
102
102
  }
103
103
  if (!await probe.verify(candidate) || signal.aborted || !gate.idle)
104
104
  return;
105
- diagnostic(log, "relay.upgrade_restart");
105
+ diagnostic(log, "relay.update_restart");
106
106
  restart();
107
107
  this.restarting = true;
108
108
  // Keep admission closed while the relay flushes and exits. Its existing supervisor restarts it.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-refresh.js","sourceRoot":"","sources":["../../src/update/service-refresh.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,18 @@ import { serviceCommand, serviceStatus, startMcpService, stopMcpService } from "
4
4
  import { inspectInstallation, type Installation } from "./installation.js";
5
5
  import { latestRelease, type Release } from "./release.js";
6
6
  import { acquireMaintenance } from "./maintenance.js";
7
- export interface UpgradeResult {
8
- state: "current" | "manual" | "upgraded";
7
+ export interface UpdateResult {
8
+ state: "current" | "manual" | "updated";
9
9
  message: string;
10
10
  }
11
- export interface UpgradeInspection {
11
+ export interface UpdateInspection {
12
12
  currentVersion: string;
13
13
  latestVersion?: string;
14
14
  installation: Installation;
15
15
  state: "unsupported" | "available" | "current" | "unavailable";
16
16
  message: string;
17
17
  }
18
- export declare function inspectUpgrade(): Promise<UpgradeInspection>;
18
+ export declare function inspectUpdate(): Promise<UpdateInspection>;
19
19
  export declare function installedVersion(installation: Installation): Promise<string>;
20
20
  declare function download(url: string, destination: string, maxBytes: number): Promise<void>;
21
21
  export declare function validateStandalone(path: string, checksum: string, version: string, execute?: typeof installedVersion): Promise<void>;
@@ -43,7 +43,7 @@ declare const defaults: {
43
43
  lockInstallation: typeof lockInstallation;
44
44
  pause: (ms: number) => Promise<unknown>;
45
45
  };
46
- export type UpgradeDependencies = typeof defaults;
47
- /** Upgrade in the calling terminal. Busy MCP callers fail before any service stop or package write. */
48
- export declare function upgrade(write: (message: string) => void, dependencies?: UpgradeDependencies): Promise<UpgradeResult>;
46
+ export type UpdateDependencies = typeof defaults;
47
+ /** Update in the calling terminal. Busy MCP callers fail before any service stop or package write. */
48
+ export declare function update(write: (message: string) => void, dependencies?: UpdateDependencies): Promise<UpdateResult>;
49
49
  export {};
@@ -8,12 +8,12 @@ import { VERSION } from "../version.js";
8
8
  import { readDeviceBinding } from "../device/state.js";
9
9
  import { connectionIsLive, readConnectionStatus } from "../device/connection-status.js";
10
10
  import { serviceCommand, serviceStatus, startMcpService, stopMcpService } from "../service.js";
11
- import { inspectInstallation, manualUpgradeCommand, packageArguments } from "./installation.js";
12
- import { compareVersions, latestRelease, standaloneAsset } from "./release.js";
11
+ import { inspectInstallation, manualUpdateCommand, packageArguments } from "./installation.js";
12
+ import { compareVersions, latestRelease, releaseMirror, standaloneAsset } from "./release.js";
13
13
  import { acquireMaintenance } from "./maintenance.js";
14
14
  const execFile = promisify(execFileCallback);
15
15
  const pause = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
16
- export async function inspectUpgrade() {
16
+ export async function inspectUpdate() {
17
17
  const installation = await inspectInstallation().catch(() => ({ method: "unknown", entry: process.argv[1] ?? process.execPath, platform: process.platform, reason: "Installation could not be inspected." }));
18
18
  if (installation.method === "unknown" || installation.method === "source") {
19
19
  return { currentVersion: VERSION, installation, state: "unsupported", message: installation.reason };
@@ -33,12 +33,22 @@ export async function installedVersion(installation) {
33
33
  const args = installation.method === "standalone" ? ["--version"] : [installation.entry, "--version"];
34
34
  return (await execFile(file, args, { cwd: homedir(), timeout: 10000, maxBuffer: 65536 })).stdout.trim();
35
35
  }
36
+ const DOWNLOAD_HOSTS = ["github.com", "release-assets.githubusercontent.com", "objects.githubusercontent.com"];
37
+ function mirrorHosts() {
38
+ try {
39
+ const mirror = releaseMirror();
40
+ return mirror ? [new URL(mirror).hostname] : [];
41
+ }
42
+ catch {
43
+ return [];
44
+ }
45
+ }
36
46
  async function download(url, destination, maxBytes) {
37
47
  const signal = AbortSignal.timeout(60000);
38
48
  let response;
39
49
  for (let redirects = 0; redirects < 5; redirects++) {
40
50
  const parsed = new URL(url);
41
- if (parsed.protocol !== "https:" || parsed.username || parsed.password || !["github.com", "release-assets.githubusercontent.com", "objects.githubusercontent.com"].includes(parsed.hostname))
51
+ if (parsed.protocol !== "https:" || parsed.username || parsed.password || ![...DOWNLOAD_HOSTS, ...mirrorHosts()].includes(parsed.hostname))
42
52
  throw new Error("Unsupported release download location.");
43
53
  response = await fetch(url, { signal, redirect: "manual" });
44
54
  if ([301, 302, 303, 307, 308].includes(response.status)) {
@@ -83,13 +93,26 @@ export async function prepareStandalone(installation, release, fetchFile = downl
83
93
  const target = installation.entry;
84
94
  if (!(await lstat(target)).isFile())
85
95
  throw new Error("The installation is not a regular file.");
86
- const stage = await mkdtemp(join(dirname(target), ".frely-upgrade-"));
96
+ const stage = await mkdtemp(join(dirname(target), ".frely-update-"));
87
97
  const next = join(stage, "frely"), backup = join(stage, "previous");
88
98
  try {
89
99
  const asset = standaloneAsset();
90
- await fetchFile(`${release.baseUrl}/${asset}.sha256`, join(stage, "checksum"), 1024);
91
- await fetchFile(`${release.baseUrl}/${asset}`, next, 200 * 1024 * 1024);
92
- await validateStandalone(next, await readFile(join(stage, "checksum"), "utf8"), release.version, execute);
100
+ // Checksum and executable must come from the same source; a mirror failure of any kind falls back to GitHub as a whole.
101
+ const fromBase = async (base) => {
102
+ await rm(join(stage, "checksum"), { force: true });
103
+ await rm(next, { force: true });
104
+ await fetchFile(`${base}/${asset}.sha256`, join(stage, "checksum"), 1024);
105
+ await fetchFile(`${base}/${asset}`, next, 200 * 1024 * 1024);
106
+ await validateStandalone(next, await readFile(join(stage, "checksum"), "utf8"), release.version, execute);
107
+ };
108
+ try {
109
+ await fromBase(release.baseUrl);
110
+ }
111
+ catch (error) {
112
+ if (!release.fallbackBaseUrl)
113
+ throw error;
114
+ await fromBase(release.fallbackBaseUrl);
115
+ }
93
116
  await copyFile(target, backup);
94
117
  return {
95
118
  apply: () => rename(next, target),
@@ -113,15 +136,15 @@ async function installPackage(installation, version) {
113
136
  }
114
137
  async function lockInstallation(installation) {
115
138
  const directory = installation.method === "standalone" ? dirname(installation.entry) : dirname(dirname(dirname(installation.entry)));
116
- const path = join(directory, ".frely-upgrade.lock");
117
- const file = await open(path, "wx", 0o600).catch(() => { throw new Error(`Cannot acquire upgrade lock: ${path}. Check directory permissions or another upgrade. Remove a stale lock only after confirming no upgrade is running.`); });
139
+ const path = join(directory, ".frely-update.lock");
140
+ const file = await open(path, "wx", 0o600).catch(() => { throw new Error(`Cannot acquire update lock: ${path}. Check directory permissions or another update. Remove a stale lock only after confirming no update is running.`); });
118
141
  await file.writeFile(`${process.pid}\n`);
119
142
  return async () => { await file.close(); await rm(path, { force: true }); };
120
143
  }
121
144
  const defaults = { inspectInstallation, latestRelease, installedVersion, serviceStatus, serviceCommand, stopMcpService, startMcpService,
122
145
  readDeviceBinding, readConnectionStatus, acquireMaintenance, prepareStandalone, installPackage, lockInstallation, pause };
123
- /** Upgrade in the calling terminal. Busy MCP callers fail before any service stop or package write. */
124
- export async function upgrade(write, dependencies = defaults) {
146
+ /** Update in the calling terminal. Busy MCP callers fail before any service stop or package write. */
147
+ export async function update(write, dependencies = defaults) {
125
148
  const d = dependencies, installation = await d.inspectInstallation();
126
149
  if (installation.method === "source" || installation.method === "unknown")
127
150
  throw new Error(installation.reason);
@@ -130,14 +153,14 @@ export async function upgrade(write, dependencies = defaults) {
130
153
  return { state: "current", message: `Frely ${VERSION} is up to date.` };
131
154
  const service = await d.serviceStatus();
132
155
  if (installation.platform === "win32")
133
- return { state: "manual", message: `Update ${VERSION} → ${release.version}. Finish any running Frely tasks, then run this command in a local PowerShell terminal:\n\n${manualUpgradeCommand(installation, release.version, service.active)}\n\nAfter installation, run frely doctor. No files or services were changed by frely update.` };
156
+ return { state: "manual", message: `Update ${VERSION} → ${release.version}. Finish any running Frely tasks, then run this command in a local PowerShell terminal:\n\n${manualUpdateCommand(installation, release.version, service.active)}\n\nAfter installation, run frely doctor. No files or services were changed by frely update.` };
134
157
  if (!["darwin", "linux"].includes(installation.platform))
135
158
  throw new Error("This platform requires a manual update.");
136
159
  if (service.active) {
137
160
  const command = await d.serviceCommand();
138
161
  const entry = command?.[installation.method === "standalone" ? 0 : 1];
139
162
  if (!service.pid || !entry || await realpath(entry).catch(() => entry) !== installation.entry)
140
- throw new Error("The running service does not match this installation. Inspect frely doctor -v before upgrading.");
163
+ throw new Error("The running service does not match this installation. Inspect frely doctor -v before updating.");
141
164
  }
142
165
  const unlock = await d.lockInstallation(installation);
143
166
  let prepared, releaseMaintenance;
@@ -153,7 +176,7 @@ export async function upgrade(write, dependencies = defaults) {
153
176
  if (service.active) {
154
177
  const current = await d.serviceStatus();
155
178
  if (!current.active || current.pid !== service.pid)
156
- throw new Error("The service changed during upgrade preparation. Run frely doctor, then retry.");
179
+ throw new Error("The service changed during update preparation. Run frely doctor, then retry.");
157
180
  stopped = true;
158
181
  await d.stopMcpService();
159
182
  for (let i = 0; i < 30 && (await d.serviceStatus()).active; i++)
@@ -183,11 +206,11 @@ export async function upgrade(write, dependencies = defaults) {
183
206
  }
184
207
  if (!started) {
185
208
  // Authentication/network can prevent ensureDevice and its reporter. Keep a verified installed binary.
186
- return { state: "upgraded", message: `Frely ${release.version} is installed. A service restart was requested, but its new runtime could not be verified. Run frely doctor -v.` };
209
+ return { state: "updated", message: `Frely ${release.version} is installed. A service restart was requested, but its new runtime could not be verified. Run frely doctor -v.` };
187
210
  }
188
- return { state: "upgraded", message: `Frely ${release.version} is installed; the service is using the new version. ${connected ? "Relay connection verified." : "Relay connection is not yet verified. Run frely doctor."}` };
211
+ return { state: "updated", message: `Frely ${release.version} is installed; the service is using the new version. ${connected ? "Relay connection verified." : "Relay connection is not yet verified. Run frely doctor."}` };
189
212
  }
190
- return { state: "upgraded", message: `Frely ${release.version} is installed. The background service remains ${service.installed ? "stopped" : "uninstalled"}.` };
213
+ return { state: "updated", message: `Frely ${release.version} is installed. The background service remains ${service.installed ? "stopped" : "uninstalled"}.` };
191
214
  }
192
215
  catch (error) {
193
216
  let recovery = "";
@@ -212,7 +235,7 @@ export async function upgrade(write, dependencies = defaults) {
212
235
  recovery += " The service could not restart. Run frely doctor -v.";
213
236
  }
214
237
  }
215
- throw new Error(`${error instanceof Error ? error.message : "Upgrade failed."}${recovery}`);
238
+ throw new Error(`${error instanceof Error ? error.message : "Update failed."}${recovery}`);
216
239
  }
217
240
  finally {
218
241
  releaseMaintenance?.();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/update/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frely-cli",
3
- "version": "0.10.3",
3
+ "version": "0.10.4",
4
4
  "description": "Frely account CLI and local MCP runtime",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {