skill-schedule 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 +99 -0
- package/dist/cli/cmd_read.js +87 -21
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/help/helpFile.d.ts +90 -0
- package/dist/help/helpFile.d.ts.map +1 -0
- package/dist/help/helpFile.js +173 -0
- package/dist/help/helpFile.js.map +1 -0
- package/dist/help/helpPaths.d.ts +13 -0
- package/dist/help/helpPaths.d.ts.map +1 -0
- package/dist/help/helpPaths.js +46 -0
- package/dist/help/helpPaths.js.map +1 -0
- package/dist/help/output.d.ts +21 -0
- package/dist/help/output.d.ts.map +1 -0
- package/dist/help/output.js +92 -0
- package/dist/help/output.js.map +1 -0
- package/dist/help/scenes/help-assets.d.ts +97 -0
- package/dist/help/scenes/help-assets.d.ts.map +1 -0
- package/dist/help/scenes/help-assets.js +2148 -0
- package/dist/help/scenes/help-assets.js.map +1 -0
- package/dist/render/html.d.ts +0 -6
- package/dist/render/html.d.ts.map +1 -1
- package/dist/render/html.js +0 -17
- package/dist/render/html.js.map +1 -1
- package/dist/render/index.d.ts +2 -1
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +3 -1
- package/dist/render/index.js.map +1 -1
- package/dist/shared/templateFill.d.ts +4 -0
- package/dist/shared/templateFill.d.ts.map +1 -0
- package/dist/shared/templateFill.js +20 -0
- package/dist/shared/templateFill.js.map +1 -0
- package/package.json +7 -4
package/SKILL.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-schedule
|
|
3
|
+
description: "「作息管家HELP」/「作息管家 HELP」→schedule.help.lookup 缺省即落一份能打开的 HELP 文件(5 类别/34 唤醒词/85 场景,走共享 help 模板);唯一出口 schedule-cmd-read。触发词:作息管家HELP、作息管家help、作息管家 HELP、作息管家帮助、作息管家能做什么、作息管家使用说明、今天总结、今日作息、今日总结、今天作息、查作息时间轴、查作息状态、初始化数据库、查作息、汇总作息、查作息范围、查作息游标、查作息详情、按ID查记录、补一条作息、录作息、修正作息、改作息、这条记错了、写作息摘要、记作息、对比两个月、月份对比、跨月对比、类别深挖、异常检测、查多日计划、24h 概览、查日程、看日程、商量计划、一起规划、规划明天、规划一天、讨论计划、补计划、改计划、删计划、复盘今日、复盘本周、复盘本月、复盘区间、日程管家同步、飞书探测、复盘"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 作息管家(schedule)SKILL
|
|
7
|
+
|
|
8
|
+
作息记录与日程计划:单日查、区间汇总、详情、记/修正、对比、查日程、商量/补/改/删/复盘、飞书同步。唯一出口 `schedule-cmd-read <schedule.key>`,argv+JSON(stdout)+exit,非 0 走 stderr。
|
|
9
|
+
|
|
10
|
+
## 快速开始
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
schedule-cmd-read schedule.help.lookup # 说「作息管家 HELP」就这一条:缺省落一份 HELP 文件
|
|
14
|
+
schedule-cmd-read schedule.record.today --params '{"date":"今天"}'
|
|
15
|
+
schedule-cmd-read schedule.record.range --params '{"range":"本周"}'
|
|
16
|
+
schedule-cmd-read schedule.plan.today --params '{"date":"2026-09-06"}'
|
|
17
|
+
schedule-cmd-read schedule.record.write --params '{"op":"add","date":"2026-09-06","time_start":"09:00","time_end":"10:00","activity":"调优","category":"工作.AI调优"}'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 口径
|
|
21
|
+
|
|
22
|
+
- 双域隔离:record(真实发生的过去时间块)唤醒词禁含计划/日程;plan(未来安排)唤醒词禁含作息/记录。废弃词(同步作息/作息计划表/配置定时同步)不路由。
|
|
23
|
+
- 分类:一级固定 8 个(维持/健康/工作/学习/创作/投入/调整/日常),二级白名单制;坏分类阻断,无跳过通道。
|
|
24
|
+
- 相对时间:今天/昨天/前天/大前天/明天/后天/大后天;本周/上周/上上周/本月/上月;recentDays=N。周一起始。
|
|
25
|
+
- 商量计划落盘须 24h 覆盖(首 00:00、尾 24:00、逐条相接);补计划按 date+起止三元组幂等;复盘 completion 6 态(已完成/已完成(超时)/部分完成/未完成/未完成(不可抗力)/未复盘)。
|
|
26
|
+
- 健康分:工作≤8h 满分、超 1.5 倍 0 分;其余达目标满分、0.8/0.5 分档衰减;7 维取均(创作不参评)。异常:环比 ±20% 红、±10% 黄。
|
|
27
|
+
- 坏输入与缺失一律阻断(exit 2/4),不返空数组冒充正常;飞书同步须 lark-cli 四门全绿。
|
|
28
|
+
|
|
29
|
+
## 联动速查(构建期注入,勿手改)
|
|
30
|
+
|
|
31
|
+
<!-- HELP-AUTO-START -->
|
|
32
|
+
| 唤醒词 | key | shape | 例 |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| 作息管家 HELP | schedule.help.lookup | list | `schedule-cmd-read schedule.help.lookup` |
|
|
35
|
+
| 作息管家帮助 | schedule.help.lookup | list | `schedule-cmd-read schedule.help.lookup` |
|
|
36
|
+
| 作息管家能做什么 | schedule.help.lookup | list | `schedule-cmd-read schedule.help.lookup` |
|
|
37
|
+
| 作息管家使用说明 | schedule.help.lookup | list | `schedule-cmd-read schedule.help.lookup` |
|
|
38
|
+
| 今天总结 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
39
|
+
| 今日作息 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
40
|
+
| 今日总结 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
41
|
+
| 今天作息 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
42
|
+
| 查作息时间轴 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
43
|
+
| 查作息状态 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
44
|
+
| 初始化数据库 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
45
|
+
| 查作息 | schedule.record.today | list | `schedule-cmd-read schedule.record.today` |
|
|
46
|
+
| 汇总作息 | schedule.record.range | stat | `schedule-cmd-read schedule.record.range --params '{"start":"2026-09-01","end":"2026-09-01"}'` |
|
|
47
|
+
| 查作息范围 | schedule.record.range | stat | `schedule-cmd-read schedule.record.range --params '{"start":"2026-09-01","end":"2026-09-01"}'` |
|
|
48
|
+
| 查作息游标 | schedule.record.range | stat | `schedule-cmd-read schedule.record.range --params '{"start":"2026-09-01","end":"2026-09-01"}'` |
|
|
49
|
+
| 查作息详情 | schedule.record.detail | detail | `schedule-cmd-read schedule.record.detail` |
|
|
50
|
+
| 按ID查记录 | schedule.record.detail | detail | `schedule-cmd-read schedule.record.detail --params '{"id":1}'` |
|
|
51
|
+
| 补一条作息 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"add"}'` |
|
|
52
|
+
| 录作息 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"add"}'` |
|
|
53
|
+
| 修正作息 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"amend","id":1}'` |
|
|
54
|
+
| 改作息 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"amend","id":1}'` |
|
|
55
|
+
| 这条记错了 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"amend","id":1}'` |
|
|
56
|
+
| 写作息摘要 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"summary"}'` |
|
|
57
|
+
| 记作息 | schedule.record.write | receipt | `schedule-cmd-read schedule.record.write --params '{"op":"add"}'` |
|
|
58
|
+
| 对比两个月 | schedule.record.compare | analysis | `schedule-cmd-read schedule.record.compare --params '{"kind":"months"}'` |
|
|
59
|
+
| 月份对比 | schedule.record.compare | analysis | `schedule-cmd-read schedule.record.compare --params '{"kind":"months"}'` |
|
|
60
|
+
| 跨月对比 | schedule.record.compare | analysis | `schedule-cmd-read schedule.record.compare --params '{"kind":"months"}'` |
|
|
61
|
+
| 类别深挖 | schedule.record.compare | analysis | `schedule-cmd-read schedule.record.compare --params '{"kind":"category"}'` |
|
|
62
|
+
| 异常检测 | schedule.record.compare | analysis | `schedule-cmd-read schedule.record.compare --params '{"kind":"anomaly"}'` |
|
|
63
|
+
| 查多日计划 | schedule.plan.today | list | `schedule-cmd-read schedule.plan.today` |
|
|
64
|
+
| 24h 概览 | schedule.plan.today | list | `schedule-cmd-read schedule.plan.today` |
|
|
65
|
+
| 查日程 | schedule.plan.today | list | `schedule-cmd-read schedule.plan.today` |
|
|
66
|
+
| 看日程 | schedule.plan.today | list | `schedule-cmd-read schedule.plan.today` |
|
|
67
|
+
| 商量计划 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"preview"}'` |
|
|
68
|
+
| 一起规划 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"preview"}'` |
|
|
69
|
+
| 规划明天 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"preview"}'` |
|
|
70
|
+
| 规划一天 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"preview"}'` |
|
|
71
|
+
| 讨论计划 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"preview"}'` |
|
|
72
|
+
| 补计划 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"ensure"}'` |
|
|
73
|
+
| 改计划 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"update","id":1}'` |
|
|
74
|
+
| 删计划 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"deactivate","id":1}'` |
|
|
75
|
+
| 复盘今日 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"review","granularity":"day"}'` |
|
|
76
|
+
| 复盘本周 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"review","granularity":"week"}'` |
|
|
77
|
+
| 复盘本月 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"review","granularity":"month"}'` |
|
|
78
|
+
| 复盘区间 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"review","granularity":"range"}'` |
|
|
79
|
+
| 日程管家同步 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"sync"}'` |
|
|
80
|
+
| 飞书探测 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"sync","dryRun":true}'` |
|
|
81
|
+
| 复盘 | schedule.plan.write | receipt | `schedule-cmd-read schedule.plan.write --params '{"op":"review"}'` |
|
|
82
|
+
|
|
83
|
+
相关场景:schedule.help.lookup、schedule.plan.today、schedule.plan.write、schedule.record.compare、schedule.record.detail、schedule.record.range、schedule.record.today、schedule.record.write(8 联动,key 字符串后续票落表时冻结)。
|
|
84
|
+
<!-- HELP-AUTO-END -->
|
|
85
|
+
|
|
86
|
+
## HELP 交付(说「作息管家 HELP」或「作息管家帮助」走这里)
|
|
87
|
+
|
|
88
|
+
- **缺省就是交付物**:`schedule-cmd-read schedule.help.lookup` **原样调用**即落一份能打开的 HELP 文件——`<SKILLS_DB_PATH>/schedule_html/help/作息管家_HELP_<YYYYMMDD_HHMMSS>[_N].html`(5 类别/34 唤醒词/85 场景,走共享 help 模板)。stdout 的 `delivery.path` 是**绝对路径**,`delivery.bytes` 是文件字节数;回话就把这个路径给用户(回执即真相)。
|
|
89
|
+
**完成标准**:`delivery.path` 指向的文件真的存在,且大小=`delivery.bytes`。
|
|
90
|
+
- **要现找才加参数**:`--params '{"q":"查作息"}'` 回命中条目(只出 JSON,不落盘);`q` 留空=全表。全量速查表读上「联动速查」块(48 条路由词,构建期注入,与 `q` 同一张表)。
|
|
91
|
+
- **`--html <路径>`=显式落点**:逐字使用、覆盖写、缺父目录自动建(不参与同秒 `_N` 递补);缺省支写的是完整 HELP 页,`q` 支写的是该键的分节页(与其余 7 条命令同形)。
|
|
92
|
+
- **同名不覆盖**:缺省落点按秒命名,同秒第二次调用递补 `_2`、`_3`……每次回执的路径,内容就是这一次的产物。
|
|
93
|
+
- **看帮助不开库**:本键在开库之前分派,跑完不建 `schedule_data.db`(库还没建出来时也看得到帮助);DB 文件已存在时,页首的首次使用横幅隐藏(判定只看文件在不在,不开库)。
|
|
94
|
+
- **边界**:面板/侧栏的 HELP 入口不在本技能范围(属插件侧那条线,见下「环境与出 scope」)。
|
|
95
|
+
|
|
96
|
+
## 环境与出 scope
|
|
97
|
+
|
|
98
|
+
- SKILLS_DB_PATH(必设,无默认值)+ lark-cli(同步须四门全绿),见 docs/env.md。
|
|
99
|
+
- 出 scope:定时任务/早睡提醒(老家 Cron 已删,外部定时以外置为准)、面板(二期单 MAP)、本技能外联动(combos 登记走后续票);语录取数(daily_recorder.db)以外置为准;真实数据禁迁,测试 tmp 隔离。
|
package/dist/cli/cmd_read.js
CHANGED
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
// 作息管家唯一出口 cmd_read:argv+JSON(stdout)+exit;非 0 走 stderr;超时 terminate+TOAST 降级标记。
|
|
3
3
|
// 退出码对齐 skilllink 冻结:0 ok;1 预检;2 用法/参数;3 key;4 取数/超时;5 envelope/渲染/落盘。
|
|
4
4
|
// stdout 纯净:成功只打 envelope JSON 一行。
|
|
5
|
-
import {
|
|
6
|
-
import { ScheduleFetchError, SchedulePolicyError, resolveDbPath, openScheduleDb, closeScheduleDb, listRecordsByDate, listRecordsRange, getRecordById, getStatus, addRecord, amendRecord, addSummary, listPlanEvents, getPlanEventsRange, searchPlanEvent, ensurePlanEvent, upsertPlanEvents, updatePlanEvent, deactivatePlanEvent, setFeishuEventId, larkReady, searchFeishuEvents, createFeishuEvent, updateFeishuEvent, } from '../fetch/index.js';
|
|
5
|
+
import { existsSync } from 'node:fs';
|
|
6
|
+
import { ScheduleFetchError, SchedulePolicyError, resolveDbPath, resolveDbDir, openScheduleDb, closeScheduleDb, listRecordsByDate, listRecordsRange, getRecordById, getStatus, addRecord, amendRecord, addSummary, listPlanEvents, getPlanEventsRange, searchPlanEvent, ensurePlanEvent, upsertPlanEvents, updatePlanEvent, deactivatePlanEvent, setFeishuEventId, larkReady, searchFeishuEvents, createFeishuEvent, updateFeishuEvent, } from '../fetch/index.js';
|
|
7
7
|
import { resolveDateParam, resolveRangeParam, validateAddInput, validateAmendInput, validateSummaryInput, validateCompareInput, normalizeDate, validateUpsertInput, validateEnsureInput, validateUpdateInput, parsePlanOp, parseRecordOp, VALID_COMPLETIONS, l1Of, toMinutes, } from '../policy/index.js';
|
|
8
8
|
import { scheduleShapeFor, buildScheduleEnvelope, renderEnvelopeHtml, assertHtmlSize, loadTemplate, templateFor, fillTemplate, buildRecordToday, buildRecordRange, buildRecordDetail, buildRecordReceipt, buildRecordCompare, buildCategoryDeep, buildAnomaly, buildPlanToday, buildPlanReceipt, buildHelpItems, ScheduleRenderError, } from '../render/index.js';
|
|
9
9
|
import { buildHelpLookup } from '../help/index.js';
|
|
10
|
+
import { resolveStemTarget } from '../help/helpPaths.js';
|
|
11
|
+
import { HELP_FILE_STEM, buildHelpFileData, renderHelpFileHtml } from '../help/helpFile.js';
|
|
12
|
+
import { HELP_GROUPS } from '../help/scenes/help-assets.js';
|
|
13
|
+
import { deliverHtml } from '../help/output.js';
|
|
10
14
|
const DEFAULT_TIMEOUT_MS = 30000;
|
|
11
15
|
function fail(code, msg) { console.error('ERR ' + code + ': ' + msg); process.exit(code); }
|
|
12
16
|
function toast(msg) { console.error('TOAST: ' + msg); }
|
|
@@ -35,6 +39,58 @@ function monthRange(month) {
|
|
|
35
39
|
function toISODateTime(date, time) {
|
|
36
40
|
return date + 'T' + time + ':00';
|
|
37
41
|
}
|
|
42
|
+
// ── #203 · 「作息管家help」的交付装配(**在开库之前**走,照 skill-bill/src/cli/cmd_read.ts:493-495)────
|
|
43
|
+
//
|
|
44
|
+
// 缺省(不给任何参数)= 全量 HELP 文件:`<SKILLS_DB_PATH>/schedule_html/help/作息管家_HELP_<YYYYMMDD_HHMMSS>[_N].html`
|
|
45
|
+
// (目录与通式照老实物,`t198-old-help-truth.md` 第四节),独占落盘 + **绝对路径**回执
|
|
46
|
+
// (`delivery{mode,path,bytes}` 顶层追加,序在既有五字段之后)。
|
|
47
|
+
// 显式 `q` = 现找:只回命中(stdout),不落盘(检索式问答不刷目录);`--html <路径>` 给了才写那个路径。
|
|
48
|
+
// 全程**不开库**:初始化判据=「DB 文件存在」(照老 `render_help._is_initialized`);
|
|
49
|
+
// 否则「看帮助」会 `new DatabaseSync` 出来并跑 DDL 自愈,把库建在用户还没开始用的目录里。
|
|
50
|
+
const HELP_MODE_FILE = 'file';
|
|
51
|
+
/** 初始化状态:DB **文件存在**=已初始化(照老 `render_help._is_initialized` 与 bill `helpInitialized`)。
|
|
52
|
+
* 判定本身异常 ⇒ `false`=横幅照显(fail-open:误显只多一条提示,误藏会让新用户找不到入口)。 */
|
|
53
|
+
function helpInitialized() {
|
|
54
|
+
try {
|
|
55
|
+
return existsSync(resolveDbPath());
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** 交付索引(`list` 形,`schedule.help.lookup` 的缺省载荷):一级分组一行,计数全**派生**自内容资产
|
|
62
|
+
* (改资产即跟变,不写第二份 5/34/85)。行形状照 bill `HelpIndexItem`,不下重口。 */
|
|
63
|
+
function buildHelpIndex() {
|
|
64
|
+
const items = HELP_GROUPS.map((g) => ({
|
|
65
|
+
id: g.id,
|
|
66
|
+
icon: g.icon,
|
|
67
|
+
label: g.label,
|
|
68
|
+
subgroupCount: g.subgroups.length,
|
|
69
|
+
sceneCount: g.subgroups.reduce((n, s) => n + s.scenes.length, 0),
|
|
70
|
+
}));
|
|
71
|
+
return {
|
|
72
|
+
items,
|
|
73
|
+
total: items.length,
|
|
74
|
+
sceneTotal: items.reduce((n, it) => n + it.sceneCount, 0),
|
|
75
|
+
subgroupTotal: items.reduce((n, it) => n + it.subgroupCount, 0),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function dispatchHelp(params) {
|
|
79
|
+
const dbDir = resolveDbDir();
|
|
80
|
+
const now = new Date();
|
|
81
|
+
const q = params.q === undefined ? undefined : String(params.q);
|
|
82
|
+
if (q !== undefined) {
|
|
83
|
+
// 现找:只回命中;落盘只有用户显式给 `--html <路径>` 才发生(main 里那支)。
|
|
84
|
+
const all = buildHelpLookup().map((h) => ({ phrase: h.phrase, key: h.key, shape: h.shape, cli: h.cli, desc: h.desc }));
|
|
85
|
+
return { data: { ...buildHelpItems(all, q), mode: 'lookup', query: q } };
|
|
86
|
+
}
|
|
87
|
+
const html = renderHelpFileHtml(buildHelpFileData(now, { initialized: helpInitialized() }));
|
|
88
|
+
assertHtmlSize(html);
|
|
89
|
+
return {
|
|
90
|
+
data: { ...buildHelpIndex(), mode: HELP_MODE_FILE, bytes: Buffer.byteLength(html, 'utf8') },
|
|
91
|
+
deliver: { html, target: resolveStemTarget(dbDir, HELP_FILE_STEM, now) },
|
|
92
|
+
};
|
|
93
|
+
}
|
|
38
94
|
function dispatch(key, params) {
|
|
39
95
|
const dbPath = resolveDbPath();
|
|
40
96
|
const handle = openScheduleDb(dbPath);
|
|
@@ -218,11 +274,11 @@ function dispatch(key, params) {
|
|
|
218
274
|
}
|
|
219
275
|
return buildPlanReceipt('已同步 ' + date + ':新建' + created + ' 更新' + updated + '(' + gate.openId + ')');
|
|
220
276
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
277
|
+
// #203:本键由 `dispatchHelp` 在**开库之前**处理(只读页不建库);走到这里说明 main 的路由被改坏了。
|
|
278
|
+
// 照 skill-bill/src/cli/cmd_read.ts:449-451 的同一道内部断言——防的是「改回无条件开库」这个静默回退。
|
|
279
|
+
case 'schedule.help.lookup':
|
|
280
|
+
fail(1, '内部错误:schedule.help.lookup 须走 dispatchHelp(开库之前)');
|
|
281
|
+
return null;
|
|
226
282
|
default:
|
|
227
283
|
fail(3, '未知 schedule key:' + key);
|
|
228
284
|
return null;
|
|
@@ -278,23 +334,31 @@ async function main() {
|
|
|
278
334
|
}, o.timeout);
|
|
279
335
|
if (typeof timer.unref === 'function')
|
|
280
336
|
timer.unref();
|
|
337
|
+
let env = null;
|
|
338
|
+
let delivery;
|
|
281
339
|
try {
|
|
282
|
-
|
|
283
|
-
const
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
340
|
+
// #203:`schedule.help.lookup` 在**开库之前**分派(只读页不建库);其余 7 键照旧走 dispatch(内部开库)。
|
|
341
|
+
const help = key === 'schedule.help.lookup' ? dispatchHelp(params) : null;
|
|
342
|
+
env = buildScheduleEnvelope(key, help ? help.data : dispatch(key, params));
|
|
343
|
+
const built = env;
|
|
344
|
+
// 既有语义(不破):`--html <路径>` 直写该路径,内容=本包 envelope 片段(模板填充后)。
|
|
345
|
+
const sectionHtml = () => {
|
|
346
|
+
const html = fillTemplate(loadTemplate(templateFor(key)), renderEnvelopeHtml(built));
|
|
347
|
+
assertHtmlSize(html);
|
|
348
|
+
return html;
|
|
349
|
+
};
|
|
350
|
+
if (help?.deliver !== undefined) {
|
|
351
|
+
// 本键的产物:缺省=HELP 全壳页(自带 html),落盘走本包统一管线(独占 + 同名递补)。
|
|
352
|
+
const html = help.deliver.html ?? sectionHtml();
|
|
353
|
+
if (help.deliver.html !== undefined)
|
|
287
354
|
assertHtmlSize(html);
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
fail(5, 'HTML 写盘失败:' + o.html + '(' + e.message + ')');
|
|
295
|
-
}
|
|
355
|
+
delivery = deliverHtml({ explicit: o.html, target: help.deliver.target, html });
|
|
356
|
+
note('HTML 已写:' + delivery.path + '(' + delivery.bytes + ' 字节 utf8)');
|
|
357
|
+
}
|
|
358
|
+
else if (o.html !== undefined) {
|
|
359
|
+
delivery = deliverHtml({ explicit: o.html, html: sectionHtml() });
|
|
360
|
+
note('HTML 已写:' + delivery.path + '(' + delivery.bytes + ' 字节 utf8)');
|
|
296
361
|
}
|
|
297
|
-
process.stdout.write(JSON.stringify(env) + '\n');
|
|
298
362
|
clearTimeout(timer);
|
|
299
363
|
}
|
|
300
364
|
catch (e) {
|
|
@@ -307,6 +371,8 @@ async function main() {
|
|
|
307
371
|
fail(5, e.message);
|
|
308
372
|
fail(4, '取数失败:' + e.message);
|
|
309
373
|
}
|
|
374
|
+
// #83/#144 口径的顶层追加:`delivery{mode,path,bytes}` 只追加,既有五字段一字不改、序不变。
|
|
375
|
+
process.stdout.write(JSON.stringify(delivery ? { ...env, delivery } : env) + '\n');
|
|
310
376
|
}
|
|
311
377
|
void main();
|
|
312
378
|
//# 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":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { HELP_GROUPS } from './scenes/help-assets.js';
|
|
2
|
+
import type { HelpGroupAsset } from './scenes/help-assets.js';
|
|
3
|
+
/** 「作息管家help」交付文件的**文件名主体**(接线层写死;调用方不接受外部传入,照 bill 先例)。 */
|
|
4
|
+
export declare const HELP_FILE_STEM: "\u4F5C\u606F\u7BA1\u5BB6_HELP";
|
|
5
|
+
/** 5 键头(旧实物口径的逐字取值)。 */
|
|
6
|
+
export declare const HELP_FILE_SKILL_NAME: "\u4F5C\u606F\u7BA1\u5BB6";
|
|
7
|
+
export declare const HELP_FILE_TITLE: "\u4F5C\u606F\u7BA1\u5BB6 \u00B7 \u4F7F\u7528\u624B\u518C(HELP)";
|
|
8
|
+
/** 技能数据世代版本(照 bill 口径:**不是** npm 包 `skill-schedule@0.1.0`)。 */
|
|
9
|
+
export declare const HELP_FILE_VERSION: "2.0";
|
|
10
|
+
/** 首次使用横幅的 prompt 取自该场景(单源;键=内容资产里的场景 id)。 */
|
|
11
|
+
export declare const HELP_INIT_SCENE_ID: "first_use";
|
|
12
|
+
/** 联系作者一项;`url` 为真时模板把它渲染成可点链接(照 bill 的 `HelpContactItem`)。 */
|
|
13
|
+
export interface HelpContactItem {
|
|
14
|
+
readonly label: string;
|
|
15
|
+
readonly value: string;
|
|
16
|
+
readonly url?: true;
|
|
17
|
+
}
|
|
18
|
+
/** 联系作者(旧实物的三项:邮箱/GitHub/Issues)。 */
|
|
19
|
+
export interface HelpContact {
|
|
20
|
+
readonly items: readonly HelpContactItem[];
|
|
21
|
+
readonly copy_all: true;
|
|
22
|
+
}
|
|
23
|
+
export declare const HELP_CONTACT: HelpContact;
|
|
24
|
+
/** 一次使用的信息块(契约 `meta_blocks[]` 的一条;`html` 原样透传,转义由技能方自理)。 */
|
|
25
|
+
export interface HelpSceneBlock {
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly title: string;
|
|
28
|
+
readonly html: string;
|
|
29
|
+
}
|
|
30
|
+
/** 首次使用横幅(照 bill 五键 + 显隐开关 `hidden`)。 */
|
|
31
|
+
export interface HelpInitBanner {
|
|
32
|
+
readonly title: string;
|
|
33
|
+
readonly subtitle: string;
|
|
34
|
+
readonly button_text: string;
|
|
35
|
+
readonly prompt: string;
|
|
36
|
+
readonly closable: true;
|
|
37
|
+
readonly hidden: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** 全量 HELP JSON(5 必需键 + 三块可选键;共享 help 模板运行时契约的超集)。 */
|
|
40
|
+
export interface HelpFileData {
|
|
41
|
+
readonly skill_name: typeof HELP_FILE_SKILL_NAME;
|
|
42
|
+
readonly title: typeof HELP_FILE_TITLE;
|
|
43
|
+
readonly subtitle: string;
|
|
44
|
+
readonly contact: HelpContact;
|
|
45
|
+
readonly groups: typeof HELP_GROUPS;
|
|
46
|
+
readonly meta_blocks: readonly HelpSceneBlock[];
|
|
47
|
+
readonly version: typeof HELP_FILE_VERSION;
|
|
48
|
+
readonly init_banner: HelpInitBanner;
|
|
49
|
+
}
|
|
50
|
+
export interface HelpFileOptions {
|
|
51
|
+
/** 库是否已初始化(`true` ⇒ 首次使用横幅隐藏)。缺省 `false`=照显(误显的代价小于误藏)。 */
|
|
52
|
+
readonly initialized?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** 旧口径的 `%Y-%m-%d %H:%M`(本地时区、零填充;非法 Date 即坏参,不返空串)。 */
|
|
55
|
+
export declare function formatHelpMinute(now: Date): string;
|
|
56
|
+
/** 页头摘要行(旧口径):计数与版本派生。只进载荷 `subtitle`——A 路模板读了该键后全文零引用(无渲染落点)。 */
|
|
57
|
+
export declare function deriveSummaryLine(now: Date): string;
|
|
58
|
+
/** 坏分组即抛(不静默降级):校验内容资产的**三层形状**与场景必填字段,首个命中即抛。
|
|
59
|
+
*
|
|
60
|
+
* 入参是「待校验的那份分组数据」而不是直接读常量——接线层没有第二条内容来源,
|
|
61
|
+
* 这样写只是让「坏载荷必须抛」这条口径**可测**(用例能喂坏数据进来,而不用去改资产模块的常量)。
|
|
62
|
+
* 默认值与接线用的是同一个只读引用,行为不变。 */
|
|
63
|
+
export declare function assertGroupsUsable(groups?: readonly HelpGroupAsset[]): void;
|
|
64
|
+
/** 首次使用横幅:文案照旧,`prompt` 取该场景的 `prompt_template`(单源)。
|
|
65
|
+
* 该场景缺位即抛(内容资产是机器生成件,缺位属真故障,不把横幅静默降级掉)。 */
|
|
66
|
+
export declare function buildInitBanner(initialized: boolean): HelpInitBanner;
|
|
67
|
+
/** 内容资产 + 派生 → 全量 HELP JSON(纯函数;`now` 显式传入以保证可复现)。 */
|
|
68
|
+
export declare function buildHelpFileData(now?: Date, opts?: HelpFileOptions): HelpFileData;
|
|
69
|
+
/** 载荷里的信息块:**每个一级分组一块**(块 `id` 逐字等于该分组 id)。
|
|
70
|
+
*
|
|
71
|
+
* 模板在**分组页首**按 `m.id === g.key` 挑块渲染(`help-template.html` 页面侧 JS 的 A-3 落点),
|
|
72
|
+
* 故 `id` 对不上任何分组 id 的块**不上页**。块数与条数全由资产派生(块数=分组数、条数=场景数+分组数),
|
|
73
|
+
* 不写第二份数字。 */
|
|
74
|
+
export declare function buildMetaBlocks(): readonly HelpSceneBlock[];
|
|
75
|
+
/** 记账(事实陈述,不是待办):旧 HELP 页把「每条场景的预期结果说明」(85 条)与「一级分组说明」(5 条)
|
|
76
|
+
* 画给用户看,而共享 help 模板此前把载荷 `meta_blocks` 读进来后全文零引用(读入即弃)——那 90 条因此上不了页。
|
|
77
|
+
* 本图内落地两刀:① **模板侧**——分组页锚点(`h += '<div class="page" data-page="' + g.key + '">';` 之后)
|
|
78
|
+
* 按 `m.id === g.key` 条件渲染同 id 的块,无命中时该页 DOM 逐字节不变;② **技能侧**——`buildMetaBlocks`
|
|
79
|
+
* 把两张伴生表按一级分组聚合(每组建一块,不拆 85 块)并逐条转义。
|
|
80
|
+
*
|
|
81
|
+
* 公共层记录面已补齐:`docs/base/base-render/t202-help-meta-blocks.md`(改了什么/条件渲染契约/
|
|
82
|
+
* 在用四家/「不传 `meta_blocks` ⇒ 输出与旧版逐字节相同」与「`html` 原样透传、转义责任在技能侧」两条契约/
|
|
83
|
+
* 复现命令)。改的是 bill/calorie/schedule/memo-ilife 四家共用的资产,跨消费方影响表在那份记录里。
|
|
84
|
+
* `test/help-file-202.test.mjs` 的两条缺口反向锁与 bill 的页正文锁由另一路同步。 */
|
|
85
|
+
/** 全量 HELP JSON → 全壳 HTML(完整文档:`<!DOCTYPE html>` 起、带 `<meta charset>` 与样式)。
|
|
86
|
+
* 模板唯一实现=共享层 `base-paint/help-shell`;本函数只做接线转发,不自造第二套页面。
|
|
87
|
+
* 载荷按共享层声明的 `HelpShellData` 交出去:本模块多带的三块可选键是它的超集
|
|
88
|
+
* (共享层运行时全量读这些键),形状不匹配时在此就地编译报错,不拖到运行时。 */
|
|
89
|
+
export declare function renderHelpFileHtml(data: HelpFileData): string;
|
|
90
|
+
//# sourceMappingURL=helpFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpFile.d.ts","sourceRoot":"","sources":["../../src/help/helpFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/** #202 · 「作息管家help」的交付**内容**:内容资产 + 派生 → 共享 help 模板(`base-paint/help-shell`)全页 HTML。
|
|
2
|
+
*
|
|
3
|
+
* 本模块**零 IO、零落盘**:落点通式与写盘全在交付管线(#203:`help/helpPaths.ts` + `help/output.ts`)。
|
|
4
|
+
* 技术路线与 `skill-bill/src/render/helpFile.ts` 逐字同构(票 #202 与结构裁定 t199 §「消费共享 help 模板」):
|
|
5
|
+
* - **不自持模板副本**:模板源恒在 `packages/base-render/assets/help-template.html`(不进本包 `files`),
|
|
6
|
+
* 本模块只调 `base-paint/help-shell` 的 `renderHelpShellHtml`,不新写页面;
|
|
7
|
+
* - `groups` 由内容资产 `HELP_GROUPS` 直转(只读引用,不 clone、不二次转换);
|
|
8
|
+
* - `subtitle` 是页头摘要行(`deriveSummaryLine` 一处算、一处用),计数**全部派生**,不写死 5/34/85。
|
|
9
|
+
*
|
|
10
|
+
* 五必需键 + 三块可选键(票面 ①):
|
|
11
|
+
* - 必需:`skill_name`/`title`/`subtitle`/`contact`/`groups`;
|
|
12
|
+
* - 可选:`meta_blocks`(**每个一级分组一块**的伴生信息;模板在分组页首按 `id` 命中渲染,见 `buildMetaBlocks`)/
|
|
13
|
+
* `version`(技能数据世代,非 npm 包版本)/
|
|
14
|
+
* `init_banner`(键常在、显隐走 `hidden`,照 bill 的口径:payload 形状不随状态变)。
|
|
15
|
+
*
|
|
16
|
+
* 缺必需键/空分组**抛错不降级**(票面 ③):本模块按 `src/render/errors.ts` 的既有形状抛
|
|
17
|
+
* `ScheduleRenderError`,`code` 取该类型已有的 `'SCHEDULE_BAD_PAYLOAD'`(不新增错误类、不改既有导出面)。
|
|
18
|
+
*
|
|
19
|
+
* 页面长相由共享模板的**页面侧 JS** 决定(静态段只有一个空 `<div id="screen">`,内容全靠运行时按载荷渲染),
|
|
20
|
+
* 故本模块的正确性只有「跑起来看 DOM」才验得准 —— 见 `test/help-file-202.test.mjs` 的运行时段。
|
|
21
|
+
*/
|
|
22
|
+
import { renderHelpShellHtml } from 'base-paint/help-shell';
|
|
23
|
+
import { HELP_ASSETS, HELP_GROUPS, HELP_GROUP_NOTES, HELP_SCENE_RESULTS } from './scenes/help-assets.js';
|
|
24
|
+
import { escapeHtml } from '../render/html.js';
|
|
25
|
+
import { ScheduleRenderError } from '../render/errors.js';
|
|
26
|
+
/** 「作息管家help」交付文件的**文件名主体**(接线层写死;调用方不接受外部传入,照 bill 先例)。 */
|
|
27
|
+
export const HELP_FILE_STEM = '作息管家_HELP';
|
|
28
|
+
/** 5 键头(旧实物口径的逐字取值)。 */
|
|
29
|
+
export const HELP_FILE_SKILL_NAME = '作息管家';
|
|
30
|
+
export const HELP_FILE_TITLE = '作息管家 · 使用手册(HELP)';
|
|
31
|
+
/** 技能数据世代版本(照 bill 口径:**不是** npm 包 `skill-schedule@0.1.0`)。 */
|
|
32
|
+
export const HELP_FILE_VERSION = '2.0';
|
|
33
|
+
/** 首次使用横幅的 prompt 取自该场景(单源;键=内容资产里的场景 id)。 */
|
|
34
|
+
export const HELP_INIT_SCENE_ID = 'first_use';
|
|
35
|
+
export const HELP_CONTACT = Object.freeze({
|
|
36
|
+
items: Object.freeze([
|
|
37
|
+
Object.freeze({ label: '邮箱', value: '975559549@qq.com' }),
|
|
38
|
+
Object.freeze({ label: 'GitHub', value: 'https://github.com/FeatherHunter/SKILLS', url: true }),
|
|
39
|
+
Object.freeze({ label: 'Issues', value: 'https://github.com/FeatherHunter/SKILLS/issues', url: true }),
|
|
40
|
+
]),
|
|
41
|
+
copy_all: true,
|
|
42
|
+
});
|
|
43
|
+
/** 旧口径的 `%Y-%m-%d %H:%M`(本地时区、零填充;非法 Date 即坏参,不返空串)。 */
|
|
44
|
+
export function formatHelpMinute(now) {
|
|
45
|
+
if (!(now instanceof Date) || Number.isNaN(now.getTime())) {
|
|
46
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 更新时间须为有效 Date(缺失阻断不返空)。');
|
|
47
|
+
}
|
|
48
|
+
const p = (n) => String(n).padStart(2, '0');
|
|
49
|
+
return String(now.getFullYear()) + '-' + p(now.getMonth() + 1) + '-' + p(now.getDate())
|
|
50
|
+
+ ' ' + p(now.getHours()) + ':' + p(now.getMinutes());
|
|
51
|
+
}
|
|
52
|
+
/** 一级分组数/唤醒词条数/场景条数:全由内容资产数出来(改资产即跟变,不写第二份数字)。 */
|
|
53
|
+
function assetCounts() {
|
|
54
|
+
const wakeWords = HELP_GROUPS.reduce((n, g) => n + g.subgroups.length, 0);
|
|
55
|
+
const scenes = HELP_GROUPS.reduce((n, g) => n + g.subgroups.reduce((m, s) => m + s.scenes.length, 0), 0);
|
|
56
|
+
return { groups: HELP_GROUPS.length, wakeWords, scenes };
|
|
57
|
+
}
|
|
58
|
+
/** 页头摘要行(旧口径):计数与版本派生。只进载荷 `subtitle`——A 路模板读了该键后全文零引用(无渲染落点)。 */
|
|
59
|
+
export function deriveSummaryLine(now) {
|
|
60
|
+
const n = assetCounts();
|
|
61
|
+
return String(n.groups) + ' 类别 · ' + String(n.wakeWords) + ' 唤醒词 · ' + String(n.scenes)
|
|
62
|
+
+ ' 场景 · 版本 ' + HELP_FILE_VERSION + ' · 更新于 ' + formatHelpMinute(now);
|
|
63
|
+
}
|
|
64
|
+
/** 坏分组即抛(不静默降级):校验内容资产的**三层形状**与场景必填字段,首个命中即抛。
|
|
65
|
+
*
|
|
66
|
+
* 入参是「待校验的那份分组数据」而不是直接读常量——接线层没有第二条内容来源,
|
|
67
|
+
* 这样写只是让「坏载荷必须抛」这条口径**可测**(用例能喂坏数据进来,而不用去改资产模块的常量)。
|
|
68
|
+
* 默认值与接线用的是同一个只读引用,行为不变。 */
|
|
69
|
+
export function assertGroupsUsable(groups = HELP_GROUPS) {
|
|
70
|
+
if (!Array.isArray(groups) || groups.length === 0) {
|
|
71
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 内容资产缺分组(HELP_GROUPS 为空,不返空页)。');
|
|
72
|
+
}
|
|
73
|
+
if (!Array.isArray(HELP_ASSETS) || HELP_ASSETS.length === 0) {
|
|
74
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 内容资产缺场景(HELP_ASSETS 为空,不返空页)。');
|
|
75
|
+
}
|
|
76
|
+
for (const group of groups) {
|
|
77
|
+
if (!Array.isArray(group.subgroups) || group.subgroups.length === 0) {
|
|
78
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 分组无子功能(' + group.id + ' 的 subgroups 为空)。');
|
|
79
|
+
}
|
|
80
|
+
for (const subgroup of group.subgroups) {
|
|
81
|
+
if (!Array.isArray(subgroup.scenes) || subgroup.scenes.length === 0) {
|
|
82
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 子功能无场景(' + subgroup.id + ' 的 scenes 为空,契约 scenes[] 非空)。');
|
|
83
|
+
}
|
|
84
|
+
for (const scene of subgroup.scenes) {
|
|
85
|
+
if (typeof scene.prompt_template !== 'string' || scene.prompt_template.length === 0) {
|
|
86
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 场景缺 prompt(' + scene.id + ')。');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** 首次使用横幅:文案照旧,`prompt` 取该场景的 `prompt_template`(单源)。
|
|
93
|
+
* 该场景缺位即抛(内容资产是机器生成件,缺位属真故障,不把横幅静默降级掉)。 */
|
|
94
|
+
export function buildInitBanner(initialized) {
|
|
95
|
+
const scene = HELP_ASSETS.find((s) => s.id === HELP_INIT_SCENE_ID);
|
|
96
|
+
const prompt = scene?.prompt_template;
|
|
97
|
+
if (typeof prompt !== 'string' || prompt.length === 0) {
|
|
98
|
+
throw new ScheduleRenderError('SCHEDULE_BAD_PAYLOAD', 'HELP 首次使用横幅缺 prompt:内容资产无场景 ' + HELP_INIT_SCENE_ID);
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
title: '🚀 第一次用作息管家?',
|
|
102
|
+
subtitle: '从「首次使用」开始 — 建库、确认数据目录、验证读写,全程零决策。完成初始化后,本区域将不再出现。',
|
|
103
|
+
button_text: '📋 复制初始化 prompt',
|
|
104
|
+
prompt,
|
|
105
|
+
closable: true,
|
|
106
|
+
hidden: initialized === true,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** 内容资产 + 派生 → 全量 HELP JSON(纯函数;`now` 显式传入以保证可复现)。 */
|
|
110
|
+
export function buildHelpFileData(now = new Date(), opts = {}) {
|
|
111
|
+
assertGroupsUsable();
|
|
112
|
+
const summaryLine = deriveSummaryLine(now);
|
|
113
|
+
return {
|
|
114
|
+
skill_name: HELP_FILE_SKILL_NAME,
|
|
115
|
+
title: HELP_FILE_TITLE,
|
|
116
|
+
subtitle: summaryLine,
|
|
117
|
+
contact: HELP_CONTACT,
|
|
118
|
+
groups: HELP_GROUPS,
|
|
119
|
+
meta_blocks: buildMetaBlocks(),
|
|
120
|
+
version: HELP_FILE_VERSION,
|
|
121
|
+
init_banner: buildInitBanner(opts.initialized === true),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/** 一个一级分组的伴生信息块正文:分组说明(`HELP_GROUP_NOTES`)+ 该组各场景「标题 · 预期」(`HELP_SCENE_RESULTS`)。
|
|
125
|
+
*
|
|
126
|
+
* `meta_blocks[].html` 由模板**原样透传**(不过滤),故这里逐条 `escapeHtml`:含 ASCII 尖括号的原文
|
|
127
|
+
* (如 `replay_range` 的 `<start> <end>`)不转义会被浏览器当标签解析、原文丢失。行形状复用模板
|
|
128
|
+
* `about-sec` 家族的 `.about-row`/`.a-t`(不新造类名)——样式由**模板侧** `.meta-sec` 区提供
|
|
129
|
+
* (`help-template.html:57` 的 `.meta-sec .a-t span`,靠源序盖过 `:52` 的 `.about-row .a-t span`):
|
|
130
|
+
* 本侧不自带 CSS,但正文形状与模板那一行样式**互相耦合**,改模板 `.meta-sec` 区须同步这里。
|
|
131
|
+
* 契约=`docs/base/base-render/t202-help-meta-blocks.md`。 */
|
|
132
|
+
function groupBlockHtml(group) {
|
|
133
|
+
const rows = [];
|
|
134
|
+
const note = HELP_GROUP_NOTES[group.id];
|
|
135
|
+
if (note)
|
|
136
|
+
rows.push('<div class="about-row"><div class="a-t"><span>' + escapeHtml(note) + '</span></div></div>');
|
|
137
|
+
for (const subgroup of group.subgroups) {
|
|
138
|
+
for (const scene of subgroup.scenes) {
|
|
139
|
+
const result = HELP_SCENE_RESULTS[scene.id];
|
|
140
|
+
rows.push('<div class="about-row"><div class="a-t"><b>' + escapeHtml(scene.title) + '</b>'
|
|
141
|
+
+ (result ? '<span>预期 · ' + escapeHtml(result) + '</span>' : '') + '</div></div>');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return rows.join('');
|
|
145
|
+
}
|
|
146
|
+
/** 载荷里的信息块:**每个一级分组一块**(块 `id` 逐字等于该分组 id)。
|
|
147
|
+
*
|
|
148
|
+
* 模板在**分组页首**按 `m.id === g.key` 挑块渲染(`help-template.html` 页面侧 JS 的 A-3 落点),
|
|
149
|
+
* 故 `id` 对不上任何分组 id 的块**不上页**。块数与条数全由资产派生(块数=分组数、条数=场景数+分组数),
|
|
150
|
+
* 不写第二份数字。 */
|
|
151
|
+
export function buildMetaBlocks() {
|
|
152
|
+
return HELP_GROUPS.map((group) => ({ id: group.id, title: group.label, html: groupBlockHtml(group) }));
|
|
153
|
+
}
|
|
154
|
+
/* ── 90 条伴生信息:**已上页**(原 `TODO(t197-90条)` 缺口,在本图内落地后删去该标记)────────── */
|
|
155
|
+
/** 记账(事实陈述,不是待办):旧 HELP 页把「每条场景的预期结果说明」(85 条)与「一级分组说明」(5 条)
|
|
156
|
+
* 画给用户看,而共享 help 模板此前把载荷 `meta_blocks` 读进来后全文零引用(读入即弃)——那 90 条因此上不了页。
|
|
157
|
+
* 本图内落地两刀:① **模板侧**——分组页锚点(`h += '<div class="page" data-page="' + g.key + '">';` 之后)
|
|
158
|
+
* 按 `m.id === g.key` 条件渲染同 id 的块,无命中时该页 DOM 逐字节不变;② **技能侧**——`buildMetaBlocks`
|
|
159
|
+
* 把两张伴生表按一级分组聚合(每组建一块,不拆 85 块)并逐条转义。
|
|
160
|
+
*
|
|
161
|
+
* 公共层记录面已补齐:`docs/base/base-render/t202-help-meta-blocks.md`(改了什么/条件渲染契约/
|
|
162
|
+
* 在用四家/「不传 `meta_blocks` ⇒ 输出与旧版逐字节相同」与「`html` 原样透传、转义责任在技能侧」两条契约/
|
|
163
|
+
* 复现命令)。改的是 bill/calorie/schedule/memo-ilife 四家共用的资产,跨消费方影响表在那份记录里。
|
|
164
|
+
* `test/help-file-202.test.mjs` 的两条缺口反向锁与 bill 的页正文锁由另一路同步。 */
|
|
165
|
+
/** 全量 HELP JSON → 全壳 HTML(完整文档:`<!DOCTYPE html>` 起、带 `<meta charset>` 与样式)。
|
|
166
|
+
* 模板唯一实现=共享层 `base-paint/help-shell`;本函数只做接线转发,不自造第二套页面。
|
|
167
|
+
* 载荷按共享层声明的 `HelpShellData` 交出去:本模块多带的三块可选键是它的超集
|
|
168
|
+
* (共享层运行时全量读这些键),形状不匹配时在此就地编译报错,不拖到运行时。 */
|
|
169
|
+
export function renderHelpFileHtml(data) {
|
|
170
|
+
const payload = data;
|
|
171
|
+
return renderHelpShellHtml(payload);
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=helpFile.js.map
|