rimuru-ai 1.19.0

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 (470) hide show
  1. package/.rimuru/AGENTS.md +30 -0
  2. package/.rimuru/agents/backend.md +27 -0
  3. package/.rimuru/agents/database.md +31 -0
  4. package/.rimuru/agents/devops.md +30 -0
  5. package/.rimuru/agents/document-prep.md +49 -0
  6. package/.rimuru/agents/erp-architect.md +41 -0
  7. package/.rimuru/agents/ethical-hacking.md +49 -0
  8. package/.rimuru/agents/frontend.md +31 -0
  9. package/.rimuru/agents/fullstack.md +24 -0
  10. package/.rimuru/agents/system-engineer.md +31 -0
  11. package/.rimuru/agents/veldora-agent-tool-dev.md +30 -0
  12. package/.rimuru/agents/veldora-backend-dev.md +32 -0
  13. package/.rimuru/agents/veldora-cicd.md +32 -0
  14. package/.rimuru/agents/veldora-database.md +32 -0
  15. package/.rimuru/agents/veldora-doc.md +87 -0
  16. package/.rimuru/agents/veldora-frontend-dev.md +32 -0
  17. package/.rimuru/agents/veldora-great-sage.md +33 -0
  18. package/.rimuru/agents/veldora-mcp-creator.md +30 -0
  19. package/.rimuru/agents/veldora-pro.md +224 -0
  20. package/.rimuru/agents/veldora-prompt-enhancer.md +27 -0
  21. package/.rimuru/agents/veldora-skill-creator.md +28 -0
  22. package/.rimuru/agents/veldora.md +225 -0
  23. package/.rimuru/agents/veldorapro-agent-tool-dev.md +29 -0
  24. package/.rimuru/agents/veldorapro-backend-dev.md +29 -0
  25. package/.rimuru/agents/veldorapro-cicd.md +29 -0
  26. package/.rimuru/agents/veldorapro-database.md +29 -0
  27. package/.rimuru/agents/veldorapro-frontend-dev.md +29 -0
  28. package/.rimuru/agents/veldorapro-great-sage.md +33 -0
  29. package/.rimuru/agents/veldorapro-mcp-creator.md +27 -0
  30. package/.rimuru/agents/veldorapro-prompt-enhancer.md +25 -0
  31. package/.rimuru/agents/veldorapro-skill-creator.md +27 -0
  32. package/.rimuru/command/ai-deps.md +24 -0
  33. package/.rimuru/command/changelog.md +49 -0
  34. package/.rimuru/command/commit.md +37 -0
  35. package/.rimuru/command/issues.md +23 -0
  36. package/.rimuru/command/learn.md +42 -0
  37. package/.rimuru/command/rmslop.md +15 -0
  38. package/.rimuru/command/spellcheck.md +5 -0
  39. package/.rimuru/command/translate.md +14 -0
  40. package/.rimuru/glossary/README.md +63 -0
  41. package/.rimuru/glossary/ar.md +28 -0
  42. package/.rimuru/glossary/br.md +34 -0
  43. package/.rimuru/glossary/bs.md +33 -0
  44. package/.rimuru/glossary/da.md +27 -0
  45. package/.rimuru/glossary/de.md +27 -0
  46. package/.rimuru/glossary/es.md +27 -0
  47. package/.rimuru/glossary/fr.md +27 -0
  48. package/.rimuru/glossary/ja.md +33 -0
  49. package/.rimuru/glossary/ko.md +27 -0
  50. package/.rimuru/glossary/no.md +38 -0
  51. package/.rimuru/glossary/pl.md +27 -0
  52. package/.rimuru/glossary/ru.md +27 -0
  53. package/.rimuru/glossary/th.md +34 -0
  54. package/.rimuru/glossary/tr.md +38 -0
  55. package/.rimuru/glossary/zh-cn.md +42 -0
  56. package/.rimuru/glossary/zh-tw.md +42 -0
  57. package/.rimuru/improver/changelog.md +250 -0
  58. package/.rimuru/improver/knowledge.md +172 -0
  59. package/.rimuru/improver/plugins.md +21 -0
  60. package/.rimuru/improver/skills.md +60 -0
  61. package/.rimuru/improver/token-audit.md +21 -0
  62. package/.rimuru/opencode.jsonc +140 -0
  63. package/.rimuru/plugins/smoke-theme.json +223 -0
  64. package/.rimuru/plugins/tui-smoke.tsx +1019 -0
  65. package/.rimuru/skills/effect/SKILL.md +38 -0
  66. package/.rimuru/themes/mytheme.json +223 -0
  67. package/.rimuru/tool/github-pr-search.ts +64 -0
  68. package/.rimuru/tool/github-triage.ts +60 -0
  69. package/README.md +31 -0
  70. package/package.json +167 -0
  71. package/src/account/account.ts +463 -0
  72. package/src/account/repo.ts +173 -0
  73. package/src/account/schema.ts +99 -0
  74. package/src/account/url.ts +8 -0
  75. package/src/acp/agent.ts +95 -0
  76. package/src/acp/config-option.ts +203 -0
  77. package/src/acp/content.ts +250 -0
  78. package/src/acp/directory.ts +210 -0
  79. package/src/acp/error.ts +90 -0
  80. package/src/acp/event.ts +342 -0
  81. package/src/acp/permission.ts +124 -0
  82. package/src/acp/profile.ts +42 -0
  83. package/src/acp/service.ts +1048 -0
  84. package/src/acp/session.ts +231 -0
  85. package/src/acp/tool.ts +367 -0
  86. package/src/acp/usage.ts +232 -0
  87. package/src/agent/agent.ts +459 -0
  88. package/src/agent/generate.txt +75 -0
  89. package/src/agent/prompt/compaction.txt +9 -0
  90. package/src/agent/prompt/explore.txt +18 -0
  91. package/src/agent/prompt/summary.txt +11 -0
  92. package/src/agent/prompt/title.txt +44 -0
  93. package/src/agent/subagent-permissions.ts +27 -0
  94. package/src/audio.d.ts +14 -0
  95. package/src/auth/index.ts +99 -0
  96. package/src/background/job.ts +39 -0
  97. package/src/bus/global.ts +22 -0
  98. package/src/cli/bootstrap.ts +11 -0
  99. package/src/cli/cmd/account.ts +264 -0
  100. package/src/cli/cmd/acp.ts +73 -0
  101. package/src/cli/cmd/agent.ts +259 -0
  102. package/src/cli/cmd/attach.ts +97 -0
  103. package/src/cli/cmd/cmd.ts +7 -0
  104. package/src/cli/cmd/db.ts +62 -0
  105. package/src/cli/cmd/debug/agent.handler.ts +193 -0
  106. package/src/cli/cmd/debug/agent.ts +27 -0
  107. package/src/cli/cmd/debug/config.ts +14 -0
  108. package/src/cli/cmd/debug/file.ts +73 -0
  109. package/src/cli/cmd/debug/index.ts +87 -0
  110. package/src/cli/cmd/debug/lsp.ts +50 -0
  111. package/src/cli/cmd/debug/ripgrep.ts +79 -0
  112. package/src/cli/cmd/debug/scrap.ts +15 -0
  113. package/src/cli/cmd/debug/skill.ts +15 -0
  114. package/src/cli/cmd/debug/snapshot.ts +50 -0
  115. package/src/cli/cmd/debug/startup.ts +11 -0
  116. package/src/cli/cmd/debug/v2.ts +49 -0
  117. package/src/cli/cmd/export.ts +292 -0
  118. package/src/cli/cmd/generate.ts +54 -0
  119. package/src/cli/cmd/github.handler.ts +1593 -0
  120. package/src/cli/cmd/github.shared.ts +30 -0
  121. package/src/cli/cmd/github.ts +42 -0
  122. package/src/cli/cmd/import.ts +224 -0
  123. package/src/cli/cmd/mcp.ts +850 -0
  124. package/src/cli/cmd/models.ts +66 -0
  125. package/src/cli/cmd/plug.ts +230 -0
  126. package/src/cli/cmd/pr.ts +115 -0
  127. package/src/cli/cmd/prompt-display.ts +1 -0
  128. package/src/cli/cmd/providers.ts +534 -0
  129. package/src/cli/cmd/run/demo.ts +1274 -0
  130. package/src/cli/cmd/run/entry.body.ts +205 -0
  131. package/src/cli/cmd/run/footer.command.tsx +1064 -0
  132. package/src/cli/cmd/run/footer.menu.tsx +351 -0
  133. package/src/cli/cmd/run/footer.permission.tsx +472 -0
  134. package/src/cli/cmd/run/footer.prompt.tsx +1306 -0
  135. package/src/cli/cmd/run/footer.question.tsx +573 -0
  136. package/src/cli/cmd/run/footer.subagent.tsx +173 -0
  137. package/src/cli/cmd/run/footer.ts +1129 -0
  138. package/src/cli/cmd/run/footer.view.tsx +943 -0
  139. package/src/cli/cmd/run/footer.width.ts +27 -0
  140. package/src/cli/cmd/run/permission.shared.ts +256 -0
  141. package/src/cli/cmd/run/prompt.editor.ts +157 -0
  142. package/src/cli/cmd/run/prompt.shared.ts +153 -0
  143. package/src/cli/cmd/run/question.shared.ts +340 -0
  144. package/src/cli/cmd/run/runtime.boot.ts +202 -0
  145. package/src/cli/cmd/run/runtime.lifecycle.ts +406 -0
  146. package/src/cli/cmd/run/runtime.queue.ts +349 -0
  147. package/src/cli/cmd/run/runtime.shared.ts +17 -0
  148. package/src/cli/cmd/run/runtime.stdin.ts +37 -0
  149. package/src/cli/cmd/run/runtime.ts +814 -0
  150. package/src/cli/cmd/run/scrollback.shared.ts +92 -0
  151. package/src/cli/cmd/run/scrollback.surface.ts +431 -0
  152. package/src/cli/cmd/run/scrollback.writer.tsx +352 -0
  153. package/src/cli/cmd/run/session-data.ts +1113 -0
  154. package/src/cli/cmd/run/session-replay.ts +374 -0
  155. package/src/cli/cmd/run/session.shared.ts +196 -0
  156. package/src/cli/cmd/run/splash.ts +280 -0
  157. package/src/cli/cmd/run/stream.transport.ts +1462 -0
  158. package/src/cli/cmd/run/stream.ts +175 -0
  159. package/src/cli/cmd/run/subagent-data.ts +876 -0
  160. package/src/cli/cmd/run/theme.ts +690 -0
  161. package/src/cli/cmd/run/tool.ts +1489 -0
  162. package/src/cli/cmd/run/trace.ts +94 -0
  163. package/src/cli/cmd/run/turn-summary.ts +47 -0
  164. package/src/cli/cmd/run/types.ts +350 -0
  165. package/src/cli/cmd/run/variant.shared.ts +215 -0
  166. package/src/cli/cmd/run.ts +894 -0
  167. package/src/cli/cmd/serve.ts +24 -0
  168. package/src/cli/cmd/session.ts +147 -0
  169. package/src/cli/cmd/stats.ts +393 -0
  170. package/src/cli/cmd/tui.ts +224 -0
  171. package/src/cli/cmd/uninstall.ts +353 -0
  172. package/src/cli/cmd/upgrade.ts +74 -0
  173. package/src/cli/cmd/web.ts +84 -0
  174. package/src/cli/effect/prompt.ts +37 -0
  175. package/src/cli/effect-cmd.ts +96 -0
  176. package/src/cli/error.ts +130 -0
  177. package/src/cli/heap.ts +45 -0
  178. package/src/cli/logo.ts +1 -0
  179. package/src/cli/network.ts +64 -0
  180. package/src/cli/tui/layer.ts +7 -0
  181. package/src/cli/tui/validate-session.ts +29 -0
  182. package/src/cli/tui/worker.ts +71 -0
  183. package/src/cli/ui.ts +98 -0
  184. package/src/cli/upgrade.ts +53 -0
  185. package/src/command/index.ts +184 -0
  186. package/src/command/template/initialize.txt +66 -0
  187. package/src/command/template/review.txt +101 -0
  188. package/src/config/agent.ts +59 -0
  189. package/src/config/command.ts +39 -0
  190. package/src/config/config.ts +686 -0
  191. package/src/config/entry-name.ts +19 -0
  192. package/src/config/managed.ts +69 -0
  193. package/src/config/markdown.ts +36 -0
  194. package/src/config/parse.ts +79 -0
  195. package/src/config/paths.ts +45 -0
  196. package/src/config/plugin.ts +79 -0
  197. package/src/config/tui-cwd.ts +5 -0
  198. package/src/config/tui-host-attention.ts +21 -0
  199. package/src/config/tui-migrate.ts +132 -0
  200. package/src/config/tui.ts +274 -0
  201. package/src/config/variable.ts +91 -0
  202. package/src/control-plane/adapters/index.ts +41 -0
  203. package/src/control-plane/adapters/worktree.ts +96 -0
  204. package/src/control-plane/dev/README.md +19 -0
  205. package/src/control-plane/dev/debug-workspace-plugin.ts +73 -0
  206. package/src/control-plane/types.ts +59 -0
  207. package/src/control-plane/util.ts +39 -0
  208. package/src/control-plane/workspace-adapter-runtime.ts +51 -0
  209. package/src/control-plane/workspace-context.ts +26 -0
  210. package/src/control-plane/workspace.ts +989 -0
  211. package/src/effect/app-runtime.ts +132 -0
  212. package/src/effect/bootstrap-runtime.ts +23 -0
  213. package/src/effect/bridge.ts +84 -0
  214. package/src/effect/config-service.ts +67 -0
  215. package/src/effect/instance-ref.ts +11 -0
  216. package/src/effect/instance-registry.ts +12 -0
  217. package/src/effect/instance-state.ts +69 -0
  218. package/src/effect/promise.ts +17 -0
  219. package/src/effect/run-service.ts +47 -0
  220. package/src/effect/runner.ts +217 -0
  221. package/src/effect/runtime-flags.ts +79 -0
  222. package/src/env/index.ts +43 -0
  223. package/src/event-v2-bridge.ts +79 -0
  224. package/src/format/formatter.ts +404 -0
  225. package/src/format/index.ts +205 -0
  226. package/src/git/index.ts +350 -0
  227. package/src/id/id.ts +80 -0
  228. package/src/ide/index.ts +61 -0
  229. package/src/image/image.ts +174 -0
  230. package/src/index.ts +142 -0
  231. package/src/installation/index.ts +350 -0
  232. package/src/lsp/client.ts +650 -0
  233. package/src/lsp/diagnostic.ts +29 -0
  234. package/src/lsp/language.ts +121 -0
  235. package/src/lsp/launch.ts +21 -0
  236. package/src/lsp/lsp.ts +511 -0
  237. package/src/lsp/server.ts +1983 -0
  238. package/src/markdown.d.ts +4 -0
  239. package/src/mcp/auth.ts +174 -0
  240. package/src/mcp/catalog.ts +153 -0
  241. package/src/mcp/index.ts +946 -0
  242. package/src/mcp/oauth-callback.ts +233 -0
  243. package/src/mcp/oauth-provider.ts +206 -0
  244. package/src/node.ts +4 -0
  245. package/src/patch/index.ts +686 -0
  246. package/src/permission/arity.ts +163 -0
  247. package/src/permission/evaluate.ts +1 -0
  248. package/src/permission/index.ts +230 -0
  249. package/src/plugin/azure.ts +26 -0
  250. package/src/plugin/cloudflare.ts +76 -0
  251. package/src/plugin/digitalocean.ts +383 -0
  252. package/src/plugin/github-copilot/copilot.ts +413 -0
  253. package/src/plugin/github-copilot/models.ts +246 -0
  254. package/src/plugin/index.ts +316 -0
  255. package/src/plugin/install.ts +439 -0
  256. package/src/plugin/loader.ts +237 -0
  257. package/src/plugin/meta.ts +188 -0
  258. package/src/plugin/openai/README.md +31 -0
  259. package/src/plugin/openai/codex.ts +641 -0
  260. package/src/plugin/openai/ws-pool.ts +270 -0
  261. package/src/plugin/openai/ws.ts +381 -0
  262. package/src/plugin/pty-environment.ts +24 -0
  263. package/src/plugin/shared.ts +323 -0
  264. package/src/plugin/snowflake-cortex.ts +529 -0
  265. package/src/plugin/tui/internal.ts +10 -0
  266. package/src/plugin/tui/runtime.ts +1130 -0
  267. package/src/plugin/xai.ts +716 -0
  268. package/src/project/bootstrap-service.ts +9 -0
  269. package/src/project/bootstrap.ts +76 -0
  270. package/src/project/instance-context.ts +24 -0
  271. package/src/project/instance-layer.ts +11 -0
  272. package/src/project/instance-runtime.ts +16 -0
  273. package/src/project/instance-store.ts +209 -0
  274. package/src/project/project.ts +519 -0
  275. package/src/project/vcs.ts +431 -0
  276. package/src/provider/auth.ts +233 -0
  277. package/src/provider/error.ts +188 -0
  278. package/src/provider/model-status.ts +8 -0
  279. package/src/provider/provider.ts +1979 -0
  280. package/src/provider/transform.ts +1426 -0
  281. package/src/question/index.ts +229 -0
  282. package/src/question/schema.ts +10 -0
  283. package/src/server/auth.ts +48 -0
  284. package/src/server/event.ts +13 -0
  285. package/src/server/global-lifecycle.ts +28 -0
  286. package/src/server/init-projectors.ts +3 -0
  287. package/src/server/mdns.ts +47 -0
  288. package/src/server/projectors.ts +1 -0
  289. package/src/server/proxy-util.ts +48 -0
  290. package/src/server/routes/instance/httpapi/AGENTS.md +39 -0
  291. package/src/server/routes/instance/httpapi/api.ts +78 -0
  292. package/src/server/routes/instance/httpapi/errors.ts +193 -0
  293. package/src/server/routes/instance/httpapi/groups/config.ts +65 -0
  294. package/src/server/routes/instance/httpapi/groups/control-plane.ts +35 -0
  295. package/src/server/routes/instance/httpapi/groups/control.ts +76 -0
  296. package/src/server/routes/instance/httpapi/groups/event.ts +29 -0
  297. package/src/server/routes/instance/httpapi/groups/experimental.ts +260 -0
  298. package/src/server/routes/instance/httpapi/groups/file.ts +185 -0
  299. package/src/server/routes/instance/httpapi/groups/global.ts +138 -0
  300. package/src/server/routes/instance/httpapi/groups/instance.ts +206 -0
  301. package/src/server/routes/instance/httpapi/groups/mcp.ts +156 -0
  302. package/src/server/routes/instance/httpapi/groups/metadata.ts +18 -0
  303. package/src/server/routes/instance/httpapi/groups/permission.ts +61 -0
  304. package/src/server/routes/instance/httpapi/groups/project-copy.ts +32 -0
  305. package/src/server/routes/instance/httpapi/groups/project.ts +93 -0
  306. package/src/server/routes/instance/httpapi/groups/provider.ts +101 -0
  307. package/src/server/routes/instance/httpapi/groups/pty.ts +172 -0
  308. package/src/server/routes/instance/httpapi/groups/query.ts +12 -0
  309. package/src/server/routes/instance/httpapi/groups/question.ts +74 -0
  310. package/src/server/routes/instance/httpapi/groups/session.ts +462 -0
  311. package/src/server/routes/instance/httpapi/groups/sync.ts +113 -0
  312. package/src/server/routes/instance/httpapi/groups/tui.ts +208 -0
  313. package/src/server/routes/instance/httpapi/groups/workspace.ts +141 -0
  314. package/src/server/routes/instance/httpapi/handlers/config.ts +34 -0
  315. package/src/server/routes/instance/httpapi/handlers/control-plane.ts +37 -0
  316. package/src/server/routes/instance/httpapi/handlers/control.ts +43 -0
  317. package/src/server/routes/instance/httpapi/handlers/event.ts +99 -0
  318. package/src/server/routes/instance/httpapi/handlers/experimental.ts +187 -0
  319. package/src/server/routes/instance/httpapi/handlers/file.ts +139 -0
  320. package/src/server/routes/instance/httpapi/handlers/global.ts +156 -0
  321. package/src/server/routes/instance/httpapi/handlers/instance.ts +110 -0
  322. package/src/server/routes/instance/httpapi/handlers/mcp.ts +111 -0
  323. package/src/server/routes/instance/httpapi/handlers/permission.ts +41 -0
  324. package/src/server/routes/instance/httpapi/handlers/project-copy.ts +83 -0
  325. package/src/server/routes/instance/httpapi/handlers/project.ts +63 -0
  326. package/src/server/routes/instance/httpapi/handlers/provider.ts +113 -0
  327. package/src/server/routes/instance/httpapi/handlers/pty.ts +273 -0
  328. package/src/server/routes/instance/httpapi/handlers/question.ts +54 -0
  329. package/src/server/routes/instance/httpapi/handlers/session-errors.ts +21 -0
  330. package/src/server/routes/instance/httpapi/handlers/session.ts +440 -0
  331. package/src/server/routes/instance/httpapi/handlers/sync.ts +89 -0
  332. package/src/server/routes/instance/httpapi/handlers/tui.ts +131 -0
  333. package/src/server/routes/instance/httpapi/handlers/workspace.ts +102 -0
  334. package/src/server/routes/instance/httpapi/lifecycle.ts +54 -0
  335. package/src/server/routes/instance/httpapi/middleware/authorization.ts +150 -0
  336. package/src/server/routes/instance/httpapi/middleware/compression.ts +64 -0
  337. package/src/server/routes/instance/httpapi/middleware/cors-vary.ts +29 -0
  338. package/src/server/routes/instance/httpapi/middleware/error.ts +43 -0
  339. package/src/server/routes/instance/httpapi/middleware/fence.ts +25 -0
  340. package/src/server/routes/instance/httpapi/middleware/instance-context.ts +43 -0
  341. package/src/server/routes/instance/httpapi/middleware/proxy.ts +108 -0
  342. package/src/server/routes/instance/httpapi/middleware/schema-error.ts +41 -0
  343. package/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +250 -0
  344. package/src/server/routes/instance/httpapi/public.ts +535 -0
  345. package/src/server/routes/instance/httpapi/server.ts +298 -0
  346. package/src/server/routes/instance/httpapi/websocket-tracker.ts +57 -0
  347. package/src/server/server.ts +225 -0
  348. package/src/server/shared/fence.ts +60 -0
  349. package/src/server/shared/pty-ticket.ts +15 -0
  350. package/src/server/shared/public-ui.ts +12 -0
  351. package/src/server/shared/tui-control.ts +28 -0
  352. package/src/server/shared/ui.ts +122 -0
  353. package/src/server/shared/workspace-routing.ts +38 -0
  354. package/src/server/tui-event.ts +53 -0
  355. package/src/session/compaction.ts +620 -0
  356. package/src/session/instruction.ts +241 -0
  357. package/src/session/llm/AGENTS.md +90 -0
  358. package/src/session/llm/ai-sdk.ts +288 -0
  359. package/src/session/llm/native-request.ts +196 -0
  360. package/src/session/llm/native-runtime.ts +196 -0
  361. package/src/session/llm/request.ts +218 -0
  362. package/src/session/llm.ts +415 -0
  363. package/src/session/message-error.ts +14 -0
  364. package/src/session/message-v2.ts +744 -0
  365. package/src/session/message.ts +148 -0
  366. package/src/session/overflow.ts +34 -0
  367. package/src/session/processor.ts +1084 -0
  368. package/src/session/prompt/anthropic.txt +105 -0
  369. package/src/session/prompt/beast.txt +147 -0
  370. package/src/session/prompt/build-switch.txt +5 -0
  371. package/src/session/prompt/codex.txt +79 -0
  372. package/src/session/prompt/copilot-gpt-5.txt +143 -0
  373. package/src/session/prompt/default.txt +95 -0
  374. package/src/session/prompt/gemini.txt +155 -0
  375. package/src/session/prompt/gpt.txt +107 -0
  376. package/src/session/prompt/kimi.txt +95 -0
  377. package/src/session/prompt/max-steps.txt +16 -0
  378. package/src/session/prompt/plan-mode.txt +70 -0
  379. package/src/session/prompt/plan-reminder-anthropic.txt +67 -0
  380. package/src/session/prompt/plan.txt +26 -0
  381. package/src/session/prompt/trinity.txt +97 -0
  382. package/src/session/prompt.ts +1722 -0
  383. package/src/session/reminders.ts +92 -0
  384. package/src/session/retry.ts +201 -0
  385. package/src/session/revert.ts +160 -0
  386. package/src/session/run-state.ts +156 -0
  387. package/src/session/schema.ts +26 -0
  388. package/src/session/session.ts +1119 -0
  389. package/src/session/status.ts +97 -0
  390. package/src/session/summary.ts +165 -0
  391. package/src/session/system.ts +117 -0
  392. package/src/session/todo.ts +90 -0
  393. package/src/session/tools.ts +207 -0
  394. package/src/share/session.ts +61 -0
  395. package/src/share/share-next.ts +385 -0
  396. package/src/skill/discovery.ts +109 -0
  397. package/src/skill/index.ts +366 -0
  398. package/src/snapshot/index.ts +808 -0
  399. package/src/sql.d.ts +4 -0
  400. package/src/storage/schema.ts +5 -0
  401. package/src/storage/storage.ts +329 -0
  402. package/src/sync/README.md +179 -0
  403. package/src/sync/schema.ts +11 -0
  404. package/src/temporary.ts +31 -0
  405. package/src/tool/apply_patch.ts +313 -0
  406. package/src/tool/apply_patch.txt +33 -0
  407. package/src/tool/edit.ts +737 -0
  408. package/src/tool/edit.txt +10 -0
  409. package/src/tool/external-directory.ts +49 -0
  410. package/src/tool/glob.ts +76 -0
  411. package/src/tool/glob.txt +6 -0
  412. package/src/tool/grep.ts +112 -0
  413. package/src/tool/grep.txt +8 -0
  414. package/src/tool/invalid.ts +21 -0
  415. package/src/tool/json-schema.ts +164 -0
  416. package/src/tool/lsp.ts +113 -0
  417. package/src/tool/lsp.txt +24 -0
  418. package/src/tool/mcp-websearch.ts +96 -0
  419. package/src/tool/plan-enter.txt +14 -0
  420. package/src/tool/plan-exit.txt +13 -0
  421. package/src/tool/plan.ts +79 -0
  422. package/src/tool/question.ts +44 -0
  423. package/src/tool/question.txt +10 -0
  424. package/src/tool/read.ts +386 -0
  425. package/src/tool/read.txt +14 -0
  426. package/src/tool/registry.ts +440 -0
  427. package/src/tool/schema.ts +14 -0
  428. package/src/tool/shell/id.ts +19 -0
  429. package/src/tool/shell/prompt.ts +307 -0
  430. package/src/tool/shell/shell.txt +21 -0
  431. package/src/tool/shell.ts +657 -0
  432. package/src/tool/skill.ts +71 -0
  433. package/src/tool/skill.txt +5 -0
  434. package/src/tool/task.ts +346 -0
  435. package/src/tool/task.txt +19 -0
  436. package/src/tool/todo.ts +57 -0
  437. package/src/tool/todowrite.txt +44 -0
  438. package/src/tool/tool.ts +183 -0
  439. package/src/tool/truncate.ts +158 -0
  440. package/src/tool/truncation-dir.ts +4 -0
  441. package/src/tool/webfetch.ts +192 -0
  442. package/src/tool/webfetch.txt +13 -0
  443. package/src/tool/websearch.ts +143 -0
  444. package/src/tool/websearch.txt +14 -0
  445. package/src/tool/write.ts +104 -0
  446. package/src/tool/write.txt +8 -0
  447. package/src/util/archive.ts +17 -0
  448. package/src/util/bom.ts +27 -0
  449. package/src/util/data-url.ts +9 -0
  450. package/src/util/defer.ts +10 -0
  451. package/src/util/effect-http-client.ts +11 -0
  452. package/src/util/error.ts +1 -0
  453. package/src/util/filesystem.ts +251 -0
  454. package/src/util/html.ts +8 -0
  455. package/src/util/iife.ts +3 -0
  456. package/src/util/lazy.ts +20 -0
  457. package/src/util/local-context.ts +25 -0
  458. package/src/util/locale.ts +2 -0
  459. package/src/util/media.ts +26 -0
  460. package/src/util/process.ts +177 -0
  461. package/src/util/proxy-env.ts +72 -0
  462. package/src/util/queue.ts +32 -0
  463. package/src/util/record.ts +1 -0
  464. package/src/util/repository.ts +232 -0
  465. package/src/util/rpc.ts +66 -0
  466. package/src/util/signal.ts +12 -0
  467. package/src/util/timeout.ts +13 -0
  468. package/src/util/token.ts +1 -0
  469. package/src/util/wildcard.ts +59 -0
  470. package/src/worktree/index.ts +654 -0
