@getpaseo/server 0.1.4 → 0.1.7

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 (86) hide show
  1. package/dist/scripts/daemon-runner.js +31 -7
  2. package/dist/scripts/daemon-runner.js.map +1 -1
  3. package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +1 -1
  4. package/dist/server/client/daemon-client-terminal-stream-manager.js +4 -0
  5. package/dist/server/client/daemon-client-terminal-stream-manager.js.map +1 -1
  6. package/dist/server/client/daemon-client.d.ts +25 -15
  7. package/dist/server/client/daemon-client.d.ts.map +1 -1
  8. package/dist/server/client/daemon-client.js +47 -23
  9. package/dist/server/client/daemon-client.js.map +1 -1
  10. package/dist/server/server/agent/agent-management-mcp.d.ts +2 -0
  11. package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
  12. package/dist/server/server/agent/agent-management-mcp.js +29 -4
  13. package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
  14. package/dist/server/server/agent/agent-manager.d.ts +3 -0
  15. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  16. package/dist/server/server/agent/agent-manager.js +27 -5
  17. package/dist/server/server/agent/agent-manager.js.map +1 -1
  18. package/dist/server/server/agent/agent-sdk-types.d.ts +14 -0
  19. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  20. package/dist/server/server/agent/mcp-server.d.ts +2 -0
  21. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  22. package/dist/server/server/agent/mcp-server.js +30 -5
  23. package/dist/server/server/agent/mcp-server.js.map +1 -1
  24. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +42 -0
  25. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  26. package/dist/server/server/agent/timeline-append.d.ts +10 -0
  27. package/dist/server/server/agent/timeline-append.d.ts.map +1 -0
  28. package/dist/server/server/agent/timeline-append.js +27 -0
  29. package/dist/server/server/agent/timeline-append.js.map +1 -0
  30. package/dist/server/server/bootstrap.d.ts.map +1 -1
  31. package/dist/server/server/bootstrap.js +3 -0
  32. package/dist/server/server/bootstrap.js.map +1 -1
  33. package/dist/server/server/exports.d.ts +1 -0
  34. package/dist/server/server/exports.d.ts.map +1 -1
  35. package/dist/server/server/exports.js +1 -0
  36. package/dist/server/server/exports.js.map +1 -1
  37. package/dist/server/server/persisted-config.d.ts +8 -8
  38. package/dist/server/server/session.d.ts +20 -6
  39. package/dist/server/server/session.d.ts.map +1 -1
  40. package/dist/server/server/session.js +409 -173
  41. package/dist/server/server/session.js.map +1 -1
  42. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts.map +1 -1
  43. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js +85 -27
  44. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js.map +1 -1
  45. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts +18 -0
  46. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts.map +1 -0
  47. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js +68 -0
  48. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js.map +1 -0
  49. package/dist/server/server/utils/syntax-highlighter.d.ts.map +1 -1
  50. package/dist/server/server/utils/syntax-highlighter.js +4 -0
  51. package/dist/server/server/utils/syntax-highlighter.js.map +1 -1
  52. package/dist/server/server/worktree-bootstrap.d.ts +29 -0
  53. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -0
  54. package/dist/server/server/worktree-bootstrap.js +454 -0
  55. package/dist/server/server/worktree-bootstrap.js.map +1 -0
  56. package/dist/server/shared/binary-mux.d.ts.map +1 -1
  57. package/dist/server/shared/binary-mux.js +13 -0
  58. package/dist/server/shared/binary-mux.js.map +1 -1
  59. package/dist/server/shared/messages.d.ts +2279 -2493
  60. package/dist/server/shared/messages.d.ts.map +1 -1
  61. package/dist/server/shared/messages.js +71 -25
  62. package/dist/server/shared/messages.js.map +1 -1
  63. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  64. package/dist/server/shared/tool-call-display.js +4 -0
  65. package/dist/server/shared/tool-call-display.js.map +1 -1
  66. package/dist/server/terminal/terminal-manager.d.ts +16 -0
  67. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  68. package/dist/server/terminal/terminal-manager.js +105 -24
  69. package/dist/server/terminal/terminal-manager.js.map +1 -1
  70. package/dist/server/terminal/terminal.d.ts +1 -0
  71. package/dist/server/terminal/terminal.d.ts.map +1 -1
  72. package/dist/server/terminal/terminal.js +54 -6
  73. package/dist/server/terminal/terminal.js.map +1 -1
  74. package/dist/server/utils/directory-suggestions.d.ts +9 -0
  75. package/dist/server/utils/directory-suggestions.d.ts.map +1 -0
  76. package/dist/server/utils/directory-suggestions.js +328 -0
  77. package/dist/server/utils/directory-suggestions.js.map +1 -0
  78. package/dist/server/utils/worktree-metadata.d.ts +28 -2
  79. package/dist/server/utils/worktree-metadata.d.ts.map +1 -1
  80. package/dist/server/utils/worktree-metadata.js +43 -1
  81. package/dist/server/utils/worktree-metadata.js.map +1 -1
  82. package/dist/server/utils/worktree.d.ts +45 -0
  83. package/dist/server/utils/worktree.d.ts.map +1 -1
  84. package/dist/server/utils/worktree.js +183 -18
  85. package/dist/server/utils/worktree.js.map +1 -1
  86. package/package.json +3 -2
