| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import type { Message, Session, Part, SnapshotFileDiff, SessionStatus, ProviderListResponse } from "@opencode-ai/sdk/v2"
- import { createSimpleContext } from "./helper"
- import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
- type Data = {
- agent?: {
- name: string
- color?: string
- }[]
- provider?: ProviderListResponse
- session: Session[]
- session_status: {
- [sessionID: string]: SessionStatus
- }
- session_diff: {
- [sessionID: string]: SnapshotFileDiff[]
- }
- session_diff_preload?: {
- [sessionID: string]: PreloadMultiFileDiffResult<any>[]
- }
- message: {
- [sessionID: string]: Message[]
- }
- part: {
- [messageID: string]: Part[]
- }
- part_text_accum_delta?: {
- [partID: string]: string
- }
- }
- export type NavigateToSessionFn = (sessionID: string) => void
- export type SessionHrefFn = (sessionID: string) => string
- export const { use: useData, provider: DataProvider } = createSimpleContext({
- name: "Data",
- init: (props: {
- data: Data
- directory: string
- onNavigateToSession?: NavigateToSessionFn
- onSessionHref?: SessionHrefFn
- }) => {
- return {
- get store() {
- return props.data
- },
- get directory() {
- return props.directory
- },
- navigateToSession: props.onNavigateToSession,
- sessionHref: props.onSessionHref,
- }
- },
- })
|