cerebras-cli 1.0.5 → 1.0.139

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 (322) hide show
  1. package/AGENTS.md +27 -0
  2. package/Dockerfile +10 -0
  3. package/README.md +33 -4
  4. package/bin/{opencode.cjs → opencode} +4 -4
  5. package/bunfig.toml +4 -0
  6. package/package.json +89 -32
  7. package/parsers-config.ts +239 -0
  8. package/script/build.ts +151 -0
  9. package/script/postinstall.mjs +122 -0
  10. package/script/publish.ts +256 -0
  11. package/script/schema.ts +47 -0
  12. package/snake_game.py +111 -0
  13. package/src/acp/README.md +164 -0
  14. package/src/acp/agent.ts +812 -0
  15. package/src/acp/session.ts +70 -0
  16. package/src/acp/types.ts +22 -0
  17. package/src/agent/agent.ts +310 -0
  18. package/src/agent/generate.txt +75 -0
  19. package/src/auth/index.ts +70 -0
  20. package/src/bun/index.ts +152 -0
  21. package/src/bus/global.ts +10 -0
  22. package/src/bus/index.ts +142 -0
  23. package/src/cli/bootstrap.ts +17 -0
  24. package/src/cli/cmd/acp.ts +88 -0
  25. package/src/cli/cmd/agent.ts +165 -0
  26. package/src/cli/cmd/auth.ts +369 -0
  27. package/src/cli/cmd/cmd.ts +7 -0
  28. package/src/cli/cmd/debug/config.ts +15 -0
  29. package/src/cli/cmd/debug/file.ts +91 -0
  30. package/src/cli/cmd/debug/index.ts +43 -0
  31. package/src/cli/cmd/debug/lsp.ts +47 -0
  32. package/src/cli/cmd/debug/ripgrep.ts +83 -0
  33. package/src/cli/cmd/debug/scrap.ts +15 -0
  34. package/src/cli/cmd/debug/skill.ts +36 -0
  35. package/src/cli/cmd/debug/snapshot.ts +48 -0
  36. package/src/cli/cmd/export.ts +88 -0
  37. package/src/cli/cmd/generate.ts +38 -0
  38. package/src/cli/cmd/github.ts +1200 -0
  39. package/src/cli/cmd/import.ts +98 -0
  40. package/src/cli/cmd/mcp.ts +400 -0
  41. package/src/cli/cmd/models.ts +77 -0
  42. package/src/cli/cmd/pr.ts +112 -0
  43. package/src/cli/cmd/run.ts +342 -0
  44. package/src/cli/cmd/serve.ts +31 -0
  45. package/src/cli/cmd/session.ts +106 -0
  46. package/src/cli/cmd/stats.ts +298 -0
  47. package/src/cli/cmd/tui/app.tsx +833 -0
  48. package/src/cli/cmd/tui/attach.ts +25 -0
  49. package/src/cli/cmd/tui/component/border.tsx +21 -0
  50. package/src/cli/cmd/tui/component/cerebras-onboarding.tsx +225 -0
  51. package/src/cli/cmd/tui/component/dialog-agent.tsx +31 -0
  52. package/src/cli/cmd/tui/component/dialog-command.tsx +124 -0
  53. package/src/cli/cmd/tui/component/dialog-feedback.tsx +160 -0
  54. package/src/cli/cmd/tui/component/dialog-mcp.tsx +86 -0
  55. package/src/cli/cmd/tui/component/dialog-model.tsx +223 -0
  56. package/src/cli/cmd/tui/component/dialog-notification.tsx +78 -0
  57. package/src/cli/cmd/tui/component/dialog-provider.tsx +222 -0
  58. package/src/cli/cmd/tui/component/dialog-session-list.tsx +97 -0
  59. package/src/cli/cmd/tui/component/dialog-session-rename.tsx +31 -0
  60. package/src/cli/cmd/tui/component/dialog-status.tsx +114 -0
  61. package/src/cli/cmd/tui/component/dialog-tag.tsx +44 -0
  62. package/src/cli/cmd/tui/component/dialog-theme-list.tsx +50 -0
  63. package/src/cli/cmd/tui/component/logo.tsx +43 -0
  64. package/src/cli/cmd/tui/component/notification-banner.tsx +58 -0
  65. package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +530 -0
  66. package/src/cli/cmd/tui/component/prompt/history.tsx +107 -0
  67. package/src/cli/cmd/tui/component/prompt/index.tsx +931 -0
  68. package/src/cli/cmd/tui/component/quickstart-onboarding.tsx +116 -0
  69. package/src/cli/cmd/tui/context/args.tsx +14 -0
  70. package/src/cli/cmd/tui/context/directory.ts +12 -0
  71. package/src/cli/cmd/tui/context/exit.tsx +23 -0
  72. package/src/cli/cmd/tui/context/helper.tsx +25 -0
  73. package/src/cli/cmd/tui/context/keybind.tsx +111 -0
  74. package/src/cli/cmd/tui/context/kv.tsx +49 -0
  75. package/src/cli/cmd/tui/context/local.tsx +338 -0
  76. package/src/cli/cmd/tui/context/prompt.tsx +18 -0
  77. package/src/cli/cmd/tui/context/route.tsx +45 -0
  78. package/src/cli/cmd/tui/context/sdk.tsx +75 -0
  79. package/src/cli/cmd/tui/context/sync.tsx +374 -0
  80. package/src/cli/cmd/tui/context/theme/aura.json +69 -0
  81. package/src/cli/cmd/tui/context/theme/ayu.json +80 -0
  82. package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +233 -0
  83. package/src/cli/cmd/tui/context/theme/catppuccin.json +112 -0
  84. package/src/cli/cmd/tui/context/theme/cobalt2.json +228 -0
  85. package/src/cli/cmd/tui/context/theme/dracula.json +219 -0
  86. package/src/cli/cmd/tui/context/theme/everforest.json +241 -0
  87. package/src/cli/cmd/tui/context/theme/flexoki.json +237 -0
  88. package/src/cli/cmd/tui/context/theme/github.json +233 -0
  89. package/src/cli/cmd/tui/context/theme/gruvbox.json +95 -0
  90. package/src/cli/cmd/tui/context/theme/kanagawa.json +77 -0
  91. package/src/cli/cmd/tui/context/theme/material.json +235 -0
  92. package/src/cli/cmd/tui/context/theme/matrix.json +77 -0
  93. package/src/cli/cmd/tui/context/theme/mercury.json +252 -0
  94. package/src/cli/cmd/tui/context/theme/monokai.json +221 -0
  95. package/src/cli/cmd/tui/context/theme/nightowl.json +221 -0
  96. package/src/cli/cmd/tui/context/theme/nord.json +223 -0
  97. package/src/cli/cmd/tui/context/theme/one-dark.json +84 -0
  98. package/src/cli/cmd/tui/context/theme/orng.json +245 -0
  99. package/src/cli/cmd/tui/context/theme/palenight.json +222 -0
  100. package/src/cli/cmd/tui/context/theme/rosepine.json +234 -0
  101. package/src/cli/cmd/tui/context/theme/solarized.json +223 -0
  102. package/src/cli/cmd/tui/context/theme/synthwave84.json +226 -0
  103. package/src/cli/cmd/tui/context/theme/tokyonight.json +243 -0
  104. package/src/cli/cmd/tui/context/theme/vercel.json +245 -0
  105. package/src/cli/cmd/tui/context/theme/vesper.json +218 -0
  106. package/src/cli/cmd/tui/context/theme/zenburn.json +223 -0
  107. package/src/cli/cmd/tui/context/theme.tsx +1077 -0
  108. package/src/cli/cmd/tui/event.ts +39 -0
  109. package/src/cli/cmd/tui/routes/home.tsx +150 -0
  110. package/src/cli/cmd/tui/routes/session/dialog-message.tsx +93 -0
  111. package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +37 -0
  112. package/src/cli/cmd/tui/routes/session/footer.tsx +76 -0
  113. package/src/cli/cmd/tui/routes/session/header.tsx +181 -0
  114. package/src/cli/cmd/tui/routes/session/index.tsx +1695 -0
  115. package/src/cli/cmd/tui/routes/session/sidebar.tsx +686 -0
  116. package/src/cli/cmd/tui/spawn.ts +60 -0
  117. package/src/cli/cmd/tui/thread.ts +120 -0
  118. package/src/cli/cmd/tui/ui/dialog-alert.tsx +55 -0
  119. package/src/cli/cmd/tui/ui/dialog-confirm.tsx +81 -0
  120. package/src/cli/cmd/tui/ui/dialog-help.tsx +36 -0
  121. package/src/cli/cmd/tui/ui/dialog-prompt.tsx +75 -0
  122. package/src/cli/cmd/tui/ui/dialog-select.tsx +317 -0
  123. package/src/cli/cmd/tui/ui/dialog.tsx +170 -0
  124. package/src/cli/cmd/tui/ui/spinner.ts +368 -0
  125. package/src/cli/cmd/tui/ui/toast.tsx +100 -0
  126. package/src/cli/cmd/tui/util/clipboard.ts +127 -0
  127. package/src/cli/cmd/tui/util/editor.ts +32 -0
  128. package/src/cli/cmd/tui/util/terminal.ts +114 -0
  129. package/src/cli/cmd/tui/worker.ts +63 -0
  130. package/src/cli/cmd/uninstall.ts +344 -0
  131. package/src/cli/cmd/upgrade.ts +67 -0
  132. package/src/cli/cmd/web.ts +84 -0
  133. package/src/cli/error.ts +55 -0
  134. package/src/cli/ui.ts +84 -0
  135. package/src/cli/upgrade.ts +25 -0
  136. package/src/command/index.ts +79 -0
  137. package/src/command/template/initialize.txt +10 -0
  138. package/src/command/template/review.txt +73 -0
  139. package/src/config/config.ts +886 -0
  140. package/src/config/markdown.ts +41 -0
  141. package/src/env/index.ts +26 -0
  142. package/src/file/fzf.ts +124 -0
  143. package/src/file/ignore.ts +83 -0
  144. package/src/file/index.ts +326 -0
  145. package/src/file/ripgrep.ts +391 -0
  146. package/src/file/time.ts +38 -0
  147. package/src/file/watcher.ts +89 -0
  148. package/src/flag/flag.ts +29 -0
  149. package/src/format/formatter.ts +277 -0
  150. package/src/format/index.ts +137 -0
  151. package/src/global/index.ts +52 -0
  152. package/src/id/id.ts +73 -0
  153. package/src/ide/index.ts +75 -0
  154. package/src/index.ts +158 -0
  155. package/src/installation/index.ts +194 -0
  156. package/src/lsp/client.ts +215 -0
  157. package/src/lsp/index.ts +370 -0
  158. package/src/lsp/language.ts +111 -0
  159. package/src/lsp/server.ts +1327 -0
  160. package/src/mcp/auth.ts +82 -0
  161. package/src/mcp/index.ts +576 -0
  162. package/src/mcp/oauth-callback.ts +203 -0
  163. package/src/mcp/oauth-provider.ts +132 -0
  164. package/src/notification/index.ts +101 -0
  165. package/src/patch/index.ts +622 -0
  166. package/src/permission/index.ts +198 -0
  167. package/src/plugin/index.ts +95 -0
  168. package/src/project/bootstrap.ts +31 -0
  169. package/src/project/instance.ts +68 -0
  170. package/src/project/project.ts +133 -0
  171. package/src/project/state.ts +65 -0
  172. package/src/project/vcs.ts +77 -0
  173. package/src/provider/auth.ts +143 -0
  174. package/src/provider/models-macro.ts +11 -0
  175. package/src/provider/models.ts +93 -0
  176. package/src/provider/provider.ts +1005 -0
  177. package/src/provider/sdk/openai-compatible/src/README.md +5 -0
  178. package/src/provider/sdk/openai-compatible/src/index.ts +2 -0
  179. package/src/provider/sdk/openai-compatible/src/openai-compatible-provider.ts +100 -0
  180. package/src/provider/sdk/openai-compatible/src/responses/convert-to-openai-responses-input.ts +303 -0
  181. package/src/provider/sdk/openai-compatible/src/responses/map-openai-responses-finish-reason.ts +27 -0
  182. package/src/provider/sdk/openai-compatible/src/responses/openai-config.ts +18 -0
  183. package/src/provider/sdk/openai-compatible/src/responses/openai-error.ts +22 -0
  184. package/src/provider/sdk/openai-compatible/src/responses/openai-responses-api-types.ts +207 -0
  185. package/src/provider/sdk/openai-compatible/src/responses/openai-responses-language-model.ts +1713 -0
  186. package/src/provider/sdk/openai-compatible/src/responses/openai-responses-prepare-tools.ts +177 -0
  187. package/src/provider/sdk/openai-compatible/src/responses/openai-responses-settings.ts +1 -0
  188. package/src/provider/sdk/openai-compatible/src/responses/tool/code-interpreter.ts +88 -0
  189. package/src/provider/sdk/openai-compatible/src/responses/tool/file-search.ts +128 -0
  190. package/src/provider/sdk/openai-compatible/src/responses/tool/image-generation.ts +115 -0
  191. package/src/provider/sdk/openai-compatible/src/responses/tool/local-shell.ts +65 -0
  192. package/src/provider/sdk/openai-compatible/src/responses/tool/web-search-preview.ts +104 -0
  193. package/src/provider/sdk/openai-compatible/src/responses/tool/web-search.ts +103 -0
  194. package/src/provider/transform.ts +406 -0
  195. package/src/pty/index.ts +226 -0
  196. package/src/ratelimit/index.ts +185 -0
  197. package/src/server/error.ts +36 -0
  198. package/src/server/project.ts +50 -0
  199. package/src/server/server.ts +2463 -0
  200. package/src/server/tui.ts +71 -0
  201. package/src/session/compaction.ts +257 -0
  202. package/src/session/index.ts +470 -0
  203. package/src/session/message-v2.ts +641 -0
  204. package/src/session/message.ts +189 -0
  205. package/src/session/processor.ts +448 -0
  206. package/src/session/prompt/anthropic-20250930.txt +166 -0
  207. package/src/session/prompt/anthropic.txt +105 -0
  208. package/src/session/prompt/anthropic_spoof.txt +1 -0
  209. package/src/session/prompt/beast.txt +147 -0
  210. package/src/session/prompt/build-switch.txt +5 -0
  211. package/src/session/prompt/codex.txt +318 -0
  212. package/src/session/prompt/compaction.txt +12 -0
  213. package/src/session/prompt/copilot-gpt-5.txt +143 -0
  214. package/src/session/prompt/gemini.txt +155 -0
  215. package/src/session/prompt/max-steps.txt +16 -0
  216. package/src/session/prompt/plan-reminder-anthropic.txt +67 -0
  217. package/src/session/prompt/plan.txt +26 -0
  218. package/src/session/prompt/polaris.txt +107 -0
  219. package/src/session/prompt/qwen.txt +109 -0
  220. package/src/session/prompt/summarize.txt +4 -0
  221. package/src/session/prompt/title.txt +36 -0
  222. package/src/session/prompt.ts +1541 -0
  223. package/src/session/retry.ts +82 -0
  224. package/src/session/revert.ts +108 -0
  225. package/src/session/status.ts +75 -0
  226. package/src/session/summary.ts +203 -0
  227. package/src/session/system.ts +148 -0
  228. package/src/session/todo.ts +36 -0
  229. package/src/share/share-next.ts +195 -0
  230. package/src/share/share.ts +87 -0
  231. package/src/skill/index.ts +2 -0
  232. package/src/skill/skill.ts +138 -0
  233. package/src/snapshot/index.ts +197 -0
  234. package/src/storage/storage.ts +226 -0
  235. package/src/telemetry/index.ts +247 -0
  236. package/src/tool/bash.ts +365 -0
  237. package/src/tool/bash.txt +128 -0
  238. package/src/tool/batch.ts +173 -0
  239. package/src/tool/batch.txt +28 -0
  240. package/src/tool/codesearch.ts +138 -0
  241. package/src/tool/codesearch.txt +12 -0
  242. package/src/tool/edit.ts +674 -0
  243. package/src/tool/edit.txt +10 -0
  244. package/src/tool/glob.ts +65 -0
  245. package/src/tool/glob.txt +6 -0
  246. package/src/tool/grep.ts +120 -0
  247. package/src/tool/grep.txt +8 -0
  248. package/src/tool/invalid.ts +17 -0
  249. package/src/tool/ls.ts +110 -0
  250. package/src/tool/ls.txt +1 -0
  251. package/src/tool/lsp-diagnostics.ts +26 -0
  252. package/src/tool/lsp-diagnostics.txt +1 -0
  253. package/src/tool/lsp-hover.ts +31 -0
  254. package/src/tool/lsp-hover.txt +1 -0
  255. package/src/tool/multiedit.ts +46 -0
  256. package/src/tool/multiedit.txt +41 -0
  257. package/src/tool/patch.ts +233 -0
  258. package/src/tool/patch.txt +1 -0
  259. package/src/tool/read.ts +217 -0
  260. package/src/tool/read.txt +12 -0
  261. package/src/tool/registry.ts +150 -0
  262. package/src/tool/skill.ts +85 -0
  263. package/src/tool/task.ts +135 -0
  264. package/src/tool/task.txt +60 -0
  265. package/src/tool/todo.ts +39 -0
  266. package/src/tool/todoread.txt +14 -0
  267. package/src/tool/todowrite.txt +167 -0
  268. package/src/tool/tool.ts +66 -0
  269. package/src/tool/webfetch.ts +187 -0
  270. package/src/tool/webfetch.txt +14 -0
  271. package/src/tool/websearch.ts +150 -0
  272. package/src/tool/websearch.txt +11 -0
  273. package/src/tool/write.ts +99 -0
  274. package/src/tool/write.txt +8 -0
  275. package/src/types/shims.d.ts +3 -0
  276. package/src/util/color.ts +19 -0
  277. package/src/util/context.ts +25 -0
  278. package/src/util/defer.ts +12 -0
  279. package/src/util/eventloop.ts +20 -0
  280. package/src/util/filesystem.ts +69 -0
  281. package/src/util/fn.ts +11 -0
  282. package/src/util/iife.ts +3 -0
  283. package/src/util/keybind.ts +79 -0
  284. package/src/util/lazy.ts +11 -0
  285. package/src/util/locale.ts +81 -0
  286. package/src/util/lock.ts +98 -0
  287. package/src/util/log.ts +177 -0
  288. package/src/util/queue.ts +32 -0
  289. package/src/util/rpc.ts +42 -0
  290. package/src/util/scrap.ts +10 -0
  291. package/src/util/signal.ts +12 -0
  292. package/src/util/timeout.ts +14 -0
  293. package/src/util/token.ts +7 -0
  294. package/src/util/wildcard.ts +54 -0
  295. package/sst-env.d.ts +9 -0
  296. package/test/bun.test.ts +53 -0
  297. package/test/config/agent-color.test.ts +66 -0
  298. package/test/config/config.test.ts +503 -0
  299. package/test/config/markdown.test.ts +89 -0
  300. package/test/file/ignore.test.ts +10 -0
  301. package/test/fixture/fixture.ts +28 -0
  302. package/test/fixture/lsp/fake-lsp-server.js +77 -0
  303. package/test/ide/ide.test.ts +82 -0
  304. package/test/keybind.test.ts +317 -0
  305. package/test/lsp/client.test.ts +95 -0
  306. package/test/patch/patch.test.ts +348 -0
  307. package/test/preload.ts +38 -0
  308. package/test/project/project.test.ts +42 -0
  309. package/test/provider/provider.test.ts +1809 -0
  310. package/test/provider/transform.test.ts +305 -0
  311. package/test/session/retry.test.ts +61 -0
  312. package/test/session/session.test.ts +71 -0
  313. package/test/snapshot/snapshot.test.ts +939 -0
  314. package/test/tool/__snapshots__/tool.test.ts.snap +9 -0
  315. package/test/tool/bash.test.ts +55 -0
  316. package/test/tool/patch.test.ts +259 -0
  317. package/test/util/iife.test.ts +36 -0
  318. package/test/util/lazy.test.ts +50 -0
  319. package/test/util/timeout.test.ts +21 -0
  320. package/test/util/wildcard.test.ts +55 -0
  321. package/tsconfig.json +17 -0
  322. package/cerebras-cli-1.0.0.tgz +0 -0
