feat(desktop): permissions

This commit is contained in:
Adam
2025-12-27 05:16:39 -06:00
parent c523ca4127
commit 21eba5f987
17 changed files with 586 additions and 60 deletions

View File

@@ -1,4 +1,4 @@
import type { Message, Session, Part, FileDiff, SessionStatus } from "@opencode-ai/sdk/v2"
import type { Message, Session, Part, FileDiff, SessionStatus, Permission } from "@opencode-ai/sdk/v2"
import { createSimpleContext } from "./helper"
import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
@@ -13,6 +13,9 @@ type Data = {
session_diff_preload?: {
[sessionID: string]: PreloadMultiFileDiffResult<any>[]
}
permission?: {
[sessionID: string]: Permission[]
}
message: {
[sessionID: string]: Message[]
}
@@ -21,9 +24,15 @@ type Data = {
}
}
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 }) => {
init: (props: { data: Data; directory: string; onPermissionRespond?: PermissionRespondFn }) => {
return {
get store() {
return props.data
@@ -31,6 +40,7 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({
get directory() {
return props.directory
},
respondToPermission: props.onPermissionRespond,
}
},
})