@te-river/opencode-team-mode 1.7.9 → 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 +5 -3
- package/README.zh-CN.md +5 -3
- package/dist/host/v2-events.d.ts +2 -0
- package/dist/host/v2-events.d.ts.map +1 -1
- package/dist/host/v2-events.js +25 -1
- package/dist/host/v2-events.js.map +1 -1
- package/dist/host/v2-retry.d.ts +81 -21
- package/dist/host/v2-retry.d.ts.map +1 -1
- package/dist/host/v2-retry.js +276 -63
- package/dist/host/v2-retry.js.map +1 -1
- package/dist/host/v2-scope.d.ts +2 -0
- package/dist/host/v2-scope.d.ts.map +1 -1
- package/dist/host/v2-scope.js +4 -0
- package/dist/host/v2-scope.js.map +1 -1
- package/dist/host/v2.d.ts.map +1 -1
- package/dist/host/v2.js +21 -2
- package/dist/host/v2.js.map +1 -1
- package/dist/tm/config-layers.d.ts.map +1 -1
- package/dist/tm/config-layers.js +2 -0
- package/dist/tm/config-layers.js.map +1 -1
- package/dist/tm/config.d.ts +2 -0
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/index.d.ts +8 -0
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +1 -0
- package/dist/tm/index.js.map +1 -1
- package/docs/installation-v2.md +11 -6
- package/docs/v2-port-notes.md +10 -0
- package/package.json +1 -1
- package/scripts/gen-v2-config.mjs +1 -1
package/dist/host/v2-retry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 错峰重试 (#49 feature 3)
|
|
2
|
+
* 错峰重试 (#49 feature 3) — the honest half of "back off when the provider
|
|
3
3
|
* throttles us".
|
|
4
4
|
*
|
|
5
5
|
* THE HONEST BOUNDARY, stated first because everything below is shaped by it:
|
|
@@ -8,16 +8,18 @@
|
|
|
8
8
|
* does exactly three things, and says so:
|
|
9
9
|
*
|
|
10
10
|
* 1. RECOGNISE a provider throttle from the event feed (`session.error`), by
|
|
11
|
-
* matching explicit signatures only
|
|
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 (
|
|
14
|
-
*
|
|
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
|
|
18
20
|
* `breakAfter`. The structured `retryAfterMs` host 2.1.2 (#57146) puts on session
|
|
19
21
|
* errors is honored as the wait floor. Inject it into the
|
|
20
|
-
* NEXT request's system prompt as an actionable sentence ("
|
|
22
|
+
* NEXT request's system prompt as an actionable sentence ("等 N 秒再发"),
|
|
21
23
|
* not a vague "try later". The directive is consumed once, so a host that
|
|
22
24
|
* replays the hook in-process cannot duplicate it.
|
|
23
25
|
* 3. COOL DOWN: after `breakAfter` consecutive throttle errors the breaker
|
|
@@ -34,7 +36,7 @@ import { resolveConfig } from "../tm/config.js";
|
|
|
34
36
|
export const RETRY_MARKER = "## Team Retry";
|
|
35
37
|
/**
|
|
36
38
|
* Classify a provider error from its TEXT alone. Explicit signatures only:
|
|
37
|
-
* a text with no known signature is `unknown` and must never trip anything
|
|
39
|
+
* a text with no known signature is `unknown` and must never trip anything —
|
|
38
40
|
* names, and the way to avoid it is to require the signature.
|
|
39
41
|
*
|
|
40
42
|
* Order matters: quota before rate before transient, because a message can carry
|
|
@@ -62,7 +64,7 @@ export function classifyProviderError(text) {
|
|
|
62
64
|
}
|
|
63
65
|
return { kind: "unknown", retryAfterMs, hardQuota: false };
|
|
64
66
|
}
|
|
65
|
-
/** `Retry-After: 30` / `retry after 30 seconds`
|
|
67
|
+
/** `Retry-After: 30` / `retry after 30 seconds` → 30 000 ms. Absent → 0. */
|
|
66
68
|
function parseRetryAfter(s) {
|
|
67
69
|
const m = /retry[-_ ]?after["'\s:=]+(\d+)/i.exec(s);
|
|
68
70
|
if (!m)
|
|
@@ -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
|
|
75
|
-
* wait
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
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,10 +90,12 @@ 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
|
/**
|
|
90
|
-
* Resolve the knobs. An ILLEGAL value falls back to its default
|
|
98
|
+
* Resolve the knobs. An ILLEGAL value falls back to its default — it never
|
|
91
99
|
* silently disables the feature ("非法值回退默认,不静默关闸"). Only an explicit
|
|
92
100
|
* `retry: "off"` turns it off.
|
|
93
101
|
*/
|
|
@@ -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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
text: `${RETRY_MARKER}(配额耗尽,不是故障)\n检测到 provider 配额耗尽(hard quota):等待与重试都无法解决——请停止向该 provider 重发${hint}
|
|
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
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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,
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
//
|
|
186
|
-
const
|
|
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({
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
const
|
|
215
|
-
|
|
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
|
|
416
|
+
cooldownRemainingMs,
|
|
220
417
|
breakAfter: cfg.breakAfter,
|
|
418
|
+
maxRetries: cfg.maxRetries,
|
|
221
419
|
report,
|
|
222
420
|
reset() {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
cooldownUntil = 0;
|
|
226
|
-
pending = null;
|
|
421
|
+
chains.clear();
|
|
422
|
+
pending.clear();
|
|
227
423
|
},
|
|
228
424
|
};
|
|
229
425
|
}
|
|
@@ -301,12 +497,25 @@ 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:
|
|
307
|
-
* · `session.hook("context")`
|
|
516
|
+
* · `session.hook("context")` — inject the pending directive (exact seconds)
|
|
308
517
|
* into the NEXT request's system prompt, once, Team-scoped.
|
|
309
|
-
* · `permission.hook("evaluate")`
|
|
518
|
+
* · `permission.hook("evaluate")` — deny a `subagent` dispatch while the
|
|
310
519
|
* breaker's cooldown is active, Team-scoped, only ever stricter.
|
|
311
520
|
*
|
|
312
521
|
* Nothing here throws into a hook: a failure is counted and the call is allowed
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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,17 +564,18 @@ export async function applyV2RetryGovernor(ctx, input) {
|
|
|
352
564
|
report.foreignSkipped++;
|
|
353
565
|
return;
|
|
354
566
|
}
|
|
355
|
-
|
|
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));
|
|
365
|
-
const message =
|
|
577
|
+
const secs = Math.max(1, Math.round(governor.cooldownRemainingMs(sid) / 1000));
|
|
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"])
|
|
368
581
|
return;
|
|
@@ -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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"}
|
package/dist/host/v2-scope.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/host/v2-scope.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/host/v2.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|