@getpaseo/server 0.1.4 → 0.1.6

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 (62) hide show
  1. package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +1 -1
  2. package/dist/server/client/daemon-client-terminal-stream-manager.js +4 -0
  3. package/dist/server/client/daemon-client-terminal-stream-manager.js.map +1 -1
  4. package/dist/server/client/daemon-client.d.ts +20 -15
  5. package/dist/server/client/daemon-client.d.ts.map +1 -1
  6. package/dist/server/client/daemon-client.js +35 -23
  7. package/dist/server/client/daemon-client.js.map +1 -1
  8. package/dist/server/server/agent/agent-management-mcp.d.ts +2 -0
  9. package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
  10. package/dist/server/server/agent/agent-management-mcp.js +29 -4
  11. package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
  12. package/dist/server/server/agent/agent-manager.d.ts +3 -0
  13. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  14. package/dist/server/server/agent/agent-manager.js +27 -5
  15. package/dist/server/server/agent/agent-manager.js.map +1 -1
  16. package/dist/server/server/agent/agent-sdk-types.d.ts +14 -0
  17. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  18. package/dist/server/server/agent/mcp-server.d.ts +2 -0
  19. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  20. package/dist/server/server/agent/mcp-server.js +30 -5
  21. package/dist/server/server/agent/mcp-server.js.map +1 -1
  22. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +42 -0
  23. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  24. package/dist/server/server/agent/timeline-append.d.ts +10 -0
  25. package/dist/server/server/agent/timeline-append.d.ts.map +1 -0
  26. package/dist/server/server/agent/timeline-append.js +27 -0
  27. package/dist/server/server/agent/timeline-append.js.map +1 -0
  28. package/dist/server/server/bootstrap.d.ts.map +1 -1
  29. package/dist/server/server/bootstrap.js +3 -0
  30. package/dist/server/server/bootstrap.js.map +1 -1
  31. package/dist/server/server/persisted-config.d.ts +8 -8
  32. package/dist/server/server/session.d.ts +19 -6
  33. package/dist/server/server/session.d.ts.map +1 -1
  34. package/dist/server/server/session.js +373 -171
  35. package/dist/server/server/session.js.map +1 -1
  36. package/dist/server/server/worktree-bootstrap.d.ts +29 -0
  37. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -0
  38. package/dist/server/server/worktree-bootstrap.js +407 -0
  39. package/dist/server/server/worktree-bootstrap.js.map +1 -0
  40. package/dist/server/shared/binary-mux.d.ts.map +1 -1
  41. package/dist/server/shared/binary-mux.js +13 -0
  42. package/dist/server/shared/binary-mux.js.map +1 -1
  43. package/dist/server/shared/messages.d.ts +2051 -2493
  44. package/dist/server/shared/messages.d.ts.map +1 -1
  45. package/dist/server/shared/messages.js +55 -25
  46. package/dist/server/shared/messages.js.map +1 -1
  47. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  48. package/dist/server/shared/tool-call-display.js +4 -0
  49. package/dist/server/shared/tool-call-display.js.map +1 -1
  50. package/dist/server/terminal/terminal-manager.d.ts +11 -0
  51. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  52. package/dist/server/terminal/terminal-manager.js +75 -24
  53. package/dist/server/terminal/terminal-manager.js.map +1 -1
  54. package/dist/server/terminal/terminal.d.ts +1 -0
  55. package/dist/server/terminal/terminal.d.ts.map +1 -1
  56. package/dist/server/terminal/terminal.js +54 -6
  57. package/dist/server/terminal/terminal.js.map +1 -1
  58. package/dist/server/utils/worktree.d.ts +32 -0
  59. package/dist/server/utils/worktree.d.ts.map +1 -1
  60. package/dist/server/utils/worktree.js +127 -6
  61. package/dist/server/utils/worktree.js.map +1 -1
  62. package/package.json +2 -2
