@te-river/opencode-team-mode 1.7.10 → 1.8.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.
package/README.md CHANGED
@@ -732,9 +732,11 @@ for overrides, extra agents and disabling roles.
732
732
  | `splitAdvice` | `on`/`off` | `on` | Inject a split suggestion when a dispatch brief carries too many acceptance criteria. `off` stops the hint (the prompt discipline stays). |
733
733
  | `splitBriefTokens` | number | `4000` | The brief token threshold that triggers it. **Clamped to ≥200.** |
734
734
  | `splitMaxCriteria` | number | `3` | More acceptance criteria than this is a signal to split. |
735
- | `retry` | `on`/`off` | `on` | Retry governance on BOTH request-failure surfaces: (1) the provider-error governor — classify a quota / rate / transient / unknown error **by name and text only**, compute the fixed 5s/10s/20s ladder, and inject ONE directive naming the exact seconds to wait; after `retryBreakAfter` consecutive errors a cooldown denies new `subagent` dispatches; (2) the HTTP layer — a failed request inside `tm_webfetch` / every `tm_search` engine leg (network throw, per-request timeout, HTTP 429 or 5xx) is retried up to 3 times on the SAME ladder, and the reply labels it (`第N次重试后成功` / `重试3次…仍失败`). A policy refusal (off-allowlist, red line, env-file URL, 403/418, other 4xx) is never re-asked. Honest boundary: there is no seam to intercept the model's own retry — it identifies, states the wait, and refuses new work; it does not wait for the model. |
736
- | `retryBaseMs` | number | `5000` | First rung of the ladder: retries #1/#2/#3 wait 5s / 10s / 20s (doubling), on both surfaces. |
737
- | `retryMaxMs` | number | `60000` | Ceiling for that backoff. |
735
+ | `retry` | `on`/`off` | `on` | Retry governance on BOTH request-failure surfaces. **(1) The provider-error governor — a PER-REQUEST retry chain:** each session's own failing request earns `retryMaxRetries` (5) retries waiting **5s/10s/20s/40s/60s** (base doubling to `retryMaxMs`, `retryJitter` default `0`), cumulative WITHIN that request — never across a session's lifetime. Chains are isolated per session (a child's failures never advance the lead's ladder), directives are delivered only to the session that earned them, and a chain ends on `session.idle`, `retryChainGapMs` of quiet, or budget exhaustion (a later error starts a fresh chain). **Sub-agent vs main agent:** a child whose budget is spent is told to hand the work back, and the LEAD receives a notice to run that step itself; the main agent is told to stop and report with options. Injected text names the retry index. A **hard quota** (`allocated quota exceeded` / `increase your limit` / `token-limit` / 余额不足) names NO wait — stop and raise-or-reset — and trips the breaker on the SECOND consecutive error; host 2.1.2's structured `retryAfterMs` is honoured as the wait floor. **(2) The HTTP layer:** a failed request inside `tm_webfetch` / every `tm_search` engine leg (network throw, per-request timeout, HTTP 429 or 5xx) is re-asked up to 3 times on the same 5s/10s/20s rungs, and the reply labels it (`第N次重试后成功` / `重试3次…仍失败`). A policy refusal (off-allowlist, red line, env-file URL, 403/418, other 4xx) is never re-asked. **The host's own retries win:** `session.retry.scheduled` — the desktop's 「尝试 N - 在 X 秒内重试」 countdown — stands our ladder directive down while the host is retrying, and our guidance speaks only when it does not (hard quota / spent budget). Honest boundary: there is no seam to intercept the model's own retry — the governor states the wait; it does not wait for the model. |
736
+ | `retryBaseMs` | number | `5000` | First rung of the ladder: retry #1 waits 5s, then doubling. |
737
+ | `retryMaxMs` | number | `60000` | Ceiling for that backoff (rungs 4/5 rest on 40s/60s with the defaults). |
738
+ | `retryMaxRetries` | number | `5` | How many retries ONE request earns before its chain stops (5 → 5s/10s/20s/40s/60s). |
739
+ | `retryChainGapMs` | number | `600000` | A session quiet for this long starts a NEW retry chain (counts reset), ms. |
738
740
  | `retryJitter` | number | `0` | ± fraction applied to the wait. Default `0` = NO jitter, so the 5s/10s/20s ladder is exact; set a fraction (≤0.95) if parallel sessions should not re-fire in lockstep. |
