This commit is contained in:
Frank 2025-08-17 08:08:37 +08:00
parent f22e97dd05
commit 42931d4d2a

View file

@ -248,6 +248,7 @@ async function assertOpencodeConnected() {
let retry = 0 let retry = 0
let connected = false let connected = false
do { do {
// TODO
console.log("!@#!@#!@# TRYING") console.log("!@#!@#!@# TRYING")
try { try {
await client.app.get<true>() await client.app.get<true>()
@ -520,50 +521,50 @@ async function chat(text: string, files: PromptFiles = []) {
console.log("Sending message to opencode...") console.log("Sending message to opencode...")
const { providerID, modelID } = useModel() const { providerID, modelID } = useModel()
const result = await client.session const chat = await client.session.chat<true>({
.chat<true>({ path: session,
path: session, body: {
body: { providerID,
providerID, modelID,
modelID, agent: "build",
agent: "build", parts: [
parts: [ {
type: "text",
text,
},
...files.flatMap((f) => [
{ {
type: "text", type: "file" as const,
text, mime: f.mime,
}, url: `data:${f.mime};base64,${f.content}`,
...files.flatMap((f) => [ filename: f.filename,
{ source: {
type: "file" as const, type: "file" as const,
mime: f.mime, text: {
url: `data:${f.mime};base64,${f.content}`, value: f.replacement,
filename: f.filename, start: f.start,
source: { end: f.end,
type: "file" as const,
text: {
value: f.replacement,
start: f.start,
end: f.end,
},
path: f.filename,
}, },
path: f.filename,
}, },
]), },
], ]),
}, ],
}) },
.then((r) => r.data) })
const message = await client.session // TODO
.message<true>({ console.log("!@#!@#!@# CHAT", chat.data)
path: {
id: result.sessionID,
messageID: result.id,
},
})
.then((r) => r.data)
const match = message.parts.findLast((p) => p.type === "text") const message = await client.session.message<true>({
path: {
id: chat.data.sessionID,
messageID: chat.data.id,
},
})
console.log("!@#!@#!@# MESSAGE", message.data)
const match = message.data.parts.findLast((p) => p.type === "text")
if (!match) throw new Error("Failed to parse the text response") if (!match) throw new Error("Failed to parse the text response")
return match.text return match.text