@my-life-buddies/cli 0.26.3 → 0.27.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 +2 -2
- package/dist/bin/buddy.js +11 -37
- package/dist/bin/buddy.js.map +2 -2
- package/dist/bin/core.js +35 -24
- 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
|
@@ -95,19 +95,36 @@ import { lstat, mkdir, mkdtemp, readFile as readFile2, rename, rm, writeFile } f
|
|
|
95
95
|
import { homedir } from "node:os";
|
|
96
96
|
import { join } from "node:path";
|
|
97
97
|
import { promisify } from "node:util";
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
|
|
99
|
+
// packages/cli-core/src/npm-registry.ts
|
|
100
|
+
var REGISTRY = "https://registry.npmjs.org/";
|
|
101
|
+
async function npmPackageManifest(name, selector, options = {}) {
|
|
101
102
|
options.signal?.throwIfAborted();
|
|
102
|
-
const timeout = AbortSignal.timeout(1e4);
|
|
103
|
+
const timeout = AbortSignal.timeout(options.timeoutMs ?? 1e4);
|
|
103
104
|
const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
|
|
104
|
-
const response = await (options.fetch ?? globalThis.fetch)(`${
|
|
105
|
+
const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(name)}`, {
|
|
105
106
|
signal,
|
|
106
107
|
headers: { Accept: "application/json" },
|
|
107
108
|
redirect: "error"
|
|
108
109
|
});
|
|
109
|
-
if (!response.ok) throw new Error(`npm
|
|
110
|
-
const
|
|
110
|
+
if (!response.ok) throw new Error(`npm HTTP ${response.status}`);
|
|
111
|
+
const text2 = await response.text();
|
|
112
|
+
if (text2.length > 8 * 1024 * 1024) throw new Error("npm \u5143\u6570\u636E\u8FC7\u5927");
|
|
113
|
+
const metadata = JSON.parse(text2);
|
|
114
|
+
if (metadata?.name !== name) throw new Error("npm \u8FD4\u56DE\u7684\u5305\u540D\u4E0D\u5339\u914D");
|
|
115
|
+
const version = Object.hasOwn(metadata["dist-tags"] ?? {}, selector) ? metadata["dist-tags"][selector] : selector;
|
|
116
|
+
const manifest = typeof version === "string" && Object.hasOwn(metadata.versions ?? {}, version) ? metadata.versions[version] : void 0;
|
|
117
|
+
if (!manifest || manifest.name !== name || manifest.version !== version) {
|
|
118
|
+
throw new Error(`npm ${selector} \u672A\u8FD4\u56DE\u6B64\u5305\u7684\u51C6\u786E\u7248\u672C`);
|
|
119
|
+
}
|
|
120
|
+
return manifest;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// packages/cli-core/src/config/runtime-package.ts
|
|
124
|
+
var RUNTIME_REGISTRY = "https://registry.npmjs.org/";
|
|
125
|
+
var execute = promisify(execFile);
|
|
126
|
+
async function latestRuntimeVersion(options = {}) {
|
|
127
|
+
const metadata = await npmPackageManifest(BUDDY_RUNTIME_PACKAGE, "latest", options);
|
|
111
128
|
if (metadata?.name !== BUDDY_RUNTIME_PACKAGE || !isExactRuntimeVersion(metadata.version) || metadata.version.includes("-")) {
|
|
112
129
|
throw new Error("npm latest \u672A\u8FD4\u56DE\u6B64 Runtime \u7684\u51C6\u786E\u7A33\u5B9A\u7248\u672C");
|
|
113
130
|
}
|
|
@@ -231,7 +248,7 @@ import { lstat as lstat2, mkdir as mkdir2, mkdtemp as mkdtemp2, readFile as read
|
|
|
231
248
|
import { homedir as homedir2 } from "node:os";
|
|
232
249
|
import { isAbsolute, join as join2 } from "node:path";
|
|
233
250
|
import { promisify as promisify2 } from "node:util";
|
|
234
|
-
var
|
|
251
|
+
var REGISTRY2 = "https://registry.npmjs.org/";
|
|
235
252
|
var execute2 = promisify2(execFile2);
|
|
236
253
|
var VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u;
|
|
237
254
|
function validSkillLock(value, protocolVersions2 = [1]) {
|
|
@@ -303,21 +320,14 @@ async function resolveSkillPackage(definition3, previous, options = {}) {
|
|
|
303
320
|
options.signal?.throwIfAborted();
|
|
304
321
|
const version = options.version ?? pinned?.version ?? "latest";
|
|
305
322
|
options.report?.(`\u6B63\u5728\u67E5\u8BE2 ${definition3.label} Skill ${version}\u2026`);
|
|
306
|
-
let
|
|
323
|
+
let pkg;
|
|
307
324
|
try {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
redirect: "error",
|
|
311
|
-
signal: options.signal ? AbortSignal.any([options.signal, AbortSignal.timeout(15e3)]) : AbortSignal.timeout(15e3)
|
|
312
|
-
});
|
|
313
|
-
} catch {
|
|
325
|
+
pkg = await npmPackageManifest(definition3.name, version, { ...options, timeoutMs: 15e3 });
|
|
326
|
+
} catch (cause) {
|
|
314
327
|
options.signal?.throwIfAborted();
|
|
315
|
-
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`);
|
|
328
|
+
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`);
|
|
316
329
|
}
|
|
317
|
-
if (
|
|
318
|
-
const text2 = await response.text();
|
|
319
|
-
if (text2.length > 512 * 1024) throw new Error(`${definition3.label} npm \u5143\u6570\u636E\u8FC7\u5927\u3002`);
|
|
320
|
-
const pkg = JSON.parse(text2);
|
|
330
|
+
if (JSON.stringify(pkg).length > 512 * 1024) throw new Error(`${definition3.label} npm \u5143\u6570\u636E\u8FC7\u5927\u3002`);
|
|
321
331
|
checkProtocol(definition3, pkg);
|
|
322
332
|
if (version !== "latest" && pkg.version !== version) throw new Error(`npm \u8FD4\u56DE\u4E86\u4E0D\u540C\u7684 ${definition3.label} \u7248\u672C\u3002`);
|
|
323
333
|
const lock = { source: "npm", version: pkg.version, integrity: pkg.dist?.integrity, protocolVersion: pkg.buddySkill.protocolVersion };
|
|
@@ -331,7 +341,7 @@ async function resolveSkillPackage(definition3, previous, options = {}) {
|
|
|
331
341
|
try {
|
|
332
342
|
await writeFile2(join2(temporary, "package.json"), JSON.stringify({ name: "buddy-skill-cache", private: true, dependencies: { [definition3.name]: lock.version } }));
|
|
333
343
|
const config = join2(temporary, ".npmrc");
|
|
334
|
-
await writeFile2(config, `registry=${
|
|
344
|
+
await writeFile2(config, `registry=${REGISTRY2}
|
|
335
345
|
`);
|
|
336
346
|
options.report?.(`\u6B63\u5728\u4E0B\u8F7D ${definition3.label} Skill ${lock.version}\u2026`);
|
|
337
347
|
const run = options.runNpm ?? ((args, settings) => execute2("npm", args, { ...settings, encoding: "utf8", maxBuffer: 2 * 1024 * 1024 }));
|
|
@@ -343,8 +353,8 @@ async function resolveSkillPackage(definition3, previous, options = {}) {
|
|
|
343
353
|
"--omit=dev",
|
|
344
354
|
"--no-audit",
|
|
345
355
|
"--no-fund",
|
|
346
|
-
`--registry=${
|
|
347
|
-
...definition3.name.startsWith("@") ? [`--${definition3.name.split("/")[0]}:registry=${
|
|
356
|
+
`--registry=${REGISTRY2}`,
|
|
357
|
+
...definition3.name.startsWith("@") ? [`--${definition3.name.split("/")[0]}:registry=${REGISTRY2}`] : [],
|
|
348
358
|
`--userconfig=${config}`,
|
|
349
359
|
"--fetch-retries=0",
|
|
350
360
|
"--fetch-timeout=20000"
|
|
@@ -2535,7 +2545,7 @@ ${DEVELOPMENT_HANDOFF_SUMMARY}
|
|
|
2535
2545
|
|
|
2536
2546
|
\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
|
|
2537
2547
|
|
|
2538
|
-
\u9700\u8981\u91CD\u65B0\u6253\u5F00\u65F6\uFF0C\u4F7F\u7528 \`buddy-cli 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\
|
|
2548
|
+
\u9700\u8981\u91CD\u65B0\u6253\u5F00\u65F6\uFF0C\u4F7F\u7528 \`buddy-cli 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
|
|
2539
2549
|
|
|
2540
2550
|
\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`;
|
|
2541
2551
|
|
|
@@ -8850,6 +8860,7 @@ export {
|
|
|
8850
8860
|
isWindowsReservedPathSegment,
|
|
8851
8861
|
latestRuntimeTemplate,
|
|
8852
8862
|
normalizePlatformUrl,
|
|
8863
|
+
npmPackageManifest,
|
|
8853
8864
|
openExternalUrl,
|
|
8854
8865
|
parseBuddyAgentConfig,
|
|
8855
8866
|
parseBuddyProjectManifest,
|