@my-life-buddies/cli 0.25.0-dev.0 → 0.25.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/bin/buddy.js CHANGED
@@ -68,6 +68,7 @@ function createRuntimeLogForwarder(onLog, secrets) {
68
68
  // apps/cli/src/platform-host.ts
69
69
  import {
70
70
  CloudAuthenticator,
71
+ EcsSessionMigrationStore,
71
72
  BuddyDevError,
72
73
  checkRuntimeUpdate,
73
74
  checkProjectGateway,
@@ -95,8 +96,8 @@ import {
95
96
  connectPreviewBridge
96
97
  } from "./preview.js";
97
98
  var PREVIEW_COMMAND_HELP = `\u7528\u6CD5:
98
- buddy-cli-sit preview [--directory <\u9879\u76EE\u76EE\u5F55>] [--buddy-id <\u642D\u5B50 ID>] [--developer-web <\u540E\u53F0 URL>] [--app-server <App Server URL>] [--no-open]
99
- buddy-cli-sit preview --local [--directory <\u9879\u76EE\u76EE\u5F55>] [--port <\u672C\u5730\u7AEF\u53E3>]
99
+ buddy-cli preview [--directory <\u9879\u76EE\u76EE\u5F55>] [--buddy-id <\u642D\u5B50 ID>] [--developer-web <\u540E\u53F0 URL>] [--app-server <App Server URL>] [--no-open]
100
+ buddy-cli preview --local [--directory <\u9879\u76EE\u76EE\u5F55>] [--port <\u672C\u5730\u7AEF\u53E3>]
100
101
 
101
102
  \u8BF4\u660E:
102
103
  \u9ED8\u8BA4\u6253\u5F00\u5F53\u524D\u642D\u5B50\u7684\u521B\u9020\u8005\u540E\u53F0\u300C\u5F00\u53D1\u8C03\u8BD5\u300D\uFF0C\u8FDE\u63A5\u672C\u5730\u5DE5\u7A0B\uFF1B\u5728\u540E\u53F0\u542F\u52A8/\u505C\u6B62 DEV\u3001\u8BD5\u804A\u3001\u67E5\u770B Widget\u3001\u65F6\u95F4\u7EBF\u4E0E\u534F\u8BAE\u65E5\u5FD7\u3001\u771F\u673A\u9884\u89C8\u3002
@@ -108,15 +109,17 @@ var PREVIEW_COMMAND_HELP = `\u7528\u6CD5:
108
109
  --local \u662F\u540E\u53F0\u4E0D\u53EF\u7528\u65F6\u7684\u72EC\u7ACB\u672C\u5730\u9884\u89C8\u5907\u7528\u5165\u53E3\uFF0C--port \u4EC5\u4E0E --local \u4E00\u8D77\u4F7F\u7528\u3002
109
110
  \u4FDD\u6301\u7EC8\u7AEF\u8FD0\u884C\uFF1BCtrl+C \u6216\u5173\u95ED\u7EC8\u7AEF\u4F1A\u505C\u6B62 DEV \u5E76\u65AD\u5F00\u8FDE\u63A5\uFF0C\u5237\u65B0\u540E\u53F0\u4E0D\u4F1A\u81EA\u52A8\u542F\u52A8 DEV\u3002
110
111
  DEV \u5931\u8D25\u5148\u67E5\u770B\u5177\u4F53\u9519\u8BEF\u548C\u8FD0\u884C\u65E5\u5FD7\uFF1B\u5347\u7EA7 CLI \u540E\u9000\u51FA\u65E7 preview \u8FDB\u7A0B\u5E76\u91CD\u65B0\u8FDE\u63A5\uFF0C\u518D\u542F\u52A8 DEV\u3002
111
- \u540E\u53F0\u53EF\u5F3A\u5236\u65AD\u8FDE\uFF1B\u672C\u673A\u505C\u6B62\u672A\u786E\u8BA4\u65F6\uFF0C\u5728\u539F\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C buddy-cli-sit dev stop\u3002\u8BE5\u547D\u4EE4\u4E0D\u91CD\u8FDE\u3001\u4E0D\u91CD\u542F\u3002
112
- \u672A\u914D\u7F6E\u5730\u5740\u65F6\u8FDE\u63A5 MLB \u6D4B\u8BD5\u73AF\u5883 ${DEFAULT_MLB_TEST_URL}\uFF08HTTPS\uFF09\u3002
113
- SIT \u5305\u56FA\u5B9A\u8FDE\u63A5 SIT\uFF1B\u5730\u5740\u53C2\u6570\u53EA\u6821\u9A8C\u56FA\u5B9A\u76EE\u6807\uFF0C\u4E0D\u80FD\u5207\u6362\u5E73\u53F0\u3002Runtime \u7F51\u5173\u7531 CLI \u6CE8\u5165\u3002
114
- CLI \u7EDF\u4E00\u542F\u52A8\u5E76\u7BA1\u7406\u5DE5\u7A0B\u4E2D\u7684\u5B98\u65B9 Runtime\uFF1B\u6BCF\u6B21\u542F\u52A8\u6216\u91CD\u8F7D\u68C0\u67E5\u5DE5\u7A0B Runtime \u7684\u51C6\u786E\u7248\u672C\u3001\u5B89\u88C5\u548C\u9501\u6587\u4EF6\u4E0E npm dev \u6700\u65B0\u7248\u672C\u4E00\u81F4\u3002
112
+ \u540E\u53F0\u53EF\u5F3A\u5236\u65AD\u8FDE\uFF1B\u672C\u673A\u505C\u6B62\u672A\u786E\u8BA4\u65F6\uFF0C\u5728\u539F\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C buddy-cli dev stop\u3002\u8BE5\u547D\u4EE4\u4E0D\u91CD\u8FDE\u3001\u4E0D\u91CD\u542F\u3002
113
+ \u672A\u914D\u7F6E\u5730\u5740\u65F6\u8FDE\u63A5 MLB \u6B63\u5F0F\u73AF\u5883 ${DEFAULT_MLB_TEST_URL}\uFF08HTTPS\uFF09\u3002
114
+ \u6B63\u5F0F\u7248\u56FA\u5B9A\u8FDE\u63A5 PROD\uFF1B\u5730\u5740\u53C2\u6570\u53EA\u6821\u9A8C\u56FA\u5B9A\u76EE\u6807\uFF0C\u4E0D\u80FD\u5207\u6362\u5E73\u53F0\u3002Runtime \u7F51\u5173\u7531 CLI \u6CE8\u5165\u3002
115
+ CLI \u7EDF\u4E00\u542F\u52A8\u5E76\u7BA1\u7406\u5DE5\u7A0B\u4E2D\u7684\u5B98\u65B9 Runtime\uFF1B\u6BCF\u6B21\u542F\u52A8\u6216\u91CD\u8F7D\u5FC5\u987B\u901A\u8FC7 npm \u6700\u65B0\u7A33\u5B9A\u7248\u68C0\u67E5\u3002
115
116
  \u8EAB\u4EFD\u8BFB\u53D6 package.json.buddyId\uFF1B.env \u4FDD\u5B58 Token\uFF0C\u542F\u52A8\u524D\u5411 Server \u6821\u9A8C\u6240\u5C5E\u642D\u5B50\u3002
116
- \u8FDE\u63A5\u524D\u81EA\u68C0 .env \u7F51\u5173\uFF1B\u53D1\u73B0\u5176\u4ED6\u73AF\u5883\u5730\u5740\u65F6\u505C\u6B62\uFF1B\u8BF7\u4F7F\u7528\u5BF9\u5E94 CLI\uFF0C\u8FC1\u79FB\u65F6\u65B0\u5EFA\u8EAB\u4EFD\u4E14\u4E0D\u590D\u5236\u51ED\u636E\u3002
117
+ \u8FDE\u63A5\u524D\u81EA\u68C0 .env \u7F51\u5173\uFF1B\u5DF2\u77E5\u65E7 ECS \u5730\u5740\u5728\u542F\u52A8 DEV \u65F6\u6821\u9A8C\u5F52\u5C5E\u5E76\u81EA\u52A8\u66F4\u65B0\uFF0C\u4E0D\u540C\u5E73\u53F0\u4ECD\u9700\u660E\u786E\u786E\u8BA4\u3002
117
118
  --refresh-token \u91CD\u65B0\u9886\u53D6\u5DF2\u6709\u5F00\u53D1 Token\uFF0C\u66F4\u65B0\u540C\u4E00\u73AF\u5883\u7684\u5DE5\u7A0B .env\uFF1B\u4E0D\u80FD\u5207\u6362\u5E73\u53F0\uFF0C\u4E0D\u4F1A\u751F\u6210\u65B0\u5BC6\u94A5\u3002
118
119
  Widget \u6D88\u606F\u5361\u7247\u4FDD\u7559\u6307\u5B9A\u8BB0\u5F55\u7684\u6253\u5F00\u76EE\u6807\uFF0C\u5C0F\u6302\u4EF6\u5217\u8868\u6253\u5F00\u9ED8\u8BA4\u89C6\u56FE\u3002
119
- SIT \u540E\u53F0\u652F\u6301\u6309 Schema \u7F16\u8F91 Widget \u8BB0\u5F55\u4E0E\u4E0A\u4F20\u56FE\u7247\uFF1B\u901A\u8FC7 window.dadaWidget \u8C03\u7528\uFF0C\u5173\u95ED\u540E\u805A\u5408\u53D8\u66F4\u901A\u77E5\u3002\u771F\u673A\u7F16\u8F91\u4ECD\u9700\u5BA2\u6237\u7AEF\u652F\u6301\u3002
120
+ Widget \u9875\u9762\u5199\u64CD\u4F5C\u987B\u7531 operations.userUI \u663E\u5F0F\u6388\u6743\uFF0C\u7F3A\u7701\u53EA\u8BFB\uFF1B\u540E\u53F0\u7F16\u8F91\u8FD8\u9700\u914D\u5957 Server\u3001Web \u548C window.dadaWidget \u6865\u63A5\u3002
121
+ 409 \u51B2\u7A81\u9700\u91CD\u8BFB\u6838\u5BF9\uFF0C\u4E0D\u81EA\u52A8\u8986\u76D6\uFF1B\u771F\u673A\u7F16\u8F91\u4F9D\u8D56\u76EE\u6807 App \u6865\u63A5\u5E76\u5355\u72EC\u9A8C\u6536\uFF0C\u540E\u53F0\u901A\u8FC7\u4E0D\u4EE3\u8868\u624B\u673A\u7AEF\u652F\u6301\u3002
122
+ \u5F53\u524D Creator \u53EA\u8BFB\u539F\u578B\u7684\u9650\u5236\u4E0D\u4EE3\u8868\u5E73\u53F0\u7EDF\u4E00\u7981\u6B62\u7F16\u8F91\uFF1B\u8BB0\u5F55\u7F16\u8F91\u4E0D\u7B49\u4E8E\u591A\u4EBA\u5B9E\u65F6\u540C\u6B65\u3001\u73A9\u5BB6\u8BA4\u8BC1\u6216\u73A9\u5BB6\u79C1\u6709\u6570\u636E\u9694\u79BB\u3002
120
123
  \u6A21\u62DF\u5668\u4F7F\u7528\u5F53\u524D\u5F00\u53D1\u8005\u8D26\u53F7\u8BBF\u95EE <buddyId>-dev \u8C03\u8BD5\u5206\u8EAB\u3002`;
121
124
  function valueAfter(args, index, flag) {
122
125
  const value = args[index + 1];
@@ -443,10 +446,16 @@ var BuddyPlatformHost = class {
443
446
  developerWebUrl,
444
447
  openBrowser: this.#openUrl
445
448
  }),
446
- new SystemCloudTokenStore({
447
- account: `developer-session:${createHash("sha256").update(key).digest("hex")}`,
448
- commandRunner: this.#credentialCommandRunner
449
- })
449
+ new EcsSessionMigrationStore(
450
+ new SystemCloudTokenStore({
451
+ account: `developer-session:${createHash("sha256").update(key).digest("hex")}`,
452
+ commandRunner: this.#credentialCommandRunner
453
+ }),
454
+ new SystemCloudTokenStore({
455
+ account: `developer-session:${createHash("sha256").update("https://47.116.168.81").digest("hex")}`,
456
+ commandRunner: this.#credentialCommandRunner
457
+ })
458
+ )
450
459
  );
451
460
  this.#sessions.set(key, session);
452
461
  }
@@ -457,7 +466,7 @@ var BuddyPlatformHost = class {
457
466
  // apps/cli/src/platform-support.ts
458
467
  var UnsupportedDeveloperPlatformError = class extends Error {
459
468
  constructor(platform) {
460
- super(`buddy-cli-sit V1 \u76EE\u524D\u53EA\u652F\u6301 macOS\uFF0C\u5F53\u524D\u7CFB\u7EDF\u662F ${platform}`);
469
+ super(`buddy-cli V1 \u76EE\u524D\u53EA\u652F\u6301 macOS\uFF0C\u5F53\u524D\u7CFB\u7EDF\u662F ${platform}`);
461
470
  this.platform = platform;
462
471
  this.name = "UnsupportedDeveloperPlatformError";
463
472
  }
@@ -480,7 +489,7 @@ import { dirname, join } from "node:path";
480
489
  import { homedir } from "node:os";
481
490
  import { createHash as createHash2 } from "node:crypto";
482
491
  import { setTimeout as delay } from "node:timers/promises";
483
- var defaultUpdateCache = () => join(homedir(), ".cache", "buddy-cli-sit", "updates");
492
+ var defaultUpdateCache = () => join(homedir(), ".cache", "buddy-cli", "updates");
484
493
  var globalUpdateLock = (cache, prefix) => join(cache, "locks", createHash2("sha256").update(prefix).digest("hex"));
485
494
  async function withUpdateLock(path, signal, action) {
486
495
  await mkdir(dirname(path), { recursive: true, mode: 448 });
@@ -569,23 +578,22 @@ async function globalInstallation(packageRoot, packageName) {
569
578
  // apps/cli/src/self-update.ts
570
579
  var PACKAGE = "@my-life-buddies/cli";
571
580
  var REGISTRY = "https://registry.npmjs.org/";
572
- var MANUAL_UPDATE = `npm install --global --prefix "$HOME/.local/share/buddy-cli/sit" ${PACKAGE}@dev --registry=${REGISTRY} --prefer-online`;
581
+ var MANUAL_UPDATE = `npm install --global ${PACKAGE}@latest --registry=${REGISTRY} --prefer-online`;
573
582
  var execute = promisify(execFile);
574
583
  var HELP = `\u7528\u6CD5:
575
- buddy-cli-sit --version [--json]
576
- buddy-cli-sit update --check [--json]
577
- buddy-cli-sit update [--json]
584
+ buddy-cli --version [--json]
585
+ buddy-cli update --check [--json]
586
+ buddy-cli update [--json]
578
587
 
579
588
  --version \u67E5\u770B\u5F53\u524D\u8FD0\u884C\u7684 CLI \u7248\u672C\uFF08\u65E0\u9700\u8054\u7F51\uFF09
580
- --check \u68C0\u67E5\u516C\u5171 npm \u7684 dev \u7248\u672C\uFF0C\u4E0D\u5B89\u88C5
589
+ --check \u68C0\u67E5\u516C\u5171 npm \u7684 latest \u7248\u672C\uFF0C\u4E0D\u5B89\u88C5
581
590
  --json \u8F93\u51FA JSON\uFF0C\u4F9B Coding Agent \u6216\u811A\u672C\u8BFB\u53D6
582
591
 
583
592
  \u65E0\u9700\u767B\u5F55\u642D\u642D\u8D26\u53F7\uFF0C\u4E5F\u65E0\u9700\u8FDB\u5165\u642D\u5B50\u5DE5\u7A0B\u3002
584
593
  \u6B63\u5E38\u547D\u4EE4\uFF08\u542B guide\uFF09\u4F1A\u5148\u8054\u7F51\u81EA\u68C0\uFF0C\u81EA\u52A8\u66F4\u65B0\u540E\u7531\u65B0\u7248\u7EE7\u7EED\u6267\u884C\uFF1B\u7B49\u5F85\u5B8C\u6210\u5373\u53EF\u3002
585
594
  \u5B89\u88C5\u4E3B\u52A8\u5237\u65B0 npm \u7248\u672C\u7F13\u5B58\uFF0C\u627E\u4E0D\u5230\u7248\u672C\uFF08ETARGET\uFF09\u65F6\u6700\u591A\u91CD\u8BD5\u4E00\u6B21\uFF1B\u5931\u8D25\u8BF4\u660E\u5177\u4F53\u539F\u56E0\u3002
586
595
  --help\u3001\u5404\u547D\u4EE4 --help \u4E0E --version \u79BB\u7EBF\u53EF\u7528\uFF1B\u67E5\u8BE2\u6216\u66F4\u65B0\u5931\u8D25\u65F6\u505C\u6B62\u4E1A\u52A1\u64CD\u4F5C\u3002
587
- update \u66F4\u65B0\u5F53\u524D CLI \u6240\u5728\u7684 npm \u5B89\u88C5\u76EE\u5F55\uFF08\u542B --global --prefix \u81EA\u5B9A\u4E49\u76EE\u5F55\uFF09\uFF0C\u4E0D\u4FEE\u6539\u5176\u4ED6\u5B89\u88C5\u6216\u5DE5\u7A0B Runtime \u4F9D\u8D56\u3002
588
- \u540C\u4E00\u5305 latest/dev \u9700\u5206\u76EE\u5F55\u5B89\u88C5\u624D\u80FD\u5171\u5B58\uFF1BSIT \u547D\u4EE4\u4E3A buddy-cli-sit\uFF0C\u6B63\u5F0F\u547D\u4EE4\u4E3A buddy-cli\u3002
596
+ update \u66F4\u65B0\u5F53\u524D CLI \u6240\u5728\u7684 npm \u5168\u5C40\u5B89\u88C5\u76EE\u5F55\uFF08\u542B\u81EA\u5B9A\u4E49 --prefix\uFF09\uFF0C\u4E0D\u4FEE\u6539\u5176\u4ED6\u5B89\u88C5\u6216\u5DE5\u7A0B Runtime \u4F9D\u8D56\u3002
589
597
  \u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u6216\u5F53\u524D\u7248\u672C\u66F4\u9AD8\u65F6\u4E0D\u5B89\u88C5\u3001\u4E0D\u964D\u7EA7\u3002
590
598
  \u6E90\u7801\u3001npm link\u3001\u5C40\u90E8\u5B89\u88C5\u6216 npx \u7684\u6B63\u5E38\u547D\u4EE4\u4F7F\u7528\u7F13\u5B58\u7684\u65B0\u7248\u6267\u884C\uFF0C\u4E0D\u8986\u76D6\u6E90\u7801\u6216\u5DE5\u7A0B\u4F9D\u8D56\u3002
591
599
  \u4E0A\u8FF0\u5B89\u88C5\u65B9\u5F0F\u4E0D\u80FD\u7528 update \u5355\u72EC\u4FEE\u6539\u539F\u5B89\u88C5\uFF0C\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u66F4\u65B0\u3002
@@ -623,7 +631,7 @@ async function latestVersion(options) {
623
631
  const timeout = AbortSignal.timeout(1e4);
624
632
  const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
625
633
  try {
626
- const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(PACKAGE)}/dev`, {
634
+ const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(PACKAGE)}/latest`, {
627
635
  signal,
628
636
  headers: { Accept: "application/json" },
629
637
  redirect: "error"
@@ -631,8 +639,7 @@ async function latestVersion(options) {
631
639
  if (!response.ok) throw new Error(`npm \u8FD4\u56DE HTTP ${response.status}`);
632
640
  const metadata = await response.json();
633
641
  if (metadata?.name !== PACKAGE) throw new Error("npm \u8FD4\u56DE\u7684\u5305\u540D\u4E0D\u5339\u914D");
634
- parseVersion(metadata.version);
635
- if (typeof metadata.version !== "string" || !/^\d+\.\d+\.\d+-dev\.\d+$/.test(metadata.version)) throw new Error("npm dev \u672A\u6307\u5411 x.y.z-dev.N \u7248\u672C\uFF1BSIT CLI \u4E0D\u4F1A\u8DE8\u6E20\u9053\u66F4\u65B0\uFF0C\u8BF7\u8054\u7CFB\u53D1\u5E03\u8005\u4FEE\u6B63 dev \u6807\u7B7E");
642
+ if (parseVersion(metadata.version).length !== 3) throw new Error("npm latest \u6307\u5411\u4E86\u6D4B\u8BD5\u7248\uFF0C\u6B63\u5F0F CLI \u4E0D\u4F1A\u8DE8\u6E20\u9053\u66F4\u65B0\uFF1B\u8BF7\u8054\u7CFB\u53D1\u5E03\u8005\u4FEE\u6B63 latest \u6807\u7B7E");
636
643
  return metadata.version;
637
644
  } catch (cause) {
638
645
  if (options.signal?.aborted) throw new Error("\u64CD\u4F5C\u5DF2\u53D6\u6D88\u3002");
@@ -641,20 +648,15 @@ async function latestVersion(options) {
641
648
  }
642
649
  }
643
650
  async function installUpdate(version, options) {
644
- if (!/^\d+\.\d+\.\d+-dev\.\d+$/.test(version)) throw new Error("SIT CLI \u53EA\u80FD\u66F4\u65B0 x.y.z-dev.N \u7248\u672C\uFF0C\u4E0D\u4F1A\u8DE8\u6E20\u9053\u5B89\u88C5\u3002");
645
651
  const runNpm = options.runNpm ?? ((args, settings2) => execute("npm", args, { ...settings2, encoding: "utf8", maxBuffer: 4 * 1024 * 1024 }));
646
652
  const settings = { cwd: homedir2(), signal: options.signal, timeout: 1e4 };
647
653
  const installation = await globalInstallation(options.packageRoot, PACKAGE);
648
654
  if (!installation) {
649
- throw new Error("\u5F53\u524D CLI \u662F\u6E90\u7801\u3001\u94FE\u63A5\u6216\u9879\u76EE\u5185\u5B89\u88C5\uFF0C\u4E0D\u80FD\u76F4\u63A5\u6539\u5199\u539F\u5B89\u88C5\u3002\u6B63\u5E38\u547D\u4EE4\u4F1A\u4ECE SIT \u72EC\u7ACB\u7F13\u5B58\u8FD0\u884C\u65B0\u7248\uFF1B\u5355\u72EC\u66F4\u65B0\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u3002");
655
+ throw new Error("\u5F53\u524D CLI \u662F\u6E90\u7801\u3001\u94FE\u63A5\u6216\u9879\u76EE\u5185\u5B89\u88C5\uFF0C\u4E0D\u80FD\u76F4\u63A5\u6539\u5199\u539F\u5B89\u88C5\u3002\u6B63\u5E38\u547D\u4EE4\u4F1A\u4ECE\u72EC\u7ACB\u7F13\u5B58\u8FD0\u884C\u65B0\u7248\uFF1B\u5355\u72EC\u66F4\u65B0\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u3002");
650
656
  }
651
657
  const { root: installedRoot, prefix } = installation;
652
- const manualUpdate = `npm install --global --prefix '${prefix.replace(/'/gu, "'\\''")}' ${PACKAGE}@dev --registry=${REGISTRY} --prefer-online`;
653
658
  await withUpdateLock(globalUpdateLock(options.cacheDirectory ?? defaultUpdateCache(), prefix), options.signal, async () => {
654
659
  const current = JSON.parse(await readFile(join3(installedRoot, "package.json"), "utf8"));
655
- if (current.name !== PACKAGE || !/^\d+\.\d+\.\d+-dev\.\d+$/.test(current.version)) {
656
- throw new Error("\u5F53\u524D\u5B89\u88C5\u76EE\u5F55\u5DF2\u88AB\u5176\u4ED6\u6E20\u9053\u66FF\u6362\uFF0C\u5DF2\u505C\u6B62\u66F4\u65B0\u3002\u8BF7\u5C06 latest \u548C dev \u5B89\u88C5\u5230\u4E0D\u540C\u76EE\u5F55\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C buddy-cli-sit\u3002");
657
- }
658
660
  if (current.name === PACKAGE && current.version === version) return;
659
661
  if (current.name === PACKAGE && compareVersions(current.version, version) > 0) throw new Error("\u53E6\u4E00\u4E2A\u8FDB\u7A0B\u5DF2\u5B89\u88C5\u66F4\u65B0\u7684 CLI\uFF0C\u8BF7\u91CD\u65B0\u6267\u884C\u547D\u4EE4\u3002");
660
662
  try {
@@ -671,13 +673,13 @@ async function installUpdate(version, options) {
671
673
  "--no-fund"
672
674
  ], { ...settings, timeout: 18e4 }, runNpm);
673
675
  } catch (cause) {
674
- if (options.signal?.aborted) throw new Error("\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u8FD0\u884C buddy-cli-sit --version \u68C0\u67E5\u5B89\u88C5\u72B6\u6001\u3002");
676
+ if (options.signal?.aborted) throw new Error("\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u8FD0\u884C buddy-cli --version \u68C0\u67E5\u5B89\u88C5\u72B6\u6001\u3002");
675
677
  throw new Error(`${cause instanceof Error ? cause.message : "npm \u5B89\u88C5\u672A\u5B8C\u6210\u3002"}
676
- \u4E5F\u53EF\u624B\u52A8\u5B89\u88C5\uFF1A${manualUpdate}`);
678
+ \u4E5F\u53EF\u624B\u52A8\u5B89\u88C5\uFF1A${MANUAL_UPDATE}`);
677
679
  }
678
680
  const installed = JSON.parse(await readFile(join3(installedRoot, "package.json"), "utf8"));
679
681
  if (installed.name !== PACKAGE || installed.version !== version) {
680
- throw new Error(`npm \u5DF2\u7ED3\u675F\uFF0C\u4F46\u672A\u786E\u8BA4\u5B89\u88C5\u5230 ${version}\u3002\u8BF7\u8FD0\u884C buddy-cli-sit --version \u68C0\u67E5\uFF0C\u5FC5\u8981\u65F6\u91CD\u8BD5\uFF1A${manualUpdate}`);
682
+ throw new Error(`npm \u5DF2\u7ED3\u675F\uFF0C\u4F46\u672A\u786E\u8BA4\u5B89\u88C5\u5230 ${version}\u3002\u8BF7\u8FD0\u884C buddy-cli --version \u68C0\u67E5\uFF0C\u5FC5\u8981\u65F6\u91CD\u8BD5\uFF1A${MANUAL_UPDATE}`);
681
683
  }
682
684
  });
683
685
  }
@@ -687,13 +689,13 @@ async function runSelfUpdateCommand(args, io, options) {
687
689
  const json = args.includes("--json");
688
690
  const fail = (message, exitCode) => {
689
691
  if (json) io.write(JSON.stringify({ package: PACKAGE, currentVersion: options.version, error: message }));
690
- else io.writeError(`buddy-cli-sit: ${message}`);
692
+ else io.writeError(`buddy-cli: ${message}`);
691
693
  return { exitCode };
692
694
  };
693
695
  const flags = args.slice(1);
694
696
  const allowed = versionOnly ? ["--json", "--help", "-h"] : ["--check", "--json", "--help", "-h"];
695
697
  if (flags.some((flag) => !allowed.includes(flag)) || new Set(flags).size !== flags.length) {
696
- return fail("\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C buddy-cli-sit update --help \u67E5\u770B\u7528\u6CD5\u3002", 2);
698
+ return fail("\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C buddy-cli update --help \u67E5\u770B\u7528\u6CD5\u3002", 2);
697
699
  }
698
700
  if (flags.includes("--help") || flags.includes("-h")) {
699
701
  if (json) io.write(JSON.stringify({ help: HELP }));
@@ -706,8 +708,6 @@ async function runSelfUpdateCommand(args, io, options) {
706
708
  io.write(json ? JSON.stringify({ package: PACKAGE, version: options.version }) : options.version);
707
709
  return { exitCode: 0 };
708
710
  }
709
- const pin = process.env.BUDDY_CLI_PIN_VERSION;
710
- if (pin !== void 0) throw new Error("\u5F53\u524D\u5DF2\u7528 BUDDY_CLI_PIN_VERSION \u9501\u5B9A CLI\uFF1B\u5982\u9700\u66F4\u65B0\uFF0C\u8BF7\u5148 unset BUDDY_CLI_PIN_VERSION\u3002");
711
711
  const latest = await latestVersion(options);
712
712
  const comparison = compareVersions(latest, options.version);
713
713
  const check = flags.includes("--check");
@@ -727,8 +727,8 @@ async function runSelfUpdateCommand(args, io, options) {
727
727
  ...updated ? { installedVersion: latest } : {}
728
728
  }));
729
729
  } else if (updated) io.write(`CLI \u5DF2\u66F4\u65B0\uFF1A${options.version} \u2192 ${latest}\u3002`);
730
- else if (comparison > 0) io.write(`\u53D1\u73B0\u65B0\u7248\u672C\uFF1A${options.version} \u2192 ${latest}\u3002\u8FD0\u884C buddy-cli-sit update \u66F4\u65B0\u3002`);
731
- else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm dev ${latest}\uFF0C\u65E0\u9700\u66F4\u65B0\u3002`);
730
+ else if (comparison > 0) io.write(`\u53D1\u73B0\u65B0\u7248\u672C\uFF1A${options.version} \u2192 ${latest}\u3002\u8FD0\u884C buddy-cli update \u66F4\u65B0\u3002`);
731
+ else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm latest ${latest}\uFF0C\u65E0\u9700\u66F4\u65B0\u3002`);
732
732
  else io.write(`\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\uFF1A${options.version}\u3002`);
733
733
  return { exitCode: 0 };
734
734
  } catch (cause) {
@@ -760,7 +760,7 @@ import { promisify as promisify2 } from "node:util";
760
760
  var PACKAGE2 = "@my-life-buddies/cli";
761
761
  var REGISTRY2 = "https://registry.npmjs.org/";
762
762
  var execute2 = promisify2(execFile2);
763
- var HANDOFF_ENV = "BUDDY_CLI_SIT_UPDATE_HANDOFF";
763
+ var HANDOFF_ENV = "BUDDY_CLI_UPDATE_HANDOFF";
764
764
  async function installedVersion(root) {
765
765
  try {
766
766
  const pkg = JSON.parse(await readFile2(join4(root, "package.json"), "utf8"));
@@ -853,13 +853,6 @@ async function runAutoUpdate(args, io, options) {
853
853
  if (args[0] === "help" || args[0] === "update" || args[0] === "--version" || args[0] === "-v" || args.includes("--help") || args.includes("-h")) return void 0;
854
854
  try {
855
855
  const env = { ...options.env ?? process.env };
856
- const pin = env.BUDDY_CLI_PIN_VERSION;
857
- if (pin !== void 0) {
858
- if (!/^\d+\.\d+\.\d+-dev\.\d+$/.test(pin) || pin !== options.version) {
859
- throw new Error(`CLI \u7248\u672C\u9501\u5B9A\u4E0D\u5339\u914D\uFF1A\u8981\u6C42 ${pin}\uFF0C\u5F53\u524D ${options.version}\u3002\u8BF7\u5B89\u88C5 @my-life-buddies/cli@${pin} \u6216 unset BUDDY_CLI_PIN_VERSION\u3002`);
860
- }
861
- return void 0;
862
- }
863
856
  const handoff = env[HANDOFF_ENV];
864
857
  if (handoff !== void 0) {
865
858
  delete env[HANDOFF_ENV];
@@ -993,7 +986,7 @@ try {
993
986
  process.exitCode = result.exitCode;
994
987
  } catch (cause) {
995
988
  const message = cause instanceof Error ? cause.message : String(cause);
996
- terminal.writeError(`buddy-cli-sit: ${message}`);
989
+ terminal.writeError(`buddy-cli: ${message}`);
997
990
  process.exitCode = 1;
998
991
  } finally {
999
992
  unbindTermination();