739
741
  | `retryBreakAfter` | number | `5` | Consecutive errors before the breaker trips. |
740
742
  | `retryCooldownMs` | number | `60000` | How long new sub-agent dispatches are refused once it has. |
package/README.zh-CN.md CHANGED
@@ -650,9 +650,11 @@ Team Lead 自己从不删黑板,你可以随时审计任何一次运行。
650
650
  | `splitAdvice` | `on`/`off` | `on` | 派工简报的验收标准过多时注入拆分建议。`off` 停掉这条提示(提示词纪律仍在)。 |
651
651
  | `splitBriefTokens` | number | `4000` | 触发拆分建议的简报 token 阈值。**夹在 ≥200。** |
652
652
  | `splitMaxCriteria` | number | `3` | 验收标准多于这个数就是该拆的信号。 |
653
- | `retry` | `on`/`off` | `on` | 两个「请求失败」表面上的重试治理,一起管:(1) provider 错误治理器——只按**名字和文本**把错误分类(配额 / 限流 / 瞬时 / 未知),按固定 5s/10s/20s 阶梯算出等待,并注入**一条**写明确切秒数的指令;连续 `retryBreakAfter` 次错误后,冷却期拒绝新的 `subagent` 派发;(2) HTTP 层——`tm_webfetch` 与每条 `tm_search` 引擎腿里「失败的请求」(网络抛出、单次请求超时、HTTP 429 或 5xx)按**同一条阶梯**最多重试 3 次,并在回复里如实标注(`第N次重试后成功` / `重试3次…仍失败`)。政策性拒绝(不在白名单、红线地址、env-file URL、403/418、其它 4xx)绝不重问。老实的边界:没有哪个缝能拦截模型自己的重试——它识别、说出该等多久、并拒绝新工作;它不会替模型去等。 |
654
- | `retryBaseMs` | number | `5000` | 阶梯的第一级:第 1/2/3 次重试等 5s / 10s / 20s(翻倍),两个表面同一条阶梯。 |
655
- | `retryMaxMs` | number | `60000` | 该退避的上限。 |
653
+ | `retry` | `on`/`off` | `on` | 两个「请求失败」表面上的重试治理。**(1) provider 错误治理器——按请求重试链:** 每个会话自己那条失败请求,累计获得 `retryMaxRetries`(5)次重试,依次等 **5s/10s/20s/40s/60s**(基数翻倍、`retryMaxMs` 封顶、`retryJitter` 默认 0)——**同一次请求内**累计,绝不跨会话生命周期。链按会话隔离(子代理的失败不会推进主代理的阶梯),指令只投递给挣得它的会话;链在 `session.idle`、`retryChainGapMs` 静默、或预算耗尽时结束(之后再来的错误开新链)。**子代理 vs 主代理:** 子代理预算耗尽 → 收到「把工作交回主代理」,同时**主代理收到「自己执行这一步」的通知**;主代理耗尽 → 停止重试并向用户如实报告并给选项。注入文本写明重试序号。**hard quota**(`allocated quota exceeded` / `increase your limit` / `token-limit` / 余额不足)不命名等待——停止并等重置/提升——连续第 2 次即触发断路器;宿主 2.1.2 的结构化 `retryAfterMs` 作为等待下限。**(2) HTTP 层:** `tm_webfetch` 与每条 `tm_search` 引擎腿里失败的请求(网络抛出、单次超时、HTTP 429/5xx)按同一 5s/10s/20s 阶梯最多重问 3 次,回复如实标注(`第N次重试后成功` / `重试3次…仍失败`)。政策性拒绝(白名单外、红线地址、env-file URL、403/418、其它 4xx)绝不重问。**宿主自己的重试优先:** `session.retry.scheduled`(桌面的「尝试 N - 在 X 秒内重试」)存在时我们的等待指令让位,只在宿主不重试的场景(hard quota/预算耗尽)说话。老实的边界:没有哪个缝能拦截模型自己的重试——治理器只说明该等多久,不替模型等待。 |
654
+ | `retryBaseMs` | number | `5000` | 阶梯第一级:第 1 次重试等 5s,之后翻倍。 |
655
+ | `retryMaxMs` | number | `60000` | 退避上限(默认下第 4/5 级落在 40s/60s)。 |
656
+ | `retryMaxRetries` | number | `5` | 一条请求最多重试几次(5 → 5s/10s/20s/40s/60s);耗尽即停。 |
657
+ | `retryChainGapMs` | number | `600000` | 会话静默超过该时长即视为新请求(重试计数清零),毫秒。 |
656
658
  | `retryJitter` | number | `0` | 施加在等待上的 ± 比例。默认 `0` = 不抖动,好让 5s/10s/20s 阶梯精确如初;想让并行会话错开再设成正数(≤0.95)。 |
