mirror of
https://github.com/stablyai/orca.git
synced 2026-10-03 00:02:19 +00:00
The split silently dropped jira.searchUsers and runtimeEnvironments.retryControlConnection. Neither failed typecheck: the bridge modules carried no satisfies annotation and the composed api object was unannotated, so a missing key was only a runtime TypeError in the renderer. Annotates each module against PreloadApi, the type window.api is already declared as, so the contract supplies the shape rather than a parallel copy. Deleting jira.searchUsers now fails with TS2741 naming the key. Turning this on surfaced 106 places where a bridge locally annotated Promise<unknown> or unknown[] over a contract that declares concrete types -- the bridge was erasing types the renderer relied on. Those annotations are gone. Also exposes app.awaitBeforeUnloadCheckpoint, which was declared and called but never actually on the bridge, so the lazy-chunk recovery reload optional-chained to a no-op and navigated without joining the checkpoint. The missing key was caught by the new annotation rather than by hand.
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import { ipcRenderer } from 'electron'
|
|
import type { PreflightRuntimeContext, PreloadApi, RefreshAgentsResult } from '../api-types'
|
|
|
|
export const preflightApi = {
|
|
check: (args?: {
|
|
force?: boolean
|
|
}): Promise<{
|
|
git: { installed: boolean }
|
|
gh: { installed: boolean; authenticated: boolean }
|
|
glab?: { installed: boolean; authenticated: boolean }
|
|
bitbucket?: { configured: boolean; authenticated: boolean; account: string | null }
|
|
azureDevOps?: {
|
|
configured: boolean
|
|
authenticated: boolean
|
|
account: string | null
|
|
baseUrl: string | null
|
|
tokenConfigured: boolean
|
|
}
|
|
gitea?: {
|
|
configured: boolean
|
|
authenticated: boolean
|
|
account: string | null
|
|
baseUrl: string | null
|
|
tokenConfigured: boolean
|
|
}
|
|
linear: { connected: boolean }
|
|
}> => ipcRenderer.invoke('preflight:check', args),
|
|
detectAgents: (args?: PreflightRuntimeContext): Promise<string[]> =>
|
|
ipcRenderer.invoke('preflight:detectAgents', args),
|
|
refreshAgents: (args?: PreflightRuntimeContext): Promise<RefreshAgentsResult> =>
|
|
ipcRenderer.invoke('preflight:refreshAgents', args),
|
|
detectRemoteAgents: (args: { connectionId: string }): Promise<string[]> =>
|
|
ipcRenderer.invoke('preflight:detectRemoteAgents', args),
|
|
detectRemoteWindowsTerminalCapabilities: (args: {
|
|
connectionId: string
|
|
}): Promise<{
|
|
wslAvailable: boolean
|
|
wslDistros: string[]
|
|
pwshAvailable: boolean
|
|
gitBashAvailable: boolean
|
|
hostPlatform: NodeJS.Platform | null
|
|
}> => ipcRenderer.invoke('preflight:detectRemoteWindowsTerminalCapabilities', args)
|
|
} satisfies PreloadApi['preflight']
|