@vibesdotdev/terminal-client 0.0.0-stage → 1.0.0-rc.2

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.
Files changed (195) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +102 -2
  3. package/dist/ansi/index.d.ts +11 -0
  4. package/dist/ansi/index.d.ts.map +1 -0
  5. package/dist/ansi/index.js +11 -0
  6. package/dist/ansi/index.js.map +1 -0
  7. package/dist/ansi/keymap.d.ts +77 -0
  8. package/dist/ansi/keymap.d.ts.map +1 -0
  9. package/dist/ansi/keymap.js +257 -0
  10. package/dist/ansi/keymap.js.map +1 -0
  11. package/dist/api-client-plugin.d.ts +4 -0
  12. package/dist/api-client-plugin.d.ts.map +1 -0
  13. package/dist/api-client-plugin.js +16 -0
  14. package/dist/api-client-plugin.js.map +1 -0
  15. package/dist/client/http-session.d.ts +44 -0
  16. package/dist/client/http-session.d.ts.map +1 -0
  17. package/dist/client/http-session.js +457 -0
  18. package/dist/client/http-session.js.map +1 -0
  19. package/dist/client/index.d.ts +8 -0
  20. package/dist/client/index.d.ts.map +1 -0
  21. package/dist/client/index.js +8 -0
  22. package/dist/client/index.js.map +1 -0
  23. package/dist/client.d.ts +56 -0
  24. package/dist/client.d.ts.map +1 -0
  25. package/dist/client.js +169 -0
  26. package/dist/client.js.map +1 -0
  27. package/dist/index.d.ts +14 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +14 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/pty-bridge/index.d.ts +15 -0
  32. package/dist/pty-bridge/index.d.ts.map +1 -0
  33. package/dist/pty-bridge/index.js +15 -0
  34. package/dist/pty-bridge/index.js.map +1 -0
  35. package/dist/pty-bridge/protocol.d.ts +6 -0
  36. package/dist/pty-bridge/protocol.d.ts.map +1 -0
  37. package/dist/pty-bridge/protocol.js +6 -0
  38. package/dist/pty-bridge/protocol.js.map +1 -0
  39. package/dist/pty-bridge/server.d.ts +7 -0
  40. package/dist/pty-bridge/server.d.ts.map +1 -0
  41. package/dist/pty-bridge/server.js +9 -0
  42. package/dist/pty-bridge/server.js.map +1 -0
  43. package/dist/remote-session.d.ts +51 -0
  44. package/dist/remote-session.d.ts.map +1 -0
  45. package/dist/remote-session.js +326 -0
  46. package/dist/remote-session.js.map +1 -0
  47. package/dist/schemas/http.d.ts +61 -0
  48. package/dist/schemas/http.d.ts.map +1 -0
  49. package/dist/schemas/http.js +45 -0
  50. package/dist/schemas/http.js.map +1 -0
  51. package/dist/schemas/remote.d.ts +25 -0
  52. package/dist/schemas/remote.d.ts.map +1 -0
  53. package/dist/schemas/remote.js +23 -0
  54. package/dist/schemas/remote.js.map +1 -0
  55. package/dist/schemas/session.d.ts +26 -0
  56. package/dist/schemas/session.d.ts.map +1 -0
  57. package/dist/schemas/session.js +17 -0
  58. package/dist/schemas/session.js.map +1 -0
  59. package/dist/schemas/store.d.ts +29 -0
  60. package/dist/schemas/store.d.ts.map +1 -0
  61. package/dist/schemas/store.js +22 -0
  62. package/dist/schemas/store.js.map +1 -0
  63. package/dist/schemas/terminal.d.ts +296 -0
  64. package/dist/schemas/terminal.d.ts.map +1 -0
  65. package/dist/schemas/terminal.js +243 -0
  66. package/dist/schemas/terminal.js.map +1 -0
  67. package/dist/server/index.d.ts +9 -0
  68. package/dist/server/index.d.ts.map +1 -0
  69. package/dist/server/index.js +9 -0
  70. package/dist/server/index.js.map +1 -0
  71. package/dist/server/session-store.d.ts +176 -0
  72. package/dist/server/session-store.d.ts.map +1 -0
  73. package/dist/server/session-store.js +462 -0
  74. package/dist/server/session-store.js.map +1 -0
  75. package/dist/server/sse-stream.d.ts +32 -0
  76. package/dist/server/sse-stream.d.ts.map +1 -0
  77. package/dist/server/sse-stream.js +87 -0
  78. package/dist/server/sse-stream.js.map +1 -0
  79. package/dist/svelte/HostPicker.svelte +256 -0
  80. package/dist/svelte/HostPicker.svelte.d.ts +30 -0
  81. package/dist/svelte/HostPicker.svelte.d.ts.map +1 -0
  82. package/dist/svelte/README.md +52 -0
  83. package/dist/svelte/ReconnectBanner.svelte +88 -0
  84. package/dist/svelte/ReconnectBanner.svelte.d.ts +16 -0
  85. package/dist/svelte/ReconnectBanner.svelte.d.ts.map +1 -0
  86. package/dist/svelte/SessionTabs.svelte +192 -0
  87. package/dist/svelte/SessionTabs.svelte.d.ts +17 -0
  88. package/dist/svelte/SessionTabs.svelte.d.ts.map +1 -0
  89. package/dist/svelte/Terminal.svelte +567 -0
  90. package/dist/svelte/Terminal.svelte.d.ts +25 -0
  91. package/dist/svelte/Terminal.svelte.d.ts.map +1 -0
  92. package/dist/svelte/TerminalMobileToolbar.svelte +56 -0
  93. package/dist/svelte/TerminalMobileToolbar.svelte.d.ts +14 -0
  94. package/dist/svelte/TerminalMobileToolbar.svelte.d.ts.map +1 -0
  95. package/dist/svelte/TerminalWorkspace.svelte +562 -0
  96. package/dist/svelte/TerminalWorkspace.svelte.d.ts +25 -0
  97. package/dist/svelte/TerminalWorkspace.svelte.d.ts.map +1 -0
  98. package/dist/svelte/ambient.d.ts +9 -0
  99. package/dist/svelte/docs/terminal-svelte.docs.descriptor.d.ts +4 -0
  100. package/dist/svelte/docs/terminal-svelte.docs.descriptor.d.ts.map +1 -0
  101. package/dist/svelte/docs/terminal-svelte.docs.descriptor.js +74 -0
  102. package/dist/svelte/index.d.ts +27 -0
  103. package/dist/svelte/index.d.ts.map +1 -0
  104. package/dist/svelte/index.js +26 -0
  105. package/dist/svelte/styles.css +8 -0
  106. package/dist/svelte/terminal-session-authority.d.ts +17 -0
  107. package/dist/svelte/terminal-session-authority.d.ts.map +1 -0
  108. package/dist/svelte/terminal-session-authority.js +25 -0
  109. package/dist/svelte/terminal-svelte.plugin.d.ts +19 -0
  110. package/dist/svelte/terminal-svelte.plugin.d.ts.map +1 -0
  111. package/dist/svelte/terminal-svelte.plugin.js +42 -0
  112. package/dist/svelte/terminal-theme.d.ts +11 -0
  113. package/dist/svelte/terminal-theme.d.ts.map +1 -0
  114. package/dist/svelte/terminal-theme.js +116 -0
  115. package/dist/svelte/tool-widgets/TerminalToolCard.svelte +65 -0
  116. package/dist/svelte/tool-widgets/TerminalToolCard.svelte.d.ts +5 -0
  117. package/dist/svelte/tool-widgets/TerminalToolCard.svelte.d.ts.map +1 -0
  118. package/dist/svelte/tool-widgets/terminal-tool-card.d.ts +25 -0
  119. package/dist/svelte/tool-widgets/terminal-tool-card.d.ts.map +1 -0
  120. package/dist/svelte/tool-widgets/terminal-tool-card.js +116 -0
  121. package/dist/svelte/types.d.ts +160 -0
  122. package/dist/svelte/types.d.ts.map +1 -0
  123. package/dist/svelte/types.js +51 -0
  124. package/dist/svelte/workspace.d.ts +3 -0
  125. package/dist/svelte/workspace.d.ts.map +1 -0
  126. package/dist/svelte/workspace.js +2 -0
  127. package/dist/terminal-client.plugin.d.ts +3 -0
  128. package/dist/terminal-client.plugin.d.ts.map +1 -0
  129. package/dist/terminal-client.plugin.js +3 -0
  130. package/dist/terminal-client.plugin.js.map +1 -0
  131. package/dist/terminal-runtime.d.ts +30 -0
  132. package/dist/terminal-runtime.d.ts.map +1 -0
  133. package/dist/terminal-runtime.js +673 -0
  134. package/dist/terminal-runtime.js.map +1 -0
  135. package/dist/terminal.consumer.plugin.d.ts +14 -0
  136. package/dist/terminal.consumer.plugin.d.ts.map +1 -0
  137. package/dist/terminal.consumer.plugin.js +31 -0
  138. package/dist/terminal.consumer.plugin.js.map +1 -0
  139. package/dist/tools/terminal.impl.consumer.d.ts +11 -0
  140. package/dist/tools/terminal.impl.consumer.d.ts.map +1 -0
  141. package/dist/tools/terminal.impl.consumer.js +20 -0
  142. package/dist/tools/terminal.impl.consumer.js.map +1 -0
  143. package/dist/tools/terminal.schemas.d.ts +3 -0
  144. package/dist/tools/terminal.schemas.d.ts.map +1 -0
  145. package/dist/tools/terminal.schemas.js +3 -0
  146. package/dist/tools/terminal.schemas.js.map +1 -0
  147. package/dist/tools/terminal.unified.descriptor.d.ts +218 -0
  148. package/dist/tools/terminal.unified.descriptor.d.ts.map +1 -0
  149. package/dist/tools/terminal.unified.descriptor.js +36 -0
  150. package/dist/tools/terminal.unified.descriptor.js.map +1 -0
  151. package/dist/tui/index.d.ts +9 -0
  152. package/dist/tui/index.d.ts.map +1 -0
  153. package/dist/tui/index.js +8 -0
  154. package/dist/tui/index.js.map +1 -0
  155. package/dist/tui/terminal-open.descriptor.d.ts +9 -0
  156. package/dist/tui/terminal-open.descriptor.d.ts.map +1 -0
  157. package/dist/tui/terminal-open.descriptor.js +18 -0
  158. package/dist/tui/terminal-open.descriptor.js.map +1 -0
  159. package/dist/tui/terminal-open.impl.consumer.d.ts +9 -0
  160. package/dist/tui/terminal-open.impl.consumer.d.ts.map +1 -0
  161. package/dist/tui/terminal-open.impl.consumer.js +13 -0
  162. package/dist/tui/terminal-open.impl.consumer.js.map +1 -0
  163. package/dist/tui/terminal-registry.descriptor.d.ts +11 -0
  164. package/dist/tui/terminal-registry.descriptor.d.ts.map +1 -0
  165. package/dist/tui/terminal-registry.descriptor.js +17 -0
  166. package/dist/tui/terminal-registry.descriptor.js.map +1 -0
  167. package/dist/tui/terminal-registry.impl.consumer.d.ts +71 -0
  168. package/dist/tui/terminal-registry.impl.consumer.d.ts.map +1 -0
  169. package/dist/tui/terminal-registry.impl.consumer.js +190 -0
  170. package/dist/tui/terminal-registry.impl.consumer.js.map +1 -0
  171. package/dist/tui/terminal-tui.plugin.d.ts +10 -0
  172. package/dist/tui/terminal-tui.plugin.d.ts.map +1 -0
  173. package/dist/tui/terminal-tui.plugin.js +32 -0
  174. package/dist/tui/terminal-tui.plugin.js.map +1 -0
  175. package/dist/tui/terminal.descriptor.d.ts +10 -0
  176. package/dist/tui/terminal.descriptor.d.ts.map +1 -0
  177. package/dist/tui/terminal.descriptor.js +25 -0
  178. package/dist/tui/terminal.descriptor.js.map +1 -0
  179. package/dist/tui/terminal.impl.consumer.d.ts +14 -0
  180. package/dist/tui/terminal.impl.consumer.d.ts.map +1 -0
  181. package/dist/tui/terminal.impl.consumer.js +189 -0
  182. package/dist/tui/terminal.impl.consumer.js.map +1 -0
  183. package/dist/tui/terminal.state-key.d.ts +30 -0
  184. package/dist/tui/terminal.state-key.d.ts.map +1 -0
  185. package/dist/tui/terminal.state-key.js +9 -0
  186. package/dist/tui/terminal.state-key.js.map +1 -0
  187. package/dist/tui/terminal.state.d.ts +152 -0
  188. package/dist/tui/terminal.state.d.ts.map +1 -0
  189. package/dist/tui/terminal.state.js +149 -0
  190. package/dist/tui/terminal.state.js.map +1 -0
  191. package/dist/workspace.d.ts +155 -0
  192. package/dist/workspace.d.ts.map +1 -0
  193. package/dist/workspace.js +292 -0
  194. package/dist/workspace.js.map +1 -0
  195. package/package.json +228 -4
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Public types for `@vibesdotdev/terminal-client/svelte`.
3
+ *
4
+ * The `ExecutionSession` shape is OWNED BY L3 (`@vibesdotdev/kernel/execution`)
5
+ * and consumed here type-only — this lane MUST NOT vary it. We re-export the type
6
+ * so consumers can annotate the `session` prop without a direct dep on
7
+ * runtime-execution if they only need the type.
8
+ */
9
+ import type { ExecutionSession } from '@vibesdotdev/kernel/execution';
10
+ export type { ExecutionSession };
11
+ /**
12
+ * Terminal color theme tokens. Mirrors the subset of xterm.js's `ITheme` the
13
+ * component forwards. All optional; the component fills a vibes default palette.
14
+ */
15
+ export interface TerminalTheme {
16
+ background?: string;
17
+ foreground?: string;
18
+ cursor?: string;
19
+ cursorAccent?: string;
20
+ selectionBackground?: string;
21
+ /** Selection foreground color (xterm.js ITheme.selectionForeground). */
22
+ selectionForeground?: string;
23
+ black?: string;
24
+ red?: string;
25
+ green?: string;
26
+ yellow?: string;
27
+ blue?: string;
28
+ magenta?: string;
29
+ cyan?: string;
30
+ white?: string;
31
+ brightBlack?: string;
32
+ brightRed?: string;
33
+ brightGreen?: string;
34
+ brightYellow?: string;
35
+ brightBlue?: string;
36
+ brightMagenta?: string;
37
+ brightCyan?: string;
38
+ brightWhite?: string;
39
+ }
40
+ /**
41
+ * Props for `<Terminal>`.
42
+ *
43
+ * The component is transport-agnostic: it only ever sees an `ExecutionSession`.
44
+ * The consumer resolves that session — locally via
45
+ * `runtime.query('runtime/execution').resolve().session(...)` (or
46
+ * `terminal-client.openLocalSession`), or remotely via
47
+ * `terminal-client.openRemoteSession` (L9b, phase 4). The same component renders
48
+ * both; only `onDisconnect` differs (local sessions never fire it).
49
+ */
50
+ export interface TerminalProps {
51
+ /**
52
+ * A live execution session whose byte stream this component renders.
53
+ * May be null/absent while the parent is still opening the session — the
54
+ * component boots xterm, fits, reports its grid via `onReady`, and shows the
55
+ * connecting skeleton until a session is attached. Opening the session at
56
+ * the `onReady` dimensions avoids a boot-time PTY resize entirely (Bun TUI
57
+ * children cache `process.stdout.columns`, so a post-boot resize is never
58
+ * observed by them — the session must START at the right size).
59
+ */
60
+ session?: ExecutionSession | null;
61
+ /**
62
+ * Fired once after the initial fit settles, with the fitted grid size.
63
+ * Parents should open their session with these cols/rows.
64
+ */
65
+ onReady?: (dims: {
66
+ cols: number;
67
+ rows: number;
68
+ }) => void;
69
+ /**
70
+ * Lock the xterm/PTY grid to these columns. When set with `rows`, FitAddon
71
+ * does not grow the session to the CSS container. Host-fitted columns then
72
+ * match the requested grid (e.g. `?cols=80&rows=24`).
73
+ */
74
+ cols?: number;
75
+ /**
76
+ * Lock the xterm/PTY grid to these rows. See `cols`.
77
+ */
78
+ rows?: number;
79
+ /**
80
+ * Fired after xterm has attached a live session and keystrokes/actions can
81
+ * reach the execution session. This is later than `onReady`, which only means
82
+ * the terminal has measured its grid.
83
+ */
84
+ onInputReady?: () => void;
85
+ /** Theme tokens; defaults to the vibes terminal palette. */
86
+ theme?: TerminalTheme;
87
+ /** Font family / size for the xterm renderer. */
88
+ font?: {
89
+ family?: string;
90
+ size?: number;
91
+ };
92
+ /** Extra class on the host element. */
93
+ class?: string;
94
+ /** Called when the session reports it has exited. */
95
+ onExit?: (result: {
96
+ exitCode: number | null;
97
+ }) => void;
98
+ /**
99
+ * Called when a *proxy* session's transport disconnects (remote only).
100
+ * Local sessions never fire this — remoteness is visible in behavior, not
101
+ * silent (Correction #1).
102
+ */
103
+ onDisconnect?: (reason: string) => void;
104
+ /**
105
+ * Read-only / observe mode. When true, keyboard input is NOT wired to the
106
+ * session: both PTY write paths (the xterm `onData` handler and the
107
+ * non-printing key-chord handler) are gated off, so the terminal renders the
108
+ * live byte stream but never sends keystrokes. The PTY output, fit/resize, and
109
+ * lifecycle paths are unaffected. Defaults to false (interactive).
110
+ *
111
+ * Non-breaking: existing callers that omit this get the prior interactive
112
+ * behavior.
113
+ */
114
+ readonly?: boolean;
115
+ }
116
+ /**
117
+ * A selectable host entry in the picker.
118
+ * `local: true` entries are rendered as "This machine — <name>".
119
+ */
120
+ export interface HostOption {
121
+ /** Unique host identifier (hostId for fleet hosts; 'local' for this machine). */
122
+ id: string;
123
+ /** Human-readable display name. */
124
+ name: string;
125
+ /** true when this host is the local machine (consumer-hq only). */
126
+ local?: boolean;
127
+ /** Runtime liveness status. */
128
+ status: 'online' | 'degraded' | 'offline' | 'unknown';
129
+ }
130
+ /**
131
+ * A tab entry representing a live (or recently exited) terminal session.
132
+ * Wire-compatible with `SessionMetadata` from `terminal-client/server/session-store`.
133
+ */
134
+ export interface TabSession {
135
+ id: string;
136
+ command: string;
137
+ /** Short display label for the host (e.g. host name, 'local'). */
138
+ hostLabel?: string;
139
+ startedAt: number;
140
+ /** True when no SSE subscriber is attached (PTY keeps running). */
141
+ detached: boolean;
142
+ /** True when the process has exited. */
143
+ exited: boolean;
144
+ }
145
+ /**
146
+ * The vibes terminal theme — zinc-dark palette.
147
+ * Colors sourced from tui/src/theme.semantic.ts `darkColors` (upstream).
148
+ * Hand-copied here to avoid a runtime dep on @vibesdotdev/tui.
149
+ */
150
+ export declare const VIBES_TERMINAL_THEME: Readonly<TerminalTheme>;
151
+ /**
152
+ * @deprecated Use `VIBES_TERMINAL_THEME` instead. Kept for back-compat.
153
+ * Will be removed in a future major version.
154
+ */
155
+ export declare const DEFAULT_TERMINAL_THEME: Readonly<TerminalTheme>;
156
+ export declare const DEFAULT_FONT: Readonly<{
157
+ family: string;
158
+ size: number;
159
+ }>;
160
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/svelte/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Public types for `@vibesdotdev/terminal-client/svelte`.
3
+ *
4
+ * The `ExecutionSession` shape is OWNED BY L3 (`@vibesdotdev/kernel/execution`)
5
+ * and consumed here type-only — this lane MUST NOT vary it. We re-export the type
6
+ * so consumers can annotate the `session` prop without a direct dep on
7
+ * runtime-execution if they only need the type.
8
+ */
9
+ /**
10
+ * The vibes terminal theme — zinc-dark palette.
11
+ * Colors sourced from tui/src/theme.semantic.ts `darkColors` (upstream).
12
+ * Hand-copied here to avoid a runtime dep on @vibesdotdev/tui.
13
+ */
14
+ export const VIBES_TERMINAL_THEME = Object.freeze({
15
+ // Surface
16
+ background: '#09090b',
17
+ foreground: '#fafafa',
18
+ // Cursor — block, zinc-200 on zinc-950
19
+ cursor: '#e4e4e7',
20
+ cursorAccent: '#09090b',
21
+ // Selection — zinc-900 bg, full-white fg for legibility
22
+ selectionBackground: '#1f1f23',
23
+ selectionForeground: '#fafafa',
24
+ // ANSI standard colors
25
+ black: '#27272a',
26
+ red: '#ff6467',
27
+ green: '#61d46a',
28
+ yellow: '#fab72a',
29
+ blue: '#28bbfe',
30
+ magenta: '#b794f6',
31
+ cyan: '#56cfd8',
32
+ white: '#9f9fa9',
33
+ // ANSI bright colors
34
+ brightBlack: '#71717b',
35
+ brightRed: '#ff8a8c',
36
+ brightGreen: '#7ce085',
37
+ brightYellow: '#ffc95a',
38
+ brightBlue: '#5fccff',
39
+ brightMagenta: '#cbb0fb',
40
+ brightCyan: '#7fdfe6',
41
+ brightWhite: '#fafafa'
42
+ });
43
+ /**
44
+ * @deprecated Use `VIBES_TERMINAL_THEME` instead. Kept for back-compat.
45
+ * Will be removed in a future major version.
46
+ */
47
+ export const DEFAULT_TERMINAL_THEME = VIBES_TERMINAL_THEME;
48
+ export const DEFAULT_FONT = Object.freeze({
49
+ family: '"SF Mono", Menlo, Consolas, "Liberation Mono", monospace',
50
+ size: 13
51
+ });
@@ -0,0 +1,3 @@
1
+ /** Compatibility surface; the rune-free workspace contract is universally owned. */
2
+ export * from '../workspace.ts';
3
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/svelte/workspace.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** Compatibility surface; the rune-free workspace contract is universally owned. */
2
+ export * from "../workspace.js";
@@ -0,0 +1,3 @@
1
+ /** Consumer compatibility entrypoint. Portable hosts compose ./api-client-plugin. */
2
+ export { default } from './terminal.consumer.plugin.ts';
3
+ //# sourceMappingURL=terminal-client.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-client.plugin.d.ts","sourceRoot":"","sources":["../src/terminal-client.plugin.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Consumer compatibility entrypoint. Portable hosts compose ./api-client-plugin. */
2
+ export { default } from "./terminal.consumer.plugin.js";
3
+ //# sourceMappingURL=terminal-client.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-client.plugin.js","sourceRoot":"","sources":["../src/terminal-client.plugin.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Terminal Unified Tool Implementation (consumer)
3
+ *
4
+ * `execute` / `spawn` call `runtime/execution` (pipes). `session` / `open` open
5
+ * a PTY via the per-runtime `TerminalSessionStore`. One store per runtime;
6
+ * PTY ownership is keyed on the caller's participant/connection. A spawned
7
+ * process is held per owner too: its `procId` is a handle `read`, `wait`,
8
+ * `list` and `close` accept, with its stdout/stderr kept in a backlog ring.
9
+ */
10
+ import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
11
+ import { type VibesRuntime } from '@vibesdotdev/kernel';
12
+ import type { ToolCallContext } from '@vibesdotdev/kernel/schemas/tool-call';
13
+ import { type TerminalInput, type TerminalOutput } from './tools/terminal.schemas.ts';
14
+ /** The kernel owns one terminal client and its lazy tool state per runtime. */
15
+ export declare class TerminalClient extends BaseRuntimeClient<VibesRuntime> {
16
+ private state;
17
+ private sequence;
18
+ private remoteAbortCleanup?;
19
+ private readonly stopRemoteSessions;
20
+ prepareRemoteSession(): void;
21
+ private readonly remoteSessions;
22
+ nextRemoteSessionId(hostId: string): string;
23
+ ownRemoteSession(close: () => void | Promise<void>): () => void;
24
+ /** Open the HTTP transport on this runtime; hosts select the semantic client once. */
25
+ openHttpSession(options: import('./schemas/http.ts').OpenHttpSessionOptions): Promise<import("./client/http-session.ts").OpenedHttpSession>;
26
+ execute(input: TerminalInput, ctx?: ToolCallContext): Promise<TerminalOutput>;
27
+ protected onDispose(): Promise<void>;
28
+ }
29
+ export default TerminalClient;
30
+ //# sourceMappingURL=terminal-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-runtime.d.ts","sourceRoot":"","sources":["../src/terminal-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EASN,KAAK,YAAY,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAU7E,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,cAAc,EAA2B,MAAM,6BAA6B,CAAC;AA6nBpI,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAClE,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,kBAAkB,CAAC,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAIjC;IAEF,oBAAoB,IAAI,IAAI;IAG5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAExE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3C,gBAAgB,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;IAK/D,sFAAsF;IAChF,eAAe,CAAC,OAAO,EAAE,OAAO,mBAAmB,EAAE,sBAAsB;IAsCjF,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;cAQ7D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAyB1C;AAED,eAAe,cAAc,CAAC"}