@my-life-buddies/cli 0.23.0-rc.0 → 0.24.0-dev.0
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 +82 -78
- package/dist/bin/buddy.js +31 -38
- package/dist/bin/buddy.js.map +2 -2
- package/dist/bin/core.js +1138 -1038
- package/dist/bin/core.js.map +4 -4
- package/dist/web/app.js +2 -2
- package/dist/web/widgets.js +1 -1
- package/package.json +11 -6
- package/resources/agent-template/package-lock.json +5 -4
- package/resources/agent-template/package.json +1 -1
package/dist/bin/buddy.js
CHANGED
|
@@ -95,8 +95,8 @@ import {
|
|
|
95
95
|
connectPreviewBridge
|
|
96
96
|
} from "./preview.js";
|
|
97
97
|
var PREVIEW_COMMAND_HELP = `\u7528\u6CD5:
|
|
98
|
-
buddy-cli-
|
|
99
|
-
buddy-cli-
|
|
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>]
|
|
100
100
|
|
|
101
101
|
\u8BF4\u660E:
|
|
102
102
|
\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
|
|
@@ -106,15 +106,15 @@ var PREVIEW_COMMAND_HELP = `\u7528\u6CD5:
|
|
|
106
106
|
--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
|
|
107
107
|
\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
|
|
108
108
|
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
|
|
109
|
-
\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-
|
|
110
|
-
\
|
|
111
|
-
|
|
112
|
-
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 \
|
|
109
|
+
\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
|
|
110
|
+
\u672A\u914D\u7F6E\u5730\u5740\u65F6\u8FDE\u63A5 MLB \u6D4B\u8BD5\u73AF\u5883 ${DEFAULT_MLB_TEST_URL}\uFF08HTTPS\uFF09\u3002
|
|
111
|
+
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
|
|
112
|
+
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
|
|
113
113
|
\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
|
|
114
114
|
\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
|
|
115
115
|
--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
|
|
116
116
|
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
|
|
117
|
-
|
|
117
|
+
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
|
|
118
118
|
\u6A21\u62DF\u5668\u4F7F\u7528\u5F53\u524D\u5F00\u53D1\u8005\u8D26\u53F7\u8BBF\u95EE <buddyId>-dev \u8C03\u8BD5\u5206\u8EAB\u3002`;
|
|
119
119
|
function valueAfter(args, index, flag) {
|
|
120
120
|
const value = args[index + 1];
|
|
@@ -454,7 +454,7 @@ var BuddyPlatformHost = class {
|
|
|
454
454
|
// apps/cli/src/platform-support.ts
|
|
455
455
|
var UnsupportedDeveloperPlatformError = class extends Error {
|
|
456
456
|
constructor(platform) {
|
|
457
|
-
super(`buddy-cli-
|
|
457
|
+
super(`buddy-cli-sit V1 \u76EE\u524D\u53EA\u652F\u6301 macOS\uFF0C\u5F53\u524D\u7CFB\u7EDF\u662F ${platform}`);
|
|
458
458
|
this.platform = platform;
|
|
459
459
|
this.name = "UnsupportedDeveloperPlatformError";
|
|
460
460
|
}
|
|
@@ -477,7 +477,7 @@ import { dirname, join } from "node:path";
|
|
|
477
477
|
import { homedir } from "node:os";
|
|
478
478
|
import { createHash as createHash2 } from "node:crypto";
|
|
479
479
|
import { setTimeout as delay } from "node:timers/promises";
|
|
480
|
-
var defaultUpdateCache = () => join(homedir(), ".cache", "buddy-cli-
|
|
480
|
+
var defaultUpdateCache = () => join(homedir(), ".cache", "buddy-cli-sit", "updates");
|
|
481
481
|
var globalUpdateLock = (cache, prefix) => join(cache, "locks", createHash2("sha256").update(prefix).digest("hex"));
|
|
482
482
|
async function withUpdateLock(path, signal, action) {
|
|
483
483
|
await mkdir(dirname(path), { recursive: true, mode: 448 });
|
|
@@ -566,15 +566,15 @@ async function globalInstallation(packageRoot, packageName) {
|
|
|
566
566
|
// apps/cli/src/self-update.ts
|
|
567
567
|
var PACKAGE = "@my-life-buddies/cli";
|
|
568
568
|
var REGISTRY = "https://registry.npmjs.org/";
|
|
569
|
-
var MANUAL_UPDATE = `npm install --global --prefix "$HOME/.local/share/buddy-cli/
|
|
569
|
+
var MANUAL_UPDATE = `npm install --global --prefix "$HOME/.local/share/buddy-cli/sit" ${PACKAGE}@dev --registry=${REGISTRY} --prefer-online`;
|
|
570
570
|
var execute = promisify(execFile);
|
|
571
571
|
var HELP = `\u7528\u6CD5:
|
|
572
|
-
buddy-cli-
|
|
573
|
-
buddy-cli-
|
|
574
|
-
buddy-cli-
|
|
572
|
+
buddy-cli-sit --version [--json]
|
|
573
|
+
buddy-cli-sit update --check [--json]
|
|
574
|
+
buddy-cli-sit update [--json]
|
|
575
575
|
|
|
576
576
|
--version \u67E5\u770B\u5F53\u524D\u8FD0\u884C\u7684 CLI \u7248\u672C\uFF08\u65E0\u9700\u8054\u7F51\uFF09
|
|
577
|
-
--check \u68C0\u67E5\u516C\u5171 npm \u7684
|
|
577
|
+
--check \u68C0\u67E5\u516C\u5171 npm \u7684 dev \u7248\u672C\uFF0C\u4E0D\u5B89\u88C5
|
|
578
578
|
--json \u8F93\u51FA JSON\uFF0C\u4F9B Coding Agent \u6216\u811A\u672C\u8BFB\u53D6
|
|
579
579
|
|
|
580
580
|
\u65E0\u9700\u767B\u5F55\u642D\u642D\u8D26\u53F7\uFF0C\u4E5F\u65E0\u9700\u8FDB\u5165\u642D\u5B50\u5DE5\u7A0B\u3002
|
|
@@ -582,7 +582,7 @@ var HELP = `\u7528\u6CD5:
|
|
|
582
582
|
\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
|
|
583
583
|
--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
|
|
584
584
|
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
|
|
585
|
-
\u540C\u4E00\u5305 latest/dev
|
|
585
|
+
\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
|
|
586
586
|
\u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u6216\u5F53\u524D\u7248\u672C\u66F4\u9AD8\u65F6\u4E0D\u5B89\u88C5\u3001\u4E0D\u964D\u7EA7\u3002
|
|
587
587
|
\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
|
|
588
588
|
\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
|
|
@@ -620,7 +620,7 @@ async function latestVersion(options) {
|
|
|
620
620
|
const timeout = AbortSignal.timeout(1e4);
|
|
621
621
|
const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
|
|
622
622
|
try {
|
|
623
|
-
const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(PACKAGE)}/
|
|
623
|
+
const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(PACKAGE)}/dev`, {
|
|
624
624
|
signal,
|
|
625
625
|
headers: { Accept: "application/json" },
|
|
626
626
|
redirect: "error"
|
|
@@ -629,7 +629,7 @@ async function latestVersion(options) {
|
|
|
629
629
|
const metadata = await response.json();
|
|
630
630
|
if (metadata?.name !== PACKAGE) throw new Error("npm \u8FD4\u56DE\u7684\u5305\u540D\u4E0D\u5339\u914D");
|
|
631
631
|
parseVersion(metadata.version);
|
|
632
|
-
if (typeof metadata.version !== "string" || !/^\d+\.\d+\.\d+-
|
|
632
|
+
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");
|
|
633
633
|
return metadata.version;
|
|
634
634
|
} catch (cause) {
|
|
635
635
|
if (options.signal?.aborted) throw new Error("\u64CD\u4F5C\u5DF2\u53D6\u6D88\u3002");
|
|
@@ -638,19 +638,19 @@ async function latestVersion(options) {
|
|
|
638
638
|
}
|
|
639
639
|
}
|
|
640
640
|
async function installUpdate(version, options) {
|
|
641
|
-
if (!/^\d+\.\d+\.\d+-
|
|
641
|
+
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");
|
|
642
642
|
const runNpm = options.runNpm ?? ((args, settings2) => execute("npm", args, { ...settings2, encoding: "utf8", maxBuffer: 4 * 1024 * 1024 }));
|
|
643
643
|
const settings = { cwd: homedir2(), signal: options.signal, timeout: 1e4 };
|
|
644
644
|
const installation = await globalInstallation(options.packageRoot, PACKAGE);
|
|
645
645
|
if (!installation) {
|
|
646
|
-
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
|
|
646
|
+
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");
|
|
647
647
|
}
|
|
648
648
|
const { root: installedRoot, prefix } = installation;
|
|
649
|
-
const manualUpdate = `npm install --global --prefix '${prefix.replace(/'/gu, "'\\''")}' ${PACKAGE}@
|
|
649
|
+
const manualUpdate = `npm install --global --prefix '${prefix.replace(/'/gu, "'\\''")}' ${PACKAGE}@dev --registry=${REGISTRY} --prefer-online`;
|
|
650
650
|
await withUpdateLock(globalUpdateLock(options.cacheDirectory ?? defaultUpdateCache(), prefix), options.signal, async () => {
|
|
651
651
|
const current = JSON.parse(await readFile(join3(installedRoot, "package.json"), "utf8"));
|
|
652
|
-
if (current.name !== PACKAGE || !/^\d+\.\d+\.\d+-
|
|
653
|
-
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
|
|
652
|
+
if (current.name !== PACKAGE || !/^\d+\.\d+\.\d+-dev\.\d+$/.test(current.version)) {
|
|
653
|
+
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");
|
|
654
654
|
}
|
|
655
655
|
if (current.name === PACKAGE && current.version === version) return;
|
|
656
656
|
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");
|
|
@@ -668,13 +668,13 @@ async function installUpdate(version, options) {
|
|
|
668
668
|
"--no-fund"
|
|
669
669
|
], { ...settings, timeout: 18e4 }, runNpm);
|
|
670
670
|
} catch (cause) {
|
|
671
|
-
if (options.signal?.aborted) throw new Error("\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u8FD0\u884C buddy-cli-
|
|
671
|
+
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");
|
|
672
672
|
throw new Error(`${cause instanceof Error ? cause.message : "npm \u5B89\u88C5\u672A\u5B8C\u6210\u3002"}
|
|
673
673
|
\u4E5F\u53EF\u624B\u52A8\u5B89\u88C5\uFF1A${manualUpdate}`);
|
|
674
674
|
}
|
|
675
675
|
const installed = JSON.parse(await readFile(join3(installedRoot, "package.json"), "utf8"));
|
|
676
676
|
if (installed.name !== PACKAGE || installed.version !== version) {
|
|
677
|
-
throw new Error(`npm \u5DF2\u7ED3\u675F\uFF0C\u4F46\u672A\u786E\u8BA4\u5B89\u88C5\u5230 ${version}\u3002\u8BF7\u8FD0\u884C buddy-cli-
|
|
677
|
+
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}`);
|
|
678
678
|
}
|
|
679
679
|
});
|
|
680
680
|
}
|
|
@@ -684,13 +684,13 @@ async function runSelfUpdateCommand(args, io, options) {
|
|
|
684
684
|
const json = args.includes("--json");
|
|
685
685
|
const fail = (message, exitCode) => {
|
|
686
686
|
if (json) io.write(JSON.stringify({ package: PACKAGE, currentVersion: options.version, error: message }));
|
|
687
|
-
else io.writeError(`buddy-cli-
|
|
687
|
+
else io.writeError(`buddy-cli-sit: ${message}`);
|
|
688
688
|
return { exitCode };
|
|
689
689
|
};
|
|
690
690
|
const flags = args.slice(1);
|
|
691
691
|
const allowed = versionOnly ? ["--json", "--help", "-h"] : ["--check", "--json", "--help", "-h"];
|
|
692
692
|
if (flags.some((flag) => !allowed.includes(flag)) || new Set(flags).size !== flags.length) {
|
|
693
|
-
return fail("\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C buddy-cli-
|
|
693
|
+
return fail("\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C buddy-cli-sit update --help \u67E5\u770B\u7528\u6CD5\u3002", 2);
|
|
694
694
|
}
|
|
695
695
|
if (flags.includes("--help") || flags.includes("-h")) {
|
|
696
696
|
if (json) io.write(JSON.stringify({ help: HELP }));
|
|
@@ -724,8 +724,8 @@ async function runSelfUpdateCommand(args, io, options) {
|
|
|
724
724
|
...updated ? { installedVersion: latest } : {}
|
|
725
725
|
}));
|
|
726
726
|
} else if (updated) io.write(`CLI \u5DF2\u66F4\u65B0\uFF1A${options.version} \u2192 ${latest}\u3002`);
|
|
727
|
-
else if (comparison > 0) io.write(`\u53D1\u73B0\u65B0\u7248\u672C\uFF1A${options.version} \u2192 ${latest}\u3002\u8FD0\u884C buddy-cli-
|
|
728
|
-
else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm
|
|
727
|
+
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`);
|
|
728
|
+
else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm dev ${latest}\uFF0C\u65E0\u9700\u66F4\u65B0\u3002`);
|
|
729
729
|
else io.write(`\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\uFF1A${options.version}\u3002`);
|
|
730
730
|
return { exitCode: 0 };
|
|
731
731
|
} catch (cause) {
|
|
@@ -757,7 +757,7 @@ import { promisify as promisify2 } from "node:util";
|
|
|
757
757
|
var PACKAGE2 = "@my-life-buddies/cli";
|
|
758
758
|
var REGISTRY2 = "https://registry.npmjs.org/";
|
|
759
759
|
var execute2 = promisify2(execFile2);
|
|
760
|
-
var HANDOFF_ENV = "
|
|
760
|
+
var HANDOFF_ENV = "BUDDY_CLI_SIT_UPDATE_HANDOFF";
|
|
761
761
|
async function installedVersion(root) {
|
|
762
762
|
try {
|
|
763
763
|
const pkg = JSON.parse(await readFile2(join4(root, "package.json"), "utf8"));
|
|
@@ -852,7 +852,7 @@ async function runAutoUpdate(args, io, options) {
|
|
|
852
852
|
const env = { ...options.env ?? process.env };
|
|
853
853
|
const pin = env.BUDDY_CLI_PIN_VERSION;
|
|
854
854
|
if (pin !== void 0) {
|
|
855
|
-
if (!/^\d+\.\d+\.\d+-
|
|
855
|
+
if (!/^\d+\.\d+\.\d+-dev\.\d+$/.test(pin) || pin !== options.version) {
|
|
856
856
|
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`);
|
|
857
857
|
}
|
|
858
858
|
return void 0;
|
|
@@ -882,7 +882,6 @@ async function runAutoUpdate(args, io, options) {
|
|
|
882
882
|
}
|
|
883
883
|
|
|
884
884
|
// apps/cli/src/bin/buddy.ts
|
|
885
|
-
import { latestRuntimeTemplate, scaffoldPlatformAgent } from "./core.js";
|
|
886
885
|
var TerminalIO = class {
|
|
887
886
|
canPrompt = Boolean(stdin.isTTY && stdout.isTTY);
|
|
888
887
|
readline;
|
|
@@ -981,12 +980,6 @@ try {
|
|
|
981
980
|
if (maintenance === void 0 && !offlineHelp) resolvePlatformUrl2();
|
|
982
981
|
const result = maintenance ?? await runBuddyCli(args, terminal, {
|
|
983
982
|
runtimeCatalog: { signal: lifecycle.signal },
|
|
984
|
-
scaffoldPlatformAgent: (root, name) => scaffoldPlatformAgent(root, name, {
|
|
985
|
-
resolveDependencies: (template) => latestRuntimeTemplate(template, {
|
|
986
|
-
signal: lifecycle.signal,
|
|
987
|
-
report: (message) => terminal.write(message)
|
|
988
|
-
})
|
|
989
|
-
}),
|
|
990
983
|
...command === "dev" ? { dev: host().devOptions() } : {},
|
|
991
984
|
// Resolve credentials only when a supported command actually needs them.
|
|
992
985
|
get cloud() {
|
|
@@ -997,7 +990,7 @@ try {
|
|
|
997
990
|
process.exitCode = result.exitCode;
|
|
998
991
|
} catch (cause) {
|
|
999
992
|
const message = cause instanceof Error ? cause.message : String(cause);
|
|
1000
|
-
terminal.writeError(`buddy-cli-
|
|
993
|
+
terminal.writeError(`buddy-cli-sit: ${message}`);
|
|
1001
994
|
process.exitCode = 1;
|
|
1002
995
|
} finally {
|
|
1003
996
|
unbindTermination();
|