657
659
  | `retryBreakAfter` | number | `5` | 触发断路器前的连续错误次数。 |
658
660
  | `retryCooldownMs` | number | `60000` | 断路器跳闸后拒绝新派发的时长。 |
@@ -59,5 +59,7 @@ export declare function applyV2EventFeed(ctx: unknown, opts: {
59
59
  onEvent: (event: HostEvent) => void;
60
60
  types?: readonly string[];
61
61
  onError?: (data: unknown) => void;
62
+ onIdle?: (sessionID: string) => void;
63
+ onRetryScheduled?: (data: unknown) => void;
62
64
  }): Promise<V2EventFeed>;
63
65
  //# sourceMappingURL=v2-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"v2-events.d.ts","sourceRoot":"","sources":["../../src/host/v2-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD;;;;;;;+EAO+E;AAC/E,eAAO,MAAM,UAAU,iMASb,CAAA;AAEV,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;iCAC6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AAeD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GAC1G,OAAO,CAAC,WAAW,CAAC,CAwHtB"}
1
+ {"version":3,"file":"v2-events.d.ts","sourceRoot":"","sources":["../../src/host/v2-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGnD;;;;;;;+EAO+E;AAC/E,eAAO,MAAM,UAAU,iMASb,CAAA;AAEV,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;iCAC6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B;AAeD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GAC5L,OAAO,CAAC,WAAW,CAAC,CA6ItB"}
@@ -28,6 +28,7 @@
28
28
  * wrapped, and a stream that throws ends the feed with a recorded reason instead
29
29
  * of an exception in the host's event loop.
30
30
  */
31
+ import { isTurnEndEvent, sessionIDOf } from "./v2-retry.js";
31
32
  /** The types the dispatcher understands, plus the v2 spellings we have observed.
32
33
  * Anything else is counted, not forwarded.
33
34
  *
@@ -118,12 +119,35 @@ export async function applyV2EventFeed(ctx, opts) {
118
119
  // extraction; this only routes the event to it.
119
120
  if ((type === "session.error" || type === "session.execution.failed") && typeof opts.onError === "function") {
120
121
  try {
121
- opts.onError(ev);
122
+ opts.onError(raw);
122
123
  }
123
124
  catch {
124
125
  /* an error tap that throws never closes the feed */
125
126
  }
126
127
  }
