@te-river/opencode-team-mode 1.8.1 → 1.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +47 -38
  2. package/README.zh-CN.md +47 -36
  3. package/dist/host/v2-prune.d.ts +81 -1
  4. package/dist/host/v2-prune.d.ts.map +1 -1
  5. package/dist/host/v2-prune.js +303 -18
  6. package/dist/host/v2-prune.js.map +1 -1
  7. package/dist/host/v2-retry.d.ts +14 -4
  8. package/dist/host/v2-retry.d.ts.map +1 -1
  9. package/dist/host/v2-retry.js +22 -10
  10. package/dist/host/v2-retry.js.map +1 -1
  11. package/dist/host/v2-session.d.ts +8 -0
  12. package/dist/host/v2-session.d.ts.map +1 -1
  13. package/dist/host/v2-session.js +18 -5
  14. package/dist/host/v2-session.js.map +1 -1
  15. package/dist/host/v2-state.d.ts +165 -0
  16. package/dist/host/v2-state.d.ts.map +1 -0
  17. package/dist/host/v2-state.js +448 -0
  18. package/dist/host/v2-state.js.map +1 -0
  19. package/dist/host/v2-tail.d.ts +98 -0
  20. package/dist/host/v2-tail.d.ts.map +1 -0
  21. package/dist/host/v2-tail.js +191 -0
  22. package/dist/host/v2-tail.js.map +1 -0
  23. package/dist/host/v2-types.d.ts +2 -0
  24. package/dist/host/v2-types.d.ts.map +1 -1
  25. package/dist/host/v2-usage.d.ts +72 -2
  26. package/dist/host/v2-usage.d.ts.map +1 -1
  27. package/dist/host/v2-usage.js +142 -9
  28. package/dist/host/v2-usage.js.map +1 -1
  29. package/dist/host/v2.d.ts.map +1 -1
  30. package/dist/host/v2.js +187 -3
  31. package/dist/host/v2.js.map +1 -1
  32. package/dist/prompts/lead.d.ts +1 -1
  33. package/dist/prompts/lead.d.ts.map +1 -1
  34. package/dist/prompts/lead.js +12 -0
  35. package/dist/prompts/lead.js.map +1 -1
  36. package/dist/prompts/shared.d.ts +1 -1
  37. package/dist/prompts/shared.d.ts.map +1 -1
  38. package/dist/prompts/shared.js +5 -0
  39. package/dist/prompts/shared.js.map +1 -1
  40. package/dist/tm/config-layers.d.ts.map +1 -1
  41. package/dist/tm/config-layers.js +4 -0
  42. package/dist/tm/config-layers.js.map +1 -1
  43. package/dist/tm/config.d.ts +8 -0
  44. package/dist/tm/config.d.ts.map +1 -1
  45. package/dist/tm/config.js.map +1 -1
  46. package/dist/tm/pipelines.d.ts +9 -0
  47. package/dist/tm/pipelines.d.ts.map +1 -1
  48. package/dist/tm/pipelines.js +1 -1
  49. package/dist/tm/pipelines.js.map +1 -1
  50. package/dist/tm/stats.d.ts +11 -0
  51. package/dist/tm/stats.d.ts.map +1 -1
  52. package/dist/tm/stats.js +34 -1
  53. package/dist/tm/stats.js.map +1 -1
  54. package/docs/v2-port-notes.md +7 -3
  55. package/package.json +1 -1
@@ -21,6 +21,19 @@
21
21
  * protected STRING: the message may be pruned, but the stub must carry the
22
22
  * handle verbatim, which is exactly the "keep the pointer, drop the body"
23
23
  * contract.
24
+ * - **Nothing leaves that cannot be recovered.** A message carrying no handle
25
+ * of its own is offloaded to the run store BEFORE its body is replaced, so
26
+ * the stub carries a full `tm_fetch` handle (`pruneOffload`, default on). A
27
+ * failed offload falls back to today's echo note, one message at a time —
28
+ * losing a body is data loss, losing an offload is a counter. A stub with no
29
+ * handle to offer still carries the ADDRESSES the body named (board paths,
30
+ * `file:line`, URLs; at most three, deduplicated, in document order), because a
31
+ * pointer the reader can act on is the whole point of keeping one — and that
32
+ * scan is SINGLE-PASS and linear in the body length, not three global regexes
33
+ * over the whole text (which went quadratic on a long word run).
34
+ * - **A user pattern outranks the budget** (`pruneProtectPatterns`): a message
35
+ * whose text matches any compiled entry is never pruned, and the matches are
36
+ * counted (`protectMatched`) instead of silently changing the saving figure.
24
37
  * - **The threshold is derived, never hard-coded.** `TM_PRUNE_AT_PERCENT`
25
38
  * (default 70) of `limit.context`, the same denominator the desktop's own
26
39
  * usage meter reads. No `limit.context` → no prune, counted `no_limit`.
@@ -40,6 +53,28 @@ const CHILD_ID_RE = /ses_[A-Za-z0-9]+/;
40
53
  const SETTLED_STATE_RE = /state\s*=\s*"(?:completed|error)"/i;
41
54
  const RUNNING_STATE_RE = /state\s*=\s*"(?:running|pending|in[_-]?progress)"/i;
