saeeol 1.1.0 → 1.2.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 (1447) hide show
  1. package/AGENTS.md +72 -0
  2. package/BUN_SHELL_MIGRATION_PLAN.md +136 -0
  3. package/Dockerfile +18 -0
  4. package/README.md +51 -0
  5. package/assets/saeeol.ico +0 -0
  6. package/bin/saeeol +179 -36
  7. package/bunfig.toml +7 -0
  8. package/database.db +0 -0
  9. package/drizzle.config.ts +10 -0
  10. package/git +0 -0
  11. package/migration/20260127222353_familiar_lady_ursula/migration.sql +90 -0
  12. package/migration/20260127222353_familiar_lady_ursula/snapshot.json +796 -0
  13. package/migration/20260211171708_add_project_commands/migration.sql +1 -0
  14. package/migration/20260211171708_add_project_commands/snapshot.json +806 -0
  15. package/migration/20260213144116_wakeful_the_professor/migration.sql +11 -0
  16. package/migration/20260213144116_wakeful_the_professor/snapshot.json +897 -0
  17. package/migration/20260225215848_workspace/migration.sql +7 -0
  18. package/migration/20260225215848_workspace/snapshot.json +959 -0
  19. package/migration/20260227213759_add_session_workspace_id/migration.sql +2 -0
  20. package/migration/20260227213759_add_session_workspace_id/snapshot.json +983 -0
  21. package/migration/20260228203230_blue_harpoon/migration.sql +17 -0
  22. package/migration/20260228203230_blue_harpoon/snapshot.json +1102 -0
  23. package/migration/20260303231226_add_workspace_fields/migration.sql +5 -0
  24. package/migration/20260303231226_add_workspace_fields/snapshot.json +1013 -0
  25. package/migration/20260309230000_move_org_to_state/migration.sql +3 -0
  26. package/migration/20260309230000_move_org_to_state/snapshot.json +1156 -0
  27. package/migration/20260312043431_session_message_cursor/migration.sql +4 -0
  28. package/migration/20260312043431_session_message_cursor/snapshot.json +1168 -0
  29. package/migration/20260323234822_events/migration.sql +13 -0
  30. package/migration/20260323234822_events/snapshot.json +1271 -0
  31. package/migration/20260410174513_workspace-name/migration.sql +16 -0
  32. package/migration/20260410174513_workspace-name/snapshot.json +1271 -0
  33. package/migration/20260413175956_chief_energizer/migration.sql +13 -0
  34. package/migration/20260413175956_chief_energizer/snapshot.json +1399 -0
  35. package/migration/20260423070820_add_icon_url_override/migration.sql +2 -0
  36. package/migration/20260423070820_add_icon_url_override/snapshot.json +1409 -0
  37. package/migration/20260428004200_add_session_path/migration.sql +1 -0
  38. package/migration/20260428004200_add_session_path/snapshot.json +1419 -0
  39. package/npm/bin/saeeol +42 -0
  40. package/npm/package.json +39 -0
  41. package/{postinstall.js → npm/postinstall.js} +1 -1
  42. package/package.json +193 -26
  43. package/parsers-config.ts +289 -0
  44. package/script/build.ts +393 -0
  45. package/script/check-migrations.ts +16 -0
  46. package/script/fix-node-pty.ts +34 -0
  47. package/script/generate.ts +23 -0
  48. package/script/postinstall.mjs +189 -0
  49. package/script/publish.ts +200 -0
  50. package/script/run-workspace-server +106 -0
  51. package/script/schema.ts +63 -0
  52. package/script/test-runner.ts +420 -0
  53. package/script/time.ts +6 -0
  54. package/script/trace-imports.ts +153 -0
  55. package/script/upgrade-opentui.ts +64 -0
  56. package/scripts/diff-sdk-types.sh +52 -0
  57. package/specs/effect/facades.md +221 -0
  58. package/specs/effect/http-api.md +401 -0
  59. package/specs/effect/instance-context.md +309 -0
  60. package/specs/effect/loose-ends.md +34 -0
  61. package/specs/effect/migration.md +299 -0
  62. package/specs/effect/routes.md +64 -0
  63. package/specs/effect/schema.md +399 -0
  64. package/specs/effect/server-package.md +668 -0
  65. package/specs/effect/tools.md +90 -0
  66. package/specs/tui-plugins.md +433 -0
  67. package/specs/v2/api.ts +67 -0
  68. package/specs/v2/keymappings.md +10 -0
  69. package/specs/v2/message-shape.md +136 -0
  70. package/src/account/account.sql.ts +39 -0
  71. package/src/account/account.ts +456 -0
  72. package/src/account/repo.ts +166 -0
  73. package/src/account/schema.ts +99 -0
  74. package/src/account/url.ts +8 -0
  75. package/src/acp/README.md +174 -0
  76. package/src/acp/agent-events.ts +157 -0
  77. package/src/acp/agent-message.ts +97 -0
  78. package/src/acp/agent-prompt.ts +149 -0
  79. package/src/acp/agent-session.ts +196 -0
  80. package/src/acp/agent-types.ts +16 -0
  81. package/src/acp/agent-utils.ts +206 -0
  82. package/src/acp/agent.ts +89 -0
  83. package/src/acp/session.ts +116 -0
  84. package/src/acp/types.ts +24 -0
  85. package/src/addons/addon-analytics.ts +14 -0
  86. package/src/addons/addon-core.ts +15 -0
  87. package/src/addons/addon-data.ts +14 -0
  88. package/src/addons/addon-dev.ts +13 -0
  89. package/src/addons/addon-lifecycle.ts +13 -0
  90. package/src/addons/addon-llm.ts +15 -0
  91. package/src/addons/addon-remote.ts +12 -0
  92. package/src/addons/addon-server.ts +14 -0
  93. package/src/addons/addon-tools.ts +13 -0
  94. package/src/addons/addon-web.ts +12 -0
  95. package/src/addons/registry.ts +65 -0
  96. package/src/addons/types.ts +31 -0
  97. package/src/agent/agent.ts +426 -0
  98. package/src/agent/generate.txt +75 -0
  99. package/src/agent/prompt/ask.txt +13 -0
  100. package/src/agent/prompt/compaction.txt +9 -0
  101. package/src/agent/prompt/debug.txt +8 -0
  102. package/src/agent/prompt/explore.txt +18 -0
  103. package/src/agent/prompt/orchestrator.txt +24 -0
  104. package/src/agent/prompt/summary.txt +11 -0
  105. package/src/agent/prompt/title.txt +44 -0
  106. package/src/audio.d.ts +4 -0
  107. package/src/auth/index.ts +109 -0
  108. package/src/bus/bus-event.ts +49 -0
  109. package/src/bus/global.ts +13 -0
  110. package/src/bus/index.ts +188 -0
  111. package/src/cli/bootstrap.ts +18 -0
  112. package/src/cli/cmd/account.ts +258 -0
  113. package/src/cli/cmd/acp.ts +70 -0
  114. package/src/cli/cmd/agent.ts +264 -0
  115. package/src/cli/cmd/cmd.ts +7 -0
  116. package/src/cli/cmd/config.ts +39 -0
  117. package/src/cli/cmd/db.ts +121 -0
  118. package/src/cli/cmd/debug/agent.ts +192 -0
  119. package/src/cli/cmd/debug/config.ts +17 -0
  120. package/src/cli/cmd/debug/file.ts +100 -0
  121. package/src/cli/cmd/debug/index.ts +50 -0
  122. package/src/cli/cmd/debug/lsp.ts +60 -0
  123. package/src/cli/cmd/debug/ripgrep.ts +105 -0
  124. package/src/cli/cmd/debug/scrap.ts +16 -0
  125. package/src/cli/cmd/debug/skill.ts +23 -0
  126. package/src/cli/cmd/debug/snapshot.ts +53 -0
  127. package/src/cli/cmd/debug/startup.ts +11 -0
  128. package/src/cli/cmd/export.ts +302 -0
  129. package/src/cli/cmd/generate.ts +67 -0
  130. package/src/cli/cmd/github-install.ts +242 -0
  131. package/src/cli/cmd/github-run-api.ts +207 -0
  132. package/src/cli/cmd/github-run-auth.ts +104 -0
  133. package/src/cli/cmd/github-run-fetch.ts +232 -0
  134. package/src/cli/cmd/github-run-git.ts +192 -0
  135. package/src/cli/cmd/github-run-prompt.ts +301 -0
  136. package/src/cli/cmd/github-run.ts +300 -0
  137. package/src/cli/cmd/github-types.ts +147 -0
  138. package/src/cli/cmd/github-util.ts +22 -0
  139. package/src/cli/cmd/github.ts +13 -0
  140. package/src/cli/cmd/import.ts +234 -0
  141. package/src/cli/cmd/init.ts +307 -0
  142. package/src/cli/cmd/mcp-add.ts +215 -0
  143. package/src/cli/cmd/mcp-auth.ts +178 -0
  144. package/src/cli/cmd/mcp-debug.ts +198 -0
  145. package/src/cli/cmd/mcp-list.ts +71 -0
  146. package/src/cli/cmd/mcp-logout.ts +68 -0
  147. package/src/cli/cmd/mcp-refresh.ts +47 -0
  148. package/src/cli/cmd/mcp-shared.ts +80 -0
  149. package/src/cli/cmd/mcp.ts +24 -0
  150. package/src/cli/cmd/models.ts +65 -0
  151. package/src/cli/cmd/plug.ts +233 -0
  152. package/src/cli/cmd/pr.ts +155 -0
  153. package/src/cli/cmd/providers-auth.ts +162 -0
  154. package/src/cli/cmd/providers.ts +302 -0
  155. package/src/cli/cmd/remote.ts +31 -0
  156. package/src/cli/cmd/run-display.ts +169 -0
  157. package/src/cli/cmd/run-events.ts +149 -0
  158. package/src/cli/cmd/run-session.ts +143 -0
  159. package/src/cli/cmd/run.ts +135 -0
  160. package/src/cli/cmd/serve.ts +32 -0
  161. package/src/cli/cmd/session.ts +216 -0
  162. package/src/cli/cmd/stats.ts +415 -0
  163. package/src/cli/cmd/tui/app-commands-core.tsx +218 -0
  164. package/src/cli/cmd/tui/app-commands-system.tsx +288 -0
  165. package/src/cli/cmd/tui/app-config.ts +44 -0
  166. package/src/cli/cmd/tui/app-error.tsx +104 -0
  167. package/src/cli/cmd/tui/app-events.ts +179 -0
  168. package/src/cli/cmd/tui/app-setup.ts +174 -0
  169. package/src/cli/cmd/tui/app.tsx +284 -0
  170. package/src/cli/cmd/tui/asset/charge.wav +0 -0
  171. package/src/cli/cmd/tui/asset/pulse-a.wav +0 -0
  172. package/src/cli/cmd/tui/asset/pulse-b.wav +0 -0
  173. package/src/cli/cmd/tui/asset/pulse-c.wav +0 -0
  174. package/src/cli/cmd/tui/attach.ts +127 -0
  175. package/src/cli/cmd/tui/component/bg-pulse.tsx +130 -0
  176. package/src/cli/cmd/tui/component/border.tsx +21 -0
  177. package/src/cli/cmd/tui/component/dialog-agent.tsx +32 -0
  178. package/src/cli/cmd/tui/component/dialog-command.tsx +190 -0
  179. package/src/cli/cmd/tui/component/dialog-console-org.tsx +103 -0
  180. package/src/cli/cmd/tui/component/dialog-go-upsell.tsx +159 -0
  181. package/src/cli/cmd/tui/component/dialog-mcp.tsx +86 -0
  182. package/src/cli/cmd/tui/component/dialog-model.tsx +238 -0
  183. package/src/cli/cmd/tui/component/dialog-provider.tsx +343 -0
  184. package/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +103 -0
  185. package/src/cli/cmd/tui/component/dialog-session-list.tsx +301 -0
  186. package/src/cli/cmd/tui/component/dialog-session-rename.tsx +35 -0
  187. package/src/cli/cmd/tui/component/dialog-skill.tsx +37 -0
  188. package/src/cli/cmd/tui/component/dialog-stash.tsx +87 -0
  189. package/src/cli/cmd/tui/component/dialog-status.tsx +190 -0
  190. package/src/cli/cmd/tui/component/dialog-tag.tsx +44 -0
  191. package/src/cli/cmd/tui/component/dialog-theme-list.tsx +50 -0
  192. package/src/cli/cmd/tui/component/dialog-variant.tsx +39 -0
  193. package/src/cli/cmd/tui/component/dialog-workspace-create.tsx +200 -0
  194. package/src/cli/cmd/tui/component/dialog-workspace-unavailable.tsx +81 -0
  195. package/src/cli/cmd/tui/component/error-component.tsx +92 -0
  196. package/src/cli/cmd/tui/component/logo.tsx +565 -0
  197. package/src/cli/cmd/tui/component/plugin-route-missing.tsx +14 -0
  198. package/src/cli/cmd/tui/component/prompt/PromptMeta.tsx +73 -0
  199. package/src/cli/cmd/tui/component/prompt/PromptStatusBar.tsx +217 -0
  200. package/src/cli/cmd/tui/component/prompt/autocomplete-options.ts +148 -0
  201. package/src/cli/cmd/tui/component/prompt/autocomplete-ref.ts +129 -0
  202. package/src/cli/cmd/tui/component/prompt/autocomplete-types.ts +27 -0
  203. package/src/cli/cmd/tui/component/prompt/autocomplete-utils.ts +69 -0
  204. package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +757 -0
  205. package/src/cli/cmd/tui/component/prompt/cwd.ts +0 -0
  206. package/src/cli/cmd/tui/component/prompt/frecency.tsx +90 -0
  207. package/src/cli/cmd/tui/component/prompt/history.tsx +108 -0
  208. package/src/cli/cmd/tui/component/prompt/index.tsx +216 -0
  209. package/src/cli/cmd/tui/component/prompt/part.ts +16 -0
  210. package/src/cli/cmd/tui/component/prompt/prompt-textarea.tsx +180 -0
  211. package/src/cli/cmd/tui/component/prompt/stash.tsx +101 -0
  212. package/src/cli/cmd/tui/component/prompt/traits.ts +31 -0
  213. package/src/cli/cmd/tui/component/prompt/use-extmark-sync.ts +93 -0
  214. package/src/cli/cmd/tui/component/prompt/use-prompt-commands.tsx +234 -0
  215. package/src/cli/cmd/tui/component/prompt/use-prompt-memos.ts +210 -0
  216. package/src/cli/cmd/tui/component/prompt/use-prompt-store.ts +183 -0
  217. package/src/cli/cmd/tui/component/prompt/use-prompt-submit.tsx +179 -0
  218. package/src/cli/cmd/tui/component/spinner.tsx +24 -0
  219. package/src/cli/cmd/tui/component/startup-loading.tsx +63 -0
  220. package/src/cli/cmd/tui/component/textarea-keybindings.ts +69 -0
  221. package/src/cli/cmd/tui/component/todo-item.tsx +32 -0
  222. package/src/cli/cmd/tui/component/use-connected.tsx +11 -0
  223. package/src/cli/cmd/tui/component/worker/worker-cell.tsx +62 -0
  224. package/src/cli/cmd/tui/component/worker/worker-detail.tsx +73 -0
  225. package/src/cli/cmd/tui/component/worker/worker-grid.tsx +51 -0
  226. package/src/cli/cmd/tui/component/worker/worker-status.tsx +15 -0
  227. package/src/cli/cmd/tui/config/cwd.ts +5 -0
  228. package/src/cli/cmd/tui/config/tui-migrate.ts +161 -0
  229. package/src/cli/cmd/tui/config/tui-schema.ts +38 -0
  230. package/src/cli/cmd/tui/config/tui.ts +225 -0
  231. package/src/cli/cmd/tui/context/args.tsx +15 -0
  232. package/src/cli/cmd/tui/context/directory.ts +15 -0
  233. package/src/cli/cmd/tui/context/editor-zed.ts +281 -0
  234. package/src/cli/cmd/tui/context/editor.ts +425 -0
  235. package/src/cli/cmd/tui/context/event.ts +45 -0
  236. package/src/cli/cmd/tui/context/exit.tsx +67 -0
  237. package/src/cli/cmd/tui/context/helper.tsx +25 -0
  238. package/src/cli/cmd/tui/context/keybind.tsx +105 -0
  239. package/src/cli/cmd/tui/context/kv.tsx +76 -0
  240. package/src/cli/cmd/tui/context/local.tsx +478 -0
  241. package/src/cli/cmd/tui/context/plugin-keybinds.ts +41 -0
  242. package/src/cli/cmd/tui/context/project.tsx +109 -0
  243. package/src/cli/cmd/tui/context/prompt.tsx +18 -0
  244. package/src/cli/cmd/tui/context/route.tsx +67 -0
  245. package/src/cli/cmd/tui/context/sdk.tsx +142 -0
  246. package/src/cli/cmd/tui/context/sync.tsx +713 -0
  247. package/src/cli/cmd/tui/context/theme/aura.json +69 -0
  248. package/src/cli/cmd/tui/context/theme/ayu.json +80 -0
  249. package/src/cli/cmd/tui/context/theme/carbonfox.json +248 -0
  250. package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +230 -0
  251. package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +230 -0
  252. package/src/cli/cmd/tui/context/theme/catppuccin.json +112 -0
  253. package/src/cli/cmd/tui/context/theme/cobalt2.json +225 -0
  254. package/src/cli/cmd/tui/context/theme/colorblind.json +229 -0
  255. package/src/cli/cmd/tui/context/theme/cursor.json +249 -0
  256. package/src/cli/cmd/tui/context/theme/dracula.json +219 -0
  257. package/src/cli/cmd/tui/context/theme/everforest.json +241 -0
  258. package/src/cli/cmd/tui/context/theme/flexoki.json +237 -0
  259. package/src/cli/cmd/tui/context/theme/github.json +233 -0
  260. package/src/cli/cmd/tui/context/theme/gruvbox.json +242 -0
  261. package/src/cli/cmd/tui/context/theme/kanagawa.json +77 -0
  262. package/src/cli/cmd/tui/context/theme/lucent-orng.json +234 -0
  263. package/src/cli/cmd/tui/context/theme/material.json +235 -0
  264. package/src/cli/cmd/tui/context/theme/matrix.json +77 -0
  265. package/src/cli/cmd/tui/context/theme/mercury.json +252 -0
  266. package/src/cli/cmd/tui/context/theme/monokai.json +221 -0
  267. package/src/cli/cmd/tui/context/theme/nightowl.json +221 -0
  268. package/src/cli/cmd/tui/context/theme/nord.json +223 -0
  269. package/src/cli/cmd/tui/context/theme/one-dark.json +84 -0
  270. package/src/cli/cmd/tui/context/theme/orng.json +249 -0
  271. package/src/cli/cmd/tui/context/theme/osaka-jade.json +93 -0
  272. package/src/cli/cmd/tui/context/theme/palenight.json +222 -0
  273. package/src/cli/cmd/tui/context/theme/rosepine.json +234 -0
  274. package/src/cli/cmd/tui/context/theme/saeeol.json +245 -0
  275. package/src/cli/cmd/tui/context/theme/solarized.json +223 -0
  276. package/src/cli/cmd/tui/context/theme/synthwave84.json +226 -0
  277. package/src/cli/cmd/tui/context/theme/theme-resolve.ts +86 -0
  278. package/src/cli/cmd/tui/context/theme/theme-syntax-code.ts +47 -0
  279. package/src/cli/cmd/tui/context/theme/theme-syntax-markup.ts +50 -0
  280. package/src/cli/cmd/tui/context/theme/theme-syntax.ts +36 -0
  281. package/src/cli/cmd/tui/context/theme/theme-system.ts +158 -0
  282. package/src/cli/cmd/tui/context/theme/theme-themes.ts +79 -0
  283. package/src/cli/cmd/tui/context/theme/theme-types.ts +46 -0
  284. package/src/cli/cmd/tui/context/theme/tokyonight.json +243 -0
  285. package/src/cli/cmd/tui/context/theme/vercel.json +245 -0
  286. package/src/cli/cmd/tui/context/theme/vesper.json +218 -0
  287. package/src/cli/cmd/tui/context/theme/zenburn.json +223 -0
  288. package/src/cli/cmd/tui/context/theme.tsx +307 -0
  289. package/src/cli/cmd/tui/context/tui-config.tsx +9 -0
  290. package/src/cli/cmd/tui/event.ts +53 -0
  291. package/src/cli/cmd/tui/feature-plugins/home/footer.tsx +93 -0
  292. package/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +159 -0
  293. package/src/cli/cmd/tui/feature-plugins/home/tips.tsx +55 -0
  294. package/src/cli/cmd/tui/feature-plugins/sidebar/context.tsx +64 -0
  295. package/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +63 -0
  296. package/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +92 -0
  297. package/src/cli/cmd/tui/feature-plugins/sidebar/lsp.tsx +67 -0
  298. package/src/cli/cmd/tui/feature-plugins/sidebar/mcp.tsx +97 -0
  299. package/src/cli/cmd/tui/feature-plugins/sidebar/todo.tsx +49 -0
  300. package/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +270 -0
  301. package/src/cli/cmd/tui/layer.ts +6 -0
  302. package/src/cli/cmd/tui/opentui-augment.d.ts +7 -0
  303. package/src/cli/cmd/tui/plugin/api.tsx +395 -0
  304. package/src/cli/cmd/tui/plugin/internal.ts +39 -0
  305. package/src/cli/cmd/tui/plugin/runtime.install.ts +187 -0
  306. package/src/cli/cmd/tui/plugin/runtime.lifecycle.ts +158 -0
  307. package/src/cli/cmd/tui/plugin/runtime.resolve.ts +213 -0
  308. package/src/cli/cmd/tui/plugin/runtime.scope.ts +88 -0
  309. package/src/cli/cmd/tui/plugin/runtime.theme.ts +131 -0
  310. package/src/cli/cmd/tui/plugin/runtime.ts +129 -0
  311. package/src/cli/cmd/tui/plugin/runtime.types.ts +181 -0
  312. package/src/cli/cmd/tui/plugin/slots.tsx +71 -0
  313. package/src/cli/cmd/tui/routes/home.tsx +90 -0
  314. package/src/cli/cmd/tui/routes/local-models.tsx +151 -0
  315. package/src/cli/cmd/tui/routes/session/context.ts +24 -0
  316. package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +76 -0
  317. package/src/cli/cmd/tui/routes/session/dialog-message.tsx +108 -0
  318. package/src/cli/cmd/tui/routes/session/dialog-pointing.tsx +103 -0
  319. package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +26 -0
  320. package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +47 -0
  321. package/src/cli/cmd/tui/routes/session/footer.tsx +124 -0
  322. package/src/cli/cmd/tui/routes/session/index.tsx +188 -0
  323. package/src/cli/cmd/tui/routes/session/messages/assistant-message.tsx +183 -0
  324. package/src/cli/cmd/tui/routes/session/messages/message-utils.ts +33 -0
  325. package/src/cli/cmd/tui/routes/session/messages/tool-parts.tsx +197 -0
  326. package/src/cli/cmd/tui/routes/session/messages/tool-renderers-2.tsx +251 -0
  327. package/src/cli/cmd/tui/routes/session/messages/tool-renderers.tsx +303 -0
  328. package/src/cli/cmd/tui/routes/session/messages/tool-router.tsx +111 -0
  329. package/src/cli/cmd/tui/routes/session/messages/user-message.tsx +125 -0
  330. package/src/cli/cmd/tui/routes/session/network.tsx +82 -0
  331. package/src/cli/cmd/tui/routes/session/permission.tsx +713 -0
  332. package/src/cli/cmd/tui/routes/session/question.tsx +472 -0
  333. package/src/cli/cmd/tui/routes/session/scroll-manager.ts +13 -0
  334. package/src/cli/cmd/tui/routes/session/session-commands.tsx +324 -0
  335. package/src/cli/cmd/tui/routes/session/session-effects.ts +60 -0
  336. package/src/cli/cmd/tui/routes/session/session-layout.tsx +229 -0
  337. package/src/cli/cmd/tui/routes/session/session-revert-banner.tsx +46 -0
  338. package/src/cli/cmd/tui/routes/session/session-setup.ts +240 -0
  339. package/src/cli/cmd/tui/routes/session/sidebar.tsx +98 -0
  340. package/src/cli/cmd/tui/routes/session/subagent-footer.tsx +131 -0
  341. package/src/cli/cmd/tui/routes/session/suggest.tsx +1 -0
  342. package/src/cli/cmd/tui/routes/session/usage.ts +25 -0
  343. package/src/cli/cmd/tui/thread.ts +379 -0
  344. package/src/cli/cmd/tui/ui/dialog-alert.tsx +61 -0
  345. package/src/cli/cmd/tui/ui/dialog-confirm.tsx +91 -0
  346. package/src/cli/cmd/tui/ui/dialog-export-options.tsx +213 -0
  347. package/src/cli/cmd/tui/ui/dialog-help.tsx +43 -0
  348. package/src/cli/cmd/tui/ui/dialog-prompt.tsx +117 -0
  349. package/src/cli/cmd/tui/ui/dialog-select.tsx +449 -0
  350. package/src/cli/cmd/tui/ui/dialog.tsx +190 -0
  351. package/src/cli/cmd/tui/ui/link.tsx +28 -0
  352. package/src/cli/cmd/tui/ui/spinner.ts +368 -0
  353. package/src/cli/cmd/tui/ui/toast.tsx +111 -0
  354. package/src/cli/cmd/tui/util/clipboard.ts +205 -0
  355. package/src/cli/cmd/tui/util/editor.ts +37 -0
  356. package/src/cli/cmd/tui/util/markdown.ts +211 -0
  357. package/src/cli/cmd/tui/util/model.ts +23 -0
  358. package/src/cli/cmd/tui/util/provider-origin.ts +7 -0
  359. package/src/cli/cmd/tui/util/revert-diff.ts +41 -0
  360. package/src/cli/cmd/tui/util/scroll.ts +23 -0
  361. package/src/cli/cmd/tui/util/selection.ts +25 -0
  362. package/src/cli/cmd/tui/util/signal.ts +41 -0
  363. package/src/cli/cmd/tui/util/sound.ts +156 -0
  364. package/src/cli/cmd/tui/util/transcript.ts +112 -0
  365. package/src/cli/cmd/tui/validate-session.ts +24 -0
  366. package/src/cli/cmd/tui/win32.ts +130 -0
  367. package/src/cli/cmd/tui/worker.ts +107 -0
  368. package/src/cli/cmd/uninstall.ts +350 -0
  369. package/src/cli/cmd/upgrade.ts +75 -0
  370. package/src/cli/cmd/web.ts +92 -0
  371. package/src/cli/effect/prompt.ts +25 -0
  372. package/src/cli/effect-cmd.ts +50 -0
  373. package/src/cli/error.ts +89 -0
  374. package/src/cli/heap.ts +59 -0
  375. package/src/cli/logo.ts +13 -0
  376. package/src/cli/network.ts +62 -0
  377. package/src/cli/ui.ts +91 -0
  378. package/src/cli/upgrade.ts +33 -0
  379. package/src/command/index.ts +198 -0
  380. package/src/command/template/initialize.txt +66 -0
  381. package/src/command/template/review.txt +101 -0
  382. package/src/config/agent.ts +217 -0
  383. package/src/config/command.ts +75 -0
  384. package/src/config/config-loader.ts +166 -0
  385. package/src/config/config-schema.ts +287 -0
  386. package/src/config/config.ts +411 -0
  387. package/src/config/console-state.ts +17 -0
  388. package/src/config/entry-name.ts +16 -0
  389. package/src/config/error.ts +21 -0
  390. package/src/config/formatter.ts +17 -0
  391. package/src/config/keybinds.ts +130 -0
  392. package/src/config/layout.ts +10 -0
  393. package/src/config/lsp.ts +45 -0
  394. package/src/config/managed.ts +71 -0
  395. package/src/config/markdown.ts +106 -0
  396. package/src/config/mcp.ts +65 -0
  397. package/src/config/model-id.ts +14 -0
  398. package/src/config/parse.ts +88 -0
  399. package/src/config/paths.ts +55 -0
  400. package/src/config/permission.ts +71 -0
  401. package/src/config/plugin.ts +88 -0
  402. package/src/config/provider.ts +117 -0
  403. package/src/config/server.ts +22 -0
  404. package/src/config/skills.ts +16 -0
  405. package/src/config/variable.ts +92 -0
  406. package/src/control-plane/adapters/index.ts +45 -0
  407. package/src/control-plane/adapters/worktree.ts +54 -0
  408. package/src/control-plane/dev/README.md +19 -0
  409. package/src/control-plane/dev/debug-workspace-plugin.ts +73 -0
  410. package/src/control-plane/schema.ts +18 -0
  411. package/src/control-plane/types.ts +45 -0
  412. package/src/control-plane/util.ts +39 -0
  413. package/src/control-plane/workspace-context.ts +26 -0
  414. package/src/control-plane/workspace-types.ts +90 -0
  415. package/src/control-plane/workspace.sql.ts +17 -0
  416. package/src/control-plane/workspace.ts +876 -0
  417. package/src/effect/app-runtime.ts +148 -0
  418. package/src/effect/bootstrap-runtime.ts +29 -0
  419. package/src/effect/bridge.ts +78 -0
  420. package/src/effect/config-service.ts +67 -0
  421. package/src/effect/instance-ref.ts +11 -0
  422. package/src/effect/instance-registry.ts +12 -0
  423. package/src/effect/instance-state.ts +83 -0
  424. package/src/effect/run-service.ts +57 -0
  425. package/src/effect/runner.ts +222 -0
  426. package/src/effect/service-use.ts +38 -0
  427. package/src/env/index.ts +37 -0
  428. package/src/file/file-search.ts +60 -0
  429. package/src/file/file-status.ts +174 -0
  430. package/src/file/ignore.ts +81 -0
  431. package/src/file/index.ts +311 -0
  432. package/src/file/protected.ts +59 -0
  433. package/src/file/ripgrep.ts +482 -0
  434. package/src/file/watcher.ts +159 -0
  435. package/src/format/formatter.ts +403 -0
  436. package/src/format/index.ts +207 -0
  437. package/src/git/index.ts +263 -0
  438. package/src/id/id.ts +87 -0
  439. package/src/ide/index.ts +49 -0
  440. package/src/index.ts +286 -0
  441. package/src/installation/index.ts +339 -0
  442. package/src/lsp/client-diagnostics.ts +260 -0
  443. package/src/lsp/client-types.ts +97 -0
  444. package/src/lsp/client.ts +205 -0
  445. package/src/lsp/diagnostic.ts +29 -0
  446. package/src/lsp/language.ts +121 -0
  447. package/src/lsp/launch.ts +21 -0
  448. package/src/lsp/lsp.ts +530 -0
  449. package/src/lsp/server-devops.ts +161 -0
  450. package/src/lsp/server-dotnet-swift.ts +221 -0
  451. package/src/lsp/server-elixir-zig.ts +185 -0
  452. package/src/lsp/server-jvm.ts +221 -0
  453. package/src/lsp/server-lint.ts +231 -0
  454. package/src/lsp/server-lua-php-tex.ts +264 -0
  455. package/src/lsp/server-misc.ts +238 -0
  456. package/src/lsp/server-python-ruby.ts +153 -0
  457. package/src/lsp/server-shared.ts +60 -0
  458. package/src/lsp/server-system.ts +239 -0
  459. package/src/lsp/server-web.ts +150 -0
  460. package/src/lsp/server.ts +21 -0
  461. package/src/ltm/config.ts +124 -0
  462. package/src/ltm/events.ts +50 -0
  463. package/src/ltm/index.ts +12 -0
  464. package/src/ltm/memory/episodic.ts +83 -0
  465. package/src/ltm/memory/procedural.ts +102 -0
  466. package/src/ltm/memory/semantic.ts +80 -0
  467. package/src/ltm/pipeline.ts +155 -0
  468. package/src/ltm/retrieval.ts +62 -0
  469. package/src/ltm/scheduler.ts +55 -0
  470. package/src/ltm/store.ts +150 -0
  471. package/src/ltm/types.ts +108 -0
  472. package/src/mcp/auth.ts +144 -0
  473. package/src/mcp/index.ts +444 -0
  474. package/src/mcp/mcp-types.ts +110 -0
  475. package/src/mcp/oauth-callback.ts +263 -0
  476. package/src/mcp/oauth-provider.ts +214 -0
  477. package/src/md.d.ts +4 -0
  478. package/src/node.ts +6 -0
  479. package/src/overlay/agent/agent-remove.ts +74 -0
  480. package/src/overlay/agent/index.ts +53 -0
  481. package/src/overlay/agent/patch-agents.ts +164 -0
  482. package/src/overlay/agent/permissions.ts +197 -0
  483. package/src/overlay/agent-manager/event.ts +25 -0
  484. package/src/overlay/bash-hierarchy.ts +28 -0
  485. package/src/overlay/bell.ts +5 -0
  486. package/src/overlay/bootstrap.ts +13 -0
  487. package/src/overlay/claw/autocomplete-popup.tsx +70 -0
  488. package/src/overlay/claw/autocomplete-ref.ts +106 -0
  489. package/src/overlay/claw/autocomplete-types.ts +16 -0
  490. package/src/overlay/claw/autocomplete.tsx +191 -0
  491. package/src/overlay/claw/chat-client.ts +260 -0
  492. package/src/overlay/claw/chat.tsx +286 -0
  493. package/src/overlay/claw/client-events.ts +136 -0
  494. package/src/overlay/claw/client-helpers.ts +182 -0
  495. package/src/overlay/claw/client.ts +225 -0
  496. package/src/overlay/claw/dialog-conversation-list.tsx +129 -0
  497. package/src/overlay/claw/event-service-client-core.ts +104 -0
  498. package/src/overlay/claw/event-service-client-impl.ts +193 -0
  499. package/src/overlay/claw/event-service-client.ts +3 -0
  500. package/src/overlay/claw/hooks.ts +299 -0
  501. package/src/overlay/claw/sidebar.tsx +215 -0
  502. package/src/overlay/claw/types.ts +214 -0
  503. package/src/overlay/claw/view.tsx +152 -0
  504. package/src/overlay/cli/cmd/roll-call-call.ts +82 -0
  505. package/src/overlay/cli/cmd/roll-call-format.ts +55 -0
  506. package/src/overlay/cli/cmd/roll-call.ts +218 -0
  507. package/src/overlay/cli/cmd/tui/app.tsx +190 -0
  508. package/src/overlay/cli/cmd/tui/component/dialog-provider.tsx +126 -0
  509. package/src/overlay/cli/cmd/tui/feedback.ts +57 -0
  510. package/src/overlay/cli/cmd/tui/util/terminal.ts +21 -0
  511. package/src/overlay/cli/dev-setup-utils.ts +171 -0
  512. package/src/overlay/cli/dev-setup.ts +148 -0
  513. package/src/overlay/cli/heap-snapshot.ts +13 -0
  514. package/src/overlay/cli/logo.ts +3 -0
  515. package/src/overlay/cli/run-auto.ts +46 -0
  516. package/src/overlay/cli/saeeol-logo.ts +106 -0
  517. package/src/overlay/cloud-session.ts +36 -0
  518. package/src/overlay/commands-index.ts +5 -0
  519. package/src/overlay/commands.ts +74 -0
  520. package/src/overlay/commands.tsx +256 -0
  521. package/src/overlay/commit-message/generate.ts +204 -0
  522. package/src/overlay/commit-message/git-context.ts +231 -0
  523. package/src/overlay/commit-message/index.ts +2 -0
  524. package/src/overlay/commit-message/types.ts +31 -0
  525. package/src/overlay/components/dialog-auto-method.tsx +158 -0
  526. package/src/overlay/components/dialog-claw-setup.tsx +67 -0
  527. package/src/overlay/components/dialog-claw-upgrade.tsx +55 -0
  528. package/src/overlay/components/dialog-indexing-helpers.ts +159 -0
  529. package/src/overlay/components/dialog-indexing.tsx +169 -0
  530. package/src/overlay/components/dialog-notifications.tsx +91 -0
  531. package/src/overlay/components/dialog-organization.tsx +73 -0
  532. package/src/overlay/components/dialog-profile.tsx +77 -0
  533. package/src/overlay/components/dialog-provider-settings.tsx +95 -0
  534. package/src/overlay/components/dialog-team-select.tsx +32 -0
  535. package/src/overlay/components/dialog-tuning.tsx +55 -0
  536. package/src/overlay/components/dialog-vector-store.tsx +104 -0
  537. package/src/overlay/components/error-display.tsx +49 -0
  538. package/src/overlay/components/model-info-panel-utils.ts +39 -0
  539. package/src/overlay/components/model-info-panel.tsx +149 -0
  540. package/src/overlay/components/news.tsx +64 -0
  541. package/src/overlay/components/notification-banner.tsx +58 -0
  542. package/src/overlay/components/session-indexing.tsx +30 -0
  543. package/src/overlay/components/tips.tsx +119 -0
  544. package/src/overlay/config/config-core.ts +130 -0
  545. package/src/overlay/config/config-helpers.ts +71 -0
  546. package/src/overlay/config/config-legacy.ts +158 -0
  547. package/src/overlay/config/config.ts +30 -0
  548. package/src/overlay/config/default-plugins.ts +29 -0
  549. package/src/overlay/config/markdown.ts +38 -0
  550. package/src/overlay/config-injector.ts +116 -0
  551. package/src/overlay/config-validation.ts +168 -0
  552. package/src/overlay/const.ts +7 -0
  553. package/src/overlay/cost-tracker/format.ts +1 -0
  554. package/src/overlay/cost-tracker/index.ts +22 -0
  555. package/src/overlay/cost-tracker/state.ts +5 -0
  556. package/src/overlay/cost-tracker/types.ts +9 -0
  557. package/src/overlay/docs/migration.md +398 -0
  558. package/src/overlay/docs/rules-migration.md +137 -0
  559. package/src/overlay/editor-context.ts +65 -0
  560. package/src/overlay/encoding.ts +187 -0
  561. package/src/overlay/enhance-prompt.ts +52 -0
  562. package/src/overlay/errors.ts +84 -0
  563. package/src/overlay/generate-cli-docs.ts +41 -0
  564. package/src/overlay/help-command.ts +45 -0
  565. package/src/overlay/help.ts +240 -0
  566. package/src/overlay/i18n/index.ts +163 -0
  567. package/src/overlay/ignore-migrator.ts +226 -0
  568. package/src/overlay/index.ts +7 -0
  569. package/src/overlay/indexing-auth.ts +114 -0
  570. package/src/overlay/indexing-feature.ts +43 -0
  571. package/src/overlay/indexing-helpers.ts +180 -0
  572. package/src/overlay/indexing-label.ts +18 -0
  573. package/src/overlay/indexing-state.ts +200 -0
  574. package/src/overlay/indexing-types.ts +49 -0
  575. package/src/overlay/indexing.ts +54 -0
  576. package/src/overlay/lancedb.ts +40 -0
  577. package/src/overlay/mcp-migrator.ts +181 -0
  578. package/src/overlay/mcp-oauth-callback.ts +93 -0
  579. package/src/overlay/memory/age.ts +1 -0
  580. package/src/overlay/memory/index.ts +37 -0
  581. package/src/overlay/memory/paths.ts +4 -0
  582. package/src/overlay/memory/scan.ts +1 -0
  583. package/src/overlay/memory/types.ts +2 -0
  584. package/src/overlay/model-match.ts +6 -0
  585. package/src/overlay/modes-migrator.ts +211 -0
  586. package/src/overlay/paths.ts +94 -0
  587. package/src/overlay/permission/config-paths.ts +168 -0
  588. package/src/overlay/permission/drain.ts +58 -0
  589. package/src/overlay/permission/external-directory.ts +14 -0
  590. package/src/overlay/permission/read.ts +19 -0
  591. package/src/overlay/permission/routes.ts +87 -0
  592. package/src/overlay/permission/rule.ts +17 -0
  593. package/src/overlay/plan-followup-handover.ts +64 -0
  594. package/src/overlay/plan-followup-runtime.ts +86 -0
  595. package/src/overlay/plan-followup-session.ts +111 -0
  596. package/src/overlay/plan-followup.ts +173 -0
  597. package/src/overlay/plugins/home-footer.tsx +168 -0
  598. package/src/overlay/plugins/home-news.tsx +44 -0
  599. package/src/overlay/plugins/home-onboarding.tsx +40 -0
  600. package/src/overlay/plugins/sidebar-footer.tsx +95 -0
  601. package/src/overlay/plugins/sidebar-pr.tsx +285 -0
  602. package/src/overlay/plugins/sidebar-usage.tsx +81 -0
  603. package/src/overlay/project-id.ts +129 -0
  604. package/src/overlay/provider/codex-refresh.ts +102 -0
  605. package/src/overlay/provider/provider.ts +220 -0
  606. package/src/overlay/provider-options.ts +33 -0
  607. package/src/overlay/question/index.ts +62 -0
  608. package/src/overlay/remote-tui.tsx +47 -0
  609. package/src/overlay/review/command.ts +30 -0
  610. package/src/overlay/review/diff.ts +128 -0
  611. package/src/overlay/review/prompt.ts +161 -0
  612. package/src/overlay/review/review.ts +168 -0
  613. package/src/overlay/review/types.ts +24 -0
  614. package/src/overlay/review/worktree-diff.ts +310 -0
  615. package/src/overlay/rules-migrator.ts +153 -0
  616. package/src/overlay/server/instance.ts +62 -0
  617. package/src/overlay/server/router.ts +5 -0
  618. package/src/overlay/server/routes/commit-message.ts +47 -0
  619. package/src/overlay/server/routes/indexing.ts +11 -0
  620. package/src/overlay/server/server.ts +27 -0
  621. package/src/overlay/session/compaction-chunks-core.ts +202 -0
  622. package/src/overlay/session/compaction-chunks-utils.ts +229 -0
  623. package/src/overlay/session/compaction-chunks.ts +125 -0
  624. package/src/overlay/session/compaction-payload-recovery.ts +108 -0
  625. package/src/overlay/session/cost-propagation.ts +68 -0
  626. package/src/overlay/session/digest-storage.ts +57 -0
  627. package/src/overlay/session/fork.ts +66 -0
  628. package/src/overlay/session/index.ts +70 -0
  629. package/src/overlay/session/instruction.ts +7 -0
  630. package/src/overlay/session/kg-compaction.ts +138 -0
  631. package/src/overlay/session/llm.ts +53 -0
  632. package/src/overlay/session/overflow.ts +15 -0
  633. package/src/overlay/session/platform.ts +97 -0
  634. package/src/overlay/session/processor.ts +200 -0
  635. package/src/overlay/session/prompt-context.ts +110 -0
  636. package/src/overlay/session/prompt-plan.ts +149 -0
  637. package/src/overlay/session/prompt-queue.ts +154 -0
  638. package/src/overlay/session/prompt.ts +71 -0
  639. package/src/overlay/session/queries.ts +199 -0
  640. package/src/overlay/session/tui-sync.ts +7 -0
  641. package/src/overlay/session-import/routes.ts +94 -0
  642. package/src/overlay/session-import/service.ts +145 -0
  643. package/src/overlay/session-import/types.ts +222 -0
  644. package/src/overlay/skills/builtin.ts +20 -0
  645. package/src/overlay/skills/config.md +376 -0
  646. package/src/overlay/snapshot/diff-full.ts +150 -0
  647. package/src/overlay/snapshot/index.ts +2 -0
  648. package/src/overlay/snapshot/track-hooks.ts +182 -0
  649. package/src/overlay/snapshot/track-types.ts +86 -0
  650. package/src/overlay/snapshot/track.ts +175 -0
  651. package/src/overlay/soul.txt +28 -0
  652. package/src/overlay/suggestion/index.ts +231 -0
  653. package/src/overlay/suggestion/routes.ts +100 -0
  654. package/src/overlay/suggestion/tool.ts +131 -0
  655. package/src/overlay/suggestion/tool.txt +30 -0
  656. package/src/overlay/suggestion/tui/bar.tsx +76 -0
  657. package/src/overlay/suggestion/tui/prompt.tsx +169 -0
  658. package/src/overlay/suggestion/tui/render.tsx +79 -0
  659. package/src/overlay/suggestion/tui/sync.ts +58 -0
  660. package/src/overlay/system-prompt.ts +24 -0
  661. package/src/overlay/text-stream.ts +70 -0
  662. package/src/overlay/todo-view.ts +73 -0
  663. package/src/overlay/tool/agent-manager.ts +74 -0
  664. package/src/overlay/tool/agent-manager.txt +13 -0
  665. package/src/overlay/tool/bash-security-patterns.ts +123 -0
  666. package/src/overlay/tool/bash-security.ts +6 -0
  667. package/src/overlay/tool/encoded-io.ts +19 -0
  668. package/src/overlay/tool/question.ts +27 -0
  669. package/src/overlay/tool/registry.ts +97 -0
  670. package/src/overlay/tool/semantic-search.ts +128 -0
  671. package/src/overlay/tool/semantic-search.txt +28 -0
  672. package/src/overlay/tool/task.ts +77 -0
  673. package/src/overlay/ts-check.ts +170 -0
  674. package/src/overlay/ts-client.ts +95 -0
  675. package/src/overlay/tui/diff.ts +79 -0
  676. package/src/overlay/util/url.ts +1 -0
  677. package/src/overlay/worker/index.ts +21 -0
  678. package/src/overlay/worker/pool.ts +145 -0
  679. package/src/overlay/worker/store.ts +144 -0
  680. package/src/overlay/worker/types.ts +58 -0
  681. package/src/overlay/workflows-migrator.ts +135 -0
  682. package/src/overlay/worktree-cleanup.ts +67 -0
  683. package/src/overlay/worktree-family.ts +34 -0
  684. package/src/patch/index.ts +4 -0
  685. package/src/patch/patch-apply.ts +340 -0
  686. package/src/patch/patch-parse.ts +198 -0
  687. package/src/patch/patch-types.ts +63 -0
  688. package/src/permission/arity.ts +163 -0
  689. package/src/permission/evaluate.ts +15 -0
  690. package/src/permission/index.ts +528 -0
  691. package/src/permission/schema.ts +16 -0
  692. package/src/plugin/azure.ts +53 -0
  693. package/src/plugin/cloudflare.ts +76 -0
  694. package/src/plugin/codex-auth.ts +361 -0
  695. package/src/plugin/codex.ts +260 -0
  696. package/src/plugin/github-copilot/copilot.ts +394 -0
  697. package/src/plugin/github-copilot/models.ts +195 -0
  698. package/src/plugin/index.ts +298 -0
  699. package/src/plugin/install.ts +439 -0
  700. package/src/plugin/loader.ts +217 -0
  701. package/src/plugin/meta.ts +188 -0
  702. package/src/plugin/shared.ts +323 -0
  703. package/src/project/bootstrap.ts +80 -0
  704. package/src/project/instance-context.ts +24 -0
  705. package/src/project/instance-store.ts +211 -0
  706. package/src/project/instance.ts +45 -0
  707. package/src/project/project.sql.ts +17 -0
  708. package/src/project/project.ts +519 -0
  709. package/src/project/schema.ts +15 -0
  710. package/src/project/vcs.ts +230 -0
  711. package/src/provider/auth.ts +243 -0
  712. package/src/provider/bundled-providers.ts +41 -0
  713. package/src/provider/custom-loaders.ts +175 -0
  714. package/src/provider/error.ts +206 -0
  715. package/src/provider/loader-cloud.ts +260 -0
  716. package/src/provider/loader-local.ts +185 -0
  717. package/src/provider/loader-platform.ts +266 -0
  718. package/src/provider/local/embedder.ts +220 -0
  719. package/src/provider/local/events.ts +74 -0
  720. package/src/provider/local/gpu.ts +93 -0
  721. package/src/provider/local/hub.ts +174 -0
  722. package/src/provider/local/index.ts +10 -0
  723. package/src/provider/local/model-manager.ts +113 -0
  724. package/src/provider/local/orchestrator.ts +301 -0
  725. package/src/provider/local/rag.ts +112 -0
  726. package/src/provider/local/types.ts +142 -0
  727. package/src/provider/model-cache.ts +302 -0
  728. package/src/provider/models-snapshot.ts +3 -0
  729. package/src/provider/models.ts +292 -0
  730. package/src/provider/provider-conversion.ts +274 -0
  731. package/src/provider/provider-events.ts +29 -0
  732. package/src/provider/provider-layer.ts +257 -0
  733. package/src/provider/provider-resolve.ts +230 -0
  734. package/src/provider/provider-schema.ts +124 -0
  735. package/src/provider/provider-schemas.ts +96 -0
  736. package/src/provider/provider-state.ts +228 -0
  737. package/src/provider/provider-types.ts +62 -0
  738. package/src/provider/provider.ts +37 -0
  739. package/src/provider/schema.ts +36 -0
  740. package/src/provider/sdk/copilot/AGENTS.md +1 -0
  741. package/src/provider/sdk/copilot/README.md +5 -0
  742. package/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +170 -0
  743. package/src/provider/sdk/copilot/chat/get-response-metadata.ts +15 -0
  744. package/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
  745. package/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +64 -0
  746. package/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +815 -0
  747. package/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +28 -0
  748. package/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +44 -0
  749. package/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +83 -0
  750. package/src/provider/sdk/copilot/copilot-provider.ts +100 -0
  751. package/src/provider/sdk/copilot/openai-compatible-error.ts +27 -0
  752. package/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +335 -0
  753. package/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +22 -0
  754. package/src/provider/sdk/copilot/responses/openai-config.ts +18 -0
  755. package/src/provider/sdk/copilot/responses/openai-error.ts +22 -0
  756. package/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +214 -0
  757. package/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +1770 -0
  758. package/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +173 -0
  759. package/src/provider/sdk/copilot/responses/openai-responses-settings.ts +1 -0
  760. package/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +87 -0
  761. package/src/provider/sdk/copilot/responses/tool/file-search.ts +127 -0
  762. package/src/provider/sdk/copilot/responses/tool/image-generation.ts +114 -0
  763. package/src/provider/sdk/copilot/responses/tool/local-shell.ts +64 -0
  764. package/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +103 -0
  765. package/src/provider/sdk/copilot/responses/tool/web-search.ts +102 -0
  766. package/src/provider/tiers/code.ts +20 -0
  767. package/src/provider/tiers/light.ts +10 -0
  768. package/src/provider/tiers/master.ts +17 -0
  769. package/src/provider/transform-message.ts +143 -0
  770. package/src/provider/transform-options.ts +65 -0
  771. package/src/provider/transform-params.ts +37 -0
  772. package/src/provider/transform-schema.ts +54 -0
  773. package/src/provider/transform-variants.ts +86 -0
  774. package/src/provider/transform.ts +6 -0
  775. package/src/pty/index.ts +376 -0
  776. package/src/pty/input.ts +24 -0
  777. package/src/pty/pty.bun.ts +26 -0
  778. package/src/pty/pty.node.ts +27 -0
  779. package/src/pty/pty.ts +25 -0
  780. package/src/pty/schema.ts +16 -0
  781. package/src/question/index.ts +269 -0
  782. package/src/question/schema.ts +16 -0
  783. package/src/saeeol-web-ui.gen.ts +33 -0
  784. package/src/server/adapter.bun.ts +44 -0
  785. package/src/server/adapter.node.ts +73 -0
  786. package/src/server/adapter.ts +26 -0
  787. package/src/server/backend.ts +32 -0
  788. package/src/server/cors.ts +17 -0
  789. package/src/server/error.ts +36 -0
  790. package/src/server/event.ts +8 -0
  791. package/src/server/fence.ts +90 -0
  792. package/src/server/mdns.ts +60 -0
  793. package/src/server/middleware.ts +87 -0
  794. package/src/server/ports.ts +17 -0
  795. package/src/server/projectors.ts +28 -0
  796. package/src/server/proxy-util.ts +48 -0
  797. package/src/server/proxy.ts +153 -0
  798. package/src/server/routes/control/index.ts +163 -0
  799. package/src/server/routes/control/workspace.ts +210 -0
  800. package/src/server/routes/global.ts +297 -0
  801. package/src/server/routes/instance/AGENTS.md +8 -0
  802. package/src/server/routes/instance/config.ts +129 -0
  803. package/src/server/routes/instance/enhance-prompt.ts +39 -0
  804. package/src/server/routes/instance/event.ts +100 -0
  805. package/src/server/routes/instance/experimental-console.ts +125 -0
  806. package/src/server/routes/instance/experimental-mcp.ts +215 -0
  807. package/src/server/routes/instance/experimental-review.ts +232 -0
  808. package/src/server/routes/instance/experimental.ts +12 -0
  809. package/src/server/routes/instance/file.ts +190 -0
  810. package/src/server/routes/instance/httpapi/AGENTS.md +35 -0
  811. package/src/server/routes/instance/httpapi/api.ts +58 -0
  812. package/src/server/routes/instance/httpapi/event.ts +77 -0
  813. package/src/server/routes/instance/httpapi/groups/config.ts +61 -0
  814. package/src/server/routes/instance/httpapi/groups/control.ts +75 -0
  815. package/src/server/routes/instance/httpapi/groups/experimental.ts +214 -0
  816. package/src/server/routes/instance/httpapi/groups/file.ts +121 -0
  817. package/src/server/routes/instance/httpapi/groups/global.ts +106 -0
  818. package/src/server/routes/instance/httpapi/groups/instance.ts +143 -0
  819. package/src/server/routes/instance/httpapi/groups/local.ts +87 -0
  820. package/src/server/routes/instance/httpapi/groups/mcp.ts +155 -0
  821. package/src/server/routes/instance/httpapi/groups/metadata.ts +18 -0
  822. package/src/server/routes/instance/httpapi/groups/permission.ts +70 -0
  823. package/src/server/routes/instance/httpapi/groups/project.ts +77 -0
  824. package/src/server/routes/instance/httpapi/groups/provider.ts +76 -0
  825. package/src/server/routes/instance/httpapi/groups/pty.ts +127 -0
  826. package/src/server/routes/instance/httpapi/groups/question.ts +70 -0
  827. package/src/server/routes/instance/httpapi/groups/session-schemas.ts +77 -0
  828. package/src/server/routes/instance/httpapi/groups/session.ts +179 -0
  829. package/src/server/routes/instance/httpapi/groups/sync.ts +92 -0
  830. package/src/server/routes/instance/httpapi/groups/tui.ts +197 -0
  831. package/src/server/routes/instance/httpapi/groups/workspace.ts +106 -0
  832. package/src/server/routes/instance/httpapi/handlers/config.ts +34 -0
  833. package/src/server/routes/instance/httpapi/handlers/control.ts +34 -0
  834. package/src/server/routes/instance/httpapi/handlers/experimental.ts +155 -0
  835. package/src/server/routes/instance/httpapi/handlers/file.ts +54 -0
  836. package/src/server/routes/instance/httpapi/handlers/global.ts +157 -0
  837. package/src/server/routes/instance/httpapi/handlers/instance.ts +79 -0
  838. package/src/server/routes/instance/httpapi/handlers/local.ts +95 -0
  839. package/src/server/routes/instance/httpapi/handlers/mcp.ts +73 -0
  840. package/src/server/routes/instance/httpapi/handlers/permission.ts +43 -0
  841. package/src/server/routes/instance/httpapi/handlers/project.ts +44 -0
  842. package/src/server/routes/instance/httpapi/handlers/provider.ts +99 -0
  843. package/src/server/routes/instance/httpapi/handlers/pty.ts +121 -0
  844. package/src/server/routes/instance/httpapi/handlers/question.ts +33 -0
  845. package/src/server/routes/instance/httpapi/handlers/session.ts +387 -0
  846. package/src/server/routes/instance/httpapi/handlers/sync.ts +77 -0
  847. package/src/server/routes/instance/httpapi/handlers/tui.ts +135 -0
  848. package/src/server/routes/instance/httpapi/handlers/workspace.ts +62 -0
  849. package/src/server/routes/instance/httpapi/lifecycle.ts +52 -0
  850. package/src/server/routes/instance/httpapi/middleware/authorization.ts +128 -0
  851. package/src/server/routes/instance/httpapi/middleware/instance-context.ts +53 -0
  852. package/src/server/routes/instance/httpapi/middleware/proxy.ts +86 -0
  853. package/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +218 -0
  854. package/src/server/routes/instance/httpapi/public-schema.ts +118 -0
  855. package/src/server/routes/instance/httpapi/public-types.ts +80 -0
  856. package/src/server/routes/instance/httpapi/public.ts +215 -0
  857. package/src/server/routes/instance/httpapi/server.ts +216 -0
  858. package/src/server/routes/instance/index.ts +283 -0
  859. package/src/server/routes/instance/mcp.ts +277 -0
  860. package/src/server/routes/instance/middleware.ts +34 -0
  861. package/src/server/routes/instance/network.ts +93 -0
  862. package/src/server/routes/instance/permission.ts +131 -0
  863. package/src/server/routes/instance/project.ts +122 -0
  864. package/src/server/routes/instance/provider.ts +169 -0
  865. package/src/server/routes/instance/pty.ts +276 -0
  866. package/src/server/routes/instance/question.ts +111 -0
  867. package/src/server/routes/instance/remote.ts +83 -0
  868. package/src/server/routes/instance/saeeol.ts +98 -0
  869. package/src/server/routes/instance/session/_shared.ts +72 -0
  870. package/src/server/routes/instance/session/action.ts +201 -0
  871. package/src/server/routes/instance/session/crud.ts +294 -0
  872. package/src/server/routes/instance/session/message.ts +247 -0
  873. package/src/server/routes/instance/session/prompt.ts +163 -0
  874. package/src/server/routes/instance/session/share.ts +216 -0
  875. package/src/server/routes/instance/session.ts +16 -0
  876. package/src/server/routes/instance/suggestion.ts +1 -0
  877. package/src/server/routes/instance/sync.ts +152 -0
  878. package/src/server/routes/instance/telemetry.ts +73 -0
  879. package/src/server/routes/instance/trace.ts +59 -0
  880. package/src/server/routes/instance/tui.ts +399 -0
  881. package/src/server/routes/ui.ts +63 -0
  882. package/src/server/server.ts +196 -0
  883. package/src/server/workspace.ts +130 -0
  884. package/src/session/compaction-helpers.ts +169 -0
  885. package/src/session/compaction.ts +712 -0
  886. package/src/session/instruction.ts +234 -0
  887. package/src/session/llm.ts +504 -0
  888. package/src/session/message-errors.ts +83 -0
  889. package/src/session/message-parts.ts +89 -0
  890. package/src/session/message-query.ts +107 -0
  891. package/src/session/message-transform.ts +156 -0
  892. package/src/session/message-types.ts +68 -0
  893. package/src/session/message-v2.ts +73 -0
  894. package/src/session/message.ts +192 -0
  895. package/src/session/network.ts +392 -0
  896. package/src/session/overflow.ts +28 -0
  897. package/src/session/processor.ts +731 -0
  898. package/src/session/projectors.ts +139 -0
  899. package/src/session/prompt/anthropic.txt +105 -0
  900. package/src/session/prompt/beast.txt +147 -0
  901. package/src/session/prompt/code-switch.txt +5 -0
  902. package/src/session/prompt/codex.txt +80 -0
  903. package/src/session/prompt/copilot-gpt-5.txt +143 -0
  904. package/src/session/prompt/default.txt +105 -0
  905. package/src/session/prompt/gemini.txt +155 -0
  906. package/src/session/prompt/gpt.txt +108 -0
  907. package/src/session/prompt/kimi.txt +95 -0
  908. package/src/session/prompt/ling.txt +129 -0
  909. package/src/session/prompt/max-steps.txt +16 -0
  910. package/src/session/prompt/plan-reminder-anthropic.txt +67 -0
  911. package/src/session/prompt/plan.txt +25 -0
  912. package/src/session/prompt/saeeol-gpt-5.5.txt +95 -0
  913. package/src/session/prompt/trinity.txt +97 -0
  914. package/src/session/prompt-command.ts +93 -0
  915. package/src/session/prompt-loop.ts +299 -0
  916. package/src/session/prompt-model.ts +44 -0
  917. package/src/session/prompt-reminders.ts +120 -0
  918. package/src/session/prompt-resolve.ts +42 -0
  919. package/src/session/prompt-schemas.ts +128 -0
  920. package/src/session/prompt-title.ts +55 -0
  921. package/src/session/prompt-types.ts +47 -0
  922. package/src/session/prompt-user-msg.ts +80 -0
  923. package/src/session/prompt.ts +211 -0
  924. package/src/session/resolve-tools.ts +241 -0
  925. package/src/session/retry.ts +149 -0
  926. package/src/session/revert.ts +173 -0
  927. package/src/session/run-state.ts +110 -0
  928. package/src/session/schema.ts +35 -0
  929. package/src/session/session-types.ts +160 -0
  930. package/src/session/session.sql.ts +124 -0
  931. package/src/session/session.ts +948 -0
  932. package/src/session/shell-exec.ts +205 -0
  933. package/src/session/status.ts +100 -0
  934. package/src/session/subtask.ts +268 -0
  935. package/src/session/summary.ts +173 -0
  936. package/src/session/system.ts +114 -0
  937. package/src/session/todo.ts +86 -0
  938. package/src/session/user-part.ts +293 -0
  939. package/src/sessions/inflight-cache.ts +72 -0
  940. package/src/sessions/ingest-queue.ts +318 -0
  941. package/src/sessions/remote-protocol.ts +86 -0
  942. package/src/sessions/remote-sender.ts +422 -0
  943. package/src/sessions/remote-ws.ts +189 -0
  944. package/src/sessions/sessions.ts +720 -0
  945. package/src/share/session.ts +59 -0
  946. package/src/share/share-next.ts +376 -0
  947. package/src/share/share.sql.ts +13 -0
  948. package/src/shell/shell.ts +215 -0
  949. package/src/skill/discovery.ts +116 -0
  950. package/src/skill/index.ts +322 -0
  951. package/src/snapshot/index.ts +125 -0
  952. package/src/snapshot/snapshot-core.ts +279 -0
  953. package/src/snapshot/snapshot-diff.ts +85 -0
  954. package/src/snapshot/snapshot-git.ts +60 -0
  955. package/src/snapshot/snapshot-types.ts +43 -0
  956. package/src/sql.d.ts +4 -0
  957. package/src/storage/db.bun.ts +8 -0
  958. package/src/storage/db.node.ts +8 -0
  959. package/src/storage/db.ts +177 -0
  960. package/src/storage/json-migration-entities.ts +214 -0
  961. package/src/storage/json-migration-helpers.ts +76 -0
  962. package/src/storage/json-migration.ts +88 -0
  963. package/src/storage/schema.sql.ts +10 -0
  964. package/src/storage/schema.ts +5 -0
  965. package/src/storage/storage.ts +341 -0
  966. package/src/suggestion/index.ts +1 -0
  967. package/src/sync/README.md +179 -0
  968. package/src/sync/event.sql.ts +16 -0
  969. package/src/sync/index.ts +387 -0
  970. package/src/sync/schema.ts +13 -0
  971. package/src/temporary.ts +33 -0
  972. package/src/tool/apply_patch.ts +334 -0
  973. package/src/tool/apply_patch.txt +33 -0
  974. package/src/tool/bash.ts +656 -0
  975. package/src/tool/bash.txt +119 -0
  976. package/src/tool/diagnostics.ts +20 -0
  977. package/src/tool/edit-replacers.ts +288 -0
  978. package/src/tool/edit-utils.ts +86 -0
  979. package/src/tool/edit.ts +262 -0
  980. package/src/tool/edit.txt +10 -0
  981. package/src/tool/external-directory.ts +55 -0
  982. package/src/tool/glob.ts +115 -0
  983. package/src/tool/glob.txt +6 -0
  984. package/src/tool/grep.ts +151 -0
  985. package/src/tool/grep.txt +8 -0
  986. package/src/tool/invalid.ts +21 -0
  987. package/src/tool/lsp.ts +113 -0
  988. package/src/tool/lsp.txt +24 -0
  989. package/src/tool/mcp-exa.ts +73 -0
  990. package/src/tool/package.ts +168 -0
  991. package/src/tool/plan-enter.txt +14 -0
  992. package/src/tool/plan-exit.txt +13 -0
  993. package/src/tool/plan.ts +30 -0
  994. package/src/tool/question.ts +52 -0
  995. package/src/tool/question.txt +11 -0
  996. package/src/tool/read.ts +389 -0
  997. package/src/tool/read.txt +14 -0
  998. package/src/tool/recall.ts +164 -0
  999. package/src/tool/recall.txt +12 -0
  1000. package/src/tool/registry.ts +375 -0
  1001. package/src/tool/schema.ts +16 -0
  1002. package/src/tool/skill.ts +91 -0
  1003. package/src/tool/skill.txt +5 -0
  1004. package/src/tool/suggest.ts +1 -0
  1005. package/src/tool/task.ts +197 -0
  1006. package/src/tool/task.txt +57 -0
  1007. package/src/tool/todo.ts +62 -0
  1008. package/src/tool/todowrite.txt +167 -0
  1009. package/src/tool/tool.ts +162 -0
  1010. package/src/tool/truncate.ts +160 -0
  1011. package/src/tool/truncation-dir.ts +4 -0
  1012. package/src/tool/warpgrep.ts +107 -0
  1013. package/src/tool/warpgrep.txt +10 -0
  1014. package/src/tool/webfetch.ts +202 -0
  1015. package/src/tool/webfetch.txt +13 -0
  1016. package/src/tool/websearch.ts +71 -0
  1017. package/src/tool/websearch.txt +14 -0
  1018. package/src/tool/write.ts +114 -0
  1019. package/src/tool/write.txt +8 -0
  1020. package/src/util/abort.ts +1 -0
  1021. package/src/util/archive.ts +17 -0
  1022. package/src/util/bom.ts +19 -0
  1023. package/src/util/color.ts +3 -0
  1024. package/src/util/data-url.ts +1 -0
  1025. package/src/util/defer.ts +1 -0
  1026. package/src/util/effect-http-client.ts +11 -0
  1027. package/src/util/effect-zod.ts +370 -0
  1028. package/src/util/error.ts +46 -0
  1029. package/src/util/filesystem.ts +230 -0
  1030. package/src/util/fn.ts +21 -0
  1031. package/src/util/format.ts +1 -0
  1032. package/src/util/i18n.ts +104 -0
  1033. package/src/util/iife.ts +1 -0
  1034. package/src/util/keybind.ts +103 -0
  1035. package/src/util/lazy.ts +18 -0
  1036. package/src/util/local-context.ts +3 -0
  1037. package/src/util/locale.ts +13 -0
  1038. package/src/util/lock.ts +3 -0
  1039. package/src/util/media.ts +26 -0
  1040. package/src/util/named-schema-error.ts +61 -0
  1041. package/src/util/network.ts +1 -0
  1042. package/src/util/process.ts +176 -0
  1043. package/src/util/queue.ts +32 -0
  1044. package/src/util/record.ts +3 -0
  1045. package/src/util/rpc.ts +66 -0
  1046. package/src/util/schema.ts +108 -0
  1047. package/src/util/scrap.ts +10 -0
  1048. package/src/util/signal.ts +10 -0
  1049. package/src/util/timeout.ts +13 -0
  1050. package/src/util/token.ts +3 -0
  1051. package/src/util/update-schema.ts +13 -0
  1052. package/src/util/which.ts +14 -0
  1053. package/src/util/wildcard.ts +20 -0
  1054. package/src/v2/session-entry-stepper.ts +262 -0
  1055. package/src/v2/session-entry.ts +219 -0
  1056. package/src/v2/session-event-base.ts +102 -0
  1057. package/src/v2/session-event-step.ts +51 -0
  1058. package/src/v2/session-event-stream.ts +65 -0
  1059. package/src/v2/session-event-tool.ts +88 -0
  1060. package/src/v2/session-event.ts +92 -0
  1061. package/src/v2/session.ts +69 -0
  1062. package/src/web-static/assets/index--nIB0GG1.js +1 -0
  1063. package/src/web-static/assets/index-BAFkjvN0.css +1 -0
  1064. package/src/web-static/index.html +23 -0
  1065. package/src/worktree/index.ts +19 -0
  1066. package/src/worktree/worktree-layer.ts +450 -0
  1067. package/src/worktree/worktree-types.ts +131 -0
  1068. package/sst-env.d.ts +10 -0
  1069. package/test/AGENTS.md +133 -0
  1070. package/test/account/repo.test.ts +352 -0
  1071. package/test/account/service.test.ts +456 -0
  1072. package/test/acp/agent-interface.test.ts +51 -0
  1073. package/test/acp/event-subscription.test.ts +725 -0
  1074. package/test/agent/agent.test.ts +890 -0
  1075. package/test/auth/auth.test.ts +86 -0
  1076. package/test/bun/registry.test.ts +75 -0
  1077. package/test/bus/bus-effect.test.ts +161 -0
  1078. package/test/bus/bus-integration.test.ts +87 -0
  1079. package/test/bus/bus.test.ts +219 -0
  1080. package/test/cli/account.test.ts +26 -0
  1081. package/test/cli/auto-mode.test.ts +75 -0
  1082. package/test/cli/bin-saeeol.test.ts +8 -0
  1083. package/test/cli/cmd/tui/prompt-part.test.ts +47 -0
  1084. package/test/cli/cmd/tui/prompt-traits.test.ts +38 -0
  1085. package/test/cli/cmd/tui/sync.test.tsx +159 -0
  1086. package/test/cli/error.test.ts +18 -0
  1087. package/test/cli/github-action.test.ts +198 -0
  1088. package/test/cli/github-remote.test.ts +85 -0
  1089. package/test/cli/import.test.ts +97 -0
  1090. package/test/cli/install-artifact.test.ts +72 -0
  1091. package/test/cli/plugin-auth-picker.test.ts +120 -0
  1092. package/test/cli/pr.test.ts +59 -0
  1093. package/test/cli/tui/editor-context-zed.test.ts +356 -0
  1094. package/test/cli/tui/editor-context.test.tsx +228 -0
  1095. package/test/cli/tui/keybind-plugin.test.ts +90 -0
  1096. package/test/cli/tui/markdown.test.ts +161 -0
  1097. package/test/cli/tui/plugin-add.test.ts +111 -0
  1098. package/test/cli/tui/plugin-install.test.ts +87 -0
  1099. package/test/cli/tui/plugin-lifecycle.test.ts +224 -0
  1100. package/test/cli/tui/plugin-loader-entrypoint.test.ts +484 -0
  1101. package/test/cli/tui/plugin-loader-pure.test.ts +71 -0
  1102. package/test/cli/tui/plugin-loader.test.ts +816 -0
  1103. package/test/cli/tui/plugin-toggle.test.ts +157 -0
  1104. package/test/cli/tui/revert-diff.test.ts +35 -0
  1105. package/test/cli/tui/slot-replace.test.tsx +47 -0
  1106. package/test/cli/tui/theme-store.test.ts +54 -0
  1107. package/test/cli/tui/thread.test.ts +28 -0
  1108. package/test/cli/tui/transcript.test.ts +426 -0
  1109. package/test/cli/tui/usage.test.ts +60 -0
  1110. package/test/cli/tui/use-event.test.tsx +175 -0
  1111. package/test/config/agent-color.test.ts +67 -0
  1112. package/test/config/config.test.ts +2544 -0
  1113. package/test/config/fixtures/empty-frontmatter.md +4 -0
  1114. package/test/config/fixtures/frontmatter.md +28 -0
  1115. package/test/config/fixtures/markdown-header.md +11 -0
  1116. package/test/config/fixtures/no-frontmatter.md +1 -0
  1117. package/test/config/fixtures/weird-model-id.md +13 -0
  1118. package/test/config/lsp.test.ts +87 -0
  1119. package/test/config/markdown.test.ts +228 -0
  1120. package/test/config/plugin.test.ts +0 -0
  1121. package/test/config/tui.test.ts +624 -0
  1122. package/test/control-plane/adapters.test.ts +71 -0
  1123. package/test/control-plane/workspace.test.ts +1526 -0
  1124. package/test/effect/app-runtime-logger.test.ts +98 -0
  1125. package/test/effect/config-service.test.ts +65 -0
  1126. package/test/effect/instance-state.test.ts +394 -0
  1127. package/test/effect/run-service.test.ts +89 -0
  1128. package/test/effect/runner.test.ts +523 -0
  1129. package/test/fake/provider.ts +82 -0
  1130. package/test/file/fsmonitor.test.ts +68 -0
  1131. package/test/file/ignore.test.ts +10 -0
  1132. package/test/file/index.test.ts +954 -0
  1133. package/test/file/path-traversal.test.ts +205 -0
  1134. package/test/file/ripgrep.test.ts +226 -0
  1135. package/test/file/watcher.test.ts +249 -0
  1136. package/test/filesystem/filesystem.test.ts +319 -0
  1137. package/test/fixture/db.ts +11 -0
  1138. package/test/fixture/fixture.test.ts +26 -0
  1139. package/test/fixture/fixture.ts +175 -0
  1140. package/test/fixture/flock-worker.ts +72 -0
  1141. package/test/fixture/log-init-worker.ts +62 -0
  1142. package/test/fixture/lsp/fake-lsp-server.js +249 -0
  1143. package/test/fixture/plug-worker.ts +93 -0
  1144. package/test/fixture/plugin-meta-worker.ts +19 -0
  1145. package/test/fixture/skills/agents-sdk/SKILL.md +152 -0
  1146. package/test/fixture/skills/cloudflare/SKILL.md +211 -0
  1147. package/test/fixture/skills/index.json +6 -0
  1148. package/test/fixture/tui-plugin.ts +323 -0
  1149. package/test/fixture/tui-runtime.ts +31 -0
  1150. package/test/format/format.test.ts +272 -0
  1151. package/test/git/git.test.ts +128 -0
  1152. package/test/ide/ide.test.ts +82 -0
  1153. package/test/installation/installation.test.ts +168 -0
  1154. package/test/keybind.test.ts +421 -0
  1155. package/test/lib/effect.ts +53 -0
  1156. package/test/lib/filesystem.ts +10 -0
  1157. package/test/lib/llm-server.ts +778 -0
  1158. package/test/lib/websocket.ts +46 -0
  1159. package/test/lsp/client.test.ts +482 -0
  1160. package/test/lsp/index.test.ts +160 -0
  1161. package/test/lsp/launch.test.ts +22 -0
  1162. package/test/lsp/lifecycle.test.ts +184 -0
  1163. package/test/mcp/headers.test.ts +178 -0
  1164. package/test/mcp/lifecycle.test.ts +787 -0
  1165. package/test/mcp/oauth-auto-connect.test.ts +311 -0
  1166. package/test/mcp/oauth-browser.test.ts +276 -0
  1167. package/test/mcp/oauth-callback.test.ts +34 -0
  1168. package/test/memory/abort-leak-webfetch.ts +49 -0
  1169. package/test/memory/abort-leak.test.ts +128 -0
  1170. package/test/patch/patch.test.ts +348 -0
  1171. package/test/permission/arity.test.ts +33 -0
  1172. package/test/permission/next.test.ts +1227 -0
  1173. package/test/permission/next.toConfig.test.ts +110 -0
  1174. package/test/permission-task.test.ts +326 -0
  1175. package/test/plugin/auth-override.test.ts +79 -0
  1176. package/test/plugin/cloudflare.test.ts +68 -0
  1177. package/test/plugin/codex.test.ts +123 -0
  1178. package/test/plugin/github-copilot-models.test.ts +261 -0
  1179. package/test/plugin/install-concurrency.test.ts +140 -0
  1180. package/test/plugin/install.test.ts +570 -0
  1181. package/test/plugin/loader-shared.test.ts +1169 -0
  1182. package/test/plugin/meta.test.ts +137 -0
  1183. package/test/plugin/shared.test.ts +88 -0
  1184. package/test/plugin/trigger.test.ts +102 -0
  1185. package/test/plugin/workspace-adapter.test.ts +109 -0
  1186. package/test/preload.ts +77 -0
  1187. package/test/project/instance.test.ts +276 -0
  1188. package/test/project/migrate-global.test.ts +152 -0
  1189. package/test/project/project.test.ts +600 -0
  1190. package/test/project/vcs.test.ts +286 -0
  1191. package/test/project/worktree-remove.test.ts +126 -0
  1192. package/test/project/worktree.test.ts +223 -0
  1193. package/test/provider/amazon-bedrock.test.ts +462 -0
  1194. package/test/provider/copilot/convert-to-copilot-messages.test.ts +523 -0
  1195. package/test/provider/copilot/copilot-chat-model.test.ts +592 -0
  1196. package/test/provider/gitlab-duo.test.ts +413 -0
  1197. package/test/provider/local.test.ts +208 -0
  1198. package/test/provider/models.test.ts +261 -0
  1199. package/test/provider/provider-category.test.ts +190 -0
  1200. package/test/provider/provider.test.ts +2758 -0
  1201. package/test/provider/transform.test.ts +3681 -0
  1202. package/test/pty/pty-output-isolation.test.ts +147 -0
  1203. package/test/pty/pty-session.test.ts +102 -0
  1204. package/test/pty/pty-shell.test.ts +104 -0
  1205. package/test/question/question.test.ts +490 -0
  1206. package/test/saeeol/agent-global-config-dirs.test.ts +24 -0
  1207. package/test/saeeol/agent-manager-tool.test.ts +71 -0
  1208. package/test/saeeol/agent-permission-overrides.test.ts +75 -0
  1209. package/test/saeeol/agent-skill-permissions.test.ts +37 -0
  1210. package/test/saeeol/ask-agent-permissions.test.ts +303 -0
  1211. package/test/saeeol/bash-hierarchy.test.ts +64 -0
  1212. package/test/saeeol/bash-permission-metadata.test.ts +66 -0
  1213. package/test/saeeol/bash-security-extended.test.ts +243 -0
  1214. package/test/saeeol/bedrock-claude-empty-content.test.ts +138 -0
  1215. package/test/saeeol/boxes-integration.test.ts +415 -0
  1216. package/test/saeeol/builtin-skills.test.ts +75 -0
  1217. package/test/saeeol/cleanup.ts +28 -0
  1218. package/test/saeeol/cli/dev-setup.test.ts +74 -0
  1219. package/test/saeeol/cli/roll-call.test.ts +161 -0
  1220. package/test/saeeol/cli-run-auto-helper.test.ts +58 -0
  1221. package/test/saeeol/codex-auth-refresh.test.ts +124 -0
  1222. package/test/saeeol/commit-message/generate.test.ts +188 -0
  1223. package/test/saeeol/commit-message/git-context.test.ts +303 -0
  1224. package/test/saeeol/commit-message-windows.test.ts +38 -0
  1225. package/test/saeeol/compaction-payload-recovery.test.ts +406 -0
  1226. package/test/saeeol/compaction-preservation-audit.test.ts +122 -0
  1227. package/test/saeeol/compaction-skip-guard.test.ts +224 -0
  1228. package/test/saeeol/compaction-smart-select.test.ts +100 -0
  1229. package/test/saeeol/config/config.test.ts +166 -0
  1230. package/test/saeeol/config/indexing-default-plugin.test.ts +82 -0
  1231. package/test/saeeol/config/opentelemetry-default.test.ts +29 -0
  1232. package/test/saeeol/config-gitignore.test.ts +70 -0
  1233. package/test/saeeol/config-injector.test.ts +305 -0
  1234. package/test/saeeol/config-resilience.test.ts +234 -0
  1235. package/test/saeeol/config-validation.test.ts +183 -0
  1236. package/test/saeeol/cost-propagation.test.ts +94 -0
  1237. package/test/saeeol/cost-tracker-extended.test.ts +141 -0
  1238. package/test/saeeol/cost-tracker.test.ts +64 -0
  1239. package/test/saeeol/custom-provider-delete.test.ts +149 -0
  1240. package/test/saeeol/diff-full.test.ts +226 -0
  1241. package/test/saeeol/edit-permission-filediff.test.ts +223 -0
  1242. package/test/saeeol/encoding.test.ts +364 -0
  1243. package/test/saeeol/enhance-prompt.test.ts +61 -0
  1244. package/test/saeeol/ensure-plan-dir.test.ts +32 -0
  1245. package/test/saeeol/errors.test.ts +144 -0
  1246. package/test/saeeol/external-directory-boundary.test.ts +96 -0
  1247. package/test/saeeol/gateway-headers.test.ts +88 -0
  1248. package/test/saeeol/help.test.ts +191 -0
  1249. package/test/saeeol/ignore-migrator.test.ts +308 -0
  1250. package/test/saeeol/indexing-auth.test.ts +45 -0
  1251. package/test/saeeol/indexing-feature.test.ts +44 -0
  1252. package/test/saeeol/indexing-label.test.ts +70 -0
  1253. package/test/saeeol/indexing-startup.test.ts +381 -0
  1254. package/test/saeeol/indexing-worktree.test.ts +73 -0
  1255. package/test/saeeol/instruction.test.ts +136 -0
  1256. package/test/saeeol/lancedb-runtime.test.ts +116 -0
  1257. package/test/saeeol/loader-auth.test.ts +168 -0
  1258. package/test/saeeol/local-model.test.ts +621 -0
  1259. package/test/saeeol/logo.test.ts +31 -0
  1260. package/test/saeeol/lsp-typescript-lightweight.test.ts +89 -0
  1261. package/test/saeeol/mcp-branding.test.ts +33 -0
  1262. package/test/saeeol/mcp-docker-rm.test.ts +32 -0
  1263. package/test/saeeol/mcp-migrator.test.ts +736 -0
  1264. package/test/saeeol/mcp-oauth-callback.test.ts +33 -0
  1265. package/test/saeeol/memory-io.test.ts +198 -0
  1266. package/test/saeeol/memory-paths.test.ts +87 -0
  1267. package/test/saeeol/memory-security.test.ts +166 -0
  1268. package/test/saeeol/model-cache-org.test.ts +164 -0
  1269. package/test/saeeol/model-info-panel-utils.test.ts +52 -0
  1270. package/test/saeeol/model-info-panel.types.test.ts +7 -0
  1271. package/test/saeeol/models-401-fallback.test.ts +52 -0
  1272. package/test/saeeol/modes-migrator.test.ts +320 -0
  1273. package/test/saeeol/nvidia-headers.test.ts +74 -0
  1274. package/test/saeeol/patch-jsonc.test.ts +73 -0
  1275. package/test/saeeol/patch.test.ts +172 -0
  1276. package/test/saeeol/paths.test.ts +265 -0
  1277. package/test/saeeol/permission/config-paths.test.ts +174 -0
  1278. package/test/saeeol/permission/env-read.test.ts +149 -0
  1279. package/test/saeeol/permission/external-directory-allow.test.ts +327 -0
  1280. package/test/saeeol/permission/next.always-rules.test.ts +882 -0
  1281. package/test/saeeol/permission/next.reply-http.test.ts +205 -0
  1282. package/test/saeeol/permission/next.reply-routing.test.ts +184 -0
  1283. package/test/saeeol/plan-exit-detection.test.ts +494 -0
  1284. package/test/saeeol/plan-followup.test.ts +1376 -0
  1285. package/test/saeeol/project-config-update.test.ts +120 -0
  1286. package/test/saeeol/project-id.test.ts +455 -0
  1287. package/test/saeeol/provider-cost.test.ts +171 -0
  1288. package/test/saeeol/provider-list-failed-state.test.ts +100 -0
  1289. package/test/saeeol/question-dismiss-all.test.ts +174 -0
  1290. package/test/saeeol/read-directory.test.ts +116 -0
  1291. package/test/saeeol/rules-migrator.test.ts +257 -0
  1292. package/test/saeeol/run-auto.test.ts +176 -0
  1293. package/test/saeeol/run-network.test.ts +224 -0
  1294. package/test/saeeol/semantic-search.test.ts +186 -0
  1295. package/test/saeeol/server/permission-allow-everything.test.ts +125 -0
  1296. package/test/saeeol/session/instruction-substitution.test.ts +72 -0
  1297. package/test/saeeol/session/platform-attribution.test.ts +118 -0
  1298. package/test/saeeol/session/session.test.ts +105 -0
  1299. package/test/saeeol/session-compaction-cap.test.ts +399 -0
  1300. package/test/saeeol/session-compaction-chunks.test.ts +501 -0
  1301. package/test/saeeol/session-compaction-safety.test.ts +481 -0
  1302. package/test/saeeol/session-fork-remap.test.ts +251 -0
  1303. package/test/saeeol/session-import-service.test.ts +114 -0
  1304. package/test/saeeol/session-list.test.ts +47 -0
  1305. package/test/saeeol/session-message-metadata.test.ts +128 -0
  1306. package/test/saeeol/session-overflow.test.ts +78 -0
  1307. package/test/saeeol/session-processor-empty-tool-calls.test.ts +571 -0
  1308. package/test/saeeol/session-processor-network-offline.test.ts +204 -0
  1309. package/test/saeeol/session-processor-retry-limit.test.ts +238 -0
  1310. package/test/saeeol/session-processor-review-telemetry.test.ts +82 -0
  1311. package/test/saeeol/session-prompt-compaction-safety.test.ts +517 -0
  1312. package/test/saeeol/session-prompt-queue.test.ts +815 -0
  1313. package/test/saeeol/sessions/inflight-cache.test.ts +157 -0
  1314. package/test/saeeol/sessions/ingest-queue.test.ts +402 -0
  1315. package/test/saeeol/sessions/remote-protocol.test.ts +258 -0
  1316. package/test/saeeol/sessions/remote-sender.test.ts +1036 -0
  1317. package/test/saeeol/sessions/remote-ws.test.ts +367 -0
  1318. package/test/saeeol/sessions/sessions-enable-remote.test.disable +181 -0
  1319. package/test/saeeol/slot-prop-reactivity.test.ts +142 -0
  1320. package/test/saeeol/snapshot-cache.test.ts +84 -0
  1321. package/test/saeeol/snapshot-freeze-repro.test.ts +100 -0
  1322. package/test/saeeol/snapshot-track-timeout.test.ts +519 -0
  1323. package/test/saeeol/stats-subagent-cost.test.ts +123 -0
  1324. package/test/saeeol/suggestion/auto-dismiss.test.ts +65 -0
  1325. package/test/saeeol/suggestion/suggestion.test.ts +145 -0
  1326. package/test/saeeol/suggestion/tool.test.ts +298 -0
  1327. package/test/saeeol/summary-file-diff.test.ts +28 -0
  1328. package/test/saeeol/system-prompt.test.ts +142 -0
  1329. package/test/saeeol/task-nesting.test.ts +193 -0
  1330. package/test/saeeol/telemetry/feedback.test.ts +8 -0
  1331. package/test/saeeol/todo-view.test.ts +57 -0
  1332. package/test/saeeol/tool-encoding.test.ts +455 -0
  1333. package/test/saeeol/tool-registry-indexing-import-failure.test.ts +49 -0
  1334. package/test/saeeol/tool-registry-indexing.test.ts +236 -0
  1335. package/test/saeeol/tool-registry-semantic-import-failure.test.ts +55 -0
  1336. package/test/saeeol/tool-task-model.test.ts +352 -0
  1337. package/test/saeeol/transform-opus-4.7.test.ts +89 -0
  1338. package/test/saeeol/tui-diff.test.ts +91 -0
  1339. package/test/saeeol/tui-sync.test.ts +80 -0
  1340. package/test/saeeol/util/url.test.ts +141 -0
  1341. package/test/saeeol/workflows-migrator.test.ts +261 -0
  1342. package/test/saeeol/worktree-diff-summary.test.ts +64 -0
  1343. package/test/saeeol/worktree-diff.test.ts +223 -0
  1344. package/test/saeeol/worktree-remove-lock.test.ts +82 -0
  1345. package/test/server/AGENTS.md +15 -0
  1346. package/test/server/experimental-session-list.test.ts +157 -0
  1347. package/test/server/global-session-list.test.ts +155 -0
  1348. package/test/server/httpapi-authorization.test.ts +103 -0
  1349. package/test/server/httpapi-bridge.test.ts +440 -0
  1350. package/test/server/httpapi-config.test.ts +67 -0
  1351. package/test/server/httpapi-cors.test.ts +89 -0
  1352. package/test/server/httpapi-event.test.ts +57 -0
  1353. package/test/server/httpapi-experimental.test.ts +219 -0
  1354. package/test/server/httpapi-file.test.ts +79 -0
  1355. package/test/server/httpapi-instance-context.test.ts +237 -0
  1356. package/test/server/httpapi-instance.legacy.test.ts +140 -0
  1357. package/test/server/httpapi-instance.test.ts +83 -0
  1358. package/test/server/httpapi-json-parity.test.ts +263 -0
  1359. package/test/server/httpapi-mcp-oauth.test.ts +76 -0
  1360. package/test/server/httpapi-mcp.test.ts +189 -0
  1361. package/test/server/httpapi-provider.test.ts +153 -0
  1362. package/test/server/httpapi-pty-websocket.test.ts +16 -0
  1363. package/test/server/httpapi-pty.test.ts +175 -0
  1364. package/test/server/httpapi-raw-route-auth.test.ts +89 -0
  1365. package/test/server/httpapi-sdk.test.ts +679 -0
  1366. package/test/server/httpapi-session.test.ts +464 -0
  1367. package/test/server/httpapi-sync.test.ts +130 -0
  1368. package/test/server/httpapi-tui.test.ts +121 -0
  1369. package/test/server/httpapi-workspace-routing.test.ts +471 -0
  1370. package/test/server/httpapi-workspace.test.ts +427 -0
  1371. package/test/server/project-init-git.test.ts +113 -0
  1372. package/test/server/proxy-util.test.ts +113 -0
  1373. package/test/server/session-actions.test.ts +49 -0
  1374. package/test/server/session-list.test.ts +238 -0
  1375. package/test/server/session-messages.test.ts +167 -0
  1376. package/test/server/session-select.test.ts +100 -0
  1377. package/test/server/trace-attributes.test.ts +76 -0
  1378. package/test/server/workspace-proxy.test.ts +165 -0
  1379. package/test/server/workspace-routing.test.ts +85 -0
  1380. package/test/session/compaction.test.ts +2420 -0
  1381. package/test/session/instruction.test.ts +247 -0
  1382. package/test/session/llm.test.ts +1273 -0
  1383. package/test/session/message-v2.test.ts +1291 -0
  1384. package/test/session/messages-pagination.test.ts +1173 -0
  1385. package/test/session/network.test.ts +249 -0
  1386. package/test/session/processor-effect.test.ts +847 -0
  1387. package/test/session/prompt.test.ts +2131 -0
  1388. package/test/session/retry.test.ts +340 -0
  1389. package/test/session/revert-compact.test.ts +639 -0
  1390. package/test/session/schema-decoding.test.ts +311 -0
  1391. package/test/session/session-entry-stepper.test.ts +917 -0
  1392. package/test/session/session-schema.test.ts +76 -0
  1393. package/test/session/snapshot-tool-race.test.ts +257 -0
  1394. package/test/session/structured-output-integration.test.ts +265 -0
  1395. package/test/session/structured-output.test.ts +381 -0
  1396. package/test/session/system.test.ts +73 -0
  1397. package/test/share/share-next.test.ts +333 -0
  1398. package/test/shell/shell.test.ts +99 -0
  1399. package/test/skill/discovery.test.ts +116 -0
  1400. package/test/skill/skill.test.ts +393 -0
  1401. package/test/snapshot/snapshot.test.ts +1531 -0
  1402. package/test/storage/db.test.ts +23 -0
  1403. package/test/storage/json-migration.test.ts +832 -0
  1404. package/test/storage/storage.test.ts +293 -0
  1405. package/test/suggestion/suggestion.test.ts +1 -0
  1406. package/test/sync/index.test.ts +256 -0
  1407. package/test/tool/__snapshots__/parameters.test.ts.snap +500 -0
  1408. package/test/tool/__snapshots__/tool.test.ts.snap +9 -0
  1409. package/test/tool/apply_patch.test.ts +614 -0
  1410. package/test/tool/bash.test.ts +1225 -0
  1411. package/test/tool/diagnostics-filter.test.ts +55 -0
  1412. package/test/tool/edit.test.ts +754 -0
  1413. package/test/tool/external-directory.test.ts +169 -0
  1414. package/test/tool/fixtures/large-image.png +0 -0
  1415. package/test/tool/fixtures/models-api.json +65179 -0
  1416. package/test/tool/glob.test.ts +107 -0
  1417. package/test/tool/grep.test.ts +114 -0
  1418. package/test/tool/lsp.test.ts +187 -0
  1419. package/test/tool/parameters.test.ts +243 -0
  1420. package/test/tool/question.test.ts +129 -0
  1421. package/test/tool/read.test.ts +500 -0
  1422. package/test/tool/recall.test.ts +151 -0
  1423. package/test/tool/registry.test.ts +203 -0
  1424. package/test/tool/skill.test.ts +135 -0
  1425. package/test/tool/suggest.test.ts +1 -0
  1426. package/test/tool/task.test.ts +612 -0
  1427. package/test/tool/tool-define.test.ts +99 -0
  1428. package/test/tool/truncation.test.ts +260 -0
  1429. package/test/tool/webfetch.test.ts +103 -0
  1430. package/test/tool/write.test.ts +291 -0
  1431. package/test/util/data-url.test.ts +14 -0
  1432. package/test/util/effect-zod.test.ts +754 -0
  1433. package/test/util/error.test.ts +38 -0
  1434. package/test/util/filesystem.test.ts +656 -0
  1435. package/test/util/format.test.ts +59 -0
  1436. package/test/util/glob.test.ts +164 -0
  1437. package/test/util/iife.test.ts +36 -0
  1438. package/test/util/lazy.test.ts +50 -0
  1439. package/test/util/lock.test.ts +72 -0
  1440. package/test/util/log.test.ts +86 -0
  1441. package/test/util/module.test.ts +59 -0
  1442. package/test/util/process.test.ts +128 -0
  1443. package/test/util/timeout.test.ts +21 -0
  1444. package/test/util/which.test.ts +100 -0
  1445. package/test/util/wildcard.test.ts +90 -0
  1446. package/test/workspace/workspace-restore.test.ts +296 -0
  1447. package/tsconfig.json +19 -0
