alchemylab-opencode 1.0.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 (379) hide show
  1. package/LICENSE +21 -0
  2. package/NODE_COMPAT.md +184 -0
  3. package/package.json +112 -0
  4. package/packages/opencode/migration/20260127222353_familiar_lady_ursula/migration.sql +90 -0
  5. package/packages/opencode/migration/20260127222353_familiar_lady_ursula/snapshot.json +796 -0
  6. package/packages/opencode/migration/20260211171708_add_project_commands/migration.sql +1 -0
  7. package/packages/opencode/migration/20260211171708_add_project_commands/snapshot.json +806 -0
  8. package/packages/opencode/migration/20260213144116_wakeful_the_professor/migration.sql +11 -0
  9. package/packages/opencode/migration/20260213144116_wakeful_the_professor/snapshot.json +897 -0
  10. package/packages/opencode/migration/20260225215848_workspace/migration.sql +7 -0
  11. package/packages/opencode/migration/20260225215848_workspace/snapshot.json +959 -0
  12. package/packages/opencode/migration/20260227213759_add_session_workspace_id/migration.sql +2 -0
  13. package/packages/opencode/migration/20260227213759_add_session_workspace_id/snapshot.json +983 -0
  14. package/packages/opencode/migration/20260228203230_blue_harpoon/migration.sql +17 -0
  15. package/packages/opencode/migration/20260228203230_blue_harpoon/snapshot.json +1102 -0
  16. package/packages/opencode/migration/20260303231226_add_workspace_fields/migration.sql +5 -0
  17. package/packages/opencode/migration/20260303231226_add_workspace_fields/snapshot.json +1013 -0
  18. package/packages/opencode/migration/20260309230000_move_org_to_state/migration.sql +3 -0
  19. package/packages/opencode/migration/20260309230000_move_org_to_state/snapshot.json +1156 -0
  20. package/packages/opencode/migration/20260312043431_session_message_cursor/migration.sql +4 -0
  21. package/packages/opencode/migration/20260312043431_session_message_cursor/snapshot.json +1168 -0
  22. package/packages/opencode/migration/20260323234822_events/migration.sql +13 -0
  23. package/packages/opencode/migration/20260323234822_events/snapshot.json +1271 -0
  24. package/packages/opencode/package.json +140 -0
  25. package/packages/opencode/src/account/account.sql.ts +39 -0
  26. package/packages/opencode/src/account/index.ts +463 -0
  27. package/packages/opencode/src/account/repo.ts +163 -0
  28. package/packages/opencode/src/account/schema.ts +91 -0
  29. package/packages/opencode/src/acp/README.md +174 -0
  30. package/packages/opencode/src/acp/agent.ts +1847 -0
  31. package/packages/opencode/src/acp/session.ts +116 -0
  32. package/packages/opencode/src/acp/types.ts +24 -0
  33. package/packages/opencode/src/agent/agent.ts +420 -0
  34. package/packages/opencode/src/agent/generate.txt +75 -0
  35. package/packages/opencode/src/agent/prompt/compaction.txt +15 -0
  36. package/packages/opencode/src/agent/prompt/explore.txt +18 -0
  37. package/packages/opencode/src/agent/prompt/summary.txt +11 -0
  38. package/packages/opencode/src/agent/prompt/title.txt +44 -0
  39. package/packages/opencode/src/auth/index.ts +110 -0
  40. package/packages/opencode/src/bus/bus-event.ts +40 -0
  41. package/packages/opencode/src/bus/global.ts +10 -0
  42. package/packages/opencode/src/bus/index.ts +185 -0
  43. package/packages/opencode/src/cli/bootstrap.ts +17 -0
  44. package/packages/opencode/src/cli/cmd/cmd.ts +7 -0
  45. package/packages/opencode/src/cli/cmd/run.ts +689 -0
  46. package/packages/opencode/src/cli/cmd/serve.ts +24 -0
  47. package/packages/opencode/src/cli/cmd/tui/event.ts +49 -0
  48. package/packages/opencode/src/cli/effect/prompt.ts +25 -0
  49. package/packages/opencode/src/cli/error.ts +46 -0
  50. package/packages/opencode/src/cli/heap.ts +59 -0
  51. package/packages/opencode/src/cli/logo.ts +6 -0
  52. package/packages/opencode/src/cli/network.ts +60 -0
  53. package/packages/opencode/src/cli/ui.ts +133 -0
  54. package/packages/opencode/src/cli/upgrade.ts +31 -0
  55. package/packages/opencode/src/command/index.ts +195 -0
  56. package/packages/opencode/src/command/template/initialize.txt +66 -0
  57. package/packages/opencode/src/command/template/review.txt +101 -0
  58. package/packages/opencode/src/config/config.ts +1599 -0
  59. package/packages/opencode/src/config/console-state.ts +15 -0
  60. package/packages/opencode/src/config/markdown.ts +99 -0
  61. package/packages/opencode/src/config/paths.ts +167 -0
  62. package/packages/opencode/src/config/tui-migrate.ts +155 -0
  63. package/packages/opencode/src/config/tui-schema.ts +37 -0
  64. package/packages/opencode/src/config/tui.ts +179 -0
  65. package/packages/opencode/src/control-plane/adaptors/index.ts +20 -0
  66. package/packages/opencode/src/control-plane/adaptors/worktree.ts +42 -0
  67. package/packages/opencode/src/control-plane/schema.ts +17 -0
  68. package/packages/opencode/src/control-plane/sse.ts +66 -0
  69. package/packages/opencode/src/control-plane/types.ts +32 -0
  70. package/packages/opencode/src/control-plane/workspace.sql.ts +17 -0
  71. package/packages/opencode/src/control-plane/workspace.ts +168 -0
  72. package/packages/opencode/src/effect/cross-spawn-spawner.ts +502 -0
  73. package/packages/opencode/src/effect/instance-ref.ts +6 -0
  74. package/packages/opencode/src/effect/instance-registry.ts +12 -0
  75. package/packages/opencode/src/effect/instance-state.ts +82 -0
  76. package/packages/opencode/src/effect/run-service.ts +33 -0
  77. package/packages/opencode/src/effect/runner.ts +216 -0
  78. package/packages/opencode/src/env/index.ts +28 -0
  79. package/packages/opencode/src/file/ignore.ts +82 -0
  80. package/packages/opencode/src/file/index.ts +686 -0
  81. package/packages/opencode/src/file/protected.ts +59 -0
  82. package/packages/opencode/src/file/ripgrep.ts +376 -0
  83. package/packages/opencode/src/file/time.ts +133 -0
  84. package/packages/opencode/src/file/watcher.ts +173 -0
  85. package/packages/opencode/src/filesystem/index.ts +236 -0
  86. package/packages/opencode/src/flag/flag.ts +156 -0
  87. package/packages/opencode/src/format/formatter.ts +413 -0
  88. package/packages/opencode/src/format/index.ts +203 -0
  89. package/packages/opencode/src/git/index.ts +303 -0
  90. package/packages/opencode/src/global/index.ts +56 -0
  91. package/packages/opencode/src/id/id.ts +85 -0
  92. package/packages/opencode/src/ide/index.ts +74 -0
  93. package/packages/opencode/src/installation/index.ts +355 -0
  94. package/packages/opencode/src/installation/meta.ts +7 -0
  95. package/packages/opencode/src/lsp/client.ts +252 -0
  96. package/packages/opencode/src/lsp/index.ts +558 -0
  97. package/packages/opencode/src/lsp/language.ts +120 -0
  98. package/packages/opencode/src/lsp/launch.ts +21 -0
  99. package/packages/opencode/src/lsp/server.ts +1968 -0
  100. package/packages/opencode/src/mcp/auth.ts +173 -0
  101. package/packages/opencode/src/mcp/index.ts +931 -0
  102. package/packages/opencode/src/mcp/oauth-callback.ts +216 -0
  103. package/packages/opencode/src/mcp/oauth-provider.ts +185 -0
  104. package/packages/opencode/src/node-loader.mjs +104 -0
  105. package/packages/opencode/src/node-preload.mjs +39 -0
  106. package/packages/opencode/src/node.ts +1 -0
  107. package/packages/opencode/src/npm/index.ts +188 -0
  108. package/packages/opencode/src/patch/index.ts +680 -0
  109. package/packages/opencode/src/permission/arity.ts +163 -0
  110. package/packages/opencode/src/permission/evaluate.ts +15 -0
  111. package/packages/opencode/src/permission/index.ts +325 -0
  112. package/packages/opencode/src/permission/schema.ts +17 -0
  113. package/packages/opencode/src/plugin/cloudflare.ts +67 -0
  114. package/packages/opencode/src/plugin/codex.ts +608 -0
  115. package/packages/opencode/src/plugin/github-copilot/copilot.ts +361 -0
  116. package/packages/opencode/src/plugin/github-copilot/models.ts +144 -0
  117. package/packages/opencode/src/plugin/index.ts +299 -0
  118. package/packages/opencode/src/plugin/install.ts +439 -0
  119. package/packages/opencode/src/plugin/loader.ts +174 -0
  120. package/packages/opencode/src/plugin/meta.ts +188 -0
  121. package/packages/opencode/src/plugin/shared.ts +323 -0
  122. package/packages/opencode/src/project/bootstrap.ts +31 -0
  123. package/packages/opencode/src/project/instance.ts +175 -0
  124. package/packages/opencode/src/project/project.sql.ts +16 -0
  125. package/packages/opencode/src/project/project.ts +519 -0
  126. package/packages/opencode/src/project/schema.ts +16 -0
  127. package/packages/opencode/src/project/state.ts +70 -0
  128. package/packages/opencode/src/project/vcs.ts +240 -0
  129. package/packages/opencode/src/provider/auth.ts +253 -0
  130. package/packages/opencode/src/provider/error.ts +197 -0
  131. package/packages/opencode/src/provider/models.ts +162 -0
  132. package/packages/opencode/src/provider/provider.ts +1709 -0
  133. package/packages/opencode/src/provider/schema.ts +38 -0
  134. package/packages/opencode/src/provider/sdk/copilot/README.md +5 -0
  135. package/packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +170 -0
  136. package/packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts +15 -0
  137. package/packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
  138. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +64 -0
  139. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +815 -0
  140. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +28 -0
  141. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +44 -0
  142. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +83 -0
  143. package/packages/opencode/src/provider/sdk/copilot/copilot-provider.ts +100 -0
  144. package/packages/opencode/src/provider/sdk/copilot/index.ts +2 -0
  145. package/packages/opencode/src/provider/sdk/copilot/openai-compatible-error.ts +27 -0
  146. package/packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +335 -0
  147. package/packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +22 -0
  148. package/packages/opencode/src/provider/sdk/copilot/responses/openai-config.ts +18 -0
  149. package/packages/opencode/src/provider/sdk/copilot/responses/openai-error.ts +22 -0
  150. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +214 -0
  151. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +1769 -0
  152. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +173 -0
  153. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-settings.ts +1 -0
  154. package/packages/opencode/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +87 -0
  155. package/packages/opencode/src/provider/sdk/copilot/responses/tool/file-search.ts +127 -0
  156. package/packages/opencode/src/provider/sdk/copilot/responses/tool/image-generation.ts +114 -0
  157. package/packages/opencode/src/provider/sdk/copilot/responses/tool/local-shell.ts +64 -0
  158. package/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +103 -0
  159. package/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search.ts +102 -0
  160. package/packages/opencode/src/provider/transform.ts +1050 -0
  161. package/packages/opencode/src/pty/index.ts +397 -0
  162. package/packages/opencode/src/pty/pty.node.ts +27 -0
  163. package/packages/opencode/src/pty/pty.ts +25 -0
  164. package/packages/opencode/src/pty/schema.ts +17 -0
  165. package/packages/opencode/src/question/index.ts +224 -0
  166. package/packages/opencode/src/question/schema.ts +17 -0
  167. package/packages/opencode/src/run.ts +28 -0
  168. package/packages/opencode/src/serve.ts +45 -0
  169. package/packages/opencode/src/server/error.ts +36 -0
  170. package/packages/opencode/src/server/event.ts +7 -0
  171. package/packages/opencode/src/server/instance.ts +324 -0
  172. package/packages/opencode/src/server/mdns.ts +60 -0
  173. package/packages/opencode/src/server/middleware.ts +33 -0
  174. package/packages/opencode/src/server/projectors.ts +28 -0
  175. package/packages/opencode/src/server/proxy.ts +131 -0
  176. package/packages/opencode/src/server/router.ts +105 -0
  177. package/packages/opencode/src/server/routes/config.ts +92 -0
  178. package/packages/opencode/src/server/routes/event.ts +83 -0
  179. package/packages/opencode/src/server/routes/experimental.ts +374 -0
  180. package/packages/opencode/src/server/routes/file.ts +197 -0
  181. package/packages/opencode/src/server/routes/global.ts +312 -0
  182. package/packages/opencode/src/server/routes/mcp.ts +225 -0
  183. package/packages/opencode/src/server/routes/permission.ts +69 -0
  184. package/packages/opencode/src/server/routes/project.ts +118 -0
  185. package/packages/opencode/src/server/routes/provider.ts +171 -0
  186. package/packages/opencode/src/server/routes/pty.ts +210 -0
  187. package/packages/opencode/src/server/routes/question.ts +99 -0
  188. package/packages/opencode/src/server/routes/session.ts +1030 -0
  189. package/packages/opencode/src/server/routes/tui.ts +379 -0
  190. package/packages/opencode/src/server/routes/workspace.ts +94 -0
  191. package/packages/opencode/src/server/server.ts +353 -0
  192. package/packages/opencode/src/session/compaction.ts +428 -0
  193. package/packages/opencode/src/session/index.ts +887 -0
  194. package/packages/opencode/src/session/instruction.ts +258 -0
  195. package/packages/opencode/src/session/llm.ts +354 -0
  196. package/packages/opencode/src/session/message-v2.ts +1031 -0
  197. package/packages/opencode/src/session/message.ts +191 -0
  198. package/packages/opencode/src/session/overflow.ts +22 -0
  199. package/packages/opencode/src/session/processor.ts +523 -0
  200. package/packages/opencode/src/session/projectors.ts +135 -0
  201. package/packages/opencode/src/session/prompt/anthropic.txt +105 -0
  202. package/packages/opencode/src/session/prompt/beast.txt +147 -0
  203. package/packages/opencode/src/session/prompt/build-switch.txt +5 -0
  204. package/packages/opencode/src/session/prompt/codex.txt +79 -0
  205. package/packages/opencode/src/session/prompt/copilot-gpt-5.txt +143 -0
  206. package/packages/opencode/src/session/prompt/default.txt +105 -0
  207. package/packages/opencode/src/session/prompt/gemini.txt +155 -0
  208. package/packages/opencode/src/session/prompt/gpt.txt +107 -0
  209. package/packages/opencode/src/session/prompt/kimi.txt +95 -0
  210. package/packages/opencode/src/session/prompt/max-steps.txt +16 -0
  211. package/packages/opencode/src/session/prompt/plan-reminder-anthropic.txt +67 -0
  212. package/packages/opencode/src/session/prompt/plan.txt +26 -0
  213. package/packages/opencode/src/session/prompt/trinity.txt +97 -0
  214. package/packages/opencode/src/session/prompt.ts +1911 -0
  215. package/packages/opencode/src/session/retry.ts +106 -0
  216. package/packages/opencode/src/session/revert.ts +176 -0
  217. package/packages/opencode/src/session/schema.ts +38 -0
  218. package/packages/opencode/src/session/session.sql.ts +103 -0
  219. package/packages/opencode/src/session/status.ts +102 -0
  220. package/packages/opencode/src/session/summary.ts +177 -0
  221. package/packages/opencode/src/session/system.ts +76 -0
  222. package/packages/opencode/src/session/todo.ts +95 -0
  223. package/packages/opencode/src/share/share-next.ts +369 -0
  224. package/packages/opencode/src/share/share.sql.ts +13 -0
  225. package/packages/opencode/src/shell/shell.ts +110 -0
  226. package/packages/opencode/src/skill/discovery.ts +116 -0
  227. package/packages/opencode/src/skill/index.ts +277 -0
  228. package/packages/opencode/src/snapshot/index.ts +726 -0
  229. package/packages/opencode/src/sql.d.ts +4 -0
  230. package/packages/opencode/src/storage/db.node.ts +8 -0
  231. package/packages/opencode/src/storage/db.ts +177 -0
  232. package/packages/opencode/src/storage/json-migration.ts +425 -0
  233. package/packages/opencode/src/storage/schema.sql.ts +10 -0
  234. package/packages/opencode/src/storage/schema.ts +5 -0
  235. package/packages/opencode/src/storage/storage.ts +353 -0
  236. package/packages/opencode/src/sync/README.md +179 -0
  237. package/packages/opencode/src/sync/event.sql.ts +16 -0
  238. package/packages/opencode/src/sync/index.ts +263 -0
  239. package/packages/opencode/src/sync/schema.ts +14 -0
  240. package/packages/opencode/src/tool/apply_patch.ts +281 -0
  241. package/packages/opencode/src/tool/apply_patch.txt +33 -0
  242. package/packages/opencode/src/tool/bash.ts +496 -0
  243. package/packages/opencode/src/tool/bash.txt +117 -0
  244. package/packages/opencode/src/tool/batch.ts +183 -0
  245. package/packages/opencode/src/tool/batch.txt +24 -0
  246. package/packages/opencode/src/tool/codesearch.ts +132 -0
  247. package/packages/opencode/src/tool/codesearch.txt +12 -0
  248. package/packages/opencode/src/tool/edit.ts +667 -0
  249. package/packages/opencode/src/tool/edit.txt +10 -0
  250. package/packages/opencode/src/tool/external-directory.ts +46 -0
  251. package/packages/opencode/src/tool/glob.ts +78 -0
  252. package/packages/opencode/src/tool/glob.txt +6 -0
  253. package/packages/opencode/src/tool/grep.ts +156 -0
  254. package/packages/opencode/src/tool/grep.txt +8 -0
  255. package/packages/opencode/src/tool/invalid.ts +17 -0
  256. package/packages/opencode/src/tool/ls.ts +121 -0
  257. package/packages/opencode/src/tool/ls.txt +1 -0
  258. package/packages/opencode/src/tool/lsp.ts +97 -0
  259. package/packages/opencode/src/tool/lsp.txt +19 -0
  260. package/packages/opencode/src/tool/multiedit.ts +46 -0
  261. package/packages/opencode/src/tool/multiedit.txt +41 -0
  262. package/packages/opencode/src/tool/plan-enter.txt +14 -0
  263. package/packages/opencode/src/tool/plan-exit.txt +13 -0
  264. package/packages/opencode/src/tool/plan.ts +131 -0
  265. package/packages/opencode/src/tool/question.ts +46 -0
  266. package/packages/opencode/src/tool/question.txt +10 -0
  267. package/packages/opencode/src/tool/read.ts +332 -0
  268. package/packages/opencode/src/tool/read.txt +14 -0
  269. package/packages/opencode/src/tool/registry.ts +265 -0
  270. package/packages/opencode/src/tool/schema.ts +17 -0
  271. package/packages/opencode/src/tool/skill.ts +105 -0
  272. package/packages/opencode/src/tool/task.ts +166 -0
  273. package/packages/opencode/src/tool/task.txt +60 -0
  274. package/packages/opencode/src/tool/todo.ts +48 -0
  275. package/packages/opencode/src/tool/todowrite.txt +167 -0
  276. package/packages/opencode/src/tool/tool.ts +112 -0
  277. package/packages/opencode/src/tool/truncate.ts +144 -0
  278. package/packages/opencode/src/tool/truncation-dir.ts +4 -0
  279. package/packages/opencode/src/tool/webfetch.ts +206 -0
  280. package/packages/opencode/src/tool/webfetch.txt +13 -0
  281. package/packages/opencode/src/tool/websearch.ts +150 -0
  282. package/packages/opencode/src/tool/websearch.txt +14 -0
  283. package/packages/opencode/src/tool/write.ts +84 -0
  284. package/packages/opencode/src/tool/write.txt +8 -0
  285. package/packages/opencode/src/util/abort.ts +35 -0
  286. package/packages/opencode/src/util/archive.ts +17 -0
  287. package/packages/opencode/src/util/color.ts +19 -0
  288. package/packages/opencode/src/util/context.ts +25 -0
  289. package/packages/opencode/src/util/data-url.ts +9 -0
  290. package/packages/opencode/src/util/defer.ts +12 -0
  291. package/packages/opencode/src/util/effect-http-client.ts +11 -0
  292. package/packages/opencode/src/util/effect-zod.ts +98 -0
  293. package/packages/opencode/src/util/error.ts +77 -0
  294. package/packages/opencode/src/util/filesystem.ts +245 -0
  295. package/packages/opencode/src/util/flock.ts +333 -0
  296. package/packages/opencode/src/util/fn.ts +21 -0
  297. package/packages/opencode/src/util/format.ts +20 -0
  298. package/packages/opencode/src/util/glob.ts +34 -0
  299. package/packages/opencode/src/util/hash.ts +7 -0
  300. package/packages/opencode/src/util/iife.ts +3 -0
  301. package/packages/opencode/src/util/keybind.ts +103 -0
  302. package/packages/opencode/src/util/lazy.ts +23 -0
  303. package/packages/opencode/src/util/locale.ts +81 -0
  304. package/packages/opencode/src/util/lock.ts +98 -0
  305. package/packages/opencode/src/util/log.ts +182 -0
  306. package/packages/opencode/src/util/network.ts +9 -0
  307. package/packages/opencode/src/util/process.ts +176 -0
  308. package/packages/opencode/src/util/queue.ts +32 -0
  309. package/packages/opencode/src/util/record.ts +3 -0
  310. package/packages/opencode/src/util/rpc.ts +66 -0
  311. package/packages/opencode/src/util/schema.ts +53 -0
  312. package/packages/opencode/src/util/scrap.ts +10 -0
  313. package/packages/opencode/src/util/signal.ts +12 -0
  314. package/packages/opencode/src/util/timeout.ts +14 -0
  315. package/packages/opencode/src/util/token.ts +7 -0
  316. package/packages/opencode/src/util/update-schema.ts +13 -0
  317. package/packages/opencode/src/util/which.ts +14 -0
  318. package/packages/opencode/src/util/wildcard.ts +59 -0
  319. package/packages/opencode/src/worktree/index.ts +612 -0
  320. package/packages/plugin/package.json +38 -0
  321. package/packages/plugin/src/example.ts +18 -0
  322. package/packages/plugin/src/index.ts +282 -0
  323. package/packages/plugin/src/shell.ts +136 -0
  324. package/packages/plugin/src/tool.ts +38 -0
  325. package/packages/plugin/src/tui.ts +508 -0
  326. package/packages/script/package.json +16 -0
  327. package/packages/script/src/index.ts +77 -0
  328. package/packages/sdk/package.json +33 -0
  329. package/packages/sdk/src/client.ts +55 -0
  330. package/packages/sdk/src/gen/client/client.gen.ts +212 -0
  331. package/packages/sdk/src/gen/client/index.ts +25 -0
  332. package/packages/sdk/src/gen/client/types.gen.ts +222 -0
  333. package/packages/sdk/src/gen/client/utils.gen.ts +287 -0
  334. package/packages/sdk/src/gen/client.gen.ts +22 -0
  335. package/packages/sdk/src/gen/core/auth.gen.ts +41 -0
  336. package/packages/sdk/src/gen/core/bodySerializer.gen.ts +74 -0
  337. package/packages/sdk/src/gen/core/params.gen.ts +144 -0
  338. package/packages/sdk/src/gen/core/pathSerializer.gen.ts +167 -0
  339. package/packages/sdk/src/gen/core/queryKeySerializer.gen.ts +111 -0
  340. package/packages/sdk/src/gen/core/serverSentEvents.gen.ts +210 -0
  341. package/packages/sdk/src/gen/core/types.gen.ts +91 -0
  342. package/packages/sdk/src/gen/core/utils.gen.ts +109 -0
  343. package/packages/sdk/src/gen/sdk.gen.ts +1197 -0
  344. package/packages/sdk/src/gen/types.gen.ts +3904 -0
  345. package/packages/sdk/src/index.ts +21 -0
  346. package/packages/sdk/src/process.ts +31 -0
  347. package/packages/sdk/src/server.ts +134 -0
  348. package/packages/sdk/src/v2/client.ts +81 -0
  349. package/packages/sdk/src/v2/gen/client/client.gen.ts +285 -0
  350. package/packages/sdk/src/v2/gen/client/index.ts +25 -0
  351. package/packages/sdk/src/v2/gen/client/types.gen.ts +202 -0
  352. package/packages/sdk/src/v2/gen/client/utils.gen.ts +289 -0
  353. package/packages/sdk/src/v2/gen/client.gen.ts +18 -0
  354. package/packages/sdk/src/v2/gen/core/auth.gen.ts +41 -0
  355. package/packages/sdk/src/v2/gen/core/bodySerializer.gen.ts +82 -0
  356. package/packages/sdk/src/v2/gen/core/params.gen.ts +169 -0
  357. package/packages/sdk/src/v2/gen/core/pathSerializer.gen.ts +167 -0
  358. package/packages/sdk/src/v2/gen/core/queryKeySerializer.gen.ts +111 -0
  359. package/packages/sdk/src/v2/gen/core/serverSentEvents.gen.ts +239 -0
  360. package/packages/sdk/src/v2/gen/core/types.gen.ts +86 -0
  361. package/packages/sdk/src/v2/gen/core/utils.gen.ts +137 -0
  362. package/packages/sdk/src/v2/gen/sdk.gen.ts +4223 -0
  363. package/packages/sdk/src/v2/gen/types.gen.ts +5265 -0
  364. package/packages/sdk/src/v2/index.ts +21 -0
  365. package/packages/sdk/src/v2/server.ts +134 -0
  366. package/packages/util/package.json +20 -0
  367. package/packages/util/src/array.ts +10 -0
  368. package/packages/util/src/binary.ts +41 -0
  369. package/packages/util/src/encode.ts +51 -0
  370. package/packages/util/src/error.ts +54 -0
  371. package/packages/util/src/fn.ts +11 -0
  372. package/packages/util/src/identifier.ts +48 -0
  373. package/packages/util/src/iife.ts +3 -0
  374. package/packages/util/src/lazy.ts +11 -0
  375. package/packages/util/src/module.ts +10 -0
  376. package/packages/util/src/path.ts +37 -0
  377. package/packages/util/src/retry.ts +41 -0
  378. package/packages/util/src/slug.ts +74 -0
  379. package/postinstall.cjs +55 -0
