@farhanic017/octocode 3.5.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 (716) hide show
  1. package/.swarm_lessons.json +85 -0
  2. package/AGENTS.md +151 -0
  3. package/BUN_SHELL_MIGRATION_PLAN.md +136 -0
  4. package/Dockerfile +18 -0
  5. package/README.md +15 -0
  6. package/bin/octocode +31 -0
  7. package/bunfig.toml +7 -0
  8. package/git +0 -0
  9. package/package.json +151 -0
  10. package/parsers-config.ts +1 -0
  11. package/script/bench-search.ts +115 -0
  12. package/script/bench-test-suite.ts +52 -0
  13. package/script/build.ts +243 -0
  14. package/script/generate.ts +14 -0
  15. package/script/httpapi-exercise.ts +1 -0
  16. package/script/octo-shim.mjs +34 -0
  17. package/script/postinstall.mjs +198 -0
  18. package/script/profile-test-files.ts +42 -0
  19. package/script/publish.ts +211 -0
  20. package/script/run-workspace-server +106 -0
  21. package/script/schema.ts +77 -0
  22. package/script/time.ts +6 -0
  23. package/script/trace-imports.ts +154 -0
  24. package/specs/effect/error-boundaries-plan.md +235 -0
  25. package/specs/effect/errors.md +207 -0
  26. package/specs/effect/facades.md +218 -0
  27. package/specs/effect/guide.md +247 -0
  28. package/specs/effect/instance-context.md +13 -0
  29. package/specs/effect/loose-ends.md +30 -0
  30. package/specs/effect/migration.md +62 -0
  31. package/specs/effect/routes.md +61 -0
  32. package/specs/effect/schema.md +88 -0
  33. package/specs/effect/server-package.md +58 -0
  34. package/specs/effect/todo.md +241 -0
  35. package/specs/effect/tools.md +88 -0
  36. package/specs/openapi-translation-cleanup.md +204 -0
  37. package/specs/tui-plugins.md +544 -0
  38. package/specs/v2/api.ts +67 -0
  39. package/specs/v2/message-shape.md +136 -0
  40. package/specs/v2/notifications.md +13 -0
  41. package/specs/v2/tui-command-shim.md +67 -0
  42. package/src/account/account.ts +459 -0
  43. package/src/account/repo.ts +170 -0
  44. package/src/account/schema.ts +99 -0
  45. package/src/account/url.ts +8 -0
  46. package/src/acp/agent.ts +95 -0
  47. package/src/acp/config-option.ts +203 -0
  48. package/src/acp/content.ts +250 -0
  49. package/src/acp/directory.ts +210 -0
  50. package/src/acp/error.ts +90 -0
  51. package/src/acp/event.ts +345 -0
  52. package/src/acp/permission.ts +145 -0
  53. package/src/acp/profile.ts +42 -0
  54. package/src/acp/service.ts +1062 -0
  55. package/src/acp/tool.ts +321 -0
  56. package/src/acp/usage.ts +239 -0
  57. package/src/agent/agent.ts +451 -0
  58. package/src/agent/generate.txt +75 -0
  59. package/src/agent/prompt/compaction.txt +30 -0
  60. package/src/agent/prompt/explore.txt +18 -0
  61. package/src/agent/prompt/summary.txt +11 -0
  62. package/src/agent/prompt/title.txt +50 -0
  63. package/src/agent/subagent-permissions.ts +35 -0
  64. package/src/audio.d.ts +14 -0
  65. package/src/auth/index.ts +96 -0
  66. package/src/background/job.ts +36 -0
  67. package/src/bus/global.ts +22 -0
  68. package/src/cli/bootstrap.ts +11 -0
  69. package/src/cli/cmd/account.ts +264 -0
  70. package/src/cli/cmd/acp.ts +76 -0
  71. package/src/cli/cmd/agent.ts +259 -0
  72. package/src/cli/cmd/attach.ts +97 -0
  73. package/src/cli/cmd/cmd.ts +7 -0
  74. package/src/cli/cmd/db.ts +62 -0
  75. package/src/cli/cmd/debug/agent.handler.ts +188 -0
  76. package/src/cli/cmd/debug/agent.ts +27 -0
  77. package/src/cli/cmd/debug/config.ts +14 -0
  78. package/src/cli/cmd/debug/file.ts +87 -0
  79. package/src/cli/cmd/debug/index.ts +87 -0
  80. package/src/cli/cmd/debug/lsp.ts +51 -0
  81. package/src/cli/cmd/debug/ripgrep.ts +99 -0
  82. package/src/cli/cmd/debug/scrap.ts +18 -0
  83. package/src/cli/cmd/debug/skill.ts +15 -0
  84. package/src/cli/cmd/debug/snapshot.ts +50 -0
  85. package/src/cli/cmd/debug/startup.ts +11 -0
  86. package/src/cli/cmd/debug/v2.ts +46 -0
  87. package/src/cli/cmd/export.ts +292 -0
  88. package/src/cli/cmd/generate.ts +54 -0
  89. package/src/cli/cmd/github.handler.ts +1594 -0
  90. package/src/cli/cmd/github.shared.ts +30 -0
  91. package/src/cli/cmd/github.ts +42 -0
  92. package/src/cli/cmd/import.ts +224 -0
  93. package/src/cli/cmd/mcp.ts +859 -0
  94. package/src/cli/cmd/models.ts +66 -0
  95. package/src/cli/cmd/plug.ts +230 -0
  96. package/src/cli/cmd/pr.ts +115 -0
  97. package/src/cli/cmd/prompt-display.ts +1 -0
  98. package/src/cli/cmd/providers.ts +550 -0
  99. package/src/cli/cmd/run/demo.ts +1274 -0
  100. package/src/cli/cmd/run/entry.body.ts +205 -0
  101. package/src/cli/cmd/run/footer.command.tsx +1088 -0
  102. package/src/cli/cmd/run/footer.menu.tsx +353 -0
  103. package/src/cli/cmd/run/footer.permission.tsx +482 -0
  104. package/src/cli/cmd/run/footer.prompt.tsx +1351 -0
  105. package/src/cli/cmd/run/footer.question.tsx +580 -0
  106. package/src/cli/cmd/run/footer.subagent.tsx +180 -0
  107. package/src/cli/cmd/run/footer.ts +1153 -0
  108. package/src/cli/cmd/run/footer.view.tsx +992 -0
  109. package/src/cli/cmd/run/footer.width.ts +27 -0
  110. package/src/cli/cmd/run/otel.ts +117 -0
  111. package/src/cli/cmd/run/permission.shared.ts +256 -0
  112. package/src/cli/cmd/run/prompt.editor.ts +157 -0
  113. package/src/cli/cmd/run/prompt.shared.ts +153 -0
  114. package/src/cli/cmd/run/question.shared.ts +340 -0
  115. package/src/cli/cmd/run/runtime.boot.ts +202 -0
  116. package/src/cli/cmd/run/runtime.lifecycle.ts +431 -0
  117. package/src/cli/cmd/run/runtime.queue.ts +349 -0
  118. package/src/cli/cmd/run/runtime.shared.ts +17 -0
  119. package/src/cli/cmd/run/runtime.stdin.ts +37 -0
  120. package/src/cli/cmd/run/runtime.ts +905 -0
  121. package/src/cli/cmd/run/scrollback.shared.ts +92 -0
  122. package/src/cli/cmd/run/scrollback.surface.ts +448 -0
  123. package/src/cli/cmd/run/scrollback.writer.tsx +353 -0
  124. package/src/cli/cmd/run/splash.ts +284 -0
  125. package/src/cli/cmd/run/stream.transport.ts +1465 -0
  126. package/src/cli/cmd/run/stream.ts +175 -0
  127. package/src/cli/cmd/run/subagent-data.ts +876 -0
  128. package/src/cli/cmd/run/theme.ts +690 -0
  129. package/src/cli/cmd/run/tool.ts +1489 -0
  130. package/src/cli/cmd/run/trace.ts +94 -0
  131. package/src/cli/cmd/run/turn-summary.ts +47 -0
  132. package/src/cli/cmd/run/types.ts +350 -0
  133. package/src/cli/cmd/run/variant.shared.ts +215 -0
  134. package/src/cli/cmd/run.ts +897 -0
  135. package/src/cli/cmd/serve.ts +24 -0
  136. package/src/cli/cmd/stats.ts +393 -0
  137. package/src/cli/cmd/tui.ts +264 -0
  138. package/src/cli/cmd/uninstall.ts +353 -0
  139. package/src/cli/cmd/upgrade.ts +74 -0
  140. package/src/cli/cmd/web.ts +84 -0
  141. package/src/cli/effect/prompt.ts +37 -0
  142. package/src/cli/effect-cmd.ts +96 -0
  143. package/src/cli/error.ts +118 -0
  144. package/src/cli/heap.ts +66 -0
  145. package/src/cli/logo.ts +1 -0
  146. package/src/cli/network.ts +64 -0
  147. package/src/cli/tui/layer.ts +7 -0
  148. package/src/cli/tui/photon_rs_bg-bq08arze.wasm +0 -0
  149. package/src/cli/tui/tree-sitter-3jzf13jk.wasm +0 -0
  150. package/src/cli/tui/tree-sitter-bash-hq5s6fxb.wasm +0 -0
  151. package/src/cli/tui/tree-sitter-powershell-ryb2ffqs.wasm +0 -0
  152. package/src/cli/tui/worker.ts +99 -0
  153. package/src/cli/ui.ts +144 -0
  154. package/src/cli/upgrade.ts +53 -0
  155. package/src/command/index.ts +189 -0
  156. package/src/command/template/initialize.txt +66 -0
  157. package/src/command/template/review.txt +101 -0
  158. package/src/command/terminal-ai-commands.ts +567 -0
  159. package/src/config/agent.ts +68 -0
  160. package/src/config/command.ts +45 -0
  161. package/src/config/config.ts +686 -0
  162. package/src/config/entry-name.ts +19 -0
  163. package/src/config/managed.ts +77 -0
  164. package/src/config/markdown.ts +36 -0
  165. package/src/config/parse.ts +79 -0
  166. package/src/config/paths.ts +47 -0
  167. package/src/config/plugin.ts +79 -0
  168. package/src/config/reference.ts +48 -0
  169. package/src/config/tui-cwd.ts +5 -0
  170. package/src/config/tui-host-attention.ts +21 -0
  171. package/src/config/tui-migrate.ts +156 -0
  172. package/src/config/tui.ts +294 -0
  173. package/src/config/variable.ts +91 -0
  174. package/src/control-plane/adapters/index.ts +41 -0
  175. package/src/control-plane/adapters/worktree.ts +96 -0
  176. package/src/control-plane/dev/README.md +19 -0
  177. package/src/control-plane/dev/debug-workspace-plugin.ts +73 -0
  178. package/src/control-plane/types.ts +59 -0
  179. package/src/control-plane/util.ts +39 -0
  180. package/src/control-plane/workspace-adapter-runtime.ts +51 -0
  181. package/src/control-plane/workspace-context.ts +26 -0
  182. package/src/control-plane/workspace.ts +1075 -0
  183. package/src/desktop/agent.ts +147 -0
  184. package/src/desktop/index.ts +247 -0
  185. package/src/desktop/platform.ts +97 -0
  186. package/src/desktop/stream.ts +64 -0
  187. package/src/desktop/vision.ts +52 -0
  188. package/src/desktop/websocket.ts +120 -0
  189. package/src/effect/app-runtime.ts +133 -0
  190. package/src/effect/bootstrap-runtime.ts +23 -0
  191. package/src/effect/bridge.ts +84 -0
  192. package/src/effect/config-service.ts +67 -0
  193. package/src/effect/instance-ref.ts +11 -0
  194. package/src/effect/instance-registry.ts +12 -0
  195. package/src/effect/instance-state.ts +72 -0
  196. package/src/effect/promise.ts +17 -0
  197. package/src/effect/run-service.ts +47 -0
  198. package/src/effect/runner.ts +217 -0
  199. package/src/effect/runtime-flags.ts +76 -0
  200. package/src/env/index.ts +40 -0
  201. package/src/event-v2-bridge.ts +76 -0
  202. package/src/format/formatter.ts +404 -0
  203. package/src/format/index.ts +212 -0
  204. package/src/git/index.ts +347 -0
  205. package/src/id/id.ts +80 -0
  206. package/src/ide/index.ts +70 -0
  207. package/src/image/image.ts +177 -0
  208. package/src/index.ts +208 -0
  209. package/src/installation/index.ts +350 -0
  210. package/src/lsp/client.ts +686 -0
  211. package/src/lsp/diagnostic.ts +29 -0
  212. package/src/lsp/language.ts +121 -0
  213. package/src/lsp/launch.ts +21 -0
  214. package/src/lsp/lsp.ts +517 -0
  215. package/src/lsp/server.ts +2116 -0
  216. package/src/markdown.d.ts +4 -0
  217. package/src/mcp/auth.ts +171 -0
  218. package/src/mcp/builtin.ts +92 -0
  219. package/src/mcp/index.ts +1000 -0
  220. package/src/mcp/oauth-callback.ts +232 -0
  221. package/src/mcp/oauth-provider.ts +217 -0
  222. package/src/node.ts +5 -0
  223. package/src/patch/index.ts +689 -0
  224. package/src/permission/arity.ts +163 -0
  225. package/src/permission/evaluate.ts +1 -0
  226. package/src/permission/index.ts +230 -0
  227. package/src/plugin/azure.ts +26 -0
  228. package/src/plugin/cloudflare.ts +76 -0
  229. package/src/plugin/digitalocean.ts +391 -0
  230. package/src/plugin/github-copilot/copilot.ts +417 -0
  231. package/src/plugin/github-copilot/models.ts +246 -0
  232. package/src/plugin/index.ts +320 -0
  233. package/src/plugin/install.ts +439 -0
  234. package/src/plugin/loader.ts +237 -0
  235. package/src/plugin/meta.ts +188 -0
  236. package/src/plugin/openai/README.md +31 -0
  237. package/src/plugin/openai/codex.ts +647 -0
  238. package/src/plugin/openai/ws-pool.ts +290 -0
  239. package/src/plugin/openai/ws.ts +381 -0
  240. package/src/plugin/shared.ts +323 -0
  241. package/src/plugin/tui/internal.ts +12 -0
  242. package/src/plugin/tui/runtime.ts +1174 -0
  243. package/src/plugin/xai.ts +742 -0
  244. package/src/project/bootstrap-service.ts +9 -0
  245. package/src/project/bootstrap.ts +80 -0
  246. package/src/project/instance-context.ts +24 -0
  247. package/src/project/instance-layer.ts +11 -0
  248. package/src/project/instance-runtime.ts +16 -0
  249. package/src/project/instance-store.ts +207 -0
  250. package/src/project/project.ts +520 -0
  251. package/src/project/vcs.ts +435 -0
  252. package/src/provider/auth.ts +230 -0
  253. package/src/provider/error.ts +188 -0
  254. package/src/provider/model-status.ts +8 -0
  255. package/src/provider/provider.ts +2037 -0
  256. package/src/provider/transform.ts +1367 -0
  257. package/src/pty-preparation.ts +30 -0
  258. package/src/question/index.ts +229 -0
  259. package/src/question/schema.ts +10 -0
  260. package/src/reference/reference.ts +239 -0
  261. package/src/reference/repository-cache.ts +320 -0
  262. package/src/server/auth.ts +48 -0
  263. package/src/server/cors.ts +34 -0
  264. package/src/server/event.ts +13 -0
  265. package/src/server/global-lifecycle.ts +37 -0
  266. package/src/server/init-projectors.ts +3 -0
  267. package/src/server/mdns.ts +60 -0
  268. package/src/server/projectors.ts +1 -0
  269. package/src/server/proxy-util.ts +48 -0
  270. package/src/server/routes/instance/httpapi/AGENTS.md +39 -0
  271. package/src/server/routes/instance/httpapi/api.ts +80 -0
  272. package/src/server/routes/instance/httpapi/errors.ts +193 -0
  273. package/src/server/routes/instance/httpapi/groups/config.ts +65 -0
  274. package/src/server/routes/instance/httpapi/groups/control-plane.ts +35 -0
  275. package/src/server/routes/instance/httpapi/groups/control.ts +76 -0
  276. package/src/server/routes/instance/httpapi/groups/event.ts +29 -0
  277. package/src/server/routes/instance/httpapi/groups/experimental.ts +260 -0
  278. package/src/server/routes/instance/httpapi/groups/file.ts +172 -0
  279. package/src/server/routes/instance/httpapi/groups/global.ts +138 -0
  280. package/src/server/routes/instance/httpapi/groups/instance.ts +206 -0
  281. package/src/server/routes/instance/httpapi/groups/mcp.ts +156 -0
  282. package/src/server/routes/instance/httpapi/groups/metadata.ts +18 -0
  283. package/src/server/routes/instance/httpapi/groups/permission.ts +61 -0
  284. package/src/server/routes/instance/httpapi/groups/project-copy.ts +88 -0
  285. package/src/server/routes/instance/httpapi/groups/project.ts +93 -0
  286. package/src/server/routes/instance/httpapi/groups/provider.ts +101 -0
  287. package/src/server/routes/instance/httpapi/groups/pty.ts +172 -0
  288. package/src/server/routes/instance/httpapi/groups/query.ts +12 -0
  289. package/src/server/routes/instance/httpapi/groups/question.ts +74 -0
  290. package/src/server/routes/instance/httpapi/groups/reference.ts +60 -0
  291. package/src/server/routes/instance/httpapi/groups/sync.ts +113 -0
  292. package/src/server/routes/instance/httpapi/groups/tui.ts +208 -0
  293. package/src/server/routes/instance/httpapi/groups/workspace.ts +141 -0
  294. package/src/server/routes/instance/httpapi/handlers/config.ts +34 -0
  295. package/src/server/routes/instance/httpapi/handlers/control-plane.ts +37 -0
  296. package/src/server/routes/instance/httpapi/handlers/control.ts +37 -0
  297. package/src/server/routes/instance/httpapi/handlers/event.ts +102 -0
  298. package/src/server/routes/instance/httpapi/handlers/experimental.ts +187 -0
  299. package/src/server/routes/instance/httpapi/handlers/file.ts +128 -0
  300. package/src/server/routes/instance/httpapi/handlers/global.ts +157 -0
  301. package/src/server/routes/instance/httpapi/handlers/instance.ts +110 -0
  302. package/src/server/routes/instance/httpapi/handlers/mcp.ts +111 -0
  303. package/src/server/routes/instance/httpapi/handlers/permission.ts +41 -0
  304. package/src/server/routes/instance/httpapi/handlers/project-copy.ts +157 -0
  305. package/src/server/routes/instance/httpapi/handlers/project.ts +63 -0
  306. package/src/server/routes/instance/httpapi/handlers/provider.ts +113 -0
  307. package/src/server/routes/instance/httpapi/handlers/pty.ts +258 -0
  308. package/src/server/routes/instance/httpapi/handlers/question.ts +54 -0
  309. package/src/server/routes/instance/httpapi/handlers/reference.ts +27 -0
  310. package/src/server/routes/instance/httpapi/handlers/sync.ts +95 -0
  311. package/src/server/routes/instance/httpapi/handlers/tui.ts +131 -0
  312. package/src/server/routes/instance/httpapi/handlers/workspace.ts +102 -0
  313. package/src/server/routes/instance/httpapi/lifecycle.ts +57 -0
  314. package/src/server/routes/instance/httpapi/middleware/authorization.ts +150 -0
  315. package/src/server/routes/instance/httpapi/middleware/compression.ts +64 -0
  316. package/src/server/routes/instance/httpapi/middleware/cors-vary.ts +29 -0
  317. package/src/server/routes/instance/httpapi/middleware/error.ts +36 -0
  318. package/src/server/routes/instance/httpapi/middleware/fence.ts +25 -0
  319. package/src/server/routes/instance/httpapi/middleware/instance-context.ts +43 -0
  320. package/src/server/routes/instance/httpapi/middleware/proxy.ts +108 -0
  321. package/src/server/routes/instance/httpapi/middleware/schema-error.ts +42 -0
  322. package/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +250 -0
  323. package/src/server/routes/instance/httpapi/public.ts +535 -0
  324. package/src/server/routes/instance/httpapi/server.ts +281 -0
  325. package/src/server/routes/instance/httpapi/websocket-tracker.ts +57 -0
  326. package/src/server/server.ts +218 -0
  327. package/src/server/shared/fence.ts +68 -0
  328. package/src/server/shared/pty-ticket.ts +15 -0
  329. package/src/server/shared/public-ui.ts +12 -0
  330. package/src/server/shared/tui-control.ts +28 -0
  331. package/src/server/shared/ui.ts +108 -0
  332. package/src/server/shared/workspace-routing.ts +38 -0
  333. package/src/server/tui-event.ts +53 -0
  334. package/src/share/share-next.ts +379 -0
  335. package/src/shell/shell.ts +215 -0
  336. package/src/skill/discovery.ts +115 -0
  337. package/src/skill/index.ts +382 -0
  338. package/src/snapshot/index.ts +762 -0
  339. package/src/sql.d.ts +4 -0
  340. package/src/storage/schema.ts +5 -0
  341. package/src/storage/storage.ts +329 -0
  342. package/src/swarm/evolution.ts +304 -0
  343. package/src/swarm/index.ts +7 -0
  344. package/src/swarm/learning.ts +736 -0
  345. package/src/swarm/vision.ts +131 -0
  346. package/src/sync/README.md +179 -0
  347. package/src/sync/schema.ts +11 -0
  348. package/src/temporary.ts +33 -0
  349. package/src/tool/apply_patch.ts +313 -0
  350. package/src/tool/apply_patch.txt +33 -0
  351. package/src/tool/browser_click.ts +51 -0
  352. package/src/tool/browser_drag.ts +76 -0
  353. package/src/tool/browser_evaluate.ts +51 -0
  354. package/src/tool/browser_hover.ts +51 -0
  355. package/src/tool/browser_navigate.ts +45 -0
  356. package/src/tool/browser_screenshot.ts +66 -0
  357. package/src/tool/browser_select.ts +52 -0
  358. package/src/tool/browser_type.ts +52 -0
  359. package/src/tool/browser_wait.ts +60 -0
  360. package/src/tool/desktop_clipboard.ts +82 -0
  361. package/src/tool/desktop_control.ts +160 -0
  362. package/src/tool/desktop_record.ts +93 -0
  363. package/src/tool/desktop_replay.ts +99 -0
  364. package/src/tool/desktop_screen_record.ts +143 -0
  365. package/src/tool/desktop_window.ts +142 -0
  366. package/src/tool/desktop_workflow.ts +81 -0
  367. package/src/tool/edit.ts +737 -0
  368. package/src/tool/edit.txt +10 -0
  369. package/src/tool/external-directory.ts +49 -0
  370. package/src/tool/glob.ts +84 -0
  371. package/src/tool/glob.txt +6 -0
  372. package/src/tool/grep.ts +140 -0
  373. package/src/tool/grep.txt +8 -0
  374. package/src/tool/invalid.ts +21 -0
  375. package/src/tool/json-schema.ts +164 -0
  376. package/src/tool/lsp.ts +113 -0
  377. package/src/tool/lsp.txt +24 -0
  378. package/src/tool/mcp-websearch.ts +96 -0
  379. package/src/tool/open_app.ts +55 -0
  380. package/src/tool/open_terminal.ts +69 -0
  381. package/src/tool/plan-enter.txt +14 -0
  382. package/src/tool/plan-exit.txt +13 -0
  383. package/src/tool/plan.ts +79 -0
  384. package/src/tool/question.ts +44 -0
  385. package/src/tool/question.txt +10 -0
  386. package/src/tool/read.ts +392 -0
  387. package/src/tool/read.txt +14 -0
  388. package/src/tool/registry.ts +527 -0
  389. package/src/tool/schema.ts +14 -0
  390. package/src/tool/screenshot.ts +72 -0
  391. package/src/tool/shell/id.ts +19 -0
  392. package/src/tool/shell/prompt.ts +307 -0
  393. package/src/tool/shell/shell.txt +21 -0
  394. package/src/tool/shell.ts +669 -0
  395. package/src/tool/skill.ts +72 -0
  396. package/src/tool/skill.txt +5 -0
  397. package/src/tool/task.ts +339 -0
  398. package/src/tool/task.txt +19 -0
  399. package/src/tool/todo.ts +57 -0
  400. package/src/tool/todowrite.txt +44 -0
  401. package/src/tool/tool.ts +180 -0
  402. package/src/tool/truncate.ts +160 -0
  403. package/src/tool/truncation-dir.ts +4 -0
  404. package/src/tool/visual_qa.ts +77 -0
  405. package/src/tool/webfetch.ts +192 -0
  406. package/src/tool/webfetch.txt +13 -0
  407. package/src/tool/websearch.ts +143 -0
  408. package/src/tool/websearch.txt +14 -0
  409. package/src/tool/write.ts +104 -0
  410. package/src/tool/write.txt +8 -0
  411. package/src/util/archive.ts +17 -0
  412. package/src/util/bom.ts +27 -0
  413. package/src/util/data-url.ts +9 -0
  414. package/src/util/defer.ts +10 -0
  415. package/src/util/effect-http-client.ts +11 -0
  416. package/src/util/error.ts +1 -0
  417. package/src/util/filesystem.ts +251 -0
  418. package/src/util/iife.ts +3 -0
  419. package/src/util/lazy.ts +20 -0
  420. package/src/util/local-context.ts +25 -0
  421. package/src/util/locale.ts +2 -0
  422. package/src/util/media.ts +26 -0
  423. package/src/util/process.ts +177 -0
  424. package/src/util/proxy-env.ts +72 -0
  425. package/src/util/queue.ts +32 -0
  426. package/src/util/record.ts +1 -0
  427. package/src/util/repository.ts +232 -0
  428. package/src/util/rpc.ts +66 -0
  429. package/src/util/signal.ts +12 -0
  430. package/src/util/sys-monitor.ts +223 -0
  431. package/src/util/timeout.ts +13 -0
  432. package/src/util/wildcard.ts +59 -0
  433. package/src/worktree/index.ts +645 -0
  434. package/sst-env.d.ts +10 -0
  435. package/test/AGENTS.md +204 -0
  436. package/test/EFFECT_TEST_MIGRATION.md +169 -0
  437. package/test/account/repo.test.ts +353 -0
  438. package/test/account/service.test.ts +453 -0
  439. package/test/acp/config-option.test.ts +229 -0
  440. package/test/acp/content.test.ts +201 -0
  441. package/test/acp/directory.test.ts +186 -0
  442. package/test/acp/error.test.ts +67 -0
  443. package/test/acp/event.test.ts +743 -0
  444. package/test/acp/permission.test.ts +273 -0
  445. package/test/acp/tool.test.ts +210 -0
  446. package/test/acp/usage.test.ts +315 -0
  447. package/test/agent/agent.test.ts +711 -0
  448. package/test/agent/plan-mode-subagent-bypass.test.ts +213 -0
  449. package/test/agent/plugin-agent-regression.test.ts +62 -0
  450. package/test/auth/auth.test.ts +77 -0
  451. package/test/background/job.test.ts +243 -0
  452. package/test/cli/account.test.ts +30 -0
  453. package/test/cli/acp/acp-test-client.ts +97 -0
  454. package/test/cli/acp/config-options.test.ts +103 -0
  455. package/test/cli/acp/helpers.ts +96 -0
  456. package/test/cli/acp/initialize-auth.test.ts +61 -0
  457. package/test/cli/acp/lifecycle.test.ts +118 -0
  458. package/test/cli/acp/prompt-content.test.ts +97 -0
  459. package/test/cli/acp/skills.test.ts +38 -0
  460. package/test/cli/cmd/tui/attention.test.ts +484 -0
  461. package/test/cli/effect-cmd-instance-als.test.ts +39 -0
  462. package/test/cli/error.test.ts +95 -0
  463. package/test/cli/github-action.test.ts +199 -0
  464. package/test/cli/github-remote.test.ts +90 -0
  465. package/test/cli/help/__snapshots__/help-snapshots.test.ts.snap +631 -0
  466. package/test/cli/help/help-snapshots.test.ts +137 -0
  467. package/test/cli/import.test.ts +54 -0
  468. package/test/cli/mcp-add.test.ts +74 -0
  469. package/test/cli/plugin-auth-picker.test.ts +120 -0
  470. package/test/cli/run/entry.body.test.ts +536 -0
  471. package/test/cli/run/footer.menu.test.ts +43 -0
  472. package/test/cli/run/footer.view.test.tsx +1336 -0
  473. package/test/cli/run/footer.width.test.ts +35 -0
  474. package/test/cli/run/permission.shared.test.ts +144 -0
  475. package/test/cli/run/prompt.editor.test.ts +101 -0
  476. package/test/cli/run/prompt.shared.test.ts +101 -0
  477. package/test/cli/run/question.shared.test.ts +115 -0
  478. package/test/cli/run/run-process.test.ts +84 -0
  479. package/test/cli/run/runtime.boot.test.ts +283 -0
  480. package/test/cli/run/runtime.queue.test.ts +481 -0
  481. package/test/cli/run/runtime.stdin.test.ts +71 -0
  482. package/test/cli/run/runtime.test.ts +238 -0
  483. package/test/cli/run/scrollback.surface.test.ts +1065 -0
  484. package/test/cli/run/stream.test.ts +56 -0
  485. package/test/cli/run/stream.transport.test.ts +2363 -0
  486. package/test/cli/run/subagent-data.test.ts +547 -0
  487. package/test/cli/run/theme.test.ts +177 -0
  488. package/test/cli/run/variant.shared.test.ts +217 -0
  489. package/test/cli/serve/serve-process.test.ts +61 -0
  490. package/test/cli/smokes/read-only.test.ts +115 -0
  491. package/test/cli/tui/attach.test.ts +11 -0
  492. package/test/cli/tui/editor-context-zed.test.ts +379 -0
  493. package/test/cli/tui/editor-context.test.tsx +297 -0
  494. package/test/cli/tui/plugin-add.test.ts +110 -0
  495. package/test/cli/tui/plugin-install.test.ts +87 -0
  496. package/test/cli/tui/plugin-lifecycle.test.ts +224 -0
  497. package/test/cli/tui/plugin-loader-entrypoint.test.ts +485 -0
  498. package/test/cli/tui/plugin-loader-pure.test.ts +72 -0
  499. package/test/cli/tui/plugin-loader.test.ts +1332 -0
  500. package/test/cli/tui/plugin-toggle.test.ts +264 -0
  501. package/test/cli/tui/thread.test.ts +36 -0
  502. package/test/cli.test.ts +7 -0
  503. package/test/command/acp-slash-detect.test.ts +202 -0
  504. package/test/command/demo-slash.test.ts +213 -0
  505. package/test/command/slash-head.test.ts +232 -0
  506. package/test/command/slash-parsing.test.ts +193 -0
  507. package/test/command/terminal-ai-commands.test.ts +536 -0
  508. package/test/config/agent-color.test.ts +47 -0
  509. package/test/config/config.test.ts +1994 -0
  510. package/test/config/entry-name.test.ts +57 -0
  511. package/test/config/fixtures/empty-frontmatter.md +4 -0
  512. package/test/config/fixtures/frontmatter.md +28 -0
  513. package/test/config/fixtures/markdown-header.md +11 -0
  514. package/test/config/fixtures/no-frontmatter.md +1 -0
  515. package/test/config/fixtures/weird-model-id.md +13 -0
  516. package/test/config/lsp.test.ts +69 -0
  517. package/test/config/markdown.test.ts +228 -0
  518. package/test/config/plugin.test.ts +0 -0
  519. package/test/config/tui.test.ts +886 -0
  520. package/test/control-plane/adapters.test.ts +71 -0
  521. package/test/control-plane/workspace.test.ts +1704 -0
  522. package/test/effect/app-runtime-logger.test.ts +105 -0
  523. package/test/effect/config-service.test.ts +65 -0
  524. package/test/effect/instance-state.test.ts +391 -0
  525. package/test/effect/run-service.test.ts +89 -0
  526. package/test/effect/runner.test.ts +514 -0
  527. package/test/effect/runtime-flags.test.ts +373 -0
  528. package/test/fake/account.ts +9 -0
  529. package/test/fake/auth.ts +8 -0
  530. package/test/fake/npm.ts +8 -0
  531. package/test/fake/provider.ts +82 -0
  532. package/test/fake/skill.ts +8 -0
  533. package/test/filesystem/filesystem.test.ts +319 -0
  534. package/test/fixture/agent-plugin.constants.ts +6 -0
  535. package/test/fixture/agent-plugin.ts +12 -0
  536. package/test/fixture/config.ts +23 -0
  537. package/test/fixture/db.ts +11 -0
  538. package/test/fixture/fixture.test.ts +26 -0
  539. package/test/fixture/fixture.ts +224 -0
  540. package/test/fixture/flag.ts +20 -0
  541. package/test/fixture/flock-worker.ts +72 -0
  542. package/test/fixture/lsp/fake-lsp-server.js +249 -0
  543. package/test/fixture/plug-worker.ts +96 -0
  544. package/test/fixture/plugin-meta-worker.ts +19 -0
  545. package/test/fixture/plugin.ts +10 -0
  546. package/test/fixture/skills/agents-sdk/SKILL.md +152 -0
  547. package/test/fixture/skills/agents-sdk/references/callable.md +92 -0
  548. package/test/fixture/skills/cloudflare/SKILL.md +211 -0
  549. package/test/fixture/skills/index.json +6 -0
  550. package/test/fixture/tui-environment.tsx +32 -0
  551. package/test/fixture/tui-plugin.ts +357 -0
  552. package/test/fixture/tui-runtime.ts +56 -0
  553. package/test/fixture/tui-sdk.ts +82 -0
  554. package/test/fixture/workspace.ts +30 -0
  555. package/test/format/format.test.ts +228 -0
  556. package/test/git/git.test.ts +178 -0
  557. package/test/ide/ide.test.ts +82 -0
  558. package/test/image/fixtures/picture-5mb-base64.png +0 -0
  559. package/test/image/image.test.ts +123 -0
  560. package/test/installation/installation.test.ts +231 -0
  561. package/test/lib/cli-process.ts +459 -0
  562. package/test/lib/effect.ts +177 -0
  563. package/test/lib/filesystem.ts +10 -0
  564. package/test/lib/llm-server.ts +771 -0
  565. package/test/lib/snapshot.ts +73 -0
  566. package/test/lib/test-provider.ts +37 -0
  567. package/test/lib/websocket.ts +46 -0
  568. package/test/lsp/client.test.ts +493 -0
  569. package/test/lsp/index.test.ts +232 -0
  570. package/test/lsp/jdtls-root.test.ts +459 -0
  571. package/test/lsp/launch.test.ts +22 -0
  572. package/test/lsp/lifecycle.test.ts +160 -0
  573. package/test/mcp/auth.test.ts +78 -0
  574. package/test/mcp/builtin.test.ts +95 -0
  575. package/test/mcp/headers.test.ts +126 -0
  576. package/test/mcp/lifecycle.test.ts +999 -0
  577. package/test/mcp/oauth-auto-connect.test.ts +274 -0
  578. package/test/mcp/oauth-browser.test.ts +232 -0
  579. package/test/mcp/oauth-callback.test.ts +34 -0
  580. package/test/mcp/oauth-provider.test.ts +61 -0
  581. package/test/patch/patch.test.ts +383 -0
  582. package/test/permission/arity.test.ts +33 -0
  583. package/test/permission/next.test.ts +1176 -0
  584. package/test/permission-task.test.ts +318 -0
  585. package/test/plugin/auth-override.test.ts +105 -0
  586. package/test/plugin/cloudflare.test.ts +68 -0
  587. package/test/plugin/codex.test.ts +247 -0
  588. package/test/plugin/github-copilot-models.test.ts +332 -0
  589. package/test/plugin/install-concurrency.test.ts +140 -0
  590. package/test/plugin/install.test.ts +573 -0
  591. package/test/plugin/loader-shared.test.ts +1303 -0
  592. package/test/plugin/meta.test.ts +137 -0
  593. package/test/plugin/openai-rollout.test.ts +17 -0
  594. package/test/plugin/openai-ws.test.ts +877 -0
  595. package/test/plugin/shared.test.ts +88 -0
  596. package/test/plugin/trigger.test.ts +120 -0
  597. package/test/plugin/workspace-adapter.test.ts +137 -0
  598. package/test/plugin/xai.test.ts +634 -0
  599. package/test/preload.ts +99 -0
  600. package/test/project/instance-bootstrap.test.ts +110 -0
  601. package/test/project/instance.test.ts +245 -0
  602. package/test/project/migrate-global.test.ts +170 -0
  603. package/test/project/project-directory.test.ts +169 -0
  604. package/test/project/project.test.ts +818 -0
  605. package/test/project/vcs.test.ts +336 -0
  606. package/test/project/worktree-remove.test.ts +126 -0
  607. package/test/project/worktree.test.ts +320 -0
  608. package/test/provider/amazon-bedrock.test.ts +360 -0
  609. package/test/provider/cf-ai-gateway-e2e.test.ts +132 -0
  610. package/test/provider/digitalocean.test.ts +123 -0
  611. package/test/provider/gitlab-duo.test.ts +412 -0
  612. package/test/provider/header-timeout.test.ts +233 -0
  613. package/test/provider/model-status.test.ts +61 -0
  614. package/test/provider/provider.test.ts +1795 -0
  615. package/test/provider/transform.test.ts +3937 -0
  616. package/test/pty/pty-shell.test.ts +102 -0
  617. package/test/question/question.test.ts +465 -0
  618. package/test/reference/reference.test.ts +311 -0
  619. package/test/server/AGENTS.md +15 -0
  620. package/test/server/auth.test.ts +59 -0
  621. package/test/server/global-bus.ts +31 -0
  622. package/test/server/httpapi-authorization.test.ts +174 -0
  623. package/test/server/httpapi-compression.test.ts +154 -0
  624. package/test/server/httpapi-config.test.ts +113 -0
  625. package/test/server/httpapi-control-plane.test.ts +63 -0
  626. package/test/server/httpapi-cors-vary.test.ts +66 -0
  627. package/test/server/httpapi-cors.test.ts +122 -0
  628. package/test/server/httpapi-error-middleware.test.ts +96 -0
  629. package/test/server/httpapi-event.test.ts +97 -0
  630. package/test/server/httpapi-exercise/assertions.ts +64 -0
  631. package/test/server/httpapi-exercise/backend.ts +144 -0
  632. package/test/server/httpapi-exercise/dsl.ts +210 -0
  633. package/test/server/httpapi-exercise/environment.ts +40 -0
  634. package/test/server/httpapi-exercise/index.ts +1538 -0
  635. package/test/server/httpapi-exercise/report.ts +66 -0
  636. package/test/server/httpapi-exercise/routing.ts +96 -0
  637. package/test/server/httpapi-exercise/runner.ts +267 -0
  638. package/test/server/httpapi-exercise/runtime.ts +52 -0
  639. package/test/server/httpapi-exercise/types.ts +123 -0
  640. package/test/server/httpapi-experimental.test.ts +300 -0
  641. package/test/server/httpapi-file.test.ts +76 -0
  642. package/test/server/httpapi-global.test.ts +66 -0
  643. package/test/server/httpapi-instance-context.test.ts +347 -0
  644. package/test/server/httpapi-instance-route-auth.test.ts +84 -0
  645. package/test/server/httpapi-instance.test.ts +265 -0
  646. package/test/server/httpapi-layer.ts +33 -0
  647. package/test/server/httpapi-listen.test.ts +415 -0
  648. package/test/server/httpapi-mcp-oauth.test.ts +73 -0
  649. package/test/server/httpapi-mcp.test.ts +234 -0
  650. package/test/server/httpapi-mdns.test.ts +82 -0
  651. package/test/server/httpapi-promptasync-context.test.ts +222 -0
  652. package/test/server/httpapi-provider.test.ts +403 -0
  653. package/test/server/httpapi-pty.test.ts +275 -0
  654. package/test/server/httpapi-public-openapi.test.ts +297 -0
  655. package/test/server/httpapi-query-schema-drift.test.ts +330 -0
  656. package/test/server/httpapi-reference.test.ts +56 -0
  657. package/test/server/httpapi-schema-error-body.test.ts +165 -0
  658. package/test/server/httpapi-sdk.test.ts +909 -0
  659. package/test/server/httpapi-sync.test.ts +154 -0
  660. package/test/server/httpapi-ui.test.ts +456 -0
  661. package/test/server/httpapi-v2-location.test.ts +85 -0
  662. package/test/server/httpapi-workspace-routing.test.ts +554 -0
  663. package/test/server/httpapi-workspace.test.ts +515 -0
  664. package/test/server/project-copy.test.ts +101 -0
  665. package/test/server/project-init-git.test.ts +117 -0
  666. package/test/server/proxy-util.test.ts +113 -0
  667. package/test/server/sdk-error-shape.test.ts +84 -0
  668. package/test/server/sdk-v1-smoke.test.ts +60 -0
  669. package/test/server/workspace-proxy.test.ts +181 -0
  670. package/test/server/workspace-routing.test.ts +94 -0
  671. package/test/server/worktree-endpoint-repro.test.ts +307 -0
  672. package/test/share/share-next.test.ts +344 -0
  673. package/test/shell/shell.test.ts +99 -0
  674. package/test/skill/discovery.test.ts +139 -0
  675. package/test/skill/skill.test.ts +571 -0
  676. package/test/snapshot/snapshot.test.ts +1121 -0
  677. package/test/storage/storage.test.ts +296 -0
  678. package/test/storage/workspace-time-migration.test.ts +50 -0
  679. package/test/tool/__snapshots__/parameters.test.ts.snap +484 -0
  680. package/test/tool/__snapshots__/tool.test.ts.snap +9 -0
  681. package/test/tool/apply_patch.test.ts +533 -0
  682. package/test/tool/browser.integration.test.ts +141 -0
  683. package/test/tool/desktop.integration.test.ts +129 -0
  684. package/test/tool/desktop.test.ts +85 -0
  685. package/test/tool/edit.test.ts +578 -0
  686. package/test/tool/external-directory.test.ts +167 -0
  687. package/test/tool/fixtures/large-image.png +0 -0
  688. package/test/tool/fixtures/models-api.json +117299 -0
  689. package/test/tool/glob.test.ts +188 -0
  690. package/test/tool/grep.test.ts +266 -0
  691. package/test/tool/lsp.test.ts +181 -0
  692. package/test/tool/parameters.test.ts +293 -0
  693. package/test/tool/question.test.ts +138 -0
  694. package/test/tool/read.test.ts +659 -0
  695. package/test/tool/registry.test.ts +539 -0
  696. package/test/tool/shell.test.ts +1256 -0
  697. package/test/tool/skill.test.ts +135 -0
  698. package/test/tool/task.test.ts +901 -0
  699. package/test/tool/tool-define.test.ts +153 -0
  700. package/test/tool/truncation.test.ts +266 -0
  701. package/test/tool/webfetch.test.ts +113 -0
  702. package/test/tool/websearch.test.ts +99 -0
  703. package/test/tool/write.test.ts +276 -0
  704. package/test/util/data-url.test.ts +14 -0
  705. package/test/util/error.test.ts +16 -0
  706. package/test/util/filesystem.test.ts +656 -0
  707. package/test/util/glob.test.ts +164 -0
  708. package/test/util/iife.test.ts +36 -0
  709. package/test/util/lazy.test.ts +50 -0
  710. package/test/util/log.test.ts +77 -0
  711. package/test/util/module.test.ts +59 -0
  712. package/test/util/process.test.ts +128 -0
  713. package/test/util/repository.test.ts +93 -0
  714. package/test/util/timeout.test.ts +21 -0
  715. package/test/util/wildcard.test.ts +90 -0
  716. package/tsconfig.json +16 -0
