skill-chef 0.1.0 → 0.2.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/SKILL.md +108 -0
- package/dist/cli/cmd_read.js +61 -12
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/help/helpFile.d.ts +78 -0
- package/dist/help/helpFile.d.ts.map +1 -0
- package/dist/help/helpFile.js +216 -0
- package/dist/help/helpFile.js.map +1 -0
- package/dist/help/index.d.ts +4 -0
- package/dist/help/index.d.ts.map +1 -1
- package/dist/help/index.js +4 -0
- package/dist/help/index.js.map +1 -1
- package/dist/help/manifest.d.ts +23 -0
- package/dist/help/manifest.d.ts.map +1 -0
- package/dist/help/manifest.js +23 -0
- package/dist/help/manifest.js.map +1 -0
- package/dist/help/output.d.ts +17 -0
- package/dist/help/output.d.ts.map +1 -0
- package/dist/help/output.js +54 -0
- package/dist/help/output.js.map +1 -0
- package/dist/help/sceneData.d.ts +41 -0
- package/dist/help/sceneData.d.ts.map +1 -0
- package/dist/help/sceneData.js +182 -0
- package/dist/help/sceneData.js.map +1 -0
- package/package.json +7 -4
package/SKILL.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-chef
|
|
3
|
+
description: "「私家大厨HELP」→chef.help.lookup 落一份 HELP 文件并回执绝对路径;唯一出口 chef-cmd-read(本地菜谱:搜菜/查看/加菜、跟着做、买菜清单合并、做菜记录与历史、体检排序)。触发词:私家大厨HELP、菜谱HELP、查帮助、能做什么、查看食谱、查看食材、查看步骤、查看营养、查看背景、看菜谱、看菜、查看全部、搜索食谱、搜菜、查食材、筛选菜系、筛选食材、筛选口味、筛选季节、录入食谱、修改食谱、废弃食谱、加菜、做菜模式、开始做菜、继续做菜、完成做菜、生成清单、排除可选、查清单、清空清单、记录做菜、补录做菜、改评分、查看历史、查看统计、体检"
|
|
4
|
+
---
|
|
5
|
+
# 私家大厨(chef)SKILL
|
|
6
|
+
|
|
7
|
+
本地菜谱:搜菜/查看/加菜、跟着做(烹饪步骤)、买菜清单合并、做菜记录与历史、体检排序、HELP 交付(落 HTML 文件)。唯一出口 `chef-cmd-read <chef.key>`,argv+JSON(stdout)+exit,非 0 走 stderr。写走 receipt(直通即真相)。
|
|
8
|
+
|
|
9
|
+
## 快速开始
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
chef-cmd-read chef.help.lookup # 缺省=落 HELP 文件:stdout 的 delivery.path 就是它
|
|
13
|
+
chef-cmd-read chef.help.lookup --params '{"mode":"lookup"}' # 落速查表文件(与 HELP 分名)
|
|
14
|
+
chef-cmd-read chef.help.lookup --params '{"q":"搜菜"}' # 现找:只回命中,不落盘
|
|
15
|
+
chef-cmd-read chef.help.lookup --params '{"reuseHours":0}' # 一定要一份最新的(缺省一天内复用,不新建)
|
|
16
|
+
chef-cmd-read chef.recipe.search --params '{"q":"虾"}'
|
|
17
|
+
chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## HELP 交付(「私家大厨HELP」这条命令交什么)
|
|
21
|
+
|
|
22
|
+
对用户说「私家大厨help」时,**这条命令的缺省行为就是落一份 HELP HTML 文件**,并把绝对路径回执进 stdout:
|
|
23
|
+
|
|
24
|
+
- **缺省**(不给 `q`/`mode`):产物落 `<SKILLS_DB_PATH>/cook_html/help/私家大厨_HELP_<YYYYMMDD_HHMMSS>[_N].html`;
|
|
25
|
+
stdout 顶层多一个 `delivery{mode,path,bytes}`,`path` 恒为**绝对路径** ⇒ **把 `delivery.path` 告诉用户**(他要打开的就是这一份)。
|
|
26
|
+
文件名主体与老技能逐字相同;**同一主体一天内只留一份**——24 小时内再读就复用已有那份(不新建、不改写),已有那份绝不动。
|
|
27
|
+
- **速查表**(`--params '{"mode":"lookup"}'`):落 `私家大厨_速查表_<stamp>.html`(与 HELP 文件**分名**——别让用户按一个名字打开到另一个东西),载荷是 37 条短语;同样吃下面的复用窗口。
|
|
28
|
+
- **现找**(`--params '{"q":"搜菜"}'`):只在 stdout 回命中,**不落盘**(检索式问答不刷目录)。
|
|
29
|
+
- **指定落点**(`--html <路径>`):逐字落到那个路径(覆盖写),回执同样是绝对路径。
|
|
30
|
+
- **复用窗口**(`--params '{"reuseHours":3}'`):3 小时内复用同一份;`{"reuseHours":0}`=**每次都要一份最新的**(缺省窗口就是一天,见上)。窗口内已有一份、而你刚改过 HELP 内容时,旧产物**不会自动刷新**——要新的就带 `reuseHours:0`。
|
|
31
|
+
|
|
32
|
+
**完成判据**:`delivery.path` 指的文件**存在**,且它的大小 = `delivery.bytes`(两处对不上就是没做完,别把回执当完成)。
|
|
33
|
+
|
|
34
|
+
两件容易踩的:
|
|
35
|
+
|
|
36
|
+
- 这条命令**不开库**:跑完不会多出 `chef_data.db`(落文件仍然要求 `SKILLS_DB_PATH` 已设置)。
|
|
37
|
+
- 页面由**通用 help 模板**(`base-paint/help-shell`)渲染,与卡路里/饼干记账/居家管家同款;要动观感就去改模板源再跑它的生成器。
|
|
38
|
+
|
|
39
|
+
失败口径:参数错(`q` 与 `mode` 互斥、`mode` 只认 `lookup`)走 `exit 2`;渲染或落盘失败走 `exit 5`(stderr 是 `ERR 5: …`),失败路径上 stdout 保持干净。
|
|
40
|
+
|
|
41
|
+
**本节不管**(各有归属,别在这里找):页面里的内容(域/组/卡在 `src/help/sceneData.ts` 的内容资产,改内容走 `scripts/gen-help-assets.mjs` 再生成);名字怎么算(时间戳格式与同秒递补的唯一定义地是共用件 `packages/base-render/src/output/saveHtml.ts`);把文件送进面板/侧栏(属 #57 那条线)。
|
|
42
|
+
|
|
43
|
+
## 装出来的那份怎么判新旧
|
|
44
|
+
|
|
45
|
+
`~/.agents/skills/skill-chef` 在本机实测是 **Junction(目录联接)**,指向仓内这个包 ⇒ 它就是同一份文件,改这里立即生效;`Get-Item <路径> -Force | Select-Object LinkType` 一看便知。若某台机器上它是**拷贝**,那才谈新旧:只能比 `SKILL.md` 的哈希(拷贝里那份与仓里这份哈希不同=旧的,重新装机)。
|
|
46
|
+
|
|
47
|
+
## 口径
|
|
48
|
+
|
|
49
|
+
- 难度 5 档:快手菜/简单/中等/困难/大师(validateDifficulty,大小写/空串/未知档一律阻断)。
|
|
50
|
+
- 状态 4 种:未做/已做/熟练/已废弃(validateStatus;废弃= status 置已废弃,只增不删,无物理删除,列表默认过滤已废弃)。
|
|
51
|
+
- 火候 5 档:微火/小火/中火/大火/猛火(validateHeat,步骤 heat_level 必落此表)。
|
|
52
|
+
- 食材 11 类:肉类/海鲜/蛋类/蔬菜/葱姜蒜/香草/调料/豆制品/主食/干货/其他(validateCategory,未知类阻断)。
|
|
53
|
+
- 评分 0-5(含 0/5 端点,允许小数,超界/非数字阻断;history.record 必带 name,rating 可选)。
|
|
54
|
+
- 空查询与空结果阻断不返空:search 空 q 抛 exit 2;查无对条/区间无记录抛 exit 4,不返空数组冒充正常。
|
|
55
|
+
- 筛选维度一期限制(#43 F2):cuisine/season/method/flavor/tag/meal/cookware/maxTime/filter 只读(recipe.search 透传过滤),recipe.write 一期只写主表(name/difficulty/status/servings/total_time_minutes/description/photo/source 系列 + ingredients/steps 内嵌),维度表落库走二期(测试经直连落维度,见 test/cli.test.mjs)。
|
|
56
|
+
- 真实数据禁迁,测试 tmp 隔离(SKILLS_DB_PATH 指向 mkdtemp,见 test/fetch.test.mjs)。
|
|
57
|
+
- 跨技能只复制 prompt 不直调:shopping/recipe 跨技能按钮仅复制 `chef-cmd-read ...` 文本,AI 调目标技能,不直写他库。
|
|
58
|
+
|
|
59
|
+
## 联动速查(构建期注入,勿手改)
|
|
60
|
+
|
|
61
|
+
<!-- HELP-AUTO-START -->
|
|
62
|
+
| 唤醒词 | key | shape | 例 |
|
|
63
|
+
|---|---|---|---|
|
|
64
|
+
| 私家大厨HELP | chef.help.lookup | list | `chef-cmd-read chef.help.lookup` |
|
|
65
|
+
| 菜谱HELP | chef.help.lookup | list | `chef-cmd-read chef.help.lookup` |
|
|
66
|
+
| 查帮助 | chef.help.lookup | list | `chef-cmd-read chef.help.lookup` |
|
|
67
|
+
| 能做什么 | chef.help.lookup | list | `chef-cmd-read chef.help.lookup` |
|
|
68
|
+
| 查看食谱 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
69
|
+
| 查看食材 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
70
|
+
| 查看步骤 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
71
|
+
| 查看营养 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
72
|
+
| 查看背景 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
73
|
+
| 看菜谱 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
74
|
+
| 看菜 | chef.recipe.view | detail | `chef-cmd-read chef.recipe.view --params '{"name":"宫保虾球"}'` |
|
|
75
|
+
| 查看全部 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"kind":"all"}'` |
|
|
76
|
+
| 搜索食谱 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"q":"排骨"}'` |
|
|
77
|
+
| 搜菜 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"q":"排骨"}'` |
|
|
78
|
+
| 查食材 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"q":"排骨"}'` |
|
|
79
|
+
| 筛选菜系 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"filter":"川菜"}'` |
|
|
80
|
+
| 筛选食材 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"filter":"川菜"}'` |
|
|
81
|
+
| 筛选口味 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"filter":"川菜"}'` |
|
|
82
|
+
| 筛选季节 | chef.recipe.search | list | `chef-cmd-read chef.recipe.search --params '{"filter":"川菜"}'` |
|
|
83
|
+
| 录入食谱 | chef.recipe.write | receipt | `chef-cmd-read chef.recipe.write --params '{"op":"add","name":"宫保虾球"}'` |
|
|
84
|
+
| 修改食谱 | chef.recipe.write | receipt | `chef-cmd-read chef.recipe.write --params '{"op":"update","name":"宫保虾球"}'` |
|
|
85
|
+
| 废弃食谱 | chef.recipe.write | receipt | `chef-cmd-read chef.recipe.write --params '{"op":"deprecate","name":"宫保虾球"}'` |
|
|
86
|
+
| 加菜 | chef.recipe.write | receipt | `chef-cmd-read chef.recipe.write --params '{"op":"add","name":"宫保虾球"}'` |
|
|
87
|
+
| 做菜模式 | chef.cooking.run | list | `chef-cmd-read chef.cooking.run --params '{"name":"宫保虾球"}'` |
|
|
88
|
+
| 开始做菜 | chef.cooking.run | list | `chef-cmd-read chef.cooking.run --params '{"name":"宫保虾球"}'` |
|
|
89
|
+
| 继续做菜 | chef.cooking.run | list | `chef-cmd-read chef.cooking.run --params '{"name":"宫保虾球"}'` |
|
|
90
|
+
| 完成做菜 | chef.cooking.run | list | `chef-cmd-read chef.cooking.run --params '{"name":"宫保虾球"}'` |
|
|
91
|
+
| 生成清单 | chef.shopping.query | list | `chef-cmd-read chef.shopping.query --params '{"names":["宫保虾球","鱼香肉丝"]}'` |
|
|
92
|
+
| 排除可选 | chef.shopping.query | list | `chef-cmd-read chef.shopping.query --params '{"names":["宫保虾球","鱼香肉丝"]}'` |
|
|
93
|
+
| 查清单 | chef.shopping.query | list | `chef-cmd-read chef.shopping.query --params '{"names":["宫保虾球","鱼香肉丝"]}'` |
|
|
94
|
+
| 清空清单 | chef.shopping.query | list | `chef-cmd-read chef.shopping.query --params '{"names":["宫保虾球","鱼香肉丝"]}'` |
|
|
95
|
+
| 记录做菜 | chef.history.record | receipt | `chef-cmd-read chef.history.record --params '{"name":"宫保虾球"}'` |
|
|
96
|
+
| 补录做菜 | chef.history.record | receipt | `chef-cmd-read chef.history.record --params '{"name":"宫保虾球"}'` |
|
|
97
|
+
| 改评分 | chef.history.record | receipt | `chef-cmd-read chef.history.record --params '{"name":"宫保虾球"}'` |
|
|
98
|
+
| 查看历史 | chef.history.query | list | `chef-cmd-read chef.history.query --params '{"name":"宫保虾球"}'` |
|
|
99
|
+
| 查看统计 | chef.history.query | list | `chef-cmd-read chef.history.query --params '{"kind":"stats"}'` |
|
|
100
|
+
| 体检 | chef.history.query | list | `chef-cmd-read chef.history.query --params '{"kind":"quality"}'` |
|
|
101
|
+
|
|
102
|
+
相关场景:chef.cooking.run、chef.help.lookup、chef.history.query、chef.history.record、chef.recipe.search、chef.recipe.view、chef.recipe.write、chef.shopping.query(8 联动,key 字符串后续票落表时冻结)。
|
|
103
|
+
<!-- HELP-AUTO-END -->
|
|
104
|
+
|
|
105
|
+
## 环境与出 scope
|
|
106
|
+
|
|
107
|
+
- SKILLS_DB_PATH(必设,无默认值)+ CHEF_FORCE_PROD 哨兵(非 tmp 写库须 opt-in),见 docs/env.md。
|
|
108
|
+
- 出 scope:定时任务(老家零定时代码,外部定时以外置为准)、面板(二期单 MAP)、combos.yaml 一律不碰(走后续票;shopping/recipe 跨技能仅复制 prompt);真实数据禁迁,测试 tmp 隔离;Python 老家只读对照(D:/2Study/StudyNotes/SKILLS/私家大厨)。
|
package/dist/cli/cmd_read.js
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
// 取数(fetch/db.ts 已落盘,以其签名为准):openChefDb/closeChefDb/listRecipes/filterRecipes/searchRecipes/getRecipeDetail/addRecipe/updateRecipe/addIngredient(h,recipeId,input)/addStep(h,recipeId,input)/deprecateRecipe/recordHistory/queryHistory(h,recipeId?)/historyStats/buildShoppingList/healthCheck。
|
|
6
6
|
// 口径:policy WriteOp(add/update/deprecate)+ RecipeOp(add/update/discard/add-ingredient/add-step,CLI 兼容 discard=deprecate);queryHistory 无参返全量;buildShoppingList 合并行含 optional/category 标记。
|
|
7
7
|
import { writeFileSync } from 'node:fs';
|
|
8
|
+
import { join, resolve } from 'node:path';
|
|
8
9
|
import { ChefFetchError, ChefPolicyError, openChefDb, closeChefDb, listRecipes, filterRecipes, searchRecipes, getRecipeDetail, addRecipe, updateRecipe, deprecateRecipe, addIngredient, addStep, recordHistory, queryHistory, historyStats, buildShoppingList, healthCheck, } from '../fetch/index.js';
|
|
9
|
-
import { resolveDbPath } from '../fetch/paths.js';
|
|
10
|
+
import { resolveDbPath, resolveDbDir, DB_FILENAME } from '../fetch/paths.js';
|
|
10
11
|
import { needName, needNames, validateCategory, validateRating } from '../policy/index.js';
|
|
11
|
-
import { chefShapeFor, buildChefEnvelope, renderEnvelopeHtml, assertHtmlSize, toRecipeItem, recipeDetail, buildRecipeSearch, buildRecipeReceipt, buildCookingRun, buildShopping, buildHistoryRecord, buildHistoryQuery, toHistoryItem, buildHelpItems, ChefRenderError, } from '../render/index.js';
|
|
12
|
-
import { buildHelpLookup } from '../help/index.js';
|
|
12
|
+
import { chefShapeFor, buildChefEnvelope, renderEnvelopeHtml, assertHtmlSize, toRecipeItem, recipeDetail, buildRecipeSearch, buildRecipeReceipt, buildCookingRun, buildShopping, buildHistoryRecord, buildHistoryQuery, toHistoryItem, buildHelpItems, fillTemplate, loadTemplate, templateFor, ChefRenderError, } from '../render/index.js';
|
|
13
|
+
import { buildHelpLookup, buildChefHelpDelivery, buildChefLookupLanding, deliverChefHelp, } from '../help/index.js';
|
|
14
|
+
import { helpReuseWindowOf } from 'base-paint/save-html';
|
|
13
15
|
const DEFAULT_TIMEOUT_MS = 30000;
|
|
14
16
|
// #43 F2 一期限制:FILTER 维度只读(recipe.search 透传过滤),recipe.write 一期只写主表,维度表落库走二期。
|
|
15
17
|
const FILTER_KEYS = ['cuisine', 'season', 'method', 'flavor', 'tag', 'meal', 'cookware', 'difficulty', 'status', 'maxTime', 'filter'];
|
|
@@ -76,6 +78,33 @@ function pickNum(params, key) {
|
|
|
76
78
|
return Number(v.trim());
|
|
77
79
|
return undefined;
|
|
78
80
|
}
|
|
81
|
+
/** HELP 产物吃的复用窗口(毫秒):缺省**一天**、`reuseHours` 可改(`0`=每次都落新的)。
|
|
82
|
+
* 换算与坏参判定都在共用件(`helpReuseWindowOf` 把坏参 `RangeError` 交给这里给的处理器)⇒ 归到出口的
|
|
83
|
+
* 「参数错」那一档(exit 2),与其余四家同档:坏参绝不静默当 0。 */
|
|
84
|
+
const helpWindowOrFail = helpReuseWindowOf((m) => fail(2, m));
|
|
85
|
+
function dispatchHelp(params) {
|
|
86
|
+
const dbPath = join(resolve(resolveDbDir()), DB_FILENAME);
|
|
87
|
+
const mode = params.mode === undefined ? undefined : String(params.mode);
|
|
88
|
+
const q = params.q === undefined ? undefined : String(params.q);
|
|
89
|
+
if (mode !== undefined && q !== undefined)
|
|
90
|
+
fail(2, '参数 q 与 mode 互斥:q=现找,mode=速查表产物');
|
|
91
|
+
if (mode !== undefined && mode !== 'lookup')
|
|
92
|
+
fail(2, 'mode 非法(' + String(mode) + '):本键只认 lookup');
|
|
93
|
+
const reuseMs = helpWindowOrFail(params);
|
|
94
|
+
if (q !== undefined)
|
|
95
|
+
return { data: { ...buildHelpItems(buildHelpLookup(), q), mode: 'lookup', query: q } };
|
|
96
|
+
if (mode === 'lookup') {
|
|
97
|
+
return {
|
|
98
|
+
data: { ...buildHelpItems(buildHelpLookup(), undefined), mode: 'lookup' },
|
|
99
|
+
deliver: { target: buildChefLookupLanding(dbPath), reuseMs },
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const { html, target, index } = buildChefHelpDelivery(dbPath, new Date());
|
|
103
|
+
return {
|
|
104
|
+
data: { ...index, mode: 'file', bytes: Buffer.byteLength(html, 'utf8') },
|
|
105
|
+
deliver: { html, target, reuseMs },
|
|
106
|
+
};
|
|
107
|
+
}
|
|
79
108
|
// 八键分发:读走 fetch 读,写走 fetch 写+口径校验;未知键上游已拦,此处再拦一道。
|
|
80
109
|
function dispatch(key, params) {
|
|
81
110
|
const dbPath = resolveDbPath();
|
|
@@ -338,11 +367,10 @@ function dispatch(key, params) {
|
|
|
338
367
|
fail(2, 'history.query 只接受 kind=timeline/stats/quality/backup');
|
|
339
368
|
return null;
|
|
340
369
|
}
|
|
341
|
-
case 'chef.help.lookup':
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
return
|
|
345
|
-
}
|
|
370
|
+
case 'chef.help.lookup':
|
|
371
|
+
// #215:本键由 `dispatchHelp` 在**开库之前**处理(只读页不建库);走到这里说明 main 的路由被改坏了。
|
|
372
|
+
fail(1, '内部错误:chef.help.lookup 须走 dispatchHelp(开库之前)');
|
|
373
|
+
return null;
|
|
346
374
|
default:
|
|
347
375
|
fail(3, '未知 chef key:' + key);
|
|
348
376
|
return null;
|
|
@@ -400,10 +428,23 @@ async function main() {
|
|
|
400
428
|
const timer = setTimeout(() => { toast('cmd_read 超时 terminate(' + o.timeout + 'ms),已终止取数'); process.exit(4); }, o.timeout);
|
|
401
429
|
timer.unref();
|
|
402
430
|
let env = null;
|
|
431
|
+
let delivery;
|
|
403
432
|
try {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
433
|
+
// #215:HELP 在开库之前分派(只读页不建库);其余七键照旧走 dispatch(内部开库)。
|
|
434
|
+
const help = o.key === 'chef.help.lookup' ? dispatchHelp(params) : null;
|
|
435
|
+
env = buildChefEnvelope(o.key, help ? help.data : dispatch(o.key, params));
|
|
436
|
+
if (help?.deliver !== undefined) {
|
|
437
|
+
// 本键的产物:缺省=HELP 全页(自带 html);`mode:"lookup"`=速查表页(由信封走本技能模板渲染)。
|
|
438
|
+
const html = help.deliver.html ?? fillTemplate(loadTemplate(templateFor(o.key)), renderEnvelopeHtml(env));
|
|
439
|
+
assertHtmlSize(html);
|
|
440
|
+
delivery = deliverChefHelp({
|
|
441
|
+
explicit: o.html,
|
|
442
|
+
target: help.deliver.target,
|
|
443
|
+
html,
|
|
444
|
+
...(help.deliver.reuseMs === undefined ? {} : { reuseMs: help.deliver.reuseMs }),
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
else if (o.html) {
|
|
407
448
|
const html = renderEnvelopeHtml(env);
|
|
408
449
|
assertHtmlSize(html);
|
|
409
450
|
try {
|
|
@@ -421,14 +462,22 @@ async function main() {
|
|
|
421
462
|
fail(2, '口径失败:' + e.message);
|
|
422
463
|
if (e instanceof ChefRenderError)
|
|
423
464
|
fail(5, '渲染失败:' + e.message);
|
|
465
|
+
// 落盘失败:共用件 `saveHtmlFile` 的 code(`EEXIST`/`EINVAL`/`EIO`)原样穿过,落到 exit 5。
|
|
466
|
+
if (/^E[A-Z]+$/.test(String(e?.code)))
|
|
467
|
+
fail(5, '落盘失败:' + (e.message || String(e)));
|
|
424
468
|
if (e.message?.includes('SKILLS_DB_PATH'))
|
|
425
469
|
fail(1, e.message);
|
|
470
|
+
// #215:help 支一步取数都没有(只渲染 + 落盘),未知错只可能出在渲染(共享模板抛的普通 Error
|
|
471
|
+
// 没有 code)或落盘 ⇒ 归 exit 5,不落到「未知失败 4」。其余七键保持原样(取数面宽,无法这样归类)。
|
|
472
|
+
if (o.key === 'chef.help.lookup')
|
|
473
|
+
fail(5, '渲染/落盘失败:' + (e.message || String(e)));
|
|
426
474
|
fail(4, '未知失败:' + (e.message || String(e)));
|
|
427
475
|
}
|
|
428
476
|
finally {
|
|
429
477
|
clearTimeout(timer);
|
|
430
478
|
}
|
|
431
|
-
|
|
479
|
+
// #83 口径的顶层追加:`delivery{mode,path,bytes}` 只追加,既有五字段一字不改、序不变。
|
|
480
|
+
process.stdout.write(JSON.stringify(delivery ? { ...env, delivery } : env) + '\n');
|
|
432
481
|
}
|
|
433
482
|
await main();
|
|
434
483
|
//# sourceMappingURL=cmd_read.js.map
|
package/dist/cli/cmd_read.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd_read.js","sourceRoot":"","sources":["../../src/cli/cmd_read.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmd_read.js","sourceRoot":"","sources":["../../src/cli/cmd_read.ts"],"names":[],"mappings":";AACA,iFAAiF;AACjF,uEAAuE;AACvE,qDAAqD;AACrD,iSAAiS;AACjS,yLAAyL;AACzL,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAC1D,SAAS,EAAE,YAAY,EAAE,eAAe,EACxC,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,YAAY,EAAE,YAAY,EACzC,iBAAiB,EAAE,WAAW,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EACL,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EACnE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EACjE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EACrE,aAAa,EAAE,cAAc,EAC7B,YAAY,EAAE,YAAY,EAAE,WAAW,EACvC,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,GAChF,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,4EAA4E;AAC5E,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAE/I,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW,IAAW,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClH,SAAS,KAAK,CAAC,GAAW,IAAU,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,SAAS,IAAI,CAAC,GAAW,IAAU,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAEnE,SAAS,SAAS;IAChB,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnG,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACrC,IAAI,CAAC,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAC/C,OAAO,CAAW,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B;IACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAE,MAAM,CAAC,QAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC7G,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAK,CAAY,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC1E,OAAO,CAAW,CAAC;AACrB,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,MAA+B;IACtD,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,cAAc,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;AACzE,CAAC;AAED,8GAA8G;AAC9G,SAAS,kBAAkB,CAAC,MAA+B;IACzD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,gBAAgB,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IACzI,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,uDAAuD,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9H,CAAC;AAED,mDAAmD;AACnD,SAAS,eAAe,CAAC,MAAc,EAAE,MAA+B;IACtE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7F,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,gCAAgC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,OAAO,CAAC,MAA+B,EAAE,GAAW;IAC3D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO,CAAC,MAA+B,EAAE,GAAW;IAC3D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3G,OAAO,SAAS,CAAC;AACnB,CAAC;AAoBD;;0CAE0C;AAC1C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9D,SAAS,YAAY,CAAC,MAA+B;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,IAAI,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IACrF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;QAAE,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;IAC5G,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzE,OAAO,EAAE,EAAE,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE;SAC7D,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1E,OAAO;QACL,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;QACxE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAS,QAAQ,CAAC,GAAW,EAAE,MAA+B;IAC5D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAW,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,WAAW;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;QACrD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,OAAO,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,IAAI,IAAiB,CAAC;gBACtB,IAAI,IAAY,CAAC;gBACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBACtC,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACvC,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACjC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBAC3B,IAAI,GAAG,KAAK,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBACvF,IAAI,CAAC,OAAO,CAAC,MAAM;wBAAE,IAAI,CAAC,CAAC,EAAE,6GAA6G,CAAC,CAAC;oBAC5I,MAAM,CAAC,GAA4B,EAAE,CAAC;oBACtC,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;wBACjI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;4BAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/E,CAAC;oBACD,8DAA8D;oBAC9D,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;wBAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC3H,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE;wBAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;oBACpH,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE;wBAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;oBACxG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;wBAAE,IAAI,CAAC,CAAC,EAAE,sGAAsG,CAAC,CAAC;oBAC5I,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAChC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;gBACrF,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9B,MAAM,KAAK,GAA2L,EAAE,IAAI,EAAE,CAAC;oBAC/M,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAU,EAAE,CAAC;wBACtG,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,KAAK,SAAS;4BAAG,KAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjE,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAU,EAAE,CAAC;wBAC5D,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,KAAK,SAAS;4BAAG,KAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjE,CAAC;oBACD,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACnC,iHAAiH;oBACjH,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;wBACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAwC,EAAE,CAAC;4BAChE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gCAC/B,MAAM,EAAE,GAAG,EAAE,GAAI,CAA6B,EAAE,CAAC;gCACjD,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;oCAAE,EAAE,CAAC,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gCACvG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAW,CAAC,CAAC;4BAC3C,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAkC,EAAE,CAAC;4BAC1D,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;gCAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAU,CAAC,CAAC;wBACpE,CAAC;oBACH,CAAC;oBACD,OAAO,kBAAkB,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAK,MAAM,CAAC,EAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3F,MAAM,GAAG,GAAG,KAAK;wBACf,CAAC,CAAE,MAAM,CAAC,EAAa,CAAC,IAAI,EAAE;wBAC9B,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/D,MAAM,KAAK,GAA4B,EAAE,CAAC;oBAC1C,iDAAiD;oBACjD,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAU,EAAE,CAAC;wBACxI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;4BAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;oBACD,IAAI,KAAK,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAK,MAAM,CAAC,IAAe,CAAC,IAAI,EAAE;wBAAE,KAAK,CAAC,IAAI,GAAI,MAAM,CAAC,IAAe,CAAC,IAAI,EAAE,CAAC;oBAC5H,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;wBAAE,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC;oBAC5H,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC5H,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;4BAC7E,IAAI,CAAC,KAAK,YAAY,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS;gCAAE,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;iCAC1F,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gCAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC5J,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;wBAAE,IAAI,CAAC,CAAC,EAAE,kHAAkH,CAAC,CAAC;oBAC5J,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,kBAAkB,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;oBAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzH,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACvC,OAAO,kBAAkB,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;gBAC1E,CAAC;gBACD,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9B,MAAM,KAAK,GAA8J,EAAE,IAAI,EAAE,CAAC;oBAClL,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;oBACxC,IAAI,GAAG,KAAK,SAAS;wBAAE,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;oBAC9D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAClC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;wBACtC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAU,EAAE,CAAC;wBACjE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,KAAK,SAAS;4BAAG,KAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;wBAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1H,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACjD,OAAO,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBACD,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;oBACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;oBAC7H,MAAM,KAAK,GAA8H,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnK,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,CAAU,EAAE,CAAC;wBAC1E,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,KAAK,SAAS;4BAAG,KAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;wBAC9C,KAAK,CAAC,gBAAgB,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;gBAClE,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,gEAAgE,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,QAAmB,GAAG,IAAI,CAAC;gBACxE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG;oBAClF,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC;iBAC5E,CAAC,CAAC,CAAC;gBACJ,MAAM,KAAK,GAAkB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;qBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACX,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;oBAC5E,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe;oBACxF,WAAW,EAAE,MAAM;iBACpB,CAAC,CAAC,CAAC;gBACN,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvD,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,IAAI,CAAC;gBACxD,IAAI,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,MAAM,IAAI,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;gBACjF,yEAAyE;gBACzE,IAAI,eAAe;oBAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9D,yCAAyC;gBACzC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBACrC,OAAO,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7C,IAAI,MAAM,GAAkB,IAAI,CAAC;gBACjC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAK,MAAM,CAAC,MAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAE,MAAM,CAAC,MAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACpJ,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpG,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACxG,OAAO,kBAAkB,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;YAChI,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC5B,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACnH,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpD,OAAO,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpH,CAAC;gBACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;wBACpD,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAClD,OAAO,iBAAiB,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACpI,CAAC;oBACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC9B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBACtC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;oBAC9E,CAAC,CAAC,CAAC;oBACH,OAAO,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBACxC,IAAI,KAAK,GAAG,CAAC,CAAC;wBAAC,IAAI,KAAK,GAAG,CAAC,CAAC;wBAAC,IAAI,GAAG,GAAG,CAAC,CAAC;wBAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;4BACrB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gCAChD,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;gCAAC,KAAK,IAAI,CAAC,CAAC;gCAC9B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;oCAAE,GAAG,IAAI,CAAC,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACjE,OAAO;4BACL,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;4BAChF,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,GAAc,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;yBACxE,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,OAAO,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,0DAA0D;oBAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvI,OAAO,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;gBACD,IAAI,CAAC,CAAC,EAAE,sDAAsD,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,kBAAkB;gBACrB,mEAAmE;gBACnE,IAAI,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd;gBAAS,IAAI,CAAC,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;QACtD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAW;IAC5B,MAAM,CAAC,GAAuG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC7L,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAClD,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACjF,CAAC;;YACI,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,CAAC,CAAC,EAAE,4EAA4E,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC;IACZ,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAA4B,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAAC,CAAC;QAC5G,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC;QAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC3F,KAAK,KAAK,CAAC;IACX,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3H,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,IAAI,QAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,oDAAoD;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAa,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/F,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,+DAA+D;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;YACpH,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,GAAG,eAAe,CAAC;gBACzB,QAAQ,EAAE,CAAC,CAAC,IAAI;gBAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,IAAI;gBACJ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACjF,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACrC,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAC5C,OAAO,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,cAAc;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,eAAe;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,eAAe;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/D,yEAAyE;QACzE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAE,CAA2B,EAAE,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAE,CAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,IAAK,CAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC;YAAE,IAAI,CAAC,CAAC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACpF,yDAAyD;QACzD,4DAA4D;QAC5D,IAAI,CAAC,CAAC,GAAG,KAAK,kBAAkB;YAAE,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,CAAE,CAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAE,CAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAClC,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { SceneGroup } from 'base-paint';
|
|
2
|
+
/** 首次使用横幅(照 bill `:65-73`/schedule `:68-76` 五键 + 显隐开关 `hidden`)。
|
|
3
|
+
* `closable` 照 bill/schedule 传 `true`(模板 `=== false` 才不画 ✕,缺省等价)。 */
|
|
4
|
+
interface ChefInitBanner {
|
|
5
|
+
readonly title: string;
|
|
6
|
+
readonly subtitle: string;
|
|
7
|
+
readonly button_text: string;
|
|
8
|
+
readonly prompt: string;
|
|
9
|
+
readonly closable: true;
|
|
10
|
+
readonly hidden: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** `buildChefHelpFileData` 的选项(**不对外开出口**:需要它的地方是出口层/票据内部)。 */
|
|
13
|
+
interface ChefHelpFileOptions {
|
|
14
|
+
/** 库是否已初始化(`true` ⇒ 首次使用横幅隐藏)。缺省 `false`=照显(误显的代价小于误藏)。 */
|
|
15
|
+
readonly initialized?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** 老 `%Y-%m-%d %H:%M` 等价物(本地时区、零填充;非法 Date 即坏参,不返空串)。 */
|
|
18
|
+
export declare function formatHelpMinute(now: Date): string;
|
|
19
|
+
/** 全量 HELP JSON(5 必需键 + 两张可选键 `version`/`init_banner`;共享 help 模板运行时契约的超集)。
|
|
20
|
+
*
|
|
21
|
+
* `init_banner` **键常在**、显隐只走 `hidden`(载荷形状不随状态变,下游能断言同一个键集);
|
|
22
|
+
* `meta_blocks`(老家无此块;且用户裁 5「HELP 自身触发词不上页面」)与 `recommendations`
|
|
23
|
+
* (老 chef 页面无此键)**不传**——传了即第二真相源,漂移面无收益(照 calorie `:13` 的同一条理)。
|
|
24
|
+
*
|
|
25
|
+
* 返回类型**内联**、不另开导出(照 memo `:158-173`;本文件导出面按铁律五收到 ≤5)。 */
|
|
26
|
+
export declare function buildChefHelpFileData(now: Date, opts?: ChefHelpFileOptions): {
|
|
27
|
+
readonly skill_name: string;
|
|
28
|
+
readonly title: string;
|
|
29
|
+
readonly subtitle: string;
|
|
30
|
+
readonly contact: unknown;
|
|
31
|
+
readonly groups: readonly SceneGroup[];
|
|
32
|
+
readonly version: string;
|
|
33
|
+
readonly init_banner: ChefInitBanner;
|
|
34
|
+
};
|
|
35
|
+
/** 全量 HELP JSON → 全页 HTML(模板唯一实现=共享层 `base-paint/help-shell`;空分组抛 `missing-data`)。
|
|
36
|
+
*
|
|
37
|
+
* `HelpShellData`(`src/helpShell.ts:22-28`)只声明 5 键、运行时**全量透传**,且把 `subtitle`/`contact`
|
|
38
|
+
* 定为**必填**(`SceneData` 里这两项可选 ⇒ 直接把 `buildChefSceneData()` 喂进去会 tsc 报错);
|
|
39
|
+
* 本件产出的载荷是它的**超集**,在这一处收窄类型,**不改公共层**(照 memo `:213-220`/schedule `:228-235`)。 */
|
|
40
|
+
export declare function renderChefHelpHtml(data: ReturnType<typeof buildChefHelpFileData>): string;
|
|
41
|
+
/** 域级索引条目:`subgroupCount`/`sceneCount` 全是**数出来的**(与页面 `subtitle` 同一路子),
|
|
42
|
+
* 不写死 33/48——改内容资产即跟变。 */
|
|
43
|
+
interface ChefHelpIndexItem {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly icon: string;
|
|
46
|
+
readonly label: string;
|
|
47
|
+
readonly subgroupCount: number;
|
|
48
|
+
readonly sceneCount: number;
|
|
49
|
+
}
|
|
50
|
+
/** 缺省支的信封载荷(`list` 形要 `items`):一行一个功能域,另附三个合计。
|
|
51
|
+
* 与 `{html, target}` **同一次装配**产出 ⇒ 出口不必为了载荷再读一遍内容资产。 */
|
|
52
|
+
declare function chefHelpIndex(groups: readonly SceneGroup[]): {
|
|
53
|
+
readonly items: readonly ChefHelpIndexItem[];
|
|
54
|
+
readonly total: number;
|
|
55
|
+
readonly sceneTotal: number;
|
|
56
|
+
readonly subgroupTotal: number;
|
|
57
|
+
};
|
|
58
|
+
/** 交付产物:`{ html, target, index }`——出口拿 `deliverChefHelp({ explicit, target, html })` 落盘,
|
|
59
|
+
* 拿 `index` 当缺省支的信封载荷(`{...index, mode:'file', bytes}`)。
|
|
60
|
+
* `target` 是结构上的 `HtmlLanding`(`base-paint/save-html` 的 `{dir, stem}`),时间戳与同秒递补由共用件钉死。
|
|
61
|
+
* `dbPath` = **DB 文件路径**(`resolveDbPath()` 的返回值):落点取它的父目录,初始化探针也探它本人。 */
|
|
62
|
+
export declare function buildChefHelpDelivery(dbPath: string, now: Date): {
|
|
63
|
+
readonly html: string;
|
|
64
|
+
readonly target: {
|
|
65
|
+
readonly dir: string;
|
|
66
|
+
readonly stem: string;
|
|
67
|
+
};
|
|
68
|
+
readonly index: ReturnType<typeof chefHelpIndex>;
|
|
69
|
+
};
|
|
70
|
+
/** 速查支的落点意图:与 HELP 文件**同目录、另一个主体**(分名,见 `manifest.ts` 的注释)。
|
|
71
|
+
* **不渲染页面**——速查页由出口拿信封走本技能自己的 `templates/help.html` 渲染(#215):
|
|
72
|
+
* 落点值与载荷因此不必互相等,本件也不预设那个页面的形状。 */
|
|
73
|
+
export declare function buildChefLookupLanding(dbPath: string): {
|
|
74
|
+
readonly dir: string;
|
|
75
|
+
readonly stem: string;
|
|
76
|
+
};
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=helpFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpFile.d.ts","sourceRoot":"","sources":["../../src/help/helpFile.ts"],"names":[],"mappings":"AA2DA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2B7C;sEACsE;AACtE,UAAU,cAAc;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,+DAA+D;AAC/D,UAAU,mBAAmB;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAWD,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAOlD;AAyBD;;;;;;2DAM2D;AAC3D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,GAAE,mBAAwB,GAAG;IAChF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACtC,CAsCA;AAED;;;;kFAIkF;AAClF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM,CAGzF;AASD;2BAC2B;AAC3B,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;yDACyD;AACzD,iBAAS,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG;IACrD,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAaA;AAED;;;0EAG0E;AAC1E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;CAClD,CAQA;AAED;;mCAEmC;AACnC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAEtG"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/** #214 · 私家大厨 HELP 的**渲染接线**:内容资产(#213 的 `sceneData.ts`)+ 页面级派生 →
|
|
2
|
+
* 通用 help 模板(`base-paint/help-shell` 的 `renderHelpShellHtml`)全页 HTML。
|
|
3
|
+
*
|
|
4
|
+
* 走 **A 路**(与 bill/calorie/memo/schedule 四家同路),**不自持页面副本**:模板源恒在
|
|
5
|
+
* `packages/base-render/assets/help-template.html`(不进本包 `files`);要改渲染规则得改源再跑
|
|
6
|
+
* `pnpm --filter base-paint gen:help-shell`。
|
|
7
|
+
*
|
|
8
|
+
* ## 三件出口各碰什么(谁碰 IO)
|
|
9
|
+
*
|
|
10
|
+
* - `buildChefHelpFileData(now, opts)`:**纯函数、零 IO**(`now` 显式传入 ⇒ 同一 `now` 两次调用逐字节一致);
|
|
11
|
+
* - `buildChefHelpDelivery(dbPath, now)`:**只读**探针(`existsSync` 一次)+ 交付产物 `{html, target, index}`
|
|
12
|
+
* (`index` 是缺省支的信封载荷:域级索引,与页面**同一次装配、同一份资产**算出来,出口不再第二次读资产);
|
|
13
|
+
* - `buildChefLookupLanding(dbPath)`:速查支的落点**意图**(同目录、另一个主体;**不渲染页面**——速查页由
|
|
14
|
+
* 出口拿信封走本技能自己的 `templates/help.html` 渲染,落点与载荷因此不必互相等);
|
|
15
|
+
* - `deliverChefHelp(...)`(`src/help/output.ts`):唯一落盘点,写盘走共用件 `base-paint/save-html`。
|
|
16
|
+
* CLI 出口(`src/cli/cmd_read.ts` 的 `chef.help.lookup` 分支)由 #215 接上,本件不自持 argv 口径。
|
|
17
|
+
*
|
|
18
|
+
* ## 页面级五项怎么取(裁决 6「逐项照记账」;逐条实测留证)
|
|
19
|
+
*
|
|
20
|
+
* - `skill_name`/`title`/`version`:取**内容资产**的公开导出 `buildChefSceneData()`(同一件事只有一个
|
|
21
|
+
* 定义地 ⇒ 本件不写第二份副本,照 memo `src/help/helpFile.ts:179-181` 的同一理);
|
|
22
|
+
* - `subtitle`:本件派生(照 bill `src/render/helpFile.ts:102-106` 的式子,计数全是数出来的、不写死);
|
|
23
|
+
* - `contact`:老 chef 件**无对应物**(老家是 `window.__HELP__` 血统,载荷里没有 contact 块)⇒
|
|
24
|
+
* 照记账取值(bill `:46-53`/schedule `:52-59` 是同一份三项)。
|
|
25
|
+
*
|
|
26
|
+
* ⚠️ `title` 有一处**就地摆正**(本票):#213 首版照 t2 §七 草案取「私家大厨 · 能力速查」,票 6 票面要求
|
|
27
|
+
* 老家产物原文「私家大厨 HELP · 能力速查」(实测留档 `.scratch/chef-help/A1-legacy-chef-help-skeleton.md:340`
|
|
28
|
+
* /`:398`,即老件 `<title>`)⇒ 已改在**生成器声明处**(`scripts/gen-help-assets.mjs`)并重新生成资产,
|
|
29
|
+
* 本件不自造第二份字面量。
|
|
30
|
+
*
|
|
31
|
+
* ## 只读页不建库(票面第 2 条)
|
|
32
|
+
*
|
|
33
|
+
* 老入口 `src/cli/cmd_read.ts:98-99` 在 `:327` 的 help 分支**之前**就 `openChefDb()`
|
|
34
|
+
* (`src/fetch/db.ts:182` 的 DDL 会把库自愈建出来)⇒ 今天「说一句 help」就在磁盘上建出一个库。
|
|
35
|
+
* 本件**不许**走那条路:初始化状态只由 `existsSync(dbPath)` 判(口径=bill `src/cli/cmd_read.ts:83-86`/
|
|
36
|
+
* schedule `:83-86`,亦即老 `render_help._is_initialized`),判定本身出异常 ⇒ 当**未初始化**
|
|
37
|
+
* (横幅照显:误显的代价小于误藏)。全程不建目录、不开 SQLite。
|
|
38
|
+
*
|
|
39
|
+
* ## `subtitle` 与 `contact` 的共享层实测(如实记账,不做辩护)
|
|
40
|
+
*
|
|
41
|
+
* - `subtitle` 在 A 路**读了不渲染**:模板 `var SUBTITLE = HELP.subtitle || ''`
|
|
42
|
+
* (`assets/help-template.html:1650`)之后全文零引用 ⇒ 这一项写什么都看不见。**这是共享层的缺陷**,
|
|
43
|
+
* B 路 `src/help.ts:403` 的注释逐字写着「`subtitle` 必须渲染,F3 读而不渲染属缺陷」。
|
|
44
|
+
* 本件按裁决 6 照记账取值,**不是**「反正不渲染」才随便取的;
|
|
45
|
+
* - `contact` 在 A 路**真渲染**(关于 Tab 第一段)。
|
|
46
|
+
*
|
|
47
|
+
* ## 路由字段:**不需要**(本票实测的结论,证据在此)
|
|
48
|
+
*
|
|
49
|
+
* `SceneData` 的形状以 `packages/base-render/src/spec/help.ts` 为权威:`SCENE_DATA_SCHEMA` 的
|
|
50
|
+
* `scenes[].properties` 只有 `id`/`title`/`wake_word`/`types`/`status`/`prompt_template`/
|
|
51
|
+
* `editable_fields` 七键,且 `additionalProperties: false`(`:151-189`)——**没有**任何指向命令/CLI 的字段。
|
|
52
|
+
* 四家兄弟的装配层同样一律不传路由字段(memo `:96-107` 反而要**剥掉**资产侧的 `aliases`)。
|
|
53
|
+
* chef 侧「短语 → 命令」的路由另有其位:`src/help/lookup.ts` 的 `buildHelpLookup()`(`WAKE_TABLE` 唯一上游),
|
|
54
|
+
* 它出的是**速查信封**的数据、与页面载荷无关 ⇒ 本件**不补**路由字段。
|
|
55
|
+
*/
|
|
56
|
+
import { existsSync } from 'node:fs';
|
|
57
|
+
import { dirname, resolve } from 'node:path';
|
|
58
|
+
import { renderHelpShellHtml } from 'base-paint/help-shell';
|
|
59
|
+
import { buildChefSceneData } from './sceneData.js';
|
|
60
|
+
import { HELP_DIR_SEGMENTS, HELP_FILE_STEM, LOOKUP_FILE_STEM } from './manifest.js';
|
|
61
|
+
import { ChefRenderError } from '../render/errors.js';
|
|
62
|
+
/** 落点值由 #215 收进 `src/help/manifest.ts`(A2)——本件从它 `import`,**不落第二处**(铁律二)。
|
|
63
|
+
* 时间戳格式与同秒递补一概不在本件(唯一定义地=共用件 `base-paint/save-html`)。 */
|
|
64
|
+
/** 首次使用横幅的 `prompt` 取自该场景的 `prompt_template`(单源,不抄第二份文案)。 */
|
|
65
|
+
const CHEF_HELP_INIT_SCENE_ID = 'first_use';
|
|
66
|
+
/** 联系作者三项(照记账 bill `:46-53`/schedule `:52-59`;老 chef 载荷无此块)。`url` 为真时模板渲染成 `<a>`。
|
|
67
|
+
* **不对外开出口**:要用它的是出口层,本件够用(导出面按铁律五收口)。 */
|
|
68
|
+
const CHEF_HELP_CONTACT = Object.freeze({
|
|
69
|
+
items: Object.freeze([
|
|
70
|
+
Object.freeze({ label: '邮箱', value: '975559549@qq.com' }),
|
|
71
|
+
Object.freeze({ label: 'GitHub', value: 'https://github.com/FeatherHunter/SKILLS', url: true }),
|
|
72
|
+
Object.freeze({ label: 'Issues', value: 'https://github.com/FeatherHunter/SKILLS/issues', url: true }),
|
|
73
|
+
]),
|
|
74
|
+
copy_all: true,
|
|
75
|
+
});
|
|
76
|
+
/** 坏载荷一律抛本包渲染层错误(`code` 取既有码,不新增错误类、不改既有导出面;照 schedule 的取舍)。 */
|
|
77
|
+
function fail(message) {
|
|
78
|
+
throw new ChefRenderError('CHEF_BAD_PAYLOAD', message);
|
|
79
|
+
}
|
|
80
|
+
function isNonEmptyString(v) {
|
|
81
|
+
return typeof v === 'string' && v.length > 0;
|
|
82
|
+
}
|
|
83
|
+
/** 老 `%Y-%m-%d %H:%M` 等价物(本地时区、零填充;非法 Date 即坏参,不返空串)。 */
|
|
84
|
+
export function formatHelpMinute(now) {
|
|
85
|
+
if (!(now instanceof Date) || Number.isNaN(now.getTime())) {
|
|
86
|
+
fail('HELP 更新时间须为有效 Date(缺失阻断,不返空串)。');
|
|
87
|
+
}
|
|
88
|
+
const p = (n) => String(n).padStart(2, '0');
|
|
89
|
+
return String(now.getFullYear()) + '-' + p(now.getMonth() + 1) + '-' + p(now.getDate())
|
|
90
|
+
+ ' ' + p(now.getHours()) + ':' + p(now.getMinutes());
|
|
91
|
+
}
|
|
92
|
+
/** 初始化状态:DB **文件存在**=已初始化;判定本身出异常 ⇒ `false`=横幅照显(fail-open)。
|
|
93
|
+
* **只读**,见件头「只读页不建库」。 */
|
|
94
|
+
function chefHelpInitialized(dbPath) {
|
|
95
|
+
try {
|
|
96
|
+
return existsSync(dbPath);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** 横幅 `prompt` 的单源:按 id 在资产里找该场景(找不到即抛,不静默降级掉横幅)。 */
|
|
103
|
+
function initPromptFrom(groups) {
|
|
104
|
+
for (const g of groups) {
|
|
105
|
+
for (const sg of g.subgroups) {
|
|
106
|
+
for (const s of sg.scenes) {
|
|
107
|
+
if (s.id === CHEF_HELP_INIT_SCENE_ID) {
|
|
108
|
+
if (!isNonEmptyString(s.prompt_template)) {
|
|
109
|
+
fail('HELP 首次使用横幅缺 prompt:场景 ' + CHEF_HELP_INIT_SCENE_ID + ' 的 prompt_template 为空。');
|
|
110
|
+
}
|
|
111
|
+
return s.prompt_template;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return fail('HELP 首次使用横幅缺 prompt:内容资产无场景 ' + CHEF_HELP_INIT_SCENE_ID + '。');
|
|
117
|
+
}
|
|
118
|
+
/** 全量 HELP JSON(5 必需键 + 两张可选键 `version`/`init_banner`;共享 help 模板运行时契约的超集)。
|
|
119
|
+
*
|
|
120
|
+
* `init_banner` **键常在**、显隐只走 `hidden`(载荷形状不随状态变,下游能断言同一个键集);
|
|
121
|
+
* `meta_blocks`(老家无此块;且用户裁 5「HELP 自身触发词不上页面」)与 `recommendations`
|
|
122
|
+
* (老 chef 页面无此键)**不传**——传了即第二真相源,漂移面无收益(照 calorie `:13` 的同一条理)。
|
|
123
|
+
*
|
|
124
|
+
* 返回类型**内联**、不另开导出(照 memo `:158-173`;本文件导出面按铁律五收到 ≤5)。 */
|
|
125
|
+
export function buildChefHelpFileData(now, opts = {}) {
|
|
126
|
+
const scene = buildChefSceneData();
|
|
127
|
+
const groups = scene.groups;
|
|
128
|
+
if (groups.length === 0)
|
|
129
|
+
fail('HELP 内容资产为空(CHEF_SCENES 无域)。');
|
|
130
|
+
const scenes = groups.reduce((n, g) => n + g.subgroups.reduce((m, sg) => m + sg.scenes.length, 0), 0);
|
|
131
|
+
if (scenes === 0)
|
|
132
|
+
fail('HELP 内容资产没有任何场景(二级组为空)。');
|
|
133
|
+
if (!isNonEmptyString(scene.skill_name) || !isNonEmptyString(scene.title)) {
|
|
134
|
+
fail('HELP 页面级缺 skill_name/title(内容资产不许留空)。');
|
|
135
|
+
}
|
|
136
|
+
// 技能数据世代取自资产的公开导出(`sceneData.ts` 有意只给 2 个导出 ⇒ 从它的返回值取,
|
|
137
|
+
// 不在本模块写第四份副本;值出自老载荷 `meta.version`,生成器 `:186` 逐字断言)。
|
|
138
|
+
if (!isNonEmptyString(scene.version))
|
|
139
|
+
fail('HELP 缺 version(内容资产没给技能数据世代)。');
|
|
140
|
+
const version = String(scene.version);
|
|
141
|
+
// `now` 非法在这里就炸,不把坏时间带进载荷。
|
|
142
|
+
const updatedAt = formatHelpMinute(now);
|
|
143
|
+
// 页头摘要行(照 bill `:102-106` 的式子):计数**全部派生**(域数/场景数),版本取资产。
|
|
144
|
+
// 只数「一级域 + 场景」两层:记账那一式也只数它的两级(7 功能域 · 74 场景),
|
|
145
|
+
// 组(chef 的 33 个二级组)在账单那一式里对应 `subgroups`,同样不进摘要行。
|
|
146
|
+
const subtitle = String(groups.length) + ' 功能域 · ' + String(scenes) + ' 场景 · 版本 '
|
|
147
|
+
+ version + ' · 更新于 ' + updatedAt;
|
|
148
|
+
return Object.freeze({
|
|
149
|
+
skill_name: scene.skill_name,
|
|
150
|
+
title: scene.title,
|
|
151
|
+
subtitle,
|
|
152
|
+
contact: CHEF_HELP_CONTACT,
|
|
153
|
+
groups,
|
|
154
|
+
version,
|
|
155
|
+
init_banner: Object.freeze({
|
|
156
|
+
title: '🚀 第一次用私家大厨?',
|
|
157
|
+
subtitle: '从「首次使用」开始 — 检测环境、确认数据目录、建库、验证读写,全程零决策。完成初始化后,本区域将不再出现。',
|
|
158
|
+
button_text: '📋 复制初始化 prompt',
|
|
159
|
+
prompt: initPromptFrom(groups),
|
|
160
|
+
closable: true,
|
|
161
|
+
hidden: opts.initialized === true,
|
|
162
|
+
}),
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/** 全量 HELP JSON → 全页 HTML(模板唯一实现=共享层 `base-paint/help-shell`;空分组抛 `missing-data`)。
|
|
166
|
+
*
|
|
167
|
+
* `HelpShellData`(`src/helpShell.ts:22-28`)只声明 5 键、运行时**全量透传**,且把 `subtitle`/`contact`
|
|
168
|
+
* 定为**必填**(`SceneData` 里这两项可选 ⇒ 直接把 `buildChefSceneData()` 喂进去会 tsc 报错);
|
|
169
|
+
* 本件产出的载荷是它的**超集**,在这一处收窄类型,**不改公共层**(照 memo `:213-220`/schedule `:228-235`)。 */
|
|
170
|
+
export function renderChefHelpHtml(data) {
|
|
171
|
+
const payload = data;
|
|
172
|
+
return renderHelpShellHtml(payload);
|
|
173
|
+
}
|
|
174
|
+
/** 落点目录(两个主体共用一个目录):`dbPath` 的**父目录** + manifest 的两段,`resolve` 成绝对路径
|
|
175
|
+
* (回执路径因此可用)。坏 `dbPath` 即抛,不返空落点。 */
|
|
176
|
+
function chefHelpDir(dbPath) {
|
|
177
|
+
if (!isNonEmptyString(dbPath))
|
|
178
|
+
fail('HELP 落点缺库路径(`dbPath` 须为非空字符串,缺失阻断不返空)。');
|
|
179
|
+
return resolve(dirname(dbPath), ...HELP_DIR_SEGMENTS);
|
|
180
|
+
}
|
|
181
|
+
/** 缺省支的信封载荷(`list` 形要 `items`):一行一个功能域,另附三个合计。
|
|
182
|
+
* 与 `{html, target}` **同一次装配**产出 ⇒ 出口不必为了载荷再读一遍内容资产。 */
|
|
183
|
+
function chefHelpIndex(groups) {
|
|
184
|
+
let sceneTotal = 0;
|
|
185
|
+
let subgroupTotal = 0;
|
|
186
|
+
const items = groups.map((g) => {
|
|
187
|
+
const sceneCount = g.subgroups.reduce((n, sg) => n + sg.scenes.length, 0);
|
|
188
|
+
sceneTotal += sceneCount;
|
|
189
|
+
subgroupTotal += g.subgroups.length;
|
|
190
|
+
return Object.freeze({
|
|
191
|
+
id: g.id, icon: g.icon ?? '', label: g.label,
|
|
192
|
+
subgroupCount: g.subgroups.length, sceneCount,
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
return Object.freeze({ items: Object.freeze(items), total: items.length, sceneTotal, subgroupTotal });
|
|
196
|
+
}
|
|
197
|
+
/** 交付产物:`{ html, target, index }`——出口拿 `deliverChefHelp({ explicit, target, html })` 落盘,
|
|
198
|
+
* 拿 `index` 当缺省支的信封载荷(`{...index, mode:'file', bytes}`)。
|
|
199
|
+
* `target` 是结构上的 `HtmlLanding`(`base-paint/save-html` 的 `{dir, stem}`),时间戳与同秒递补由共用件钉死。
|
|
200
|
+
* `dbPath` = **DB 文件路径**(`resolveDbPath()` 的返回值):落点取它的父目录,初始化探针也探它本人。 */
|
|
201
|
+
export function buildChefHelpDelivery(dbPath, now) {
|
|
202
|
+
const dir = chefHelpDir(dbPath);
|
|
203
|
+
const data = buildChefHelpFileData(now, { initialized: chefHelpInitialized(dbPath) });
|
|
204
|
+
return Object.freeze({
|
|
205
|
+
html: renderChefHelpHtml(data),
|
|
206
|
+
target: Object.freeze({ dir, stem: HELP_FILE_STEM }),
|
|
207
|
+
index: chefHelpIndex(data.groups),
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/** 速查支的落点意图:与 HELP 文件**同目录、另一个主体**(分名,见 `manifest.ts` 的注释)。
|
|
211
|
+
* **不渲染页面**——速查页由出口拿信封走本技能自己的 `templates/help.html` 渲染(#215):
|
|
212
|
+
* 落点值与载荷因此不必互相等,本件也不预设那个页面的形状。 */
|
|
213
|
+
export function buildChefLookupLanding(dbPath) {
|
|
214
|
+
return Object.freeze({ dir: chefHelpDir(dbPath), stem: LOOKUP_FILE_STEM });
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=helpFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpFile.js","sourceRoot":"","sources":["../../src/help/helpFile.ts"],"names":[],"mappings":"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"}
|
package/dist/help/index.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export { buildHelpLookup, lookupWake, type HelpHit } from './lookup.js';
|
|
2
|
+
export { CHEF_SCENES, buildChefSceneData } from './sceneData.js';
|
|
3
|
+
export { buildChefHelpFileData, buildChefHelpDelivery, renderChefHelpHtml, formatHelpMinute, buildChefLookupLanding } from './helpFile.js';
|
|
4
|
+
export { deliverChefHelp } from './output.js';
|
|
5
|
+
export type { ChefHtmlDelivery, HtmlLanding } from './output.js';
|
|
2
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/help/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/help/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/help/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3I,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/help/index.js
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export { buildHelpLookup, lookupWake } from './lookup.js';
|
|
2
|
+
export { CHEF_SCENES, buildChefSceneData } from './sceneData.js';
|
|
3
|
+
// #214 渲染接线的转发出口(本件只做转发,不自造第二套页面);#215 补速查支的落点意图。
|
|
4
|
+
export { buildChefHelpFileData, buildChefHelpDelivery, renderChefHelpHtml, formatHelpMinute, buildChefLookupLanding } from './helpFile.js';
|
|
5
|
+
export { deliverChefHelp } from './output.js';
|
|
2
6
|
//# sourceMappingURL=index.js.map
|
package/dist/help/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/help/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/help/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3I,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** #215 · 私家大厨 HELP 产物的**落点值**(本技能自己的三个值;零逻辑、零 IO)。
|
|
2
|
+
*
|
|
3
|
+
* 形状照 `docs/skills/skill-chef/t236-structure-design.md` §1.2 的 A2 行:① 落点子目录两段;
|
|
4
|
+
* ② HELP 文件名主体;③ 速查支文件名主体。三个值都是**调用者能给的值**,装配层拿它拼出
|
|
5
|
+
* `base-paint/save-html` 要的 `{dir, stem}`(`src/help/helpFile.ts`)。
|
|
6
|
+
*
|
|
7
|
+
* 命名与落盘的**逻辑**一概不在这里(维护者 2026-09-12 裁决 8:「放在 `base-paint` 吧,是绘制出
|
|
8
|
+
* html 后的相关操作」):时间戳格式 `YYYYMMDD_HHMMSS`、同秒 `_N` 递补、绝不静默覆盖,唯一定义地是
|
|
9
|
+
* 共用件 `saveHtmlFile`(`packages/base-render/src/output/saveHtml.ts`)。写在这里就是同一件事的
|
|
10
|
+
* 第二份定义(铁律二)。
|
|
11
|
+
*
|
|
12
|
+
* 老件对应物:`SKILLS\私家大厨\scripts\render_help.py` 的 `$CHEF_OUTPUT_DIR/help/私家大厨_HELP_<stamp>.html`。
|
|
13
|
+
* 落盘位置经用户 2026-09-12 改判:老目录 `CookHub/` 换成 `cook_html/`(与 `calorie_html/`/
|
|
14
|
+
* `biscuit_accountant_html/`/`home_manager_html/` 同形),`help/` 子目录保留;文件名主体不变。
|
|
15
|
+
*/
|
|
16
|
+
/** 落点子目录两段:`<SKILLS_DB_PATH>/cook_html/help/`(实机 `D:\2Study\StudyNotes\.db\cook_html\help\`)。 */
|
|
17
|
+
export declare const HELP_DIR_SEGMENTS: readonly ["cook_html", "help"];
|
|
18
|
+
/** HELP 文件名主体:产物=`私家大厨_HELP_<YYYYMMDD_HHMMSS>[_N].html`(老件通式逐字,`_N` 从 1 起步)。 */
|
|
19
|
+
export declare const HELP_FILE_STEM: "\u79C1\u5BB6\u5927\u53A8_HELP";
|
|
20
|
+
/** 速查支的文件名主体:与 HELP 文件**分名**(照 #139 判法——别让用户按一个名字打开到另一个东西)。
|
|
21
|
+
* 老家只有 HELP 一支、无老名可循;取名照样板图 #143(记账的 `饼干记账_速查表`)的同一后缀。 */
|
|
22
|
+
export declare const LOOKUP_FILE_STEM: "\u79C1\u5BB6\u5927\u53A8_\u901F\u67E5\u8868";
|
|
23
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/help/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,gCAAiC,CAAC;AAEhE,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAG,+BAAoB,CAAC;AAEnD;2DAC2D;AAC3D,eAAO,MAAM,gBAAgB,EAAG,6CAAmB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** #215 · 私家大厨 HELP 产物的**落点值**(本技能自己的三个值;零逻辑、零 IO)。
|
|
2
|
+
*
|
|
3
|
+
* 形状照 `docs/skills/skill-chef/t236-structure-design.md` §1.2 的 A2 行:① 落点子目录两段;
|
|
4
|
+
* ② HELP 文件名主体;③ 速查支文件名主体。三个值都是**调用者能给的值**,装配层拿它拼出
|
|
5
|
+
* `base-paint/save-html` 要的 `{dir, stem}`(`src/help/helpFile.ts`)。
|
|
6
|
+
*
|
|
7
|
+
* 命名与落盘的**逻辑**一概不在这里(维护者 2026-09-12 裁决 8:「放在 `base-paint` 吧,是绘制出
|
|
8
|
+
* html 后的相关操作」):时间戳格式 `YYYYMMDD_HHMMSS`、同秒 `_N` 递补、绝不静默覆盖,唯一定义地是
|
|
9
|
+
* 共用件 `saveHtmlFile`(`packages/base-render/src/output/saveHtml.ts`)。写在这里就是同一件事的
|
|
10
|
+
* 第二份定义(铁律二)。
|
|
11
|
+
*
|
|
12
|
+
* 老件对应物:`SKILLS\私家大厨\scripts\render_help.py` 的 `$CHEF_OUTPUT_DIR/help/私家大厨_HELP_<stamp>.html`。
|
|
13
|
+
* 落盘位置经用户 2026-09-12 改判:老目录 `CookHub/` 换成 `cook_html/`(与 `calorie_html/`/
|
|
14
|
+
* `biscuit_accountant_html/`/`home_manager_html/` 同形),`help/` 子目录保留;文件名主体不变。
|
|
15
|
+
*/
|
|
16
|
+
/** 落点子目录两段:`<SKILLS_DB_PATH>/cook_html/help/`(实机 `D:\2Study\StudyNotes\.db\cook_html\help\`)。 */
|
|
17
|
+
export const HELP_DIR_SEGMENTS = ['cook_html', 'help'];
|
|
18
|
+
/** HELP 文件名主体:产物=`私家大厨_HELP_<YYYYMMDD_HHMMSS>[_N].html`(老件通式逐字,`_N` 从 1 起步)。 */
|
|
19
|
+
export const HELP_FILE_STEM = '私家大厨_HELP';
|
|
20
|
+
/** 速查支的文件名主体:与 HELP 文件**分名**(照 #139 判法——别让用户按一个名字打开到另一个东西)。
|
|
21
|
+
* 老家只有 HELP 一支、无老名可循;取名照样板图 #143(记账的 `饼干记账_速查表`)的同一后缀。 */
|
|
22
|
+
export const LOOKUP_FILE_STEM = '私家大厨_速查表';
|
|
23
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/help/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iGAAiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,MAAM,CAAU,CAAC;AAEhE,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,WAAoB,CAAC;AAEnD;2DAC2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type HtmlLanding, type HtmlReceipt } from 'base-paint/save-html';
|
|
2
|
+
/** 交付结果(`file` 态唯一;`path` 必为**绝对路径**,`bytes` 是**实际落盘**字节数)。
|
|
3
|
+
* =共用件回执的形状,别名指向它,不另立第二份定义(照 bill `src/output.ts:27`)。 */
|
|
4
|
+
export type ChefHtmlDelivery = HtmlReceipt;
|
|
5
|
+
/** 落点意图=共用件自己的形状,转出去给出口用(本件不另立定义)。 */
|
|
6
|
+
export type { HtmlLanding };
|
|
7
|
+
/** 交付一次 HELP HTML(**本包唯一落盘点**):见件头两态、`reuseMs` 与「不静默降级」的取舍。
|
|
8
|
+
*
|
|
9
|
+
* `reuseMs`(可选):给毫秒数即启用「窗口内复用」——已有那份不超龄就返回它,不新建。
|
|
10
|
+
* **各技能出口一律给缺省一天**(`HELP_REUSE_DEFAULT_HOURS` ⇒ 24 小时内只留一份;`reuseHours:0` 每次都新的)。只在 `target` 路上生效。 */
|
|
11
|
+
export declare function deliverChefHelp(input: {
|
|
12
|
+
explicit?: string;
|
|
13
|
+
target?: HtmlLanding;
|
|
14
|
+
html: string;
|
|
15
|
+
reuseMs?: number;
|
|
16
|
+
}): ChefHtmlDelivery;
|
|
17
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/help/output.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAgB,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxF;2DAC2D;AAC3D,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAE3C,sCAAsC;AACtC,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B;;;uGAGuG;AACvG,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,gBAAgB,CAenB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** #214 · 私家大厨 HELP 产物的**唯一落盘点**:`deliverChefHelp({explicit, target, html})` → `{mode, path, bytes}`。
|
|
2
|
+
*
|
|
3
|
+
* 落盘与命名归共用件 `base-paint/save-html` 的 `saveHtmlFile`(维护者 2026-09-12 裁决 8:「不应该是一个独立的
|
|
4
|
+
* base 包,放在 `base-paint` 吧,是绘制出 html 后的相关操作」;地图 #208 Q7 同轮裁「乙」=把「命名与落盘」
|
|
5
|
+
* 收成共用位):本件**不自持** `nextExclusiveCandidate`/`writeFileExclusiveWithRetry`——那两份
|
|
6
|
+
* (bill/calorie 各抄一份、逐行等价)正是铁律二禁止的「同一件事两份实现」。
|
|
7
|
+
*
|
|
8
|
+
* 本件是**本包唯一碰 `fs` 的 HELP 件**:`helpFile.ts` 只要渲染、不 import 本件;`base-paint/save-html`
|
|
9
|
+
* 走子路径出口 ⇒ 只要渲染的消费者不会被动吃进 `fs`(`base-paint` 的包根本身零文件系统依赖)。
|
|
10
|
+
*
|
|
11
|
+
* 两态(语义照 bill `src/output.ts:33-37`):
|
|
12
|
+
* - `explicit`(`--html <路径>`,用户逐字指定)→ **覆盖写**(共用件 `onExists:'overwrite'` + `file`:落点逐字、
|
|
13
|
+
* 不带时间戳、不递补),与该参数的既有口径一致;
|
|
14
|
+
* - `target`(`helpFile.buildChefHelpDelivery` 算出的落点意图)→ **独占创建 + 同秒递补**(共用件缺省
|
|
15
|
+
* `succession`:`wx` 首试,`EEXIST` 递增 `_N`;#128 的因果——「选名 → 覆盖写」两步无独占性,
|
|
16
|
+
* 并发同秒会互相覆盖,用户按回执路径可能打开另一次调用的产物);
|
|
17
|
+
* - 两者都给时 `explicit` 优先(用户指定胜过默认落点)。
|
|
18
|
+
*
|
|
19
|
+
* ## `reuseMs`:反复读时不再涨目录(**#245 起缺省启用,一天**)
|
|
20
|
+
*
|
|
21
|
+
* 给了窗口(毫秒)就「窗口内已有同一主体的一份 ⇒ 返回它、不新建」。**各技能出口一律给缺省一天**
|
|
22
|
+
* (`HELP_REUSE_DEFAULT_HOURS`,`--params` 的 `reuseHours` 可改;`0`=每次都落新的)——这是维护者
|
|
23
|
+
* 定的口径:「1 天内直接返回一份,不会再创建新的」。判据在共用件里按**本件自己产出的名字里的时间戳**算
|
|
24
|
+
* (不看 mtime),超龄那份不算命中 ⇒ 与未命中同路落一份新的(旧的留着当留档)。只在 `target` 路上生效;
|
|
25
|
+
* `explicit` 是用户逐字落点,不吃复用。
|
|
26
|
+
*
|
|
27
|
+
* 写失败**不静默降级**:目的地是「明确拿到文件」,写不进去就是真失败(出口走失败回执,票 7),
|
|
28
|
+
* 有意**不引入** calorie 的只读回退(写不进去就换一种交付形态)。错误**原样穿过**:
|
|
29
|
+
* 共用件的 `code`(`EEXIST`/`EINVAL`/`EIO`)就是它对外的契约,包一层只会把码吃掉。
|
|
30
|
+
*/
|
|
31
|
+
import { basename, dirname, resolve } from 'node:path';
|
|
32
|
+
import { saveHtmlFile } from 'base-paint/save-html';
|
|
33
|
+
import { ChefRenderError } from '../render/errors.js';
|
|
34
|
+
/** 交付一次 HELP HTML(**本包唯一落盘点**):见件头两态、`reuseMs` 与「不静默降级」的取舍。
|
|
35
|
+
*
|
|
36
|
+
* `reuseMs`(可选):给毫秒数即启用「窗口内复用」——已有那份不超龄就返回它,不新建。
|
|
37
|
+
* **各技能出口一律给缺省一天**(`HELP_REUSE_DEFAULT_HOURS` ⇒ 24 小时内只留一份;`reuseHours:0` 每次都新的)。只在 `target` 路上生效。 */
|
|
38
|
+
export function deliverChefHelp(input) {
|
|
39
|
+
if (typeof input.html !== 'string' || input.html.length === 0) {
|
|
40
|
+
throw new ChefRenderError('CHEF_BAD_PAYLOAD', '[skill-chef] deliverChefHelp 缺 HTML 正文(缺失阻断,不写空页)。');
|
|
41
|
+
}
|
|
42
|
+
if (input.explicit !== undefined && input.explicit.length > 0) {
|
|
43
|
+
const abs = resolve(input.explicit);
|
|
44
|
+
return saveHtmlFile({ dir: dirname(abs), file: basename(abs), html: input.html, onExists: 'overwrite' });
|
|
45
|
+
}
|
|
46
|
+
if (input.target === undefined) {
|
|
47
|
+
throw new ChefRenderError('CHEF_BAD_PAYLOAD', '[skill-chef] deliverChefHelp 缺落点(`explicit` 与 `target` 至少给一个)');
|
|
48
|
+
}
|
|
49
|
+
const onExists = input.reuseMs === undefined ? undefined : { reuse: { byAge: input.reuseMs } };
|
|
50
|
+
return saveHtmlFile({
|
|
51
|
+
dir: input.target.dir, stem: input.target.stem, html: input.html, onExists,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/help/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,YAAY,EAAsC,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAStD;;;uGAGuG;AACvG,MAAM,UAAU,eAAe,CAAC,KAK/B;IACC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,oDAAoD,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,+DAA+D,CAAC,CAAC;IACjH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAC/F,OAAO,YAAY,CAAC;QAClB,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ;KAC3E,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** #213 · 私家大厨 HELP 内容资产:老骨架 48 卡 → 10 域/33 组/48 卡的 typed const。
|
|
2
|
+
*
|
|
3
|
+
* ⚠️ 机器生成,**禁手改**:由 `packages/skill-chef/scripts/gen-help-assets.mjs` 产出。
|
|
4
|
+
* 改内容=改生成器里的声明表(十域表/组→域归属表/字段映射),再跑
|
|
5
|
+
* `node packages/skill-chef/scripts/gen-help-assets.mjs`(`--check` 只比对不落盘)。
|
|
6
|
+
*
|
|
7
|
+
* 事实源(全程只读):
|
|
8
|
+
* ① 老技能 HELP 载荷 `.scratch/chef-help/legacy-chef-help-payload.json`(74,581 B);**以 `$.scenarios[]` 为准**——
|
|
9
|
+
* 载荷把同一批 48 条输出了两遍(`$.wake_words[].scenarios[]` 是第二遍视图,48/48 逐字相同),两遍不相加;
|
|
10
|
+
* ② `src/policy/wakewords.ts` 的 `WAKE_TABLE`(37 条 phrase):唤醒词单一事实源,本件的 chip 路由与
|
|
11
|
+
* 14 张卡的状态从它**派生**(`资产组名 − 表内 phrase`),不落第二份字面量。双向对账:表 37 ↔ 资产 33 组名;
|
|
12
|
+
* 资产有表中无 = 13 个老组名(→ 14 张 `'【待开发】'`);表中有资产无 = 17 条(4 条 HELP 自身触发词 +
|
|
13
|
+
* 13 条新表多出词——后者见 t2 §3.1/§5.1,本票资产按老骨架保持 48 卡、不含它们);
|
|
14
|
+
* ③ `docs/skills/skill-chef/t2-content-reconcile.md` §七 的 JSON 草案:形状起点,生成器已逐组/逐卡交叉复核。
|
|
15
|
+
* 摘要锁:载荷文件 sha256=c09f11d9ffa49e6b14c2ade094b5ab428f22fd440b2608442166e470db47d2ab
|
|
16
|
+
* 老 48 条 sha256=620653ed98c85acbeaf0ab646adf0ef48345f4d65d218a8d756f59f86757ae55
|
|
17
|
+
* 映射后 48 条 sha256=b87e504e2ecabccfcb9d7887e2a1153026bab6b882c9c068f29db93f82292d9f
|
|
18
|
+
*
|
|
19
|
+
* 与老骨架的**有意偏离**(四类,逐条对账见生成器头注释与 t2 §七):
|
|
20
|
+
* 1. `type`(单数、11 种字符串)→ `types`(复数数组):按 `+` 拆、去 `(过程型)` 这类括号注;
|
|
21
|
+
* 2. `dimensions`(42 键/80 条)→ `editable_fields`:键→`name`/`label`(逐字,不自造中文名),老值原文→`value`;
|
|
22
|
+
* **丢弃 1 条**=`data_export_backup` 的畸形键 `默认不含)`(值为 `null`,过不了 `value: string`);
|
|
23
|
+
* 同卡 `include_archived` 照 t2 丁类定案补 `hint`(「是否含已废弃(选填,默认不含)」);
|
|
24
|
+
* 3. `status`:老件 48/48 空串是老家缺陷,不照抄 ⇒ 13 个不在 `WAKE_TABLE` 的老组名下 **14 张卡**标
|
|
25
|
+
* `'【待开发】'`(卡面出「待开发」徽章),其余 34 张空串;
|
|
26
|
+
* 4. **不迁四项**:`result`(48/48;裁决「用户拿到的结果型 HTML 文件就是最好的执行结果」)/
|
|
27
|
+
* `html.command_cn`(与组名 48/48 逐字相同)/`html.template`(18 个老技能路径,新技能里一个不存在)/
|
|
28
|
+
* `html.data_source` + `variants`(96 处全空)。
|
|
29
|
+
*
|
|
30
|
+
* 本文件给 **2 个导出**:`CHEF_SCENES`(全量 `groups`,复用公共层 `base-paint` 的契约类型)与
|
|
31
|
+
* `buildChefSceneData()`(全量 `SceneData`)。页面级三项照裁决 6「逐项照记账」:`skill_name` 取老 `meta.skill`,
|
|
32
|
+
* `title` 取**老家产物原文**(`.scratch/chef-help/A1-legacy-chef-help-skeleton.md:340`/`:398` 实测的
|
|
33
|
+
* `<title>私家大厨 HELP · 能力速查</title>`;含技能名 ⇒ `composeDocTitle` 走「原样」支,标签页不重复技能名),
|
|
34
|
+
* `version` 取老载荷 `meta.version`=**技能数据世代**(非 npm 包版本;同值是巧合)。
|
|
35
|
+
*/
|
|
36
|
+
import type { SceneData, SceneGroup } from 'base-paint';
|
|
37
|
+
/** 10 域/33 组/48 卡:域序=t2 §一 域序 1..10;组序=载荷 `$.wake_words[]` 序按域收组;卡序=载荷书写序。 */
|
|
38
|
+
export declare const CHEF_SCENES: readonly SceneGroup[];
|
|
39
|
+
/** 全量 `SceneData`(`base-paint` 的 `spec/help.ts` 契约形状;`subtitle`/`contact` 归装配层 #214)。 */
|
|
40
|
+
export declare function buildChefSceneData(): SceneData;
|
|
41
|
+
//# sourceMappingURL=sceneData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneData.d.ts","sourceRoot":"","sources":["../../src/help/sceneData.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,8EAA8E;AAC9E,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EAuI5C,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,kBAAkB,IAAI,SAAS,CAO9C"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/** #213 · 私家大厨 HELP 内容资产:老骨架 48 卡 → 10 域/33 组/48 卡的 typed const。
|
|
2
|
+
*
|
|
3
|
+
* ⚠️ 机器生成,**禁手改**:由 `packages/skill-chef/scripts/gen-help-assets.mjs` 产出。
|
|
4
|
+
* 改内容=改生成器里的声明表(十域表/组→域归属表/字段映射),再跑
|
|
5
|
+
* `node packages/skill-chef/scripts/gen-help-assets.mjs`(`--check` 只比对不落盘)。
|
|
6
|
+
*
|
|
7
|
+
* 事实源(全程只读):
|
|
8
|
+
* ① 老技能 HELP 载荷 `.scratch/chef-help/legacy-chef-help-payload.json`(74,581 B);**以 `$.scenarios[]` 为准**——
|
|
9
|
+
* 载荷把同一批 48 条输出了两遍(`$.wake_words[].scenarios[]` 是第二遍视图,48/48 逐字相同),两遍不相加;
|
|
10
|
+
* ② `src/policy/wakewords.ts` 的 `WAKE_TABLE`(37 条 phrase):唤醒词单一事实源,本件的 chip 路由与
|
|
11
|
+
* 14 张卡的状态从它**派生**(`资产组名 − 表内 phrase`),不落第二份字面量。双向对账:表 37 ↔ 资产 33 组名;
|
|
12
|
+
* 资产有表中无 = 13 个老组名(→ 14 张 `'【待开发】'`);表中有资产无 = 17 条(4 条 HELP 自身触发词 +
|
|
13
|
+
* 13 条新表多出词——后者见 t2 §3.1/§5.1,本票资产按老骨架保持 48 卡、不含它们);
|
|
14
|
+
* ③ `docs/skills/skill-chef/t2-content-reconcile.md` §七 的 JSON 草案:形状起点,生成器已逐组/逐卡交叉复核。
|
|
15
|
+
* 摘要锁:载荷文件 sha256=c09f11d9ffa49e6b14c2ade094b5ab428f22fd440b2608442166e470db47d2ab
|
|
16
|
+
* 老 48 条 sha256=620653ed98c85acbeaf0ab646adf0ef48345f4d65d218a8d756f59f86757ae55
|
|
17
|
+
* 映射后 48 条 sha256=b87e504e2ecabccfcb9d7887e2a1153026bab6b882c9c068f29db93f82292d9f
|
|
18
|
+
*
|
|
19
|
+
* 与老骨架的**有意偏离**(四类,逐条对账见生成器头注释与 t2 §七):
|
|
20
|
+
* 1. `type`(单数、11 种字符串)→ `types`(复数数组):按 `+` 拆、去 `(过程型)` 这类括号注;
|
|
21
|
+
* 2. `dimensions`(42 键/80 条)→ `editable_fields`:键→`name`/`label`(逐字,不自造中文名),老值原文→`value`;
|
|
22
|
+
* **丢弃 1 条**=`data_export_backup` 的畸形键 `默认不含)`(值为 `null`,过不了 `value: string`);
|
|
23
|
+
* 同卡 `include_archived` 照 t2 丁类定案补 `hint`(「是否含已废弃(选填,默认不含)」);
|
|
24
|
+
* 3. `status`:老件 48/48 空串是老家缺陷,不照抄 ⇒ 13 个不在 `WAKE_TABLE` 的老组名下 **14 张卡**标
|
|
25
|
+
* `'【待开发】'`(卡面出「待开发」徽章),其余 34 张空串;
|
|
26
|
+
* 4. **不迁四项**:`result`(48/48;裁决「用户拿到的结果型 HTML 文件就是最好的执行结果」)/
|
|
27
|
+
* `html.command_cn`(与组名 48/48 逐字相同)/`html.template`(18 个老技能路径,新技能里一个不存在)/
|
|
28
|
+
* `html.data_source` + `variants`(96 处全空)。
|
|
29
|
+
*
|
|
30
|
+
* 本文件给 **2 个导出**:`CHEF_SCENES`(全量 `groups`,复用公共层 `base-paint` 的契约类型)与
|
|
31
|
+
* `buildChefSceneData()`(全量 `SceneData`)。页面级三项照裁决 6「逐项照记账」:`skill_name` 取老 `meta.skill`,
|
|
32
|
+
* `title` 取**老家产物原文**(`.scratch/chef-help/A1-legacy-chef-help-skeleton.md:340`/`:398` 实测的
|
|
33
|
+
* `<title>私家大厨 HELP · 能力速查</title>`;含技能名 ⇒ `composeDocTitle` 走「原样」支,标签页不重复技能名),
|
|
34
|
+
* `version` 取老载荷 `meta.version`=**技能数据世代**(非 npm 包版本;同值是巧合)。
|
|
35
|
+
*/
|
|
36
|
+
/** 10 域/33 组/48 卡:域序=t2 §一 域序 1..10;组序=载荷 `$.wake_words[]` 序按域收组;卡序=载荷书写序。 */
|
|
37
|
+
export const CHEF_SCENES = [
|
|
38
|
+
{ id: 'cook', icon: '🍳', label: '做菜', subgroups: [
|
|
39
|
+
{ id: '做菜模式', label: '做菜模式', scenes: [
|
|
40
|
+
{ id: 'cooking_start_fresh', title: '全新开始(含每步内联 + 完结闭环)', wake_word: '做菜模式', types: ['向导', '选择', '回执'], status: '', prompt_template: '帮我做一道{{菜名}},我要按步骤来。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }] },
|
|
41
|
+
{ id: 'cooking_start_with_history', title: '含上次经验(历史驱动再开做)', wake_word: '做菜模式', types: ['向导', '选择', '回执'], status: '', prompt_template: '再做一次{{菜名}},上次做得不错但想改进。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'history', label: 'history', value: '之前做过' }] },
|
|
42
|
+
{ id: 'cooking_start_double_servings', title: '双份份量', wake_word: '做菜模式', types: ['向导', '选择', '回执'], status: '', prompt_template: '做{{菜名}},今晚来客人,做两人份。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'servings', label: 'servings', value: '2 份' }] },
|
|
43
|
+
{ id: 'cooking_resume_after_pause', title: '断点续做(AI 会话记忆)', wake_word: '做菜模式', types: ['向导', '选择', '回执'], status: '', prompt_template: '我刚才做到第 {{N}} 步,继续帮我做完。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'progress', label: 'progress', value: '已做 N 步' }] },
|
|
44
|
+
{ id: 'cooking_during_waiting_step', title: '等待步骤中并行做其他', wake_word: '做菜模式', types: ['向导', '选择', '回执'], status: '', prompt_template: '{{菜名}}正在炖,我能去干别的吗?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'step_type', label: 'step_type', value: '等待型(炖/烤/腌)' }] },
|
|
45
|
+
] },
|
|
46
|
+
] },
|
|
47
|
+
{ id: 'view', icon: '👀', label: '查看', subgroups: [
|
|
48
|
+
{ id: '查看食谱', label: '查看食谱', scenes: [
|
|
49
|
+
{ id: 'view_full_recipe', title: '完整食谱', wake_word: '查看食谱', types: ['查看'], status: '', prompt_template: '看看{{菜名}}怎么做。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }] },
|
|
50
|
+
{ id: 'view_for_beginner', title: '新手强调(关键成功点)', wake_word: '查看食谱', types: ['查看'], status: '', prompt_template: '我是新手,{{菜名}}的关键点是什么?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'user_state', label: 'user_state', value: '新手' }] },
|
|
51
|
+
{ id: 'view_recipe_with_substitution', title: '替换食材预览(临时假设)', wake_word: '查看食谱', types: ['查看', '选择'], status: '', prompt_template: '{{菜名}}里没有 X,能用 Y 代替吗?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'ingredient_swap', label: 'ingredient_swap', value: '替换某食材' }] },
|
|
52
|
+
] },
|
|
53
|
+
{ id: '查看食材', label: '查看食材', scenes: [
|
|
54
|
+
{ id: 'view_ingredients_only', title: '只看食材', wake_word: '查看食材', types: ['查看'], status: '', prompt_template: '{{菜名}}需要哪些食材?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'focus', label: 'focus', value: '食材' }] },
|
|
55
|
+
{ id: 'view_ingredients_grouped', title: '食材分组(11 大类)', wake_word: '查看食材', types: ['查看'], status: '', prompt_template: '{{菜名}}的食材按肉/菜/调料分组给我。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'group_by', label: 'group_by', value: '分类' }] },
|
|
56
|
+
] },
|
|
57
|
+
{ id: '查看步骤', label: '查看步骤', scenes: [
|
|
58
|
+
{ id: 'view_steps_only', title: '只看步骤', wake_word: '查看步骤', types: ['查看'], status: '', prompt_template: '{{菜名}}怎么做?详细步骤。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'focus', label: 'focus', value: '步骤' }] },
|
|
59
|
+
] },
|
|
60
|
+
{ id: '查看营养', label: '查看营养', scenes: [
|
|
61
|
+
{ id: 'view_nutrition_only', title: '只看营养', wake_word: '查看营养', types: ['查看'], status: '', prompt_template: '{{菜名}}的热量和蛋白质多少?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'focus', label: 'focus', value: '营养' }] },
|
|
62
|
+
] },
|
|
63
|
+
{ id: '查看背景', label: '查看背景', scenes: [
|
|
64
|
+
{ id: 'view_background_only', title: '只看背景文化', wake_word: '查看背景', types: ['查看'], status: '', prompt_template: '{{菜名}}有什么历史典故?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'focus', label: 'focus', value: '背景' }] },
|
|
65
|
+
] },
|
|
66
|
+
] },
|
|
67
|
+
{ id: 'search', icon: '🔍', label: '搜索筛选', subgroups: [
|
|
68
|
+
{ id: '搜索食谱', label: '搜索食谱', scenes: [
|
|
69
|
+
{ id: 'search_by_name_keyword', title: '关键词搜索(菜名/食材)', wake_word: '搜索食谱', types: ['查看'], status: '', prompt_template: '搜索排骨。', editable_fields: [{ name: 'keyword', label: 'keyword', value: '菜名片段' }] },
|
|
70
|
+
{ id: 'search_fuzzy_match', title: '错字模糊匹配(纠错提示)', wake_word: '搜索食谱', types: ['查看'], status: '', prompt_template: '搜索宫暴鸡丁(应为宫保)。', editable_fields: [{ name: 'keyword', label: 'keyword', value: '错字/谐音' }] },
|
|
71
|
+
] },
|
|
72
|
+
{ id: '筛选菜系', label: '筛选菜系', scenes: [
|
|
73
|
+
{ id: 'filter_cuisine_basic', title: '按菜系筛选', wake_word: '筛选菜系', types: ['查看'], status: '', prompt_template: '川菜有哪些?', editable_fields: [{ name: 'cuisine', label: 'cuisine', value: '川/粤/湘等' }] },
|
|
74
|
+
{ id: 'filter_combined', title: '多维组合筛选(≤3 维)', wake_word: '筛选菜系', types: ['查看'], status: '', prompt_template: '川菜里 30 分钟内能搞定的。', editable_fields: [{ name: 'cuisine', label: 'cuisine', value: '川' }, { name: 'time_max', label: 'time_max', value: '30 分钟' }, { name: 'extra', label: 'extra', value: '可加第 3 维' }] },
|
|
75
|
+
] },
|
|
76
|
+
{ id: '筛选食材', label: '筛选食材', scenes: [
|
|
77
|
+
{ id: 'filter_by_ingredient_basic', title: '按食材筛选', wake_word: '筛选食材', types: ['查看'], status: '', prompt_template: '哪些菜里有虾。', editable_fields: [{ name: 'ingredient', label: 'ingredient', value: '具体食材名' }] },
|
|
78
|
+
{ id: 'filter_exclude_ingredient', title: '排除食材(忌口)', wake_word: '筛选食材', types: ['查看'], status: '', prompt_template: '不吃辣,有什么菜?', editable_fields: [{ name: 'ingredient_exclude', label: 'ingredient_exclude', value: '不吃某食材' }] },
|
|
79
|
+
] },
|
|
80
|
+
{ id: '筛选难度', label: '筛选难度', scenes: [
|
|
81
|
+
{ id: 'filter_difficulty_easy', title: '按难度筛选', wake_word: '筛选难度', types: ['查看'], status: '【待开发】', prompt_template: '来个简单的。', editable_fields: [{ name: 'difficulty', label: 'difficulty', value: '简单/快手菜' }] },
|
|
82
|
+
] },
|
|
83
|
+
{ id: '筛选时间', label: '筛选时间', scenes: [
|
|
84
|
+
{ id: 'filter_time_quick', title: '按时间筛选(30 分钟内)', wake_word: '筛选时间', types: ['查看'], status: '【待开发】', prompt_template: '30 分钟内的菜。', editable_fields: [{ name: 'time_max', label: 'time_max', value: '30 分钟' }] },
|
|
85
|
+
] },
|
|
86
|
+
{ id: '筛选炊具', label: '筛选炊具', scenes: [
|
|
87
|
+
{ id: 'filter_by_cookware', title: '按炊具筛选', wake_word: '筛选炊具', types: ['查看'], status: '【待开发】', prompt_template: '用砂锅做的菜。', editable_fields: [{ name: 'cookware', label: 'cookware', value: '砂锅/高压锅等' }] },
|
|
88
|
+
] },
|
|
89
|
+
{ id: '筛选口味', label: '筛选口味', scenes: [
|
|
90
|
+
{ id: 'filter_by_flavor', title: '按口味筛选', wake_word: '筛选口味', types: ['查看'], status: '', prompt_template: '辣的菜有哪些。', editable_fields: [{ name: 'flavor', label: 'flavor', value: '辣/甜/鲜等' }] },
|
|
91
|
+
] },
|
|
92
|
+
{ id: '筛选季节', label: '筛选季节', scenes: [
|
|
93
|
+
{ id: 'filter_by_season', title: '按季节筛选', wake_word: '筛选季节', types: ['查看'], status: '', prompt_template: '夏天适合吃什么。', editable_fields: [{ name: 'season', label: 'season', value: '春/夏/秋/冬' }] },
|
|
94
|
+
] },
|
|
95
|
+
{ id: '筛选状态', label: '筛选状态', scenes: [
|
|
96
|
+
{ id: 'filter_by_status', title: '按状态筛选', wake_word: '筛选状态', types: ['查看'], status: '【待开发】', prompt_template: '已做的菜。', editable_fields: [{ name: 'status', label: 'status', value: '未做/已做/熟练/已废弃' }] },
|
|
97
|
+
] },
|
|
98
|
+
{ id: '查看全部', label: '查看全部', scenes: [
|
|
99
|
+
{ id: 'list_all_recipes', title: '列出所有食谱', wake_word: '查看全部', types: ['查看'], status: '', prompt_template: '查看全部。' },
|
|
100
|
+
] },
|
|
101
|
+
] },
|
|
102
|
+
{ id: 'update', icon: '✏️', label: '修改', subgroups: [
|
|
103
|
+
{ id: '修改食谱', label: '修改食谱', scenes: [
|
|
104
|
+
{ id: 'update_main_fields', title: '修改食谱主信息', wake_word: '修改食谱', types: ['对比', '确认', '回执'], status: '', prompt_template: '请加载「私家大厨」技能,帮我修改食谱(唤醒词:修改食谱):\n菜 名: _____________\n要改什么: _____________ (如: 难度改简单 / 份量改 4 人份 / 总时间改 30 分钟)', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'field', label: 'field', value: '目标字段(描述/难度/份量/总时间/状态/图/来源/来源链接,可多个)' }, { name: 'new_value', label: 'new_value', value: '新值(用户提供)' }] },
|
|
105
|
+
] },
|
|
106
|
+
{ id: '修改步骤', label: '修改步骤', scenes: [
|
|
107
|
+
{ id: 'update_step_content', title: '修改步骤(内容/重排)', wake_word: '修改步骤', types: ['对比', '确认', '回执'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我修改步骤(唤醒词:修改步骤):\n菜 名: _____________\n改哪个步骤: _____________ (如: 第 2 步)\n改成什么: _____________ (内容,或「把第 2 步和第 3 步换一下」)', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'step', label: 'step', value: '目标步骤(第 N 步)' }, { name: 'action', label: 'action', value: '改内容 / 重排顺序' }] },
|
|
108
|
+
] },
|
|
109
|
+
{ id: '修改食材', label: '修改食材', scenes: [
|
|
110
|
+
{ id: 'update_ingredient', title: '修改食材(用量/添加/关联步骤)', wake_word: '修改食材', types: ['对比', '确认', '回执'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我修改食材(唤醒词:修改食材):\n菜 名: _____________\n改什么食材: _____________ (如: 虾仁用量改 300g / 加一味生抽 / 生抽关联到第 2 步)', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'ingredient', label: 'ingredient', value: '目标食材' }, { name: 'action', label: 'action', value: '改用量 / 添加食材 / 关联步骤' }] },
|
|
111
|
+
] },
|
|
112
|
+
{ id: '废弃食谱', label: '废弃食谱', scenes: [
|
|
113
|
+
{ id: 'discard_recipe', title: '废弃食谱(只增不删)', wake_word: '废弃食谱', types: ['确认', '回执'], status: '', prompt_template: '请加载「私家大厨」技能,帮我废弃食谱(唤醒词:废弃食谱):\n菜 名: _____________', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'confirm', label: 'confirm', value: '确认废弃(口语词「删掉/不要/废弃」经 AI 确认后执行)' }] },
|
|
114
|
+
] },
|
|
115
|
+
] },
|
|
116
|
+
{ id: 'history', icon: '📜', label: '历史', subgroups: [
|
|
117
|
+
{ id: '记录做菜', label: '记录做菜', scenes: [
|
|
118
|
+
{ id: 'record_cook', title: '记录做菜(完整 + 快速 + 补录)', wake_word: '记录做菜', types: ['采集', '回执'], status: '', prompt_template: '请加载「私家大厨」技能,帮我记录做菜(唤醒词:记录做菜):\n菜 名: _____________\n评 分: _____________ (选填,0-5 可带小数)\n反 馈: _____________ (必填,一句话真实反馈,如「虾很Q弹,下次少放盐」)\n日 期: _____________ (选填,补录填昨天日期,默认今天)', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }, { name: 'rating', label: 'rating', value: '评分(0-5,可小数,选填)' }, { name: 'feedback', label: 'feedback', value: '一句话反馈(必填真实内容,禁「无」占位)' }, { name: 'backdate', label: 'backdate', value: '补录日期(选填,默认今天,YYYY-MM-DD)' }] },
|
|
119
|
+
] },
|
|
120
|
+
{ id: '查看历史', label: '查看历史', scenes: [
|
|
121
|
+
{ id: 'view_history_list', title: '历史时间线', wake_word: '查看历史', types: ['查看'], status: '', prompt_template: '看看{{菜名}}的烹饪历史。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }] },
|
|
122
|
+
] },
|
|
123
|
+
{ id: '查看统计', label: '查看统计', scenes: [
|
|
124
|
+
{ id: 'view_stats_dashboard', title: '单菜统计', wake_word: '查看统计', types: ['查看'], status: '', prompt_template: '{{菜名}}的平均评分是多少?做过几次?', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }] },
|
|
125
|
+
{ id: 'view_stats_global', title: '全局统计(整体画像)', wake_word: '查看统计', types: ['查看'], status: '', prompt_template: '帮我看看我最近的厨艺整体情况。', editable_fields: [{ name: 'scope', label: 'scope', value: '全部食谱' }] },
|
|
126
|
+
] },
|
|
127
|
+
] },
|
|
128
|
+
{ id: 'shopping', icon: '🛒', label: '采购', subgroups: [
|
|
129
|
+
{ id: '生成清单', label: '生成清单', scenes: [
|
|
130
|
+
{ id: 'shopping_generate', title: '生成采购清单', wake_word: '生成清单', types: ['查看', '勾选'], status: '', prompt_template: '请加载「私家大厨」技能,帮我生成采购清单(唤醒词:生成清单):\n菜 名: _____________ (1 个或多个,如: 宫保虾球,辣炒虾球)\n份 数: _____________ (选填,如 2 表示双份;多菜可用 2,1 分别指定)\n排除可选: _____________ (选填,填「排除」则不含可选食材)\n核对家里库存: _____________ (选填,默认核对;不需要填「不核对」;核对由 AI 联动「居家管家」查询,你无需操作)', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名(可多个,逗号/和/顿号分隔)' }, { name: 'servings', label: 'servings', value: '份数倍数(选填,默认 1;不同菜可不同)' }, { name: 'exclude_optional', label: 'exclude_optional', value: '排除可选食材(选填,默认不排除)' }, { name: 'stock_check', label: 'stock_check', value: '是否核对居家管家库存(选填,默认核对)' }] },
|
|
131
|
+
] },
|
|
132
|
+
] },
|
|
133
|
+
{ id: 'add', icon: '📝', label: '录入', subgroups: [
|
|
134
|
+
{ id: '录入食谱', label: '录入食谱', scenes: [
|
|
135
|
+
{ id: 'add_from_image', title: '图片录入(识别图片)', wake_word: '录入食谱', types: ['采集', '回执'], status: '', prompt_template: '[发送图片] 录入这道菜。', editable_fields: [{ name: 'input', label: 'input', value: '图片' }] },
|
|
136
|
+
{ id: 'add_from_markdown', title: 'MD 文件录入', wake_word: '录入食谱', types: ['采集', '回执'], status: '', prompt_template: '[发送 MD 文件] 录入。', editable_fields: [{ name: 'input', label: 'input', value: 'MD 文件' }] },
|
|
137
|
+
{ id: 'add_from_conversation', title: '对话录入(逐步收集)', wake_word: '录入食谱', types: ['采集', '回执'], status: '', prompt_template: '请加载「私家大厨」技能,帮我录入一道新菜(唤醒词:录入食谱):', editable_fields: [{ name: 'input', label: 'input', value: '对话逐步补充' }] },
|
|
138
|
+
{ id: 'add_from_template', title: '结构化模板录入(表单)', wake_word: '录入食谱', types: ['采集', '回执'], status: '', prompt_template: '用表单方式录入这道菜。', editable_fields: [{ name: 'input', label: 'input', value: '表单' }] },
|
|
139
|
+
] },
|
|
140
|
+
{ id: '导入食谱', label: '导入食谱', scenes: [
|
|
141
|
+
{ id: 'import_from_json', title: 'JSON 文件导入', wake_word: '导入食谱', types: ['采集', '回执'], status: '【待开发】', prompt_template: '导入食谱 [JSON 文件]。', editable_fields: [{ name: 'input', label: 'input', value: 'JSON 文件' }] },
|
|
142
|
+
{ id: 'import_validation_failed', title: '导入校验失败(补齐后重试)', wake_word: '导入食谱', types: ['采集', '回执'], status: '【待开发】', prompt_template: '导入这个 JSON。', editable_fields: [{ name: 'input', label: 'input', value: 'JSON 有缺字段' }] },
|
|
143
|
+
] },
|
|
144
|
+
] },
|
|
145
|
+
{ id: 'relation', icon: '🌿', label: '派生', subgroups: [
|
|
146
|
+
{ id: '添加派生关系', label: '添加派生关系', scenes: [
|
|
147
|
+
{ id: 'add_relation', title: '添加派生关系', wake_word: '添加派生关系', types: ['采集', '确认', '回执'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我添加派生关系(唤醒词:添加派生关系):\n子 菜: _____________ (如: 宫保虾球)\n父 菜: _____________ (如: 宫保鸡丁)\n关系类型: _____________ (派生 / 变体 / 改良)\n改动说明: _____________ (必填,如「鸡丁换虾球,减辣」)', editable_fields: [{ name: 'child', label: 'child', value: '子菜(派生出的菜)' }, { name: 'parent', label: 'parent', value: '父菜(派生自的菜)' }, { name: 'relation_type', label: 'relation_type', value: '关系类型(派生/变体/改良)' }, { name: 'change_summary', label: 'change_summary', value: '改动说明(必填)' }] },
|
|
148
|
+
] },
|
|
149
|
+
{ id: '查看派生关系', label: '查看派生关系', scenes: [
|
|
150
|
+
{ id: 'view_relation_tree', title: '查看派生关系(家族树)', wake_word: '查看派生关系', types: ['查看'], status: '【待开发】', prompt_template: '看看{{菜名}}的家族关系。', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名' }] },
|
|
151
|
+
] },
|
|
152
|
+
{ id: '从已有派生新菜', label: '从已有派生新菜', scenes: [
|
|
153
|
+
{ id: 'derive_from_existing', title: '从已有派生新菜', wake_word: '从已有派生新菜', types: ['采集', '确认', '回执'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我从已有菜谱派生新菜(唤醒词:从已有派生新菜):\n母 本: _____________ (如: 咖喱牛腩)\n新菜名: _____________ (如: 咖喱鸡)\n差 异: _____________ (如: 牛腩换鸡,咖喱少放,加椰浆)', editable_fields: [{ name: 'source', label: 'source', value: '母本菜(从它派生)' }, { name: 'target', label: 'target', value: '新菜名' }, { name: 'differences', label: 'differences', value: '差异描述(用户语言,AI 预填)' }] },
|
|
154
|
+
] },
|
|
155
|
+
] },
|
|
156
|
+
{ id: 'setup', icon: '🚀', label: '开始使用', subgroups: [
|
|
157
|
+
{ id: '首次使用', label: '首次使用', scenes: [
|
|
158
|
+
{ id: 'first_use', title: '首次使用(初始化工作流)', wake_word: '首次使用', types: ['向导', '回执'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我完成首次使用初始化(唤醒词:首次使用):' },
|
|
159
|
+
] },
|
|
160
|
+
] },
|
|
161
|
+
{ id: 'data', icon: '🗄️', label: '数据管理', subgroups: [
|
|
162
|
+
{ id: '体检', label: '体检', scenes: [
|
|
163
|
+
{ id: 'data_quality_report', title: '数据质量报告', wake_word: '体检', types: ['查看'], status: '', prompt_template: '请加载「私家大厨」技能,帮我做一次菜谱库体检(唤醒词:体检):\n范 围: _____________ (选填,默认全部食谱)', editable_fields: [{ name: 'scope', label: 'scope', value: '全部食谱' }] },
|
|
164
|
+
] },
|
|
165
|
+
{ id: '批量改', label: '批量改', scenes: [
|
|
166
|
+
{ id: 'data_batch_edit', title: '批量编辑', wake_word: '批量改', types: ['采集', '确认', '回执'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我批量编辑菜谱(唤醒词:批量改):\n菜 名: _____________ (如: 宫保虾球)\n改哪个部分: _____________ (食材 / 步骤 / 标签)', editable_fields: [{ name: 'recipe', label: 'recipe', value: '指定菜名(单菜多字段)' }, { name: 'tab', label: 'tab', value: '食材 / 步骤 / 标签' }] },
|
|
167
|
+
] },
|
|
168
|
+
{ id: '备份', label: '备份', scenes: [
|
|
169
|
+
{ id: 'data_export_backup', title: '导出备份', wake_word: '备份', types: ['转移'], status: '【待开发】', prompt_template: '请加载「私家大厨」技能,帮我备份菜谱库(唤醒词:备份):\n范 围: _____________ (选填,默认全部;要含已废弃的填「含废弃」)', editable_fields: [{ name: 'scope', label: 'scope', value: '全部食谱' }, { name: 'include_archived', label: 'include_archived', value: '是否含已废弃(选填', hint: '是否含已废弃(选填,默认不含)' }] },
|
|
170
|
+
] },
|
|
171
|
+
] },
|
|
172
|
+
];
|
|
173
|
+
/** 全量 `SceneData`(`base-paint` 的 `spec/help.ts` 契约形状;`subtitle`/`contact` 归装配层 #214)。 */
|
|
174
|
+
export function buildChefSceneData() {
|
|
175
|
+
return {
|
|
176
|
+
skill_name: '私家大厨',
|
|
177
|
+
title: '私家大厨 HELP · 能力速查',
|
|
178
|
+
version: '0.1.0',
|
|
179
|
+
groups: CHEF_SCENES,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=sceneData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneData.js","sourceRoot":"","sources":["../../src/help/sceneData.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-chef",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "私家大厨SKILL一期:取数+口径+渲染+出口(8 联动 key+cmd_read+SKILL+HELP+parity),依 link-core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,17 +10,20 @@
|
|
|
10
10
|
"./fetch": "./dist/fetch/index.js",
|
|
11
11
|
"./policy": "./dist/policy/index.js",
|
|
12
12
|
"./render": "./dist/render/index.js",
|
|
13
|
-
"./cli": "./dist/cli/cmd_read.js"
|
|
13
|
+
"./cli": "./dist/cli/cmd_read.js",
|
|
14
|
+
"./package.json": "./package.json"
|
|
14
15
|
},
|
|
15
16
|
"files": [
|
|
16
17
|
"dist",
|
|
17
|
-
"templates/*.html"
|
|
18
|
+
"templates/*.html",
|
|
19
|
+
"SKILL.md"
|
|
18
20
|
],
|
|
19
21
|
"bin": {
|
|
20
22
|
"chef-cmd-read": "./dist/cli/cmd_read.js"
|
|
21
23
|
},
|
|
22
24
|
"dependencies": {
|
|
23
|
-
"base-link-core": "
|
|
25
|
+
"base-link-core": "^0.3.0",
|
|
26
|
+
"base-paint": "^0.3.0"
|
|
24
27
|
},
|
|
25
28
|
"engines": {
|
|
26
29
|
"node": ">=22.13"
|