@@ -0,0 +1,172 @@
1
+ # Knowledge Base — OpenCode Improver
2
+
3
+ Durable learnings, patterns, decisions, and their outcomes.
4
+
5
+ ---
6
+
7
+ ## 2026-06-13 — SAP Work Schedule Sync implementation
8
+
9
+ - **Pattern**: Adding a new SAP sync = 4 changes: `sap.api.ts` (fetch method), `app.service.ts` (cron method + busy flag), `app.controller.ts` (POST endpoint), `AGENTS.md` (documentation).
10
+ - **Delete+reseed+createMany** is the standard sync pattern for small datasets (<1000 rows). Works for work schedule, leaves, professional leaves.
11
+ - **Prisma model naming**: `SAP_Workschedule` → client property is `sAP_Workschedule` (camelCase preserves case after prefix).
12
+ - **Hardcoded fallbacks** in `sap.api.ts` are this project's standard (`.env` is git-tracked so secrets aren't stored there — only `DATABASE_URL` is in `.env`).
13
+ - **Direct MSSQL CLI**: `pymssql` via pip works without root. Future projects should configure `connections.json` per-project (never hardcode DB credentials globally).
14
+
15
+ ## 2026-06-15 — Token-Optimized Subagent Design Patterns
16
+
17
+ - **Key token-saving mechanisms for subagents**:
18
+ - `steps: 6-8` for narrow domain tasks (vs 25-50 for general coding agents) — saves ~60% on reasoning loops
19
+ - Short `description` (~15 words) — each description adds ~20-30 tokens to Task tool system prompt
20
+ - No `model` override — lets default model handle it; avoids hardcoding expensive models
21
+ - Minimal tool permissions — every extra tool adds schema tokens (~50-100 tokens per tool). Only allow what's needed.
22
+ - `bash: deny` for read-only agents (erp-architect) — saves tool schema tokens
23
+ - Inline command examples in prompts — avoids research websearch loops (~2-5k tokens per lookup)
24
+ - KV-cache friendly structure: stable prefix (role + methodology) before variable content
25
+
26
+ ## 2026-06-17 — MADAR → FastContext Migration Complete
27
+
28
+ - **Migration**: Replaced [MADAR](https://github.com/lubab/madar) (graph-based code context via `madar generate`/`pack`/`query`) with [FastContext](https://github.com/microsoft/fastcontext) (delegated repo-exploration subagent from Microsoft Research).
29
+ - **Why**: FastContext separates exploration from task solving — the main agent delegates a natural-language query to a dedicated subagent that returns compact file:line citations. This avoids the need to:
30
+ - Maintain a knowledge graph (`out/graph.json` + cache) that goes stale
31
+ - Remember to run `madar generate . --include-docs` after every config change
32
+ - Pay the overhead of full-file graph extraction
33
+ - **Usage**: `fastcontext -q "<question>" --citation` for focused context (returns file:line ranges). `fastcontext -q "<question>" --max-turns 12 --citation` for complex multi-file traces.
34
+ - **Skill installed**: `~/.agents/skills/fastcontext/SKILL.md`
35
+ - **CLI installed**: `uv tool install` from github.com/microsoft/fastcontext
36
+ - **Requires**: OpenAI-compatible endpoint via `BASE_URL`, `MODEL`, `API_KEY` env vars (not yet configured)
37
+ - **Old `madar-graph` skill**: Deleted from `~/.agents/skills/madar-graph/`
38
+ - **Old `out/` directory**: Deleted from `~/.config/opencode/out/`
39
+ - **Old MADAR npm package** (`@lubab/madar`): Still globally installed but unused. Can be cleaned up later.
40
+
41
+ ## 2026-06-15 — DOCX Generation with npm `docx` Package
42
+
43
+ - **Install locally** in the script's working directory: `npm install docx` (not `npm install -g` — global install doesn't resolve from arbitrary dirs like `/tmp/`)
44
+ - **Key API changes in v9+**:
45
+ - `PageNumber` is now an object with constants (`CURRENT`, `TOTAL_PAGES`) — not a constructor
46
+ - **CORRECT way to add page numbers**: `new TextRun({ children: [PageNumber.CURRENT] })` inside a Paragraph
47
+ - `new PageNumberElement()` creates bare `<w:pgNum/>` XML — does NOT render a working page number. DO NOT use it.
48
+ - `PageNumber.CURRENT` inside a TextRun's `children` array produces the full field structure (`w:fldChar` begin/separate/end + `w:instrText` PAGE) that Word needs
49
+ - **Diagram embedding**: Use `ImageRun` with PNG files on disk. Image dimensions in EMUs (dxa): `w * 914400 / dpi`, `h * 914400 / dpi`
50
+ - **Structure**: Build doc in sections with `properties` (page margins, orientation), `headers`/`footers`, `children` array
51
+ - **Output path**: `path.join(require('os').homedir(), 'Documents/...')` — always use `os.homedir()` for cross-platform
52
+
53
+ ## 2026-06-15 — DOCX Editing: Use the `docx` Skill (~/.agents/skills/docx/)
54
+
55
+ - **Hard rule**: For ALL .docx file editing/creation, load the `docx` skill first (`skill({name: "docx"})`). It has the ooxml scripts, Document library, and proper workflows.
56
+ - **The `docx` skill recommends**: For editing existing documents → use the Document library (Python, via `ooxml/scripts/unpack.py` + Python script + `pack.py`). For creating new documents → use `docx-js` (npm `docx` package).
57
+ - **python-docx alternative**: python-docx works for basic edits (images, headers, footers) but the skill's Document library gives full OOXML access for complex edits.
58
+ - **Image `.undefined` fix**: PNG images with `.undefined` extension in docx zip → need two fixes: (1) rename to `.png`, (2) update `[Content_Types].xml` to map `Extension="undefined"` to `ContentType="image/png"`, (3) update all `.rels` and `.xml` references.
59
+ - **Image sizing**: A4 page has ~5731510 EMU usable width. Images wider than this must be scaled down proportionally.
60
+
61
+ ## 2026-06-15 — CRITICAL: python-docx Page Dimension Unit Bug
62
+
63
+ - **The Bug**: Setting `section.page_width = 11906` produces a page of **0.013 inches** — Word/LibreOffice crashes trying to render content on a page that tiny.
64
+ - **Root Cause**: The script author confused **twips** (1in = 1440 twips, used in final XML) with **EMU** (1in = 914400 EMU, used by python-docx API). A comment saying "A4 width in DXA" added confusion — "DXA" is not a real OpenXML unit.
65
+ - **The Fix**: NEVER use raw integer values for page dimensions or margins. ALWAYS use python-docx helper classes:
66
+ - `Cm(21.0).emu` for A4 width (21cm)
67
+ - `Cm(29.7).emu` for A4 height (29.7cm)
68
+ - `Cm(2.54).emu` (or `Inches(1).emu`) for 1-inch margins
69
+ - Or set directly: `section.page_width = Cm(21.0)` (python-docx accepts Length objects)
70
+ - **How to verify**: Check the generated XML — `w:pgSz` values should be ~11907 x 16838 (twips), and `w:pgMar` should be 1440 for 1in margins. If numbers are tiny (19 x 27), the EMU→twips conversion is wrong.
71
+ - **Detection script**: `python3 -c "import zipfile; z=zipfile.ZipFile('file.docx'); import re; s=re.search(r'<w:pgSz[^>]+/>', z.read('word/document.xml').decode()); print(s.group(0) if s else 'not found')"` — if `w:w` is < 100, page is corrupted.
72
+ - **Hard rule**: Any python-docx script that creates a new document MUST verify page dimensions in the output before distributing. One wrong constant crashes every document viewer.
73
+
74
+ ## 2026-06-15 — User Communication Preference: English Only
75
+
76
+ - **User prefers 100% English** in all communication. Do not mix languages (Chinese, Tamil, etc.) in responses, explanations, or examples — even when the topic or platform has multilingual content. All payloads, walkthroughs, and reasoning must be delivered in English only.
77
+ - This preference is permanent — do not re-confirm or re-ask.
78
+
79
+ ## 2026-06-17 — Context-Aware Replacements: What Stays vs Changes When Renaming
80
+
81
+ ### `opencode` references that MUST NEVER be renamed (fork-safe)
82
+ These are internal identifiers, config schemas, environment variables, or external project names — not "old brand name" references:
83
+ - **Config files**: `opencode.json`, `opencode.jsonc` — these are the canonical config filenames
84
+ - **Directory**: `.opencode/`, `~/.config/opencode/` — internal directory paths
85
+ - **Environment variables**: `OPENCODE_HOME`, `OPENCODE_PROVIDER`, `OPENCODE_*` — all uppercase prefix vars
86
+ - **Theme names**: `"opencode"` in theme config (it's a theme name, not the app name)
87
+ - **npm package names**: `opencode-daytona`, `opencode-helicone-session` — actual published packages
88
+ - **GitHub orgs**: `awesome-opencode` — real GitHub organization
89
+ - **Community URLs**: `opencode.cafe` — real community site
90
+ - **mDNS default**: `opencode.local` — hardcoded default in server code
91
+ - **URL paths**: `.well-known/opencode` — hardcoded route path
92
+ - **GitHub apps**: `opencode-agent` — real GitHub App name
93
+ - **Web component tags**: `<opencode-language-select>` — custom HTML element name
94
+ - **Social card CDN paths**: `opencode-docs/` in social card CDN URLs
95
+
96
+ ### `opencode` references that SHOULD rename to `rimuru-ai`
97
+ - XDG data dir: `~/.local/share/opencode/` → `~/.local/share/rimuru-ai/`
98
+ - XDG cache dir: `~/.cache/opencode/` → `~/.cache/rimuru-ai/`
99
+ - XDG config dir body text: `$XDG_CONFIG_HOME/opencode/` → `$XDG_CONFIG_HOME/rimuru-ai/`
100
+ - Windows app data paths: `%USERPROFILE%\\rimuru-ai` (was `.opencode`)
101
+ - npm package name: `opencode-ai` → `rimuru-ai` (actual npm package)
102
+ - ACP config examples: `command = "opencode"` → `command = "rimuru-ai"`, `name = "opencode"` → `name = "rimuru-ai"`
103
+ - General prose references to the tool name
104
+
105
+ ### Batch replacement strategy
106
+ - **Never use blanket `sed`** on forked codebases with overlapping names — always use context-aware scripts
107
+ - Check 3+ chars before/after each match to determine context (config filename? env var? directory path? prose?)
108
+ - After every batch rename: build the project and verify — don't assume correctness
109
+ - Always check external URLs after rename — GitHub orgs, npm packages, etc. are common breakage points
110
+ - Run a post-build grep on rendered output to spot-check for stale visible references
111
+
112
+ ## 2026-06-17 — FastContext: Usage Patterns & Constraints
113
+
114
+ - **Primary command**: `fastcontext -q "<natural language question>" --citation` — returns compact file:line ranges, ideal for pre-edit context gathering
115
+ - **Deep trace**: `fastcontext -q "<question>" --max-turns 12 --citation` — for multi-file traces and architecture questions
116
+ - **No graph to maintain**: Unlike MADAR, no `generate`/`pack`/`query` workflow. No `out/` directory. No `--include-docs` flag to remember.
117
+ - **Token impact**: FastContext's subagent returns only file:line citations (~200-500 tokens) instead of full file contents (~3-8k tokens). The subagent itself consumes some tokens for exploration, but the main agent's context window is spared.
118
+ - **Caveat**: FastContext runs read-only as a subagent — it can't modify files. It also requires an external LLM API endpoint (not yet configured). Until configured, the agent falls back to manual glob/grep/file-read sweeps.
119
+ - **Backward compat**: MADAR is still globally installed (`@lubab/madar@0.28.0` via npm). No conflicts if both are present. Can uninstall later.
120
+ - **The `fastcontext` skill** at `~/.agents/skills/fastcontext/SKILL.md` has full documentation. Load with `skill({name: "fastcontext"})`.
121
+
122
+ ## 2026-06-17 — Package Directory Rename: `@/*` Aliases Make It Safe
123
+
124
+ - **When a codebase uses `@/*` path aliases** (tsconfig `paths: {"@/*": ["./src/*"]}`), all internal imports within a package resolve via the alias — NOT the directory name. This means:
125
+ - Renaming `packages/opencode/` → `packages/rimuru/` breaks ZERO import statements within the package
126
+ - Only external references to the directory path need updating: workspace config, turbo.json, build scripts
127
+ - **Cross-package imports** use `@rimurucode-ai/package-name` (from other packages in the monorepo) — these are already decoupled from directory names
128
+ - **No relative imports like `../../opencode/src/`** were found — the workspace resolution pattern prevented this antipattern entirely
129
+ - **Always check** with `rg -rn 'packages/<oldname>'` before renaming to find all external references
130
+ - **Turbo task names** in `turbo.json` use the `package.json#name` field, NOT the directory name. After rename, ensure task names match: `"rimuru-ai#test"` not `"rimuru#test"`
131
+
132
+ ## 2026-06-17 — Migration Complete: Phases 1-5 Done
133
+
134
+ - **Final state**: All user-facing branding changed from `opencode` to `rimuru-ai`. Binary builds at `dist/rimuru-ai-linux-x64/bin/opencode` (internal binary name stays `opencode`).
135
+ - **Preserved intentionally**:
136
+ - `ProviderV2.ID.opencode` — well-known provider ID for open-source models (OpenCode Go)
137
+ - `.opencode/` fallback path — backward compat with existing user configs
138
+ - External plugin names (`opencode-daytona`, `opencode-helicone-session`, etc.)
139
+ - `opencode-agent[bot]` — GitHub bot identity
140
+ - `opencode.json`/`opencode.jsonc` — config filenames (canonical)
141
+ - `OPENCODE_*` env vars — existing env variables
142
+ - **Non-blocking remaining items**: `infra/*.ts` (SST resource names), `script/*.ts` (dev scripts), `patches/`, docs
143
+ - **Build status**: `bun run build --single --skip-embed-web-ui --skip-install` passes with smoke test
144
+ - **Version**: `1.0.0-dev-YYYYMMDDHHMM` (upgraded from `0.0.0-dev-`)
145
+
146
+ ## 2026-06-17 — Dual-Key Provider Registration Pattern
147
+
148
+ - **Problem**: models.dev/api.json returns provider ID `"opencode"`, but rimuru custom handler only registered under `"rimuru"` key. Custom handler loop does `database[providerID]` lookup — `database["opencode"]` was undefined → handler silently skipped → models.dev free models never appeared.
149
+ - **Solution**: Register the same handler under TWO keys: `"rimuru"` (for user config block) and `"opencode"` (for models.dev data). This is cleaner than renaming either side.
150
+ - **Pattern**: `custom(dep, [key1, key2], handler)` — Provider.ts registration supports arrays of aliases.
151
+ - **Session handler matching**: `isRimuruProvider` must check BOTH `startsWith("rimuru-ai")` AND `=== ProviderV2.ID.opencode` because opencode free models route through the same rimuru endpoint but have a different provider ID.
152
+ - **Native runtime allowlist**: Must explicitly include `ProviderV2.ID.opencode` — it's not automatically covered by `startsWith("rimuru-ai")`.
153
+ - **Key insight**: `ProviderV2.ID.opencode` as `"opencode"` (not `"rimuru-ai"`) is correct — models.dev always returns `"opencode"`, and the catalog/plugin system looks up by this constant. Changing it to something else would require renaming in the API response parser too.
154
+ - **Server run pattern**: `setsid <binary> < /dev/null` to prevent shell timeout killing the process in non-interactive environment.
155
+ - **Binary rebuild**: `bun run build --single --skip-install` from `packages/rimuru/` directory (not root).
156
+ - **Binary install**: `cp dist/rimuru-ai-linux-x64/bin/rimuru-ai ~/.local/bin/` (no sudo needed in non-interactive env).
157
+
158
+ ### 2026-06-18 — TUI Logo Component: logo.right Must Match logo.left Length
159
+
160
+ - **Bug**: `Array.from(undefined)` crash in `component/logo.tsx:856` when `logo.right` is `[]` but `logo.left` has 6 elements.
161
+ - **Root cause**: `Logo` component iterates `<For each={ctx.shape.left}>` and accesses `ctx.shape.right[index()]` — if `right` is shorter than `left`, the excess indices return `undefined`, and `renderLine(line)` calls `Array.from(undefined)`.
162
+ - **Fix**: Always ensure `logo.left.length === logo.right.length`. For the Rimuru logo: `logo.right = rimuruLines.map(() => "")`.
163
+ - **Empty `go` arrays**: Safe for `bg-pulse-render.ts` because `go.left.map()` returns `[]`, so `Array.from(line)` in `flatMap` never executes.
164
+
165
+ ### 2026-06-18 — Rimuru SVG Icon Generation Toolchain
166
+
167
+ - **Tool**: `rsvg-convert` for SVG→PNG rendering, ImageMagick `magick convert` for padding/resizing/ICO assembly.
168
+ - **Command**: `rsvg-convert -h 2048 rimuru.svg -o base-raw.png && magick base-raw.png -background none -gravity center -extent 2048x2048 base.png` to pad landscape SVG to square with transparent background.
169
+ - **ICO generation**: `magick base.png \( -clone 0 -resize 256x256 \) \( -clone 0 -resize 64x64 \) ... -delete 0 icon.ico` — layers from largest to smallest.
170
+ - **ICNS (Linux fallback)**: ImageMagick can write a simple ICNS but `iconutil` (macOS-only) is preferred. On Linux, the fallback is a single-resolution ICNS.
171
+ - **All channels**: Must copy icons to `icons/dev/`, `icons/beta/`, `icons/prod/`.
172
+ - **Source SVG**: CC0-licensed Rimuru slime from Wikimedia Commons. 2KB, 3900×2869 viewBox, single `<path>` + 2 ellipses + eye detail.
@@ -0,0 +1,21 @@
1
+ # Plugins Log - OpenCode Improver
2
+
3
+ Log of plugins evaluated/installed, with notes on what they do and whether they helped.
4
+
5
+ ---
6
+
7
+ ## 2026-06-15 — Anthropic Skills Repository (github.com/anthropics/skills)
8
+
9
+ - **What**: Official Anthropic skills repo — 17 skills covering creative, document, development, enterprise, and meta domains
10
+ - **How**: Cloned repo, copied all `skills/*/` directories to `~/.agents/skills/`. OpenCode auto-discovers skills from SKILL.md files.
11
+ - **Python deps**: Installed `pypdf`, `pdfplumber`, `reportlab`, `openpyxl`, `python-pptx`, `markitdown` for document skill scripts
12
+ - **Notable sizes**: `canvas-design` (83 files, 5.6 MB), `docx` (61 files, 1.2 MB), `pptx` (59 files, 1.2 MB), `xlsx` (54 files, 1.2 MB), `claude-api` (49 files, 756 KB)
13
+ - **Verdict**: ✅ All installed and verified. Some skills (docx, pdf, pptx, xlsx) are proprietary/source-available per Anthropic's LICENSE.txt.
14
+
15
+ ## 2026-06-15 — `npm docx` package (v9+)
16
+
17
+ - **What**: Node.js library for creating Word (.docx) documents programmatically
18
+ - **Why**: Used to generate a professional R&D proposal document (467 KB, 10+ sections, 4 embedded flow diagrams, tables, headers/footers, page numbers)
19
+ - **Install**: `npm install docx` (prefer local install, global `-g` doesn't resolve from `/tmp/`)
20
+ - **Verdict**: ✅ Works well. Much more control than LibreOffice headless for complex structured docs. Only dependency needed for DOCX generation.
21
+ - **Caveat**: API changed at v9 — `PageNumber` is no longer a constructor. Use `new TextRun({ children: [PageNumber.CURRENT] })` for page numbers. `PageNumberElement` creates bare XML that doesn't render. Check the installed version's API before writing scripts.
@@ -0,0 +1,60 @@
1
+ # Skills Log — OpenCode Improver
2
+
3
+ Log of skills created/modified and their purpose.
4
+
5
+ ---
6
+
7
+ ## 2026-06-15 — Installed 17 skills from github.com/anthropics/skills
8
+
9
+ - **Source**: https://github.com/anthropics/skills (cloned to /tmp/anthropic-skills)
10
+ - **Location**: All installed to `~/.agents/skills/<name>/`
11
+ - **Skills installed**:
12
+ - **Creative**: `algorithmic-art` (p5.js generative art), `brand-guidelines` (Anthropic branding), `canvas-design` (PNG/PDF visual art, 83 files), `theme-factory` (10 preset themes for artifacts), `slack-gif-creator` (animated GIFs for Slack)
13
+ - **Document**: `docx` (Word creation/edit, 61 files — Python scripts + npm docx), `pdf` (PDF read/edit/fill/OCR, 12 files), `pptx` (PowerPoint creation/edit, 59 files), `xlsx` (Excel creation/edit, 54 files)
14
+ - **Development**: `claude-api` (Anthropic API reference, 49 files), `mcp-builder` (MCP server creation guide), `webapp-testing` (Playwright for local web apps), `web-artifacts-builder` (React/shadcn HTML artifacts), `frontend-design` (UI design guidance)
15
+ - **Enterprise**: `internal-comms` (templates for status reports, newsletters, etc.), `doc-coauthoring` (structured doc writing workflow)
16
+ - **Meta**: `skill-creator` (create/modify/evaluate skills)
17
+ - **Dependencies installed**: `pypdf`, `pdfplumber`, `reportlab`, `openpyxl`, `python-pptx`, `markitdown` (via pip3 --break-system-packages) — needed by docx/pdf/pptx/xlsx skills for unpacking, validation, and conversion
18
+ - **Conflict check**: Zero naming conflicts with existing skills
19
+ - **Verification**: All 17 SKILL.md files present and parseable
20
+
21
+ ## 2026-06-15 — DOCX editing workflow (used docx skill content)
22
+
23
+ - **Lesson learned**: The `docx` skill at `~/.agents/skills/docx/` should be loaded FIRST when editing/creating .docx files. It contains:
24
+ - `ooxml/scripts/unpack.py` / `pack.py` — zip-level docx manipulation (critical for fixing `.undefined` image extensions)
25
+ - `SKILL.md` with detailed OOXML reference (table styles, numbering, headers/footers XML patterns)
26
+ - Python Document library for high-level editing
27
+ - **python-docx limitations**: Can't handle malformed content-types. Must pre-fix `.undefined` image extensions via zipfile before python-docx can open a document.
28
+ - **Workflow for future**: (1) Load docx skill → (2) Fix zip-level issues → (3) Use skill's Document library or python-docx → (4) Validate with `unpack.py`
29
+
30
+ ## 2026-06-15 — Document Generation via `docx` npm package
31
+
32
+ - **Discovered/Used**: `npm docx` package (`npm install -g docx`) for programmatic Word document generation
33
+ - **Capability**: Creates professional DOCX with tables, headers/footers, embedded PNG diagrams (via `ImageRun`), page numbers, styled paragraphs, color-coded sections, Table of Contents scaffolding
34
+ - **When to use**: Any task requiring a formatted Word document proposal, report, or analysis
35
+ - **How**: Write a Node.js script using `docx`'s `Document`, `Packer`, `Paragraph`, `TextRun`, `Table`, `ImageRun`, etc. Then `node script.js` produces the `.docx` file
36
+ - **Caveats**:
37
+ - `PageNumber()` is deprecated in v9+ — use `new TextRun({ children: [PageNumber.CURRENT] })` instead
38
+ - `new PageNumberElement()` creates bare XML — does NOT render a working page number
39
+ - Install locally (not globally) for reliable resolution from scripts in `/tmp/`
40
+ - Diagrams must be PNG files on disk; `ImageRun` embeds them inline
41
+ - **Related**: `document-prep` subagent handles LibreOffice-based document tasks; use `docx` npm for programmatic generation (more control, no GUI dep)
42
+
43
+ ---
44
+
45
+ ## 2026-06-15 — Created 3 new subagents (not skills, but domain-specific agents)
46
+
47
+ - Created subagents as global agent `.md` files (not skills). Rationale: subagents run autonomously with tool access; skills just inject instructions. These domains need tool autonomy.
48
+ - **`ethical-hacking.md`**: Offensive/defensive security agent. Uses `bash: ask` for tool execution, `webfetch: allow` for CVE/exploit research.
49
+ - **`document-prep.md`**: Document automation via LibreOffice headless. References `soffice` commands inline. Uses `bash: ask` for document generation/conversion.
50
+ - **`erp-architect.md`**: ERP architecture consultant. Read-only agent (`bash: deny`) that advises on SAP/Oracle/Odoo/D365 architecture.
51
+ - All subagents omit `model` override → use default provider model, cheaper than hardcoding an expensive model.
52
+
53
+ ## 2026-06-17 — MADAR → FastContext Skill Swap
54
+
55
+ - **Deleted**: `~/.agents/skills/madar-graph/` — MADAR knowledge-graph skill (replaced by FastContext)
56
+ - **Created**: `~/.agents/skills/fastcontext/SKILL.md` — FastContext delegation-based repo explorer from [github.com/microsoft/fastcontext](https://github.com/microsoft/fastcontext)
57
+ - **Usage**: `fastcontext -q "<question>" --citation` for focused file:line citations, or `--max-turns 12` for complex multi-file traces
58
+ - **Requirements**: Requires `BASE_URL`, `MODEL`, `API_KEY` env vars (OpenAI-compatible endpoint) — not yet configured
59
+
60
+ ## 2026-06-13 — mssql skill: added connections.json template
@@ -0,0 +1,21 @@
1
+ # Token Audit — OpenCode Improver
2
+
3
+ ## 2026-06-15 — MADAR Graph Was Empty Due to Missing `--include-docs`
4
+
5
+ - **Issue**: All `madar generate .` calls omitted `--include-docs`. Since `.config/opencode/` is ~90% markdown, the extractor produced 0 nodes → `pack`/`query` returned nothing → agents fell back to glob/grep/file sweeps (wasting thousands of tokens).
6
+ - **Fix**: Added `--include-docs` to all `madar generate` calls in `codeflux.md`, `codeflux-god.md`, and `madar-graph/SKILL.md`.
7
+ - **Result**: 94 nodes, 124 edges from 16 files. Pack/query now work and can replace expensive file sweeps.
8
+ - **Token impact**: Each successful MADAR `pack` replaces ~2-5k tokens of glob/grep/file reads. Estimated savings: ~3-8k tokens per lookup.
9
+ - **SUPERSEDED 2026-06-17**: MADAR replaced entirely by FastContext. Now uses `fastcontext -q "..." --citation` instead of `madar pack`/`madar query`. No graph to maintain; exploration is delegated to a subagent that returns compact file:line citations (~200-500 tokens per lookup vs ~3-8k per file sweep).
10
+
11
+ ---
12
+
13
+ ## 2026-06-15 — Subagent token optimization applied
14
+
15
+ - **Ethical-hacking agent**: 8 steps instead of default 25+ → saves ~200-400 tokens per subagent invocation (fewer reasoning loops). `bash: ask` prevents runaway tool execution.
16
+ - **Document-prep agent**: 6 steps + inline soffice commands → saves ~2-5k tokens by avoiding websearch for "how to convert ODT to PDF with LibreOffice" on every use.
17
+ - **ERP-architect agent**: 6 steps + `bash: deny` + `webfetch: allow` → read-only by design. No bash tool schema overhead (~100 tokens saved per request).
18
+ - **All new subagents**: No `model` override → inherits default model, no hardcoded expensive provider tokens.
19
+ - **codeflux.json / opencode.json agent entries**: Added `permission.task: {"*": "allow"}` to formalize subagent access (was implicit before, now explicit — same token cost, clearer intent).
20
+
21
+ ## 2026-06-13 — Initial observations
@@ -0,0 +1,140 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+
4
+ "provider": {},
5
+
6
+ "permission": {},
7
+
8
+ "references": {
9
+ "effect": {
10
+ "repository": "github.com/Effect-TS/effect-smol",
11
+ "description": "Use for Effect v4 and effect-smol implementation details"
12
+ },
13
+ "rimuru-local": {
14
+ "path": "~/.local/share/opencode",
15
+ "description": "Contains opencode logs and data"
16
+ },
17
+ "rimuru-docs": {
18
+ "path": "./packages/docs",
19
+ "description": "Rimuru documentation site built with Astro"
20
+ },
21
+ "rimuru-core": {
22
+ "path": "./packages/core",
23
+ "description": "Core shared library for rimuru-ai"
24
+ }
25
+ },
26
+
27
+ "mcp": {
28
+ "figma": {
29
+ "type": "local",
30
+ "command": ["npx", "-y", "@nexus2520/figma-mcp-server"],
31
+ "enabled": true,
32
+ "environment": {
33
+ "FIGMA_ACCESS_TOKEN": "figd_hnE1be8CLqwEb2ZKciIr4y8bokJs38c-wTasSVQj"
34
+ }
35
+ },
36
+ "filesystem": {
37
+ "type": "local",
38
+ "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/home/gowdaman"],
39
+ "enabled": true
40
+ },
41
+ "postman": {
42
+ "type": "local",
43
+ "command": ["npx", "-y", "@postman/postman-mcp-server@latest", "--region", "us", "--full"],
44
+ "enabled": true,
45
+ "environment": {
46
+ "POSTMAN_API_KEY": "PMAK-6a27e753d8c40900019727e5-35d5902e704787a6b5a23328fbf0e7922d"
47
+ }
48
+ },
49
+ "chrome-devtools": {
50
+ "type": "local",
51
+ "command": ["npx", "-y", "chrome-devtools-mcp@latest"],
52
+ "enabled": true
53
+ },
54
+ "browser-use": {
55
+ "type": "local",
56
+ "command": ["npx", "-y", "browser-use", "--mcp"],
57
+ "enabled": true
58
+ },
59
+ },
60
+
61
+ "tools": {
62
+ "github-triage": false,
63
+ "github-pr-search": false
64
+ },
65
+
66
+ "agent": {
67
+ "rimuru-build": {
68
+ "mode": "primary",
69
+ "permission": {
70
+ "task": { "*": "allow" },
71
+ "tool": { "*": "allow" }
72
+ }
73
+ },
74
+ "rimuru-docs": {
75
+ "mode": "primary",
76
+ "permission": {
77
+ "task": { "*": "allow" },
78
+ "tool": { "*": "allow" }
79
+ }
80
+ },
81
+ "rimuru-codebase": {
82
+ "mode": "primary",
83
+ "permission": {
84
+ "task": { "*": "allow" },
85
+ "tool": { "*": "allow" }
86
+ }
87
+ },
88
+ "veldora": {
89
+ "mode": "primary",
90
+ "permission": {
91
+ "task": { "*": "allow" },
92
+ "tool": { "*": "allow" }
93
+ }
94
+ },
95
+ "veldora-pro": {
96
+ "mode": "primary",
97
+ "permission": {
98
+ "task": { "*": "allow" },
99
+ "tool": { "*": "allow" }
100
+ }
101
+ },
102
+ "veldora-doc": {
103
+ "mode": "primary",
104
+ "permission": {
105
+ "task": { "*": "allow" },
106
+ "tool": { "*": "allow" }
107
+ }
108
+ }
109
+ },
110
+
111
+ "plugin": [
112
+ "opencode-optimal-model-temps",
113
+ "opencode-codebase-index",
114
+ "opencode-helicone-session",
115
+ "opencode-goal-plugin"
116
+ ],
117
+
118
+ "command": {
119
+ "goal": {
120
+ "description": "Set a session-scoped goal and auto-continue until complete.",
121
+ "template": "$ARGUMENTS",
122
+ "agent": "build"
123
+ },
124
+ "build-package": {
125
+ "description": "Build a specific package with turbo",
126
+ "template": "bun turbo build --filter=$ARGUMENTS",
127
+ "agent": "build"
128
+ },
129
+ "typecheck": {
130
+ "description": "Run typecheck across the project",
131
+ "template": "bun turbo typecheck",
132
+ "agent": "build"
133
+ },
134
+ "lint": {
135
+ "description": "Run linter",
136
+ "template": "oxlint",
137
+ "agent": "build"
138
+ }
139
+ }
140
+ }
@@ -0,0 +1,223 @@
1
+ {
2
+ "$schema": "https://github.com/gowdaman-dev/rimuru-ai/theme.json",
3
+ "defs": {
4
+ "nord0": "#2E3440",
5
+ "nord1": "#3B4252",
6
+ "nord2": "#434C5E",
7
+ "nord3": "#4C566A",
8
+ "nord4": "#D8DEE9",
9
+ "nord5": "#E5E9F0",
10
+ "nord6": "#ECEFF4",
11
+ "nord7": "#8FBCBB",
12
+ "nord8": "#88C0D0",
13
+ "nord9": "#81A1C1",
14
+ "nord10": "#5E81AC",
15
+ "nord11": "#BF616A",
16
+ "nord12": "#D08770",
17
+ "nord13": "#EBCB8B",
18
+ "nord14": "#A3BE8C",
19
+ "nord15": "#B48EAD"
20
+ },
21
+ "theme": {
22
+ "primary": {
23
+ "dark": "nord10",
24
+ "light": "nord9"
25
+ },
26
+ "secondary": {
27
+ "dark": "nord9",
28
+ "light": "nord9"
29
+ },
30
+ "accent": {
31
+ "dark": "nord7",
32
+ "light": "nord7"
33
+ },
34
+ "error": {
35
+ "dark": "nord11",
36
+ "light": "nord11"
37
+ },
38
+ "warning": {
39
+ "dark": "nord12",
40
+ "light": "nord12"
41
+ },
42
+ "success": {
43
+ "dark": "nord14",
44
+ "light": "nord14"
45
+ },
46
+ "info": {
47
+ "dark": "nord8",
48
+ "light": "nord10"
49
+ },
50
+ "text": {
51
+ "dark": "nord6",
52
+ "light": "nord0"
53
+ },
54
+ "textMuted": {
55
+ "dark": "#8B95A7",
56
+ "light": "nord1"
57
+ },
58
+ "background": {
59
+ "dark": "nord0",
60
+ "light": "nord6"
61
+ },
62
+ "backgroundPanel": {
63
+ "dark": "nord1",
64
+ "light": "nord5"
65
+ },
66
+ "backgroundElement": {
67
+ "dark": "nord2",
68
+ "light": "nord4"
69
+ },
70
+ "border": {
71
+ "dark": "nord2",
72
+ "light": "nord3"
73
+ },
74
+ "borderActive": {
75
+ "dark": "nord3",
76
+ "light": "nord2"
77
+ },
78
+ "borderSubtle": {
79
+ "dark": "nord2",
80
+ "light": "nord3"
81
+ },
82
+ "diffAdded": {
83
+ "dark": "nord14",
84
+ "light": "nord14"
85
+ },
86
+ "diffRemoved": {
87
+ "dark": "nord11",
88
+ "light": "nord11"
89
+ },
90
+ "diffContext": {
91
+ "dark": "#8B95A7",
92
+ "light": "nord3"
93
+ },
94
+ "diffHunkHeader": {
95
+ "dark": "#8B95A7",
96
+ "light": "nord3"
97
+ },
98
+ "diffHighlightAdded": {
99
+ "dark": "nord14",
100
+ "light": "nord14"
101
+ },
102
+ "diffHighlightRemoved": {
103
+ "dark": "nord11",
104
+ "light": "nord11"
105
+ },
106
+ "diffAddedBg": {
107
+ "dark": "#36413C",
108
+ "light": "#E6EBE7"
109
+ },
110
+ "diffRemovedBg": {
111
+ "dark": "#43393D",
112
+ "light": "#ECE6E8"
113
+ },
114
+ "diffContextBg": {
115
+ "dark": "nord1",
116
+ "light": "nord5"
117
+ },
118
+ "diffLineNumber": {
119
+ "dark": "nord2",
120
+ "light": "nord4"
121
+ },
122
+ "diffAddedLineNumberBg": {
123
+ "dark": "#303A35",
124
+ "light": "#DDE4DF"
125
+ },
126
+ "diffRemovedLineNumberBg": {
127
+ "dark": "#3C3336",
128
+ "light": "#E4DDE0"
129
+ },
130
+ "markdownText": {
131
+ "dark": "nord4",
132
+ "light": "nord0"
133
+ },
134
+ "markdownHeading": {
135
+ "dark": "nord8",
136
+ "light": "nord10"
137
+ },
138
+ "markdownLink": {
139
+ "dark": "nord9",
140
+ "light": "nord9"
141
+ },
142
+ "markdownLinkText": {
143
+ "dark": "nord7",
144
+ "light": "nord7"
145
+ },
146
+ "markdownCode": {
147
+ "dark": "nord14",
148
+ "light": "nord14"
149
+ },
150
+ "markdownBlockQuote": {
151
+ "dark": "#8B95A7",
152
+ "light": "nord3"
153
+ },
154
+ "markdownEmph": {
155
+ "dark": "nord12",
156
+ "light": "nord12"
157
+ },
158
+ "markdownStrong": {
159
+ "dark": "nord13",
160
+ "light": "nord13"
161
+ },
162
+ "markdownHorizontalRule": {
163
+ "dark": "#8B95A7",
164
+ "light": "nord3"
165
+ },
166
+ "markdownListItem": {
167
+ "dark": "nord8",
168
+ "light": "nord10"
169
+ },
170
+ "markdownListEnumeration": {
171
+ "dark": "nord7",
172
+ "light": "nord7"
173
+ },
174
+ "markdownImage": {
175
+ "dark": "nord9",
176
+ "light": "nord9"
177
+ },
178
+ "markdownImageText": {
179
+ "dark": "nord7",
180
+ "light": "nord7"
181
+ },
182
+ "markdownCodeBlock": {
183
+ "dark": "nord4",
184
+ "light": "nord0"
185
+ },
186
+ "syntaxComment": {
187
+ "dark": "#8B95A7",
188
+ "light": "nord3"
189
+ },
190
+ "syntaxKeyword": {
191
+ "dark": "nord9",
192
+ "light": "nord9"
193
+ },
194
+ "syntaxFunction": {
195
+ "dark": "nord8",
196
+ "light": "nord8"
197
+ },
198
+ "syntaxVariable": {
199
+ "dark": "nord7",
200
+ "light": "nord7"
201
+ },
202
+ "syntaxString": {
203
+ "dark": "nord14",
204
+ "light": "nord14"
205
+ },
206
+ "syntaxNumber": {
207
+ "dark": "nord15",
208
+ "light": "nord15"
209
+ },
210
+ "syntaxType": {
211
+ "dark": "nord7",
212
+ "light": "nord7"
213
+ },
214
+ "syntaxOperator": {
215
+ "dark": "nord9",
216
+ "light": "nord9"
217
+ },
218
+ "syntaxPunctuation": {
219
+ "dark": "nord4",
220
+ "light": "nord0"
221
+ }
222
+ }
223
+ }