dsh-thinking-guard 0.1.17 → 0.1.20
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 +40 -130
- package/cordis.patch.yml +5 -0
- package/lib/client.d.ts +8 -2
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +4627 -6732
- package/lib/guard-core.js +74 -15
- package/lib/guard-core.js.map +1 -1
- package/lib/guard-loop-core.js +158 -24
- package/lib/guard-loop-core.js.map +1 -1
- package/lib/guard.js +228 -85
- package/lib/guard.js.map +1 -1
- package/lib/host-face.js +1 -0
- package/lib/host-face.js.map +1 -1
- package/lib/index.js +11 -1
- package/lib/index.js.map +1 -1
- package/lib/invoke.js +16 -10
- package/lib/invoke.js.map +1 -1
- package/lib/policy-state.js +29 -1
- package/lib/policy-state.js.map +1 -1
- package/lib/policy.js +178 -10
- package/lib/policy.js.map +1 -1
- package/lib/registry.js +12 -2
- package/lib/registry.js.map +1 -1
- package/lib/server/call-index-remote.js +110 -0
- package/lib/server/call-index-remote.js.map +1 -0
- package/lib/server/remote.js +13 -0
- package/lib/server/remote.js.map +1 -1
- package/lib/types/guard-core.d.ts +91 -6
- package/lib/types/guard-core.d.ts.map +1 -1
- package/lib/types/guard-loop-core.d.ts +64 -3
- package/lib/types/guard-loop-core.d.ts.map +1 -1
- package/lib/types/guard.d.ts +7 -1
- package/lib/types/guard.d.ts.map +1 -1
- package/lib/types/host-face.d.ts.map +1 -1
- package/lib/types/index.d.ts +5 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/invoke.d.ts.map +1 -1
- package/lib/types/policy-state.d.ts +6 -0
- package/lib/types/policy-state.d.ts.map +1 -1
- package/lib/types/policy.d.ts +34 -3
- package/lib/types/policy.d.ts.map +1 -1
- package/lib/types/registry.d.ts.map +1 -1
- package/lib/types/server/call-index-remote.d.ts +17 -0
- package/lib/types/server/call-index-remote.d.ts.map +1 -0
- package/lib/types/server/remote.d.ts +9 -0
- package/lib/types/server/remote.d.ts.map +1 -1
- package/lib/types/usage/call-index-core.d.ts +152 -0
- package/lib/types/usage/call-index-core.d.ts.map +1 -0
- package/lib/types/usage/call-index-host-face.d.ts +44 -0
- package/lib/types/usage/call-index-host-face.d.ts.map +1 -0
- package/lib/types/usage/call-index-host.d.ts +7 -0
- package/lib/types/usage/call-index-host.d.ts.map +1 -0
- package/lib/types/usage/call-index-query.d.ts +97 -0
- package/lib/types/usage/call-index-query.d.ts.map +1 -0
- package/lib/types/usage/call-index-runtime.d.ts +46 -0
- package/lib/types/usage/call-index-runtime.d.ts.map +1 -0
- package/lib/types/usage/call-index-scope.d.ts +59 -0
- package/lib/types/usage/call-index-scope.d.ts.map +1 -0
- package/lib/types/usage/call-index-wire.d.ts +286 -0
- package/lib/types/usage/call-index-wire.d.ts.map +1 -0
- package/lib/types/usage/session-index.d.ts +149 -0
- package/lib/types/usage/session-index.d.ts.map +1 -0
- package/lib/usage/call-index-core.js +761 -0
- package/lib/usage/call-index-core.js.map +1 -0
- package/lib/usage/call-index-host-face.js +77 -0
- package/lib/usage/call-index-host-face.js.map +1 -0
- package/lib/usage/call-index-host.js +13 -0
- package/lib/usage/call-index-host.js.map +1 -0
- package/lib/usage/call-index-query.js +669 -0
- package/lib/usage/call-index-query.js.map +1 -0
- package/lib/usage/call-index-runtime.js +376 -0
- package/lib/usage/call-index-runtime.js.map +1 -0
- package/lib/usage/call-index-scope.js +79 -0
- package/lib/usage/call-index-scope.js.map +1 -0
- package/lib/usage/call-index-wire.js +490 -0
- package/lib/usage/call-index-wire.js.map +1 -0
- package/lib/usage/session-index.js +600 -0
- package/lib/usage/session-index.js.map +1 -0
- package/package.json +5 -5
package/lib/guard.js
CHANGED
|
@@ -2,7 +2,7 @@ import z from '@deepseek-ai/schemastery';
|
|
|
2
2
|
import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
3
3
|
import { TOOL_ABORTED, TOOL_ABORTED_BEFORE_DISPATCH } from '@deepseek-ai/dsh-tools';
|
|
4
4
|
import { DEFAULT_REPEAT_THRESHOLDS, LOOP_HISTORY_LIMIT, createGuardLoopState, guardResultFingerprint, guardToolSignature, observeGuardLoop, } from "./guard-loop-core.js";
|
|
5
|
-
import { DEFAULT_GUARD_PROFILES, DEFAULT_HOST_INTEGRATION, EfficiencyGuard, } from "./guard-core.js";
|
|
5
|
+
import { DEFAULT_GUARD_PROFILES, DEFAULT_HOST_INTEGRATION, EfficiencyGuard, processGuardStats, } from "./guard-core.js";
|
|
6
6
|
export const name = 'thinking-guard';
|
|
7
7
|
export const inject = ['tools', 'capabilityPolicy'];
|
|
8
8
|
const DEFAULT_POLLING_TOOLS = [
|
|
@@ -26,6 +26,7 @@ export const Config = z.object({
|
|
|
26
26
|
duplicateDetection: z.boolean().default(true),
|
|
27
27
|
alternatingCycleDetection: z.boolean().default(true),
|
|
28
28
|
noProgressProtection: z.boolean().default(true),
|
|
29
|
+
repeatThresholds: z.array(z.number()).default([...DEFAULT_REPEAT_THRESHOLDS]),
|
|
29
30
|
duplicateWarnAfter: z.number().default(2),
|
|
30
31
|
duplicateHardBlock: z.boolean().default(false),
|
|
31
32
|
excludedTools: z.array(z.string()).default([]),
|
|
@@ -53,6 +54,15 @@ const LOOP_WARNING_LIMIT = 32;
|
|
|
53
54
|
function isControlPlaneTool(policy, name) {
|
|
54
55
|
return RESERVED_TRANSPORT_TOOLS.has(name) || policy.metaTools().includes(name);
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* True when this tool can never become a local-block candidate, judged from its
|
|
59
|
+
* name alone. Such a call needs no result fingerprint at all, which is what lets
|
|
60
|
+
* the result stage skip canonicalizing and hashing a payload it would discard.
|
|
61
|
+
*/
|
|
62
|
+
function isNonBlockableTool(policy, name, excludedTools, pollingTools, warnOnlyTools) {
|
|
63
|
+
return isControlPlaneTool(policy, name)
|
|
64
|
+
|| excludedTools.has(name) || pollingTools.has(name) || warnOnlyTools.has(name);
|
|
65
|
+
}
|
|
56
66
|
function rememberDeniedCall(state, callId) {
|
|
57
67
|
if (state.deniedCallIds.has(callId))
|
|
58
68
|
return;
|
|
@@ -78,7 +88,7 @@ function failOpenLoopDetection(state) {
|
|
|
78
88
|
state.loopDetectionDisabled = true;
|
|
79
89
|
state.dispatchRecords.clear();
|
|
80
90
|
state.pendingLoopObservations.clear();
|
|
81
|
-
state.
|
|
91
|
+
state.pendingBlockCandidates.clear();
|
|
82
92
|
state.loopState = createGuardLoopState(state.turn);
|
|
83
93
|
state.nextLoopSequence = state.nextDispatchSequence;
|
|
84
94
|
}
|
|
@@ -93,15 +103,36 @@ function rememberLoopWarning(state, key) {
|
|
|
93
103
|
state.loopWarnings.add(key);
|
|
94
104
|
return true;
|
|
95
105
|
}
|
|
96
|
-
function rememberBlockCandidate(state, signature) {
|
|
97
|
-
|
|
106
|
+
function rememberBlockCandidate(state, signature, source) {
|
|
107
|
+
const sources = state.pendingBlockCandidates.get(signature);
|
|
108
|
+
if (sources !== undefined) {
|
|
109
|
+
sources.add(source);
|
|
98
110
|
return;
|
|
99
|
-
|
|
100
|
-
|
|
111
|
+
}
|
|
112
|
+
if (state.pendingBlockCandidates.size >= LOOP_HISTORY_LIMIT) {
|
|
113
|
+
const oldest = state.pendingBlockCandidates.keys().next().value;
|
|
101
114
|
if (oldest !== undefined)
|
|
102
|
-
state.
|
|
115
|
+
state.pendingBlockCandidates.delete(oldest);
|
|
103
116
|
}
|
|
104
|
-
state.
|
|
117
|
+
state.pendingBlockCandidates.set(signature, new Set([source]));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Consume a pending candidate, but only if the detector that produced it is still
|
|
121
|
+
* enabled. A candidate whose source switch was flipped off stops counting instead
|
|
122
|
+
* of being silently ignored, and the other source's candidate survives untouched.
|
|
123
|
+
*/
|
|
124
|
+
function takeBlockCandidate(state, signature, allowed) {
|
|
125
|
+
const sources = state.pendingBlockCandidates.get(signature);
|
|
126
|
+
if (sources === undefined)
|
|
127
|
+
return false;
|
|
128
|
+
for (const source of allowed) {
|
|
129
|
+
if (sources.delete(source)) {
|
|
130
|
+
if (sources.size === 0)
|
|
131
|
+
state.pendingBlockCandidates.delete(signature);
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
105
136
|
}
|
|
106
137
|
function rememberBlockedSignature(state, signature) {
|
|
107
138
|
if (state.blockedLoopSignatures.has(signature))
|
|
@@ -139,12 +170,19 @@ function handleLoopObservation(state, agent, observation, options) {
|
|
|
139
170
|
}, options);
|
|
140
171
|
state.loopState = loopObserved.state;
|
|
141
172
|
const decision = loopObserved.decision;
|
|
173
|
+
// "Did the Guard look at this call at all?" — an excluded/polling call is
|
|
174
|
+
// skipped by the detector and must not inflate the observation count, or the
|
|
175
|
+
// settings page would report activity the detector never had.
|
|
176
|
+
if (!decision.ignored)
|
|
177
|
+
processGuardStats.observe(observation.outcome);
|
|
142
178
|
const signature = decision.signature;
|
|
143
179
|
// No-progress protection is the evidence gate for the LOCAL denial. With it off
|
|
144
180
|
// the call is still reminded about (below), but never becomes blockable, so the
|
|
145
181
|
// switch in the settings page changes behaviour instead of being cosmetic.
|
|
146
|
-
|
|
147
|
-
|
|
182
|
+
const blockSource = decision.blockSource;
|
|
183
|
+
if (signature !== undefined && decision.blockCandidate && blockSource !== undefined
|
|
184
|
+
&& options.noProgressProtection !== false) {
|
|
185
|
+
rememberBlockCandidate(state, signature, blockSource);
|
|
148
186
|
}
|
|
149
187
|
if (signature === undefined || decision.warning === 'none')
|
|
150
188
|
return;
|
|
@@ -157,13 +195,18 @@ function handleLoopObservation(state, agent, observation, options) {
|
|
|
157
195
|
: '检测到交替工具调用循环且结果/错误指纹未变化;后续相同循环调用可能被局部拒绝,当前 Turn 会继续。'
|
|
158
196
|
: `检测到工具调用连续重复(第 ${decision.repeatThreshold ?? decision.repeatCount} 次);请检查已有结果,避免无意义重复。`;
|
|
159
197
|
agent.inject(shortMessage(message));
|
|
198
|
+
// Counted after the inject returns: a reminder the host refused to deliver is
|
|
199
|
+
// not a reminder the user was ever told about.
|
|
200
|
+
processGuardStats.remind(decision.warning === 'alternating-cycle' ? 'cycle' : 'repeat');
|
|
160
201
|
}
|
|
161
|
-
function createLoopOptions(ctx, excludedTools, pollingTools, warnOnlyTools, alternatingCycleEnabled) {
|
|
202
|
+
function createLoopOptions(ctx, excludedTools, pollingTools, warnOnlyTools, repeatThresholds, repeatDetectionEnabled, alternatingCycleEnabled) {
|
|
162
203
|
return {
|
|
163
|
-
|
|
204
|
+
// Configured, not constant: the settings page owns this list now.
|
|
205
|
+
repeatThresholds,
|
|
164
206
|
excludedTools: new Set([...excludedTools, ...ctx.capabilityPolicy.metaTools(), ...RESERVED_TRANSPORT_TOOLS]),
|
|
165
207
|
pollingTools,
|
|
166
208
|
warnOnlyTools,
|
|
209
|
+
repeatDetection: repeatDetectionEnabled,
|
|
167
210
|
alternatingCycleEnabled,
|
|
168
211
|
};
|
|
169
212
|
}
|
|
@@ -175,6 +218,7 @@ function toGuardConfig(config) {
|
|
|
175
218
|
duplicateDetection: config.duplicateDetection,
|
|
176
219
|
alternatingCycleDetection: config.alternatingCycleDetection,
|
|
177
220
|
noProgressProtection: config.noProgressProtection,
|
|
221
|
+
repeatThresholds: config.repeatThresholds,
|
|
178
222
|
duplicateWarnAfter: config.duplicateWarnAfter,
|
|
179
223
|
duplicateHardBlock: config.duplicateHardBlock,
|
|
180
224
|
profiles: config.profiles === undefined ? undefined : { ...DEFAULT_GUARD_PROFILES, ...config.profiles },
|
|
@@ -196,6 +240,9 @@ function readSwitches(ctx, config) {
|
|
|
196
240
|
duplicateDetection: live?.duplicateDetection ?? config.duplicateDetection ?? true,
|
|
197
241
|
alternatingCycleDetection: live?.alternatingCycleDetection ?? config.alternatingCycleDetection ?? true,
|
|
198
242
|
noProgressProtection: live?.noProgressProtection ?? config.noProgressProtection ?? true,
|
|
243
|
+
// The persisted list is validated where it is written; an unreadable one here
|
|
244
|
+
// must not disable detection, so the shipped default is the fallback.
|
|
245
|
+
repeatThresholds: live?.repeatThresholds ?? config.repeatThresholds ?? DEFAULT_REPEAT_THRESHOLDS,
|
|
199
246
|
};
|
|
200
247
|
}
|
|
201
248
|
/**
|
|
@@ -216,29 +263,71 @@ export function apply(ctx, config = {}) {
|
|
|
216
263
|
const pollingTools = new Set([...DEFAULT_POLLING_TOOLS, ...(config.pollingTools ?? [])]);
|
|
217
264
|
const warnOnlyTools = new Set([...DEFAULT_WARN_ONLY_TOOLS, ...(config.warnOnlyTools ?? [])]);
|
|
218
265
|
const switches = () => readSwitches(ctx, config);
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
266
|
+
/**
|
|
267
|
+
* True while at least one of the two detectors is on. The observation entries
|
|
268
|
+
* key off this instead of `duplicateDetection` alone, so turning exact-repeat
|
|
269
|
+
* detection off no longer starves the alternating-cycle detector of history.
|
|
270
|
+
*/
|
|
271
|
+
const loopDetectionActive = () => {
|
|
225
272
|
const sw = switches();
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
if (
|
|
235
|
-
|
|
236
|
-
|
|
273
|
+
return sw.duplicateDetection || sw.alternatingCycleDetection;
|
|
274
|
+
};
|
|
275
|
+
/** Candidate sources still permitted by the live switches. */
|
|
276
|
+
const allowedBlockSources = () => {
|
|
277
|
+
const sw = switches();
|
|
278
|
+
const sources = new Set();
|
|
279
|
+
if (sw.duplicateDetection)
|
|
280
|
+
sources.add('repeat');
|
|
281
|
+
if (sw.alternatingCycleDetection)
|
|
282
|
+
sources.add('cycle');
|
|
283
|
+
return sources;
|
|
284
|
+
};
|
|
285
|
+
const loopOptions = () => {
|
|
286
|
+
const sw = switches();
|
|
287
|
+
return {
|
|
288
|
+
...createLoopOptions(ctx, excludedTools, pollingTools, warnOnlyTools, sw.repeatThresholds, sw.duplicateDetection, sw.alternatingCycleDetection),
|
|
289
|
+
noProgressProtection: sw.noProgressProtection,
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
const toolGuard = ctx.tools.guard((execution) => {
|
|
293
|
+
try {
|
|
294
|
+
const agent = execution.agent;
|
|
295
|
+
const sw = switches();
|
|
296
|
+
// Candidates are gated per source instead of by `duplicateDetection`, which
|
|
297
|
+
// used to make every alternating-cycle candidate unblockable.
|
|
298
|
+
const allowed = allowedBlockSources();
|
|
299
|
+
// `noProgressProtection` is the gate for the LOCAL DENIAL itself, so it must
|
|
300
|
+
// be re-read here and not only where a candidate is recorded. A turn can
|
|
301
|
+
// record candidates while the switch is on and then have it turned off;
|
|
302
|
+
// without this check those already-recorded candidates would still fire and
|
|
303
|
+
// the switch would not mean what the settings page promises.
|
|
304
|
+
if (!sw.enabled || sw.noProgressProtection === false || allowed.size === 0 || agent === undefined
|
|
305
|
+
|| isControlPlaneTool(ctx.capabilityPolicy, execution.name)
|
|
306
|
+
|| excludedTools.has(execution.name) || pollingTools.has(execution.name) || warnOnlyTools.has(execution.name))
|
|
307
|
+
return undefined;
|
|
308
|
+
const state = guard.states.get(agent);
|
|
309
|
+
if (state === undefined || state.loopDetectionDisabled)
|
|
310
|
+
return undefined;
|
|
311
|
+
// A signature beyond the fingerprint budget is not a stable identity, so it
|
|
312
|
+
// can never justify a denial: fail open instead of comparing it.
|
|
313
|
+
const signature = guardToolSignature(execution.name, execution.arguments);
|
|
314
|
+
if (signature === undefined)
|
|
315
|
+
return undefined;
|
|
316
|
+
if (state.localLoopDenials >= MAX_LOCAL_LOOP_DENIALS
|
|
317
|
+
|| !takeBlockCandidate(state, signature, allowed)
|
|
318
|
+
|| state.blockedLoopSignatures.has(signature))
|
|
319
|
+
return undefined;
|
|
320
|
+
rememberBlockedSignature(state, signature);
|
|
321
|
+
rememberDeniedCall(state, String(execution.callId));
|
|
322
|
+
state.localLoopDenials += 1;
|
|
323
|
+
// The one counter that answers "did it actually refuse anything?".
|
|
324
|
+
processGuardStats.deny();
|
|
325
|
+
return '检测到相同工具调用及相同结果/错误证据;已局部拒绝本次重复调用,当前 Turn 继续运行。';
|
|
326
|
+
}
|
|
327
|
+
catch {
|
|
328
|
+
// Fail open: a Guard fault must never block a real tool call.
|
|
237
329
|
return undefined;
|
|
238
|
-
|
|
239
|
-
rememberDeniedCall(state, String(execution.callId));
|
|
240
|
-
state.localLoopDenials += 1;
|
|
241
|
-
return '检测到相同工具调用及相同结果/错误证据;已局部拒绝本次重复调用,当前 Turn 继续运行。';
|
|
330
|
+
}
|
|
242
331
|
});
|
|
243
332
|
disposers.push(toolGuard);
|
|
244
333
|
disposers.push(ctx.on('agent/pre-step', async (payload, next) => {
|
|
@@ -254,64 +343,118 @@ export function apply(ctx, config = {}) {
|
|
|
254
343
|
guard.resetLoopState(agent);
|
|
255
344
|
}));
|
|
256
345
|
disposers.push(ctx.on('tools/execute', async (execution, next) => {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
346
|
+
try {
|
|
347
|
+
const agent = execution.agent;
|
|
348
|
+
// Both detectors share one history, so the dispatch record must be built while
|
|
349
|
+
// either switch is on; gating on `duplicateDetection` alone starved the cycle
|
|
350
|
+
// detector whenever exact-repeat detection was turned off.
|
|
351
|
+
if (!switches().enabled || !loopDetectionActive() || agent === undefined)
|
|
352
|
+
return next();
|
|
353
|
+
const state = guard.states.get(agent);
|
|
354
|
+
if (state === undefined || state.loopDetectionDisabled)
|
|
355
|
+
return next();
|
|
356
|
+
const callId = String(execution.callId);
|
|
357
|
+
if (state.dispatchRecords.has(callId)
|
|
358
|
+
|| state.dispatchRecords.size + state.pendingLoopObservations.size >= MAX_PENDING_DISPATCHES) {
|
|
359
|
+
failOpenLoopDetection(state);
|
|
360
|
+
return next();
|
|
361
|
+
}
|
|
362
|
+
const dispatchSequence = state.nextDispatchSequence;
|
|
363
|
+
// A call that can never become a block candidate gets no result fingerprint:
|
|
364
|
+
// the decision is name-based, so it is made here and the result stage skips
|
|
365
|
+
// canonicalizing and hashing a payload it would only throw away.
|
|
366
|
+
const fingerprintNeeded = !isNonBlockableTool(ctx.capabilityPolicy, execution.name, excludedTools, pollingTools, warnOnlyTools);
|
|
367
|
+
// A signature beyond the fingerprint budget is not a stable identity, so the
|
|
368
|
+
// call is not observed at all. The sequence number is consumed only when a
|
|
369
|
+
// record is actually stored: a gap would stall the ordered drain below and
|
|
370
|
+
// silently disable detection for the rest of the turn.
|
|
371
|
+
const signature = guardToolSignature(execution.name, execution.arguments);
|
|
372
|
+
if (signature === undefined)
|
|
373
|
+
return next();
|
|
374
|
+
state.nextDispatchSequence += 1;
|
|
375
|
+
const epoch = state.loopEpoch;
|
|
376
|
+
state.dispatchRecords.set(callId, {
|
|
377
|
+
sequence: dispatchSequence, epoch, name: execution.name, signature, fingerprintNeeded,
|
|
378
|
+
});
|
|
379
|
+
guard.observeTool(agent, state.turn, { controlPlane: isControlPlaneTool(ctx.capabilityPolicy, execution.name) });
|
|
262
380
|
return next();
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
failOpenLoopDetection(state);
|
|
381
|
+
}
|
|
382
|
+
catch {
|
|
383
|
+
// Fail open: loop detection is advisory, the tool call is not.
|
|
267
384
|
return next();
|
|
268
385
|
}
|
|
269
|
-
const dispatchSequence = state.nextDispatchSequence++;
|
|
270
|
-
const epoch = state.loopEpoch;
|
|
271
|
-
const signature = guardToolSignature(execution.name, execution.arguments);
|
|
272
|
-
state.dispatchRecords.set(callId, { sequence: dispatchSequence, epoch, name: execution.name, signature });
|
|
273
|
-
guard.observeTool(agent, state.turn, { controlPlane: isControlPlaneTool(ctx.capabilityPolicy, execution.name) });
|
|
274
|
-
return next();
|
|
275
386
|
}));
|
|
276
387
|
disposers.push(ctx.on('tools/result', (execution, result) => {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
388
|
+
let activeState;
|
|
389
|
+
try {
|
|
390
|
+
const agent = execution.agent;
|
|
391
|
+
const state = agent === undefined ? undefined : guard.states.get(agent);
|
|
392
|
+
if (!switches().enabled || agent === undefined || state === undefined)
|
|
393
|
+
return;
|
|
394
|
+
activeState = state;
|
|
395
|
+
const callId = String(execution.callId);
|
|
396
|
+
if (state.deniedCallIds.delete(callId))
|
|
397
|
+
return;
|
|
398
|
+
const dispatch = state.dispatchRecords.get(callId);
|
|
399
|
+
if (dispatch === undefined)
|
|
400
|
+
return;
|
|
401
|
+
state.dispatchRecords.delete(callId);
|
|
402
|
+
if (dispatch.epoch !== state.loopEpoch || !loopDetectionActive() || state.loopDetectionDisabled)
|
|
403
|
+
return;
|
|
404
|
+
// No fingerprint for excluded / polling / warn-only / control-plane calls, and
|
|
405
|
+
// none when the payload exceeds the fingerprint budget. The result itself is
|
|
406
|
+
// returned to the caller untouched either way; a missing fingerprint only
|
|
407
|
+
// means "no progress cannot be proven", so it never becomes evidence.
|
|
408
|
+
let resultFingerprint;
|
|
409
|
+
let outcome = 'error';
|
|
410
|
+
if (dispatch.fingerprintNeeded) {
|
|
411
|
+
try {
|
|
412
|
+
outcome = outcomeFor(result);
|
|
413
|
+
resultFingerprint = guardResultFingerprint(outcome, result.isError
|
|
414
|
+
? { code: result.error.info?.code ?? null, message: result.error.message, content: result.content }
|
|
415
|
+
: { value: result.value, content: result.content });
|
|
416
|
+
}
|
|
417
|
+
catch {
|
|
418
|
+
// A malformed host result yields no fingerprint, but the observation is
|
|
419
|
+
// still recorded below: dropping it would leave a hole in the ordered
|
|
420
|
+
// sequence and stall every later observation for the rest of the turn.
|
|
421
|
+
resultFingerprint = undefined;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
outcome = outcomeFor(result);
|
|
426
|
+
}
|
|
427
|
+
const pending = {
|
|
428
|
+
name: dispatch.name,
|
|
429
|
+
callId,
|
|
430
|
+
dispatchSequence: dispatch.sequence,
|
|
431
|
+
epoch: dispatch.epoch,
|
|
432
|
+
signature: dispatch.signature,
|
|
433
|
+
outcome,
|
|
434
|
+
...(resultFingerprint !== undefined ? { resultFingerprint } : {}),
|
|
435
|
+
};
|
|
436
|
+
if (state.pendingLoopObservations.size >= MAX_PENDING_DISPATCHES) {
|
|
437
|
+
failOpenLoopDetection(state);
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
state.pendingLoopObservations.set(dispatch.sequence, pending);
|
|
441
|
+
while (state.pendingLoopObservations.has(state.nextLoopSequence)) {
|
|
442
|
+
const observation = state.pendingLoopObservations.get(state.nextLoopSequence);
|
|
443
|
+
state.pendingLoopObservations.delete(state.nextLoopSequence);
|
|
444
|
+
state.nextLoopSequence += 1;
|
|
445
|
+
if (observation === null || observation === undefined || observation.epoch !== state.loopEpoch)
|
|
446
|
+
continue;
|
|
447
|
+
handleLoopObservation(state, agent, observation, loopOptions());
|
|
448
|
+
}
|
|
306
449
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
450
|
+
catch {
|
|
451
|
+
// Fail open: a Guard fault must never disturb the real tool result. The
|
|
452
|
+
// ordered drain advances its cursor before handling each observation, so a
|
|
453
|
+
// throw cannot leave a permanent gap; resetting detection for the rest of the
|
|
454
|
+
// turn is a conservative extra: after an unknown fault the Guard stops
|
|
455
|
+
// producing evidence instead of continuing from possibly stale history.
|
|
456
|
+
if (activeState !== undefined)
|
|
457
|
+
failOpenLoopDetection(activeState);
|
|
315
458
|
}
|
|
316
459
|
}));
|
|
317
460
|
disposers.push(ctx.on('agent/disposed', ({ agent }) => guard.states.clear(agent)));
|
package/lib/guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
package/lib/host-face.js
CHANGED
package/lib/host-face.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-face.js","sourceRoot":"","sources":["../src/host-face.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"host-face.js","sourceRoot":"","sources":["../src/host-face.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -30,6 +30,15 @@ import { UsageGateway } from "./server/usage-remote.js";
|
|
|
30
30
|
import { usageHostFace } from "./usage/usage-host-face.js";
|
|
31
31
|
import * as AgentEfficiencyGuard from "./guard.js";
|
|
32
32
|
import { installUsageRuntime } from "./usage/usage-runtime.js";
|
|
33
|
+
import z from '@deepseek-ai/schemastery';
|
|
34
|
+
import * as CallIndexHost from "./usage/call-index-host.js";
|
|
35
|
+
import { CallIndexConfig } from "./usage/call-index-runtime.js";
|
|
36
|
+
import { callIndexHostFace } from "./usage/call-index-host-face.js";
|
|
37
|
+
export const Config = z.object({
|
|
38
|
+
guard: AgentEfficiencyGuard.Config,
|
|
39
|
+
usageRuntime: z.boolean().default(true),
|
|
40
|
+
callIndex: CallIndexConfig,
|
|
41
|
+
});
|
|
33
42
|
/**
|
|
34
43
|
* Install the usage runtime once per root context and expose the handle as
|
|
35
44
|
* `ctx.usageRuntime`.
|
|
@@ -64,11 +73,12 @@ export function apply(ctx, config = {}) {
|
|
|
64
73
|
ctx.plugin(AgentEfficiencyGuard, config.guard ?? {});
|
|
65
74
|
if (config.usageRuntime !== false)
|
|
66
75
|
installUsageRoot(ctx);
|
|
76
|
+
ctx.plugin(CallIndexHost, config.callIndex ?? {});
|
|
67
77
|
ctx.inject(['typert'], (registry) => {
|
|
68
78
|
// One contribution, not two: Typert keys contributions by `package`, and a
|
|
69
79
|
// second `register()` for an already-mounted package withdraws the first
|
|
70
80
|
// one's strict definitions (see mergeHostFaces in ./host-face.ts).
|
|
71
|
-
registerCapabilityPolicyHostFace(registry, [usageHostFace()]);
|
|
81
|
+
registerCapabilityPolicyHostFace(registry, [usageHostFace(), callIndexHostFace()]);
|
|
72
82
|
});
|
|
73
83
|
}
|
|
74
84
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,oBAAoB,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,oBAAoB,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAA+B,MAAM,+BAA+B,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAenE,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,oBAAoB,CAAC,MAAM;IAClC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS;QAAE,OAAM;IACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACxC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AACtC,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,IAAI,GAAG,gBAAgB,CAAA;AAEpC;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAiB,EAAE;IACrD,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;IACnC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACxB,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IACpD,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK;QAAE,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACxD,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IACjD,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;QAClC,2EAA2E;QAC3E,yEAAyE;QACzE,mEAAmE;QACnE,gCAAgC,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/lib/invoke.js
CHANGED
|
@@ -47,18 +47,24 @@ export function apply(ctx, config = {}) {
|
|
|
47
47
|
// The source override keeps On-demand targets reachable. The policy hides them
|
|
48
48
|
// with an agent-scoped `tools.restrict({ deny })` (see `src/policy.ts`), which
|
|
49
49
|
// removes them from `view(agent)` — and the default lookup,
|
|
50
|
-
// `tools.executable(name, scope, toolSet)`, reads exactly that view. Without
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
//
|
|
50
|
+
// `tools.executable(name, scope, toolSet)`, reads exactly that view. Without a
|
|
51
|
+
// fallback every On-demand forward would fail as UNKNOWN_TOOL.
|
|
52
|
+
//
|
|
53
|
+
// The fallback is therefore narrow on purpose: it applies only to a name the
|
|
54
|
+
// policy can PROVE is invisible *solely* because of its own On-demand mask
|
|
55
|
+
// (`capabilityPolicy.isHiddenOnlyByPolicy`). Classification alone is not
|
|
56
|
+
// evidence — it says how this plugin treats a name, not whether a third party
|
|
57
|
+
// also denies it — so a `tools.restrict({ deny })`, an `allow` filter, or any
|
|
58
|
+
// other restriction installed by someone else still denies the call, exactly
|
|
59
|
+
// like it denies a direct one. Execution still carries `agent`, `signal`, and
|
|
60
|
+
// `parent`, so scope, pre-execute policy, guards, and event attribution are
|
|
61
|
+
// unchanged.
|
|
56
62
|
const resolveForwardDefinition = (name, scope, toolSet) => {
|
|
57
63
|
const visible = ctx.tools.executable(name, scope, toolSet);
|
|
58
64
|
if (visible !== undefined)
|
|
59
65
|
return visible;
|
|
60
66
|
const policy = ctx.get('capabilityPolicy');
|
|
61
|
-
if (policy?.
|
|
67
|
+
if (policy?.isHiddenOnlyByPolicy(scope, name) !== true)
|
|
62
68
|
return undefined;
|
|
63
69
|
// Registered definitions only: the step's admission set belongs to the
|
|
64
70
|
// caller's view, which this policy just masked.
|
|
@@ -177,9 +183,9 @@ export function apply(ctx, config = {}) {
|
|
|
177
183
|
// schema.
|
|
178
184
|
if (capability.kind === 'tool') {
|
|
179
185
|
// Resolve the target the same way the forward does: the caller's view
|
|
180
|
-
// first, then — only for a name
|
|
181
|
-
// registered definition
|
|
182
|
-
//
|
|
186
|
+
// first, then — only for a name the policy proved it alone masked — the
|
|
187
|
+
// registered definition. Any other restriction still reads as absent,
|
|
188
|
+
// so this never lifts a third party's decision.
|
|
183
189
|
const definition = resolveForwardDefinition(capability.name, exec.agent, exec.toolSet);
|
|
184
190
|
if (definition === undefined) {
|
|
185
191
|
throw new Error(`meta_invoke: tool "${capability.name}" is not available`);
|