128
+ // The retry chains are per REQUEST: a turn ending ends the chain, so the next
129
+ // failure starts back at retry #1 (the user's "同一次" rule). 2.0.28 renamed the
130
+ // idle spelling — the same event-name lesson the error tap above records.
131
+ if (isTurnEndEvent(type) && typeof opts.onIdle === "function") {
132
+ try {
133
+ opts.onIdle(sessionIDOf(raw));
134
+ }
135
+ catch {
136
+ /* an idle tap that throws never closes the feed */
137
+ }
138
+ }
139
+ // The host schedules its OWN provider retries (`session.retry.scheduled`:
140
+ // {sessionID, assistantMessageID, attempt, at, error}) and the desktop renders
141
+ // `尝试 N - 在 X 秒内重试` from it. Tap it so the governor can stand its own
142
+ // ladder directive down instead of contradicting the visible countdown.
143
+ if (type === "session.retry.scheduled" && typeof opts.onRetryScheduled === "function") {
144
+ try {
145
+ opts.onRetryScheduled(raw);
146
+ }
147
+ catch {
148
+ /* a tap that throws never closes the feed */
149
+ }
150
+ }
127
151
  if (!type || !allowed.has(type)) {
128
152
  const key = type || "(no type)";
129
153
  report.unknown[key] = (report.unknown[key] ?? 0) + 1;
@@ -1 +1 @@
1
- {"version":3,"file":"v2-events.js","sourceRoot":"","sources":["../../src/host/v2-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2-events.js","sourceRoot":"","sources":["../../src/host/v2-events.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,10 @@
10
10
  * 1. RECOGNISE a provider throttle from the event feed (`session.error`), by
11
11
  * matching explicit signatures only — never by guessing. A text that
12
12
  * not carry a known signature classifies as `unknown` and changes nothing.
13
- * 2. COMPUTE an exact wait (the fixed 5s/10s/20s ladder for retries #1/#2/#3, doubling
14
- * to the cap after that; jitter applies only when retryJitter > 0) — but ONLY for the
13
+ * 2. COMPUTE an exact wait (a per-request ladder: retries #1..#5 wait
14
+ * 5s/10s/20s/40s/60s; the chain never accumulates across requests, and the
15
+ * host's own `session.retry.scheduled` stands our directive down — the desktop
16
+ * is already rendering that countdown; jitter applies only when retryJitter > 0) — but ONLY for the
15
17
  * kinds a wait can fix. A HARD quota (allocated-exceeded / increase-your-limit /
16
18
  * token-limit / 余额不足) names no wait: the directive says stop and raise-or-reset,
17
19
  * and the breaker trips on the SECOND consecutive hard-quota error instead of
@@ -50,13 +52,21 @@ export interface RetryConfig {
50
52
  jitter: number;
51
53
  breakAfter: number;
52
54
  cooldownMs: number;
55
+ /** How many retries ONE request earns (default 5 → rungs 5s/10s/20s/40s/60s). */
56
+ maxRetries: number;
57
+ /** A session with no error for this long starts a NEW retry chain. */
58
+ chainGapMs: number;
53
59
  }
54
60
  /**
55
- * The default ladder is FIXED and deterministic: consecutive errors #1/#2/#3
56
- * wait exactly 5s / 10s / 20s (base 5000 doubling, jitter 0). Jitter stays a
57
- * knob — a user who would rather parallel sessions not re-fire in lockstep can
58
- * set `retryJitter` back to a fraction — but the shipped default promises the
59
- * 5/10/20 ladder, and a promise with jitter in it is not that promise.
61
+ * The default ladder is FIXED, deterministic AND PER REQUEST: retries #1..#5 of the
62
+ * SAME failed request wait 5s / 10s / 20s / 40s / 60s (base 5000 doubling, jitter 0),
63
+ * then that request's budget is spent (`maxRetries` 5) and the chain stops. A chain
64
+ * never accumulates across requests (idle / gap / post-exhaustion all restart it), and
65
+ * the host's own `session.retry.scheduled` stands our ladder directive down because the
66
+ * desktop is already showing that countdown. Jitter stays a knob — a user who would
67
+ * rather parallel sessions not re-fire in lockstep can set `retryJitter` back to a
68
+ * fraction — but the shipped default promises the fixed ladder, and a promise with
69
+ * jitter in it is not that promise.
60
70
  */
61
71
  export declare const RETRY_DEFAULTS: RetryConfig;
62
72
  /**
@@ -71,6 +81,8 @@ export declare function resolveRetryConfig(config?: {
71
81
  retryJitter: number;
72
82
  retryBreakAfter: number;
73
83
  retryCooldownMs: number;
84
+ retryMaxRetries: number;
85
+ retryChainGapMs: number;
74
86
  }): RetryConfig;
75
87
  /**
76
88
  * `delay = min(base * 2^attempt, max) * (1 ± jitter)`, rounded to ms and never
@@ -92,25 +104,65 @@ export interface RetryReport {
92
104
  cooldownDenied: number;
93
105
  foreignSkipped: number;
94
106
  threw: number;
107
+ /** per-request budgets that ran out — sub-agents and the main agent counted apart */
108
+ childExhausted: number;
109
+ mainExhausted: number;
110
+ /** retry chains restarted (idle event or idle gap) — proves the ladder is per-request */
111
+ chainsReset: number;
112
+ /** directives armed FOR the lead because a child ran out of its budget */
113
+ leadNotices: number;
114
+ /** host-native retries observed (`session.retry.scheduled`) — the UI's own countdown */
115
+ hostRetries: number;
95
116
  }
96
117
  export interface RetryDirective {
97
118
  text: string;
98
119
  delayMs: number;
120
+ /** What kind of guidance this is; a host retry may only stand down a "ladder". */
121
+ kind?: "ladder" | "hard" | "exhausted" | "notice";
122
+ }
123
+ /** The turn-ending event spellings across host generations (2.0.28 renamed them). */
124
+ export declare function isTurnEndEvent(type: string): boolean;
125
+ /** The session→role question, pure so a test can pin it without the host. */
126
+ export declare function roleOfSession(sid: string, children: ReadonlyArray<{
127
+ sessionID: string;
128
+ parentSessionID?: string;
129
+ agent?: string;
130
+ }>, agentOf: (sessionID: string) => string, leadAgent?: string): {
131
+ role: RetryRole;
132
+ parentSessionID?: string;
133
+ agent?: string;
134
+ };
135
+ /** Who is making the failing request: the lead session or a dispatched child. */
136
+ export type RetryRole = "main" | "sub" | "unknown";
137
+ export interface RetryObserveOptions {
138
+ sessionID?: unknown;
139
+ structuredRetryAfterMs?: number;
140
+ role?: RetryRole;
141
+ parentSessionID?: unknown;
142
+ agent?: unknown;
99
143
  }
100
144
  export interface RetryGovernor {
101
- observe(text: unknown, structuredRetryAfterMs?: number): ProviderErrorClass & {
145
+ observe(text: unknown, opts?: RetryObserveOptions | number): ProviderErrorClass & {
102
146
  delayMs: number;
103
147
  };
104
148
  observeEvent(raw: unknown): void;
105
- /** Peek at the pending directive without consuming it. */
106
- directive(): RetryDirective | null;
107
- /** Consume the pending directive (the injection hook's one-shot read). */
108
- takeDirective(): RetryDirective | null;
109
- inCooldown(): boolean;
110
- /** ms left in the current cooldown window (0 when not cooling down). */
111
- cooldownRemainingMs(): number;
149
+ /** The host scheduled its OWN retry (`session.retry.scheduled`): align the chain's
150
+ * attempt with the host's count and stand the ladder directive down — the UI is
151
+ * already showing the host's countdown, and two competing waits would fight. */
152
+ observeHostRetry(raw: unknown): void;
153
+ /** The turn ended: this session's retry chain is over (a new request starts at #1). */
154
+ observeIdle(sessionID: unknown): void;
155
+ /** Peek at the pending directive for a session without consuming it. */
156
+ directive(sessionID?: unknown): RetryDirective | null;
157
+ /** Consume one session's pending directive (the injection hook's one-shot read). */
158
+ takeDirective(sessionID?: unknown): RetryDirective | null;
159
+ inCooldown(sessionID?: unknown): boolean;
160
+ /** ms left in that session's cooldown window (0 when not cooling down). */
161
+ cooldownRemainingMs(sessionID?: unknown): number;
112
162
  /** The configured consecutive-error threshold, for the refusal wording. */
113
163
  readonly breakAfter: number;
164
+ /** Retries one request earns (the ladder's length). */
165
+ readonly maxRetries: number;
114
166
  readonly report: RetryReport;
115
167
  reset(): void;
116
168
  }
@@ -119,6 +171,12 @@ export interface RetryGovernorOptions extends Partial<RetryConfig> {
119
171
  random?: () => number;
120
172
  /** Fired for each classification / breaker outcome (the trajectory sink). */
121
173
  onEvent?: (row: Record<string, unknown>) => void;
174
+ /** The session→role facts the layer owns (scope + the child registry). */
175
+ roleOf?: (sessionID: string) => {
176
+ role: RetryRole;
177
+ parentSessionID?: string;
178
+ agent?: string;
179
+ };
122
180
  }
123
181
  /**
124
182
  * The state machine. Pure except for the injected `now`/`random`, so a test can
@@ -138,6 +196,8 @@ export declare function errorTextOf(raw: unknown): string;
138
196
  * interface, so an absent or non-numeric field is simply 0.
139
197
  */
140
198
  export declare function structuredRetryAfterOf(raw: unknown): number;
199
+ /** The session id an event refers to — defensive, the payload shape is not promised. */
200
+ export declare function sessionIDOf(raw: unknown): string;
141
201
  export interface RetryLayerInput {
142
202
  scope?: TeamScope;
143
203
  governor: RetryGovernor;
@@ -1 +1 @@
1
- {"version":3,"file":"v2-retry.d.ts","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2-retry.d.ts","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"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"}