glitchcode-cli 0.1.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 (1169) hide show
  1. package/Dockerfile +18 -0
  2. package/README.md +15 -0
  3. package/bin/glitch +180 -0
  4. package/bunfig.toml +7 -0
  5. package/drizzle.config.ts +10 -0
  6. package/git +0 -0
  7. package/migration/20260127222353_familiar_lady_ursula/migration.sql +90 -0
  8. package/migration/20260127222353_familiar_lady_ursula/snapshot.json +796 -0
  9. package/migration/20260211171708_add_project_commands/migration.sql +1 -0
  10. package/migration/20260211171708_add_project_commands/snapshot.json +806 -0
  11. package/migration/20260213144116_wakeful_the_professor/migration.sql +11 -0
  12. package/migration/20260213144116_wakeful_the_professor/snapshot.json +897 -0
  13. package/migration/20260225215848_workspace/migration.sql +7 -0
  14. package/migration/20260225215848_workspace/snapshot.json +959 -0
  15. package/migration/20260227213759_add_session_workspace_id/migration.sql +2 -0
  16. package/migration/20260227213759_add_session_workspace_id/snapshot.json +983 -0
  17. package/migration/20260228203230_blue_harpoon/migration.sql +17 -0
  18. package/migration/20260228203230_blue_harpoon/snapshot.json +1102 -0
  19. package/migration/20260303231226_add_workspace_fields/migration.sql +5 -0
  20. package/migration/20260303231226_add_workspace_fields/snapshot.json +1013 -0
  21. package/migration/20260309230000_move_org_to_state/migration.sql +3 -0
  22. package/migration/20260309230000_move_org_to_state/snapshot.json +1156 -0
  23. package/migration/20260312043431_session_message_cursor/migration.sql +4 -0
  24. package/migration/20260312043431_session_message_cursor/snapshot.json +1168 -0
  25. package/migration/20260323234822_events/migration.sql +13 -0
  26. package/migration/20260323234822_events/snapshot.json +1271 -0
  27. package/migration/20260410174513_workspace-name/migration.sql +16 -0
  28. package/migration/20260410174513_workspace-name/snapshot.json +1271 -0
  29. package/migration/20260413175956_chief_energizer/migration.sql +13 -0
  30. package/migration/20260413175956_chief_energizer/snapshot.json +1399 -0
  31. package/migration/20260422160000_context_inheritance/migration.sql +3 -0
  32. package/migration/20260422170000_task_registry/migration.sql +18 -0
  33. package/migration/20260423145421_remove_session_entry/migration.sql +4 -0
  34. package/migration/20260515000000_actor_rename/migration.sql +7 -0
  35. package/migration/20260515010000_memory_fts/migration.sql +33 -0
  36. package/migration/20260515020000_user_task/migration.sql +29 -0
  37. package/migration/20260519000000_last_checkpoint_message_id/migration.sql +1 -0
  38. package/migration/20260521000000_message_agent_id/migration.sql +2 -0
  39. package/migration/20260521000100_actor_registry_v6/migration.sql +25 -0
  40. package/migration/20260521010000_memory_fts_v6/migration.sql +33 -0
  41. package/migration/20260521020000_memory_fts_triggers/migration.sql +17 -0
  42. package/migration/20260526000000_agent_id_main/migration.sql +14 -0
  43. package/migration/20260527000000_actor_lifecycle/migration.sql +8 -0
  44. package/migration/20260527000100_inbox/migration.sql +12 -0
  45. package/migration/20260529000000_task_todo_redesign/migration.sql +16 -0
  46. package/migration/20260603000000_task_in_progress_owner/migration.sql +1 -0
  47. package/migration/20260603000000_workflow_run/migration.sql +17 -0
  48. package/migration/20260604000000_workflow_script_sha/migration.sql +1 -0
  49. package/migration/20260608000000_claude_import/migration.sql +7 -0
  50. package/migration/20260608010000_claude_import_message_ids/migration.sql +1 -0
  51. package/migration/20260609000000_history_fts/migration.sql +29 -0
  52. package/migration/20260609230000_workflow_agent_timeout/migration.sql +1 -0
  53. package/migration/20260612000000_external_import/migration.sql +16 -0
  54. package/package.json +203 -0
  55. package/parsers-config.ts +290 -0
  56. package/script/build.ts +304 -0
  57. package/script/check-migrations.ts +16 -0
  58. package/script/fix-node-pty.ts +28 -0
  59. package/script/generate.ts +23 -0
  60. package/script/postinstall.mjs +102 -0
  61. package/script/publish.ts +74 -0
  62. package/script/run-workspace-server +106 -0
  63. package/script/schema.ts +63 -0
  64. package/script/time.ts +6 -0
  65. package/script/trace-imports.ts +153 -0
  66. package/script/upgrade-opentui.ts +64 -0
  67. package/src/account/account.sql.ts +39 -0
  68. package/src/account/account.ts +456 -0
  69. package/src/account/repo.ts +166 -0
  70. package/src/account/schema.ts +99 -0
  71. package/src/account/url.ts +8 -0
  72. package/src/acp/README.md +174 -0
  73. package/src/acp/agent.ts +1783 -0
  74. package/src/acp/session.ts +116 -0
  75. package/src/acp/types.ts +24 -0
  76. package/src/actor/actor.sql.ts +38 -0
  77. package/src/actor/events.ts +67 -0
  78. package/src/actor/index.ts +2 -0
  79. package/src/actor/registry.ts +412 -0
  80. package/src/actor/return-header.ts +24 -0
  81. package/src/actor/schema.ts +47 -0
  82. package/src/actor/spawn-ref.ts +16 -0
  83. package/src/actor/spawn.ts +741 -0
  84. package/src/actor/turn.ts +49 -0
  85. package/src/actor/waiter.ts +166 -0
  86. package/src/agent/agent.ts +554 -0
  87. package/src/agent/config.ts +5 -0
  88. package/src/agent/generate.txt +75 -0
  89. package/src/agent/prompt/checkpoint-writer.txt +167 -0
  90. package/src/agent/prompt/compaction.txt +9 -0
  91. package/src/agent/prompt/distill.txt +199 -0
  92. package/src/agent/prompt/dream.txt +155 -0
  93. package/src/agent/prompt/explore.txt +18 -0
  94. package/src/agent/prompt/summary.txt +11 -0
  95. package/src/agent/prompt/title.txt +44 -0
  96. package/src/audio.d.ts +9 -0
  97. package/src/auth/index.ts +97 -0
  98. package/src/bus/bus-event.ts +33 -0
  99. package/src/bus/global.ts +12 -0
  100. package/src/bus/index.ts +193 -0
  101. package/src/cli/bootstrap.ts +33 -0
  102. package/src/cli/cmd/account.ts +258 -0
  103. package/src/cli/cmd/acp.ts +70 -0
  104. package/src/cli/cmd/agent.ts +248 -0
  105. package/src/cli/cmd/cmd.ts +7 -0
  106. package/src/cli/cmd/db.ts +120 -0
  107. package/src/cli/cmd/debug/agent.ts +192 -0
  108. package/src/cli/cmd/debug/config.ts +17 -0
  109. package/src/cli/cmd/debug/file.ts +100 -0
  110. package/src/cli/cmd/debug/index.ts +48 -0
  111. package/src/cli/cmd/debug/lsp.ts +61 -0
  112. package/src/cli/cmd/debug/ripgrep.ts +105 -0
  113. package/src/cli/cmd/debug/scrap.ts +16 -0
  114. package/src/cli/cmd/debug/skill.ts +23 -0
  115. package/src/cli/cmd/debug/snapshot.ts +53 -0
  116. package/src/cli/cmd/export.ts +306 -0
  117. package/src/cli/cmd/generate.ts +50 -0
  118. package/src/cli/cmd/github.ts +1647 -0
  119. package/src/cli/cmd/import.ts +208 -0
  120. package/src/cli/cmd/init.ts +148 -0
  121. package/src/cli/cmd/mcp.ts +812 -0
  122. package/src/cli/cmd/models.ts +88 -0
  123. package/src/cli/cmd/plug.ts +233 -0
  124. package/src/cli/cmd/pr.ts +138 -0
  125. package/src/cli/cmd/providers.ts +692 -0
  126. package/src/cli/cmd/run-completion.ts +77 -0
  127. package/src/cli/cmd/run.ts +694 -0
  128. package/src/cli/cmd/serve.ts +21 -0
  129. package/src/cli/cmd/session.ts +181 -0
  130. package/src/cli/cmd/stats.ts +413 -0
  131. package/src/cli/cmd/tui/app.tsx +1140 -0
  132. package/src/cli/cmd/tui/asset/TEN_VAD_LICENSE +12 -0
  133. package/src/cli/cmd/tui/asset/charge.wav +0 -0
  134. package/src/cli/cmd/tui/asset/pulse-a.wav +0 -0
  135. package/src/cli/cmd/tui/asset/pulse-b.wav +0 -0
  136. package/src/cli/cmd/tui/asset/pulse-c.wav +0 -0
  137. package/src/cli/cmd/tui/asset/ten_vad.wasm +0 -0
  138. package/src/cli/cmd/tui/asset/ten_vad_loader.js +30 -0
  139. package/src/cli/cmd/tui/attach.ts +84 -0
  140. package/src/cli/cmd/tui/component/background-image.tsx +150 -0
  141. package/src/cli/cmd/tui/component/bg-pulse.tsx +130 -0
  142. package/src/cli/cmd/tui/component/border.tsx +21 -0
  143. package/src/cli/cmd/tui/component/dialog-agent.tsx +31 -0
  144. package/src/cli/cmd/tui/component/dialog-agreement.tsx +111 -0
  145. package/src/cli/cmd/tui/component/dialog-command.tsx +219 -0
  146. package/src/cli/cmd/tui/component/dialog-console-org.tsx +103 -0
  147. package/src/cli/cmd/tui/component/dialog-glitch-login.tsx +253 -0
  148. package/src/cli/cmd/tui/component/dialog-go-upsell.tsx +157 -0
  149. package/src/cli/cmd/tui/component/dialog-image-list.tsx +111 -0
  150. package/src/cli/cmd/tui/component/dialog-logo-design.tsx +37 -0
  151. package/src/cli/cmd/tui/component/dialog-mcp.tsx +86 -0
  152. package/src/cli/cmd/tui/component/dialog-mimo-login.tsx +253 -0
  153. package/src/cli/cmd/tui/component/dialog-model.tsx +252 -0
  154. package/src/cli/cmd/tui/component/dialog-provider.tsx +454 -0
  155. package/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +101 -0
  156. package/src/cli/cmd/tui/component/dialog-session-list.tsx +269 -0
  157. package/src/cli/cmd/tui/component/dialog-session-rename.tsx +31 -0
  158. package/src/cli/cmd/tui/component/dialog-skill.tsx +42 -0
  159. package/src/cli/cmd/tui/component/dialog-stash.tsx +87 -0
  160. package/src/cli/cmd/tui/component/dialog-status.tsx +170 -0
  161. package/src/cli/cmd/tui/component/dialog-tag.tsx +44 -0
  162. package/src/cli/cmd/tui/component/dialog-theme-list.tsx +50 -0
  163. package/src/cli/cmd/tui/component/dialog-variant.tsx +39 -0
  164. package/src/cli/cmd/tui/component/dialog-workflows.tsx +62 -0
  165. package/src/cli/cmd/tui/component/dialog-workspace-create.tsx +289 -0
  166. package/src/cli/cmd/tui/component/dialog-workspace-unavailable.tsx +81 -0
  167. package/src/cli/cmd/tui/component/dialog-worktree.tsx +90 -0
  168. package/src/cli/cmd/tui/component/error-component.tsx +92 -0
  169. package/src/cli/cmd/tui/component/logo.tsx +961 -0
  170. package/src/cli/cmd/tui/component/plugin-route-missing.tsx +14 -0
  171. package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +684 -0
  172. package/src/cli/cmd/tui/component/prompt/cwd.ts +0 -0
  173. package/src/cli/cmd/tui/component/prompt/frecency.tsx +90 -0
  174. package/src/cli/cmd/tui/component/prompt/history.tsx +108 -0
  175. package/src/cli/cmd/tui/component/prompt/index.tsx +1871 -0
  176. package/src/cli/cmd/tui/component/prompt/part.ts +16 -0
  177. package/src/cli/cmd/tui/component/prompt/stash.tsx +101 -0
  178. package/src/cli/cmd/tui/component/spinner.tsx +24 -0
  179. package/src/cli/cmd/tui/component/starry-background.tsx +305 -0
  180. package/src/cli/cmd/tui/component/startup-loading.tsx +67 -0
  181. package/src/cli/cmd/tui/component/task-item.tsx +63 -0
  182. package/src/cli/cmd/tui/component/textarea-keybindings.ts +73 -0
  183. package/src/cli/cmd/tui/component/todo-item.tsx +32 -0
  184. package/src/cli/cmd/tui/config/cwd.ts +5 -0
  185. package/src/cli/cmd/tui/config/tui-migrate.ts +151 -0
  186. package/src/cli/cmd/tui/config/tui-schema.ts +38 -0
  187. package/src/cli/cmd/tui/config/tui.ts +219 -0
  188. package/src/cli/cmd/tui/context/args.tsx +16 -0
  189. package/src/cli/cmd/tui/context/directory.ts +15 -0
  190. package/src/cli/cmd/tui/context/event.ts +45 -0
  191. package/src/cli/cmd/tui/context/exit.tsx +65 -0
  192. package/src/cli/cmd/tui/context/helper.tsx +25 -0
  193. package/src/cli/cmd/tui/context/keybind.tsx +105 -0
  194. package/src/cli/cmd/tui/context/kv.tsx +86 -0
  195. package/src/cli/cmd/tui/context/language.tsx +91 -0
  196. package/src/cli/cmd/tui/context/local.tsx +455 -0
  197. package/src/cli/cmd/tui/context/plugin-keybinds.ts +41 -0
  198. package/src/cli/cmd/tui/context/project.tsx +109 -0
  199. package/src/cli/cmd/tui/context/prompt.tsx +18 -0
  200. package/src/cli/cmd/tui/context/route.tsx +61 -0
  201. package/src/cli/cmd/tui/context/sdk.tsx +150 -0
  202. package/src/cli/cmd/tui/context/sync.tsx +828 -0
  203. package/src/cli/cmd/tui/context/theme/aura.json +69 -0
  204. package/src/cli/cmd/tui/context/theme/ayu.json +80 -0
  205. package/src/cli/cmd/tui/context/theme/carbonfox.json +248 -0
  206. package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +230 -0
  207. package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +230 -0
  208. package/src/cli/cmd/tui/context/theme/catppuccin.json +112 -0
  209. package/src/cli/cmd/tui/context/theme/cobalt2.json +225 -0
  210. package/src/cli/cmd/tui/context/theme/cursor.json +249 -0
  211. package/src/cli/cmd/tui/context/theme/dracula.json +219 -0
  212. package/src/cli/cmd/tui/context/theme/everforest.json +241 -0
  213. package/src/cli/cmd/tui/context/theme/flexoki.json +237 -0
  214. package/src/cli/cmd/tui/context/theme/github.json +233 -0
  215. package/src/cli/cmd/tui/context/theme/glitch.json +227 -0
  216. package/src/cli/cmd/tui/context/theme/gruvbox.json +242 -0
  217. package/src/cli/cmd/tui/context/theme/kanagawa.json +77 -0
  218. package/src/cli/cmd/tui/context/theme/lucent-orng.json +234 -0
  219. package/src/cli/cmd/tui/context/theme/material.json +235 -0
  220. package/src/cli/cmd/tui/context/theme/matrix.json +77 -0
  221. package/src/cli/cmd/tui/context/theme/mercury.json +252 -0
  222. package/src/cli/cmd/tui/context/theme/mimocode.json +245 -0
  223. package/src/cli/cmd/tui/context/theme/monokai.json +221 -0
  224. package/src/cli/cmd/tui/context/theme/nightowl.json +221 -0
  225. package/src/cli/cmd/tui/context/theme/nord.json +223 -0
  226. package/src/cli/cmd/tui/context/theme/one-dark.json +84 -0
  227. package/src/cli/cmd/tui/context/theme/orng.json +249 -0
  228. package/src/cli/cmd/tui/context/theme/osaka-jade.json +93 -0
  229. package/src/cli/cmd/tui/context/theme/palenight.json +222 -0
  230. package/src/cli/cmd/tui/context/theme/rosepine.json +234 -0
  231. package/src/cli/cmd/tui/context/theme/solarized.json +223 -0
  232. package/src/cli/cmd/tui/context/theme/synthwave84.json +226 -0
  233. package/src/cli/cmd/tui/context/theme/tokyonight.json +243 -0
  234. package/src/cli/cmd/tui/context/theme/vercel.json +245 -0
  235. package/src/cli/cmd/tui/context/theme/vesper.json +218 -0
  236. package/src/cli/cmd/tui/context/theme/zenburn.json +223 -0
  237. package/src/cli/cmd/tui/context/theme.tsx +1300 -0
  238. package/src/cli/cmd/tui/context/thinking.ts +48 -0
  239. package/src/cli/cmd/tui/context/tui-config.tsx +9 -0
  240. package/src/cli/cmd/tui/event.ts +56 -0
  241. package/src/cli/cmd/tui/feature-plugins/home/footer.tsx +93 -0
  242. package/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +193 -0
  243. package/src/cli/cmd/tui/feature-plugins/home/tips.tsx +54 -0
  244. package/src/cli/cmd/tui/feature-plugins/sidebar/context.tsx +114 -0
  245. package/src/cli/cmd/tui/feature-plugins/sidebar/cwd.tsx +45 -0
  246. package/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +62 -0
  247. package/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +93 -0
  248. package/src/cli/cmd/tui/feature-plugins/sidebar/goal.tsx +84 -0
  249. package/src/cli/cmd/tui/feature-plugins/sidebar/instructions.tsx +54 -0
  250. package/src/cli/cmd/tui/feature-plugins/sidebar/lsp.tsx +66 -0
  251. package/src/cli/cmd/tui/feature-plugins/sidebar/mcp.tsx +98 -0
  252. package/src/cli/cmd/tui/feature-plugins/sidebar/task.tsx +95 -0
  253. package/src/cli/cmd/tui/feature-plugins/sidebar/todo.tsx +51 -0
  254. package/src/cli/cmd/tui/feature-plugins/sidebar/tps.ts +31 -0
  255. package/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +274 -0
  256. package/src/cli/cmd/tui/i18n/en.ts +436 -0
  257. package/src/cli/cmd/tui/i18n/es.ts +478 -0
  258. package/src/cli/cmd/tui/i18n/fr.ts +485 -0
  259. package/src/cli/cmd/tui/i18n/ja.ts +437 -0
  260. package/src/cli/cmd/tui/i18n/locales.ts +82 -0
  261. package/src/cli/cmd/tui/i18n/ru.ts +497 -0
  262. package/src/cli/cmd/tui/i18n/tr.ts +398 -0
  263. package/src/cli/cmd/tui/i18n/zh.ts +429 -0
  264. package/src/cli/cmd/tui/i18n/zht.ts +405 -0
  265. package/src/cli/cmd/tui/layer.ts +6 -0
  266. package/src/cli/cmd/tui/plugin/api.tsx +402 -0
  267. package/src/cli/cmd/tui/plugin/index.ts +3 -0
  268. package/src/cli/cmd/tui/plugin/internal.ts +35 -0
  269. package/src/cli/cmd/tui/plugin/runtime.ts +1057 -0
  270. package/src/cli/cmd/tui/plugin/slots.tsx +60 -0
  271. package/src/cli/cmd/tui/routes/home.tsx +165 -0
  272. package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +76 -0
  273. package/src/cli/cmd/tui/routes/session/dialog-message.tsx +116 -0
  274. package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +47 -0
  275. package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +47 -0
  276. package/src/cli/cmd/tui/routes/session/footer.tsx +91 -0
  277. package/src/cli/cmd/tui/routes/session/index.tsx +2567 -0
  278. package/src/cli/cmd/tui/routes/session/permission.tsx +691 -0
  279. package/src/cli/cmd/tui/routes/session/question.tsx +488 -0
  280. package/src/cli/cmd/tui/routes/session/sidebar.tsx +97 -0
  281. package/src/cli/cmd/tui/routes/session/subagent-footer.tsx +142 -0
  282. package/src/cli/cmd/tui/thread.ts +323 -0
  283. package/src/cli/cmd/tui/ui/dialog-alert.tsx +61 -0
  284. package/src/cli/cmd/tui/ui/dialog-confirm.tsx +95 -0
  285. package/src/cli/cmd/tui/ui/dialog-export-options.tsx +223 -0
  286. package/src/cli/cmd/tui/ui/dialog-help.tsx +42 -0
  287. package/src/cli/cmd/tui/ui/dialog-prompt.tsx +123 -0
  288. package/src/cli/cmd/tui/ui/dialog-select.tsx +463 -0
  289. package/src/cli/cmd/tui/ui/dialog.tsx +207 -0
  290. package/src/cli/cmd/tui/ui/link.tsx +28 -0
  291. package/src/cli/cmd/tui/ui/spinner.ts +378 -0
  292. package/src/cli/cmd/tui/ui/toast.tsx +102 -0
  293. package/src/cli/cmd/tui/util/clipboard.ts +203 -0
  294. package/src/cli/cmd/tui/util/editor.ts +36 -0
  295. package/src/cli/cmd/tui/util/image-protocol.ts +35 -0
  296. package/src/cli/cmd/tui/util/index.ts +6 -0
  297. package/src/cli/cmd/tui/util/model.ts +23 -0
  298. package/src/cli/cmd/tui/util/pinyin.ts +20 -0
  299. package/src/cli/cmd/tui/util/provider-origin.ts +7 -0
  300. package/src/cli/cmd/tui/util/revert-diff.ts +18 -0
  301. package/src/cli/cmd/tui/util/scroll.ts +23 -0
  302. package/src/cli/cmd/tui/util/selection.ts +23 -0
  303. package/src/cli/cmd/tui/util/signal.ts +41 -0
  304. package/src/cli/cmd/tui/util/sound.ts +154 -0
  305. package/src/cli/cmd/tui/util/system-locale.ts +209 -0
  306. package/src/cli/cmd/tui/util/terminal.ts +110 -0
  307. package/src/cli/cmd/tui/util/transcript.ts +112 -0
  308. package/src/cli/cmd/tui/util/vad.ts +229 -0
  309. package/src/cli/cmd/tui/util/voice.ts +450 -0
  310. package/src/cli/cmd/tui/win32.ts +130 -0
  311. package/src/cli/cmd/tui/worker.ts +104 -0
  312. package/src/cli/cmd/uninstall.ts +351 -0
  313. package/src/cli/cmd/upgrade.ts +79 -0
  314. package/src/cli/cmd/web.ts +82 -0
  315. package/src/cli/effect/prompt.ts +25 -0
  316. package/src/cli/error.ts +82 -0
  317. package/src/cli/heap.ts +59 -0
  318. package/src/cli/i18n.ts +16 -0
  319. package/src/cli/logo.ts +53 -0
  320. package/src/cli/network.ts +62 -0
  321. package/src/cli/ui.ts +133 -0
  322. package/src/cli/upgrade.ts +41 -0
  323. package/src/command/index.ts +276 -0
  324. package/src/command/template/initialize.txt +66 -0
  325. package/src/command/template/review.txt +101 -0
  326. package/src/config/agent.ts +197 -0
  327. package/src/config/command.ts +69 -0
  328. package/src/config/config.ts +1036 -0
  329. package/src/config/console-state.ts +16 -0
  330. package/src/config/entry-name.ts +16 -0
  331. package/src/config/error.ts +21 -0
  332. package/src/config/formatter.ts +17 -0
  333. package/src/config/history.ts +21 -0
  334. package/src/config/index.ts +16 -0
  335. package/src/config/keybinds.ts +127 -0
  336. package/src/config/layout.ts +10 -0
  337. package/src/config/lsp.ts +45 -0
  338. package/src/config/managed.ts +70 -0
  339. package/src/config/markdown.ts +97 -0
  340. package/src/config/mcp.ts +172 -0
  341. package/src/config/model-id.ts +14 -0
  342. package/src/config/parse.ts +44 -0
  343. package/src/config/paths.ts +73 -0
  344. package/src/config/permission.ts +76 -0
  345. package/src/config/plugin.ts +88 -0
  346. package/src/config/provider.ts +118 -0
  347. package/src/config/server.ts +20 -0
  348. package/src/config/skills.ts +16 -0
  349. package/src/config/variable.ts +90 -0
  350. package/src/control-plane/adaptors/index.ts +52 -0
  351. package/src/control-plane/adaptors/worktree.ts +47 -0
  352. package/src/control-plane/dev/debug-workspace-plugin.ts +73 -0
  353. package/src/control-plane/schema.ts +19 -0
  354. package/src/control-plane/sse.ts +66 -0
  355. package/src/control-plane/types.ts +34 -0
  356. package/src/control-plane/util.ts +37 -0
  357. package/src/control-plane/workspace-context.ts +26 -0
  358. package/src/control-plane/workspace.sql.ts +17 -0
  359. package/src/control-plane/workspace.ts +615 -0
  360. package/src/effect/app-runtime.ts +146 -0
  361. package/src/effect/bootstrap-runtime.ts +33 -0
  362. package/src/effect/bridge.ts +48 -0
  363. package/src/effect/cross-spawn-spawner.ts +514 -0
  364. package/src/effect/index.ts +5 -0
  365. package/src/effect/instance-ref.ts +11 -0
  366. package/src/effect/instance-registry.ts +12 -0
  367. package/src/effect/instance-state.ts +81 -0
  368. package/src/effect/logger.ts +73 -0
  369. package/src/effect/memo-map.ts +3 -0
  370. package/src/effect/observability.ts +107 -0
  371. package/src/effect/run-service.ts +52 -0
  372. package/src/effect/runner.ts +210 -0
  373. package/src/effect/runtime.ts +19 -0
  374. package/src/env/index.ts +37 -0
  375. package/src/file/ignore.ts +81 -0
  376. package/src/file/index.ts +664 -0
  377. package/src/file/protected.ts +59 -0
  378. package/src/file/ripgrep.ts +485 -0
  379. package/src/file/watcher.ts +163 -0
  380. package/src/flag/flag.ts +172 -0
  381. package/src/format/formatter.ts +403 -0
  382. package/src/format/index.ts +203 -0
  383. package/src/git/index.ts +260 -0
  384. package/src/global/index.ts +54 -0
  385. package/src/history/backfill.ts +162 -0
  386. package/src/history/extract.ts +67 -0
  387. package/src/history/fts-query.ts +15 -0
  388. package/src/history/fts.sql.ts +20 -0
  389. package/src/history/index.ts +10 -0
  390. package/src/history/resolve.ts +65 -0
  391. package/src/history/service.ts +258 -0
  392. package/src/history/writer.ts +112 -0
  393. package/src/id/id.ts +87 -0
  394. package/src/ide/index.ts +73 -0
  395. package/src/inbox/inbox-ref.ts +38 -0
  396. package/src/inbox/inbox.sql.ts +26 -0
  397. package/src/inbox/inbox.ts +223 -0
  398. package/src/inbox/index.ts +3 -0
  399. package/src/inbox/render.ts +40 -0
  400. package/src/index.ts +274 -0
  401. package/src/installation/index.ts +362 -0
  402. package/src/installation/version.ts +8 -0
  403. package/src/lsp/client.ts +249 -0
  404. package/src/lsp/diagnostic.ts +29 -0
  405. package/src/lsp/index.ts +3 -0
  406. package/src/lsp/language.ts +120 -0
  407. package/src/lsp/launch.ts +21 -0
  408. package/src/lsp/lsp.ts +519 -0
  409. package/src/lsp/server.ts +1956 -0
  410. package/src/mcp/auth.ts +144 -0
  411. package/src/mcp/index.ts +944 -0
  412. package/src/mcp/oauth-callback.ts +232 -0
  413. package/src/mcp/oauth-provider.ts +214 -0
  414. package/src/memory/fts-query.ts +37 -0
  415. package/src/memory/fts.sql.ts +19 -0
  416. package/src/memory/index.ts +1 -0
  417. package/src/memory/paths.ts +116 -0
  418. package/src/memory/reconcile.ts +144 -0
  419. package/src/memory/service.ts +144 -0
  420. package/src/metrics/client.ts +40 -0
  421. package/src/metrics/event.ts +43 -0
  422. package/src/metrics/index.ts +5 -0
  423. package/src/metrics/installation.ts +18 -0
  424. package/src/metrics/subscriber.ts +58 -0
  425. package/src/metrics/util.ts +9 -0
  426. package/src/node.ts +6 -0
  427. package/src/npm/config.ts +0 -0
  428. package/src/npm/index.ts +293 -0
  429. package/src/npmcli-config.d.ts +43 -0
  430. package/src/patch/index.ts +680 -0
  431. package/src/permission/arity.ts +163 -0
  432. package/src/permission/evaluate.ts +15 -0
  433. package/src/permission/index.ts +378 -0
  434. package/src/permission/schema.ts +17 -0
  435. package/src/plugin/checkpoint-splitover.ts +60 -0
  436. package/src/plugin/cloudflare.ts +76 -0
  437. package/src/plugin/codex.ts +607 -0
  438. package/src/plugin/github-copilot/copilot.ts +368 -0
  439. package/src/plugin/github-copilot/models.ts +153 -0
  440. package/src/plugin/glitch.ts +243 -0
  441. package/src/plugin/index.ts +581 -0
  442. package/src/plugin/install.ts +439 -0
  443. package/src/plugin/loader.ts +216 -0
  444. package/src/plugin/matcher.ts +33 -0
  445. package/src/plugin/meta.ts +188 -0
  446. package/src/plugin/mimo.ts +243 -0
  447. package/src/plugin/shared.ts +323 -0
  448. package/src/plugin/subagent-progress-checker.ts +147 -0
  449. package/src/project/bootstrap.ts +59 -0
  450. package/src/project/index.ts +2 -0
  451. package/src/project/instance.ts +190 -0
  452. package/src/project/project-id.ts +48 -0
  453. package/src/project/project.sql.ts +16 -0
  454. package/src/project/project.ts +522 -0
  455. package/src/project/schema.ts +15 -0
  456. package/src/project/vcs.ts +227 -0
  457. package/src/project/workspace-trust.ts +67 -0
  458. package/src/provider/auth.ts +234 -0
  459. package/src/provider/error.ts +216 -0
  460. package/src/provider/index.ts +5 -0
  461. package/src/provider/models.ts +180 -0
  462. package/src/provider/provider.ts +1788 -0
  463. package/src/provider/schema.ts +36 -0
  464. package/src/provider/sdk/copilot/README.md +5 -0
  465. package/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +170 -0
  466. package/src/provider/sdk/copilot/chat/get-response-metadata.ts +15 -0
  467. package/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
  468. package/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +64 -0
  469. package/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +815 -0
  470. package/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +28 -0
  471. package/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +44 -0
  472. package/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +83 -0
  473. package/src/provider/sdk/copilot/copilot-provider.ts +100 -0
  474. package/src/provider/sdk/copilot/index.ts +2 -0
  475. package/src/provider/sdk/copilot/openai-compatible-error.ts +27 -0
  476. package/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +335 -0
  477. package/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +22 -0
  478. package/src/provider/sdk/copilot/responses/openai-config.ts +18 -0
  479. package/src/provider/sdk/copilot/responses/openai-error.ts +22 -0
  480. package/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +214 -0
  481. package/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +1770 -0
  482. package/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +173 -0
  483. package/src/provider/sdk/copilot/responses/openai-responses-settings.ts +1 -0
  484. package/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +87 -0
  485. package/src/provider/sdk/copilot/responses/tool/file-search.ts +127 -0
  486. package/src/provider/sdk/copilot/responses/tool/image-generation.ts +114 -0
  487. package/src/provider/sdk/copilot/responses/tool/local-shell.ts +64 -0
  488. package/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +103 -0
  489. package/src/provider/sdk/copilot/responses/tool/web-search.ts +102 -0
  490. package/src/provider/transform.ts +1322 -0
  491. package/src/pty/index.ts +364 -0
  492. package/src/pty/pty.bun.ts +26 -0
  493. package/src/pty/pty.node.ts +27 -0
  494. package/src/pty/pty.ts +25 -0
  495. package/src/pty/schema.ts +17 -0
  496. package/src/question/index.ts +252 -0
  497. package/src/question/schema.ts +17 -0
  498. package/src/server/adapter.bun.ts +40 -0
  499. package/src/server/adapter.node.ts +66 -0
  500. package/src/server/adapter.ts +21 -0
  501. package/src/server/auth.ts +16 -0
  502. package/src/server/error.ts +53 -0
  503. package/src/server/event.ts +7 -0
  504. package/src/server/fence.ts +81 -0
  505. package/src/server/mdns.ts +60 -0
  506. package/src/server/middleware.ts +96 -0
  507. package/src/server/projectors.ts +28 -0
  508. package/src/server/proxy.ts +171 -0
  509. package/src/server/pty-ticket.ts +42 -0
  510. package/src/server/routes/control/index.ts +160 -0
  511. package/src/server/routes/control/workspace.ts +203 -0
  512. package/src/server/routes/global.ts +367 -0
  513. package/src/server/routes/instance/bash-interactive.ts +82 -0
  514. package/src/server/routes/instance/config.ts +89 -0
  515. package/src/server/routes/instance/event.ts +108 -0
  516. package/src/server/routes/instance/experimental.ts +408 -0
  517. package/src/server/routes/instance/file.ts +190 -0
  518. package/src/server/routes/instance/httpapi/config.ts +51 -0
  519. package/src/server/routes/instance/httpapi/permission.ts +72 -0
  520. package/src/server/routes/instance/httpapi/project.ts +62 -0
  521. package/src/server/routes/instance/httpapi/provider.ts +142 -0
  522. package/src/server/routes/instance/httpapi/question.ts +121 -0
  523. package/src/server/routes/instance/httpapi/server.ts +136 -0
  524. package/src/server/routes/instance/index.ts +301 -0
  525. package/src/server/routes/instance/mcp.ts +260 -0
  526. package/src/server/routes/instance/middleware.ts +35 -0
  527. package/src/server/routes/instance/permission.ts +73 -0
  528. package/src/server/routes/instance/project.ts +122 -0
  529. package/src/server/routes/instance/provider.ts +158 -0
  530. package/src/server/routes/instance/pty.ts +302 -0
  531. package/src/server/routes/instance/question.ts +162 -0
  532. package/src/server/routes/instance/session.ts +1296 -0
  533. package/src/server/routes/instance/sync.ts +143 -0
  534. package/src/server/routes/instance/trace.ts +59 -0
  535. package/src/server/routes/instance/tui.ts +384 -0
  536. package/src/server/routes/instance/workflows.ts +72 -0
  537. package/src/server/routes/ui.ts +37 -0
  538. package/src/server/server.ts +136 -0
  539. package/src/server/workspace.ts +122 -0
  540. package/src/session/auto-dream.ts +123 -0
  541. package/src/session/boundary.ts +77 -0
  542. package/src/session/budgeted-read.ts +118 -0
  543. package/src/session/checkpoint-align.ts +29 -0
  544. package/src/session/checkpoint-context.ts +36 -0
  545. package/src/session/checkpoint-paths.ts +86 -0
  546. package/src/session/checkpoint-progress-reconcile.ts +111 -0
  547. package/src/session/checkpoint-retry.ts +192 -0
  548. package/src/session/checkpoint-templates.ts +114 -0
  549. package/src/session/checkpoint-validator.ts +259 -0
  550. package/src/session/checkpoint.ts +1478 -0
  551. package/src/session/classify.ts +92 -0
  552. package/src/session/claude-import.ts +381 -0
  553. package/src/session/codex-import.ts +416 -0
  554. package/src/session/compaction.ts +543 -0
  555. package/src/session/external-import.sql.ts +18 -0
  556. package/src/session/external-import.ts +136 -0
  557. package/src/session/goal.ts +232 -0
  558. package/src/session/index.ts +1 -0
  559. package/src/session/instruction.ts +276 -0
  560. package/src/session/last-message-info.ts +32 -0
  561. package/src/session/llm-request-prefix.ts +82 -0
  562. package/src/session/llm.ts +725 -0
  563. package/src/session/max-mode.ts +397 -0
  564. package/src/session/message-v2.ts +1136 -0
  565. package/src/session/message.ts +191 -0
  566. package/src/session/opencode-import.ts +281 -0
  567. package/src/session/overflow.ts +53 -0
  568. package/src/session/prefix-capture-ref.ts +48 -0
  569. package/src/session/processor.ts +968 -0
  570. package/src/session/projectors.ts +137 -0
  571. package/src/session/prompt/anthropic.txt +154 -0
  572. package/src/session/prompt/beast.txt +155 -0
  573. package/src/session/prompt/build-switch.txt +5 -0
  574. package/src/session/prompt/codex.txt +79 -0
  575. package/src/session/prompt/compose.txt +115 -0
  576. package/src/session/prompt/copilot-gpt-5.txt +143 -0
  577. package/src/session/prompt/default.txt +151 -0
  578. package/src/session/prompt/gemini.txt +155 -0
  579. package/src/session/prompt/gpt.txt +107 -0
  580. package/src/session/prompt/kimi.txt +95 -0
  581. package/src/session/prompt/max-steps.txt +16 -0
  582. package/src/session/prompt/text-loop-recovery.ts +40 -0
  583. package/src/session/prompt/trinity.txt +97 -0
  584. package/src/session/prompt.ts +3476 -0
  585. package/src/session/prune.ts +481 -0
  586. package/src/session/retry.ts +166 -0
  587. package/src/session/revert.ts +161 -0
  588. package/src/session/run-state.ts +135 -0
  589. package/src/session/schema.ts +36 -0
  590. package/src/session/session.sql.ts +110 -0
  591. package/src/session/session.ts +908 -0
  592. package/src/session/status.ts +89 -0
  593. package/src/session/summary.ts +163 -0
  594. package/src/session/system.ts +86 -0
  595. package/src/session/todo.ts +77 -0
  596. package/src/share/index.ts +2 -0
  597. package/src/share/session.ts +57 -0
  598. package/src/share/share-next.ts +381 -0
  599. package/src/share/share.sql.ts +13 -0
  600. package/src/shell/shell.ts +110 -0
  601. package/src/skill/compose/.bundle/ask/SKILL.md +58 -0
  602. package/src/skill/compose/.bundle/brainstorm/SKILL.md +220 -0
  603. package/src/skill/compose/.bundle/brainstorm/scripts/frame-template.html +214 -0
  604. package/src/skill/compose/.bundle/brainstorm/scripts/helper.js +88 -0
  605. package/src/skill/compose/.bundle/brainstorm/scripts/server.cjs +354 -0
  606. package/src/skill/compose/.bundle/brainstorm/scripts/start-server.sh +148 -0
  607. package/src/skill/compose/.bundle/brainstorm/scripts/stop-server.sh +56 -0
  608. package/src/skill/compose/.bundle/brainstorm/spec-document-reviewer-prompt.md +50 -0
  609. package/src/skill/compose/.bundle/brainstorm/visual-companion.md +287 -0
  610. package/src/skill/compose/.bundle/debug/CREATION-LOG.md +119 -0
  611. package/src/skill/compose/.bundle/debug/SKILL.md +297 -0
  612. package/src/skill/compose/.bundle/debug/condition-based-waiting-example.ts +158 -0
  613. package/src/skill/compose/.bundle/debug/condition-based-waiting.md +115 -0
  614. package/src/skill/compose/.bundle/debug/defense-in-depth.md +122 -0
  615. package/src/skill/compose/.bundle/debug/find-polluter.sh +63 -0
  616. package/src/skill/compose/.bundle/debug/root-cause-tracing.md +169 -0
  617. package/src/skill/compose/.bundle/debug/test-academic.md +14 -0
  618. package/src/skill/compose/.bundle/debug/test-pressure-1.md +58 -0
  619. package/src/skill/compose/.bundle/debug/test-pressure-2.md +68 -0
  620. package/src/skill/compose/.bundle/debug/test-pressure-3.md +69 -0
  621. package/src/skill/compose/.bundle/execute/SKILL.md +71 -0
  622. package/src/skill/compose/.bundle/feedback/SKILL.md +214 -0
  623. package/src/skill/compose/.bundle/merge/SKILL.md +252 -0
  624. package/src/skill/compose/.bundle/new-skill/SKILL.md +656 -0
  625. package/src/skill/compose/.bundle/new-skill/anthropic-best-practices.md +1150 -0
  626. package/src/skill/compose/.bundle/new-skill/examples/CLAUDE_MD_TESTING.md +189 -0
  627. package/src/skill/compose/.bundle/new-skill/graphviz-conventions.dot +172 -0
  628. package/src/skill/compose/.bundle/new-skill/persuasion-principles.md +187 -0
  629. package/src/skill/compose/.bundle/new-skill/render-graphs.js +168 -0
  630. package/src/skill/compose/.bundle/new-skill/testing-skills-with-subagents.md +384 -0
  631. package/src/skill/compose/.bundle/parallel/SKILL.md +182 -0
  632. package/src/skill/compose/.bundle/plan/SKILL.md +161 -0
  633. package/src/skill/compose/.bundle/plan/plan-document-reviewer-prompt.md +50 -0
  634. package/src/skill/compose/.bundle/report/SKILL.md +180 -0
  635. package/src/skill/compose/.bundle/review/SKILL.md +104 -0
  636. package/src/skill/compose/.bundle/review/code-reviewer.md +171 -0
  637. package/src/skill/compose/.bundle/self-extend/SKILL.md +131 -0
  638. package/src/skill/compose/.bundle/self-extend/reference/hook-api.md +242 -0
  639. package/src/skill/compose/.bundle/self-extend/reference/skill-api.md +114 -0
  640. package/src/skill/compose/.bundle/self-extend/reference/tool-api.md +115 -0
  641. package/src/skill/compose/.bundle/self-extend/reference/tui-api.md +258 -0
  642. package/src/skill/compose/.bundle/subagent/SKILL.md +344 -0
  643. package/src/skill/compose/.bundle/subagent/code-quality-reviewer-prompt.md +24 -0
  644. package/src/skill/compose/.bundle/subagent/implementer-prompt.md +126 -0
  645. package/src/skill/compose/.bundle/subagent/spec-reviewer-prompt.md +112 -0
  646. package/src/skill/compose/.bundle/tdd/SKILL.md +372 -0
  647. package/src/skill/compose/.bundle/tdd/testing-anti-patterns.md +299 -0
  648. package/src/skill/compose/.bundle/verify/SKILL.md +140 -0
  649. package/src/skill/compose/.bundle/worktree/SKILL.md +234 -0
  650. package/src/skill/compose/LICENSE-karpathy +28 -0
  651. package/src/skill/compose/LICENSE-superpowers +26 -0
  652. package/src/skill/compose/bundle.macro.ts +30 -0
  653. package/src/skill/compose/extract.ts +85 -0
  654. package/src/skill/discovery.ts +116 -0
  655. package/src/skill/index.ts +317 -0
  656. package/src/snapshot/index.ts +777 -0
  657. package/src/sql.d.ts +4 -0
  658. package/src/storage/db.bun.ts +8 -0
  659. package/src/storage/db.node.ts +8 -0
  660. package/src/storage/db.ts +172 -0
  661. package/src/storage/index.ts +26 -0
  662. package/src/storage/json-migration.ts +426 -0
  663. package/src/storage/read-sqlite.bun.ts +11 -0
  664. package/src/storage/read-sqlite.node.ts +13 -0
  665. package/src/storage/read-sqlite.ts +10 -0
  666. package/src/storage/schema.sql.ts +10 -0
  667. package/src/storage/schema.ts +7 -0
  668. package/src/storage/storage.ts +331 -0
  669. package/src/sync/README.md +179 -0
  670. package/src/sync/event.sql.ts +16 -0
  671. package/src/sync/index.ts +278 -0
  672. package/src/sync/schema.ts +14 -0
  673. package/src/task/events.ts +28 -0
  674. package/src/task/gate-state.ts +54 -0
  675. package/src/task/gate.ts +116 -0
  676. package/src/task/index.ts +1 -0
  677. package/src/task/registry.ts +394 -0
  678. package/src/task/schema.ts +43 -0
  679. package/src/task/task.sql.ts +50 -0
  680. package/src/team/events.ts +22 -0
  681. package/src/team/index.ts +113 -0
  682. package/src/team/schema.ts +31 -0
  683. package/src/temporary.ts +33 -0
  684. package/src/tool/actor.shell.txt +72 -0
  685. package/src/tool/actor.ts +808 -0
  686. package/src/tool/actor.txt +103 -0
  687. package/src/tool/apply_patch.ts +308 -0
  688. package/src/tool/apply_patch.txt +33 -0
  689. package/src/tool/bash-interactive.ts +183 -0
  690. package/src/tool/bash.ts +696 -0
  691. package/src/tool/bash.txt +123 -0
  692. package/src/tool/change-directory.ts +91 -0
  693. package/src/tool/codesearch.ts +63 -0
  694. package/src/tool/codesearch.txt +12 -0
  695. package/src/tool/context-compressor.ts +125 -0
  696. package/src/tool/context-compressor.txt +5 -0
  697. package/src/tool/deep-file-analysis.ts +817 -0
  698. package/src/tool/deep-file-analysis.txt +12 -0
  699. package/src/tool/edit.ts +685 -0
  700. package/src/tool/edit.txt +10 -0
  701. package/src/tool/external-directory.ts +132 -0
  702. package/src/tool/glob.ts +100 -0
  703. package/src/tool/glob.txt +6 -0
  704. package/src/tool/grep.ts +145 -0
  705. package/src/tool/grep.txt +8 -0
  706. package/src/tool/history.ts +146 -0
  707. package/src/tool/history.txt +17 -0
  708. package/src/tool/index.ts +4 -0
  709. package/src/tool/invalid.ts +20 -0
  710. package/src/tool/invocation-style.ts +17 -0
  711. package/src/tool/lsp.ts +91 -0
  712. package/src/tool/lsp.txt +19 -0
  713. package/src/tool/mcp-exa.ts +78 -0
  714. package/src/tool/memory-path-guard.ts +162 -0
  715. package/src/tool/memory.ts +81 -0
  716. package/src/tool/memory.txt +69 -0
  717. package/src/tool/model-router.ts +86 -0
  718. package/src/tool/model-router.txt +6 -0
  719. package/src/tool/multiedit.ts +61 -0
  720. package/src/tool/multiedit.txt +41 -0
  721. package/src/tool/pattern-learner.ts +179 -0
  722. package/src/tool/pattern-learner.txt +4 -0
  723. package/src/tool/plan-enter.txt +14 -0
  724. package/src/tool/plan-exit.txt +13 -0
  725. package/src/tool/plan.ts +90 -0
  726. package/src/tool/question.ts +67 -0
  727. package/src/tool/question.txt +10 -0
  728. package/src/tool/read.ts +327 -0
  729. package/src/tool/read.txt +14 -0
  730. package/src/tool/recoverable.ts +35 -0
  731. package/src/tool/registry.ts +451 -0
  732. package/src/tool/schema.ts +17 -0
  733. package/src/tool/self-healing.ts +145 -0
  734. package/src/tool/self-healing.txt +5 -0
  735. package/src/tool/self-supervision.ts +208 -0
  736. package/src/tool/self-supervision.txt +4 -0
  737. package/src/tool/session-cwd.ts +35 -0
  738. package/src/tool/shell-tokenize.ts +346 -0
  739. package/src/tool/shell-wrap.ts +190 -0
  740. package/src/tool/skill.ts +76 -0
  741. package/src/tool/skill.txt +5 -0
  742. package/src/tool/smart-predict.ts +148 -0
  743. package/src/tool/smart-predict.txt +4 -0
  744. package/src/tool/task.shell.txt +57 -0
  745. package/src/tool/task.ts +456 -0
  746. package/src/tool/task.txt +56 -0
  747. package/src/tool/tool.ts +166 -0
  748. package/src/tool/truncate.ts +201 -0
  749. package/src/tool/truncation-dir.ts +4 -0
  750. package/src/tool/webfetch.ts +199 -0
  751. package/src/tool/webfetch.txt +13 -0
  752. package/src/tool/websearch/glitch.ts +118 -0
  753. package/src/tool/websearch/index.ts +104 -0
  754. package/src/tool/websearch/mimo.ts +118 -0
  755. package/src/tool/websearch/websearch.txt +14 -0
  756. package/src/tool/workflow.ts +164 -0
  757. package/src/tool/workflow.txt +25 -0
  758. package/src/tool/write.ts +88 -0
  759. package/src/tool/write.txt +9 -0
  760. package/src/util/abort.ts +35 -0
  761. package/src/util/archive.ts +15 -0
  762. package/src/util/color.ts +17 -0
  763. package/src/util/data-url.ts +9 -0
  764. package/src/util/defer.ts +10 -0
  765. package/src/util/effect-http-client.ts +11 -0
  766. package/src/util/effect-zod.ts +367 -0
  767. package/src/util/error.ts +78 -0
  768. package/src/util/filesystem.ts +243 -0
  769. package/src/util/fn.ts +21 -0
  770. package/src/util/format.ts +20 -0
  771. package/src/util/glitch-process.ts +24 -0
  772. package/src/util/iife.ts +3 -0
  773. package/src/util/index.ts +12 -0
  774. package/src/util/keybind.ts +101 -0
  775. package/src/util/lazy.ts +18 -0
  776. package/src/util/local-context.ts +23 -0
  777. package/src/util/locale.ts +79 -0
  778. package/src/util/lock.ts +96 -0
  779. package/src/util/log.ts +234 -0
  780. package/src/util/media.ts +26 -0
  781. package/src/util/mimo-process.ts +24 -0
  782. package/src/util/network.ts +9 -0
  783. package/src/util/process.ts +174 -0
  784. package/src/util/queue.ts +60 -0
  785. package/src/util/record.ts +3 -0
  786. package/src/util/rpc.ts +64 -0
  787. package/src/util/schema.ts +53 -0
  788. package/src/util/scrap.ts +10 -0
  789. package/src/util/signal.ts +12 -0
  790. package/src/util/timeout.ts +14 -0
  791. package/src/util/token.ts +5 -0
  792. package/src/util/update-schema.ts +13 -0
  793. package/src/util/which.ts +14 -0
  794. package/src/util/wildcard.ts +57 -0
  795. package/src/workflow/builtin/deep-research.js +391 -0
  796. package/src/workflow/builtin/model-router.js +92 -0
  797. package/src/workflow/builtin/self-healing.js +94 -0
  798. package/src/workflow/builtin/swarm-mode.js +140 -0
  799. package/src/workflow/builtin.ts +65 -0
  800. package/src/workflow/events.ts +72 -0
  801. package/src/workflow/meta.ts +335 -0
  802. package/src/workflow/persistence.ts +312 -0
  803. package/src/workflow/resolve.ts +45 -0
  804. package/src/workflow/runtime-ref.ts +18 -0
  805. package/src/workflow/runtime.ts +1234 -0
  806. package/src/workflow/sandbox.ts +286 -0
  807. package/src/workflow/workflow.sql.ts +31 -0
  808. package/src/workflow/workspace.ts +69 -0
  809. package/src/worktree/index.ts +614 -0
  810. package/sst-env.d.ts +10 -0
  811. package/test/AGENTS.md +133 -0
  812. package/test/account/repo.test.ts +352 -0
  813. package/test/account/service.test.ts +456 -0
  814. package/test/acp/agent-interface.test.ts +51 -0
  815. package/test/acp/event-subscription.test.ts +725 -0
  816. package/test/actor/cancel-cascade.test.ts +432 -0
  817. package/test/actor/no-completion-listener.test.ts +41 -0
  818. package/test/actor/poststop-progress-write-permission.repro.test.ts +414 -0
  819. package/test/actor/registry-render.test.ts +113 -0
  820. package/test/actor/registry-status.test.ts +111 -0
  821. package/test/actor/registry.test.ts +619 -0
  822. package/test/actor/return-header.test.ts +40 -0
  823. package/test/actor/spawn-lifecycle.test.ts +346 -0
  824. package/test/actor/spawn-no-deadlock.test.ts +340 -0
  825. package/test/actor/spawn-notification.test.ts +393 -0
  826. package/test/actor/spawn-task-autostart.test.ts +530 -0
  827. package/test/actor/spawn.test.ts +1072 -0
  828. package/test/actor/status-event-payload.test.ts +132 -0
  829. package/test/actor/terminology.test.ts +39 -0
  830. package/test/actor/turn.test.ts +125 -0
  831. package/test/actor/waiter.test.ts +246 -0
  832. package/test/agent/agent.test.ts +861 -0
  833. package/test/agent/allowlist.test.ts +45 -0
  834. package/test/auth/auth.test.ts +86 -0
  835. package/test/bus/bus-effect.test.ts +162 -0
  836. package/test/bus/bus-integration.test.ts +87 -0
  837. package/test/bus/bus.test.ts +219 -0
  838. package/test/cli/account.test.ts +26 -0
  839. package/test/cli/cmd/tui/prompt-part.test.ts +47 -0
  840. package/test/cli/error.test.ts +18 -0
  841. package/test/cli/github-action.test.ts +198 -0
  842. package/test/cli/github-remote.test.ts +80 -0
  843. package/test/cli/import.test.ts +54 -0
  844. package/test/cli/plugin-auth-picker.test.ts +120 -0
  845. package/test/cli/run-completion.test.ts +131 -0
  846. package/test/cli/tui/keybind-plugin.test.ts +90 -0
  847. package/test/cli/tui/plugin-add.test.ts +111 -0
  848. package/test/cli/tui/plugin-install.test.ts +87 -0
  849. package/test/cli/tui/plugin-lifecycle.test.ts +224 -0
  850. package/test/cli/tui/plugin-loader-entrypoint.test.ts +484 -0
  851. package/test/cli/tui/plugin-loader-pure.test.ts +71 -0
  852. package/test/cli/tui/plugin-loader.test.ts +816 -0
  853. package/test/cli/tui/plugin-toggle.test.ts +157 -0
  854. package/test/cli/tui/revert-diff.test.ts +35 -0
  855. package/test/cli/tui/route-agent-id.test.ts +26 -0
  856. package/test/cli/tui/sidebar-tps.test.ts +63 -0
  857. package/test/cli/tui/slot-replace.test.tsx +47 -0
  858. package/test/cli/tui/sync-bucket.test.ts +29 -0
  859. package/test/cli/tui/theme-store.test.ts +51 -0
  860. package/test/cli/tui/thread.test.ts +122 -0
  861. package/test/cli/tui/transcript.test.ts +426 -0
  862. package/test/cli/tui/use-event.test.tsx +175 -0
  863. package/test/cli/tui/voice.test.ts +443 -0
  864. package/test/command/deep-research-command.test.ts +16 -0
  865. package/test/config/agent-color.test.ts +77 -0
  866. package/test/config/checkpoint-fork.test.ts +21 -0
  867. package/test/config/config.test.ts +2577 -0
  868. package/test/config/fixtures/empty-frontmatter.md +4 -0
  869. package/test/config/fixtures/frontmatter.md +28 -0
  870. package/test/config/fixtures/markdown-header.md +11 -0
  871. package/test/config/fixtures/no-frontmatter.md +1 -0
  872. package/test/config/fixtures/weird-model-id.md +13 -0
  873. package/test/config/lsp.test.ts +87 -0
  874. package/test/config/markdown.test.ts +228 -0
  875. package/test/config/plugin.test.ts +0 -0
  876. package/test/config/tui.test.ts +627 -0
  877. package/test/control-plane/adaptors.test.ts +71 -0
  878. package/test/control-plane/sse.test.ts +56 -0
  879. package/test/effect/app-runtime-logger.test.ts +92 -0
  880. package/test/effect/cross-spawn-spawner.test.ts +411 -0
  881. package/test/effect/instance-state.test.ts +482 -0
  882. package/test/effect/observability.test.ts +46 -0
  883. package/test/effect/run-service.test.ts +46 -0
  884. package/test/effect/runner-warn-log.test.ts +111 -0
  885. package/test/effect/runner.test.ts +494 -0
  886. package/test/fake/provider.ts +90 -0
  887. package/test/file/fsmonitor.test.ts +68 -0
  888. package/test/file/ignore.test.ts +10 -0
  889. package/test/file/index.test.ts +956 -0
  890. package/test/file/path-traversal.test.ts +204 -0
  891. package/test/file/ripgrep.test.ts +214 -0
  892. package/test/file/watcher.test.ts +249 -0
  893. package/test/filesystem/filesystem.test.ts +319 -0
  894. package/test/fixture/db.ts +11 -0
  895. package/test/fixture/fixture.test.ts +58 -0
  896. package/test/fixture/fixture.ts +190 -0
  897. package/test/fixture/flock-worker.ts +72 -0
  898. package/test/fixture/lsp/fake-lsp-server.js +75 -0
  899. package/test/fixture/plug-worker.ts +93 -0
  900. package/test/fixture/plugin-meta-worker.ts +19 -0
  901. package/test/fixture/skills/agents-sdk/SKILL.md +152 -0
  902. package/test/fixture/skills/agents-sdk/references/callable.md +92 -0
  903. package/test/fixture/skills/cloudflare/SKILL.md +211 -0
  904. package/test/fixture/skills/index.json +6 -0
  905. package/test/fixture/tui-plugin.ts +328 -0
  906. package/test/fixture/tui-runtime.ts +31 -0
  907. package/test/format/format.test.ts +244 -0
  908. package/test/git/git.test.ts +128 -0
  909. package/test/global/fixture/global-paths-worker.ts +17 -0
  910. package/test/global/glitchcode-home.test.ts +143 -0
  911. package/test/global/mimocode-home.test.ts +143 -0
  912. package/test/history/backfill.test.ts +149 -0
  913. package/test/history/extract.test.ts +106 -0
  914. package/test/history/fts-query.test.ts +30 -0
  915. package/test/history/resolve.test.ts +130 -0
  916. package/test/history/service.test.ts +210 -0
  917. package/test/history/writer.test.ts +163 -0
  918. package/test/ide/ide.test.ts +82 -0
  919. package/test/inbox/drain-in-loop.test.ts +230 -0
  920. package/test/inbox/fork-agent-compat.test.ts +387 -0
  921. package/test/inbox/gc-on-init.test.ts +167 -0
  922. package/test/inbox/send-no-block.test.ts +120 -0
  923. package/test/inbox/sender-cancel-independence.test.ts +160 -0
  924. package/test/inbox/wake-matrix.test.ts +141 -0
  925. package/test/installation/installation.test.ts +255 -0
  926. package/test/keybind.test.ts +421 -0
  927. package/test/lib/effect.ts +53 -0
  928. package/test/lib/filesystem.ts +10 -0
  929. package/test/lib/llm-server.ts +770 -0
  930. package/test/lib/mock-llm.ts +159 -0
  931. package/test/lib/scripted-llm-server.ts +245 -0
  932. package/test/lsp/client.test.ts +98 -0
  933. package/test/lsp/index.test.ts +109 -0
  934. package/test/lsp/launch.test.ts +22 -0
  935. package/test/lsp/lifecycle.test.ts +184 -0
  936. package/test/mcp/headers.test.ts +178 -0
  937. package/test/mcp/lifecycle.test.ts +824 -0
  938. package/test/mcp/oauth-auto-connect.test.ts +281 -0
  939. package/test/mcp/oauth-browser.test.ts +268 -0
  940. package/test/mcp/oauth-callback.test.ts +34 -0
  941. package/test/memory/abort-leak-webfetch.ts +49 -0
  942. package/test/memory/abort-leak.test.ts +127 -0
  943. package/test/memory/cc-frontmatter.test.ts +85 -0
  944. package/test/memory/cc-paths.test.ts +60 -0
  945. package/test/memory/cc-reconcile.test.ts +239 -0
  946. package/test/memory/cc-search.test.ts +151 -0
  947. package/test/memory/fts-query.test.ts +48 -0
  948. package/test/memory/fts-rowid-stability.test.ts +271 -0
  949. package/test/memory/paths.test.ts +210 -0
  950. package/test/memory/reconcile.test.ts +115 -0
  951. package/test/memory/service.test.ts +169 -0
  952. package/test/npm.test.ts +18 -0
  953. package/test/patch/patch.test.ts +348 -0
  954. package/test/permission/abort.test.ts +116 -0
  955. package/test/permission/arity.test.ts +33 -0
  956. package/test/permission/disabled.test.ts +51 -0
  957. package/test/permission/next.test.ts +1080 -0
  958. package/test/permission/non-interactive.test.ts +55 -0
  959. package/test/permission-task.test.ts +326 -0
  960. package/test/plugin/actor-hooks.test.ts +1471 -0
  961. package/test/plugin/auth-override.test.ts +79 -0
  962. package/test/plugin/checkpoint-splitover.test.ts +434 -0
  963. package/test/plugin/cloudflare.test.ts +68 -0
  964. package/test/plugin/codex.test.ts +123 -0
  965. package/test/plugin/github-copilot-models.test.ts +163 -0
  966. package/test/plugin/glitch.test.ts +257 -0
  967. package/test/plugin/install-concurrency.test.ts +140 -0
  968. package/test/plugin/install.test.ts +570 -0
  969. package/test/plugin/loader-shared.test.ts +1169 -0
  970. package/test/plugin/matcher.test.ts +97 -0
  971. package/test/plugin/meta.test.ts +137 -0
  972. package/test/plugin/mimo.test.ts +257 -0
  973. package/test/plugin/shared.test.ts +88 -0
  974. package/test/plugin/subagent-progress-checker.test.ts +227 -0
  975. package/test/plugin/trigger.test.ts +116 -0
  976. package/test/plugin/workspace-adaptor.test.ts +109 -0
  977. package/test/preload.ts +102 -0
  978. package/test/project/migrate-global.test.ts +150 -0
  979. package/test/project/project-id.test.ts +64 -0
  980. package/test/project/project.test.ts +502 -0
  981. package/test/project/vcs.test.ts +286 -0
  982. package/test/project/worktree-remove.test.ts +126 -0
  983. package/test/project/worktree.test.ts +214 -0
  984. package/test/provider/amazon-bedrock.test.ts +462 -0
  985. package/test/provider/copilot/convert-to-copilot-messages.test.ts +523 -0
  986. package/test/provider/copilot/copilot-chat-model.test.ts +592 -0
  987. package/test/provider/error.test.ts +160 -0
  988. package/test/provider/gitlab-duo.test.ts +413 -0
  989. package/test/provider/model-groups.test.ts +389 -0
  990. package/test/provider/provider-chunk-timeout.test.ts +23 -0
  991. package/test/provider/provider.test.ts +2651 -0
  992. package/test/provider/transform.test.ts +3379 -0
  993. package/test/pty/pty-output-isolation.test.ts +146 -0
  994. package/test/pty/pty-session.test.ts +102 -0
  995. package/test/pty/pty-shell.test.ts +69 -0
  996. package/test/question/question.test.ts +464 -0
  997. package/test/server/global-session-list.test.ts +105 -0
  998. package/test/server/project-init-git.test.ts +122 -0
  999. package/test/server/session-actions.test.ts +49 -0
  1000. package/test/server/session-list.test.ts +110 -0
  1001. package/test/server/session-messages.test.ts +220 -0
  1002. package/test/server/session-prompt-busy.test.ts +146 -0
  1003. package/test/server/session-select.test.ts +100 -0
  1004. package/test/server/session-task-route.test.ts +165 -0
  1005. package/test/server/summarize-route-main-slice.test.ts +99 -0
  1006. package/test/server/trace-attributes.test.ts +76 -0
  1007. package/test/server/workflows-route.test.ts +279 -0
  1008. package/test/session/bootstrap-skip-system.test.ts +121 -0
  1009. package/test/session/boundary.test.ts +33 -0
  1010. package/test/session/budgeted-read.test.ts +74 -0
  1011. package/test/session/checkpoint-align.test.ts +58 -0
  1012. package/test/session/checkpoint-boundary.test.ts +186 -0
  1013. package/test/session/checkpoint-child-session.test.ts +508 -0
  1014. package/test/session/checkpoint-context.test.ts +141 -0
  1015. package/test/session/checkpoint-drain.test.ts +188 -0
  1016. package/test/session/checkpoint-extract-titles.test.ts +58 -0
  1017. package/test/session/checkpoint-fork-mode.test.ts +576 -0
  1018. package/test/session/checkpoint-main-slice.test.ts +259 -0
  1019. package/test/session/checkpoint-paths.test.ts +78 -0
  1020. package/test/session/checkpoint-permission.test.ts +136 -0
  1021. package/test/session/checkpoint-progress-reconcile.test.ts +219 -0
  1022. package/test/session/checkpoint-rebuild-unify.test.ts +143 -0
  1023. package/test/session/checkpoint-rebuild-v3.test.ts +248 -0
  1024. package/test/session/checkpoint-render-verify.test.ts +512 -0
  1025. package/test/session/checkpoint-retry.test.ts +150 -0
  1026. package/test/session/checkpoint-splitover-integration.test.ts +533 -0
  1027. package/test/session/checkpoint-templates.test.ts +51 -0
  1028. package/test/session/checkpoint-thresholds.test.ts +120 -0
  1029. package/test/session/checkpoint-validator.test.ts +189 -0
  1030. package/test/session/classify-integration.test.ts +476 -0
  1031. package/test/session/classify.test.ts +335 -0
  1032. package/test/session/codex-import.test.ts +331 -0
  1033. package/test/session/compaction-agent-scope.test.ts +209 -0
  1034. package/test/session/context-inheritance.test.ts +46 -0
  1035. package/test/session/external-import.test.ts +17 -0
  1036. package/test/session/fork-prefix-invariant.test.ts +116 -0
  1037. package/test/session/goal.test.ts +106 -0
  1038. package/test/session/instruction.test.ts +387 -0
  1039. package/test/session/invalid-output-continuation.test.ts +150 -0
  1040. package/test/session/last-message-info.test.ts +47 -0
  1041. package/test/session/length-tool-safety.test.ts +121 -0
  1042. package/test/session/llm-request-prefix.test.ts +197 -0
  1043. package/test/session/llm-retry.test.ts +59 -0
  1044. package/test/session/llm-system-prompt.test.ts +479 -0
  1045. package/test/session/llm.test.ts +1266 -0
  1046. package/test/session/main-lifecycle.test.ts +51 -0
  1047. package/test/session/main-runloop-history-invariant.test.ts +182 -0
  1048. package/test/session/max-mode-econnreset.test.ts +229 -0
  1049. package/test/session/max-mode.test.ts +54 -0
  1050. package/test/session/message-v2-filter.test.ts +197 -0
  1051. package/test/session/message-v2.test.ts +1119 -0
  1052. package/test/session/messages-default-main.test.ts +105 -0
  1053. package/test/session/messages-pagination.test.ts +888 -0
  1054. package/test/session/overflow.test.ts +576 -0
  1055. package/test/session/processor-effect.test.ts +853 -0
  1056. package/test/session/prompt-effect.test.ts +1614 -0
  1057. package/test/session/prompt-rebuild-loop.test.ts +108 -0
  1058. package/test/session/prompt-rebuild-reset.test.ts +67 -0
  1059. package/test/session/prompt-sweep.test.ts +145 -0
  1060. package/test/session/prompt-task-gate.test.ts +127 -0
  1061. package/test/session/prompt.test.ts +703 -0
  1062. package/test/session/prune-main-slice.test.ts +272 -0
  1063. package/test/session/prune-skip-system.test.ts +346 -0
  1064. package/test/session/prune.test.ts +419 -0
  1065. package/test/session/rebuild-microcompact.test.ts +318 -0
  1066. package/test/session/recall-reminder.test.ts +37 -0
  1067. package/test/session/retry.test.ts +410 -0
  1068. package/test/session/revert-compact.test.ts +639 -0
  1069. package/test/session/run-state-tuple-key.test.ts +152 -0
  1070. package/test/session/session-create-registers-main.test.ts +70 -0
  1071. package/test/session/session.test.ts +181 -0
  1072. package/test/session/snapshot-tool-race.test.ts +301 -0
  1073. package/test/session/structured-output-integration.test.ts +264 -0
  1074. package/test/session/structured-output-retry.test.ts +127 -0
  1075. package/test/session/structured-output.test.ts +397 -0
  1076. package/test/session/summary-main-slice.test.ts +170 -0
  1077. package/test/session/system.test.ts +72 -0
  1078. package/test/session/text-loop-detection.test.ts +185 -0
  1079. package/test/session/text-loop-integration.test.ts +448 -0
  1080. package/test/share/share-next.test.ts +332 -0
  1081. package/test/shell/shell.test.ts +73 -0
  1082. package/test/skill/compose-review.test.ts +141 -0
  1083. package/test/skill/discovery.test.ts +116 -0
  1084. package/test/skill/skill.test.ts +465 -0
  1085. package/test/snapshot/snapshot.test.ts +1531 -0
  1086. package/test/storage/db.test.ts +16 -0
  1087. package/test/storage/json-migration.test.ts +831 -0
  1088. package/test/storage/storage.test.ts +293 -0
  1089. package/test/sync/index.test.ts +237 -0
  1090. package/test/task/gate-state.test.ts +66 -0
  1091. package/test/task/gate.test.ts +167 -0
  1092. package/test/task/registry.test.ts +171 -0
  1093. package/test/task/state-machine.test.ts +292 -0
  1094. package/test/team/migrate-to-inbox.test.ts +124 -0
  1095. package/test/team/team.test.ts +75 -0
  1096. package/test/tool/__snapshots__/tool.test.ts.snap +9 -0
  1097. package/test/tool/actor-cancel.test.ts +206 -0
  1098. package/test/tool/actor-recover.test.ts +50 -0
  1099. package/test/tool/actor-send.test.ts +200 -0
  1100. package/test/tool/actor-status.test.ts +296 -0
  1101. package/test/tool/actor-wait.test.ts +193 -0
  1102. package/test/tool/actor.shell.test.ts +250 -0
  1103. package/test/tool/actor.test.ts +748 -0
  1104. package/test/tool/apply_patch.test.ts +626 -0
  1105. package/test/tool/bash.test.ts +1195 -0
  1106. package/test/tool/describe-workflow.test.ts +12 -0
  1107. package/test/tool/edit.test.ts +691 -0
  1108. package/test/tool/external-directory.test.ts +207 -0
  1109. package/test/tool/fixtures/large-image.png +0 -0
  1110. package/test/tool/fixtures/models-api.json +65179 -0
  1111. package/test/tool/glob.test.ts +81 -0
  1112. package/test/tool/grep.test.ts +114 -0
  1113. package/test/tool/history.test.ts +144 -0
  1114. package/test/tool/invocation-style.test.ts +30 -0
  1115. package/test/tool/memory-edit-ask-skip.test.ts +62 -0
  1116. package/test/tool/memory-path-guard.test.ts +594 -0
  1117. package/test/tool/memory.test.ts +71 -0
  1118. package/test/tool/question.test.ts +167 -0
  1119. package/test/tool/read.test.ts +483 -0
  1120. package/test/tool/recoverable.test.ts +36 -0
  1121. package/test/tool/registry-invocation-style.test.ts +121 -0
  1122. package/test/tool/registry.test.ts +164 -0
  1123. package/test/tool/shell-tokenize.test.ts +273 -0
  1124. package/test/tool/shell-wrap-missing-script.test.ts +128 -0
  1125. package/test/tool/shell-wrap.test.ts +257 -0
  1126. package/test/tool/skill.test.ts +99 -0
  1127. package/test/tool/task-recover.test.ts +36 -0
  1128. package/test/tool/task.shell.test.ts +234 -0
  1129. package/test/tool/task.test.ts +296 -0
  1130. package/test/tool/tool-def-shell-shape.test.ts +23 -0
  1131. package/test/tool/tool-define.test.ts +59 -0
  1132. package/test/tool/tool-validation-error.test.ts +25 -0
  1133. package/test/tool/truncation.test.ts +253 -0
  1134. package/test/tool/webfetch.test.ts +103 -0
  1135. package/test/tool/whitelist.test.ts +373 -0
  1136. package/test/tool/write.test.ts +244 -0
  1137. package/test/util/data-url.test.ts +14 -0
  1138. package/test/util/effect-zod.test.ts +869 -0
  1139. package/test/util/error.test.ts +38 -0
  1140. package/test/util/filesystem.test.ts +656 -0
  1141. package/test/util/format.test.ts +59 -0
  1142. package/test/util/glob.test.ts +164 -0
  1143. package/test/util/iife.test.ts +36 -0
  1144. package/test/util/lazy.test.ts +50 -0
  1145. package/test/util/lock.test.ts +72 -0
  1146. package/test/util/log.test.ts +69 -0
  1147. package/test/util/module.test.ts +59 -0
  1148. package/test/util/process.test.ts +128 -0
  1149. package/test/util/queue.test.ts +64 -0
  1150. package/test/util/timeout.test.ts +21 -0
  1151. package/test/util/which.test.ts +100 -0
  1152. package/test/util/wildcard.test.ts +90 -0
  1153. package/test/workflow/builtin.test.ts +22 -0
  1154. package/test/workflow/deep-research-cluster.test.ts +47 -0
  1155. package/test/workflow/lib.ts +243 -0
  1156. package/test/workflow/meta.test.ts +142 -0
  1157. package/test/workflow/model-routing.test.ts +68 -0
  1158. package/test/workflow/persistence.test.ts +229 -0
  1159. package/test/workflow/resolve.test.ts +37 -0
  1160. package/test/workflow/runtime-nested.test.ts +419 -0
  1161. package/test/workflow/runtime-worktree.test.ts +261 -0
  1162. package/test/workflow/runtime.test.ts +1078 -0
  1163. package/test/workflow/sandbox.test.ts +259 -0
  1164. package/test/workflow/tool.test.ts +473 -0
  1165. package/test/workflow/verify-wow.test.ts +144 -0
  1166. package/test/workflow/workspace.test.ts +88 -0
  1167. package/test/workspace/workspace-restore.test.ts +281 -0
  1168. package/test/worktree/index.test.ts +30 -0
  1169. package/tsconfig.json +24 -0
