diff options
| author | Dax Raad <[email protected]> | 2025-06-18 15:34:05 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-06-18 15:34:13 -0400 |
| commit | 5944ae2023a76c578b74da7da0bb4524330b50f6 (patch) | |
| tree | 231115156edac6f99b9d41156bc4dddc8fb82d0e | |
| parent | 2f10961ba8c8452aec028387c6c4aa80dabff080 (diff) | |
| download | opencode-5944ae2023a76c578b74da7da0bb4524330b50f6.tar.gz opencode-5944ae2023a76c578b74da7da0bb4524330b50f6.zip | |
share types
| -rw-r--r-- | bun.lock | 1 | ||||
| -rw-r--r-- | packages/web/package.json | 1 | ||||
| -rw-r--r-- | packages/web/src/components/Share.tsx | 45 |
3 files changed, 9 insertions, 38 deletions
@@ -79,6 +79,7 @@ }, "devDependencies": { "@types/node": "catalog:", + "opencode": "workspace:*", "typescript": "catalog:", }, }, diff --git a/packages/web/package.json b/packages/web/package.json index 3e38da7b9..8cbcda72a 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -30,6 +30,7 @@ "toolbeam-docs-theme": "0.3.0" }, "devDependencies": { + "opencode": "workspace:*", "@types/node": "catalog:", "typescript": "catalog:" } diff --git a/packages/web/src/components/Share.tsx b/packages/web/src/components/Share.tsx index 6ff5d6af6..2fafe5f94 100644 --- a/packages/web/src/components/Share.tsx +++ b/packages/web/src/components/Share.tsx @@ -36,7 +36,8 @@ import DiffView from "./DiffView" import CodeBlock from "./CodeBlock" import MarkdownView from "./MarkdownView" import styles from "./share.module.css" -import { type UIMessage } from "ai" +import { type Message } from "opencode/session/message" +import { type Session } from "opencode/session" const MIN_DURATION = 2 @@ -47,38 +48,7 @@ type Status = | "error" | "reconnecting" -type SessionMessage = UIMessage<{ - time: { - created: number - completed?: number - } - assistant?: { - modelID: string - providerID: string - cost: number - tokens: { - input: number - output: number - reasoning: number - } - } - sessionID: string - tool: Record< - string, - { - [key: string]: any - time: { - start: number - end: number - } - } - > -}> -type SessionInfo = { - title: string - cost?: number -} type TodoStatus = "pending" | "in_progress" | "completed" @@ -531,8 +501,8 @@ function ToolFooter(props: { time: number }) { export default function Share(props: { id: string api: string - info: SessionInfo - messages: Record<string, SessionMessage> + info: Session.Info + messages: Record<string, Message.Info> }) { let hasScrolled = false @@ -547,8 +517,8 @@ export default function Share(props: { }) const [store, setStore] = createStore<{ - info?: SessionInfo - messages: Record<string, SessionMessage> + info?: Session.Info + messages: Record<string, Message.Info> }>({ info: props.info, messages: props.messages }) const messages = createMemo(() => Object.values(store.messages).toSorted((a, b) => a.id?.localeCompare(b.id)), @@ -659,7 +629,7 @@ export default function Share(props: { const result = { created: undefined as number | undefined, system: [] as string[], - messages: [] as SessionMessage[], + messages: [] as Message.Info[], models: {} as Record<string, string[]>, cost: 0, tokens: { @@ -701,7 +671,6 @@ export default function Share(props: { } return result }) - const [showingSystemPrompt, showSystemPrompt] = createSignal(false) return ( <main class={`${styles.root} not-content`}> |
