@poping/yome 0.0.2 → 0.0.4

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 (276) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +11 -0
  3. package/README.md +306 -27
  4. package/README.zh-CN.md +333 -0
  5. package/bin/yome-calwatch +0 -0
  6. package/dist/agent.d.ts +24 -2
  7. package/dist/agent.js +34 -2
  8. package/dist/agent.js.map +1 -1
  9. package/dist/context.d.ts +2 -0
  10. package/dist/context.js +121 -13
  11. package/dist/context.js.map +1 -1
  12. package/dist/daemon/calendarPermission.d.ts +10 -0
  13. package/dist/daemon/calendarPermission.js +68 -0
  14. package/dist/daemon/calendarPermission.js.map +1 -0
  15. package/dist/daemon/cronCli.d.ts +19 -0
  16. package/dist/daemon/cronCli.js +403 -0
  17. package/dist/daemon/cronCli.js.map +1 -0
  18. package/dist/daemon/envHint.d.ts +5 -0
  19. package/dist/daemon/envHint.js +139 -0
  20. package/dist/daemon/envHint.js.map +1 -0
  21. package/dist/daemon/humanCron.d.ts +1 -0
  22. package/dist/daemon/humanCron.js +72 -0
  23. package/dist/daemon/humanCron.js.map +1 -0
  24. package/dist/daemon/humanOnce.d.ts +1 -0
  25. package/dist/daemon/humanOnce.js +54 -0
  26. package/dist/daemon/humanOnce.js.map +1 -0
  27. package/dist/daemon/index.d.ts +5 -0
  28. package/dist/daemon/index.js +168 -0
  29. package/dist/daemon/index.js.map +1 -0
  30. package/dist/daemon/launchd.d.ts +7 -0
  31. package/dist/daemon/launchd.js +93 -0
  32. package/dist/daemon/launchd.js.map +1 -0
  33. package/dist/daemon/log.d.ts +17 -0
  34. package/dist/daemon/log.js +57 -0
  35. package/dist/daemon/log.js.map +1 -0
  36. package/dist/daemon/paths.d.ts +11 -0
  37. package/dist/daemon/paths.js +27 -0
  38. package/dist/daemon/paths.js.map +1 -0
  39. package/dist/daemon/runTaskEntry.d.ts +1 -0
  40. package/dist/daemon/runTaskEntry.js +67 -0
  41. package/dist/daemon/runTaskEntry.js.map +1 -0
  42. package/dist/daemon/runner.d.ts +21 -0
  43. package/dist/daemon/runner.js +175 -0
  44. package/dist/daemon/runner.js.map +1 -0
  45. package/dist/daemon/scheduler.d.ts +5 -0
  46. package/dist/daemon/scheduler.js +162 -0
  47. package/dist/daemon/scheduler.js.map +1 -0
  48. package/dist/daemon/taskStore.d.ts +62 -0
  49. package/dist/daemon/taskStore.js +88 -0
  50. package/dist/daemon/taskStore.js.map +1 -0
  51. package/dist/daemon/triggers/calendar.d.ts +8 -0
  52. package/dist/daemon/triggers/calendar.js +248 -0
  53. package/dist/daemon/triggers/calendar.js.map +1 -0
  54. package/dist/daemon/triggers/childRunner.d.ts +14 -0
  55. package/dist/daemon/triggers/childRunner.js +111 -0
  56. package/dist/daemon/triggers/childRunner.js.map +1 -0
  57. package/dist/daemon/triggers/cron.d.ts +14 -0
  58. package/dist/daemon/triggers/cron.js +91 -0
  59. package/dist/daemon/triggers/cron.js.map +1 -0
  60. package/dist/daemon/triggers/file.d.ts +7 -0
  61. package/dist/daemon/triggers/file.js +123 -0
  62. package/dist/daemon/triggers/file.js.map +1 -0
  63. package/dist/daemon/triggers/once.d.ts +10 -0
  64. package/dist/daemon/triggers/once.js +80 -0
  65. package/dist/daemon/triggers/once.js.map +1 -0
  66. package/dist/index.js +240 -15
  67. package/dist/index.js.map +1 -1
  68. package/dist/llm.js +45 -2
  69. package/dist/llm.js.map +1 -1
  70. package/dist/loops/chain.js +8 -0
  71. package/dist/loops/chain.js.map +1 -1
  72. package/dist/loops/evaluator.js +8 -0
  73. package/dist/loops/evaluator.js.map +1 -1
  74. package/dist/loops/orchestrator.js +8 -0
  75. package/dist/loops/orchestrator.js.map +1 -1
  76. package/dist/loops/parallel.js.map +1 -1
  77. package/dist/loops/route.js +8 -0
  78. package/dist/loops/route.js.map +1 -1
  79. package/dist/loops/simple.js +15 -0
  80. package/dist/loops/simple.js.map +1 -1
  81. package/dist/permissions/index.d.ts +1 -1
  82. package/dist/permissions/index.js +1 -1
  83. package/dist/permissions/index.js.map +1 -1
  84. package/dist/permissions/loader.d.ts +20 -1
  85. package/dist/permissions/loader.js +51 -0
  86. package/dist/permissions/loader.js.map +1 -1
  87. package/dist/redact.d.ts +56 -0
  88. package/dist/redact.js +191 -0
  89. package/dist/redact.js.map +1 -0
  90. package/dist/skills/runner/applescript.d.ts +49 -0
  91. package/dist/skills/runner/applescript.js +100 -0
  92. package/dist/skills/runner/applescript.js.map +1 -0
  93. package/dist/skills/runner/dispatcher.d.ts +128 -0
  94. package/dist/skills/runner/dispatcher.js +617 -0
  95. package/dist/skills/runner/dispatcher.js.map +1 -0
  96. package/dist/skills/runner/dispatcher.test.d.ts +1 -0
  97. package/dist/skills/runner/dispatcher.test.js +141 -0
  98. package/dist/skills/runner/dispatcher.test.js.map +1 -0
  99. package/dist/skills/runner/kernel.d.ts +8 -0
  100. package/dist/skills/runner/kernel.js +731 -0
  101. package/dist/skills/runner/kernel.js.map +1 -0
  102. package/dist/skills/runner/nodeBackend.d.ts +32 -0
  103. package/dist/skills/runner/nodeBackend.js +147 -0
  104. package/dist/skills/runner/nodeBackend.js.map +1 -0
  105. package/dist/skills/runner/tokenizer.d.ts +36 -0
  106. package/dist/skills/runner/tokenizer.js +177 -0
  107. package/dist/skills/runner/tokenizer.js.map +1 -0
  108. package/dist/state/todos.d.ts +12 -0
  109. package/dist/state/todos.js +32 -0
  110. package/dist/state/todos.js.map +1 -0
  111. package/dist/threadCli.d.ts +11 -0
  112. package/dist/threadCli.js +177 -0
  113. package/dist/threadCli.js.map +1 -0
  114. package/dist/threadShare.d.ts +21 -0
  115. package/dist/threadShare.js +121 -0
  116. package/dist/threadShare.js.map +1 -0
  117. package/dist/threadSubmit.d.ts +32 -0
  118. package/dist/threadSubmit.js +199 -0
  119. package/dist/threadSubmit.js.map +1 -0
  120. package/dist/tools/askUser.d.ts +20 -0
  121. package/dist/tools/askUser.js +126 -0
  122. package/dist/tools/askUser.js.map +1 -0
  123. package/dist/tools/bash.js +63 -14
  124. package/dist/tools/bash.js.map +1 -1
  125. package/dist/tools/index.d.ts +24 -2
  126. package/dist/tools/index.js +54 -5
  127. package/dist/tools/index.js.map +1 -1
  128. package/dist/tools/skillCall.d.ts +2 -0
  129. package/dist/tools/skillCall.js +77 -0
  130. package/dist/tools/skillCall.js.map +1 -0
  131. package/dist/tools/todoWrite.d.ts +2 -0
  132. package/dist/tools/todoWrite.js +141 -0
  133. package/dist/tools/todoWrite.js.map +1 -0
  134. package/dist/tools/yome.d.ts +2 -0
  135. package/dist/tools/yome.js +87 -0
  136. package/dist/tools/yome.js.map +1 -0
  137. package/dist/ui/AgentPicker.js +3 -3
  138. package/dist/ui/AgentPicker.js.map +1 -1
  139. package/dist/ui/App.js +263 -61
  140. package/dist/ui/App.js.map +1 -1
  141. package/dist/ui/AskUserPrompt.d.ts +7 -0
  142. package/dist/ui/AskUserPrompt.js +78 -0
  143. package/dist/ui/AskUserPrompt.js.map +1 -0
  144. package/dist/ui/Banner.d.ts +2 -1
  145. package/dist/ui/Banner.js +23 -4
  146. package/dist/ui/Banner.js.map +1 -1
  147. package/dist/ui/InputBar.js +25 -36
  148. package/dist/ui/InputBar.js.map +1 -1
  149. package/dist/ui/Markdown.d.ts +2 -2
  150. package/dist/ui/Markdown.js +22 -7
  151. package/dist/ui/Markdown.js.map +1 -1
  152. package/dist/ui/MarketplacePicker.d.ts +7 -0
  153. package/dist/ui/MarketplacePicker.js +122 -0
  154. package/dist/ui/MarketplacePicker.js.map +1 -0
  155. package/dist/ui/MessageList.d.ts +12 -1
  156. package/dist/ui/MessageList.js +72 -7
  157. package/dist/ui/MessageList.js.map +1 -1
  158. package/dist/ui/ModelPicker.js +4 -4
  159. package/dist/ui/ModelPicker.js.map +1 -1
  160. package/dist/ui/MultilineTextInput.d.ts +31 -0
  161. package/dist/ui/MultilineTextInput.js +393 -0
  162. package/dist/ui/MultilineTextInput.js.map +1 -0
  163. package/dist/ui/MultilineTextInput.test.d.ts +1 -0
  164. package/dist/ui/MultilineTextInput.test.js +30 -0
  165. package/dist/ui/MultilineTextInput.test.js.map +1 -0
  166. package/dist/ui/PermissionPrompt.d.ts +16 -4
  167. package/dist/ui/PermissionPrompt.js +60 -15
  168. package/dist/ui/PermissionPrompt.js.map +1 -1
  169. package/dist/ui/SessionPicker.js +2 -2
  170. package/dist/ui/SessionPicker.js.map +1 -1
  171. package/dist/ui/ShimmerText.d.ts +8 -0
  172. package/dist/ui/ShimmerText.js +40 -0
  173. package/dist/ui/ShimmerText.js.map +1 -0
  174. package/dist/ui/Spinner.js +3 -9
  175. package/dist/ui/Spinner.js.map +1 -1
  176. package/dist/ui/TodoPanel.d.ts +7 -0
  177. package/dist/ui/TodoPanel.js +36 -0
  178. package/dist/ui/TodoPanel.js.map +1 -0
  179. package/dist/ui/TogglePicker.js +4 -4
  180. package/dist/ui/TogglePicker.js.map +1 -1
  181. package/dist/ui/ToolResult.js +6 -0
  182. package/dist/ui/ToolResult.js.map +1 -1
  183. package/dist/ui/UnifiedSkillsPicker.d.ts +10 -0
  184. package/dist/ui/UnifiedSkillsPicker.js +63 -0
  185. package/dist/ui/UnifiedSkillsPicker.js.map +1 -0
  186. package/dist/ui/animation.d.ts +3 -0
  187. package/dist/ui/animation.js +48 -0
  188. package/dist/ui/animation.js.map +1 -0
  189. package/dist/ui/useThrottledStream.d.ts +7 -0
  190. package/dist/ui/useThrottledStream.js +63 -0
  191. package/dist/ui/useThrottledStream.js.map +1 -0
  192. package/dist/yomeSkills/auth.d.ts +20 -0
  193. package/dist/yomeSkills/auth.js +70 -0
  194. package/dist/yomeSkills/auth.js.map +1 -0
  195. package/dist/yomeSkills/blacklist.d.ts +33 -0
  196. package/dist/yomeSkills/blacklist.js +101 -0
  197. package/dist/yomeSkills/blacklist.js.map +1 -0
  198. package/dist/yomeSkills/capabilities.d.ts +54 -0
  199. package/dist/yomeSkills/capabilities.js +175 -0
  200. package/dist/yomeSkills/capabilities.js.map +1 -0
  201. package/dist/yomeSkills/capabilityGuard.d.ts +31 -0
  202. package/dist/yomeSkills/capabilityGuard.js +113 -0
  203. package/dist/yomeSkills/capabilityGuard.js.map +1 -0
  204. package/dist/yomeSkills/cli.d.ts +25 -0
  205. package/dist/yomeSkills/cli.js +624 -0
  206. package/dist/yomeSkills/cli.js.map +1 -0
  207. package/dist/yomeSkills/deprecate.d.ts +29 -0
  208. package/dist/yomeSkills/deprecate.js +99 -0
  209. package/dist/yomeSkills/deprecate.js.map +1 -0
  210. package/dist/yomeSkills/devLink.d.ts +17 -0
  211. package/dist/yomeSkills/devLink.js +91 -0
  212. package/dist/yomeSkills/devLink.js.map +1 -0
  213. package/dist/yomeSkills/doctor.d.ts +13 -0
  214. package/dist/yomeSkills/doctor.js +152 -0
  215. package/dist/yomeSkills/doctor.js.map +1 -0
  216. package/dist/yomeSkills/enable.d.ts +8 -0
  217. package/dist/yomeSkills/enable.js +67 -0
  218. package/dist/yomeSkills/enable.js.map +1 -0
  219. package/dist/yomeSkills/hubPing.d.ts +1 -0
  220. package/dist/yomeSkills/hubPing.js +41 -0
  221. package/dist/yomeSkills/hubPing.js.map +1 -0
  222. package/dist/yomeSkills/install.d.ts +18 -0
  223. package/dist/yomeSkills/install.js +143 -0
  224. package/dist/yomeSkills/install.js.map +1 -0
  225. package/dist/yomeSkills/installFromHubTarball.d.ts +26 -0
  226. package/dist/yomeSkills/installFromHubTarball.js +161 -0
  227. package/dist/yomeSkills/installFromHubTarball.js.map +1 -0
  228. package/dist/yomeSkills/installGithub.d.ts +33 -0
  229. package/dist/yomeSkills/installGithub.js +213 -0
  230. package/dist/yomeSkills/installGithub.js.map +1 -0
  231. package/dist/yomeSkills/installMeta.d.ts +8 -0
  232. package/dist/yomeSkills/installMeta.js +76 -0
  233. package/dist/yomeSkills/installMeta.js.map +1 -0
  234. package/dist/yomeSkills/integrity.d.ts +26 -0
  235. package/dist/yomeSkills/integrity.js +107 -0
  236. package/dist/yomeSkills/integrity.js.map +1 -0
  237. package/dist/yomeSkills/invoke.d.ts +29 -0
  238. package/dist/yomeSkills/invoke.js +135 -0
  239. package/dist/yomeSkills/invoke.js.map +1 -0
  240. package/dist/yomeSkills/list.d.ts +11 -0
  241. package/dist/yomeSkills/list.js +55 -0
  242. package/dist/yomeSkills/list.js.map +1 -0
  243. package/dist/yomeSkills/login.d.ts +41 -0
  244. package/dist/yomeSkills/login.js +221 -0
  245. package/dist/yomeSkills/login.js.map +1 -0
  246. package/dist/yomeSkills/manifest.d.ts +60 -0
  247. package/dist/yomeSkills/manifest.js +47 -0
  248. package/dist/yomeSkills/manifest.js.map +1 -0
  249. package/dist/yomeSkills/paths.d.ts +13 -0
  250. package/dist/yomeSkills/paths.js +33 -0
  251. package/dist/yomeSkills/paths.js.map +1 -0
  252. package/dist/yomeSkills/publish.d.ts +18 -0
  253. package/dist/yomeSkills/publish.js +114 -0
  254. package/dist/yomeSkills/publish.js.map +1 -0
  255. package/dist/yomeSkills/rollback.d.ts +10 -0
  256. package/dist/yomeSkills/rollback.js +83 -0
  257. package/dist/yomeSkills/rollback.js.map +1 -0
  258. package/dist/yomeSkills/search.d.ts +21 -0
  259. package/dist/yomeSkills/search.js +31 -0
  260. package/dist/yomeSkills/search.js.map +1 -0
  261. package/dist/yomeSkills/skillsIndex.d.ts +36 -0
  262. package/dist/yomeSkills/skillsIndex.js +111 -0
  263. package/dist/yomeSkills/skillsIndex.js.map +1 -0
  264. package/dist/yomeSkills/unified.d.ts +53 -0
  265. package/dist/yomeSkills/unified.js +187 -0
  266. package/dist/yomeSkills/unified.js.map +1 -0
  267. package/dist/yomeSkills/uninstall.d.ts +7 -0
  268. package/dist/yomeSkills/uninstall.js +22 -0
  269. package/dist/yomeSkills/uninstall.js.map +1 -0
  270. package/dist/yomeSkills/update.d.ts +18 -0
  271. package/dist/yomeSkills/update.js +75 -0
  272. package/dist/yomeSkills/update.js.map +1 -0
  273. package/dist/yomeSkills/validate.d.ts +11 -0
  274. package/dist/yomeSkills/validate.js +99 -0
  275. package/dist/yomeSkills/validate.js.map +1 -0
  276. package/package.json +23 -6
