@my-life-buddies/cli 0.21.0 → 0.21.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/README.md +3 -1
- package/dist/bin/buddy.js +69 -25
- package/dist/bin/buddy.js.map +4 -4
- package/dist/bin/core.js +48 -14
- package/dist/bin/core.js.map +4 -4
- package/package.json +3 -3
package/dist/bin/core.js
CHANGED
|
@@ -141,6 +141,14 @@ async function cachedRuntimeRoot(version, options = {}) {
|
|
|
141
141
|
// packages/cli-core/src/platform-url.ts
|
|
142
142
|
var DEFAULT_MLB_TEST_URL = "https://47.116.168.81";
|
|
143
143
|
var LOOPBACK_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
144
|
+
function isLegacyEcsGateway(value) {
|
|
145
|
+
try {
|
|
146
|
+
const url = new URL(value);
|
|
147
|
+
return !url.username && !url.password && !url.search && !url.hash && url.pathname === "/" && ["http://47.116.168.81:8788", "http://47.116.168.81"].includes(url.origin);
|
|
148
|
+
} catch {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
144
152
|
function normalizePlatformUrl(value) {
|
|
145
153
|
const url = new URL(value);
|
|
146
154
|
if (url.username || url.password || url.search || url.hash) {
|
|
@@ -155,7 +163,8 @@ function normalizePlatformUrl(value) {
|
|
|
155
163
|
function resolvePlatformUrl(options = {}) {
|
|
156
164
|
const env = options.env ?? process.env;
|
|
157
165
|
const legacy = options.development ? env.BUDDY_DEV_APP_SERVER_URL ?? env.BUDDY_APP_SERVER_URL : env.BUDDY_APP_SERVER_URL ?? env.BUDDY_DEV_APP_SERVER_URL;
|
|
158
|
-
const
|
|
166
|
+
const selected = options.override ?? env.MLB_GATEWAY_URL ?? legacy ?? DEFAULT_MLB_TEST_URL;
|
|
167
|
+
const url = normalizePlatformUrl(isLegacyEcsGateway(selected) ? DEFAULT_MLB_TEST_URL : selected);
|
|
159
168
|
if (url.pathname !== "/") throw new TypeError("\u5E73\u53F0\u5730\u5740\u53EA\u9700\u534F\u8BAE\u3001\u57DF\u540D\u548C\u7AEF\u53E3\uFF0C\u4E0D\u5E94\u5305\u542B /cli\u3001/developer \u6216\u5176\u4ED6\u8DEF\u5F84");
|
|
160
169
|
return url;
|
|
161
170
|
}
|
|
@@ -3193,9 +3202,11 @@ ${selectedRuntime ? `\u5F53\u524D\u7EC8\u7AEF\u914D\u7F6E\u4E86\u81EA\u5B9A\u4E4
|
|
|
3193
3202
|
|
|
3194
3203
|
\u6CBF\u7528 CLI \u8FD0\u884C\u73AF\u5883\u4E2D\u7684 MLB_GATEWAY_URL\uFF0C\u767B\u5F55\u3001\u521B\u5EFA\u3001\u4FEE\u6539\u8D44\u6599\u3001\u4E0A\u4F20\u548C\u9884\u89C8\u4F7F\u7528\u540C\u4E00\u5E73\u53F0\uFF1B\u672A\u914D\u7F6E\u5730\u5740\u65F6\u624D\u4F7F\u7528 ${DEFAULT_MLB_TEST_URL}\u3002\u540E\u53F0\u5730\u5740\u7531\u540C\u4E00\u57DF\u540D\u7684 /developer/ \u63A8\u5BFC\u3002\u4E0D\u8981\u4E3A\u4E86\u7167\u6284\u793A\u4F8B\u800C\u6E05\u7A7A\u3001\u8986\u76D6\u5DF2\u6709\u5E73\u53F0\u914D\u7F6E\uFF0C\u4E5F\u4E0D\u8981\u5728\u672A\u83B7\u8981\u6C42\u65F6\u5207\u6362\u5E73\u53F0\u3002Coding Agent \u7684 CLI \u5B50\u8FDB\u7A0B\u9700\u8981\u7EE7\u627F\u8BE5\u73AF\u5883\u53D8\u91CF\uFF1BCLI \u4E0D\u8BFB\u53D6\u7EC8\u7AEF\u542F\u52A8\u914D\u7F6E\u6216\u628A\u5DE5\u7A0B .env \u5F53\u4F5C\u5168\u5C40\u5730\u5740\u914D\u7F6E\u3002\u7528\u6237\u660E\u786E\u5207\u6362\u5E73\u53F0\u540E\u91CD\u65B0 login\uFF1B\u5DF2\u6709\u5DE5\u7A0B\u9700\u8981\u66F4\u6362\u5F00\u53D1\u51ED\u636E\u65F6\uFF0C\u7528 dev --refresh-token \u6216 preview --refresh-token\uFF0C\u4FDD\u7559 package.json.buddyId \u4E0E\u4E1A\u52A1\u914D\u7F6E\u3002
|
|
3195
3204
|
|
|
3205
|
+
preview \u8FDE\u63A5\u524D\u53CA dev \u542F\u52A8\u524D\u4F1A\u68C0\u67E5\u5DE5\u7A0B .env \u7F51\u5173\u3002\u68C0\u6D4B\u5230\u5DF2\u77E5\u65E7 ECS \u5730\u5740\u65F6\uFF0CCLI \u5728\u542F\u52A8 DEV \u65F6\u6821\u9A8C\u642D\u5B50\u5F52\u5C5E\u5E76\u81EA\u52A8\u66F4\u65B0\u8FDE\u63A5\u914D\u7F6E\uFF1BAgent \u8BFB\u53D6\u547D\u4EE4\u7ED3\u679C\u7EE7\u7EED\u64CD\u4F5C\uFF0C\u65E0\u9700\u624B\u6539 .env\u3002\u5176\u4ED6\u5E73\u53F0\u4E0D\u4E00\u81F4\u65F6\u5148\u786E\u8BA4\u76EE\u6807\u73AF\u5883\uFF0C\u4E0D\u53CD\u590D\u91CD\u8DD1\u547D\u4EE4\u6216\u64C5\u81EA\u8986\u76D6\u51ED\u636E\u3002
|
|
3206
|
+
|
|
3196
3207
|
\u4F7F\u7528\u5B98\u65B9 buddy-cli \u5165\u53E3\u3002\u6BCF\u6761\u6B63\u5E38\u547D\u4EE4\uFF08\u5305\u62EC guide\uFF09\u6267\u884C\u524D\u90FD\u4F1A\u67E5\u8BE2\u516C\u5171 npm latest\uFF1B\u7248\u672C\u8FC7\u65E7\u65F6\u81EA\u52A8\u66F4\u65B0\uFF0C\u518D\u7531\u65B0\u7248\u6267\u884C\u540C\u4E00\u547D\u4EE4\u3002\u7B49\u5F85\u5F53\u524D\u547D\u4EE4\u5B8C\u6210\uFF0C\u4E0D\u91CD\u590D\u53D1\u8D77\uFF0C\u4E0D\u53E6\u5F00\u8FDB\u7A0B\u540C\u65F6\u91CD\u8DD1\u3002
|
|
3197
3208
|
\u5168\u5C40\u5B89\u88C5\u66F4\u65B0\u5BF9\u5E94 npm \u73AF\u5883\u7684\u5B89\u88C5\uFF1B\u6E90\u7801\u3001npm link\u3001\u9879\u76EE\u5185\u5B89\u88C5\u548C npx \u901A\u8FC7\u7F13\u5B58\u7684\u65B0\u7248\u7EE7\u7EED\u6267\u884C\uFF0C\u4E0D\u6539\u5199\u6E90\u7801\u6216\u9879\u76EE\u4F9D\u8D56\u3002\u53C2\u6570\u3001\u5DE5\u4F5C\u76EE\u5F55\u3001\u7EC8\u7AEF\u8F93\u5165\u8F93\u51FA\u548C\u9000\u51FA\u72B6\u6001\u4FDD\u7559\u3002\u4E00\u6B21\u8C03\u7528\u6700\u591A\u81EA\u52A8\u5207\u6362\u4E00\u6B21\uFF1B\u5F53\u524D\u7248\u672C\u9AD8\u4E8E latest \u65F6\u4E0D\u964D\u7EA7\uFF0C\u5DF2\u8FD0\u884C\u7684 DEV \u4E0D\u4F1A\u56E0\u53D1\u5E03\u65B0 CLI \u81EA\u52A8\u91CD\u542F\u3002
|
|
3198
|
-
\u5E2E\u52A9\u3001\u5404\u547D\u4EE4 --help\u3001--version \u548C\u5E94\u6025\u6E05\u7406 dev stop \u79BB\u7EBF\u53EF\u7528\uFF1Bupdate \u662F\u5355\u72EC\u68C0\u67E5\u6216\u66F4\u65B0\u5165\u53E3\u3002\u67E5\u8BE2\u6216\u66F4\u65B0\u5931\u8D25\u65F6\u539F\u4E1A\u52A1\u64CD\u4F5C\u4E0D\u4F1A\u5F00\u59CB\uFF0C\u6839\u636E\u9519\u8BEF\u5904\u7406\u540E\u91CD\u8BD5\uFF0C\u4E0D\u8C03\u7528\u65E7\u7248\u6E90\u7801\u7ED5\u8FC7\u68C0\u67E5\u3002\u65E7 CLI \u9700\u5148\u901A\u8FC7\u5B98\u65B9 npm \u5B89\u88C5\u547D\u4EE4\u5347\u7EA7\u4E00\u6B21\uFF0C\u624D\u80FD\u83B7\u5F97\u6B64\u673A\u5236\u3002
|
|
3209
|
+
\u5E2E\u52A9\u3001\u5404\u547D\u4EE4 --help\u3001--version \u548C\u5E94\u6025\u6E05\u7406 dev stop \u79BB\u7EBF\u53EF\u7528\uFF1Bupdate \u662F\u5355\u72EC\u68C0\u67E5\u6216\u66F4\u65B0\u5165\u53E3\u3002\u5B89\u88C5\u4E3B\u52A8\u5237\u65B0 npm \u7248\u672C\u7F13\u5B58\uFF0CETARGET \u6700\u591A\u91CD\u8BD5\u4E00\u6B21\uFF1B\u4ECD\u5931\u8D25\u4F1A\u8BF4\u660E\u5177\u4F53\u539F\u56E0\u3002\u67E5\u8BE2\u6216\u66F4\u65B0\u5931\u8D25\u65F6\u539F\u4E1A\u52A1\u64CD\u4F5C\u4E0D\u4F1A\u5F00\u59CB\uFF0C\u6839\u636E\u9519\u8BEF\u5904\u7406\u540E\u91CD\u8BD5\uFF0C\u4E0D\u8C03\u7528\u65E7\u7248\u6E90\u7801\u7ED5\u8FC7\u68C0\u67E5\u3002\u65E7 CLI \u9700\u5148\u901A\u8FC7\u5B98\u65B9 npm \u5B89\u88C5\u547D\u4EE4\u5347\u7EA7\u4E00\u6B21\uFF0C\u624D\u80FD\u83B7\u5F97\u6B64\u673A\u5236\u3002
|
|
3199
3210
|
CLI \u81EA\u52A8\u66F4\u65B0\u4E0D\u7B49\u4E8E\u5DE5\u7A0B Runtime \u5DF2\u9002\u914D\u3002\u4ECD\u987B\u6839\u636E Runtime \u68C0\u67E5\u7ED3\u679C\u66F4\u65B0\u5DE5\u7A0B\u4F9D\u8D56\u3001\u9501\u6587\u4EF6\u548C\u5FC5\u8981\u7684\u4E1A\u52A1\u4EE3\u7801\uFF0C\u5B8C\u6210\u9A8C\u8BC1\u540E\u518D\u542F\u52A8\u6216\u4E0A\u4F20\uFF1B\u4E0D\u8981\u53EA\u4FEE\u6539\u7248\u672C\u53F7\u5C31\u5BA3\u79F0\u9002\u914D\u5B8C\u6210\u3002
|
|
3200
3211
|
\u901A\u7528\u89C4\u5219\u4EE5\u672C\u547D\u4EE4\u7684\u5F53\u524D\u8F93\u51FA\u4E3A\u51C6\u3002HANDOFF.md \u53EA\u63D0\u4F9B\u5F53\u524D\u5DE5\u7A0B\u3001Skill \u8DEF\u5F84\u53CA\u5177\u4F53\u63A5\u7EED\u65B9\u5F0F\uFF0C\u4E0D\u5305\u542B\u6574\u4EFD\u5F00\u53D1\u6307\u5357\u3002
|
|
3201
3212
|
|
|
@@ -3242,12 +3253,15 @@ import { setTimeout as delay } from "node:timers/promises";
|
|
|
3242
3253
|
|
|
3243
3254
|
// packages/cli-core/src/dev/errors.ts
|
|
3244
3255
|
var BuddyDevError = class extends Error {
|
|
3256
|
+
/** Only explicitly safe, developer-facing explanations may be shown in Preview. */
|
|
3257
|
+
publicMessage;
|
|
3245
3258
|
code;
|
|
3246
3259
|
phase;
|
|
3247
3260
|
retryable;
|
|
3248
3261
|
constructor(options) {
|
|
3249
3262
|
super(options.message, options.cause === void 0 ? void 0 : { cause: options.cause });
|
|
3250
3263
|
this.name = "BuddyDevError";
|
|
3264
|
+
this.publicMessage = options.publicMessage;
|
|
3251
3265
|
this.code = options.code;
|
|
3252
3266
|
this.phase = options.phase;
|
|
3253
3267
|
this.retryable = options.retryable ?? false;
|
|
@@ -3630,9 +3644,6 @@ async function stopLocalDev(options) {
|
|
|
3630
3644
|
return { stopped: true };
|
|
3631
3645
|
}
|
|
3632
3646
|
|
|
3633
|
-
// packages/cli-core/src/commands/dev.ts
|
|
3634
|
-
import { resolve as resolve14 } from "node:path";
|
|
3635
|
-
|
|
3636
3647
|
// packages/cli-core/src/dev/project-env.ts
|
|
3637
3648
|
import { constants } from "node:fs";
|
|
3638
3649
|
import { open as open4, rename as rename9, unlink as unlink8 } from "node:fs/promises";
|
|
@@ -3640,7 +3651,7 @@ import { randomUUID as randomUUID7 } from "node:crypto";
|
|
|
3640
3651
|
import { join as join16 } from "node:path";
|
|
3641
3652
|
import { parseEnv } from "node:util";
|
|
3642
3653
|
function invalid(message) {
|
|
3643
|
-
return new BuddyDevError({ code: "DEV_CONFIG_INVALID", phase: "config", message });
|
|
3654
|
+
return new BuddyDevError({ code: "DEV_CONFIG_INVALID", phase: "config", message, publicMessage: message });
|
|
3644
3655
|
}
|
|
3645
3656
|
async function readLocalFile(path) {
|
|
3646
3657
|
let file;
|
|
@@ -3667,18 +3678,31 @@ async function readProjectEnvironment(projectRoot) {
|
|
|
3667
3678
|
}
|
|
3668
3679
|
return values;
|
|
3669
3680
|
}
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3681
|
+
function gatewayNeedsRefresh(value, gatewayUrl) {
|
|
3682
|
+
if (value) {
|
|
3683
|
+
if (isLegacyEcsGateway(value)) {
|
|
3684
|
+
if (gatewayUrl.href === `${DEFAULT_MLB_TEST_URL}/`) return true;
|
|
3685
|
+
throw invalid(".env \u4FDD\u5B58\u7684\u662F\u65E7\u516C\u5171\u73AF\u5883\u5730\u5740\uFF0C\u4E0E\u672C\u6B21\u5E73\u53F0\u4E0D\u540C\uFF1B\u8BF7\u786E\u8BA4\u76EE\u6807\u5E73\u53F0\u540E\u4F7F\u7528 --refresh-token \u66F4\u65B0\u8FDE\u63A5\u914D\u7F6E\u3002");
|
|
3686
|
+
}
|
|
3674
3687
|
let gateway;
|
|
3675
3688
|
try {
|
|
3676
|
-
gateway = normalizePlatformUrl(
|
|
3689
|
+
gateway = normalizePlatformUrl(value);
|
|
3677
3690
|
} catch {
|
|
3678
3691
|
throw invalid(".env \u4E2D\u7684 MLB_GATEWAY_URL \u65E0\u6548\uFF1B\u8BF7\u786E\u8BA4\u5E73\u53F0\u540E\u4F7F\u7528 --refresh-token \u91CD\u65B0\u9886\u53D6\u5F00\u53D1\u4EE4\u724C\u5E76\u66F4\u65B0\u5730\u5740\u3002");
|
|
3679
3692
|
}
|
|
3680
|
-
if (gateway.href !== gatewayUrl.href) throw invalid(".env \u7684\u5E73\u53F0\u5730\u5740\u4E0E\u672C\u6B21\u542F\u52A8\u4E0D\u540C\uFF1B\u8BF7\u786E\u8BA4\u5E73\u53F0\
|
|
3693
|
+
if (gateway.href !== gatewayUrl.href) throw invalid(".env \u7684\u5E73\u53F0\u5730\u5740\u4E0E\u672C\u6B21\u542F\u52A8\u4E0D\u540C\uFF1B\u8BF7\u786E\u8BA4\u76EE\u6807\u5E73\u53F0\uFF0C\u6216\u5728\u660E\u786E\u5207\u6362\u5E73\u53F0\u65F6\u4F7F\u7528 --refresh-token \u66F4\u65B0\u8FDE\u63A5\u914D\u7F6E\u3002");
|
|
3681
3694
|
}
|
|
3695
|
+
return false;
|
|
3696
|
+
}
|
|
3697
|
+
async function checkProjectGateway(projectRoot, gatewayUrl, options = {}) {
|
|
3698
|
+
const values = await readProjectEnvironment(projectRoot);
|
|
3699
|
+
if (!options.refreshToken && gatewayNeedsRefresh(values.MLB_GATEWAY_URL, gatewayUrl)) {
|
|
3700
|
+
options.report?.("\u68C0\u6D4B\u5230\u5DE5\u7A0B\u4F7F\u7528\u65E7 ECS \u5730\u5740\uFF1B\u542F\u52A8 DEV \u65F6\u5C06\u6821\u9A8C\u642D\u5B50\u5F52\u5C5E\uFF0C\u5E76\u81EA\u52A8\u66F4\u65B0\u5730\u5740\u548C\u5F00\u53D1\u51ED\u636E\u3002");
|
|
3701
|
+
}
|
|
3702
|
+
}
|
|
3703
|
+
async function projectBuddyToken(projectRoot, gatewayUrl) {
|
|
3704
|
+
const values = await readProjectEnvironment(projectRoot);
|
|
3705
|
+
if (gatewayNeedsRefresh(values.MLB_GATEWAY_URL, gatewayUrl) || !values.BUDDY_TOKEN) return void 0;
|
|
3682
3706
|
if (!values.BUDDY_TOKEN.trim() || /[\u0000-\u001f\u007f]/u.test(values.BUDDY_TOKEN)) throw invalid(".env \u4E2D\u7684\u5F00\u53D1\u4EE4\u724C\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u4F7F\u7528 --refresh-token \u91CD\u65B0\u9886\u53D6\u3002");
|
|
3683
3707
|
return values.BUDDY_TOKEN;
|
|
3684
3708
|
}
|
|
@@ -3754,6 +3778,9 @@ async function writeProjectEnvironment(projectRoot, values) {
|
|
|
3754
3778
|
return contents;
|
|
3755
3779
|
}
|
|
3756
3780
|
|
|
3781
|
+
// packages/cli-core/src/commands/dev.ts
|
|
3782
|
+
import { resolve as resolve14 } from "node:path";
|
|
3783
|
+
|
|
3757
3784
|
// packages/cli-core/src/dev/app-server.ts
|
|
3758
3785
|
var MAX_JSON_BODY_LENGTH = 1048576;
|
|
3759
3786
|
function safeCredential(value, name) {
|
|
@@ -3846,6 +3873,7 @@ var MlbDevRegistrationClient = class {
|
|
|
3846
3873
|
code: "DEV_APP_SERVER_HTTP_ERROR",
|
|
3847
3874
|
phase: "registration",
|
|
3848
3875
|
message: "\u65E0\u6CD5\u8FDE\u63A5 DEV App Server\u3002",
|
|
3876
|
+
publicMessage: "\u65E0\u6CD5\u8FDE\u63A5\u5F00\u53D1\u5E73\u53F0\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u548C\u672C\u6B21\u8FDE\u63A5\u7684\u5E73\u53F0\u5730\u5740\u3002",
|
|
3849
3877
|
retryable: true,
|
|
3850
3878
|
cause
|
|
3851
3879
|
});
|
|
@@ -3879,6 +3907,7 @@ var MlbDevRegistrationClient = class {
|
|
|
3879
3907
|
code: "DEV_APP_SERVER_HTTP_ERROR",
|
|
3880
3908
|
phase: "registration",
|
|
3881
3909
|
message: safeServerError(body, `DEV App Server \u8BF7\u6C42\u5931\u8D25\uFF08HTTP ${response.status}\uFF09\u3002`),
|
|
3910
|
+
publicMessage: response.status === 401 ? "\u642D\u642D\u8D26\u53F7\u767B\u5F55\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u8FD0\u884C buddy-cli login\u3002" : response.status === 403 ? "\u5F53\u524D\u8D26\u53F7\u65E0\u6743\u8BBF\u95EE\u8FD9\u4E2A\u642D\u5B50\uFF0C\u8BF7\u786E\u8BA4\u767B\u5F55\u8D26\u53F7\u548C\u5DE5\u7A0B\u7684 buddyId\u3002" : response.status === 404 ? "\u5F53\u524D\u5E73\u53F0\u672A\u627E\u5230\u8FD9\u4E2A\u642D\u5B50\uFF0C\u8BF7\u786E\u8BA4\u5E73\u53F0\u5730\u5740\u548C\u5DE5\u7A0B\u7684 buddyId\u3002" : void 0,
|
|
3882
3911
|
retryable: response.status === 408 || response.status === 429 || response.status >= 500
|
|
3883
3912
|
});
|
|
3884
3913
|
}
|
|
@@ -3912,7 +3941,8 @@ var MlbDevRegistrationClient = class {
|
|
|
3912
3941
|
throw new BuddyDevError({
|
|
3913
3942
|
code: "DEV_APP_SERVER_RESPONSE_INVALID",
|
|
3914
3943
|
phase: "registration",
|
|
3915
|
-
message: "\u642D\u5B50\u8BE6\u60C5\u54CD\u5E94\u7F3A\u5C11\u5339\u914D\u7684 id \u6216 Buddy token\u3002"
|
|
3944
|
+
message: "\u642D\u5B50\u8BE6\u60C5\u54CD\u5E94\u7F3A\u5C11\u5339\u914D\u7684 id \u6216 Buddy token\u3002",
|
|
3945
|
+
publicMessage: "\u5F00\u53D1\u5E73\u53F0\u8FD4\u56DE\u7684\u642D\u5B50\u8EAB\u4EFD\u6216\u51ED\u636E\u4E0D\u5B8C\u6574\uFF0C\u5DF2\u505C\u6B62\u542F\u52A8\uFF1B\u8BF7\u786E\u8BA4\u5E73\u53F0\u548C\u642D\u5B50\u540E\u91CD\u8BD5\u3002"
|
|
3916
3946
|
});
|
|
3917
3947
|
}
|
|
3918
3948
|
const token = safeCredential(body.token, "agentToken");
|
|
@@ -3920,7 +3950,8 @@ var MlbDevRegistrationClient = class {
|
|
|
3920
3950
|
if (localToken !== void 0 && localToken !== token) throw new BuddyDevError({
|
|
3921
3951
|
code: "DEV_CONFIG_INVALID",
|
|
3922
3952
|
phase: "registration",
|
|
3923
|
-
message: ".env \u4E2D\u7684\u5F00\u53D1\u4EE4\u724C\u4E0E Server \u8FD4\u56DE\u7684\u5F53\u524D\u642D\u5B50\u4EE4\u724C\u4E0D\u4E00\u81F4\uFF1B\u8BF7\u786E\u8BA4 package.json.buddyId \u540E\u4F7F\u7528 --refresh-token \u91CD\u65B0\u9886\u53D6\u3002"
|
|
3953
|
+
message: ".env \u4E2D\u7684\u5F00\u53D1\u4EE4\u724C\u4E0E Server \u8FD4\u56DE\u7684\u5F53\u524D\u642D\u5B50\u4EE4\u724C\u4E0D\u4E00\u81F4\uFF1B\u8BF7\u786E\u8BA4 package.json.buddyId \u540E\u4F7F\u7528 --refresh-token \u91CD\u65B0\u9886\u53D6\u3002",
|
|
3954
|
+
publicMessage: "\u5DE5\u7A0B\u4FDD\u5B58\u7684\u5F00\u53D1\u51ED\u636E\u4E0E\u5F53\u524D\u642D\u5B50\u4E0D\u4E00\u81F4\uFF1B\u8BF7\u786E\u8BA4 package.json.buddyId \u540E\u4F7F\u7528 --refresh-token \u66F4\u65B0\u51ED\u636E\u3002"
|
|
3924
3955
|
});
|
|
3925
3956
|
if (!request.projectRoot) await store?.save(token);
|
|
3926
3957
|
return Object.freeze({
|
|
@@ -5063,6 +5094,7 @@ var DEV_COMMAND_HELP = `\u7528\u6CD5:
|
|
|
5063
5094
|
\u5173\u95ED\u7EC8\u7AEF\u3001Ctrl+C \u6216 SIGTERM \u4F1A\u505C\u6B62 CLI \u6258\u7BA1\u7684 Runtime\uFF1B\u5F3A\u5236\u6740\u6B7B CLI \u540E\u53EF\u7528 dev stop \u6E05\u7406\u3002
|
|
5064
5095
|
\u672A\u914D\u7F6E\u5730\u5740\u65F6\u8FDE\u63A5 MLB \u6D4B\u8BD5\u73AF\u5883 ${DEFAULT_MLB_TEST_URL}\uFF08HTTPS\uFF09\u3002
|
|
5065
5096
|
MLB_GATEWAY_URL \u7EDF\u4E00\u9009\u62E9\u5E73\u53F0\uFF0C--app-server \u53EF\u8986\u76D6\u672C\u6B21\u547D\u4EE4\uFF1BCLI \u81EA\u52A8\u4E3A Runtime \u5199\u5165\u5BF9\u5E94\u7F51\u5173\u5730\u5740\u3002
|
|
5097
|
+
\u542F\u52A8\u524D\u81EA\u68C0 .env \u7F51\u5173\uFF1B\u5DF2\u77E5\u65E7 ECS \u5730\u5740\u6821\u9A8C\u642D\u5B50\u5F52\u5C5E\u540E\u81EA\u52A8\u66F4\u65B0\uFF0C\u4E0D\u540C\u5E73\u53F0\u4ECD\u9700\u660E\u786E\u786E\u8BA4\u3002
|
|
5066
5098
|
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
|
|
5067
5099
|
DEV \u4F1A\u901A\u8FC7\u6D4F\u89C8\u5668\u767B\u5F55\u83B7\u53D6\u5F00\u53D1\u8005\u4F1A\u8BDD\uFF0C\u5C06\u5F53\u524D\u642D\u5B50\u7684\u5F00\u53D1 Token \u5199\u5165\u5DE5\u7A0B .env\uFF0C\u590D\u7528\u524D\u5411 Server \u6838\u5BF9\u6240\u5C5E\u642D\u5B50\uFF1B\u767B\u5F55\u51ED\u636E\u4ECD\u4F7F\u7528\u7CFB\u7EDF\u51ED\u636E\u5B58\u50A8\u3002
|
|
5068
5100
|
\u8EAB\u4EFD\u53EA\u8BFB\u53D6 package.json.buddyId\uFF0C.env \u4E0D\u9700\u8981 BUDDY_ID\u3002
|
|
@@ -5158,6 +5190,7 @@ async function runDevCommand(args, io, options = {}) {
|
|
|
5158
5190
|
io.write(result.stopped ? "DEV \u5DF2\u505C\u6B62\uFF0C\u6B8B\u7559\u8FDB\u7A0B\u53CA\u8FDB\u7A0B\u9501\u5DF2\u6E05\u7406\u3002\u9700\u8981\u8C03\u8BD5\u65F6\u91CD\u65B0\u8FDE\u63A5\u5E76\u542F\u52A8 DEV\u3002" : "\u5F53\u524D\u5DE5\u7A0B\u6CA1\u6709 CLI \u6258\u7BA1\u7684\u672C\u5730 DEV \u8FDB\u7A0B\u3002\u5176\u4ED6\u7535\u8111\u4E0A\u7684\u670D\u52A1\u8BF7\u5728\u5BF9\u5E94\u7535\u8111\u505C\u6B62\u3002");
|
|
5159
5191
|
return { exitCode: 0 };
|
|
5160
5192
|
}
|
|
5193
|
+
await checkProjectGateway(root, url, { refreshToken: parsed.refreshToken, report: (message) => io.write(message) });
|
|
5161
5194
|
const authorizationInput = { appServerUrl: url, ...parsed.refreshToken ? { refreshToken: true } : {} };
|
|
5162
5195
|
if (!options.authorize) {
|
|
5163
5196
|
throw new DevCommandUsageError("\u5F53\u524D CLI Host \u5C1A\u672A\u914D\u7F6E\u642D\u642D\u8D26\u53F7\u767B\u5F55 Adapter");
|
|
@@ -8337,6 +8370,7 @@ export {
|
|
|
8337
8370
|
assertOutsideBuddyProject,
|
|
8338
8371
|
buddyAgentConfig,
|
|
8339
8372
|
buildAgentEnvironment,
|
|
8373
|
+
checkProjectGateway,
|
|
8340
8374
|
checkRuntimeUpdate,
|
|
8341
8375
|
combineBuddyProject,
|
|
8342
8376
|
createBuddyConfig,
|