diff options
| author | Dax <[email protected]> | 2025-12-07 19:04:14 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-07 19:04:14 -0500 |
| commit | ea7ec60f51f9fe3c6382f644c328188a43545b7b (patch) | |
| tree | 5204cbc059fe10b87c54ffd25782ad83710bdcdb /packages/desktop/src | |
| parent | 6667856ba5dac3e5dd77c7008cee2d09be894472 (diff) | |
| download | opencode-ea7ec60f51f9fe3c6382f644c328188a43545b7b.tar.gz opencode-ea7ec60f51f9fe3c6382f644c328188a43545b7b.zip | |
v2 SDK (#5216)
Co-authored-by: GitHub Action <[email protected]>
Diffstat (limited to 'packages/desktop/src')
| -rw-r--r-- | packages/desktop/src/components/prompt-input.tsx | 30 | ||||
| -rw-r--r-- | packages/desktop/src/components/terminal.tsx | 20 | ||||
| -rw-r--r-- | packages/desktop/src/context/global-sdk.tsx | 2 | ||||
| -rw-r--r-- | packages/desktop/src/context/global-sync.tsx | 2 | ||||
| -rw-r--r-- | packages/desktop/src/context/local.tsx | 11 | ||||
| -rw-r--r-- | packages/desktop/src/context/sdk.tsx | 2 | ||||
| -rw-r--r-- | packages/desktop/src/context/session.tsx | 15 | ||||
| -rw-r--r-- | packages/desktop/src/context/sync.tsx | 10 | ||||
| -rw-r--r-- | packages/desktop/src/pages/layout.tsx | 2 |
9 files changed, 42 insertions, 52 deletions
diff --git a/packages/desktop/src/components/prompt-input.tsx b/packages/desktop/src/components/prompt-input.tsx index a311ae763..dd1e00c6f 100644 --- a/packages/desktop/src/components/prompt-input.tsx +++ b/packages/desktop/src/components/prompt-input.tsx @@ -235,9 +235,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => { const abort = () => sdk.client.session.abort({ - path: { - id: session.id!, - }, + sessionID: session.id!, }) const handleKeyDown = (event: KeyboardEvent) => { @@ -329,21 +327,19 @@ export const PromptInput: Component<PromptInputProps> = (props) => { session.prompt.set([{ type: "text", content: "", start: 0, end: 0 }], 0) sdk.client.session.prompt({ - path: { id: existing.id }, - body: { - agent: local.agent.current()!.name, - model: { - modelID: local.model.current()!.id, - providerID: local.model.current()!.provider.id, - }, - parts: [ - { - type: "text", - text, - }, - ...attachmentParts, - ], + sessionID: existing.id, + agent: local.agent.current()!.name, + model: { + modelID: local.model.current()!.id, + providerID: local.model.current()!.provider.id, }, + parts: [ + { + type: "text", + text, + }, + ...attachmentParts, + ], }) } diff --git a/packages/desktop/src/components/terminal.tsx b/packages/desktop/src/components/terminal.tsx index b312c3589..15302f152 100644 --- a/packages/desktop/src/components/terminal.tsx +++ b/packages/desktop/src/components/terminal.tsx @@ -74,12 +74,10 @@ export const Terminal = (props: TerminalProps) => { term.onResize(async (size) => { if (ws && ws.readyState === WebSocket.OPEN) { await sdk.client.pty.update({ - path: { id: local.pty.id }, - body: { - size: { - cols: size.cols, - rows: size.rows, - }, + ptyID: local.pty.id, + size: { + cols: size.cols, + rows: size.rows, }, }) } @@ -100,12 +98,10 @@ export const Terminal = (props: TerminalProps) => { ws.addEventListener("open", () => { console.log("WebSocket connected") sdk.client.pty.update({ - path: { id: local.pty.id }, - body: { - size: { - cols: term.cols, - rows: term.rows, - }, + ptyID: local.pty.id, + size: { + cols: term.cols, + rows: term.rows, }, }) }) diff --git a/packages/desktop/src/context/global-sdk.tsx b/packages/desktop/src/context/global-sdk.tsx index b9c72afcb..85b9e7584 100644 --- a/packages/desktop/src/context/global-sdk.tsx +++ b/packages/desktop/src/context/global-sdk.tsx @@ -1,4 +1,4 @@ -import { createOpencodeClient, type Event } from "@opencode-ai/sdk/client" +import { createOpencodeClient, type Event } from "@opencode-ai/sdk/v2/client" import { createSimpleContext } from "@opencode-ai/ui/context" import { createGlobalEmitter } from "@solid-primitives/event-bus" import { onCleanup } from "solid-js" diff --git a/packages/desktop/src/context/global-sync.tsx b/packages/desktop/src/context/global-sync.tsx index a8a6b9937..9f795cded 100644 --- a/packages/desktop/src/context/global-sync.tsx +++ b/packages/desktop/src/context/global-sync.tsx @@ -12,7 +12,7 @@ import type { FileDiff, Todo, SessionStatus, -} from "@opencode-ai/sdk" +} from "@opencode-ai/sdk/v2" import { createStore, produce, reconcile } from "solid-js/store" import { Binary } from "@opencode-ai/util/binary" import { createSimpleContext } from "@opencode-ai/ui/context" diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx index 68da03438..de4202d9a 100644 --- a/packages/desktop/src/context/local.tsx +++ b/packages/desktop/src/context/local.tsx @@ -1,7 +1,7 @@ import { createStore, produce, reconcile } from "solid-js/store" import { batch, createEffect, createMemo } from "solid-js" import { uniqueBy } from "remeda" -import type { FileContent, FileNode, Model, Provider, File as FileStatus } from "@opencode-ai/sdk" +import type { FileContent, FileNode, Model, Provider, File as FileStatus } from "@opencode-ai/sdk/v2" import { createSimpleContext } from "@opencode-ai/ui/context" import { useSDK } from "./sdk" import { useSync } from "./sync" @@ -257,7 +257,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ const load = async (path: string) => { const relativePath = relative(path) - sdk.client.file.read({ query: { path: relativePath } }).then((x) => { + sdk.client.file.read({ path: relativePath }).then((x) => { setStore( "node", relativePath, @@ -305,7 +305,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ } const list = async (path: string) => { - return sdk.client.file.list({ query: { path: path + "/" } }).then((x) => { + return sdk.client.file.list({ path: path + "/" }).then((x) => { setStore( "node", produce((draft) => { @@ -318,10 +318,9 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ }) } - const searchFiles = (query: string) => - sdk.client.find.files({ query: { query, dirs: "false" } }).then((x) => x.data!) + const searchFiles = (query: string) => sdk.client.find.files({ query, dirs: "false" }).then((x) => x.data!) const searchFilesAndDirectories = (query: string) => - sdk.client.find.files({ query: { query, dirs: "true" } }).then((x) => x.data!) + sdk.client.find.files({ query, dirs: "true" }).then((x) => x.data!) sdk.event.listen((e) => { const event = e.details diff --git a/packages/desktop/src/context/sdk.tsx b/packages/desktop/src/context/sdk.tsx index 144202ee2..764b01f8a 100644 --- a/packages/desktop/src/context/sdk.tsx +++ b/packages/desktop/src/context/sdk.tsx @@ -1,4 +1,4 @@ -import { createOpencodeClient, type Event } from "@opencode-ai/sdk/client" +import { createOpencodeClient, type Event } from "@opencode-ai/sdk/v2/client" import { createSimpleContext } from "@opencode-ai/ui/context" import { createGlobalEmitter } from "@solid-primitives/event-bus" import { onCleanup } from "solid-js" diff --git a/packages/desktop/src/context/session.tsx b/packages/desktop/src/context/session.tsx index b5972f3e3..5c0bad98a 100644 --- a/packages/desktop/src/context/session.tsx +++ b/packages/desktop/src/context/session.tsx @@ -5,7 +5,7 @@ import { useSync } from "./sync" import { makePersisted } from "@solid-primitives/storage" import { TextSelection } from "./local" import { pipe, sumBy } from "remeda" -import { AssistantMessage, UserMessage } from "@opencode-ai/sdk" +import { AssistantMessage, UserMessage } from "@opencode-ai/sdk/v2" import { useParams } from "@solidjs/router" import { base64Encode } from "@/utils" import { useSDK } from "./sdk" @@ -198,7 +198,7 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex all: createMemo(() => Object.values(store.terminals.all)), active: createMemo(() => store.terminals.active), new() { - sdk.client.pty.create({ body: { title: `Terminal ${store.terminals.all.length + 1}` } }).then((pty) => { + sdk.client.pty.create({ title: `Terminal ${store.terminals.all.length + 1}` }).then((pty) => { const id = pty.data?.id if (!id) return setStore("terminals", "all", [ @@ -214,8 +214,9 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex update(pty: Partial<LocalPTY> & { id: string }) { setStore("terminals", "all", (x) => x.map((x) => (x.id === pty.id ? { ...x, ...pty } : x))) sdk.client.pty.update({ - path: { id: pty.id }, - body: { title: pty.title, size: pty.cols && pty.rows ? { rows: pty.rows, cols: pty.cols } : undefined }, + ptyID: pty.id, + title: pty.title, + size: pty.cols && pty.rows ? { rows: pty.rows, cols: pty.cols } : undefined, }) }, async clone(id: string) { @@ -223,9 +224,7 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex const pty = store.terminals.all[index] if (!pty) return const clone = await sdk.client.pty.create({ - body: { - title: pty.title, - }, + title: pty.title, }) if (!clone.data) return setStore("terminals", "all", index, { @@ -252,7 +251,7 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex setStore("terminals", "active", previous) } }) - await sdk.client.pty.remove({ path: { id } }) + await sdk.client.pty.remove({ ptyID: id }) }, move(id: string, to: number) { const index = store.terminals.all.findIndex((f) => f.id === id) diff --git a/packages/desktop/src/context/sync.tsx b/packages/desktop/src/context/sync.tsx index 3eb921a31..d8d7c7b95 100644 --- a/packages/desktop/src/context/sync.tsx +++ b/packages/desktop/src/context/sync.tsx @@ -28,7 +28,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ status: () => sdk.client.session.status().then((x) => setStore("session_status", x.data!)), config: () => sdk.client.config.get().then((x) => setStore("config", x.data!)), changes: () => sdk.client.file.status().then((x) => setStore("changes", x.data!)), - node: () => sdk.client.file.list({ query: { path: "/" } }).then((x) => setStore("node", x.data!)), + node: () => sdk.client.file.list({ path: "/" }).then((x) => setStore("node", x.data!)), } Promise.all(Object.values(load).map((p) => p())).then(() => setStore("ready", true)) @@ -49,10 +49,10 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }, async sync(sessionID: string, _isRetry = false) { const [session, messages, todo, diff] = await Promise.all([ - sdk.client.session.get({ path: { id: sessionID }, throwOnError: true }), - sdk.client.session.messages({ path: { id: sessionID }, query: { limit: 100 } }), - sdk.client.session.todo({ path: { id: sessionID } }), - sdk.client.session.diff({ path: { id: sessionID } }), + sdk.client.session.get({ sessionID }, { throwOnError: true }), + sdk.client.session.messages({ sessionID, limit: 100 }), + sdk.client.session.todo({ sessionID }), + sdk.client.session.diff({ sessionID }), ]) setStore( produce((draft) => { diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx index 29083cf6c..94ff4dd04 100644 --- a/packages/desktop/src/pages/layout.tsx +++ b/packages/desktop/src/pages/layout.tsx @@ -13,7 +13,7 @@ import { Collapsible } from "@opencode-ai/ui/collapsible" import { DiffChanges } from "@opencode-ai/ui/diff-changes" import { getFilename } from "@opencode-ai/util/path" import { Select } from "@opencode-ai/ui/select" -import { Session } from "@opencode-ai/sdk/client" +import { Session } from "@opencode-ai/sdk/v2/client" export default function Layout(props: ParentProps) { const navigate = useNavigate() |
