@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.
@@ -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
@@ -71,11 +73,15 @@ function parseRetryAfter(s) {
71
73
  return Number.isFinite(n) && n >= 0 ? n * 1000 : 0;
72
74
  }
73
75
  /**
74
- * The default ladder is FIXED and deterministic: consecutive errors #1/#2/#3
75
- * wait exactly 5s / 10s / 20s (base 5000 doubling, jitter 0). Jitter stays a
76
- * knob — a user who would rather parallel sessions not re-fire in lockstep can
77
- * set `retryJitter` back to a fraction — but the shipped default promises the
78
- * 5/10/20 ladder, and a promise with jitter in it is not that promise.
76
+ * The default ladder is FIXED, deterministic AND PER REQUEST: retries #1..#5 of the
77
+ * SAME failed request wait 5s / 10s / 20s / 40s / 60s (base 5000 doubling, jitter 0),
78
+ * then that request's budget is spent (`maxRetries` 5) and the chain stops. A chain
79
+ * never accumulates across requests (idle / gap / post-exhaustion all restart it), and
80
+ * the host's own `session.retry.scheduled` stands our ladder directive down because the
81
+ * desktop is already showing that countdown. Jitter stays a knob — a user who would
82
+ * rather parallel sessions not re-fire in lockstep can set `retryJitter` back to a
83
+ * fraction — but the shipped default promises the fixed ladder, and a promise with
84
+ * jitter in it is not that promise.
79
85
  */