@@ -0,0 +1,567 @@
1
+ type BuiltinCommand = {
2
+ name: string
3
+ description: string
4
+ template: string
5
+ subtask?: boolean
6
+ }
7
+
8
+ const workspaceContext = `
9
+ Use the available project context and tools. If the requested behavior needs a native UI, account, billing, browser, IDE, remote runner, or daemon integration that is not available from this prompt command, explain the limitation clearly and provide the closest actionable result.
10
+ `.trim()
11
+
12
+ export const TerminalAICommands: BuiltinCommand[] = [
13
+ {
14
+ name: "btw",
15
+ description: "run an isolated side prompt without changing the main task",
16
+ template: `
17
+ Treat this as a by-the-way side request. Answer the user request below independently from the active implementation plan, avoid making file changes unless explicitly asked, and keep the response concise.
18
+
19
+ $ARGUMENTS
20
+ `.trim(),
21
+ },
22
+ {
23
+ name: "rewind",
24
+ description: "review recent changes and propose a safe rollback point",
25
+ template: `
26
+ Inspect the recent conversation context, git status, and available diffs. Identify the safest rollback options for the user's request, including what files or commands would be affected. Do not revert anything unless explicitly instructed.
27
+
28
+ $ARGUMENTS
29
+ `.trim(),
30
+ },
31
+ {
32
+ name: "teleport",
33
+ description: "prepare a handoff summary for another interface",
34
+ template: `
35
+ Create a compact handoff summary that can be pasted into another UI. Include current goal, relevant files, decisions, open risks, and the next concrete action.
36
+
37
+ $ARGUMENTS
38
+ `.trim(),
39
+ },
40
+ {
41
+ name: "add-dir",
42
+ description: "assess adding an external directory to the workspace context",
43
+ template: `
44
+ Evaluate this external directory request. Verify the path if provided, explain what context it would add, and recommend the least risky way to include it in the current workspace flow. Do not make broad file changes.
45
+
46
+ Directory or request:
47
+ $ARGUMENTS
48
+ `.trim(),
49
+ },
50
+ {
51
+ name: "sandbox",
52
+ description: "review filesystem and command sandbox expectations",
53
+ template: `
54
+ Review the current sandbox, filesystem, and command-execution assumptions for this task. Explain what operations are safe, what needs confirmation, and what should be avoided.
55
+
56
+ $ARGUMENTS
57
+ `.trim(),
58
+ },
59
+ {
60
+ name: "permissions",
61
+ description: "audit tool and command permission boundaries",
62
+ template: `
63
+ Audit the permission boundaries relevant to the current task. Identify commands or file operations that may need approval, dangerous patterns to avoid, and safer alternatives.
64
+
65
+ $ARGUMENTS
66
+ `.trim(),
67
+ },
68
+ {
69
+ name: "plugin",
70
+ description: "plan or inspect plugin setup",
71
+ template: `
72
+ Inspect or plan plugin-related work for the current project. Identify installed plugin surfaces, likely config files, and the safest next steps for installing, configuring, or removing plugins.
73
+
74
+ $ARGUMENTS
75
+ `.trim(),
76
+ },
77
+ {
78
+ name: "plugins",
79
+ description: "list and reason about available plugin surfaces",
80
+ template: `
81
+ List the plugin surfaces relevant to this project and explain how they affect commands, tools, auth, providers, UI, or hooks. Include concrete files or commands when available.
82
+
83
+ $ARGUMENTS
84
+ `.trim(),
85
+ },
86
+ {
87
+ name: "reload-plugins",
88
+ description: "reload or simulate plugin refresh steps",
89
+ template: `
90
+ Determine how to refresh plugin state for this workspace. If a native reload action exists, use it or explain it. Otherwise list the minimum restart or config refresh steps needed.
91
+
92
+ $ARGUMENTS
93
+ `.trim(),
94
+ },
95
+ {
96
+ name: "ide",
97
+ description: "inspect IDE integration state",
98
+ template: `
99
+ Inspect the current IDE/editor integration assumptions. Check for relevant environment variables, editor context, workspace files, and integration settings, then summarize what is connected and what is missing.
100
+
101
+ $ARGUMENTS
102
+ `.trim(),
103
+ },
104
+ {
105
+ name: "terminal-setup",
106
+ description: "review terminal integration and keybinding setup",
107
+ template: `
108
+ Review terminal setup for this CLI workflow. Check shell, OS, keybinding, multiline-input, clipboard, and terminal capability assumptions where possible. Recommend concrete fixes.
109
+
110
+ $ARGUMENTS
111
+ `.trim(),
112
+ },
113
+ {
114
+ name: "remote-control",
115
+ description: "plan authenticated remote control setup",
116
+ template: `
117
+ Plan a remote-control setup for the active workspace. Cover authentication, network exposure, allowed commands, lifecycle, logging, and rollback. Do not open listeners unless explicitly requested.
118
+
119
+ $ARGUMENTS
120
+ `.trim(),
121
+ },
122
+ {
123
+ name: "remote-env",
124
+ description: "review environment variables for remote runners",
125
+ template: `
126
+ Review the environment variables and secrets needed for a remote or headless runner. Identify required values, sensitive values, and a safe way to configure them.
127
+
128
+ $ARGUMENTS
129
+ `.trim(),
130
+ },
131
+ {
132
+ name: "chrome",
133
+ description: "plan browser automation or visual QA",
134
+ template: `
135
+ Plan or run browser/Chromium-based inspection for the current UI task when tools are available. Focus on screenshots, DOM state, console errors, network errors, and concrete regressions.
136
+
137
+ $ARGUMENTS
138
+ `.trim(),
139
+ },
140
+ {
141
+ name: "install-github-app",
142
+ description: "plan GitHub app or repository integration",
143
+ template: `
144
+ Plan GitHub app integration for this repository. Identify permissions, token flow, repository settings, workflow changes, and security risks. Do not install or authorize anything unless explicitly requested.
145
+
146
+ $ARGUMENTS
147
+ `.trim(),
148
+ },
149
+ {
150
+ name: "fast",
151
+ description: "handle a request with low-latency constraints",
152
+ template: `
153
+ Handle this in fast mode. Prefer the simplest reliable answer or edit, avoid broad exploration, and call out any shortcuts or residual risk.
154
+
155
+ $ARGUMENTS
156
+ `.trim(),
157
+ },
158
+ {
159
+ name: "plan",
160
+ description: "create an implementation plan without editing files",
161
+ template: `
162
+ Create a concrete implementation plan for the request below. Do not edit files. Include the files likely to change, major risks, and verification steps.
163
+
164
+ $ARGUMENTS
165
+ `.trim(),
166
+ },
167
+ {
168
+ name: "todos",
169
+ description: "scan workspace TODO, FIXME, and HACK comments",
170
+ template: `
171
+ Scan the current workspace for TODO, FIXME, HACK, and similar follow-up markers. Summarize them by area, priority, and whether they are relevant to the current task.
172
+
173
+ $ARGUMENTS
174
+ `.trim(),
175
+ },
176
+ {
177
+ name: "context",
178
+ description: "summarize active context and token pressure",
179
+ template: `
180
+ Summarize the active task context: current goal, relevant files, important decisions, unknowns, and likely context-window pressure. Keep it actionable.
181
+
182
+ $ARGUMENTS
183
+ `.trim(),
184
+ },
185
+ {
186
+ name: "cost",
187
+ description: "estimate cost and resource impact",
188
+ template: `
189
+ Estimate the cost and resource impact of the current task using available information. Include likely model/tool usage drivers and practical ways to reduce unnecessary work.
190
+
191
+ $ARGUMENTS
192
+ `.trim(),
193
+ },
194
+ {
195
+ name: "usage",
196
+ description: "summarize usage, quotas, and limits when available",
197
+ template: `
198
+ Report usage, quota, or limit information relevant to the current project and CLI session when available. If live account usage is unavailable, state that and summarize local observable usage signals.
199
+
200
+ $ARGUMENTS
201
+ `.trim(),
202
+ },
203
+ {
204
+ name: "stats",
205
+ description: "summarize project or session activity statistics",
206
+ template: `
207
+ Gather useful local statistics for the current project or session, such as changed files, commit activity, test counts, command frequency if available, and code areas touched.
208
+
209
+ $ARGUMENTS
210
+ `.trim(),
211
+ },
212
+ {
213
+ name: "insights",
214
+ description: "produce engineering insights from recent work",
215
+ template: `
216
+ Analyze recent work and produce engineering insights: recurring bug patterns, review delays, risky modules, refactor opportunities, and practical next actions.
217
+
218
+ $ARGUMENTS
219
+ `.trim(),
220
+ },
221
+ {
222
+ name: "extra-usage",
223
+ description: "plan guardrails for high-usage work",
224
+ template: `
225
+ Plan usage guardrails for a high-demand task. Identify expensive steps, cheaper alternatives, stopping points, and what information should be gathered before spending more compute.
226
+
227
+ $ARGUMENTS
228
+ `.trim(),
229
+ },
230
+ {
231
+ name: "doctor",
232
+ description: "run a local environment diagnostic pass",
233
+ template: `
234
+ Run a diagnostic pass for the local development environment. Check relevant runtimes, package managers, git state, config, permissions, network assumptions, and likely blockers.
235
+
236
+ $ARGUMENTS
237
+ `.trim(),
238
+ },
239
+ {
240
+ name: "release-notes",
241
+ description: "summarize release notes or local changelog impact",
242
+ template: `
243
+ Summarize release notes or changelog impact for the current project. Prefer user-facing changes, compatibility risks, migration notes, and verification steps.
244
+
245
+ $ARGUMENTS
246
+ `.trim(),
247
+ },
248
+ {
249
+ name: "upgrade",
250
+ description: "plan a safe dependency or CLI upgrade",
251
+ template: `
252
+ Plan a safe upgrade. Identify the target package/tool/version, compatibility risks, required commands, tests, rollback path, and files likely to change. Do not upgrade unless explicitly requested.
253
+
254
+ $ARGUMENTS
255
+ `.trim(),
256
+ },
257
+ {
258
+ name: "feedback",
259
+ description: "package a clear bug report or feedback note",
260
+ template: `
261
+ Prepare a concise feedback or bug report from the current context. Include expected behavior, actual behavior, reproduction steps, environment, logs, and suggested severity.
262
+
263
+ $ARGUMENTS
264
+ `.trim(),
265
+ },
266
+ {
267
+ name: "passes",
268
+ description: "prepare external access or review pass instructions",
269
+ template: `
270
+ Prepare instructions for granting temporary external access or review passes. Cover scope, expiration, permissions, auditability, and revocation. Do not create credentials unless explicitly requested.
271
+
272
+ $ARGUMENTS
273
+ `.trim(),
274
+ },
275
+ {
276
+ name: "stickers",
277
+ description: "prepare a terminal profile or swag request",
278
+ template: `
279
+ Prepare a short profile or request note for stickers or swag. If this needs an external portal, say so and provide the information to submit manually.
280
+
281
+ $ARGUMENTS
282
+ `.trim(),
283
+ },
284
+ {
285
+ name: "mobile",
286
+ description: "plan mobile companion setup",
287
+ template: `
288
+ Plan mobile companion setup for this CLI/workspace. Include authentication, QR/deep-link expectations, synced state, security risks, and fallback manual steps.
289
+
290
+ $ARGUMENTS
291
+ `.trim(),
292
+ },
293
+ {
294
+ name: "ios",
295
+ description: "plan iOS companion setup",
296
+ template: `
297
+ Plan iOS companion setup for this CLI/workspace. Include authentication, QR/deep-link expectations, synced state, security risks, and fallback manual steps.
298
+
299
+ $ARGUMENTS
300
+ `.trim(),
301
+ },
302
+ {
303
+ name: "android",
304
+ description: "plan Android companion setup",
305
+ template: `
306
+ Plan Android companion setup for this CLI/workspace. Include authentication, QR/deep-link expectations, synced state, security risks, and fallback manual steps.
307
+
308
+ $ARGUMENTS
309
+ `.trim(),
310
+ },
311
+ {
312
+ name: "vim",
313
+ description: "review Vim mode or modal editing setup",
314
+ template: `
315
+ Review Vim/modal editing setup for this terminal workflow. Identify current support, configuration files, keybinding conflicts, and implementation steps if native support is missing.
316
+
317
+ $ARGUMENTS
318
+ `.trim(),
319
+ },
320
+ {
321
+ name: "color",
322
+ description: "propose prompt and accent color settings",
323
+ template: `
324
+ Propose color settings for the current CLI/TUI design. Respect the existing design system, accessibility, contrast, and terminal limitations.
325
+
326
+ $ARGUMENTS
327
+ `.trim(),
328
+ },
329
+ {
330
+ name: "statusline",
331
+ description: "design or inspect statusline content",
332
+ template: `
333
+ Inspect or design the statusline for this CLI. Recommend what should be shown, hidden, or moved, including branch, model, agent, cost, usage, and active task state.
334
+
335
+ $ARGUMENTS
336
+ `.trim(),
337
+ },
338
+ {
339
+ name: "output-style",
340
+ description: "adjust response format and verbosity",
341
+ template: `
342
+ Use the requested output style for the next response. If no style is specified, recommend a style based on the task. Keep code and command output readable.
343
+
344
+ $ARGUMENTS
345
+ `.trim(),
346
+ },
347
+ {
348
+ name: "voice",
349
+ description: "plan voice input support",
350
+ template: `
351
+ Plan voice input support for this terminal workflow. Cover capture, push-to-talk, transcription provider, privacy, latency, UI states, and fallback keyboard behavior.
352
+
353
+ $ARGUMENTS
354
+ `.trim(),
355
+ },
356
+ {
357
+ name: "code-review",
358
+ description: "review code changes for bugs and regressions",
359
+ subtask: true,
360
+ template: `
361
+ Review the current code changes with a bug-finding stance. Prioritize correctness, regressions, security, accessibility, missing tests, and maintainability. Report findings first with file references, then summarize.
362
+
363
+ $ARGUMENTS
364
+ `.trim(),
365
+ },
366
+ {
367
+ name: "simplify",
368
+ description: "simplify code while preserving behavior",
369
+ subtask: true,
370
+ template: `
371
+ Find opportunities to simplify the requested code or recent changes while preserving behavior. Prefer removing unnecessary complexity over broad refactors. Explain and implement only safe improvements.
372
+
373
+ $ARGUMENTS
374
+ `.trim(),
375
+ },
376
+ {
377
+ name: "security-review",
378
+ description: "scan for security risks and secret exposure",
379
+ subtask: true,
380
+ template: `
381
+ Perform a security review. Look for secret leaks, injection paths, unsafe filesystem or shell behavior, auth issues, dependency risk, and permission boundary mistakes. Report concrete findings first.
382
+
383
+ $ARGUMENTS
384
+ `.trim(),
385
+ },
386
+ {
387
+ name: "debug",
388
+ description: "debug failing commands, tests, or runtime errors",
389
+ subtask: true,
390
+ template: `
391
+ Debug the failure described below. Reproduce when possible, inspect logs and relevant code, identify root cause, implement a minimal fix if appropriate, and verify it.
392
+
393
+ $ARGUMENTS
394
+ `.trim(),
395
+ },
396
+ {
397
+ name: "loop",
398
+ description: "run an iterative fix and verify loop",
399
+ subtask: true,
400
+ template: `
401
+ Run an iterative implementation loop for the request below: make a focused change, run the relevant verification, inspect failures, and repeat until handled or clearly blocked. Keep changes scoped.
402
+
403
+ $ARGUMENTS
404
+ `.trim(),
405
+ },
406
+ {
407
+ name: "batch",
408
+ description: "plan and execute structured multi-file edits",
409
+ subtask: true,
410
+ template: `
411
+ Plan a structured batch of related edits for the request below. Group changes by file or subsystem, apply them in a safe order, and verify the result.
412
+
413
+ $ARGUMENTS
414
+ `.trim(),
415
+ },
416
+ {
417
+ name: "claude-api",
418
+ description: "design or run raw model API experiments",
419
+ template: `
420
+ Design or run a raw model/API experiment for the request below. Keep workspace file tools out of scope unless explicitly needed. Capture inputs, outputs, parameters, and conclusions.
421
+
422
+ $ARGUMENTS
423
+ `.trim(),
424
+ },
425
+ {
426
+ name: "run",
427
+ description: "run build, test, or compile checks and diagnose failures",
428
+ subtask: true,
429
+ template: `
430
+ Run the requested build, test, compile, or verification command. If it fails, diagnose the failure and recommend or implement a minimal fix when appropriate.
431
+
432
+ $ARGUMENTS
433
+ `.trim(),
434
+ },
435
+ {
436
+ name: "verify",
437
+ description: "verify recent changes with lightweight checks",
438
+ subtask: true,
439
+ template: `
440
+ Verify the recent change or requested behavior with the lightest meaningful checks. Prefer targeted tests, typechecks, lint, screenshots, or smoke tests. Report exactly what passed or failed.
441
+
442
+ $ARGUMENTS
443
+ `.trim(),
444
+ },
445
+ {
446
+ name: "run-skill-generator",
447
+ description: "generate project-specific run command ideas",
448
+ template: `
449
+ Analyze the project structure and generate useful project-specific /run command templates. Include command names, when to use them, exact shell commands, and safety notes.
450
+
451
+ $ARGUMENTS
452
+ `.trim(),
453
+ },
454
+ {
455
+ name: "hooks",
456
+ description: "inspect or design automation hooks",
457
+ template: `
458
+ Inspect or design event-driven automation hooks for this project. Cover trigger, action, scope, failure behavior, logging, and how to disable or roll back each hook.
459
+
460
+ $ARGUMENTS
461
+ `.trim(),
462
+ },
463
+ {
464
+ name: "start-work",
465
+ description: "start work from the project agent blueprint",
466
+ subtask: true,
467
+ template: `
468
+ Start work from the project's agent blueprint or AGENTS.md instructions. Read the relevant guidance, derive the next tasks, and begin with the highest-impact safe action.
469
+
470
+ $ARGUMENTS
471
+ `.trim(),
472
+ },
473
+ {
474
+ name: "ulw",
475
+ description: "deep reasoning pass for complex architecture or logic",
476
+ subtask: true,
477
+ template: `
478
+ Use a deep reasoning pass for this request. Inspect architecture and logic carefully, identify hidden constraints, and produce a robust implementation or plan with verification.
479
+
480
+ $ARGUMENTS
481
+ `.trim(),
482
+ },
483
+ {
484
+ name: "refactor",
485
+ description: "refactor targeted code for clarity and structure",
486
+ subtask: true,
487
+ template: `
488
+ Refactor the target code for clarity, maintainability, and pattern consistency while preserving behavior. Keep the scope tight and run appropriate verification.
489
+
490
+ $ARGUMENTS
491
+ `.trim(),
492
+ },
493
+ {
494
+ name: "dream",
495
+ description: "review historical sessions and consolidate into long-term memory",
496
+ template: `
497
+ Review your historical sessions from the past week. Deduplicate redundant information, compress key learnings, and consolidate insights into long-term memory patterns. Focus on:
498
+ - Recurring problems and their solutions
499
+ - User preferences and workflow patterns
500
+ - Successful approaches that should be reused
501
+ - Common errors and how to avoid them
502
+
503
+ Write a summary of consolidated learnings to .octocode/memory/ with dated entries. Remove duplicates and merge similar insights.
504
+
505
+ $ARGUMENTS
506
+ `.trim(),
507
+ },
508
+ {
509
+ name: "distill",
510
+ description: "mine past sessions to create reusable skills and patterns",
511
+ template: `
512
+ Analyze your past successful sessions to identify repeated workflows and patterns. Extract these into automated skills:
513
+ - Look for sequences of actions that appear multiple times
514
+ - Identify task patterns that could be templated
515
+ - Create skill definitions for recurring workflows
516
+ - Document the trigger conditions and expected outcomes
517
+
518
+ For each pattern found:
519
+ 1. Name it descriptively
520
+ 2. Define when it should be triggered
521
+ 3. List the concrete steps
522
+ 4. Add safety notes
523
+
524
+ Write new skills to .octocode/skills/ as SKILL.md files with proper frontmatter.
525
+
526
+ $ARGUMENTS
527
+ `.trim(),
528
+ },
529
+ {
530
+ name: "goal",
531
+ description: "set a stopping condition for autonomous completion",
532
+ subtask: true,
533
+ template: `
534
+ Set a clear stopping condition for autonomous work. Define:
535
+ 1. The specific goal state (e.g., "all tests pass", "PR is ready", "feature is complete")
536
+ 2. Success criteria that must be met before stopping
537
+ 3. Verification steps to confirm completion
538
+ 4. Rollback plan if the goal cannot be achieved
539
+
540
+ Work autonomously toward this goal. Do not stop until:
541
+ - The stopping condition is truly met
542
+ - All verification steps pass
543
+ - You can demonstrate the goal state
544
+
545
+ If blocked, explain what's preventing progress and what would need to change.
546
+
547
+ Goal: $ARGUMENTS
548
+ `.trim(),
549
+ },
550
+ {
551
+ name: "memory",
552
+ description: "view or search persistent memory",
553
+ template: `
554
+ Search and view your persistent memory across sessions.
555
+
556
+ Use the memory tool to:
557
+ - Search for relevant past experiences
558
+ - View recent checkpoints
559
+ - Add new memories
560
+
561
+ Query: $ARGUMENTS
562
+ `.trim(),
563
+ },
564
+ ].map((command) => ({
565
+ ...command,
566
+ template: `${command.template}\n\n${workspaceContext}`,
567
+ }))
@@ -0,0 +1,68 @@
1
+ export * as ConfigAgent from "./agent"
2
+
3
+ import path from "path"
4
+ import { Exit, Schema } from "effect"
5
+ import * as Log from "@octocode-ai/core/util/log"
6
+ import { Glob } from "@octocode-ai/core/util/glob"
7
+ import { ConfigAgentV1 } from "@octocode-ai/core/v1/config/agent"
8
+ import { configEntryNameFromPath } from "./entry-name"
9
+ import * as ConfigMarkdown from "./markdown"
10
+ import { ConfigParse } from "./parse"
11
+
12
+ const log = Log.create({ service: "config" })
13
+
14
+ export async function load(dir: string) {
15
+ const result: Record<string, ConfigAgentV1.Info> = {}
16
+ for (const item of await Glob.scan("{agent,agents}/**/*.md", {
17
+ cwd: dir,
18
+ absolute: true,
19
+ dot: true,
20
+ symlink: true,
21
+ })) {
22
+ const md = await ConfigMarkdown.parse(item).catch((err) => {
23
+ log.error("failed to load agent", { agent: item, err })
24
+ return undefined
25
+ })
26
+ if (!md) continue
27
+
28
+ const name = configEntryNameFromPath(path.relative(dir, item), ["agent/", "agents/"])
29
+
30
+ const config = {
31
+ name,
32
+ ...md.data,
33
+ prompt: md.content.trim(),
34
+ }
35
+ result[config.name] = ConfigParse.schema(ConfigAgentV1.Info, config, item)
36
+ }
37
+ return result
38
+ }
39
+
40
+ export async function loadMode(dir: string) {
41
+ const result: Record<string, ConfigAgentV1.Info> = {}
42
+ for (const item of await Glob.scan("{mode,modes}/*.md", {
43
+ cwd: dir,
44
+ absolute: true,
45
+ dot: true,
46
+ symlink: true,
47
+ })) {
48
+ const md = await ConfigMarkdown.parse(item).catch((err) => {
49
+ log.error("failed to load mode", { mode: item, err })
50
+ return undefined
51
+ })
52
+ if (!md) continue
53
+
54
+ const config = {
55
+ name: configEntryNameFromPath(path.relative(dir, item), ["mode/", "modes/"]),
56
+ ...md.data,
57
+ prompt: md.content.trim(),
58
+ }
59
+ const parsed = Schema.decodeUnknownExit(ConfigAgentV1.Info)(config, { errors: "all", propertyOrder: "original" })
60
+ if (Exit.isSuccess(parsed)) {
61
+ result[config.name] = {
62
+ ...parsed.value,
63
+ mode: "primary" as const,
64
+ }
65
+ }
66
+ }
67
+ return result
68
+ }
@@ -0,0 +1,45 @@
1
+ export * as ConfigCommand from "./command"
2
+
3
+ import path from "path"
4
+ import * as Log from "@octocode-ai/core/util/log"
5
+ import { Cause, Exit, Schema } from "effect"
6
+ import { Glob } from "@octocode-ai/core/util/glob"
7
+ import { ConfigCommandV1 } from "@octocode-ai/core/v1/config/command"
8
+ import { configEntryNameFromPath } from "./entry-name"
9
+ import { InvalidError } from "@octocode-ai/core/v1/config/error"
10
+ import * as ConfigMarkdown from "./markdown"
11
+
12
+ const log = Log.create({ service: "config" })
13
+
14
+ const decodeInfo = Schema.decodeUnknownExit(ConfigCommandV1.Info)
15
+
16
+ export async function load(dir: string) {
17
+ const result: Record<string, ConfigCommandV1.Info> = {}
18
+ for (const item of await Glob.scan("{command,commands}/**/*.md", {
19
+ cwd: dir,
20
+ absolute: true,
21
+ dot: true,
22
+ symlink: true,
23
+ })) {
24
+ const md = await ConfigMarkdown.parse(item).catch((err) => {
25
+ log.error("failed to load command", { command: item, err })
26
+ return undefined
27
+ })
28
+ if (!md) continue
29
+
30
+ const name = configEntryNameFromPath(path.relative(dir, item), ["command/", "commands/"])
31
+
32
+ const config = {
33
+ name,
34
+ ...md.data,
35
+ template: md.content.trim(),
36
+ }
37
+ const parsed = decodeInfo(config, { errors: "all", propertyOrder: "original" })
38
+ if (Exit.isSuccess(parsed)) {
39
+ result[config.name] = parsed.value
40
+ continue
41
+ }
42
+ throw new InvalidError({ path: item, message: Cause.pretty(parsed.cause) }, { cause: Cause.squash(parsed.cause) })
43
+ }
44
+ return result
45
+ }