cmux 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,74 @@
1
+ /** A JSON value accepted by the cmux-tui protocol. */
2
+ export type Json = null | boolean | number | string | Json[] | {
3
+ [key: string]: Json;
4
+ };
5
+ /** A JSON object accepted by the cmux-tui protocol. */
6
+ export type JsonObject = {
7
+ [key: string]: Json;
8
+ };
9
+ /** An implemented numeric protocol identifier (`uint64` on the wire). */
10
+ export type Id = number;
11
+ /** A numeric id or proposed stable short id. */
12
+ export type IdRef = Id | string;
13
+ /** Standard base64 text. */
14
+ export type Base64 = string;
15
+ /** A `#rrggbb` color string. */
16
+ export type ColorHex = `#${string}`;
17
+ /** A terminal cell grid. */
18
+ export interface Size {
19
+ cols: number;
20
+ rows: number;
21
+ }
22
+ /** The canonical empty command result. */
23
+ export type EmptyResult = Record<string, never>;
24
+ /** Fields common to every command request envelope. */
25
+ export interface CmuxRequestBase {
26
+ id?: Json;
27
+ cmd: string;
28
+ }
29
+ /** A successful command response envelope. */
30
+ export interface CmuxSuccessResponse<T = Json> {
31
+ id?: Json;
32
+ ok: true;
33
+ data: T;
34
+ }
35
+ export type CmuxErrorDelivery = "known-not-delivered" | "ambiguous";
36
+ /** A failed command response envelope. */
37
+ export interface CmuxFailureResponse {
38
+ id?: Json;
39
+ ok: false;
40
+ error: string;
41
+ /** Additive machine-readable classification for expected command failures. */
42
+ error_code?: string;
43
+ error_delivery?: CmuxErrorDelivery;
44
+ }
45
+ /** The canonical command response envelope. */
46
+ export type CmuxResponse<T = Json> = CmuxSuccessResponse<T> | CmuxFailureResponse;
47
+ /** Split orientation used by canonical and declarative layouts. */
48
+ export type SplitDirection = "right" | "down";
49
+ /** Four-way pane navigation direction. */
50
+ export type PaneDirection = "left" | "right" | "up" | "down";
51
+ /** Notification severity. */
52
+ export type NotificationLevel = "info" | "warning" | "error";
53
+ /** An agent's reported lifecycle state. */
54
+ export type AgentState = "working" | "blocked" | "idle" | "done" | "unknown";
55
+ /** The authority that produced an agent record. */
56
+ export type AgentSource = "detected" | "socket" | "hook";
57
+ /** A source accepted by `report-agent`. */
58
+ export type AgentReportSource = "socket" | "hook";
59
+ /** One authoritative agent status record. */
60
+ export interface AgentRecord {
61
+ surface: Id;
62
+ state: AgentState;
63
+ source: AgentSource;
64
+ session: string | null;
65
+ updated_at_ms: number;
66
+ }
67
+ /** One posted mux notification. */
68
+ export interface Notification {
69
+ notification: Id;
70
+ title: string;
71
+ body: string;
72
+ level: NotificationLevel;
73
+ surface: Id | null;
74
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,349 @@
1
+ import type { AgentSource, AgentState, Base64, ColorHex, Id, NotificationLevel } from "./common.js";
2
+ import type { ClientTransport } from "./commands.js";
3
+ import type { RenderDeltaEvent, RenderStateEvent } from "./render.js";
4
+ import type { Pane, Screen, Tab, Workspace } from "./tree.js";
5
+ export interface TreeChangedEvent {
6
+ event: "tree-changed";
7
+ }
8
+ export interface LayoutChangedEvent {
9
+ event: "layout-changed";
10
+ screen: Id;
11
+ }
12
+ export interface SurfaceOutputEvent {
13
+ event: "surface-output";
14
+ surface: Id;
15
+ }
16
+ /** `offset` is the row offset used by the scrollbar geometry. */
17
+ export interface ScrollChangedEvent {
18
+ event: "scroll-changed";
19
+ surface: Id;
20
+ offset: number;
21
+ at_bottom: boolean;
22
+ }
23
+ export interface SurfaceResizedEvent {
24
+ event: "surface-resized";
25
+ surface: Id;
26
+ cols: number;
27
+ rows: number;
28
+ reservation_id?: number | null;
29
+ }
30
+ export interface SurfaceResizeFailedEvent {
31
+ event: "surface-resize-failed";
32
+ surface: Id;
33
+ cols: number;
34
+ rows: number;
35
+ error: string;
36
+ retry_after_ms: number | null;
37
+ reservation_id?: number | null;
38
+ }
39
+ export interface SurfaceExitedEvent {
40
+ event: "surface-exited";
41
+ surface: Id;
42
+ }
43
+ export interface TitleChangedEvent {
44
+ event: "title-changed";
45
+ surface: Id;
46
+ title?: string;
47
+ }
48
+ export interface BellEvent {
49
+ event: "bell";
50
+ surface: Id;
51
+ }
52
+ export interface NotificationEvent {
53
+ event: "notification";
54
+ notification: Id;
55
+ title: string;
56
+ body: string;
57
+ level: NotificationLevel;
58
+ surface: Id | null;
59
+ }
60
+ export interface ConfigReloadRequestedEvent {
61
+ event: "config-reload-requested";
62
+ }
63
+ export interface WindowTitleRequestedEvent {
64
+ event: "window-title-requested";
65
+ title: string;
66
+ }
67
+ export interface ClientAttachedEvent {
68
+ event: "client-attached";
69
+ client: Id;
70
+ transport: ClientTransport;
71
+ name: string | null;
72
+ kind: string | null;
73
+ }
74
+ export interface ClientChangedEvent {
75
+ event: "client-changed";
76
+ client: Id;
77
+ name: string | null;
78
+ kind: string | null;
79
+ }
80
+ export interface ClientDetachedEvent {
81
+ event: "client-detached";
82
+ client: Id;
83
+ }
84
+ export interface TerminalRegistryChangedEvent {
85
+ event: "terminal-registry-changed";
86
+ registry_id: string;
87
+ generation: string;
88
+ terminal_revision: number;
89
+ refetch: "terminal-events-or-list-terminals";
90
+ }
91
+ export interface EmptyEvent {
92
+ event: "empty";
93
+ }
94
+ export interface WorkspaceAddedEvent {
95
+ event: "workspace-added";
96
+ workspace: Id;
97
+ index: number;
98
+ /** Absent when the server does not advertise `workspace-registry-v1`. */
99
+ workspace_revision?: number;
100
+ entity: Workspace;
101
+ }
102
+ export interface WorkspaceClosedEvent {
103
+ event: "workspace-closed";
104
+ workspace: Id;
105
+ index: number;
106
+ /** Absent when the server does not advertise `workspace-registry-v1`. */
107
+ workspace_revision?: number;
108
+ entity: Workspace;
109
+ }
110
+ export interface WorkspaceRenamedEvent {
111
+ event: "workspace-renamed";
112
+ workspace: Id;
113
+ /** Absent when the server does not advertise `workspace-registry-v1`. */
114
+ workspace_revision?: number;
115
+ entity: Workspace;
116
+ }
117
+ export interface WorkspaceMovedEvent {
118
+ event: "workspace-moved";
119
+ workspace: Id;
120
+ index: number;
121
+ workspace_revision: number;
122
+ entity: Workspace & {
123
+ key: string;
124
+ };
125
+ }
126
+ export interface ScreenAddedEvent {
127
+ event: "screen-added";
128
+ workspace: Id;
129
+ screen: Id;
130
+ index: number;
131
+ entity: Screen;
132
+ }
133
+ export interface ScreenClosedEvent {
134
+ event: "screen-closed";
135
+ workspace: Id;
136
+ screen: Id;
137
+ index: number;
138
+ entity: Screen;
139
+ }
140
+ export interface ScreenRenamedEvent {
141
+ event: "screen-renamed";
142
+ workspace: Id;
143
+ screen: Id;
144
+ entity: Screen;
145
+ }
146
+ export interface PaneAddedEvent {
147
+ event: "pane-added";
148
+ workspace: Id;
149
+ screen: Id;
150
+ pane: Id;
151
+ index: number;
152
+ entity: Pane;
153
+ }
154
+ export interface PaneClosedEvent {
155
+ event: "pane-closed";
156
+ workspace: Id;
157
+ screen: Id;
158
+ pane: Id;
159
+ index: number;
160
+ entity: Pane;
161
+ }
162
+ export interface TabAddedEvent {
163
+ event: "tab-added";
164
+ workspace: Id;
165
+ screen: Id;
166
+ pane: Id;
167
+ surface: Id;
168
+ index: number;
169
+ entity: Tab;
170
+ }
171
+ export interface TabClosedEvent {
172
+ event: "tab-closed";
173
+ workspace: Id;
174
+ screen: Id;
175
+ pane: Id;
176
+ surface: Id;
177
+ index: number;
178
+ entity: Tab;
179
+ }
180
+ export interface TabRenamedEvent {
181
+ event: "tab-renamed";
182
+ workspace: Id;
183
+ screen: Id;
184
+ pane: Id;
185
+ surface: Id;
186
+ entity: Tab;
187
+ }
188
+ /** Protocol v7 tree lifecycle deltas. */
189
+ export type TreeDeltaEvent = WorkspaceAddedEvent | WorkspaceClosedEvent | WorkspaceRenamedEvent | WorkspaceMovedEvent | ScreenAddedEvent | ScreenClosedEvent | ScreenRenamedEvent | PaneAddedEvent | PaneClosedEvent | TabAddedEvent | TabClosedEvent | TabRenamedEvent;
190
+ /** Effective special colors for an attached terminal surface. */
191
+ export interface TerminalColors {
192
+ fg: ColorHex | null;
193
+ bg: ColorHex | null;
194
+ cursor: ColorHex | null;
195
+ selection_bg: ColorHex | null;
196
+ selection_fg: ColorHex | null;
197
+ /** Protocol v6 additive extension. Older servers omit this field. */
198
+ cursor_style?: "block" | "underline" | "bar" | null;
199
+ /** Protocol v6 additive extension. Older servers omit this field. */
200
+ cursor_blink?: boolean | null;
201
+ /** Protocol v7 sparse application-authored OSC 4 overrides by palette index. */
202
+ palette?: Record<string, ColorHex>;
203
+ }
204
+ /** Initial base64 VT replay for an attached PTY surface. */
205
+ export interface VtStateEvent {
206
+ event: "vt-state";
207
+ surface: Id;
208
+ cols: number;
209
+ rows: number;
210
+ data: Base64;
211
+ /** Protocol v6 additive extension. Older servers omit this field. */
212
+ colors?: TerminalColors;
213
+ }
214
+ /** Live base64 PTY bytes after the attach snapshot. */
215
+ export interface OutputEvent {
216
+ event: "output";
217
+ surface: Id;
218
+ data: Base64;
219
+ /** Present when output and its complete color state are one transition. */
220
+ colors?: TerminalColors;
221
+ }
222
+ interface ResizedEventBase {
223
+ event: "resized";
224
+ surface: Id;
225
+ cols: number;
226
+ rows: number;
227
+ /** Protocol v7 theme-portable color snapshot for the replacement replay. Older servers omit it. */
228
+ colors?: TerminalColors;
229
+ }
230
+ /** A replacement replay using the protocol-v7 field or protocol-v6 compatibility field. */
231
+ export type ResizedEvent = ResizedEventBase & ({
232
+ replay: Base64;
233
+ data?: Base64;
234
+ } | {
235
+ data: Base64;
236
+ replay?: Base64;
237
+ });
238
+ export interface DetachedEvent {
239
+ event: "detached";
240
+ surface: Id;
241
+ }
242
+ export interface OverflowEvent {
243
+ event: "overflow";
244
+ error: string;
245
+ scope?: "surface";
246
+ surface?: Id;
247
+ }
248
+ /** Updated effective special colors for this attach stream's surface. */
249
+ export interface ColorsChangedEvent extends TerminalColors {
250
+ event: "colors-changed";
251
+ /** Protocol v7 adds the subject id; protocol v6 servers omit it. */
252
+ surface?: Id;
253
+ }
254
+ export interface BrowserFrame {
255
+ seq: number;
256
+ /** CSS viewport width used for browser input mapping, or 0 when CDP omits it. */
257
+ width: number;
258
+ /** CSS viewport height used for browser input mapping, or 0 when CDP omits it. */
259
+ height: number;
260
+ /** Encoded PNG width. Older servers omit this field. */
261
+ image_width?: number;
262
+ /** Encoded PNG height. Older servers omit this field. */
263
+ image_height?: number;
264
+ data: Base64;
265
+ }
266
+ export interface BrowserStateEvent {
267
+ event: "browser-state";
268
+ surface: Id;
269
+ cols: number;
270
+ rows: number;
271
+ url: string;
272
+ title: string;
273
+ status: string;
274
+ error: string | null;
275
+ frames_stalled: boolean;
276
+ frame?: BrowserFrame | null;
277
+ }
278
+ export interface BrowserFrameEvent extends BrowserFrame {
279
+ event: "frame";
280
+ surface: Id;
281
+ }
282
+ /** Proposed event retained for forward-compatible protocol v6 clients. */
283
+ export interface AgentStateChangedEvent {
284
+ event: "agent-state-changed";
285
+ surface: Id;
286
+ previous: AgentState | null;
287
+ state: AgentState;
288
+ source: AgentSource;
289
+ session: string | null;
290
+ updated_at_ms: number;
291
+ }
292
+ /** Proposed notification event shape with its creation timestamp. */
293
+ export interface ProposedNotificationEvent extends NotificationEvent {
294
+ created_at_ms: number;
295
+ }
296
+ /** A forward-compatible event that is not known to this SDK version. */
297
+ export interface UnknownEvent {
298
+ event: string;
299
+ [key: string]: unknown;
300
+ }
301
+ /** All currently implemented subscribe event payloads. */
302
+ export type KnownSubscribeEvent = TreeDeltaEvent | TreeChangedEvent | LayoutChangedEvent | SurfaceOutputEvent | ScrollChangedEvent | SurfaceResizedEvent | SurfaceResizeFailedEvent | SurfaceExitedEvent | TitleChangedEvent | BellEvent | NotificationEvent | ConfigReloadRequestedEvent | WindowTitleRequestedEvent | ClientAttachedEvent | ClientChangedEvent | ClientDetachedEvent | TerminalRegistryChangedEvent | EmptyEvent | OverflowEvent;
303
+ /** Subscribe events, including unknown future event names. */
304
+ export type SubscribeEvent = KnownSubscribeEvent | UnknownEvent;
305
+ /** All currently implemented attach event payloads. */
306
+ export type KnownAttachEvent = VtStateEvent | OutputEvent | ResizedEvent | ColorsChangedEvent | BrowserStateEvent | BrowserFrameEvent | RenderStateEvent | RenderDeltaEvent | ScrollChangedEvent | DetachedEvent | OverflowEvent;
307
+ /** Wire-format attach events, including unknown future event names. */
308
+ export type AttachEvent = KnownAttachEvent | UnknownEvent;
309
+ /** Every known implemented subscribe or attach event. */
310
+ export type KnownCmuxEvent = KnownSubscribeEvent | KnownAttachEvent | AgentStateChangedEvent | ProposedNotificationEvent;
311
+ /** Every cmux event, discriminated by `event`, with an unknown-event fallback. */
312
+ export type CmuxEvent = KnownCmuxEvent | UnknownEvent;
313
+ /** A decoded initial replay yielded by `attachSurface()`. */
314
+ export interface DecodedVtStateEvent extends Omit<VtStateEvent, "data"> {
315
+ data: Uint8Array;
316
+ }
317
+ /** Decoded live PTY bytes yielded by `attachSurface()`. */
318
+ export interface DecodedOutputEvent extends Omit<OutputEvent, "data"> {
319
+ data: Uint8Array;
320
+ }
321
+ /** A decoded replacement replay yielded by `attachSurface()`. */
322
+ export interface DecodedResizedEvent extends Omit<ResizedEvent, "data" | "replay"> {
323
+ data: Uint8Array;
324
+ /** @deprecated Use `data`. Retained for compatibility with early protocol-v6 SDK builds. */
325
+ replay: Uint8Array;
326
+ }
327
+ /** A special-color update yielded by `attachSurface()`. */
328
+ export type DecodedColorsChangedEvent = ColorsChangedEvent;
329
+ /** Browser frame dimensions after the client fills legacy CSS-size defaults. */
330
+ export interface DecodedBrowserFrame extends BrowserFrame {
331
+ image_width: number;
332
+ image_height: number;
333
+ }
334
+ /** A browser-state event whose optional frame has normalized image dimensions. */
335
+ export interface DecodedBrowserStateEvent extends Omit<BrowserStateEvent, "frame"> {
336
+ frame?: DecodedBrowserFrame | null;
337
+ }
338
+ /** A frame event with normalized image dimensions. */
339
+ export interface DecodedBrowserFrameEvent extends BrowserFrameEvent {
340
+ image_width: number;
341
+ image_height: number;
342
+ }
343
+ /** Attach events as yielded by the client after base64 decoding. */
344
+ export type DecodedAttachEvent = DecodedVtStateEvent | DecodedOutputEvent | DecodedResizedEvent | DecodedColorsChangedEvent | DecodedBrowserStateEvent | DecodedBrowserFrameEvent | ScrollChangedEvent | DetachedEvent | OverflowEvent | UnknownEvent;
345
+ /** Known events yielded by a protocol v7 render attachment. */
346
+ export type KnownRenderAttachEvent = RenderStateEvent | RenderDeltaEvent | ScrollChangedEvent | DetachedEvent | OverflowEvent;
347
+ /** Render attachment events, including unknown future event names. */
348
+ export type RenderAttachEvent = KnownRenderAttachEvent | UnknownEvent;
349
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from "./common.js";
2
+ export * from "./tree.js";
3
+ export * from "./render.js";
4
+ export * from "./commands.js";
5
+ export * from "./events.js";
@@ -0,0 +1,5 @@
1
+ export * from "./common.js";
2
+ export * from "./tree.js";
3
+ export * from "./render.js";
4
+ export * from "./commands.js";
5
+ export * from "./events.js";
@@ -0,0 +1,49 @@
1
+ import type { ColorHex, Id, Size } from "./common.js";
2
+ /** Exact underline style for a terminal render run. */
3
+ export type RenderUnderline = "single" | "double" | "curly" | "dotted" | "dashed";
4
+ /** One maximally coalesced span of styled terminal cells. */
5
+ export interface RenderRun {
6
+ text: string;
7
+ fg: ColorHex | null;
8
+ bg: ColorHex | null;
9
+ attrs: number;
10
+ underline?: RenderUnderline;
11
+ width_hint?: number;
12
+ }
13
+ /** One zero-based row in a viewport or scrollback page. */
14
+ export interface RenderRow {
15
+ row: number;
16
+ runs: RenderRun[];
17
+ }
18
+ /** Authoritative terminal cursor state for a render frame. */
19
+ export interface RenderCursor {
20
+ x: number;
21
+ y: number;
22
+ style: "block" | "underline" | "bar";
23
+ blink: boolean;
24
+ visible: boolean;
25
+ color: ColorHex | null;
26
+ }
27
+ /** Initial complete viewport snapshot for a render attachment. */
28
+ export interface RenderStateEvent {
29
+ event: "render-state";
30
+ surface: Id;
31
+ size: Size;
32
+ cursor: RenderCursor;
33
+ default_fg: ColorHex;
34
+ default_bg: ColorHex;
35
+ scrollback_rows: number;
36
+ rows: RenderRow[];
37
+ }
38
+ /** One render frame containing dirty rows or a full viewport replacement. */
39
+ export interface RenderDeltaEvent {
40
+ event: "render-delta";
41
+ surface: Id;
42
+ cursor: RenderCursor;
43
+ full: boolean;
44
+ size?: Size;
45
+ default_fg?: ColorHex;
46
+ default_bg?: ColorHex;
47
+ scrollback_rows?: number;
48
+ rows: RenderRow[];
49
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,95 @@
1
+ import type { Id, Size, SplitDirection } from "./common.js";
2
+ /** The canonical pane split tree. */
3
+ export type Layout = {
4
+ type: "leaf";
5
+ pane: Id;
6
+ } | {
7
+ type: "split";
8
+ /** Stable split id. Absent only when connected to a pre-v8 server. */
9
+ split?: Id;
10
+ dir: SplitDirection;
11
+ ratio: number;
12
+ a: Layout;
13
+ b: Layout;
14
+ } | {
15
+ type: "stack";
16
+ panes: [Id, ...Id[]];
17
+ expanded: Id;
18
+ };
19
+ /** A declarative split tree used by `apply-layout`. */
20
+ export type DeclarativeLayout = {
21
+ type: "leaf";
22
+ cwd?: string | null;
23
+ command?: string[] | null;
24
+ } | {
25
+ type: "split";
26
+ dir: SplitDirection;
27
+ ratio: number;
28
+ a: DeclarativeLayout;
29
+ b: DeclarativeLayout;
30
+ } | {
31
+ type: "stack";
32
+ panes: [Id, ...Id[]];
33
+ expanded: Id;
34
+ };
35
+ /** A live PTY or browser tab. */
36
+ export interface Tab {
37
+ surface: Id;
38
+ kind: "pty" | "browser";
39
+ browser_source: "external" | "launched" | null;
40
+ name: string | null;
41
+ title: string;
42
+ size: Size | null;
43
+ dead: boolean;
44
+ }
45
+ /** A live pane containing tabs. */
46
+ export interface LivePane {
47
+ id: Id;
48
+ name: string | null;
49
+ active_tab: number;
50
+ focused_at?: number;
51
+ tabs: Tab[];
52
+ }
53
+ /** A defensive placeholder for a tree leaf whose pane state is missing. */
54
+ export interface DeadPane {
55
+ id: Id;
56
+ dead: true;
57
+ }
58
+ /** A pane in a tree snapshot. */
59
+ export type Pane = LivePane | DeadPane;
60
+ /** One appended horizontal viewport column and its frontend-relative width. */
61
+ export interface ViewportSplit {
62
+ split: Id;
63
+ width: number;
64
+ }
65
+ /** A named split-tree screen. */
66
+ export interface Screen {
67
+ id: Id;
68
+ name: string | null;
69
+ active: boolean;
70
+ active_pane: Id;
71
+ zoomed_pane: Id | null;
72
+ layout: Layout;
73
+ /** First viewport column width; absent on ordinary tiled screens. */
74
+ viewport_base_width?: number;
75
+ /** Appended viewport columns; absent on ordinary tiled screens. */
76
+ viewport_splits?: ViewportSplit[];
77
+ panes: Pane[];
78
+ }
79
+ /** A workspace containing one or more screens. */
80
+ export interface Workspace {
81
+ id: Id;
82
+ /** Stable registry key. Absent without the `workspace-registry-v1` capability. */
83
+ key?: string;
84
+ name: string;
85
+ active: boolean;
86
+ screens: Screen[];
87
+ }
88
+ /** The complete workspace, screen, pane, tab, and layout snapshot. */
89
+ export interface Tree {
90
+ /** Ordered-registry revision. Absent without the `workspace-registry-v1` capability. */
91
+ workspace_revision?: number;
92
+ /** Live pane-membership revision. Absent on older servers. */
93
+ pane_revision?: number;
94
+ workspaces: Workspace[];
95
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ /** Removes a transport event listener. */
2
+ export type Unsubscribe = () => void;
3
+ /** Transport-independent delivery of complete JSON messages. */
4
+ export interface Transport {
5
+ /** Sends one complete JSON message. */
6
+ send(json: string): void;
7
+ /** Observes one complete received JSON message. */
8
+ onMessage(handler: (json: string) => void): Unsubscribe;
9
+ /** Observes transport closure. */
10
+ onClose(handler: () => void): Unsubscribe;
11
+ /** Observes transport failures. */
12
+ onError(handler: (error: Error) => void): Unsubscribe;
13
+ /** Closes the transport and releases its listeners. */
14
+ close(): void;
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ /** @deprecated Import protocol and client types from the package root. */
2
+ export * from "./protocol/index.js";
3
+ export type { CmuxClientOptions, AttachSurfaceOptions, NewBrowserTabOptions, NewScreenOptions, NewTabOptions, NewPaneRightOptions, NewWorkspaceOptions, ResizeTransactionOptions, SelectOptions, SelectTabOptions, SendOptions, SplitOptions, SubscribeOptions, } from "./client.js";
4
+ export type { ClientOptions } from "./node-client.js";
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import protocol and client types from the package root. */
2
+ export * from "./protocol/index.js";