skill-schedule 0.3.1 → 0.3.2
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 +9 -7
- package/dist/.gen-inputs.json +45 -0
- package/dist/admin/commands.d.ts +10 -0
- package/dist/admin/commands.d.ts.map +1 -0
- package/dist/admin/commands.js +5 -0
- package/dist/admin/commands.js.map +1 -0
- package/dist/admin/handlers.d.ts +3 -0
- package/dist/admin/handlers.d.ts.map +1 -0
- package/dist/admin/handlers.js +66 -0
- package/dist/admin/handlers.js.map +1 -0
- package/dist/admin/index.d.ts +3 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +3 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/routes.d.ts +8 -0
- package/dist/admin/routes.d.ts.map +1 -0
- package/dist/admin/routes.js +7 -0
- package/dist/admin/routes.js.map +1 -0
- package/dist/analyze/commands.d.ts +10 -0
- package/dist/analyze/commands.d.ts.map +1 -0
- package/dist/analyze/commands.js +5 -0
- package/dist/analyze/commands.js.map +1 -0
- package/dist/analyze/handlers.d.ts +3 -0
- package/dist/analyze/handlers.d.ts.map +1 -0
- package/dist/analyze/handlers.js +57 -0
- package/dist/analyze/handlers.js.map +1 -0
- package/dist/analyze/index.d.ts +3 -0
- package/dist/analyze/index.d.ts.map +1 -0
- package/dist/analyze/index.js +3 -0
- package/dist/analyze/index.js.map +1 -0
- package/dist/analyze/routes.d.ts +8 -0
- package/dist/analyze/routes.d.ts.map +1 -0
- package/dist/analyze/routes.js +8 -0
- package/dist/analyze/routes.js.map +1 -0
- package/dist/cli/cmd_read.js +46 -249
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/cli/keys.d.ts +5 -0
- package/dist/cli/keys.d.ts.map +1 -0
- package/dist/cli/keys.js +21 -0
- package/dist/cli/keys.js.map +1 -0
- package/dist/cli/registry.d.ts +4 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +12 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/config.d.ts +7 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -3
- package/dist/config.js.map +1 -1
- package/dist/delivery/index.d.ts +8 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +7 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/delivery/naming.d.ts +24 -0
- package/dist/delivery/naming.d.ts.map +1 -0
- package/dist/delivery/naming.js +8 -0
- package/dist/delivery/naming.js.map +1 -0
- package/dist/delivery/output.d.ts +22 -0
- package/dist/delivery/output.d.ts.map +1 -0
- package/dist/delivery/output.js +83 -0
- package/dist/delivery/output.js.map +1 -0
- package/dist/fetch/paths.d.ts +19 -5
- package/dist/fetch/paths.d.ts.map +1 -1
- package/dist/fetch/paths.js +26 -8
- package/dist/fetch/paths.js.map +1 -1
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +2 -1
- package/dist/health.js.map +1 -1
- package/dist/help/helpPaths.d.ts +11 -13
- package/dist/help/helpPaths.d.ts.map +1 -1
- package/dist/help/helpPaths.js +9 -39
- package/dist/help/helpPaths.js.map +1 -1
- package/dist/plan/commands.d.ts +9 -0
- package/dist/plan/commands.d.ts.map +1 -0
- package/dist/plan/commands.js +5 -0
- package/dist/plan/commands.js.map +1 -0
- package/dist/plan/handlers.d.ts +3 -0
- package/dist/plan/handlers.d.ts.map +1 -0
- package/dist/plan/handlers.js +31 -0
- package/dist/plan/handlers.js.map +1 -0
- package/dist/plan/index.d.ts +2 -0
- package/dist/plan/index.d.ts.map +1 -1
- package/dist/plan/index.js +4 -2
- package/dist/plan/index.js.map +1 -1
- package/dist/plan/routes.d.ts +8 -0
- package/dist/plan/routes.d.ts.map +1 -0
- package/dist/plan/routes.js +18 -0
- package/dist/plan/routes.js.map +1 -0
- package/dist/policy/wakewords.d.ts.map +1 -1
- package/dist/policy/wakewords.js +9 -59
- package/dist/policy/wakewords.js.map +1 -1
- package/dist/query/commands.d.ts +26 -0
- package/dist/query/commands.d.ts.map +1 -0
- package/dist/query/commands.js +8 -0
- package/dist/query/commands.js.map +1 -0
- package/dist/query/handlers.d.ts +6 -0
- package/dist/query/handlers.d.ts.map +1 -0
- package/dist/query/handlers.js +67 -0
- package/dist/query/handlers.js.map +1 -0
- package/dist/query/index.d.ts +3 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +3 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/routes.d.ts +9 -0
- package/dist/query/routes.d.ts.map +1 -0
- package/dist/query/routes.js +20 -0
- package/dist/query/routes.js.map +1 -0
- package/dist/render/envelope.d.ts +2 -1
- package/dist/render/envelope.d.ts.map +1 -1
- package/dist/render/envelope.js +5 -11
- package/dist/render/envelope.js.map +1 -1
- package/dist/shared/commandSpec.d.ts +83 -0
- package/dist/shared/commandSpec.d.ts.map +1 -0
- package/dist/shared/commandSpec.js +2 -0
- package/dist/shared/commandSpec.js.map +1 -0
- package/dist/triggers/routes.generated.d.ts +297 -0
- package/dist/triggers/routes.generated.d.ts.map +1 -0
- package/dist/triggers/routes.generated.js +52 -0
- package/dist/triggers/routes.generated.js.map +1 -0
- package/dist/write/commands.d.ts +9 -0
- package/dist/write/commands.d.ts.map +1 -0
- package/dist/write/commands.js +5 -0
- package/dist/write/commands.js.map +1 -0
- package/dist/write/handlers.d.ts +3 -0
- package/dist/write/handlers.d.ts.map +1 -0
- package/dist/write/handlers.js +24 -0
- package/dist/write/handlers.js.map +1 -0
- package/dist/write/index.d.ts +3 -0
- package/dist/write/index.d.ts.map +1 -0
- package/dist/write/index.js +3 -0
- package/dist/write/index.js.map +1 -0
- package/dist/write/routes.d.ts +8 -0
- package/dist/write/routes.d.ts.map +1 -0
- package/dist/write/routes.js +10 -0
- package/dist/write/routes.js.map +1 -0
- package/package.json +3 -3
package/dist/cli/cmd_read.js
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { existsSync } from 'node:fs';
|
|
6
|
-
import { ScheduleFetchError, SchedulePolicyError, resolveDbPath, resolveDbDir, openScheduleDb, closeScheduleDb, listRecordsByDate, listRecordsRange, getRecordById, getStatus, addRecord, amendRecord, addSummary, listPlanEvents, getPlanEventsRange, searchPlanEvent, larkReady, } from '../fetch/index.js';
|
|
7
|
-
import { resolveDateParam, resolveRangeParam, validateAddInput, validateAmendInput, validateSummaryInput, validateCompareInput, normalizeDate, parsePlanOp, parseRecordOp, parseFeishuMode, parsePlanView, l1Of, } from '../policy/index.js';
|
|
8
|
-
import { runPlanOp, buildPlanOverview } from '../plan/index.js';
|
|
9
|
-
import { scheduleShapeFor, buildScheduleEnvelope, renderEnvelopeHtml, assertHtmlSize, loadTemplate, templateFor, fillTemplate, buildRecordToday, buildRecordRange, buildRecordDetail, buildRecordReceipt, buildRecordCompare, buildCategoryDeep, buildAnomaly, buildPlanToday, buildHelpItems, ScheduleRenderError, } from '../render/index.js';
|
|
10
|
-
import { buildHelpLookup } from '../help/index.js';
|
|
11
|
-
import { resolveHelpDir } from '../help/helpPaths.js';
|
|
12
|
-
import { helpFileStem, buildHelpFileData, renderHelpFileHtml } from '../help/helpFile.js';
|
|
13
|
-
import { HELP_GROUPS } from '../help/scenes/help-assets.js';
|
|
14
|
-
import { deliverHtml } from '../help/output.js';
|
|
2
|
+
import { REGISTRY } from './registry.js';
|
|
3
|
+
import { ScheduleFetchError, SchedulePolicyError, resolveDbPath, openScheduleDb, closeScheduleDb, } from '../fetch/index.js';
|
|
4
|
+
import { scheduleShapeFor, buildScheduleEnvelope, renderEnvelopeHtml, assertHtmlSize, loadTemplate, templateFor, fillTemplate, ScheduleRenderError, } from '../render/index.js';
|
|
15
5
|
import { isConfigKey, runConfigKey } from './config.js';
|
|
16
6
|
// #706 · 配置体检:设置页专用的一条只读命令,同走「进分派层之前拦下」这条口(判据住 src/health.ts)。
|
|
17
7
|
import { isHealthCheckKey, runHealthCheckKey } from './health.js';
|
|
18
|
-
|
|
8
|
+
// #843 · 交付面:落盘唯一那条链(`delivery/output.ts`)+ 文件名主体一处定义(`delivery/naming.ts`)。
|
|
9
|
+
import { deliverHtml, pageStemFor } from '../delivery/index.js';
|
|
10
|
+
import { resolveHtmlDir } from '../fetch/index.js';
|
|
19
11
|
const DEFAULT_TIMEOUT_MS = 30000;
|
|
20
12
|
function fail(code, msg) { console.error('ERR ' + code + ': ' + msg); process.exit(code); }
|
|
21
13
|
function toast(msg) { console.error('TOAST: ' + msg); }
|
|
@@ -27,227 +19,14 @@ function preflight() {
|
|
|
27
19
|
if (!(v[0] > 22 || (v[0] === 22 && v[1] >= 13)))
|
|
28
20
|
fail(1, 'node 低于 22.13:' + process.versions.node);
|
|
29
21
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (!Number.isInteger(v) || v <= 0)
|
|
33
|
-
fail(2, '缺参数 ' + name + '(须为正整数)');
|
|
34
|
-
return v;
|
|
35
|
-
}
|
|
36
|
-
function monthRange(month) {
|
|
37
|
-
const [y, m] = month.split('-').map(Number);
|
|
38
|
-
const last = new Date(y, m, 0).getDate();
|
|
39
|
-
const dd = String(last).padStart(2, '0');
|
|
40
|
-
return { start: month + '-01', end: month + '-' + dd };
|
|
41
|
-
}
|
|
42
|
-
function toISODateTime(date, time) {
|
|
43
|
-
return date + 'T' + time + ':00';
|
|
44
|
-
}
|
|
45
|
-
// ── #203 · 「作息管家help」的交付装配(**在开库之前**走,照 skill-bill/src/cli/cmd_read.ts:493-495)────
|
|
46
|
-
//
|
|
47
|
-
// 缺省(不给任何参数)= 全量 HELP 文件:`<库目录>/schedule_html/help/作息管家_HELP_<YYYYMMDD_HHMMSS>[_N].html`
|
|
48
|
-
// (库目录=配置项 `db.dir`,空串即数据目录;两级子目录与主体名从配置取,默认逐字等于老常量,
|
|
49
|
-
// `t198-old-help-truth.md` 第四节),独占落盘 + **绝对路径**回执
|
|
50
|
-
// (`delivery{mode,path,bytes}` 顶层追加,序在既有五字段之后)。
|
|
51
|
-
// 显式 `q` = 现找:只回命中(stdout),不落盘(检索式问答不刷目录);`--html <路径>` 给了才写那个路径。
|
|
52
|
-
// 全程**不开库**:初始化判据=「DB 文件存在」(照老 `render_help._is_initialized`);
|
|
53
|
-
// 否则「看帮助」会 `new DatabaseSync` 出来并跑 DDL 自愈,把库建在用户还没开始用的目录里。
|
|
54
|
-
const HELP_MODE_FILE = 'file';
|
|
55
|
-
/** HELP 产物吃的复用窗口(毫秒):缺省**一天**、`reuseHours` 可改(`0`=每次都落新的)。
|
|
56
|
-
* 换算与坏参判定都在共用件(`helpReuseWindowOf` 把坏参 `RangeError` 交给这里给的处理器)⇒ 归到出口的
|
|
57
|
-
* 「参数错」那一档(exit 2),与其余四家同档:坏参绝不静默当 0。 */
|
|
58
|
-
const helpWindowOrFail = helpReuseWindowOf((m) => fail(2, m));
|
|
59
|
-
/** 初始化状态:DB **文件存在**=已初始化(照老 `render_help._is_initialized` 与 bill `helpInitialized`)。
|
|
60
|
-
* 判定本身异常 ⇒ `false`=横幅照显(fail-open:误显只多一条提示,误藏会让新用户找不到入口)。 */
|
|
61
|
-
function helpInitialized() {
|
|
62
|
-
try {
|
|
63
|
-
return existsSync(resolveDbPath());
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/** 交付索引(`list` 形,`schedule.help.lookup` 的缺省载荷):一级分组一行,计数全**派生**自内容资产
|
|
70
|
-
* (改资产即跟变,不写第二份 5/34/85)。行形状照 bill `HelpIndexItem`,不下重口。 */
|
|
71
|
-
function buildHelpIndex() {
|
|
72
|
-
const items = HELP_GROUPS.map((g) => ({
|
|
73
|
-
id: g.id,
|
|
74
|
-
icon: g.icon,
|
|
75
|
-
label: g.label,
|
|
76
|
-
subgroupCount: g.subgroups.length,
|
|
77
|
-
sceneCount: g.subgroups.reduce((n, s) => n + s.scenes.length, 0),
|
|
78
|
-
}));
|
|
79
|
-
return {
|
|
80
|
-
items,
|
|
81
|
-
total: items.length,
|
|
82
|
-
sceneTotal: items.reduce((n, it) => n + it.sceneCount, 0),
|
|
83
|
-
subgroupTotal: items.reduce((n, it) => n + it.subgroupCount, 0),
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function dispatchHelp(params) {
|
|
87
|
-
const dbDir = resolveDbDir();
|
|
88
|
-
const now = new Date();
|
|
89
|
-
const q = params.q === undefined ? undefined : String(params.q);
|
|
90
|
-
if (q !== undefined) {
|
|
91
|
-
// 现找:只回命中;落盘只有用户显式给 `--html <路径>` 才发生(main 里那支)。
|
|
92
|
-
const all = buildHelpLookup().map((h) => ({ phrase: h.phrase, key: h.key, shape: h.shape, cli: h.cli, desc: h.desc }));
|
|
93
|
-
return { data: { ...buildHelpItems(all, q), mode: 'lookup', query: q } };
|
|
94
|
-
}
|
|
95
|
-
// #245:HELP 产物吃复用窗口(缺省一天内只留一份,`reuseHours` 可改);坏参在这里就抛(出口归 exit 2)。
|
|
96
|
-
const reuseMs = helpWindowOrFail(params);
|
|
97
|
-
const html = renderHelpFileHtml(buildHelpFileData(now, { initialized: helpInitialized() }));
|
|
98
|
-
assertHtmlSize(html);
|
|
99
|
-
return {
|
|
100
|
-
data: { ...buildHelpIndex(), mode: HELP_MODE_FILE, bytes: Buffer.byteLength(html, 'utf8') },
|
|
101
|
-
deliver: { html, targetDir: resolveHelpDir(dbDir), stem: helpFileStem(), reuseMs },
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
/** 哪些 op 要碰远端(其余 op 连 lark-cli 都不探——探测本身是三次子进程)。 */
|
|
105
|
-
const REMOTE_OPS = ['ensure', 'upsert', 'update', 'deactivate', 'sync', 'check'];
|
|
106
|
-
/** 远端门:过了给 cliPath;没过给「为什么不在场」——**不拦本地写**,只如实进回执与退出码。 */
|
|
107
|
-
function remoteGate(op, params) {
|
|
108
|
-
if (!REMOTE_OPS.includes(op))
|
|
109
|
-
return { cli: null, why: null };
|
|
110
|
-
// sync/check 本身就是远端命令:`feishu:'skip'` 对它们不成立,照探(探不到即阻断/降级)。
|
|
111
|
-
if (op !== 'sync' && op !== 'check' && parseFeishuMode(params) === 'skip')
|
|
112
|
-
return { cli: null, why: null };
|
|
113
|
-
try {
|
|
114
|
-
return { cli: larkReady().cliPath, why: null };
|
|
115
|
-
}
|
|
116
|
-
catch (e) {
|
|
117
|
-
return { cli: null, why: e.message };
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
function dispatch(key, params) {
|
|
22
|
+
/** 开库跑一条非 HELP 命令:DB 已初始化提示与库句柄生命周期住这里(stderr 字节与旧 dispatch 一致)。 */
|
|
23
|
+
function runWithDb(spec, params) {
|
|
121
24
|
const dbPath = resolveDbPath();
|
|
122
25
|
const handle = openScheduleDb(dbPath);
|
|
123
26
|
try {
|
|
124
27
|
if (handle.initialized)
|
|
125
28
|
note('作息 DB 已初始化:' + dbPath);
|
|
126
|
-
|
|
127
|
-
case 'schedule.record.today': {
|
|
128
|
-
const date = resolveDateParam(params);
|
|
129
|
-
const records = listRecordsByDate(handle, date);
|
|
130
|
-
const st = getStatus(handle);
|
|
131
|
-
if (st.records === 0)
|
|
132
|
-
note('库空:真实无记录(非故障)');
|
|
133
|
-
return { data: buildRecordToday(date, records), exitCode: 0 };
|
|
134
|
-
}
|
|
135
|
-
case 'schedule.record.range': {
|
|
136
|
-
const { start, end } = resolveRangeParam(params);
|
|
137
|
-
const records = listRecordsRange(handle, start, end);
|
|
138
|
-
if (!records.length) {
|
|
139
|
-
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '区间无记录:' + start + '~' + end + '(缺失阻断,不返空统计)');
|
|
140
|
-
}
|
|
141
|
-
return { data: buildRecordRange(start, end, records), exitCode: 0 };
|
|
142
|
-
}
|
|
143
|
-
case 'schedule.record.detail': {
|
|
144
|
-
if (params.id !== undefined)
|
|
145
|
-
return { data: buildRecordDetail(getRecordById(handle, needInt(params, 'id'))), exitCode: 0 };
|
|
146
|
-
const date = resolveDateParam(params);
|
|
147
|
-
const records = listRecordsByDate(handle, date);
|
|
148
|
-
if (!records.length)
|
|
149
|
-
throw new ScheduleFetchError('SCHEDULE_RECORD_NOT_FOUND', '当日无记录:' + date);
|
|
150
|
-
return { data: buildRecordDetail(records[0]), exitCode: 0 };
|
|
151
|
-
}
|
|
152
|
-
case 'schedule.record.write': {
|
|
153
|
-
const op = parseRecordOp(params);
|
|
154
|
-
if (op === 'add') {
|
|
155
|
-
const input = validateAddInput(params);
|
|
156
|
-
const r = addRecord(handle, input);
|
|
157
|
-
return { data: buildRecordReceipt('已记一条:' + r.id + '(' + r.date + ' ' + r.time_start + '~' + r.time_end + ' ' + r.category + ')'), exitCode: 0 };
|
|
158
|
-
}
|
|
159
|
-
if (op === 'amend') {
|
|
160
|
-
const { id, patch } = validateAmendInput(params);
|
|
161
|
-
const r = amendRecord(handle, id, patch);
|
|
162
|
-
return { data: buildRecordReceipt('已修正:' + r.id + '(edit_count=' + r.edit_count + ')'), exitCode: 0 };
|
|
163
|
-
}
|
|
164
|
-
const s = validateSummaryInput(params);
|
|
165
|
-
addSummary(handle, s.date, s.category, s.totalMinutes);
|
|
166
|
-
return { data: buildRecordReceipt('已写摘要:' + s.date + ' ' + s.category + '=' + s.totalMinutes + '分钟'), exitCode: 0 };
|
|
167
|
-
}
|
|
168
|
-
case 'schedule.record.compare': {
|
|
169
|
-
const c = validateCompareInput(params);
|
|
170
|
-
if (c.kind === 'months') {
|
|
171
|
-
const ra = monthRange(c.monthA);
|
|
172
|
-
const rb = monthRange(c.monthB);
|
|
173
|
-
const a = listRecordsRange(handle, ra.start, ra.end);
|
|
174
|
-
const b = listRecordsRange(handle, rb.start, rb.end);
|
|
175
|
-
if (!a.length || !b.length) {
|
|
176
|
-
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '对比缺数据:' + c.monthA + '(' + a.length + '块)/' + c.monthB + '(' + b.length + '块)');
|
|
177
|
-
}
|
|
178
|
-
return { data: buildRecordCompare({ labelA: c.monthA, labelB: c.monthB, a, b }), exitCode: 0 };
|
|
179
|
-
}
|
|
180
|
-
if (c.kind === 'ranges') {
|
|
181
|
-
const a = listRecordsRange(handle, c.startA, c.endA);
|
|
182
|
-
const b = listRecordsRange(handle, c.startB, c.endB);
|
|
183
|
-
if (!a.length || !b.length)
|
|
184
|
-
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '对比缺数据(两侧均须有记录)');
|
|
185
|
-
return { data: buildRecordCompare({ labelA: c.labelA, labelB: c.labelB, a, b }), exitCode: 0 };
|
|
186
|
-
}
|
|
187
|
-
if (c.kind === 'category') {
|
|
188
|
-
const records = listRecordsRange(handle, c.start, c.end);
|
|
189
|
-
if (!records.length)
|
|
190
|
-
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '区间无记录:' + c.start + '~' + c.end);
|
|
191
|
-
return { data: buildCategoryDeep(c.start, c.end, c.category, records), exitCode: 0 };
|
|
192
|
-
}
|
|
193
|
-
const w = c.windowDays;
|
|
194
|
-
const end = c.end;
|
|
195
|
-
const d = new Date(end + 'T00:00:00');
|
|
196
|
-
d.setDate(d.getDate() - (w - 1));
|
|
197
|
-
const start = d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0');
|
|
198
|
-
const records = listRecordsRange(handle, start, end);
|
|
199
|
-
if (!records.length)
|
|
200
|
-
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '窗口无记录:' + start + '~' + end);
|
|
201
|
-
const byDay = new Map();
|
|
202
|
-
for (const r of records) {
|
|
203
|
-
const m = byDay.get(r.date) || {};
|
|
204
|
-
const k = l1Of(r.category);
|
|
205
|
-
m[k] = (m[k] || 0) + (r.duration_minutes || 0);
|
|
206
|
-
byDay.set(r.date, m);
|
|
207
|
-
}
|
|
208
|
-
const daily = [...byDay.entries()].sort().map(([date, byL1]) => ({ date, byL1 }));
|
|
209
|
-
return { data: buildAnomaly(end, w, daily), exitCode: 0 };
|
|
210
|
-
}
|
|
211
|
-
case 'schedule.plan.today': {
|
|
212
|
-
// #15/#16:24h 聚合视图(分桶 + 多日)走 `view=aggregate`;#12 查日程走全字段 list。
|
|
213
|
-
if (parsePlanView(params) === 'aggregate') {
|
|
214
|
-
const dates = Array.isArray(params.dates) && params.dates.length
|
|
215
|
-
? params.dates.map((x) => normalizeDate(x, 'dates[]'))
|
|
216
|
-
: [resolveDateParam(params)];
|
|
217
|
-
return { data: buildPlanOverview(handle, dates), exitCode: 0 };
|
|
218
|
-
}
|
|
219
|
-
if (typeof params.title === 'string' && params.title.trim()) {
|
|
220
|
-
const date = resolveDateParam(params);
|
|
221
|
-
const hits = searchPlanEvent(handle, date, params.title.trim(), params.time_start, params.time_end);
|
|
222
|
-
return { data: buildPlanToday(date, hits), exitCode: 0 };
|
|
223
|
-
}
|
|
224
|
-
if (Array.isArray(params.dates) && params.dates.length) {
|
|
225
|
-
const dates = params.dates.map((x) => normalizeDate(x, 'dates[]'));
|
|
226
|
-
const lo = [...dates].sort()[0];
|
|
227
|
-
const hi = [...dates].sort()[dates.length - 1];
|
|
228
|
-
const all = getPlanEventsRange(handle, lo, hi).filter((e) => dates.includes(e.date));
|
|
229
|
-
return { data: { items: all.map((e) => buildPlanToday(e.date, [e]).items[0]), total: all.length, date: lo + '~' + hi }, exitCode: 0 };
|
|
230
|
-
}
|
|
231
|
-
const date = resolveDateParam(params);
|
|
232
|
-
return { data: buildPlanToday(date, listPlanEvents(handle, date)), exitCode: 0 };
|
|
233
|
-
}
|
|
234
|
-
case 'schedule.plan.write': {
|
|
235
|
-
// 写 op 全部统一成合成写(裁定 A6③):本地 +(可选)远端一条命令走完,回执分字段、退出码报达成与否。
|
|
236
|
-
// 各 op 的实现住能力目录 `src/plan/`(#199 的结构裁定:`plan` 是 HELP 一级分组「日程与计划」)。
|
|
237
|
-
const op = parsePlanOp(params);
|
|
238
|
-
const gate = remoteGate(op, params);
|
|
239
|
-
const out = runPlanOp(op, { handle, params, cli: gate.cli, remoteWhy: gate.why });
|
|
240
|
-
return { data: out.data, exitCode: out.exitCode };
|
|
241
|
-
}
|
|
242
|
-
// #203:本键由 `dispatchHelp` 在**开库之前**处理(只读页不建库);走到这里说明 main 的路由被改坏了。
|
|
243
|
-
// 照 skill-bill/src/cli/cmd_read.ts:449-451 的同一道内部断言——防的是「改回无条件开库」这个静默回退。
|
|
244
|
-
case 'schedule.help.lookup':
|
|
245
|
-
fail(1, '内部错误:schedule.help.lookup 须走 dispatchHelp(开库之前)');
|
|
246
|
-
return { data: null, exitCode: 0 };
|
|
247
|
-
default:
|
|
248
|
-
fail(3, '未知 schedule key:' + key);
|
|
249
|
-
return { data: null, exitCode: 0 };
|
|
250
|
-
}
|
|
29
|
+
return spec.run(params, handle);
|
|
251
30
|
}
|
|
252
31
|
finally {
|
|
253
32
|
closeScheduleDb(handle);
|
|
@@ -256,6 +35,7 @@ function dispatch(key, params) {
|
|
|
256
35
|
function parseArgs(a) {
|
|
257
36
|
const o = { key: a[0], params: undefined, html: undefined, timeout: DEFAULT_TIMEOUT_MS };
|
|
258
37
|
for (let i = 1; i < a.length; i++) {
|
|
38
|
+
// `--html <路径>`=显式落点(逐字覆盖写);不给它=落通式名的缺省产物(#843)。
|
|
259
39
|
if (a[i] === '--params' && i + 1 < a.length)
|
|
260
40
|
o.params = a[++i];
|
|
261
41
|
else if (a[i] === '--html' && i + 1 < a.length)
|
|
@@ -273,7 +53,7 @@ function parseArgs(a) {
|
|
|
273
53
|
async function main() {
|
|
274
54
|
const o = parseArgs(process.argv.slice(2));
|
|
275
55
|
if (!o.key)
|
|
276
|
-
fail(2, '用法:schedule-cmd-read <schedule.key> [--params JSON对象] [--html 输出路径] [--timeout 毫秒]');
|
|
56
|
+
fail(2, '用法:schedule-cmd-read <schedule.key> [--params JSON对象] [--html 输出路径] [--timeout 毫秒](不给 --html 即落缺省产物:产物根目录下按通式命名)');
|
|
277
57
|
let params = {};
|
|
278
58
|
if (o.params !== undefined) {
|
|
279
59
|
try {
|
|
@@ -316,30 +96,47 @@ async function main() {
|
|
|
316
96
|
let exitCode = 0;
|
|
317
97
|
try {
|
|
318
98
|
// #203:`schedule.help.lookup` 在**开库之前**分派(只读页不建库);其余 7 键照旧走 dispatch(内部开库)。
|
|
319
|
-
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
|
|
99
|
+
// 分派只认生成的 `registry.ts`(key → 声明):命中即走能力目录的处理函数。
|
|
100
|
+
const spec = REGISTRY[key];
|
|
101
|
+
if (!spec)
|
|
102
|
+
fail(3, '未知 schedule key:' + key);
|
|
103
|
+
// #203:`schedule.help.lookup` 在**开库之前**走(只读页不建库);其余键走开库分支。
|
|
104
|
+
// 开库与否是基础设施事实(同配置/体检拦截口),不是命令事实,故这一个分支住出口。
|
|
105
|
+
const r = key === 'schedule.help.lookup'
|
|
106
|
+
? spec.run(params)
|
|
107
|
+
: runWithDb(spec, params);
|
|
108
|
+
for (const n of ('notes' in r ? r.notes ?? [] : []))
|
|
109
|
+
note(n);
|
|
110
|
+
env = buildScheduleEnvelope(key, r.data);
|
|
111
|
+
exitCode = 'exitCode' in r ? r.exitCode ?? 0 : 0;
|
|
323
112
|
const built = env;
|
|
324
|
-
//
|
|
113
|
+
// 页面正文=本包 envelope 片段(模板填充后):`--html <路径>` 与「缺省落盘」**同一份正文**,
|
|
114
|
+
// 差别只在落点(逐字 vs 通式)——同一件产物,不因落点不同换形状(#843)。
|
|
325
115
|
const sectionHtml = () => {
|
|
326
116
|
const html = fillTemplate(loadTemplate(templateFor(key)), renderEnvelopeHtml(built));
|
|
327
117
|
assertHtmlSize(html);
|
|
328
118
|
return html;
|
|
329
119
|
};
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
120
|
+
const landing = 'landing' in r ? r.landing : undefined;
|
|
121
|
+
// **缺省即落盘**(#843):每个键都落一份 HTML 并回 `delivery.path` 绝对路径。
|
|
122
|
+
// - 内容=该键自身的产物:HELP 全壳页(`r.html`,处理函数已过体积门)/其余键的模板页(`sectionHtml()`)。
|
|
123
|
+
// - 落点分家:页面落**产物根** `<库目录>/<html.dir>`;HELP 自带 `landing`(落根下的 `html.helpDir` 一支)。
|
|
124
|
+
// - 名字一处定义:页面主体=`pageStemFor(spec)`(技能名 + 命令标题),HELP 主体=`helpFileStem()`。
|
|
125
|
+
// - `--html <路径>`=用户逐字指定的落点,优先级最高(逐字覆盖写、不带时间戳、不递补)——
|
|
126
|
+
// 它也是**唯一**能让「按定义不落盘」的键(HELP 现找 `q`)落盘的路子(#204 ⑤ 锁着)。
|
|
127
|
+
const delivers = ('delivery' in r ? r.delivery : undefined) !== false || o.html !== undefined;
|
|
128
|
+
const receipt = delivers
|
|
129
|
+
? deliverHtml({
|
|
130
|
+
explicit: o.html,
|
|
131
|
+
html: landing !== undefined ? r.html : sectionHtml(),
|
|
132
|
+
targetDir: landing !== undefined ? landing.targetDir : resolveHtmlDir(),
|
|
133
|
+
stem: landing !== undefined ? landing.stem : pageStemFor(spec),
|
|
134
|
+
...(landing === undefined ? {} : { reuseMs: landing.reuseMs }),
|
|
135
|
+
})
|
|
136
|
+
: undefined;
|
|
137
|
+
if (receipt !== undefined) {
|
|
138
|
+
delivery = receipt;
|
|
139
|
+
note('HTML 已写:' + receipt.path + '(' + receipt.bytes + ' 字节 utf8)');
|
|
343
140
|
}
|
|
344
141
|
clearTimeout(timer);
|
|
345
142
|
}
|
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,5 @@
|
|
|
1
|
+
import type { EnvelopeShape } from 'base-link-core';
|
|
2
|
+
export declare const SCHEDULE_KEYS: readonly ["schedule.plan.write", "schedule.record.write", "schedule.help.lookup", "schedule.plan.today", "schedule.record.compare", "schedule.record.detail", "schedule.record.range", "schedule.record.today"];
|
|
3
|
+
export type ScheduleCommandKey = (typeof SCHEDULE_KEYS)[number];
|
|
4
|
+
export declare const SCHEDULE_KEY_SHAPES: Record<ScheduleCommandKey, EnvelopeShape>;
|
|
5
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/cli/keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,aAAa,iNAShB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,kBAAkB,EAAE,aAAa,CASzE,CAAC"}
|
package/dist/cli/keys.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const SCHEDULE_KEYS = [
|
|
2
|
+
'schedule.plan.write',
|
|
3
|
+
'schedule.record.write',
|
|
4
|
+
'schedule.help.lookup',
|
|
5
|
+
'schedule.plan.today',
|
|
6
|
+
'schedule.record.compare',
|
|
7
|
+
'schedule.record.detail',
|
|
8
|
+
'schedule.record.range',
|
|
9
|
+
'schedule.record.today',
|
|
10
|
+
];
|
|
11
|
+
export const SCHEDULE_KEY_SHAPES = {
|
|
12
|
+
'schedule.plan.write': 'receipt',
|
|
13
|
+
'schedule.record.write': 'receipt',
|
|
14
|
+
'schedule.help.lookup': 'list',
|
|
15
|
+
'schedule.plan.today': 'list',
|
|
16
|
+
'schedule.record.compare': 'analysis',
|
|
17
|
+
'schedule.record.detail': 'detail',
|
|
18
|
+
'schedule.record.range': 'stat',
|
|
19
|
+
'schedule.record.today': 'list',
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/cli/keys.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAA8C;IAC5E,qBAAqB,EAAE,SAAS;IAChC,uBAAuB,EAAE,SAAS;IAClC,sBAAsB,EAAE,MAAM;IAC9B,qBAAqB,EAAE,MAAM;IAC7B,yBAAyB,EAAE,UAAU;IACrC,wBAAwB,EAAE,QAAQ;IAClC,uBAAuB,EAAE,MAAM;IAC/B,uBAAuB,EAAE,MAAM;CAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO5D,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,CAAC;AAExD,eAAO,MAAM,aAAa,UAA+B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ADMIN_COMMANDS } from '../admin/index.js';
|
|
2
|
+
import { ANALYZE_COMMANDS } from '../analyze/index.js';
|
|
3
|
+
import { PLAN_COMMANDS } from '../plan/index.js';
|
|
4
|
+
import { QUERY_COMMANDS } from '../query/index.js';
|
|
5
|
+
import { WRITE_COMMANDS } from '../write/index.js';
|
|
6
|
+
const SOURCES = [ADMIN_COMMANDS, ANALYZE_COMMANDS, PLAN_COMMANDS, QUERY_COMMANDS, WRITE_COMMANDS];
|
|
7
|
+
export const REGISTRY = {};
|
|
8
|
+
for (const list of SOURCES)
|
|
9
|
+
for (const s of list)
|
|
10
|
+
REGISTRY[s.key] = s;
|
|
11
|
+
export const REGISTRY_KEYS = Object.keys(REGISTRY).sort();
|
|
12
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,MAAM,OAAO,GAAwC,CAAC,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AACvI,MAAM,CAAC,MAAM,QAAQ,GAAgC,EAAE,CAAC;AACxD,KAAK,MAAM,IAAI,IAAI,OAAO;IAAE,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { ConfigRecord } from 'base-link-core';
|
|
2
2
|
/** 配置文件主体名:`<配置目录>/schedule.yaml`。 */
|
|
3
3
|
export declare const SCHEDULE_CONFIG_STEM: "schedule";
|
|
4
|
-
/** 作息管家那份配置表:键即设置页的行,一层嵌套(子集支持范围见 base-link-core README)。
|
|
4
|
+
/** 作息管家那份配置表:键即设置页的行,一层嵌套(子集支持范围见 base-link-core README)。
|
|
5
|
+
*
|
|
6
|
+
* **产物落点分家(#843)**:`html.dir`=产物**根目录**(页面落它下面),`html.helpDir`=该根下
|
|
7
|
+
* HELP 那一支的子目录名。两件产物各有各的落点,一个键不当两个用;名字由来——
|
|
8
|
+
* `html.dir` 段串是「库目录下的哪几个子目录」的算料(不绝对化,见 `writableDefaults()`),
|
|
9
|
+
* `html.helpDir` 是**单段**子目录名(算料是段串,单段也是段串)。 */
|
|
5
10
|
export declare const SCHEDULE_CONFIG_DEFAULTS: {
|
|
6
11
|
db: {
|
|
7
12
|
dir: string;
|
|
@@ -9,6 +14,7 @@ export declare const SCHEDULE_CONFIG_DEFAULTS: {
|
|
|
9
14
|
};
|
|
10
15
|
html: {
|
|
11
16
|
dir: string;
|
|
17
|
+
helpDir: string;
|
|
12
18
|
};
|
|
13
19
|
};
|
|
14
20
|
/** **已退休键**(#762 过渡件):我们自己删过、老配置文件里必然还留着的键的叶子全路径。命中的键跳过校验、
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,sCAAsC;AACtC,eAAO,MAAM,oBAAoB,EAAG,UAAmB,CAAC;AAExD;;;;;gDAKgD;AAChD,eAAO,MAAM,wBAAwB;;;;;;;;;CAGpC,CAAC;AAEF;;;;;;yBAMyB;AACzB,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEzF,gCAAgC;AAChC,MAAM,MAAM,oBAAoB,GAAG,OAAO,wBAAwB,CAAC;AAoCnE,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC;AAQD;;;mDAGmD;AACnD,wBAAgB,kBAAkB,IAAI,oBAAoB,CAiBzD;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAIzE;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAIjF;AAED;6DAC6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD"}
|
package/dist/config.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*
|
|
11
11
|
* 默认值逐项等于改造前的代码常量(对照读数见 `docs/skills/skill-schedule/t695-证据.md`):
|
|
12
12
|
* · `db.name`=`schedule_data.db`(原 `src/fetch/paths.ts` 的 `DB_FILENAME`);
|
|
13
|
-
* · `html.dir`=`schedule_html
|
|
13
|
+
* · `html.dir`=`schedule_html`/`html.helpDir`=`help`(两段合起来=原 `src/help/helpPaths.ts` 的
|
|
14
|
+
* `HELP_HTML_DIR_PARTS` 那两级 `<库目录>/schedule_html/help`——产物根与 HELP 子目录分家见下;
|
|
14
15
|
* 配置形状是字符串、段间用 `/` 或 `\` 分隔,因为受限子集不收数组;见 `base-link-core/README.md` §支持范围)。
|
|
15
16
|
* #764 起 `files.help`/`lark.cliPath` 出表(#761 定稿:文件名回代码常量 `作息管家_HELP`;
|
|
16
17
|
* 飞书 CLI 路径由新增的「飞书 CLI」状态行替代,它不是配置项),故本表现是 3 键。
|
|
@@ -22,10 +23,15 @@
|
|
|
22
23
|
import { configPaths, loadConfig, resetConfig, saveConfig } from 'base-link-core';
|
|
23
24
|
/** 配置文件主体名:`<配置目录>/schedule.yaml`。 */
|
|
24
25
|
export const SCHEDULE_CONFIG_STEM = 'schedule';
|
|
25
|
-
/** 作息管家那份配置表:键即设置页的行,一层嵌套(子集支持范围见 base-link-core README)。
|
|
26
|
+
/** 作息管家那份配置表:键即设置页的行,一层嵌套(子集支持范围见 base-link-core README)。
|
|
27
|
+
*
|
|
28
|
+
* **产物落点分家(#843)**:`html.dir`=产物**根目录**(页面落它下面),`html.helpDir`=该根下
|
|
29
|
+
* HELP 那一支的子目录名。两件产物各有各的落点,一个键不当两个用;名字由来——
|
|
30
|
+
* `html.dir` 段串是「库目录下的哪几个子目录」的算料(不绝对化,见 `writableDefaults()`),
|
|
31
|
+
* `html.helpDir` 是**单段**子目录名(算料是段串,单段也是段串)。 */
|
|
26
32
|
export const SCHEDULE_CONFIG_DEFAULTS = {
|
|
27
33
|
db: { dir: '', name: 'schedule_data.db' },
|
|
28
|
-
html: { dir: 'schedule_html
|
|
34
|
+
html: { dir: 'schedule_html', helpDir: 'help' },
|
|
29
35
|
};
|
|
30
36
|
/** **已退休键**(#762 过渡件):我们自己删过、老配置文件里必然还留着的键的叶子全路径。命中的键跳过校验、
|
|
31
37
|
* 不进取值、也不会被写回(任何一次保存/重置天然抹掉它);**整组的子项全退休时那一层组名也不写出**
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** 交付面的能力门:出口 `src/cli/cmd_read.ts` 只从这里取交付面那三件东西。
|
|
2
|
+
* - `deliverHtml`/`HtmlDelivery`——本包写 HTML 文件的唯一出口(页面与 HELP 一条链);
|
|
3
|
+
* - `pageStemFor`——产物文件名主体的唯一定义地(`./naming.ts`)。
|
|
4
|
+
* 落点目录算法不在这里:它住 `src/fetch/paths.ts`(全部落点算式的唯一定义地)。 */
|
|
5
|
+
export { deliverHtml } from './output.js';
|
|
6
|
+
export type { HtmlDelivery } from './output.js';
|
|
7
|
+
export { pageStemFor, SCHEDULE_SKILL_NAME } from './naming.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAAA;;;wDAGwD;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** 交付面的能力门:出口 `src/cli/cmd_read.ts` 只从这里取交付面那三件东西。
|
|
2
|
+
* - `deliverHtml`/`HtmlDelivery`——本包写 HTML 文件的唯一出口(页面与 HELP 一条链);
|
|
3
|
+
* - `pageStemFor`——产物文件名主体的唯一定义地(`./naming.ts`)。
|
|
4
|
+
* 落点目录算法不在这里:它住 `src/fetch/paths.ts`(全部落点算式的唯一定义地)。 */
|
|
5
|
+
export { deliverHtml } from './output.js';
|
|
6
|
+
export { pageStemFor, SCHEDULE_SKILL_NAME } from './naming.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAAA;;;wDAGwD;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** 交付面·命名:**产物文件名主体在哪、叫什么**(一处定义,别处引用)。
|
|
2
|
+
*
|
|
3
|
+
* 本件是 #843 的「命名一处定义」那一半:全仓只有这里算得出「某一页的产物叫什么」。
|
|
4
|
+
* 谁能读同一份:
|
|
5
|
+
* · **实现**——`src/delivery/output.ts` 落盘时用它算 `stem`(唯一调用点 `src/cli/cmd_read.ts`);
|
|
6
|
+
* · **探针**——`docs/skills/skill-schedule/tA0-交付面探针.mjs` 把它与真跑出来的 `delivery.path` 对账;
|
|
7
|
+
* · **链路页与墙**(后续票 #791/#792)——**不自己算名字**:读回执里的 `delivery.path` 即可
|
|
8
|
+
* (票面「遗留出口」:链路页读的是本票产出的路径,不自己算名字)。所以本件不派生任何清册文件。
|
|
9
|
+
*
|
|
10
|
+
* 名字通式(时间戳/递补/扩展名**不在本件**):`〈主体〉_<YYYYMMDD_HHMMSS>[_<N>].html`,
|
|
11
|
+
* 由共用件 `base-paint/save-html` 的 `saveHtmlFile` 算——本件只给「主体」。
|
|
12
|
+
*
|
|
13
|
+
* **主体怎么取**:`〈技能名〉_〈页名〉`。技能名与 HELP 产物同一份(同一个技能的产物同前缀);
|
|
14
|
+
* 页名=**命令声明上的标题**(`CommandSpec.title`,只从能力目录的 `commands.ts` 来,
|
|
15
|
+
* 经生成的 `registry.ts` 转出)——同一件事不写第二遍,页面标题与文件名主体同源。
|
|
16
|
+
* 故本件是**纯函数**:给「key + 声明上的标题」,出「文件名主体」。零 IO、不读配置、不碰盘。
|
|
17
|
+
*/
|
|
18
|
+
import type { CommandSpec } from '../shared/commandSpec.js';
|
|
19
|
+
/** 技能名(产物名前缀):与 HELP 产物主体 `作息管家_HELP`(`src/help/helpFile.ts` 的
|
|
20
|
+
* `HELP_FILE_STEM`)同一份,这里写一份是**唯一定义地**,别处引用。 */
|
|
21
|
+
export declare const SCHEDULE_SKILL_NAME: "\u4F5C\u606F\u7BA1\u5BB6";
|
|
22
|
+
/** 一条命令的产物**文件名主体**:`〈技能名〉_〈命令标题〉`。 */
|
|
23
|
+
export declare function pageStemFor(spec: CommandSpec): string;
|
|
24
|
+
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/delivery/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;iDACiD;AACjD,eAAO,MAAM,mBAAmB,EAAG,0BAAe,CAAC;AAEnD,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** 技能名(产物名前缀):与 HELP 产物主体 `作息管家_HELP`(`src/help/helpFile.ts` 的
|
|
2
|
+
* `HELP_FILE_STEM`)同一份,这里写一份是**唯一定义地**,别处引用。 */
|
|
3
|
+
export const SCHEDULE_SKILL_NAME = '作息管家';
|
|
4
|
+
/** 一条命令的产物**文件名主体**:`〈技能名〉_〈命令标题〉`。 */
|
|
5
|
+
export function pageStemFor(spec) {
|
|
6
|
+
return SCHEDULE_SKILL_NAME + '_' + spec.title;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/delivery/naming.ts"],"names":[],"mappings":"AAmBA;iDACiD;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAe,CAAC;AAEnD,uCAAuC;AACvC,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,OAAO,mBAAmB,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AAChD,CAAC"}
|