package/AGENTS.md ADDED
@@ -0,0 +1,27 @@
1
+ # opencode agent guidelines
2
+
3
+ ## Build/Test Commands
4
+
5
+ - **Install**: `bun install`
6
+ - **Run**: `bun run index.ts`
7
+ - **Typecheck**: `bun run typecheck` (npm run typecheck)
8
+ - **Test**: `bun test` (runs all tests)
9
+ - **Single test**: `bun test test/tool/tool.test.ts` (specific test file)
10
+
11
+ ## Code Style
12
+
13
+ - **Runtime**: Bun with TypeScript ESM modules
14
+ - **Imports**: Use relative imports for local modules, named imports preferred
15
+ - **Types**: Zod schemas for validation, TypeScript interfaces for structure
16
+ - **Naming**: camelCase for variables/functions, PascalCase for classes/namespaces
17
+ - **Error handling**: Use Result patterns, avoid throwing exceptions in tools
18
+ - **File structure**: Namespace-based organization (e.g., `Tool.define()`, `Session.create()`)
19
+
20
+ ## Architecture
21
+
22
+ - **Tools**: Implement `Tool.Info` interface with `execute()` method
23
+ - **Context**: Pass `sessionID` in tool context, use `App.provide()` for DI
24
+ - **Validation**: All inputs validated with Zod schemas
25
+ - **Logging**: Use `Log.create({ service: "name" })` pattern
26
+ - **Storage**: Use `Storage` namespace for persistence
27
+ - **API Client**: Go TUI communicates with TypeScript server via stainless SDK. When adding/modifying server endpoints in `packages/opencode/src/server/server.ts`, ask the user to generate a new client SDK to proceed with client-side changes.
package/Dockerfile ADDED
@@ -0,0 +1,10 @@
1
+ FROM alpine
2
+
3
+ # Disable the runtime transpiler cache by default inside Docker containers.
4
+ # On ephemeral containers, the cache is not useful
5
+ ARG BUN_RUNTIME_TRANSPILER_CACHE_PATH=0
6
+ ENV BUN_RUNTIME_TRANSPILER_CACHE_PATH=${BUN_RUNTIME_TRANSPILER_CACHE_PATH}
7
+ RUN apk add libgcc libstdc++
8
+ ADD ./dist/opencode-linux-x64-baseline-musl/bin/opencode /usr/local/bin/opencode
9
+ RUN opencode --version
10
+ ENTRYPOINT ["opencode"]
package/README.md CHANGED
@@ -1,13 +1,42 @@
1
- # js
1
+ # Cerebras CLI
2
2
 