@@ -0,0 +1,171 @@
1
+ # Code Reviewer Prompt Template
2
+
3
+ Use this template when dispatching a code reviewer subagent.
4
+
5
+ **Purpose:** Review completed work against requirements and code quality standards before it cascades into more work.
6
+
7
+ Dispatch a `general` subagent via the `actor` tool, following the syntax in that
8
+ tool's own description. Use a title like "Review code changes" with this prompt:
9
+
10
+ ~~~
11
+ You are a Senior Code Reviewer with expertise in software architecture,
12
+ design patterns, and best practices. Your job is to review completed work
13
+ against its plan or requirements and identify issues before they cascade.
14
+
15
+ ## What Was Implemented
16
+
17
+ {DESCRIPTION}
18
+
19
+ ## Requirements / Plan
20
+
21
+ {PLAN_OR_REQUIREMENTS}
22
+
23
+ ## Git Range to Review
24
+
25
+ **Base:** {BASE_SHA}
26
+ **Head:** {HEAD_SHA}
27
+
28
+ ```bash
29
+ git diff --stat {BASE_SHA}..{HEAD_SHA}
30
+ git diff {BASE_SHA}..{HEAD_SHA}
31
+ ```
32
+
33
+ ## What to Check
34
+
35
+ **Plan alignment:**
36
+ - Does the implementation match the plan / requirements?
37
+ - Are deviations justified improvements, or problematic departures?
38
+ - Is all planned functionality present?
39
+ - If the plan tasks carry `Covers: [Sn]` spec anchors, spot-check that each spec
40
+ section is realized somewhere in the change. Key any gap you find to its `[Sn]`
41
+ anchor so it traces back to the exact spec section.
42
+
43
+ **Code quality:**
44
+ - Clean separation of concerns?
45
+ - Proper error handling?
46
+ - Type safety where applicable?
47
+ - DRY without premature abstraction?
48
+ - Edge cases handled?
49
+
50
+ **Architecture:**
51
+ - Sound design decisions?
52
+ - Reasonable scalability and performance?
53
+ - Security concerns?
54
+ - Integrates cleanly with surrounding code?
55
+
56
+ **Testing:**
57
+ - Tests verify real behavior, not mocks?
58
+ - Edge cases covered?
59
+ - Integration tests where they matter?
60
+ - All tests passing?
61
+
62
+ **Production readiness:**
63
+ - Migration strategy if schema changed?
64
+ - Backward compatibility considered?
65
+ - Documentation complete?
66
+ - No obvious bugs?
67
+
68
+ ## Calibration
69
+
70
+ Categorize issues by actual severity. Not everything is Critical.
71
+ Acknowledge what was done well before listing issues — accurate praise
72
+ helps the implementer trust the rest of the feedback.
73
+
74
+ If you find significant deviations from the plan, flag them specifically
75
+ so the implementer can confirm whether the deviation was intentional.
76
+ If you find issues with the plan itself rather than the implementation,
77
+ say so.
78
+
79
+ ## Output Format
80
+
81
+ ### Strengths
82
+ [What's well done? Be specific.]
83
+
84
+ ### Issues
85
+
86
+ #### Critical (Must Fix)
87
+ [Bugs, security issues, data loss risks, broken functionality]
88
+
89
+ #### Important (Should Fix)
90
+ [Architecture problems, missing features, poor error handling, test gaps]
91
+
92
+ #### Minor (Nice to Have)
93
+ [Code style, optimization opportunities, documentation polish]
94
+
95
+ For each issue:
96
+ - File:line reference
97
+ - What's wrong
98
+ - Why it matters
99
+ - How to fix (if not obvious)
100
+
101
+ ### Recommendations
102
+ [Improvements for code quality, architecture, or process]
103
+
104
+ ### Assessment
105
+
106
+ **Ready to merge?** [Yes | No | With fixes]
107
+
108
+ **Reasoning:** [1-2 sentence technical assessment]
109
+
110
+ ## Critical Rules
111
+
112
+ **DO:**
113
+ - Categorize by actual severity
114
+ - Be specific (file:line, not vague)
115
+ - Explain WHY each issue matters
116
+ - Acknowledge strengths
117
+ - Give a clear verdict
118
+
119
+ **DON'T:**
120
+ - Say "looks good" without checking
121
+ - Mark nitpicks as Critical
122
+ - Give feedback on code you didn't actually read
123
+ - Be vague ("improve error handling")
124
+ - Avoid giving a clear verdict
125
+ ~~~
126
+
127
+ **Placeholders:**
128
+ - `{DESCRIPTION}` — brief summary of what was built
129
+ - `{PLAN_OR_REQUIREMENTS}` — what it should do (plan file path, task text, or requirements)
130
+ - `{BASE_SHA}` — starting commit
131
+ - `{HEAD_SHA}` — ending commit
132
+
133
+ **Reviewer returns:** Strengths, Issues (Critical / Important / Minor), Recommendations, Assessment
134
+
135
+ ## Example Output
136
+
137
+ ```
138
+ ### Strengths
139
+ - Clean database schema with proper migrations (db.ts:15-42)
140
+ - Comprehensive test coverage (18 tests, all edge cases)
141
+ - Good error handling with fallbacks (summarizer.ts:85-92)
142
+
143
+ ### Issues
144
+
145
+ #### Important
146
+ 1. **Missing help text in CLI wrapper**
147
+ - File: index-conversations:1-31
148
+ - Issue: No --help flag, users won't discover --concurrency
149
+ - Fix: Add --help case with usage examples
150
+
151
+ 2. **Date validation missing**
152
+ - File: search.ts:25-27
153
+ - Issue: Invalid dates silently return no results
154
+ - Fix: Validate ISO format, throw error with example
155
+
156
+ #### Minor
157
+ 1. **Progress indicators**
158
+ - File: indexer.ts:130
159
+ - Issue: No "X of Y" counter for long operations
160
+ - Impact: Users don't know how long to wait
161
+
162
+ ### Recommendations
163
+ - Add progress reporting for user experience
164
+ - Consider config file for excluded projects (portability)
165
+
166
+ ### Assessment
167
+
168
+ **Ready to merge: With fixes**
169
+
170
+ **Reasoning:** Core implementation is solid with good architecture and tests. Important issues (help text, date validation) are easily fixed and don't affect core functionality.
171
+ ```
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: self-extend
3
+ description: Use when you want to evolve your own capabilities — create new tools to avoid repeating patterns, add hooks to improve your own behavior, build skills to accumulate domain knowledge, or override built-in tools to adapt to project needs. This is your self-iteration interface.
4
+ ---
5
+
6
+ # Self-Extension
7
+
8
+ ## Overview
9
+
10
+ You can extend your own capabilities by writing files to `.mimocode/`. Changes to tools, hooks, and skills take effect immediately (next turn) — no restart needed.
11
+
12
+ ## Creating Tools
13
+
14
+ Write to `.mimocode/tools/<name>.ts`:
15
+
16
+ ```ts
17
+ import { tool } from "@mimo-ai/plugin"
18
+
19
+ export default tool({
20
+ description: "What this tool does",
21
+ args: {
22
+ param1: tool.schema.string().describe("Parameter description"),
23
+ },
24
+ async execute(args, ctx) {
25
+ // ctx.directory — project root
26
+ // ctx.worktree — git worktree root
27
+ // ctx.abort — AbortSignal
28
+ return `Result: ${args.param1}`
29
+ },
30
+ })
31
+ ```
32
+
33
+ Multiple tools per file: use named exports instead of default.
34
+
35
+ ## Creating Hooks
36
+
37
+ Write to `.mimocode/hooks/<name>.ts` — export a Hooks object:
38
+
39
+ ```ts
40
+ export default {
41
+ "tool.execute.before": async (input, output) => {
42
+ if (input.tool === "bash" && output.args.command?.includes("rm -rf /")) {
43
+ output.cancel = true
44
+ output.cancelReason = "Blocked dangerous command"
45
+ }
46
+ },
47
+ "experimental.chat.system.transform": async (input, output) => {
48
+ output.system.push("Additional instruction here.")
49
+ },
50
+ }
51
+ ```
52
+
53
+ ### Hook Events
54
+
55
+ | Event | Capability |
56
+ |-------|-----------|
57
+ | `tool.execute.before` | Modify args or `cancel=true` to block |
58
+ | `tool.execute.after` | Modify tool output |
59
+ | `tool.definition` | Modify tool description/parameters |
60
+ | `chat.params` | Modify temperature, topP, maxOutputTokens |
61
+ | `experimental.chat.system.transform` | Append to system prompt |
62
+ | `experimental.chat.messages.transform` | Modify message list sent to LLM |
63
+ | `permission.ask` | Auto-allow/deny permission requests |
64
+ | `shell.env` | Inject environment variables |
65
+
66
+ ## Tool Override
67
+
68
+ A custom tool with the same id as a built-in replaces it:
69
+
70
+ ```ts
71
+ // .mimocode/tools/bash.ts — overrides built-in bash
72
+ import { tool } from "@mimo-ai/plugin"
73
+ import { execSync } from "child_process"
74
+
75
+ export default tool({
76
+ description: "Shell with safety checks",
77
+ args: { command: tool.schema.string() },
78
+ async execute(args, ctx) {
79
+ if (args.command.includes("sudo")) return "Error: sudo not allowed"
80
+ return execSync(args.command, { encoding: "utf-8", cwd: ctx.directory })
81
+ },
82
+ })
83
+ ```
84
+
85
+ ## Creating Skills
86
+
87
+ Write to `.mimocode/skills/<name>/SKILL.md`:
88
+
89
+ ```markdown
90
+ ---
91
+ name: my-skill
92
+ description: Use when [conditions]
93
+ ---
94
+ Instructions here...
95
+ ```
96
+
97
+ ## File Locations
98
+
99
+ | Type | Path | Hot-reload |
100
+ |------|------|-----------|
101
+ | Tools | `.mimocode/tools/*.ts` | next turn |
102
+ | Hooks | `.mimocode/hooks/*.ts` | next turn |
103
+ | Skills | `.mimocode/skills/*/SKILL.md` | next turn |
104
+ | TUI | `.mimocode/tui/*.tsx` | restart |
105
+
106
+ ## When to Use What
107
+
108
+ | I want to... | Use |
109
+ |-------------|-----|
110
+ | Wrap a repeated bash/API pattern | Tool |
111
+ | Block or modify a tool's behavior | Hook (`tool.execute.before`) |
112
+ | Inject context into system prompt | Hook (`chat.system.transform`) |
113
+ | Accumulate domain knowledge for future use | Skill |
114
+ | Override how a built-in tool works | Tool (same name as builtin) |
115
+ | Add a custom UI panel or command | TUI plugin |
116
+
117
+ ## Detailed API Reference
118
+
119
+ For full type signatures, all available fields, and more examples:
120
+
121
+ - See @reference/tool-api.md for Tool schema and ToolContext
122
+ - See @reference/hook-api.md for all hook events with input/output types
123
+ - See @reference/skill-api.md for SKILL.md format and frontmatter fields
124
+ - See @reference/tui-api.md for TUI plugin slots, commands, dialogs, and state
125
+
126
+ ## Constraints
127
+
128
+ - Tools/hooks have same permissions as bash — no privilege escalation
129
+ - Cannot modify the permission system
130
+ - Tool output truncated at 50KB / 2000 lines
131
+ - Prefer small, composable extensions over monolithic ones
@@ -0,0 +1,242 @@
1
+ # Hook API Reference
2
+
3
+ ## File Format
4
+
5
+ ```ts
6
+ import type { Hooks } from "@mimo-ai/plugin"
7
+
8
+ const hooks: Hooks = {
9
+ "event.name": async (input, output) => {
10
+ // Mutate `output` to modify behavior
11
+ },
12
+ }
13
+
14
+ export default hooks
15
+ ```
16
+
17
+ Each file exports a single Hooks object. Multiple events can be handled in one file.
18
+
19
+ ## Event Reference
20
+
21
+ ### tool.execute.before
22
+
23
+ Fires before any tool executes. Can modify args or cancel.
24
+
25
+ ```ts
26
+ "tool.execute.before": async (input, output) => {
27
+ // input (read-only):
28
+ // input.tool: string — tool id ("bash", "write", "edit", etc.)
29
+ // input.sessionID: string
30
+ // input.callID: string
31
+
32
+ // output (mutable):
33
+ // output.args: any — tool arguments, mutate to change
34
+ // output.cancel?: boolean — set true to block execution
35
+ // output.cancelReason?: string — shown to LLM as tool result
36
+ }
37
+ ```
38
+
39
+ ### tool.execute.after
40
+
41
+ Fires after tool execution. Can modify the result.
42
+
43
+ ```ts
44
+ "tool.execute.after": async (input, output) => {
45
+ // input (read-only):
46
+ // input.tool: string
47
+ // input.sessionID: string
48
+ // input.callID: string
49
+ // input.args: any — the args that were used
50
+
51
+ // output (mutable):
52
+ // output.title: string
53
+ // output.output: string — the tool's text output
54
+ // output.metadata: any
55
+ }
56
+ ```
57
+
58
+ ### tool.definition
59
+
60
+ Modify tool descriptions/parameters sent to LLM.
61
+
62
+ ```ts
63
+ "tool.definition": async (input, output) => {
64
+ // input.toolID: string
65
+
66
+ // output (mutable):
67
+ // output.description: string — tool description
68
+ // output.parameters: any — JSON Schema for parameters
69
+ }
70
+ ```
71
+
72
+ ### chat.params
73
+
74
+ Modify LLM request parameters.
75
+
76
+ ```ts
77
+ "chat.params": async (input, output) => {
78
+ // input (read-only):
79
+ // input.sessionID: string
80
+ // input.agent: string
81
+ // input.model: Model
82
+ // input.provider: ProviderContext
83
+
84
+ // output (mutable):
85
+ // output.temperature: number
86
+ // output.topP: number
87
+ // output.topK: number
88
+ // output.maxOutputTokens: number | undefined
89
+ // output.options: Record<string, any>
90
+ }
91
+ ```
92
+
93
+ ### chat.headers
94
+
95
+ Add custom HTTP headers to LLM requests.
96
+
97
+ ```ts
98
+ "chat.headers": async (input, output) => {
99
+ // input: same as chat.params
100
+ // output.headers: Record<string, string> — mutate to add headers
101
+ }
102
+ ```
103
+
104
+ ### experimental.chat.system.transform
105
+
106
+ Modify the system prompt sent to LLM.
107
+
108
+ ```ts
109
+ "experimental.chat.system.transform": async (input, output) => {
110
+ // input.sessionID?: string
111
+ // input.model: Model
112
+
113
+ // output.system: string[] — array of system prompt sections
114
+ // Push to append, splice to insert, replace to override
115
+ output.system.push("Always respond concisely.")
116
+ }
117
+ ```
118
+
119
+ ### experimental.chat.messages.transform
120
+
121
+ Modify the message list sent to LLM.
122
+
123
+ ```ts
124
+ "experimental.chat.messages.transform": async (input, output) => {
125
+ // output.messages: Array<{ info: Message, parts: Part[] }>
126
+ // Filter, reorder, or modify messages before they reach the model
127
+ }
128
+ ```
129
+
130
+ ### permission.ask
131
+
132
+ Auto-allow or deny permission requests.
133
+
134
+ > **Note:** Defined in the Hooks interface but not yet wired in the permission system. Writing this hook is safe (no-op until upstream integrates it).
135
+
136
+ ```ts
137
+ "permission.ask": async (input, output) => {
138
+ // input: Permission object (permission name, patterns, metadata)
139
+ // output.status: "ask" | "deny" | "allow"
140
+
141
+ // Example: auto-allow all read operations
142
+ if (input.permission === "read") {
143
+ output.status = "allow"
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### shell.env
149
+
150
+ Inject environment variables into shell execution.
151
+
152
+ ```ts
153
+ "shell.env": async (input, output) => {
154
+ // input.cwd: string
155
+ // input.sessionID?: string
156
+ // output.env: Record<string, string>
157
+
158
+ output.env.NODE_ENV = "development"
159
+ output.env.DEBUG = "true"
160
+ }
161
+ ```
162
+
163
+ ### command.execute.before
164
+
165
+ Inject content before a slash command runs.
166
+
167
+ ```ts
168
+ "command.execute.before": async (input, output) => {
169
+ // input.command: string
170
+ // input.sessionID: string
171
+ // input.arguments: string
172
+ // output.parts: Part[] — prepend parts to the command
173
+ }
174
+ ```
175
+
176
+ ### experimental.session.compacting
177
+
178
+ Customize the compaction prompt.
179
+
180
+ ```ts
181
+ "experimental.session.compacting": async (input, output) => {
182
+ // input.sessionID: string
183
+ // output.context: string[] — additional context for compaction prompt
184
+ // output.prompt?: string — if set, replaces default compaction prompt entirely
185
+ }
186
+ ```
187
+
188
+ ### chat.message
189
+
190
+ Called when a new message is received.
191
+
192
+ ```ts
193
+ "chat.message": async (input, output) => {
194
+ // input.sessionID: string
195
+ // input.agent?: string
196
+ // input.model?: { providerID, modelID }
197
+ // output.message: UserMessage
198
+ // output.parts: Part[]
199
+ }
200
+ ```
201
+
202
+ ## Examples
203
+
204
+ ### Safety guard
205
+ ```ts
206
+ export default {
207
+ "tool.execute.before": async (input, output) => {
208
+ if (input.tool === "bash") {
209
+ const cmd = output.args.command ?? ""
210
+ if (/rm\s+-rf\s+\//.test(cmd)) {
211
+ output.cancel = true
212
+ output.cancelReason = "Blocked: dangerous rm -rf on root"
213
+ }
214
+ }
215
+ },
216
+ }
217
+ ```
218
+
219
+ ### Auto-approve reads
220
+ ```ts
221
+ export default {
222
+ "permission.ask": async (input, output) => {
223
+ if (input.permission === "read" || input.permission === "glob" || input.permission === "grep") {
224
+ output.status = "allow"
225
+ }
226
+ },
227
+ }
228
+ ```
229
+
230
+ ### Inject project context into system prompt
231
+ ```ts
232
+ import { readFileSync } from "fs"
233
+
234
+ export default {
235
+ "experimental.chat.system.transform": async (input, output) => {
236
+ try {
237
+ const ctx = readFileSync(".mimocode/project-context.md", "utf-8")
238
+ output.system.push(ctx)
239
+ } catch {}
240
+ },
241
+ }
242
+ ```
@@ -0,0 +1,114 @@
1
+ # Skill API Reference
2
+
3
+ ## File Structure
4
+
5
+ ```
6
+ .mimocode/skills/<skill-name>/
7
+ ├── SKILL.md # Required — main skill document
8
+ ├── supporting-file.md # Optional — reference material
9
+ └── scripts/ # Optional — executable scripts
10
+ └── helper.sh
11
+ ```
12
+
13
+ ## SKILL.md Format
14
+
15
+ ```markdown
16
+ ---
17
+ name: my-skill-name
18
+ description: Use when [triggering conditions]
19
+ ---
20
+
21
+ # Skill Title
22
+
23
+ Content loaded into conversation when the skill is invoked.
24
+ ```
25
+
26
+ ### Frontmatter Fields
27
+
28
+ | Field | Required | Description |
29
+ |-------|----------|-------------|
30
+ | `name` | yes | Unique identifier (letters, numbers, hyphens only) |
31
+ | `description` | yes | When to use — starts with "Use when..." (max ~500 chars) |
32
+ | `hidden` | no | If `true`, not shown in skill list (agent can still load by name) |
33
+
34
+ ### Description Guidelines
35
+
36
+ - Start with "Use when..." — focus on **triggering conditions**, not what the skill does
37
+ - Don't summarize the workflow (agent may follow the summary instead of reading the full content)
38
+ - Include symptoms, situations, contexts that signal this skill applies
39
+ - Write in third person
40
+
41
+ ```yaml
42
+ # ❌ BAD: summarizes workflow
43
+ description: Creates tools and hooks by writing files to .mimocode directories
44
+
45
+ # ✅ GOOD: triggering conditions only
46
+ description: Use when you want to evolve your own capabilities or notice repeated patterns worth automating
47
+ ```
48
+
49
+ ## Skill Content
50
+
51
+ The body after frontmatter is injected into the conversation when the skill is loaded. It can contain:
52
+
53
+ - Instructions and workflows
54
+ - Code examples (inline)
55
+ - Reference to supporting files via `@filename.md` (loads the file)
56
+ - Flowcharts (DOT format)
57
+ - Tables, lists, any markdown
58
+
59
+ ## Referencing Supporting Files
60
+
61
+ Use `@filename` to reference files in the same skill directory:
62
+
63
+ ```markdown
64
+ See @reference/detailed-api.md for the full API specification.
65
+ ```
66
+
67
+ The file content is loaded on demand when the agent accesses it.
68
+
69
+ ## Examples
70
+
71
+ ### Simple technique skill
72
+ ```markdown
73
+ ---
74
+ name: retry-pattern
75
+ description: Use when implementing retry logic, handling transient failures, or dealing with flaky external services
76
+ ---
77
+
78
+ # Retry Pattern
79
+
80
+ ## Core Pattern
81
+ \```ts
82
+ async function withRetry<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
83
+ for (let i = 0; i < maxRetries; i++) {
84
+ try { return await fn() }
85
+ catch (e) { if (i === maxRetries - 1) throw e; await sleep(2 ** i * 100) }
86
+ }
87
+ throw new Error("unreachable")
88
+ }
89
+ \```
90
+
91
+ ## When NOT to use
92
+ - Deterministic errors (400, 404) — retrying won't help
93
+ - Operations with side effects that can't be repeated safely
94
+ ```
95
+
96
+ ### Reference skill with supporting files
97
+ ```markdown
98
+ ---
99
+ name: project-api
100
+ description: Use when working with this project's REST API endpoints, authentication, or data models
101
+ ---
102
+
103
+ # Project API Reference
104
+
105
+ See @endpoints.md for the full endpoint list.
106
+ See @auth.md for authentication flow.
107
+ See @models.md for data model schemas.
108
+ ```
109
+
110
+ ## Hot-Reload Behavior
111
+
112
+ - New skills appear in the available skills list on the next turn
113
+ - Modified skills are reloaded on the next turn
114
+ - The agent can invoke skills via the skill tool or `/skill-name`