@@ -0,0 +1,282 @@
1
+ import type {
2
+ Event,
3
+ createOpencodeClient,
4
+ Project,
5
+ Model,
6
+ Provider,
7
+ Permission,
8
+ UserMessage,
9
+ Message,
10
+ Part,
11
+ Auth,
12
+ Config as SDKConfig,
13
+ } from "@opencode-ai/sdk"
14
+ import type { Provider as ProviderV2, Model as ModelV2 } from "@opencode-ai/sdk/v2"
15
+
16
+ import type { BunShell } from "./shell.js"
17
+ import { type ToolDefinition } from "./tool.js"
18
+
19
+ export * from "./tool.js"
20
+
21
+ export type ProviderContext = {
22
+ source: "env" | "config" | "custom" | "api"
23
+ info: Provider
24
+ options: Record<string, any>
25
+ }
26
+
27
+ export type PluginInput = {
28
+ client: ReturnType<typeof createOpencodeClient>
29
+ project: Project
30
+ directory: string
31
+ worktree: string
32
+ serverUrl: URL
33
+ $: BunShell
34
+ }
35
+
36
+ export type PluginOptions = Record<string, unknown>
37
+
38
+ export type Config = Omit<SDKConfig, "plugin"> & {
39
+ plugin?: Array<string | [string, PluginOptions]>
40
+ }
41
+
42
+ export type Plugin = (input: PluginInput, options?: PluginOptions) => Promise<Hooks>
43
+
44
+ export type PluginModule = {
45
+ id?: string
46
+ server: Plugin
47
+ tui?: never
48
+ }
49
+
50
+ type Rule = {
51
+ key: string
52
+ op: "eq" | "neq"
53
+ value: string
54
+ }
55
+
56
+ export type AuthHook = {
57
+ provider: string
58
+ loader?: (auth: () => Promise<Auth>, provider: Provider) => Promise<Record<string, any>>
59
+ methods: (
60
+ | {
61
+ type: "oauth"
62
+ label: string
63
+ prompts?: Array<
64
+ | {
65
+ type: "text"
66
+ key: string
67
+ message: string
68
+ placeholder?: string
69
+ validate?: (value: string) => string | undefined
70
+ /** @deprecated Use `when` instead */
71
+ condition?: (inputs: Record<string, string>) => boolean
72
+ when?: Rule
73
+ }
74
+ | {
75
+ type: "select"
76
+ key: string
77
+ message: string
78
+ options: Array<{
79
+ label: string
80
+ value: string
81
+ hint?: string
82
+ }>
83
+ /** @deprecated Use `when` instead */
84
+ condition?: (inputs: Record<string, string>) => boolean
85
+ when?: Rule
86
+ }
87
+ >
88
+ authorize(inputs?: Record<string, string>): Promise<AuthOAuthResult>
89
+ }
90
+ | {
91
+ type: "api"
92
+ label: string
93
+ prompts?: Array<
94
+ | {
95
+ type: "text"
96
+ key: string
97
+ message: string
98
+ placeholder?: string
99
+ validate?: (value: string) => string | undefined
100
+ /** @deprecated Use `when` instead */
101
+ condition?: (inputs: Record<string, string>) => boolean
102
+ when?: Rule
103
+ }
104
+ | {
105
+ type: "select"
106
+ key: string
107
+ message: string
108
+ options: Array<{
109
+ label: string
110
+ value: string
111
+ hint?: string
112
+ }>
113
+ /** @deprecated Use `when` instead */
114
+ condition?: (inputs: Record<string, string>) => boolean
115
+ when?: Rule
116
+ }
117
+ >
118
+ authorize?(inputs?: Record<string, string>): Promise<
119
+ | {
120
+ type: "success"
121
+ key: string
122
+ provider?: string
123
+ }
124
+ | {
125
+ type: "failed"
126
+ }
127
+ >
128
+ }
129
+ )[]
130
+ }
131
+
132
+ export type AuthOAuthResult = { url: string; instructions: string } & (
133
+ | {
134
+ method: "auto"
135
+ callback(): Promise<
136
+ | ({
137
+ type: "success"
138
+ provider?: string
139
+ } & (
140
+ | {
141
+ refresh: string
142
+ access: string
143
+ expires: number
144
+ accountId?: string
145
+ enterpriseUrl?: string
146
+ }
147
+ | { key: string }
148
+ ))
149
+ | {
150
+ type: "failed"
151
+ }
152
+ >
153
+ }
154
+ | {
155
+ method: "code"
156
+ callback(code: string): Promise<
157
+ | ({
158
+ type: "success"
159
+ provider?: string
160
+ } & (
161
+ | {
162
+ refresh: string
163
+ access: string
164
+ expires: number
165
+ accountId?: string
166
+ enterpriseUrl?: string
167
+ }
168
+ | { key: string }
169
+ ))
170
+ | {
171
+ type: "failed"
172
+ }
173
+ >
174
+ }
175
+ )
176
+
177
+ export type ProviderHookContext = {
178
+ auth?: Auth
179
+ }
180
+
181
+ export type ProviderHook = {
182
+ id: string
183
+ models?: (provider: ProviderV2, ctx: ProviderHookContext) => Promise<Record<string, ModelV2>>
184
+ }
185
+
186
+ /** @deprecated Use AuthOAuthResult instead. */
187
+ export type AuthOuathResult = AuthOAuthResult
188
+
189
+ export interface Hooks {
190
+ event?: (input: { event: Event }) => Promise<void>
191
+ config?: (input: Config) => Promise<void>
192
+ tool?: {
193
+ [key: string]: ToolDefinition
194
+ }
195
+ auth?: AuthHook
196
+ provider?: ProviderHook
197
+ /**
198
+ * Called when a new message is received
199
+ */
200
+ "chat.message"?: (
201
+ input: {
202
+ sessionID: string
203
+ agent?: string
204
+ model?: { providerID: string; modelID: string }
205
+ messageID?: string
206
+ variant?: string
207
+ },
208
+ output: { message: UserMessage; parts: Part[] },
209
+ ) => Promise<void>
210
+ /**
211
+ * Modify parameters sent to LLM
212
+ */
213
+ "chat.params"?: (
214
+ input: { sessionID: string; agent: string; model: Model; provider: ProviderContext; message: UserMessage },
215
+ output: {
216
+ temperature: number
217
+ topP: number
218
+ topK: number
219
+ maxOutputTokens: number | undefined
220
+ options: Record<string, any>
221
+ },
222
+ ) => Promise<void>
223
+ "chat.headers"?: (
224
+ input: { sessionID: string; agent: string; model: Model; provider: ProviderContext; message: UserMessage },
225
+ output: { headers: Record<string, string> },
226
+ ) => Promise<void>
227
+ "permission.ask"?: (input: Permission, output: { status: "ask" | "deny" | "allow" }) => Promise<void>
228
+ "command.execute.before"?: (
229
+ input: { command: string; sessionID: string; arguments: string },
230
+ output: { parts: Part[] },
231
+ ) => Promise<void>
232
+ "tool.execute.before"?: (
233
+ input: { tool: string; sessionID: string; callID: string },
234
+ output: { args: any },
235
+ ) => Promise<void>
236
+ "shell.env"?: (
237
+ input: { cwd: string; sessionID?: string; callID?: string },
238
+ output: { env: Record<string, string> },
239
+ ) => Promise<void>
240
+ "tool.execute.after"?: (
241
+ input: { tool: string; sessionID: string; callID: string; args: any },
242
+ output: {
243
+ title: string
244
+ output: string
245
+ metadata: any
246
+ },
247
+ ) => Promise<void>
248
+ "experimental.chat.messages.transform"?: (
249
+ input: {},
250
+ output: {
251
+ messages: {
252
+ info: Message
253
+ parts: Part[]
254
+ }[]
255
+ },
256
+ ) => Promise<void>
257
+ "experimental.chat.system.transform"?: (
258
+ input: { sessionID?: string; model: Model },
259
+ output: {
260
+ system: string[]
261
+ },
262
+ ) => Promise<void>
263
+ /**
264
+ * Called before session compaction starts. Allows plugins to customize
265
+ * the compaction prompt.
266
+ *
267
+ * - `context`: Additional context strings appended to the default prompt
268
+ * - `prompt`: If set, replaces the default compaction prompt entirely
269
+ */
270
+ "experimental.session.compacting"?: (
271
+ input: { sessionID: string },
272
+ output: { context: string[]; prompt?: string },
273
+ ) => Promise<void>
274
+ "experimental.text.complete"?: (
275
+ input: { sessionID: string; messageID: string; partID: string },
276
+ output: { text: string },
277
+ ) => Promise<void>
278
+ /**
279
+ * Modify tool definitions (description and parameters) sent to LLM
280
+ */
281
+ "tool.definition"?: (input: { toolID: string }, output: { description: string; parameters: any }) => Promise<void>
282
+ }
@@ -0,0 +1,136 @@
1
+ export type ShellFunction = (input: Uint8Array) => Uint8Array
2
+
3
+ export type ShellExpression =
4
+ | { toString(): string }
5
+ | Array<ShellExpression>
6
+ | string
7
+ | { raw: string }
8
+ | ReadableStream
9
+
10
+ export interface BunShell {
11
+ (strings: TemplateStringsArray, ...expressions: ShellExpression[]): BunShellPromise
12
+
13
+ /**
14
+ * Perform bash-like brace expansion on the given pattern.
15
+ * @param pattern - Brace pattern to expand
16
+ */
17
+ braces(pattern: string): string[]
18
+
19
+ /**
20
+ * Escape strings for input into shell commands.
21
+ */
22
+ escape(input: string): string
23
+
24
+ /**
25
+ * Change the default environment variables for shells created by this instance.
26
+ */
27
+ env(newEnv?: Record<string, string | undefined>): BunShell
28
+
29
+ /**
30
+ * Default working directory to use for shells created by this instance.
31
+ */
32
+ cwd(newCwd?: string): BunShell
33
+
34
+ /**
35
+ * Configure the shell to not throw an exception on non-zero exit codes.
36
+ */
37
+ nothrow(): BunShell
38
+
39
+ /**
40
+ * Configure whether or not the shell should throw an exception on non-zero exit codes.
41
+ */
42
+ throws(shouldThrow: boolean): BunShell
43
+ }
44
+
45
+ export interface BunShellPromise extends Promise<BunShellOutput> {
46
+ readonly stdin: WritableStream
47
+
48
+ /**
49
+ * Change the current working directory of the shell.
50
+ */
51
+ cwd(newCwd: string): this
52
+
53
+ /**
54
+ * Set environment variables for the shell.
55
+ */
56
+ env(newEnv: Record<string, string> | undefined): this
57
+
58
+ /**
59
+ * By default, the shell will write to the current process's stdout and stderr, as well as buffering that output.
60
+ * This configures the shell to only buffer the output.
61
+ */
62
+ quiet(): this
63
+
64
+ /**
65
+ * Read from stdout as a string, line by line
66
+ * Automatically calls quiet() to disable echoing to stdout.
67
+ */
68
+ lines(): AsyncIterable<string>
69
+
70
+ /**
71
+ * Read from stdout as a string.
72
+ * Automatically calls quiet() to disable echoing to stdout.
73
+ */
74
+ text(encoding?: BufferEncoding): Promise<string>
75
+
76
+ /**
77
+ * Read from stdout as a JSON object
78
+ * Automatically calls quiet()
79
+ */
80
+ json(): Promise<any>
81
+
82
+ /**
83
+ * Read from stdout as an ArrayBuffer
84
+ * Automatically calls quiet()
85
+ */
86
+ arrayBuffer(): Promise<ArrayBuffer>
87
+
88
+ /**
89
+ * Read from stdout as a Blob
90
+ * Automatically calls quiet()
91
+ */
92
+ blob(): Promise<Blob>
93
+
94
+ /**
95
+ * Configure the shell to not throw an exception on non-zero exit codes.
96
+ */
97
+ nothrow(): this
98
+
99
+ /**
100
+ * Configure whether or not the shell should throw an exception on non-zero exit codes.
101
+ */
102
+ throws(shouldThrow: boolean): this
103
+ }
104
+
105
+ export interface BunShellOutput {
106
+ readonly stdout: Buffer
107
+ readonly stderr: Buffer
108
+ readonly exitCode: number
109
+
110
+ /**
111
+ * Read from stdout as a string
112
+ */
113
+ text(encoding?: BufferEncoding): string
114
+
115
+ /**
116
+ * Read from stdout as a JSON object
117
+ */
118
+ json(): any
119
+
120
+ /**
121
+ * Read from stdout as an ArrayBuffer
122
+ */
123
+ arrayBuffer(): ArrayBuffer
124
+
125
+ /**
126
+ * Read from stdout as an Uint8Array
127
+ */
128
+ bytes(): Uint8Array
129
+
130
+ /**
131
+ * Read from stdout as a Blob
132
+ */
133
+ blob(): Blob
134
+ }
135
+
136
+ export type BunShellError = Error & BunShellOutput
@@ -0,0 +1,38 @@
1
+ import { z } from "zod"
2
+
3
+ export type ToolContext = {
4
+ sessionID: string
5
+ messageID: string
6
+ agent: string
7
+ /**
8
+ * Current project directory for this session.
9
+ * Prefer this over process.cwd() when resolving relative paths.
10
+ */
11
+ directory: string
12
+ /**
13
+ * Project worktree root for this session.
14
+ * Useful for generating stable relative paths (e.g. path.relative(worktree, absPath)).
15
+ */
16
+ worktree: string
17
+ abort: AbortSignal
18
+ metadata(input: { title?: string; metadata?: { [key: string]: any } }): void
19
+ ask(input: AskInput): Promise<void>
20
+ }
21
+
22
+ type AskInput = {
23
+ permission: string
24
+ patterns: string[]
25
+ always: string[]
26
+ metadata: { [key: string]: any }
27
+ }
28
+
29
+ export function tool<Args extends z.ZodRawShape>(input: {
30
+ description: string
31
+ args: Args
32
+ execute(args: z.infer<z.ZodObject<Args>>, context: ToolContext): Promise<string>
33
+ }) {
34
+ return input
35
+ }
36
+ tool.schema = z
37
+
38
+ export type ToolDefinition = ReturnType<typeof tool>