dsh-calorie 0.3.12 → 0.3.14
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/bridge.d.ts +20 -14
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +25 -77
- package/dist/bridge.js.map +1 -1
- package/dist/client.js +588 -181
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/settings.d.ts +0 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +0 -1
- package/dist/settings.js.map +1 -1
- package/package.json +3 -3
package/dist/bridge.d.ts
CHANGED
|
@@ -4,33 +4,39 @@ export declare const SKILL_CLI: "packages/skill-calorie/dist/cli/cmd_read.js";
|
|
|
4
4
|
export declare const HOST_CALL_METHOD: "ilife.calorie.read";
|
|
5
5
|
export declare const MANAGER_PACKAGE: "dsh-life-pack";
|
|
6
6
|
export declare const MANAGER_MISSING_HINT = "\u603B\u7BA1\u7F3A\u5E2D\uFF0C\u8BF7\u8865\u88C5\uFF1Adsh plugin add dsh-life-pack dsh-calorie\uFF08\u4E0D\u8BB8\u5355\u5378\u603B\u7BA1\uFF09";
|
|
7
|
-
/** #130 版本通道(host 侧动态读取已安装版本,client
|
|
7
|
+
/** #130 版本通道(host 侧动态读取已安装版本,client 纯渲染);#918 阶段三起读值走总管共用件。
|
|
8
8
|
*
|
|
9
9
|
* 唯一真相源=磁盘 package.json:插件取自身 package.json 的 version,
|
|
10
|
-
* skill 取已安装 skill-calorie/package.json 的 version
|
|
10
|
+
* skill 取已安装 skill-calorie/package.json 的 version。
|
|
11
|
+
* 这两处读取**只有一处定义**=总管(dsh-life-pack)的 `installedVersionOf(包名, from)`:
|
|
12
|
+
* 它从 `from` 那份模块按包名解析**已装**的 `<包名>/package.json`,只解析 `version`,永不抛。
|
|
13
|
+
* 本家原先自己那套(自家算两份 manifest 的路径 + 自家读盘 + 自家兜底)已随之删掉——
|
|
14
|
+
* 路径解析、读盘、'unknown' 兜底与 warn 留痕都不再在本文件有第二份实现。
|
|
11
15
|
* client 禁 node(见 client.ts 头注释),故读取只许在 host 侧(本文件),
|
|
12
16
|
* 经现有 connection.rpc.call 模式(同 READ 端点、VERSION_READ_KEY 魔键)传给面板,
|
|
13
17
|
* client 只渲染 host 给的值,读不到侧显示 unknown(见 client normalizeVersion)。
|
|
14
18
|
* 不引入新运行时依赖;只解析 version 字段,不读 SKILL 正文、不改 provider 解析路径。
|
|
15
19
|
*/
|
|
20
|
+
/** 面板骨架的 unknown 占位(与共用件那处的 `VERSION_UNKNOWN` 同值 'unknown')。
|
|
21
|
+
*
|
|
22
|
+
* 读失败的兜底住在共用件(本文件不再自己兜底);本常量只为既有导出面与面板骨架保留,
|
|
23
|
+
* client 侧另有一份镜像(client 禁直引 bridge,见 client.ts)。
|
|
24
|
+
*/
|
|
16
25
|
export declare const VERSION_UNKNOWN: "unknown";
|
|
17
26
|
export declare const VERSION_READ_KEY: "dsh-calorie.version";
|
|
18
27
|
export interface InstalledVersions {
|
|
19
28
|
readonly plugin: string;
|
|
20
29
|
readonly skill: string;
|
|
21
30
|
}
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
warn?: (...args: unknown[]) => void;
|
|
32
|
-
};
|
|
33
|
-
}): InstalledVersions;
|
|
31
|
+
/** host 侧读已安装双 package.json(永不抛;读不到侧由共用件回 'unknown' 并 warn 留痕,含包名与原因)。
|
|
32
|
+
*
|
|
33
|
+
* 两个包名按字面给:技能包名与 `SKILL_PACKAGE` 同值(那是本包自己的定义,见上),
|
|
34
|
+
* 插件包名即本包名(与 index.ts 的 `name`/slot.ts 的 `PLUGIN` 同值)。
|
|
35
|
+
* `from` 传本模块 URL:共用件据此按 Node 解析规则找 `<包名>/package.json`
|
|
36
|
+
* (插件与技能包的 `exports` 都留了 `./package.json` 这一条),故开发单仓
|
|
37
|
+
* (`packages/plugin-calorie/dist/bridge.js`)与安装态(`node_modules/dsh-calorie/dist/bridge.js`)
|
|
38
|
+
* 走同一条路,读的都是**已装的那份**,不是构建期抄进代码里的字面量。 */
|
|
39
|
+
export declare function readInstalledVersions(): InstalledVersions;
|
|
34
40
|
export declare class SkillBridgeError extends Error {
|
|
35
41
|
readonly code: 'missing-cli' | 'fetch-failed' | 'bad-json' | 'key-mismatch';
|
|
36
42
|
constructor(code: SkillBridgeError['code'], message: string);
|
package/dist/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge.js
CHANGED
|
@@ -7,99 +7,46 @@
|
|
|
7
7
|
* 技能包不动(只读);combos.yaml 不动。
|
|
8
8
|
*/
|
|
9
9
|
import { spawnSync } from 'node:child_process';
|
|
10
|
-
import { accessSync, constants
|
|
10
|
+
import { accessSync, constants } from 'node:fs';
|
|
11
11
|
import { createRequire } from 'node:module';
|
|
12
12
|
import { join, dirname } from 'node:path';
|
|
13
13
|
import { fileURLToPath } from 'node:url';
|
|
14
|
+
import { installedVersionOf } from 'dsh-life-pack';
|
|
14
15
|
export const SKILL_PACKAGE = 'skill-calorie';
|
|
15
16
|
export const SKILL_CLI = 'packages/skill-calorie/dist/cli/cmd_read.js';
|
|
16
17
|
export const HOST_CALL_METHOD = 'ilife.calorie.read';
|
|
17
18
|
export const MANAGER_PACKAGE = 'dsh-life-pack';
|
|
18
19
|
export const MANAGER_MISSING_HINT = '总管缺席,请补装:dsh plugin add dsh-life-pack dsh-calorie(不许单卸总管)';
|
|
19
|
-
/** #130 版本通道(host 侧动态读取已安装版本,client
|
|
20
|
+
/** #130 版本通道(host 侧动态读取已安装版本,client 纯渲染);#918 阶段三起读值走总管共用件。
|
|
20
21
|
*
|
|
21
22
|
* 唯一真相源=磁盘 package.json:插件取自身 package.json 的 version,
|
|
22
|
-
* skill 取已安装 skill-calorie/package.json 的 version
|
|
23
|
+
* skill 取已安装 skill-calorie/package.json 的 version。
|
|
24
|
+
* 这两处读取**只有一处定义**=总管(dsh-life-pack)的 `installedVersionOf(包名, from)`:
|
|
25
|
+
* 它从 `from` 那份模块按包名解析**已装**的 `<包名>/package.json`,只解析 `version`,永不抛。
|
|
26
|
+
* 本家原先自己那套(自家算两份 manifest 的路径 + 自家读盘 + 自家兜底)已随之删掉——
|
|
27
|
+
* 路径解析、读盘、'unknown' 兜底与 warn 留痕都不再在本文件有第二份实现。
|
|
23
28
|
* client 禁 node(见 client.ts 头注释),故读取只许在 host 侧(本文件),
|
|
24
29
|
* 经现有 connection.rpc.call 模式(同 READ 端点、VERSION_READ_KEY 魔键)传给面板,
|
|
25
30
|
* client 只渲染 host 给的值,读不到侧显示 unknown(见 client normalizeVersion)。
|
|
26
31
|
* 不引入新运行时依赖;只解析 version 字段,不读 SKILL 正文、不改 provider 解析路径。
|
|
27
32
|
*/
|
|
33
|
+
/** 面板骨架的 unknown 占位(与共用件那处的 `VERSION_UNKNOWN` 同值 'unknown')。
|
|
34
|
+
*
|
|
35
|
+
* 读失败的兜底住在共用件(本文件不再自己兜底);本常量只为既有导出面与面板骨架保留,
|
|
36
|
+
* client 侧另有一份镜像(client 禁直引 bridge,见 client.ts)。
|
|
37
|
+
*/
|
|
28
38
|
export const VERSION_UNKNOWN = 'unknown';
|
|
29
39
|
export const VERSION_READ_KEY = 'dsh-calorie.version';
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return join(repoRoot(), 'packages', SKILL_PACKAGE, 'package.json');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function readOneVersion(path) {
|
|
44
|
-
let raw;
|
|
45
|
-
try {
|
|
46
|
-
raw = readFileSync(path, 'utf8');
|
|
47
|
-
}
|
|
48
|
-
catch (e) {
|
|
49
|
-
return { version: null, reason: 'read failed: ' + (e instanceof Error ? e.message : String(e)) };
|
|
50
|
-
}
|
|
51
|
-
let parsed;
|
|
52
|
-
try {
|
|
53
|
-
parsed = JSON.parse(raw);
|
|
54
|
-
}
|
|
55
|
-
catch (e) {
|
|
56
|
-
return { version: null, reason: 'parse failed: ' + (e instanceof Error ? e.message : String(e)) };
|
|
57
|
-
}
|
|
58
|
-
const v = parsed?.version;
|
|
59
|
-
if (typeof v !== 'string' || v.trim().length === 0)
|
|
60
|
-
return { version: null, reason: 'version field missing or empty' };
|
|
61
|
-
return { version: v.trim(), reason: '' };
|
|
62
|
-
}
|
|
63
|
-
/** host 侧读已安装双 package.json(永不抛;失败侧 unknown+warn 留痕,含路径与原因)。 */
|
|
64
|
-
export function readInstalledVersions(opts) {
|
|
65
|
-
try {
|
|
66
|
-
const pluginPath = opts?.pluginPath ?? pluginPackageJsonPath();
|
|
67
|
-
const skillPath = opts?.skillPath ?? skillPackageJsonPath();
|
|
68
|
-
const warn = opts?.logger && typeof opts.logger.warn === 'function'
|
|
69
|
-
? opts.logger.warn.bind(opts.logger)
|
|
70
|
-
: console.warn.bind(console);
|
|
71
|
-
const p = readOneVersion(pluginPath);
|
|
72
|
-
const s = readOneVersion(skillPath);
|
|
73
|
-
if (!p.version) {
|
|
74
|
-
try {
|
|
75
|
-
warn('[dsh-calorie] version read failed (plugin): path=' + pluginPath + ' reason=' + p.reason);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
/* warn 不得抛,面板降级不受影响 */
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (!s.version) {
|
|
82
|
-
try {
|
|
83
|
-
warn('[dsh-calorie] version read failed (skill): path=' + skillPath + ' reason=' + s.reason);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
/* warn 不得抛 */
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return { plugin: p.version ?? VERSION_UNKNOWN, skill: s.version ?? VERSION_UNKNOWN };
|
|
90
|
-
}
|
|
91
|
-
catch (e) {
|
|
92
|
-
try {
|
|
93
|
-
const warn = opts?.logger && typeof opts.logger.warn === 'function'
|
|
94
|
-
? opts.logger.warn.bind(opts.logger)
|
|
95
|
-
: console.warn.bind(console);
|
|
96
|
-
warn('[dsh-calorie] version read failed (both): reason=' + (e instanceof Error ? e.message : String(e)));
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
/* 兜底不抛 */
|
|
100
|
-
}
|
|
101
|
-
return { plugin: VERSION_UNKNOWN, skill: VERSION_UNKNOWN };
|
|
102
|
-
}
|
|
40
|
+
/** host 侧读已安装双 package.json(永不抛;读不到侧由共用件回 'unknown' 并 warn 留痕,含包名与原因)。
|
|
41
|
+
*
|
|
42
|
+
* 两个包名按字面给:技能包名与 `SKILL_PACKAGE` 同值(那是本包自己的定义,见上),
|
|
43
|
+
* 插件包名即本包名(与 index.ts 的 `name`/slot.ts 的 `PLUGIN` 同值)。
|
|
44
|
+
* `from` 传本模块 URL:共用件据此按 Node 解析规则找 `<包名>/package.json`
|
|
45
|
+
* (插件与技能包的 `exports` 都留了 `./package.json` 这一条),故开发单仓
|
|
46
|
+
* (`packages/plugin-calorie/dist/bridge.js`)与安装态(`node_modules/dsh-calorie/dist/bridge.js`)
|
|
47
|
+
* 走同一条路,读的都是**已装的那份**,不是构建期抄进代码里的字面量。 */
|
|
48
|
+
export function readInstalledVersions() {
|
|
49
|
+
return { plugin: installedVersionOf('dsh-calorie', import.meta.url), skill: installedVersionOf(SKILL_PACKAGE, import.meta.url) };
|
|
103
50
|
}
|
|
104
51
|
export class SkillBridgeError extends Error {
|
|
105
52
|
code;
|
|
@@ -159,7 +106,8 @@ export function resolveNodeBin(execPath = process.execPath) {
|
|
|
159
106
|
}
|
|
160
107
|
/** 同步取数:spawn 技能 cmd_read,返回 envelope data(缺失阻断)。 */
|
|
161
108
|
export function readViaCli(key, params = {}) {
|
|
162
|
-
// #130 版本通道:不走 CLI spawn,直接读已安装 package.json
|
|
109
|
+
// #130 版本通道:不走 CLI spawn,直接读已安装 package.json(#918 阶段三起读值走总管共用件
|
|
110
|
+
// installedVersionOf);永不抛,失败侧 unknown+warn。
|
|
163
111
|
// 经现有 connection.rpc.call 模式(同 READ 端点)透传,index.ts 无需改动。
|
|
164
112
|
if (key === VERSION_READ_KEY)
|
|
165
113
|
return readInstalledVersions();
|
package/dist/bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|