alchemylab-opencode 1.0.7 → 1.0.8

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 (358) hide show
  1. package/package.json +2 -15
  2. package/build.mjs +0 -192
  3. package/packages/opencode/package.json +0 -138
  4. package/packages/opencode/src/account/account.sql.ts +0 -39
  5. package/packages/opencode/src/account/index.ts +0 -463
  6. package/packages/opencode/src/account/repo.ts +0 -163
  7. package/packages/opencode/src/account/schema.ts +0 -91
  8. package/packages/opencode/src/acp/README.md +0 -174
  9. package/packages/opencode/src/acp/agent.ts +0 -1847
  10. package/packages/opencode/src/acp/session.ts +0 -116
  11. package/packages/opencode/src/acp/types.ts +0 -24
  12. package/packages/opencode/src/agent/agent.ts +0 -420
  13. package/packages/opencode/src/agent/generate.txt +0 -75
  14. package/packages/opencode/src/agent/prompt/compaction.txt +0 -15
  15. package/packages/opencode/src/agent/prompt/explore.txt +0 -18
  16. package/packages/opencode/src/agent/prompt/summary.txt +0 -11
  17. package/packages/opencode/src/agent/prompt/title.txt +0 -44
  18. package/packages/opencode/src/auth/index.ts +0 -110
  19. package/packages/opencode/src/bus/bus-event.ts +0 -40
  20. package/packages/opencode/src/bus/global.ts +0 -10
  21. package/packages/opencode/src/bus/index.ts +0 -185
  22. package/packages/opencode/src/cli/bootstrap.ts +0 -17
  23. package/packages/opencode/src/cli/cmd/cmd.ts +0 -7
  24. package/packages/opencode/src/cli/cmd/run.ts +0 -689
  25. package/packages/opencode/src/cli/cmd/serve.ts +0 -24
  26. package/packages/opencode/src/cli/cmd/tui/event.ts +0 -49
  27. package/packages/opencode/src/cli/effect/prompt.ts +0 -25
  28. package/packages/opencode/src/cli/error.ts +0 -46
  29. package/packages/opencode/src/cli/heap.ts +0 -59
  30. package/packages/opencode/src/cli/logo.ts +0 -6
  31. package/packages/opencode/src/cli/network.ts +0 -60
  32. package/packages/opencode/src/cli/ui.ts +0 -133
  33. package/packages/opencode/src/cli/upgrade.ts +0 -31
  34. package/packages/opencode/src/command/index.ts +0 -195
  35. package/packages/opencode/src/command/template/initialize.txt +0 -66
  36. package/packages/opencode/src/command/template/review.txt +0 -101
  37. package/packages/opencode/src/config/config.ts +0 -1599
  38. package/packages/opencode/src/config/console-state.ts +0 -15
  39. package/packages/opencode/src/config/markdown.ts +0 -99
  40. package/packages/opencode/src/config/paths.ts +0 -167
  41. package/packages/opencode/src/config/tui-migrate.ts +0 -155
  42. package/packages/opencode/src/config/tui-schema.ts +0 -37
  43. package/packages/opencode/src/config/tui.ts +0 -179
  44. package/packages/opencode/src/control-plane/adaptors/index.ts +0 -20
  45. package/packages/opencode/src/control-plane/adaptors/worktree.ts +0 -42
  46. package/packages/opencode/src/control-plane/schema.ts +0 -17
  47. package/packages/opencode/src/control-plane/sse.ts +0 -66
  48. package/packages/opencode/src/control-plane/types.ts +0 -32
  49. package/packages/opencode/src/control-plane/workspace.sql.ts +0 -17
  50. package/packages/opencode/src/control-plane/workspace.ts +0 -168
  51. package/packages/opencode/src/effect/cross-spawn-spawner.ts +0 -502
  52. package/packages/opencode/src/effect/instance-ref.ts +0 -6
  53. package/packages/opencode/src/effect/instance-registry.ts +0 -12
  54. package/packages/opencode/src/effect/instance-state.ts +0 -82
  55. package/packages/opencode/src/effect/run-service.ts +0 -33
  56. package/packages/opencode/src/effect/runner.ts +0 -216
  57. package/packages/opencode/src/env/index.ts +0 -28
  58. package/packages/opencode/src/file/ignore.ts +0 -82
  59. package/packages/opencode/src/file/index.ts +0 -686
  60. package/packages/opencode/src/file/protected.ts +0 -59
  61. package/packages/opencode/src/file/ripgrep.ts +0 -376
  62. package/packages/opencode/src/file/time.ts +0 -133
  63. package/packages/opencode/src/file/watcher.ts +0 -173
  64. package/packages/opencode/src/filesystem/index.ts +0 -236
  65. package/packages/opencode/src/flag/flag.ts +0 -156
  66. package/packages/opencode/src/format/formatter.ts +0 -413
  67. package/packages/opencode/src/format/index.ts +0 -203
  68. package/packages/opencode/src/git/index.ts +0 -303
  69. package/packages/opencode/src/global/index.ts +0 -56
  70. package/packages/opencode/src/id/id.ts +0 -85
  71. package/packages/opencode/src/ide/index.ts +0 -74
  72. package/packages/opencode/src/installation/index.ts +0 -355
  73. package/packages/opencode/src/installation/meta.ts +0 -7
  74. package/packages/opencode/src/lsp/client.ts +0 -252
  75. package/packages/opencode/src/lsp/index.ts +0 -558
  76. package/packages/opencode/src/lsp/language.ts +0 -120
  77. package/packages/opencode/src/lsp/launch.ts +0 -21
  78. package/packages/opencode/src/lsp/server.ts +0 -1968
  79. package/packages/opencode/src/mcp/auth.ts +0 -173
  80. package/packages/opencode/src/mcp/index.ts +0 -931
  81. package/packages/opencode/src/mcp/oauth-callback.ts +0 -216
  82. package/packages/opencode/src/mcp/oauth-provider.ts +0 -185
  83. package/packages/opencode/src/node-loader.mjs +0 -104
  84. package/packages/opencode/src/node-preload.mjs +0 -39
  85. package/packages/opencode/src/node.ts +0 -1
  86. package/packages/opencode/src/npm/index.ts +0 -188
  87. package/packages/opencode/src/patch/index.ts +0 -680
  88. package/packages/opencode/src/permission/arity.ts +0 -163
  89. package/packages/opencode/src/permission/evaluate.ts +0 -15
  90. package/packages/opencode/src/permission/index.ts +0 -325
  91. package/packages/opencode/src/permission/schema.ts +0 -17
  92. package/packages/opencode/src/plugin/cloudflare.ts +0 -67
  93. package/packages/opencode/src/plugin/codex.ts +0 -608
  94. package/packages/opencode/src/plugin/github-copilot/copilot.ts +0 -361
  95. package/packages/opencode/src/plugin/github-copilot/models.ts +0 -144
  96. package/packages/opencode/src/plugin/index.ts +0 -299
  97. package/packages/opencode/src/plugin/install.ts +0 -439
  98. package/packages/opencode/src/plugin/loader.ts +0 -174
  99. package/packages/opencode/src/plugin/meta.ts +0 -188
  100. package/packages/opencode/src/plugin/shared.ts +0 -323
  101. package/packages/opencode/src/project/bootstrap.ts +0 -31
  102. package/packages/opencode/src/project/instance.ts +0 -175
  103. package/packages/opencode/src/project/project.sql.ts +0 -16
  104. package/packages/opencode/src/project/project.ts +0 -519
  105. package/packages/opencode/src/project/schema.ts +0 -16
  106. package/packages/opencode/src/project/state.ts +0 -70
  107. package/packages/opencode/src/project/vcs.ts +0 -240
  108. package/packages/opencode/src/provider/auth.ts +0 -253
  109. package/packages/opencode/src/provider/error.ts +0 -197
  110. package/packages/opencode/src/provider/models.ts +0 -162
  111. package/packages/opencode/src/provider/provider.ts +0 -1709
  112. package/packages/opencode/src/provider/schema.ts +0 -38
  113. package/packages/opencode/src/provider/sdk/copilot/README.md +0 -5
  114. package/packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -170
  115. package/packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts +0 -15
  116. package/packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -19
  117. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +0 -64
  118. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +0 -815
  119. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +0 -28
  120. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -44
  121. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -83
  122. package/packages/opencode/src/provider/sdk/copilot/copilot-provider.ts +0 -100
  123. package/packages/opencode/src/provider/sdk/copilot/index.ts +0 -2
  124. package/packages/opencode/src/provider/sdk/copilot/openai-compatible-error.ts +0 -27
  125. package/packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +0 -335
  126. package/packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +0 -22
  127. package/packages/opencode/src/provider/sdk/copilot/responses/openai-config.ts +0 -18
  128. package/packages/opencode/src/provider/sdk/copilot/responses/openai-error.ts +0 -22
  129. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +0 -214
  130. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +0 -1769
  131. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +0 -173
  132. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-settings.ts +0 -1
  133. package/packages/opencode/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +0 -87
  134. package/packages/opencode/src/provider/sdk/copilot/responses/tool/file-search.ts +0 -127
  135. package/packages/opencode/src/provider/sdk/copilot/responses/tool/image-generation.ts +0 -114
  136. package/packages/opencode/src/provider/sdk/copilot/responses/tool/local-shell.ts +0 -64
  137. package/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +0 -103
  138. package/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search.ts +0 -102
  139. package/packages/opencode/src/provider/transform.ts +0 -1050
  140. package/packages/opencode/src/pty/index.ts +0 -397
  141. package/packages/opencode/src/pty/pty.node.ts +0 -27
  142. package/packages/opencode/src/pty/pty.ts +0 -25
  143. package/packages/opencode/src/pty/schema.ts +0 -17
  144. package/packages/opencode/src/question/index.ts +0 -224
  145. package/packages/opencode/src/question/schema.ts +0 -17
  146. package/packages/opencode/src/run.ts +0 -28
  147. package/packages/opencode/src/serve.ts +0 -45
  148. package/packages/opencode/src/server/error.ts +0 -36
  149. package/packages/opencode/src/server/event.ts +0 -7
  150. package/packages/opencode/src/server/instance.ts +0 -324
  151. package/packages/opencode/src/server/mdns.ts +0 -60
  152. package/packages/opencode/src/server/middleware.ts +0 -33
  153. package/packages/opencode/src/server/projectors.ts +0 -28
  154. package/packages/opencode/src/server/proxy.ts +0 -131
  155. package/packages/opencode/src/server/router.ts +0 -105
  156. package/packages/opencode/src/server/routes/config.ts +0 -92
  157. package/packages/opencode/src/server/routes/event.ts +0 -83
  158. package/packages/opencode/src/server/routes/experimental.ts +0 -374
  159. package/packages/opencode/src/server/routes/file.ts +0 -197
  160. package/packages/opencode/src/server/routes/global.ts +0 -312
  161. package/packages/opencode/src/server/routes/mcp.ts +0 -225
  162. package/packages/opencode/src/server/routes/permission.ts +0 -69
  163. package/packages/opencode/src/server/routes/project.ts +0 -118
  164. package/packages/opencode/src/server/routes/provider.ts +0 -171
  165. package/packages/opencode/src/server/routes/pty.ts +0 -210
  166. package/packages/opencode/src/server/routes/question.ts +0 -99
  167. package/packages/opencode/src/server/routes/session.ts +0 -1030
  168. package/packages/opencode/src/server/routes/tui.ts +0 -379
  169. package/packages/opencode/src/server/routes/workspace.ts +0 -94
  170. package/packages/opencode/src/server/server.ts +0 -353
  171. package/packages/opencode/src/session/compaction.ts +0 -428
  172. package/packages/opencode/src/session/index.ts +0 -887
  173. package/packages/opencode/src/session/instruction.ts +0 -258
  174. package/packages/opencode/src/session/llm.ts +0 -354
  175. package/packages/opencode/src/session/message-v2.ts +0 -1031
  176. package/packages/opencode/src/session/message.ts +0 -191
  177. package/packages/opencode/src/session/overflow.ts +0 -22
  178. package/packages/opencode/src/session/processor.ts +0 -523
  179. package/packages/opencode/src/session/projectors.ts +0 -135
  180. package/packages/opencode/src/session/prompt/anthropic.txt +0 -105
  181. package/packages/opencode/src/session/prompt/beast.txt +0 -147
  182. package/packages/opencode/src/session/prompt/build-switch.txt +0 -5
  183. package/packages/opencode/src/session/prompt/codex.txt +0 -79
  184. package/packages/opencode/src/session/prompt/copilot-gpt-5.txt +0 -143
  185. package/packages/opencode/src/session/prompt/default.txt +0 -105
  186. package/packages/opencode/src/session/prompt/gemini.txt +0 -155
  187. package/packages/opencode/src/session/prompt/gpt.txt +0 -107
  188. package/packages/opencode/src/session/prompt/kimi.txt +0 -95
  189. package/packages/opencode/src/session/prompt/max-steps.txt +0 -16
  190. package/packages/opencode/src/session/prompt/plan-reminder-anthropic.txt +0 -67
  191. package/packages/opencode/src/session/prompt/plan.txt +0 -26
  192. package/packages/opencode/src/session/prompt/trinity.txt +0 -97
  193. package/packages/opencode/src/session/prompt.ts +0 -1911
  194. package/packages/opencode/src/session/retry.ts +0 -106
  195. package/packages/opencode/src/session/revert.ts +0 -176
  196. package/packages/opencode/src/session/schema.ts +0 -38
  197. package/packages/opencode/src/session/session.sql.ts +0 -103
  198. package/packages/opencode/src/session/status.ts +0 -102
  199. package/packages/opencode/src/session/summary.ts +0 -177
  200. package/packages/opencode/src/session/system.ts +0 -76
  201. package/packages/opencode/src/session/todo.ts +0 -95
  202. package/packages/opencode/src/share/share-next.ts +0 -369
  203. package/packages/opencode/src/share/share.sql.ts +0 -13
  204. package/packages/opencode/src/shell/shell.ts +0 -110
  205. package/packages/opencode/src/skill/discovery.ts +0 -116
  206. package/packages/opencode/src/skill/index.ts +0 -277
  207. package/packages/opencode/src/snapshot/index.ts +0 -726
  208. package/packages/opencode/src/sql.d.ts +0 -4
  209. package/packages/opencode/src/storage/db.node.ts +0 -8
  210. package/packages/opencode/src/storage/db.ts +0 -177
  211. package/packages/opencode/src/storage/json-migration.ts +0 -425
  212. package/packages/opencode/src/storage/schema.sql.ts +0 -10
  213. package/packages/opencode/src/storage/schema.ts +0 -5
  214. package/packages/opencode/src/storage/storage.ts +0 -353
  215. package/packages/opencode/src/sync/README.md +0 -179
  216. package/packages/opencode/src/sync/event.sql.ts +0 -16
  217. package/packages/opencode/src/sync/index.ts +0 -263
  218. package/packages/opencode/src/sync/schema.ts +0 -14
  219. package/packages/opencode/src/tool/apply_patch.ts +0 -281
  220. package/packages/opencode/src/tool/apply_patch.txt +0 -33
  221. package/packages/opencode/src/tool/bash.ts +0 -496
  222. package/packages/opencode/src/tool/bash.txt +0 -117
  223. package/packages/opencode/src/tool/batch.ts +0 -183
  224. package/packages/opencode/src/tool/batch.txt +0 -24
  225. package/packages/opencode/src/tool/codesearch.ts +0 -132
  226. package/packages/opencode/src/tool/codesearch.txt +0 -12
  227. package/packages/opencode/src/tool/edit.ts +0 -667
  228. package/packages/opencode/src/tool/edit.txt +0 -10
  229. package/packages/opencode/src/tool/external-directory.ts +0 -46
  230. package/packages/opencode/src/tool/glob.ts +0 -78
  231. package/packages/opencode/src/tool/glob.txt +0 -6
  232. package/packages/opencode/src/tool/grep.ts +0 -156
  233. package/packages/opencode/src/tool/grep.txt +0 -8
  234. package/packages/opencode/src/tool/invalid.ts +0 -17
  235. package/packages/opencode/src/tool/ls.ts +0 -121
  236. package/packages/opencode/src/tool/ls.txt +0 -1
  237. package/packages/opencode/src/tool/lsp.ts +0 -97
  238. package/packages/opencode/src/tool/lsp.txt +0 -19
  239. package/packages/opencode/src/tool/multiedit.ts +0 -46
  240. package/packages/opencode/src/tool/multiedit.txt +0 -41
  241. package/packages/opencode/src/tool/plan-enter.txt +0 -14
  242. package/packages/opencode/src/tool/plan-exit.txt +0 -13
  243. package/packages/opencode/src/tool/plan.ts +0 -131
  244. package/packages/opencode/src/tool/question.ts +0 -46
  245. package/packages/opencode/src/tool/question.txt +0 -10
  246. package/packages/opencode/src/tool/read.ts +0 -332
  247. package/packages/opencode/src/tool/read.txt +0 -14
  248. package/packages/opencode/src/tool/registry.ts +0 -265
  249. package/packages/opencode/src/tool/schema.ts +0 -17
  250. package/packages/opencode/src/tool/skill.ts +0 -105
  251. package/packages/opencode/src/tool/task.ts +0 -166
  252. package/packages/opencode/src/tool/task.txt +0 -60
  253. package/packages/opencode/src/tool/todo.ts +0 -48
  254. package/packages/opencode/src/tool/todowrite.txt +0 -167
  255. package/packages/opencode/src/tool/tool.ts +0 -112
  256. package/packages/opencode/src/tool/truncate.ts +0 -144
  257. package/packages/opencode/src/tool/truncation-dir.ts +0 -4
  258. package/packages/opencode/src/tool/webfetch.ts +0 -206
  259. package/packages/opencode/src/tool/webfetch.txt +0 -13
  260. package/packages/opencode/src/tool/websearch.ts +0 -150
  261. package/packages/opencode/src/tool/websearch.txt +0 -14
  262. package/packages/opencode/src/tool/write.ts +0 -84
  263. package/packages/opencode/src/tool/write.txt +0 -8
  264. package/packages/opencode/src/util/abort.ts +0 -35
  265. package/packages/opencode/src/util/archive.ts +0 -17
  266. package/packages/opencode/src/util/color.ts +0 -19
  267. package/packages/opencode/src/util/context.ts +0 -25
  268. package/packages/opencode/src/util/data-url.ts +0 -9
  269. package/packages/opencode/src/util/defer.ts +0 -12
  270. package/packages/opencode/src/util/effect-http-client.ts +0 -11
  271. package/packages/opencode/src/util/effect-zod.ts +0 -98
  272. package/packages/opencode/src/util/error.ts +0 -77
  273. package/packages/opencode/src/util/filesystem.ts +0 -245
  274. package/packages/opencode/src/util/flock.ts +0 -333
  275. package/packages/opencode/src/util/fn.ts +0 -21
  276. package/packages/opencode/src/util/format.ts +0 -20
  277. package/packages/opencode/src/util/glob.ts +0 -34
  278. package/packages/opencode/src/util/hash.ts +0 -7
  279. package/packages/opencode/src/util/iife.ts +0 -3
  280. package/packages/opencode/src/util/keybind.ts +0 -103
  281. package/packages/opencode/src/util/lazy.ts +0 -23
  282. package/packages/opencode/src/util/locale.ts +0 -81
  283. package/packages/opencode/src/util/lock.ts +0 -98
  284. package/packages/opencode/src/util/log.ts +0 -182
  285. package/packages/opencode/src/util/network.ts +0 -9
  286. package/packages/opencode/src/util/process.ts +0 -176
  287. package/packages/opencode/src/util/queue.ts +0 -32
  288. package/packages/opencode/src/util/record.ts +0 -3
  289. package/packages/opencode/src/util/rpc.ts +0 -66
  290. package/packages/opencode/src/util/schema.ts +0 -53
  291. package/packages/opencode/src/util/scrap.ts +0 -10
  292. package/packages/opencode/src/util/signal.ts +0 -12
  293. package/packages/opencode/src/util/timeout.ts +0 -14
  294. package/packages/opencode/src/util/token.ts +0 -7
  295. package/packages/opencode/src/util/update-schema.ts +0 -13
  296. package/packages/opencode/src/util/which.ts +0 -14
  297. package/packages/opencode/src/util/wildcard.ts +0 -59
  298. package/packages/opencode/src/worktree/index.ts +0 -612
  299. package/packages/plugin/package.json +0 -38
  300. package/packages/plugin/src/example.ts +0 -18
  301. package/packages/plugin/src/index.ts +0 -282
  302. package/packages/plugin/src/shell.ts +0 -136
  303. package/packages/plugin/src/tool.ts +0 -38
  304. package/packages/plugin/src/tui.ts +0 -508
  305. package/packages/script/package.json +0 -16
  306. package/packages/script/src/index.ts +0 -77
  307. package/packages/sdk/package.json +0 -33
  308. package/packages/sdk/src/client.ts +0 -55
  309. package/packages/sdk/src/gen/client/client.gen.ts +0 -212
  310. package/packages/sdk/src/gen/client/index.ts +0 -25
  311. package/packages/sdk/src/gen/client/types.gen.ts +0 -222
  312. package/packages/sdk/src/gen/client/utils.gen.ts +0 -287
  313. package/packages/sdk/src/gen/client.gen.ts +0 -22
  314. package/packages/sdk/src/gen/core/auth.gen.ts +0 -41
  315. package/packages/sdk/src/gen/core/bodySerializer.gen.ts +0 -74
  316. package/packages/sdk/src/gen/core/params.gen.ts +0 -144
  317. package/packages/sdk/src/gen/core/pathSerializer.gen.ts +0 -167
  318. package/packages/sdk/src/gen/core/queryKeySerializer.gen.ts +0 -111
  319. package/packages/sdk/src/gen/core/serverSentEvents.gen.ts +0 -210
  320. package/packages/sdk/src/gen/core/types.gen.ts +0 -91
  321. package/packages/sdk/src/gen/core/utils.gen.ts +0 -109
  322. package/packages/sdk/src/gen/sdk.gen.ts +0 -1197
  323. package/packages/sdk/src/gen/types.gen.ts +0 -3904
  324. package/packages/sdk/src/index.ts +0 -21
  325. package/packages/sdk/src/process.ts +0 -31
  326. package/packages/sdk/src/server.ts +0 -134
  327. package/packages/sdk/src/v2/client.ts +0 -81
  328. package/packages/sdk/src/v2/gen/client/client.gen.ts +0 -285
  329. package/packages/sdk/src/v2/gen/client/index.ts +0 -25
  330. package/packages/sdk/src/v2/gen/client/types.gen.ts +0 -202
  331. package/packages/sdk/src/v2/gen/client/utils.gen.ts +0 -289
  332. package/packages/sdk/src/v2/gen/client.gen.ts +0 -18
  333. package/packages/sdk/src/v2/gen/core/auth.gen.ts +0 -41
  334. package/packages/sdk/src/v2/gen/core/bodySerializer.gen.ts +0 -82
  335. package/packages/sdk/src/v2/gen/core/params.gen.ts +0 -169
  336. package/packages/sdk/src/v2/gen/core/pathSerializer.gen.ts +0 -167
  337. package/packages/sdk/src/v2/gen/core/queryKeySerializer.gen.ts +0 -111
  338. package/packages/sdk/src/v2/gen/core/serverSentEvents.gen.ts +0 -239
  339. package/packages/sdk/src/v2/gen/core/types.gen.ts +0 -86
  340. package/packages/sdk/src/v2/gen/core/utils.gen.ts +0 -137
  341. package/packages/sdk/src/v2/gen/sdk.gen.ts +0 -4223
  342. package/packages/sdk/src/v2/gen/types.gen.ts +0 -5265
  343. package/packages/sdk/src/v2/index.ts +0 -21
  344. package/packages/sdk/src/v2/server.ts +0 -134
  345. package/packages/util/package.json +0 -20
  346. package/packages/util/src/array.ts +0 -10
  347. package/packages/util/src/binary.ts +0 -41
  348. package/packages/util/src/encode.ts +0 -51
  349. package/packages/util/src/error.ts +0 -54
  350. package/packages/util/src/fn.ts +0 -11
  351. package/packages/util/src/identifier.ts +0 -48
  352. package/packages/util/src/iife.ts +0 -3
  353. package/packages/util/src/lazy.ts +0 -11
  354. package/packages/util/src/module.ts +0 -10
  355. package/packages/util/src/path.ts +0 -37
  356. package/packages/util/src/retry.ts +0 -41
  357. package/packages/util/src/slug.ts +0 -74
  358. package/postinstall.cjs +0 -55
