Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
Dax
2025-12-07 19:04:14 -05:00
committed by GitHub
co-authored by GitHub Action
parent 6667856ba5
commit ea7ec60f51
59 changed files with 11182 additions and 1114 deletions
@@ -29,12 +29,8 @@ export function DialogMessage(props: {
if (!msg) return
sdk.client.session.revert({
path: {
id: props.sessionID,
},
body: {
messageID: msg.id,
},
sessionID: props.sessionID,
messageID: msg.id,
})
if (props.setPrompt) {
@@ -81,12 +77,8 @@ export function DialogMessage(props: {
description: "create a new session",
onSelect: async (dialog) => {
const result = await sdk.client.session.fork({
path: {
id: props.sessionID,
},
body: {
messageID: props.messageID,
},
sessionID: props.sessionID,
messageID: props.messageID,
})
route.navigate({
sessionID: result.data!.id,
@@ -1,7 +1,7 @@
import { createMemo, onMount } from "solid-js"
import { useSync } from "@tui/context/sync"
import { DialogSelect, type DialogSelectOption } from "@tui/ui/dialog-select"
import type { TextPart } from "@opencode-ai/sdk"
import type { TextPart } from "@opencode-ai/sdk/v2"
import { Locale } from "@/util/locale"
import { DialogMessage } from "./dialog-message"
import { useDialog } from "../../ui/dialog"
@@ -4,7 +4,7 @@ import { useSync } from "@tui/context/sync"
import { pipe, sumBy } from "remeda"
import { useTheme } from "@tui/context/theme"
import { SplitBorder, EmptyBorder } from "@tui/component/border"
import type { AssistantMessage, Session } from "@opencode-ai/sdk"
import type { AssistantMessage, Session } from "@opencode-ai/sdk/v2"
import { useDirectory } from "../../context/directory"
import { useKeybind } from "../../context/keybind"
@@ -25,7 +25,7 @@ import {
type ScrollAcceleration,
} from "@opentui/core"
import { Prompt, type PromptRef } from "@tui/component/prompt"
import type { AssistantMessage, Part, ToolPart, UserMessage, TextPart, ReasoningPart } from "@opencode-ai/sdk"
import type { AssistantMessage, Part, ToolPart, UserMessage, TextPart, ReasoningPart } from "@opencode-ai/sdk/v2"
import { useLocal } from "@tui/context/local"
import { Locale } from "@/util/locale"
import type { Tool } from "@/tool/tool"
@@ -150,7 +150,8 @@ export function Session() {
.then(() => {
if (scroll) scroll.scrollBy(100_000)
})
.catch(() => {
.catch((e) => {
console.error(e)
toast.show({
message: `Session not found: ${route.sessionID}`,
variant: "error",
@@ -202,14 +203,10 @@ export function Session() {
return
})
if (response) {
sdk.client.postSessionIdPermissionsPermissionId({
path: {
permissionID: first.id,
id: route.sessionID,
},
body: {
response: response,
},
sdk.client.permission.respond({
permissionID: first.id,
sessionID: route.sessionID,
response: response,
})
}
}
@@ -254,9 +251,7 @@ export function Session() {
onSelect: async (dialog: any) => {
await sdk.client.session
.share({
path: {
id: route.sessionID,
},
sessionID: route.sessionID,
})
.then((res) =>
Clipboard.copy(res.data!.share!.url).catch(() =>
@@ -314,13 +309,9 @@ export function Session() {
return
}
sdk.client.session.summarize({
path: {
id: route.sessionID,
},
body: {
modelID: selectedModel.modelID,
providerID: selectedModel.providerID,
},
sessionID: route.sessionID,
modelID: selectedModel.modelID,
providerID: selectedModel.providerID,
})
dialog.clear()
},
@@ -333,9 +324,7 @@ export function Session() {
category: "Session",
onSelect: (dialog) => {
sdk.client.session.unshare({
path: {
id: route.sessionID,
},
sessionID: route.sessionID,
})
dialog.clear()
},
@@ -347,18 +336,14 @@ export function Session() {
category: "Session",
onSelect: async (dialog) => {
const status = sync.data.session_status[route.sessionID]
if (status?.type !== "idle") await sdk.client.session.abort({ path: { id: route.sessionID } }).catch(() => {})
if (status?.type !== "idle") await sdk.client.session.abort({ sessionID: route.sessionID }).catch(() => {})
const revert = session().revert?.messageID
const message = messages().findLast((x) => (!revert || x.id < revert) && x.role === "user")
if (!message) return
sdk.client.session
.revert({
path: {
id: route.sessionID,
},
body: {
messageID: message.id,
},
sessionID: route.sessionID,
messageID: message.id,
})
.then(() => {
toBottom()
@@ -392,20 +377,14 @@ export function Session() {
const message = messages().find((x) => x.role === "user" && x.id > messageID)
if (!message) {
sdk.client.session.unrevert({
path: {
id: route.sessionID,
},
sessionID: route.sessionID,
})
prompt.set({ input: "", parts: [] })
return
}
sdk.client.session.revert({
path: {
id: route.sessionID,
},
body: {
messageID: message.id,
},
sessionID: route.sessionID,
messageID: message.id,
})
},
},
@@ -1066,7 +1045,7 @@ function UserMessage(props: {
</box>
</Show>
<text fg={theme.textMuted}>
{ctx.usernameVisible() ? `${sync.data.config.username ?? "You"}` : "You"}
{ctx.usernameVisible() ? `${sync.data.config.username ?? "You "}` : "You "}
<Show
when={queued()}
fallback={
@@ -4,7 +4,7 @@ import { createStore } from "solid-js/store"
import { useTheme } from "../../context/theme"
import { Locale } from "@/util/locale"
import path from "path"
import type { AssistantMessage } from "@opencode-ai/sdk"
import type { AssistantMessage } from "@opencode-ai/sdk/v2"
import { Global } from "@/global"
import { Installation } from "@/installation"
import { useKeybind } from "../../context/keybind"