skill-schedule 0.3.0 → 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.
Files changed (151) hide show
  1. package/SKILL.md +9 -7
  2. package/dist/.gen-inputs.json +45 -0
  3. package/dist/admin/commands.d.ts +10 -0
  4. package/dist/admin/commands.d.ts.map +1 -0
  5. package/dist/admin/commands.js +5 -0
  6. package/dist/admin/commands.js.map +1 -0
  7. package/dist/admin/handlers.d.ts +3 -0
  8. package/dist/admin/handlers.d.ts.map +1 -0
  9. package/dist/admin/handlers.js +66 -0
  10. package/dist/admin/handlers.js.map +1 -0
  11. package/dist/admin/index.d.ts +3 -0
  12. package/dist/admin/index.d.ts.map +1 -0
  13. package/dist/admin/index.js +3 -0
  14. package/dist/admin/index.js.map +1 -0
  15. package/dist/admin/routes.d.ts +8 -0
  16. package/dist/admin/routes.d.ts.map +1 -0
  17. package/dist/admin/routes.js +7 -0
  18. package/dist/admin/routes.js.map +1 -0
  19. package/dist/analyze/commands.d.ts +10 -0
  20. package/dist/analyze/commands.d.ts.map +1 -0
  21. package/dist/analyze/commands.js +5 -0
  22. package/dist/analyze/commands.js.map +1 -0
  23. package/dist/analyze/handlers.d.ts +3 -0
  24. package/dist/analyze/handlers.d.ts.map +1 -0
  25. package/dist/analyze/handlers.js +57 -0
  26. package/dist/analyze/handlers.js.map +1 -0
  27. package/dist/analyze/index.d.ts +3 -0
  28. package/dist/analyze/index.d.ts.map +1 -0
  29. package/dist/analyze/index.js +3 -0
  30. package/dist/analyze/index.js.map +1 -0
  31. package/dist/analyze/routes.d.ts +8 -0
  32. package/dist/analyze/routes.d.ts.map +1 -0
  33. package/dist/analyze/routes.js +8 -0
  34. package/dist/analyze/routes.js.map +1 -0
  35. package/dist/cli/cmd_read.js +48 -251
  36. package/dist/cli/cmd_read.js.map +1 -1
  37. package/dist/cli/config.d.ts +5 -2
  38. package/dist/cli/config.d.ts.map +1 -1
  39. package/dist/cli/config.js +8 -3
  40. package/dist/cli/config.js.map +1 -1
  41. package/dist/cli/keys.d.ts +5 -0
  42. package/dist/cli/keys.d.ts.map +1 -0
  43. package/dist/cli/keys.js +21 -0
  44. package/dist/cli/keys.js.map +1 -0
  45. package/dist/cli/registry.d.ts +4 -0
  46. package/dist/cli/registry.d.ts.map +1 -0
  47. package/dist/cli/registry.js +12 -0
  48. package/dist/cli/registry.js.map +1 -0
  49. package/dist/config.d.ts +19 -8
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +81 -21
  52. package/dist/config.js.map +1 -1
  53. package/dist/delivery/index.d.ts +8 -0
  54. package/dist/delivery/index.d.ts.map +1 -0
  55. package/dist/delivery/index.js +7 -0
  56. package/dist/delivery/index.js.map +1 -0
  57. package/dist/delivery/naming.d.ts +24 -0
  58. package/dist/delivery/naming.d.ts.map +1 -0
  59. package/dist/delivery/naming.js +8 -0
  60. package/dist/delivery/naming.js.map +1 -0
  61. package/dist/delivery/output.d.ts +22 -0
  62. package/dist/delivery/output.d.ts.map +1 -0
  63. package/dist/delivery/output.js +83 -0
  64. package/dist/delivery/output.js.map +1 -0
  65. package/dist/fetch/feishu.d.ts +5 -0
  66. package/dist/fetch/feishu.d.ts.map +1 -1
  67. package/dist/fetch/feishu.js +48 -23
  68. package/dist/fetch/feishu.js.map +1 -1
  69. package/dist/fetch/index.d.ts +3 -2
  70. package/dist/fetch/index.d.ts.map +1 -1
  71. package/dist/fetch/index.js +2 -2
  72. package/dist/fetch/index.js.map +1 -1
  73. package/dist/fetch/paths.d.ts +42 -4
  74. package/dist/fetch/paths.d.ts.map +1 -1
  75. package/dist/fetch/paths.js +67 -11
  76. package/dist/fetch/paths.js.map +1 -1
  77. package/dist/health.d.ts.map +1 -1
  78. package/dist/health.js +34 -73
  79. package/dist/health.js.map +1 -1
  80. package/dist/help/helpFile.d.ts +5 -3
  81. package/dist/help/helpFile.d.ts.map +1 -1
  82. package/dist/help/helpFile.js +6 -5
  83. package/dist/help/helpFile.js.map +1 -1
  84. package/dist/help/helpPaths.d.ts +11 -12
  85. package/dist/help/helpPaths.d.ts.map +1 -1
  86. package/dist/help/helpPaths.js +9 -36
  87. package/dist/help/helpPaths.js.map +1 -1
  88. package/dist/plan/commands.d.ts +9 -0
  89. package/dist/plan/commands.d.ts.map +1 -0
  90. package/dist/plan/commands.js +5 -0
  91. package/dist/plan/commands.js.map +1 -0
  92. package/dist/plan/handlers.d.ts +3 -0
  93. package/dist/plan/handlers.d.ts.map +1 -0
  94. package/dist/plan/handlers.js +31 -0
  95. package/dist/plan/handlers.js.map +1 -0
  96. package/dist/plan/index.d.ts +2 -0
  97. package/dist/plan/index.d.ts.map +1 -1
  98. package/dist/plan/index.js +4 -2
  99. package/dist/plan/index.js.map +1 -1
  100. package/dist/plan/routes.d.ts +8 -0
  101. package/dist/plan/routes.d.ts.map +1 -0
  102. package/dist/plan/routes.js +18 -0
  103. package/dist/plan/routes.js.map +1 -0
  104. package/dist/policy/wakewords.d.ts.map +1 -1
  105. package/dist/policy/wakewords.js +9 -59
  106. package/dist/policy/wakewords.js.map +1 -1
  107. package/dist/query/commands.d.ts +26 -0
  108. package/dist/query/commands.d.ts.map +1 -0
  109. package/dist/query/commands.js +8 -0
  110. package/dist/query/commands.js.map +1 -0
  111. package/dist/query/handlers.d.ts +6 -0
  112. package/dist/query/handlers.d.ts.map +1 -0
  113. package/dist/query/handlers.js +67 -0
  114. package/dist/query/handlers.js.map +1 -0
  115. package/dist/query/index.d.ts +3 -0
  116. package/dist/query/index.d.ts.map +1 -0
  117. package/dist/query/index.js +3 -0
  118. package/dist/query/index.js.map +1 -0
  119. package/dist/query/routes.d.ts +9 -0
  120. package/dist/query/routes.d.ts.map +1 -0
  121. package/dist/query/routes.js +20 -0
  122. package/dist/query/routes.js.map +1 -0
  123. package/dist/render/envelope.d.ts +2 -1
  124. package/dist/render/envelope.d.ts.map +1 -1
  125. package/dist/render/envelope.js +5 -11
  126. package/dist/render/envelope.js.map +1 -1
  127. package/dist/shared/commandSpec.d.ts +83 -0
  128. package/dist/shared/commandSpec.d.ts.map +1 -0
  129. package/dist/shared/commandSpec.js +2 -0
  130. package/dist/shared/commandSpec.js.map +1 -0
  131. package/dist/triggers/routes.generated.d.ts +297 -0
  132. package/dist/triggers/routes.generated.d.ts.map +1 -0
  133. package/dist/triggers/routes.generated.js +52 -0
  134. package/dist/triggers/routes.generated.js.map +1 -0
  135. package/dist/write/commands.d.ts +9 -0
  136. package/dist/write/commands.d.ts.map +1 -0
  137. package/dist/write/commands.js +5 -0
  138. package/dist/write/commands.js.map +1 -0
  139. package/dist/write/handlers.d.ts +3 -0
  140. package/dist/write/handlers.d.ts.map +1 -0
  141. package/dist/write/handlers.js +24 -0
  142. package/dist/write/handlers.js.map +1 -0
  143. package/dist/write/index.d.ts +3 -0
  144. package/dist/write/index.d.ts.map +1 -0
  145. package/dist/write/index.js +3 -0
  146. package/dist/write/index.js.map +1 -0
  147. package/dist/write/routes.d.ts +8 -0
  148. package/dist/write/routes.d.ts.map +1 -0
  149. package/dist/write/routes.js +10 -0
  150. package/dist/write/routes.js.map +1 -0
  151. package/package.json +3 -3
