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,245 +0,0 @@
1
- import { chmod, mkdir, readFile, stat as statFile, writeFile } from "fs/promises"
2
- import { createWriteStream, existsSync, statSync } from "fs"
3
- import { lookup } from "mime-types"
4
- import { realpathSync } from "fs"
5
- import { dirname, join, relative, resolve as pathResolve, win32 } from "path"
6
- import { Readable } from "stream"
7
- import { pipeline } from "stream/promises"
8
- import { Glob } from "./glob"
9
-
10
- export namespace Filesystem {
11
- // Fast sync version for metadata checks
12
- export async function exists(p: string): Promise<boolean> {
13
- return existsSync(p)
14
- }
15
-
16
- export async function isDir(p: string): Promise<boolean> {
17
- try {
18
- return statSync(p).isDirectory()
19
- } catch {
20
- return false
21
- }
22
- }
23
-
24
- export function stat(p: string): ReturnType<typeof statSync> | undefined {
25
- return statSync(p, { throwIfNoEntry: false }) ?? undefined
26
- }
27
-
28
- export async function statAsync(p: string): Promise<ReturnType<typeof statSync> | undefined> {
29
- return statFile(p).catch((e) => {
30
- if (isEnoent(e)) return undefined
31
- throw e
32
- })
33
- }
34
-
35
- export async function size(p: string): Promise<number> {
36
- const s = stat(p)?.size ?? 0
37
- return typeof s === "bigint" ? Number(s) : s
38
- }
39
-
40
- export async function readText(p: string): Promise<string> {
41
- return readFile(p, "utf-8")
42
- }
43
-
44
- export async function readJson<T = any>(p: string): Promise<T> {
45
- return JSON.parse(await readFile(p, "utf-8"))
46
- }
47
-
48
- export async function readBytes(p: string): Promise<Buffer> {
49
- return readFile(p)
50
- }
51
-
52
- export async function readArrayBuffer(p: string): Promise<ArrayBuffer> {
53
- const buf = await readFile(p)
54
- return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength) as ArrayBuffer
55
- }
56
-
57
- function isEnoent(e: unknown): e is { code: "ENOENT" } {
58
- return typeof e === "object" && e !== null && "code" in e && (e as { code: string }).code === "ENOENT"
59
- }
60
-
61
- export async function write(p: string, content: string | Buffer | Uint8Array, mode?: number): Promise<void> {
62
- try {
63
- if (mode) {
64
- await writeFile(p, content, { mode })
65
- } else {
66
- await writeFile(p, content)
67
- }
68
- } catch (e) {
69
- if (isEnoent(e)) {
70
- await mkdir(dirname(p), { recursive: true })
71
- if (mode) {
72
- await writeFile(p, content, { mode })
73
- } else {
74
- await writeFile(p, content)
75
- }
76
- return
77
- }
78
- throw e
79
- }
80
- }
81
-
82
- export async function writeJson(p: string, data: unknown, mode?: number): Promise<void> {
83
- return write(p, JSON.stringify(data, null, 2), mode)
84
- }
85
-
86
- export async function writeStream(
87
- p: string,
88
- stream: ReadableStream<Uint8Array> | Readable,
89
- mode?: number,
90
- ): Promise<void> {
91
- const dir = dirname(p)
92
- if (!existsSync(dir)) {
93
- await mkdir(dir, { recursive: true })
94
- }
95
-
96
- const nodeStream = stream instanceof ReadableStream ? Readable.fromWeb(stream as any) : stream
97
- const writeStream = createWriteStream(p)
98
- await pipeline(nodeStream, writeStream)
99
-
100
- if (mode) {
101
- await chmod(p, mode)
102
- }
103
- }
104
-
105
- export function mimeType(p: string): string {
106
- return lookup(p) || "application/octet-stream"
107
- }
108
-
109
- /**
110
- * On Windows, normalize a path to its canonical casing using the filesystem.
111
- * This is needed because Windows paths are case-insensitive but LSP servers
112
- * may return paths with different casing than what we send them.
113
- */
114
- export function normalizePath(p: string): string {
115
- if (process.platform !== "win32") return p
116
- const resolved = win32.normalize(win32.resolve(windowsPath(p)))
117
- try {
118
- return realpathSync.native(resolved)
119
- } catch {
120
- return resolved
121
- }
122
- }
123
-
124
- export function normalizePathPattern(p: string): string {
125
- if (process.platform !== "win32") return p
126
- if (p === "*") return p
127
- const match = p.match(/^(.*)[\\/]\*$/)
128
- if (!match) return normalizePath(p)
129
- const dir = /^[A-Za-z]:$/.test(match[1]) ? match[1] + "\\" : match[1]
130
- return join(normalizePath(dir), "*")
131
- }
132
-
133
- // We cannot rely on path.resolve() here because git.exe may come from Git Bash, Cygwin, or MSYS2, so we need to translate these paths at the boundary.
134
- // Also resolves symlinks so that callers using the result as a cache key
135
- // always get the same canonical path for a given physical directory.
136
- export function resolve(p: string): string {
137
- const resolved = pathResolve(windowsPath(p))
138
- try {
139
- return normalizePath(realpathSync(resolved))
140
- } catch (e) {
141
- if (isEnoent(e)) return normalizePath(resolved)
142
- throw e
143
- }
144
- }
145
-
146
- export function windowsPath(p: string): string {
147
- if (process.platform !== "win32") return p
148
- return (
149
- p
150
- .replace(/^\/([a-zA-Z]):(?:[\\/]|$)/, (_, drive) => `${drive.toUpperCase()}:/`)
151
- // Git Bash for Windows paths are typically /<drive>/...
152
- .replace(/^\/([a-zA-Z])(?:\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)
153
- // Cygwin git paths are typically /cygdrive/<drive>/...
154
- .replace(/^\/cygdrive\/([a-zA-Z])(?:\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)
155
- // WSL paths are typically /mnt/<drive>/...
156
- .replace(/^\/mnt\/([a-zA-Z])(?:\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)
157
- )
158
- }
159
- export function overlaps(a: string, b: string) {
160
- const relA = relative(a, b)
161
- const relB = relative(b, a)
162
- return !relA || !relA.startsWith("..") || !relB || !relB.startsWith("..")
163
- }
164
-
165
- export function contains(parent: string, child: string) {
166
- return !relative(parent, child).startsWith("..")
167
- }
168
-
169
- export async function findUp(
170
- target: string,
171
- start: string,
172
- stop?: string,
173
- options?: { rootFirst?: boolean },
174
- ): Promise<string[]>
175
- export async function findUp(
176
- target: string[],
177
- start: string,
178
- stop?: string,
179
- options?: { rootFirst?: boolean },
180
- ): Promise<string[]>
181
- export async function findUp(
182
- target: string | string[],
183
- start: string,
184
- stop?: string,
185
- options?: { rootFirst?: boolean },
186
- ) {
187
- const dirs = [start]
188
- let current = start
189
- while (true) {
190
- if (stop === current) break
191
- const parent = dirname(current)
192
- if (parent === current) break
193
- dirs.push(parent)
194
- current = parent
195
- }
196
-
197
- const targets = Array.isArray(target) ? target : [target]
198
- const result = []
199
- for (const dir of options?.rootFirst ? dirs.toReversed() : dirs) {
200
- for (const item of targets) {
201
- const search = join(dir, item)
202
- if (await exists(search)) result.push(search)
203
- }
204
- }
205
- return result
206
- }
207
-
208
- export async function* up(options: { targets: string[]; start: string; stop?: string }) {
209
- const { targets, start, stop } = options
210
- let current = start
211
- while (true) {
212
- for (const target of targets) {
213
- const search = join(current, target)
214
- if (await exists(search)) yield search
215
- }
216
- if (stop === current) break
217
- const parent = dirname(current)
218
- if (parent === current) break
219
- current = parent
220
- }
221
- }
222
-
223
- export async function globUp(pattern: string, start: string, stop?: string) {
224
- let current = start
225
- const result = []
226
- while (true) {
227
- try {
228
- const matches = await Glob.scan(pattern, {
229
- cwd: current,
230
- absolute: true,
231
- include: "file",
232
- dot: true,
233
- })
234
- result.push(...matches)
235
- } catch {
236
- // Skip invalid glob patterns
237
- }
238
- if (stop === current) break
239
- const parent = dirname(current)
240
- if (parent === current) break
241
- current = parent
242
- }
243
- return result
244
- }
245
- }
@@ -1,333 +0,0 @@
1
- import path from "path"
2
- import os from "os"
3
- import { randomBytes, randomUUID } from "crypto"
4
- import { mkdir, readFile, rm, stat, utimes, writeFile } from "fs/promises"
5
- import { Global } from "@/global"
6
- import { Hash } from "@/util/hash"
7
-
8
- export namespace Flock {
9
- const root = path.join(Global.Path.state, "locks")
10
- // Defaults for callers that do not provide timing options.
11
- const defaultOpts = {
12
- staleMs: 60_000,
13
- timeoutMs: 5 * 60_000,
14
- baseDelayMs: 100,
15
- maxDelayMs: 2_000,
16
- }
17
-
18
- export interface WaitEvent {
19
- key: string
20
- attempt: number
21
- delay: number
22
- waited: number
23
- }
24
-
25
- export type Wait = (input: WaitEvent) => void | Promise<void>
26
-
27
- export interface Options {
28
- dir?: string
29
- signal?: AbortSignal
30
- staleMs?: number
31
- timeoutMs?: number
32
- baseDelayMs?: number
33
- maxDelayMs?: number
34
- onWait?: Wait
35
- }
36
-
37
- type Opts = {
38
- staleMs: number
39
- timeoutMs: number
40
- baseDelayMs: number
41
- maxDelayMs: number
42
- }
43
-
44
- type Owned = {
45
- acquired: true
46
- startHeartbeat: (intervalMs?: number) => void
47
- release: () => Promise<void>
48
- }
49
-
50
- export interface Lease {
51
- release: () => Promise<void>
52
- [Symbol.asyncDispose]: () => Promise<void>
53
- }
54
-
55
- function code(err: unknown) {
56
- if (typeof err !== "object" || err === null || !("code" in err)) return
57
- const value = err.code
58
- if (typeof value !== "string") return
59
- return value
60
- }
61
-
62
- function sleep(ms: number, signal?: AbortSignal) {
63
- return new Promise<void>((resolve, reject) => {
64
- if (signal?.aborted) {
65
- reject(signal.reason ?? new Error("Aborted"))
66
- return
67
- }
68
-
69
- let timer: NodeJS.Timeout | undefined
70
-
71
- const done = () => {
72
- signal?.removeEventListener("abort", abort)
73
- resolve()
74
- }
75
-
76
- const abort = () => {
77
- if (timer) {
78
- clearTimeout(timer)
79
- }
80
- signal?.removeEventListener("abort", abort)
81
- reject(signal?.reason ?? new Error("Aborted"))
82
- }
83
-
84
- signal?.addEventListener("abort", abort, { once: true })
85
- timer = setTimeout(done, ms)
86
- })
87
- }
88
-
89
- function jitter(ms: number) {
90
- const j = Math.floor(ms * 0.3)
91
- const d = Math.floor(Math.random() * (2 * j + 1)) - j
92
- return Math.max(0, ms + d)
93
- }
94
-
95
- function mono() {
96
- return performance.now()
97
- }
98
-
99
- function wall() {
100
- return performance.timeOrigin + mono()
101
- }
102
-
103
- async function stats(file: string) {
104
- try {
105
- return await stat(file)
106
- } catch (err) {
107
- const errCode = code(err)
108
- if (errCode === "ENOENT" || errCode === "ENOTDIR") return
109
- throw err
110
- }
111
- }
112
-
113
- async function stale(lockDir: string, heartbeatPath: string, metaPath: string, staleMs: number) {
114
- // Stale detection allows automatic recovery after crashed owners.
115
- const now = wall()
116
- const heartbeat = await stats(heartbeatPath)
117
- if (heartbeat) {
118
- return now - heartbeat.mtimeMs > staleMs
119
- }
120
-
121
- const meta = await stats(metaPath)
122
- if (meta) {
123
- return now - meta.mtimeMs > staleMs
124
- }
125
-
126
- const dir = await stats(lockDir)
127
- if (!dir) {
128
- return false
129
- }
130
-
131
- return now - dir.mtimeMs > staleMs
132
- }
133
-
134
- async function tryAcquireLockDir(lockDir: string, opts: Opts): Promise<Owned | { acquired: false }> {
135
- const token = randomUUID?.() ?? randomBytes(16).toString("hex")
136
- const metaPath = path.join(lockDir, "meta.json")
137
- const heartbeatPath = path.join(lockDir, "heartbeat")
138
-
139
- try {
140
- await mkdir(lockDir, { mode: 0o700 })
141
- } catch (err) {
142
- if (code(err) !== "EEXIST") {
143
- throw err
144
- }
145
-
146
- if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {
147
- return { acquired: false }
148
- }
149
-
150
- const breakerPath = lockDir + ".breaker"
151
- try {
152
- await mkdir(breakerPath, { mode: 0o700 })
153
- } catch (claimErr) {
154
- const errCode = code(claimErr)
155
- if (errCode === "EEXIST") {
156
- const breaker = await stats(breakerPath)
157
- if (breaker && wall() - breaker.mtimeMs > opts.staleMs) {
158
- await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)
159
- }
160
- return { acquired: false }
161
- }
162
-
163
- if (errCode === "ENOENT" || errCode === "ENOTDIR") {
164
- return { acquired: false }
165
- }
166
-
167
- throw claimErr
168
- }
169
-
170
- try {
171
- // Breaker ownership ensures only one contender performs stale cleanup.
172
- if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {
173
- return { acquired: false }
174
- }
175
-
176
- await rm(lockDir, { recursive: true, force: true })
177
-
178
- try {
179
- await mkdir(lockDir, { mode: 0o700 })
180
- } catch (retryErr) {
181
- const errCode = code(retryErr)
182
- if (errCode === "EEXIST" || errCode === "ENOTEMPTY") {
183
- return { acquired: false }
184
- }
185
- throw retryErr
186
- }
187
- } finally {
188
- await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)
189
- }
190
- }
191
-
192
- const meta = {
193
- token,
194
- pid: process.pid,
195
- hostname: os.hostname(),
196
- createdAt: new Date().toISOString(),
197
- }
198
-
199
- await writeFile(heartbeatPath, "", { flag: "wx" }).catch(async () => {
200
- await rm(lockDir, { recursive: true, force: true })
201
- throw new Error("Lock acquired but heartbeat already existed (possible compromise).")
202
- })
203
-
204
- await writeFile(metaPath, JSON.stringify(meta, null, 2), { flag: "wx" }).catch(async () => {
205
- await rm(lockDir, { recursive: true, force: true })
206
- throw new Error("Lock acquired but meta.json already existed (possible compromise).")
207
- })
208
-
209
- let timer: NodeJS.Timeout | undefined
210
-
211
- const startHeartbeat = (intervalMs = Math.max(100, Math.floor(opts.staleMs / 3))) => {
212
- if (timer) return
213
- // Heartbeat prevents long critical sections from being evicted as stale.
214
- timer = setInterval(() => {
215
- const t = new Date()
216
- void utimes(heartbeatPath, t, t).catch(() => undefined)
217
- }, intervalMs)
218
- timer.unref?.()
219
- }
220
-
221
- const release = async () => {
222
- if (timer) {
223
- clearInterval(timer)
224
- timer = undefined
225
- }
226
-
227
- const current = await readFile(metaPath, "utf8")
228
- .then((raw) => {
229
- const parsed = JSON.parse(raw)
230
- if (!parsed || typeof parsed !== "object") return {}
231
- return {
232
- token: "token" in parsed && typeof parsed.token === "string" ? parsed.token : undefined,
233
- }
234
- })
235
- .catch((err) => {
236
- const errCode = code(err)
237
- if (errCode === "ENOENT" || errCode === "ENOTDIR") {
238
- throw new Error("Refusing to release: lock is compromised (metadata missing).")
239
- }
240
- if (err instanceof SyntaxError) {
241
- throw new Error("Refusing to release: lock is compromised (metadata invalid).")
242
- }
243
- throw err
244
- })
245
- // Token check prevents deleting a lock that was re-acquired by another process.
246
- if (current.token !== token) {
247
- throw new Error("Refusing to release: lock token mismatch (not the owner).")
248
- }
249
-
250
- await rm(lockDir, { recursive: true, force: true })
251
- }
252
-
253
- return {
254
- acquired: true,
255
- startHeartbeat,
256
- release,
257
- }
258
- }
259
-
260
- async function acquireLockDir(
261
- lockDir: string,
262
- input: { key: string; onWait?: Wait; signal?: AbortSignal },
263
- opts: Opts,
264
- ) {
265
- const stop = mono() + opts.timeoutMs
266
- let attempt = 0
267
- let waited = 0
268
- let delay = opts.baseDelayMs
269
-
270
- while (true) {
271
- input.signal?.throwIfAborted()
272
-
273
- const res = await tryAcquireLockDir(lockDir, opts)
274
- if (res.acquired) {
275
- return res
276
- }
277
-
278
- if (mono() > stop) {
279
- throw new Error(`Timed out waiting for lock: ${input.key}`)
280
- }
281
-
282
- attempt += 1
283
- const ms = jitter(delay)
284
- await input.onWait?.({
285
- key: input.key,
286
- attempt,
287
- delay: ms,
288
- waited,
289
- })
290
- await sleep(ms, input.signal)
291
- waited += ms
292
- delay = Math.min(opts.maxDelayMs, Math.floor(delay * 1.7))
293
- }
294
- }
295
-
296
- export async function acquire(key: string, input: Options = {}): Promise<Lease> {
297
- input.signal?.throwIfAborted()
298
- const cfg: Opts = {
299
- staleMs: input.staleMs ?? defaultOpts.staleMs,
300
- timeoutMs: input.timeoutMs ?? defaultOpts.timeoutMs,
301
- baseDelayMs: input.baseDelayMs ?? defaultOpts.baseDelayMs,
302
- maxDelayMs: input.maxDelayMs ?? defaultOpts.maxDelayMs,
303
- }
304
- const dir = input.dir ?? root
305
-
306
- await mkdir(dir, { recursive: true })
307
- const lockfile = path.join(dir, Hash.fast(key) + ".lock")
308
- const lock = await acquireLockDir(
309
- lockfile,
310
- {
311
- key,
312
- onWait: input.onWait,
313
- signal: input.signal,
314
- },
315
- cfg,
316
- )
317
- lock.startHeartbeat()
318
-
319
- const release = () => lock.release()
320
- return {
321
- release,
322
- [Symbol.asyncDispose]() {
323
- return release()
324
- },
325
- }
326
- }
327
-
328
- export async function withLock<T>(key: string, fn: () => Promise<T>, input: Options = {}) {
329
- await using _ = await acquire(key, input)
330
- input.signal?.throwIfAborted()
331
- return await fn()
332
- }
333
- }
@@ -1,21 +0,0 @@
1
- import { z } from "zod"
2
-
3
- export function fn<T extends z.ZodType, Result>(schema: T, cb: (input: z.infer<T>) => Result) {
4
- const result = (input: z.infer<T>) => {
5
- let parsed
6
- try {
7
- parsed = schema.parse(input)
8
- } catch (e) {
9
- console.trace("schema validation failure stack trace:")
10
- if (e instanceof z.ZodError) {
11
- console.error("schema validation issues:", JSON.stringify(e.issues, null, 2))
12
- }
13
- throw e
14
- }
15
-
16
- return cb(parsed)
17
- }
18
- result.force = (input: z.infer<T>) => cb(input)
19
- result.schema = schema
20
- return result
21
- }
@@ -1,20 +0,0 @@
1
- export function formatDuration(secs: number) {
2
- if (secs <= 0) return ""
3
- if (secs < 60) return `${secs}s`
4
- if (secs < 3600) {
5
- const mins = Math.floor(secs / 60)
6
- const remaining = secs % 60
7
- return remaining > 0 ? `${mins}m ${remaining}s` : `${mins}m`
8
- }
9
- if (secs < 86400) {
10
- const hours = Math.floor(secs / 3600)
11
- const remaining = Math.floor((secs % 3600) / 60)
12
- return remaining > 0 ? `${hours}h ${remaining}m` : `${hours}h`
13
- }
14
- if (secs < 604800) {
15
- const days = Math.floor(secs / 86400)
16
- return days === 1 ? "~1 day" : `~${days} days`
17
- }
18
- const weeks = Math.floor(secs / 604800)
19
- return weeks === 1 ? "~1 week" : `~${weeks} weeks`
20
- }
@@ -1,34 +0,0 @@
1
- import { glob, globSync, type GlobOptions } from "glob"
2
- import { minimatch } from "minimatch"
3
-
4
- export namespace Glob {
5
- export interface Options {
6
- cwd?: string
7
- absolute?: boolean
8
- include?: "file" | "all"
9
- dot?: boolean
10
- symlink?: boolean
11
- }
12
-
13
- function toGlobOptions(options: Options): GlobOptions {
14
- return {
15
- cwd: options.cwd,
16
- absolute: options.absolute,
17
- dot: options.dot,
18
- follow: options.symlink ?? false,
19
- nodir: options.include !== "all",
20
- }
21
- }
22
-
23
- export async function scan(pattern: string, options: Options = {}): Promise<string[]> {
24
- return glob(pattern, toGlobOptions(options)) as Promise<string[]>
25
- }
26
-
27
- export function scanSync(pattern: string, options: Options = {}): string[] {
28
- return globSync(pattern, toGlobOptions(options)) as string[]
29
- }
30
-
31
- export function match(pattern: string, filepath: string): boolean {
32
- return minimatch(filepath, pattern, { dot: true })
33
- }
34
- }
@@ -1,7 +0,0 @@
1
- import { createHash } from "crypto"
2
-
3
- export namespace Hash {
4
- export function fast(input: string | Buffer): string {
5
- return createHash("sha1").update(input).digest("hex")
6
- }
7
- }
@@ -1,3 +0,0 @@
1
- export function iife<T>(fn: () => T) {
2
- return fn()
3
- }