skill-memo-ilife 0.1.0 → 0.2.1

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 (202) hide show
  1. package/SKILL.md +77 -0
  2. package/dist/cli/cmd_read.js +443 -53
  3. package/dist/cli/cmd_read.js.map +1 -1
  4. package/dist/cli/config.d.ts +16 -0
  5. package/dist/cli/config.d.ts.map +1 -0
  6. package/dist/cli/config.js +84 -0
  7. package/dist/cli/config.js.map +1 -0
  8. package/dist/cli/health.d.ts +7 -0
  9. package/dist/cli/health.d.ts.map +1 -0
  10. package/dist/cli/health.js +32 -0
  11. package/dist/cli/health.js.map +1 -0
  12. package/dist/config.d.ts +47 -0
  13. package/dist/config.d.ts.map +1 -0
  14. package/dist/config.js +65 -0
  15. package/dist/config.js.map +1 -0
  16. package/dist/fetch/auth.d.ts +13 -0
  17. package/dist/fetch/auth.d.ts.map +1 -0
  18. package/dist/fetch/auth.js +94 -0
  19. package/dist/fetch/auth.js.map +1 -0
  20. package/dist/fetch/batch.d.ts +20 -0
  21. package/dist/fetch/batch.d.ts.map +1 -0
  22. package/dist/fetch/batch.js +45 -0
  23. package/dist/fetch/batch.js.map +1 -0
  24. package/dist/fetch/db.d.ts +72 -21
  25. package/dist/fetch/db.d.ts.map +1 -1
  26. package/dist/fetch/db.js +197 -85
  27. package/dist/fetch/db.js.map +1 -1
  28. package/dist/fetch/errors.d.ts +3 -1
  29. package/dist/fetch/errors.d.ts.map +1 -1
  30. package/dist/fetch/errors.js.map +1 -1
  31. package/dist/fetch/feishu.d.ts +1 -1
  32. package/dist/fetch/feishu.d.ts.map +1 -1
  33. package/dist/fetch/feishu.js +15 -13
  34. package/dist/fetch/feishu.js.map +1 -1
  35. package/dist/fetch/index.d.ts +14 -2
  36. package/dist/fetch/index.d.ts.map +1 -1
  37. package/dist/fetch/index.js +10 -1
  38. package/dist/fetch/index.js.map +1 -1
  39. package/dist/fetch/paths.d.ts +9 -0
  40. package/dist/fetch/paths.d.ts.map +1 -0
  41. package/dist/fetch/paths.js +24 -0
  42. package/dist/fetch/paths.js.map +1 -0
  43. package/dist/fetch/reminders.d.ts +30 -0
  44. package/dist/fetch/reminders.d.ts.map +1 -0
  45. package/dist/fetch/reminders.js +284 -0
  46. package/dist/fetch/reminders.js.map +1 -0
  47. package/dist/fetch/sentinel.d.ts +28 -0
  48. package/dist/fetch/sentinel.d.ts.map +1 -0
  49. package/dist/fetch/sentinel.js +150 -0
  50. package/dist/fetch/sentinel.js.map +1 -0
  51. package/dist/fetch/taskWrite.d.ts +27 -0
  52. package/dist/fetch/taskWrite.d.ts.map +1 -0
  53. package/dist/fetch/taskWrite.js +70 -0
  54. package/dist/fetch/taskWrite.js.map +1 -0
  55. package/dist/fetch/tasks.d.ts +19 -0
  56. package/dist/fetch/tasks.d.ts.map +1 -0
  57. package/dist/fetch/tasks.js +77 -0
  58. package/dist/fetch/tasks.js.map +1 -0
  59. package/dist/health.d.ts +41 -0
  60. package/dist/health.d.ts.map +1 -0
  61. package/dist/health.js +594 -0
  62. package/dist/health.js.map +1 -0
  63. package/dist/help/helpFile.d.ts +39 -0
  64. package/dist/help/helpFile.d.ts.map +1 -0
  65. package/dist/help/helpFile.js +159 -0
  66. package/dist/help/helpFile.js.map +1 -0
  67. package/dist/help/lookup.d.ts.map +1 -1
  68. package/dist/help/lookup.js +3 -2
  69. package/dist/help/lookup.js.map +1 -1
  70. package/dist/help/manifest.d.ts +10 -0
  71. package/dist/help/manifest.d.ts.map +1 -0
  72. package/dist/help/manifest.js +39 -0
  73. package/dist/help/manifest.js.map +1 -0
  74. package/dist/help/sceneData.d.ts +33 -0
  75. package/dist/help/sceneData.d.ts.map +1 -0
  76. package/dist/help/sceneData.js +66 -0
  77. package/dist/help/sceneData.js.map +1 -0
  78. package/dist/help/scenes/checkin.d.ts +47 -0
  79. package/dist/help/scenes/checkin.d.ts.map +1 -0
  80. package/dist/help/scenes/checkin.js +72 -0
  81. package/dist/help/scenes/checkin.js.map +1 -0
  82. package/dist/help/scenes/init.d.ts +41 -0
  83. package/dist/help/scenes/init.d.ts.map +1 -0
  84. package/dist/help/scenes/init.js +45 -0
  85. package/dist/help/scenes/init.js.map +1 -0
  86. package/dist/help/scenes/memo.d.ts +63 -0
  87. package/dist/help/scenes/memo.d.ts.map +1 -0
  88. package/dist/help/scenes/memo.js +124 -0
  89. package/dist/help/scenes/memo.js.map +1 -0
  90. package/dist/help/scenes/mood.d.ts +48 -0
  91. package/dist/help/scenes/mood.d.ts.map +1 -0
  92. package/dist/help/scenes/mood.js +74 -0
  93. package/dist/help/scenes/mood.js.map +1 -0
  94. package/dist/help/scenes/remind.d.ts +75 -0
  95. package/dist/help/scenes/remind.d.ts.map +1 -0
  96. package/dist/help/scenes/remind.js +91 -0
  97. package/dist/help/scenes/remind.js.map +1 -0
  98. package/dist/help/scenes/search.d.ts +63 -0
  99. package/dist/help/scenes/search.d.ts.map +1 -0
  100. package/dist/help/scenes/search.js +132 -0
  101. package/dist/help/scenes/search.js.map +1 -0
  102. package/dist/help/scenes/sync.d.ts +40 -0
  103. package/dist/help/scenes/sync.d.ts.map +1 -0
  104. package/dist/help/scenes/sync.js +44 -0
  105. package/dist/help/scenes/sync.js.map +1 -0
  106. package/dist/help/scenes/wish.d.ts +63 -0
  107. package/dist/help/scenes/wish.d.ts.map +1 -0
  108. package/dist/help/scenes/wish.js +104 -0
  109. package/dist/help/scenes/wish.js.map +1 -0
  110. package/dist/policy/category.d.ts.map +1 -1
  111. package/dist/policy/category.js +5 -2
  112. package/dist/policy/category.js.map +1 -1
  113. package/dist/policy/crud.d.ts +6 -2
  114. package/dist/policy/crud.d.ts.map +1 -1
  115. package/dist/policy/crud.js +14 -5
  116. package/dist/policy/crud.js.map +1 -1
  117. package/dist/policy/index.d.ts +4 -3
  118. package/dist/policy/index.d.ts.map +1 -1
  119. package/dist/policy/index.js +4 -2
  120. package/dist/policy/index.js.map +1 -1
  121. package/dist/policy/media.d.ts +15 -0
  122. package/dist/policy/media.d.ts.map +1 -0
  123. package/dist/policy/media.js +88 -0
  124. package/dist/policy/media.js.map +1 -0
  125. package/dist/policy/reminder.d.ts +8 -1
  126. package/dist/policy/reminder.d.ts.map +1 -1
  127. package/dist/policy/reminder.js +82 -4
  128. package/dist/policy/reminder.js.map +1 -1
  129. package/dist/policy/wakewords.d.ts +1 -1
  130. package/dist/policy/wakewords.d.ts.map +1 -1
  131. package/dist/policy/wakewords.js +1 -0
  132. package/dist/policy/wakewords.js.map +1 -1
  133. package/dist/render/envelope.d.ts.map +1 -1
  134. package/dist/render/envelope.js +6 -1
  135. package/dist/render/envelope.js.map +1 -1
  136. package/dist/render/errors.d.ts +1 -1
  137. package/dist/render/errors.d.ts.map +1 -1
  138. package/dist/render/errors.js +1 -1
  139. package/dist/render/errors.js.map +1 -1
  140. package/dist/render/html.d.ts +0 -3
  141. package/dist/render/html.d.ts.map +1 -1
  142. package/dist/render/html.js +2 -12
  143. package/dist/render/html.js.map +1 -1
  144. package/dist/render/index.d.ts +4 -1
  145. package/dist/render/index.d.ts.map +1 -1
  146. package/dist/render/index.js +5 -1
  147. package/dist/render/index.js.map +1 -1
  148. package/dist/render/pageAssets.d.ts +9 -0
  149. package/dist/render/pageAssets.d.ts.map +1 -0
  150. package/dist/render/pageAssets.js +73 -0
  151. package/dist/render/pageAssets.js.map +1 -0
  152. package/dist/render/pages.d.ts +54 -0
  153. package/dist/render/pages.d.ts.map +1 -0
  154. package/dist/render/pages.js +175 -0
  155. package/dist/render/pages.js.map +1 -0
  156. package/dist/wish/complete.d.ts +10 -0
  157. package/dist/wish/complete.d.ts.map +1 -0
  158. package/dist/wish/complete.js +72 -0
  159. package/dist/wish/complete.js.map +1 -0
  160. package/dist/wish/due.d.ts +16 -0
  161. package/dist/wish/due.d.ts.map +1 -0
  162. package/dist/wish/due.js +54 -0
  163. package/dist/wish/due.js.map +1 -0
  164. package/dist/wish/ensure.d.ts +60 -0
  165. package/dist/wish/ensure.d.ts.map +1 -0
  166. package/dist/wish/ensure.js +233 -0
  167. package/dist/wish/ensure.js.map +1 -0
  168. package/dist/wish/gate.d.ts +10 -0
  169. package/dist/wish/gate.d.ts.map +1 -0
  170. package/dist/wish/gate.js +14 -0
  171. package/dist/wish/gate.js.map +1 -0
  172. package/dist/wish/index.d.ts +11 -0
  173. package/dist/wish/index.d.ts.map +1 -0
  174. package/dist/wish/index.js +8 -0
  175. package/dist/wish/index.js.map +1 -0
  176. package/dist/wish/mark.d.ts +5 -0
  177. package/dist/wish/mark.d.ts.map +1 -0
  178. package/dist/wish/mark.js +15 -0
  179. package/dist/wish/mark.js.map +1 -0
  180. package/dist/wish/reconcile.d.ts +24 -0
  181. package/dist/wish/reconcile.d.ts.map +1 -0
  182. package/dist/wish/reconcile.js +159 -0
  183. package/dist/wish/reconcile.js.map +1 -0
  184. package/dist/wish/taskRemove.d.ts +4 -0
  185. package/dist/wish/taskRemove.d.ts.map +1 -0
  186. package/dist/wish/taskRemove.js +22 -0
  187. package/dist/wish/taskRemove.js.map +1 -0
  188. package/dist/wish/taskSync.d.ts +19 -0
  189. package/dist/wish/taskSync.d.ts.map +1 -0
  190. package/dist/wish/taskSync.js +50 -0
  191. package/dist/wish/taskSync.js.map +1 -0
  192. package/dist/wish/wizards.d.ts +38 -0
  193. package/dist/wish/wizards.d.ts.map +1 -0
  194. package/dist/wish/wizards.js +92 -0
  195. package/dist/wish/wizards.js.map +1 -0
  196. package/package.json +7 -4
  197. package/templates/change_category.html +2 -2
  198. package/templates/init_report.html +2 -2
  199. package/templates/memo_query.html +2 -2
  200. package/templates/sync_report.html +2 -2
  201. package/templates/wish_complete.html +2 -2
  202. package/templates/wish_plan.html +2 -2
