Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
2be3d8b
fix: reconnect
davidprokopec Mar 25, 2026
b56f285
chore: update
davidprokopec Mar 25, 2026
04ddd9c
feat: add reconnecting message
davidprokopec Mar 25, 2026
6ef0bac
fix: debounce reconnect status
davidprokopec Mar 25, 2026
6c41971
fix: delete failed tool calls on reconnect
davidprokopec Mar 25, 2026
2986f27
fix: test
davidprokopec Mar 25, 2026
2cda629
test(prompt): align shell placeholder expectation (#24147)
simonklee Apr 24, 2026
a882e95
fix: deepseek variants (#24157)
rekram1-node Apr 24, 2026
923af96
fix: preserve empty reasoning_content for DeepSeek V4 thinking mode (…
heimoshuiyu Apr 24, 2026
f8e939d
fix: support `max` for deepseek (#24163)
rekram1-node Apr 24, 2026
9f7ecd6
feat(httpapi): bridge file read endpoints (#24098)
kitlangton Apr 24, 2026
a8c8d2d
sync release versions for v1.14.23
Apr 24, 2026
011c237
feat(httpapi): bridge mcp status endpoint (#24100)
kitlangton Apr 24, 2026
d89bfc3
chore: generate
opencode-agent[bot] Apr 24, 2026
3062d3e
fix: use existingModel as fallback for interleaved field (#24172)
07akioni Apr 24, 2026
86715fe
fix: ensure assistant messages always have reasoning on them for deep…
rekram1-node Apr 24, 2026
3a5507d
Use OpenTUI theme detection for initial TUI mode, again (#23846)
kommander Apr 24, 2026
66936b0
chore: update nix node_modules hashes
opencode-agent[bot] Apr 24, 2026
28f7d31
zen: deepseek v4 pro
fwang Apr 24, 2026
1220f78
chore: generate
opencode-agent[bot] Apr 24, 2026
28025a0
sync release versions for v1.14.24
Apr 24, 2026
d01ad4c
zen: gpt-5.5
fwang Apr 24, 2026
3776d85
zen: gpt-5.5
fwang Apr 24, 2026
4dab2a8
zen: gpt-5.5
fwang Apr 24, 2026
0405bc7
zen: gpt-5.5
fwang Apr 24, 2026
435becb
Refactor HttpApi auth middleware wiring (#24168)
kitlangton Apr 24, 2026
cf45a8d
refactor(schema): decode effect schemas directly (#24169)
kitlangton Apr 24, 2026
7a02eee
chore: generate
opencode-agent[bot] Apr 24, 2026
361d700
Clarify HttpApi migration plan (#24211)
kitlangton Apr 24, 2026
872cdff
ignore: denounce ai spammer
rekram1-node Apr 24, 2026
c4e33d3
chore: generate
opencode-agent[bot] Apr 24, 2026
4a67905
fix: ensure gpt-5.5 compacts at correct context size when using opena…
rekram1-node Apr 24, 2026
bb3509b
fix(opencode): clarify git amend condition to require verifying commi…
altendky Apr 24, 2026
5a04de2
refactor(ripgrep): migrate result schemas to effect (#24213)
kitlangton Apr 24, 2026
97eb9fd
test(httpapi): cover hono bridge middleware (#24216)
kitlangton Apr 24, 2026
5cd178b
chore: generate
opencode-agent[bot] Apr 24, 2026
1e4b7b5
Add Roslyn support for Razor and C# scripts (#24228)
Hona Apr 25, 2026
386091b
fix: validate beta before pushing (#24230)
Hona Apr 25, 2026
ec20162
chore: generate
opencode-agent[bot] Apr 25, 2026
cdc7d5f
chore: group beta PR logs (#24236)
Hona Apr 25, 2026
4989433
fix(build): add prettier to devDependencies (#23255)
b0o Apr 25, 2026
e29058c
chore: update nix node_modules hashes
opencode-agent[bot] Apr 25, 2026
f7d527c
ci: adjust auto close issue script to use not planned instead of comp…
rekram1-node Apr 25, 2026
4877ecc
Fix shell cwd after login startup (#24215)
kitlangton Apr 25, 2026
9ff999c
tool/lsp: include request details in permission metadata (#24139)
simonklee Apr 25, 2026
66f9303
fix permission config order (#24222)
thdxr Apr 25, 2026
fc88ed1
chore: generate
opencode-agent[bot] Apr 25, 2026
d748c71
ci: centralize opentui dependencies in workspace catalog
thdxr Apr 25, 2026
1b92c95
core: permission config schema now provides full IntelliSense for all…
thdxr Apr 25, 2026
bad732c
sync release versions for v1.14.25
Apr 25, 2026
d5bfaef
feat(httpapi): bridge instance read endpoints (#24258)
kitlangton Apr 25, 2026
5b0e828
chore: generate
opencode-agent[bot] Apr 25, 2026
37aa844
refactor: remove lazy cross-spawn runtime (#24305)
thdxr Apr 25, 2026
62ef2a2
refactor: rename shared package to core (#24309)
thdxr Apr 25, 2026
1d728fc
feat: add startup debug command (#24310)
thdxr Apr 25, 2026
62651c7
chore: update nix node_modules hashes
opencode-agent[bot] Apr 25, 2026
a9740b9
fix(config): preserve permission order with Effect decode (#24308)
kitlangton Apr 25, 2026
1a734ad
core: consolidate shared infrastructure into core package
thdxr Apr 25, 2026
27353df
chore: generate
opencode-agent[bot] Apr 25, 2026
fc8dae2
chore: update nix node_modules hashes
opencode-agent[bot] Apr 25, 2026
716cf74
ci: adjust review flow (#24355)
rekram1-node Apr 25, 2026
705f792
core: move Global module to @opencode-ai/core for centralized path ma…
thdxr Apr 25, 2026
eb02199
feat(httpapi): bridge catalog read endpoints (#24353)
kitlangton Apr 25, 2026
3bc0c36
chore: generate
opencode-agent[bot] Apr 25, 2026
625aca4
feat(tui): read Zed editor context from state db (#24352)
kitlangton Apr 25, 2026
05661c6
feat(httpapi): bridge file search endpoints (#24356)
kitlangton Apr 25, 2026
f91b73b
ci: fix model name
rekram1-node Apr 25, 2026
ff4b60e
chore: generate
opencode-agent[bot] Apr 25, 2026
3eee2f6
core: move cross-spawn-spawner from opencode to core package
thdxr Apr 25, 2026
1e98167
core: move cross-spawn-spawner to root and remove unused types
thdxr Apr 25, 2026
f5dce6d
core: move npm service to core package for shared dependency management
thdxr Apr 25, 2026
95d4bb2
feat(httpapi): bridge experimental read endpoints (#24365)
kitlangton Apr 25, 2026
3b74077
chore: generate
opencode-agent[bot] Apr 25, 2026
60fa708
chore: update nix node_modules hashes
opencode-agent[bot] Apr 25, 2026
b749866
feat(httpapi): bridge worktree read endpoint (#24366)
kitlangton Apr 25, 2026
9af46df
chore: generate
opencode-agent[bot] Apr 25, 2026
cd64b67
feat(tui): show /connect tip when user has no models configured (#24014)
kitlangton Apr 25, 2026
b4f4134
feat(httpapi): bridge instance dispose endpoint (#24368)
kitlangton Apr 25, 2026
474024f
chore: generate
opencode-agent[bot] Apr 25, 2026
a369130
feat(httpapi): bridge worktree mutations (#24371)
kitlangton Apr 25, 2026
75a22f8
chore: generate
opencode-agent[bot] Apr 25, 2026
df9e1d9
feat(httpapi): bridge config update endpoint (#24387)
kitlangton Apr 25, 2026
2e473d0
Merge PR #19116: fix(opencode): reconnect on network disruptions
Apr 25, 2026
8b242da
feat(tui): add unified task state color convention with icons
Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/VOUCHED.td
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,4 @@ simonklee
-spider-yamet clawdbot/llm psychosis, spam pinging the team
thdxr
-toastythebot
-davidbernat looks to be a clawdbot that spams team and sends super weird emails, doesnt appear to be a real person
4 changes: 2 additions & 2 deletions .github/workflows/review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ jobs:

- name: Check PR guidelines compliance
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: '{ "bash": { "*": "deny", "gh*": "allow", "gh pr review*": "deny" } }'
PR_TITLE: ${{ steps.pr-details.outputs.title }}
run: |
PR_BODY=$(jq -r .body pr_data.json)
opencode run -m anthropic/claude-opus-4-5 "A new pull request has been created: '${PR_TITLE}'
opencode run -m opencode/gpt-5.5 --variant medium "A new pull request has been created: '${PR_TITLE}'

<pr-number>
${{ steps.pr-number.outputs.number }}
Expand Down
141 changes: 75 additions & 66 deletions bun.lock

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions nix/hashes.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"nodeModules": {
"x86_64-linux": "sha256-AgHhYsiygxbsBo3JN4HqHXKAwh8n1qeuSCe2qqxlxW4=",
"aarch64-linux": "sha256-h2lpWRQ5EDYnjpqZXtUAp1mxKLQxJ4m8MspgSY8Ev78=",
"aarch64-darwin": "sha256-xnd91+WyeAqn06run2ajsekxJvTMiLsnqNPe/rR8VTM=",
"x86_64-darwin": "sha256-rXpz45IOjGEk73xhP9VY86eOj2CZBg2l1vzwzTIOOOQ="
"x86_64-linux": "sha256-LpzWEZzURUEj7fcHGvh33gM7D9GNPE+XIvU0/hmdcQM=",
"aarch64-linux": "sha256-0zdO3zuj6g9cMZFEOsvQJcKKcPjGVZJ2DkJdDcb2VCM=",
"aarch64-darwin": "sha256-dmT8R9Pmzh5tjO8NCCCtENiQpJQeifQpVdhaty1MXOs=",
"x86_64-darwin": "sha256-Q6rAQRoC6WaMAQl++YHAZmbNuO303cWgGaYzXaRlzy4="
}
}
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
"@types/cross-spawn": "6.0.6",
"@octokit/rest": "22.0.0",
"@hono/zod-validator": "0.4.2",
"@opentui/core": "0.1.99",
"@opentui/solid": "0.1.99",
"@opentui/core": "0.1.103",
"@opentui/solid": "0.1.103",
"ulid": "3.0.1",
"@kobalte/core": "0.13.11",
"@types/luxon": "3.7.1",
Expand All @@ -46,6 +46,7 @@
"@cloudflare/workers-types": "4.20251008.0",
"@openauthjs/openauth": "0.0.0-20250322224806",
"@pierre/diffs": "1.1.0-beta.18",
"opentui-spinner": "0.0.6",
"@solid-primitives/storage": "4.3.3",
"@tailwindcss/vite": "4.1.11",
"diff": "8.0.2",
Expand Down
4 changes: 2 additions & 2 deletions packages/app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/app",
"version": "1.14.22",
"version": "1.14.25",
"description": "",
"type": "module",
"exports": {
Expand Down Expand Up @@ -42,7 +42,7 @@
"@kobalte/core": "catalog:",
"@opencode-ai/sdk": "workspace:*",
"@opencode-ai/ui": "workspace:*",
"@opencode-ai/shared": "workspace:*",
"@opencode-ai/core": "workspace:*",
"@shikijs/transformers": "3.9.2",
"@solid-primitives/active-element": "2.1.3",
"@solid-primitives/audio": "1.4.2",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/dialog-edit-project.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { createStore } from "solid-js/store"
import { useGlobalSDK } from "@/context/global-sdk"
import { useGlobalSync } from "@/context/global-sync"
import { type LocalProject, getAvatarColors } from "@/context/layout"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { Avatar } from "@opencode-ai/ui/avatar"
import { useLanguage } from "@/context/language"
import { getProjectAvatarSource } from "@/pages/layout/sidebar-items"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/dialog-fork.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { List } from "@opencode-ai/ui/list"
import { showToast } from "@opencode-ai/ui/toast"
import { extractPromptFromParts } from "@/utils/prompt"
import type { TextPart as SDKTextPart } from "@opencode-ai/sdk/v2/client"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { useLanguage } from "@/context/language"

interface ForkableMessage {
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/dialog-select-directory.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Dialog } from "@opencode-ai/ui/dialog"
import { FileIcon } from "@opencode-ai/ui/file-icon"
import { List } from "@opencode-ai/ui/list"
import type { ListRef } from "@opencode-ai/ui/list"
import { getDirectory, getFilename } from "@opencode-ai/shared/util/path"
import { getDirectory, getFilename } from "@opencode-ai/core/util/path"
import fuzzysort from "fuzzysort"
import { createMemo, createResource, createSignal } from "solid-js"
import { useGlobalSDK } from "@/context/global-sdk"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/components/dialog-select-file.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import { FileIcon } from "@opencode-ai/ui/file-icon"
import { Icon } from "@opencode-ai/ui/icon"
import { Keybind } from "@opencode-ai/ui/keybind"
import { List } from "@opencode-ai/ui/list"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { getDirectory, getFilename } from "@opencode-ai/shared/util/path"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { getDirectory, getFilename } from "@opencode-ai/core/util/path"
import { useNavigate } from "@solidjs/router"
import { createMemo, createSignal, Match, onCleanup, Show, Switch } from "solid-js"
import { formatKeybind, useCommand, type CommandOption } from "@/context/command"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { type AgentPartInput, type FilePartInput, type Part, type TextPartInput } from "@opencode-ai/sdk/v2/client"
import type { FileSelection } from "@/context/file"
import { encodeFilePath } from "@/context/file/path"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/prompt-input/context-items.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Component, For, Show } from "solid-js"
import { FileIcon } from "@opencode-ai/ui/file-icon"
import { IconButton } from "@opencode-ai/ui/icon-button"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { getDirectory, getFilename, getFilenameTruncated } from "@opencode-ai/shared/util/path"
import { getDirectory, getFilename, getFilenameTruncated } from "@opencode-ai/core/util/path"
import type { ContextItem } from "@/context/prompt"

type PromptContextItem = ContextItem & { key: string }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ describe("promptPlaceholder", () => {
suggest: true,
t,
})
expect(value).toBe("prompt.placeholder.shell")
expect(value).toBe("prompt.placeholder.shell:example")
})

test("returns summarize placeholders for comment context", () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/prompt-input/slash-popover.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Component, For, Match, Show, Switch } from "solid-js"
import { FileIcon } from "@opencode-ai/ui/file-icon"
import { Icon } from "@opencode-ai/ui/icon"
import { getDirectory, getFilename } from "@opencode-ai/shared/util/path"
import { getDirectory, getFilename } from "@opencode-ai/core/util/path"

export type AtOption =
| { type: "agent"; name: string; display: string }
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/prompt-input/submit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ beforeAll(async () => {
showToast: () => 0,
}))

mock.module("@opencode-ai/shared/util/encode", () => ({
mock.module("@opencode-ai/core/util/encode", () => ({
base64Encode: (value: string) => value,
}))

Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/components/prompt-input/submit.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Message, Session } from "@opencode-ai/sdk/v2/client"
import { showToast } from "@opencode-ai/ui/toast"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { Binary } from "@opencode-ai/shared/util/binary"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { Binary } from "@opencode-ai/core/util/binary"
import { useNavigate, useParams } from "@solidjs/router"
import { batch, type Accessor } from "solid-js"
import type { FileSelection } from "@/context/file"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/components/session/session-context-tab.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { createMemo, createEffect, on, onCleanup, For, Show } from "solid-js"
import type { JSX } from "solid-js"
import { useSync } from "@/context/sync"
import { checksum } from "@opencode-ai/shared/util/encode"
import { findLast } from "@opencode-ai/shared/util/array"
import { checksum } from "@opencode-ai/core/util/encode"
import { findLast } from "@opencode-ai/core/util/array"
import { same } from "@/utils/same"
import { Icon } from "@opencode-ai/ui/icon"
import { Accordion } from "@opencode-ai/ui/accordion"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/session/session-header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Keybind } from "@opencode-ai/ui/keybind"
import { Spinner } from "@opencode-ai/ui/spinner"
import { showToast } from "@opencode-ai/ui/toast"
import { Tooltip, TooltipKeybind } from "@opencode-ai/ui/tooltip"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { createEffect, createMemo, createSignal, For, onMount, Show } from "solid-js"
import { createStore } from "solid-js/store"
import { Portal } from "solid-js/web"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/components/session/session-new-view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { useSDK } from "@/context/sdk"
import { useLanguage } from "@/context/language"
import { Icon } from "@opencode-ai/ui/icon"
import { Mark } from "@opencode-ai/ui/logo"
import { getDirectory, getFilename } from "@opencode-ai/shared/util/path"
import { getDirectory, getFilename } from "@opencode-ai/core/util/path"

const MAIN_WORKTREE = "main"
const CREATE_WORKTREE = "create"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { FileIcon } from "@opencode-ai/ui/file-icon"
import { IconButton } from "@opencode-ai/ui/icon-button"
import { TooltipKeybind } from "@opencode-ai/ui/tooltip"
import { Tabs } from "@opencode-ai/ui/tabs"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { useFile } from "@/context/file"
import { useLanguage } from "@/context/language"
import { useCommand } from "@/context/command"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/file.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { createStore, produce, reconcile } from "solid-js/store"
import { createSimpleContext } from "@opencode-ai/ui/context"
import { showToast } from "@opencode-ai/ui/toast"
import { useParams } from "@solidjs/router"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { useSDK } from "./sdk"
import { useSync } from "./sync"
import { useLanguage } from "@/context/language"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/global-sync.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import type {
Todo,
} from "@opencode-ai/sdk/v2/client"
import { showToast } from "@opencode-ai/ui/toast"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { batch, createContext, getOwner, onCleanup, onMount, type ParentProps, untrack, useContext } from "solid-js"
import { createStore, produce, reconcile } from "solid-js/store"
import { useLanguage } from "@/context/language"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/context/global-sync/bootstrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import type {
Todo,
} from "@opencode-ai/sdk/v2/client"
import { showToast } from "@opencode-ai/ui/toast"
import { getFilename } from "@opencode-ai/shared/util/path"
import { retry } from "@opencode-ai/shared/util/retry"
import { getFilename } from "@opencode-ai/core/util/path"
import { retry } from "@opencode-ai/core/util/retry"
import { batch } from "solid-js"
import { reconcile, type SetStoreFunction, type Store } from "solid-js/store"
import type { State, VcsCache } from "./types"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/global-sync/event-reducer.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Binary } from "@opencode-ai/shared/util/binary"
import { Binary } from "@opencode-ai/core/util/binary"
import { produce, reconcile, type SetStoreFunction, type Store } from "solid-js/store"
import type {
Message,
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/local.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { createSimpleContext } from "@opencode-ai/ui/context"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { useParams } from "@solidjs/router"
import { batch, createEffect, createMemo } from "solid-js"
import { createStore } from "solid-js/store"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/context/notification.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import { useGlobalSync } from "./global-sync"
import { usePlatform } from "@/context/platform"
import { useLanguage } from "@/context/language"
import { useSettings } from "@/context/settings"
import { Binary } from "@opencode-ai/shared/util/binary"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { Binary } from "@opencode-ai/core/util/binary"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { decode64 } from "@/utils/base64"
import { EventSessionError } from "@opencode-ai/sdk/v2"
import { Persist, persisted } from "@/utils/persist"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/permission-auto-respond.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, expect, test } from "bun:test"
import type { PermissionRequest, Session } from "@opencode-ai/sdk/v2/client"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { autoRespondsPermission, isDirectoryAutoAccepting } from "./permission-auto-respond"

const session = (input: { id: string; parentID?: string }) =>
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/permission-auto-respond.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"

export function acceptKey(sessionID: string, directory?: string) {
if (!directory) return sessionID
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/context/prompt.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { createSimpleContext } from "@opencode-ai/ui/context"
import { checksum } from "@opencode-ai/shared/util/encode"
import { checksum } from "@opencode-ai/core/util/encode"
import { useParams } from "@solidjs/router"
import { batch, createMemo, createRoot, getOwner, onCleanup } from "solid-js"
import { createStore, type SetStoreFunction } from "solid-js/store"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/context/sync.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { batch, createMemo } from "solid-js"
import { createStore, produce, reconcile } from "solid-js/store"
import { Binary } from "@opencode-ai/shared/util/binary"
import { retry } from "@opencode-ai/shared/util/retry"
import { Binary } from "@opencode-ai/core/util/binary"
import { retry } from "@opencode-ai/core/util/retry"
import { createSimpleContext } from "@opencode-ai/ui/context"
import {
clearSessionPrefetch,
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/directory-layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { DataProvider } from "@opencode-ai/ui/context"
import { showToast } from "@opencode-ai/ui/toast"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { useLocation, useNavigate, useParams } from "@solidjs/router"
import { createEffect, createMemo, createResource, type ParentProps, Show } from "solid-js"
import { useLanguage } from "@/context/language"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/home.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Button } from "@opencode-ai/ui/button"
import { Logo } from "@opencode-ai/ui/logo"
import { useLayout } from "@/context/layout"
import { useNavigate } from "@solidjs/router"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { Icon } from "@opencode-ai/ui/icon"
import { usePlatform } from "@/context/platform"
import { DateTime } from "luxon"
Expand Down
8 changes: 4 additions & 4 deletions packages/app/src/pages/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ import { useLocation, useNavigate, useParams } from "@solidjs/router"
import { useLayout, LocalProject } from "@/context/layout"
import { useGlobalSync } from "@/context/global-sync"
import { Persist, persisted } from "@/utils/persist"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { decode64 } from "@/utils/base64"
import { ResizeHandle } from "@opencode-ai/ui/resize-handle"
import { Button } from "@opencode-ai/ui/button"
import { IconButton } from "@opencode-ai/ui/icon-button"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
import { Dialog } from "@opencode-ai/ui/dialog"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { Session, type Message } from "@opencode-ai/sdk/v2/client"
import { usePlatform } from "@/context/platform"
import { useSettings } from "@/context/settings"
Expand All @@ -48,8 +48,8 @@ import {
} from "@/context/global-sync/session-prefetch"
import { useNotification } from "@/context/notification"
import { usePermission } from "@/context/permission"
import { Binary } from "@opencode-ai/shared/util/binary"
import { retry } from "@opencode-ai/shared/util/retry"
import { Binary } from "@opencode-ai/core/util/binary"
import { retry } from "@opencode-ai/core/util/retry"
import { playSoundById } from "@/utils/sound"
import { createAim } from "@/utils/aim"
import { setNavigate } from "@/utils/notification-click"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/layout/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { type Session } from "@opencode-ai/sdk/v2/client"

type SessionStore = {
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/layout/sidebar-items.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Icon } from "@opencode-ai/ui/icon"
import { IconButton } from "@opencode-ai/ui/icon-button"
import { Spinner } from "@opencode-ai/ui/spinner"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { getFilename } from "@opencode-ai/shared/util/path"
import { getFilename } from "@opencode-ai/core/util/path"
import { A, useParams } from "@solidjs/router"
import { type Accessor, createMemo, For, type JSX, Match, Show, Switch } from "solid-js"
import { useGlobalSync } from "@/context/global-sync"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/layout/sidebar-project.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createMemo, For, Show, type Accessor, type JSX } from "solid-js"
import { createStore } from "solid-js/store"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { Button } from "@opencode-ai/ui/button"
import { ContextMenu } from "@opencode-ai/ui/context-menu"
import { HoverCard } from "@opencode-ai/ui/hover-card"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/pages/layout/sidebar-workspace.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { createEffect, createMemo, For, Show, type Accessor, type JSX } from "so
import { createStore } from "solid-js/store"
import { createSortable } from "@thisbeyond/solid-dnd"
import { createMediaQuery } from "@solid-primitives/media"
import { base64Encode } from "@opencode-ai/shared/util/encode"
import { getFilename } from "@opencode-ai/shared/util/path"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { getFilename } from "@opencode-ai/core/util/path"
import { Button } from "@opencode-ai/ui/button"
import { Collapsible } from "@opencode-ai/ui/collapsible"
import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/session.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import { createAutoScroll } from "@opencode-ai/ui/hooks"
import { previewSelectedLines } from "@opencode-ai/ui/pierre/selection-bridge"
import { Button } from "@opencode-ai/ui/button"
import { showToast } from "@opencode-ai/ui/toast"
import { checksum } from "@opencode-ai/shared/util/encode"
import { checksum } from "@opencode-ai/core/util/encode"
import { useSearchParams } from "@solidjs/router"
import { NewSessionView, SessionHeader } from "@/components/session"
import { useComments } from "@/context/comments"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/session/file-tabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type { FileSearchHandle } from "@opencode-ai/ui/file"
import { useFileComponent } from "@opencode-ai/ui/context/file"
import { cloneSelectedLineRange, previewSelectedLines } from "@opencode-ai/ui/pierre/selection-bridge"
import { createLineCommentController } from "@opencode-ai/ui/line-comment-annotations"
import { sampledChecksum } from "@opencode-ai/shared/util/encode"
import { sampledChecksum } from "@opencode-ai/core/util/encode"
import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
import { IconButton } from "@opencode-ai/ui/icon-button"
import { Tabs } from "@opencode-ai/ui/tabs"
Expand Down
4 changes: 2 additions & 2 deletions packages/app/src/pages/session/message-timeline.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import { ScrollView } from "@opencode-ai/ui/scroll-view"
import { TextField } from "@opencode-ai/ui/text-field"
import type { AssistantMessage, Message as MessageType, Part, TextPart, UserMessage } from "@opencode-ai/sdk/v2"
import { showToast } from "@opencode-ai/ui/toast"
import { Binary } from "@opencode-ai/shared/util/binary"
import { getFilename } from "@opencode-ai/shared/util/path"
import { Binary } from "@opencode-ai/core/util/binary"
import { getFilename } from "@opencode-ai/core/util/path"
import { Popover as KobaltePopover } from "@kobalte/core/popover"
import { shouldMarkBoundaryGesture, normalizeWheelDelta } from "@/pages/session/message-gesture"
import { SessionContextUsage } from "@/components/session-context-usage"
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/pages/session/use-session-commands.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { useSettings } from "@/context/settings"
import { useSync } from "@/context/sync"
import { useTerminal } from "@/context/terminal"
import { showToast } from "@opencode-ai/ui/toast"
import { findLast } from "@opencode-ai/shared/util/array"
import { findLast } from "@opencode-ai/core/util/array"
import { createSessionTabs } from "@/pages/session/helpers"
import { extractPromptFromParts } from "@/utils/prompt"
import { UserMessage } from "@opencode-ai/sdk/v2"
Expand Down
Loading
Loading