@mcp-index/sdk 0.6.1 → 0.7.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/CHANGELOG.md +24 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/scan.d.ts +43 -0
- package/dist/src/scan.d.ts.map +1 -1
- package/dist/src/scan.js +256 -0
- package/dist/src/scan.js.map +1 -1
- package/dist/src/wrap.d.ts +8 -0
- package/dist/src/wrap.d.ts.map +1 -1
- package/dist/src/wrap.js +102 -4
- package/dist/src/wrap.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,29 @@ additive feature, patch = fix). Backward-compatible additions only in 0.2.0.
|
|
|
8
8
|
Staged for the next publish — `npm publish` packs the current `README.md`, so these
|
|
9
9
|
ride out automatically with the next version bump (no ad-hoc republish needed).
|
|
10
10
|
|
|
11
|
+
## 0.7.0 — 2026-07-12
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- **Result-content scanning (`scanResults`).** New opt-in gate that scans tool
|
|
15
|
+
RESULT content — text blocks and `structuredContent` — for prompt-injection,
|
|
16
|
+
exfiltration, and credential-path markers, giving TS parity with the Python
|
|
17
|
+
client. **Default OFF** (zero behavior change): a hostile result passes through
|
|
18
|
+
untouched unless enabled. When ON, a tainted result is WITHHELD under `GUARD`/
|
|
19
|
+
`STRICT`, PROCEEDS under `MONITOR`, and an optional `onHold` callback receives
|
|
20
|
+
the withhold verdict instead of throwing. Cross-engine line-terminator
|
|
21
|
+
normalization (CR/CRLF -> LF) so a `SYSTEM:` injection can't hide behind a bare
|
|
22
|
+
carriage return.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- **Scan hardening (three review rounds).** Location paths are sanitized (no raw
|
|
26
|
+
key characters leak into a finding); marker counting is by Unicode code point
|
|
27
|
+
(astral-plane / emoji parity with Python); Unicode-whitespace parity (e.g.
|
|
28
|
+
NBSP-prefixed `SYSTEM:` is caught); cyclic or malformed `structuredContent`
|
|
29
|
+
never throws and is flagged `truncated` under depth/count bounds; a marker past
|
|
30
|
+
the scan cap is missed-but-flagged rather than silently dropped; a benign
|
|
31
|
+
`resource_link` URI is no longer a false positive; the scan budget is shared
|
|
32
|
+
across `content[]` + structured so a large result can't evade the cap.
|
|
33
|
+
|
|
11
34
|
## 0.6.1 — 2026-06-11
|
|
12
35
|
|
|
13
36
|
### Added
|
|
@@ -55,7 +78,7 @@ ride out automatically with the next version bump (no ad-hoc republish needed).
|
|
|
55
78
|
advisory `actionClassification` block locally from the live tool definition — action
|
|
56
79
|
type, resource, side-effect, reversibility, egress, and a static autonomy ceiling —
|
|
57
80
|
instead of leaving it `null` until a hosted verdict supplied one. So the blast-radius
|
|
58
|
-
grade is on by default in the SDK, at parity with the Python `mcpindex-
|
|
81
|
+
grade is on by default in the SDK, at parity with the Python `mcpindex-gate`
|
|
59
82
|
client. Default-on; opt out with `MCPINDEX_ACTION_CLASSIFICATION_ENABLED=0`. Pure,
|
|
60
83
|
deterministic, total, and a byte-for-byte port of the Python `cse.action_class.classify`
|
|
61
84
|
(12-case cross-language golden parity test). **Advisory only** — it rides alongside the
|
package/dist/src/index.d.ts
CHANGED
|
@@ -20,7 +20,8 @@ export { canonicalBytes, toolHash } from "./canonical.js";
|
|
|
20
20
|
export { assess, BlastRadius, DomainClass, blastRank } from "./risk.js";
|
|
21
21
|
export type { RiskAssessment } from "./risk.js";
|
|
22
22
|
export { classify as classifyAction, classifyToolDef, actionClassificationEnabled, ActionType, SideEffectClass, Reversibility, Egress, ScopeHint, PatternShape, AutonomyCeiling, NoteClass, Severity, EvidenceRefType, } from "./actionClass.js";
|
|
23
|
-
export { scanSchemaHasMarker } from "./scan.js";
|
|
23
|
+
export { scanSchemaHasMarker, scanResult } from "./scan.js";
|
|
24
|
+
export type { ResultTaint, ResultScan } from "./scan.js";
|
|
24
25
|
export { mdText } from "./render.js";
|
|
25
26
|
export { VerdictScope, HonestFraming, GuardrailError, requireProvenance, surfaceProvenance, fromVerdict, isComplete, renderProvenance, assertNoGreenWords, } from "./provenance.js";
|
|
26
27
|
export type { Provenance, Subject, WhatFired, EvidenceField } from "./provenance.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EACV,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1F,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,eAAe,EACf,2BAA2B,EAC3B,UAAU,EACV,eAAe,EACf,aAAa,EACb,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EACV,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1F,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,eAAe,EACf,2BAA2B,EAC3B,UAAU,EACV,eAAe,EACf,aAAa,EACb,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export { ChangeKind, classifyChange, isSafetyRelevant, MAX_DEPTH } from "./schem
|
|
|
14
14
|
export { canonicalBytes, toolHash } from "./canonical.js";
|
|
15
15
|
export { assess, BlastRadius, DomainClass, blastRank } from "./risk.js";
|
|
16
16
|
export { classify as classifyAction, classifyToolDef, actionClassificationEnabled, ActionType, SideEffectClass, Reversibility, Egress, ScopeHint, PatternShape, AutonomyCeiling, NoteClass, Severity, EvidenceRefType, } from "./actionClass.js";
|
|
17
|
-
export { scanSchemaHasMarker } from "./scan.js";
|
|
17
|
+
export { scanSchemaHasMarker, scanResult } from "./scan.js";
|
|
18
18
|
export { mdText } from "./render.js";
|
|
19
19
|
export { VerdictScope, HonestFraming, GuardrailError, requireProvenance, surfaceProvenance, fromVerdict, isComplete, renderProvenance, assertNoGreenWords, } from "./provenance.js";
|
|
20
20
|
export { ErrorStore, Operation, CLIENT_VERSION, ERROR_RECORD_KEYS } from "./errors.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQzE,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG1F,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,eAAe,EACf,2BAA2B,EAC3B,UAAU,EACV,eAAe,EACf,aAAa,EACb,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQzE,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG1F,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,eAAe,EACf,2BAA2B,EAC3B,UAAU,EACV,eAAe,EACf,aAAa,EACb,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvF,+FAA+F;AAC/F,uFAAuF;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,6FAA6F;AAC7F,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
package/dist/src/scan.d.ts
CHANGED
|
@@ -12,4 +12,47 @@ export declare const STRING_KEYS: ReadonlySet<string>;
|
|
|
12
12
|
* exfil instruction, or injection directive). Port of
|
|
13
13
|
* `scan_schema(...) is not None`. */
|
|
14
14
|
export declare function scanSchemaHasMarker(inputSchema: Record<string, unknown>): boolean;
|
|
15
|
+
/** The marker-regex SOURCES (Python `.pattern` form), exported ONLY so the
|
|
16
|
+
* cross-language parity test can assert byte-identity against the live Python
|
|
17
|
+
* patterns. Not part of the runtime scan path. */
|
|
18
|
+
export declare const RESULT_MARKER_SOURCES: {
|
|
19
|
+
readonly credential: string;
|
|
20
|
+
readonly exfil: string;
|
|
21
|
+
readonly injection: string;
|
|
22
|
+
};
|
|
23
|
+
/** One hostile marker found in a tool's returned content. `severity` mirrors the
|
|
24
|
+
* schema scanner: 'critical' = credential/exfil intent; 'high' = injection
|
|
25
|
+
* directive. Mirrors Python `ResultTaint`: it carries NO raw payload — the
|
|
26
|
+
* offending substring is DELIBERATELY dropped (it may hold a secret; a loaded
|
|
27
|
+
* gun), so `location` (a secret-free json-path) + `reason` (a fixed marker-class
|
|
28
|
+
* string) are all that surface. The truncation signal lives on `ResultScan`, not
|
|
29
|
+
* here. */
|
|
30
|
+
export interface ResultTaint {
|
|
31
|
+
readonly severity: "critical" | "high";
|
|
32
|
+
/** json-path into the result (e.g. "content[0]" / "structuredContent.x"). */
|
|
33
|
+
readonly location: string;
|
|
34
|
+
/** Short, honest marker description (marker CLASS only — no raw payload). */
|
|
35
|
+
readonly reason: string;
|
|
36
|
+
}
|
|
37
|
+
/** The outcome of scanning a result. `taint` is the worst marker found (or null
|
|
38
|
+
* when clean); `truncated` is true when any scanned string exceeded
|
|
39
|
+
* MAX_SCAN_CHARS so its tail was NOT scanned — a clean scan with `truncated:true`
|
|
40
|
+
* means "clean as far as read", which the wrapper fail-closes under STRICT (and
|
|
41
|
+
* never implies "fully clean"). `scanResult` ALWAYS returns a `ResultScan` (never
|
|
42
|
+
* a bare null) so the truncation signal survives the clean path. Mirrors Python
|
|
43
|
+
* `ResultScan`. */
|
|
44
|
+
export interface ResultScan {
|
|
45
|
+
readonly taint: ResultTaint | null;
|
|
46
|
+
readonly truncated: boolean;
|
|
47
|
+
}
|
|
48
|
+
/** Scan a tool's returned `content` (array of blocks) + `structuredContent` for a
|
|
49
|
+
* hostile marker. Returns a `ResultScan` (the worst taint — CRITICAL
|
|
50
|
+
* short-circuits — or null, plus a `truncated` flag). Deterministic, offline, no
|
|
51
|
+
* model. Tolerant of malformed / attacker-shaped input by design (the result is
|
|
52
|
+
* attacker-derived): anything it cannot interpret is simply not scanned, never
|
|
53
|
+
* thrown on, and bounded against cyclic/deep payloads — the CALLER additionally
|
|
54
|
+
* runs this inside a fail-closed guard. `truncated` is set when a string exceeded
|
|
55
|
+
* the per-string cap OR the value-walk hit the depth/count bound. Port of Python
|
|
56
|
+
* `scan_result`. */
|
|
57
|
+
export declare function scanResult(content: unknown, structuredContent?: unknown): ResultScan;
|
|
15
58
|
//# sourceMappingURL=scan.d.ts.map
|
package/dist/src/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuCH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAS1C,CAAC;AA+BH;;qCAEqC;AACrC,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CASjF"}
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuCH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAS1C,CAAC;AA+BH;;qCAEqC;AACrC,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CASjF;AA0BD;;kDAEkD;AAClD,eAAO,MAAM,qBAAqB,EAAE;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAK5B,CAAC;AAyCF;;;;;;WAMW;AACX,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;mBAMmB;AACnB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAgKD;;;;;;;;oBAQoB;AACpB,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,UAAU,CAkBpF"}
|
package/dist/src/scan.js
CHANGED
|
@@ -93,4 +93,260 @@ export function scanSchemaHasMarker(inputSchema) {
|
|
|
93
93
|
}
|
|
94
94
|
return false;
|
|
95
95
|
}
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Runtime tool-RESULT content scanner — the TS twin of Python
|
|
98
|
+
// `trust/result_scan.py`. It reuses the EXACT SAME three marker regexes the
|
|
99
|
+
// schema scanner above uses (single source of truth within TS) and applies them
|
|
100
|
+
// to the content a tool RETURNED at call time: every TEXT block in `content[]`
|
|
101
|
+
// (shaped `{type:"text", text:"..."}`) PLUS every string anywhere in
|
|
102
|
+
// `structuredContent`. CRITICAL (credential/exfil) outranks HIGH (injection).
|
|
103
|
+
//
|
|
104
|
+
// HONEST FRAMING (same bar as the schema scan): a TRIPWIRE, not a calibrated
|
|
105
|
+
// detector — catches KNOWN hostile markers at high precision, evadable by a
|
|
106
|
+
// novel encoding; no recall bound. A taint is NOT a safety/truth verdict — it
|
|
107
|
+
// says "this returned text matches a hostile marker", nothing about whether the
|
|
108
|
+
// answer is true. The caller (the wrapper) WITHHOLDS the tainted result so it
|
|
109
|
+
// cannot hijack the agent's NEXT action — the call already executed (post-flight).
|
|
110
|
+
//
|
|
111
|
+
// MARKER PARITY: the regex SOURCES are byte-identical to Python's
|
|
112
|
+
// `trust.schema_scan._{CREDENTIAL_PATH,EXFIL_INSTRUCTION,INJECTION}`. The
|
|
113
|
+
// cross-language parity test reads the live Python patterns and asserts the
|
|
114
|
+
// exported `RESULT_MARKER_SOURCES` match, so the result scanner and the schema
|
|
115
|
+
// scanner can never silently diverge across languages. (Python compiles those
|
|
116
|
+
// markers with `re.ASCII`, which changes only the FLAGS, not the source
|
|
117
|
+
// strings; JS `\w`/`\b` are already ASCII-only, so no TS source change is
|
|
118
|
+
// needed and the parity test still passes.)
|
|
119
|
+
/** The marker-regex SOURCES (Python `.pattern` form), exported ONLY so the
|
|
120
|
+
* cross-language parity test can assert byte-identity against the live Python
|
|
121
|
+
* patterns. Not part of the runtime scan path. */
|
|
122
|
+
export const RESULT_MARKER_SOURCES = {
|
|
123
|
+
credential: CREDENTIAL_PATH.source,
|
|
124
|
+
exfil: EXFIL_INSTRUCTION.source,
|
|
125
|
+
injection: INJECTION.source,
|
|
126
|
+
};
|
|
127
|
+
/** Cap on how much of a single string we scan. A malicious result can be
|
|
128
|
+
* arbitrarily large; we scan a bounded prefix (a marker meant to hijack an agent
|
|
129
|
+
* must appear early enough to be read) and flag the tail as unscanned so the
|
|
130
|
+
* caller never implies "fully clean" on a truncated scan. Generous (1 MiB) so
|
|
131
|
+
* realistic tool results are scanned WHOLE. Measured + sliced by CODE POINT (via
|
|
132
|
+
* the spread iterator), NOT UTF-16 unit, so astral-plane padding (emoji) can't
|
|
133
|
+
* push a marker past the JS cut while staying inside Python's code-point cut —
|
|
134
|
+
* the two engines see the SAME prefix. Mirrors Python `_MAX_SCAN_CHARS`. */
|
|
135
|
+
const MAX_SCAN_CHARS = 1_048_576;
|
|
136
|
+
/** structuredContent recursion bound: a cyclic / pathologically deep attacker
|
|
137
|
+
* payload must stop the walk (returning a "hit bound" flag, NOT throwing a
|
|
138
|
+
* RangeError) so a hostile result can't crash the scanner. Mirrors Python
|
|
139
|
+
* `_MAX_DEPTH`. */
|
|
140
|
+
const MAX_DEPTH = 64;
|
|
141
|
+
/** Total collected-string bound: millions of tiny blocks must stop the walk
|
|
142
|
+
* (same "hit bound" flag) rather than exhaust memory. Mirrors Python
|
|
143
|
+
* `_MAX_STRINGS`. */
|
|
144
|
+
const MAX_STRINGS = 100_000;
|
|
145
|
+
/** Path-segment length cap. A structuredContent KEY NAME is only ever a
|
|
146
|
+
* breadcrumb in `location`, never raw payload — so a key is sanitized to a safe
|
|
147
|
+
* charset and capped. Mirrors Python `_MAX_SEG`. */
|
|
148
|
+
const MAX_SEG = 40;
|
|
149
|
+
/** Any whitespace EXCEPT newline (Unicode-aware via the `u` flag, on purpose).
|
|
150
|
+
* JS `\s` is Unicode-aware while Python compiles the markers `re.ASCII` (ASCII
|
|
151
|
+
* `\s` only), so an NBSP / em-space / ideographic space before a marker would
|
|
152
|
+
* HOLD in TS but PASS in Python. Normalizing every non-newline Unicode space to
|
|
153
|
+
* an ASCII space before matching makes the two engines AGREE. Mirrors Python
|
|
154
|
+
* `_UNICODE_WS = re.compile(r"[^\S\n]")`. */
|
|
155
|
+
const UNICODE_WS = /[^\S\n]/gu;
|
|
156
|
+
/** Line terminators JS counts but Python does not (\r, U+2028, U+2029) ->
|
|
157
|
+
* normalized to \n before matching. Built from escapes (no raw separator chars
|
|
158
|
+
* embedded in source), mirroring Python `_TERMINATORS`. */
|
|
159
|
+
const TERMINATORS = new RegExp("[\r\u2028\u2029]", "g");
|
|
160
|
+
function isString(v) {
|
|
161
|
+
return typeof v === "string";
|
|
162
|
+
}
|
|
163
|
+
/** Read `key` from a dict-or-object (a plain JS object IS the SDK shape — no
|
|
164
|
+
* pydantic), returning undefined when absent. TARGETED access only — we never
|
|
165
|
+
* walk an object's whole shape. Mirrors Python `_attr_or_key` (which also covers
|
|
166
|
+
* an SDK model via getattr; in JS the SDK returns plain objects so a single
|
|
167
|
+
* property read suffices). */
|
|
168
|
+
function attrOrKey(entry, key) {
|
|
169
|
+
if (entry !== null && typeof entry === "object") {
|
|
170
|
+
return entry[key];
|
|
171
|
+
}
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
/** A path breadcrumb segment: keep a safe charset (`A-Za-z0-9_.-`), replace
|
|
175
|
+
* everything else with `?`, and cap the length — so a hostile structuredContent
|
|
176
|
+
* KEY NAME can never dump raw payload (or a secret) into a HOLD banner via
|
|
177
|
+
* `location` (which flows into the user-facing reason). Mirrors Python
|
|
178
|
+
* `_sanitize_seg`. */
|
|
179
|
+
function sanitizeSeg(seg) {
|
|
180
|
+
return seg.replace(/[^A-Za-z0-9_.-]/g, "?").slice(0, MAX_SEG);
|
|
181
|
+
}
|
|
182
|
+
/** Extract the AGENT-READABLE text strings from ONE content block (TARGETED — NOT
|
|
183
|
+
* a walk of every field). Text block -> `.text`; EmbeddedResource (type
|
|
184
|
+
* "resource") -> `.resource.text`; resource_link -> `.name`/`.description`/
|
|
185
|
+
* `.title`; a bare string -> itself. Structural fields (uri/mimeType/type/data/
|
|
186
|
+
* blob) are DELIBERATELY skipped: they are not agent directives and scanning them
|
|
187
|
+
* only adds false positives (a benign resource URI like a forward-hook host, a
|
|
188
|
+
* mimeType, base64 `data`). Mirrors Python `_block_texts`. */
|
|
189
|
+
function blockTexts(block, idx) {
|
|
190
|
+
const base = `content[${idx}]`;
|
|
191
|
+
if (isString(block))
|
|
192
|
+
return [[base, block]];
|
|
193
|
+
const out = [];
|
|
194
|
+
const text = attrOrKey(block, "text");
|
|
195
|
+
if (isString(text))
|
|
196
|
+
out.push([`${base}.text`, text]);
|
|
197
|
+
const btype = attrOrKey(block, "type");
|
|
198
|
+
if (btype === "resource") {
|
|
199
|
+
const rtext = attrOrKey(attrOrKey(block, "resource"), "text");
|
|
200
|
+
if (isString(rtext))
|
|
201
|
+
out.push([`${base}.resource.text`, rtext]);
|
|
202
|
+
}
|
|
203
|
+
else if (btype === "resource_link") {
|
|
204
|
+
for (const field of ["name", "description", "title"]) {
|
|
205
|
+
const val = attrOrKey(block, field);
|
|
206
|
+
if (isString(val))
|
|
207
|
+
out.push([`${base}.${field}`, val]);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return out;
|
|
211
|
+
}
|
|
212
|
+
/** Walk every string VALUE (NOT keys) in structuredContent, depth- and
|
|
213
|
+
* count-bounded. Returns [strings, hitBound]. Key NAMES appear ONLY as SANITIZED
|
|
214
|
+
* path breadcrumbs (`sanitizeSeg`), never as scanned strings and never raw in
|
|
215
|
+
* `location` — so neither a key's content nor a secret in a key can reach a
|
|
216
|
+
* marker or a banner. `budget` is a single-element box decremented across the
|
|
217
|
+
* recursion (the JS analog of Python's `budget: list[int]`). Past `MAX_DEPTH` or
|
|
218
|
+
* once `budget` is exhausted the walk stops and flags `hitBound` (a cyclic / deep
|
|
219
|
+
* payload never throws a RangeError). Mirrors Python `_walk_values`. */
|
|
220
|
+
function walkValues(node, path, depth, budget) {
|
|
221
|
+
if (depth > MAX_DEPTH || budget.n <= 0)
|
|
222
|
+
return [[], true];
|
|
223
|
+
const out = [];
|
|
224
|
+
let hit = false;
|
|
225
|
+
if (isString(node)) {
|
|
226
|
+
budget.n -= 1;
|
|
227
|
+
out.push([path, node]);
|
|
228
|
+
}
|
|
229
|
+
else if (Array.isArray(node)) {
|
|
230
|
+
for (let i = 0; i < node.length; i++) {
|
|
231
|
+
const [sub, subHit] = walkValues(node[i], `${path}[${i}]`, depth + 1, budget);
|
|
232
|
+
for (const x of sub)
|
|
233
|
+
out.push(x);
|
|
234
|
+
hit = hit || subHit;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else if (node !== null && typeof node === "object") {
|
|
238
|
+
for (const [k, v] of Object.entries(node)) {
|
|
239
|
+
const seg = sanitizeSeg(k);
|
|
240
|
+
const [sub, subHit] = walkValues(v, `${path}.${seg}`, depth + 1, budget);
|
|
241
|
+
for (const x of sub)
|
|
242
|
+
out.push(x);
|
|
243
|
+
hit = hit || subHit;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return [out, hit];
|
|
247
|
+
}
|
|
248
|
+
/** Collect [json-path, string] for every agent-readable string in `content` (via
|
|
249
|
+
* `blockTexts`, targeted) + `structuredContent` (via `walkValues`, values only,
|
|
250
|
+
* bounded). Returns [strings, boundHit] where `boundHit` is true when the
|
|
251
|
+
* value-walk stopped on the depth/count bound. Mirrors Python `_collect`. */
|
|
252
|
+
function collect(content, structuredContent) {
|
|
253
|
+
// ONE budget shared across content + structuredContent so a pathological content[] (millions
|
|
254
|
+
// of blocks) also bounds out and flags truncated, not silently fully-clean (parity with Python).
|
|
255
|
+
const strings = [];
|
|
256
|
+
const budget = { n: MAX_STRINGS };
|
|
257
|
+
let boundHit = false;
|
|
258
|
+
if (Array.isArray(content)) {
|
|
259
|
+
for (let i = 0; i < content.length; i++) {
|
|
260
|
+
if (budget.n <= 0) {
|
|
261
|
+
boundHit = true;
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
const bt = blockTexts(content[i], i);
|
|
265
|
+
for (const x of bt)
|
|
266
|
+
strings.push(x);
|
|
267
|
+
budget.n -= bt.length;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else if (content !== undefined && content !== null) {
|
|
271
|
+
for (const x of blockTexts(content, 0))
|
|
272
|
+
strings.push(x);
|
|
273
|
+
budget.n -= 1;
|
|
274
|
+
}
|
|
275
|
+
if (structuredContent !== undefined && structuredContent !== null) {
|
|
276
|
+
const [sub, hit] = walkValues(structuredContent, "structuredContent", 0, budget);
|
|
277
|
+
for (const x of sub)
|
|
278
|
+
strings.push(x);
|
|
279
|
+
boundHit = boundHit || hit;
|
|
280
|
+
}
|
|
281
|
+
return [strings, boundHit || budget.n <= 0];
|
|
282
|
+
}
|
|
283
|
+
/** Code-point length of `s` (NOT UTF-16 unit length) — so the truncated flag
|
|
284
|
+
* agrees with the code-point scan cap across engines (Python measures by code
|
|
285
|
+
* point). */
|
|
286
|
+
function codePointLength(s) {
|
|
287
|
+
let n = 0;
|
|
288
|
+
for (const _ of s)
|
|
289
|
+
n += 1;
|
|
290
|
+
return n;
|
|
291
|
+
}
|
|
292
|
+
/** Line-terminator + Unicode-whitespace normalization so the two regex engines
|
|
293
|
+
* agree before matching. Mirrors Python `_normalize`:
|
|
294
|
+
* * slice by CODE POINT (`[...s]`), NOT UTF-16 unit, so astral-plane padding
|
|
295
|
+
* (an emoji = 2 UTF-16 units, 1 code point) can't push a marker past the JS
|
|
296
|
+
* cut while it stays inside Python's code-point cut — same prefix in both.
|
|
297
|
+
* * line terminators \r / U+2028 / U+2029 -> \n: JS counts these as line breaks
|
|
298
|
+
* (anchoring `^`/`m` and never matched by `.`) where Python does not.
|
|
299
|
+
* * every non-newline Unicode whitespace (NBSP, em-space, ideographic space, …)
|
|
300
|
+
* -> ASCII space: JS `\s` is Unicode-aware (the `u` flag on `UNICODE_WS`)
|
|
301
|
+
* while Python compiles the markers `re.ASCII`, so without this an
|
|
302
|
+
* `NBSP + "SYSTEM:"` would HOLD in TS but PASS in Python. Order matters:
|
|
303
|
+
* normalize terminators to \n FIRST, then collapse the remaining non-newline
|
|
304
|
+
* whitespace (so a real \n is preserved, matching `_UNICODE_WS`'s `[^\S\n]`). */
|
|
305
|
+
function normalize(s) {
|
|
306
|
+
const capped = [...s].slice(0, MAX_SCAN_CHARS).join("");
|
|
307
|
+
return capped.replace(TERMINATORS, "\n").replace(UNICODE_WS, " ");
|
|
308
|
+
}
|
|
309
|
+
/** Apply the three reused markers to one normalized string. CRITICAL
|
|
310
|
+
* (credential/exfil) takes precedence over HIGH (injection). Returns
|
|
311
|
+
* [severity, reason] or null. Mirrors Python `_scan_one`. */
|
|
312
|
+
function scanOne(s) {
|
|
313
|
+
const probe = normalize(s);
|
|
314
|
+
if (CREDENTIAL_PATH.test(probe))
|
|
315
|
+
return ["critical", "credential/secret path in tool result"];
|
|
316
|
+
if (EXFIL_INSTRUCTION.test(probe))
|
|
317
|
+
return ["critical", "exfil/transmit directive in tool result"];
|
|
318
|
+
if (INJECTION.test(probe))
|
|
319
|
+
return ["high", "injection directive in tool result"];
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
/** Scan a tool's returned `content` (array of blocks) + `structuredContent` for a
|
|
323
|
+
* hostile marker. Returns a `ResultScan` (the worst taint — CRITICAL
|
|
324
|
+
* short-circuits — or null, plus a `truncated` flag). Deterministic, offline, no
|
|
325
|
+
* model. Tolerant of malformed / attacker-shaped input by design (the result is
|
|
326
|
+
* attacker-derived): anything it cannot interpret is simply not scanned, never
|
|
327
|
+
* thrown on, and bounded against cyclic/deep payloads — the CALLER additionally
|
|
328
|
+
* runs this inside a fail-closed guard. `truncated` is set when a string exceeded
|
|
329
|
+
* the per-string cap OR the value-walk hit the depth/count bound. Port of Python
|
|
330
|
+
* `scan_result`. */
|
|
331
|
+
export function scanResult(content, structuredContent) {
|
|
332
|
+
const [strings, boundHit] = collect(content, structuredContent);
|
|
333
|
+
const truncated = boundHit || strings.some(([, s]) => codePointLength(s) > MAX_SCAN_CHARS);
|
|
334
|
+
let high = null; // [location, reason]
|
|
335
|
+
for (const [loc, s] of strings) {
|
|
336
|
+
const hit = scanOne(s);
|
|
337
|
+
if (hit === null)
|
|
338
|
+
continue;
|
|
339
|
+
const [severity, reason] = hit;
|
|
340
|
+
if (severity === "critical") {
|
|
341
|
+
return { taint: { severity, location: loc, reason }, truncated };
|
|
342
|
+
}
|
|
343
|
+
if (high === null)
|
|
344
|
+
high = [loc, reason];
|
|
345
|
+
}
|
|
346
|
+
if (high !== null) {
|
|
347
|
+
const [loc, reason] = high;
|
|
348
|
+
return { taint: { severity: "high", location: loc, reason }, truncated };
|
|
349
|
+
}
|
|
350
|
+
return { taint: null, truncated };
|
|
351
|
+
}
|
|
96
352
|
//# sourceMappingURL=scan.js.map
|
package/dist/src/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,eAAe,GAAG,IAAI,MAAM,CAChC,sCAAsC;IACpC,wEAAwE;IACxE,wEAAwE,EAC1E,GAAG,CACJ,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,MAAM;AAClC,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,oEAAoE;AACpE,qEAAqE;AACrE,qFAAqF;AACrF,0FAA0F;AAC1F,0EAA0E;AAC1E,4FAA4F;IAC1F,uFAAuF;IACvF,iEAAiE,EACnE,GAAG,CACJ,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,qFAAqF;IACnF,6BAA6B;IAC7B,yBAAyB;IACzB,2EAA2E,EAC7E,IAAI,CACL,CAAC;AAEF,+EAA+E;AAC/E,6EAA6E;AAC7E,kFAAkF;AAClF,wEAAwE;AACxE,mFAAmF;AACnF,oFAAoF;AACpF,uFAAuF;AACvF,MAAM,CAAC,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IACtD,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,aAAa;IACb,UAAU;IACV,UAAU;IACV,qBAAqB;CACtB,CAAC,CAAC;AAEH,SAAS,MAAM,CAAC,CAAU;IACxB,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,IAAa,EAAE,GAAa;IAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,wEAAwE;gBACxE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,KAAK,MAAM,IAAI,IAAI,CAAC;wBAAE,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,KAAK,MAAM,IAAI,IAAI,CAAC;oBAAE,IAAI,OAAO,IAAI,KAAK,QAAQ;wBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;qCAEqC;AACrC,MAAM,UAAU,mBAAmB,CAAC,WAAoC;IACtE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,8DAA8D;AAC9D,4EAA4E;AAC5E,gFAAgF;AAChF,+EAA+E;AAC/E,qEAAqE;AACrE,8EAA8E;AAC9E,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,mFAAmF;AACnF,EAAE;AACF,kEAAkE;AAClE,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,4CAA4C;AAE5C;;kDAEkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAI9B;IACF,UAAU,EAAE,eAAe,CAAC,MAAM;IAClC,KAAK,EAAE,iBAAiB,CAAC,MAAM;IAC/B,SAAS,EAAE,SAAS,CAAC,MAAM;CAC5B,CAAC;AAEF;;;;;;;4EAO4E;AAC5E,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC;;;mBAGmB;AACnB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;qBAEqB;AACrB,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B;;oDAEoD;AACpD,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB;;;;;6CAK6C;AAC7C,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B;;2DAE2D;AAC3D,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AA6BxD,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;8BAI8B;AAC9B,SAAS,SAAS,CAAC,KAAc,EAAE,GAAW;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAQ,KAAiC,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;sBAIsB;AACtB,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;8DAM8D;AAC9D,SAAS,UAAU,CAAC,KAAc,EAAE,GAAW;IAC7C,MAAM,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;IAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,QAAQ,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAU,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,QAAQ,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;wEAOwE;AACxE,SAAS,UAAU,CACjB,IAAa,EACb,IAAY,EACZ,KAAa,EACb,MAAqB;IAErB,IAAI,KAAK,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9E,KAAK,MAAM,CAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;YACrE,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YACzE,KAAK,MAAM,CAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC;AAED;;;6EAG6E;AAC7E,SAAS,OAAO,CAAC,OAAgB,EAAE,iBAA0B;IAC3D,6FAA6F;IAC7F,iGAAiG;IACjG,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;IAClC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;YACD,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QACxB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;aAEa;AACb,SAAS,eAAe,CAAC,CAAS;IAChC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;qFAYqF;AACrF,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAED;;6DAE6D;AAC7D,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAC;IAC9F,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,yCAAyC,CAAC,CAAC;IAClG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;oBAQoB;AACpB,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,iBAA2B;IACtE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;IAC3F,IAAI,IAAI,GAA4B,IAAI,CAAC,CAAC,qBAAqB;IAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;QAC/B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,KAAK,IAAI;YAAE,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC"}
|
package/dist/src/wrap.d.ts
CHANGED
|
@@ -62,6 +62,14 @@ export interface WrapOptions {
|
|
|
62
62
|
* from the env via `AmbientNotifier.fromEnv`; the signal rides stderr + this observer
|
|
63
63
|
* ONLY, never stdout, and never changes a gate decision or the call's return value. */
|
|
64
64
|
onInvocation?: AmbientObserver | null;
|
|
65
|
+
/** Opt-in (default FALSE -> zero behavior change, pure passthrough) runtime
|
|
66
|
+
* RESULT-content scan. On a PROCEED, scan what the tool RETURNED for hostile
|
|
67
|
+
* markers (injection / exfil / credential) and, under GUARD (default) / STRICT,
|
|
68
|
+
* WITHHOLD a tainted result (a HOLD whose verdict is NOT a contract diff). The
|
|
69
|
+
* call already executed — the WITHHOLD keeps the tainted content from hijacking
|
|
70
|
+
* the agent's NEXT action. MONITOR notifies (stderr) and proceeds. The TS twin
|
|
71
|
+
* of Python `wrap(..., scan_results=...)`. */
|
|
72
|
+
scanResults?: boolean;
|
|
65
73
|
}
|
|
66
74
|
/** Wrap an already-authenticated MCP client session. Returns a TRANSPARENT
|
|
67
75
|
* drop-in `Proxy` with the same surface: `listTools` / `callTool` are gated and
|
package/dist/src/wrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,SAAS,EACT,OAAO,EAMR,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAY,YAAY,
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,SAAS,EACT,OAAO,EAMR,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAY,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAW,MAAM,gBAAgB,CAAC;AAG5E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAa,MAAM,aAAa,CAAC;AACpD,OAAO,EAAU,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAOpD;;6DAE6D;AAC7D,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;gBAE3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM;CAMtF;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,YAAY,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,uBAAuB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B;;;2FAGuF;IACvF,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC;;;;;;kDAM8C;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAumBD;;;;;;;oBAOoB;AACpB,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;IACvF,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAiFhF;AAED,gFAAgF;AAChF,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAExF"}
|
package/dist/src/wrap.js
CHANGED
|
@@ -25,8 +25,9 @@
|
|
|
25
25
|
* connection. It reuses the wrapped session's own authenticated transport. The
|
|
26
26
|
* shared Gate reads only the PUBLIC contract.
|
|
27
27
|
*/
|
|
28
|
-
import { Gate, HELD_PROVENANCE_UNAVAILABLE_BANNER, INTERNAL_ERROR_HELD_MESSAGE, isInternalErrorVerdict, renderHoldBanner, behaviourObserved, } from "./gate.js";
|
|
29
|
-
import { Decision, utcNowIso } from "./preflight.js";
|
|
28
|
+
import { Gate, Posture, HELD_PROVENANCE_UNAVAILABLE_BANNER, INTERNAL_ERROR_HELD_MESSAGE, isInternalErrorVerdict, renderHoldBanner, behaviourObserved, } from "./gate.js";
|
|
29
|
+
import { Decision, makeVerdict, utcNowIso } from "./preflight.js";
|
|
30
|
+
import { scanResult } from "./scan.js";
|
|
30
31
|
import { ChangeKind } from "./schemaDiff.js";
|
|
31
32
|
import { Operation } from "./errors.js";
|
|
32
33
|
import { Action } from "./outcomes.js";
|
|
@@ -152,6 +153,11 @@ class Interceptor {
|
|
|
152
153
|
gate;
|
|
153
154
|
onHold;
|
|
154
155
|
autoValidateBehavior;
|
|
156
|
+
// Opt-in (default OFF -> zero behavior change) runtime RESULT-content scan: on a
|
|
157
|
+
// PROCEED, scan what the tool RETURNS for hostile markers and WITHHOLD a tainted
|
|
158
|
+
// result under GUARD/STRICT. Posture is read off the shared gate (gate.posture) —
|
|
159
|
+
// the pre-call decision already applied posture inside the gate.
|
|
160
|
+
scanResults;
|
|
155
161
|
stats;
|
|
156
162
|
outcomes;
|
|
157
163
|
// Ambient presence: a subtle "mcpindex is watching this" signal on the PROCEED path
|
|
@@ -181,6 +187,7 @@ class Interceptor {
|
|
|
181
187
|
});
|
|
182
188
|
this.onHold = opts.onHold ?? null;
|
|
183
189
|
this.autoValidateBehavior = opts.autoValidateBehavior ?? false;
|
|
190
|
+
this.scanResults = opts.scanResults ?? false;
|
|
184
191
|
this.stats = opts.stats ?? null;
|
|
185
192
|
this.outcomes = opts.outcomes ?? null;
|
|
186
193
|
// Ambient presence is default-ON (resolved from the env: master switch
|
|
@@ -248,10 +255,97 @@ class Interceptor {
|
|
|
248
255
|
if (verdict.failOpenWarning)
|
|
249
256
|
warn(verdict);
|
|
250
257
|
this.noteAmbient(name, verdict);
|
|
251
|
-
return target.callTool.apply(target, args);
|
|
258
|
+
return this.gateResult(name, target.callTool.apply(target, args));
|
|
252
259
|
}
|
|
253
260
|
return this.refuseAsync(name, verdict);
|
|
254
261
|
}
|
|
262
|
+
// ----------------------------------------------------- post-call result scan
|
|
263
|
+
/** Opt-in runtime RESULT scan on the PROCEED path. The tool call ALREADY ran (a
|
|
264
|
+
* result-taint cannot un-ring that bell); this scans what it RETURNED for hostile
|
|
265
|
+
* markers and, under GUARD/STRICT, WITHHOLDS a tainted result (a HOLD) so the
|
|
266
|
+
* answer cannot hijack the agent's NEXT action. Default OFF (`this.scanResults`)
|
|
267
|
+
* -> a pure pass-through. Both SDK seams (`callTool`/`request`) return a Promise,
|
|
268
|
+
* so we attach to it: scan after it resolves, returning the result on clean and
|
|
269
|
+
* applying posture on a taint. The TS twin of Python `_gate_result`. */
|
|
270
|
+
gateResult(name, result) {
|
|
271
|
+
if (!this.scanResults)
|
|
272
|
+
return result;
|
|
273
|
+
if (!isThenable(result)) {
|
|
274
|
+
// Defensive: an SDK seam that returned a non-Promise still gets scanned (the
|
|
275
|
+
// sync twin of Python's `_gate_result_sync`). Returns the result or throws a
|
|
276
|
+
// synchronous PreflightHold under GUARD/STRICT.
|
|
277
|
+
return this.gateResultValue(name, result);
|
|
278
|
+
}
|
|
279
|
+
return result.then((value) => this.gateResultValue(name, value));
|
|
280
|
+
}
|
|
281
|
+
/** Scan a concrete result; return it when clean, else apply posture. FAIL-CLOSED:
|
|
282
|
+
* a bug in OUR scanner degrades to a withholding HOLD (under GUARD/STRICT) — it
|
|
283
|
+
* never returns an unscanned result and never crashes the agent's call (matching
|
|
284
|
+
* the gate's graceful-fail ethos). Mirrors Python `_gate_result_sync`. */
|
|
285
|
+
gateResultValue(name, result) {
|
|
286
|
+
let scan;
|
|
287
|
+
try {
|
|
288
|
+
scan = scanResult(attrOrKey(result, "content"), attrOrKey(result, "structuredContent"));
|
|
289
|
+
}
|
|
290
|
+
catch (exc) {
|
|
291
|
+
this.gate.captureError(exc, Operation.CALL_TOOL, "wrap.gateResult");
|
|
292
|
+
return this.withholdOrProceed(name, "result scanner internal error (fail-closed)", result);
|
|
293
|
+
}
|
|
294
|
+
if (scan.taint !== null) {
|
|
295
|
+
return this.withholdOrProceed(name, `${scan.taint.reason} at ${scan.taint.location}`, result);
|
|
296
|
+
}
|
|
297
|
+
if (scan.truncated) {
|
|
298
|
+
// Clean as far as read, but a string exceeded the scan cap so its tail was NOT scanned.
|
|
299
|
+
// Never imply 'fully clean' — withhold under STRICT (strictOnly), notify under GUARD/MONITOR.
|
|
300
|
+
return this.withholdOrProceed(name, "result exceeded the scan cap; tail unscanned", result, true);
|
|
301
|
+
}
|
|
302
|
+
return result;
|
|
303
|
+
}
|
|
304
|
+
/** Posture decision for a tainted/unscannable result, reading the gate's LIVE
|
|
305
|
+
* posture (single source of truth). A taint / scanner-error WITHHOLDS under
|
|
306
|
+
* GUARD (default) + STRICT; a merely TRUNCATED-clean result (`strictOnly=true`)
|
|
307
|
+
* withholds only under STRICT and notifies+proceeds under GUARD/MONITOR. (So:
|
|
308
|
+
* notify+proceed when posture===MONITOR OR (posture===GUARD && strictOnly); else
|
|
309
|
+
* withhold.) Withholding routes through the SAME provenance-choked HOLD surface
|
|
310
|
+
* as a contract hold (so the over-claim guard still runs) — but the verdict is
|
|
311
|
+
* NOT a contract diff (`isContractDiff: false`, the TS mirror of Python's
|
|
312
|
+
* `is_contract_diff=False`). `markerNote` is SECRET-FREE (marker CLASS + json-path
|
|
313
|
+
* location, never the raw returned payload). When an `onHold` callback is set we
|
|
314
|
+
* return its result (mirroring `refuseAsync`); otherwise we throw the
|
|
315
|
+
* PreflightHold so the caller's `.catch`/rejection sees the withhold. Mirrors
|
|
316
|
+
* Python `_withhold_or_proceed`. */
|
|
317
|
+
withholdOrProceed(name, markerNote, result, strictOnly = false) {
|
|
318
|
+
const posture = this.gate.posture;
|
|
319
|
+
const notifyAndProceed = posture === Posture.MONITOR || (posture === Posture.GUARD && strictOnly);
|
|
320
|
+
if (notifyAndProceed) {
|
|
321
|
+
this.noteResultTaint(name, markerNote);
|
|
322
|
+
return result;
|
|
323
|
+
}
|
|
324
|
+
const verdict = makeVerdict({
|
|
325
|
+
serverId: this.gate.serverId,
|
|
326
|
+
toolName: name,
|
|
327
|
+
decision: Decision.HOLD,
|
|
328
|
+
reason: `tool RESULT WITHHELD (${markerNote}); the call already executed — the returned ` +
|
|
329
|
+
`content is held so it cannot influence the agent (a result issue, NOT a contract diff)`,
|
|
330
|
+
isContractDiff: false,
|
|
331
|
+
});
|
|
332
|
+
if (this.onHold !== null)
|
|
333
|
+
return this.onHold(verdict);
|
|
334
|
+
const [prov, banner] = this.heldSurface(name, verdict);
|
|
335
|
+
throw new PreflightHold(verdict, prov, banner);
|
|
336
|
+
}
|
|
337
|
+
/** MONITOR-posture notice: surface the result-taint to stderr (never stdout, never
|
|
338
|
+
* the gate decision), best-effort, then proceed. Mirrors the ambient channel's
|
|
339
|
+
* stderr-only rule and Python `_note_result_taint`. */
|
|
340
|
+
noteResultTaint(name, markerNote) {
|
|
341
|
+
try {
|
|
342
|
+
process.stderr.write(`⚡ mcpindex: tool '${name}' RESULT matched a hostile marker (${markerNote}) ` +
|
|
343
|
+
`— MONITOR posture: proceeding. Use posture=GUARD to withhold.\n`);
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
// a notice must never perturb the call
|
|
347
|
+
}
|
|
348
|
+
}
|
|
255
349
|
// ------------------------------------------------------------ request
|
|
256
350
|
request(target, args) {
|
|
257
351
|
const reqFn = target.request;
|
|
@@ -267,7 +361,11 @@ class Interceptor {
|
|
|
267
361
|
if (verdict.failOpenWarning)
|
|
268
362
|
warn(verdict);
|
|
269
363
|
this.noteAmbient(toolName, verdict);
|
|
270
|
-
|
|
364
|
+
// Parity: scan the raw-RPC result too. `request({method:'tools/call'}, CallToolResultSchema)`
|
|
365
|
+
// resolves a CallToolResult (the SAME shape `gateResult` extracts content/structuredContent
|
|
366
|
+
// from). A transport/schema that resolves a raw envelope instead -> content/structuredContent
|
|
367
|
+
// absent -> not scanned (v1 boundary, documented; the pre-call gate still covers the call).
|
|
368
|
+
return this.gateResult(toolName, reqFn.apply(target, args));
|
|
271
369
|
}
|
|
272
370
|
// The SDK `request()` is async (returns a Promise<SchemaOutput>), so — like
|
|
273
371
|
// `callTool` — a HOLD must surface as a REJECTED Promise, not a sync throw,
|
package/dist/src/wrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/wrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/wrap.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-index/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Pre-flight MCP tool-contract drift interceptor
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "Pre-flight MCP tool-contract drift interceptor — one-line wrap() over an MCP client session that HOLDs a tool call before your agent runs it when the contract drifted from your pin. No credential handling.",
|
|
5
5
|
"license": "PolyForm-Noncommercial-1.0.0",
|
|
6
6
|
"author": "Bhartis LLC",
|
|
7
7
|
"homepage": "https://mcpindex.ai",
|