@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.
- package/LICENSE +18 -0
- package/README.md +102 -2
- package/dist/ansi/index.d.ts +11 -0
- package/dist/ansi/index.d.ts.map +1 -0
- package/dist/ansi/index.js +11 -0
- package/dist/ansi/index.js.map +1 -0
- package/dist/ansi/keymap.d.ts +77 -0
- package/dist/ansi/keymap.d.ts.map +1 -0
- package/dist/ansi/keymap.js +257 -0
- package/dist/ansi/keymap.js.map +1 -0
- package/dist/api-client-plugin.d.ts +4 -0
- package/dist/api-client-plugin.d.ts.map +1 -0
- package/dist/api-client-plugin.js +16 -0
- package/dist/api-client-plugin.js.map +1 -0
- package/dist/client/http-session.d.ts +44 -0
- package/dist/client/http-session.d.ts.map +1 -0
- package/dist/client/http-session.js +457 -0
- package/dist/client/http-session.js.map +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client.d.ts +56 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +169 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/pty-bridge/index.d.ts +15 -0
- package/dist/pty-bridge/index.d.ts.map +1 -0
- package/dist/pty-bridge/index.js +15 -0
- package/dist/pty-bridge/index.js.map +1 -0
- package/dist/pty-bridge/protocol.d.ts +6 -0
- package/dist/pty-bridge/protocol.d.ts.map +1 -0
- package/dist/pty-bridge/protocol.js +6 -0
- package/dist/pty-bridge/protocol.js.map +1 -0
- package/dist/pty-bridge/server.d.ts +7 -0
- package/dist/pty-bridge/server.d.ts.map +1 -0
- package/dist/pty-bridge/server.js +9 -0
- package/dist/pty-bridge/server.js.map +1 -0
- package/dist/remote-session.d.ts +51 -0
- package/dist/remote-session.d.ts.map +1 -0
- package/dist/remote-session.js +326 -0
- package/dist/remote-session.js.map +1 -0
- package/dist/schemas/http.d.ts +61 -0
- package/dist/schemas/http.d.ts.map +1 -0
- package/dist/schemas/http.js +45 -0
- package/dist/schemas/http.js.map +1 -0
- package/dist/schemas/remote.d.ts +25 -0
- package/dist/schemas/remote.d.ts.map +1 -0
- package/dist/schemas/remote.js +23 -0
- package/dist/schemas/remote.js.map +1 -0
- package/dist/schemas/session.d.ts +26 -0
- package/dist/schemas/session.d.ts.map +1 -0
- package/dist/schemas/session.js +17 -0
- package/dist/schemas/session.js.map +1 -0
- package/dist/schemas/store.d.ts +29 -0
- package/dist/schemas/store.d.ts.map +1 -0
- package/dist/schemas/store.js +22 -0
- package/dist/schemas/store.js.map +1 -0
- package/dist/schemas/terminal.d.ts +296 -0
- package/dist/schemas/terminal.d.ts.map +1 -0
- package/dist/schemas/terminal.js +243 -0
- package/dist/schemas/terminal.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +9 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/session-store.d.ts +176 -0
- package/dist/server/session-store.d.ts.map +1 -0
- package/dist/server/session-store.js +462 -0
- package/dist/server/session-store.js.map +1 -0
- package/dist/server/sse-stream.d.ts +32 -0
- package/dist/server/sse-stream.d.ts.map +1 -0
- package/dist/server/sse-stream.js +87 -0
- package/dist/server/sse-stream.js.map +1 -0
- package/dist/svelte/HostPicker.svelte +256 -0
- package/dist/svelte/HostPicker.svelte.d.ts +30 -0
- package/dist/svelte/HostPicker.svelte.d.ts.map +1 -0
- package/dist/svelte/README.md +52 -0
- package/dist/svelte/ReconnectBanner.svelte +88 -0
- package/dist/svelte/ReconnectBanner.svelte.d.ts +16 -0
- package/dist/svelte/ReconnectBanner.svelte.d.ts.map +1 -0
- package/dist/svelte/SessionTabs.svelte +192 -0
- package/dist/svelte/SessionTabs.svelte.d.ts +17 -0
- package/dist/svelte/SessionTabs.svelte.d.ts.map +1 -0
- package/dist/svelte/Terminal.svelte +567 -0
- package/dist/svelte/Terminal.svelte.d.ts +25 -0
- package/dist/svelte/Terminal.svelte.d.ts.map +1 -0
- package/dist/svelte/TerminalMobileToolbar.svelte +56 -0
- package/dist/svelte/TerminalMobileToolbar.svelte.d.ts +14 -0
- package/dist/svelte/TerminalMobileToolbar.svelte.d.ts.map +1 -0
- package/dist/svelte/TerminalWorkspace.svelte +562 -0
- package/dist/svelte/TerminalWorkspace.svelte.d.ts +25 -0
- package/dist/svelte/TerminalWorkspace.svelte.d.ts.map +1 -0
- package/dist/svelte/ambient.d.ts +9 -0
- package/dist/svelte/docs/terminal-svelte.docs.descriptor.d.ts +4 -0
- package/dist/svelte/docs/terminal-svelte.docs.descriptor.d.ts.map +1 -0
- package/dist/svelte/docs/terminal-svelte.docs.descriptor.js +74 -0
- package/dist/svelte/index.d.ts +27 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +26 -0
- package/dist/svelte/styles.css +8 -0
- package/dist/svelte/terminal-session-authority.d.ts +17 -0
- package/dist/svelte/terminal-session-authority.d.ts.map +1 -0
- package/dist/svelte/terminal-session-authority.js +25 -0
- package/dist/svelte/terminal-svelte.plugin.d.ts +19 -0
- package/dist/svelte/terminal-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/terminal-svelte.plugin.js +42 -0
- package/dist/svelte/terminal-theme.d.ts +11 -0
- package/dist/svelte/terminal-theme.d.ts.map +1 -0
- package/dist/svelte/terminal-theme.js +116 -0
- package/dist/svelte/tool-widgets/TerminalToolCard.svelte +65 -0
- package/dist/svelte/tool-widgets/TerminalToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/TerminalToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/terminal-tool-card.d.ts +25 -0
- package/dist/svelte/tool-widgets/terminal-tool-card.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/terminal-tool-card.js +116 -0
- package/dist/svelte/types.d.ts +160 -0
- package/dist/svelte/types.d.ts.map +1 -0
- package/dist/svelte/types.js +51 -0
- package/dist/svelte/workspace.d.ts +3 -0
- package/dist/svelte/workspace.d.ts.map +1 -0
- package/dist/svelte/workspace.js +2 -0
- package/dist/terminal-client.plugin.d.ts +3 -0
- package/dist/terminal-client.plugin.d.ts.map +1 -0
- package/dist/terminal-client.plugin.js +3 -0
- package/dist/terminal-client.plugin.js.map +1 -0
- package/dist/terminal-runtime.d.ts +30 -0
- package/dist/terminal-runtime.d.ts.map +1 -0
- package/dist/terminal-runtime.js +673 -0
- package/dist/terminal-runtime.js.map +1 -0
- package/dist/terminal.consumer.plugin.d.ts +14 -0
- package/dist/terminal.consumer.plugin.d.ts.map +1 -0
- package/dist/terminal.consumer.plugin.js +31 -0
- package/dist/terminal.consumer.plugin.js.map +1 -0
- package/dist/tools/terminal.impl.consumer.d.ts +11 -0
- package/dist/tools/terminal.impl.consumer.d.ts.map +1 -0
- package/dist/tools/terminal.impl.consumer.js +20 -0
- package/dist/tools/terminal.impl.consumer.js.map +1 -0
- package/dist/tools/terminal.schemas.d.ts +3 -0
- package/dist/tools/terminal.schemas.d.ts.map +1 -0
- package/dist/tools/terminal.schemas.js +3 -0
- package/dist/tools/terminal.schemas.js.map +1 -0
- package/dist/tools/terminal.unified.descriptor.d.ts +218 -0
- package/dist/tools/terminal.unified.descriptor.d.ts.map +1 -0
- package/dist/tools/terminal.unified.descriptor.js +36 -0
- package/dist/tools/terminal.unified.descriptor.js.map +1 -0
- package/dist/tui/index.d.ts +9 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +8 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/terminal-open.descriptor.d.ts +9 -0
- package/dist/tui/terminal-open.descriptor.d.ts.map +1 -0
- package/dist/tui/terminal-open.descriptor.js +18 -0
- package/dist/tui/terminal-open.descriptor.js.map +1 -0
- package/dist/tui/terminal-open.impl.consumer.d.ts +9 -0
- package/dist/tui/terminal-open.impl.consumer.d.ts.map +1 -0
- package/dist/tui/terminal-open.impl.consumer.js +13 -0
- package/dist/tui/terminal-open.impl.consumer.js.map +1 -0
- package/dist/tui/terminal-registry.descriptor.d.ts +11 -0
- package/dist/tui/terminal-registry.descriptor.d.ts.map +1 -0
- package/dist/tui/terminal-registry.descriptor.js +17 -0
- package/dist/tui/terminal-registry.descriptor.js.map +1 -0
- package/dist/tui/terminal-registry.impl.consumer.d.ts +71 -0
- package/dist/tui/terminal-registry.impl.consumer.d.ts.map +1 -0
- package/dist/tui/terminal-registry.impl.consumer.js +190 -0
- package/dist/tui/terminal-registry.impl.consumer.js.map +1 -0
- package/dist/tui/terminal-tui.plugin.d.ts +10 -0
- package/dist/tui/terminal-tui.plugin.d.ts.map +1 -0
- package/dist/tui/terminal-tui.plugin.js +32 -0
- package/dist/tui/terminal-tui.plugin.js.map +1 -0
- package/dist/tui/terminal.descriptor.d.ts +10 -0
- package/dist/tui/terminal.descriptor.d.ts.map +1 -0
- package/dist/tui/terminal.descriptor.js +25 -0
- package/dist/tui/terminal.descriptor.js.map +1 -0
- package/dist/tui/terminal.impl.consumer.d.ts +14 -0
- package/dist/tui/terminal.impl.consumer.d.ts.map +1 -0
- package/dist/tui/terminal.impl.consumer.js +189 -0
- package/dist/tui/terminal.impl.consumer.js.map +1 -0
- package/dist/tui/terminal.state-key.d.ts +30 -0
- package/dist/tui/terminal.state-key.d.ts.map +1 -0
- package/dist/tui/terminal.state-key.js +9 -0
- package/dist/tui/terminal.state-key.js.map +1 -0
- package/dist/tui/terminal.state.d.ts +152 -0
- package/dist/tui/terminal.state.d.ts.map +1 -0
- package/dist/tui/terminal.state.js +149 -0
- package/dist/tui/terminal.state.js.map +1 -0
- package/dist/workspace.d.ts +155 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +292 -0
- package/dist/workspace.js.map +1 -0
- 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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,230 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibesdotdev/terminal-client",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"version": "1.0.0-rc.2",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"@opentui/react": "^0.5.17",
|
|
6
|
+
"@vibesdotdev/docs-contracts": "^1.0.0-rc.4",
|
|
7
|
+
"@vibesdotdev/logging": "^1.0.0-rc.3",
|
|
8
|
+
"@vibesdotdev/kernel-rpc": "^1.0.0-rc.2",
|
|
9
|
+
"@vibesdotdev/host-bun": "^1.0.0-rc.2",
|
|
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.5",
|
|
19
|
+
"@vibesdotdev/kit": "^1.0.0-rc.2",
|
|
20
|
+
"@vibesdotdev/execution-local": "^1.0.0-rc.3",
|
|
21
|
+
"svelte": "^5.57.2",
|
|
22
|
+
"@vibesdotdev/surface-sveltekit": "^1.0.0-rc.2"
|
|
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": "51230ebdad54bc405014633f435b499fa2a06b89",
|
|
225
|
+
"_vibes_source": {
|
|
226
|
+
"repo": "ssh://git@git.vibes.dev/vibesdotdev/framework.git",
|
|
227
|
+
"sha": "51230ebdad54bc405014633f435b499fa2a06b89",
|
|
228
|
+
"workspaceDigest": "sha256:ad943c70c92aa7226c82519c5853f5ea66f36aaa9c0515a093d9bba8c189272a"
|
|
229
|
+
}
|
|
230
|
+
}
|