@@ -1,263 +0,0 @@
1
- import z from "zod"
2
- import type { ZodObject } from "zod"
3
- import { EventEmitter } from "events"
4
- import { Database, eq } from "@/storage/db"
5
- import { Bus as ProjectBus } from "@/bus"
6
- import { BusEvent } from "@/bus/bus-event"
7
- import { EventSequenceTable, EventTable } from "./event.sql"
8
- import { EventID } from "./schema"
9
- import { Flag } from "@/flag/flag"
10
-
11
- export namespace SyncEvent {
12
- export type Definition = {
13
- type: string
14
- version: number
15
- aggregate: string
16
- schema: z.ZodObject
17
-
18
- // This is temporary and only exists for compatibility with bus
19
- // event definitions
20
- properties: z.ZodObject
21
- }
22
-
23
- export type Event<Def extends Definition = Definition> = {
24
- id: string
25
- seq: number
26
- aggregateID: string
27
- data: z.infer<Def["schema"]>
28
- }
29
-
30
- export type SerializedEvent<Def extends Definition = Definition> = Event<Def> & { type: string }
31
-
32
- type ProjectorFunc = (db: Database.TxOrDb, data: unknown) => void
33
-
34
- export const registry = new Map<string, Definition>()
35
- let projectors: Map<Definition, ProjectorFunc> | undefined
36
- const versions = new Map<string, number>()
37
- let frozen = false
38
- let convertEvent: (type: string, event: Event["data"]) => Promise<Record<string, unknown>> | Record<string, unknown>
39
-
40
- const Bus = new EventEmitter<{ event: [{ def: Definition; event: Event }] }>()
41
-
42
- export function reset() {
43
- frozen = false
44
- projectors = undefined
45
- convertEvent = (_, data) => data
46
- }
47
-
48
- export function init(input: { projectors: Array<[Definition, ProjectorFunc]>; convertEvent?: typeof convertEvent }) {
49
- projectors = new Map(input.projectors)
50
-
51
- // Install all the latest event defs to the bus. We only ever emit
52
- // latest versions from code, and keep around old versions for
53
- // replaying. Replaying does not go through the bus, and it
54
- // simplifies the bus to only use unversioned latest events
55
- for (let [type, version] of versions.entries()) {
56
- let def = registry.get(versionedType(type, version))!
57
-
58
- BusEvent.define(def.type, def.properties || def.schema)
59
- }
60
-
61
- // Freeze the system so it clearly errors if events are defined
62
- // after `init` which would cause bugs
63
- frozen = true
64
- convertEvent = input.convertEvent || ((_, data) => data)
65
- }
66
-
67
- export function versionedType<A extends string>(type: A): A
68
- export function versionedType<A extends string, B extends number>(type: A, version: B): `${A}/${B}`
69
- export function versionedType(type: string, version?: number) {
70
- return version ? `${type}.${version}` : type
71
- }
72
-
73
- export function define<
74
- Type extends string,
75
- Agg extends string,
76
- Schema extends ZodObject<Record<Agg, z.ZodType<string>>>,
77
- BusSchema extends ZodObject = Schema,
78
- >(input: { type: Type; version: number; aggregate: Agg; schema: Schema; busSchema?: BusSchema }) {
79
- if (frozen) {
80
- throw new Error("Error defining sync event: sync system has been frozen")
81
- }
82
-
83
- const def = {
84
- type: input.type,
85
- version: input.version,
86
- aggregate: input.aggregate,
87
- schema: input.schema,
88
- properties: input.busSchema ? input.busSchema : input.schema,
89
- }
90
-
91
- versions.set(def.type, Math.max(def.version, versions.get(def.type) || 0))
92
-
93
- registry.set(versionedType(def.type, def.version), def)
94
-
95
- return def
96
- }
97
-
98
- export function project<Def extends Definition>(
99
- def: Def,
100
- func: (db: Database.TxOrDb, data: Event<Def>["data"]) => void,
101
- ): [Definition, ProjectorFunc] {
102
- return [def, func as ProjectorFunc]
103
- }
104
-
105
- function process<Def extends Definition>(def: Def, event: Event<Def>, options: { publish: boolean }) {
106
- if (projectors == null) {
107
- throw new Error("No projectors available. Call `SyncEvent.init` to install projectors")
108
- }
109
-
110
- const projector = projectors.get(def)
111
- if (!projector) {
112
- throw new Error(`Projector not found for event: ${def.type}`)
113
- }
114
-
115
- // idempotent: need to ignore any events already logged
116
-
117
- Database.transaction((tx) => {
118
- projector(tx, event.data)
119
-
120
- if (Flag.OPENCODE_EXPERIMENTAL_WORKSPACES) {
121
- tx.insert(EventSequenceTable)
122
- .values({
123
- aggregate_id: event.aggregateID,
124
- seq: event.seq,
125
- })
126
- .onConflictDoUpdate({
127
- target: EventSequenceTable.aggregate_id,
128
- set: { seq: event.seq },
129
- })
130
- .run()
131
- tx.insert(EventTable)
132
- .values({
133
- id: event.id,
134
- seq: event.seq,
135
- aggregate_id: event.aggregateID,
136
- type: versionedType(def.type, def.version),
137
- data: event.data as Record<string, unknown>,
138
- })
139
- .run()
140
- }
141
-
142
- Database.effect(() => {
143
- Bus.emit("event", {
144
- def,
145
- event,
146
- })
147
-
148
- if (options?.publish) {
149
- const result = convertEvent(def.type, event.data)
150
- if (result instanceof Promise) {
151
- result.then((data) => {
152
- ProjectBus.publish({ type: def.type, properties: def.schema }, data)
153
- })
154
- } else {
155
- ProjectBus.publish({ type: def.type, properties: def.schema }, result)
156
- }
157
- }
158
- })
159
- })
160
- }
161
-
162
- // TODO:
163
- //
164
- // * Support applying multiple events at one time. One transaction,
165
- // and it validets all the sequence ids
166
- // * when loading events from db, apply zod validation to ensure shape
167
-
168
- export function replay(event: SerializedEvent, options?: { republish: boolean }) {
169
- const def = registry.get(event.type)
170
- if (!def) {
171
- throw new Error(`Unknown event type: ${event.type}`)
172
- }
173
-
174
- const row = Database.use((db) =>
175
- db
176
- .select({ seq: EventSequenceTable.seq })
177
- .from(EventSequenceTable)
178
- .where(eq(EventSequenceTable.aggregate_id, event.aggregateID))
179
- .get(),
180
- )
181
-
182
- const latest = row?.seq ?? -1
183
- if (event.seq <= latest) {
184
- return
185
- }
186
-
187
- const expected = latest + 1
188
- if (event.seq !== expected) {
189
- throw new Error(`Sequence mismatch for aggregate "${event.aggregateID}": expected ${expected}, got ${event.seq}`)
190
- }
191
-
192
- process(def, event, { publish: !!options?.republish })
193
- }
194
-
195
- export function run<Def extends Definition>(def: Def, data: Event<Def>["data"]) {
196
- const agg = (data as Record<string, string>)[def.aggregate]
197
- // This should never happen: we've enforced it via typescript in
198
- // the definition
199
- if (agg == null) {
200
- throw new Error(`SyncEvent.run: "${def.aggregate}" required but not found: ${JSON.stringify(data)}`)
201
- }
202
-
203
- if (def.version !== versions.get(def.type)) {
204
- throw new Error(`SyncEvent.run: running old versions of events is not allowed: ${def.type}`)
205
- }
206
-
207
- // Note that this is an "immediate" transaction which is critical.
208
- // We need to make sure we can safely read and write with nothing
209
- // else changing the data from under us
210
- Database.transaction(
211
- (tx) => {
212
- const id = EventID.ascending()
213
- const row = tx
214
- .select({ seq: EventSequenceTable.seq })
215
- .from(EventSequenceTable)
216
- .where(eq(EventSequenceTable.aggregate_id, agg))
217
- .get()
218
- const seq = row?.seq != null ? row.seq + 1 : 0
219
-
220
- const event = { id, seq, aggregateID: agg, data }
221
- process(def, event, { publish: true })
222
- },
223
- {
224
- behavior: "immediate",
225
- },
226
- )
227
- }
228
-
229
- export function remove(aggregateID: string) {
230
- Database.transaction((tx) => {
231
- tx.delete(EventSequenceTable).where(eq(EventSequenceTable.aggregate_id, aggregateID)).run()
232
- tx.delete(EventTable).where(eq(EventTable.aggregate_id, aggregateID)).run()
233
- })
234
- }
235
-
236
- export function subscribeAll(handler: (event: { def: Definition; event: Event }) => void) {
237
- Bus.on("event", handler)
238
- return () => Bus.off("event", handler)
239
- }
240
-
241
- export function payloads() {
242
- return z
243
- .union(
244
- registry
245
- .entries()
246
- .map(([type, def]) => {
247
- return z
248
- .object({
249
- type: z.literal(type),
250
- aggregate: z.literal(def.aggregate),
251
- data: def.schema,
252
- })
253
- .meta({
254
- ref: "SyncEvent" + "." + def.type,
255
- })
256
- })
257
- .toArray() as any,
258
- )
259
- .meta({
260
- ref: "SyncEvent",
261
- })
262
- }
263
- }
@@ -1,14 +0,0 @@
1
- import { Schema } from "effect"
2
- import z from "zod"
3
-
4
- import { Identifier } from "@/id/id"
5
- import { withStatics } from "@/util/schema"
6
-
7
- export const EventID = Schema.String.pipe(
8
- Schema.brand("EventID"),
9
- withStatics((s) => ({
10
- make: (id: string) => s.makeUnsafe(id),
11
- ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("event", id)),
12
- zod: Identifier.schema("event").pipe(z.custom<Schema.Schema.Type<typeof s>>()),
13
- })),
14
- )
@@ -1,281 +0,0 @@
1
- import z from "zod"
2
- import * as path from "path"
3
- import * as fs from "fs/promises"
4
- import { Tool } from "./tool"
5
- import { Bus } from "../bus"
6
- import { FileWatcher } from "../file/watcher"
7
- import { Instance } from "../project/instance"
8
- import { Patch } from "../patch"
9
- import { createTwoFilesPatch, diffLines } from "diff"
10
- import { assertExternalDirectory } from "./external-directory"
11
- import { trimDiff } from "./edit"
12
- import { LSP } from "../lsp"
13
- import { Filesystem } from "../util/filesystem"
14
- import DESCRIPTION from "./apply_patch.txt"
15
- import { File } from "../file"
16
- import { Format } from "../format"
17
-
18
- const PatchParams = z.object({
19
- patchText: z.string().describe("The full patch text that describes all changes to be made"),
20
- })
21
-
22
- export const ApplyPatchTool = Tool.define("apply_patch", {
23
- description: DESCRIPTION,
24
- parameters: PatchParams,
25
- async execute(params, ctx) {
26
- if (!params.patchText) {
27
- throw new Error("patchText is required")
28
- }
29
-
30
- // Parse the patch to get hunks
31
- let hunks: Patch.Hunk[]
32
- try {
33
- const parseResult = Patch.parsePatch(params.patchText)
34
- hunks = parseResult.hunks
35
- } catch (error) {
36
- throw new Error(`apply_patch verification failed: ${error}`)
37
- }
38
-
39
- if (hunks.length === 0) {
40
- const normalized = params.patchText.replace(/\r\n/g, "\n").replace(/\r/g, "\n").trim()
41
- if (normalized === "*** Begin Patch\n*** End Patch") {
42
- throw new Error("patch rejected: empty patch")
43
- }
44
- throw new Error("apply_patch verification failed: no hunks found")
45
- }
46
-
47
- // Validate file paths and check permissions
48
- const fileChanges: Array<{
49
- filePath: string
50
- oldContent: string
51
- newContent: string
52
- type: "add" | "update" | "delete" | "move"
53
- movePath?: string
54
- diff: string
55
- additions: number
56
- deletions: number
57
- }> = []
58
-
59
- let totalDiff = ""
60
-
61
- for (const hunk of hunks) {
62
- const filePath = path.resolve(Instance.directory, hunk.path)
63
- await assertExternalDirectory(ctx, filePath)
64
-
65
- switch (hunk.type) {
66
- case "add": {
67
- const oldContent = ""
68
- const newContent =
69
- hunk.contents.length === 0 || hunk.contents.endsWith("\n") ? hunk.contents : `${hunk.contents}\n`
70
- const diff = trimDiff(createTwoFilesPatch(filePath, filePath, oldContent, newContent))
71
-
72
- let additions = 0
73
- let deletions = 0
74
- for (const change of diffLines(oldContent, newContent)) {
75
- if (change.added) additions += change.count || 0
76
- if (change.removed) deletions += change.count || 0
77
- }
78
-
79
- fileChanges.push({
80
- filePath,
81
- oldContent,
82
- newContent,
83
- type: "add",
84
- diff,
85
- additions,
86
- deletions,
87
- })
88
-
89
- totalDiff += diff + "\n"
90
- break
91
- }
92
-
93
- case "update": {
94
- // Check if file exists for update
95
- const stats = await fs.stat(filePath).catch(() => null)
96
- if (!stats || stats.isDirectory()) {
97
- throw new Error(`apply_patch verification failed: Failed to read file to update: ${filePath}`)
98
- }
99
-
100
- const oldContent = await fs.readFile(filePath, "utf-8")
101
- let newContent = oldContent
102
-
103
- // Apply the update chunks to get new content
104
- try {
105
- const fileUpdate = Patch.deriveNewContentsFromChunks(filePath, hunk.chunks)
106
- newContent = fileUpdate.content
107
- } catch (error) {
108
- throw new Error(`apply_patch verification failed: ${error}`)
109
- }
110
-
111
- const diff = trimDiff(createTwoFilesPatch(filePath, filePath, oldContent, newContent))
112
-
113
- let additions = 0
114
- let deletions = 0
115
- for (const change of diffLines(oldContent, newContent)) {
116
- if (change.added) additions += change.count || 0
117
- if (change.removed) deletions += change.count || 0
118
- }
119
-
120
- const movePath = hunk.move_path ? path.resolve(Instance.directory, hunk.move_path) : undefined
121
- await assertExternalDirectory(ctx, movePath)
122
-
123
- fileChanges.push({
124
- filePath,
125
- oldContent,
126
- newContent,
127
- type: hunk.move_path ? "move" : "update",
128
- movePath,
129
- diff,
130
- additions,
131
- deletions,
132
- })
133
-
134
- totalDiff += diff + "\n"
135
- break
136
- }
137
-
138
- case "delete": {
139
- const contentToDelete = await fs.readFile(filePath, "utf-8").catch((error) => {
140
- throw new Error(`apply_patch verification failed: ${error}`)
141
- })
142
- const deleteDiff = trimDiff(createTwoFilesPatch(filePath, filePath, contentToDelete, ""))
143
-
144
- const deletions = contentToDelete.split("\n").length
145
-
146
- fileChanges.push({
147
- filePath,
148
- oldContent: contentToDelete,
149
- newContent: "",
150
- type: "delete",
151
- diff: deleteDiff,
152
- additions: 0,
153
- deletions,
154
- })
155
-
156
- totalDiff += deleteDiff + "\n"
157
- break
158
- }
159
- }
160
- }
161
-
162
- // Build per-file metadata for UI rendering (used for both permission and result)
163
- const files = fileChanges.map((change) => ({
164
- filePath: change.filePath,
165
- relativePath: path.relative(Instance.worktree, change.movePath ?? change.filePath).replaceAll("\\", "/"),
166
- type: change.type,
167
- diff: change.diff,
168
- before: change.oldContent,
169
- after: change.newContent,
170
- additions: change.additions,
171
- deletions: change.deletions,
172
- movePath: change.movePath,
173
- }))
174
-
175
- // Check permissions if needed
176
- const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath).replaceAll("\\", "/"))
177
- await ctx.ask({
178
- permission: "edit",
179
- patterns: relativePaths,
180
- always: ["*"],
181
- metadata: {
182
- filepath: relativePaths.join(", "),
183
- diff: totalDiff,
184
- files,
185
- },
186
- })
187
-
188
- // Apply the changes
189
- const updates: Array<{ file: string; event: "add" | "change" | "unlink" }> = []
190
-
191
- for (const change of fileChanges) {
192
- const edited = change.type === "delete" ? undefined : (change.movePath ?? change.filePath)
193
- switch (change.type) {
194
- case "add":
195
- // Create parent directories (recursive: true is safe on existing/root dirs)
196
- await fs.mkdir(path.dirname(change.filePath), { recursive: true })
197
- await fs.writeFile(change.filePath, change.newContent, "utf-8")
198
- updates.push({ file: change.filePath, event: "add" })
199
- break
200
-
201
- case "update":
202
- await fs.writeFile(change.filePath, change.newContent, "utf-8")
203
- updates.push({ file: change.filePath, event: "change" })
204
- break
205
-
206
- case "move":
207
- if (change.movePath) {
208
- // Create parent directories (recursive: true is safe on existing/root dirs)
209
- await fs.mkdir(path.dirname(change.movePath), { recursive: true })
210
- await fs.writeFile(change.movePath, change.newContent, "utf-8")
211
- await fs.unlink(change.filePath)
212
- updates.push({ file: change.filePath, event: "unlink" })
213
- updates.push({ file: change.movePath, event: "add" })
214
- }
215
- break
216
-
217
- case "delete":
218
- await fs.unlink(change.filePath)
219
- updates.push({ file: change.filePath, event: "unlink" })
220
- break
221
- }
222
-
223
- if (edited) {
224
- await Format.file(edited)
225
- Bus.publish(File.Event.Edited, { file: edited })
226
- }
227
- }
228
-
229
- // Publish file change events
230
- for (const update of updates) {
231
- await Bus.publish(FileWatcher.Event.Updated, update)
232
- }
233
-
234
- // Notify LSP of file changes and collect diagnostics
235
- for (const change of fileChanges) {
236
- if (change.type === "delete") continue
237
- const target = change.movePath ?? change.filePath
238
- await LSP.touchFile(target, true)
239
- }
240
- const diagnostics = await LSP.diagnostics()
241
-
242
- // Generate output summary
243
- const summaryLines = fileChanges.map((change) => {
244
- if (change.type === "add") {
245
- return `A ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}`
246
- }
247
- if (change.type === "delete") {
248
- return `D ${path.relative(Instance.worktree, change.filePath).replaceAll("\\", "/")}`
249
- }
250
- const target = change.movePath ?? change.filePath
251
- return `M ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}`
252
- })
253
- let output = `Success. Updated the following files:\n${summaryLines.join("\n")}`
254
-
255
- // Report LSP errors for changed files
256
- const MAX_DIAGNOSTICS_PER_FILE = 20
257
- for (const change of fileChanges) {
258
- if (change.type === "delete") continue
259
- const target = change.movePath ?? change.filePath
260
- const normalized = Filesystem.normalizePath(target)
261
- const issues = diagnostics[normalized] ?? []
262
- const errors = issues.filter((item) => item.severity === 1)
263
- if (errors.length > 0) {
264
- const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE)
265
- const suffix =
266
- errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : ""
267
- output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n<diagnostics file="${target}">\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n</diagnostics>`
268
- }
269
- }
270
-
271
- return {
272
- title: output,
273
- metadata: {
274
- diff: totalDiff,
275
- files,
276
- diagnostics,
277
- },
278
- output,
279
- }
280
- },
281
- })
@@ -1,33 +0,0 @@
1
- Use the `apply_patch` tool to edit files. Your patch language is a stripped‑down, file‑oriented diff format designed to be easy to parse and safe to apply. You can think of it as a high‑level envelope:
2
-
3
- *** Begin Patch
4
- [ one or more file sections ]
5
- *** End Patch
6
-
7
- Within that envelope, you get a sequence of file operations.
8
- You MUST include a header to specify the action you are taking.
9
- Each operation starts with one of three headers:
10
-
11
- *** Add File: <path> - create a new file. Every following line is a + line (the initial contents).
12
- *** Delete File: <path> - remove an existing file. Nothing follows.
13
- *** Update File: <path> - patch an existing file in place (optionally with a rename).
14
-
15
- Example patch:
16
-
17
- ```
18
- *** Begin Patch
19
- *** Add File: hello.txt
20
- +Hello world
21
- *** Update File: src/app.py
22
- *** Move to: src/main.py
23
- @@ def greet():
24
- -print("Hi")
25
- +print("Hello, world!")
26
- *** Delete File: obsolete.txt
27
- *** End Patch
28
- ```
29
-
30
- It is important to remember:
31
-
32
- - You must include a header with your intended action (Add/Delete/Update)
33
- - You must prefix new lines with `+` even when creating a new file