@@ -0,0 +1,67 @@
1
+ <system-reminder>
2
+ # Plan Mode - System Reminder
3
+
4
+ Plan mode is active. The user indicated that they do not want you to execute yet -- you MUST NOT make any edits (with the exception of the plan file mentioned below), run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supersedes any other instructions you have received.
5
+
6
+ ---
7
+
8
+ ## Plan File Info
9
+
10
+ No plan file exists yet. You should create your plan at `/Users/aidencline/.claude/plans/happy-waddling-feigenbaum.md` using the Write tool.
11
+
12
+ You should build your plan incrementally by writing to or editing this file. NOTE that this is the only file you are allowed to edit - other than this you are only allowed to take READ-ONLY actions.
13
+
14
+ **Plan File Guidelines:** The plan file should contain only your final recommended approach, not all alternatives considered. Keep it comprehensive yet concise - detailed enough to execute effectively while avoiding unnecessary verbosity.
15
+
16
+ ---
17
+
18
+ ## Enhanced Planning Workflow
19
+
20
+ ### Phase 1: Initial Understanding
21
+
22
+ **Goal:** Gain a comprehensive understanding of the user's request by reading through code and asking them questions. Critical: In this phase you should only use the Explore subagent type.
23
+
24
+ 1. Understand the user's request thoroughly
25
+
26
+ 2. **Launch up to 3 Explore agents IN PARALLEL** (single message, multiple tool calls) to efficiently explore the codebase. Each agent can focus on different aspects:
27
+ - Example: One agent searches for existing implementations, another explores related components, a third investigates testing patterns
28
+ - Provide each agent with a specific search focus or area to explore
29
+ - Quality over quantity - 3 agents maximum, but you should try to use the minimum number of agents necessary (usually just 1)
30
+ - Use 1 agent when: the task is isolated to known files, the user provided specific file paths, or you're making a small targeted change. Use multiple agents when: the scope is uncertain, multiple areas of the codebase are involved, or you need to understand existing patterns before planning.
31
+ - Take into account any context you already have from the user's request or from the conversation so far when deciding how many agents to launch
32
+
33
+ 3. Use AskUserQuestion tool to clarify ambiguities in the user request up front.
34
+
35
+ ### Phase 2: Planning
36
+
37
+ **Goal:** Come up with an approach to solve the problem identified in phase 1 by launching a Plan subagent.
38
+
39
+ In the agent prompt:
40
+ - Provide any background context that may help the agent with their task without prescribing the exact design itself
41
+ - Request a detailed plan
42
+
43
+ ### Phase 3: Synthesis
44
+
45
+ **Goal:** Synthesize the perspectives from Phase 2, and ensure that it aligns with the user's intentions by asking them questions.
46
+
47
+ 1. Collect all agent responses
48
+ 2. Each agent will return an implementation plan along with a list of critical files that should be read. You should keep these in mind and read them before you start implementing the plan
49
+ 3. Use AskUserQuestion to ask the users questions about trade offs.
50
+
51
+ ### Phase 4: Final Plan
52
+
53
+ Once you have all the information you need, ensure that the plan file has been updated with your synthesized recommendation including:
54
+ - Recommended approach with rationale
55
+ - Key insights from different perspectives
56
+ - Critical files that need modification
57
+
58
+ ### Phase 5: Call ExitPlanMode
59
+
60
+ At the very end of your turn, once you have asked the user questions and are happy with your final plan file - you should always call ExitPlanMode to indicate to the user that you are done planning.
61
+
62
+ This is critical - your turn should only end with either asking the user a question or calling ExitPlanMode. Do not stop unless it's for these 2 reasons.
63
+
64
+ ---
65
+
66
+ **NOTE:** At any point in time through this workflow you should feel free to ask the user questions or clarifications. Don't make large assumptions about user intent. The goal is to present a well researched plan to the user, and tie any loose ends before implementation begins.
67
+ </system-reminder>
@@ -0,0 +1,25 @@
1
+ <system-reminder>
2
+ # Plan Mode - System Reminder
3
+
4
+ Plan mode is ACTIVE. You are in a READ-ONLY phase with one exception: the plan file (see "Plan File" section below).
5
+ Do NOT edit any other files, make system changes, or use bash commands to manipulate files. Commands may ONLY read/inspect.
6
+ This constraint overrides ALL other instructions, including direct user edit requests.
7
+
8
+ ---
9
+
10
+ ## Responsibility
11
+
12
+ Your current responsibility is to think, read, search, and delegate explore agents to construct a well-formed plan that accomplishes the goal the user wants to achieve. Your plan should be comprehensive yet concise, detailed enough to execute effectively while avoiding unnecessary verbosity.
13
+
14
+ Ask the user clarifying questions or ask for their opinion when weighing tradeoffs.
15
+
16
+ **NOTE:** At any point in time through this workflow you should feel free to ask the user questions or clarifications. Don't make large assumptions about user intent. The goal is to present a well researched plan to the user, and tie any loose ends before implementation begins.
17
+
18
+ ---
19
+
20
+ ## Important
21
+
22
+ The user indicated that they do not want you to execute yet -- you MUST NOT make any edits (except to the plan file), run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supersedes any other instructions you have received.
23
+
24
+ When you have finalized your plan and are confident it is ready for implementation, call the plan_exit tool to signal completion. Your turn should end with either asking the user a question or calling plan_exit.
25
+ </system-reminder>
@@ -0,0 +1,95 @@
1
+ You are Kilo, an AI coding agent operating in the user's current project checkout.
2
+
3
+ You help users with software engineering tasks by reading the repository, making targeted changes, running relevant checks, and reporting results clearly. Treat the workspace as shared with the user and other agents.
4
+
5
+ ## Engineering judgment
6
+ - Build context from the repository before deciding on an approach; follow existing patterns and keep changes minimal.
7
+ - Prefer the smallest correct fix over broad rewrites, new abstractions, or process ceremony.
8
+ - If two approaches are viable, choose the one that is easier to review and maintain.
9
+ - Ask only when the request is blocked by missing information that cannot be inferred safely from the project.
10
+
11
+ ## Autonomy and persistence
12
+ - Treat short implementation, bugfix, refactor, and maintenance requests as sufficient direction to act.
13
+ - Continue through implementation, verification, and final handoff when feasible instead of stopping at a plan.
14
+ - Do not ask permission to proceed or to run normal local checks; run the most relevant safe check and mention the result.
15
+ - If blocked, complete all non-blocked work first, then ask one targeted question with the recommended default.
16
+
17
+ ## Verification
18
+ - Before saying code changes are ready, run the smallest relevant check that can catch failures in the touched area.
19
+ - Fix failures you introduced before finalizing when practical.
20
+ - If no meaningful automated check applies, state that plainly and explain why.
21
+ - Do not claim a check passed unless you ran it in this workspace.
22
+
23
+ ## Editing constraints
24
+ - Default to ASCII when editing or creating files. Only introduce non-ASCII or other Unicode characters when there is a clear justification and the file already uses them.
25
+ - Only add comments if they are necessary to make a non-obvious block easier to understand.
26
+ - Try to use apply_patch for single file edits, but it is fine to explore other options to make the edit if it does not work well. Do not use apply_patch for changes that are auto-generated (i.e. generating package.json or running a lint or format command like gofmt) or when scripting is more efficient (such as search and replacing a string across a codebase).
27
+
28
+ ## Tool usage
29
+ - If the Task tool is available, use it proactively to delegate focused subtasks to a subagent instance. You can spawn multiple subagents in parallel.
30
+ - Prefer specialized tools over shell for file operations:
31
+ - Use Read to view files, Edit to modify files, and Write only when needed.
32
+ - Use Glob to find files by name and Grep to search file contents.
33
+ - Use Bash for terminal operations (git, bun, builds, tests, running scripts).
34
+ - Run tool calls in parallel when neither call needs the other's output; otherwise run sequentially.
35
+
36
+ ## Git and workspace hygiene
37
+ - You may be in a dirty git worktree.
38
+ * NEVER revert existing changes you did not make unless explicitly requested, since they may be user, agent, or generated changes.
39
+ * Ignore unrelated changes while you work, including unrelated changes in files you are not touching.
40
+ * If relevant files already contain changes you did not make, read them carefully and work with them rather than overwriting or reverting them.
41
+ * Ask only if those changes make the requested task impossible to complete safely.
42
+ - Do not amend commits unless explicitly requested.
43
+ - **NEVER** use destructive commands like `git reset --hard` or `git checkout --` unless specifically requested or approved by the user.
44
+
45
+ ## Frontend tasks
46
+ When doing frontend design tasks, avoid collapsing into bland, generic layouts.
47
+ Aim for interfaces that feel intentional and deliberate.
48
+ - Typography: Use expressive, purposeful fonts and avoid default stacks (Inter, Roboto, Arial, system).
49
+ - Color & Look: Choose a clear visual direction; define CSS variables; avoid purple-on-white defaults. No purple bias or dark mode bias.
50
+ - Motion: Use a few meaningful animations (page-load, staggered reveals) instead of generic micro-motions.
51
+ - Background: Don't rely on flat, single-color backgrounds; use gradients, shapes, or subtle patterns to build atmosphere.
52
+ - Overall: Avoid boilerplate layouts and interchangeable UI patterns. Vary themes, type families, and visual languages across outputs.
53
+ - Ensure the page loads properly on both desktop and mobile.
54
+
55
+ Exception: If working within an existing website or design system, preserve the established patterns, structure, and visual language.
56
+
57
+ ## Presenting your work and final message
58
+
59
+ You are producing plain text that will later be styled by the CLI. Follow these rules exactly. Formatting should make results easy to scan, but not feel mechanical. Use judgment to decide how much structure adds value.
60
+
61
+ - Default: be very concise; friendly coding teammate tone.
62
+ - Questions: only ask when you are truly blocked after checking relevant context AND you cannot safely pick a reasonable default. This usually means one of:
63
+ * The request is ambiguous in a way that materially changes the result and you cannot disambiguate by reading the repo.
64
+ * The action is destructive/irreversible, touches production, or changes billing/security posture.
65
+ * You need a secret/credential/value that cannot be inferred (API key, account id, etc.).
66
+ - For substantial work, summarize clearly; follow final-answer formatting.
67
+ - Skip heavy formatting for simple confirmations.
68
+ - Don't dump large files you've written; reference paths only.
69
+ - No "save/copy this file" - User is on the same machine.
70
+ - Offer logical next steps (tests, commits, build) briefly; add verify steps if you couldn't do something.
71
+ - For code changes:
72
+ * Lead with a quick explanation of the change, and then give more details on the context covering where and why a change was made. Do not start this explanation with "summary", just jump right in.
73
+ * If there are natural next steps the user may want to take, suggest them at the end of your response. Do not make suggestions if there are no natural next steps.
74
+ * When suggesting multiple options, use numeric lists for the suggestions so the user can quickly respond with a single number.
75
+ - The user does not command execution outputs. When asked to show the output of a command (e.g. `git show`), relay the important details in your answer or summarize the key lines so the user understands the result.
76
+
77
+ ## Final answer structure and style guidelines
78
+
79
+ - Plain text; CLI handles styling. Use structure only when it helps scannability.
80
+ - Headers: optional; short Title Case (1-3 words) wrapped in **...**; no blank line before the first bullet; add only if they truly help.
81
+ - Bullets: use - ; merge related points; keep to one line when possible; 4-6 per list ordered by importance; keep phrasing consistent.
82
+ - Monospace: backticks for commands/paths/env vars/code ids and inline examples; use for literal keyword bullets; never combine with **.
83
+ - Code samples or multi-line snippets should be wrapped in fenced code blocks; include an info string as often as possible.
84
+ - Structure: group related bullets; order sections general -> specific -> supporting; for subsections, start with a bolded keyword bullet, then items; match complexity to the task.
85
+ - Tone: collaborative, concise, factual; present tense, active voice; self-contained; no "above/below"; parallel wording.
86
+ - Don'ts: no nested bullets/hierarchies; no ANSI codes; don't cram unrelated keywords; keep keyword lists short - wrap/reformat if long; avoid naming formatting styles in answers.
87
+ - Adaptation: code explanations -> precise, structured with code refs; simple tasks -> lead with outcome; big changes -> logical walkthrough + rationale + next actions; casual one-offs -> plain sentences, no headers/bullets.
88
+ - File References: When referencing files in your response follow the below rules:
89
+ * Use inline code to make file paths clickable.
90
+ * Each reference should have a stand alone path. Even if it's the same file.
91
+ * Accepted: absolute, workspace-relative, a/ or b/ diff prefixes, or bare filename/suffix.
92
+ * Optionally include line/column (1-based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
93
+ * Do not use URIs like file://, vscode://, or https://.
94
+ * Do not provide range of lines
95
+ * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\repo\project\main.rs:12:5
@@ -0,0 +1,97 @@
1
+ You are saeeol, an interactive CLI tool that helps users with software engineering tasks. Use the instructions below and the tools available to you to assist the user.
2
+
3
+ # Tone and style
4
+ You should be concise, direct, and to the point. When you run a non-trivial bash command, you should explain what the command does and why you are running it, to make sure the user understands what you are doing (this is especially important when you are running a command that will make changes to the user's system).
5
+ Remember that your output will be displayed on a command line interface. Your responses can use GitHub-flavored markdown for formatting, and will be rendered in a monospace font using the CommonMark specification.
6
+ Output text to communicate with the user; all text you output outside of tool use is displayed to the user. Only use tools to complete tasks. Never use tools like Bash or code comments as means to communicate with the user during the session.
7
+ If you cannot or will not help the user with something, please do not say why or what it could lead to, since this comes across as preachy and annoying. Please offer helpful alternatives if possible, and otherwise keep your response to 1-2 sentences.
8
+ Only use emojis if the user explicitly requests it. Avoid using emojis in all communication unless asked.
9
+ IMPORTANT: You should minimize output tokens as much as possible while maintaining helpfulness, quality, and accuracy. Only address the specific query or task at hand, avoiding tangential information unless absolutely critical for completing the request. If you can answer in 1-3 sentences or a short paragraph, please do.
10
+ IMPORTANT: You should NOT answer with unnecessary preamble or postamble (such as explaining your code or summarizing your action), unless the user asks you to.
11
+ IMPORTANT: Keep your responses short, since they will be displayed on a command line interface. You MUST answer concisely with fewer than 4 lines (not including tool use or code generation), unless user asks for detail. Answer the user's question directly, without elaboration, explanation, or details. One word answers are best. Avoid introductions, conclusions, and explanations. You MUST avoid text before/after your response, such as "The answer is <answer>.", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...". Here are some examples to demonstrate appropriate verbosity:
12
+ <example>
13
+ user: 2 + 2
14
+ assistant: 4
15
+ </example>
16
+
17
+ <example>
18
+ user: what is 2+2?
19
+ assistant: 4
20
+ </example>
21
+
22
+ <example>
23
+ user: is 11 a prime number?
24
+ assistant: Yes
25
+ </example>
26
+
27
+ <example>
28
+ user: what command should I run to list files in the current directory?
29
+ assistant: ls
30
+ </example>
31
+
32
+ <example>
33
+ user: what command should I run to watch files in the current directory?
34
+ assistant: [use the ls tool to list the files in the current directory, then read docs/commands in the relevant file to find out how to watch files]
35
+ npm run dev
36
+ </example>
37
+
38
+ <example>
39
+ user: How many golf balls fit inside a jetta?
40
+ assistant: 150000
41
+ </example>
42
+
43
+ <example>
44
+ user: what files are in the directory src/?
45
+ assistant: [runs ls and sees foo.c, bar.c, baz.c]
46
+ user: which file contains the implementation of foo?
47
+ assistant: src/foo.c
48
+ </example>
49
+
50
+ <example>
51
+ user: write tests for new feature
52
+ assistant: [uses grep or glob to find where similar tests are defined, then read relevant files one at a time (one tool per message, wait for each result), then edit or write to add tests]
53
+ </example>
54
+
55
+ # Proactiveness
56
+ You are allowed to be proactive, but only when the user asks you to do something. You should strive to strike a balance between:
57
+ 1. Doing the right thing when asked, including taking actions and follow-up actions
58
+ 2. Not surprising the user with actions you take without asking
59
+ For example, if the user asks you how to approach something, you should do your best to answer their question first, and not immediately jump into taking actions.
60
+ 3. Do not add additional code explanation summary unless requested by the user. After working on a file, just stop, rather than providing an explanation of what you did.
61
+
62
+ # Following conventions
63
+ When making changes to files, first understand the file's code conventions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
64
+ - NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language).
65
+ - When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
66
+ - When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
67
+ - Always follow security best practices. Never introduce code that exposes or logs secrets and keys. Never commit secrets or keys to the repository.
68
+
69
+ # Code style
70
+ - IMPORTANT: DO NOT ADD ***ANY*** COMMENTS unless asked
71
+
72
+ # Doing tasks
73
+ The user will primarily request you perform software engineering tasks. This includes solving bugs, adding new functionality, refactoring code, explaining code, and more. For these tasks the following steps are recommended:
74
+ - Use the available search tools to understand the codebase and the user's query. Use one tool per message; after each result, decide the next step and call one tool again.
75
+ - Implement the solution using all tools available to you
76
+ - Verify the solution if possible with tests. NEVER assume specific test framework or test script. Check the README or search codebase to determine the testing approach.
77
+ - VERY IMPORTANT: When you have completed a task, you MUST run the lint and typecheck commands (e.g. npm run lint, npm run typecheck, ruff, etc.) with Bash if they were provided to you to ensure your code is correct. If you are unable to find the correct command, ask the user for the command to run and if they supply it, proactively suggest writing it to AGENTS.md so that you will know to run it next time.
78
+ NEVER commit changes unless the user explicitly asks you to. It is VERY IMPORTANT to only commit when explicitly asked, otherwise the user will feel that you are being too proactive.
79
+
80
+ - Tool results and user messages may include <system-reminder> tags. <system-reminder> tags contain useful information and reminders. They are NOT part of the user's provided input or the tool result.
81
+
82
+ # Tool usage policy
83
+ - When doing file search, prefer to use the Task tool in order to reduce context usage.
84
+ - Use exactly one tool per assistant message. After each tool call, wait for the result before continuing.
85
+ - When the user's request is vague, use the question tool to clarify before reading files or making changes.
86
+ - Avoid repeating the same tool with the same parameters once you have useful results. Use the result to take the next step (e.g. pick one match, read that file, then act); do not search again in a loop.
87
+
88
+ You MUST answer concisely with fewer than 4 lines of text (not including tool use or code generation), unless user asks for detail.
89
+
90
+ # Code References
91
+
92
+ When referencing specific functions or pieces of code include the pattern `file_path:line_number` to allow the user to easily navigate to the source code location.
93
+
94
+ <example>
95
+ user: Where are errors from the client handled?
96
+ assistant: Clients are marked as failed in the `connectToServer` function in src/services/process.ts:712.
97
+ </example>
@@ -0,0 +1,93 @@
1
+ import { Effect } from "effect"
2
+ import { NamedError } from "@saeeol/core/util/error"
3
+ import * as EffectLogger from "@saeeol/core/effect/logger"
4
+ import { ConfigMarkdown } from "@/config/markdown"
5
+ import { Shell } from "@/shell/shell"
6
+ import { Provider } from "@/provider/provider"
7
+ import { Process } from "@/util/process"
8
+ import { SessionID } from "./schema"
9
+ import * as Session from "./session"
10
+ import { resolvePromptParts } from "./prompt-resolve"
11
+ import { getModel, lastModel } from "./prompt-model"
12
+ import type { CommandInput } from "./prompt-schemas"
13
+ import type { PromptDeps } from "./prompt-types"
14
+
15
+ const elog = EffectLogger.create({ service: "session.prompt" })
16
+
17
+ export const commandHandler = (deps: PromptDeps, markReviewTelemetry?: (parts: any, cmd: string) => void) => {
18
+ const resolveParts = resolvePromptParts(deps)
19
+
20
+ return Effect.fn("SessionPrompt.command")(function* (input: CommandInput) {
21
+ yield* elog.info("command", { sessionID: input.sessionID, command: input.command, agent: input.agent })
22
+ const cmd = yield* deps.commands.get(input.command)
23
+ if (!cmd) {
24
+ const available = (yield* deps.commands.list()).map((c: any) => c.name)
25
+ const hint = available.length ? ` Available commands: ${available.join(", ")}` : ""
26
+ const error = new NamedError.Unknown({ message: `Command not found: "${input.command}".${hint}` })
27
+ yield* deps.bus.publish(Session.Event.Error, { sessionID: input.sessionID, error: error.toObject() })
28
+ throw error
29
+ }
30
+ const argsRegex = /\S+|"[^"]*"|'[^']*'/g
31
+ const quoteTrimRegex = /^["']|["']$/g
32
+ const placeholderRegex = /\$(\d+)/g
33
+ const agentName = cmd.agent ?? input.agent ?? (yield* deps.agents.defaultAgent())
34
+ const raw = input.arguments.match(argsRegex) ?? []
35
+ const args = raw.map((arg: string) => arg.replace(quoteTrimRegex, ""))
36
+ const templateCommand = yield* Effect.promise(async () => cmd.template)
37
+ const placeholders = templateCommand.match(placeholderRegex) ?? []
38
+ let last = 0
39
+ for (const item of placeholders) { const value = Number(item.slice(1)); if (value > last) last = value }
40
+ const withArgs = templateCommand.replaceAll(placeholderRegex, (_: string, index: string) => {
41
+ const position = Number(index)
42
+ const argIndex = position - 1
43
+ if (argIndex >= args.length) return ""
44
+ if (position === last) return args.slice(argIndex).join(" ")
45
+ return args[argIndex]
46
+ })
47
+ const usesArgumentsPlaceholder = templateCommand.includes("$ARGUMENTS")
48
+ let template = withArgs.replaceAll("$ARGUMENTS", input.arguments)
49
+ if (placeholders.length === 0 && !usesArgumentsPlaceholder && input.arguments.trim()) {
50
+ template = template + "\n\n" + input.arguments
51
+ }
52
+ const bashRegex = /```bash\n([\s\S]*?)```/g
53
+ const shellMatches = ConfigMarkdown.shell(template)
54
+ if (shellMatches.length > 0) {
55
+ const cfg = yield* deps.config.get()
56
+ const sh = Shell.preferred(cfg.shell)
57
+ const results = yield* Effect.promise(() =>
58
+ Promise.all(shellMatches.map(async (match: RegExpExecArray) => (await Process.text([match[1]], { shell: sh, nothrow: true })).text)),
59
+ )
60
+ let index = 0
61
+ template = template.replace(bashRegex, () => results[index++])
62
+ }
63
+ template = template.trim()
64
+ const taskModel = yield* Effect.gen(function* () {
65
+ if (cmd.model) return Provider.parseModel(cmd.model)
66
+ if (cmd.agent) { const cmdAgent = yield* deps.agents.get(cmd.agent); if (cmdAgent?.model) return cmdAgent.model }
67
+ if (input.model) return Provider.parseModel(input.model)
68
+ return yield* lastModel(deps)(input.sessionID)
69
+ })
70
+ yield* getModel(deps)(taskModel.providerID, taskModel.modelID, input.sessionID)
71
+ const agent = yield* deps.agents.get(agentName)
72
+ if (!agent) {
73
+ const available = (yield* deps.agents.list()).filter((a: any) => !a.hidden).map((a: any) => a.name)
74
+ const hint = available.length ? ` Available agents: ${available.join(", ")}` : ""
75
+ const error = new NamedError.Unknown({ message: `Agent not found: "${agentName}".${hint}` })
76
+ yield* deps.bus.publish(Session.Event.Error, { sessionID: input.sessionID, error: error.toObject() })
77
+ throw error
78
+ }
79
+ const templateParts = yield* resolveParts(template)
80
+ markReviewTelemetry?.(templateParts, input.command)
81
+ const isSubtask = (agent.mode === "subagent" && cmd.subtask !== false) || cmd.subtask === true
82
+ const parts = isSubtask
83
+ ? [{ type: "subtask" as const, agent: agent.name, description: cmd.description ?? "",
84
+ command: input.command, model: { providerID: taskModel.providerID, modelID: taskModel.modelID },
85
+ prompt: (templateParts.find((y: any) => y.type === "text") as any)?.text ?? "" }]
86
+ : [...templateParts, ...(input.parts ?? [])]
87
+ const userAgent = isSubtask ? (input.agent ?? (yield* deps.agents.defaultAgent())) : agentName
88
+ const userModel = isSubtask ? input.model ? Provider.parseModel(input.model) : yield* lastModel(deps)(input.sessionID) : taskModel
89
+ yield* deps.plugin.trigger("command.execute.before",
90
+ { command: input.command, sessionID: input.sessionID, arguments: input.arguments }, { parts })
91
+ return { sessionID: input.sessionID, messageID: input.messageID, model: userModel, agent: userAgent, parts, variant: input.variant, command: input.command, arguments: input.arguments }
92
+ })
93
+ }