Buckets:
| import { createSimpleContext } from "@opencode-ai/ui/context" | |
| import type { AsyncStorage, SyncStorage } from "@solid-primitives/storage" | |
| import type { Accessor } from "solid-js" | |
| import type { DesktopMenuAction } from "../desktop-menu" | |
| import { ServerConnection } from "./server" | |
| import type { WslServersPlatform } from "../wsl/types" | |
| import type { UpdaterPlatform } from "../updater" | |
| type PickerPaths = string | string[] | null | |
| type OpenDirectoryPickerOptions = { title?: string; multiple?: boolean } | |
| type OpenAttachmentPickerOptions = { | |
| title?: string | |
| multiple?: boolean | |
| accept?: string[] | |
| extensions?: string[] | |
| defaultPath?: string | |
| } | |
| type SaveFilePickerOptions = { title?: string; defaultPath?: string } | |
| type PlatformName = "web" | "desktop" | |
| type DesktopOS = "macos" | "windows" | "linux" | |
| export type FatalRendererErrorLog = { | |
| error: string | |
| url: string | |
| version?: string | |
| platform: PlatformName | |
| os?: DesktopOS | |
| } | |
| type PlatformBase = { | |
| /** App version */ | |
| version?: string | |
| /** Open a URL in the default browser */ | |
| openLink(url: string): void | |
| /** Open a local path in a local app (desktop only) */ | |
| openPath?(path: string, app?: string): Promise<void> | |
| /** Restart the app */ | |
| restart(): Promise<void> | |
| /** Navigate back in history */ | |
| back(): void | |
| /** Navigate forward in history */ | |
| forward(): void | |
| /** Send a system notification (optional deep link) */ | |
| notify(title: string, description?: string, href?: string): Promise<void> | |
| /** Open a native attachment picker and read selected files sequentially (desktop only) */ | |
| openAttachmentPickerDialog?( | |
| opts: OpenAttachmentPickerOptions, | |
| onFile: (file: File) => Promise<unknown>, | |
| ): Promise<void> | |
| /** Open a native save file picker dialog (desktop only) */ | |
| saveFilePickerDialog?(opts?: SaveFilePickerOptions): Promise<string | null> | |
| /** Storage mechanism, defaults to localStorage */ | |
| storage?: (name?: string) => SyncStorage | AsyncStorage | |
| /** Application-global desktop updater */ | |
| updater?: UpdaterPlatform | |
| /** Fetch override */ | |
| fetch?: typeof fetch | |
| /** Get the configured default server URL (platform-specific) */ | |
| getDefaultServer?(): Promise<ServerConnection.Key | null> | |
| /** Set the default server URL to use on app startup (platform-specific) */ | |
| setDefaultServer?(url: ServerConnection.Key | null): Promise<void> | void | |
| /** Manage WSL sidecar servers (Electron on Windows only) */ | |
| wslServers?: WslServersPlatform | |
| /** Get the preferred display backend (desktop only) */ | |
| getDisplayBackend?(): Promise<DisplayBackend | null> | DisplayBackend | null | |
| /** Set the preferred display backend (desktop only) */ | |
| setDisplayBackend?(backend: DisplayBackend): Promise<void> | |
| /** Parse markdown to HTML using native parser (desktop only, returns unprocessed code blocks) */ | |
| parseMarkdown?(markdown: string): Promise<string> | |
| /** Webview zoom level (desktop only) */ | |
| webviewZoom?: Accessor<number> | |
| /** Get whether native pinch/Ctrl-scroll zoom gestures are enabled (desktop only) */ | |
| getPinchZoomEnabled?(): Promise<boolean> | boolean | |
| /** Allow native pinch/Ctrl-scroll zoom gestures (desktop only) */ | |
| setPinchZoomEnabled?(enabled: boolean): Promise<void> | void | |
| /** Run a desktop-only menu action from the app chrome */ | |
| runDesktopMenuAction?(action: DesktopMenuAction): Promise<void> | void | |
| /** Check if an editor app exists (desktop only) */ | |
| checkAppExists?(appName: string): Promise<boolean> | |
| /** Read image from clipboard (desktop only) */ | |
| readClipboardImage?(): Promise<File | null> | |
| /** Export collected diagnostic logs (desktop only) */ | |
| exportDebugLogs?(): Promise<string> | |
| /** Record a fatal renderer error in platform logs (desktop only) */ | |
| recordFatalRendererError?(error: FatalRendererErrorLog): Promise<void> | |
| } | |
| export type Platform = PlatformBase & | |
| ( | |
| | { platform: "web"; os?: never } | |
| | { | |
| platform: "desktop" | |
| os?: DesktopOS | |
| openDirectoryPickerDialog(opts?: OpenDirectoryPickerOptions): Promise<PickerPaths> | |
| } | |
| ) | |
| export type DisplayBackend = "auto" | "wayland" | |
| export const { use: usePlatform, provider: PlatformProvider } = createSimpleContext({ | |
| name: "Platform", | |
| init: (props: { value: Platform }) => { | |
| return props.value | |
| }, | |
| }) | |
Xet Storage Details
- Size:
- 4.28 kB
- Xet hash:
- 4d08c36e3b91de55d474233b1f799565ec399c7f8d7ac1234d853d3d7428ec94
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.