@te-river/opencode-team-mode 1.7.6 → 1.7.8
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 +1010 -1009
- package/README.zh-CN.md +907 -906
- package/dist/host/v2-browser-gate.js +2 -2
- package/dist/host/v2-guard.d.ts +135 -0
- package/dist/host/v2-guard.d.ts.map +1 -1
- package/dist/host/v2-guard.js +227 -2
- package/dist/host/v2-guard.js.map +1 -1
- package/dist/host/v2-offload.js +6 -6
- package/dist/host/v2-retry.d.ts +9 -1
- package/dist/host/v2-retry.d.ts.map +1 -1
- package/dist/host/v2-retry.js +10 -2
- package/dist/host/v2-retry.js.map +1 -1
- package/dist/host/v2-subagent.d.ts +21 -0
- package/dist/host/v2-subagent.d.ts.map +1 -1
- package/dist/host/v2-subagent.js +55 -9
- package/dist/host/v2-subagent.js.map +1 -1
- package/dist/host/v2.d.ts.map +1 -1
- package/dist/host/v2.js +77 -1
- package/dist/host/v2.js.map +1 -1
- package/dist/prompts/specialists.js +286 -286
- package/dist/task-offload.js +1 -1
- package/dist/tm/config-layers.d.ts +5 -2
- package/dist/tm/config-layers.d.ts.map +1 -1
- package/dist/tm/config-layers.js +10 -6
- package/dist/tm/config-layers.js.map +1 -1
- package/dist/tm/config.d.ts +3 -0
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +7 -1
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/index.d.ts +5 -1
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +1 -1
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/ledger.js +5 -5
- package/dist/tm/memory.js +9 -9
- package/dist/tm/search.d.ts +3 -0
- package/dist/tm/search.d.ts.map +1 -1
- package/dist/tm/search.js +67 -15
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/stats.d.ts.map +1 -1
- package/dist/tm/stats.js +23 -0
- package/dist/tm/stats.js.map +1 -1
- package/dist/tm/tools.js +3 -3
- package/dist/tm/webfetch.d.ts +94 -5
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +285 -64
- package/dist/tm/webfetch.js.map +1 -1
- package/docs/installation-v2.md +2 -2
- package/docs/installation.md +505 -505
- package/docs/research/agent-data-exchange.md +117 -117
- package/docs/research/browser-pane.md +94 -94
- package/docs/research/host-http-api.md +132 -132
- package/docs/research/host-subagent-injection.md +187 -187
- package/docs/research/plugin-loader-contract.md +261 -261
- package/docs/research/v2-builtin-tools.md +447 -447
- package/docs/v2-port-notes.md +121 -78
- package/index.js +7 -7
- package/package.json +64 -64
- package/scripts/lib/config-surgery.cjs +239 -239
|
@@ -259,8 +259,8 @@ export function applyV2BrowserGate(ctx, opts) {
|
|
|
259
259
|
if (found) {
|
|
260
260
|
found.parts[found.index] = {
|
|
261
261
|
type: "text",
|
|
262
|
-
text: `${owed.message}
|
|
263
|
-
|
|
262
|
+
text: `${owed.message}
|
|
263
|
+
|
|
264
264
|
(这道门禁本来是在请求前生效的:${tool} 的调用被宿主放过去了,所以我把它的返回换成了这段拒绝语。这个页面的内容没有进入上下文、run store 或轨迹;请求本身已经发生,这一条我没有能力撤回。)`,
|
|
265
265
|
};
|
|
266
266
|
for (let i = found.index + 1; i < found.parts.length; i++) {
|
package/dist/host/v2-guard.d.ts
CHANGED
|
@@ -128,13 +128,148 @@ export declare function applyV2BackgroundForce(ctx: V2Context, opts?: {
|
|
|
128
128
|
registrations: V2Registration[];
|
|
129
129
|
report: BackgroundForceReport;
|
|
130
130
|
}>;
|
|
131
|
+
/**
|
|
132
|
+
* How long an in-flight admission may hold a slot without anything to show for
|
|
133
|
+
* it. A dispatch whose `execute.after` never fires (an interrupted turn, a host
|
|
134
|
+
* that dropped the call) would otherwise hold a slot forever, and a leaked slot
|
|
135
|
+
* is indistinguishable from a busy team: the cap would silently become stricter
|
|
136
|
+
* than the number the user configured. The TTL is the last release path, and a
|
|
137
|
+
* release that comes from it is counted on its own so a leak is a number rather
|
|
138
|
+
* than a mystery.
|
|
139
|
+
*/
|
|
140
|
+
export declare const SUBAGENT_PENDING_TTL_MS = 60000;
|
|
141
|
+
/** The ceiling when nothing usable was configured (see `normalizeCapLimit`).
|
|
142
|
+
* 8 is the registry default; a hook that forgot to pass the key must land on the
|
|
143
|
+
* documented ceiling, NOT on "unlimited" — a fail-open cap is not a cap. */
|
|
144
|
+
export declare const DEFAULT_SUBAGENT_CONCURRENCY = 8;
|
|
145
|
+
/**
|
|
146
|
+
* The staleness window for the `running` side (3× the in-flight TTL).
|
|
147
|
+
*
|
|
148
|
+
* The in-flight side always had a TTL; the RUNNING side did not, and it is fed from
|
|
149
|
+
* `tm_join`'s registry, whose rows only ever settle through an observation
|
|
150
|
+
* (`v2-subagent`'s completion scan, or a `session.idle` the v2 feed does not get).
|
|
151
|
+
* A row nothing ever observes — an `adopted` row, or a `<subagent … state>` that never
|
|
152
|
+
* enters the parent's history — therefore stayed 运行中 FOREVER: once `limit` such rows
|
|
153
|
+
* accumulated, every dispatch was refused and the refusal pointed at a snapshot that
|
|
154
|
+
* kept saying 运行中. That is a permanent lock, i.e. the cap turning into an outage.
|
|
155
|
+
* So a running row past this age is not counted (and is COUNTED as excluded, so the
|
|
156
|
+
* under-count is a number in `tm_stats` rather than a silent loosening).
|
|
157
|
+
*
|
|
158
|
+
* Known, accepted trade: a child that legitimately runs longer than this stops counting
|
|
159
|
+
* against the ceiling. The alternative is a lock no operator action can clear.
|
|
160
|
+
*/
|
|
161
|
+
export declare const SUBAGENT_RUNNING_STALE_MS: number;
|
|
162
|
+
/** The row shape the cap reads off the registry — only these three fields matter. */
|
|
163
|
+
export interface RunningChildLike {
|
|
164
|
+
state?: string;
|
|
165
|
+
/** Rebuilt from the host's session tree, not observed live. */
|
|
166
|
+
adopted?: boolean;
|
|
167
|
+
startedAt?: number;
|
|
168
|
+
}
|
|
169
|
+
export interface SubagentCapCounts {
|
|
170
|
+
/** `permission.evaluate` calls for `action:"subagent"` (Team only). */
|
|
171
|
+
seen: number;
|
|
172
|
+
/** admissions refused — this is the number that proves the cap is live. */
|
|
173
|
+
denied: number;
|
|
174
|
+
/** in-flight dispatch slots currently held, AFTER the TTL sweep. */
|
|
175
|
+
pending: number;
|
|
176
|
+
/** high-water mark of `pending` — a burst shows up here even if it settles. */
|
|
177
|
+
pendingMax: number;
|
|
178
|
+
/** slots reclaimed because nothing ever released them (a leak, counted). */
|
|
179
|
+
ttlReleased: number;
|
|
180
|
+
/** slots released by a real signal (a child registered, or a call that
|
|
181
|
+
* produced none). Kept apart from `ttlReleased` on purpose. */
|
|
182
|
+
released: number;
|
|
183
|
+
/** running rows that DID count toward the ceiling on the last read. */
|
|
184
|
+
runningCounted: number;
|
|
185
|
+
/** running rows excluded as stale (older than the window) on the last read. */
|
|
186
|
+
runningStale: number;
|
|
187
|
+
/** running rows excluded because the row was adopted, not observed (last read). */
|
|
188
|
+
runningAdopted: number;
|
|
189
|
+
/** the configured ceiling (0 = unlimited). */
|
|
190
|
+
limit: number;
|
|
191
|
+
}
|
|
192
|
+
export interface SubagentCapVerdict {
|
|
193
|
+
ok: boolean;
|
|
194
|
+
/** The admission id, so a release can name THIS call's slot instead of "the first
|
|
195
|
+
* slot of that caller" — a replay that released by caller freed somebody else's
|
|
196
|
+
* slot and quietly loosened the ceiling. 0 = no slot was taken. */
|
|
197
|
+
id: number;
|
|
198
|
+
running: number;
|
|
199
|
+
pending: number;
|
|
200
|
+
limit: number;
|
|
201
|
+
/** the refusal sentence, when `ok` is false */
|
|
202
|
+
message?: string;
|
|
203
|
+
}
|
|
204
|
+
export interface SubagentCapGate {
|
|
205
|
+
/** Ask for a slot. `limit <= 0` answers yes WITHOUT judging or holding one. */
|
|
206
|
+
admit(sessionID: string): SubagentCapVerdict;
|
|
207
|
+
/** Pair the next unpaired admission of `sessionID` with the call that is about to
|
|
208
|
+
* run, returning its id (0 when there is none). The id is what `release` takes. */
|
|
209
|
+
pair(sessionID: string): number;
|
|
210
|
+
/** Give ONE admission back, by id. An already-released id is a no-op, so a host
|
|
211
|
+
* that replays `execute.after` cannot release a second slot. */
|
|
212
|
+
release(id: number, why: "register" | "call-end"): boolean;
|
|
213
|
+
/** Give back the OLDEST slot of a caller — the fallback for a call that carried no
|
|
214
|
+
* admission id (a plugin reload replaying hooks). */
|
|
215
|
+
releaseOldest(sessionID: string, why: "register" | "call-end"): boolean;
|
|
216
|
+
counts(): SubagentCapCounts;
|
|
217
|
+
/** Live pending slots for one caller (tests + diagnostics). */
|
|
218
|
+
pendingOf(sessionID: string): number;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Turn whatever reached us into a ceiling.
|
|
222
|
+
*
|
|
223
|
+
* Out-of-range values FALL BACK to the default rather than clamping: `-1` used to be
|
|
224
|
+
* clamped to `0`, and `0` means UNLIMITED here — a typo silently switching the cap off
|
|
225
|
+
* is the opposite of what a typo should do.
|
|
226
|
+
*/
|
|
227
|
+
export declare function normalizeCapLimit(raw: unknown): number;
|
|
228
|
+
/**
|
|
229
|
+
* The sub-agent concurrency cap (restored as `subagentConcurrency`).
|
|
230
|
+
*
|
|
231
|
+
* Why it counts PENDING dispatches and not just running children: the cap used
|
|
232
|
+
* to be decided at `permission.evaluate`, while a child was only registered
|
|
233
|
+
* AFTER its call completed — so 24 dispatches in one message all evaluated
|
|
234
|
+
* against "0 running" and all passed, and only the NEXT dispatch was refused.
|
|
235
|
+
* A limit that cannot stop the burst it exists for is not a limit. Counting the
|
|
236
|
+
* admission itself closes that window: each passing evaluation holds a slot
|
|
237
|
+
* until (a) the child is registered, (b) the call ended without a child, or
|
|
238
|
+
* (c) the TTL reclaims it.
|
|
239
|
+
*
|
|
240
|
+
* `0` means unlimited and takes NO decision at all — refusing everything at
|
|
241
|
+
* limit 0 would be the opposite of what the user asked for.
|
|
242
|
+
*/
|
|
243
|
+
export declare function createSubagentCapGate(opts: {
|
|
244
|
+
limit: number;
|
|
245
|
+
/** Running children — read from tm_join's registry, never guessed. Rows are
|
|
246
|
+
* filtered here so the adopted/stale policy lives with the thing it protects. */
|
|
247
|
+
running?: () => ReadonlyArray<RunningChildLike>;
|
|
248
|
+
now?: () => number;
|
|
249
|
+
ttlMs?: number;
|
|
250
|
+
/** Running rows older than this are not counted (0 disables the age test;
|
|
251
|
+
* adopted rows are always excluded). */
|
|
252
|
+
staleMs?: number;
|
|
253
|
+
}): SubagentCapGate;
|
|
131
254
|
export declare function applyV2PermissionGuards(ctx: V2Context, opts: {
|
|
132
255
|
envProtectMode: EnvProtectMode;
|
|
133
256
|
scope?: TeamScope;
|
|
257
|
+
/** `subagentConcurrency` — the sub-agent concurrency ceiling. Omitted / invalid
|
|
258
|
+
* falls back to `DEFAULT_SUBAGENT_CONCURRENCY` (8); 0 = unlimited. */
|
|
259
|
+
subagentConcurrency?: number;
|
|
260
|
+
/** Running children of this process (tm_join's registry), as ROWS so the gate can
|
|
261
|
+
* leave out the ones nothing will ever settle. */
|
|
262
|
+
subagentRunning?: () => ReadonlyArray<RunningChildLike>;
|
|
263
|
+
/** Staleness window for the running side (default `SUBAGENT_RUNNING_STALE_MS`). */
|
|
264
|
+
subagentStaleMs?: number;
|
|
265
|
+
/** Test / wiring injection: share one gate between the guard and the
|
|
266
|
+
* release sites instead of minting a private one. */
|
|
267
|
+
subagentCap?: SubagentCapGate;
|
|
134
268
|
}): Promise<{
|
|
135
269
|
registrations: V2Registration[];
|
|
136
270
|
report: GuardReport;
|
|
137
271
|
installed: boolean;
|
|
272
|
+
cap: SubagentCapGate;
|
|
138
273
|
}>;
|
|
139
274
|
/**
|
|
140
275
|
* R6's file-path face, on the seam that sees the WHOLE input (#58).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-guard.d.ts","sourceRoot":"","sources":["../../src/host/v2-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAA;CACZ;AAqBD,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,IAAI,CAWlH;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,IAAI,CAUlG;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd;;yDAEqD;IACrD,YAAY,EAAE,MAAM,CAAA;IACpB;oFACgF;IAChF,cAAc,EAAE,MAAM,CAAA;IACtB;;4CAEwC;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB;;;;kEAI8D;IAC9D,oBAAoB,EAAE,MAAM,CAAA;IAC5B,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAA;IACxB,sDAAsD;IACtD,0BAA0B,EAAE,MAAM,CAAA;IAClC,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,SAAS,EACd,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAO,GAC/B,OAAO,CAAC;IAAE,aAAa,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAAC,CAoB7E;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,SAAS,EACd,IAAI,EAAE;IACJ,cAAc,EAAE,cAAc,CAAA;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"v2-guard.d.ts","sourceRoot":"","sources":["../../src/host/v2-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2-guard.js
CHANGED
|
@@ -184,11 +184,209 @@ export async function applyV2BackgroundForce(ctx, opts = {}) {
|
|
|
184
184
|
];
|
|
185
185
|
return { registrations, report };
|
|
186
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* How long an in-flight admission may hold a slot without anything to show for
|
|
189
|
+
* it. A dispatch whose `execute.after` never fires (an interrupted turn, a host
|
|
190
|
+
* that dropped the call) would otherwise hold a slot forever, and a leaked slot
|
|
191
|
+
* is indistinguishable from a busy team: the cap would silently become stricter
|
|
192
|
+
* than the number the user configured. The TTL is the last release path, and a
|
|
193
|
+
* release that comes from it is counted on its own so a leak is a number rather
|
|
194
|
+
* than a mystery.
|
|
195
|
+
*/
|
|
196
|
+
export const SUBAGENT_PENDING_TTL_MS = 60_000;
|
|
197
|
+
/** The ceiling when nothing usable was configured (see `normalizeCapLimit`).
|
|
198
|
+
* 8 is the registry default; a hook that forgot to pass the key must land on the
|
|
199
|
+
* documented ceiling, NOT on "unlimited" — a fail-open cap is not a cap. */
|
|
200
|
+
export const DEFAULT_SUBAGENT_CONCURRENCY = 8;
|
|
201
|
+
/**
|
|
202
|
+
* The staleness window for the `running` side (3× the in-flight TTL).
|
|
203
|
+
*
|
|
204
|
+
* The in-flight side always had a TTL; the RUNNING side did not, and it is fed from
|
|
205
|
+
* `tm_join`'s registry, whose rows only ever settle through an observation
|
|
206
|
+
* (`v2-subagent`'s completion scan, or a `session.idle` the v2 feed does not get).
|
|
207
|
+
* A row nothing ever observes — an `adopted` row, or a `<subagent … state>` that never
|
|
208
|
+
* enters the parent's history — therefore stayed 运行中 FOREVER: once `limit` such rows
|
|
209
|
+
* accumulated, every dispatch was refused and the refusal pointed at a snapshot that
|
|
210
|
+
* kept saying 运行中. That is a permanent lock, i.e. the cap turning into an outage.
|
|
211
|
+
* So a running row past this age is not counted (and is COUNTED as excluded, so the
|
|
212
|
+
* under-count is a number in `tm_stats` rather than a silent loosening).
|
|
213
|
+
*
|
|
214
|
+
* Known, accepted trade: a child that legitimately runs longer than this stops counting
|
|
215
|
+
* against the ceiling. The alternative is a lock no operator action can clear.
|
|
216
|
+
*/
|
|
217
|
+
export const SUBAGENT_RUNNING_STALE_MS = 3 * SUBAGENT_PENDING_TTL_MS;
|
|
218
|
+
/**
|
|
219
|
+
* Turn whatever reached us into a ceiling.
|
|
220
|
+
*
|
|
221
|
+
* Out-of-range values FALL BACK to the default rather than clamping: `-1` used to be
|
|
222
|
+
* clamped to `0`, and `0` means UNLIMITED here — a typo silently switching the cap off
|
|
223
|
+
* is the opposite of what a typo should do.
|
|
224
|
+
*/
|
|
225
|
+
export function normalizeCapLimit(raw) {
|
|
226
|
+
if (typeof raw !== "number" || !Number.isFinite(raw))
|
|
227
|
+
return DEFAULT_SUBAGENT_CONCURRENCY;
|
|
228
|
+
const v = Math.trunc(raw);
|
|
229
|
+
return v < 0 ? DEFAULT_SUBAGENT_CONCURRENCY : v;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* The sub-agent concurrency cap (restored as `subagentConcurrency`).
|
|
233
|
+
*
|
|
234
|
+
* Why it counts PENDING dispatches and not just running children: the cap used
|
|
235
|
+
* to be decided at `permission.evaluate`, while a child was only registered
|
|
236
|
+
* AFTER its call completed — so 24 dispatches in one message all evaluated
|
|
237
|
+
* against "0 running" and all passed, and only the NEXT dispatch was refused.
|
|
238
|
+
* A limit that cannot stop the burst it exists for is not a limit. Counting the
|
|
239
|
+
* admission itself closes that window: each passing evaluation holds a slot
|
|
240
|
+
* until (a) the child is registered, (b) the call ended without a child, or
|
|
241
|
+
* (c) the TTL reclaims it.
|
|
242
|
+
*
|
|
243
|
+
* `0` means unlimited and takes NO decision at all — refusing everything at
|
|
244
|
+
* limit 0 would be the opposite of what the user asked for.
|
|
245
|
+
*/
|
|
246
|
+
export function createSubagentCapGate(opts) {
|
|
247
|
+
const limit = normalizeCapLimit(opts.limit);
|
|
248
|
+
const now = opts.now ?? (() => Date.now());
|
|
249
|
+
const ttlMs = opts.ttlMs ?? SUBAGENT_PENDING_TTL_MS;
|
|
250
|
+
const staleOpt = opts.staleMs;
|
|
251
|
+
const staleMs = typeof staleOpt === "number" && Number.isFinite(staleOpt) ? Math.max(0, Math.trunc(staleOpt)) : SUBAGENT_RUNNING_STALE_MS;
|
|
252
|
+
const pending = [];
|
|
253
|
+
let nextId = 0;
|
|
254
|
+
const report = {
|
|
255
|
+
seen: 0,
|
|
256
|
+
denied: 0,
|
|
257
|
+
pending: 0,
|
|
258
|
+
pendingMax: 0,
|
|
259
|
+
ttlReleased: 0,
|
|
260
|
+
released: 0,
|
|
261
|
+
runningCounted: 0,
|
|
262
|
+
runningStale: 0,
|
|
263
|
+
runningAdopted: 0,
|
|
264
|
+
limit,
|
|
265
|
+
};
|
|
266
|
+
const sweep = (at) => {
|
|
267
|
+
// Oldest first: a slot older than the TTL is one nothing will ever release.
|
|
268
|
+
while (pending.length && at - pending[0].at >= ttlMs) {
|
|
269
|
+
pending.shift();
|
|
270
|
+
report.ttlReleased++;
|
|
271
|
+
}
|
|
272
|
+
report.pending = pending.length;
|
|
273
|
+
};
|
|
274
|
+
/** Count the running rows worth counting, and remember what was left out. */
|
|
275
|
+
const runningNow = (at) => {
|
|
276
|
+
let rows = [];
|
|
277
|
+
try {
|
|
278
|
+
rows = opts.running?.() ?? [];
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
// A registry read that throws must not turn the cap into "0 running"
|
|
282
|
+
// forever, but it also may not break the permission hook: count the
|
|
283
|
+
// pending side only and let the pending slots do the limiting.
|
|
284
|
+
rows = [];
|
|
285
|
+
}
|
|
286
|
+
let counted = 0;
|
|
287
|
+
let stale = 0;
|
|
288
|
+
let adopted = 0;
|
|
289
|
+
for (const r of rows) {
|
|
290
|
+
if (!r || (r.state ?? "running") !== "running")
|
|
291
|
+
continue;
|
|
292
|
+
if (r.adopted) {
|
|
293
|
+
adopted++;
|
|
294
|
+
continue;
|
|
295
|
+
}
|
|
296
|
+
const started = typeof r.startedAt === "number" && Number.isFinite(r.startedAt) ? r.startedAt : 0;
|
|
297
|
+
if (staleMs > 0 && started > 0 && at - started >= staleMs) {
|
|
298
|
+
stale++;
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
counted++;
|
|
302
|
+
}
|
|
303
|
+
report.runningCounted = counted;
|
|
304
|
+
report.runningStale = stale;
|
|
305
|
+
report.runningAdopted = adopted;
|
|
306
|
+
return counted;
|
|
307
|
+
};
|
|
308
|
+
return {
|
|
309
|
+
admit(sessionID) {
|
|
310
|
+
const at = now();
|
|
311
|
+
sweep(at);
|
|
312
|
+
report.seen++;
|
|
313
|
+
const running = runningNow(at);
|
|
314
|
+
if (limit <= 0)
|
|
315
|
+
return { ok: true, id: 0, running, pending: pending.length, limit };
|
|
316
|
+
if (running + pending.length >= limit) {
|
|
317
|
+
report.denied++;
|
|
318
|
+
return {
|
|
319
|
+
ok: false,
|
|
320
|
+
id: 0,
|
|
321
|
+
running,
|
|
322
|
+
pending: pending.length,
|
|
323
|
+
limit,
|
|
324
|
+
message: `子代理并发上限 ${limit}:当前 running ${running} + 在飞 ${pending.length} = ${running + pending.length},` +
|
|
325
|
+
`这次派发被拒。三条出路:① 先用 tm_join 确认是不是卡住的运行中行(有行永远观测不到结算,别干等);` +
|
|
326
|
+
`② tm_join {cancel:true} 停掉不需要的;③ 调大 subagentConcurrency 或设 0 = 不限(team-mode.jsonc)。`,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
const id = ++nextId;
|
|
330
|
+
pending.push({ id, sessionID: String(sessionID ?? ""), at, paired: false });
|
|
331
|
+
report.pending = pending.length;
|
|
332
|
+
if (pending.length > report.pendingMax)
|
|
333
|
+
report.pendingMax = pending.length;
|
|
334
|
+
return { ok: true, id, running, pending: pending.length, limit };
|
|
335
|
+
},
|
|
336
|
+
pair(sessionID) {
|
|
337
|
+
sweep(now());
|
|
338
|
+
const key = String(sessionID ?? "");
|
|
339
|
+
const p = pending.find((x) => x.sessionID === key && !x.paired);
|
|
340
|
+
if (!p)
|
|
341
|
+
return 0;
|
|
342
|
+
p.paired = true;
|
|
343
|
+
return p.id;
|
|
344
|
+
},
|
|
345
|
+
release(id, _why) {
|
|
346
|
+
sweep(now());
|
|
347
|
+
const idx = pending.findIndex((p) => p.id === id);
|
|
348
|
+
if (idx < 0)
|
|
349
|
+
return false;
|
|
350
|
+
pending.splice(idx, 1);
|
|
351
|
+
report.released++;
|
|
352
|
+
report.pending = pending.length;
|
|
353
|
+
return true;
|
|
354
|
+
},
|
|
355
|
+
releaseOldest(sessionID, _why) {
|
|
356
|
+
sweep(now());
|
|
357
|
+
const key = String(sessionID ?? "");
|
|
358
|
+
const idx = pending.findIndex((p) => p.sessionID === key);
|
|
359
|
+
if (idx < 0)
|
|
360
|
+
return false;
|
|
361
|
+
pending.splice(idx, 1);
|
|
362
|
+
report.released++;
|
|
363
|
+
report.pending = pending.length;
|
|
364
|
+
return true;
|
|
365
|
+
},
|
|
366
|
+
counts() {
|
|
367
|
+
const at = now();
|
|
368
|
+
sweep(at);
|
|
369
|
+
runningNow(at);
|
|
370
|
+
return { ...report, pending: pending.length };
|
|
371
|
+
},
|
|
372
|
+
pendingOf(sessionID) {
|
|
373
|
+
sweep(now());
|
|
374
|
+
const key = String(sessionID ?? "");
|
|
375
|
+
return pending.filter((p) => p.sessionID === key).length;
|
|
376
|
+
},
|
|
377
|
+
};
|
|
378
|
+
}
|
|
187
379
|
export async function applyV2PermissionGuards(ctx, opts) {
|
|
188
380
|
const report = { seen: 0, byAction: {}, strictened: 0, denied: 0, shellMatched: 0, foreignSkipped: 0, envFileDenied: 0, envFileDeniedByInput: 0, envFileInputSeen: 0, envFileInputForeignSkipped: 0, envFileInputThrew: 0 };
|
|
381
|
+
const cap = opts.subagentCap ??
|
|
382
|
+
createSubagentCapGate({
|
|
383
|
+
limit: normalizeCapLimit(opts.subagentConcurrency),
|
|
384
|
+
running: opts.subagentRunning,
|
|
385
|
+
staleMs: opts.subagentStaleMs,
|
|
386
|
+
});
|
|
189
387
|
const permission = ctx.permission;
|
|
190
388
|
if (!permission || typeof permission.hook !== "function") {
|
|
191
|
-
return { registrations: [], report, installed: false };
|
|
389
|
+
return { registrations: [], report, installed: false, cap };
|
|
192
390
|
}
|
|
193
391
|
const registrations = [
|
|
194
392
|
await permission.hook("evaluate", (event) => {
|
|
@@ -204,6 +402,33 @@ export async function applyV2PermissionGuards(ctx, opts) {
|
|
|
204
402
|
report.foreignSkipped++;
|
|
205
403
|
return;
|
|
206
404
|
}
|
|
405
|
+
// The sub-agent concurrency cap, BEFORE any classifier work: a burst that
|
|
406
|
+
// exceeds the ceiling is refused here, and the refusal is the only branch
|
|
407
|
+
// that ever denies a dispatch. `limit 0` takes no decision at all.
|
|
408
|
+
if (action === "subagent") {
|
|
409
|
+
// A call somebody already DENIED can never reach `execute.after`, so admitting
|
|
410
|
+
// it would hold a slot that only the 60s TTL ever reclaims — and a cooldown
|
|
411
|
+
// that denies every attempt would bleed one slot per attempt (`v2-retry` denies
|
|
412
|
+
// at this very layer). So a pre-denied dispatch takes no slot at all.
|
|
413
|
+
//
|
|
414
|
+
// `ask` still takes one, deliberately: an approved call really runs, and
|
|
415
|
+
// releasing early would let a burst of pending questions each clear the ceiling
|
|
416
|
+
// before any of them executes. A question the user declines leaks one slot to
|
|
417
|
+
// the TTL — bounded, and it errs on the side of a shorter burst, not a longer one.
|
|
418
|
+
if (event.effect === "deny")
|
|
419
|
+
return;
|
|
420
|
+
const caller = typeof event?.sessionID === "string" ? event.sessionID : "";
|
|
421
|
+
const verdict = cap.admit(caller);
|
|
422
|
+
if (!verdict.ok) {
|
|
423
|
+
// NOT `report.denied`: that counter is the egress/R6 gate's refusals, and
|
|
424
|
+
// folding a concurrency refusal into it made `guard_denied` in tm_stats read
|
|
425
|
+
// as "the red line fired". The cap keeps its own (`cap.counts().denied`).
|
|
426
|
+
event.effect = "deny";
|
|
427
|
+
if (verdict.message)
|
|
428
|
+
event.message = verdict.message;
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
207
432
|
const decision = action === "webfetch" || action === "websearch"
|
|
208
433
|
? webGuard(resources)
|
|
209
434
|
: action === "shell"
|
|
@@ -228,7 +453,7 @@ export async function applyV2PermissionGuards(ctx, opts) {
|
|
|
228
453
|
report.strictened++;
|
|
229
454
|
}),
|
|
230
455
|
];
|
|
231
|
-
return { registrations, report, installed: true };
|
|
456
|
+
return { registrations, report, installed: true, cap };
|
|
232
457
|
}
|
|
233
458
|
/**
|
|
234
459
|
* The path-class fields each native file tool can carry in its `execute.before`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-guard.js","sourceRoot":"","sources":["../../src/host/v2-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"v2-guard.js","sourceRoot":"","sources":["../../src/host/v2-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2-offload.js
CHANGED
|
@@ -127,8 +127,8 @@ export function snapshotTokenBudget(config) {
|
|
|
127
127
|
export function renderAddressingCap(tool, capped, governed) {
|
|
128
128
|
const when = new Date(governed.expire_at).toISOString().replace("T", " ").slice(0, 16);
|
|
129
129
|
return (capped +
|
|
130
|
-
`
|
|
131
|
-
|
|
130
|
+
`
|
|
131
|
+
|
|
132
132
|
(原生 ${tool} 的快照按 JIT 治理截到预算内,没有整体卸载:截断部分里的 ref 不在你眼前,` +
|
|
133
133
|
`需要时用 tm_fetch { ref:"${governed.ref}", access_token:"${governed.access_token}", mode:"lines" } 分段取回再点,` +
|
|
134
134
|
`不要为了看一眼把全文读回来。原文 ${governed.tokens} token · 过期 ${governed.expire_at} · ${when})`);
|
|
@@ -144,8 +144,8 @@ export function reportTokenBudget(config) {
|
|
|
144
144
|
export function renderReportCap(tool, capped, governed, tablesDropped) {
|
|
145
145
|
const when = new Date(governed.expire_at).toISOString().replace("T", " ").slice(0, 16);
|
|
146
146
|
return (capped +
|
|
147
|
-
`
|
|
148
|
-
|
|
147
|
+
`
|
|
148
|
+
|
|
149
149
|
(原生 ${tool} 的返回是报告形的:表格已整份留在上面,被删掉的只有表格之间的说明文字——` +
|
|
150
150
|
`全文 ${governed.tokens} token,别为了看一句散文把整份读回来。` +
|
|
151
151
|
(tablesDropped > 0 ? `注意:预算之外还有 ${tablesDropped} 行表格内容没进来,需要时用 ` : "需要更多行时用 ") +
|
|
@@ -236,8 +236,8 @@ export function applyV2NativeOffload(ctx, deps) {
|
|
|
236
236
|
const capped = `${cut.text}${cut.fellBack
|
|
237
237
|
? `\n\n(这个结果是一整行没有换行的 JSON,按行保留寻址行的做法装不下任何内容,所以退成了从头截断 —— 内容不完整,别把它当成页面是空的;要精确字段就用 tm_fetch mode:"lines" 或改拍一次范围更小的快照。)`
|
|
238
238
|
: cut.addressesDropped > 0
|
|
239
|
-
? `
|
|
240
|
-
|
|
239
|
+
? `
|
|
240
|
+
|
|
241
241
|
(预算 ${budget} token 之内只装下了部分寻址行:另有 ${cut.addressesDropped} 行带 ref 的内容被截掉了,要点对它们先用 tm_fetch mode:"lines" 取回,或缩小范围重新拍一次快照——不要凭猜去点。)`
|
|
242
242
|
: ""}`;
|
|
243
243
|
const rendered = renderAddressingCap(tool, capped, g);
|
package/dist/host/v2-retry.d.ts
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
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 does
|
|
12
12
|
* not carry a known signature classifies as `unknown` and changes nothing.
|
|
13
|
-
* 2. COMPUTE an exact wait (
|
|
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) and inject it into the
|
|
14
15
|
* NEXT request's system prompt as an actionable sentence ("�?N 秒再�?),
|
|
15
16
|
* not a vague "try later". The directive is consumed once, so a host that
|
|
16
17
|
* replays the hook in-process cannot duplicate it.
|
|
@@ -51,6 +52,13 @@ export interface RetryConfig {
|
|
|
51
52
|
breakAfter: number;
|
|
52
53
|
cooldownMs: number;
|
|
53
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* The default ladder is FIXED and deterministic: consecutive errors #1/#2/#3
|
|
57
|
+
* wait exactly 5s / 10s / 20s (base 5000 doubling, jitter 0). Jitter stays a
|
|
58
|
+
* knob — a user who would rather parallel sessions not re-fire in lockstep can
|
|
59
|
+
* set `retryJitter` back to a fraction — but the shipped default promises the
|
|
60
|
+
* 5/10/20 ladder, and a promise with jitter in it is not that promise.
|
|
61
|
+
*/
|
|
54
62
|
export declare const RETRY_DEFAULTS: RetryConfig;
|
|
55
63
|
/**
|
|
56
64
|
* Resolve the knobs. An ILLEGAL value falls back to its default �?it never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-retry.d.ts","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"v2-retry.d.ts","sourceRoot":"","sources":["../../src/host/v2-retry.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2-retry.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
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 does
|
|
12
12
|
* not carry a known signature classifies as `unknown` and changes nothing.
|
|
13
|
-
* 2. COMPUTE an exact wait (
|
|
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) and inject it into the
|
|
14
15
|
* NEXT request's system prompt as an actionable sentence ("�?N 秒再�?),
|
|
15
16
|
* not a vague "try later". The directive is consumed once, so a host that
|
|
16
17
|
* replays the hook in-process cannot duplicate it.
|
|
@@ -60,11 +61,18 @@ function parseRetryAfter(s) {
|
|
|
60
61
|
const n = Number(m[1]);
|
|
61
62
|
return Number.isFinite(n) && n >= 0 ? n * 1000 : 0;
|
|
62
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* The default ladder is FIXED and deterministic: consecutive errors #1/#2/#3
|
|
66
|
+
* wait exactly 5s / 10s / 20s (base 5000 doubling, jitter 0). Jitter stays a
|
|
67
|
+
* knob — a user who would rather parallel sessions not re-fire in lockstep can
|
|
68
|
+
* set `retryJitter` back to a fraction — but the shipped default promises the
|
|
69
|
+
* 5/10/20 ladder, and a promise with jitter in it is not that promise.
|
|
70
|
+
*/
|
|
63
71
|
export const RETRY_DEFAULTS = {
|
|
64
72
|
enabled: true,
|
|
65
73
|
baseMs: 5000,
|
|
66
74
|
maxMs: 60000,
|
|
67
|
-
jitter: 0
|
|
75
|
+
jitter: 0,
|
|
68
76
|
breakAfter: 5,
|
|
69
77
|
cooldownMs: 60000,
|
|
70
78
|
};
|