@my-life-buddies/cli 0.27.1-dev.2 → 0.28.0-dev.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 +8 -20
- package/dist/bin/buddy.js +11 -37
- package/dist/bin/buddy.js.map +2 -2
- package/dist/bin/core.js +64 -177
- package/dist/bin/core.js.map +4 -4
- package/dist/bin/preview.js +2 -57
- package/dist/bin/preview.js.map +3 -3
- package/package.json +3 -5
- package/resources/brand/README.md +1 -1
- package/dist/web/app.css +0 -758
- package/dist/web/app.js +0 -1155
- package/dist/web/assets/developer-platform-icon.png.base64 +0 -1
- package/dist/web/brand.css +0 -100
- package/dist/web/chat-markdown.js +0 -181
- package/dist/web/diagnostics.js +0 -193
- package/dist/web/index.html +0 -268
- package/dist/web/products.css +0 -19
- package/dist/web/products.js +0 -104
- package/dist/web/tokens.css +0 -15
- package/dist/web/tool-inventory.js +0 -94
- package/dist/web/widgets.css +0 -62
- package/dist/web/widgets.js +0 -317
- /package/dist/{web → bin/resources}/widget-document.js +0 -0
package/dist/bin/core.js
CHANGED
|
@@ -24,28 +24,40 @@ function runtimeUsesEnvironmentIdentity(pkg) {
|
|
|
24
24
|
return major > 0 || minor >= 16;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
// packages/cli-core/src/npm-registry.ts
|
|
28
|
+
var REGISTRY = "https://registry.npmjs.org/";
|
|
29
|
+
async function npmPackageManifest(name, selector, options = {}) {
|
|
30
|
+
options.signal?.throwIfAborted();
|
|
31
|
+
const timeout = AbortSignal.timeout(options.timeoutMs ?? 1e4);
|
|
32
|
+
const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
|
|
33
|
+
const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(name)}`, {
|
|
34
|
+
signal,
|
|
35
|
+
headers: { Accept: "application/json" },
|
|
36
|
+
redirect: "error"
|
|
37
|
+
});
|
|
38
|
+
if (!response.ok) throw new Error(`npm HTTP ${response.status}`);
|
|
39
|
+
const text2 = await response.text();
|
|
40
|
+
if (text2.length > 8 * 1024 * 1024) throw new Error("npm \u5143\u6570\u636E\u8FC7\u5927");
|
|
41
|
+
const metadata = JSON.parse(text2);
|
|
42
|
+
if (metadata?.name !== name) throw new Error("npm \u8FD4\u56DE\u7684\u5305\u540D\u4E0D\u5339\u914D");
|
|
43
|
+
const version = Object.hasOwn(metadata["dist-tags"] ?? {}, selector) ? metadata["dist-tags"][selector] : selector;
|
|
44
|
+
const manifest = typeof version === "string" && Object.hasOwn(metadata.versions ?? {}, version) ? metadata.versions[version] : void 0;
|
|
45
|
+
if (!manifest || manifest.name !== name || manifest.version !== version) {
|
|
46
|
+
throw new Error(`npm ${selector} \u672A\u8FD4\u56DE\u6B64\u5305\u7684\u51C6\u786E\u7248\u672C`);
|
|
47
|
+
}
|
|
48
|
+
return manifest;
|
|
49
|
+
}
|
|
50
|
+
|
|
27
51
|
// packages/cli-core/src/config/runtime-package.ts
|
|
28
52
|
var RUNTIME_REGISTRY = "https://registry.npmjs.org/";
|
|
29
53
|
var execute = promisify(execFile);
|
|
30
54
|
async function latestRuntimeVersion(options = {}) {
|
|
31
|
-
const metadata = await
|
|
55
|
+
const metadata = await npmPackageManifest(BUDDY_RUNTIME_PACKAGE, "dev", options);
|
|
32
56
|
if (metadata?.name !== BUDDY_RUNTIME_PACKAGE || !isExactRuntimeVersion(metadata.version)) {
|
|
33
57
|
throw new Error("npm dev \u672A\u8FD4\u56DE\u6B64 Runtime \u7684\u51C6\u786E\u7248\u672C");
|
|
34
58
|
}
|
|
35
59
|
return metadata.version;
|
|
36
60
|
}
|
|
37
|
-
async function runtimeMetadata(suffix, options) {
|
|
38
|
-
options.signal?.throwIfAborted();
|
|
39
|
-
const timeout = AbortSignal.timeout(1e4);
|
|
40
|
-
const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
|
|
41
|
-
const response = await (options.fetch ?? globalThis.fetch)(`${RUNTIME_REGISTRY}${encodeURIComponent(BUDDY_RUNTIME_PACKAGE)}${suffix}`, {
|
|
42
|
-
signal,
|
|
43
|
-
headers: { Accept: "application/json" },
|
|
44
|
-
redirect: "error"
|
|
45
|
-
});
|
|
46
|
-
if (!response.ok) throw new Error(`npm \u8FD4\u56DE HTTP ${response.status}`);
|
|
47
|
-
return response.json();
|
|
48
|
-
}
|
|
49
61
|
async function cachedRuntimeRoot(version, options = {}) {
|
|
50
62
|
if (!isExactRuntimeVersion(version)) throw new Error("Runtime \u7F13\u5B58\u9700\u8981\u51C6\u786E\u7248\u672C");
|
|
51
63
|
const cache = options.cacheDirectory ?? join(homedir(), ".cache", "buddy-cli-sit", "runtimes");
|
|
@@ -229,7 +241,7 @@ import { lstat as lstat2, mkdir as mkdir2, mkdtemp as mkdtemp2, readFile as read
|
|
|
229
241
|
import { homedir as homedir2 } from "node:os";
|
|
230
242
|
import { isAbsolute, join as join2 } from "node:path";
|
|
231
243
|
import { promisify as promisify2 } from "node:util";
|
|
232
|
-
var
|
|
244
|
+
var REGISTRY2 = "https://registry.npmjs.org/";
|
|
233
245
|
var execute2 = promisify2(execFile2);
|
|
234
246
|
var VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u;
|
|
235
247
|
function validSkillLock(value, protocolVersions2 = [1]) {
|
|
@@ -301,21 +313,14 @@ async function resolveSkillPackage(definition3, previous, options = {}) {
|
|
|
301
313
|
options.signal?.throwIfAborted();
|
|
302
314
|
const version = options.version ?? pinned?.version ?? "latest";
|
|
303
315
|
options.report?.(`\u6B63\u5728\u67E5\u8BE2 ${definition3.label} Skill ${version}\u2026`);
|
|
304
|
-
let
|
|
316
|
+
let pkg;
|
|
305
317
|
try {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
redirect: "error",
|
|
309
|
-
signal: options.signal ? AbortSignal.any([options.signal, AbortSignal.timeout(15e3)]) : AbortSignal.timeout(15e3)
|
|
310
|
-
});
|
|
311
|
-
} catch {
|
|
318
|
+
pkg = await npmPackageManifest(definition3.name, version, { ...options, timeoutMs: 15e3 });
|
|
319
|
+
} catch (cause) {
|
|
312
320
|
options.signal?.throwIfAborted();
|
|
313
|
-
throw new Error(`\u65E0\u6CD5\u67E5\u8BE2 ${definition3.label} Skill ${version}\uFF0C\u8BF7\u68C0\u67E5 npm \u7F51\u7EDC\u540E\u91CD\u8BD5\uFF1B\u672A\u4F7F\u7528\u65E7\u7248\u672C\uFF0C\u5DF2\u6709\u4F5C\u54C1\u4F1A\u4FDD\u7559\u3002`);
|
|
321
|
+
throw new Error(`\u65E0\u6CD5\u67E5\u8BE2 ${definition3.label} Skill ${version}\uFF08${cause instanceof Error ? cause.message : "npm \u8BF7\u6C42\u5931\u8D25"}\uFF09\uFF0C\u8BF7\u68C0\u67E5 npm \u7F51\u7EDC\u540E\u91CD\u8BD5\uFF1B\u672A\u4F7F\u7528\u65E7\u7248\u672C\uFF0C\u5DF2\u6709\u4F5C\u54C1\u4F1A\u4FDD\u7559\u3002`);
|
|
314
322
|
}
|
|
315
|
-
if (
|
|
316
|
-
const text2 = await response.text();
|
|
317
|
-
if (text2.length > 512 * 1024) throw new Error(`${definition3.label} npm \u5143\u6570\u636E\u8FC7\u5927\u3002`);
|
|
318
|
-
const pkg = JSON.parse(text2);
|
|
323
|
+
if (JSON.stringify(pkg).length > 512 * 1024) throw new Error(`${definition3.label} npm \u5143\u6570\u636E\u8FC7\u5927\u3002`);
|
|
319
324
|
checkProtocol(definition3, pkg);
|
|
320
325
|
if (version !== "latest" && pkg.version !== version) throw new Error(`npm \u8FD4\u56DE\u4E86\u4E0D\u540C\u7684 ${definition3.label} \u7248\u672C\u3002`);
|
|
321
326
|
const lock = { source: "npm", version: pkg.version, integrity: pkg.dist?.integrity, protocolVersion: pkg.buddySkill.protocolVersion };
|
|
@@ -329,7 +334,7 @@ async function resolveSkillPackage(definition3, previous, options = {}) {
|
|
|
329
334
|
try {
|
|
330
335
|
await writeFile2(join2(temporary, "package.json"), JSON.stringify({ name: "buddy-skill-cache", private: true, dependencies: { [definition3.name]: lock.version } }));
|
|
331
336
|
const config = join2(temporary, ".npmrc");
|
|
332
|
-
await writeFile2(config, `registry=${
|
|
337
|
+
await writeFile2(config, `registry=${REGISTRY2}
|
|
333
338
|
`);
|
|
334
339
|
options.report?.(`\u6B63\u5728\u4E0B\u8F7D ${definition3.label} Skill ${lock.version}\u2026`);
|
|
335
340
|
const run = options.runNpm ?? ((args, settings) => execute2("npm", args, { ...settings, encoding: "utf8", maxBuffer: 2 * 1024 * 1024 }));
|
|
@@ -341,8 +346,8 @@ async function resolveSkillPackage(definition3, previous, options = {}) {
|
|
|
341
346
|
"--omit=dev",
|
|
342
347
|
"--no-audit",
|
|
343
348
|
"--no-fund",
|
|
344
|
-
`--registry=${
|
|
345
|
-
...definition3.name.startsWith("@") ? [`--${definition3.name.split("/")[0]}:registry=${
|
|
349
|
+
`--registry=${REGISTRY2}`,
|
|
350
|
+
...definition3.name.startsWith("@") ? [`--${definition3.name.split("/")[0]}:registry=${REGISTRY2}`] : [],
|
|
346
351
|
`--userconfig=${config}`,
|
|
347
352
|
"--fetch-retries=0",
|
|
348
353
|
"--fetch-timeout=20000"
|
|
@@ -2546,7 +2551,7 @@ ${DEVELOPMENT_HANDOFF_SUMMARY}
|
|
|
2546
2551
|
|
|
2547
2552
|
\u5F00\u53D1\u8005\u660E\u786E\u8981\u6C42\u81EA\u52A8\u4F53\u9A8C\u6216\u591A\u573A\u666F\u56DE\u5F52\u65F6\uFF0C\u6309\u6307\u5B9A\u8303\u56F4\u6267\u884C\uFF0C\u62A5\u544A\u7ED3\u679C\uFF0C\u4E0D\u628A\u6D4B\u8BD5\u6388\u6743\u6269\u5927\u4E3A\u6539\u9700\u6C42\u6216\u63D0\u5BA1\u6388\u6743\u3002push\u3001\u53D1\u5E03\u548C\u6536\u8D39\u64CD\u4F5C\u4E0D\u5C5E\u4E8E\u9ED8\u8BA4\u4EA4\u63A5\uFF0C\u9700\u8981\u53E6\u884C\u660E\u786E\u6388\u6743\u3002
|
|
2548
2553
|
|
|
2549
|
-
\u9700\u8981\u91CD\u65B0\u6253\u5F00\u65F6\uFF0C\u4F7F\u7528 \`buddy-cli-sit preview\`\uFF0C\u6216\u4ECE\u540E\u53F0\u300C\u83B7\u53D6\u8FDE\u63A5\u6307\u4EE4\u300D\u53D6\u5F97\u5E26\u642D\u5B50 ID \u548C\u73AF\u5883\u7684\u5B8C\u6574\u547D\u4EE4\uFF0C\u5728\u6B63\u786E\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C\u3002\u540E\u53F0\u590D\u5236\u7684\u547D\u4EE4\u5E26 \`--no-open\`\uFF0C\u6267\u884C\u540E\u8FD4\u56DE\u539F\u8C03\u8BD5\u9875\uFF0C\u4E0D\u91CD\u590D\u6253\u5F00\u7F51\u9875\uFF1B\u9875\u9762\u5DF2\u5173\u95ED\u65F6\u6253\u5F00\u7EC8\u7AEF\u6253\u5370\u7684\u5730\u5740\u3002\u540E\u53F0\u663E\u793A\u300C\u672A\u8FDE\u63A5\u672C\u5730\u5DE5\u7A0B\u300D\u300C\u5DF2\u8FDE\u63A5\u4F46 DEV \u672A\u542F\u52A8\u300D\u300CDEV \u8FD0\u884C\u4E2D\u300D\u3002\u5237\u65B0\u4E0D\u4F1A\u542F\u52A8 DEV\uFF1BCLI \u9000\u51FA\u4F1A\u505C\u6B62 DEV\u3002\
|
|
2554
|
+
\u9700\u8981\u91CD\u65B0\u6253\u5F00\u65F6\uFF0C\u4F7F\u7528 \`buddy-cli-sit preview\`\uFF0C\u6216\u4ECE\u540E\u53F0\u300C\u83B7\u53D6\u8FDE\u63A5\u6307\u4EE4\u300D\u53D6\u5F97\u5E26\u642D\u5B50 ID \u548C\u73AF\u5883\u7684\u5B8C\u6574\u547D\u4EE4\uFF0C\u5728\u6B63\u786E\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C\u3002\u540E\u53F0\u590D\u5236\u7684\u547D\u4EE4\u5E26 \`--no-open\`\uFF0C\u6267\u884C\u540E\u8FD4\u56DE\u539F\u8C03\u8BD5\u9875\uFF0C\u4E0D\u91CD\u590D\u6253\u5F00\u7F51\u9875\uFF1B\u9875\u9762\u5DF2\u5173\u95ED\u65F6\u6253\u5F00\u7EC8\u7AEF\u6253\u5370\u7684\u5730\u5740\u3002\u540E\u53F0\u663E\u793A\u300C\u672A\u8FDE\u63A5\u672C\u5730\u5DE5\u7A0B\u300D\u300C\u5DF2\u8FDE\u63A5\u4F46 DEV \u672A\u542F\u52A8\u300D\u300CDEV \u8FD0\u884C\u4E2D\u300D\u3002\u5237\u65B0\u4E0D\u4F1A\u542F\u52A8 DEV\uFF1BCLI \u9000\u51FA\u4F1A\u505C\u6B62 DEV\u3002\u8C03\u8BD5\u9875\u9762\u7EDF\u4E00\u7531\u540E\u53F0\u63D0\u4F9B\uFF0C\u4E0D\u518D\u652F\u6301\u72EC\u7ACB\u672C\u5730\u7F51\u9875\uFF1B\u540E\u53F0\u4E0D\u53EF\u7528\u65F6\u4FDD\u7559\u5DE5\u7A0B\u4E0E\u73B0\u6709\u8FDE\u63A5\u4FE1\u606F\uFF0C\u4F7F\u7528\u7EC8\u7AEF DEV \u548C\u65E5\u5FD7\u6392\u67E5\u3002
|
|
2550
2555
|
|
|
2551
2556
|
\u7528\u6237\u660E\u786E\u53EA\u505A\u8BBE\u8BA1\u3001\u521D\u59CB\u5316\u3001\u4EE3\u7801\u4FEE\u6539\u6216\u8981\u6C42\u6682\u505C\u65F6\uFF0C\u4EE5\u8BE5\u8303\u56F4\u4E3A\u51C6\uFF0C\u4E0D\u5F3A\u5236\u542F\u52A8\u9884\u89C8\u3002`;
|
|
2552
2557
|
|
|
@@ -3380,7 +3385,6 @@ var CLI_HELP = `\u642D\u642D Developer Platform CLI
|
|
|
3380
3385
|
preview \u8FDE\u63A5\u5DE5\u7A0B\u5E76\u6253\u5F00\u540E\u53F0\u5F00\u53D1\u8C03\u8BD5
|
|
3381
3386
|
push \u4E0A\u4F20\u7A0B\u5E8F\u5305\uFF0C\u53EF\u7528 --product \u540C\u6B65\u63D0\u4EA4\u5546\u54C1\u5BA1\u6838
|
|
3382
3387
|
products \u4E3A\u5DF2\u6709\u7248\u672C\u8865\u63D0\u5546\u54C1\uFF0C\u6216\u6062\u590D\u539F\u63D0\u5BA1\u8BF7\u6C42
|
|
3383
|
-
release \u4ECE\u660E\u786E\u56DE\u6267\u53D1\u5E03\uFF0C\u67E5\u8BE2\u3001\u6062\u590D\u3001\u91CD\u8BD5\u6216\u53D6\u6D88\u53D1\u5E03
|
|
3384
3388
|
status \u67E5\u770B\u4E91\u7AEF\u7248\u672C\u3001\u8FD0\u884C\u3001\u5BA1\u6838\u548C\u6784\u5EFA\u72B6\u6001
|
|
3385
3389
|
meta \u67E5\u770B\u4E91\u7AEF\u8D44\u6599\uFF1Bmeta update \u4FEE\u6539\u8D44\u6599\u6216\u66FF\u6362\u5934\u50CF
|
|
3386
3390
|
avatar \u65E7\u5934\u50CF\u547D\u4EE4\u517C\u5BB9\u5165\u53E3\uFF0C\u63A8\u8350 meta update --avatar
|
|
@@ -5393,21 +5397,12 @@ function parsePackagePush(value) {
|
|
|
5393
5397
|
if (operationId(p.pushId) !== metadata.pushId) invalid2("\u4E0A\u4F20\u56DE\u6267 ID \u4E0E\u5143\u6570\u636E\u4E0D\u5339\u914D");
|
|
5394
5398
|
return { pushId: metadata.pushId, uploadVersion: p.uploadVersion, status: p.status, metadata, reviewIds: selectedReviewIds(p.reviewIds), failure: p.failure ?? null };
|
|
5395
5399
|
}
|
|
5396
|
-
function parseProductRelease(value) {
|
|
5397
|
-
const r = record(value);
|
|
5398
|
-
if (r.mode !== "with_buddy" && r.mode !== "products_only") invalid2("\u53D1\u5E03\u6A21\u5F0F\u65E0\u6548");
|
|
5399
|
-
if (!["accepted", "activating", "active", "failed", "cancelled"].includes(String(r.status))) invalid2("\u53D1\u5E03\u64CD\u4F5C\u72B6\u6001\u65E0\u6548");
|
|
5400
|
-
if (typeof r.buddyVersion !== "string" || !r.buddyVersion.trim() || /[\u0000-\u001f\u007f]/u.test(r.buddyVersion)) invalid2("\u53D1\u5E03\u7248\u672C\u65E0\u6548");
|
|
5401
|
-
return { releaseId: operationId(r.releaseId), mode: r.mode, buddyVersion: r.buddyVersion, reviewIds: selectedReviewIds(r.reviewIds), status: r.status, ...r.failure === void 0 ? {} : { failure: r.failure } };
|
|
5402
|
-
}
|
|
5403
5400
|
var CloudOperationError = class extends CloudLifecycleError {
|
|
5404
|
-
constructor(code2, message, details, push
|
|
5401
|
+
constructor(code2, message, details, push) {
|
|
5405
5402
|
super(code2, message, details);
|
|
5406
5403
|
this.push = push;
|
|
5407
|
-
this.release = release;
|
|
5408
5404
|
}
|
|
5409
5405
|
push;
|
|
5410
|
-
release;
|
|
5411
5406
|
};
|
|
5412
5407
|
function sameReviewIds(a, b) {
|
|
5413
5408
|
return [...a].sort().join("\0") === [...b].sort().join("\0");
|
|
@@ -5445,7 +5440,7 @@ var OperationStore = class {
|
|
|
5445
5440
|
}
|
|
5446
5441
|
async save(record3) {
|
|
5447
5442
|
const prior = await this.read(record3.id, record3.kind);
|
|
5448
|
-
const input = (r) => r.kind === "push" ? r.metadata :
|
|
5443
|
+
const input = (r) => r.kind === "push" ? r.metadata : { version: r.version, reviews: r.reviews };
|
|
5449
5444
|
if (JSON.stringify(input(prior)) !== JSON.stringify(input(record3))) throw new CloudLifecycleError("INVALID_REQUEST", "\u6062\u590D\u8BB0\u5F55\u7684\u539F\u59CB\u8BF7\u6C42\u4E0D\u80FD\u66F4\u6539");
|
|
5450
5445
|
const temporary = this.path(`${record3.id}_${randomUUID8()}`);
|
|
5451
5446
|
await writeFile8(temporary, JSON.stringify({ identity: this.identity, operation: record3 }), { flag: "wx", mode: 384 });
|
|
@@ -5461,11 +5456,6 @@ var OperationStore = class {
|
|
|
5461
5456
|
if (r.metadata.pushId !== id) throw new Error("push mismatch");
|
|
5462
5457
|
if (r.receipt) parsePackagePush(r.receipt);
|
|
5463
5458
|
}
|
|
5464
|
-
if (r.kind === "release") {
|
|
5465
|
-
parseProductRelease({ ...r.request, status: "accepted" });
|
|
5466
|
-
if (r.request.releaseId !== id) throw new Error("release mismatch");
|
|
5467
|
-
if (r.receipt) parseProductRelease(r.receipt);
|
|
5468
|
-
}
|
|
5469
5459
|
if (r.kind === "submission") {
|
|
5470
5460
|
if (typeof r.version !== "string" || !r.version.trim() || typeof r.confirmed !== "boolean" || r.reviews.length === 0) throw new Error("submission invalid");
|
|
5471
5461
|
parsePushMetadata({ pushId: id, commit: "validate", sourceSha256: "0".repeat(64), productReviews: r.reviews });
|
|
@@ -5490,7 +5480,7 @@ var OperationStore = class {
|
|
|
5490
5480
|
var PRODUCT_HELP = {
|
|
5491
5481
|
push: `\u7528\u6CD5: buddy-cli-sit push --commit <\u6539\u52A8\u8BF4\u660E> [--product <\u5546\u54C1 ID> ...] [--directory <\u76EE\u5F55>]
|
|
5492
5482
|
buddy-cli-sit push --resume <pushId> | --status <pushId> [--directory <\u76EE\u5F55>]
|
|
5493
|
-
\u4E0A\u4F20\u4EE3\u7801\u5E76\u63D0\u4EA4\u660E\u786E\u9009\u4E2D\u7684\u5546\u54C1\uFF1B\u4E0D\u6307\u5B9A --product \u53EA\u4E0A\u4F20\u4EE3\u7801\u3002\
|
|
5483
|
+
\u4E0A\u4F20\u4EE3\u7801\u5E76\u63D0\u4EA4\u660E\u786E\u9009\u4E2D\u7684\u5546\u54C1\uFF1B\u4E0D\u6307\u5B9A --product \u53EA\u4E0A\u4F20\u4EE3\u7801\u3002\u53D1\u5E03\u5728\u5F00\u53D1\u8005\u540E\u53F0\u64CD\u4F5C\u3002
|
|
5494
5484
|
\u5546\u54C1 ID \u793A\u4F8B\uFF1Aprd_12345678\uFF1B\u5DF2\u6709 ps_ \u5546\u54C1 ID \u7EE7\u7EED\u517C\u5BB9\u3002
|
|
5495
5485
|
\u9996\u6B21\u4E0A\u4F20\u5FC5\u987B\u5B89\u88C5 npm dev \u6700\u65B0 Runtime \u7684\u51C6\u786E\u7248\u672C\uFF1B\u91CD\u8BD5\u56FA\u5B9A\u4F7F\u7528\u539F\u59CB\u5305\u3001\u8349\u7A3F\u7248\u672C\u548C\u5BA1\u6838 ID\u3002
|
|
5496
5486
|
\u7F51\u7EDC\u7ED3\u679C\u672A\u77E5\u65F6\u8BF7\u4F7F\u7528\u8F93\u51FA\u7684 --resume\uFF1B--status \u53EA\u67E5\u8BE2\u3002\u4E0D\u8981\u91CD\u65B0\u4E0A\u4F20\u3002`,
|
|
@@ -5498,13 +5488,7 @@ var PRODUCT_HELP = {
|
|
|
5498
5488
|
buddy-cli-sit products submit --resume <submissionId> [--directory <\u76EE\u5F55>]
|
|
5499
5489
|
\u7528\u4E8E\u5DF2\u4E0A\u4F20\u7248\u672C\u8865\u63D0\u5546\u54C1\uFF1B\u6B63\u5E38 push --product \u5DF2\u81EA\u52A8\u63D0\u5BA1\uFF0C\u65E0\u9700\u91CD\u590D\u6267\u884C\u3002
|
|
5500
5490
|
\u5546\u54C1 ID \u793A\u4F8B\uFF1Aprd_12345678\uFF1B\u5DF2\u6709 ps_ \u5546\u54C1 ID \u7EE7\u7EED\u517C\u5BB9\u3002
|
|
5501
|
-
\u6062\u590D\u4F7F\u7528\u9996\u6B21\u6301\u4E45\u4FDD\u5B58\u7684\u5546\u54C1\u96C6\u5408\u3001\u5BA1\u6838 ID \u548C\u8349\u7A3F\u7248\u672C\u3002
|
|
5502
|
-
release: `\u7528\u6CD5: buddy-cli-sit release (--from-push <pushId> | --from-submission <submissionId>) [--products-only] [--directory <\u76EE\u5F55>]
|
|
5503
|
-
buddy-cli-sit release --version <\u7248\u672C> --code-only [--directory <\u76EE\u5F55>]
|
|
5504
|
-
buddy-cli-sit release (--resume | --status | --retry | --cancel) <releaseId> [--directory <\u76EE\u5F55>]
|
|
5505
|
-
\u53D1\u5E03\u53EA\u91C7\u7528\u6307\u5B9A\u6210\u529F\u56DE\u6267\u4E2D\u7684\u5BA1\u6838\u96C6\u5408\uFF1B\u5546\u54C1\u5931\u8D25\u4E0D\u4F1A\u81EA\u52A8\u964D\u7EA7\u4E3A\u7EAF\u4EE3\u7801\u53D1\u5E03\u3002
|
|
5506
|
-
\u9ED8\u8BA4\u968F\u642D\u5B50\u7248\u672C\u4E00\u8D77\u53D1\u5E03\uFF1B--products-only \u53EA\u6FC0\u6D3B\u5546\u54C1\u5E76\u6838\u5BF9\u5F53\u524D\u7EBF\u4E0A\u7248\u672C\u3002
|
|
5507
|
-
\u4EC5 active \u8868\u793A\u5DF2\u751F\u6548\uFF1Baccepted/activating \u8BF7\u7528 --status \u67E5\u8BE2\u3002`
|
|
5491
|
+
\u6062\u590D\u4F7F\u7528\u9996\u6B21\u6301\u4E45\u4FDD\u5B58\u7684\u5546\u54C1\u96C6\u5408\u3001\u5BA1\u6838 ID \u548C\u8349\u7A3F\u7248\u672C\u3002\u5BA1\u6838\u901A\u8FC7\u540E\u5728\u5F00\u53D1\u8005\u540E\u53F0\u53D1\u5E03\u3002`
|
|
5508
5492
|
};
|
|
5509
5493
|
function parse2(command, args) {
|
|
5510
5494
|
if (command === "products") {
|
|
@@ -5513,15 +5497,11 @@ function parse2(command, args) {
|
|
|
5513
5497
|
}
|
|
5514
5498
|
const values = /* @__PURE__ */ new Map();
|
|
5515
5499
|
const products = [];
|
|
5516
|
-
const allowed = command === "push" ? ["--commit", "--resume", "--status", "--product"] :
|
|
5500
|
+
const allowed = command === "push" ? ["--commit", "--resume", "--status", "--product"] : ["--version", "--resume", "--product"];
|
|
5517
5501
|
for (let i = 0; i < args.length; i++) {
|
|
5518
5502
|
const flag2 = args[i];
|
|
5519
5503
|
if (flag2 !== "--directory" && !allowed.includes(flag2)) throw new CloudCommandUsageError(`\u672A\u77E5\u53C2\u6570 ${flag2}`);
|
|
5520
5504
|
if (flag2 !== "--product" && values.has(flag2)) throw new CloudCommandUsageError(`${flag2} \u4E0D\u80FD\u91CD\u590D`);
|
|
5521
|
-
if (["--code-only", "--products-only"].includes(flag2)) {
|
|
5522
|
-
values.set(flag2, "true");
|
|
5523
|
-
continue;
|
|
5524
|
-
}
|
|
5525
5505
|
const value = args[++i];
|
|
5526
5506
|
if (!value?.trim() || value.startsWith("--") || /[\u0000-\u001f\u007f]/u.test(value)) throw new CloudCommandUsageError(`${flag2} \u7F3A\u5C11\u6709\u6548\u503C`);
|
|
5527
5507
|
if (flag2 === "--product") {
|
|
@@ -5530,12 +5510,12 @@ function parse2(command, args) {
|
|
|
5530
5510
|
} else values.set(flag2, value.trim());
|
|
5531
5511
|
}
|
|
5532
5512
|
if (products.length > 10) throw new CloudCommandUsageError("\u4E00\u6B21\u6700\u591A\u9009\u62E9 10 \u4E2A\u5546\u54C1");
|
|
5533
|
-
const recovery = ["--resume", "--status"
|
|
5513
|
+
const recovery = ["--resume", "--status"].filter((f) => values.has(f));
|
|
5534
5514
|
if (recovery.length && (recovery.length !== 1 || products.length || [...values.keys()].some((f) => f !== "--directory" && !recovery.includes(f)))) throw new CloudCommandUsageError("\u6062\u590D\u6216\u67E5\u8BE2\u547D\u4EE4\u4E0D\u80FD\u540C\u65F6\u66F4\u6539\u539F\u59CB\u8BF7\u6C42");
|
|
5535
5515
|
return { values, products };
|
|
5536
5516
|
}
|
|
5537
5517
|
function required(value) {
|
|
5538
|
-
if (!value) throw new CloudCommandUsageError("\u5E73\u53F0 Adapter \u5C1A\u672A\u652F\u6301\u5546\u54C1\u4E0A\u4F20\u548C\
|
|
5518
|
+
if (!value) throw new CloudCommandUsageError("\u5E73\u53F0 Adapter \u5C1A\u672A\u652F\u6301\u5546\u54C1\u4E0A\u4F20\u548C\u63D0\u5BA1\u534F\u8BAE\uFF0C\u8BF7\u5347\u7EA7 Adapter");
|
|
5539
5519
|
return value;
|
|
5540
5520
|
}
|
|
5541
5521
|
function responseError(message) {
|
|
@@ -5571,10 +5551,10 @@ function showPush(io, push) {
|
|
|
5571
5551
|
if (failureMessage(push.failure)) io.writeError(`\u539F\u56E0\uFF1A${failureMessage(push.failure)}`);
|
|
5572
5552
|
if (push.reviewIds.length) io.write(`\u5546\u54C1\u5BA1\u6838\u7F16\u53F7\uFF1A${push.reviewIds.join(", ")}`);
|
|
5573
5553
|
if (push.status === "completed") {
|
|
5574
|
-
io.write(
|
|
5554
|
+
io.write("\u672C\u6B21 push \u4E0D\u4F1A\u53D1\u5E03\u642D\u5B50\uFF1B\u6784\u5EFA\u6210\u529F\u540E\uFF0C\u8BF7\u5230\u5F00\u53D1\u8005\u540E\u53F0\u201C\u7248\u672C\u4E0E\u53D1\u5E03\u201D\u786E\u8BA4\u4EE3\u7801\u53CA\u6240\u9009\u5546\u54C1\u5BA1\u6838\u7ED3\u679C\u540E\u53D1\u5E03\u3002");
|
|
5575
5555
|
return 0;
|
|
5576
5556
|
}
|
|
5577
|
-
if (push.status === "product_reviews_failed") io.writeError(`\u4EE3\u7801\u5305\u5DF2\u4FDD\u5B58\uFF0C\u5546\u54C1\u672A\u5B8C\u6574\u63D0\u5BA1\u3002\u4FEE\u6B63\u5546\u54C1\u540E\u4F7F\u7528 products submit --version ${push.uploadVersion} --product <\u5546\u54C1 ID> \u8865\u63D0\uFF1B\
|
|
5557
|
+
if (push.status === "product_reviews_failed") io.writeError(`\u4EE3\u7801\u5305\u5DF2\u4FDD\u5B58\uFF0C\u5546\u54C1\u672A\u5B8C\u6574\u63D0\u5BA1\u3002\u4FEE\u6B63\u5546\u54C1\u540E\u4F7F\u7528 buddy-cli-sit products submit --version ${push.uploadVersion} --product <\u5546\u54C1 ID> \u8865\u63D0\uFF1B\u53D1\u5E03\u8BF7\u5230\u5F00\u53D1\u8005\u540E\u53F0\u201C\u7248\u672C\u4E0E\u53D1\u5E03\u201D\u64CD\u4F5C\u3002`);
|
|
5578
5558
|
else io.writeError(`\u4E0A\u4F20\u672A\u5B8C\u6210\uFF0C\u4F7F\u7528 buddy-cli-sit push --resume ${push.pushId} \u6062\u590D\u539F\u8BF7\u6C42\u3002`);
|
|
5579
5559
|
return 1;
|
|
5580
5560
|
}
|
|
@@ -5614,23 +5594,6 @@ async function executePush(record3, sourceBundle, store, client, id, io, options
|
|
|
5614
5594
|
throw cause;
|
|
5615
5595
|
}
|
|
5616
5596
|
}
|
|
5617
|
-
function matchRelease(request, release) {
|
|
5618
|
-
if (request.releaseId !== release.releaseId || request.mode !== release.mode || request.buddyVersion !== release.buddyVersion || !sameReviewIds(request.reviewIds, release.reviewIds)) responseError("\u53D1\u5E03\u56DE\u6267\u4E0E\u56FA\u5B9A\u8BF7\u6C42\u4E0D\u4E00\u81F4");
|
|
5619
|
-
}
|
|
5620
|
-
function showRelease(io, release) {
|
|
5621
|
-
io.write(`\u53D1\u5E03\u7F16\u53F7\uFF1A${release.releaseId}`);
|
|
5622
|
-
io.write(`\u53D1\u5E03\u72B6\u6001\uFF1A${release.status}`);
|
|
5623
|
-
io.write(`\u76EE\u6807\u7248\u672C\uFF1A${release.buddyVersion}`);
|
|
5624
|
-
if (failureMessage(release.failure)) io.writeError(`\u539F\u56E0\uFF1A${failureMessage(release.failure)}`);
|
|
5625
|
-
if (release.status === "active") {
|
|
5626
|
-
io.write("\u53D1\u5E03\u5DF2\u751F\u6548\u3002");
|
|
5627
|
-
return 0;
|
|
5628
|
-
}
|
|
5629
|
-
if (release.status === "failed") io.writeError(`\u53D1\u5E03\u672A\u751F\u6548\u3002\u4FEE\u6B63\u539F\u56E0\u540E buddy-cli-sit release --retry ${release.releaseId}\uFF1B\u653E\u5F03\u5219 --cancel ${release.releaseId}\u3002`);
|
|
5630
|
-
else if (release.status === "cancelled") io.write("\u8BE5\u53D1\u5E03\u5DF2\u53D6\u6D88\u3002");
|
|
5631
|
-
else io.write(`\u53D1\u5E03\u4ECD\u5728\u5904\u7406\uFF0C\u8BF7\u8FD0\u884C buddy-cli-sit release --status ${release.releaseId} \u786E\u8BA4\u662F\u5426\u751F\u6548\u3002`);
|
|
5632
|
-
return 1;
|
|
5633
|
-
}
|
|
5634
5597
|
async function runProductLifecycle(command, args, io, options) {
|
|
5635
5598
|
if (args.length === 1 && ["--help", "-h"].includes(args[0]) || command === "products" && args.length === 2 && args[0] === "submit" && args[1] === "--help") {
|
|
5636
5599
|
io.write(PRODUCT_HELP[command]);
|
|
@@ -5638,7 +5601,7 @@ async function runProductLifecycle(command, args, io, options) {
|
|
|
5638
5601
|
}
|
|
5639
5602
|
const p = parse2(command, args);
|
|
5640
5603
|
const v = p.values;
|
|
5641
|
-
if (options.mode === "local-mock") throw new CloudCommandUsageError("\u672C\u5730\u6A21\u62DF\u6A21\u5F0F\u4E0D\u4F1A\u4F2A\u9020\u6B63\u5F0F push \u6216\
|
|
5604
|
+
if (options.mode === "local-mock") throw new CloudCommandUsageError("\u672C\u5730\u6A21\u62DF\u6A21\u5F0F\u4E0D\u4F1A\u4F2A\u9020\u6B63\u5F0F push \u6216\u5546\u54C1\u63D0\u5BA1\uFF0C\u8BF7\u8FDE\u63A5\u771F\u5B9E MLB Server");
|
|
5642
5605
|
const freshPush = command === "push" && !v.has("--resume") && !v.has("--status");
|
|
5643
5606
|
const root = await (options.resolveProjectRoot ?? (freshPush ? requireBuddyAgentProjectRoot : requireBuddyProjectRoot))(resolve15(options.cwd ?? process.cwd(), v.get("--directory") ?? "."));
|
|
5644
5607
|
const platform = resolvePlatformUrl({ env: options.runtimeUpdate?.env });
|
|
@@ -5679,83 +5642,25 @@ async function runProductLifecycle(command, args, io, options) {
|
|
|
5679
5642
|
io.write(`\u6062\u590D\u7F16\u53F7\uFF1A${pushId}`);
|
|
5680
5643
|
return executePush(record4, bundle, store, client, id, io, options);
|
|
5681
5644
|
}
|
|
5682
|
-
if (command === "products") {
|
|
5683
|
-
let record4;
|
|
5684
|
-
if (v.has("--resume")) record4 = await store.read(v.get("--resume"), "submission");
|
|
5685
|
-
else {
|
|
5686
|
-
const version = v.get("--version");
|
|
5687
|
-
if (!version || !p.products.length) throw new CloudCommandUsageError(PRODUCT_HELP.products);
|
|
5688
|
-
const chosen = await selection(client, id, p.products, io);
|
|
5689
|
-
record4 = { kind: "submission", id: `sub_${randomUUID9()}`, version, reviews: chosen.reviews, confirmed: false };
|
|
5690
|
-
await store.create(record4);
|
|
5691
|
-
}
|
|
5692
|
-
io.write(`\u5546\u54C1\u63D0\u4EA4\u7F16\u53F7\uFF1A${record4.id}`);
|
|
5693
|
-
try {
|
|
5694
|
-
const receipt = await required(client.submitPackageProducts).call(client, { id, version: record4.version, reviews: record4.reviews });
|
|
5695
|
-
if (!sameReviewIds(receipt.reviewIds, record4.reviews.map((r) => r.reviewId))) responseError("\u5E73\u53F0\u672A\u786E\u8BA4\u5B8C\u6574\u5546\u54C1\u5BA1\u6838\u96C6\u5408");
|
|
5696
|
-
await store.save({ ...record4, confirmed: true });
|
|
5697
|
-
io.write(`\u5546\u54C1\u5DF2\u63D0\u4EA4\u5BA1\u6838\uFF1A${receipt.reviewIds.join(", ")}`);
|
|
5698
|
-
io.write(`\u5BA1\u6838\u901A\u8FC7\u540E\uFF1Abuddy-cli-sit release --from-submission ${record4.id}`);
|
|
5699
|
-
return { exitCode: 0, buddyId: id, version: record4.version };
|
|
5700
|
-
} catch (cause) {
|
|
5701
|
-
io.writeError(`\u4FDD\u7559\u539F\u8BF7\u6C42\u91CD\u8BD5\uFF1Abuddy-cli-sit products submit --resume ${record4.id}`);
|
|
5702
|
-
throw cause;
|
|
5703
|
-
}
|
|
5704
|
-
}
|
|
5705
|
-
const action = ["--resume", "--status", "--retry", "--cancel"].find((f) => v.has(f));
|
|
5706
5645
|
let record3;
|
|
5707
|
-
if (
|
|
5708
|
-
|
|
5709
|
-
|
|
5710
|
-
|
|
5711
|
-
|
|
5712
|
-
|
|
5713
|
-
}
|
|
5714
|
-
record3 = await store.read(releaseId, "release");
|
|
5715
|
-
} else {
|
|
5716
|
-
const sources = ["--from-push", "--from-submission", "--version"].filter((f) => v.has(f));
|
|
5717
|
-
if (sources.length !== 1 || v.has("--code-only") !== v.has("--version") || v.has("--code-only") && v.has("--products-only")) throw new CloudCommandUsageError(PRODUCT_HELP.release);
|
|
5718
|
-
let version;
|
|
5719
|
-
let reviewIds;
|
|
5720
|
-
if (v.has("--from-push")) {
|
|
5721
|
-
const pushRecord = await store.read(v.get("--from-push"), "push");
|
|
5722
|
-
const receipt = await required(client.getPackagePush).call(client, { id, pushId: pushRecord.id });
|
|
5723
|
-
confirmPush(pushRecord, receipt);
|
|
5724
|
-
await store.save({ ...pushRecord, receipt });
|
|
5725
|
-
if (receipt.status !== "completed" || !receipt.uploadVersion) throw new CloudCommandUsageError("\u6307\u5B9A\u4E0A\u4F20\u5C1A\u672A\u5B8C\u6574\u63D0\u5BA1\uFF0C\u4E0D\u80FD\u81EA\u52A8\u7701\u7565\u5931\u8D25\u5546\u54C1\uFF1B\u8BF7\u8865\u63D0\u6216\u660E\u786E --version <\u7248\u672C> --code-only");
|
|
5726
|
-
version = receipt.uploadVersion;
|
|
5727
|
-
reviewIds = receipt.reviewIds;
|
|
5728
|
-
} else if (v.has("--from-submission")) {
|
|
5729
|
-
const submission = await store.read(v.get("--from-submission"), "submission");
|
|
5730
|
-
if (!submission.confirmed) throw new CloudCommandUsageError(`\u8865\u63D0\u7ED3\u679C\u5C1A\u672A\u786E\u8BA4\uFF0C\u8BF7\u5148 products submit --resume ${submission.id}`);
|
|
5731
|
-
version = submission.version;
|
|
5732
|
-
reviewIds = submission.reviews.map((r) => r.reviewId);
|
|
5733
|
-
} else {
|
|
5734
|
-
version = v.get("--version");
|
|
5735
|
-
reviewIds = [];
|
|
5736
|
-
}
|
|
5737
|
-
if (v.has("--products-only")) {
|
|
5738
|
-
if (!reviewIds.length) throw new CloudCommandUsageError("--products-only \u9700\u8981\u660E\u786E\u7684\u5546\u54C1\u5BA1\u6838\u96C6\u5408");
|
|
5739
|
-
const buddy2 = await client.getBuddy({ id });
|
|
5740
|
-
if (buddy2.id !== id || !buddy2.released || buddy2.version !== version) throw new CloudCommandUsageError("\u4EC5\u5546\u54C1\u53D1\u5E03\u8981\u6C42\u56DE\u6267\u7248\u672C\u4E0E\u5F53\u524D\u5DF2\u53D1\u5E03\u642D\u5B50\u7248\u672C\u4E00\u81F4");
|
|
5741
|
-
}
|
|
5742
|
-
const releaseId = `rel_${randomUUID9()}`;
|
|
5743
|
-
record3 = { kind: "release", id: releaseId, request: { releaseId, mode: v.has("--products-only") ? "products_only" : "with_buddy", buddyVersion: version, reviewIds } };
|
|
5646
|
+
if (v.has("--resume")) record3 = await store.read(v.get("--resume"), "submission");
|
|
5647
|
+
else {
|
|
5648
|
+
const version = v.get("--version");
|
|
5649
|
+
if (!version || !p.products.length) throw new CloudCommandUsageError(PRODUCT_HELP.products);
|
|
5650
|
+
const chosen = await selection(client, id, p.products, io);
|
|
5651
|
+
record3 = { kind: "submission", id: `sub_${randomUUID9()}`, version, reviews: chosen.reviews, confirmed: false };
|
|
5744
5652
|
await store.create(record3);
|
|
5745
5653
|
}
|
|
5746
|
-
io.write(`\
|
|
5654
|
+
io.write(`\u5546\u54C1\u63D0\u4EA4\u7F16\u53F7\uFF1A${record3.id}`);
|
|
5747
5655
|
try {
|
|
5748
|
-
const receipt =
|
|
5749
|
-
|
|
5750
|
-
await store.save({ ...record3,
|
|
5751
|
-
|
|
5656
|
+
const receipt = await required(client.submitPackageProducts).call(client, { id, version: record3.version, reviews: record3.reviews });
|
|
5657
|
+
if (!sameReviewIds(receipt.reviewIds, record3.reviews.map((r) => r.reviewId))) responseError("\u5E73\u53F0\u672A\u786E\u8BA4\u5B8C\u6574\u5546\u54C1\u5BA1\u6838\u96C6\u5408");
|
|
5658
|
+
await store.save({ ...record3, confirmed: true });
|
|
5659
|
+
io.write(`\u5546\u54C1\u5DF2\u63D0\u4EA4\u5BA1\u6838\uFF1A${receipt.reviewIds.join(", ")}`);
|
|
5660
|
+
io.write("\u5BA1\u6838\u901A\u8FC7\u540E\uFF0C\u8BF7\u5230\u5F00\u53D1\u8005\u540E\u53F0\u786E\u8BA4\u5E76\u53D1\u5E03\u3002");
|
|
5661
|
+
return { exitCode: 0, buddyId: id, version: record3.version };
|
|
5752
5662
|
} catch (cause) {
|
|
5753
|
-
|
|
5754
|
-
matchRelease(record3.request, cause.release);
|
|
5755
|
-
await store.save({ ...record3, receipt: cause.release });
|
|
5756
|
-
showRelease(io, cause.release);
|
|
5757
|
-
}
|
|
5758
|
-
io.writeError(`\u53D1\u5E03\u7ED3\u679C\u9700\u786E\u8BA4\uFF1Abuddy-cli-sit release --status ${record3.id}\uFF1B\u539F\u8BF7\u6C42\u6062\u590D\uFF1Abuddy-cli-sit release --resume ${record3.id}`);
|
|
5663
|
+
io.writeError(`\u4FDD\u7559\u539F\u8BF7\u6C42\u91CD\u8BD5\uFF1Abuddy-cli-sit products submit --resume ${record3.id}`);
|
|
5759
5664
|
throw cause;
|
|
5760
5665
|
}
|
|
5761
5666
|
}
|
|
@@ -6077,7 +5982,7 @@ function serverError(response, body) {
|
|
|
6077
5982
|
return new CloudOperationError(code2, message, {
|
|
6078
5983
|
httpStatus: response.status,
|
|
6079
5984
|
retryable: response.status === 408 || response.status === 429 || response.status >= 500
|
|
6080
|
-
}, source?.push === void 0 ? void 0 : parsePackagePush(source.push)
|
|
5985
|
+
}, source?.push === void 0 ? void 0 : parsePackagePush(source.push));
|
|
6081
5986
|
}
|
|
6082
5987
|
var HttpDeveloperPlatformClient = class {
|
|
6083
5988
|
#baseUrl;
|
|
@@ -6244,24 +6149,6 @@ var HttpDeveloperPlatformClient = class {
|
|
|
6244
6149
|
const source = object3(await this.#request(`/cli/buddies/${encodeURIComponent(request.id)}/packages/${encodeURIComponent(request.version)}/product-reviews`, "POST", { json: { reviews: request.reviews } }), "response");
|
|
6245
6150
|
return { reviewIds: selectedReviewIds(source.reviewIds) };
|
|
6246
6151
|
}
|
|
6247
|
-
async createProductRelease(request) {
|
|
6248
|
-
const source = object3(await this.#request(`/cli/buddies/${encodeURIComponent(request.id)}/product-releases`, "POST", { json: request.release }), "response");
|
|
6249
|
-
return parseProductRelease(source.release);
|
|
6250
|
-
}
|
|
6251
|
-
async getProductRelease(request) {
|
|
6252
|
-
const source = object3(await this.#request(`/cli/buddies/${encodeURIComponent(request.id)}/product-releases/${encodeURIComponent(request.releaseId)}`, "GET"), "response");
|
|
6253
|
-
const release = parseProductRelease(source.release);
|
|
6254
|
-
if (release.releaseId !== request.releaseId) throw invalid3("\u53D1\u5E03\u56DE\u6267 ID \u4E0D\u5339\u914D");
|
|
6255
|
-
return release;
|
|
6256
|
-
}
|
|
6257
|
-
async retryProductRelease(request) {
|
|
6258
|
-
const source = object3(await this.#request(`/cli/buddies/${encodeURIComponent(request.id)}/product-releases/${encodeURIComponent(request.releaseId)}/retry`, "POST"), "response");
|
|
6259
|
-
return parseProductRelease(source.release);
|
|
6260
|
-
}
|
|
6261
|
-
async cancelProductRelease(request) {
|
|
6262
|
-
const source = object3(await this.#request(`/cli/buddies/${encodeURIComponent(request.id)}/product-releases/${encodeURIComponent(request.releaseId)}/cancel`, "POST"), "response");
|
|
6263
|
-
return parseProductRelease(source.release);
|
|
6264
|
-
}
|
|
6265
6152
|
async getPackageBuild(request) {
|
|
6266
6153
|
return parseBuild(await this.#request(`/cli/buddies/${encodeURIComponent(request.id)}/packages/${encodeURIComponent(request.version)}/build`, "GET"));
|
|
6267
6154
|
}
|
|
@@ -6392,7 +6279,6 @@ var HELP = Object.freeze({
|
|
|
6392
6279
|
logout: "\u7528\u6CD5: buddy-cli-sit logout",
|
|
6393
6280
|
push: PRODUCT_HELP.push,
|
|
6394
6281
|
products: PRODUCT_HELP.products,
|
|
6395
|
-
release: PRODUCT_HELP.release,
|
|
6396
6282
|
status: "\u7528\u6CD5: buddy-cli-sit status [--directory <\u9879\u76EE\u76EE\u5F55>]",
|
|
6397
6283
|
meta: `\u7528\u6CD5: buddy-cli-sit meta [--directory <\u9879\u76EE\u76EE\u5F55> | --buddy-id <\u642D\u5B50 ID>]
|
|
6398
6284
|
buddy-cli-sit meta update [--name <\u540D\u79F0>] [--tagline <\u4E00\u53E5\u8BDD\u4ECB\u7ECD>] [--intro <\u5B8C\u6574\u4ECB\u7ECD>] [--avatar <\u56FE\u7247\u6587\u4EF6>] [--directory <\u9879\u76EE\u76EE\u5F55> | --buddy-id <\u642D\u5B50 ID>]
|
|
@@ -6576,7 +6462,7 @@ async function runMeta(parsed, io, options, legacyAvatar = false) {
|
|
|
6576
6462
|
}
|
|
6577
6463
|
async function runCloudCommand(command, args, io, options = {}) {
|
|
6578
6464
|
try {
|
|
6579
|
-
if (command === "push" || command === "products"
|
|
6465
|
+
if (command === "push" || command === "products") return await runProductLifecycle(command, args, io, options);
|
|
6580
6466
|
const parsed = parse3(args, command);
|
|
6581
6467
|
if (parsed.help) {
|
|
6582
6468
|
io.write(HELP[command]);
|
|
@@ -6621,7 +6507,7 @@ async function runCloudCommand(command, args, io, options = {}) {
|
|
|
6621
6507
|
exitCode: cause instanceof CloudCommandUsageError || cause instanceof BuddyProjectContextError ? 2 : 1
|
|
6622
6508
|
};
|
|
6623
6509
|
}
|
|
6624
|
-
if (["push", "products"
|
|
6510
|
+
if (["push", "products"].includes(command)) {
|
|
6625
6511
|
io.writeError(`buddy-cli-sit: ${cause instanceof Error ? cause.message : "\u64CD\u4F5C\u672A\u5B8C\u6210\uFF0C\u8BF7\u6309\u8F93\u51FA\u7F16\u53F7\u67E5\u8BE2\u6216\u6062\u590D"}`);
|
|
6626
6512
|
return { exitCode: 1 };
|
|
6627
6513
|
}
|
|
@@ -8748,7 +8634,7 @@ async function runBuddyCli(args, io, options = {}) {
|
|
|
8748
8634
|
...options.dev
|
|
8749
8635
|
});
|
|
8750
8636
|
}
|
|
8751
|
-
if (command === "login" || command === "logout" || command === "push" || command === "products" || command === "
|
|
8637
|
+
if (command === "login" || command === "logout" || command === "push" || command === "products" || command === "status" || command === "meta" || command === "avatar") {
|
|
8752
8638
|
return await runCloudCommand(command, rest, io, {
|
|
8753
8639
|
cwd: options.cwd,
|
|
8754
8640
|
runtimeUpdate: options.runtimeCatalog,
|
|
@@ -8933,6 +8819,7 @@ export {
|
|
|
8933
8819
|
isWindowsReservedPathSegment,
|
|
8934
8820
|
latestRuntimeTemplate,
|
|
8935
8821
|
normalizePlatformUrl,
|
|
8822
|
+
npmPackageManifest,
|
|
8936
8823
|
openExternalUrl,
|
|
8937
8824
|
parseBuddyAgentConfig,
|
|
8938
8825
|
parseBuddyProjectManifest,
|