3
- To install:
3
+ An AI-powered coding assistant for your terminal, optimized for Cerebras inference.
4
+
5
+ ## Install
4
6
 
5
7
  ```bash
6
- npm install cerebras-cli
8
+ npm install -g cerebras-cli
7
9
  ```
8
10
 
9
- To run:
11
+ ## Run
10
12
 
11
13
  ```bash
12
14
  cerebras-cli
13
15
  ```
16
+
17
+ ## Get Your API Key
18
+
19
+ 1. Go to [cloud.cerebras.ai](https://cloud.cerebras.ai)
20
+ 2. Create an account and get your API key
21
+ 3. Run `cerebras-cli` and follow the onboarding to connect
22
+
23
+ ## Features
24
+
25
+ - ⚡ **Fastest inference** - Powered by Cerebras
26
+ - 🛠️ **Full coding agent** - Read, write, edit files, run commands
27
+ - 🎨 **Beautiful TUI** - Modern terminal interface with themes
28
+ - 🔌 **MCP Support** - Extend with Model Context Protocol servers
29
+ - 📚 **Skills** - On-demand loaded specialized knowledge
30
+
31
+ ## Keyboard Shortcuts
32
+
33
+ | Key | Action |
34
+ |-----|--------|
35
+ | `Enter` | Send message |
36
+ | `Ctrl+C` | Cancel/Exit |
37
+ | `Ctrl+L` | Clear screen |
38
+ | `/` | Commands menu |
39
+
40
+ ## License
41
+
42
+ MIT
@@ -17,7 +17,7 @@ function run(target) {
17
17
  process.exit(code)
18
18
  }
19
19
 
20
- const envPath = process.env.CEREBRAS_CLI_BIN_PATH || process.env.OPENCODE_BIN_PATH
20
+ const envPath = process.env.OPENCODE_BIN_PATH
21
21
  if (envPath) {
22
22
  run(envPath)
23
23
  }
@@ -44,8 +44,8 @@ let arch = archMap[os.arch()]
44
44
  if (!arch) {
45
45
  arch = os.arch()
46
46
  }
47
- const base = "cerebras-cli-" + platform + "-" + arch
48
- const binary = platform === "windows" ? "cerebras-cli.exe" : "cerebras-cli"
47
+ const base = "opencode-" + platform + "-" + arch
48
+ const binary = platform === "windows" ? "opencode.exe" : "opencode"
49
49
 
50
50
  function findBinary(startDir) {
51
51
  let current = startDir
@@ -74,7 +74,7 @@ function findBinary(startDir) {
74
74
  const resolved = findBinary(scriptDir)
75
75
  if (!resolved) {
76
76
  console.error(
77
- 'It seems that your package manager failed to install the right version of the cerebras-cli for your platform. You can try manually installing the "' +
77
+ 'It seems that your package manager failed to install the right version of the opencode CLI for your platform. You can try manually installing the "' +
78
78
  base +
79
79
  '" package',
80
80
  )
package/bunfig.toml ADDED
@@ -0,0 +1,4 @@
1
+ preload = ["@opentui/solid/preload"]
2
+
3
+ [test]
4
+ preload = ["./test/preload.ts"]
package/package.json CHANGED
@@ -1,47 +1,104 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
+ "version": "1.0.139",
3
4
  "name": "cerebras-cli",
4
- "version": "1.0.5",
5
- "description": "AI-powered coding assistant CLI with Cerebras fast inference",
6
- "author": "Kevin Taylor",
7
- "license": "MIT",
8
5
  "type": "module",
9
6
  "scripts": {
10
7
  "typecheck": "tsgo --noEmit",
11
8
  "test": "bun test",
12
9
  "build": "./script/build.ts",
13
- "dev": "bun run --conditions=browser ./src/index.ts"
10
+ "dev": "bun run --conditions=browser ./src/index.ts",
11
+ "random": "echo 'Random script updated at $(date)'"
14
12
  },
15
13
  "bin": {
16
- "cerebras-cli": "./bin/opencode.cjs"
14
+ "opencode": "./bin/opencode"
17
15
  },
18
- "keywords": [
19
- "cli",
20
- "ai",
21
- "coding",
22
- "assistant",
23
- "llm",
24
- "cerebras",
25
- "code-generation",
26
- "developer-tools",
27
- "terminal",
28
- "tui",
29
- "agentic"
30
- ],
31
- "repository": {
32
- "type": "git",
33
- "url": "git+https://github.com/kevint-cerebras/cerebras-code-cli.git",
34
- "directory": "packages/opencode"
16
+ "exports": {
17
+ "./*": "./src/*.ts"
35
18
  },
36
- "bugs": {
37
- "url": "https://github.com/kevint-cerebras/cerebras-code-cli/issues"
19
+ "devDependencies": {
20
+ "@babel/core": "7.28.4",
21
+ "@octokit/webhooks-types": "7.6.1",
22
+ "@parcel/watcher-darwin-arm64": "2.5.1",
23
+ "@parcel/watcher-darwin-x64": "2.5.1",
24
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
25
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
26
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
27
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
28
+ "@parcel/watcher-win32-x64": "2.5.1",
29
+ "@standard-schema/spec": "1.0.0",
30
+ "@tsconfig/bun": "catalog:",
31
+ "@types/babel__core": "7.20.5",
32
+ "@types/bun": "catalog:",
33
+ "@types/turndown": "5.0.5",
34
+ "@types/yargs": "17.0.33",
35
+ "typescript": "catalog:",
36
+ "@typescript/native-preview": "catalog:",
37
+ "vscode-languageserver-types": "3.17.5",
38
+ "why-is-node-running": "3.2.2",
39
+ "zod-to-json-schema": "3.24.5",
40
+ "@opencode-ai/script": "workspace:*"
38
41
  },
39
- "homepage": "https://github.com/kevint-cerebras/cerebras-code-cli#readme",
40
- "optionalDependencies": {
41
- "cerebras-cli-darwin-arm64": "1.0.5",
42
- "cerebras-cli-darwin-x64": "1.0.5",
43
- "cerebras-cli-linux-arm64": "1.0.5",
44
- "cerebras-cli-linux-x64": "1.0.5",
45
- "cerebras-cli-windows-x64": "1.0.5"
42
+ "dependencies": {
43
+ "@actions/core": "1.11.1",
44
+ "@actions/github": "6.0.1",
45
+ "@agentclientprotocol/sdk": "0.5.1",
46
+ "@ai-sdk/amazon-bedrock": "3.0.57",
47
+ "@ai-sdk/anthropic": "2.0.50",
48
+ "@ai-sdk/azure": "2.0.73",
49
+ "@ai-sdk/google": "2.0.44",
50
+ "@ai-sdk/google-vertex": "3.0.81",
51
+ "@ai-sdk/mcp": "0.0.8",
52
+ "@ai-sdk/openai": "2.0.71",
53
+ "@ai-sdk/openai-compatible": "1.0.27",
54
+ "@ai-sdk/provider": "2.0.0",
55
+ "@ai-sdk/provider-utils": "3.0.18",
56
+ "@clack/prompts": "1.0.0-alpha.1",
57
+ "@hono/standard-validator": "0.1.5",
58
+ "@hono/zod-validator": "catalog:",
59
+ "@modelcontextprotocol/sdk": "1.15.1",
60
+ "@octokit/graphql": "9.0.2",
61
+ "@octokit/rest": "22.0.0",
62
+ "@openauthjs/openauth": "catalog:",
63
+ "@opencode-ai/plugin": "workspace:*",
64
+ "@opencode-ai/script": "workspace:*",
65
+ "@opencode-ai/sdk": "workspace:*",
66
+ "@opencode-ai/util": "workspace:*",
67
+ "@openrouter/ai-sdk-provider": "1.2.8",
68
+ "@opentui/core": "0.1.59",
69
+ "@opentui/solid": "0.1.59",
70
+ "@parcel/watcher": "2.5.1",
71
+ "@pierre/precision-diffs": "catalog:",
72
+ "@solid-primitives/event-bus": "1.1.2",
73
+ "@standard-schema/spec": "1.0.0",
74
+ "@zip.js/zip.js": "2.7.62",
75
+ "ai": "catalog:",
76
+ "bun-pty": "0.4.2",
77
+ "chokidar": "4.0.3",
78
+ "clipboardy": "4.0.0",
79
+ "decimal.js": "10.5.0",
80
+ "diff": "catalog:",
81
+ "fuzzysort": "3.1.0",
82
+ "gray-matter": "4.0.3",
83
+ "hono": "catalog:",
84
+ "hono-openapi": "catalog:",
85
+ "ignore": "7.0.5",
86
+ "jsonc-parser": "3.3.1",
87
+ "minimatch": "10.0.3",
88
+ "open": "10.1.2",
89
+ "opentui-spinner": "0.0.6",
90
+ "partial-json": "0.1.7",
91
+ "remeda": "catalog:",
92
+ "solid-js": "catalog:",
93
+ "strip-ansi": "7.1.2",
94
+ "tree-sitter-bash": "0.25.0",
95
+ "turndown": "7.2.0",
96
+ "ulid": "catalog:",
97
+ "vscode-jsonrpc": "8.2.1",
98
+ "web-tree-sitter": "0.25.10",
99
+ "xdg-basedir": "5.1.0",
100
+ "yargs": "18.0.0",
101
+ "zod": "catalog:",
102
+ "zod-to-json-schema": "3.24.5"
46
103
  }
47
104
  }
@@ -0,0 +1,239 @@
1
+ export default {
2
+ // NOTE: FOR markdown, javascript and typescript, we use the opentui built-in parsers
3
+ // Warn: when taking queries from the nvim-treesitter repo, make sure to include the query dependencies as well
4
+ // marked with for example `; inherits: ecma` at the top of the file. Just put the dependencies before the actual query.
5
+ // ALSO: Some queries use breaking changes in the nvim-treesitter repo, that are not compatible with the (web-)tree-sitter parser.
6
+ parsers: [
7
+ {
8
+ filetype: "python",
9
+ wasm: "https://github.com/tree-sitter/tree-sitter-python/releases/download/v0.23.6/tree-sitter-python.wasm",
10
+ queries: {
11
+ highlights: [
12
+ // NOTE: This nvim-treesitter query is currently broken, because the parser is not compatible with the query apparently.
13
+ // it is using "except" nodes that the parser is complaining about, but it has been in the query for 3+ years.
14
+ // Unclear.
15
+ // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/python/highlights.scm",
16
+ "https://github.com/tree-sitter/tree-sitter-python/raw/refs/heads/master/queries/highlights.scm",
17
+ ],
18
+ locals: [
19
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/python/locals.scm",
20
+ ],
21
+ },
22
+ },
23
+ {
24
+ filetype: "rust",
25
+ wasm: "https://github.com/tree-sitter/tree-sitter-rust/releases/download/v0.24.0/tree-sitter-rust.wasm",
26
+ queries: {
27
+ highlights: [
28
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/rust/highlights.scm",
29
+ ],
30
+ locals: [
31
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/rust/locals.scm",
32
+ ],
33
+ },
34
+ },
35
+ {
36
+ filetype: "go",
37
+ wasm: "https://github.com/tree-sitter/tree-sitter-go/releases/download/v0.25.0/tree-sitter-go.wasm",
38
+ queries: {
39
+ highlights: [
40
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/go/highlights.scm",
41
+ ],
42
+ locals: [
43
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/go/locals.scm",
44
+ ],
45
+ },
46
+ },
47
+ {
48
+ filetype: "cpp",
49
+ wasm: "https://github.com/tree-sitter/tree-sitter-cpp/releases/download/v0.23.4/tree-sitter-cpp.wasm",
50
+ queries: {
51
+ highlights: [
52
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/cpp/highlights.scm",
53
+ ],
54
+ locals: [
55
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/cpp/locals.scm",
56
+ ],
57
+ },
58
+ },
59
+ {
60
+ filetype: "csharp",
61
+ wasm: "https://github.com/tree-sitter/tree-sitter-c-sharp/releases/download/v0.23.1/tree-sitter-c_sharp.wasm",
62
+ queries: {
63
+ highlights: [
64
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c_sharp/highlights.scm",
65
+ ],
66
+ locals: [
67
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c_sharp/locals.scm",
68
+ ],
69
+ },
70
+ },
71
+ {
72
+ filetype: "bash",
73
+ wasm: "https://github.com/tree-sitter/tree-sitter-bash/releases/download/v0.25.0/tree-sitter-bash.wasm",
74
+ queries: {
75
+ highlights: [
76
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/bash/highlights.scm",
77
+ ],
78
+ },
79
+ },
80
+ {
81
+ filetype: "c",
82
+ wasm: "https://github.com/tree-sitter/tree-sitter-c/releases/download/v0.24.1/tree-sitter-c.wasm",
83
+ queries: {
84
+ highlights: [
85
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c/highlights.scm",
86
+ ],
87
+ locals: [
88
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/c/locals.scm",
89
+ ],
90
+ },
91
+ },
92
+ {
93
+ filetype: "java",
94
+ wasm: "https://github.com/tree-sitter/tree-sitter-java/releases/download/v0.23.5/tree-sitter-java.wasm",
95
+ queries: {
96
+ highlights: [
97
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/java/highlights.scm",
98
+ ],
99
+ locals: [
100
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/java/locals.scm",
101
+ ],
102
+ },
103
+ },
104
+ {
105
+ filetype: "ruby",
106
+ wasm: "https://github.com/tree-sitter/tree-sitter-ruby/releases/download/v0.23.1/tree-sitter-ruby.wasm",
107
+ queries: {
108
+ highlights: [
109
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ruby/highlights.scm",
110
+ ],
111
+ locals: [
112
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ruby/locals.scm",
113
+ ],
114
+ },
115
+ },
116
+ {
117
+ filetype: "php",
118
+ wasm: "https://github.com/tree-sitter/tree-sitter-php/releases/download/v0.24.2/tree-sitter-php.wasm",
119
+ queries: {
120
+ highlights: [
121
+ // NOTE: This nvim-treesitter query is currently broken, because the parser is not compatible with the query apparently.
122
+ // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/php/highlights.scm",
123
+ "https://github.com/tree-sitter/tree-sitter-php/raw/refs/heads/master/queries/highlights.scm",
124
+ ],
125
+ },
126
+ },
127
+ {
128
+ filetype: "scala",
129
+ wasm: "https://github.com/tree-sitter/tree-sitter-scala/releases/download/v0.24.0/tree-sitter-scala.wasm",
130
+ queries: {
131
+ highlights: [
132
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/scala/highlights.scm",
133
+ ],
134
+ },
135
+ },
136
+ {
137
+ filetype: "html",
138
+ wasm: "https://github.com/tree-sitter/tree-sitter-html/releases/download/v0.23.2/tree-sitter-html.wasm",
139
+ queries: {
140
+ highlights: [
141
+ // NOTE: This nvim-treesitter query is currently broken, because the parser is not compatible with the query apparently.
142
+ // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/html/highlights.scm",
143
+ "https://github.com/tree-sitter/tree-sitter-html/raw/refs/heads/master/queries/highlights.scm",
144
+ ],
145
+ // TODO: Injections not working for some reason
146
+ // injections: [
147
+ // "https://github.com/tree-sitter/tree-sitter-html/raw/refs/heads/master/queries/injections.scm",
148
+ // ],
149
+ },
150
+ // injectionMapping: {
151
+ // nodeTypes: {
152
+ // script_element: "javascript",
153
+ // style_element: "css",
154
+ // },
155
+ // infoStringMap: {
156
+ // javascript: "javascript",
157
+ // css: "css",
158
+ // },
159
+ // },
160
+ },
161
+ {
162
+ filetype: "json",
163
+ wasm: "https://github.com/tree-sitter/tree-sitter-json/releases/download/v0.24.8/tree-sitter-json.wasm",
164
+ queries: {
165
+ highlights: [
166
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/json/highlights.scm",
167
+ ],
168
+ },
169
+ },
170
+ {
171
+ filetype: "yaml",
172
+ wasm: "https://github.com/tree-sitter-grammars/tree-sitter-yaml/releases/download/v0.7.2/tree-sitter-yaml.wasm",
173
+ queries: {
174
+ highlights: [
175
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/yaml/highlights.scm",
176
+ ],
177
+ },
178
+ },
179
+ {
180
+ filetype: "haskell",
181
+ wasm: "https://github.com/tree-sitter/tree-sitter-haskell/releases/download/v0.23.1/tree-sitter-haskell.wasm",
182
+ queries: {
183
+ highlights: [
184
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/haskell/highlights.scm",
185
+ ],
186
+ },
187
+ },
188
+ {
189
+ filetype: "css",
190
+ wasm: "https://github.com/tree-sitter/tree-sitter-css/releases/download/v0.25.0/tree-sitter-css.wasm",
191
+ queries: {
192
+ highlights: [
193
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/css/highlights.scm",
194
+ ],
195
+ },
196
+ },
197
+ {
198
+ filetype: "julia",
199
+ wasm: "https://github.com/tree-sitter/tree-sitter-julia/releases/download/v0.23.1/tree-sitter-julia.wasm",
200
+ queries: {
201
+ highlights: [
202
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/julia/highlights.scm",
203
+ ],
204
+ },
205
+ },
206
+ {
207
+ filetype: "ocaml",
208
+ wasm: "https://github.com/tree-sitter/tree-sitter-ocaml/releases/download/v0.24.2/tree-sitter-ocaml.wasm",
209
+ queries: {
210
+ highlights: [
211
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ocaml/highlights.scm",
212
+ ],
213
+ },
214
+ },
215
+ {
216
+ filetype: "clojure",
217
+ wasm: "https://github.com/sogaiu/tree-sitter-clojure/releases/download/v0.0.13/tree-sitter-clojure.wasm",
218
+ queries: {
219
+ highlights: [
220
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/clojure/highlights.scm",
221
+ ],
222
+ },
223
+ },
224
+ {
225
+ filetype: "swift",
226
+ wasm: "https://github.com/alex-pinkus/tree-sitter-swift/releases/download/0.7.1/tree-sitter-swift.wasm",
227
+ queries: {
228
+ highlights: [
229
+ // NOTE: Using parser repo queries instead of nvim-treesitter due to incompatible #lua-match? predicates
230
+ // "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/highlights.scm
231
+ "https://raw.githubusercontent.com/alex-pinkus/tree-sitter-swift/main/queries/highlights.scm",
232
+ ],
233
+ locals: [
234
+ "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/swift/locals.scm",
235
+ ],
236
+ },
237
+ },
238
+ ],
239
+ }
@@ -0,0 +1,151 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import solidPlugin from "../node_modules/@opentui/solid/scripts/solid-plugin"
4
+ import path from "path"
5
+ import fs from "fs"
6
+ import { $ } from "bun"
7
+ import { fileURLToPath } from "url"
8
+
9
+ const __filename = fileURLToPath(import.meta.url)
10
+ const __dirname = path.dirname(__filename)
11
+ const dir = path.resolve(__dirname, "..")
12
+
13
+ process.chdir(dir)
14
+
15
+ import pkg from "../package.json"
16
+ import { Script } from "@opencode-ai/script"
17
+
18
+ const singleFlag = process.argv.includes("--single")
19
+ const skipInstall = process.argv.includes("--skip-install")
20
+
21
+ const allTargets: {
22
+ os: string
23
+ arch: "arm64" | "x64"
24
+ abi?: "musl"
25
+ avx2?: false
26
+ }[] = [
27
+ {
28
+ os: "linux",
29
+ arch: "arm64",
30
+ },
31
+ {
32
+ os: "linux",
33
+ arch: "x64",
34
+ },
35
+ {
36
+ os: "linux",
37
+ arch: "x64",
38
+ avx2: false,
39
+ },
40
+ {
41
+ os: "linux",
42
+ arch: "arm64",
43
+ abi: "musl",
44
+ },
45
+ {
46
+ os: "linux",
47
+ arch: "x64",
48
+ abi: "musl",
49
+ },
50
+ {
51
+ os: "linux",
52
+ arch: "x64",
53
+ abi: "musl",
54
+ avx2: false,
55
+ },
56
+ {
57
+ os: "darwin",
58
+ arch: "arm64",
59
+ },
60
+ {
61
+ os: "darwin",
62
+ arch: "x64",
63
+ },
64
+ {
65
+ os: "darwin",
66
+ arch: "x64",
67
+ avx2: false,
68
+ },
69
+ {
70
+ os: "win32",
71
+ arch: "x64",
72
+ },
73
+ {
74
+ os: "win32",
75
+ arch: "x64",
76
+ avx2: false,
77
+ },
78
+ ]
79
+
80
+ const targets = singleFlag
81
+ ? allTargets.filter((item) => item.os === process.platform && item.arch === process.arch)
82
+ : allTargets
83
+
84
+ await $`rm -rf dist`
85
+
86
+ const binaries: Record<string, string> = {}
87
+ if (!skipInstall) {
88
+ await $`bun install --os="*" --cpu="*" @opentui/core@${pkg.dependencies["@opentui/core"]}`
89
+ await $`bun install --os="*" --cpu="*" @parcel/watcher@${pkg.dependencies["@parcel/watcher"]}`
90
+ }
91
+ for (const item of targets) {
92
+ const name = [
93
+ pkg.name,
94
+ // changing to win32 flags npm for some reason
95
+ item.os === "win32" ? "windows" : item.os,
96
+ item.arch,
97
+ item.avx2 === false ? "baseline" : undefined,
98
+ item.abi === undefined ? undefined : item.abi,
99
+ ]
100
+ .filter(Boolean)
101
+ .join("-")
102
+ console.log(`building ${name}`)
103
+ await $`mkdir -p dist/${name}/bin`
104
+
105
+ const parserWorker = fs.realpathSync(path.resolve(dir, "./node_modules/@opentui/core/parser.worker.js"))
106
+ const workerPath = "./src/cli/cmd/tui/worker.ts"
107
+
108
+ // Use platform-specific bunfs root path based on target OS
109
+ const bunfsRoot = item.os === "win32" ? "B:/~BUN/root/" : "/$bunfs/root/"
110
+ const workerRelativePath = path.relative(dir, parserWorker).replaceAll("\\", "/")
111
+
112
+ await Bun.build({
113
+ conditions: ["browser"],
114
+ tsconfig: "./tsconfig.json",
115
+ plugins: [solidPlugin],
116
+ sourcemap: "external",
117
+ compile: {
118
+ autoloadBunfig: false,
119
+ autoloadDotenv: false,
120
+ target: name.replace(pkg.name, "bun") as any,
121
+ outfile: `dist/${name}/bin/opencode`,
122
+ execArgv: [`--user-agent=opencode/${Script.version}`, "--"],
123
+ windows: {},
124
+ },
125
+ entrypoints: ["./src/index.ts", parserWorker, workerPath],
126
+ define: {
127
+ OPENCODE_VERSION: `'${Script.version}'`,
128
+ OTUI_TREE_SITTER_WORKER_PATH: bunfsRoot + workerRelativePath,
129
+ OPENCODE_WORKER_PATH: workerPath,
130
+ OPENCODE_CHANNEL: `'${Script.channel}'`,
131
+ OPENCODE_LIBC: item.os === "linux" ? `'${item.abi ?? "glibc"}'` : "",
132
+ },
133
+ })
134
+
135
+ await $`rm -rf ./dist/${name}/bin/tui`
136
+ await Bun.file(`dist/${name}/package.json`).write(
137
+ JSON.stringify(
138
+ {
139
+ name,
140
+ version: Script.version,
141
+ os: [item.os],
142
+ cpu: [item.arch],
143
+ },
144
+ null,
145
+ 2,
146
+ ),
147
+ )
148
+ binaries[name] = Script.version
149
+ }
150
+
151
+ export { binaries }