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

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 (201) 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 +263 -0
  80. package/dist/svelte/HostPicker.svelte.d.ts +36 -0
  81. package/dist/svelte/HostPicker.svelte.d.ts.map +1 -0
  82. package/dist/svelte/README.md +75 -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/TerminalHostWorkspace.svelte +264 -0
  93. package/dist/svelte/TerminalHostWorkspace.svelte.d.ts +59 -0
  94. package/dist/svelte/TerminalHostWorkspace.svelte.d.ts.map +1 -0
  95. package/dist/svelte/TerminalMobileToolbar.svelte +56 -0
  96. package/dist/svelte/TerminalMobileToolbar.svelte.d.ts +14 -0
  97. package/dist/svelte/TerminalMobileToolbar.svelte.d.ts.map +1 -0
  98. package/dist/svelte/TerminalWorkspace.svelte +562 -0
  99. package/dist/svelte/TerminalWorkspace.svelte.d.ts +25 -0
  100. package/dist/svelte/TerminalWorkspace.svelte.d.ts.map +1 -0
  101. package/dist/svelte/ambient.d.ts +9 -0
  102. package/dist/svelte/docs/terminal-svelte.docs.descriptor.d.ts +4 -0
  103. package/dist/svelte/docs/terminal-svelte.docs.descriptor.d.ts.map +1 -0
  104. package/dist/svelte/docs/terminal-svelte.docs.descriptor.js +74 -0
  105. package/dist/svelte/index.d.ts +29 -0
  106. package/dist/svelte/index.d.ts.map +1 -0
  107. package/dist/svelte/index.js +28 -0
  108. package/dist/svelte/styles.css +8 -0
  109. package/dist/svelte/terminal-host-workspace.d.ts +152 -0
  110. package/dist/svelte/terminal-host-workspace.d.ts.map +1 -0
  111. package/dist/svelte/terminal-host-workspace.js +335 -0
  112. package/dist/svelte/terminal-session-authority.d.ts +17 -0
  113. package/dist/svelte/terminal-session-authority.d.ts.map +1 -0
  114. package/dist/svelte/terminal-session-authority.js +25 -0
  115. package/dist/svelte/terminal-svelte.plugin.d.ts +21 -0
  116. package/dist/svelte/terminal-svelte.plugin.d.ts.map +1 -0
  117. package/dist/svelte/terminal-svelte.plugin.js +53 -0
  118. package/dist/svelte/terminal-theme.d.ts +11 -0
  119. package/dist/svelte/terminal-theme.d.ts.map +1 -0
  120. package/dist/svelte/terminal-theme.js +116 -0
  121. package/dist/svelte/tool-widgets/TerminalToolCard.svelte +65 -0
  122. package/dist/svelte/tool-widgets/TerminalToolCard.svelte.d.ts +5 -0
  123. package/dist/svelte/tool-widgets/TerminalToolCard.svelte.d.ts.map +1 -0
  124. package/dist/svelte/tool-widgets/terminal-tool-card.d.ts +25 -0
  125. package/dist/svelte/tool-widgets/terminal-tool-card.d.ts.map +1 -0
  126. package/dist/svelte/tool-widgets/terminal-tool-card.js +116 -0
  127. package/dist/svelte/types.d.ts +160 -0
  128. package/dist/svelte/types.d.ts.map +1 -0
  129. package/dist/svelte/types.js +51 -0
  130. package/dist/svelte/workspace.d.ts +3 -0
  131. package/dist/svelte/workspace.d.ts.map +1 -0
  132. package/dist/svelte/workspace.js +2 -0
  133. package/dist/terminal-client.plugin.d.ts +3 -0
  134. package/dist/terminal-client.plugin.d.ts.map +1 -0
  135. package/dist/terminal-client.plugin.js +3 -0
  136. package/dist/terminal-client.plugin.js.map +1 -0
  137. package/dist/terminal-runtime.d.ts +30 -0
  138. package/dist/terminal-runtime.d.ts.map +1 -0
  139. package/dist/terminal-runtime.js +673 -0
  140. package/dist/terminal-runtime.js.map +1 -0
  141. package/dist/terminal.consumer.plugin.d.ts +14 -0
  142. package/dist/terminal.consumer.plugin.d.ts.map +1 -0
  143. package/dist/terminal.consumer.plugin.js +31 -0
  144. package/dist/terminal.consumer.plugin.js.map +1 -0
  145. package/dist/tools/terminal.impl.consumer.d.ts +11 -0
  146. package/dist/tools/terminal.impl.consumer.d.ts.map +1 -0
  147. package/dist/tools/terminal.impl.consumer.js +20 -0
  148. package/dist/tools/terminal.impl.consumer.js.map +1 -0
  149. package/dist/tools/terminal.schemas.d.ts +3 -0
  150. package/dist/tools/terminal.schemas.d.ts.map +1 -0
  151. package/dist/tools/terminal.schemas.js +3 -0
  152. package/dist/tools/terminal.schemas.js.map +1 -0
  153. package/dist/tools/terminal.unified.descriptor.d.ts +218 -0
  154. package/dist/tools/terminal.unified.descriptor.d.ts.map +1 -0
  155. package/dist/tools/terminal.unified.descriptor.js +36 -0
  156. package/dist/tools/terminal.unified.descriptor.js.map +1 -0
  157. package/dist/tui/index.d.ts +9 -0
  158. package/dist/tui/index.d.ts.map +1 -0
  159. package/dist/tui/index.js +8 -0
  160. package/dist/tui/index.js.map +1 -0
  161. package/dist/tui/terminal-open.descriptor.d.ts +9 -0
  162. package/dist/tui/terminal-open.descriptor.d.ts.map +1 -0
  163. package/dist/tui/terminal-open.descriptor.js +18 -0
  164. package/dist/tui/terminal-open.descriptor.js.map +1 -0
  165. package/dist/tui/terminal-open.impl.consumer.d.ts +9 -0
  166. package/dist/tui/terminal-open.impl.consumer.d.ts.map +1 -0
  167. package/dist/tui/terminal-open.impl.consumer.js +13 -0
  168. package/dist/tui/terminal-open.impl.consumer.js.map +1 -0
  169. package/dist/tui/terminal-registry.descriptor.d.ts +11 -0
  170. package/dist/tui/terminal-registry.descriptor.d.ts.map +1 -0
  171. package/dist/tui/terminal-registry.descriptor.js +17 -0
  172. package/dist/tui/terminal-registry.descriptor.js.map +1 -0
  173. package/dist/tui/terminal-registry.impl.consumer.d.ts +71 -0
  174. package/dist/tui/terminal-registry.impl.consumer.d.ts.map +1 -0
  175. package/dist/tui/terminal-registry.impl.consumer.js +190 -0
  176. package/dist/tui/terminal-registry.impl.consumer.js.map +1 -0
  177. package/dist/tui/terminal-tui.plugin.d.ts +10 -0
  178. package/dist/tui/terminal-tui.plugin.d.ts.map +1 -0
  179. package/dist/tui/terminal-tui.plugin.js +32 -0
  180. package/dist/tui/terminal-tui.plugin.js.map +1 -0
  181. package/dist/tui/terminal.descriptor.d.ts +10 -0
  182. package/dist/tui/terminal.descriptor.d.ts.map +1 -0
  183. package/dist/tui/terminal.descriptor.js +25 -0
  184. package/dist/tui/terminal.descriptor.js.map +1 -0
  185. package/dist/tui/terminal.impl.consumer.d.ts +14 -0
  186. package/dist/tui/terminal.impl.consumer.d.ts.map +1 -0
  187. package/dist/tui/terminal.impl.consumer.js +189 -0
  188. package/dist/tui/terminal.impl.consumer.js.map +1 -0
  189. package/dist/tui/terminal.state-key.d.ts +30 -0
  190. package/dist/tui/terminal.state-key.d.ts.map +1 -0
  191. package/dist/tui/terminal.state-key.js +9 -0
  192. package/dist/tui/terminal.state-key.js.map +1 -0
  193. package/dist/tui/terminal.state.d.ts +152 -0
  194. package/dist/tui/terminal.state.d.ts.map +1 -0
  195. package/dist/tui/terminal.state.js +149 -0
  196. package/dist/tui/terminal.state.js.map +1 -0
  197. package/dist/workspace.d.ts +155 -0
  198. package/dist/workspace.d.ts.map +1 -0
  199. package/dist/workspace.js +292 -0
  200. package/dist/workspace.js.map +1 -0
  201. package/package.json +228 -4
