mandala-computer-mcp 0.3.0 → 0.5.0

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 (130) hide show
  1. package/README.md +462 -37
  2. package/dist/api.d.ts +12 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +262 -42
  5. package/dist/api.js.map +1 -1
  6. package/dist/artifacts.d.ts +63 -0
  7. package/dist/artifacts.d.ts.map +1 -0
  8. package/dist/artifacts.js +81 -0
  9. package/dist/artifacts.js.map +1 -0
  10. package/dist/cli.d.ts +4 -0
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +35 -21
  13. package/dist/cli.js.map +1 -1
  14. package/dist/credentials.d.ts +33 -0
  15. package/dist/credentials.d.ts.map +1 -0
  16. package/dist/credentials.js +395 -0
  17. package/dist/credentials.js.map +1 -0
  18. package/dist/errors.d.ts +53 -10
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +122 -35
  21. package/dist/errors.js.map +1 -1
  22. package/dist/events.d.ts +11 -2
  23. package/dist/events.d.ts.map +1 -1
  24. package/dist/events.js +213 -95
  25. package/dist/events.js.map +1 -1
  26. package/dist/executions.d.ts +43 -0
  27. package/dist/executions.d.ts.map +1 -0
  28. package/dist/executions.js +162 -0
  29. package/dist/executions.js.map +1 -0
  30. package/dist/format.d.ts +11 -11
  31. package/dist/format.d.ts.map +1 -1
  32. package/dist/format.js +159 -16
  33. package/dist/format.js.map +1 -1
  34. package/dist/http.d.ts.map +1 -1
  35. package/dist/http.js +4 -0
  36. package/dist/http.js.map +1 -1
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +1 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/limits.d.ts +17 -0
  42. package/dist/limits.d.ts.map +1 -0
  43. package/dist/limits.js +17 -0
  44. package/dist/limits.js.map +1 -0
  45. package/dist/paths.d.ts +42 -2
  46. package/dist/paths.d.ts.map +1 -1
  47. package/dist/paths.js +54 -3
  48. package/dist/paths.js.map +1 -1
  49. package/dist/poll.d.ts +5 -1
  50. package/dist/poll.d.ts.map +1 -1
  51. package/dist/poll.js +120 -16
  52. package/dist/poll.js.map +1 -1
  53. package/dist/results.d.ts +97 -0
  54. package/dist/results.d.ts.map +1 -0
  55. package/dist/results.js +263 -0
  56. package/dist/results.js.map +1 -0
  57. package/dist/server.d.ts +3 -2
  58. package/dist/server.d.ts.map +1 -1
  59. package/dist/server.js +61 -9
  60. package/dist/server.js.map +1 -1
  61. package/dist/stdio.d.ts +5 -1
  62. package/dist/stdio.d.ts.map +1 -1
  63. package/dist/stdio.js +10 -4
  64. package/dist/stdio.js.map +1 -1
  65. package/dist/tool-filters.d.ts +38 -0
  66. package/dist/tool-filters.d.ts.map +1 -0
  67. package/dist/tool-filters.js +129 -0
  68. package/dist/tool-filters.js.map +1 -0
  69. package/dist/tools/account.d.ts +3 -0
  70. package/dist/tools/account.d.ts.map +1 -0
  71. package/dist/tools/account.js +122 -0
  72. package/dist/tools/account.js.map +1 -0
  73. package/dist/tools/activities.d.ts +3 -0
  74. package/dist/tools/activities.d.ts.map +1 -0
  75. package/dist/tools/activities.js +140 -0
  76. package/dist/tools/activities.js.map +1 -0
  77. package/dist/tools/agent.d.ts.map +1 -1
  78. package/dist/tools/agent.js +72 -5
  79. package/dist/tools/agent.js.map +1 -1
  80. package/dist/tools/artifacts.d.ts +3 -0
  81. package/dist/tools/artifacts.d.ts.map +1 -0
  82. package/dist/tools/artifacts.js +97 -0
  83. package/dist/tools/artifacts.js.map +1 -0
  84. package/dist/tools/chat.d.ts +6 -0
  85. package/dist/tools/chat.d.ts.map +1 -0
  86. package/dist/tools/chat.js +192 -0
  87. package/dist/tools/chat.js.map +1 -0
  88. package/dist/tools/computers.d.ts.map +1 -1
  89. package/dist/tools/computers.js +300 -247
  90. package/dist/tools/computers.js.map +1 -1
  91. package/dist/tools/directory.d.ts +13 -0
  92. package/dist/tools/directory.d.ts.map +1 -0
  93. package/dist/tools/directory.js +88 -0
  94. package/dist/tools/directory.js.map +1 -0
  95. package/dist/tools/events.d.ts.map +1 -1
  96. package/dist/tools/events.js +66 -22
  97. package/dist/tools/events.js.map +1 -1
  98. package/dist/tools/executions.d.ts +3 -0
  99. package/dist/tools/executions.d.ts.map +1 -0
  100. package/dist/tools/executions.js +87 -0
  101. package/dist/tools/executions.js.map +1 -0
  102. package/dist/tools/guest.d.ts.map +1 -1
  103. package/dist/tools/guest.js +57 -17
  104. package/dist/tools/guest.js.map +1 -1
  105. package/dist/tools/input.d.ts.map +1 -1
  106. package/dist/tools/input.js +63 -5
  107. package/dist/tools/input.js.map +1 -1
  108. package/dist/tools/results.d.ts +30 -0
  109. package/dist/tools/results.d.ts.map +1 -0
  110. package/dist/tools/results.js +106 -0
  111. package/dist/tools/results.js.map +1 -0
  112. package/dist/tools/secrets.d.ts +58 -0
  113. package/dist/tools/secrets.d.ts.map +1 -0
  114. package/dist/tools/secrets.js +204 -0
  115. package/dist/tools/secrets.js.map +1 -0
  116. package/dist/tools/signals.d.ts +3 -0
  117. package/dist/tools/signals.d.ts.map +1 -0
  118. package/dist/tools/signals.js +116 -0
  119. package/dist/tools/signals.js.map +1 -0
  120. package/dist/tools/snapshots.d.ts.map +1 -1
  121. package/dist/tools/snapshots.js +213 -167
  122. package/dist/tools/snapshots.js.map +1 -1
  123. package/dist/tools/ssh.d.ts +3 -0
  124. package/dist/tools/ssh.d.ts.map +1 -0
  125. package/dist/tools/ssh.js +186 -0
  126. package/dist/tools/ssh.js.map +1 -0
  127. package/dist/tools/templates.d.ts.map +1 -1
  128. package/dist/tools/templates.js +9 -13
  129. package/dist/tools/templates.js.map +1 -1
  130. package/package.json +1 -1
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -1,8 +1,15 @@
1
1
  import { Agent, Headers as UndiciHeaders, fetch as undiciFetch } from 'undici';
