@stonerzju/opencode 1.2.17 → 1.2.18

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 (261) hide show
  1. package/bin/opencode +29 -157
  2. package/package.json +29 -29
  3. package/src/acp/agent.ts +4 -4
  4. package/src/acp/session.ts +1 -1
  5. package/src/agent/agent.ts +3 -3
  6. package/src/bun/index.ts +2 -2
  7. package/src/cli/cmd/acp.ts +3 -3
  8. package/src/cli/cmd/debug/file.ts +1 -1
  9. package/src/cli/cmd/github.ts +2 -2
  10. package/src/cli/cmd/pr.ts +1 -1
  11. package/src/cli/cmd/tui/app.tsx +24 -24
  12. package/src/cli/cmd/tui/attach.ts +3 -3
  13. package/src/cli/cmd/tui/component/dialog-agent.tsx +3 -3
  14. package/src/cli/cmd/tui/component/dialog-command.tsx +3 -3
  15. package/src/cli/cmd/tui/component/dialog-mcp.tsx +5 -5
  16. package/src/cli/cmd/tui/component/dialog-model.tsx +4 -4
  17. package/src/cli/cmd/tui/component/dialog-provider.tsx +4 -4
  18. package/src/cli/cmd/tui/component/dialog-session-list.tsx +5 -5
  19. package/src/cli/cmd/tui/component/dialog-session-rename.tsx +3 -3
  20. package/src/cli/cmd/tui/component/dialog-skill.tsx +3 -3
  21. package/src/cli/cmd/tui/component/dialog-stash.tsx +3 -3
  22. package/src/cli/cmd/tui/component/dialog-status.tsx +2 -2
  23. package/src/cli/cmd/tui/component/dialog-tag.tsx +3 -3
  24. package/src/cli/cmd/tui/component/logo.tsx +2 -2
  25. package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +6 -6
  26. package/src/cli/cmd/tui/component/prompt/frecency.tsx +2 -2
  27. package/src/cli/cmd/tui/component/prompt/history.tsx +2 -2
  28. package/src/cli/cmd/tui/component/prompt/index.tsx +14 -14
  29. package/src/cli/cmd/tui/component/prompt/stash.tsx +2 -2
  30. package/src/cli/cmd/tui/component/textarea-keybindings.ts +1 -1
  31. package/src/cli/cmd/tui/component/tips.tsx +1 -1
  32. package/src/cli/cmd/tui/context/directory.ts +1 -1
  33. package/src/cli/cmd/tui/context/exit.tsx +1 -1
  34. package/src/cli/cmd/tui/context/keybind.tsx +2 -2
  35. package/src/cli/cmd/tui/context/kv.tsx +2 -2
  36. package/src/cli/cmd/tui/context/local.tsx +6 -6
  37. package/src/cli/cmd/tui/context/sync.tsx +4 -4
  38. package/src/cli/cmd/tui/context/theme/opencode.json +245 -0
  39. package/src/cli/cmd/tui/context/theme.tsx +2 -2
  40. package/src/cli/cmd/tui/context/tui-config.tsx +1 -1
  41. package/src/cli/cmd/tui/event.ts +2 -2
  42. package/src/cli/cmd/tui/routes/home.tsx +6 -6
  43. package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +6 -6
  44. package/src/cli/cmd/tui/routes/session/dialog-message.tsx +6 -6
  45. package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +2 -2
  46. package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +3 -3
  47. package/src/cli/cmd/tui/routes/session/header.tsx +5 -5
  48. package/src/cli/cmd/tui/routes/session/index.tsx +32 -32
  49. package/src/cli/cmd/tui/routes/session/permission.tsx +4 -4
  50. package/src/cli/cmd/tui/routes/session/sidebar.tsx +4 -4
  51. package/src/cli/cmd/tui/thread.ts +9 -9
  52. package/src/cli/cmd/tui/ui/dialog-confirm.tsx +1 -1
  53. package/src/cli/cmd/tui/ui/dialog-help.tsx +2 -2
  54. package/src/cli/cmd/tui/ui/dialog-select.tsx +5 -5
  55. package/src/cli/cmd/tui/ui/dialog.tsx +3 -3
  56. package/src/cli/cmd/tui/ui/toast.tsx +1 -1
  57. package/src/cli/cmd/tui/util/editor.ts +3 -3
  58. package/src/cli/cmd/tui/util/transcript.ts +1 -1
  59. package/src/cli/cmd/tui/worker.ts +10 -10
  60. package/src/cli/error.ts +1 -1
  61. package/src/cli/ui.ts +1 -1
  62. package/src/cli/upgrade.ts +4 -4
  63. package/src/command/index.ts +1 -1
  64. package/src/config/config.ts +10 -10
  65. package/src/config/markdown.ts +1 -1
  66. package/src/config/migrate-tui-config.ts +5 -5
  67. package/src/config/paths.ts +4 -4
  68. package/src/config/tui.ts +4 -4
  69. package/src/control/control.sql.ts +1 -1
  70. package/src/control/index.ts +1 -1
  71. package/src/control-plane/adaptors/worktree.ts +1 -1
  72. package/src/control-plane/session-proxy-middleware.ts +1 -1
  73. package/src/control-plane/workspace.sql.ts +1 -1
  74. package/src/control-plane/workspace.ts +7 -7
  75. package/src/file/index.ts +1 -1
  76. package/src/file/ripgrep.ts +2 -2
  77. package/src/file/watcher.ts +5 -5
  78. package/src/format/formatter.ts +1 -1
  79. package/src/ide/index.ts +3 -3
  80. package/src/index.ts +1 -1
  81. package/src/installation/index.ts +3 -3
  82. package/src/lsp/client.ts +3 -3
  83. package/src/lsp/index.ts +3 -3
  84. package/src/mcp/index.ts +4 -4
  85. package/src/permission/index.ts +2 -2
  86. package/src/permission/next.ts +10 -10
  87. package/src/plugin/codex.ts +1 -1
  88. package/src/plugin/copilot.ts +2 -2
  89. package/src/plugin/index.ts +1 -1
  90. package/src/project/bootstrap.ts +2 -2
  91. package/src/project/instance.ts +4 -4
  92. package/src/project/project.sql.ts +1 -1
  93. package/src/project/project.ts +5 -5
  94. package/src/project/state.ts +1 -1
  95. package/src/project/vcs.ts +4 -4
  96. package/src/provider/auth.ts +4 -4
  97. package/src/provider/error.ts +1 -1
  98. package/src/provider/models-snapshot.ts +2 -0
  99. package/src/provider/models.ts +1 -1
  100. package/src/provider/provider.ts +2 -2
  101. package/src/provider/transform.ts +2 -2
  102. package/src/pty/index.ts +5 -5
  103. package/src/question/index.ts +5 -5
  104. package/src/server/event.ts +1 -1
  105. package/src/server/mdns.ts +1 -1
  106. package/src/server/routes/global.ts +3 -3
  107. package/src/server/routes/permission.ts +1 -1
  108. package/src/server/routes/pty.ts +1 -1
  109. package/src/server/routes/session.ts +4 -4
  110. package/src/server/routes/tui.ts +1 -1
  111. package/src/server/server.ts +3 -3
  112. package/src/session/compaction.ts +7 -7
  113. package/src/session/index.ts +10 -10
  114. package/src/session/instruction.ts +1 -1
  115. package/src/session/llm.ts +11 -11
  116. package/src/session/message-v2.ts +10 -10
  117. package/src/session/message.ts +1 -1
  118. package/src/session/processor.ts +10 -10
  119. package/src/session/prompt.ts +8 -8
  120. package/src/session/retry.ts +2 -2
  121. package/src/session/revert.ts +1 -1
  122. package/src/session/session.sql.ts +3 -3
  123. package/src/session/status.ts +3 -3
  124. package/src/session/summary.ts +5 -5
  125. package/src/session/system.ts +1 -1
  126. package/src/session/todo.ts +2 -2
  127. package/src/share/share-next.ts +7 -7
  128. package/src/share/share.sql.ts +1 -1
  129. package/src/shell/shell.ts +3 -3
  130. package/src/skill/skill.ts +6 -6
  131. package/src/storage/db.ts +1 -1
  132. package/src/storage/storage.ts +1 -1
  133. package/src/tool/bash.ts +6 -6
  134. package/src/tool/edit.ts +1 -1
  135. package/src/tool/registry.ts +2 -2
  136. package/src/tool/skill.ts +1 -1
  137. package/src/tool/task.ts +3 -3
  138. package/src/util/array.ts +10 -0
  139. package/src/util/binary.ts +41 -0
  140. package/src/util/encode.ts +51 -0
  141. package/src/util/error.ts +54 -0
  142. package/src/util/identifier.ts +48 -0
  143. package/src/util/lazy.ts +4 -16
  144. package/src/util/path.ts +37 -0
  145. package/src/util/retry.ts +41 -0
  146. package/src/util/slug.ts +74 -0
  147. package/src/worktree/index.ts +3 -3
  148. package/AGENTS.md +0 -10
  149. package/BUN_SHELL_MIGRATION_PLAN.md +0 -136
  150. package/Dockerfile +0 -18
  151. package/README.md +0 -15
  152. package/bunfig.toml +0 -7
  153. package/drizzle.config.ts +0 -10
  154. package/script/build.ts +0 -224
  155. package/script/check-migrations.ts +0 -16
  156. package/script/postinstall.mjs +0 -131
  157. package/script/publish.ts +0 -181
  158. package/script/schema.ts +0 -63
  159. package/script/seed-e2e.ts +0 -50
  160. package/sst-env.d.ts +0 -10
  161. package/test/AGENTS.md +0 -81
  162. package/test/acp/agent-interface.test.ts +0 -51
  163. package/test/acp/event-subscription.test.ts +0 -683
  164. package/test/agent/agent.test.ts +0 -689
  165. package/test/bun.test.ts +0 -53
  166. package/test/cli/github-action.test.ts +0 -197
  167. package/test/cli/github-remote.test.ts +0 -80
  168. package/test/cli/import.test.ts +0 -38
  169. package/test/cli/plugin-auth-picker.test.ts +0 -120
  170. package/test/cli/tui/transcript.test.ts +0 -322
  171. package/test/config/agent-color.test.ts +0 -71
  172. package/test/config/config.test.ts +0 -1886
  173. package/test/config/fixtures/empty-frontmatter.md +0 -4
  174. package/test/config/fixtures/frontmatter.md +0 -28
  175. package/test/config/fixtures/markdown-header.md +0 -11
  176. package/test/config/fixtures/no-frontmatter.md +0 -1
  177. package/test/config/fixtures/weird-model-id.md +0 -13
  178. package/test/config/markdown.test.ts +0 -228
  179. package/test/config/tui.test.ts +0 -510
  180. package/test/control-plane/session-proxy-middleware.test.ts +0 -147
  181. package/test/control-plane/sse.test.ts +0 -56
  182. package/test/control-plane/workspace-server-sse.test.ts +0 -65
  183. package/test/control-plane/workspace-sync.test.ts +0 -97
  184. package/test/file/ignore.test.ts +0 -10
  185. package/test/file/index.test.ts +0 -394
  186. package/test/file/path-traversal.test.ts +0 -198
  187. package/test/file/ripgrep.test.ts +0 -39
  188. package/test/file/time.test.ts +0 -361
  189. package/test/fixture/db.ts +0 -11
  190. package/test/fixture/fixture.ts +0 -45
  191. package/test/fixture/lsp/fake-lsp-server.js +0 -77
  192. package/test/fixture/skills/agents-sdk/SKILL.md +0 -152
  193. package/test/fixture/skills/agents-sdk/references/callable.md +0 -92
  194. package/test/fixture/skills/cloudflare/SKILL.md +0 -211
  195. package/test/fixture/skills/index.json +0 -6
  196. package/test/ide/ide.test.ts +0 -82
  197. package/test/keybind.test.ts +0 -421
  198. package/test/lsp/client.test.ts +0 -95
  199. package/test/mcp/headers.test.ts +0 -153
  200. package/test/mcp/oauth-browser.test.ts +0 -249
  201. package/test/memory/abort-leak.test.ts +0 -136
  202. package/test/patch/patch.test.ts +0 -348
  203. package/test/permission/arity.test.ts +0 -33
  204. package/test/permission/next.test.ts +0 -689
  205. package/test/permission-task.test.ts +0 -319
  206. package/test/plugin/auth-override.test.ts +0 -44
  207. package/test/plugin/codex.test.ts +0 -123
  208. package/test/preload.ts +0 -80
  209. package/test/project/project.test.ts +0 -348
  210. package/test/project/worktree-remove.test.ts +0 -65
  211. package/test/provider/amazon-bedrock.test.ts +0 -446
  212. package/test/provider/copilot/convert-to-copilot-messages.test.ts +0 -523
  213. package/test/provider/copilot/copilot-chat-model.test.ts +0 -592
  214. package/test/provider/gitlab-duo.test.ts +0 -262
  215. package/test/provider/provider.test.ts +0 -2220
  216. package/test/provider/transform.test.ts +0 -2353
  217. package/test/pty/pty-output-isolation.test.ts +0 -140
  218. package/test/question/question.test.ts +0 -300
  219. package/test/scheduler.test.ts +0 -73
  220. package/test/server/global-session-list.test.ts +0 -89
  221. package/test/server/session-list.test.ts +0 -90
  222. package/test/server/session-select.test.ts +0 -78
  223. package/test/session/compaction.test.ts +0 -423
  224. package/test/session/instruction.test.ts +0 -170
  225. package/test/session/llm.test.ts +0 -667
  226. package/test/session/message-v2.test.ts +0 -924
  227. package/test/session/prompt.test.ts +0 -211
  228. package/test/session/retry.test.ts +0 -188
  229. package/test/session/revert-compact.test.ts +0 -285
  230. package/test/session/session.test.ts +0 -71
  231. package/test/session/structured-output-integration.test.ts +0 -233
  232. package/test/session/structured-output.test.ts +0 -385
  233. package/test/skill/discovery.test.ts +0 -110
  234. package/test/skill/skill.test.ts +0 -388
  235. package/test/snapshot/snapshot.test.ts +0 -1180
  236. package/test/storage/json-migration.test.ts +0 -846
  237. package/test/tool/__snapshots__/tool.test.ts.snap +0 -9
  238. package/test/tool/apply_patch.test.ts +0 -566
  239. package/test/tool/bash.test.ts +0 -402
  240. package/test/tool/edit.test.ts +0 -496
  241. package/test/tool/external-directory.test.ts +0 -127
  242. package/test/tool/fixtures/large-image.png +0 -0
  243. package/test/tool/fixtures/models-api.json +0 -38413
  244. package/test/tool/grep.test.ts +0 -110
  245. package/test/tool/question.test.ts +0 -107
  246. package/test/tool/read.test.ts +0 -504
  247. package/test/tool/registry.test.ts +0 -122
  248. package/test/tool/skill.test.ts +0 -112
  249. package/test/tool/truncation.test.ts +0 -160
  250. package/test/tool/webfetch.test.ts +0 -100
  251. package/test/tool/write.test.ts +0 -348
  252. package/test/util/filesystem.test.ts +0 -443
  253. package/test/util/format.test.ts +0 -59
  254. package/test/util/glob.test.ts +0 -164
  255. package/test/util/iife.test.ts +0 -36
  256. package/test/util/lazy.test.ts +0 -50
  257. package/test/util/lock.test.ts +0 -72
  258. package/test/util/process.test.ts +0 -59
  259. package/test/util/timeout.test.ts +0 -21
  260. package/test/util/wildcard.test.ts +0 -90
  261. package/tsconfig.json +0 -16
