alchemylab-opencode 1.0.6 → 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 (413) hide show
  1. package/dist/arktype-aI7TBD0R-HX4BR3RX.js +21 -0
  2. package/dist/arktype-aI7TBD0R-HX4BR3RX.js.map +7 -0
  3. package/dist/{chunk-UWZSRZHA.js → chunk-23UYOGZG.js} +817 -315
  4. package/dist/chunk-23UYOGZG.js.map +7 -0
  5. package/dist/chunk-3AF5MXLF.js +49 -0
  6. package/dist/chunk-3AF5MXLF.js.map +7 -0
  7. package/dist/chunk-FMP3YLWX.js +30 -0
  8. package/dist/chunk-FMP3YLWX.js.map +7 -0
  9. package/dist/{chunk-ANDTK76Q.js → chunk-GSE2T5UY.js} +3 -3
  10. package/dist/{chunk-CYXMV3J3.js → chunk-LU5XVQUD.js} +4 -4
  11. package/dist/chunk-O5VWOPCL.js +106 -0
  12. package/dist/chunk-O5VWOPCL.js.map +7 -0
  13. package/dist/chunk-PWFRMDDF.js +12 -0
  14. package/dist/{chunk-DSPC5QIG.js → chunk-SM6WZDN6.js} +9 -9
  15. package/dist/{chunk-MCWTARFP.js → chunk-TASPMBUL.js} +4 -4
  16. package/dist/chunk-VL3RSEZ2.js +160 -0
  17. package/dist/chunk-VL3RSEZ2.js.map +7 -0
  18. package/dist/default-u_dwuiYb-WOFHQQ3K.js +22 -0
  19. package/dist/effect-QlVUlMFu-UERLUUQW.js +29 -0
  20. package/dist/effect-QlVUlMFu-UERLUUQW.js.map +7 -0
  21. package/dist/{mcp-VAU4RMWH.js → mcp-XFGN3FWW.js} +2 -2
  22. package/dist/{registry-PYMN6L3G.js → registry-W4MBVBYD.js} +3 -3
  23. package/dist/{run-YFVCQJQM.js → run-73HUV4H3.js} +9 -6
  24. package/dist/{run-YFVCQJQM.js.map → run-73HUV4H3.js.map} +1 -1
  25. package/dist/run.js +1 -1
  26. package/dist/serve.js +1 -1
  27. package/dist/{server-K3UGWASP.js → server-2CPOG3LS.js} +9 -6
  28. package/dist/{session-HJFWTM7C.js → session-M6HOZ56B.js} +3 -3
  29. package/dist/session-M6HOZ56B.js.map +7 -0
  30. package/dist/{share-next-55VCIMUH.js → share-next-QRBVSD37.js} +4 -4
  31. package/dist/share-next-QRBVSD37.js.map +7 -0
  32. package/dist/sury-CWZTCd75-XC3NCMTP.js +29 -0
  33. package/dist/sury-CWZTCd75-XC3NCMTP.js.map +7 -0
  34. package/dist/typebox-Dei93FPO-QOBKW4L7.js +21 -0
  35. package/dist/typebox-Dei93FPO-QOBKW4L7.js.map +7 -0
  36. package/dist/valibot--1zFm7rT-LHHLSLYY.js +29 -0
  37. package/dist/valibot--1zFm7rT-LHHLSLYY.js.map +7 -0
  38. package/dist/valibot-D_HTw1Gn-UR62BIDY.js +60 -0
  39. package/dist/valibot-D_HTw1Gn-UR62BIDY.js.map +7 -0
  40. package/dist/{worktree-6GGDLADY.js → worktree-3GUHT2P7.js} +5 -5
  41. package/dist/zod-Bwrt9trS-J2GOMA2R.js +43 -0
  42. package/dist/zod-Bwrt9trS-J2GOMA2R.js.map +7 -0
  43. package/dist/zod-DSgpEGAE-VTXQW6SB.js +56 -0
  44. package/dist/zod-DSgpEGAE-VTXQW6SB.js.map +7 -0
  45. package/package.json +2 -15
  46. package/build.mjs +0 -182
  47. package/dist/chunk-UWZSRZHA.js.map +0 -7
  48. package/packages/opencode/package.json +0 -138
  49. package/packages/opencode/src/account/account.sql.ts +0 -39
  50. package/packages/opencode/src/account/index.ts +0 -463
  51. package/packages/opencode/src/account/repo.ts +0 -163
  52. package/packages/opencode/src/account/schema.ts +0 -91
  53. package/packages/opencode/src/acp/README.md +0 -174
  54. package/packages/opencode/src/acp/agent.ts +0 -1847
  55. package/packages/opencode/src/acp/session.ts +0 -116
  56. package/packages/opencode/src/acp/types.ts +0 -24
  57. package/packages/opencode/src/agent/agent.ts +0 -420
  58. package/packages/opencode/src/agent/generate.txt +0 -75
  59. package/packages/opencode/src/agent/prompt/compaction.txt +0 -15
  60. package/packages/opencode/src/agent/prompt/explore.txt +0 -18
  61. package/packages/opencode/src/agent/prompt/summary.txt +0 -11
  62. package/packages/opencode/src/agent/prompt/title.txt +0 -44
  63. package/packages/opencode/src/auth/index.ts +0 -110
  64. package/packages/opencode/src/bus/bus-event.ts +0 -40
  65. package/packages/opencode/src/bus/global.ts +0 -10
  66. package/packages/opencode/src/bus/index.ts +0 -185
  67. package/packages/opencode/src/cli/bootstrap.ts +0 -17
  68. package/packages/opencode/src/cli/cmd/cmd.ts +0 -7
  69. package/packages/opencode/src/cli/cmd/run.ts +0 -689
  70. package/packages/opencode/src/cli/cmd/serve.ts +0 -24
  71. package/packages/opencode/src/cli/cmd/tui/event.ts +0 -49
  72. package/packages/opencode/src/cli/effect/prompt.ts +0 -25
  73. package/packages/opencode/src/cli/error.ts +0 -46
  74. package/packages/opencode/src/cli/heap.ts +0 -59
  75. package/packages/opencode/src/cli/logo.ts +0 -6
  76. package/packages/opencode/src/cli/network.ts +0 -60
  77. package/packages/opencode/src/cli/ui.ts +0 -133
  78. package/packages/opencode/src/cli/upgrade.ts +0 -31
  79. package/packages/opencode/src/command/index.ts +0 -195
  80. package/packages/opencode/src/command/template/initialize.txt +0 -66
  81. package/packages/opencode/src/command/template/review.txt +0 -101
  82. package/packages/opencode/src/config/config.ts +0 -1599
  83. package/packages/opencode/src/config/console-state.ts +0 -15
  84. package/packages/opencode/src/config/markdown.ts +0 -99
  85. package/packages/opencode/src/config/paths.ts +0 -167
  86. package/packages/opencode/src/config/tui-migrate.ts +0 -155
  87. package/packages/opencode/src/config/tui-schema.ts +0 -37
  88. package/packages/opencode/src/config/tui.ts +0 -179
  89. package/packages/opencode/src/control-plane/adaptors/index.ts +0 -20
  90. package/packages/opencode/src/control-plane/adaptors/worktree.ts +0 -42
  91. package/packages/opencode/src/control-plane/schema.ts +0 -17
  92. package/packages/opencode/src/control-plane/sse.ts +0 -66
  93. package/packages/opencode/src/control-plane/types.ts +0 -32
  94. package/packages/opencode/src/control-plane/workspace.sql.ts +0 -17
  95. package/packages/opencode/src/control-plane/workspace.ts +0 -168
  96. package/packages/opencode/src/effect/cross-spawn-spawner.ts +0 -502
  97. package/packages/opencode/src/effect/instance-ref.ts +0 -6
  98. package/packages/opencode/src/effect/instance-registry.ts +0 -12
  99. package/packages/opencode/src/effect/instance-state.ts +0 -82
  100. package/packages/opencode/src/effect/run-service.ts +0 -33
  101. package/packages/opencode/src/effect/runner.ts +0 -216
  102. package/packages/opencode/src/env/index.ts +0 -28
  103. package/packages/opencode/src/file/ignore.ts +0 -82
  104. package/packages/opencode/src/file/index.ts +0 -686
  105. package/packages/opencode/src/file/protected.ts +0 -59
  106. package/packages/opencode/src/file/ripgrep.ts +0 -376
  107. package/packages/opencode/src/file/time.ts +0 -133
  108. package/packages/opencode/src/file/watcher.ts +0 -173
  109. package/packages/opencode/src/filesystem/index.ts +0 -236
  110. package/packages/opencode/src/flag/flag.ts +0 -156
  111. package/packages/opencode/src/format/formatter.ts +0 -413
  112. package/packages/opencode/src/format/index.ts +0 -203
  113. package/packages/opencode/src/git/index.ts +0 -303
  114. package/packages/opencode/src/global/index.ts +0 -56
  115. package/packages/opencode/src/id/id.ts +0 -85
  116. package/packages/opencode/src/ide/index.ts +0 -74
  117. package/packages/opencode/src/installation/index.ts +0 -355
  118. package/packages/opencode/src/installation/meta.ts +0 -7
  119. package/packages/opencode/src/lsp/client.ts +0 -252
  120. package/packages/opencode/src/lsp/index.ts +0 -558
  121. package/packages/opencode/src/lsp/language.ts +0 -120
  122. package/packages/opencode/src/lsp/launch.ts +0 -21
  123. package/packages/opencode/src/lsp/server.ts +0 -1968
  124. package/packages/opencode/src/mcp/auth.ts +0 -173
  125. package/packages/opencode/src/mcp/index.ts +0 -931
  126. package/packages/opencode/src/mcp/oauth-callback.ts +0 -216
  127. package/packages/opencode/src/mcp/oauth-provider.ts +0 -185
  128. package/packages/opencode/src/node-loader.mjs +0 -104
  129. package/packages/opencode/src/node-preload.mjs +0 -39
  130. package/packages/opencode/src/node.ts +0 -1
  131. package/packages/opencode/src/npm/index.ts +0 -188
  132. package/packages/opencode/src/patch/index.ts +0 -680
  133. package/packages/opencode/src/permission/arity.ts +0 -163
  134. package/packages/opencode/src/permission/evaluate.ts +0 -15
  135. package/packages/opencode/src/permission/index.ts +0 -325
  136. package/packages/opencode/src/permission/schema.ts +0 -17
  137. package/packages/opencode/src/plugin/cloudflare.ts +0 -67
  138. package/packages/opencode/src/plugin/codex.ts +0 -608
  139. package/packages/opencode/src/plugin/github-copilot/copilot.ts +0 -361
  140. package/packages/opencode/src/plugin/github-copilot/models.ts +0 -144
  141. package/packages/opencode/src/plugin/index.ts +0 -299
  142. package/packages/opencode/src/plugin/install.ts +0 -439
  143. package/packages/opencode/src/plugin/loader.ts +0 -174
  144. package/packages/opencode/src/plugin/meta.ts +0 -188
  145. package/packages/opencode/src/plugin/shared.ts +0 -323
  146. package/packages/opencode/src/project/bootstrap.ts +0 -31
  147. package/packages/opencode/src/project/instance.ts +0 -175
  148. package/packages/opencode/src/project/project.sql.ts +0 -16
  149. package/packages/opencode/src/project/project.ts +0 -519
  150. package/packages/opencode/src/project/schema.ts +0 -16
  151. package/packages/opencode/src/project/state.ts +0 -70
  152. package/packages/opencode/src/project/vcs.ts +0 -240
  153. package/packages/opencode/src/provider/auth.ts +0 -253
  154. package/packages/opencode/src/provider/error.ts +0 -197
  155. package/packages/opencode/src/provider/models.ts +0 -162
  156. package/packages/opencode/src/provider/provider.ts +0 -1709
  157. package/packages/opencode/src/provider/schema.ts +0 -38
  158. package/packages/opencode/src/provider/sdk/copilot/README.md +0 -5
  159. package/packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -170
  160. package/packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts +0 -15
  161. package/packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -19
  162. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +0 -64
  163. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +0 -815
  164. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +0 -28
  165. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -44
  166. package/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -83
  167. package/packages/opencode/src/provider/sdk/copilot/copilot-provider.ts +0 -100
  168. package/packages/opencode/src/provider/sdk/copilot/index.ts +0 -2
  169. package/packages/opencode/src/provider/sdk/copilot/openai-compatible-error.ts +0 -27
  170. package/packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +0 -335
  171. package/packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +0 -22
  172. package/packages/opencode/src/provider/sdk/copilot/responses/openai-config.ts +0 -18
  173. package/packages/opencode/src/provider/sdk/copilot/responses/openai-error.ts +0 -22
  174. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +0 -214
  175. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +0 -1769
  176. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +0 -173
  177. package/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-settings.ts +0 -1
  178. package/packages/opencode/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +0 -87
  179. package/packages/opencode/src/provider/sdk/copilot/responses/tool/file-search.ts +0 -127
  180. package/packages/opencode/src/provider/sdk/copilot/responses/tool/image-generation.ts +0 -114
  181. package/packages/opencode/src/provider/sdk/copilot/responses/tool/local-shell.ts +0 -64
  182. package/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +0 -103
  183. package/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search.ts +0 -102
  184. package/packages/opencode/src/provider/transform.ts +0 -1050
  185. package/packages/opencode/src/pty/index.ts +0 -397
  186. package/packages/opencode/src/pty/pty.node.ts +0 -27
  187. package/packages/opencode/src/pty/pty.ts +0 -25
  188. package/packages/opencode/src/pty/schema.ts +0 -17
  189. package/packages/opencode/src/question/index.ts +0 -224
  190. package/packages/opencode/src/question/schema.ts +0 -17
  191. package/packages/opencode/src/run.ts +0 -28
  192. package/packages/opencode/src/serve.ts +0 -45
  193. package/packages/opencode/src/server/error.ts +0 -36
  194. package/packages/opencode/src/server/event.ts +0 -7
  195. package/packages/opencode/src/server/instance.ts +0 -324
  196. package/packages/opencode/src/server/mdns.ts +0 -60
  197. package/packages/opencode/src/server/middleware.ts +0 -33
  198. package/packages/opencode/src/server/projectors.ts +0 -28
  199. package/packages/opencode/src/server/proxy.ts +0 -131
  200. package/packages/opencode/src/server/router.ts +0 -105
  201. package/packages/opencode/src/server/routes/config.ts +0 -92
  202. package/packages/opencode/src/server/routes/event.ts +0 -83
  203. package/packages/opencode/src/server/routes/experimental.ts +0 -374
  204. package/packages/opencode/src/server/routes/file.ts +0 -197
  205. package/packages/opencode/src/server/routes/global.ts +0 -312
  206. package/packages/opencode/src/server/routes/mcp.ts +0 -225
  207. package/packages/opencode/src/server/routes/permission.ts +0 -69
  208. package/packages/opencode/src/server/routes/project.ts +0 -118
  209. package/packages/opencode/src/server/routes/provider.ts +0 -171
  210. package/packages/opencode/src/server/routes/pty.ts +0 -210
  211. package/packages/opencode/src/server/routes/question.ts +0 -99
  212. package/packages/opencode/src/server/routes/session.ts +0 -1030
  213. package/packages/opencode/src/server/routes/tui.ts +0 -379
  214. package/packages/opencode/src/server/routes/workspace.ts +0 -94
  215. package/packages/opencode/src/server/server.ts +0 -353
  216. package/packages/opencode/src/session/compaction.ts +0 -428
  217. package/packages/opencode/src/session/index.ts +0 -887
  218. package/packages/opencode/src/session/instruction.ts +0 -258
  219. package/packages/opencode/src/session/llm.ts +0 -354
  220. package/packages/opencode/src/session/message-v2.ts +0 -1031
  221. package/packages/opencode/src/session/message.ts +0 -191
  222. package/packages/opencode/src/session/overflow.ts +0 -22
  223. package/packages/opencode/src/session/processor.ts +0 -523
  224. package/packages/opencode/src/session/projectors.ts +0 -135
  225. package/packages/opencode/src/session/prompt/anthropic.txt +0 -105
  226. package/packages/opencode/src/session/prompt/beast.txt +0 -147
  227. package/packages/opencode/src/session/prompt/build-switch.txt +0 -5
  228. package/packages/opencode/src/session/prompt/codex.txt +0 -79
  229. package/packages/opencode/src/session/prompt/copilot-gpt-5.txt +0 -143
  230. package/packages/opencode/src/session/prompt/default.txt +0 -105
  231. package/packages/opencode/src/session/prompt/gemini.txt +0 -155
  232. package/packages/opencode/src/session/prompt/gpt.txt +0 -107
  233. package/packages/opencode/src/session/prompt/kimi.txt +0 -95
  234. package/packages/opencode/src/session/prompt/max-steps.txt +0 -16
  235. package/packages/opencode/src/session/prompt/plan-reminder-anthropic.txt +0 -67
  236. package/packages/opencode/src/session/prompt/plan.txt +0 -26
  237. package/packages/opencode/src/session/prompt/trinity.txt +0 -97
  238. package/packages/opencode/src/session/prompt.ts +0 -1911
  239. package/packages/opencode/src/session/retry.ts +0 -106
  240. package/packages/opencode/src/session/revert.ts +0 -176
  241. package/packages/opencode/src/session/schema.ts +0 -38
  242. package/packages/opencode/src/session/session.sql.ts +0 -103
  243. package/packages/opencode/src/session/status.ts +0 -102
  244. package/packages/opencode/src/session/summary.ts +0 -177
  245. package/packages/opencode/src/session/system.ts +0 -76
  246. package/packages/opencode/src/session/todo.ts +0 -95
  247. package/packages/opencode/src/share/share-next.ts +0 -369
  248. package/packages/opencode/src/share/share.sql.ts +0 -13
  249. package/packages/opencode/src/shell/shell.ts +0 -110
  250. package/packages/opencode/src/skill/discovery.ts +0 -116
  251. package/packages/opencode/src/skill/index.ts +0 -277
  252. package/packages/opencode/src/snapshot/index.ts +0 -726
  253. package/packages/opencode/src/sql.d.ts +0 -4
  254. package/packages/opencode/src/storage/db.node.ts +0 -8
  255. package/packages/opencode/src/storage/db.ts +0 -177
  256. package/packages/opencode/src/storage/json-migration.ts +0 -425
  257. package/packages/opencode/src/storage/schema.sql.ts +0 -10
  258. package/packages/opencode/src/storage/schema.ts +0 -5
  259. package/packages/opencode/src/storage/storage.ts +0 -353
  260. package/packages/opencode/src/sync/README.md +0 -179
  261. package/packages/opencode/src/sync/event.sql.ts +0 -16
  262. package/packages/opencode/src/sync/index.ts +0 -263
  263. package/packages/opencode/src/sync/schema.ts +0 -14
  264. package/packages/opencode/src/tool/apply_patch.ts +0 -281
  265. package/packages/opencode/src/tool/apply_patch.txt +0 -33
  266. package/packages/opencode/src/tool/bash.ts +0 -496
  267. package/packages/opencode/src/tool/bash.txt +0 -117
  268. package/packages/opencode/src/tool/batch.ts +0 -183
  269. package/packages/opencode/src/tool/batch.txt +0 -24
  270. package/packages/opencode/src/tool/codesearch.ts +0 -132
  271. package/packages/opencode/src/tool/codesearch.txt +0 -12
  272. package/packages/opencode/src/tool/edit.ts +0 -667
  273. package/packages/opencode/src/tool/edit.txt +0 -10
  274. package/packages/opencode/src/tool/external-directory.ts +0 -46
  275. package/packages/opencode/src/tool/glob.ts +0 -78
  276. package/packages/opencode/src/tool/glob.txt +0 -6
  277. package/packages/opencode/src/tool/grep.ts +0 -156
  278. package/packages/opencode/src/tool/grep.txt +0 -8
  279. package/packages/opencode/src/tool/invalid.ts +0 -17
  280. package/packages/opencode/src/tool/ls.ts +0 -121
  281. package/packages/opencode/src/tool/ls.txt +0 -1
  282. package/packages/opencode/src/tool/lsp.ts +0 -97
  283. package/packages/opencode/src/tool/lsp.txt +0 -19
  284. package/packages/opencode/src/tool/multiedit.ts +0 -46
  285. package/packages/opencode/src/tool/multiedit.txt +0 -41
  286. package/packages/opencode/src/tool/plan-enter.txt +0 -14
  287. package/packages/opencode/src/tool/plan-exit.txt +0 -13
  288. package/packages/opencode/src/tool/plan.ts +0 -131
  289. package/packages/opencode/src/tool/question.ts +0 -46
  290. package/packages/opencode/src/tool/question.txt +0 -10
  291. package/packages/opencode/src/tool/read.ts +0 -332
  292. package/packages/opencode/src/tool/read.txt +0 -14
  293. package/packages/opencode/src/tool/registry.ts +0 -265
  294. package/packages/opencode/src/tool/schema.ts +0 -17
  295. package/packages/opencode/src/tool/skill.ts +0 -105
  296. package/packages/opencode/src/tool/task.ts +0 -166
  297. package/packages/opencode/src/tool/task.txt +0 -60
  298. package/packages/opencode/src/tool/todo.ts +0 -48
  299. package/packages/opencode/src/tool/todowrite.txt +0 -167
  300. package/packages/opencode/src/tool/tool.ts +0 -112
  301. package/packages/opencode/src/tool/truncate.ts +0 -144
  302. package/packages/opencode/src/tool/truncation-dir.ts +0 -4
  303. package/packages/opencode/src/tool/webfetch.ts +0 -206
  304. package/packages/opencode/src/tool/webfetch.txt +0 -13
  305. package/packages/opencode/src/tool/websearch.ts +0 -150
  306. package/packages/opencode/src/tool/websearch.txt +0 -14
  307. package/packages/opencode/src/tool/write.ts +0 -84
  308. package/packages/opencode/src/tool/write.txt +0 -8
  309. package/packages/opencode/src/util/abort.ts +0 -35
  310. package/packages/opencode/src/util/archive.ts +0 -17
  311. package/packages/opencode/src/util/color.ts +0 -19
  312. package/packages/opencode/src/util/context.ts +0 -25
  313. package/packages/opencode/src/util/data-url.ts +0 -9
  314. package/packages/opencode/src/util/defer.ts +0 -12
  315. package/packages/opencode/src/util/effect-http-client.ts +0 -11
  316. package/packages/opencode/src/util/effect-zod.ts +0 -98
  317. package/packages/opencode/src/util/error.ts +0 -77
  318. package/packages/opencode/src/util/filesystem.ts +0 -245
  319. package/packages/opencode/src/util/flock.ts +0 -333
  320. package/packages/opencode/src/util/fn.ts +0 -21
  321. package/packages/opencode/src/util/format.ts +0 -20
  322. package/packages/opencode/src/util/glob.ts +0 -34
  323. package/packages/opencode/src/util/hash.ts +0 -7
  324. package/packages/opencode/src/util/iife.ts +0 -3
  325. package/packages/opencode/src/util/keybind.ts +0 -103
  326. package/packages/opencode/src/util/lazy.ts +0 -23
  327. package/packages/opencode/src/util/locale.ts +0 -81
  328. package/packages/opencode/src/util/lock.ts +0 -98
  329. package/packages/opencode/src/util/log.ts +0 -182
  330. package/packages/opencode/src/util/network.ts +0 -9
  331. package/packages/opencode/src/util/process.ts +0 -176
  332. package/packages/opencode/src/util/queue.ts +0 -32
  333. package/packages/opencode/src/util/record.ts +0 -3
  334. package/packages/opencode/src/util/rpc.ts +0 -66
  335. package/packages/opencode/src/util/schema.ts +0 -53
  336. package/packages/opencode/src/util/scrap.ts +0 -10
  337. package/packages/opencode/src/util/signal.ts +0 -12
  338. package/packages/opencode/src/util/timeout.ts +0 -14
  339. package/packages/opencode/src/util/token.ts +0 -7
  340. package/packages/opencode/src/util/update-schema.ts +0 -13
  341. package/packages/opencode/src/util/which.ts +0 -14
  342. package/packages/opencode/src/util/wildcard.ts +0 -59
  343. package/packages/opencode/src/worktree/index.ts +0 -612
  344. package/packages/plugin/package.json +0 -38
  345. package/packages/plugin/src/example.ts +0 -18
  346. package/packages/plugin/src/index.ts +0 -282
  347. package/packages/plugin/src/shell.ts +0 -136
  348. package/packages/plugin/src/tool.ts +0 -38
  349. package/packages/plugin/src/tui.ts +0 -508
  350. package/packages/script/package.json +0 -16
  351. package/packages/script/src/index.ts +0 -77
  352. package/packages/sdk/package.json +0 -33
  353. package/packages/sdk/src/client.ts +0 -55
  354. package/packages/sdk/src/gen/client/client.gen.ts +0 -212
  355. package/packages/sdk/src/gen/client/index.ts +0 -25
  356. package/packages/sdk/src/gen/client/types.gen.ts +0 -222
  357. package/packages/sdk/src/gen/client/utils.gen.ts +0 -287
  358. package/packages/sdk/src/gen/client.gen.ts +0 -22
  359. package/packages/sdk/src/gen/core/auth.gen.ts +0 -41
  360. package/packages/sdk/src/gen/core/bodySerializer.gen.ts +0 -74
  361. package/packages/sdk/src/gen/core/params.gen.ts +0 -144
  362. package/packages/sdk/src/gen/core/pathSerializer.gen.ts +0 -167
  363. package/packages/sdk/src/gen/core/queryKeySerializer.gen.ts +0 -111
  364. package/packages/sdk/src/gen/core/serverSentEvents.gen.ts +0 -210
  365. package/packages/sdk/src/gen/core/types.gen.ts +0 -91
  366. package/packages/sdk/src/gen/core/utils.gen.ts +0 -109
  367. package/packages/sdk/src/gen/sdk.gen.ts +0 -1197
  368. package/packages/sdk/src/gen/types.gen.ts +0 -3904
  369. package/packages/sdk/src/index.ts +0 -21
  370. package/packages/sdk/src/process.ts +0 -31
  371. package/packages/sdk/src/server.ts +0 -134
  372. package/packages/sdk/src/v2/client.ts +0 -81
  373. package/packages/sdk/src/v2/gen/client/client.gen.ts +0 -285
  374. package/packages/sdk/src/v2/gen/client/index.ts +0 -25
  375. package/packages/sdk/src/v2/gen/client/types.gen.ts +0 -202
  376. package/packages/sdk/src/v2/gen/client/utils.gen.ts +0 -289
  377. package/packages/sdk/src/v2/gen/client.gen.ts +0 -18
  378. package/packages/sdk/src/v2/gen/core/auth.gen.ts +0 -41
  379. package/packages/sdk/src/v2/gen/core/bodySerializer.gen.ts +0 -82
  380. package/packages/sdk/src/v2/gen/core/params.gen.ts +0 -169
  381. package/packages/sdk/src/v2/gen/core/pathSerializer.gen.ts +0 -167
  382. package/packages/sdk/src/v2/gen/core/queryKeySerializer.gen.ts +0 -111
  383. package/packages/sdk/src/v2/gen/core/serverSentEvents.gen.ts +0 -239
  384. package/packages/sdk/src/v2/gen/core/types.gen.ts +0 -86
  385. package/packages/sdk/src/v2/gen/core/utils.gen.ts +0 -137
  386. package/packages/sdk/src/v2/gen/sdk.gen.ts +0 -4223
  387. package/packages/sdk/src/v2/gen/types.gen.ts +0 -5265
  388. package/packages/sdk/src/v2/index.ts +0 -21
  389. package/packages/sdk/src/v2/server.ts +0 -134
  390. package/packages/util/package.json +0 -20
  391. package/packages/util/src/array.ts +0 -10
  392. package/packages/util/src/binary.ts +0 -41
  393. package/packages/util/src/encode.ts +0 -51
  394. package/packages/util/src/error.ts +0 -54
  395. package/packages/util/src/fn.ts +0 -11
  396. package/packages/util/src/identifier.ts +0 -48
  397. package/packages/util/src/iife.ts +0 -3
  398. package/packages/util/src/lazy.ts +0 -11
  399. package/packages/util/src/module.ts +0 -10
  400. package/packages/util/src/path.ts +0 -37
  401. package/packages/util/src/retry.ts +0 -41
  402. package/packages/util/src/slug.ts +0 -74
  403. package/postinstall.cjs +0 -55
  404. /package/dist/{chunk-ANDTK76Q.js.map → chunk-GSE2T5UY.js.map} +0 -0
  405. /package/dist/{chunk-CYXMV3J3.js.map → chunk-LU5XVQUD.js.map} +0 -0
  406. /package/dist/{mcp-VAU4RMWH.js.map → chunk-PWFRMDDF.js.map} +0 -0
  407. /package/dist/{chunk-DSPC5QIG.js.map → chunk-SM6WZDN6.js.map} +0 -0
  408. /package/dist/{chunk-MCWTARFP.js.map → chunk-TASPMBUL.js.map} +0 -0
  409. /package/dist/{registry-PYMN6L3G.js.map → default-u_dwuiYb-WOFHQQ3K.js.map} +0 -0
  410. /package/dist/{server-K3UGWASP.js.map → mcp-XFGN3FWW.js.map} +0 -0
  411. /package/dist/{session-HJFWTM7C.js.map → registry-W4MBVBYD.js.map} +0 -0
  412. /package/dist/{share-next-55VCIMUH.js.map → server-2CPOG3LS.js.map} +0 -0
  413. /package/dist/{worktree-6GGDLADY.js.map → worktree-3GUHT2P7.js.map} +0 -0