@@ -0,0 +1,83 @@
1
+ /** 作息命令声明的形状(**唯一定义地**):一条命令的事实——种类/命令名/形状/标题/代表唤醒词/可执行示例/处理函数。
2
+ *
3
+ * 谁在用(五个能力,指名):
4
+ * ① `src/write/commands.ts`——写入与同步(`schedule.record.write`);
5
+ * ② `src/query/commands.ts`——查询与浏览(`schedule.record.today`/`range`/`detail`、`schedule.plan.today`);
6
+ * ③ `src/plan/commands.ts`——日程与计划(`schedule.plan.write`);
7
+ * ④ `src/analyze/commands.ts`——分析与洞察(`schedule.record.compare`);
8
+ * ⑤ `src/admin/commands.ts`——辅助与管理(`schedule.help.lookup`)。
9
+ * 五张声明各由本能力的 `index.ts` 转出,`src/cli/registry.ts` 汇总成一张查表供分派层查(Layer2 落定)。
10
+ *
11
+ * 代表唤醒词**写在声明上**(照卡路里,不照饼干 #721):作息的唤醒词表是 48 条带槽位与预设的路由项,
12
+ * 其全量归属在各能力的 `routes.ts`;声明上的 `wakeWord` 只是其中一条代表(SKILL 速查与示例用),
13
+ * 生成期由 `wakeWordGate()` 逐条查「这个词路由回本键」,主张由机器拦。
14
+ *
15
+ * 写命令的形状不写在声明上(#703):写命令一律 `receipt` 形,唯一定义地是生成器
16
+ * (`scripts/gen-cli.mjs` 合成 `cli/keys.ts`);读命令的形状写表里的形状(`list`/`stat`/`detail`/`analysis`)。
17
+ *
18
+ * 口径出处:形状照 `packages/skill-calorie/src/shared/commandSpec.ts` 与
19
+ * `packages/skill-bill/src/shared/commandSpec.ts`(照结构,不照文件;零改动别家文件)。
20
+ * 本件自持,不上公共层(命令事实住能力目录,纪律有定)。
21
+ */
22
+ import type { EnvelopeShape } from 'base-link-core';
23
+ import type { ScheduleDb } from '../fetch/db.js';
24
+ /** 读命令的产物:`data` 过 envelope 形状守卫,`html` 为整页产物。 */
25
+ export interface ViewOut {
26
+ data: Record<string, unknown>;
27
+ html: string;
28
+ /** stderr 提示行(不进 envelope):逐条由出口 `note()` 打出,字节与旧分派一致。 */
29
+ notes?: string[];
30
+ /** 缺省落点意图(仅 `schedule.help.lookup` 有):出口凭它走统一落盘管线。 */
31
+ landing?: {
32
+ targetDir: string;
33
+ stem: string;
34
+ reuseMs?: number;
35
+ };
36
+ /** **不落盘**的显式表态(#843):缺省行为是「**缺省即落盘**」(出口落一份 HTML 并回 `delivery.path`);
37
+ * 这一支是「这一趟按定义就没有产物」(今天只有 HELP 的 `q` 现找:只回命中条目,不落盘)。
38
+ * 缺省值不写=落盘,故只有不落盘的那一支表态。 */
39
+ delivery?: false;
40
+ }
41
+ /** 写命令的产物:写库回执 + 整页 HTML。
42
+ * `data` 是 receipt 形(`ok`/`message` 必备 + 各能力的分字段,见 `plan/receipt.ts` 的 `PlanReceipt`):
43
+ * 写成 `Record` 是因为同一 `receipt` 形下各键字段不同(`achieved`/`local`/`remote`…),静态窄化会写假;
44
+ * 真正的形状守卫是运行时的 envelope 全字段校验(错形状载荷即抛,行为与旧分派一致)。 */
45
+ export interface WriteOut {
46
+ data: Record<string, unknown>;
47
+ html: string;
48
+ /** 合成写达成通道:非 0 即「本地成了但远端没成」,出口载荷照出、退出码非 0(裁定 A6②)。 */
49
+ exitCode?: number;
50
+ }
51
+ export type ViewHandler = (params: Record<string, unknown>, db: ScheduleDb) => ViewOut;
52
+ export type WriteHandler = (params: Record<string, unknown>, db: ScheduleDb) => WriteOut;
53
+ /** 读命令的声明。 */
54
+ export interface ReadCommandSpec {
55
+ readonly kind: 'read';
56
+ readonly key: string;
57
+ readonly shape: EnvelopeShape;
58
+ readonly title: string;
59
+ /** 代表唤醒词:须是本键路由表里真有的词(生成期 `wakeWordGate()` 逐条查)。 */
60
+ readonly wakeWord: string;
61
+ /** 照抄即能跑的一行:逐字取自 SKILL.md 联动速查「例」列(缺省即证其可跑);缺省生成期即抛。 */
62
+ readonly example: string;
63
+ readonly run: ViewHandler;
64
+ }
65
+ /** 写命令的声明:形状恒 `receipt`,不写第二遍(#703)。 */
66
+ export interface WriteCommandSpec {
67
+ readonly kind: 'write';
68
+ readonly key: string;
69
+ readonly title: string;
70
+ readonly wakeWord: string;
71
+ readonly example: string;
72
+ readonly run: WriteHandler;
73
+ }
74
+ export type CommandSpec = ReadCommandSpec | WriteCommandSpec;
75
+ /** 路由项:短语→键+槽位与预设。`order`=今日 `WAKE_TABLE` 下标,归并保序、HELP 字节不动。 */
76
+ export interface RouteEntry {
77
+ readonly phrase: string;
78
+ readonly key: string;
79
+ readonly needs?: readonly string[];
80
+ readonly preset?: Record<string, unknown>;
81
+ readonly order: number;
82
+ }
83
+ //# sourceMappingURL=commandSpec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandSpec.d.ts","sourceRoot":"","sources":["../../src/shared/commandSpec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,kDAAkD;AAClD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE;;iCAE6B;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED;;;qDAGqD;AACrD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC;AACvF,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,KAAK,QAAQ,CAAC;AAEzF,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE7D,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commandSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandSpec.js","sourceRoot":"","sources":["../../src/shared/commandSpec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,297 @@
1
+ export declare const SCHEDULE_ROUTES: readonly [{
2
+ readonly phrase: "作息管家 HELP";
3
+ readonly key: "schedule.help.lookup";
4
+ readonly order: 0;
5
+ }, {
6
+ readonly phrase: "作息管家帮助";
7
+ readonly key: "schedule.help.lookup";
8
+ readonly order: 1;
9
+ }, {
10
+ readonly phrase: "作息管家能做什么";
11
+ readonly key: "schedule.help.lookup";
12
+ readonly order: 2;
13
+ }, {
14
+ readonly phrase: "作息管家使用说明";
15
+ readonly key: "schedule.help.lookup";
16
+ readonly order: 3;
17
+ }, {
18
+ readonly phrase: "今天总结";
19
+ readonly key: "schedule.record.today";
20
+ readonly order: 4;
21
+ }, {
22
+ readonly phrase: "今日作息";
23
+ readonly key: "schedule.record.today";
24
+ readonly order: 5;
25
+ }, {
26
+ readonly phrase: "今日总结";
27
+ readonly key: "schedule.record.today";
28
+ readonly order: 6;
29
+ }, {
30
+ readonly phrase: "今天作息";
31
+ readonly key: "schedule.record.today";
32
+ readonly order: 7;
33
+ }, {
34
+ readonly phrase: "查作息时间轴";
35
+ readonly key: "schedule.record.today";
36
+ readonly order: 8;
37
+ }, {
38
+ readonly phrase: "查作息状态";
39
+ readonly key: "schedule.record.today";
40
+ readonly order: 9;
41
+ }, {
42
+ readonly phrase: "初始化数据库";
43
+ readonly key: "schedule.record.today";
44
+ readonly order: 10;
45
+ }, {
46
+ readonly phrase: "查作息";
47
+ readonly key: "schedule.record.today";
48
+ readonly order: 11;
49
+ }, {
50
+ readonly phrase: "汇总作息";
51
+ readonly key: "schedule.record.range";
52
+ readonly needs: readonly ["start", "end"];
53
+ readonly order: 12;
54
+ }, {
55
+ readonly phrase: "查作息范围";
56
+ readonly key: "schedule.record.range";
57
+ readonly needs: readonly ["start", "end"];
58
+ readonly order: 13;
59
+ }, {
60
+ readonly phrase: "查作息游标";
61
+ readonly key: "schedule.record.range";
62
+ readonly needs: readonly ["start", "end"];
63
+ readonly order: 14;
64
+ }, {
65
+ readonly phrase: "查作息详情";
66
+ readonly key: "schedule.record.detail";
67
+ readonly order: 15;
68
+ }, {
69
+ readonly phrase: "按ID查记录";
70
+ readonly key: "schedule.record.detail";
71
+ readonly needs: readonly ["id"];
72
+ readonly order: 16;
73
+ }, {
74
+ readonly phrase: "补一条作息";
75
+ readonly key: "schedule.record.write";
76
+ readonly preset: {
77
+ readonly op: "add";
78
+ };
79
+ readonly order: 17;
80
+ }, {
81
+ readonly phrase: "录作息";
82
+ readonly key: "schedule.record.write";
83
+ readonly preset: {
84
+ readonly op: "add";
85
+ };
86
+ readonly order: 18;
87
+ }, {
88
+ readonly phrase: "修正作息";
89
+ readonly key: "schedule.record.write";
90
+ readonly needs: readonly ["id"];
91
+ readonly preset: {
92
+ readonly op: "amend";
93
+ };
94
+ readonly order: 19;
95
+ }, {
96
+ readonly phrase: "改作息";
97
+ readonly key: "schedule.record.write";
98
+ readonly needs: readonly ["id"];
99
+ readonly preset: {
100
+ readonly op: "amend";
101
+ };
102
+ readonly order: 20;
103
+ }, {
104
+ readonly phrase: "这条记错了";
105
+ readonly key: "schedule.record.write";
106
+ readonly needs: readonly ["id"];
107
+ readonly preset: {
108
+ readonly op: "amend";
109
+ };
110
+ readonly order: 21;
111
+ }, {
112
+ readonly phrase: "写作息摘要";
113
+ readonly key: "schedule.record.write";
114
+ readonly preset: {
115
+ readonly op: "summary";
116
+ };
117
+ readonly order: 22;
118
+ }, {
119
+ readonly phrase: "记作息";
120
+ readonly key: "schedule.record.write";
121
+ readonly preset: {
122
+ readonly op: "add";
123
+ };
124
+ readonly order: 23;
125
+ }, {
126
+ readonly phrase: "对比两个月";
127
+ readonly key: "schedule.record.compare";
128
+ readonly preset: {
129
+ readonly kind: "months";
130
+ };
131
+ readonly order: 24;
132
+ }, {
133
+ readonly phrase: "月份对比";
134
+ readonly key: "schedule.record.compare";
135
+ readonly preset: {
136
+ readonly kind: "months";
137
+ };
138
+ readonly order: 25;
139
+ }, {
140
+ readonly phrase: "跨月对比";
141
+ readonly key: "schedule.record.compare";
142
+ readonly preset: {
143
+ readonly kind: "months";
144
+ };
145
+ readonly order: 26;
146
+ }, {
147
+ readonly phrase: "类别深挖";
148
+ readonly key: "schedule.record.compare";
149
+ readonly preset: {
150
+ readonly kind: "category";
151
+ };
152
+ readonly order: 27;
153
+ }, {
154
+ readonly phrase: "异常检测";
155
+ readonly key: "schedule.record.compare";
156
+ readonly preset: {
157
+ readonly kind: "anomaly";
158
+ };
159
+ readonly order: 28;
160
+ }, {
161
+ readonly phrase: "查多日计划";
162
+ readonly key: "schedule.plan.today";
163
+ readonly needs: readonly ["dates"];
164
+ readonly preset: {
165
+ readonly view: "aggregate";
166
+ };
167
+ readonly order: 29;
168
+ }, {
169
+ readonly phrase: "24h 概览";
170
+ readonly key: "schedule.plan.today";
171
+ readonly preset: {
172
+ readonly view: "aggregate";
173
+ };
174
+ readonly order: 30;
175
+ }, {
176
+ readonly phrase: "查日程";
177
+ readonly key: "schedule.plan.today";
178
+ readonly order: 31;
179
+ }, {
180
+ readonly phrase: "看日程";
181
+ readonly key: "schedule.plan.today";
182
+ readonly order: 32;
183
+ }, {
184
+ readonly phrase: "商量计划";
185
+ readonly key: "schedule.plan.write";
186
+ readonly preset: {
187
+ readonly op: "preview";
188
+ };
189
+ readonly order: 33;
190
+ }, {
191
+ readonly phrase: "一起规划";
192
+ readonly key: "schedule.plan.write";
193
+ readonly preset: {
194
+ readonly op: "preview";
195
+ };
196
+ readonly order: 34;
197
+ }, {
198
+ readonly phrase: "规划明天";
199
+ readonly key: "schedule.plan.write";
200
+ readonly preset: {
201
+ readonly op: "preview";
202
+ };
203
+ readonly order: 35;
204
+ }, {
205
+ readonly phrase: "规划一天";
206
+ readonly key: "schedule.plan.write";
207
+ readonly preset: {
208
+ readonly op: "preview";
209
+ };
210
+ readonly order: 36;
211
+ }, {
212
+ readonly phrase: "讨论计划";
213
+ readonly key: "schedule.plan.write";
214
+ readonly preset: {
215
+ readonly op: "preview";
216
+ };
217
+ readonly order: 37;
218
+ }, {
219
+ readonly phrase: "补计划";
220
+ readonly key: "schedule.plan.write";
221
+ readonly needs: readonly ["date", "time_start", "time_end", "title"];
222
+ readonly preset: {
223
+ readonly op: "ensure";
224
+ };
225
+ readonly order: 38;
226
+ }, {
227
+ readonly phrase: "改计划";
228
+ readonly key: "schedule.plan.write";
229
+ readonly needs: readonly ["id"];
230
+ readonly preset: {
231
+ readonly op: "update";
232
+ };
233
+ readonly order: 39;
234
+ }, {
235
+ readonly phrase: "删计划";
236
+ readonly key: "schedule.plan.write";
237
+ readonly needs: readonly ["id"];
238
+ readonly preset: {
239
+ readonly op: "deactivate";
240
+ };
241
+ readonly order: 40;
242
+ }, {
243
+ readonly phrase: "复盘今日";
244
+ readonly key: "schedule.plan.write";
245
+ readonly preset: {
246
+ readonly op: "review";
247
+ readonly granularity: "day";
248
+ };
249
+ readonly order: 41;
250
+ }, {
251
+ readonly phrase: "复盘本周";
252
+ readonly key: "schedule.plan.write";
253
+ readonly preset: {
254
+ readonly op: "review";
255
+ readonly granularity: "week";
256
+ };
257
+ readonly order: 42;
258
+ }, {
259
+ readonly phrase: "复盘本月";
260
+ readonly key: "schedule.plan.write";
261
+ readonly preset: {
262
+ readonly op: "review";
263
+ readonly granularity: "month";
264
+ };
265
+ readonly order: 43;
266
+ }, {
267
+ readonly phrase: "复盘区间";
268
+ readonly key: "schedule.plan.write";
269
+ readonly preset: {
270
+ readonly op: "review";
271
+ readonly granularity: "range";
272
+ };
273
+ readonly order: 44;
274
+ }, {
275
+ readonly phrase: "日程管家同步";
276
+ readonly key: "schedule.plan.write";
277
+ readonly preset: {
278
+ readonly op: "sync";
279
+ };
280
+ readonly order: 45;
281
+ }, {
282
+ readonly phrase: "飞书探测";
283
+ readonly key: "schedule.plan.write";
284
+ readonly preset: {
285
+ readonly op: "sync";
286
+ readonly dryRun: true;
287
+ };
288
+ readonly order: 46;
289
+ }, {
290
+ readonly phrase: "复盘";
291
+ readonly key: "schedule.plan.write";
292
+ readonly preset: {
293
+ readonly op: "review";
294
+ };
295
+ readonly order: 47;
296
+ }];
297
+ //# sourceMappingURL=routes.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.generated.d.ts","sourceRoot":"","sources":["../../src/triggers/routes.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDlB,CAAC"}
@@ -0,0 +1,52 @@
1
+ // 本文件由 `scripts/gen-cli.mjs` 生成,勿手改(`pnpm gen` 重生成,`pnpm gen:check` 验真)。
2
+ export const SCHEDULE_ROUTES = [
3
+ { phrase: '作息管家 HELP', key: 'schedule.help.lookup', order: 0 },
4
+ { phrase: '作息管家帮助', key: 'schedule.help.lookup', order: 1 },
5
+ { phrase: '作息管家能做什么', key: 'schedule.help.lookup', order: 2 },
6
+ { phrase: '作息管家使用说明', key: 'schedule.help.lookup', order: 3 },
7
+ { phrase: '今天总结', key: 'schedule.record.today', order: 4 },
8
+ { phrase: '今日作息', key: 'schedule.record.today', order: 5 },
9
+ { phrase: '今日总结', key: 'schedule.record.today', order: 6 },
10
+ { phrase: '今天作息', key: 'schedule.record.today', order: 7 },
11
+ { phrase: '查作息时间轴', key: 'schedule.record.today', order: 8 },
12
+ { phrase: '查作息状态', key: 'schedule.record.today', order: 9 },
13
+ { phrase: '初始化数据库', key: 'schedule.record.today', order: 10 },
14
+ { phrase: '查作息', key: 'schedule.record.today', order: 11 },
15
+ { phrase: '汇总作息', key: 'schedule.record.range', needs: ['start', 'end'], order: 12 },
16
+ { phrase: '查作息范围', key: 'schedule.record.range', needs: ['start', 'end'], order: 13 },
17
+ { phrase: '查作息游标', key: 'schedule.record.range', needs: ['start', 'end'], order: 14 },
18
+ { phrase: '查作息详情', key: 'schedule.record.detail', order: 15 },
19
+ { phrase: '按ID查记录', key: 'schedule.record.detail', needs: ['id'], order: 16 },
20
+ { phrase: '补一条作息', key: 'schedule.record.write', preset: { "op": "add" }, order: 17 },
21
+ { phrase: '录作息', key: 'schedule.record.write', preset: { "op": "add" }, order: 18 },
22
+ { phrase: '修正作息', key: 'schedule.record.write', needs: ['id'], preset: { "op": "amend" }, order: 19 },
23
+ { phrase: '改作息', key: 'schedule.record.write', needs: ['id'], preset: { "op": "amend" }, order: 20 },
24
+ { phrase: '这条记错了', key: 'schedule.record.write', needs: ['id'], preset: { "op": "amend" }, order: 21 },
25
+ { phrase: '写作息摘要', key: 'schedule.record.write', preset: { "op": "summary" }, order: 22 },
26
+ { phrase: '记作息', key: 'schedule.record.write', preset: { "op": "add" }, order: 23 },
27
+ { phrase: '对比两个月', key: 'schedule.record.compare', preset: { "kind": "months" }, order: 24 },
28
+ { phrase: '月份对比', key: 'schedule.record.compare', preset: { "kind": "months" }, order: 25 },
29
+ { phrase: '跨月对比', key: 'schedule.record.compare', preset: { "kind": "months" }, order: 26 },
30
+ { phrase: '类别深挖', key: 'schedule.record.compare', preset: { "kind": "category" }, order: 27 },
31
+ { phrase: '异常检测', key: 'schedule.record.compare', preset: { "kind": "anomaly" }, order: 28 },
32
+ { phrase: '查多日计划', key: 'schedule.plan.today', needs: ['dates'], preset: { "view": "aggregate" }, order: 29 },
33
+ { phrase: '24h 概览', key: 'schedule.plan.today', preset: { "view": "aggregate" }, order: 30 },
34
+ { phrase: '查日程', key: 'schedule.plan.today', order: 31 },
35
+ { phrase: '看日程', key: 'schedule.plan.today', order: 32 },
36
+ { phrase: '商量计划', key: 'schedule.plan.write', preset: { "op": "preview" }, order: 33 },
37
+ { phrase: '一起规划', key: 'schedule.plan.write', preset: { "op": "preview" }, order: 34 },
38
+ { phrase: '规划明天', key: 'schedule.plan.write', preset: { "op": "preview" }, order: 35 },
39
+ { phrase: '规划一天', key: 'schedule.plan.write', preset: { "op": "preview" }, order: 36 },
40
+ { phrase: '讨论计划', key: 'schedule.plan.write', preset: { "op": "preview" }, order: 37 },
41
+ { phrase: '补计划', key: 'schedule.plan.write', needs: ['date', 'time_start', 'time_end', 'title'], preset: { "op": "ensure" }, order: 38 },
42
+ { phrase: '改计划', key: 'schedule.plan.write', needs: ['id'], preset: { "op": "update" }, order: 39 },
43
+ { phrase: '删计划', key: 'schedule.plan.write', needs: ['id'], preset: { "op": "deactivate" }, order: 40 },
44
+ { phrase: '复盘今日', key: 'schedule.plan.write', preset: { "op": "review", "granularity": "day" }, order: 41 },
45
+ { phrase: '复盘本周', key: 'schedule.plan.write', preset: { "op": "review", "granularity": "week" }, order: 42 },
46
+ { phrase: '复盘本月', key: 'schedule.plan.write', preset: { "op": "review", "granularity": "month" }, order: 43 },
47
+ { phrase: '复盘区间', key: 'schedule.plan.write', preset: { "op": "review", "granularity": "range" }, order: 44 },
48
+ { phrase: '日程管家同步', key: 'schedule.plan.write', preset: { "op": "sync" }, order: 45 },
49
+ { phrase: '飞书探测', key: 'schedule.plan.write', preset: { "op": "sync", "dryRun": true }, order: 46 },
50
+ { phrase: '复盘', key: 'schedule.plan.write', preset: { "op": "review" }, order: 47 },
51
+ ];
52
+ //# sourceMappingURL=routes.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.generated.js","sourceRoot":"","sources":["../../src/triggers/routes.generated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const WRITE_COMMANDS: {
2
+ kind: "write";
3
+ key: string;
4
+ title: string;
5
+ wakeWord: string;
6
+ run: import("../shared/commandSpec.js").WriteHandler;
7
+ example: string;
8
+ }[];
9
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/write/commands.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc;;;;;;;GAEO,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { writeRecord } from './handlers.js';
2
+ export const WRITE_COMMANDS = [
3
+ { kind: 'write', key: 'schedule.record.write', title: '记作息', wakeWord: '记作息', run: writeRecord, example: 'schedule-cmd-read schedule.record.write --params \'{"op":"add"}\'' },
4
+ ];
5
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/write/commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,mEAAmE,EAAE;CAC9I,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { WriteHandler } from '../shared/commandSpec.js';
2
+ export declare const writeRecord: WriteHandler;
3
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/write/handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,eAAO,MAAM,WAAW,EAAE,YAezB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** 写入与同步的处理函数(命令事实的执行一半;声明在 `./commands.ts`)。
2
+ *
3
+ * 逐字搬自 `src/cli/cmd_read.ts` 的 switch 一臂(行为零改动)。
4
+ */
5
+ import { addRecord, amendRecord, addSummary, } from '../fetch/index.js';
6
+ import { parseRecordOp, validateAddInput, validateAmendInput, validateSummaryInput } from '../policy/index.js';
7
+ import { buildRecordReceipt } from '../render/index.js';
8
+ export const writeRecord = (params, handle) => {
9
+ const op = parseRecordOp(params);
10
+ if (op === 'add') {
11
+ const input = validateAddInput(params);
12
+ const r = addRecord(handle, input);
13
+ return { data: buildRecordReceipt('已记一条:' + r.id + '(' + r.date + ' ' + r.time_start + '~' + r.time_end + ' ' + r.category + ')'), html: '' };
14
+ }
15
+ if (op === 'amend') {
16
+ const { id, patch } = validateAmendInput(params);
17
+ const r = amendRecord(handle, id, patch);
18
+ return { data: buildRecordReceipt('已修正:' + r.id + '(edit_count=' + r.edit_count + ')'), html: '' };
19
+ }
20
+ const s = validateSummaryInput(params);
21
+ addSummary(handle, s.date, s.category, s.totalMinutes);
22
+ return { data: buildRecordReceipt('已写摘要:' + s.date + ' ' + s.category + '=' + s.totalMinutes + '分钟'), html: '' };
23
+ };
24
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/write/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,SAAS,EAAE,WAAW,EAAE,UAAU,GACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,CAAC,MAAM,WAAW,GAAiB,CAAC,MAAM,EAAE,MAAkB,EAAE,EAAE;IACtE,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAChJ,CAAC;IACD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,KAAgC,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,cAAc,GAAG,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACrG,CAAC;IACD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACnH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './commands.js';
2
+ export * from './routes.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/write/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './commands.js';
2
+ export * from './routes.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/write/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** 写入与同步的路由声明(**权威源**,`schedule.record.write` 的 7 条)。
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 WRITE_ROUTES: readonly RouteEntry[];
8
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/write/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAQ7C,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const WRITE_ROUTES = [
2
+ { phrase: '补一条作息', key: 'schedule.record.write', preset: { op: 'add' }, order: 17 },
3
+ { phrase: '录作息', key: 'schedule.record.write', preset: { op: 'add' }, order: 18 },
4
+ { phrase: '修正作息', key: 'schedule.record.write', preset: { op: 'amend' }, needs: ['id'], order: 19 },
5
+ { phrase: '改作息', key: 'schedule.record.write', preset: { op: 'amend' }, needs: ['id'], order: 20 },
6
+ { phrase: '这条记错了', key: 'schedule.record.write', preset: { op: 'amend' }, needs: ['id'], order: 21 },
7
+ { phrase: '写作息摘要', key: 'schedule.record.write', preset: { op: 'summary' }, order: 22 },
8
+ { phrase: '记作息', key: 'schedule.record.write', preset: { op: 'add' }, order: 23 },
9
+ ];
10
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/write/routes.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACnF,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACjF,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACnG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAClG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACpG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACvF,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CAClF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skill-schedule",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "作息管家SKILL一期:取数+口径+渲染+出口(record/plan 双域),依 link-core",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,8 +22,8 @@
22
22
  "schedule-cmd-read": "./dist/cli/cmd_read.js"
23
23
  },
24
24
  "dependencies": {
25
- "base-link-core": "^0.3.0",
26
- "base-paint": "^0.3.0"
25
+ "base-link-core": "^0.3.7",
26
+ "base-paint": "^0.3.7"
27
27
  },
28
28
  "engines": {
29
29
  "node": ">=22.13"