| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import type { Message, Session, Part, FileDiff, SessionStatus, Permission } from "@opencode-ai/sdk/v2"
- import { createSimpleContext } from "./helper"
- import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
- type Data = {
- session: Session[]
- session_status: {
- [sessionID: string]: SessionStatus
- }
- session_diff: {
- [sessionID: string]: FileDiff[]
- }
- session_diff_preload?: {
- [sessionID: string]: PreloadMultiFileDiffResult<any>[]
- }
- permission?: {
- [sessionID: string]: Permission[]
- }
- message: {
- [sessionID: string]: Message[]
- }
- part: {
- [messageID: string]: Part[]
- }
- }
- export type PermissionRespondFn = (input: {
- sessionID: string
- permissionID: string
- response: "once" | "always" | "reject"
- }) => void
- export const { use: useData, provider: DataProvider } = createSimpleContext({
- name: "Data",
- init: (props: { data: Data; directory: string; onPermissionRespond?: PermissionRespondFn }) => {
- return {
- get store() {
- return props.data
- },
- get directory() {
- return props.directory
- },
- respondToPermission: props.onPermissionRespond,
- }
- },
- })
|