Files
orca/src/shared/runtime-file-contracts.ts
T
NeilandNikita Maketryuk b428def8f1 feat(cli): open files at a requested line and column (#28240)
Accept positive safe-integer line and column flags through the existing file-open path. Reject invalid or incomplete positions before changing the editor. Bind deferred reveals to the requested workspace and tab, including floating panels, and clamp oversized positions without moving another editor or stealing late focus.

Co-authored-by: Nikita Maketryuk <n.maketryuk@lince.studio>
2026-10-14 00:36:57 -07:00

85 lines
1.9 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 RuntimeFileOpenPosition = {
line: number
column?: number
}
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
}