2
- import { CancelledError, ConnectivityError, ConnectivityInterruptedError, errorForStatus, MandalaError, RangeNotSatisfiableError, RedirectError, } from './errors.js';
2
+ import { CancelledError, ConnectivityError, ConnectivityInterruptedError, errorForStatus, MandalaError, platformSaid, RangeNotSatisfiableError, RedirectError, } from './errors.js';
3
3
  export const DEFAULT_BASE_URL = 'https://app.mandala.computer/api/v1';
4
4
  /** Anthropic's own key, forwarded for the one route that runs a model. */
5
5
  export const MODEL_KEY_HEADER = 'X-Model-Key';
6
+ function responseMetadata(resp) {
7
+ return {
8
+ requestId: resp.headers.get('x-request-id') ?? undefined,
9
+ allow: resp.headers.get('allow') ?? undefined,
10
+ wwwAuthenticate: resp.headers.get('www-authenticate') ?? undefined,
11
+ };
12
+ }
6
13
  /**
7
14
  * How much of an event stream will be held while waiting for a boundary.
8
15
  *
@@ -189,7 +196,7 @@ export class Api {
189
196
  }
190
197
  return url.toString();
191
198
  }
192
- async #fetch(method, path, opts = {}) {
199
+ async #fetch(method, path, opts = {}, bounded = false) {
193
200
  const headers = { ...this.#headers, ...opts.headers };
194
201
  // Typed as what we actually build rather than as BodyInit, which @types/node
195
202
  // does not put in the global scope.
@@ -207,6 +214,8 @@ export class Api {
207
214
  body = JSON.stringify(opts.body);
208
215
  }
209
216
  const signal = opts.signal ?? this.#signal;
217
+ if (bounded && signal?.aborted)
218
+ throw cancellationError(method, path, 'before dispatch');
210
219
  const requested = this.#url(path, opts.query);
211
220
  const fetchRequest = platformFetch();
212
221
  let resp;
@@ -227,7 +236,11 @@ export class Api {
227
236
  redirect: 'manual',
228
237
  dispatcher: PLATFORM_DISPATCHER,
229
238
  };
230
- resp = await fetchRequest(requested, init);
239
+ resp = bounded
240
+ ? await boundedWait(fetchRequest(requested, init), signal, (value) => {
241
+ void value.body?.cancel().catch(() => { });
242
+ })
243
+ : await fetchRequest(requested, init);
231
244
  }
232
245
  catch (cause) {
233
246
  // Cancellation first, because it is not a connectivity failure and the
@@ -264,13 +277,12 @@ export class Api {
264
277
  }
265
278
  // Before the general mapping, because a 3xx carries no error body to read
266
279
  // and its one useful field is a HEADER. Left to `#error` it would arrive as
267
- // a bare `HTTP 301`, which says nothing about the value that has to change.
280
+ // a bare `HTTP 301`, which says nothing about the configuration to inspect.
268
281
  if (resp.status >= 300 && resp.status < 400) {
269
282
  // Resolved against the request, because `Location` is very often relative
270
- // and `redirect: 'manual'` hands back the raw header. "set
271
- // MANDALA_BASE_URL to /api/v1/computers" names something that is not a URL
272
- // and would not work — and naming the value to paste is the entire reason
273
- // this branch exists rather than a bare `HTTP 301`.
283
+ // and `redirect: 'manual'` hands back the raw header. The resolved value
284
+ // is diagnostic only: it names the resource that redirected, not
285
+ // necessarily the API root callers should configure.
274
286
  const raw = resp.headers.get('location');
275
287
  let to = raw ?? undefined;
276
288
  if (raw) {
@@ -288,14 +300,17 @@ export class Api {
288
300
  // one holds its undici connection open until the GC gets to it — and the
289
301
  // whole point of this branch is a misconfigured base URL, which means
290
302
  // EVERY request takes it.
291
- await resp.body?.cancel().catch(() => { });
292
- throw new RedirectError(`${method} /${path.replace(/^\/+/, '')} was redirected (HTTP ${resp.status}${to ? ` to ${to}` : ', with no Location header'}). This client does not follow redirects, because a redirect says the ` +
293
- `address it was given is not the address in use — set MANDALA_BASE_URL to ` +
294
- `${to ? 'that URL' : 'the URL the platform actually serves'} rather than relying on ` +
295
- `a hop on every request. Retrying this unchanged gets the same answer.`, resp.status);
303
+ if (bounded)
304
+ void resp.body?.cancel().catch(() => { });
305
+ else
306
+ await resp.body?.cancel().catch(() => { });
307
+ throw new RedirectError(`${method} /${path.replace(/^\/+/, '')} was redirected (HTTP ${resp.status}${to ? ` to ${to}` : ', with no Location header'}). This client does not follow redirects. Verify that MANDALA_BASE_URL names the API ` +
308
+ `root that serves this request; ${to
309
+ ? 'the resource URL in Location is not itself a base URL to copy'
310
+ : 'the configured API root did not identify the resource directly'}. Retrying this unchanged gets the same answer.`, resp.status, undefined, undefined, responseMetadata(resp));
296
311
  }
297
312
  if (!resp.ok)
298
- throw await this.#error(resp, method, path, signal);
313
+ throw await this.#error(resp, method, path, signal, bounded);
299
314
  return resp;
300
315
  }
301
316
  /**
@@ -306,13 +321,18 @@ export class Api {
306
321
  * that predates window actions" — and replacing them with a status line would
307
322
  * throw away the only part of the response a model can do anything with.
308
323
  */