@@ -0,0 +1,292 @@
1
+ import { CapabilityError, composeChildEnv } from '@vibesdotdev/kernel';
2
+ import { openRemoteSession } from "./client.js";
3
+ import * as z from 'zod/v4';
4
+ export const terminalWorkspaceVesselStateSchema = z
5
+ .object({
6
+ executionId: z.string().min(1).default('browser-shell'),
7
+ cwd: z.string().min(1).default('/'),
8
+ correlationId: z.string().min(1).optional(),
9
+ sourceSurfaceId: z.string().min(1).optional()
10
+ })
11
+ .strict();
12
+ /** Stable identity for every prop that selects or configures a live session. */
13
+ export function terminalWorkspaceLaunchSignature(input) {
14
+ return JSON.stringify([
15
+ input.runtimePlaceId,
16
+ input.executionId,
17
+ input.command,
18
+ input.args ?? [],
19
+ input.cwd
20
+ ]);
21
+ }
22
+ export function terminalWorkspaceDefaultCommand(runtimePlaceId) {
23
+ return runtimePlaceId.startsWith('browser:') ? 'vessel-sh' : 'sh';
24
+ }
25
+ export const terminalWorkspaceQuickActions = Object.freeze([
26
+ {
27
+ id: 'help',
28
+ label: 'Help',
29
+ description: 'Show available commands.',
30
+ command: 'help'
31
+ },
32
+ {
33
+ id: 'clear',
34
+ label: 'Clear',
35
+ description: 'Clear the terminal output.',
36
+ command: 'clear'
37
+ },
38
+ {
39
+ id: 'interrupt',
40
+ label: 'Stop',
41
+ description: 'Stop the current command.',
42
+ signal: 'SIGINT'
43
+ },
44
+ {
45
+ id: 'end',
46
+ label: 'End',
47
+ description: 'End this terminal session.',
48
+ command: 'exit'
49
+ }
50
+ ]);
51
+ /**
52
+ * Resolve and open the real execution session, then derive its success receipt.
53
+ * The clock is read after the awaited session resolves, so callers cannot
54
+ * observe an `opened` receipt for a request the execution provider has not
55
+ * accepted.
56
+ */
57
+ export async function openTerminalWorkspaceSession(input) {
58
+ const resolvedCommand = await input.execution.resolveCommand(input.command);
59
+ if (!resolvedCommand) {
60
+ throw new Error('Terminal is not available in this browser yet.');
61
+ }
62
+ const session = await input.execution.session({
63
+ command: resolvedCommand,
64
+ args: input.args,
65
+ cwd: input.cwd,
66
+ env: input.env,
67
+ envMode: 'replace',
68
+ cols: input.cols,
69
+ rows: input.rows
70
+ });
71
+ return {
72
+ session,
73
+ receipt: {
74
+ phase: 'opened',
75
+ sessionId: session.id,
76
+ environmentId: session.environmentId,
77
+ executionId: input.execution.id,
78
+ runtimePlaceId: input.runtimePlaceId,
79
+ cwd: input.cwd,
80
+ openedAt: (input.now ?? (() => new Date()))().toISOString()
81
+ }
82
+ };
83
+ }
84
+ /**
85
+ * Open against the authority named by this window's immutable place selector.
86
+ * Browser, local-machine, and fleet paths stay explicit so a remote label can
87
+ * never silently fall back to a local browser shell.
88
+ */
89
+ export async function openTerminalWorkspaceTargetSession(input) {
90
+ if (input.runtimePlaceId.startsWith('browser:')) {
91
+ const execution = await input.runtime
92
+ .query('runtime/execution')
93
+ .withId(input.executionId)
94
+ .resolve();
95
+ const capabilities = execution.getCapabilities();
96
+ // The browser shell runs in the page; nothing from a host travels to it.
97
+ return {
98
+ ...(await openTerminalWorkspaceSession({ ...input, execution, env: {} })),
99
+ capabilities,
100
+ mode: 'session'
101
+ };
102
+ }
103
+ if (input.runtimePlaceId === 'device:this-mac') {
104
+ const execution = await input.runtime
105
+ .query('runtime/execution')
106
+ .withId(input.executionId)
107
+ .resolve();
108
+ if (execution.descriptor.environmentId === 'browser') {
109
+ throw new CapabilityError('The selected execution provider is not native.', 'INVALID_INPUT', {
110
+ reason: 'terminal-native-provider-required',
111
+ retryable: false
112
+ });
113
+ }
114
+ const capabilities = execution.getCapabilities();
115
+ // A native session on this host: exactly its composed environment.
116
+ return {
117
+ ...(await openTerminalWorkspaceSession({
118
+ ...input,
119
+ execution,
120
+ env: composeChildEnv(input.runtime, {})
121
+ })),
122
+ capabilities,
123
+ mode: 'session'
124
+ };
125
+ }
126
+ if (input.runtimePlaceId.startsWith('fleet:')) {
127
+ const runtimeId = input.runtimePlaceId.slice('fleet:'.length).trim();
128
+ if (!runtimeId) {
129
+ throw new CapabilityError('Choose a fleet machine before opening Terminal.', 'INVALID_INPUT', {
130
+ reason: 'terminal-fleet-host-missing',
131
+ retryable: false
132
+ });
133
+ }
134
+ const session = await openRemoteSession(input.runtime, { runtimeId, local: false }, {
135
+ command: input.command,
136
+ args: input.args,
137
+ cwd: input.cwd,
138
+ cols: input.cols,
139
+ rows: input.rows
140
+ });
141
+ return {
142
+ session,
143
+ capabilities: terminalWorkspacePlaceDefaultCapabilities(input.runtimePlaceId),
144
+ mode: 'session',
145
+ receipt: {
146
+ phase: 'opened',
147
+ sessionId: session.id,
148
+ environmentId: session.environmentId,
149
+ executionId: `runtime/execution@${runtimeId}`,
150
+ runtimePlaceId: input.runtimePlaceId,
151
+ cwd: input.cwd,
152
+ openedAt: (input.now ?? (() => new Date()))().toISOString()
153
+ }
154
+ };
155
+ }
156
+ if (input.runtimePlaceId.startsWith('cloud:') ||
157
+ input.runtimePlaceId.startsWith('sandbox:')) {
158
+ const execution = await input.runtime
159
+ .query('runtime/execution')
160
+ .withId(input.executionId)
161
+ .resolve();
162
+ const capabilities = execution.getCapabilities();
163
+ const now = input.now ?? (() => new Date());
164
+ // Honest exception: a cloud impl that truly advertises a PTY may open one.
165
+ if (capabilities.pty) {
166
+ return {
167
+ // A cloud provider runs its children in its own environment:
168
+ // nothing from this host travels.
169
+ ...(await openTerminalWorkspaceSession({ ...input, execution, env: {} })),
170
+ capabilities,
171
+ mode: 'session'
172
+ };
173
+ }
174
+ // pty === false: session() THROWS here (no PTY on workerd). Never call it.
175
+ // Drive exec mode via spawn() — a LIVE (streamed) process, not a buffered
176
+ // blob and not a faked keystroke stream. The handle's stdout/stderr emit as
177
+ // output arrives; the surface drains them into the exec panel live.
178
+ const resolvedCommand = await execution.resolveCommand(input.command);
179
+ if (!resolvedCommand) {
180
+ throw new CapabilityError('The cloud execution provider cannot resolve the command.', 'NOT_FOUND', {
181
+ reason: 'terminal-command-unresolved',
182
+ retryable: false
183
+ });
184
+ }
185
+ const execProcess = await execution.spawn({
186
+ command: resolvedCommand,
187
+ args: input.args,
188
+ cwd: input.cwd,
189
+ env: {},
190
+ envMode: 'replace',
191
+ stdin: 'ignore',
192
+ stdout: 'pipe',
193
+ stderr: 'pipe'
194
+ });
195
+ return {
196
+ session: null,
197
+ capabilities,
198
+ mode: 'exec',
199
+ execProcess,
200
+ receipt: {
201
+ phase: 'opened',
202
+ sessionId: `exec:${execution.id}`,
203
+ environmentId: execution.environmentId,
204
+ executionId: execution.id,
205
+ runtimePlaceId: input.runtimePlaceId,
206
+ cwd: input.cwd,
207
+ openedAt: now().toISOString()
208
+ }
209
+ };
210
+ }
211
+ throw new Error(`Terminal does not recognize the selected place: ${input.runtimePlaceId}.`);
212
+ }
213
+ /**
214
+ * Pre-resolution capability expectation for a place, used only to gate the UI
215
+ * before the impl is resolved. `cloud:`/`sandbox:` are now interactive
216
+ * (D-NO-DEFER / A5): a REAL PTY runs inside the CF Sandbox container via the
217
+ * pty-ws server, so `pty:true`. The live mask from `getCapabilities()` overrides
218
+ * this once a place is opened.
219
+ */
220
+ export function terminalWorkspacePlaceDefaultCapabilities(runtimePlaceId) {
221
+ if (runtimePlaceId.startsWith('cloud:') || runtimePlaceId.startsWith('sandbox:')) {
222
+ return { pty: true, shell: true, signals: true, resize: true, maxSessions: 8 };
223
+ }
224
+ return { pty: true, shell: true, signals: true, resize: true, maxSessions: 1 };
225
+ }
226
+ /**
227
+ * Banner copy for a place. Non-PTY places get the honest "streams output live,
228
+ * no interactive TTY" caveat. Interactive cloud/sandbox places get a short
229
+ * positive note ("cloud PTY (containerized)") — the PTY is real, it just lives
230
+ * in the sandbox container, so there is no caveat, only context. Interactive
231
+ * local/device/fleet places get no banner (`null`). No jargon; no overclaim.
232
+ */
233
+ export function terminalWorkspaceCapabilityBanner(capabilities, runtimePlaceId) {
234
+ const isCloud = runtimePlaceId.startsWith('cloud:') || runtimePlaceId.startsWith('sandbox:');
235
+ if (capabilities.pty) {
236
+ return isCloud ? 'Cloud PTY (containerized) — a real interactive terminal in the sandbox.' : null;
237
+ }
238
+ const place = isCloud ? 'Cloud exec' : terminalWorkspacePlaceLabel(runtimePlaceId);
239
+ return (`${place} — streams output live, but has no interactive TTY (keystrokes or resize). ` +
240
+ `Use this device or a fleet host for a full terminal.`);
241
+ }
242
+ export function terminalWorkspaceExitedEvent(receipt, result, now = () => new Date()) {
243
+ return {
244
+ ...receipt,
245
+ phase: 'exited',
246
+ exitedAt: now().toISOString(),
247
+ exitCode: result.exitCode
248
+ };
249
+ }
250
+ export function terminalWorkspaceStatusLabel(status) {
251
+ if (status === 'live')
252
+ return 'Connected';
253
+ if (status === 'opening')
254
+ return 'Opening';
255
+ if (status === 'exited')
256
+ return 'Session ended';
257
+ if (status === 'error')
258
+ return 'Not available';
259
+ return 'Ready';
260
+ }
261
+ export function terminalWorkspacePlaceLabel(runtimePlaceId) {
262
+ if (runtimePlaceId === 'device:this-mac')
263
+ return 'This Mac';
264
+ if (runtimePlaceId.startsWith('browser:'))
265
+ return 'This browser';
266
+ if (runtimePlaceId.startsWith('fleet:'))
267
+ return runtimePlaceId.slice('fleet:'.length);
268
+ return runtimePlaceId.includes(':')
269
+ ? runtimePlaceId.slice(runtimePlaceId.indexOf(':') + 1)
270
+ : runtimePlaceId;
271
+ }
272
+ export function terminalWorkspaceConnectionNotice(cwd, runtimePlaceId) {
273
+ const place = terminalWorkspacePlaceLabel(runtimePlaceId);
274
+ if (runtimePlaceId.startsWith('browser:')) {
275
+ return cwd === '/'
276
+ ? 'Terminal is connected to files kept in this browser.'
277
+ : `Terminal is connected to ${cwd} in this browser.`;
278
+ }
279
+ return cwd === '/'
280
+ ? `Terminal is connected to ${place}.`
281
+ : `Terminal on ${place} is connected to ${cwd}.`;
282
+ }
283
+ export function terminalWorkspaceError(_error, runtimePlaceId = 'browser:this-profile') {
284
+ if (runtimePlaceId === 'device:this-mac') {
285
+ return "Terminal couldn't connect to this Mac. Start or configure its local Vibes runtime.";
286
+ }
287
+ if (runtimePlaceId.startsWith('fleet:')) {
288
+ return `Terminal couldn't reach ${terminalWorkspacePlaceLabel(runtimePlaceId)}. Check that the machine is online and connected to Vibes.`;
289
+ }
290
+ return "Terminal couldn't start in this browser.";
291
+ }
292
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAqB,MAAM,qBAAqB,CAAC;AAQ1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC;KACjD,MAAM,CAAC;IACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACvD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AA0HX,gFAAgF;AAChF,MAAM,UAAU,gCAAgC,CAAC,KAAmC;IACnF,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,KAAK,CAAC,cAAc;QACpB,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,IAAI,IAAI,EAAE;QAChB,KAAK,CAAC,GAAG;KACT,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,cAAsB;IACrE,OAAO,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAA4C,MAAM,CAAC,MAAM,CAClG;IACC;QACC,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,MAAM;KACf;IACD;QACC,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,OAAO;KAChB;IACD;QACC,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,2BAA2B;QACxC,MAAM,EAAE,QAAQ;KAChB;IACD;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,MAAM;KACf;CACD,CACD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,KAAwC;IAExC,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7C,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;KAChB,CAAC,CAAC;IAEH,OAAO;QACN,OAAO;QACP,OAAO,EAAE;YACR,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;YAC/B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;SAC3D;KACD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACvD,KAA8C;IAE9C,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO;aACnC,KAAK,CAAwC,mBAAmB,CAAC;aACjE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;aACzB,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QACjD,yEAAyE;QACzE,OAAO;YACN,GAAG,CAAC,MAAM,4BAA4B,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACzE,YAAY;YACZ,IAAI,EAAE,SAAS;SACf,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,KAAK,iBAAiB,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO;aACnC,KAAK,CAAwC,mBAAmB,CAAC;aACjE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;aACzB,OAAO,EAAE,CAAC;QACZ,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,CAAC,gDAAgD,EAAE,eAAe,EAAE;gBAC5F,MAAM,EAAE,mCAAmC;gBAC3C,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QACjD,mEAAmE;QACnE,OAAO;YACN,GAAG,CAAC,MAAM,4BAA4B,CAAC;gBACtC,GAAG,KAAK;gBACR,SAAS;gBACT,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;aACvC,CAAC,CAAC;YACH,YAAY;YACZ,IAAI,EAAE,SAAS;SACf,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CAAC,iDAAiD,EAAE,eAAe,EAAE;gBAC7F,MAAM,EAAE,6BAA6B;gBACrC,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACtC,KAAK,CAAC,OAAO,EACb,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAC3B;YACC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB,CACD,CAAC;QACF,OAAO;YACN,OAAO;YACP,YAAY,EAAE,yCAAyC,CAAC,KAAK,CAAC,cAAc,CAAC;YAC7E,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACR,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,WAAW,EAAE,qBAAqB,SAAS,EAAE;gBAC7C,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;aAC3D;SACD,CAAC;IACH,CAAC;IACD,IACC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAC1C,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO;aACnC,KAAK,CAAwC,mBAAmB,CAAC;aACjE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;aACzB,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5C,2EAA2E;QAC3E,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO;gBACN,6DAA6D;gBAC7D,kCAAkC;gBAClC,GAAG,CAAC,MAAM,4BAA4B,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzE,YAAY;gBACZ,IAAI,EAAE,SAAS;aACf,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,oEAAoE;QACpE,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,IAAI,eAAe,CAAC,0DAA0D,EAAE,WAAW,EAAE;gBAClG,MAAM,EAAE,6BAA6B;gBACrC,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;YACzC,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO;YACN,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,IAAI,EAAE,MAAM;YACZ,WAAW;YACX,OAAO,EAAE;gBACR,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,QAAQ,SAAS,CAAC,EAAE,EAAE;gBACjC,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;aAC7B;SACD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yCAAyC,CACxD,cAAsB;IAEtB,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAChD,YAAgD,EAChD,cAAsB;IAEtB,MAAM,OAAO,GACZ,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9E,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,CAAC,CAAC,yEAAyE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnG,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC;IACnF,OAAO,CACN,GAAG,KAAK,6EAA6E;QACrF,sDAAsD,CACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC3C,OAAuC,EACvC,MAAmC,EACnC,MAAkB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IAElC,OAAO;QACN,GAAG,OAAO;QACV,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAA+B;IAC3E,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC;IAChD,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,eAAe,CAAC;IAC/C,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,cAAsB;IACjE,IAAI,cAAc,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC;IAC5D,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,cAAc,CAAC;IACjE,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtF,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,cAAc,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,GAAW,EAAE,cAAsB;IACpF,MAAM,KAAK,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,KAAK,GAAG;YACjB,CAAC,CAAC,sDAAsD;YACxD,CAAC,CAAC,4BAA4B,GAAG,mBAAmB,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,KAAK,GAAG;QACjB,CAAC,CAAC,4BAA4B,KAAK,GAAG;QACtC,CAAC,CAAC,eAAe,KAAK,oBAAoB,GAAG,GAAG,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,MAAe,EACf,cAAc,GAAG,sBAAsB;IAEvC,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;QAC1C,OAAO,oFAAoF,CAAC;IAC7F,CAAC;IACD,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,2BAA2B,2BAA2B,CAAC,cAAc,CAAC,4DAA4D,CAAC;IAC3I,CAAC;IACD,OAAO,0CAA0C,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,230 @@
1
1
  {
2
2
  "name": "@vibesdotdev/terminal-client",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0-rc.3",
4
+ "dependencies": {
5
+ "@opentui/react": "^0.5.17",
6
+ "@vibesdotdev/docs-contracts": "^1.0.0-rc.4",
7
+ "@vibesdotdev/logging": "^1.0.0-rc.5",
8
+ "@vibesdotdev/kernel-rpc": "^1.0.0-rc.4",
9
+ "@vibesdotdev/host-bun": "^1.0.0-rc.3",
10
+ "@vibesdotdev/tui": "^1.0.0-rc.2",
11
+ "@xterm/addon-fit": "^0.11.0",
12
+ "@xterm/xterm": "^6.0.0",
13
+ "react": "^19.3.1",
14
+ "zod": "^4.6.7"
15
+ },
16
+ "peerDependencies": {
17
+ "@lucide/svelte": "^1.59.0",
18
+ "@vibesdotdev/kernel": "^1.0.0-rc.0",
19
+ "@vibesdotdev/kit": "^1.0.0-rc.0",
20
+ "@vibesdotdev/execution-local": "^1.0.0-rc.0",
21
+ "svelte": "^5.57.2",
22
+ "@vibesdotdev/surface-sveltekit": "^1.0.0-rc.0"
23
+ },
24
+ "optionalDependencies": {
25
+ "@xterm/addon-webgl": "^0.19.0"
26
+ },
27
+ "main": "./dist/index.js",
28
+ "exports": {
29
+ ".": {
30
+ "bun": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js",
33
+ "default": "./dist/index.js"
34
+ },
35
+ "./plugin": {
36
+ "bun": "./dist/terminal-client.plugin.js",
37
+ "types": "./dist/terminal-client.plugin.d.ts",
38
+ "import": "./dist/terminal-client.plugin.js",
39
+ "default": "./dist/terminal-client.plugin.js"
40
+ },
41
+ "./client": {
42
+ "bun": "./dist/client.js",
43
+ "types": "./dist/client.d.ts",
44
+ "import": "./dist/client.js",
45
+ "default": "./dist/client.js"
46
+ },
47
+ "./workspace": {
48
+ "bun": "./dist/workspace.js",
49
+ "types": "./dist/workspace.d.ts",
50
+ "import": "./dist/workspace.js",
51
+ "default": "./dist/workspace.js"
52
+ },
53
+ "./server/session-store": {
54
+ "bun": "./dist/server/index.js",
55
+ "types": "./dist/server/index.d.ts",
56
+ "import": "./dist/server/index.js",
57
+ "default": "./dist/server/index.js"
58
+ },
59
+ "./client/http-session": {
60
+ "bun": "./dist/client/index.js",
61
+ "types": "./dist/client/index.d.ts",
62
+ "import": "./dist/client/index.js",
63
+ "default": "./dist/client/index.js"
64
+ },
65
+ "./pty-bridge": {
66
+ "bun": "./dist/pty-bridge/index.js",
67
+ "types": "./dist/pty-bridge/index.d.ts",
68
+ "import": "./dist/pty-bridge/index.js",
69
+ "default": "./dist/pty-bridge/index.js"
70
+ },
71
+ "./pty-bridge/*": {
72
+ "bun": "./dist/pty-bridge/*.js",
73
+ "types": "./dist/pty-bridge/*.d.ts",
74
+ "import": "./dist/pty-bridge/*.js",
75
+ "default": "./dist/pty-bridge/*.js"
76
+ },
77
+ "./ansi": {
78
+ "bun": "./dist/ansi/index.js",
79
+ "types": "./dist/ansi/index.d.ts",
80
+ "import": "./dist/ansi/index.js",
81
+ "default": "./dist/ansi/index.js"
82
+ },
83
+ "./ansi/*": {
84
+ "bun": "./dist/ansi/*.js",
85
+ "types": "./dist/ansi/*.d.ts",
86
+ "import": "./dist/ansi/*.js",
87
+ "default": "./dist/ansi/*.js"
88
+ },
89
+ "./ansi/keymap": {
90
+ "bun": "./dist/ansi/keymap.js",
91
+ "types": "./dist/ansi/keymap.d.ts",
92
+ "import": "./dist/ansi/keymap.js",
93
+ "default": "./dist/ansi/keymap.js"
94
+ },
95
+ "./tui": {
96
+ "bun": "./dist/tui/index.js",
97
+ "types": "./dist/tui/index.d.ts",
98
+ "import": "./dist/tui/index.js",
99
+ "default": "./dist/tui/index.js"
100
+ },
101
+ "./tui/plugin": {
102
+ "bun": "./dist/tui/terminal-tui.plugin.js",
103
+ "types": "./dist/tui/terminal-tui.plugin.d.ts",
104
+ "import": "./dist/tui/terminal-tui.plugin.js",
105
+ "default": "./dist/tui/terminal-tui.plugin.js"
106
+ },
107
+ "./svelte": {
108
+ "bun": "./dist/svelte/index.js",
109
+ "types": "./dist/svelte/index.d.ts",
110
+ "svelte": "./dist/svelte/index.js",
111
+ "import": "./dist/svelte/index.js",
112
+ "default": "./dist/svelte/index.js"
113
+ },
114
+ "./svelte/plugin": {
115
+ "bun": "./dist/svelte/terminal-svelte.plugin.js",
116
+ "types": "./dist/svelte/terminal-svelte.plugin.d.ts",
117
+ "svelte": "./dist/svelte/terminal-svelte.plugin.js",
118
+ "import": "./dist/svelte/terminal-svelte.plugin.js",
119
+ "default": "./dist/svelte/terminal-svelte.plugin.js"
120
+ },
121
+ "./svelte/workspace": {
122
+ "bun": "./dist/svelte/workspace.js",
123
+ "types": "./dist/svelte/workspace.d.ts",
124
+ "import": "./dist/svelte/workspace.js",
125
+ "default": "./dist/svelte/workspace.js"
126
+ },
127
+ "./svelte/types": {
128
+ "bun": "./dist/svelte/types.js",
129
+ "types": "./dist/svelte/types.d.ts",
130
+ "svelte": "./dist/svelte/types.js",
131
+ "import": "./dist/svelte/types.js",
132
+ "default": "./dist/svelte/types.js"
133
+ },
134
+ "./svelte/*": {
135
+ "bun": "./dist/svelte/*",
136
+ "types": "./dist/svelte/*.d.ts",
137
+ "import": "./dist/svelte/*",
138
+ "default": "./dist/svelte/*"
139
+ },
140
+ "./api-client-plugin": {
141
+ "bun": "./dist/api-client-plugin.js",
142
+ "types": "./dist/api-client-plugin.d.ts",
143
+ "import": "./dist/api-client-plugin.js",
144
+ "default": "./dist/api-client-plugin.js"
145
+ },
146
+ "./consumer-plugin": {
147
+ "bun": "./dist/terminal.consumer.plugin.js",
148
+ "types": "./dist/terminal.consumer.plugin.d.ts",
149
+ "import": "./dist/terminal.consumer.plugin.js",
150
+ "default": "./dist/terminal.consumer.plugin.js"
151
+ }
152
+ },
153
+ "files": [
154
+ "dist",
155
+ "README.md",
156
+ "LICENSE"
157
+ ],
158
+ "scripts": {
159
+ "lint": "node ../node_modules/@vibesdotdev/internal-oxlint-toolchain/ratchet.mjs .",
160
+ "prebuild": "rm -rf dist",
161
+ "check": "${BUN:-bun} --bun tsc -p tsconfig.json --noEmit && ${BUN:-bun} --bun svelte-check --tsconfig ./tsconfig.svelte.check.json",
162
+ "build": "rm -rf dist && tsc -p tsconfig.core.json && ${BUN:-bun} --bun svelte-package --input ./src/svelte --output ./dist/svelte --tsconfig ./tsconfig.svelte.json && rm -rf dist/svelte/__tests__ && find dist/svelte -name '*.test.*' -delete && find dist/svelte -name '*.spec.*' -delete && find dist -name '*.tsbuildinfo' -delete",
163
+ "test": "${BUN:-bun} test src/ && ${BUN:-bun} --bun scripts/prove-remote-render.ts"
164
+ },
165
+ "repository": {
166
+ "type": "git",
167
+ "url": "ssh://git@git.vibes.dev/vibesdotdev/framework.git",
168
+ "directory": "terminal-client"
169
+ },
170
+ "publishConfig": {
171
+ "registry": "https://packages.vibes.dev",
172
+ "access": "public"
173
+ },
174
+ "vibes": {
175
+ "visibility": "public",
176
+ "registry": {
177
+ "repositoryId": "4b1374d4-6830-4bfd-98e3-de66416368a8",
178
+ "directory": "terminal-client"
179
+ },
180
+ "publishProofProfiles": [
181
+ {
182
+ "id": "terminal-client/svelte",
183
+ "requiredOptionalPeers": [
184
+ "@lucide/svelte",
185
+ "@vibesdotdev/kit",
186
+ "@vibesdotdev/surface-sveltekit"
187
+ ],
188
+ "importSpecifiers": [
189
+ "@vibesdotdev/terminal-client/svelte"
190
+ ],
191
+ "surfaceProof": "sveltekit",
192
+ "ssrRenders": [
193
+ {
194
+ "specifier": "@vibesdotdev/terminal-client/svelte",
195
+ "exportName": "Terminal",
196
+ "props": {}
197
+ }
198
+ ]
199
+ }
200
+ ],
201
+ "handedRuntimeLogging": true,
202
+ "compositionRoots": [
203
+ "src/pty-bridge/server.ts"
204
+ ]
205
+ },
206
+ "description": "Terminal feature package: local and remote session composition, the terminal tool, browser rendering, and the feature-owned TUI launcher.",
207
+ "type": "module",
208
+ "types": "./dist/index.d.ts",
209
+ "license": "MIT",
210
+ "peerDependenciesMeta": {
211
+ "@lucide/svelte": {
212
+ "optional": true
213
+ },
214
+ "@vibesdotdev/kit": {
215
+ "optional": true
216
+ },
217
+ "@vibesdotdev/execution-local": {
218
+ "optional": true
219
+ },
220
+ "@vibesdotdev/surface-sveltekit": {
221
+ "optional": true
222
+ }
223
+ },
224
+ "gitHead": "f1ff526c235b10c970497738beb16b0651c428c8",
225
+ "_vibes_source": {
226
+ "repo": "ssh://git@git.vibes.dev/vibesdotdev/framework.git",
227
+ "sha": "f1ff526c235b10c970497738beb16b0651c428c8",
228
+ "workspaceDigest": "sha256:05ad771f6531189784ed3a20b0c2018f7e69e557018ae5a578a8f03b194190cc"
229
+ }
230
+ }