@@ -0,0 +1,29 @@
1
+ import type { Logger } from "pino";
2
+ import type { TerminalManager } from "../terminal/terminal-manager.js";
3
+ import { type WorktreeConfig } from "../utils/worktree.js";
4
+ import type { AgentTimelineItem } from "./agent/agent-sdk-types.js";
5
+ export interface WorktreeBootstrapTerminalResult {
6
+ name: string | null;
7
+ command: string;
8
+ status: "started" | "failed";
9
+ terminalId: string | null;
10
+ error: string | null;
11
+ }
12
+ export interface RunAsyncWorktreeBootstrapOptions {
13
+ agentId: string;
14
+ worktree: WorktreeConfig;
15
+ terminalManager: TerminalManager | null;
16
+ appendTimelineItem: (item: AgentTimelineItem) => Promise<boolean>;
17
+ emitLiveTimelineItem?: (item: AgentTimelineItem) => Promise<boolean>;
18
+ logger?: Logger;
19
+ }
20
+ export interface CreateAgentWorktreeOptions {
21
+ cwd: string;
22
+ branchName: string;
23
+ baseBranch: string;
24
+ worktreeSlug: string;
25
+ paseoHome?: string;
26
+ }
27
+ export declare function createAgentWorktree(options: CreateAgentWorktreeOptions): Promise<WorktreeConfig>;
28
+ export declare function runAsyncWorktreeBootstrap(options: RunAsyncWorktreeBootstrapOptions): Promise<void>;
29
+ //# sourceMappingURL=worktree-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/worktree-bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgHD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CASzB;AAkQD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAqHf"}
@@ -0,0 +1,407 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ import { createWorktree, getWorktreeTerminalSpecs, runWorktreeSetupCommands, WorktreeSetupError, } from "../utils/worktree.js";
3
+ const MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES = 64 * 1024;
4
+ const WORKTREE_SETUP_TRUNCATION_MARKER = "\n...<output truncated in the middle>...\n";
5
+ function byteLength(text) {
6
+ return Buffer.byteLength(text, "utf8");
7
+ }
8
+ function sliceFirstBytes(text, maxBytes) {
9
+ if (maxBytes <= 0 || text.length === 0) {
10
+ return "";
11
+ }
12
+ const bytes = Buffer.from(text, "utf8");
13
+ if (bytes.length <= maxBytes) {
14
+ return text;
15
+ }
16
+ return bytes.subarray(0, maxBytes).toString("utf8");
17
+ }
18
+ function sliceLastBytes(text, maxBytes) {
19
+ if (maxBytes <= 0 || text.length === 0) {
20
+ return "";
21
+ }
22
+ const bytes = Buffer.from(text, "utf8");
23
+ if (bytes.length <= maxBytes) {
24
+ return text;
25
+ }
26
+ return bytes.subarray(bytes.length - maxBytes).toString("utf8");
27
+ }
28
+ function createMiddleTruncationAccumulator() {
29
+ return {
30
+ totalBytes: 0,
31
+ head: "",
32
+ tail: "",
33
+ truncated: false,
34
+ };
35
+ }
36
+ function getHeadTailBudgets(maxBytes) {
37
+ const markerBytes = byteLength(WORKTREE_SETUP_TRUNCATION_MARKER);
38
+ const availableBytes = Math.max(0, maxBytes - markerBytes);
39
+ const headBytes = Math.floor(availableBytes / 2);
40
+ const tailBytes = availableBytes - headBytes;
41
+ return { headBytes, tailBytes };
42
+ }
43
+ function appendToMiddleTruncationAccumulator(accumulator, chunk) {
44
+ if (!chunk) {
45
+ return;
46
+ }
47
+ accumulator.totalBytes += byteLength(chunk);
48
+ if (!accumulator.truncated) {
49
+ const combined = `${accumulator.head}${chunk}`;
50
+ if (byteLength(combined) <= MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES) {
51
+ accumulator.head = combined;
52
+ return;
53
+ }
54
+ const { headBytes, tailBytes } = getHeadTailBudgets(MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES);
55
+ accumulator.head = sliceFirstBytes(combined, headBytes);
56
+ accumulator.tail = sliceLastBytes(combined, tailBytes);
57
+ accumulator.truncated = true;
58
+ return;
59
+ }
60
+ const { tailBytes } = getHeadTailBudgets(MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES);
61
+ accumulator.tail = sliceLastBytes(`${accumulator.tail}${chunk}`, tailBytes);
62
+ }
63
+ function truncateTextInMiddle(text, maxBytes) {
64
+ if (maxBytes <= 0 || !text) {
65
+ return { text: "", truncated: text.length > 0 };
66
+ }
67
+ if (byteLength(text) <= maxBytes) {
68
+ return { text, truncated: false };
69
+ }
70
+ const { headBytes, tailBytes } = getHeadTailBudgets(maxBytes);
71
+ return {
72
+ text: `${sliceFirstBytes(text, headBytes)}${WORKTREE_SETUP_TRUNCATION_MARKER}${sliceLastBytes(text, tailBytes)}`,
73
+ truncated: true,
74
+ };
75
+ }
76
+ function renderMiddleTruncationAccumulator(accumulator) {
77
+ if (!accumulator.truncated) {
78
+ return { text: accumulator.head, truncated: false };
79
+ }
80
+ return {
81
+ text: `${accumulator.head}${WORKTREE_SETUP_TRUNCATION_MARKER}${accumulator.tail}`,
82
+ truncated: true,
83
+ };
84
+ }
85
+ export async function createAgentWorktree(options) {
86
+ return createWorktree({
87
+ branchName: options.branchName,
88
+ cwd: options.cwd,
89
+ baseBranch: options.baseBranch,
90
+ worktreeSlug: options.worktreeSlug,
91
+ runSetup: false,
92
+ paseoHome: options.paseoHome,
93
+ });
94
+ }
95
+ function formatDurationMs(durationMs) {
96
+ return `${(durationMs / 1000).toFixed(2)}s`;
97
+ }
98
+ function commandStatusFromResult(result) {
99
+ if (result.exitCode === null) {
100
+ return "running";
101
+ }
102
+ return result.exitCode === 0 ? "completed" : "failed";
103
+ }
104
+ function buildWorktreeSetupLog(input) {
105
+ const { results, outputAccumulatorsByIndex } = input;
106
+ if (results.length === 0) {
107
+ return {
108
+ log: "",
109
+ truncated: false,
110
+ };
111
+ }
112
+ const lines = [];
113
+ let anyTruncated = false;
114
+ const total = results.length;
115
+ for (const [index, result] of results.entries()) {
116
+ lines.push(`==> [${index + 1}/${total}] Running: ${result.command}`);
117
+ const accumulator = outputAccumulatorsByIndex?.get(index + 1);
118
+ const output = accumulator
119
+ ? renderMiddleTruncationAccumulator(accumulator)
120
+ : truncateTextInMiddle(`${result.stdout ?? ""}${result.stderr ?? ""}`, MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES);
121
+ if (output.text.length > 0) {
122
+ lines.push(output.text.replace(/\n$/, ""));
123
+ }
124
+ if (output.truncated) {
125
+ anyTruncated = true;
126
+ }
127
+ if (result.exitCode !== null) {
128
+ lines.push(`<== [${index + 1}/${total}] Exit ${result.exitCode} in ${formatDurationMs(result.durationMs)}`);
129
+ }
130
+ }
131
+ return {
132
+ log: lines.join("\n"),
133
+ truncated: anyTruncated,
134
+ };
135
+ }
136
+ function buildSetupTimelineItem(input) {
137
+ const commands = input.results.map((result, index) => ({
138
+ index: index + 1,
139
+ command: result.command,
140
+ cwd: result.cwd,
141
+ status: commandStatusFromResult(result),
142
+ exitCode: result.exitCode,
143
+ ...(result.durationMs > 0 ? { durationMs: result.durationMs } : {}),
144
+ }));
145
+ const renderedLog = buildWorktreeSetupLog({
146
+ results: input.results,
147
+ outputAccumulatorsByIndex: input.outputAccumulatorsByIndex,
148
+ });
149
+ const detail = {
150
+ type: "worktree_setup",
151
+ worktreePath: input.worktree.worktreePath,
152
+ branchName: input.worktree.branchName,
153
+ log: renderedLog.log,
154
+ commands,
155
+ ...(renderedLog.truncated ? { truncated: true } : {}),
156
+ };
157
+ if (input.status === "running") {
158
+ return {
159
+ type: "tool_call",
160
+ name: "paseo_worktree_setup",
161
+ callId: input.callId,
162
+ status: "running",
163
+ detail,
164
+ error: null,
165
+ };
166
+ }
167
+ if (input.status === "completed") {
168
+ return {
169
+ type: "tool_call",
170
+ name: "paseo_worktree_setup",
171
+ callId: input.callId,
172
+ status: "completed",
173
+ detail,
174
+ error: null,
175
+ };
176
+ }
177
+ return {
178
+ type: "tool_call",
179
+ name: "paseo_worktree_setup",
180
+ callId: input.callId,
181
+ status: "failed",
182
+ detail,
183
+ error: { message: input.errorMessage ?? "Worktree setup failed" },
184
+ };
185
+ }
186
+ function buildTerminalTimelineItem(input) {
187
+ const detailInput = {
188
+ worktreePath: input.worktree.worktreePath,
189
+ branchName: input.worktree.branchName,
190
+ };
191
+ const detailOutput = {
192
+ worktreePath: input.worktree.worktreePath,
193
+ terminals: input.results,
194
+ };
195
+ if (input.status === "running") {
196
+ return {
197
+ type: "tool_call",
198
+ name: "paseo_worktree_terminals",
199
+ callId: input.callId,
200
+ status: "running",
201
+ detail: {
202
+ type: "unknown",
203
+ input: detailInput,
204
+ output: null,
205
+ },
206
+ error: null,
207
+ };
208
+ }
209
+ if (input.status === "completed") {
210
+ return {
211
+ type: "tool_call",
212
+ name: "paseo_worktree_terminals",
213
+ callId: input.callId,
214
+ status: "completed",
215
+ detail: {
216
+ type: "unknown",
217
+ input: detailInput,
218
+ output: detailOutput,
219
+ },
220
+ error: null,
221
+ };
222
+ }
223
+ return {
224
+ type: "tool_call",
225
+ name: "paseo_worktree_terminals",
226
+ callId: input.callId,
227
+ status: "failed",
228
+ detail: {
229
+ type: "unknown",
230
+ input: detailInput,
231
+ output: detailOutput,
232
+ },
233
+ error: { message: input.errorMessage ?? "Worktree terminal bootstrap failed" },
234
+ };
235
+ }
236
+ async function runWorktreeTerminalBootstrap(options) {
237
+ const terminalSpecs = getWorktreeTerminalSpecs(options.worktree.worktreePath);
238
+ if (terminalSpecs.length === 0) {
239
+ return;
240
+ }
241
+ const callId = uuidv4();
242
+ const started = await options.appendTimelineItem(buildTerminalTimelineItem({
243
+ callId,
244
+ status: "running",
245
+ worktree: options.worktree,
246
+ results: [],
247
+ errorMessage: null,
248
+ }));
249
+ if (!started) {
250
+ return;
251
+ }
252
+ if (!options.terminalManager) {
253
+ await options.appendTimelineItem(buildTerminalTimelineItem({
254
+ callId,
255
+ status: "failed",
256
+ worktree: options.worktree,
257
+ results: [],
258
+ errorMessage: "Terminal manager not available",
259
+ }));
260
+ return;
261
+ }
262
+ const results = [];
263
+ for (const spec of terminalSpecs) {
264
+ try {
265
+ const terminal = await options.terminalManager.createTerminal({
266
+ cwd: options.worktree.worktreePath,
267
+ name: spec.name,
268
+ });
269
+ terminal.send({
270
+ type: "input",
271
+ data: `${spec.command}\r`,
272
+ });
273
+ results.push({
274
+ name: terminal.name ?? spec.name ?? null,
275
+ command: spec.command,
276
+ status: "started",
277
+ terminalId: terminal.id,
278
+ error: null,
279
+ });
280
+ }
281
+ catch (error) {
282
+ const message = error instanceof Error ? error.message : String(error);
283
+ options.logger?.warn({ agentId: options.agentId, command: spec.command, err: error }, "Failed to bootstrap worktree terminal");
284
+ results.push({
285
+ name: spec.name ?? null,
286
+ command: spec.command,
287
+ status: "failed",
288
+ terminalId: null,
289
+ error: message,
290
+ });
291
+ }
292
+ }
293
+ await options.appendTimelineItem(buildTerminalTimelineItem({
294
+ callId,
295
+ status: "completed",
296
+ worktree: options.worktree,
297
+ results,
298
+ errorMessage: null,
299
+ }));
300
+ }
301
+ export async function runAsyncWorktreeBootstrap(options) {
302
+ const setupCallId = uuidv4();
303
+ let setupResults = [];
304
+ const emitLiveTimelineItem = options.emitLiveTimelineItem;
305
+ const runningResultsByIndex = new Map();
306
+ const outputAccumulatorsByIndex = new Map();
307
+ let liveEmitQueue = Promise.resolve();
308
+ const queueLiveRunningEmit = () => {
309
+ if (!emitLiveTimelineItem) {
310
+ return;
311
+ }
312
+ const runningResults = Array.from(runningResultsByIndex.entries())
313
+ .sort((a, b) => a[0] - b[0])
314
+ .map(([, result]) => result);
315
+ liveEmitQueue = liveEmitQueue.then(async () => {
316
+ try {
317
+ await emitLiveTimelineItem(buildSetupTimelineItem({
318
+ callId: setupCallId,
319
+ status: "running",
320
+ worktree: options.worktree,
321
+ results: runningResults,
322
+ outputAccumulatorsByIndex,
323
+ errorMessage: null,
324
+ }));
325
+ }
326
+ catch (error) {
327
+ options.logger?.warn({ err: error, agentId: options.agentId }, "Failed to emit live worktree setup timeline update");
328
+ }
329
+ });
330
+ };
331
+ try {
332
+ setupResults = await runWorktreeSetupCommands({
333
+ worktreePath: options.worktree.worktreePath,
334
+ branchName: options.worktree.branchName,
335
+ cleanupOnFailure: false,
336
+ onEvent: (event) => {
337
+ const existing = runningResultsByIndex.get(event.index);
338
+ const baseResult = existing ?? {
339
+ command: event.command,
340
+ cwd: event.cwd,
341
+ stdout: "",
342
+ stderr: "",
343
+ exitCode: null,
344
+ durationMs: 0,
345
+ };
346
+ if (event.type === "output") {
347
+ const outputAccumulator = outputAccumulatorsByIndex.get(event.index) ??
348
+ createMiddleTruncationAccumulator();
349
+ appendToMiddleTruncationAccumulator(outputAccumulator, event.chunk);
350
+ outputAccumulatorsByIndex.set(event.index, outputAccumulator);
351
+ runningResultsByIndex.set(event.index, {
352
+ ...baseResult,
353
+ // Keep the timeline command model lightweight; output is carried in
354
+ // outputAccumulatorsByIndex.
355
+ stdout: baseResult.stdout,
356
+ stderr: baseResult.stderr,
357
+ });
358
+ queueLiveRunningEmit();
359
+ return;
360
+ }
361
+ if (event.type === "command_completed") {
362
+ runningResultsByIndex.set(event.index, {
363
+ ...baseResult,
364
+ stdout: event.stdout,
365
+ stderr: event.stderr,
366
+ exitCode: event.exitCode,
367
+ durationMs: event.durationMs,
368
+ });
369
+ queueLiveRunningEmit();
370
+ return;
371
+ }
372
+ runningResultsByIndex.set(event.index, baseResult);
373
+ queueLiveRunningEmit();
374
+ },
375
+ });
376
+ await liveEmitQueue;
377
+ const completed = await options.appendTimelineItem(buildSetupTimelineItem({
378
+ callId: setupCallId,
379
+ status: "completed",
380
+ worktree: options.worktree,
381
+ results: setupResults,
382
+ outputAccumulatorsByIndex,
383
+ errorMessage: null,
384
+ }));
385
+ if (!completed) {
386
+ return;
387
+ }
388
+ }
389
+ catch (error) {
390
+ if (error instanceof WorktreeSetupError) {
391
+ setupResults = error.results;
392
+ }
393
+ await liveEmitQueue;
394
+ const message = error instanceof Error ? error.message : String(error);
395
+ await options.appendTimelineItem(buildSetupTimelineItem({
396
+ callId: setupCallId,
397
+ status: "failed",
398
+ worktree: options.worktree,
399
+ results: setupResults,
400
+ outputAccumulatorsByIndex,
401
+ errorMessage: message,
402
+ }));
403
+ return;
404
+ }
405
+ await runWorktreeTerminalBootstrap(options);
406
+ }
407
+ //# sourceMappingURL=worktree-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-bootstrap.js","sourceRoot":"","sources":["../../../src/server/worktree-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"binary-mux.d.ts","sourceRoot":"","sources":["../../../src/shared/binary-mux.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,0BAAkB,gBAAgB;IAChC,QAAQ,IAAI;IACZ,YAAY,IAAI;CACjB;AAED,0BAAkB,yBAAyB;IACzC,SAAS,IAAI;IACb,UAAU,IAAI;IACd,GAAG,IAAI;CACR;AAED,0BAAkB,mBAAmB;IACnC,MAAM,IAAI;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAc7D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAKhE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAkCtE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAsB5E"}
1
+ {"version":3,"file":"binary-mux.d.ts","sourceRoot":"","sources":["../../../src/shared/binary-mux.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,0BAAkB,gBAAgB;IAChC,QAAQ,IAAI;IACZ,YAAY,IAAI;CACjB;AAED,0BAAkB,yBAAyB;IACzC,SAAS,IAAI;IACb,UAAU,IAAI;IACd,GAAG,IAAI;CACR;AAED,0BAAkB,mBAAmB;IACnC,MAAM,IAAI;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CA2B7D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAKhE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAkCtE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAsB5E"}
@@ -26,6 +26,19 @@ export var TerminalBinaryFlags;
26
26
  TerminalBinaryFlags[TerminalBinaryFlags["Replay"] = 1] = "Replay";
27
27
  })(TerminalBinaryFlags || (TerminalBinaryFlags = {}));
28
28
  export function asUint8Array(data) {
29
+ if (typeof data === "string") {
30
+ if (typeof TextEncoder !== "undefined") {
31
+ return new TextEncoder().encode(data);
32
+ }
33
+ if (typeof Buffer !== "undefined") {
34
+ return new Uint8Array(Buffer.from(data, "utf8"));
35
+ }
36
+ const out = new Uint8Array(data.length);
37
+ for (let i = 0; i < data.length; i += 1) {
38
+ out[i] = data.charCodeAt(i) & 0xff;
39
+ }
40
+ return out;
41
+ }
29
42
  if (data instanceof Uint8Array) {
30
43
  return data;
31
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"binary-mux.js","sourceRoot":"","sources":["../../../src/shared/binary-mux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-mux.js","sourceRoot":"","sources":["../../../src/shared/binary-mux.ts"],"names":[],"mappings":"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"}