Files
orca/src/shared/runtime-file-contracts.ts
T
OrcaWinandm4air f361455c73 fix(files): links to this computer in a remote terminal open on the client with trusted provenance (#27234)
* fix(files): a link to this computer in a paired-server terminal opens here when the host disowns it

* fix(files): keep client-local link tabs on this computer; gate the fallback on host support and native clients

---------

Co-authored-by: m4air <m4air@Mac.localdomain>
2026-10-10 05:20:26 -07:00

80 lines
1.8 KiB
TypeScript

import type { RasterImageDimensions } from './raster-image-dimensions'
export type RuntimeFileListEntry = {
relativePath: string
basename: string
kind: 'text' | 'binary'
}
export type RuntimeFileListResult = {
worktree: string
rootPath: string
files: RuntimeFileListEntry[]
totalCount: number
truncated: boolean
quickOpenSearchVersion?: number
}
export type RuntimeFileOpenResult = {
worktree: string
relativePath: string
kind: 'markdown' | 'text' | 'binary' | 'image'
opened: boolean
}
export type RuntimeFileReadResult = {
worktree: string
relativePath: string
content: string
truncated: boolean
byteLength: number
}
export type RuntimeTerminalPathOpenTarget =
| {
kind: 'worktree-file'
provider: 'local' | 'ssh'
relativePath: string
absolutePath: string
}
| {
kind: 'absolute-file'
provider: 'local' | 'ssh'
absolutePath: string
grantId: string
readOnly?: true
}
| { kind: 'unsupported'; reason: string }
export type RuntimeNativeChatFileContext = {
tabId: string
sessionId: string
}
// Why: older hosts ignore crossWorkspace, so their refusal is no proof that no host workspace holds the path.
export const TERMINAL_PATH_CROSS_WORKSPACE_RUNTIME_CAPABILITY =
'files.resolve-terminal-path.cross-workspace.v1' as const
export type RuntimeTerminalPathResolution = {
worktree: string
relativePath: string | null
absolutePath: string | null
exists: boolean
isDirectory: boolean
openTarget?: RuntimeTerminalPathOpenTarget
}
export type RuntimeFilePreviewResult = {
content: string
isBinary: boolean
isImage?: boolean
mimeType?: string
imageDimensions?: RasterImageDimensions
}
export type RuntimeFileReadChunkResult = {
contentBase64: string
bytesRead: number
eof: boolean
}