import { type CompatTag } from "./validation.js"; /** * Capability flags — the per-feature compatibility layer (MAIN-SCOPE §9, * architecture/websocket-protocol.md § Capability flags / Compatibility rules). * * Two directions: * - `CLIENT_CAPS` (client → daemon, advertised in `hello.capabilities`): the daemon stores these * per connection so the wire boundary can ask one question, `supports(caps, flag)`. New wire * enum values are gated through this so an old client never receives a value it didn't advertise. * - `SERVER_FEATURES` (daemon → client, in `server_info.features.*`): new *features* advertise a * flag; clients either run the feature or show "update the host." No degraded fallback path. */ export declare const CLIENT_CAPS: { /** Client renders custom per-mode icons. */ readonly custom_mode_icons: "custom_mode_icons"; /** Client understands the merged reasoning stream enum value. */ readonly reasoning_merge_enum: "reasoning_merge_enum"; /** Client can consume a reflowable terminal snapshot payload. */ readonly terminal_reflowable_snapshot: "terminal_reflowable_snapshot"; /** Client renders markdown images (`![alt](path)`) whose target is a local filesystem path. */ readonly inline_image_markdown: "inline_image_markdown"; /** Client renders markdown links (`[label](path)`) whose target is a local filesystem path as an open-file action. */ readonly file_link_markdown: "file_link_markdown"; /** Client renders `language-mermaid` fenced code blocks as a live diagram (flowcharts, sequence diagrams, etc.). */ readonly mermaid_diagram_markdown: "mermaid_diagram_markdown"; }; export type ClientCapabilityKey = keyof typeof CLIENT_CAPS; export type ClientCapability = (typeof CLIENT_CAPS)[ClientCapabilityKey]; export declare const SERVER_FEATURES: { readonly providersSnapshot: "providersSnapshot"; readonly checkoutGithubSetAutoMerge: "checkoutGithubSetAutoMerge"; readonly daemonStatusRpc: "daemonStatusRpc"; readonly "terminal-restore-modes": "terminal-restore-modes"; readonly checkoutRefresh: "checkoutRefresh"; readonly extensionPacks: "extensionPacks"; readonly providerAuth: "providerAuth"; readonly extensionUi: "extensionUi"; readonly thinkingLevels: "thinkingLevels"; readonly viewerSettings: "viewerSettings"; readonly forkTimelineSync: "forkTimelineSync"; }; export type ServerFeatureKey = keyof typeof SERVER_FEATURES; export type ServerFeature = (typeof SERVER_FEATURES)[ServerFeatureKey]; /** * COMPAT annotations for each server feature flag (version added + removal date). The removal dates * are placeholders to be confirmed against the live `ServerInfoStatusPayloadSchema`. Grep `COMPAT(` * to enumerate cleanup work. */ export declare const SERVER_FEATURE_COMPAT: Record; /** The forms a stored capability set can take on the daemon session. */ export type CapabilitySet = Record | readonly string[] | Set | undefined; /** * Returns true only if `flag` is advertised by `caps`. Used at serialization time to gate new wire * enum values: `if (session.supports(CLIENT_CAPS.reasoning_merge_enum)) emit(newValue) else emit(old)`. */ export declare function supports(caps: CapabilitySet, flag: string): boolean; //# sourceMappingURL=client-capabilities.d.ts.map