mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-31 13:42:50 +00:00
Negotiate shared binary chunk framing below application messages and routing, with bounded logical assembly and paced writes that respect encrypted relay limits. Preserve legacy admission, reconnect state, sibling route isolation, and native single-frame upload behavior.
54 lines
3.4 KiB
TypeScript
54 lines
3.4 KiB
TypeScript
export const CLIENT_CAPS = {
|
|
binaryChunkingV1: "binary_chunking_v1",
|
|
helloRejection: "hello_rejection",
|
|
// COMPAT(ownedSubscriptions): added in v0.8.0, remove legacy ownership after 2027-03-09.
|
|
ownedSubscriptions: "owned_subscriptions",
|
|
// Clients outside the Paseo app version series can explicitly accept provider IDs.
|
|
// COMPAT(explicitEventSubscriptions): added in v0.8.0, remove legacy broadcasts after 2027-03-08.
|
|
explicitEventSubscriptions: "explicit_event_subscriptions",
|
|
allProviders: "all_providers",
|
|
// COMPAT(selectiveAgentTimeline): added in v0.1.106. Capable clients receive
|
|
// agent streams only for their explicit viewed set. Remove after 2027-01-12
|
|
// once the supported client floor is >= v0.1.106.
|
|
selectiveAgentTimeline: "selective_agent_timeline",
|
|
reasoningMergeEnum: "reasoning_merge_enum",
|
|
// COMPAT(customModeIcons): added in v0.1.84. Old clients pin AgentModeIcon to
|
|
// a closed enum and crash rendering unknown values; daemon downgrades icons
|
|
// outside the legacy set to "ShieldCheck" when this cap is absent. Drop the
|
|
// gate when floor >= v0.1.84.
|
|
customModeIcons: "custom_mode_icons",
|
|
// COMPAT(terminalReflowableSnapshot): added in v0.1.88. The daemon attaches
|
|
// per-row soft-wrap flags (gridWrapped/scrollbackWrapped) to terminal snapshots
|
|
// only when the client advertises this, so restored content can reflow on resize.
|
|
// Old clients use a strict TerminalState schema and would reject the extra fields.
|
|
// Drop the gate (always send the flags) when floor >= v0.1.88.
|
|
terminalReflowableSnapshot: "terminal_reflowable_snapshot",
|
|
// COMPAT(providerSubagents): added in v0.1.107. The daemon emits provider-owned
|
|
// child descriptors and timelines only to clients that understand the new messages.
|
|
providerSubagents: "provider_subagents",
|
|
// COMPAT(projectedSubagentTimeline): added after v0.8.0, remove gates after 2027-03-14; retain wire capability.
|
|
projectedSubagentTimeline: "projected_subagent_timeline",
|
|
// COMPAT(projectUpdates): added in v0.1.109, remove gate after 2027-01-15.
|
|
projectUpdates: "project_updates",
|
|
// COMPAT(compactProviderSnapshots): added in v0.2.X. Capable clients receive
|
|
// provider catalogs with shared thinking sets and may revalidate by content hash.
|
|
// Remove the legacy snapshot encoding after 2027-02-04.
|
|
compactProviderSnapshots: "compact_provider_snapshots",
|
|
providerSnapshotReferences: "provider_snapshot_references",
|
|
// COMPAT(timelineReplacementInvalidation): added in v0.5.0, remove legacy
|
|
// reconstructed timeline replay after 2027-02-21 once the client floor supports invalidation.
|
|
timelineReplacementInvalidation: "timeline_replacement_invalidation",
|
|
// COMPAT(timelineNotifications): added in v0.7.2. The daemon omits notification
|
|
// timeline items for older clients whose strict timeline union rejects them.
|
|
// Remove after 2027-03-03 once the supported client floor is >= v0.7.2.
|
|
timelineNotifications: "timeline_notifications",
|
|
// COMPAT(pluginTimelineItems): added in v0.8.0, remove after 2027-03-07 once client floor >= v0.8.0.
|
|
pluginTimelineItems: "plugin_timeline_items",
|
|
workspaceSetupObservation: "workspace_setup_observation",
|
|
// COMPAT(workspaceSetupBlocked): added in v0.8.0, remove after 2027-03-07 once client floor >= v0.8.0.
|
|
workspaceSetupBlocked: "workspace_setup_blocked",
|
|
browserHost: "browser_host",
|
|
} as const;
|
|
|
|
export type ClientCapability = (typeof CLIENT_CAPS)[keyof typeof CLIENT_CAPS];
|