Adam 2 месяцев назад
Родитель
Сommit
30d6a26e3e

+ 6 - 4
packages/ui/src/components/message-progress.tsx

@@ -7,7 +7,7 @@ import type { AssistantMessage as AssistantMessageType, ToolPart } from "@openco
 export function MessageProgress(props: { assistantMessages: () => AssistantMessageType[]; done?: boolean }) {
   const data = useData()
   const sanitizer = createMemo(() => (data.directory ? new RegExp(`${data.directory}/`, "g") : undefined))
-  const parts = createMemo(() => props.assistantMessages().flatMap((m) => data.part[m.id]))
+  const parts = createMemo(() => props.assistantMessages().flatMap((m) => data.store.part[m.id]))
   const done = createMemo(() => props.done ?? false)
   const currentTask = createMemo(
     () =>
@@ -27,8 +27,10 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa
     let resolved = parts()
     const task = currentTask()
     if (task && task.state && "metadata" in task.state && task.state.metadata?.sessionId) {
-      const messages = data.message[task.state.metadata.sessionId as string]?.filter((m) => m.role === "assistant")
-      resolved = messages?.flatMap((m) => data.part[m.id]) ?? parts()
+      const messages = data.store.message[task.state.metadata.sessionId as string]?.filter(
+        (m) => m.role === "assistant",
+      )
+      resolved = messages?.flatMap((m) => data.store.part[m.id]) ?? parts()
     }
     return resolved
   })
@@ -149,7 +151,7 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa
                     {(p) => {
                       const part = p() as ToolPart
                       const message = createMemo(() =>
-                        data.message[part.sessionID].find((m) => m.id === part.messageID),
+                        data.store.message[part.sessionID].find((m) => m.id === part.messageID),
                       )
                       return (
                         <div data-slot="message-progress-item">

+ 6 - 6
packages/ui/src/components/session-turn.tsx

@@ -28,11 +28,11 @@ export function SessionTurn(
   }>,
 ) {
   const data = useData()
-  const match = Binary.search(data.session, props.sessionID, (s) => s.id)
+  const match = Binary.search(data.store.session, props.sessionID, (s) => s.id)
   if (!match.found) throw new Error(`Session ${props.sessionID} not found`)
 
   const sanitizer = createMemo(() => (data.directory ? new RegExp(`${data.directory}/`, "g") : undefined))
-  const messages = createMemo(() => (props.sessionID ? (data.message[props.sessionID] ?? []) : []))
+  const messages = createMemo(() => (props.sessionID ? (data.store.message[props.sessionID] ?? []) : []))
   const userMessages = createMemo(() =>
     messages()
       .filter((m) => m.role === "user")
@@ -45,7 +45,7 @@ export function SessionTurn(
 
   const status = createMemo(
     () =>
-      data.session_status[props.sessionID] ?? {
+      data.store.session_status[props.sessionID] ?? {
         type: "idle",
       },
   )
@@ -65,9 +65,9 @@ export function SessionTurn(
             const assistantMessages = createMemo(() => {
               return messages()?.filter((m) => m.role === "assistant" && m.parentID == msg().id) as AssistantMessage[]
             })
-            const assistantMessageParts = createMemo(() => assistantMessages()?.flatMap((m) => data.part[m.id]))
+            const assistantMessageParts = createMemo(() => assistantMessages()?.flatMap((m) => data.store.part[m.id]))
             const error = createMemo(() => assistantMessages().find((m) => m?.error)?.error)
-            const parts = createMemo(() => data.part[msg().id])
+            const parts = createMemo(() => data.store.part[msg().id])
             const lastTextPart = createMemo(() =>
               assistantMessageParts()
                 .filter((p) => p?.type === "text")
@@ -212,7 +212,7 @@ export function SessionTurn(
                           <div data-slot="session-turn-collapsible-content-inner">
                             <For each={assistantMessages()}>
                               {(assistantMessage) => {
-                                const parts = createMemo(() => data.part[assistantMessage.id])
+                                const parts = createMemo(() => data.store.part[assistantMessage.id])
                                 const last = createMemo(() =>
                                   parts()
                                     .filter((p) => p?.type === "text")

+ 1 - 1
packages/ui/src/context/data.tsx

@@ -24,6 +24,6 @@ type Data = {
 export const { use: useData, provider: DataProvider } = createSimpleContext({
   name: "Data",
   init: (props: { data: Data; directory: string }) => {
-    return { ...props.data, directory: props.directory }
+    return { store: props.data, directory: props.directory }
   },
 })