dsh-chef 0.2.0 → 0.3.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG/E,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC;AAC/B,MAAM,CAAC,MAAM,MAAM,GAAsB,CAAC,QAAQ,CAAC,CAAC;AAQpD,MAAM,UAAU,KAAK,CAAC,GAAiB;IACrC,MAAM,YAAY,GAAY,GAAG,EAAE,MAAM,CAAC;IAC1C,MAAM,MAAM,GACV,CAAC,OAAO,YAAY,KAAK,UAAU;QACjC,CAAC,CAAE,YAA8C,CAAC,IAAI,CAAC;QACvD,CAAC,CAAE,YAA8C,CAAC,IAAI,OAAO,CAAC;IAClE,IAAI,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAE,KAAe,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAAE,MAAM,KAAK,CAAC;QAC5F,MAAM,CAAC,IAAI,EAAE,CAAC,4BAA4B,GAAG,aAAa,GAAG,mDAAmD,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtJ,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvM,8DAA8D;AAC9D,+EAA+E;AAC/E,8CAA8C;AAC9C,mGAAmG;AACnG,iEAAiE;AACjE,EAAE;AACF,4FAA4F;AAC5F,+DAA+D;AAC/D,0DAA0D;AAC1D,8DAA8D;AAC9D,6EAA6E;AAC7E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,50 @@
1
- /** dsh-chef 设置页(P10 脚手架:设置页住单品包)。
1
+ /** dsh-chef 设置页元数据(#696:从只读脚手架换成真配置页)。
2
2
  *
3
- * 一次 registerTab,两处呈现:边栏 + 号菜单多一项,DSH 设置页侧边卡片
4
- * 分区自动多一张小卡片(注册表驱动、无硬编码,开关缺省启用)。
5
- * 本文件只声明本单品自己的设置行;总管不声明设置(见 boundaries 断言)。
3
+ * 本文件是**设置页的行表**:一个可配置项一行,写清它在配置文件里的键、中文标题、
4
+ * 分级(常用 / 高级)、控件种类与人话指引。它是页面渲染的唯一依据。
5
+ *
6
+ * **本文件必须零 node 依赖**:`tsconfig.client.json` 把它收进 client 侧编译,
7
+ * 浏览器产物不许带 node 内建。默认值不住这里,也不从技能包 import——
8
+ * 取值一律由宿主经技能 CLI 的 `chef.config.read` 端点现取(见 bridge.ts)。
9
+ *
10
+ * 口径:
11
+ * · 配置表形状(键与默认值)的**唯一定义地**是技能侧 `packages/skill-chef/src/config.ts`
12
+ * 的 `CHEF_CONFIG_DEFAULTS`(本文件是它在页面上的投影,逐键对齐由
13
+ * `test/config-surface-696.test.mjs` 锁死);
14
+ * · **空串=按默认落点**(老落点由技能各取用处算),所以「空」不是「没配」,
15
+ * 而是「还走改造前那个位置」,老数据不会看起来丢了——行文案按这个语义写。
16
+ *
17
+ * 清单出处:「六家技能的路径类配置全量调查」大厨 5 项去掉 1 项包内固定(包内页面模板目录)
18
+ * =**上设置页候选 4 项**;其中「产物文件名主体」在源码里是两个值(HELP/速查表),故行数为 5。
6
19
  */
7
20
  export declare const SETTINGS_OWNER: "dsh-chef";
8
21
  export declare const SETTINGS_SLOT: "ilife:chef";