80
86
  export const RETRY_DEFAULTS = {
81
87
  enabled: true,
@@ -84,6 +90,8 @@ export const RETRY_DEFAULTS = {
84
90
  jitter: 0,
85
91
  breakAfter: 5,
86
92
  cooldownMs: 60000,
93
+ maxRetries: 5,
94
+ chainGapMs: 600_000,
87
95
  };
88
96
  const isOff = (raw) => /^(off|false|0|no)$/i.test(String(raw ?? "").trim());
89
97
  /**
@@ -99,6 +107,8 @@ export function resolveRetryConfig(config = resolveConfig()) {
99
107
  jitter: config.retryJitter,
100
108
  breakAfter: config.retryBreakAfter,
101
109
  cooldownMs: config.retryCooldownMs,
110
+ maxRetries: config.retryMaxRetries,
111
+ chainGapMs: config.retryChainGapMs,
102
112
  };
103
113
  }
104
114
  /**
@@ -112,6 +122,23 @@ export function backoffMs(attempt, baseMs, maxMs, jitter, random) {
112
122
  const factor = 1 + (random() * 2 - 1) * j;
113
123
  return Math.max(0, Math.round(raw * factor));
114
124
  }
125
+ /** The turn-ending event spellings across host generations (2.0.28 renamed them). */
126
+ export function isTurnEndEvent(type) {
127
+ return type === "session.idle" || type === "session.execution.succeeded" || type === "session.execution.interrupted";
128
+ }
129
+ /** The session→role question, pure so a test can pin it without the host. */
130
+ export function roleOfSession(sid, children, agentOf, leadAgent = "team") {
131
+ const kid = children.find((c) => c.sessionID === sid);
132
+ if (kid)
133
+ return { role: "sub", parentSessionID: kid.parentSessionID, agent: kid.agent };
134
+ const agent = agentOf(sid);
135
+ // A Team specialist that has not reached the child registry yet (registration lands
136
+ // in the dispatch tool's execute.after, so there is a window) is still a SUB-agent:
137
+ // scope.agentOf only ever stores Team names, and only the lead is "team".
138
+ if (agent && agent !== leadAgent)
139
+ return { role: "sub", agent };
140
+ return { role: agent === leadAgent ? "main" : "unknown", agent };
141
+ }
115
142
  const isThrottle = (kind) => kind === "quota" || kind === "rate";
116
143
  const kindLabel = (kind) => kind === "quota" ? "配额" : kind === "rate" ? "限流" : kind === "transient" ? "临时" : "未知";
117
144
  /**
@@ -143,30 +170,84 @@ export function createRetryGovernor(opts = {}) {
143
170
  cooldownDenied: 0,
144
171
  foreignSkipped: 0,
145
172
  threw: 0,
173
+ childExhausted: 0,
174
+ mainExhausted: 0,
175
+ chainsReset: 0,
176
+ leadNotices: 0,
177
+ hostRetries: 0,
178
+ };
179
+ const ANON = "~anon";
180
+ const MAX_CHAINS = 512;
181
+ const chains = new Map();
182
+ const pending = new Map();
183
+ /** The exact ladder this config promises, for the messages ("5s/10s/20s/40s/60s"). */
184
+ const ladderLabel = () => {
185
+ const out = [];
186
+ for (let i = 0; i < cfg.maxRetries; i++) {
187
+ out.push(`${Math.round(Math.min(cfg.baseMs * Math.pow(2, i), cfg.maxMs) / 1000)}s`);
188
+ }
189
+ return out.join("/");
146
190
  };
147
- let streak = 0;
148
- let hardStreak = 0;
149
- let cooldownUntil = 0;
150
- let pending = null;
151
- const inCooldown = () => now() < cooldownUntil;
152
- const buildDirective = (cls, delayMs) => {
191
+ const chainOf = (sid) => {
192
+ let c = chains.get(sid);
193
+ if (c)
194
+ return c;
195
+ if (chains.size >= MAX_CHAINS) {
196
+ // The map is keyed by session id; an unbounded map in a long-lived host is a
197
+ // leak. Evict the stalest session — its ladder state is worthless anyway.
198
+ let oldest = "";
199
+ let at = Infinity;
200
+ for (const [k, v] of chains) {
201
+ if (v.lastAt < at) {
202
+ at = v.lastAt;
203
+ oldest = k;
204
+ }
205
+ }
206
+ if (oldest) {
207
+ chains.delete(oldest);
208
+ pending.delete(oldest);
209
+ }
210
+ }
211
+ c = { attempts: 0, lastAt: 0, streak: 0, hardStreak: 0, cooldownUntil: 0, role: "unknown", done: false };
212
+ chains.set(sid, c);
213
+ return c;
214
+ };
215
+ const inCooldown = (sessionID) => now() < chainOf(sidOf(sessionID)).cooldownUntil;
216
+ const cooldownRemainingMs = (sessionID) => Math.max(0, chainOf(sidOf(sessionID)).cooldownUntil - now());
217
+ const buildDirective = (cls, delayMs, attempt) => {
153
218
  if (cls.hardQuota) {
154
219
  const hint = cls.retryAfterMs > 0 ? `(错误文本给出的重试时间:约 ${Math.round(cls.retryAfterMs / 1000)} 秒)` : "";
155
220
  return {
156
221
  text: `${RETRY_MARKER}(配额耗尽,不是故障)\n检测到 provider 配额耗尽(hard quota):等待与重试都无法解决——请停止向该 provider 重发${hint},等其配额重置,或请用户提升配额/更换模型。需要完成的工作请主代理自己执行(再派子代理只会被同样的配额打回)。这是配额保护,不是插件故障;可用 retry: "off" 关闭。`,
157
222
  delayMs: 0,
223
+ kind: "hard",
158
224
  };
159
225
  }
160
- return buildLadderDirective(cls.kind, delayMs);
226
+ return buildLadderDirective(cls.kind, delayMs, attempt);
227
+ };
228
+ const buildExhaustedDirective = (cls, role) => {
229
+ const text = role === "sub"
230
+ ? `${RETRY_MARKER}(重试预算耗尽)\n本请求已重试 ${cfg.maxRetries} 次(${ladderLabel()} 阶梯)仍失败(${kindLabel(cls.kind)}):停止重试,把失败原因交回主代理——由主代理接手该步骤,或换模型/换来源。这是配额保护,不是插件故障;可用 retry: "off" 关闭。`
231
+ : `${RETRY_MARKER}(重试预算耗尽)\n同一请求已重试 ${cfg.maxRetries} 次(${ladderLabel()} 阶梯)仍失败(${kindLabel(cls.kind)}):停止重试——向用户如实报告失败原因与已等待时间,并给出选项(换模型 / 补充配额 / 稍后再试)。这是配额保护,不是插件故障;可用 retry: "off" 关闭。`;
232
+ return { text, delayMs: 0, kind: "exhausted" };
161
233
  };
162
- const buildLadderDirective = (kind, delayMs) => {
234
+ const buildLeadNotice = (cls, sid, agent) => {
235
+ const who = String(agent ?? "").trim() || "子代理";
236
+ return {
237
+ text: `${RETRY_MARKER}(子代理被配额打回)\n子代理 ${who}(${sid.slice(-6)})同一请求已重试 ${cfg.maxRetries} 次仍失败(${kindLabel(cls.kind)}):不要再派发该步骤——请主代理自己执行,或换模型/等配额恢复。这是配额保护,不是插件故障;可用 retry: "off" 关闭。`,
238
+ delayMs: 0,
239
+ kind: "notice",
240
+ };
241
+ };
242
+ const buildLadderDirective = (kind, delayMs, attempt) => {
163
243
  const secs = Math.max(1, Math.round(delayMs / 1000));
164
- const text = inCooldown()
165
- ? `${RETRY_MARKER}(配额保护,不是故障)\n连续 ${cfg.breakAfter} 次配额/限流错误,已进入冷却:请等待 ${secs} 秒后再发下一次请求,这是配额保护,不是插件故障;可用 retry: "off" 关闭。`
166
- : `${RETRY_MARKER}(配额保护,不是故障)\n检测到 provider ${kindLabel(kind)} 错误:请等待 ${secs} 秒后再发下一次请求。这是配额保护,不是插件故障;可用 retry: "off" 关闭。`;
167
- return { text, delayMs };
244
+ // Native wording (the desktop renders `尝试 N - 在 X 秒内重试` from the host's own
245
+ // retry event). We reuse the shape so the model reads one consistent cadence.
246
+ const text = `${RETRY_MARKER}(配额保护,不是故障)\n检测到 provider ${kindLabel(kind)} 错误:尝试 ${attempt} - 在 ${secs} 秒内重试。这是配额保护,不是插件故障;可用 retry: "off" 关闭。`;
247
+ return { text, delayMs, kind: "ladder" };
168
248
  };
169
- const observe = (text, structuredRetryAfterMs = 0) => {
249
+ const observe = (text, rawOpts) => {
250
+ const o = typeof rawOpts === "number" ? { structuredRetryAfterMs: rawOpts } : (rawOpts ?? {});
170
251
  const cls = classifyProviderError(text);
171
252
  if (cls.kind === "unknown") {
172
253
  report.unknownSeen++;
@@ -178,52 +259,167 @@ export function createRetryGovernor(opts = {}) {
178
259
  report.rateSeen++;
179
260
  else
180
261
  report.transientSeen++;
181
- streak++;
182
- hardStreak = cls.hardQuota ? hardStreak + 1 : 0;
183
- const structured = Number.isFinite(structuredRetryAfterMs) && structuredRetryAfterMs > 0 ? structuredRetryAfterMs : 0;
262
+ // With `retry: "off"` the layer registers no hook, so arming directives would only
263
+ // grow the map nobody reads.
264
+ if (!cfg.enabled)
265
+ return { ...cls, delayMs: 0 };
266
+ const sid = sidOf(o.sessionID);
267
+ const chain = chainOf(sid);
268
+ // A chain that already spent its budget is finished: a further error starts a fresh
269
+ // chain (back at 5s). Otherwise a long quiet gap starts one. One reset, one count.
270
+ if (chain.done) {
271
+ chain.attempts = 0;
272
+ chain.done = false;
273
+ report.chainsReset++;
274
+ emit({ event: "chain_reset", session: sid, why: "post-exhausted" });
275
+ }
276
+ else if (chain.lastAt > 0 && now() - chain.lastAt > cfg.chainGapMs) {
277
+ chain.attempts = 0;
278
+ report.chainsReset++;
279
+ emit({ event: "chain_reset", session: sid, why: "gap" });
280
+ }
281
+ if (o.role && o.role !== "unknown")
282
+ chain.role = o.role;
283
+ chain.lastAt = now();
284
+ chain.streak++;
285
+ chain.hardStreak = cls.hardQuota ? chain.hardStreak + 1 : 0;
286
+ const structured = Number.isFinite(o.structuredRetryAfterMs) && o.structuredRetryAfterMs > 0 ? o.structuredRetryAfterMs : 0;
184
287
  const retryAfterSource = structured > 0 ? "structured" : cls.retryAfterMs > 0 ? "text" : "none";
185
- // A hard quota names NO wait — the ladder would be a promise a reset cannot keep.
186
- const delayMs = cls.hardQuota ? 0 : Math.max(backoffMs(streak - 1, cfg.baseMs, cfg.maxMs, cfg.jitter, random), structured, cls.retryAfterMs);
288
+ // This error is the one PAST the ladder when the request already spent all its retries.
289
+ const exhausted = !cls.hardQuota && chain.attempts >= cfg.maxRetries;
290
+ // The ladder is indexed by THIS request's cumulative retries: #1 → 5s, #2 → 10s, #3 → 20s.
291
+ const delayMs = cls.hardQuota || exhausted
292
+ ? 0
293
+ : Math.max(backoffMs(chain.attempts, cfg.baseMs, cfg.maxMs, cfg.jitter, random), structured, cls.retryAfterMs);
294
+ if (!cls.hardQuota && !exhausted)
295
+ chain.attempts++;
187
296
  report.lastDelayMs = delayMs;
188
- emit({ event: "classified", kind: cls.kind, hard_quota: cls.hardQuota, delay_ms: delayMs, streak, retry_after_source: retryAfterSource });
189
- // The breaker: consecutive errors of a throttle class. A hard quota is different
190
- // work — two in a row means the provider is out of allocation, and waiting for
191
- // breakAfter only burns the user's tokens on a dead endpoint.
192
- if (isThrottle(cls.kind) && (cls.hardQuota ? hardStreak >= 2 : streak >= cfg.breakAfter)) {
193
- const wasIn = inCooldown();
194
- cooldownUntil = now() + cfg.cooldownMs;
297
+ emit({
298
+ event: "classified",
299
+ kind: cls.kind,
300
+ hard_quota: cls.hardQuota,
301
+ delay_ms: delayMs,
302
+ attempt: chain.attempts,
303
+ exhausted,
304
+ session: sid,
305
+ role: chain.role,
306
+ retry_after_source: retryAfterSource,
307
+ });
308
+ // The breaker is the SESSION's provider-health signal (independent of the
309
+ // per-request budget): consecutive throttle errors cool that session's dispatches.
310
+ // A hard quota is different work — two in a row means the provider is out of
311
+ // allocation, so waiting for breakAfter only burns tokens on a dead endpoint.
312
+ if (isThrottle(cls.kind) && (cls.hardQuota ? chain.hardStreak >= 2 : chain.streak >= cfg.breakAfter)) {
313
+ const wasIn = now() < chain.cooldownUntil;
314
+ chain.cooldownUntil = now() + cfg.cooldownMs;
195
315
  report.cooldowns++;
196
316
  if (!wasIn)
197
317
  report.breakTrips++;
198
- streak = 0;
199
- hardStreak = 0;
200
- emit({ event: "cooldown", break_trips: report.breakTrips, cooldowns: report.cooldowns, cooldown_ms: cfg.cooldownMs });
318
+ chain.streak = 0;
319
+ chain.hardStreak = 0;
320
+ emit({ event: "cooldown", break_trips: report.breakTrips, cooldowns: report.cooldowns, cooldown_ms: cfg.cooldownMs, session: sid });
321
+ }
322
+ if (exhausted) {
323
+ chain.done = true;
324
+ if (chain.role === "sub") {
325
+ report.childExhausted++;
326
+ pending.set(sid, buildExhaustedDirective(cls, "sub"));
327
+ const target = sidOf(o.parentSessionID);
328
+ if (target !== ANON && !pending.has(target)) {
329
+ pending.set(target, buildLeadNotice(cls, sid, o.agent));
330
+ report.leadNotices++;
331
+ }
332
+ }
333
+ else {
334
+ report.mainExhausted++;
335
+ pending.set(sid, buildExhaustedDirective(cls, chain.role));
336
+ }
337
+ }
338
+ else {
339
+ pending.set(sid, buildDirective(cls, delayMs, chain.attempts > 0 ? chain.attempts : 1));
340
+ if (cls.hardQuota && chain.role === "sub") {
341
+ const target = sidOf(o.parentSessionID);
342
+ if (target !== ANON && !pending.has(target)) {
343
+ pending.set(target, buildLeadNotice(cls, sid, o.agent));
344
+ report.leadNotices++;
345
+ }
346
+ }
201
347
  }
202
- pending = buildDirective(cls, delayMs);
203
348
  return { ...cls, delayMs };
204
349
  };
205
350
  return {
206
351
  observe,
207
352
  observeEvent(raw) {
208
353
  const text = errorTextOf(raw);
209
- if (text)
210
- observe(text, structuredRetryAfterOf(raw));
354
+ if (!text)
355
+ return;
356
+ const sid = sessionIDOf(raw);
357
+ const info = sid && opts.roleOf ? opts.roleOf(sid) : undefined;
358
+ observe(text, {
359
+ sessionID: sid,
360
+ structuredRetryAfterMs: structuredRetryAfterOf(raw),
361
+ role: info?.role,
362
+ parentSessionID: info?.parentSessionID,
363
+ agent: info?.agent,
364
+ });
365
+ },
366
+ observeHostRetry(raw) {
367
+ if (!raw || typeof raw !== "object")
368
+ return;
369
+ const o = raw;
370
+ const props = (o.properties ?? o.payload ?? o.data);
371
+ const p = props && typeof props === "object" ? props : o;
372
+ const sid = sidOf(sessionIDOf(raw) || (typeof p.sessionID === "string" ? p.sessionID : ""));
373
+ const attempt = typeof p.attempt === "number" && Number.isFinite(p.attempt) ? Math.max(0, Math.floor(p.attempt)) : 0;
374
+ const at = typeof p.at === "number" && Number.isFinite(p.at) ? p.at : 0;
375
+ const err = p.error;
376
+ const retryAfterMs = err && typeof err === "object" && typeof err.retryAfterMs === "number" && err.retryAfterMs > 0 ? err.retryAfterMs : 0;
377
+ const chain = chainOf(sid);
378
+ // The host is already retrying this request: align our bookkeeping with its
379
+ // attempt count and stand the ladder directive down. A second “wait N
380
+ // seconds” from us would contradict the countdown the UI is showing; the
381
+ // exhausted/hard directives stay — those are the cases the host does NOT retry.
382
+ chain.attempts = Math.max(chain.attempts, attempt);
383
+ chain.lastAt = now();
384
+ const d = pending.get(sid);
385
+ if (d && d.kind === "ladder")
386
+ pending.delete(sid);
387
+ report.hostRetries++;
388
+ emit({ event: "host_retry", session: sid, attempt, at, retry_after_ms: retryAfterMs });
211
389
  },
212
- directive: () => pending,
213
- takeDirective() {
214
- const d = pending;
215
- pending = null;
390
+ observeIdle(sessionID) {
391
+ const sid = sidOf(sessionID);
392
+ const c = chains.get(sid);
393
+ if (!c)
394
+ return;
395
+ // The turn ended: the REQUEST's ladder starts over, but the session-level
396
+ // breaker state (streak / hardStreak / cooldown) is a provider-health signal
397
+ // and must survive — a hard quota in one turn and another in the next are
398
+ // still two consecutive hits on the same provider.
399
+ const meaningful = c.attempts > 0 || c.done;
400
+ c.attempts = 0;
401
+ c.done = false;
402
+ if (meaningful) {
403
+ report.chainsReset++;
404
+ emit({ event: "chain_reset", session: sid, why: "idle" });
405
+ }
406
+ },
407
+ directive: (sessionID) => pending.get(sidOf(sessionID)) ?? null,
408
+ takeDirective(sessionID) {
409
+ const sid = sidOf(sessionID);
410
+ const d = pending.get(sid) ?? null;
411
+ if (d)
412
+ pending.delete(sid);
216
413
  return d;
217
414
  },
218
415
  inCooldown,
219
- cooldownRemainingMs: () => Math.max(0, cooldownUntil - now()),
416
+ cooldownRemainingMs,
220
417
  breakAfter: cfg.breakAfter,
418
+ maxRetries: cfg.maxRetries,
221
419
  report,
222
420
  reset() {
223
- streak = 0;
224
- hardStreak = 0;
225
- cooldownUntil = 0;
226
- pending = null;
421
+ chains.clear();
422
+ pending.clear();
227
423
  },
228
424
  };
229
425
  }
@@ -301,6 +497,19 @@ export function structuredRetryAfterOf(raw) {
301
497
  }
302
498
  return 0;
303
499
  }
500
+ /** The session id an event refers to — defensive, the payload shape is not promised. */
501
+ export function sessionIDOf(raw) {
502
+ if (!raw || typeof raw !== "object")
503
+ return "";
504
+ const o = raw;
505
+ if (typeof o.sessionID === "string" && o.sessionID)
506
+ return o.sessionID;
507
+ const props = (o.properties ?? o.payload ?? o.data);
508
+ if (props && typeof props === "object" && typeof props.sessionID === "string")
509
+ return props.sessionID;
510
+ return "";
511
+ }
512
+ const sidOf = (v) => (typeof v === "string" && v.trim() ? v.trim() : "~anon");
304
513
  const rank = { allow: 0, ask: 1, deny: 2 };
305
514
  /**
306
515
  * Register the two hooks the retry layer owns:
@@ -322,16 +531,19 @@ export async function applyV2RetryGovernor(ctx, input) {
322
531
  try {
323
532
  if (scope && scope.count(scope.decide(event)) !== "ours")
324
533
  return;
325
- scope?.learn(event?.agent, event.sessionID);
534
+ const sid = typeof event.sessionID === "string" ? String(event.sessionID) : "";
535
+ scope?.learn(event?.agent, sid);
326
536
  if (!Array.isArray(event?.system))
327
537
  return;
328
- const d = governor.takeDirective();
538
+ // Per-session delivery: a child's wait directive must never ride the
539
+ // lead's request (and vice versa) — the two chains are independent.
540
+ const d = governor.takeDirective(sid);
329
541
  if (!d)
330
542
  return;
331
543
  event.system.push({ type: "text", text: d.text });
332
544
  report.directivesInjected++;
333
545
  try {
334
- input.onEvent?.({ event: "injected", delay_ms: d.delayMs });
546
+ input.onEvent?.({ event: "injected", delay_ms: d.delayMs, session: sid });
335
547
  }
336
548
  catch {
337
549
  /* the trajectory line is an extra */
@@ -352,16 +564,17 @@ export async function applyV2RetryGovernor(ctx, input) {
352
564
  report.foreignSkipped++;
353
565
  return;
354
566
  }
355
- if (!governor.inCooldown())
567
+ const sid = typeof event.sessionID === "string" ? String(event.sessionID) : "";
568
+ if (!governor.inCooldown(sid))
356
569
  return;
357
570
  report.cooldownDenied++;
358
571
  try {
359
- input.onEvent?.({ event: "denied", remaining_ms: governor.cooldownRemainingMs() });
572
+ input.onEvent?.({ event: "denied", remaining_ms: governor.cooldownRemainingMs(sid), session: sid });
360
573
  }
361
574
  catch {
362
575
  /* the trajectory line is an extra */
363
576
  }
364
- const secs = Math.max(1, Math.round(governor.cooldownRemainingMs() / 1000));
577
+ const secs = Math.max(1, Math.round(governor.cooldownRemainingMs(sid) / 1000));
365
578
  const message = `配额保护:上游配额/限流已连续打回请求,冷却中(剩余约 ${secs} 秒)。期间不派发新的子代理——子代理的模型请求会继续被打回,需要完成的工作请主代理自己执行,或等冷却结束/提升配额。这是配额保护,不是故障;可用 retry: "off" 关闭。`;
366
579
  // Only ever stricter: a host that already denied keeps its decision.
367
580
  if (rank.deny <= rank[event.effect ?? "allow"])
@@ -1 +1 @@
1
- {"version":3,"file":"v2-retry.js","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2-retry.js","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ export interface TeamScope {
42
42
  sessionID?: unknown;
43
43
  } | null | undefined): ScopeVerdict;
44
44
  learn(agent: unknown, sessionID: unknown): void;
45
+ /** The normalized agent a session was last seen as ("" when never seen). */
46
+ agentOf(sessionID: unknown): string;
45
47
  readonly report: V2ScopeReport;
46
48
  /** counted at each call site, so a layer that never fires cannot look healthy */
47
49
  count(verdict: ScopeVerdict): ScopeVerdict;
@@ -1 +1 @@
1
- {"version":3,"file":"v2-scope.d.ts","sourceRoot":"","sources":["../../src/host/v2-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;IACf;gEAC4D;IAC5D,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;IAC/B,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAAA;IACxF,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,iFAAiF;IACjF,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAAA;CAC3C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CA+BlE"}
1
+ {"version":3,"file":"v2-scope.d.ts","sourceRoot":"","sources":["../../src/host/v2-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;IACf;gEAC4D;IAC5D,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;IAC/B,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAAA;IACxF,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/C,4EAA4E;IAC5E,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,iFAAiF;IACjF,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAAA;CAC3C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAmClE"}
@@ -44,6 +44,10 @@ export function createTeamScope(names) {
44
44
  if (n !== "" && set.has(n))
45
45
  bySession.set(sessionID, n);
46
46
  },
47
+ agentOf(sessionID) {
48
+ const sid = typeof sessionID === "string" ? sessionID : "";
49
+ return sid ? bySession.get(sid) ?? "" : "";
50
+ },
47
51
  decide(event) {
48
52
  const n = normalizeAgentName(event?.agent);
49
53
  if (n !== "")
@@ -1 +1 @@
1
- {"version":3,"file":"v2-scope.js","sourceRoot":"","sources":["../../src/host/v2-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAwBnD,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC3C,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IACjE,MAAM,KAAK,GAAc;QACvB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACnC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,KAAK,EAAE,SAAS;YACpB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS;gBAAE,OAAM;YACvD,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,CAAC,KAAK;YACV,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YACpD,MAAM,GAAG,GAAG,KAAK,EAAE,SAAS,CAAA;YAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAA;YAChE,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,CAAC,OAAO;YACX,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YACjB,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM;KACP,CAAA;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"v2-scope.js","sourceRoot":"","sources":["../../src/host/v2-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AA0BnD,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC3C,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IACjE,MAAM,KAAK,GAAc;QACvB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACnC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,KAAK,EAAE,SAAS;YACpB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS;gBAAE,OAAM;YACvD,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,CAAC,SAAS;YACf,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1D,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5C,CAAC;QACD,MAAM,CAAC,KAAK;YACV,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YACpD,MAAM,GAAG,GAAG,KAAK,EAAE,SAAS,CAAA;YAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAA;YAChE,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,CAAC,OAAO;YACX,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YACjB,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM;KACP,CAAA;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/host/v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA8BH,OAAO,KAAK,EAA0B,QAAQ,EAA8B,MAAM,eAAe,CAAA;AAEjG;;;;;kEAKkE;AAClE,eAAO,MAAM,iBAAiB,QAGmB,CAAA;AASjD,eAAO,MAAM,aAAa,EAAE,QAopC3B,CAAA"}
1
+ {"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/host/v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA8BH,OAAO,KAAK,EAA0B,QAAQ,EAA8B,MAAM,eAAe,CAAA;AAEjG;;;;;kEAKkE;AAClE,eAAO,MAAM,iBAAiB,QAGmB,CAAA;AASjD,eAAO,MAAM,aAAa,EAAE,QAuqC3B,CAAA"}
package/dist/host/v2.js CHANGED
@@ -47,7 +47,7 @@ import { applyV2BrowserGate, browserGateSummary } from "./v2-browser-gate.js";
47
47
  import { seedWebfetchDomains } from "../tm/webfetch.js";
48
48
  import { v2CapabilityRows } from "./v2-capabilities.js";
49
49
  import { applyV2SessionLayer, removalPlan, resolveSplitConfig } from "./v2-session.js";
50
- import { applyV2RetryGovernor, createRetryGovernor, resolveRetryConfig } from "./v2-retry.js";
50
+ import { applyV2RetryGovernor, createRetryGovernor, resolveRetryConfig, roleOfSession } from "./v2-retry.js";
51
51
  import { applyV2ContextPrune, resolvePruneConfig } from "./v2-prune.js";
52
52
  import { checkDefaultAgentRole, globalConfigDir } from "./v2-default-agent.js";
53
53
  import { createStorageLedgerStore } from "../tm/ledger.js";
@@ -779,7 +779,14 @@ export const v2Personality = {
779
779
  /* the trajectory is an extra, never a reason to fail the call */
780
780
  }
781
781
  };
782
- const retryGovernor = createRetryGovernor({ ...retryConfig, onEvent: retrySink });
782
+ const retryGovernor = createRetryGovernor({
783
+ ...retryConfig,
784
+ onEvent: retrySink,
785
+ // Sub-agent vs main agent (user rule): a registered host child is a sub-agent
786
+ // and its failures belong to its OWN chain; the lead's session is the main
787
+ // agent. The two get different guidance when a budget runs out.
788
+ roleOf: (sid) => roleOfSession(sid, tmRuntime.hostChildren(), (id) => scope.agentOf(id)),
789
+ });
783
790
  const retry = retryConfig.enabled
784
791
  ? await applyV2RetryGovernor(ctx, { scope, governor: retryGovernor, onEvent: retrySink })
785
792
  : { registrations: [], report: retryGovernor.report };
@@ -868,6 +875,8 @@ export const v2Personality = {
868
875
  // arms the next-request directive / the cooldown. A tap that throws never
869
876
  // closes the feed (the governor itself never throws).
870
877
  onError: (data) => retryGovernor.observeEvent(data),
878
+ onIdle: (sid) => retryGovernor.observeIdle(sid),
879
+ onRetryScheduled: (data) => retryGovernor.observeHostRetry(data),
871
880
  });
872
881
  if (!feed.report.active) {
873
882
  notes.push(`事件流没接通(${feed.report.stopped ?? "原因未知"}):tm_join 的结算检测只剩等待预算内的轮询,子代理结算了也要等到超时才报告`);
@@ -968,6 +977,11 @@ export const v2Personality = {
968
977
  retry_cooldown_denied: retry.report.cooldownDenied,
969
978
  retry_foreign_skipped: retry.report.foreignSkipped,
970
979
  retry_threw: retry.report.threw,
980
+ retry_child_exhausted: retry.report.childExhausted,
981
+ retry_main_exhausted: retry.report.mainExhausted,
982
+ retry_chains_reset: retry.report.chainsReset,
983
+ retry_lead_notices: retry.report.leadNotices,
984
+ retry_host_retries: retry.report.hostRetries,
971
985
  scope_ours: scope.report.ours,
972
986
  scope_foreign: scope.report.foreign,
973
987
  scope_unknown: scope.report.unknown,
@@ -1159,6 +1173,11 @@ export const v2Personality = {
1159
1173
  retry_cooldown_denied: retry.report.cooldownDenied,
1160
1174
  retry_foreign_skipped: retry.report.foreignSkipped,
1161
1175
  retry_threw: retry.report.threw,
1176
+ retry_child_exhausted: retry.report.childExhausted,
1177
+ retry_main_exhausted: retry.report.mainExhausted,
1178
+ retry_chains_reset: retry.report.chainsReset,
1179
+ retry_lead_notices: retry.report.leadNotices,
1180
+ retry_host_retries: retry.report.hostRetries,
1162
1181
  // Accumulates for the whole process, so it can only be written at
1163
1182
  // teardown: this is the number that answers "did the feed stay alive, and
1164
1183
  // did the host rename the event types under us after the last upgrade?"