package/SKILL.md ADDED
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: skill-memo-ilife
3
+ description: "「备忘录HELP」→memo.help.lookup 出备忘录自己的 HELP 文件(老骨架 8 域/13 二级组/30 场景,走仓内通用 help 模板);唯一出口 memo-cmd-read。触发词:备忘录 HELP(不分大小写)。文件 DB 笔记:按关键词/时间/分类/子分类搜与看、记一条、改一条、删一条(真删须 confirm)、批量改分类、提醒(设/查/废弃/完成)、心愿排期、统计、飞书同步。"
4
+ ---
5
+ # 备忘录(memo)SKILL
6
+
7
+ 文件 DB 笔记:增删改查、分类、心愿排期、提醒路由、飞书同步。唯一出口 `memo-cmd-read <memo.key>`,argv+JSON(stdout)+exit,非 0 走 stderr。
8
+
9
+ ## 快速开始
10
+
11
+ ```sh
12
+ memo-cmd-read memo.search --params '{"q":"关键词"}'
13
+ memo-cmd-read memo.create --params '{"title":"买奶","category":"备忘"}'
14
+ memo-cmd-read memo.remind
15
+ memo-cmd-read memo.help.lookup # 说「备忘录 HELP」(不分大小写):缺省就落一份 HELP 文件
16
+ ```
17
+
18
+ ## 口径(M3)
19
+
20
+ - 顶层分类 4 种:备忘(默认)/心愿/打卡/情绪日记;子分类自由文本可空;子唤醒词自带顶层。
21
+ - 提醒四向:设置/查询/废弃(留笔记)/完成;真删须 confirm。
22
+ - 坏输入与缺失一律阻断,不返空数组冒充正常。
23
+
24
+ ## 联动速查(构建期注入,勿手改)
25
+
26
+ <!-- HELP-AUTO-START -->
27
+ | 唤醒词 | key | shape | 例 |
28
+ |---|---|---|---|
29
+ | 按时间搜备忘 | memo.search | list | `memo-cmd-read memo.search --params '{"timeRange":"2026-09"}'` |
30
+ | 查已提醒备忘 | memo.remind | list | `memo-cmd-read memo.remind --params '{"done":false}'` |
31
+ | 批量改分类 | memo.batch | receipt | `memo-cmd-read memo.batch` |
32
+ | 改子分类 | memo.update | receipt | `memo-cmd-read memo.update --params '{"id":"<id>"}'` |
33
+ | 搜备忘 | memo.search | list | `memo-cmd-read memo.search` |
34
+ | 查备忘 | memo.search | list | `memo-cmd-read memo.search` |
35
+ | 看备忘 | memo.detail | detail | `memo-cmd-read memo.detail --params '{"id":"<id>"}'` |
36
+ | 看提醒 | memo.remind | list | `memo-cmd-read memo.remind` |
37
+ | 查提醒 | memo.remind | list | `memo-cmd-read memo.remind` |
38
+ | 设提醒 | memo.create | receipt | `memo-cmd-read memo.create --params '{"remindAt":"2026-10-01 09:00"}'` |
39
+ | 记提醒 | memo.create | receipt | `memo-cmd-read memo.create --params '{"remindAt":"2026-10-01 09:00"}'` |
40
+ | 废弃提醒 | memo.remove | receipt | `memo-cmd-read memo.remove --params '{"mode":"abandon"}'` |
41
+ | 完成心愿 | memo.update | receipt | `memo-cmd-read memo.update --params '{"done":true}'` |
42
+ | 心愿排期 | memo.wish | list | `memo-cmd-read memo.wish` |
43
+ | 飞书授权 | memo.auth | receipt | `memo-cmd-read memo.auth` |
44
+ | 记一条 | memo.create | receipt | `memo-cmd-read memo.create` |
45
+ | 添加笔记 | memo.create | receipt | `memo-cmd-read memo.create` |
46
+ | 记心愿 | memo.create | receipt | `memo-cmd-read memo.create --params '{"category":"心愿"}'` |
47
+ | 记打卡 | memo.create | receipt | `memo-cmd-read memo.create --params '{"category":"打卡"}'` |
48
+ | 记情绪日记 | memo.create | receipt | `memo-cmd-read memo.create --params '{"category":"情绪日记"}'` |
49
+ | 查心愿 | memo.wish | list | `memo-cmd-read memo.wish --params '{"category":"心愿"}'` |
50
+ | 查打卡 | memo.search | list | `memo-cmd-read memo.search --params '{"category":"打卡"}'` |
51
+ | 查情绪日记 | memo.search | list | `memo-cmd-read memo.search --params '{"category":"情绪日记"}'` |
52
+ | 改心愿 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"心愿","id":"<id>"}'` |
53
+ | 改打卡 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"打卡","id":"<id>"}'` |
54
+ | 改情绪日记 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"情绪日记","id":"<id>"}'` |
55
+ | 删心愿 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"心愿","id":"<id>"}'` |
56
+ | 删打卡 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"打卡","id":"<id>"}'` |
57
+ | 删情绪日记 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"情绪日记","id":"<id>"}'` |
58
+
59
+ 相关场景:memo.auth、memo.batch、memo.create、memo.detail、memo.help.lookup、memo.remind、memo.remove、memo.search、memo.stats、memo.sync、memo.update、memo.wish(12 联动,key 字符串 P8 落表时冻结)。
60
+ <!-- HELP-AUTO-END -->
61
+
62
+ ## HELP 交付(说「备忘录 HELP」走这里,不分大小写)
63
+
64
+ - **缺省就是交付物**:`memo-cmd-read memo.help.lookup` **原样调用**即落一份能打开的 HELP 文件——`<库目录>/<产物目录>/备忘录_HELP_<YYYYMMDD_HHMMSS>.html`(`<库目录>`=配置文件 `~/.ilife/memo.yaml` 的 `db.dir`,空串=数据目录 `~/.ilife/data/`;`<产物目录>`=同文件的 `html.dir`,默认 `memo_html`,**扁平一段、不加 `help/` 一层**;8 域/13 二级组/30 场景,走仓内通用 help 模板)。stdout 的 `delivery.path` 是**绝对路径**、`delivery.bytes` 是文件字节数;回话就把这个路径给用户(回执即真相)。
65
+ **完成标准**:`delivery.path` 指的那个文件真的存在、大小=`delivery.bytes`、退出码 0——三条都核过才算交付,核不过就照实说失败。
66
+ - **反复读不再涨目录(#245)**:同一主体**一天内只留一份**——24 小时内再读就**复用已有那份**(不新建、不改写;回执给的就是它)。要别的窗口给 `--params '{"reuseHours":3}'`(小时);要**每次都要一份最新的**给 `{"reuseHours":0}`。窗口内若已有一份、而你刚改过 HELP 内容,那份旧产物**不会被自动刷新**(窗口语义如此)——真要新的就带 `reuseHours:0`。
67
+ - **要速查表才加参数**:`--params '{"mode":"lookup"}'` 落同目录 `备忘录_速查表_<YYYYMMDD_HHMMSS>.html`(28 条唤醒词一行一条:唤醒词/命令/形状/调用形/一句话)。与 HELP 文件**分名**,两份产物不撞车;这一支同样吃上面的复用窗口。
68
+ - **要现找才加参数**:`--params '{"q":"帮我搜备忘"}'` 只回命中条目(JSON),**不落盘**;要落盘再给 `--html`。`q` 与 `mode` 互斥,`mode` 只认 `lookup`,违反即退出码 2。
69
+ - **`--html <路径>`=显式落点**:逐字用你给的路径、缺父目录自动建、**覆盖写**(不参与同一秒 `_N` 递补)。给 `--html` 时缺省那支落整页 HELP,`q`/`mode:"lookup"` 那两支落该次的分节页。
70
+ - **边界**:看 HELP **不开库、不建库**——跑完数据目录里仍没有 `memo.db`;这条命令只交页面与索引,不读也不写笔记内容。
71
+ - **与上一节的关系**:正文「联动速查」块是**构建期注入的索引**(`scripts/build-help.mjs` 从唤醒词表注入 SKILL.md,勿手改),给 AI 按唤醒词找命令;**HELP 文件是缺省交付物**,给用户打开看。两者同源(同一张唤醒词表)、不是一份东西;显式 `mode:"lookup"` 落的那份是索引的页面版(`备忘录_速查表`),也不是 HELP 文件。
72
+ - **入口只认一条**:「备忘录 HELP」(不分大小写,用户 2026-09-12 裁定);其余唤醒词是场景别名,住上一节索引块,不另立 HELP 入口。
73
+
74
+ ## 环境与出 scope
75
+
76
+ - 路径类取值一律读配置文件 `~/.ilife/memo.yaml`(**配置文件是唯一真相,环境变量不参与配置**):库目录=`db.dir`(空串=数据目录 `~/.ilife/data/`,首次读时自动建)、库文件名=`db.name`(默认 `memo.db`)、产物目录=`html.dir`(默认 `memo_html`)、附件目录=`media.dir`(默认 `media`)、飞书 CLI 路径=`lark.cliPath`(**空串=没有显式值,走本机自动探测**)、飞书扫码目录=`lark.qrDir`(空串=系统临时目录下的 `memo_feishu_qr`)、HELP 与速查表的主体名=`files.help`/`files.lookup`;`ILIFE_CONFIG_DIR` 设定且非空即整体接管配置目录。飞书同步另须 lark-cli 四门全绿。取值面与环境项见 docs/env.md。
77
+ - 出 scope:定时任务、面板、本技能外联动;Python 老家只读对照。