@@ -1,169 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- type Slot = "body" | "headers" | "path" | "query"
4
-
5
- export type Field =
6
- | {
7
- in: Exclude<Slot, "body">
8
- /**
9
- * Field name. This is the name we want the user to see and use.
10
- */
11
- key: string
12
- /**
13
- * Field mapped name. This is the name we want to use in the request.
14
- * If omitted, we use the same value as `key`.
15
- */
16
- map?: string
17
- }
18
- | {
19
- in: Extract<Slot, "body">
20
- /**
21
- * Key isn't required for bodies.
22
- */
23
- key?: string
24
- map?: string
25
- }
26
- | {
27
- /**
28
- * Field name. This is the name we want the user to see and use.
29
- */
30
- key: string
31
- /**
32
- * Field mapped name. This is the name we want to use in the request.
33
- * If `in` is omitted, `map` aliases `key` to the transport layer.
34
- */
35
- map: Slot
36
- }
37
-
38
- export interface Fields {
39
- allowExtra?: Partial<Record<Slot, boolean>>
40
- args?: ReadonlyArray<Field>
41
- }
42
-
43
- export type FieldsConfig = ReadonlyArray<Field | Fields>
44
-
45
- const extraPrefixesMap: Record<string, Slot> = {
46
- $body_: "body",
47
- $headers_: "headers",
48
- $path_: "path",
49
- $query_: "query",
50
- }
51
- const extraPrefixes = Object.entries(extraPrefixesMap)
52
-
53
- type KeyMap = Map<
54
- string,
55
- | {
56
- in: Slot
57
- map?: string
58
- }
59
- | {
60
- in?: never
61
- map: Slot
62
- }
63
- >
64
-
65
- const buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {
66
- if (!map) {
67
- map = new Map()
68
- }
69
-
70
- for (const config of fields) {
71
- if ("in" in config) {
72
- if (config.key) {
73
- map.set(config.key, {
74
- in: config.in,
75
- map: config.map,
76
- })
77
- }
78
- } else if ("key" in config) {
79
- map.set(config.key, {
80
- map: config.map,
81
- })
82
- } else if (config.args) {
83
- buildKeyMap(config.args, map)
84
- }
85
- }
86
-
87
- return map
88
- }
89
-
90
- interface Params {
91
- body: unknown
92
- headers: Record<string, unknown>
93
- path: Record<string, unknown>
94
- query: Record<string, unknown>
95
- }
96
-
97
- const stripEmptySlots = (params: Params) => {
98
- for (const [slot, value] of Object.entries(params)) {
99
- if (value && typeof value === "object" && !Object.keys(value).length) {
100
- delete params[slot as Slot]
101
- }
102
- }
103
- }
104
-
105
- export const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {
106
- const params: Params = {
107
- body: {},
108
- headers: {},
109
- path: {},
110
- query: {},
111
- }
112
-
113
- const map = buildKeyMap(fields)
114
-
115
- let config: FieldsConfig[number] | undefined
116
-
117
- for (const [index, arg] of args.entries()) {
118
- if (fields[index]) {
119
- config = fields[index]
120
- }
121
-
122
- if (!config) {
123
- continue
124
- }
125
-
126
- if ("in" in config) {
127
- if (config.key) {
128
- const field = map.get(config.key)!
129
- const name = field.map || config.key
130
- if (field.in) {
131
- ;(params[field.in] as Record<string, unknown>)[name] = arg
132
- }
133
- } else {
134
- params.body = arg
135
- }
136
- } else {
137
- for (const [key, value] of Object.entries(arg ?? {})) {
138
- const field = map.get(key)
139
-
140
- if (field) {
141
- if (field.in) {
142
- const name = field.map || key
143
- ;(params[field.in] as Record<string, unknown>)[name] = value
144
- } else {
145
- params[field.map] = value
146
- }
147
- } else {
148
- const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix))
149
-
150
- if (extra) {
151
- const [prefix, slot] = extra
152
- ;(params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value
153
- } else if ("allowExtra" in config && config.allowExtra) {
154
- for (const [slot, allowed] of Object.entries(config.allowExtra)) {
155
- if (allowed) {
156
- ;(params[slot as Slot] as Record<string, unknown>)[key] = value
157
- break
158
- }
159
- }
160
- }
161
- }
162
- }
163
- }
164
- }
165
-
166
- stripEmptySlots(params)
167
-
168
- return params
169
- }
@@ -1,167 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- interface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}
4
-
5
- interface SerializePrimitiveOptions {
6
- allowReserved?: boolean
7
- name: string
8
- }
9
-
10
- export interface SerializerOptions<T> {
11
- /**
12
- * @default true
13
- */
14
- explode: boolean
15
- style: T
16
- }
17
-
18
- export type ArrayStyle = "form" | "spaceDelimited" | "pipeDelimited"
19
- export type ArraySeparatorStyle = ArrayStyle | MatrixStyle
20
- type MatrixStyle = "label" | "matrix" | "simple"
21
- export type ObjectStyle = "form" | "deepObject"
22
- type ObjectSeparatorStyle = ObjectStyle | MatrixStyle
23
-
24
- interface SerializePrimitiveParam extends SerializePrimitiveOptions {
25
- value: string
26
- }
27
-
28
- export const separatorArrayExplode = (style: ArraySeparatorStyle) => {
29
- switch (style) {
30
- case "label":
31
- return "."
32
- case "matrix":
33
- return ";"
34
- case "simple":
35
- return ","
36
- default:
37
- return "&"
38
- }
39
- }
40
-
41
- export const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {
42
- switch (style) {
43
- case "form":
44
- return ","
45
- case "pipeDelimited":
46
- return "|"
47
- case "spaceDelimited":
48
- return "%20"
49
- default:
50
- return ","
51
- }
52
- }
53
-
54
- export const separatorObjectExplode = (style: ObjectSeparatorStyle) => {
55
- switch (style) {
56
- case "label":
57
- return "."
58
- case "matrix":
59
- return ";"
60
- case "simple":
61
- return ","
62
- default:
63
- return "&"
64
- }
65
- }
66
-
67
- export const serializeArrayParam = ({
68
- allowReserved,
69
- explode,
70
- name,
71
- style,
72
- value,
73
- }: SerializeOptions<ArraySeparatorStyle> & {
74
- value: unknown[]
75
- }) => {
76
- if (!explode) {
77
- const joinedValues = (allowReserved ? value : value.map((v) => encodeURIComponent(v as string))).join(
78
- separatorArrayNoExplode(style),
79
- )
80
- switch (style) {
81
- case "label":
82
- return `.${joinedValues}`
83
- case "matrix":
84
- return `;${name}=${joinedValues}`
85
- case "simple":
86
- return joinedValues
87
- default:
88
- return `${name}=${joinedValues}`
89
- }
90
- }
91
-
92
- const separator = separatorArrayExplode(style)
93
- const joinedValues = value
94
- .map((v) => {
95
- if (style === "label" || style === "simple") {
96
- return allowReserved ? v : encodeURIComponent(v as string)
97
- }
98
-
99
- return serializePrimitiveParam({
100
- allowReserved,
101
- name,
102
- value: v as string,
103
- })
104
- })
105
- .join(separator)
106
- return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues
107
- }
108
-
109
- export const serializePrimitiveParam = ({ allowReserved, name, value }: SerializePrimitiveParam) => {
110
- if (value === undefined || value === null) {
111
- return ""
112
- }
113
-
114
- if (typeof value === "object") {
115
- throw new Error(
116
- "Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.",
117
- )
118
- }
119
-
120
- return `${name}=${allowReserved ? value : encodeURIComponent(value)}`
121
- }
122
-
123
- export const serializeObjectParam = ({
124
- allowReserved,
125
- explode,
126
- name,
127
- style,
128
- value,
129
- valueOnly,
130
- }: SerializeOptions<ObjectSeparatorStyle> & {
131
- value: Record<string, unknown> | Date
132
- valueOnly?: boolean
133
- }) => {
134
- if (value instanceof Date) {
135
- return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`
136
- }
137
-
138
- if (style !== "deepObject" && !explode) {
139
- let values: string[] = []
140
- Object.entries(value).forEach(([key, v]) => {
141
- values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)]
142
- })
143
- const joinedValues = values.join(",")
144
- switch (style) {
145
- case "form":
146
- return `${name}=${joinedValues}`
147
- case "label":
148
- return `.${joinedValues}`
149
- case "matrix":
150
- return `;${name}=${joinedValues}`
151
- default:
152
- return joinedValues
153
- }
154
- }
155
-
156
- const separator = separatorObjectExplode(style)
157
- const joinedValues = Object.entries(value)
158
- .map(([key, v]) =>
159
- serializePrimitiveParam({
160
- allowReserved,
161
- name: style === "deepObject" ? `${name}[${key}]` : key,
162
- value: v as string,
163
- }),
164
- )
165
- .join(separator)
166
- return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues
167
- }
@@ -1,111 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- /**
4
- * JSON-friendly union that mirrors what Pinia Colada can hash.
5
- */
6
- export type JsonValue = null | string | number | boolean | JsonValue[] | { [key: string]: JsonValue }
7
-
8
- /**
9
- * Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes.
10
- */
11
- export const queryKeyJsonReplacer = (_key: string, value: unknown) => {
12
- if (value === undefined || typeof value === "function" || typeof value === "symbol") {
13
- return undefined
14
- }
15
- if (typeof value === "bigint") {
16
- return value.toString()
17
- }
18
- if (value instanceof Date) {
19
- return value.toISOString()
20
- }
21
- return value
22
- }
23
-
24
- /**
25
- * Safely stringifies a value and parses it back into a JsonValue.
26
- */
27
- export const stringifyToJsonValue = (input: unknown): JsonValue | undefined => {
28
- try {
29
- const json = JSON.stringify(input, queryKeyJsonReplacer)
30
- if (json === undefined) {
31
- return undefined
32
- }
33
- return JSON.parse(json) as JsonValue
34
- } catch {
35
- return undefined
36
- }
37
- }
38
-
39
- /**
40
- * Detects plain objects (including objects with a null prototype).
41
- */
42
- const isPlainObject = (value: unknown): value is Record<string, unknown> => {
43
- if (value === null || typeof value !== "object") {
44
- return false
45
- }
46
- const prototype = Object.getPrototypeOf(value as object)
47
- return prototype === Object.prototype || prototype === null
48
- }
49
-
50
- /**
51
- * Turns URLSearchParams into a sorted JSON object for deterministic keys.
52
- */
53
- const serializeSearchParams = (params: URLSearchParams): JsonValue => {
54
- const entries = Array.from(params.entries()).sort(([a], [b]) => a.localeCompare(b))
55
- const result: Record<string, JsonValue> = {}
56
-
57
- for (const [key, value] of entries) {
58
- const existing = result[key]
59
- if (existing === undefined) {
60
- result[key] = value
61
- continue
62
- }
63
-
64
- if (Array.isArray(existing)) {
65
- ;(existing as string[]).push(value)
66
- } else {
67
- result[key] = [existing, value]
68
- }
69
- }
70
-
71
- return result
72
- }
73
-
74
- /**
75
- * Normalizes any accepted value into a JSON-friendly shape for query keys.
76
- */
77
- export const serializeQueryKeyValue = (value: unknown): JsonValue | undefined => {
78
- if (value === null) {
79
- return null
80
- }
81
-
82
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
83
- return value
84
- }
85
-
86
- if (value === undefined || typeof value === "function" || typeof value === "symbol") {
87
- return undefined
88
- }
89
-
90
- if (typeof value === "bigint") {
91
- return value.toString()
92
- }
93
-
94
- if (value instanceof Date) {
95
- return value.toISOString()
96
- }
97
-
98
- if (Array.isArray(value)) {
99
- return stringifyToJsonValue(value)
100
- }
101
-
102
- if (typeof URLSearchParams !== "undefined" && value instanceof URLSearchParams) {
103
- return serializeSearchParams(value)
104
- }
105
-
106
- if (isPlainObject(value)) {
107
- return stringifyToJsonValue(value)
108
- }
109
-
110
- return undefined
111
- }
@@ -1,239 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- import type { Config } from "./types.gen.js"
4
-
5
- export type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, "method"> &
6
- Pick<Config, "method" | "responseTransformer" | "responseValidator"> & {
7
- /**
8
- * Fetch API implementation. You can use this option to provide a custom
9
- * fetch instance.
10
- *
11
- * @default globalThis.fetch
12
- */
13
- fetch?: typeof fetch
14
- /**
15
- * Implementing clients can call request interceptors inside this hook.
16
- */
17
- onRequest?: (url: string, init: RequestInit) => Promise<Request>
18
- /**
19
- * Callback invoked when a network or parsing error occurs during streaming.
20
- *
21
- * This option applies only if the endpoint returns a stream of events.
22
- *
23
- * @param error The error that occurred.
24
- */
25
- onSseError?: (error: unknown) => void
26
- /**
27
- * Callback invoked when an event is streamed from the server.
28
- *
29
- * This option applies only if the endpoint returns a stream of events.
30
- *
31
- * @param event Event streamed from the server.
32
- * @returns Nothing (void).
33
- */
34
- onSseEvent?: (event: StreamEvent<TData>) => void
35
- serializedBody?: RequestInit["body"]
36
- /**
37
- * Default retry delay in milliseconds.
38
- *
39
- * This option applies only if the endpoint returns a stream of events.
40
- *
41
- * @default 3000
42
- */
43
- sseDefaultRetryDelay?: number
44
- /**
45
- * Maximum number of retry attempts before giving up.
46
- */
47
- sseMaxRetryAttempts?: number
48
- /**
49
- * Maximum retry delay in milliseconds.
50
- *
51
- * Applies only when exponential backoff is used.
52
- *
53
- * This option applies only if the endpoint returns a stream of events.
54
- *
55
- * @default 30000
56
- */
57
- sseMaxRetryDelay?: number
58
- /**
59
- * Optional sleep function for retry backoff.
60
- *
61
- * Defaults to using `setTimeout`.
62
- */
63
- sseSleepFn?: (ms: number) => Promise<void>
64
- url: string
65
- }
66
-
67
- export interface StreamEvent<TData = unknown> {
68
- data: TData
69
- event?: string
70
- id?: string
71
- retry?: number
72
- }
73
-
74
- export type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {
75
- stream: AsyncGenerator<TData extends Record<string, unknown> ? TData[keyof TData] : TData, TReturn, TNext>
76
- }
77
-
78
- export const createSseClient = <TData = unknown>({
79
- onRequest,
80
- onSseError,
81
- onSseEvent,
82
- responseTransformer,
83
- responseValidator,
84
- sseDefaultRetryDelay,
85
- sseMaxRetryAttempts,
86
- sseMaxRetryDelay,
87
- sseSleepFn,
88
- url,
89
- ...options
90
- }: ServerSentEventsOptions): ServerSentEventsResult<TData> => {
91
- let lastEventId: string | undefined
92
-
93
- const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)))
94
-
95
- const createStream = async function* () {
96
- let retryDelay: number = sseDefaultRetryDelay ?? 3000
97
- let attempt = 0
98
- const signal = options.signal ?? new AbortController().signal
99
-
100
- while (true) {
101
- if (signal.aborted) break
102
-
103
- attempt++
104
-
105
- const headers =
106
- options.headers instanceof Headers
107
- ? options.headers
108
- : new Headers(options.headers as Record<string, string> | undefined)
109
-
110
- if (lastEventId !== undefined) {
111
- headers.set("Last-Event-ID", lastEventId)
112
- }
113
-
114
- try {
115
- const requestInit: RequestInit = {
116
- redirect: "follow",
117
- ...options,
118
- body: options.serializedBody,
119
- headers,
120
- signal,
121
- }
122
- let request = new Request(url, requestInit)
123
- if (onRequest) {
124
- request = await onRequest(url, requestInit)
125
- }
126
- // fetch must be assigned here, otherwise it would throw the error:
127
- // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation
128
- const _fetch = options.fetch ?? globalThis.fetch
129
- const response = await _fetch(request)
130
-
131
- if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`)
132
-
133
- if (!response.body) throw new Error("No body in SSE response")
134
-
135
- const reader = response.body.pipeThrough(new TextDecoderStream()).getReader()
136
-
137
- let buffer = ""
138
-
139
- const abortHandler = () => {
140
- try {
141
- reader.cancel()
142
- } catch {
143
- // noop
144
- }
145
- }
146
-
147
- signal.addEventListener("abort", abortHandler)
148
-
149
- try {
150
- while (true) {
151
- const { done, value } = await reader.read()
152
- if (done) break
153
- buffer += value
154
- // Normalize line endings: CRLF -> LF, then CR -> LF
155
- buffer = buffer.replace(/\r\n/g, "\n").replace(/\r/g, "\n")
156
-
157
- const chunks = buffer.split("\n\n")
158
- buffer = chunks.pop() ?? ""
159
-
160
- for (const chunk of chunks) {
161
- const lines = chunk.split("\n")
162
- const dataLines: Array<string> = []
163
- let eventName: string | undefined
164
-
165
- for (const line of lines) {
166
- if (line.startsWith("data:")) {
167
- dataLines.push(line.replace(/^data:\s*/, ""))
168
- } else if (line.startsWith("event:")) {
169
- eventName = line.replace(/^event:\s*/, "")
170
- } else if (line.startsWith("id:")) {
171
- lastEventId = line.replace(/^id:\s*/, "")
172
- } else if (line.startsWith("retry:")) {
173
- const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10)
174
- if (!Number.isNaN(parsed)) {
175
- retryDelay = parsed
176
- }
177
- }
178
- }
179
-
180
- let data: unknown
181
- let parsedJson = false
182
-
183
- if (dataLines.length) {
184
- const rawData = dataLines.join("\n")
185
- try {
186
- data = JSON.parse(rawData)
187
- parsedJson = true
188
- } catch {
189
- data = rawData
190
- }
191
- }
192
-
193
- if (parsedJson) {
194
- if (responseValidator) {
195
- await responseValidator(data)
196
- }
197
-
198
- if (responseTransformer) {
199
- data = await responseTransformer(data)
200
- }
201
- }
202
-
203
- onSseEvent?.({
204
- data,
205
- event: eventName,
206
- id: lastEventId,
207
- retry: retryDelay,
208
- })
209
-
210
- if (dataLines.length) {
211
- yield data as any
212
- }
213
- }
214
- }
215
- } finally {
216
- signal.removeEventListener("abort", abortHandler)
217
- reader.releaseLock()
218
- }
219
-
220
- break // exit loop on normal completion
221
- } catch (error) {
222
- // connection failed or aborted; retry after delay
223
- onSseError?.(error)
224
-
225
- if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {
226
- break // stop after firing error
227
- }
228
-
229
- // exponential backoff: double retry each attempt, cap at 30s
230
- const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000)
231
- await sleep(backoff)
232
- }
233
- }
234
- }
235
-
236
- const stream = createStream()
237
-
238
- return { stream }
239
- }