@@ -0,0 +1,454 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ import { createWorktree, getWorktreeTerminalSpecs, resolveWorktreeRuntimeEnv, 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
+ const WORKTREE_BOOTSTRAP_TERMINAL_READY_TIMEOUT_MS = 1500;
6
+ function byteLength(text) {
7
+ return Buffer.byteLength(text, "utf8");
8
+ }
9
+ function sliceFirstBytes(text, maxBytes) {
10
+ if (maxBytes <= 0 || text.length === 0) {
11
+ return "";
12
+ }
13
+ const bytes = Buffer.from(text, "utf8");
14
+ if (bytes.length <= maxBytes) {
15
+ return text;
16
+ }
17
+ return bytes.subarray(0, maxBytes).toString("utf8");
18
+ }
19
+ function sliceLastBytes(text, maxBytes) {
20
+ if (maxBytes <= 0 || text.length === 0) {
21
+ return "";
22
+ }
23
+ const bytes = Buffer.from(text, "utf8");
24
+ if (bytes.length <= maxBytes) {
25
+ return text;
26
+ }
27
+ return bytes.subarray(bytes.length - maxBytes).toString("utf8");
28
+ }
29
+ function createMiddleTruncationAccumulator() {
30
+ return {
31
+ totalBytes: 0,
32
+ head: "",
33
+ tail: "",
34
+ truncated: false,
35
+ };
36
+ }
37
+ function getHeadTailBudgets(maxBytes) {
38
+ const markerBytes = byteLength(WORKTREE_SETUP_TRUNCATION_MARKER);
39
+ const availableBytes = Math.max(0, maxBytes - markerBytes);
40
+ const headBytes = Math.floor(availableBytes / 2);
41
+ const tailBytes = availableBytes - headBytes;
42
+ return { headBytes, tailBytes };
43
+ }
44
+ function appendToMiddleTruncationAccumulator(accumulator, chunk) {
45
+ if (!chunk) {
46
+ return;
47
+ }
48
+ accumulator.totalBytes += byteLength(chunk);
49
+ if (!accumulator.truncated) {
50
+ const combined = `${accumulator.head}${chunk}`;
51
+ if (byteLength(combined) <= MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES) {
52
+ accumulator.head = combined;
53
+ return;
54
+ }
55
+ const { headBytes, tailBytes } = getHeadTailBudgets(MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES);
56
+ accumulator.head = sliceFirstBytes(combined, headBytes);
57
+ accumulator.tail = sliceLastBytes(combined, tailBytes);
58
+ accumulator.truncated = true;
59
+ return;
60
+ }
61
+ const { tailBytes } = getHeadTailBudgets(MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES);
62
+ accumulator.tail = sliceLastBytes(`${accumulator.tail}${chunk}`, tailBytes);
63
+ }
64
+ function truncateTextInMiddle(text, maxBytes) {
65
+ if (maxBytes <= 0 || !text) {
66
+ return { text: "", truncated: text.length > 0 };
67
+ }
68
+ if (byteLength(text) <= maxBytes) {
69
+ return { text, truncated: false };
70
+ }
71
+ const { headBytes, tailBytes } = getHeadTailBudgets(maxBytes);
72
+ return {
73
+ text: `${sliceFirstBytes(text, headBytes)}${WORKTREE_SETUP_TRUNCATION_MARKER}${sliceLastBytes(text, tailBytes)}`,
74
+ truncated: true,
75
+ };
76
+ }
77
+ function renderMiddleTruncationAccumulator(accumulator) {
78
+ if (!accumulator.truncated) {
79
+ return { text: accumulator.head, truncated: false };
80
+ }
81
+ return {
82
+ text: `${accumulator.head}${WORKTREE_SETUP_TRUNCATION_MARKER}${accumulator.tail}`,
83
+ truncated: true,
84
+ };
85
+ }
86
+ export async function createAgentWorktree(options) {
87
+ return createWorktree({
88
+ branchName: options.branchName,
89
+ cwd: options.cwd,
90
+ baseBranch: options.baseBranch,
91
+ worktreeSlug: options.worktreeSlug,
92
+ runSetup: false,
93
+ paseoHome: options.paseoHome,
94
+ });
95
+ }
96
+ function formatDurationMs(durationMs) {
97
+ return `${(durationMs / 1000).toFixed(2)}s`;
98
+ }
99
+ function commandStatusFromResult(result) {
100
+ if (result.exitCode === null) {
101
+ return "running";
102
+ }
103
+ return result.exitCode === 0 ? "completed" : "failed";
104
+ }
105
+ function buildWorktreeSetupLog(input) {
106
+ const { results, outputAccumulatorsByIndex } = input;
107
+ if (results.length === 0) {
108
+ return {
109
+ log: "",
110
+ truncated: false,
111
+ };
112
+ }
113
+ const lines = [];
114
+ let anyTruncated = false;
115
+ const total = results.length;
116
+ for (const [index, result] of results.entries()) {
117
+ lines.push(`==> [${index + 1}/${total}] Running: ${result.command}`);
118
+ const accumulator = outputAccumulatorsByIndex?.get(index + 1);
119
+ const output = accumulator
120
+ ? renderMiddleTruncationAccumulator(accumulator)
121
+ : truncateTextInMiddle(`${result.stdout ?? ""}${result.stderr ?? ""}`, MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES);
122
+ if (output.text.length > 0) {
123
+ lines.push(output.text.replace(/\n$/, ""));
124
+ }
125
+ if (output.truncated) {
126
+ anyTruncated = true;
127
+ }
128
+ if (result.exitCode !== null) {
129
+ lines.push(`<== [${index + 1}/${total}] Exit ${result.exitCode} in ${formatDurationMs(result.durationMs)}`);
130
+ }
131
+ }
132
+ return {
133
+ log: lines.join("\n"),
134
+ truncated: anyTruncated,
135
+ };
136
+ }
137
+ function buildSetupTimelineItem(input) {
138
+ const commands = input.results.map((result, index) => ({
139
+ index: index + 1,
140
+ command: result.command,
141
+ cwd: result.cwd,
142
+ status: commandStatusFromResult(result),
143
+ exitCode: result.exitCode,
144
+ ...(result.durationMs > 0 ? { durationMs: result.durationMs } : {}),
145
+ }));
146
+ const renderedLog = buildWorktreeSetupLog({
147
+ results: input.results,
148
+ outputAccumulatorsByIndex: input.outputAccumulatorsByIndex,
149
+ });
150
+ const detail = {
151
+ type: "worktree_setup",
152
+ worktreePath: input.worktree.worktreePath,
153
+ branchName: input.worktree.branchName,
154
+ log: renderedLog.log,
155
+ commands,
156
+ ...(renderedLog.truncated ? { truncated: true } : {}),
157
+ };
158
+ if (input.status === "running") {
159
+ return {
160
+ type: "tool_call",
161
+ name: "paseo_worktree_setup",
162
+ callId: input.callId,
163
+ status: "running",
164
+ detail,
165
+ error: null,
166
+ };
167
+ }
168
+ if (input.status === "completed") {
169
+ return {
170
+ type: "tool_call",
171
+ name: "paseo_worktree_setup",
172
+ callId: input.callId,
173
+ status: "completed",
174
+ detail,
175
+ error: null,
176
+ };
177
+ }
178
+ return {
179
+ type: "tool_call",
180
+ name: "paseo_worktree_setup",
181
+ callId: input.callId,
182
+ status: "failed",
183
+ detail,
184
+ error: { message: input.errorMessage ?? "Worktree setup failed" },
185
+ };
186
+ }
187
+ function buildTerminalTimelineItem(input) {
188
+ const detailInput = {
189
+ worktreePath: input.worktree.worktreePath,
190
+ branchName: input.worktree.branchName,
191
+ };
192
+ const detailOutput = {
193
+ worktreePath: input.worktree.worktreePath,
194
+ terminals: input.results,
195
+ };
196
+ if (input.status === "running") {
197
+ return {
198
+ type: "tool_call",
199
+ name: "paseo_worktree_terminals",
200
+ callId: input.callId,
201
+ status: "running",
202
+ detail: {
203
+ type: "unknown",
204
+ input: detailInput,
205
+ output: null,
206
+ },
207
+ error: null,
208
+ };
209
+ }
210
+ if (input.status === "completed") {
211
+ return {
212
+ type: "tool_call",
213
+ name: "paseo_worktree_terminals",
214
+ callId: input.callId,
215
+ status: "completed",
216
+ detail: {
217
+ type: "unknown",
218
+ input: detailInput,
219
+ output: detailOutput,
220
+ },
221
+ error: null,
222
+ };
223
+ }
224
+ return {
225
+ type: "tool_call",
226
+ name: "paseo_worktree_terminals",
227
+ callId: input.callId,
228
+ status: "failed",
229
+ detail: {
230
+ type: "unknown",
231
+ input: detailInput,
232
+ output: detailOutput,
233
+ },
234
+ error: { message: input.errorMessage ?? "Worktree terminal bootstrap failed" },
235
+ };
236
+ }
237
+ async function waitForTerminalBootstrapReadiness(terminal) {
238
+ if (terminal.getOutputOffset() > 0) {
239
+ return;
240
+ }
241
+ await new Promise((resolve) => {
242
+ let settled = false;
243
+ let timeout = null;
244
+ let unsubscribe = null;
245
+ const finish = () => {
246
+ if (settled) {
247
+ return;
248
+ }
249
+ settled = true;
250
+ if (timeout) {
251
+ clearTimeout(timeout);
252
+ timeout = null;
253
+ }
254
+ if (unsubscribe) {
255
+ unsubscribe();
256
+ unsubscribe = null;
257
+ }
258
+ resolve();
259
+ };
260
+ const rawSubscription = terminal.subscribeRaw(() => {
261
+ finish();
262
+ });
263
+ unsubscribe = rawSubscription.unsubscribe;
264
+ if (terminal.getOutputOffset() > 0) {
265
+ finish();
266
+ return;
267
+ }
268
+ timeout = setTimeout(finish, WORKTREE_BOOTSTRAP_TERMINAL_READY_TIMEOUT_MS);
269
+ });
270
+ }
271
+ async function runWorktreeTerminalBootstrap(options, runtimeEnv) {
272
+ const terminalSpecs = getWorktreeTerminalSpecs(options.worktree.worktreePath);
273
+ if (terminalSpecs.length === 0) {
274
+ return;
275
+ }
276
+ const callId = uuidv4();
277
+ const started = await options.appendTimelineItem(buildTerminalTimelineItem({
278
+ callId,
279
+ status: "running",
280
+ worktree: options.worktree,
281
+ results: [],
282
+ errorMessage: null,
283
+ }));
284
+ if (!started) {
285
+ return;
286
+ }
287
+ if (!options.terminalManager) {
288
+ await options.appendTimelineItem(buildTerminalTimelineItem({
289
+ callId,
290
+ status: "failed",
291
+ worktree: options.worktree,
292
+ results: [],
293
+ errorMessage: "Terminal manager not available",
294
+ }));
295
+ return;
296
+ }
297
+ const results = [];
298
+ for (const spec of terminalSpecs) {
299
+ try {
300
+ const terminal = await options.terminalManager.createTerminal({
301
+ cwd: options.worktree.worktreePath,
302
+ name: spec.name,
303
+ env: runtimeEnv,
304
+ });
305
+ await waitForTerminalBootstrapReadiness(terminal);
306
+ terminal.send({
307
+ type: "input",
308
+ data: `${spec.command}\r`,
309
+ });
310
+ results.push({
311
+ name: terminal.name ?? spec.name ?? null,
312
+ command: spec.command,
313
+ status: "started",
314
+ terminalId: terminal.id,
315
+ error: null,
316
+ });
317
+ }
318
+ catch (error) {
319
+ const message = error instanceof Error ? error.message : String(error);
320
+ options.logger?.warn({ agentId: options.agentId, command: spec.command, err: error }, "Failed to bootstrap worktree terminal");
321
+ results.push({
322
+ name: spec.name ?? null,
323
+ command: spec.command,
324
+ status: "failed",
325
+ terminalId: null,
326
+ error: message,
327
+ });
328
+ }
329
+ }
330
+ await options.appendTimelineItem(buildTerminalTimelineItem({
331
+ callId,
332
+ status: "completed",
333
+ worktree: options.worktree,
334
+ results,
335
+ errorMessage: null,
336
+ }));
337
+ }
338
+ export async function runAsyncWorktreeBootstrap(options) {
339
+ const setupCallId = uuidv4();
340
+ let setupResults = [];
341
+ let runtimeEnv = null;
342
+ const emitLiveTimelineItem = options.emitLiveTimelineItem;
343
+ const runningResultsByIndex = new Map();
344
+ const outputAccumulatorsByIndex = new Map();
345
+ let liveEmitQueue = Promise.resolve();
346
+ const queueLiveRunningEmit = () => {
347
+ if (!emitLiveTimelineItem) {
348
+ return;
349
+ }
350
+ const runningResults = Array.from(runningResultsByIndex.entries())
351
+ .sort((a, b) => a[0] - b[0])
352
+ .map(([, result]) => result);
353
+ liveEmitQueue = liveEmitQueue.then(async () => {
354
+ try {
355
+ await emitLiveTimelineItem(buildSetupTimelineItem({
356
+ callId: setupCallId,
357
+ status: "running",
358
+ worktree: options.worktree,
359
+ results: runningResults,
360
+ outputAccumulatorsByIndex,
361
+ errorMessage: null,
362
+ }));
363
+ }
364
+ catch (error) {
365
+ options.logger?.warn({ err: error, agentId: options.agentId }, "Failed to emit live worktree setup timeline update");
366
+ }
367
+ });
368
+ };
369
+ try {
370
+ runtimeEnv = await resolveWorktreeRuntimeEnv({
371
+ worktreePath: options.worktree.worktreePath,
372
+ branchName: options.worktree.branchName,
373
+ });
374
+ options.terminalManager?.registerCwdEnv({
375
+ cwd: options.worktree.worktreePath,
376
+ env: runtimeEnv,
377
+ });
378
+ setupResults = await runWorktreeSetupCommands({
379
+ worktreePath: options.worktree.worktreePath,
380
+ branchName: options.worktree.branchName,
381
+ cleanupOnFailure: false,
382
+ runtimeEnv,
383
+ onEvent: (event) => {
384
+ const existing = runningResultsByIndex.get(event.index);
385
+ const baseResult = existing ?? {
386
+ command: event.command,
387
+ cwd: event.cwd,
388
+ stdout: "",
389
+ stderr: "",
390
+ exitCode: null,
391
+ durationMs: 0,
392
+ };
393
+ if (event.type === "output") {
394
+ const outputAccumulator = outputAccumulatorsByIndex.get(event.index) ??
395
+ createMiddleTruncationAccumulator();
396
+ appendToMiddleTruncationAccumulator(outputAccumulator, event.chunk);
397
+ outputAccumulatorsByIndex.set(event.index, outputAccumulator);
398
+ runningResultsByIndex.set(event.index, {
399
+ ...baseResult,
400
+ // Keep the timeline command model lightweight; output is carried in
401
+ // outputAccumulatorsByIndex.
402
+ stdout: baseResult.stdout,
403
+ stderr: baseResult.stderr,
404
+ });
405
+ queueLiveRunningEmit();
406
+ return;
407
+ }
408
+ if (event.type === "command_completed") {
409
+ runningResultsByIndex.set(event.index, {
410
+ ...baseResult,
411
+ stdout: event.stdout,
412
+ stderr: event.stderr,
413
+ exitCode: event.exitCode,
414
+ durationMs: event.durationMs,
415
+ });
416
+ queueLiveRunningEmit();
417
+ return;
418
+ }
419
+ runningResultsByIndex.set(event.index, baseResult);
420
+ queueLiveRunningEmit();
421
+ },
422
+ });
423
+ await liveEmitQueue;
424
+ const completed = await options.appendTimelineItem(buildSetupTimelineItem({
425
+ callId: setupCallId,
426
+ status: "completed",
427
+ worktree: options.worktree,
428
+ results: setupResults,
429
+ outputAccumulatorsByIndex,
430
+ errorMessage: null,
431
+ }));
432
+ if (!completed) {
433
+ return;
434
+ }
435
+ }
436
+ catch (error) {
437
+ if (error instanceof WorktreeSetupError) {
438
+ setupResults = error.results;
439
+ }
440
+ await liveEmitQueue;
441
+ const message = error instanceof Error ? error.message : String(error);
442
+ await options.appendTimelineItem(buildSetupTimelineItem({
443
+ callId: setupCallId,
444
+ status: "failed",
445
+ worktree: options.worktree,
446
+ results: setupResults,
447
+ outputAccumulatorsByIndex,
448
+ errorMessage: message,
449
+ }));
450
+ return;
451
+ }
452
+ await runWorktreeTerminalBootstrap(options, runtimeEnv);
453
+ }
454
+ //# 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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"}