@@ -0,0 +1,333 @@
1
+ <div align="center">
2
+
3
+ <img src=".assets/yome-icon.png" width="120" alt="Yome" />
4
+
5
+ # YOME AGENT
6
+
7
+ ### Empower Kernel · 赋能内核
8
+
9
+ *主动式上下文 · 原生应用赋能 · 智能 Bash 内核*
10
+ *让 AI 真正感知你、连接你、为你交付的开源底座。*
11
+
12
+ [English](./README.md) · [简体中文](./README.zh-CN.md)
13
+
14
+ </div>
15
+
16
+ ---
17
+
18
+ Yome Agent 不是又一个 chat agent。它是 [Yome](https://yome.work) 的开源底盘 —— 一台把 LLM、你的设备、你机器上的原生 app 编织成统一运行环境的 **Empower Kernel**。
19
+
20
+ 模型已经很强了。它住在你 12 个 context 之外的某处。今天你是 context 与 tool 之间的 router; 80% 的工作日花在搬运而不是创造。Yome Agent 的存在是为了把这层路由职责从你手里拿走 —— 不是再造一个工具,而是让你已有的工具醒来。
21
+
22
+ ---
23
+
24
+ ## 60 秒上手
25
+
26
+ ```bash
27
+ # 安装
28
+ npm install -g @poping/yome
29
+
30
+ # 配置 (写入 ~/.yome/config.json)
31
+ yome --key sk-... --base-url https://your.endpoint --model your-model
32
+
33
+ # 运行
34
+ yome # 交互式 REPL
35
+ yome "总结一下 package.json" # 一次性
36
+
37
+ # 安装第一个原生 skill (PowerPoint 编辑器)
38
+ yome skill install github:Whopus/yome-skill-ppt
39
+ yome skill list
40
+ ```
41
+
42
+ `yome` 跑起来后,试一下:
43
+
44
+ ```
45
+ > 帮我新建一个 ppt,标题 "Q3 Review",保存到桌面
46
+ ```
47
+
48
+ 模型会自己用 Bash 调 `ppt new ~/Desktop/q3.pptx` → `ppt title 1 --text="Q3 Review"` → `ppt save`。Microsoft PowerPoint 在你桌面打开,文件落地。这就是 Empower Kernel 的最小闭环。
49
+
50
+ ---
51
+
52
+ ## 三大引擎
53
+
54
+ Yome Agent 由三个相互独立、又彼此咬合的引擎组成。每一个都是 Yome 商业蓝图中 *Agentic Empower Intelligence* 的一块 ground truth。
55
+
56
+ ---
57
+
58
+ ### 1. Agentic Contextual Engine · 主动式上下文引擎
59
+
60
+ > Context 不是一段静态字符串,而是一条 *living continuum*。
61
+
62
+ Agent loop 不能只活在用户敲下 Enter 的那 30 秒;它应当 always-on, never-forget, ambient。这是 Yome Agent 与传统 chat-style coding agent 的根本分野。
63
+
64
+ | 能力 | 含义 |
65
+ |---|---|
66
+ | **Daemon · 守护进程** | Yome 是一个跑在系统层的 daemon,而不是一个聊天窗口。它在后台一直盯着你的文件系统、日历、IM 信号、长任务进程,只有真正值得打断你的时候才出现。Agent loop 永远不需要从零冷启动。 |
67
+ | **Live compaction · 即时压缩** | 长会话自动压缩历史,token 永远不爆,记忆永远不丢 |
68
+ | **Oncall · 主动响应** | Agent 由事件驱动,而不是 prompt 驱动。微信 / 飞书 / Slack / iMessage 来消息,日历到点,build 跑完,GPU 飙高,有人 @你 —— Yome 监听这些信号,主动把"这件事 + 一个候选回复"推给你,而不是等你想起来再问它。 |
69
+
70
+ **当前可用:**
71
+
72
+ ```bash
73
+ yome thread list # 列出当前 cwd 的历史会话
74
+ yome thread share <session-id> --skill=<slug> # 构建脱敏的 case bundle
75
+ yome thread submit <bundle-dir> --skill=<slug> # 作为 PR 发布 (需要 gh CLI)
76
+ ```
77
+
78
+ 会话 / 历史压缩 / case bundle 这三件已落地。Daemon 与 Oncall 在 `next` 分支推进。
79
+
80
+ ---
81
+
82
+ ### 2. Agentic Native Skill · 原生应用赋能
83
+
84
+ > 真正稀缺的能力不是"另一个 prompt 模板",也不是"远端跑的 MCP wrapper"。是**调起你机器上已经装好的那些原生 app**,让它们听懂 agent 的指令。
85
+
86
+ 我们把这种 skill 叫 **Native Skill**:
87
+
88
+ | 类型 | 跑在哪 | 干什么 | 例子 |
89
+ |---|---|---|---|
90
+ | **Prompt Skill** | LLM context window | 加载一段 markdown 提示模板 | code-review, web-research |
91
+ | **MCP Server** | 远端进程 | 暴露 JSON-RPC tool 给 LLM | github MCP, filesystem MCP |
92
+ | **Native Skill** *(Yome)* | 你本机 (macOS / Win / Linux) | 通过 AppleScript / Win32 / DBus 驱动原生 app | ppt, xl, cal, mail, rem |
93
+
94
+ **安装 / 管理:**
95
+
96
+ ```bash
97
+ yome skill install github:Whopus/yome-skill-ppt
98
+ yome skill perms @yome/ppt # 查看授予的 capability
99
+ yome skill perms @yome/ppt --revoke=fs:write # 撤销某项
100
+ yome skill validate # 校验当前目录的 skill
101
+ yome skill publish # 发布到 hub (需要 `yome login`)
102
+ ```
103
+
104
+ **Capability 模型。** 每个 skill 必须在 manifest 里声明它需要的 OS 资源,用户在安装时显式 grant。这不是 prompt 里的"请求权限",是真正的 sandbox gate:
105
+
106
+ | Capability | 含义 |
107
+ |---|---|
108
+ | `applescript` | 可执行 AppleScript (仅 macOS) |
109
+ | `fs:read` / `fs:write` / `fs:delete` | 文件系统访问,作用域受限 |
110
+ | `network` | 出站网络 |
111
+ | `shell` | 任意 shell 命令 (危险,默认拒绝) |
112
+
113
+ 未授权的能力一律返回 `capability not granted: …`,模型看到错误会主动让你 grant,而不是默默失败。
114
+
115
+ **当前 Native Skills:**
116
+
117
+ | Skill | Domain | 状态 |
118
+ |---|---|---|
119
+ | `@yome/ppt` | `ppt` | **stable** — 16 个 action,batch-ready,4 套主题 (`--doc`) |
120
+ | `@yome/xl` | `xl` | beta |
121
+ | `@yome/cal` | `cal` | beta |
122
+ | `@yome/rem` | `rem` | beta |
123
+ | `@yome/mail` | `mail` | alpha |
124
+
125
+ ---
126
+
127
+ ### 3. Agentic Bash Kernel · 智能 Bash 内核
128
+
129
+ > Bash 即接口,skill 即 verb。**用户在 shell 里怎么用,模型在 Bash tool 里就怎么用。** 一套语法,两个用户。
130
+
131
+ 模型不需要学习新工具:
132
+
133
+ ```jsonc
134
+ // 模型工具列表里只有一个 Bash:
135
+ { "name": "Bash", "description": "Run a shell command." }
136
+
137
+ // 模型想加一张幻灯片时这样发:
138
+ Bash({ "command": "ppt slide.add" })
139
+
140
+ // kernel 在 /bin/sh 看到之前就拦截,路由到已安装的
141
+ // @yome/ppt skill, 跑 AppleScript, 返回结果。
142
+ ```
143
+
144
+ #### Skill 三层文档 · L1 / L2 / L3
145
+
146
+ 模型选择和使用 skill 的全部信息分布在三层。每一层都为 token / latency 优化:
147
+
148
+ | Layer | 在哪 | 给谁看 | 长度 |
149
+ |---|---|---|---|
150
+ | **L1 — Index** | system prompt 永驻 | 模型每次对话都看 | 3 行 / ~60 tokens per skill |
151
+ | **L2 — Signature** | `<domain> --help` 按需返回 | 模型决定要用之后 | ~50 行 / ~250 tokens |
152
+ | **L3 — Cookbook** | `<domain> --doc [name]` 按需返回 | 复杂任务时主动查阅 | KB 级 markdown |
153
+
154
+ **L1 看起来是这样** (system prompt 里 ppt skill 的真实块):
155
+
156
+ ```
157
+ ppt | when: user wants to create / edit / export PowerPoint .pptx slides
158
+ | effects: opens Microsoft PowerPoint, writes files (first save to ~/Desktop may show OS dialog)
159
+ | start: ppt --help
160
+ ```
161
+
162
+ 只有三个字段,因为 LLM 选 tool 时也只在乎这三件事:**何时该用 / 副作用是什么 / 第一步敲什么**。Skill 作者在 `yome-skill.json` 里写:
163
+
164
+ ```jsonc
165
+ "l1": {
166
+ "when": "user wants to create / edit / export PowerPoint .pptx slides",
167
+ "entry": "ppt --help",
168
+ "effects": "opens Microsoft PowerPoint, writes files"
169
+ }
170
+ ```
171
+
172
+ **L2 (`ppt --help`)** 是手写的 `SIGNATURE.md` —— 一行一 action,默认值内联,LLM 一眼扫完知道全部 args:
173
+
174
+ ```
175
+ ppt new [path] [--force] create blank presentation
176
+ ppt open <path> open existing .pptx
177
+ ppt save [--path=P] [--force] save (or save-as)
178
+ ppt slides TSV: index, title, shape count
179
+ ppt slide.add [--index=N] [--layout=N]
180
+ ppt title <slide> --text=<str>
181
+ ppt addtext <slide> --text=<str>
182
+ [--left=100 --top=200 --width=400 --height=50]
183
+ [--size=N --bold --italic]
184
+ [--color=red|#RRGGBB|R,G,B]
185
+ [--align=left|center|right]
186
+ ppt fmt <slide> --shape=<n> [--size=N --bold --italic --color --bg --align]
187
+ ppt export --format=pdf|png|jpg --path=<file> [--force]
188
+
189
+ ```
190
+
191
+ **L3 (`ppt --doc`)** 列出 cookbook 模板; `ppt --doc blue-white` 返回完整模板内容(配色、字号、batch 例子)。Skill 作者在 `docs/*.md` 里用 frontmatter 声明:
192
+
193
+ ```yaml
194
+ ---
195
+ name: blue-white
196
+ label: 蓝白风格
197
+ summary: 商务深蓝主色 + 白底,适合季度回顾、产品发布、销售汇报
198
+ tags: [theme, business]
199
+ ---
200
+ ```
201
+
202
+ #### Batch mode · 6 倍提速
203
+
204
+ 序列任务在 cli agent 里是头号性能杀手 —— 每个 AppleScript 调用 200ms cold-start。Yome Bash kernel 内置 `batch` verb 把 N 步合成一次调用; `--merge` 进一步把 N 个 AppleScript 合成一个 `osascript` 进程:
205
+
206
+ ```bash
207
+ ppt batch --merge <<EOF
208
+ new ~/Desktop/q3.pptx
209
+ title 1 --text="Q3 Review"
210
+ slide.add
211
+ title 2 --text="Revenue"
212
+ addtext 2 --text="+18% YoY" --size=72 --bold --color=green --align=center
213
+ slide.add
214
+ title 3 --text="Conclusion"
215
+ save
216
+ export --format=pdf --path=~/Desktop/q3.pdf
217
+ EOF
218
+ ```
219
+
220
+ 实测数字 —— 8 个连续 `ppt` action,M1 Mac:
221
+
222
+ | 模式 | Wall time | 提速 |
223
+ |---|---|---|
224
+ | 8 次独立 `ppt …` 调用 | 2041 ms | 1× |
225
+ | `ppt batch <<EOF…EOF` (顺序执行) | 2353 ms | 1× (含解析开销) |
226
+ | `ppt batch --merge <<EOF…EOF` | **334 ms** | **6.1×** |
227
+
228
+ Kernel 在 token 级别决定:第一个 token 是不是 reserved system command (47 个: `git`, `ls`, `cd`, `rm`, `node`…) ?是 → 直接放给 `/bin/sh`。否则 → 是不是某个已安装 skill 的 domain ?是 → 路由到 skill。否 → 透传给 shell。
229
+
230
+ 因此 *同一个 Bash tool* 同时承载了:
231
+
232
+ - 真 shell 命令 (`ls`, `git status`, `python script.py`)
233
+ - skill verb (`ppt new`, `cal create`)
234
+ - shell 复合 (`ppt slides | head -3` —— domain 命令的 stdout 喂给真 shell)
235
+ - 批量 (`ppt batch --merge <<EOF…EOF`)
236
+
237
+ ---
238
+
239
+ ## Skills Marketplace · Skill 市场
240
+
241
+ ```bash
242
+ yome skill search powerpoint # 搜索公共 hub
243
+ yome skill install github:Whopus/yome-skill-ppt
244
+ yome skill install ./my-local-skill # 本地目录
245
+ yome skill install github:owner/repo@v2 # 锁定到某 ref
246
+ yome skill update # 重新拉取所有已装 skill
247
+ yome skill rollback @yome/ppt # 一级撤销
248
+ yome skill enable / disable / link / unlink / doctor
249
+ ```
250
+
251
+ `yome skill publish` 把当前目录发布到公共 hub (需先 `yome login` 走 GitHub Device Flow)。Hub 只是发现层,skill 真身依然是 git repo —— 没有 vendor lock-in。
252
+
253
+ ---
254
+
255
+ ## 配置
256
+
257
+ ```bash
258
+ export YOME_API_KEY=sk-...
259
+ export YOME_BASE_URL=https://your.endpoint
260
+ export YOME_MODEL=claude-opus-4-6
261
+ export YOME_PROVIDER=anthropic # 或 openai (会从 base URL 自动检测)
262
+ ```
263
+
264
+ 或一次性写入 `~/.yome/config.json`:
265
+
266
+ ```bash
267
+ yome --key sk-... --base-url https://… --model …
268
+ ```
269
+
270
+ **存储布局:**
271
+
272
+ ```
273
+ ~/.yome/
274
+ ├── config.json # API 配置
275
+ ├── skills/ # 已安装的 native skill
276
+ │ ├── .index.json # 缓存的注册表
277
+ │ └── yome/
278
+ │ └── ppt/ # @yome/ppt skill, 就是 git repo 本体
279
+ └── threads/ # 会话历史 (按 cwd 分目录)
280
+ ```
281
+
282
+ ---
283
+
284
+ ## 哲学
285
+
286
+ > *用户不愿学习新产品,也不愿改变已有的行为模式。*
287
+
288
+ 我们不替代你的工具,而是在不打断现有流程的前提下进行**赋能 (Empower)**。Mail、Chat、Docs、Calendar、Files、Web —— 它们已经在你机器上,我们只是给它们装一层 living context 让它们苏醒。
289
+
290
+ | Before | After |
291
+ |---|---|
292
+ | Passive Tool · 被动工具 | Proactive Agent · 主动 Agent |
293
+ | You route context → tool | Yome 替你伸进每一台设备 |
294
+ | 12 contexts, 0 AI | 1 个 buddy,知道关于你的一切 |
295
+
296
+ ---
297
+
298
+ ## 项目状态
299
+
300
+ | 模块 | 状态 |
301
+ |---|---|
302
+ | Bash kernel (tokenizer + dispatcher + permission gate) | **stable** |
303
+ | Native skill 格式 (yome-skill.json + L1/L2/L3 docs) | **stable** |
304
+ | `@yome/ppt` (16 actions, batch + 4 themes) | **stable** |
305
+ | Skill hub (search / install / publish) | **stable** |
306
+ | Capability model (sandbox grants) | **stable** |
307
+ | Thread 历史 + case bundles | **stable** |
308
+ | Live history compaction | beta |
309
+ | Daemon (系统级常驻 loop) | experimental, 在 `next` 分支 |
310
+ | Oncall (事件驱动 / 主动 paging) | next-up |
311
+
312
+ **Daemon roadmap** *(scoped, 在 `next` 分支)*
313
+
314
+ - [ ] **系统消息拦截** — 微信 / 飞书 / Slack / WhatsApp / iMessage。实时捕获,过滤垃圾,主动协助回复,不漏任何重要消息。
315
+ - [ ] **日程 / Routine 自动化** — 订阅博主、社交频道、每日 digest、提醒闹铃、日历联动。不用打开就会自己跑。
316
+ - [ ] **状态变化监听** — 实验跑完、CPU / GPU 飙高、build 通过、有人 @你。在关键时刻推送,而不是事后汇总。
317
+
318
+ ---
319
+
320
+ ## License
321
+
322
+ [Apache License 2.0](./LICENSE) —— Yome Agent + 官方 skills (`yome-skill-ppt`, `yome-skill-xl`, `yome-skill-cal`, `yome-skill-rem`, `yome-skill-fs`)。
323
+
324
+ 社区贡献者发布到 Yome hub 的 skill 是作者自己的 git repo,各自适用其自己的 license。
325
+
326
+ ---
327
+
328
+ <div align="center">
329
+
330
+ **YOME — Your Universal AI Work Buddy.**
331
+ *Know everything. Run everywhere. Empower everyone.*
332
+
333
+ </div>
Binary file
package/dist/agent.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { ToolPermissionContext, PermissionMode } from './permissions/types.js';
1
+ import { type AskPermissionResult } from './tools/index.js';
2
+ import type { ToolPermissionContext, PermissionMode, PermissionBehavior, PermissionRuleSource } from './permissions/types.js';
2
3
  import type { Skill } from './skills/index.js';
3
4
  import type { AgentDefinition } from './subagent/index.js';
4
5
  import type { AgentMessage } from './types.js';
@@ -7,23 +8,44 @@ import type { AgentLoopCallbacks } from './loops/index.js';
7
8
  import type { PastedImage } from './utils/imagePaste.js';
8
9
  export interface AgentCallbacks extends AgentLoopCallbacks {
9
10
  onLoopChanged?: (name: string) => void;
10
- onAskPermission?: (toolName: string, message: string, input: Record<string, unknown>) => Promise<boolean>;
11
+ onAskPermission?: (toolName: string, message: string, input: Record<string, unknown>) => Promise<AskPermissionResult>;
11
12
  }
12
13
  export declare class Agent {
13
14
  private config;
14
15
  private messages;
15
16
  private systemPrompt;
16
17
  private skills;
18
+ /**
19
+ * Cached skill list with includeDisabled=true. We re-read SKILL.md files
20
+ * only when explicitly invalidated (resetContext / reloadSkills /
21
+ * skill toggle picker reopens). Previously every call to getSkills() hit
22
+ * the filesystem — and it gets called on every render of the slash menu,
23
+ * the unified picker, and the system prompt rebuild. After ~50 turns
24
+ * that adds up to thousands of redundant readdirSync calls.
25
+ */
26
+ private cachedSkillsAll;
17
27
  private loopRegistry;
18
28
  private currentLoopName;
19
29
  private permissionContext;
20
30
  private sessionId;
21
31
  constructor(config: YomeConfig);
32
+ /** Drop the cached skill list so the next getSkills() call re-reads from disk. */
33
+ invalidateSkillsCache(): void;
22
34
  getSessionId(): string;
23
35
  getPermissionContext(): ToolPermissionContext;
24
36
  getConfig(): YomeConfig;
25
37
  switchModel(entry: ModelEntry): void;
26
38
  switchPermissionMode(mode: PermissionMode): void;
39
+ /**
40
+ * Append a rule to the live in-memory permission context AND update the
41
+ * tools subsystem so subsequent invocations see it without restarting.
42
+ *
43
+ * `source: 'session'` — never persisted, lives only for this Agent instance.
44
+ * `source: 'userSettings'` — caller is responsible for also writing to disk
45
+ * (via `addPermissionRuleToUserSettings`); this just mirrors the rule into
46
+ * memory so the current session benefits immediately.
47
+ */
48
+ addPermissionRule(ruleString: string, behavior: PermissionBehavior, source?: PermissionRuleSource): void;
27
49
  resetContext(): void;
28
50
  restoreSession(sessionId: string): void;
29
51
  getMessages(): AgentMessage[];
package/dist/agent.js CHANGED
@@ -3,7 +3,7 @@ import { getAnthropicTools, executeTool, registerTool, setPermissionContext, set
3
3
  import { loadAllSkills } from './skills/index.js';
4
4
  import { createLoopRegistry } from './loops/index.js';
5
5
  import { createAgentTool, clearAgentCache, getAllAgents } from './subagent/index.js';
6
- import { initializePermissionContext } from './permissions/loader.js';
6
+ import { initializePermissionContext, addRuleToContext } from './permissions/loader.js';
7
7
  import { modelEntryToConfig } from './config.js';
8
8
  import { createSessionId, appendMessage, loadSessionMessages, setSessionTitle } from './sessions.js';
9
9
  export class Agent {
@@ -11,6 +11,15 @@ export class Agent {
11
11
  messages = [];
12
12
  systemPrompt;
13
13
  skills = [];
14
+ /**
15
+ * Cached skill list with includeDisabled=true. We re-read SKILL.md files
16
+ * only when explicitly invalidated (resetContext / reloadSkills /
17
+ * skill toggle picker reopens). Previously every call to getSkills() hit
18
+ * the filesystem — and it gets called on every render of the slash menu,
19
+ * the unified picker, and the system prompt rebuild. After ~50 turns
20
+ * that adds up to thousands of redundant readdirSync calls.
21
+ */
22
+ cachedSkillsAll = null;
14
23
  loopRegistry = createLoopRegistry();
15
24
  currentLoopName = 'simple';
16
25
  permissionContext;
@@ -24,6 +33,10 @@ export class Agent {
24
33
  setPermissionContext(this.permissionContext);
25
34
  this.sessionId = createSessionId();
26
35
  }
36
+ /** Drop the cached skill list so the next getSkills() call re-reads from disk. */
37
+ invalidateSkillsCache() {
38
+ this.cachedSkillsAll = null;
39
+ }
27
40
  getSessionId() {
28
41
  return this.sessionId;
29
42
  }
@@ -40,10 +53,24 @@ export class Agent {
40
53
  this.permissionContext = { ...this.permissionContext, mode };
41
54
  setPermissionContext(this.permissionContext);
42
55
  }
56
+ /**
57
+ * Append a rule to the live in-memory permission context AND update the
58
+ * tools subsystem so subsequent invocations see it without restarting.
59
+ *
60
+ * `source: 'session'` — never persisted, lives only for this Agent instance.
61
+ * `source: 'userSettings'` — caller is responsible for also writing to disk
62
+ * (via `addPermissionRuleToUserSettings`); this just mirrors the rule into
63
+ * memory so the current session benefits immediately.
64
+ */
65
+ addPermissionRule(ruleString, behavior, source = 'session') {
66
+ this.permissionContext = addRuleToContext(this.permissionContext, ruleString, behavior, source);
67
+ setPermissionContext(this.permissionContext);
68
+ }
43
69
  resetContext() {
44
70
  this.messages = [];
45
71
  this.systemPrompt = buildSystemPrompt();
46
72
  this.skills = loadAllSkills();
73
+ this.cachedSkillsAll = null;
47
74
  clearAgentCache();
48
75
  registerTool(createAgentTool(this.config));
49
76
  this.sessionId = createSessionId();
@@ -53,6 +80,7 @@ export class Agent {
53
80
  this.messages = loadSessionMessages(sessionId);
54
81
  this.systemPrompt = buildSystemPrompt();
55
82
  this.skills = loadAllSkills();
83
+ this.cachedSkillsAll = null;
56
84
  clearAgentCache();
57
85
  registerTool(createAgentTool(this.config));
58
86
  }
@@ -66,13 +94,17 @@ export class Agent {
66
94
  setSessionTitle(this.sessionId, title);
67
95
  }
68
96
  getSkills() {
69
- return loadAllSkills(true);
97
+ if (!this.cachedSkillsAll) {
98
+ this.cachedSkillsAll = loadAllSkills(true);
99
+ }
100
+ return this.cachedSkillsAll;
70
101
  }
71
102
  getAgents() {
72
103
  return getAllAgents();
73
104
  }
74
105
  reloadSkills() {
75
106
  this.skills = loadAllSkills();
107
+ this.cachedSkillsAll = null;
76
108
  this.systemPrompt = buildSystemPrompt();
77
109
  clearAgentCache();
78
110
  registerTool(createAgentTool(this.config));
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -1 +1,3 @@
1
+ /** Force a re-fetch of git/tree info on next buildSystemPrompt call. */
2
+ export declare function invalidateCwdMeta(): void;
1
3
  export declare function buildSystemPrompt(): string;