@stonerzju/opencode 1.2.17 → 1.2.19

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
package/src/mcp/index.ts CHANGED
@@ -11,17 +11,17 @@ import {
11
11
  } from "@modelcontextprotocol/sdk/types.js"
12
12
  import { Config } from "../config/config"
13
13
  import { Log } from "../util/log"
14
- import { NamedError } from "@opencode-ai/util/error"
14
+ import { NamedError } from "../util/error"
15
15
  import z from "zod/v4"
16
16
  import { Instance } from "../project/instance"
17
17
  import { Installation } from "../installation"
18
- import { withTimeout } from "@/util/timeout"
18
+ import { withTimeout } from "../util/timeout"
19
19
  import { McpOAuthProvider } from "./oauth-provider"
20
20
  import { McpOAuthCallback } from "./oauth-callback"
21
21
  import { McpAuth } from "./auth"
22
22
  import { BusEvent } from "../bus/bus-event"
23
- import { Bus } from "@/bus"
24
- import { TuiEvent } from "@/cli/cmd/tui/event"
23
+ import { Bus } from "../bus"
24
+ import { TuiEvent } from "../cli/cmd/tui/event"
25
25
  import open from "open"
26
26
 
27
27
  export namespace MCP {
@@ -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 { Log } from "../util/log"
5
5
  import { Identifier } from "../id/id"
@@ -1,13 +1,13 @@
1
- import { Bus } from "@/bus"
2
- import { BusEvent } from "@/bus/bus-event"
3
- import { Config } from "@/config/config"
4
- import { Identifier } from "@/id/id"
5
- import { Instance } from "@/project/instance"
6
- import { Database, eq } from "@/storage/db"
7
- import { PermissionTable } from "@/session/session.sql"
8
- import { fn } from "@/util/fn"
9
- import { Log } from "@/util/log"
10
- import { Wildcard } from "@/util/wildcard"
1
+ import { Bus } from "../bus"
2
+ import { BusEvent } from "../bus/bus-event"
3
+ import { Config } from "../config/config"
4
+ import { Identifier } from "../id/id"
5
+ import { Instance } from "../project/instance"
6
+ import { Database, eq } from "../storage/db"
7
+ import { PermissionTable } from "../session/session.sql"
8
+ import { fn } from "../util/fn"
9
+ import { Log } from "../util/log"
10
+ import { Wildcard } from "../util/wildcard"
11
11
  import os from "os"
12
12
  import z from "zod"
13
13
 
@@ -3,7 +3,7 @@ import { Log } from "../util/log"
3
3
  import { Installation } from "../installation"
4
4
  import { Auth, OAUTH_DUMMY_KEY } from "../auth"
5
5
  import os from "os"
6
- import { ProviderTransform } from "@/provider/transform"
6
+ import { ProviderTransform } from "../provider/transform"
7
7
 
8
8
  const log = Log.create({ service: "plugin.codex" })
9
9
 
@@ -1,6 +1,6 @@
1
1
  import type { Hooks, PluginInput } from "@opencode-ai/plugin"
2
- import { Installation } from "@/installation"
3
- import { iife } from "@/util/iife"
2
+ import { Installation } from "../installation"
3
+ import { iife } from "../util/iife"
4
4
 
5
5
  const CLIENT_ID = "Ov23li8tweQw6odWQebz"
6
6
  // Add a small safety buffer when polling to avoid hitting the server
@@ -9,7 +9,7 @@ import { Instance } from "../project/instance"
9
9
  import { Flag } from "../flag/flag"
10
10
  import { CodexAuthPlugin } from "./codex"
11
11
  import { Session } from "../session"
12
- import { NamedError } from "@opencode-ai/util/error"
12
+ import { NamedError } from "../util/error"
13
13
  import { CopilotAuthPlugin } from "./copilot"
14
14
  import { gitlabAuthPlugin as GitlabAuthPlugin } from "@gitlab/opencode-gitlab-auth"
15
15
 
@@ -8,8 +8,8 @@ import { Bus } from "../bus"
8
8
  import { Command } from "../command"
9
9
  import { Instance } from "./instance"
10
10
  import { Vcs } from "./vcs"
11
- import { Log } from "@/util/log"
12
- import { ShareNext } from "@/share/share-next"
11
+ import { Log } from "../util/log"
12
+ import { ShareNext } from "../share/share-next"
13
13
  import { Snapshot } from "../snapshot"
14
14
  import { Truncate } from "../tool/truncation"
15
15
 
@@ -1,10 +1,10 @@
1
- import { Log } from "@/util/log"
1
+ import { Log } from "../util/log"
2
2
  import { Context } from "../util/context"
3
3
  import { Project } from "./project"
4
4
  import { State } from "./state"
5
- import { iife } from "@/util/iife"
6
- import { GlobalBus } from "@/bus/global"
7
- import { Filesystem } from "@/util/filesystem"
5
+ import { iife } from "../util/iife"
6
+ import { GlobalBus } from "../bus/global"
7
+ import { Filesystem } from "../util/filesystem"
8
8
 
9
9
  interface Context {
10
10
  directory: string
@@ -1,5 +1,5 @@
1
1
  import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core"
2
- import { Timestamps } from "@/storage/schema.sql"
2
+ import { Timestamps } from "../storage/schema.sql"
3
3
 
4
4
  export const ProjectTable = sqliteTable("project", {
5
5
  id: text().primaryKey(),
@@ -5,12 +5,12 @@ import { Database, eq } from "../storage/db"
5
5
  import { ProjectTable } from "./project.sql"
6
6
  import { SessionTable } from "../session/session.sql"
7
7
  import { Log } from "../util/log"
8
- import { Flag } from "@/flag/flag"
8
+ import { Flag } from "../flag/flag"
9
9
  import { work } from "../util/queue"
10
- import { fn } from "@opencode-ai/util/fn"
11
- import { BusEvent } from "@/bus/bus-event"
12
- import { iife } from "@/util/iife"
13
- import { GlobalBus } from "@/bus/global"
10
+ import { fn } from "../util/fn"
11
+ import { BusEvent } from "../bus/bus-event"
12
+ import { iife } from "../util/iife"
13
+ import { GlobalBus } from "../bus/global"
14
14
  import { existsSync } from "fs"
15
15
  import { git } from "../util/git"
16
16
  import { Glob } from "../util/glob"
@@ -1,4 +1,4 @@
1
- import { Log } from "@/util/log"
1
+ import { Log } from "../util/log"
2
2
 
3
3
  export namespace State {
4
4
  interface Entry {
@@ -1,11 +1,11 @@
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 { $ } from "bun"
4
4
  import path from "path"
5
5
  import z from "zod"
6
- import { Log } from "@/util/log"
6
+ import { Log } from "../util/log"
7
7
  import { Instance } from "./instance"
8
- import { FileWatcher } from "@/file/watcher"
8
+ import { FileWatcher } from "../file/watcher"
9
9
 
10
10
  const log = Log.create({ service: "vcs" })
11
11
 
@@ -1,11 +1,11 @@
1
- import { Instance } from "@/project/instance"
1
+ import { Instance } from "../project/instance"
2
2
  import { Plugin } from "../plugin"
3
3
  import { map, filter, pipe, fromEntries, mapValues } from "remeda"
4
4
  import z from "zod"
5
- import { fn } from "@/util/fn"
5
+ import { fn } from "../util/fn"
6
6
  import type { AuthOuathResult, Hooks } from "@opencode-ai/plugin"
7
- import { NamedError } from "@opencode-ai/util/error"
8
- import { Auth } from "@/auth"
7
+ import { NamedError } from "../util/error"
8
+ import { Auth } from "../auth"
9
9
 
10
10
  export namespace ProviderAuth {
11
11
  const state = Instance.state(async () => {
@@ -1,6 +1,6 @@
1
1
  import { APICallError } from "ai"
2
2
  import { STATUS_CODES } from "http"
3
- import { iife } from "@/util/iife"
3
+ import { iife } from "../util/iife"
4
4
 
5
5
  export namespace ProviderError {
6
6
  // Adapted from overflow detection patterns in: