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/SKILL.md
CHANGED
|
@@ -103,18 +103,20 @@ schedule-cmd-read schedule.record.write --params '{"op":"add","date":"2026-09-06
|
|
|
103
103
|
相关场景: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 字符串后续票落表时冻结)。
|
|
104
104
|
<!-- HELP-AUTO-END -->
|
|
105
105
|
|
|
106
|
-
##
|
|
106
|
+
## 交付面(说唤醒词就跑,产物落盘并回绝对路径)
|
|
107
107
|
|
|
108
|
-
-
|
|
108
|
+
- **缺省就是交付物**:上面 8 个联动 key **原样调用**即各落一份能打开的 HTML,stdout 顶层给 `delivery{mode,path,bytes}`——`path` 是**绝对路径**、`bytes` 是**落盘字节数**(回执即真相:回话就把 `path` 给用户)。
|
|
109
109
|
**完成标准**:`delivery.path` 指向的文件真的存在,且大小=`delivery.bytes`。
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
110
|
+
- **落点**:页面落**产物根** `<库目录>/<产物目录>`;`作息管家HELP` 落它的 `help` 子目录。`<库目录>`=配置文件 `~/.ilife/schedule.yaml` 的 `db.dir`(空串=数据目录 `~/.ilife/data/`);`<产物目录>`=同文件的 `html.dir`(默认 `schedule_html`,段间用 `/` 或 `\` 分隔),HELP 那一支=`html.helpDir`(默认 `help`)。
|
|
111
|
+
- **命名**:`〈主体〉_<YYYYMMDD_HHMMSS>[_N].html`。主体=`作息管家_〈页名〉`,页名就是该命令的标题(今日作息/汇总作息/作息详情/作息对比/查日程/写计划/记作息);HELP 的主体恒为 `作息管家_HELP`(老名字逐字不变;5 类别/34 唤醒词/85 场景,走共享 help 模板)。**同名不覆盖**:同一秒落第二份时递补 `_2`、`_3`……任何时候都不覆盖已有产物。
|
|
112
|
+
- **产物是整页**:`<!DOCTYPE html>` 起、`</html>` 收;7 个命令页里放真内容(`<section data-skill="schedule"…`),`作息管家HELP` 是完整 HELP 壳页(载荷在 `<script id="help-data">`)。
|
|
113
|
+
- **要现找才加参数**:`--params '{"q":"查作息"}'` 回命中条目(**按定义不落盘**:这一支顶层没有 `delivery`;`q` 留空=走上面的文件交付那一支)。全量速查表读上「联动速查」块(48 条路由词,构建期注入,与 `q` 同一张表)。
|
|
114
|
+
- **`--html <路径>`=显式落点**:逐字使用、覆盖写、缺父目录自动建(不参与同秒 `_N` 递补)。8 个 key 都认它;`q` 支带上它写的是该键的分节页。
|
|
113
115
|
- **反复读不再涨目录(#245)**:同一主体**一天内只留一份**——24 小时内再读就**复用已有那份**(不新建、不改写;回执给的就是它)。要别的窗口给 `--params '{"reuseHours":3}'`(小时);要**每次都要一份最新的**给 `{"reuseHours":0}`。窗口内若已有一份、而你刚改过 HELP 内容,那份旧产物**不会被自动刷新**(窗口语义如此)——真要新的就带 `reuseHours:0`。
|
|
114
|
-
-
|
|
116
|
+
- **看帮助不开库**:`作息管家HELP` 在开库之前分派,跑完不建 `schedule_data.db`(库还没建出来时也看得到帮助);DB 文件已存在时,页首的首次使用横幅隐藏(判定只看文件在不在,不开库)。
|
|
115
117
|
- **边界**:面板/侧栏的 HELP 入口不在本技能范围(属插件侧那条线,见下「环境与出 scope」)。
|
|
116
118
|
|
|
117
119
|
## 环境与出 scope
|
|
118
120
|
|
|
119
|
-
- 路径类取值一律读配置文件 `~/.ilife/schedule.yaml`(**配置文件是唯一真相,环境变量不参与配置**):库目录=`db.dir`(空串=数据目录 `~/.ilife/data/`,首次读时自动建)、库文件名=`db.name`(默认 `schedule_data.db
|
|
121
|
+
- 路径类取值一律读配置文件 `~/.ilife/schedule.yaml`(**配置文件是唯一真相,环境变量不参与配置**):库目录=`db.dir`(空串=数据目录 `~/.ilife/data/`,首次读时自动建)、库文件名=`db.name`(默认 `schedule_data.db`)、产物根目录=`html.dir`(默认 `schedule_html`;页面落它下面)、HELP 子目录=`html.helpDir`(默认 `help`)。HELP 文件主体名回到代码常量(`作息管家_HELP`,#764 起不再是配置项);飞书 CLI 不再是配置项(#764 起由设置页「飞书 CLI」状态行替代,只探测、不配置)。飞书同步另须 lark-cli 四门全绿。取值面与环境项见 docs/env.md。
|
|
120
122
|
- 出 scope:定时任务/早睡提醒(老家 Cron 已删,外部定时以外置为准)、面板(二期单 MAP)、本技能外联动(combos 登记走后续票);语录取数(daily_recorder.db)以外置为准;真实数据禁迁,测试 tmp 隔离。
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"files": {
|
|
4
|
+
"packages\\skill-schedule\\src\\admin\\commands.ts": {
|
|
5
|
+
"src": "fe7acad696a075951bba63991b6a207b7b1f673c452831a3b5ae88717a5d4495",
|
|
6
|
+
"dist": "c7b0133b7d3464ce8e27769d7f29a03f9c6c6233d96009841818354fc32c51f6"
|
|
7
|
+
},
|
|
8
|
+
"packages\\skill-schedule\\src\\admin\\routes.ts": {
|
|
9
|
+
"src": "fa8a84e170e539cc193150a99d2cec1aa0f0afd30826851e0328d2ecf9e33984",
|
|
10
|
+
"dist": "59106cac5a5e0eff2282119664380742fc063946715ecf7ca1e952d2c0447269"
|
|
11
|
+
},
|
|
12
|
+
"packages\\skill-schedule\\src\\analyze\\commands.ts": {
|
|
13
|
+
"src": "fa2821f39c95c7121b4797e913d591f004ddaffa3d78528ba7fdc032f7052f4e",
|
|
14
|
+
"dist": "32f3f0a1363519786462bb50b08f0ca9123fa75b06ad2e6e55d5d29c39006034"
|
|
15
|
+
},
|
|
16
|
+
"packages\\skill-schedule\\src\\analyze\\routes.ts": {
|
|
17
|
+
"src": "a126be304020be6fae211adacfa71887cb2ad4582f160a244055fc868712b8b7",
|
|
18
|
+
"dist": "0a3d40f3671f08d2563f86cc156078f47558ae07491847359bb93b48337b6b9b"
|
|
19
|
+
},
|
|
20
|
+
"packages\\skill-schedule\\src\\plan\\commands.ts": {
|
|
21
|
+
"src": "e70e3aa06d0d7f163e5755a595cf37f553e5b6e6a519009292713e9392a4c1ab",
|
|
22
|
+
"dist": "bd8822f57adcc40ee847d6c732820f492da707e487360df75843434eceb81813"
|
|
23
|
+
},
|
|
24
|
+
"packages\\skill-schedule\\src\\plan\\routes.ts": {
|
|
25
|
+
"src": "03626d5432f4b2708f364c07e4a7dfeac66ff175c8e71442be6bc0c1435d14c1",
|
|
26
|
+
"dist": "c03726f2e9743604cdc768c4c3fe74eac63aafa89b1c8799bdf5edf40d04f043"
|
|
27
|
+
},
|
|
28
|
+
"packages\\skill-schedule\\src\\query\\commands.ts": {
|
|
29
|
+
"src": "7c1030ed6de6766f8089bc4924c3ae7188e1b679cf86e07fae86984357674919",
|
|
30
|
+
"dist": "d2fc80595fdf065ddc955332d185aefb791dabbb8ab95ad4fd9f821cdb952981"
|
|
31
|
+
},
|
|
32
|
+
"packages\\skill-schedule\\src\\query\\routes.ts": {
|
|
33
|
+
"src": "39274c0f3445bcae76073eff7d8d092c2f0176caa7a058883639b1a79cdaa17f",
|
|
34
|
+
"dist": "7d5ecf524b058208aa0a2599860e02dd0a8ef1909057a01e3ca820f909e3d16d"
|
|
35
|
+
},
|
|
36
|
+
"packages\\skill-schedule\\src\\write\\commands.ts": {
|
|
37
|
+
"src": "7a283c8056df789e938609979636ea7ee6a89b5cd8ab48aac1e3c51d8bc77512",
|
|
38
|
+
"dist": "d9bd93d9e32741bd00f99c13c6b045c475e47f95fade432c2f86e055f5e59a0d"
|
|
39
|
+
},
|
|
40
|
+
"packages\\skill-schedule\\src\\write\\routes.ts": {
|
|
41
|
+
"src": "0b7b669b766ca1c8926a207a893aa5d2c65c6a8c8cdf125ce6d809b1cf8288a9",
|
|
42
|
+
"dist": "3a5ffd8c964871665345ed5c09267cffeac6d6c84a4eced0bb8658c02532856c"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const ADMIN_COMMANDS: {
|
|
2
|
+
kind: "read";
|
|
3
|
+
key: string;
|
|
4
|
+
shape: "list";
|
|
5
|
+
title: string;
|
|
6
|
+
wakeWord: string;
|
|
7
|
+
run: (params: Record<string, unknown>) => import("../shared/commandSpec.js").ViewOut;
|
|
8
|
+
example: string;
|
|
9
|
+
}[];
|
|
10
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/admin/commands.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc;;;;;;;;GAEO,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { lookupHelp } from './handlers.js';
|
|
2
|
+
export const ADMIN_COMMANDS = [
|
|
3
|
+
{ kind: 'read', key: 'schedule.help.lookup', shape: 'list', title: '作息管家帮助', wakeWord: '作息管家 HELP', run: (params) => lookupHelp(params), example: 'schedule-cmd-read schedule.help.lookup' },
|
|
4
|
+
];
|
|
5
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/admin/commands.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE;CAC5J,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/admin/handlers.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAkCxD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAkBnE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** 辅助与管理的处理函数(命令事实的执行一半;声明在 `./commands.ts`)。
|
|
2
|
+
*
|
|
3
|
+
* 逐字搬自 `src/cli/cmd_read.ts` 的 `dispatchHelp` 一家(行为零改动):落盘意图只算不执行,
|
|
4
|
+
* 出口凭返回的 `landing` 走统一管线;坏参抛同文案的类型错误(出口归 exit 2)。
|
|
5
|
+
* 本键全程不开库(#203):判定只看 DB 文件在不在。
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { SchedulePolicyError, resolveDbPath } from '../fetch/index.js';
|
|
9
|
+
import { buildHelpLookup } from '../help/index.js';
|
|
10
|
+
import { resolveHelpDir } from '../help/helpPaths.js';
|
|
11
|
+
import { helpFileStem, buildHelpFileData, renderHelpFileHtml } from '../help/helpFile.js';
|
|
12
|
+
import { HELP_GROUPS } from '../help/scenes/help-assets.js';
|
|
13
|
+
import { assertHtmlSize, buildHelpItems } from '../render/index.js';
|
|
14
|
+
import { helpReuseWindowOf } from 'base-paint/save-html';
|
|
15
|
+
const HELP_MODE_FILE = 'file';
|
|
16
|
+
/** HELP 产物吃的复用窗口(毫秒):缺省**一天**、`reuseHours` 可改(`0`=每次都落新的)。
|
|
17
|
+
* 坏参在这里抛类型错误,出口归「参数错」那一档(exit 2),与其余四家同档。 */
|
|
18
|
+
const helpWindowOrFail = helpReuseWindowOf((m) => {
|
|
19
|
+
throw new SchedulePolicyError('POLICY_BAD_INPUT', m);
|
|
20
|
+
});
|
|
21
|
+
/** 初始化状态:DB **文件存在**=已初始化(照老 `render_help._is_initialized`)。
|
|
22
|
+
* 判定本身异常 ⇒ `false`=横幅照显(fail-open)。 */
|
|
23
|
+
function helpInitialized() {
|
|
24
|
+
try {
|
|
25
|
+
return existsSync(resolveDbPath());
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** 交付索引(`list` 形):一级分组一行,计数全**派生**自内容资产(改资产即跟变)。 */
|
|
32
|
+
function buildHelpIndex() {
|
|
33
|
+
const items = HELP_GROUPS.map((g) => ({
|
|
34
|
+
id: g.id,
|
|
35
|
+
icon: g.icon,
|
|
36
|
+
label: g.label,
|
|
37
|
+
subgroupCount: g.subgroups.length,
|
|
38
|
+
sceneCount: g.subgroups.reduce((n, s) => n + s.scenes.length, 0),
|
|
39
|
+
}));
|
|
40
|
+
return {
|
|
41
|
+
items,
|
|
42
|
+
total: items.length,
|
|
43
|
+
sceneTotal: items.reduce((n, it) => n + it.sceneCount, 0),
|
|
44
|
+
subgroupTotal: items.reduce((n, it) => n + it.subgroupCount, 0),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function lookupHelp(params) {
|
|
48
|
+
const now = new Date();
|
|
49
|
+
const q = params.q === undefined ? undefined : String(params.q);
|
|
50
|
+
if (q !== undefined) {
|
|
51
|
+
// 现找:只回命中,**按定义不落盘**(#843:`delivery:false` 显式表态,别与「忘了给 landing」混同);
|
|
52
|
+
// 要落盘只有用户显式给 `--html <路径>`(出口那支吃 `explicit`)。
|
|
53
|
+
const all = buildHelpLookup().map((h) => ({ phrase: h.phrase, key: h.key, shape: h.shape, cli: h.cli, desc: h.desc }));
|
|
54
|
+
return { data: { ...buildHelpItems(all, q), mode: 'lookup', query: q }, html: '', delivery: false };
|
|
55
|
+
}
|
|
56
|
+
// #245:HELP 产物吃复用窗口(缺省一天内只留一份,`reuseHours` 可改)。
|
|
57
|
+
const reuseMs = helpWindowOrFail(params);
|
|
58
|
+
const html = renderHelpFileHtml(buildHelpFileData(now, { initialized: helpInitialized() }));
|
|
59
|
+
assertHtmlSize(html);
|
|
60
|
+
return {
|
|
61
|
+
data: { ...buildHelpIndex(), mode: HELP_MODE_FILE, bytes: Buffer.byteLength(html, 'utf8') },
|
|
62
|
+
html,
|
|
63
|
+
landing: { targetDir: resolveHelpDir(), stem: helpFileStem(), reuseMs },
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/admin/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** 辅助与管理的路由声明(**权威源**,`schedule.help.lookup` 的 4 条)。
|
|
2
|
+
*
|
|
3
|
+
* `order`=今日 `WAKE_TABLE` 下标:归并保序,HELP 速查与 SKILL.md 逐字节不动。
|
|
4
|
+
* 条目逐字照搬 `src/policy/wakewords.ts`(Layer2 退役它之前,两处由对账测试钉死相等)。
|
|
5
|
+
*/
|
|
6
|
+
import type { RouteEntry } from '../shared/commandSpec.js';
|
|
7
|
+
export declare const ADMIN_ROUTES: readonly RouteEntry[];
|
|
8
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/admin/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAK7C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const ADMIN_ROUTES = [
|
|
2
|
+
{ phrase: '作息管家 HELP', key: 'schedule.help.lookup', order: 0 },
|
|
3
|
+
{ phrase: '作息管家帮助', key: 'schedule.help.lookup', order: 1 },
|
|
4
|
+
{ phrase: '作息管家能做什么', key: 'schedule.help.lookup', order: 2 },
|
|
5
|
+
{ phrase: '作息管家使用说明', key: 'schedule.help.lookup', order: 3 },
|
|
6
|
+
];
|
|
7
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/admin/routes.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE;IAC9D,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3D,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE;IAC7D,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE;CAC9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/analyze/commands.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB;;;;;;;;GAEK,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { viewRecordCompare } from './handlers.js';
|
|
2
|
+
export const ANALYZE_COMMANDS = [
|
|
3
|
+
{ kind: 'read', key: 'schedule.record.compare', shape: 'analysis', title: '作息对比', wakeWord: '对比两个月', run: viewRecordCompare, example: 'schedule-cmd-read schedule.record.compare --params \'{"kind":"months"}\'' },
|
|
4
|
+
];
|
|
5
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/analyze/commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,0EAA0E,EAAE;CAClL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/analyze/handlers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAS5D,eAAO,MAAM,iBAAiB,EAAE,WAuC/B,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** 分析与洞察的处理函数(命令事实的执行一半;声明在 `./commands.ts`)。
|
|
2
|
+
*
|
|
3
|
+
* 逐字搬自 `src/cli/cmd_read.ts` 的 switch 一臂 + `monthRange`(行为零改动)。
|
|
4
|
+
*/
|
|
5
|
+
import { ScheduleFetchError, listRecordsRange } from '../fetch/index.js';
|
|
6
|
+
import { l1Of, validateCompareInput } from '../policy/index.js';
|
|
7
|
+
import { buildAnomaly, buildCategoryDeep, buildRecordCompare } from '../render/index.js';
|
|
8
|
+
function monthRange(month) {
|
|
9
|
+
const [y, m] = month.split('-').map(Number);
|
|
10
|
+
const last = new Date(y, m, 0).getDate();
|
|
11
|
+
const dd = String(last).padStart(2, '0');
|
|
12
|
+
return { start: month + '-01', end: month + '-' + dd };
|
|
13
|
+
}
|
|
14
|
+
export const viewRecordCompare = (params, handle) => {
|
|
15
|
+
const c = validateCompareInput(params);
|
|
16
|
+
if (c.kind === 'months') {
|
|
17
|
+
const ra = monthRange(c.monthA);
|
|
18
|
+
const rb = monthRange(c.monthB);
|
|
19
|
+
const a = listRecordsRange(handle, ra.start, ra.end);
|
|
20
|
+
const b = listRecordsRange(handle, rb.start, rb.end);
|
|
21
|
+
if (!a.length || !b.length) {
|
|
22
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '对比缺数据:' + c.monthA + '(' + a.length + '块)/' + c.monthB + '(' + b.length + '块)');
|
|
23
|
+
}
|
|
24
|
+
return { data: buildRecordCompare({ labelA: c.monthA, labelB: c.monthB, a, b }), html: '' };
|
|
25
|
+
}
|
|
26
|
+
if (c.kind === 'ranges') {
|
|
27
|
+
const a = listRecordsRange(handle, c.startA, c.endA);
|
|
28
|
+
const b = listRecordsRange(handle, c.startB, c.endB);
|
|
29
|
+
if (!a.length || !b.length)
|
|
30
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '对比缺数据(两侧均须有记录)');
|
|
31
|
+
return { data: buildRecordCompare({ labelA: c.labelA, labelB: c.labelB, a, b }), html: '' };
|
|
32
|
+
}
|
|
33
|
+
if (c.kind === 'category') {
|
|
34
|
+
const records = listRecordsRange(handle, c.start, c.end);
|
|
35
|
+
if (!records.length)
|
|
36
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '区间无记录:' + c.start + '~' + c.end);
|
|
37
|
+
return { data: buildCategoryDeep(c.start, c.end, c.category, records), html: '' };
|
|
38
|
+
}
|
|
39
|
+
const w = c.windowDays;
|
|
40
|
+
const end = c.end;
|
|
41
|
+
const d = new Date(end + 'T00:00:00');
|
|
42
|
+
d.setDate(d.getDate() - (w - 1));
|
|
43
|
+
const start = d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0');
|
|
44
|
+
const records = listRecordsRange(handle, start, end);
|
|
45
|
+
if (!records.length)
|
|
46
|
+
throw new ScheduleFetchError('SCHEDULE_EMPTY_RANGE', '窗口无记录:' + start + '~' + end);
|
|
47
|
+
const byDay = new Map();
|
|
48
|
+
for (const r of records) {
|
|
49
|
+
const m = byDay.get(r.date) || {};
|
|
50
|
+
const k = l1Of(r.category);
|
|
51
|
+
m[k] = (m[k] || 0) + (r.duration_minutes || 0);
|
|
52
|
+
byDay.set(r.date, m);
|
|
53
|
+
}
|
|
54
|
+
const daily = [...byDay.entries()].sort().map(([date, byL1]) => ({ date, byL1 }));
|
|
55
|
+
return { data: buildAnomaly(end, w, daily), html: '' };
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/analyze/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyze/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyze/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** 分析与洞察的路由声明(**权威源**,`schedule.record.compare` 的 5 条)。
|
|
2
|
+
*
|
|
3
|
+
* `order`=今日 `WAKE_TABLE` 下标:归并保序,HELP 速查与 SKILL.md 逐字节不动。
|
|
4
|
+
* 条目逐字照搬 `src/policy/wakewords.ts`(Layer2 退役它之前,两处由对账测试钉死相等)。
|
|
5
|
+
*/
|
|
6
|
+
import type { RouteEntry } from '../shared/commandSpec.js';
|
|
7
|
+
export declare const ANALYZE_ROUTES: readonly RouteEntry[];
|
|
8
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/analyze/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAM/C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const ANALYZE_ROUTES = [
|
|
2
|
+
{ phrase: '对比两个月', key: 'schedule.record.compare', preset: { kind: 'months' }, order: 24 },
|
|
3
|
+
{ phrase: '月份对比', key: 'schedule.record.compare', preset: { kind: 'months' }, order: 25 },
|
|
4
|
+
{ phrase: '跨月对比', key: 'schedule.record.compare', preset: { kind: 'months' }, order: 26 },
|
|
5
|
+
{ phrase: '类别深挖', key: 'schedule.record.compare', preset: { kind: 'category' }, order: 27 },
|
|
6
|
+
{ phrase: '异常检测', key: 'schedule.record.compare', preset: { kind: 'anomaly' }, order: 28 },
|
|
7
|
+
];
|
|
8
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/analyze/routes.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1F,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACzF,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACzF,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3F,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CAC3F,CAAC"}
|