309
- async #error(resp, method, path, signal) {
324
+ async #error(resp, method, path, signal, bounded = false) {
310
325
  let body;
311
326
  let message = `HTTP ${resp.status}`;
312
327
  let text = '';
313
328
  let truncated = false;
314
329
  try {
315
- ({ text, truncated } = await readBody(method, path, signal, () => readTextAtMost(resp, MAX_ERROR_BODY_BYTES)));
330
+ ({ text, truncated } = await readBody(method, path, signal, () => bounded
331
+ ? readComplete(resp, 8192, signal).then((bytes) => ({
332
+ text: new TextDecoder().decode(bytes),
333
+ truncated: false,
334
+ }))
335
+ : readTextAtMost(resp, MAX_ERROR_BODY_BYTES)));
316
336
  }
317
337
  catch (cause) {
318
338
  // A response whose error body itself is broken still has a useful status.
@@ -329,11 +349,7 @@ export class Api {
329
349
  if (truncated)
330
350
  throw new SyntaxError('truncated response body');
331
351
  body = JSON.parse(text);
332
- const err = body?.error;
333
- if (typeof err === 'string' && err)
334
- message = err;
335
- else
336
- message = text.slice(0, 500);
352
+ message = platformSaid(body) ?? text.slice(0, 500);
337
353
  }
338
354
  catch {
339
355
  message = text.slice(0, 500);
@@ -353,9 +369,9 @@ export class Api {
353
369
  // Content-Range describes the file length, independently of Retry-After.
354
370
  if (resp.status === 416) {
355
371
  const total = parseContentRange(resp.headers.get('content-range'))?.total;
356
- return new RangeNotSatisfiableError(message, resp.status, body, total, delay);
372
+ return new RangeNotSatisfiableError(message, resp.status, body, total, delay, responseMetadata(resp));
357
373
  }
358
- return errorForStatus(resp.status, message, body, delay);
374
+ return errorForStatus(resp.status, message, body, delay, responseMetadata(resp));
359
375
  }
360
376
  /**
361
377
  * A JSON body, or nothing, or a named failure.
@@ -404,6 +420,66 @@ export class Api {
404
420
  }
405
421
  return body;
406
422
  }
423
+ /** Existing exec decoding plus observed status, used only to confirm optional retention. */
424
+ async jsonWithStatus(method, path, opts = {}) {
425
+ const resp = await this.#fetch(method, path, opts);
426
+ const value = await this.#decode(resp, method, path, opts.signal ?? this.#signal);
427
+ if (value === undefined || value === null)
428
+ throw new MandalaError('Expected an exec response');
429
+ return { status: resp.status, value };
430
+ }
431
+ /** Complete bounded responses for immutable retained protocols; never a successful prefix. */
432
+ async boundedBytes(method, path, limit, status, opts = {}) {
433
+ if (!Number.isSafeInteger(limit) || limit < 0 || limit > 64 * 1024 * 1024)
434
+ throw new MandalaError('Invalid bounded response limit');
435
+ const signal = opts.signal ?? this.#signal;
436
+ const resp = await this.#fetch(method, path, { ...opts, headers: { ...opts.headers, 'Accept-Encoding': 'identity' } }, true);
437
+ try {
438
+ if (resp.status !== status ||
439
+ resp.headers.has('Content-Range') ||
440
+ !['', 'identity'].includes(resp.headers.get('Content-Encoding') ?? ''))
441
+ throw new MandalaError('Unexpected retained response protocol');
442
+ const length = resp.headers.get('Content-Length');
443
+ if (length !== null &&
444
+ (!/^(0|[1-9][0-9]*)$/.test(length) ||
445
+ String(Number(length)) !== length ||
446
+ !Number.isSafeInteger(Number(length)) ||
447
+ Number(length) > limit))
448
+ throw new MandalaError('Invalid retained response length');
449
+ const bytes = await readBody(method, path, signal, () => readComplete(resp, limit, signal));
450
+ if (length !== null && Number(length) !== bytes.length)
451
+ throw new MandalaError('Incomplete retained response');
452
+ if (signal?.aborted)
453
+ throw cancellationError(method, path, 'after reading the platform response');
454
+ const headers = {};
455
+ for (const name of [
456
+ 'content-type',
457
+ 'content-length',
458
+ 'x-result-offset',
459
+ 'x-result-next-offset',
460
+ 'x-result-eof',
461
+ ]) {
462
+ const value = resp.headers.get(name);
463
+ if (value !== null)
464
+ headers[name] = value;
465
+ }
466
+ return { bytes, headers };
467
+ }
468
+ finally {
469
+ void resp.body?.cancel().catch(() => { });
470
+ }
471
+ }
472
+ async boundedJson(method, path, limit, status, opts = {}) {
473
+ const response = await this.boundedBytes(method, path, limit, status, opts);
474
+ if (!/^application\/json(?:\s*;|$)/i.test(response.headers['content-type'] ?? ''))
475
+ throw new MandalaError('Expected retained JSON metadata');
476
+ try {
477
+ return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(response.bytes));
478
+ }
479
+ catch {
480
+ throw new MandalaError('Invalid retained JSON metadata');
481
+ }
482
+ }
407
483
  /**
408
484
  * A request whose answer may legitimately be nothing.
409
485
  *
@@ -471,9 +547,22 @@ export class Api {
471
547
  `(${resp.headers.get('content-range') ?? 'header absent'}), so where these bytes ` +
472
548
  'belong in the file is unknown');
473
549
  }
550
+ const span = window ? window.end - window.start + 1 : undefined;
551
+ if (span !== undefined && declared !== undefined && declared !== span) {
552
+ await resp.body?.cancel().catch(() => { });
553
+ throw new MandalaError(`${method} ${path} answered 206 with Content-Range ${resp.headers.get('content-range')} ` +
554
+ `for ${span} bytes but Content-Length ${declared}; refusing an inconsistent partial response`);
555
+ }
474
556
  const { bytes, truncated } = await readBody(method, path, opts.signal ?? this.#signal, async () => limit === undefined
475
557
  ? { bytes: new Uint8Array(await resp.arrayBuffer()), truncated: false }
476
558
  : await readAtMost(resp, limit));
559
+ if (span !== undefined &&
560
+ ((!truncated && bytes.length !== span) || (truncated && bytes.length >= span))) {
561
+ throw new MandalaError(`${method} ${path} answered 206 with Content-Range ${resp.headers.get('content-range')} ` +
562
+ `for ${span} bytes but the body ${truncated
563
+ ? `continued after its ${bytes.length}-byte local prefix`
564
+ : `ended at ${bytes.length} bytes`}; refusing an inconsistent partial response`);
565
+ }
477
566
  return {
478
567
  bytes,
479
568
  contentType,
@@ -483,18 +572,13 @@ export class Api {
483
572
  // number here is about the window: Content-Length is how long THIS body
484
573
  // is, and `bytes.length` is how much of it was kept. Reading either as
485
574
  // the file's size is how a caller decides it has the whole thing.
486
- totalBytes: window?.total !== undefined
575
+ totalBytes: window
487
576
  ? window.total
488
577
  : truncated
489
578
  ? declared !== undefined && declared > bytes.length
490
579
  ? declared
491
580
  : undefined
492
- : // A 206 whose Content-Range said `*`: the window arrived in full
493
- // and the file's length is still unknown, so this must not fall
494
- // through to `bytes.length`, which would call the window the file.
495
- window
496
- ? undefined
497
- : bytes.length,
581
+ : bytes.length,
498
582
  unrangeable: (resp.headers.get('accept-ranges') ?? '').trim().toLowerCase() === 'none',
499
583
  window,
500
584
  };
@@ -522,6 +606,10 @@ export class Api {
522
606
  const reader = resp.body.getReader();
523
607
  const decoder = new TextDecoder();
524
608
  let buffer = '';
609
+ // A boundary ending in CR is complete immediately. If that CR later gains
610
+ // an LF in the next network chunk, discard the LF as the optional second
611
+ // byte of the line ending that was already consumed.
612
+ let suppressLeadingLf = false;
525
613
  try {
526
614
  for (;;) {
527
615
  const { done, value } = await readBody(method, path, opts.signal ?? this.#signal, () => reader.read());
@@ -532,21 +620,26 @@ export class Api {
532
620
  // becomes CR-then-LF, each rewritten to its own LF, and the pair reads
533
621
  // as the blank line that ends an event — so a frame gets cut in half at
534
622
  // a boundary that was never in the stream.
535
- buffer += decoder.decode(value, { stream: true });
536
- // Events are separated by a blank line, in whichever of the three
537
- // terminators the sender chose: the spec allows CRLF, LF and lone CR,
538
- // and a proxy that reframes the stream is entitled to any of them.
623
+ let decoded = decoder.decode(value, { stream: true });
624
+ if (suppressLeadingLf && decoded) {
625
+ suppressLeadingLf = false;
626
+ if (decoded.startsWith('\n'))
627
+ decoded = decoded.slice(1);
628
+ }
629
+ buffer += decoded;
630
+ // Events are separated by a blank line. Each of its two line endings
631
+ // may be CRLF, LF, or lone CR, and a proxy that reframes the stream is
632
+ // entitled to mix them.
539
633
  // Matching only "\n\n" found no boundary at all in a CRLF stream, which
540
634
  // collapsed a whole run into one unparseable event and lost the result
541
635
  // of a run that had in fact succeeded.
542
636
  for (;;) {
543
- const sep = /\r?\n\r?\n|\r\r/.exec(buffer);
544
- // A tail of "\r\n\r" is deliberately not a boundary yet — the LF that
545
- // would complete it may be in the next read.
637
+ const sep = sseBoundary(buffer);
546
638
  if (!sep)
547
639
  break;
548
640
  const chunk = buffer.slice(0, sep.index);
549
- buffer = buffer.slice(sep.index + sep[0].length);
641
+ buffer = buffer.slice(sep.index + sep.length);
642
+ suppressLeadingLf = sep.suppressLeadingLf;
550
643
  const parsed = parseEvent(chunk);
551
644
  if (parsed)
552
645
  yield parsed;
@@ -567,6 +660,16 @@ export class Api {
567
660
  // simply dropped without this, rather than surfacing as the replacement
568
661
  // character that says something was lost.
569
662
  buffer += decoder.decode();
663
+ for (;;) {
664
+ const sep = sseBoundary(buffer);
665
+ if (!sep)
666
+ break;
667
+ const chunk = buffer.slice(0, sep.index);
668
+ buffer = buffer.slice(sep.index + sep.length);
669
+ const parsed = parseEvent(chunk);
670
+ if (parsed)
671
+ yield parsed;
672
+ }
570
673
  const tail = parseEvent(buffer);
571
674
  if (tail)
572
675
  yield tail;
@@ -816,9 +919,9 @@ function mediaType(header) {
816
919
  * cannot disagree about the grammar, and `*` in either position comes back as
817
920
  * `undefined` rather than as a number nothing sent.
818
921
  *
819
- * A malformed header is nothing rather than a throw: it is metadata about a
820
- * body that already arrived, and failing a download over the label on it would
821
- * be a worse answer than the one this gives.
922
+ * A malformed header is nothing rather than a throw so each status can decide
923
+ * what absence means. A 206 is rejected because its byte positions would be
924
+ * unknown; a 416 remains useful even when it cannot report the optional size.
822
925
  */
823
926
  function parseContentRange(header) {
824
927
  if (!header)
@@ -834,12 +937,29 @@ function parseContentRange(header) {
834
937
  };
835
938
  const start = num(m[1]);
836
939
  const end = num(m[2]);
940
+ const total = num(m[3]);
941
+ // Numeric fields that do not fit safely cannot be treated as wildcards.
942
+ // Doing so would turn a precise but unusable claim into an unknown one and
943
+ // let callers continue with offsets JavaScript cannot represent exactly.
944
+ if ((m[1] && start === undefined) ||
945
+ (m[2] && end === undefined) ||
946
+ (m[3] !== '*' && total === undefined)) {
947
+ return undefined;
948
+ }
837
949
  // A window whose end precedes its start describes no bytes. Dropping the pair
838
950
  // rather than passing it on keeps `end - start + 1` from being negative in
839
951
  // every caller that trusts this.
840
952
  if (start !== undefined && end !== undefined && end < start)
841
953
  return undefined;
842
- return { start, end, total: num(m[3]) };
954
+ if (start !== undefined && end !== undefined) {
955
+ const span = end - start + 1;
956
+ if (!Number.isSafeInteger(span))
957
+ return undefined;
958
+ // A satisfied range cannot name bytes at or beyond the complete length.
959
+ if (total !== undefined && end >= total)
960
+ return undefined;
961
+ }
962
+ return { start, end, total };
843
963
  }
844
964
  /**
845
965
  * The longest delay `setTimeout` takes without wrapping.
@@ -966,6 +1086,38 @@ async function readTextAtMost(resp, limit) {
966
1086
  const { bytes, truncated } = await readAtMost(resp, limit);
967
1087
  return { text: new TextDecoder().decode(bytes), truncated };
968
1088
  }
1089
+ /** Find the next SSE blank line without confusing a split CRLF for two lines. */
1090
+ function sseBoundary(text) {
1091
+ const endingAt = (index, trailingCrCompletesBoundary = false) => {
1092
+ const char = text[index];
1093
+ if (char === '\n')
1094
+ return { length: 1, suppressLeadingLf: false };
1095
+ if (char !== '\r')
1096
+ return undefined;
1097
+ if (index + 1 === text.length) {
1098
+ return trailingCrCompletesBoundary ? { length: 1, suppressLeadingLf: true } : undefined;
1099
+ }
1100
+ return {
1101
+ length: text[index + 1] === '\n' ? 2 : 1,
1102
+ suppressLeadingLf: false,
1103
+ };
1104
+ };
1105
+ for (let index = 0; index < text.length; index++) {
1106
+ const first = endingAt(index);
1107
+ if (first === undefined)
1108
+ continue;
1109
+ const second = endingAt(index + first.length, true);
1110
+ if (second !== undefined) {
1111
+ return {
1112
+ index,
1113
+ length: first.length + second.length,
1114
+ suppressLeadingLf: second.suppressLeadingLf,
1115
+ };
1116
+ }
1117
+ index += first.length - 1;
1118
+ }
1119
+ return undefined;
1120
+ }
969
1121
  function parseEvent(chunk) {
970
1122
  let event = 'message';
971
1123
  const data = [];
@@ -1133,4 +1285,72 @@ export function filenameFrom(disposition) {
1133
1285
  return p.value;
1134
1286
  return undefined;
1135
1287
  }
1288
+ /** An abort releases the caller even if a peer ignores cancellation. Late headers are cancelled. */
1289
+ function boundedWait(work, signal, late) {
1290
+ return new Promise((resolve, reject) => {
1291
+ let settled = false;
1292
+ const abort = () => {
1293
+ if (settled)
1294
+ return;
1295
+ settled = true;
1296
+ signal?.removeEventListener('abort', abort);
1297
+ reject(new CancelledError('Retained operation cancelled; commitment may be unknown.'));
1298
+ };
1299
+ signal?.addEventListener('abort', abort, { once: true });
1300
+ if (signal?.aborted)
1301
+ abort();
1302
+ work.then((value) => {
1303
+ if (settled) {
1304
+ late?.(value);
1305
+ return;
1306
+ }
1307
+ settled = true;
1308
+ signal?.removeEventListener('abort', abort);
1309
+ resolve(value);
1310
+ }, (error) => {
1311
+ if (settled)
1312
+ return;
1313
+ settled = true;
1314
+ signal?.removeEventListener('abort', abort);
1315
+ reject(error);
1316
+ });
1317
+ });
1318
+ }
1319
+ async function readComplete(resp, limit, signal) {
1320
+ if (signal?.aborted)
1321
+ throw new CancelledError('Retained operation cancelled');
1322
+ if (!resp.body)
1323
+ return new Uint8Array();
1324
+ const reader = resp.body.getReader(), chunks = [];
1325
+ let size = 0;
1326
+ const cancel = () => {
1327
+ void reader.cancel().catch(() => { });
1328
+ };
1329
+ signal?.addEventListener('abort', cancel, { once: true });
1330
+ try {
1331
+ for (;;) {
1332
+ const next = await boundedWait(reader.read(), signal);
1333
+ if (signal?.aborted)
1334
+ throw new CancelledError('Retained operation cancelled');
1335
+ if (next.done)
1336
+ break;
1337
+ if (next.value.byteLength > limit - size)
1338
+ throw new MandalaError('Retained response exceeds limit');
1339
+ chunks.push(next.value.slice());
1340
+ size += next.value.byteLength;
1341
+ }
1342
+ const bytes = new Uint8Array(size);
1343
+ let at = 0;
1344
+ for (const chunk of chunks) {
1345
+ bytes.set(chunk, at);
1346
+ at += chunk.length;
1347
+ }
1348
+ return bytes;
1349
+ }
1350
+ finally {
1351
+ signal?.removeEventListener('abort', cancel);
1352
+ cancel();
1353
+ reader.releaseLock();
1354
+ }
1355
+ }
1136
1356
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}