42
55
  const HANDLE_RE = /ref\s*:\s*"([^"]+)"[\s\S]*?access_token\s*:\s*"([^"]+)"[\s\S]*?expire_at\s*:\s*(\d+)/;
56
+ /**
57
+ * Compile the comma-separated pattern list. One invalid pattern loses only
58
+ * itself (a typo must not disable the ones next to it, and must never throw into
59
+ * the request path); an empty / absent value compiles to `[]` = off.
60
+ */
61
+ export function parseProtectPatterns(raw) {
62
+ if (typeof raw !== "string" || !raw.trim())
63
+ return [];
64
+ const out = [];
65
+ for (const part of raw.split(",")) {
66
+ const src = part.trim();
67
+ if (!src)
68
+ continue;
69
+ try {
70
+ out.push(new RegExp(src));
71
+ }
72
+ catch {
73
+ /* an invalid regex is ignored, never fatal */
74
+ }
75
+ }
76
+ return out;
77
+ }
43
78
  const isOff = (v) => typeof v === "string" && ["off", "false", "0", "no"].includes(v.trim().toLowerCase());
44
79
  export function resolvePruneConfig(config = resolveConfig()) {
45
80
  return {
@@ -49,6 +84,7 @@ export function resolvePruneConfig(config = resolveConfig()) {
49
84
  // prune is looking at the clamp, not at a broken layer.
50
85
  atPercent: config.pruneAtPercent,
51
86
  keepTailPercent: config.pruneKeepTailPercent,
87
+ protectPatterns: parseProtectPatterns(config.pruneProtectPatterns),
52
88
  };
53
89
  }
54
90
  /**
@@ -243,7 +279,142 @@ export function isProtectedMessage(msg) {
243
279
  return true;
244
280
  return false;
245
281
  }
282
+ /** 地址行最多留几条——再多就不是「地址」,而是正文摘抄。 */
283
+ export const PRUNE_ADDRESS_MAX = 3;
284
+ /** 地址行的前缀;整行只在真的抽到地址时出现。 */
285
+ export const PRUNE_ADDRESS_PREFIX = "地址:";
286
+ /**
287
+ * 单个 token 的字符上限。 超过它的不是地址,是正文——这条上限也是性能闸门:
288
+ * 长词串整段跳过,永远不会进到正则里。
289
+ */
290
+ export const PRUNE_ADDRESS_TOKEN_MAX = 2048;
291
+ /**
292
+ * Token separators. `<` / `>` are deliberately NOT separators: the board note
293
+ * publishes `<board-root>/…md`, and splitting on the angle brackets would strip
294
+ * the placeholder off the address it belongs to.
295
+ */
296
+ const ADDRESS_SEPARATORS = new Set([" ", "\t", "\n", "\r", "\f", "\v", '"', "'", "|", "`", ";", ",", "(", ")"]);
297
+ /** A cheap anchored pre-filter: only these suffixes can be a path address. */
298
+ const PATH_EXT_RE = /\.(?:md|json|jsonl|txt|log|ts|tsx|js|py|yml|yaml)$/;
299
+ /** `file:line` / `file:line:col`, ANCHORED inside one token (no per-start retry). */
300
+ const FILE_LINE_TOKEN_RE = /^(?:[A-Za-z]:)?[\w./\\-]+:\d+(?::\d+)?$/;
301
+ /**
302
+ * A path-shaped token with a KNOWN extension: `C:\…\01-team-report.md`,
303
+ * `/x/y/z.json`, `<board-root>/…md`, `src/host/v2-prune.ts`. The leading run is
304
+ * optional (drive letter, an angle-bracket placeholder, a relative first
305
+ * segment); every further segment must start with a separator, which is what
306
+ * keeps a bare `v2-prune.ts` from being called an address. BOTH ENDS ANCHORED:
307
+ * the engine never re-tries every start position, which is the whole point of
308
+ * the token pass.
309
+ */
310
+ const PATH_TOKEN_RE = /^(?:[A-Za-z]:|<[^>\s]+>|[^\s"'<>|`;,():\/\\]+)?(?:[\/\\][^\s"'<>|`;,():\/\\]+)+\.(?:md|json|jsonl|txt|log|ts|tsx|js|py|yml|yaml)$/;
311
+ /** Strip the `<`/`>` a prose writer may have wrapped an address in. */
312
+ const trimAngles = (s) => s.replace(/^</, "").replace(/>+$/, "");
313
+ /**
314
+ * The first `http(s)://` inside a token, or -1. `indexOf` is linear, and it is
315
+ * how an address glued to Chinese text (`看https://…`) is still recovered —
316
+ * without a cross-text regex that would try every start position.
317
+ */
318
+ function urlAt(token) {
319
+ const a = token.indexOf("http://");
320
+ const b = token.indexOf("https://");
321
+ if (a < 0)
322
+ return b;
323
+ if (b < 0)
324
+ return a;
325
+ return Math.min(a, b);
326
+ }
327
+ /** Retry a token from its first path separator: `见:/a/one.md` → `/a/one.md`. */
328
+ function tailFromSeparator(token) {
329
+ const a = token.indexOf("/");
330
+ const b = token.indexOf("\\");
331
+ const cut = a < 0 ? b : b < 0 ? a : Math.min(a, b);
332
+ return cut > 0 ? token.slice(cut) : null;
333
+ }
334
+ /**
335
+ * The addresses a pruned body carried, in DOCUMENT ORDER, deduplicated, at most
336
+ * `PRUNE_ADDRESS_MAX`. Pure, and it only ever yields the address itself — never a
337
+ * fragment of the body around it, because the stub is a pointer, not a summary.
338
+ *
339
+ * LINEAR BY CONSTRUCTION (this is a performance contract, not a style note): the
340
+ * text is walked ONCE, token by token, and every pattern is anchored to a single
341
+ * token. The previous version ran three GLOBAL regexes over the whole body and
342
+ * blanked each URL match by rebuilding the string — quadratic on a long word run
343
+ * (`"a".repeat(200000)` was hundreds of seconds) and O(k·n) with many URLs. A
344
+ * token longer than `PRUNE_ADDRESS_TOKEN_MAX` is skipped without touching a regex.
345
+ *
346
+ * A longer address that CONTAINS a shorter one wins: `…/v2-prune.ts:120` is the
347
+ * pointer a reader can use, while `…/v2-prune.ts` would send them hunting for the
348
+ * line the message was about.
349
+ */
350
+ export function extractAddresses(text) {
351
+ if (!text)
352
+ return [];
353
+ const found = [];
354
+ const n = text.length;
355
+ let i = 0;
356
+ while (i < n) {
357
+ while (i < n && ADDRESS_SEPARATORS.has(text[i]))
358
+ i++;
359
+ if (i >= n)
360
+ break;
361
+ const start = i;
362
+ while (i < n && !ADDRESS_SEPARATORS.has(text[i]))
363
+ i++;
364
+ const token = text.slice(start, i);
365
+ if (token.length > PRUNE_ADDRESS_TOKEN_MAX)
366
+ continue;
367
+ // URL first: its own path must never be counted as a second address.
368
+ const scheme = urlAt(token);
369
+ if (scheme >= 0) {
370
+ const address = trimAngles(token.slice(scheme));
371
+ if (address.length > 8)
372
+ found.push({ at: start + scheme, address });
373
+ continue;
374
+ }
375
+ // `file:line` — a prefix with no separator is a word (`expire_at:9`), not a path.
376
+ if (token.includes(":") && /\d$/.test(token)) {
377
+ const direct = FILE_LINE_TOKEN_RE.test(token) ? token : null;
378
+ const candidate = direct ?? tailFromSeparator(token);
379
+ if (candidate && FILE_LINE_TOKEN_RE.test(candidate)) {
380
+ const cut = candidate.lastIndexOf(":");
381
+ if (/[\/\\]/.test(candidate.slice(0, cut))) {
382
+ found.push({ at: start, address: candidate });
383
+ continue;
384
+ }
385
+ }
386
+ }
387
+ if (PATH_EXT_RE.test(token)) {
388
+ const direct = PATH_TOKEN_RE.test(token) ? token : null;
389
+ const tail = direct ? null : tailFromSeparator(token);
390
+ const candidate = direct ?? (tail && PATH_EXT_RE.test(tail) && PATH_TOKEN_RE.test(tail) ? tail : null);
391
+ if (candidate)
392
+ found.push({ at: start, address: candidate });
393
+ }
394
+ }
395
+ // Tokens are already in document order; the sort stays because an embedded URL
396
+ // reports an offset inside its token, and "document order" is what the reader
397
+ // expects either way.
398
+ found.sort((a, b) => a.at - b.at);
399
+ const out = [];
400
+ for (const { address } of found) {
401
+ if (out.some((kept) => kept.includes(address)))
402
+ continue;
403
+ if (found.some((o) => o.address !== address && o.address.includes(address)))
404
+ continue;
405
+ out.push(address);
406
+ if (out.length >= PRUNE_ADDRESS_MAX)
407
+ break;
408
+ }
409
+ return out;
410
+ }
246
411
  const withCommas = (n) => String(n).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
412
+ /** One trailing line carrying the recoverable addresses; "" when none were found. */
413
+ function addressLine(addresses) {
414
+ if (!addresses || !addresses.length)
415
+ return "";
416
+ return `\n${PRUNE_ADDRESS_PREFIX}${addresses.join(" · ")}`;
417
+ }
247
418
  /**
248
419
  * The replacement text. It must be self-explanatory: a reader has to know what
249
420
  * used to be here and where to get it back. The handle / child id is copied
@@ -257,7 +428,15 @@ export function renderPruneStub(entry) {
257
428
  if (entry.kind === "child" && entry.childId) {
258
429
  return `${head} 子代理 ${entry.childId} 的报告已结算(state=${entry.childState ?? "completed"});需要原文用 tm_join { ids:["${entry.childId}"] } 取回。`;
259
430
  }
260
- return `${head} 已结算的工具输出/命令回显,正文已裁剪;如需重看请重跑原命令,或从轨迹(tm_stats { recent: N })取回。`;
431
+ if (entry.kind === "offload" && entry.handle) {
432
+ // Deliberately different wording from the tool-result stub above: this body
433
+ // had NO handle until the prune created one, so "re-run the command" would
434
+ // be wrong advice — the bytes are in the store, not behind a command.
435
+ return `${head} 本条消息已卸载:tm_fetch { ref:"${entry.handle.ref}", access_token:"${entry.handle.accessToken}", expire_at:${entry.handle.expireAt} }。原文可回取(TTL 由 blackboardTtlDays 决定),不要重跑。${addressLine(entry.addresses)}`;
436
+ }
437
+ // The echo stub is the one that keeps NO copy of the body, so the addresses it
438
+ // reports are the only thing the next round can still act on.
439
+ return `${head} 已结算的工具输出/命令回显,正文已裁剪;如需重看请重跑原命令,或从轨迹(tm_stats { recent: N })取回。${addressLine(entry.addresses)}`;
261
440
  }
262
441
  function extractHandle(text) {
263
442
  const m = HANDLE_RE.exec(text);
@@ -279,18 +458,21 @@ function buildStub(text, tokens) {
279
458
  const child = extractChild(text);
280
459
  if (child)
281
460
  return { kind: "child", stub: renderPruneStub({ kind: "child", originalTokens: tokens, childId: child.id, childState: child.state }) };
282
- return { kind: "echo", stub: renderPruneStub({ kind: "echo", originalTokens: tokens }) };
461
+ // Only the branches that carry no recoverable pointer get the address line: a
462
+ // handle already says where the bytes are, and a child id where the report is.
463
+ return { kind: "echo", stub: renderPruneStub({ kind: "echo", originalTokens: tokens, addresses: extractAddresses(text) }) };
283
464
  }
284
465
  /**
285
466
  * Decide which messages to prune, oldest first, until the request fits the
286
467
  * budget. Pure: it reads the messages and returns a plan; nothing is mutated.
287
468
  */
288
469
  export function prunePlan(messages, opts = {}) {
289
- const plan = { prune: [], protectedCount: 0, keptCount: 0, savedTokens: 0 };
470
+ const plan = { prune: [], protectedCount: 0, protectMatched: 0, keptCount: 0, savedTokens: 0 };
290
471
  if (!Array.isArray(messages) || messages.length === 0)
291
472
  return plan;
292
473
  const keepTailTokens = Math.max(0, opts.keepTailTokens ?? 0);
293
474
  const budgetTokens = opts.budgetTokens ?? Number.POSITIVE_INFINITY;
475
+ const protectPatterns = opts.protectPatterns ?? [];
294
476
  // The tail boundary: walk from the newest message until the cumulative token
295
477
  // count would exceed the tail budget. The newest message is ALWAYS protected.
296
478
  let acc = 0;
@@ -307,6 +489,13 @@ export function prunePlan(messages, opts = {}) {
307
489
  let saved = 0;
308
490
  for (let i = 0; i < tailStart; i++) {
309
491
  const msg = messages[i];
492
+ if (protectPatterns.length) {
493
+ const body = messageText(msg);
494
+ if (body && protectPatterns.some((re) => re.test(body))) {
495
+ plan.protectMatched++;
496
+ continue;
497
+ }
498
+ }
310
499
  if (isProtectedMessage(msg)) {
311
500
  plan.protectedCount++;
312
501
  continue;
@@ -342,6 +531,63 @@ export function applyPrunePlan(messages, plan) {
342
531
  slots[i].container[slots[i].key] = "";
343
532
  }
344
533
  }
534
+ /**
535
+ * Offload a planned body BEFORE its message is rewritten, so the stub can carry
536
+ * a real `tm_fetch` handle. Only `echo` entries are offloaded: a `handle` entry
537
+ * already points at a payload (offloading it again would duplicate the bytes) and
538
+ * a `child` entry points at a session (its body lives in the child, not here).
539
+ *
540
+ * Failure is BOUNDED and per message: one throw degrades that one stub to today's
541
+ * echo note and increments a counter — the remaining plan still runs, and the
542
+ * caller's hook never sees an exception. `savedTokens` is recomputed afterwards
543
+ * because a handle stub is longer than an echo note, and a reported saving that
544
+ * did not happen is exactly the kind of claim this product refuses.
545
+ */
546
+ async function offloadPlannedBodies(messages, plan, offload, onFailure, report, sessionID) {
547
+ if (!offload || plan.prune.length === 0)
548
+ return;
549
+ let saved = 0;
550
+ for (const entry of plan.prune) {
551
+ const text = entry.kind === "echo" ? messageText(messages[entry.index]) : "";
552
+ if (entry.kind === "echo" && text) {
553
+ let handle = null;
554
+ let failure = null;
555
+ try {
556
+ handle = await offload(text);
557
+ if (!handle || !handle.ref || !handle.accessToken || !Number.isFinite(handle.expireAt)) {
558
+ failure = { reason: handle ? "invalid" : "empty" };
559
+ }
560
+ }
561
+ catch (err) {
562
+ failure = { reason: "threw", error: String(err?.message ?? err).slice(0, 120) };
563
+ }
564
+ if (handle && !failure) {
565
+ entry.kind = "offload";
566
+ entry.stub = renderPruneStub({
567
+ kind: "offload",
568
+ originalTokens: entry.originalTokens,
569
+ handle,
570
+ // The offload stub points at bytes a reader may not want to page
571
+ // through; the addresses are what they can act on in one round.
572
+ addresses: extractAddresses(text),
573
+ });
574
+ // A dedupe hit means these bytes are ALREADY in the store — counting it as
575
+ // a fresh offload would report a saving that was not made, and would make
576
+ // the card's "上轮修剪" line grow on a replayed request.
577
+ if (handle.reused)
578
+ report.reused++;
579
+ else
580
+ report.offloaded++;
581
+ }
582
+ else {
583
+ report.offloadFailed++;
584
+ onFailure({ sessionID, index: entry.index, ...(failure ?? {}) });
585
+ }
586
+ }
587
+ saved += Math.max(0, entry.originalTokens - estimateTokens(entry.stub));
588
+ }
589
+ plan.savedTokens = saved;
590
+ }
345
591
  /** The default denominator: `ctx.model.list()` keyed by the session's model,
346
592
  * the same lookup the desktop's usage meter and this package's usage readers use. */
347
593
  function defaultModelLimitOf(ctx) {
@@ -409,6 +655,9 @@ function defaultModelLimitOf(ctx) {
409
655
  }
410
656
  export async function applyV2ContextPrune(ctx, input = {}) {
411
657
  const config = input.config ?? resolvePruneConfig();
658
+ // A hand-built config (a test, an embedder) may predate the pattern list; `[]` is
659
+ // the "off" path, so tolerating it changes no behaviour and throws nothing.
660
+ const protectPatterns = config.protectPatterns ?? [];
412
661
  const report = {
413
662
  enabled: config.enabled,
414
663
  atPercent: config.atPercent,
@@ -422,7 +671,14 @@ export async function applyV2ContextPrune(ctx, input = {}) {
422
671
  noMessages: 0,
423
672
  foreignSkipped: 0,
424
673
  threw: 0,
674
+ offloaded: 0,
675
+ reused: 0,
676
+ offloadFailed: 0,
677
+ overBudget: 0,
678
+ orphans: 0,
425
679
  unknownParts: 0,
680
+ protectPatterns: protectPatterns.length,
681
+ protectMatched: 0,
426
682
  lastPercent: 0,
427
683
  lastUsed: 0,
428
684
  lastLimit: 0,
@@ -475,21 +731,50 @@ export async function applyV2ContextPrune(ctx, input = {}) {
475
731
  }
476
732
  const budgetTokens = Math.floor((limit * config.atPercent) / 100);
477
733
  const keepTailTokens = Math.floor((limit * config.keepTailPercent) / 100);
478
- const plan = prunePlan(messages, { budgetTokens, keepTailTokens });
479
- applyPrunePlan(messages, plan);
480
- report.prunedMessages += plan.prune.length;
481
- report.prunedTokens += plan.savedTokens;
482
- report.skippedProtected += plan.protectedCount;
483
- emit("prune", {
484
- sessionID,
485
- percent: pct,
486
- used,
487
- limit,
488
- pruned: plan.prune.length,
489
- saved: plan.savedTokens,
490
- protected: plan.protectedCount,
491
- unknown: report.unknownParts,
492
- });
734
+ const plan = prunePlan(messages, { budgetTokens, keepTailTokens, protectPatterns });
735
+ const freshBefore = report.offloaded;
736
+ await offloadPlannedBodies(messages, plan, input.offload, (row) => emit("prune_offload_failed", row), report, sessionID);
737
+ try {
738
+ applyPrunePlan(messages, plan);
739
+ // A handle stub is longer than the echo note it replaced, so the plan's
740
+ // own arithmetic can land ABOVE the budget. Counted, never silently
741
+ // re-pruned: a second pass would have to offload again to be lossless.
742
+ const overBudget = messagesTokens(messages) > budgetTokens;
743
+ if (overBudget)
744
+ report.overBudget++;
745
+ report.prunedMessages += plan.prune.length;
746
+ report.prunedTokens += plan.savedTokens;
747
+ report.skippedProtected += plan.protectedCount;
748
+ report.protectMatched += plan.protectMatched;
749
+ emit("prune", {
750
+ sessionID,
751
+ percent: pct,
752
+ used,
753
+ limit,
754
+ pruned: plan.prune.length,
755
+ saved: plan.savedTokens,
756
+ protected: plan.protectedCount,
757
+ protect_matched: plan.protectMatched,
758
+ protect_patterns: protectPatterns.length,
759
+ unknown: report.unknownParts,
760
+ over_budget: overBudget,
761
+ reused: report.reused,
762
+ });
763
+ }
764
+ catch (err) {
765
+ // Bodies stored for THIS request but never pointed at by a message are
766
+ // orphans: counted, and named on their own trajectory row — a payload
767
+ // nobody can reach is otherwise invisible until the TTL sweep.
768
+ // R4: only the FRESH writes of this request count. A reused handle points
769
+ // at a payload an earlier request already stored, so calling it an orphan
770
+ // would invent garbage — and deleting nothing would be the fix anyway.
771
+ const freshThisRequest = Math.max(0, report.offloaded - freshBefore);
772
+ if (freshThisRequest > 0) {
773
+ report.orphans += freshThisRequest;
774
+ emit("prune_offload_failed", { sessionID, reason: "orphaned", orphan: freshThisRequest });
775
+ }
776
+ throw err;
777
+ }
493
778
  }
494
779
  catch (err) {
495
780
  report.threw++;
@@ -1 +1 @@
1
- {"version":3,"file":"v2-prune.js","sourceRoot":"","sources":["../../src/host/v2-prune.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2-prune.js","sourceRoot":"","sources":["../../src/host/v2-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAIvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAA;AAEtC,mFAAmF;AACnF,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;AAEnF,MAAM,WAAW,GAAG,kBAAkB,CAAA;AACtC,MAAM,gBAAgB,GAAG,oCAAoC,CAAA;AAC7D,MAAM,gBAAgB,GAAG,oDAAoD,CAAA;AAC7E,MAAM,SAAS,GAAG,sFAAsF,CAAA;AAgBxG;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IACrD,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,CAAqB,EAAW,EAAE,CAC/C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAEvF,MAAM,UAAU,kBAAkB,CAChC,SAKI,aAAa,EAAE;IAEnB,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK;QAC/B,yEAAyE;QACzE,4EAA4E;QAC5E,wDAAwD;QACxD,SAAS,EAAE,MAAM,CAAC,cAAc;QAChC,eAAe,EAAE,MAAM,CAAC,oBAAoB;QAC5C,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC,oBAAoB,CAAC;KACnE,CAAA;AACH,CAAC;AAUD;;;;;;;;;;;GAWG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AAElF;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAE9C,yDAAyD;AACzD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAA;AAE9E;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACjF,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IAC5B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,KAAgC,CAAA;QAC1C,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YACtF,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;gBACxC,IAAI,CAAC;oBAAE,OAAO,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,MAAM,CAAC,GAAG,GAAiD,CAAA;IAC3D,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IAC1C,MAAM,KAAK,GAAe,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAM;QAC/B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,CAA+C,CAAA;YAC5D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAQ;YAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzF,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACrC,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAChE,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACpC,IAAI,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;SACvC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;SAChD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5F,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,MAAM,CAAC,GAAG,GAAiD,CAAA;IAC3D,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1F,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAA;IAClB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,CAA+C,CAAA;QAC5D,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1G,CAAC,EAAE,CAAA;QACL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAClD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,CAAA;IACtC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;IACjD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,CAAC,GAAG,GAAiD,CAAA;IAC3D,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,IAA2C,CAAA;IAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAA;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,iDAAiD;AAEjD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,OAAO,IAAI,CAAA;IACpD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5D,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5C,kFAAkF;IAClF,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACvE,OAAO,KAAK,CAAA;AACd,CAAC;AAYD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAClC,4BAA4B;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AACzC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAE3C;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAE/G,8EAA8E;AAC9E,MAAM,WAAW,GAAG,oDAAoD,CAAA;AACxE,qFAAqF;AACrF,MAAM,kBAAkB,GAAG,yCAAyC,CAAA;AACpE;;;;;;;;GAQG;AACH,MAAM,aAAa,GACjB,mIAAmI,CAAA;AAErI,uEAAuE;AACvE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAEhF;;;;GAIG;AACH,SAAS,KAAK,CAAC,KAAa;IAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IACnB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACvB,CAAC;AAED,gFAAgF;AAChF,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,MAAM,KAAK,GAA2C,EAAE,CAAA;IACxD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;IACrB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAA;QACpD,IAAI,CAAC,IAAI,CAAC;YAAE,MAAK;QACjB,MAAM,KAAK,GAAG,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAA;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,MAAM,GAAG,uBAAuB;YAAE,SAAQ;QAEpD,qEAAqE;QACrE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YACnE,SAAQ;QACV,CAAC;QAED,kFAAkF;QAClF,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAA;YACpD,IAAI,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;oBAC7C,SAAQ;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACtG,IAAI,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IACD,+EAA+E;IAC/E,8EAA8E;IAC9E,sBAAsB;IACtB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;IACjC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAAE,SAAQ;QACxD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAAE,SAAQ;QACrF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjB,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB;YAAE,MAAK;IAC5C,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAYD,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;AAEzF,qFAAqF;AACrF,SAAS,WAAW,CAAC,SAA+B;IAClD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAC9C,OAAO,KAAK,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,MAAM,IAAI,GAAG,GAAG,cAAc,MAAM,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAA;IAC7E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,GAAG,IAAI,4BAA4B,KAAK,CAAC,MAAM,CAAC,GAAG,oBAAoB,KAAK,CAAC,MAAM,CAAC,WAAW,gBAAgB,KAAK,CAAC,MAAM,CAAC,QAAQ,8BAA8B,CAAA;IAC3K,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,GAAG,IAAI,QAAQ,KAAK,CAAC,OAAO,iBAAiB,KAAK,CAAC,UAAU,IAAI,WAAW,2BAA2B,KAAK,CAAC,OAAO,UAAU,CAAA;IACvI,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7C,4EAA4E;QAC5E,2EAA2E;QAC3E,sEAAsE;QACtE,OAAO,GAAG,IAAI,4BAA4B,KAAK,CAAC,MAAM,CAAC,GAAG,oBAAoB,KAAK,CAAC,MAAM,CAAC,WAAW,gBAAgB,KAAK,CAAC,MAAM,CAAC,QAAQ,6CAA6C,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAA;IACxN,CAAC;IACD,+EAA+E;IAC/E,8DAA8D;IAC9D,OAAO,GAAG,IAAI,kEAAkE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAA;AAChH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACjE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;IAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IAChH,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAA;IACjJ,8EAA8E;IAC9E,+EAA+E;IAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;AAC7H,CAAC;AA6BD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB,EAAE,OAAyB,EAAE;IACtE,MAAM,IAAI,GAAc,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAA;IACzG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,iBAAiB,CAAA;IAClE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAA;IAElD,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,GAAG,GAAG,CAAC,GAAG,cAAc;YAAE,MAAK;QACnC,GAAG,IAAI,CAAC,CAAA;QACR,SAAS,GAAG,CAAC,CAAA;IACf,CAAC;IACD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEpD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAC7B,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,SAAQ;YACV,CAAC;QACH,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,GAAG,KAAK,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QAChE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,KAAK,IAAI,KAAK,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IACxB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,QAAiB,EAAE,IAAe;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAM;IACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAQ;QAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;IAC9E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,oBAAoB,CACjC,QAAmB,EACnB,IAAe,EACf,OAAoE,EACpE,SAAiD,EACjD,MAAmB,EACnB,SAAiB;IAEjB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC;YAClC,IAAI,MAAM,GAAuB,IAAI,CAAA;YACrC,IAAI,OAAO,GAAmC,IAAI,CAAA;YAClD,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvF,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;gBACpD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;YAC5F,CAAC;YACD,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;gBACtB,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;oBAC3B,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,MAAM;oBACN,iEAAiE;oBACjE,gEAAgE;oBAChE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;iBAClC,CAAC,CAAA;gBACF,2EAA2E;gBAC3E,0EAA0E;gBAC1E,qDAAqD;gBACrD,IAAI,MAAM,CAAC,MAAM;oBAAE,MAAM,CAAC,MAAM,EAAE,CAAA;;oBAC7B,MAAM,CAAC,SAAS,EAAE,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,aAAa,EAAE,CAAA;gBACtB,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;QACD,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AAC1B,CAAC;AA0DD;sFACsF;AACtF,SAAS,mBAAmB,CAAC,GAAc;IACzC,IAAI,MAAM,GAA+B,IAAI,CAAA;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,cAAc,GAAG,IAAI,GAAG,EAA8C,CAAA;IAE5E,KAAK,UAAU,UAAU,CAAC,KAAK,GAAG,KAAK;QACrC,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;YACtC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAmC,CAAA;gBAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBACtD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,CAAwB,CAAA;oBACpC,MAAM,UAAU,GAAG,OAAO,GAAG,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnH,MAAM,EAAE,GAAG,OAAO,GAAG,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;oBACrG,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAA;oBACjC,IAAI,UAAU,IAAI,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;gBACxG,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS,iBAAiB,CAAC,QAAmB;QAC5C,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAA;QACzB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,SAAiB;QAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAmE,CAAA;YAC5F,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAyC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnH,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,KAAK;gBAAE,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAC/C,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,CAAA;QAC7C,IAAI,KAAK,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACrB,KAAK,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAc,EAAE,QAAoB,EAAE;IAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAA;IACnD,kFAAkF;IAClF,4EAA4E;IAC5E,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAA;IACpD,MAAM,MAAM,GAAgB;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,OAAO,EAAE,CAAC;QACV,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,CAAC;QACnB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;QACT,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,eAAe,CAAC,MAAM;QACvC,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;KACb,CAAA;IACD,MAAM,aAAa,GAAqB,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;IAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACtE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;IAClC,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,MAA+B,EAAE,EAAE;QAC7D,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,6EAA6E;QAC/E,CAAC;IACH,CAAC,CAAA;IAED,aAAa,CAAC,IAAI,CAChB,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAuB,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,uEAAuE;YACvE,wEAAwE;YACxE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC3E,MAAM,CAAC,cAAc,EAAE,CAAA;gBACvB,OAAM;YACR,CAAC;YACD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAG,KAAiC,EAAE,SAAS,CAAC,CAAA;YAC/E,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAA;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,UAAU,EAAE,CAAA;gBACnB,OAAM;YACR,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAA;YACrD,MAAM,SAAS,GAAG,MAAM,CAAE,KAAiC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;YAC7E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YACrD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;gBAC/B,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAClC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA;YACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;YACtB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;YACxB,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAA;YACjE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,CAAA;YACzE,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAA;YACnF,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAA;YACpC,MAAM,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;YACxH,IAAI,CAAC;gBACH,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAC9B,wEAAwE;gBACxE,qEAAqE;gBACrE,uEAAuE;gBACvE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;gBAC1D,IAAI,UAAU;oBAAE,MAAM,CAAC,UAAU,EAAE,CAAA;gBACnC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;gBAC1C,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAA;gBACvC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAA;gBAC9C,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAA;gBAC5C,IAAI,CAAC,OAAO,EAAE;oBACZ,SAAS;oBACT,OAAO,EAAE,GAAG;oBACZ,IAAI;oBACJ,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;oBACzB,KAAK,EAAE,IAAI,CAAC,WAAW;oBACvB,SAAS,EAAE,IAAI,CAAC,cAAc;oBAC9B,eAAe,EAAE,IAAI,CAAC,cAAc;oBACpC,gBAAgB,EAAE,eAAe,CAAC,MAAM;oBACxC,OAAO,EAAE,MAAM,CAAC,YAAY;oBAC5B,WAAW,EAAE,UAAU;oBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,uEAAuE;gBACvE,sEAAsE;gBACtE,+DAA+D;gBAC/D,2EAA2E;gBAC3E,0EAA0E;gBAC1E,uEAAuE;gBACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,CAAA;gBACpE,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAA;oBAClC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;gBAC3F,CAAC;gBACD,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAChF,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;AAClC,CAAC"}
@@ -17,9 +17,10 @@
17
17
  * 5s/10s/20s/40s/60s; the chain never accumulates across requests, and the
18
18
  * host's own `session.retry.scheduled` stands our directive down — the desktop
19
19
  * is already rendering that countdown; jitter applies only when retryJitter > 0) — but ONLY for the
20
- * kinds a wait can fix. A HARD quota (allocated-exceeded / increase-your-limit /
21
- * token-limit / 余额不足) names no wait: the directive says stop and raise-or-reset,
22
- * and the breaker trips on the SECOND consecutive hard-quota error instead of
20
+ * kinds a wait can fix. A HARD quota (the BILLING family only: insufficient
21
+ * balance / 余额不足 / 欠费 / insufficient_quota / billing) names no wait: the
22
+ * directive says stop and raise-or-reset, and the breaker trips on the SECOND
23
+ * consecutive hard-quota error instead of
23
24
  * `breakAfter`. The structured `retryAfterMs` host 2.1.2 (#57146) puts on session
24
25
  * errors is honored as the wait floor. Inject it into the
25
26
  * NEXT request's system prompt as an actionable sentence ("等 N 秒再发"),
@@ -42,6 +43,7 @@
42
43
  * idempotent under the host's in-process hook replay.
43
44
  */
44
45
  import type { TeamScope } from "./v2-scope.js";
46
+ import type { DynamicSink } from "./v2-tail.js";
45
47
  import type { V2Context, V2Registration } from "./v2-types.js";
46
48
  /** The stable prefix a human (and a test) can recognise the injected line by. */
47
49
  export declare const RETRY_MARKER = "## Team Retry";
@@ -51,7 +53,8 @@ export interface ProviderErrorClass {
51
53
  /** A `Retry-After`-style hint parsed out of the text, in ms; 0 when absent. */
52
54
  retryAfterMs: number;
53
55
  /** true only inside the quota kind when the text says waiting cannot fix this
54
- * (allocated quota / increase your limit / token-limit / 余额不足). */
56
+ * (the BILLING family: insufficient balance / 余额不足 / 欠费 / insufficient_quota /
57
+ * billing — NOT alibaba's transient token-limit throttle, user correction 2026-10-21). */
55
58
  hardQuota: boolean;
56
59
  }
57
60
  export declare function classifyProviderError(text: unknown): ProviderErrorClass;
@@ -229,6 +232,13 @@ export declare function sessionIDOf(raw: unknown): string;
229
232
  export interface RetryLayerInput {
230
233
  scope?: TeamScope;
231
234
  governor: RetryGovernor;
235
+ /**
236
+ * 易变注入的尾部通道 (`dynamicTail: "on"`). When handed in, the pending
237
+ * directive goes to the request's TAIL (one message at the very end) instead
238
+ * of `event.system`, so the prefix stays cacheable; absent = the old system
239
+ * push, byte-exact.
240
+ */
241
+ sink?: DynamicSink;
232
242
  /** Fired for each observable outcome so the personality can write the
233
243
  * `step_id:"v2-retry"` trajectory line — the layer owns no store. */
234
244
  onEvent?: (row: Record<string, unknown>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"v2-retry.d.ts","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAA0B,cAAc,EAAoB,MAAM,eAAe,CAAA;AAExG,iFAAiF;AACjF,eAAO,MAAM,YAAY,kBAAkB,CAAA;AAE3C,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAA;AAE1E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAA;IACvB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAA;IACpB;wEACoE;IACpE,SAAS,EAAE,OAAO,CAAA;CACnB;AAgBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,CAgBvE;AAUD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,WAS5B,CAAA;AAID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,GAAE;IACN,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;CACN,GAClB,WAAW,CAWb;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,GAAG,MAAM,CAMtH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IACnB,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAA;IACnB,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;CAClD;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACxF,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EACtC,SAAS,SAAS,GACjB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAS/D;AAED,iFAAiF;AACjF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;AAElD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,kBAAkB,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACrG,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;IAChC;;qFAEiF;IACjF,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;IACpC,uFAAuF;IACvF,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IACrC,wEAAwE;IACxE,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAAA;IACrD,oFAAoF;IACpF,aAAa,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAAA;IACzD,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IACxC,2EAA2E;IAC3E,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,KAAK,IAAI,IAAI,CAAA;CACd;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,iBAAiB,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO,CAAC,WAAW,CAAC;IAChE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7F;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;CACxC;AAOD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,oBAAyB,GAAG,aAAa,CAwTlF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiChD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAmB3D;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAOhD;AAMD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,EAAE,aAAa,CAAA;IACvB;0EACsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAChD,qFAAqF;IACrF,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,KAAK,IAAI,CAAA;IACzD,0EAA0E;IAC1E,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAA;CACvF;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,MAAM,EAAE,WAAW,CAAA;IACnB,yFAAyF;IACzF,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5C;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAuItG"}
1
+ {"version":3,"file":"v2-retry.d.ts","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,10 @@
17
17
  * 5s/10s/20s/40s/60s; the chain never accumulates across requests, and the
18
18
  * host's own `session.retry.scheduled` stands our directive down — the desktop
19
19
  * is already rendering that countdown; jitter applies only when retryJitter > 0) — but ONLY for the
20
- * kinds a wait can fix. A HARD quota (allocated-exceeded / increase-your-limit /
21
- * token-limit / 余额不足) names no wait: the directive says stop and raise-or-reset,
22
- * and the breaker trips on the SECOND consecutive hard-quota error instead of
20
+ * kinds a wait can fix. A HARD quota (the BILLING family only: insufficient
21
+ * balance / 余额不足 / 欠费 / insufficient_quota / billing) names no wait: the
22
+ * directive says stop and raise-or-reset, and the breaker trips on the SECOND
23
+ * consecutive hard-quota error instead of
23
24
  * `breakAfter`. The structured `retryAfterMs` host 2.1.2 (#57146) puts on session
24
25
  * errors is honored as the wait floor. Inject it into the
25
26
  * NEXT request's system prompt as an actionable sentence ("等 N 秒再发"),
@@ -53,17 +54,22 @@ export const RETRY_MARKER = "## Team Retry";
53
54
  * more than one token (e.g. "quota exceeded (429)") and the most specific class
54
55
  * is the useful one.
55
56
  */
56
- /** The exhaustion sub-signature: a wait cannot fix these — the limit must be raised
57
- * or the period must roll over. A bare "quota exceeded" stays SOFT (it may already
58
- * carry a reset), per the "explicit signatures only" rule above. */
59
- const HARD_QUOTA_RE = /allocated quota exceeded|increase your quota|insufficient quota|quota limit|token[- ]limit|余额不足/;
57
+ /** The exhaustion sub-signature: a wait cannot fix these — the account must be topped
58
+ * up, the plan changed, or the debt cleared. USER CORRECTION 2026-10-21: alibaba's
59
+ * `Allocated quota exceeded … error-code#token-limit` is a TRANSIENT per-minute throttle
60
+ * (the window rolls over — the same child got bounced six times and kept coming back),
61
+ * so it is NOT hard: it rides the ladder and the ③ re-drive, and a structured
62
+ * `retryAfterMs` sets the floor. Hard is the BILLING family only. A genuinely dead
63
+ * allocation misread as soft stays bounded: the chain exhausts at `maxRetries` into the
64
+ * stop directive, and the throttle breaker counts it. */
65
+ const HARD_QUOTA_RE = /insufficient balance|余额不足|欠费|arrears|insufficient_quota|billing|check your plan/;
60
66
  export function classifyProviderError(text) {
61
67
  const s = typeof text === "string" ? text : "";
62
68
  if (!s.trim())
63
69
  return { kind: "unknown", retryAfterMs: 0, hardQuota: false };
64
70
  const lower = s.toLowerCase();
65
71
  const retryAfterMs = parseRetryAfter(s);
66
- if (/allocated quota exceeded|quota exceeded|insufficient_quota|exceeded.*quota|quota.*exceed|配额|余额不足/.test(lower)) {
72
+ if (/allocated quota exceeded|quota exceeded|insufficient_quota|insufficient balance|arrears|exceeded.*quota|quota.*exceed|配额|余额不足/.test(lower)) {
67
73
  return { kind: "quota", retryAfterMs, hardQuota: HARD_QUOTA_RE.test(lower) };
68
74
  }
69
75
  if (/\b429\b|too many requests|rate[ _-]?limit|rate_limit_exceeded|限流|请求过于频繁/.test(lower)) {
@@ -639,14 +645,20 @@ export async function applyV2RetryGovernor(ctx, input) {
639
645
  // The session is assembling a request on its own (host retry, or the model
640
646
  // re-issued): stand the scheduled re-drive down — the revival happened.
641
647
  cancelRedrive(sid);
642
- if (!Array.isArray(event?.system))
648
+ // 尾层模式不读 system:指令进滞留区,由最后一个 context hook 拼成末尾消息。
649
+ if (!input.sink && !Array.isArray(event?.system))
643
650
  return;
644
651
  // Per-session delivery: a child's wait directive must never ride the
645
652
  // lead's request (and vice versa) — the two chains are independent.
646
653
  const d = governor.takeDirective(sid);
647
654
  if (!d)
648
655
  return;
649
- event.system.push({ type: "text", text: d.text });
656
+ if (input.sink) {
657
+ input.sink.set(sid, "retry", d.text);
658
+ }
659
+ else {
660
+ event.system.push({ type: "text", text: d.text });
661
+ }
650
662
  report.directivesInjected++;
651
663
  try {
652
664
  input.onEvent?.({ event: "injected", delay_ms: d.delayMs, session: sid });