9
- export interface SettingRow {
22
+ /** 配置文件主体名:落点 `~/.ilife/chef.yaml`(`ILIFE_CONFIG_DIR` 可整体接管)。 */
23
+ export declare const CONFIG_STEM: "chef";
24
+ /** 分级:常用项直接画在页面上,其余进默认收起的「高级」组(#675 冻结口径)。 */
25
+ export type ConfigTier = 'common' | 'advanced';
26
+ /** 控件种类:只有这四种(前三种与受限 YAML 子集的字符串/数字/布尔一一对应,没有数组;
27
+ * `directory` 是**字符串那一档的页面形态**——取值仍是串,只是多一个唤起系统文件夹选择器的入口,见 #736)。 */
28
+ export type ConfigControl = 'text' | 'number' | 'switch' | 'directory';
29
+ export interface ConfigItem {
30
+ /** 配置文件里的键路径,一层嵌套用 `.` 连接,例 `files.help`。 */
10
31
  readonly key: string;
32
+ /** 页面上那一行的中文标题。 */
11
33
  readonly title: string;
12
- readonly control: 'switch' | 'text' | 'number';
34
+ readonly tier: ConfigTier;
35
+ readonly control: ConfigControl;
36
+ /** 一行人话:这一项管什么、留空会怎样。 */
37
+ readonly hint: string;
13
38
  }
14
- /** 脚手架期唯一设置行:总开关(缺省启用,与官方关闭语义对齐)。 */
15
- export declare const SETTING_ROWS: readonly SettingRow[];
39
+ /** 设置页的行表,顺序即页面顺序。 */
40
+ export declare const CONFIG_ITEMS: readonly ConfigItem[];
41
+ /** 常用项行数(页面上直接画出来的那些)。 */
42
+ export declare const COMMON_ITEM_COUNT: number;
43
+ /** 高级组标题与副文案。 */
44
+ export declare const ADVANCED_GROUP_TITLE: "\u9AD8\u7EA7";
45
+ export declare const ADVANCED_GROUP_NOTE: "\u4E0D\u5E38\u6539\u3002\u7559\u7A7A\uFF1D\u6309\u9ED8\u8BA4\u843D\u70B9\uFF08\u6539\u9020\u524D\u90A3\u4E2A\u4F4D\u7F6E\uFF09\uFF0C\u4E0D\u786E\u5B9A\u5C31\u522B\u52A8\u3002";
46
+ /** 按 `a.b` 路径从配置取值里读(缺层或类型不符一律回 undefined)。 */
47
+ export declare function readPath(values: Record<string, unknown>, key: string): unknown;
48
+ /** 按 `a.b` 路径把值写进配置取值(中间层缺就建一层空组;已存在非组即覆盖成组)。 */
49
+ export declare function writePath(values: Record<string, unknown>, key: string, value: unknown): void;
16
50
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAG,UAAmB,CAAC;AAClD,eAAO,MAAM,aAAa,EAAG,YAAqB,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CAChD;AAED,qCAAqC;AACrC,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAE7C,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc,EAAG,UAAmB,CAAC;AAClD,eAAO,MAAM,aAAa,EAAG,YAAqB,CAAC;AAEnD,iEAAiE;AACjE,eAAO,MAAM,WAAW,EAAG,MAAe,CAAC;AAE3C,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE/C;qEACqE;AACrE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA6CD,sBAAsB;AACtB,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAA6B,CAAC;AAE5E,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAE/C,iBAAiB;AACjB,eAAO,MAAM,oBAAoB,EAAG,cAAa,CAAC;AAClD,eAAO,MAAM,mBAAmB,EAAG,gLAAwC,CAAC;AAE5E,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ9E;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAU5F"}
package/dist/settings.js CHANGED
@@ -1,13 +1,96 @@
1
- /** dsh-chef 设置页(P10 脚手架:设置页住单品包)。
1
+ /** dsh-chef 设置页元数据(#696:从只读脚手架换成真配置页)。
2
2
  *
3
- * 一次 registerTab,两处呈现:边栏 + 号菜单多一项,DSH 设置页侧边卡片
4
- * 分区自动多一张小卡片(注册表驱动、无硬编码,开关缺省启用)。
5
- * 本文件只声明本单品自己的设置行;总管不声明设置(见 boundaries 断言)。
3
+ * 本文件是**设置页的行表**:一个可配置项一行,写清它在配置文件里的键、中文标题、
4
+ * 分级(常用 / 高级)、控件种类与人话指引。它是页面渲染的唯一依据。
5
+ *
6
+ * **本文件必须零 node 依赖**:`tsconfig.client.json` 把它收进 client 侧编译,
7
+ * 浏览器产物不许带 node 内建。默认值不住这里,也不从技能包 import——
8
+ * 取值一律由宿主经技能 CLI 的 `chef.config.read` 端点现取(见 bridge.ts)。
9
+ *
10
+ * 口径:
11
+ * · 配置表形状(键与默认值)的**唯一定义地**是技能侧 `packages/skill-chef/src/config.ts`
12
+ * 的 `CHEF_CONFIG_DEFAULTS`(本文件是它在页面上的投影,逐键对齐由
13
+ * `test/config-surface-696.test.mjs` 锁死);
14
+ * · **空串=按默认落点**(老落点由技能各取用处算),所以「空」不是「没配」,
15
+ * 而是「还走改造前那个位置」,老数据不会看起来丢了——行文案按这个语义写。
16
+ *
17
+ * 清单出处:「六家技能的路径类配置全量调查」大厨 5 项去掉 1 项包内固定(包内页面模板目录)
18
+ * =**上设置页候选 4 项**;其中「产物文件名主体」在源码里是两个值(HELP/速查表),故行数为 5。
6
19
  */
7
20
  export const SETTINGS_OWNER = 'dsh-chef';
8
21
  export const SETTINGS_SLOT = 'ilife:chef';
9
- /** 脚手架期唯一设置行:总开关(缺省启用,与官方关闭语义对齐)。 */
10
- export const SETTING_ROWS = [
11
- { key: 'enabled', title: '大厨面板启用', control: 'switch' },
22
+ /** 配置文件主体名:落点 `~/.ilife/chef.yaml`(`ILIFE_CONFIG_DIR` 可整体接管)。 */
23
+ export const CONFIG_STEM = 'chef';
24
+ /** 常用项:改了就影响「库与产物落在哪」,放页面上。 */
25
+ const COMMON = [
26
+ {
27
+ key: 'db.dir',
28
+ title: '数据目录',
29
+ tier: 'common',
30
+ control: 'directory',
31
+ hint: '库文件与产物的根目录。留空=按默认落点(配置目录下的 data/),也就是改造前那个位置。',
32
+ },
33
+ {
34
+ key: 'db.name',
35
+ title: '库文件名',
36
+ tier: 'common',
37
+ control: 'text',
38
+ hint: '数据目录下的数据库文件名。改它等于换一个菜谱库,老菜谱留在旧文件里不会跟过来。',
39
+ },
40
+ {
41
+ key: 'html.dir',
42
+ title: 'HTML 产物目录名',
43
+ tier: 'common',
44
+ control: 'text',
45
+ hint: '数据目录下放交付页面的子目录名,可带一层:默认两段 cook_html/help。改它之后新页面落新地方。',
46
+ },
47
+ ];
48
+ /** 高级项:默认收起。改错了多半只是自己撞上麻烦,不确定就别动。 */
49
+ const ADVANCED = [
50
+ {
51
+ key: 'files.help',
52
+ title: '产物文件名主体 · HELP',
53
+ tier: 'advanced',
54
+ control: 'text',
55
+ hint: 'HELP 文件的文件名前缀,后面自动跟时间戳。改它之后旧的 HELP 产物不再被复用。',
56
+ },
57
+ {
58
+ key: 'files.lookup',
59
+ title: '产物文件名主体 · 速查表',
60
+ tier: 'advanced',
61
+ control: 'text',
62
+ hint: '速查表文件的文件名前缀。改它之后新产物落新名字,旧的留在原处。',
63
+ },
12
64
  ];
65
+ /** 设置页的行表,顺序即页面顺序。 */
66
+ export const CONFIG_ITEMS = [...COMMON, ...ADVANCED];
67
+ /** 常用项行数(页面上直接画出来的那些)。 */
68
+ export const COMMON_ITEM_COUNT = COMMON.length;
69
+ /** 高级组标题与副文案。 */
70
+ export const ADVANCED_GROUP_TITLE = '高级';
71
+ export const ADVANCED_GROUP_NOTE = '不常改。留空=按默认落点(改造前那个位置),不确定就别动。';
72
+ /** 按 `a.b` 路径从配置取值里读(缺层或类型不符一律回 undefined)。 */
73
+ export function readPath(values, key) {
74
+ const parts = key.split('.');
75
+ let cur = values;
76
+ for (const part of parts) {
77
+ if (typeof cur !== 'object' || cur === null || Array.isArray(cur))
78
+ return undefined;
79
+ cur = cur[part];
80
+ }
81
+ return cur;
82
+ }
83
+ /** 按 `a.b` 路径把值写进配置取值(中间层缺就建一层空组;已存在非组即覆盖成组)。 */
84
+ export function writePath(values, key, value) {
85
+ const parts = key.split('.');
86
+ let cur = values;
87
+ for (let i = 0; i < parts.length - 1; i++) {
88
+ const part = parts[i];
89
+ const next = cur[part];
90
+ if (typeof next !== 'object' || next === null || Array.isArray(next))
91
+ cur[part] = {};
92
+ cur = cur[part];
93
+ }
94
+ cur[parts[parts.length - 1]] = value;
95
+ }
13
96
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAmB,CAAC;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,YAAqB,CAAC;AAQnD,qCAAqC;AACrC,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;CACvD,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ToolDefinitionMirror } from './dsh-ctx.js';
2
+ /** 模型看到的工具名(DSH 工具名用下划线小写,照 `read_file` 同形)。 */
3
+ export declare const SKILL_TOOL_NAME: "run_chef_command";
4
+ /** 纯函数:给技能包根目录,读它的 `package.json`,回 `bin` 声明的入口绝对路径。 */
5
+ export declare function resolveSkillEntry(packageDir: string, readFile?: (path: string) => string): string;
6
+ interface SpawnOutcome {
7
+ readonly status: number | null;
8
+ readonly stdout: string;
9
+ readonly stderr: string;
10
+ readonly error?: Error;
11
+ }
12
+ /** 可注入的三个边界(默认走真实现):入口解析、宿主运行时、spawn。 */
13
+ export interface SkillToolDeps {
14
+ readonly entry?: () => string;
15
+ readonly execPath?: () => string;
16
+ readonly run?: (bin: string, argv: readonly string[], env: Record<string, string | undefined>) => SpawnOutcome;
17
+ }
18
+ /** 造工具定义(宿主 `ctx.tools.register` 消费;形状与 `defineTool` 产物一致,见 dsh-ctx 出处)。 */
19
+ export declare function createSkillTool(deps?: SkillToolDeps): ToolDefinitionMirror;
20
+ export {};
21
+ //# sourceMappingURL=skill-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-tool.d.ts","sourceRoot":"","sources":["../src/skill-tool.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,gDAAgD;AAChD,eAAO,MAAM,eAAe,EAAG,kBAA2B,CAAC;AAoB3D,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuC,GAAG,MAAM,CAWjI;AAeD,UAAU,YAAY;IAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE;AAEnI,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,YAAY,CAAC;CAChH;AAOD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,GAAE,aAAkB,GAAG,oBAAoB,CAqC9E"}
@@ -0,0 +1,109 @@
1
+ /** 私家大厨技能的 agent 调用通道(#734 路线①):把「宿主进程里跑技能唯一出口」这点开给模型。
2
+ *
3
+ * 为什么需要(`docs/agents/技能调用契约.md` §二):DSH 会话 PATH 上只有宿主自己的
4
+ * `dsh`/`pnpm` 两条命令,纯 DSH 机器上会话里连 `node` 都没有 ⇒ 技能说明面里那句
5
+ * 「跑 chef-cmd-read」在 DSH 里结构性不可解析。本工具**不经会话 shell、不读 PATH**:
6
+ * 在宿主进程里用宿主自带运行时(`resolveNodeBin`,Electron 宿主=该二进制加
7
+ * `ELECTRON_RUN_AS_NODE=1`)spawn 技能唯一出口,把 envelope 原样交给模型。
8
+ *
9
+ * 入口按技能包 `package.json` 的 `bin` 声明解析,不写字面路径(契约 §四):今天=
10
+ * `node_modules/skill-chef/dist/cli/cmd_read.js`;目录若搬动,这里不用改。
11
+ */
12
+ import { spawnSync } from 'node:child_process';
13
+ import { readFileSync } from 'node:fs';
14
+ import { dirname, join } from 'node:path';
15
+ import { createRequire } from 'node:module';
16
+ import { SKILL_PACKAGE, SPAWN_TIMEOUT_MS, SkillBridgeError, assertCliPresent, resolveNodeBin } from './bridge.js';
17
+ /** 模型看到的工具名(DSH 工具名用下划线小写,照 `read_file` 同形)。 */
18
+ export const SKILL_TOOL_NAME = 'run_chef_command';
19
+ const TOOL_DESCRIPTION = '运行私家大厨技能的唯一出口(argv+JSON+exit),返回 envelope JSON。'
20
+ + '写完/看完私家大厨数据的唯一途径;不经 shell、不依赖 PATH。'
21
+ + 'key 例:chef.help.lookup(私家大厨HELP)、chef.recipe.view(看菜谱)。';
22
+ /** 技能包 `package.json` 的 `bin` 声明里,唯一出口那一条的名字后缀。 */
23
+ const EXIT_BIN_SUFFIX = '-cmd-read';
24
+ /** 从 `bin` 声明里挑唯一出口:优先名字以 `-cmd-read` 结尾那条,其次只有一条时用它。 */
25
+ function pickExitBin(bin) {
26
+ if (typeof bin === 'string')
27
+ return bin;
28
+ if (bin === null || typeof bin !== 'object')
29
+ return undefined;
30
+ const entries = Object.entries(bin).filter(([, v]) => typeof v === 'string');
31
+ const named = entries.find(([name]) => name.endsWith(EXIT_BIN_SUFFIX));
32
+ if (named)
33
+ return named[1];
34
+ return entries.length === 1 ? entries[0][1] : undefined;
35
+ }
36
+ /** 纯函数:给技能包根目录,读它的 `package.json`,回 `bin` 声明的入口绝对路径。 */
37
+ export function resolveSkillEntry(packageDir, readFile = (p) => readFileSync(p, 'utf8')) {
38
+ const manifestPath = join(packageDir, 'package.json');
39
+ let manifest;
40
+ try {
41
+ manifest = JSON.parse(readFile(manifestPath));
42
+ }
43
+ catch (cause) {
44
+ throw new SkillBridgeError('missing-cli', '技能包清单读不了:' + manifestPath + '(' + String(cause?.message ?? cause) + ')');
45
+ }
46
+ const entry = pickExitBin(manifest?.bin);
47
+ if (!entry)
48
+ throw new SkillBridgeError('missing-cli', '技能包清单没声明唯一出口(bin):' + manifestPath);
49
+ return join(packageDir, entry);
50
+ }
51
+ /** 默认入口解析:按包名定位已装的技能包(与桥同一处包名定义),再按 `bin` 取入口。 */
52
+ function entryFromInstalledPackage() {
53
+ let packageDir;
54
+ try {
55
+ packageDir = dirname(createRequire(import.meta.url).resolve(SKILL_PACKAGE + '/package.json'));
56
+ }
57
+ catch (cause) {
58
+ throw new SkillBridgeError('missing-cli', '技能包 ' + SKILL_PACKAGE + ' 没装进来:' + String(cause?.message ?? cause));
59
+ }
60
+ const entry = resolveSkillEntry(packageDir);
61
+ assertCliPresent(entry);
62
+ return entry;
63
+ }
64
+ function defaultRun(bin, argv, env) {
65
+ const r = spawnSync(bin, [...argv], { encoding: 'utf8', timeout: SPAWN_TIMEOUT_MS, env, windowsHide: true });
66
+ return { status: r.status, stdout: r.stdout ?? '', stderr: r.stderr ?? '', ...(r.error ? { error: r.error } : {}) };
67
+ }
68
+ /** 造工具定义(宿主 `ctx.tools.register` 消费;形状与 `defineTool` 产物一致,见 dsh-ctx 出处)。 */
69
+ export function createSkillTool(deps = {}) {
70
+ const entryOf = deps.entry ?? entryFromInstalledPackage;
71
+ const execPathOf = deps.execPath ?? (() => process.execPath);
72
+ const run = deps.run ?? defaultRun;
73
+ return {
74
+ name: SKILL_TOOL_NAME,
75
+ description: TOOL_DESCRIPTION,
76
+ parameters: {
77
+ type: 'object',
78
+ properties: {
79
+ key: { type: 'string', description: '命令(chef.* 键),例如 chef.help.lookup' },
80
+ params: { type: 'object', description: '可选参数对象,原样交技能出口(--params JSON)' },
81
+ },
82
+ required: ['key'],
83
+ },
84
+ output: {
85
+ schema: { type: 'string' },
86
+ render: (_args, value) => [{ type: 'text', text: value }],
87
+ },
88
+ async execute(args) {
89
+ const key = args?.key;
90
+ if (typeof key !== 'string' || key.trim().length === 0) {
91
+ throw new Error('缺 key:要跑哪条私家大厨命令(例如 chef.help.lookup)');
92
+ }
93
+ const entry = entryOf();
94
+ const { bin, extraEnv } = resolveNodeBin(execPathOf());
95
+ const outcome = run(bin, [entry, key, '--params', JSON.stringify(args?.params ?? {})], { ...process.env, ...extraEnv });
96
+ const stdout = outcome.stdout.trim();
97
+ if (outcome.error)
98
+ throw new Error('技能出口起不来:' + String(outcome.error.message) + '(' + entry + ')');
99
+ if (outcome.status !== 0) {
100
+ // 技能契约:非 0 走 stderr,stdout 只承载 envelope;两路都交回,模型据此改用别的命令或报给人看。
101
+ throw new Error('技能出口 exit=' + String(outcome.status) + ':' + (outcome.stderr.trim() || stdout || '(无输出)'));
102
+ }
103
+ if (stdout.length === 0)
104
+ throw new Error('技能出口没给 envelope(stdout 空):' + entry);
105
+ return stdout;
106
+ },
107
+ };
108
+ }
109
+ //# sourceMappingURL=skill-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-tool.js","sourceRoot":"","sources":["../src/skill-tool.ts"],"names":[],"mappings":"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"}
package/dist/slot.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  export declare const SKILL: "chef";
9
9
  export declare const SLOT_ID: "ilife:chef";
10
10
  export declare const SLOT_ORDER: 90;
11
- export declare const SLOT_TITLE: "\u5927\u53A8";
11
+ export declare const SLOT_TITLE: "\u79C1\u5BB6\u5927\u53A8";
12
12
  export declare const PLUGIN: "dsh-chef";
13
13
  export declare const MANAGER_PLUGIN: "dsh-life-pack";
14
14
  export interface SlotDescriptor {
@@ -1 +1 @@
1
- {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../src/slot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,KAAK,EAAG,MAAe,CAAC;AACrC,eAAO,MAAM,OAAO,EAAG,YAAqB,CAAC;AAC7C,eAAO,MAAM,UAAU,EAAG,EAAW,CAAC;AACtC,eAAO,MAAM,UAAU,EAAG,cAAa,CAAC;AACxC,eAAO,MAAM,MAAM,EAAG,UAAmB,CAAC;AAC1C,eAAO,MAAM,cAAc,EAAG,eAAwB,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,IAAI,cAAc,CAE/C;AAED,gCAAgC;AAChC,eAAO,MAAM,aAAa;;;CAAiD,CAAC;AAE5E,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,OAAO,CAAC;IACnB,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,IAAI,CAAC;IAC/J,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChH;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAGlE;AAED,gCAAgC;AAChC,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAGnE"}
1
+ {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../src/slot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,KAAK,EAAG,MAAe,CAAC;AACrC,eAAO,MAAM,OAAO,EAAG,YAAqB,CAAC;AAC7C,eAAO,MAAM,UAAU,EAAG,EAAW,CAAC;AACtC,eAAO,MAAM,UAAU,EAAG,0BAAe,CAAC;AAC1C,eAAO,MAAM,MAAM,EAAG,UAAmB,CAAC;AAC1C,eAAO,MAAM,cAAc,EAAG,eAAwB,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,IAAI,cAAc,CAE/C;AAED,gCAAgC;AAChC,eAAO,MAAM,aAAa;;;CAAiD,CAAC;AAE5E,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,OAAO,CAAC;IACnB,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,IAAI,CAAC;IAC/J,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChH;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAGlE;AAED,gCAAgC;AAChC,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAGnE"}
package/dist/slot.js CHANGED
@@ -8,7 +8,7 @@
8
8
  export const SKILL = 'chef';
9
9
  export const SLOT_ID = 'ilife:chef';
10
10
  export const SLOT_ORDER = 90;
11
- export const SLOT_TITLE = '大厨';
11
+ export const SLOT_TITLE = '私家大厨';
12
12
  export const PLUGIN = 'dsh-chef';
13
13
  export const MANAGER_PLUGIN = 'dsh-life-pack';
14
14
  export function slotDescriptor() {
package/dist/slot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slot.js","sourceRoot":"","sources":["../src/slot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAe,CAAC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,YAAqB,CAAC;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG,EAAW,CAAC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAa,CAAC;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,UAAmB,CAAC;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,eAAwB,CAAC;AAUvD,MAAM,UAAU,cAAc;IAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAW,CAAC;AAQ5E,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AACzH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,SAAkB;IAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"slot.js","sourceRoot":"","sources":["../src/slot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAe,CAAC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,YAAqB,CAAC;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG,EAAW,CAAC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAe,CAAC;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAmB,CAAC;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,eAAwB,CAAC;AAUvD,MAAM,UAAU,cAAc;IAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAW,CAAC;AAQ5E,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AACzH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,SAAkB;IAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACxF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-chef",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "爱生活单品插件 P10 脚手架:大厨(ilife:chef order 90),硬依赖总管 dsh-life-pack",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,8 +25,8 @@
25
25
  "node": ">=22.13"
26
26
  },
27
27
  "dependencies": {
28
- "dsh-life-pack": "^0.2.0",
29
- "skill-chef": "0.2.0"
28
+ "dsh-life-pack": "^0.3.0",
29
+ "skill-chef": "0.2.1"
30
30
  },
31
31
  "dsh": {
32
32
  "bundle": {
@@ -34,7 +34,10 @@
34
34
  },
35
35
  "client": {
36
36
  "platform": "web",
37
- "inject": []
37
+ "inject": [
38
+ "@deepseek-ai/dsh-client-ui-slots",
39
+ "@deepseek-ai/dsh-client-connection"
40
+ ]
38
41
  }
39
42
  },
40
43
  "scripts": {
@@ -45,6 +48,8 @@
45
48
  "test": "node --test test/smoke.test.mjs"
46
49
  },
47
50
  "devDependencies": {
51
+ "@types/react": "19.2.18",
52
+ "react": "19.2.8",
48
53
  "tsdown": "0.22.14"
49
54
  }
50
55
  }