@@ -13,11 +13,11 @@ import {
13
13
  } from "solid-js"
14
14
  import { Dynamic } from "solid-js/web"
15
15
  import path from "path"
16
- import { useRoute, useRouteData } from "@tui/context/route"
17
- import { useSync } from "@tui/context/sync"
18
- import { SplitBorder } from "@tui/component/border"
19
- import { Spinner } from "@tui/component/spinner"
20
- import { selectedForeground, useTheme } from "@tui/context/theme"
16
+ import { useRoute, useRouteData } from "../../context/route"
17
+ import { useSync } from "../../context/sync"
18
+ import { SplitBorder } from "../../component/border"
19
+ import { Spinner } from "../../component/spinner"
20
+ import { selectedForeground, useTheme } from "../../context/theme"
21
21
  import {
22
22
  BoxRenderable,
23
23
  ScrollBoxRenderable,
@@ -27,42 +27,42 @@ import {
27
27
  TextAttributes,
28
28
  RGBA,
29
29
  } from "@opentui/core"
30
- import { Prompt, type PromptRef } from "@tui/component/prompt"
30
+ import { Prompt, type PromptRef } from "../../component/prompt"
31
31
  import type { AssistantMessage, Part, ToolPart, UserMessage, TextPart, ReasoningPart } from "@opencode-ai/sdk/v2"
32
- import { useLocal } from "@tui/context/local"
33
- import { Locale } from "@/util/locale"
34
- import type { Tool } from "@/tool/tool"
35
- import type { ReadTool } from "@/tool/read"
36
- import type { WriteTool } from "@/tool/write"
37
- import { BashTool } from "@/tool/bash"
38
- import type { GlobTool } from "@/tool/glob"
39
- import { TodoWriteTool } from "@/tool/todo"
40
- import type { GrepTool } from "@/tool/grep"
41
- import type { ListTool } from "@/tool/ls"
42
- import type { EditTool } from "@/tool/edit"
43
- import type { ApplyPatchTool } from "@/tool/apply_patch"
44
- import type { WebFetchTool } from "@/tool/webfetch"
45
- import type { TaskTool } from "@/tool/task"
46
- import type { QuestionTool } from "@/tool/question"
47
- import type { SkillTool } from "@/tool/skill"
32
+ import { useLocal } from "../../context/local"
33
+ import { Locale } from "../../../../../util/locale"
34
+ import type { Tool } from "../../../../../tool/tool"
35
+ import type { ReadTool } from "../../../../../tool/read"
36
+ import type { WriteTool } from "../../../../../tool/write"
37
+ import { BashTool } from "../../../../../tool/bash"
38
+ import type { GlobTool } from "../../../../../tool/glob"
39
+ import { TodoWriteTool } from "../../../../../tool/todo"
40
+ import type { GrepTool } from "../../../../../tool/grep"
41
+ import type { ListTool } from "../../../../../tool/ls"
42
+ import type { EditTool } from "../../../../../tool/edit"
43
+ import type { ApplyPatchTool } from "../../../../../tool/apply_patch"
44
+ import type { WebFetchTool } from "../../../../../tool/webfetch"
45
+ import type { TaskTool } from "../../../../../tool/task"
46
+ import type { QuestionTool } from "../../../../../tool/question"
47
+ import type { SkillTool } from "../../../../../tool/skill"
48
48
  import { useKeyboard, useRenderer, useTerminalDimensions, type JSX } from "@opentui/solid"
49
- import { useSDK } from "@tui/context/sdk"
50
- import { useCommandDialog } from "@tui/component/dialog-command"
51
- import type { DialogContext } from "@tui/ui/dialog"
52
- import { useKeybind } from "@tui/context/keybind"
49
+ import { useSDK } from "../../context/sdk"
50
+ import { useCommandDialog } from "../../component/dialog-command"
51
+ import type { DialogContext } from "../../ui/dialog"
52
+ import { useKeybind } from "../../context/keybind"
53
53
  import { Header } from "./header"
54
54
  import { parsePatch } from "diff"
55
55
  import { useDialog } from "../../ui/dialog"
56
56
  import { TodoItem } from "../../component/todo-item"
57
57
  import { DialogMessage } from "./dialog-message"
58
58
  import type { PromptInfo } from "../../component/prompt/history"
59
- import { DialogConfirm } from "@tui/ui/dialog-confirm"
59
+ import { DialogConfirm } from "../../ui/dialog-confirm"
60
60
  import { DialogTimeline } from "./dialog-timeline"
61
61
  import { DialogForkFromTimeline } from "./dialog-fork-from-timeline"
62
62
  import { DialogSessionRename } from "../../component/dialog-session-rename"
63
63
  import { Sidebar } from "./sidebar"
64
- import { Flag } from "@/flag/flag"
65
- import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
64
+ import { Flag } from "../../../../../flag/flag"
65
+ import { LANGUAGE_EXTENSIONS } from "../../../../../lsp/language"
66
66
  import parsers from "../../../../../../parsers-config.ts"
67
67
  import { Clipboard } from "../../util/clipboard"
68
68
  import { Toast, useToast } from "../../ui/toast"
@@ -72,13 +72,13 @@ import stripAnsi from "strip-ansi"
72
72
  import { Footer } from "./footer.tsx"
73
73
  import { usePromptRef } from "../../context/prompt"
74
74
  import { useExit } from "../../context/exit"
75
- import { Filesystem } from "@/util/filesystem"
76
- import { Global } from "@/global"
75
+ import { Filesystem } from "../../../../../util/filesystem"
76
+ import { Global } from "../../../../../global"
77
77
  import { PermissionPrompt } from "./permission"
78
78
  import { QuestionPrompt } from "./question"
79
79
  import { DialogExportOptions } from "../../ui/dialog-export-options"
80
80
  import { formatTranscript } from "../../util/transcript"
81
- import { UI } from "@/cli/ui.ts"
81
+ import { UI } from "../../../../ui.ts"
82
82
  import { useTuiConfig } from "../../context/tui-config"
83
83
 
84
84
  addDefaultParsers(parsers.parsers)
@@ -10,10 +10,10 @@ import { SplitBorder } from "../../component/border"
10
10
  import { useSync } from "../../context/sync"
11
11
  import { useTextareaKeybindings } from "../../component/textarea-keybindings"
12
12
  import path from "path"
13
- import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
14
- import { Keybind } from "@/util/keybind"
15
- import { Locale } from "@/util/locale"
16
- import { Global } from "@/global"
13
+ import { LANGUAGE_EXTENSIONS } from "../../../../../lsp/language"
14
+ import { Keybind } from "../../../../../util/keybind"
15
+ import { Locale } from "../../../../../util/locale"
16
+ import { Global } from "../../../../../global"
17
17
  import { useDialog } from "../../ui/dialog"
18
18
  import { useTuiConfig } from "../../context/tui-config"
19
19
 
@@ -1,12 +1,12 @@
1
- import { useSync } from "@tui/context/sync"
1
+ import { useSync } from "../../context/sync"
2
2
  import { createMemo, For, Show, Switch, Match } from "solid-js"
3
3
  import { createStore } from "solid-js/store"
4
4
  import { useTheme } from "../../context/theme"
5
- import { Locale } from "@/util/locale"
5
+ import { Locale } from "../../../../../util/locale"
6
6
  import path from "path"
7
7
  import type { AssistantMessage } from "@opencode-ai/sdk/v2"
8
- import { Global } from "@/global"
9
- import { Installation } from "@/installation"
8
+ import { Global } from "../../../../../global"
9
+ import { Installation } from "../../../../../installation"
10
10
  import { useKeybind } from "../../context/keybind"
11
11
  import { useDirectory } from "../../context/directory"
12
12
  import { useKV } from "../../context/kv"
@@ -1,19 +1,19 @@
1
- import { cmd } from "@/cli/cmd/cmd"
1
+ import { cmd } from "../cmd"
2
2
  import { tui } from "./app"
3
- import { Rpc } from "@/util/rpc"
3
+ import { Rpc } from "../../../util/rpc"
4
4
  import { type rpc } from "./worker"
5
5
  import path from "path"
6
6
  import { fileURLToPath } from "url"
7
- import { UI } from "@/cli/ui"
8
- import { iife } from "@/util/iife"
9
- import { Log } from "@/util/log"
10
- import { withNetworkOptions, resolveNetworkOptions } from "@/cli/network"
11
- import { Filesystem } from "@/util/filesystem"
7
+ import { UI } from "../../ui"
8
+ import { iife } from "../../../util/iife"
9
+ import { Log } from "../../../util/log"
10
+ import { withNetworkOptions, resolveNetworkOptions } from "../../network"
11
+ import { Filesystem } from "../../../util/filesystem"
12
12
  import type { Event } from "@opencode-ai/sdk/v2"
13
13
  import type { EventSource } from "./context/sdk"
14
14
  import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32"
15
- import { TuiConfig } from "@/config/tui"
16
- import { Instance } from "@/project/instance"
15
+ import { TuiConfig } from "../../../config/tui"
16
+ import { Instance } from "../../../project/instance"
17
17
 
18
18
  declare global {
19
19
  const OPENCODE_WORKER_PATH: string
@@ -4,7 +4,7 @@ import { useDialog, type DialogContext } from "./dialog"
4
4
  import { createStore } from "solid-js/store"
5
5
  import { For } from "solid-js"
6
6
  import { useKeyboard } from "@opentui/solid"
7
- import { Locale } from "@/util/locale"
7
+ import { Locale } from "../../../../util/locale"
8
8
 
9
9
  export type DialogConfirmProps = {
10
10
  title: string
@@ -1,8 +1,8 @@
1
1
  import { TextAttributes } from "@opentui/core"
2
- import { useTheme } from "@tui/context/theme"
2
+ import { useTheme } from "../context/theme"
3
3
  import { useDialog } from "./dialog"
4
4
  import { useKeyboard } from "@opentui/solid"
5
- import { useKeybind } from "@tui/context/keybind"
5
+ import { useKeybind } from "../context/keybind"
6
6
 
7
7
  export function DialogHelp() {
8
8
  const dialog = useDialog()
@@ -1,15 +1,15 @@
1
1
  import { InputRenderable, RGBA, ScrollBoxRenderable, TextAttributes } from "@opentui/core"
2
- import { useTheme, selectedForeground } from "@tui/context/theme"
2
+ import { useTheme, selectedForeground } from "../context/theme"
3
3
  import { entries, filter, flatMap, groupBy, pipe, take } from "remeda"
4
4
  import { batch, createEffect, createMemo, For, Show, type JSX, on } from "solid-js"
5
5
  import { createStore } from "solid-js/store"
6
6
  import { useKeyboard, useTerminalDimensions } from "@opentui/solid"
7
7
  import * as fuzzysort from "fuzzysort"
8
8
  import { isDeepEqual } from "remeda"
9
- import { useDialog, type DialogContext } from "@tui/ui/dialog"
10
- import { useKeybind } from "@tui/context/keybind"
11
- import { Keybind } from "@/util/keybind"
12
- import { Locale } from "@/util/locale"
9
+ import { useDialog, type DialogContext } from "./dialog"
10
+ import { useKeybind } from "../context/keybind"
11
+ import { Keybind } from "../../../../util/keybind"
12
+ import { Locale } from "../../../../util/locale"
13
13
 
14
14
  export interface DialogSelectProps<T> {
15
15
  title: string
@@ -1,11 +1,11 @@
1
1
  import { useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/solid"
2
2
  import { batch, createContext, Show, useContext, type JSX, type ParentProps } from "solid-js"
3
- import { useTheme } from "@tui/context/theme"
3
+ import { useTheme } from "../context/theme"
4
4
  import { MouseButton, Renderable, RGBA } from "@opentui/core"
5
5
  import { createStore } from "solid-js/store"
6
6
  import { useToast } from "./toast"
7
- import { Flag } from "@/flag/flag"
8
- import { Selection } from "@tui/util/selection"
7
+ import { Flag } from "../../../../flag/flag"
8
+ import { Selection } from "../util/selection"
9
9
 
10
10
  export function Dialog(
11
11
  props: ParentProps<{
@@ -1,6 +1,6 @@
1
1
  import { createContext, useContext, type ParentProps, Show } from "solid-js"
2
2
  import { createStore } from "solid-js/store"
3
- import { useTheme } from "@tui/context/theme"
3
+ import { useTheme } from "../context/theme"
4
4
  import { useTerminalDimensions } from "@opentui/solid"
5
5
  import { SplitBorder } from "../component/border"
6
6
  import { TextAttributes } from "@opentui/core"
@@ -1,10 +1,10 @@
1
- import { defer } from "@/util/defer"
1
+ import { defer } from "../../../../util/defer"
2
2
  import { rm } from "node:fs/promises"
3
3
  import { tmpdir } from "node:os"
4
4
  import { join } from "node:path"
5
5
  import { CliRenderer } from "@opentui/core"
6
- import { Filesystem } from "@/util/filesystem"
7
- import { Process } from "@/util/process"
6
+ import { Filesystem } from "../../../../util/filesystem"
7
+ import { Process } from "../../../../util/process"
8
8
 
9
9
  export namespace Editor {
10
10
  export async function open(opts: { value: string; renderer: CliRenderer }): Promise<string | undefined> {
@@ -1,5 +1,5 @@
1
1
  import type { AssistantMessage, Part, UserMessage } from "@opencode-ai/sdk/v2"
2
- import { Locale } from "@/util/locale"
2
+ import { Locale } from "../../../../util/locale"
3
3
 
4
4
  export type TranscriptOptions = {
5
5
  thinking: boolean
@@ -1,15 +1,15 @@
1
- import { Installation } from "@/installation"
2
- import { Server } from "@/server/server"
3
- import { Log } from "@/util/log"
4
- import { Instance } from "@/project/instance"
5
- import { InstanceBootstrap } from "@/project/bootstrap"
6
- import { Rpc } from "@/util/rpc"
7
- import { upgrade } from "@/cli/upgrade"
8
- import { Config } from "@/config/config"
9
- import { GlobalBus } from "@/bus/global"
1
+ import { Installation } from "../../../installation"
2
+ import { Server } from "../../../server/server"
3
+ import { Log } from "../../../util/log"
4
+ import { Instance } from "../../../project/instance"
5
+ import { InstanceBootstrap } from "../../../project/bootstrap"
6
+ import { Rpc } from "../../../util/rpc"
7
+ import { upgrade } from "../../upgrade"
8
+ import { Config } from "../../../config/config"
9
+ import { GlobalBus } from "../../../bus/global"
10
10
  import { createOpencodeClient, type Event } from "@opencode-ai/sdk/v2"
11
11
  import type { BunWebSocketData } from "hono/bun"
12
- import { Flag } from "@/flag/flag"
12
+ import { Flag } from "../../../flag/flag"
13
13
 
14
14
  await Log.init({
15
15
  print: process.argv.includes("--print-logs"),
package/src/cli/error.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ConfigMarkdown } from "@/config/markdown"
1
+ import { ConfigMarkdown } from "../config/markdown"
2
2
  import { Config } from "../config/config"
3
3
  import { MCP } from "../mcp"
4
4
  import { Provider } from "../provider/provider"
package/src/cli/ui.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import z from "zod"
2
2
  import { EOL } from "os"
3
- import { NamedError } from "@opencode-ai/util/error"
3
+ import { NamedError } from "../util/error"
4
4
  import { logo as glyphs } from "./logo"
5
5
 
6
6
  export namespace UI {
@@ -1,7 +1,7 @@
1
- import { Bus } from "@/bus"
2
- import { Config } from "@/config/config"
3
- import { Flag } from "@/flag/flag"
4
- import { Installation } from "@/installation"
1
+ import { Bus } from "../bus"
2
+ import { Config } from "../config/config"
3
+ import { Flag } from "../flag/flag"
4
+ import { Installation } from "../installation"
5
5
 
6
6
  export async function upgrade() {
7
7
  const config = await Config.global()
@@ -1,4 +1,4 @@
1
- import { BusEvent } from "@/bus/bus-event"
1
+ import { BusEvent } from "../bus/bus-event"
2
2
  import z from "zod"
3
3
  import { Config } from "../config/config"
4
4
  import { Instance } from "../project/instance"
@@ -9,7 +9,7 @@ import { mergeDeep, pipe, unique } from "remeda"
9
9
  import { Global } from "../global"
10
10
  import fs from "fs/promises"
11
11
  import { lazy } from "../util/lazy"
12
- import { NamedError } from "@opencode-ai/util/error"
12
+ import { NamedError } from "../util/error"
13
13
  import { Flag } from "../flag/flag"
14
14
  import { Auth } from "../auth"
15
15
  import {
@@ -21,20 +21,20 @@ import {
21
21
  } from "jsonc-parser"
22
22
  import { Instance } from "../project/instance"
23
23
  import { LSPServer } from "../lsp/server"
24
- import { BunProc } from "@/bun"
25
- import { Installation } from "@/installation"
24
+ import { BunProc } from "../bun"
25
+ import { Installation } from "../installation"
26
26
  import { ConfigMarkdown } from "./markdown"
27
27
  import { constants, existsSync } from "fs"
28
- import { Bus } from "@/bus"
29
- import { GlobalBus } from "@/bus/global"
28
+ import { Bus } from "../bus"
29
+ import { GlobalBus } from "../bus/global"
30
30
  import { Event } from "../server/event"
31
31
  import { Glob } from "../util/glob"
32
- import { PackageRegistry } from "@/bun/registry"
33
- import { proxied } from "@/util/proxied"
34
- import { iife } from "@/util/iife"
35
- import { Control } from "@/control"
32
+ import { PackageRegistry } from "../bun/registry"
33
+ import { proxied } from "../util/proxied"
34
+ import { iife } from "../util/iife"
35
+ import { Control } from "../control"
36
36
  import { ConfigPaths } from "./paths"
37
- import { Filesystem } from "@/util/filesystem"
37
+ import { Filesystem } from "../util/filesystem"
38
38
 
39
39
  export namespace Config {
40
40
  const ModelId = z.string().meta({ $ref: "https://models.dev/model-schema.json#/$defs/Model" })
@@ -1,4 +1,4 @@
1
- import { NamedError } from "@opencode-ai/util/error"
1
+ import { NamedError } from "../util/error"
2
2
  import matter from "gray-matter"
3
3
  import { z } from "zod"
4
4
  import { Filesystem } from "../util/filesystem"
@@ -4,11 +4,11 @@ import { unique } from "remeda"
4
4
  import z from "zod"
5
5
  import { ConfigPaths } from "./paths"
6
6
  import { TuiInfo, TuiOptions } from "./tui-schema"
7
- import { Instance } from "@/project/instance"
8
- import { Flag } from "@/flag/flag"
9
- import { Log } from "@/util/log"
10
- import { Filesystem } from "@/util/filesystem"
11
- import { Global } from "@/global"
7
+ import { Instance } from "../project/instance"
8
+ import { Flag } from "../flag/flag"
9
+ import { Log } from "../util/log"
10
+ import { Filesystem } from "../util/filesystem"
11
+ import { Global } from "../global"
12
12
 
13
13
  const log = Log.create({ service: "tui.migrate" })
14
14
 
@@ -2,10 +2,10 @@ import path from "path"
2
2
  import os from "os"
3
3
  import z from "zod"
4
4
  import { type ParseError as JsoncParseError, parse as parseJsonc, printParseErrorCode } from "jsonc-parser"
5
- import { NamedError } from "@opencode-ai/util/error"
6
- import { Filesystem } from "@/util/filesystem"
7
- import { Flag } from "@/flag/flag"
8
- import { Global } from "@/global"
5
+ import { NamedError } from "../util/error"
6
+ import { Filesystem } from "../util/filesystem"
7
+ import { Flag } from "../flag/flag"
8
+ import { Global } from "../global"
9
9
 
10
10
  export namespace ConfigPaths {
11
11
  export async function projectFiles(name: string, directory: string, worktree: string) {
package/src/config/tui.ts CHANGED
@@ -5,10 +5,10 @@ import { Config } from "./config"
5
5
  import { ConfigPaths } from "./paths"
6
6
  import { migrateTuiConfig } from "./migrate-tui-config"
7
7
  import { TuiInfo } from "./tui-schema"
8
- import { Instance } from "@/project/instance"
9
- import { Flag } from "@/flag/flag"
10
- import { Log } from "@/util/log"
11
- import { Global } from "@/global"
8
+ import { Instance } from "../project/instance"
9
+ import { Flag } from "../flag/flag"
10
+ import { Log } from "../util/log"
11
+ import { Global } from "../global"
12
12
 
13
13
  export namespace TuiConfig {
14
14
  const log = Log.create({ service: "tui.config" })
@@ -1,6 +1,6 @@
1
1
  import { sqliteTable, text, integer, primaryKey, uniqueIndex } from "drizzle-orm/sqlite-core"
2
2
  import { eq } from "drizzle-orm"
3
- import { Timestamps } from "@/storage/schema.sql"
3
+ import { Timestamps } from "../storage/schema.sql"
4
4
 
5
5
  export const ControlAccountTable = sqliteTable(
6
6
  "control_account",
@@ -1,5 +1,5 @@
1
1
  import { eq, and } from "drizzle-orm"
2
- import { Database } from "@/storage/db"
2
+ import { Database } from "../storage/db"
3
3
  import { ControlAccountTable } from "./control.sql"
4
4
  import z from "zod"
5
5
 
@@ -1,4 +1,4 @@
1
- import { Worktree } from "@/worktree"
1
+ import { Worktree } from "../../worktree"
2
2
  import type { Config } from "../config"
3
3
  import type { Adaptor } from "./types"
4
4
 
@@ -1,4 +1,4 @@
1
- import { Instance } from "@/project/instance"
1
+ import { Instance } from "../project/instance"
2
2
  import type { MiddlewareHandler } from "hono"
3
3
  import { Installation } from "../installation"
4
4
  import { getAdaptor } from "./adaptors"
@@ -1,5 +1,5 @@
1
1
  import { sqliteTable, text } from "drizzle-orm/sqlite-core"
2
- import { ProjectTable } from "@/project/project.sql"
2
+ import { ProjectTable } from "../project/project.sql"
3
3
  import type { Config } from "./config"
4
4
 
5
5
  export const WorkspaceTable = sqliteTable("workspace", {
@@ -1,11 +1,11 @@
1
1
  import z from "zod"
2
- import { Identifier } from "@/id/id"
3
- import { fn } from "@/util/fn"
4
- import { Database, eq } from "@/storage/db"
5
- import { Project } from "@/project/project"
6
- import { BusEvent } from "@/bus/bus-event"
7
- import { GlobalBus } from "@/bus/global"
8
- import { Log } from "@/util/log"
2
+ import { Identifier } from "../id/id"
3
+ import { fn } from "../util/fn"
4
+ import { Database, eq } from "../storage/db"
5
+ import { Project } from "../project/project"
6
+ import { BusEvent } from "../bus/bus-event"
7
+ import { GlobalBus } from "../bus/global"
8
+ import { Log } from "../util/log"
9
9
  import { WorkspaceTable } from "./workspace.sql"
10
10
  import { Config } from "./config"
11
11
  import { getAdaptor } from "./adaptors"
package/src/file/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BusEvent } from "@/bus/bus-event"
1
+ import { BusEvent } from "../bus/bus-event"
2
2
  import z from "zod"
3
3
  import { $ } from "bun"
4
4
  import { formatPatch, structuredPatch } from "diff"
@@ -3,7 +3,7 @@ import path from "path"
3
3
  import { Global } from "../global"
4
4
  import fs from "fs/promises"
5
5
  import z from "zod"
6
- import { NamedError } from "@opencode-ai/util/error"
6
+ import { NamedError } from "../util/error"
7
7
  import { lazy } from "../util/lazy"
8
8
  import { $ } from "bun"
9
9
  import { Filesystem } from "../util/filesystem"
@@ -11,7 +11,7 @@ import { Process } from "../util/process"
11
11
  import { text } from "node:stream/consumers"
12
12
 
13
13
  import { ZipReader, BlobReader, BlobWriter } from "@zip.js/zip.js"
14
- import { Log } from "@/util/log"
14
+ import { Log } from "../util/log"
15
15
 
16
16
  export namespace Ripgrep {
17
17
  const log = Log.create({ service: "ripgrep" })
@@ -1,5 +1,5 @@
1
- import { BusEvent } from "@/bus/bus-event"
2
- import { Bus } from "@/bus"
1
+ import { BusEvent } from "../bus/bus-event"
2
+ import { Bus } from "../bus"
3
3
  import z from "zod"
4
4
  import { Instance } from "../project/instance"
5
5
  import { Log } from "../util/log"
@@ -8,11 +8,11 @@ import { Config } from "../config/config"
8
8
  import path from "path"
9
9
  // @ts-ignore
10
10
  import { createWrapper } from "@parcel/watcher/wrapper"
11
- import { lazy } from "@/util/lazy"
12
- import { withTimeout } from "@/util/timeout"
11
+ import { lazy } from "../util/lazy"
12
+ import { withTimeout } from "../util/timeout"
13
13
  import type ParcelWatcher from "@parcel/watcher"
14
14
  import { $ } from "bun"
15
- import { Flag } from "@/flag/flag"
15
+ import { Flag } from "../flag/flag"
16
16
  import { readdir } from "fs/promises"
17
17
 
18
18
  const SUBSCRIBE_TIMEOUT_MS = 10_000
@@ -3,7 +3,7 @@ import { BunProc } from "../bun"
3
3
  import { Instance } from "../project/instance"
4
4
  import { Filesystem } from "../util/filesystem"
5
5
  import { Process } from "../util/process"
6
- import { Flag } from "@/flag/flag"
6
+ import { Flag } from "../flag/flag"
7
7
 
8
8
  export interface Info {
9
9
  name: string
package/src/ide/index.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { BusEvent } from "@/bus/bus-event"
2
- import { Bus } from "@/bus"
1
+ import { BusEvent } from "../bus/bus-event"
2
+ import { Bus } from "../bus"
3
3
  import { spawn } from "bun"
4
4
  import z from "zod"
5
- import { NamedError } from "@opencode-ai/util/error"
5
+ import { NamedError } from "../util/error"
6
6
  import { Log } from "../util/log"
7
7
 
8
8
  const SUPPORTED_IDES = [
package/src/index.ts CHANGED
@@ -10,7 +10,7 @@ import { UninstallCommand } from "./cli/cmd/uninstall"
10
10
  import { ModelsCommand } from "./cli/cmd/models"
11
11
  import { UI } from "./cli/ui"
12
12
  import { Installation } from "./installation"
13
- import { NamedError } from "@opencode-ai/util/error"
13
+ import { NamedError } from "./util/error"
14
14
  import { FormatError } from "./cli/error"
15
15
  import { ServeCommand } from "./cli/cmd/serve"
16
16
  import { WorkspaceServeCommand } from "./cli/cmd/workspace-serve"
@@ -1,10 +1,10 @@
1
- import { BusEvent } from "@/bus/bus-event"
1
+ import { BusEvent } from "../bus/bus-event"
2
2
  import path from "path"
3
3
  import { $ } from "bun"
4
4
  import z from "zod"
5
- import { NamedError } from "@opencode-ai/util/error"
5
+ import { NamedError } from "../util/error"
6
6
  import { Log } from "../util/log"
7
- import { iife } from "@/util/iife"
7
+ import { iife } from "../util/iife"
8
8
  import { Flag } from "../flag/flag"
9
9
 
10
10
  declare global {
package/src/lsp/client.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { BusEvent } from "@/bus/bus-event"
2
- import { Bus } from "@/bus"
1
+ import { BusEvent } from "../bus/bus-event"
2
+ import { Bus } from "../bus"
3
3
  import path from "path"
4
4
  import { pathToFileURL, fileURLToPath } from "url"
5
5
  import { createMessageConnection, StreamMessageReader, StreamMessageWriter } from "vscode-jsonrpc/node"
@@ -8,7 +8,7 @@ import { Log } from "../util/log"
8
8
  import { LANGUAGE_EXTENSIONS } from "./language"
9
9
  import z from "zod"
10
10
  import type { LSPServer } from "./server"
11
- import { NamedError } from "@opencode-ai/util/error"
11
+ import { NamedError } from "../util/error"
12
12
  import { withTimeout } from "../util/timeout"
13
13
  import { Instance } from "../project/instance"
14
14
  import { Filesystem } from "../util/filesystem"
package/src/lsp/index.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { BusEvent } from "@/bus/bus-event"
2
- import { Bus } from "@/bus"
1
+ import { BusEvent } from "../bus/bus-event"
2
+ import { Bus } from "../bus"
3
3
  import { Log } from "../util/log"
4
4
  import { LSPClient } from "./client"
5
5
  import path from "path"
@@ -9,7 +9,7 @@ import z from "zod"
9
9
  import { Config } from "../config/config"
10
10
  import { spawn } from "child_process"
11
11
  import { Instance } from "../project/instance"
12
- import { Flag } from "@/flag/flag"
12
+ import { Flag } from "../flag/flag"
13
13
 
14
14
  export namespace LSP {
15
15
  const log = Log.create({ service: "lsp" })