@clampd/sdk 0.15.0 → 0.15.1
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/dist/_frameworkAdapters.d.ts +93 -0
- package/dist/_frameworkAdapters.d.ts.map +1 -0
- package/dist/_frameworkAdapters.js +177 -0
- package/dist/_frameworkAdapters.js.map +1 -0
- package/dist/errors.d.ts +23 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +28 -0
- package/dist/errors.js.map +1 -1
- package/dist/guardrails.d.ts.map +1 -1
- package/dist/guardrails.js +16 -1
- package/dist/guardrails.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptor.d.ts.map +1 -1
- package/dist/interceptor.js +8 -0
- package/dist/interceptor.js.map +1 -1
- package/dist/langchain.d.ts.map +1 -1
- package/dist/langchain.js +11 -1
- package/dist/langchain.js.map +1 -1
- package/dist/register.d.ts +58 -7
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +98 -33
- package/dist/register.js.map +1 -1
- package/dist/stream-guard.d.ts.map +1 -1
- package/dist/stream-guard.js +7 -1
- package/dist/stream-guard.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework tool-object adapters and the unregistered-tool detector.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `clampd._framework_adapters` in the Python SDK. Two
|
|
5
|
+
* unrelated-but-thin concerns live here so we don't multiply tiny
|
|
6
|
+
* helper modules:
|
|
7
|
+
*
|
|
8
|
+
* 1. {@link extractToolDescriptor} — duck-type a LangChain
|
|
9
|
+
* `BaseTool` / OpenAI tool def / Anthropic tool def into a
|
|
10
|
+
* plain `{ name, description, paramSchema }` triple. Used by
|
|
11
|
+
* the `registerTool(toolObject, opts)` overload so callers can
|
|
12
|
+
* pass their existing framework tool object instead of
|
|
13
|
+
* restating its name / description / schema.
|
|
14
|
+
*
|
|
15
|
+
* 2. {@link raiseIfUnregistered} — convert the gateway's
|
|
16
|
+
* `denial_reason` strings starting with `tool_not_registered:`
|
|
17
|
+
* or `tool_not_classified:` into a typed
|
|
18
|
+
* {@link ClampdUnregisteredToolError}. Centralised here so
|
|
19
|
+
* every wrapper that calls `client.proxy()` can short-circuit
|
|
20
|
+
* with the same exception, ahead of throwing the more general
|
|
21
|
+
* {@link ClampdBlockedError}.
|
|
22
|
+
*
|
|
23
|
+
* Pure TypeScript — no framework imports. Every shape check is duck
|
|
24
|
+
* typing so loading the SDK does not require LangChain / OpenAI /
|
|
25
|
+
* Anthropic SDKs to be installed.
|
|
26
|
+
*/
|
|
27
|
+
import type { ProxyResponse } from "./client.js";
|
|
28
|
+
/**
|
|
29
|
+
* Plain triple extracted from an arbitrary framework tool object.
|
|
30
|
+
*
|
|
31
|
+
* `paramSchema` is whatever the framework gave us (zod schema, JSON
|
|
32
|
+
* Schema, ad-hoc dict). Downstream code that hashes it (`contractHash`)
|
|
33
|
+
* tolerates anything serialisable; LangChain `zod` schemas are passed
|
|
34
|
+
* through `_zodToJsonSchema` first so the hash stays stable across
|
|
35
|
+
* runs.
|
|
36
|
+
*/
|
|
37
|
+
export interface ExtractedDescriptor {
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
paramSchema: object;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Detect and extract `{ name, description, paramSchema }` from a
|
|
44
|
+
* LangChain `BaseTool`, OpenAI tool def, Anthropic tool def, or
|
|
45
|
+
* Vercel AI SDK tool def.
|
|
46
|
+
*
|
|
47
|
+
* Returns `null` when the value doesn't look like any known tool
|
|
48
|
+
* shape — caller should fall through to the `(name, opts)` overload
|
|
49
|
+
* or raise.
|
|
50
|
+
*
|
|
51
|
+
* Detection rules (duck typing — order matters, most specific first):
|
|
52
|
+
*
|
|
53
|
+
* - OpenAI tool def: `{ type: 'function', function: { name, ... } }`
|
|
54
|
+
* - Anthropic tool def: `{ name, input_schema }` (no `function` key)
|
|
55
|
+
* - LangChain BaseTool: has `.name` plus either `.schema` (zod) or
|
|
56
|
+
* `.args_schema` (legacy)
|
|
57
|
+
* - Vercel AI SDK: has `.parameters` plus `.execute`/`.description`
|
|
58
|
+
* (handled via the LangChain branch since `.name` is keyed
|
|
59
|
+
* externally for Vercel; if `.name` is missing, returns `null`)
|
|
60
|
+
*/
|
|
61
|
+
export declare function extractToolDescriptor(value: unknown): ExtractedDescriptor | null;
|
|
62
|
+
/**
|
|
63
|
+
* Inspect a {@link ProxyResponse} and throw
|
|
64
|
+
* {@link ClampdUnregisteredToolError} if the gateway denied the call
|
|
65
|
+
* specifically because the tool descriptor is missing or unclassified.
|
|
66
|
+
*
|
|
67
|
+
* No-op for any other denial reason — the caller is expected to throw
|
|
68
|
+
* its own {@link ClampdBlockedError} downstream.
|
|
69
|
+
*
|
|
70
|
+
* Detection is string-prefix on `denial_reason`:
|
|
71
|
+
*
|
|
72
|
+
* - `tool_not_registered:<name>` — descriptor missing entirely
|
|
73
|
+
* - `tool_not_classified:<name>` — descriptor exists but rejected
|
|
74
|
+
* classification at registration time
|
|
75
|
+
*
|
|
76
|
+
* Mirrors the prefix scheme used by the Python SDK's
|
|
77
|
+
* `_raise_if_unregistered`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function raiseIfUnregistered(toolName: string, resp: ProxyResponse | undefined): void;
|
|
80
|
+
/**
|
|
81
|
+
* Maps `toolName -> contractHash` for every successful
|
|
82
|
+
* `registerTool()` call in this process. The OpenAI / Anthropic /
|
|
83
|
+
* LangChain wrappers prefer this cached hash over computing one on
|
|
84
|
+
* the fly — that way the hash sent to the gateway exactly matches
|
|
85
|
+
* the hash that was registered, even when the wrapper has incomplete
|
|
86
|
+
* information about the tool's parameter schema (e.g. LangChain
|
|
87
|
+
* callbacks don't surface the pydantic schema through `serialized`).
|
|
88
|
+
*
|
|
89
|
+
* Mirrors `clampd._framework_adapters._registered_descriptors` in the
|
|
90
|
+
* Python SDK.
|
|
91
|
+
*/
|
|
92
|
+
export declare const _registeredDescriptors: Map<string, string>;
|
|
93
|
+
//# sourceMappingURL=_frameworkAdapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_frameworkAdapters.d.ts","sourceRoot":"","sources":["../src/_frameworkAdapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AA0CD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAgDhF;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,aAAa,GAAG,SAAS,GAC9B,IAAI,CAUN;AAID;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,CAAC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework tool-object adapters and the unregistered-tool detector.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `clampd._framework_adapters` in the Python SDK. Two
|
|
5
|
+
* unrelated-but-thin concerns live here so we don't multiply tiny
|
|
6
|
+
* helper modules:
|
|
7
|
+
*
|
|
8
|
+
* 1. {@link extractToolDescriptor} — duck-type a LangChain
|
|
9
|
+
* `BaseTool` / OpenAI tool def / Anthropic tool def into a
|
|
10
|
+
* plain `{ name, description, paramSchema }` triple. Used by
|
|
11
|
+
* the `registerTool(toolObject, opts)` overload so callers can
|
|
12
|
+
* pass their existing framework tool object instead of
|
|
13
|
+
* restating its name / description / schema.
|
|
14
|
+
*
|
|
15
|
+
* 2. {@link raiseIfUnregistered} — convert the gateway's
|
|
16
|
+
* `denial_reason` strings starting with `tool_not_registered:`
|
|
17
|
+
* or `tool_not_classified:` into a typed
|
|
18
|
+
* {@link ClampdUnregisteredToolError}. Centralised here so
|
|
19
|
+
* every wrapper that calls `client.proxy()` can short-circuit
|
|
20
|
+
* with the same exception, ahead of throwing the more general
|
|
21
|
+
* {@link ClampdBlockedError}.
|
|
22
|
+
*
|
|
23
|
+
* Pure TypeScript — no framework imports. Every shape check is duck
|
|
24
|
+
* typing so loading the SDK does not require LangChain / OpenAI /
|
|
25
|
+
* Anthropic SDKs to be installed.
|
|
26
|
+
*/
|
|
27
|
+
import { ClampdUnregisteredToolError } from "./errors.js";
|
|
28
|
+
import { createRequire } from "node:module";
|
|
29
|
+
const _moduleRequire = createRequire(import.meta.url);
|
|
30
|
+
/**
|
|
31
|
+
* Best-effort conversion of a zod schema to a JSON Schema dict.
|
|
32
|
+
*
|
|
33
|
+
* zod 4 ships `z.toJSONSchema()`; we resolve it lazily because the SDK
|
|
34
|
+
* lists zod as an optional peer dep. Returns `{}` if anything fails so
|
|
35
|
+
* the caller still gets a stable (if less informative) descriptor.
|
|
36
|
+
*
|
|
37
|
+
* Sync resolution via `createRequire` is deliberate: `extractToolDescriptor`
|
|
38
|
+
* runs inside `registerTool()` which is already async, but the rest of the
|
|
39
|
+
* SDK (notably the LangChain callback fast-path) treats descriptor
|
|
40
|
+
* extraction as a synchronous step. Dynamic `import()` would force every
|
|
41
|
+
* caller to await, which would ripple through the whole adapter surface
|
|
42
|
+
* for no real benefit — `node:module.createRequire` gives us the same
|
|
43
|
+
* lazy-load semantics with a sync return.
|
|
44
|
+
*/
|
|
45
|
+
function zodToJsonSchema(schema) {
|
|
46
|
+
if (!schema || typeof schema !== "object")
|
|
47
|
+
return {};
|
|
48
|
+
// Heuristic: zod schemas have `_def` and `parse`.
|
|
49
|
+
const maybeZod = schema;
|
|
50
|
+
if (!maybeZod._def || typeof maybeZod.parse !== "function")
|
|
51
|
+
return {};
|
|
52
|
+
try {
|
|
53
|
+
const zodMod = _moduleRequire("zod");
|
|
54
|
+
const z = zodMod.z;
|
|
55
|
+
if (z?.toJSONSchema) {
|
|
56
|
+
const out = z.toJSONSchema(schema);
|
|
57
|
+
if (out && typeof out === "object")
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Either zod isn't installed or it's an older version without
|
|
63
|
+
// toJSONSchema — fall through to {}.
|
|
64
|
+
}
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Detect and extract `{ name, description, paramSchema }` from a
|
|
69
|
+
* LangChain `BaseTool`, OpenAI tool def, Anthropic tool def, or
|
|
70
|
+
* Vercel AI SDK tool def.
|
|
71
|
+
*
|
|
72
|
+
* Returns `null` when the value doesn't look like any known tool
|
|
73
|
+
* shape — caller should fall through to the `(name, opts)` overload
|
|
74
|
+
* or raise.
|
|
75
|
+
*
|
|
76
|
+
* Detection rules (duck typing — order matters, most specific first):
|
|
77
|
+
*
|
|
78
|
+
* - OpenAI tool def: `{ type: 'function', function: { name, ... } }`
|
|
79
|
+
* - Anthropic tool def: `{ name, input_schema }` (no `function` key)
|
|
80
|
+
* - LangChain BaseTool: has `.name` plus either `.schema` (zod) or
|
|
81
|
+
* `.args_schema` (legacy)
|
|
82
|
+
* - Vercel AI SDK: has `.parameters` plus `.execute`/`.description`
|
|
83
|
+
* (handled via the LangChain branch since `.name` is keyed
|
|
84
|
+
* externally for Vercel; if `.name` is missing, returns `null`)
|
|
85
|
+
*/
|
|
86
|
+
export function extractToolDescriptor(value) {
|
|
87
|
+
if (!value || typeof value !== "object")
|
|
88
|
+
return null;
|
|
89
|
+
const v = value;
|
|
90
|
+
// OpenAI: { type: 'function', function: { name, description, parameters } }
|
|
91
|
+
if (v.type === "function" && v.function && typeof v.function === "object") {
|
|
92
|
+
const fn = v.function;
|
|
93
|
+
if (typeof fn.name === "string") {
|
|
94
|
+
return {
|
|
95
|
+
name: fn.name,
|
|
96
|
+
description: typeof fn.description === "string" ? fn.description : "",
|
|
97
|
+
paramSchema: fn.parameters ?? {},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Anthropic: { name, description, input_schema }
|
|
102
|
+
if (typeof v.name === "string" && v.input_schema && typeof v.input_schema === "object") {
|
|
103
|
+
return {
|
|
104
|
+
name: v.name,
|
|
105
|
+
description: typeof v.description === "string" ? v.description : "",
|
|
106
|
+
paramSchema: v.input_schema,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// LangChain BaseTool: .name + (.schema (zod) | .args_schema (legacy))
|
|
110
|
+
if (typeof v.name === "string" && (v.schema !== undefined || v.args_schema !== undefined)) {
|
|
111
|
+
const schema = v.schema ?? v.args_schema;
|
|
112
|
+
let paramSchema;
|
|
113
|
+
if (schema && typeof schema === "object") {
|
|
114
|
+
// zod schema?
|
|
115
|
+
const maybeZod = schema;
|
|
116
|
+
if (maybeZod._def && typeof maybeZod.parse === "function") {
|
|
117
|
+
paramSchema = zodToJsonSchema(schema);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
paramSchema = schema;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
paramSchema = {};
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
name: v.name,
|
|
128
|
+
description: typeof v.description === "string" ? v.description : "",
|
|
129
|
+
paramSchema,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
// ── Unregistered-tool detection ─────────────────────────────────────
|
|
135
|
+
/**
|
|
136
|
+
* Inspect a {@link ProxyResponse} and throw
|
|
137
|
+
* {@link ClampdUnregisteredToolError} if the gateway denied the call
|
|
138
|
+
* specifically because the tool descriptor is missing or unclassified.
|
|
139
|
+
*
|
|
140
|
+
* No-op for any other denial reason — the caller is expected to throw
|
|
141
|
+
* its own {@link ClampdBlockedError} downstream.
|
|
142
|
+
*
|
|
143
|
+
* Detection is string-prefix on `denial_reason`:
|
|
144
|
+
*
|
|
145
|
+
* - `tool_not_registered:<name>` — descriptor missing entirely
|
|
146
|
+
* - `tool_not_classified:<name>` — descriptor exists but rejected
|
|
147
|
+
* classification at registration time
|
|
148
|
+
*
|
|
149
|
+
* Mirrors the prefix scheme used by the Python SDK's
|
|
150
|
+
* `_raise_if_unregistered`.
|
|
151
|
+
*/
|
|
152
|
+
export function raiseIfUnregistered(toolName, resp) {
|
|
153
|
+
if (!resp || resp.allowed)
|
|
154
|
+
return;
|
|
155
|
+
const reason = resp.denial_reason;
|
|
156
|
+
if (typeof reason !== "string")
|
|
157
|
+
return;
|
|
158
|
+
if (reason.startsWith("tool_not_registered:") ||
|
|
159
|
+
reason.startsWith("tool_not_classified:")) {
|
|
160
|
+
throw new ClampdUnregisteredToolError(toolName);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// ── Process-local descriptor cache ──────────────────────────────────
|
|
164
|
+
/**
|
|
165
|
+
* Maps `toolName -> contractHash` for every successful
|
|
166
|
+
* `registerTool()` call in this process. The OpenAI / Anthropic /
|
|
167
|
+
* LangChain wrappers prefer this cached hash over computing one on
|
|
168
|
+
* the fly — that way the hash sent to the gateway exactly matches
|
|
169
|
+
* the hash that was registered, even when the wrapper has incomplete
|
|
170
|
+
* information about the tool's parameter schema (e.g. LangChain
|
|
171
|
+
* callbacks don't surface the pydantic schema through `serialized`).
|
|
172
|
+
*
|
|
173
|
+
* Mirrors `clampd._framework_adapters._registered_descriptors` in the
|
|
174
|
+
* Python SDK.
|
|
175
|
+
*/
|
|
176
|
+
export const _registeredDescriptors = new Map();
|
|
177
|
+
//# sourceMappingURL=_frameworkAdapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_frameworkAdapters.js","sourceRoot":"","sources":["../src/_frameworkAdapters.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -26,4 +26,27 @@ export declare class ClampdClassificationError extends Error {
|
|
|
26
26
|
readonly operation: string;
|
|
27
27
|
constructor(category: string, subcategory: string, operation: string);
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Thrown when a tool call is denied because the gateway has no descriptor
|
|
31
|
+
* registered for that tool name (or the descriptor failed classification
|
|
32
|
+
* and was rejected at registration time).
|
|
33
|
+
*
|
|
34
|
+
* Distinct from {@link import("./interceptor.js").ClampdBlockedError}
|
|
35
|
+
* (which signals a policy / risk / scope decision against a *known*
|
|
36
|
+
* tool) — this error means the tool is unknown to Clampd and the fix
|
|
37
|
+
* is to register it at module load time, not to relax a policy.
|
|
38
|
+
*
|
|
39
|
+
* The SDK raises this when the gateway returns
|
|
40
|
+
* `denial_reason` starting with `"tool_not_registered:"` or
|
|
41
|
+
* `"tool_not_classified:"`. Mirrors
|
|
42
|
+
* `clampd._errors.ClampdUnregisteredToolError` in the Python SDK so
|
|
43
|
+
* cross-language docs / examples stay in lockstep.
|
|
44
|
+
*/
|
|
45
|
+
export declare class ClampdUnregisteredToolError extends Error {
|
|
46
|
+
readonly toolName: string;
|
|
47
|
+
readonly hint: string;
|
|
48
|
+
constructor(toolName: string, opts?: {
|
|
49
|
+
hint?: string;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
29
52
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAYrE"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAYrE;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;CASvD"}
|
package/dist/errors.js
CHANGED
|
@@ -35,4 +35,32 @@ export class ClampdClassificationError extends Error {
|
|
|
35
35
|
this.operation = operation;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Thrown when a tool call is denied because the gateway has no descriptor
|
|
40
|
+
* registered for that tool name (or the descriptor failed classification
|
|
41
|
+
* and was rejected at registration time).
|
|
42
|
+
*
|
|
43
|
+
* Distinct from {@link import("./interceptor.js").ClampdBlockedError}
|
|
44
|
+
* (which signals a policy / risk / scope decision against a *known*
|
|
45
|
+
* tool) — this error means the tool is unknown to Clampd and the fix
|
|
46
|
+
* is to register it at module load time, not to relax a policy.
|
|
47
|
+
*
|
|
48
|
+
* The SDK raises this when the gateway returns
|
|
49
|
+
* `denial_reason` starting with `"tool_not_registered:"` or
|
|
50
|
+
* `"tool_not_classified:"`. Mirrors
|
|
51
|
+
* `clampd._errors.ClampdUnregisteredToolError` in the Python SDK so
|
|
52
|
+
* cross-language docs / examples stay in lockstep.
|
|
53
|
+
*/
|
|
54
|
+
export class ClampdUnregisteredToolError extends Error {
|
|
55
|
+
toolName;
|
|
56
|
+
hint;
|
|
57
|
+
constructor(toolName, opts) {
|
|
58
|
+
const hint = opts?.hint ??
|
|
59
|
+
`Call clampd.registerTool('${toolName}', { category, subcategory, operation }) at module load time.`;
|
|
60
|
+
super(`Tool '${toolName}' is not registered with Clampd. ${hint}`);
|
|
61
|
+
this.name = "ClampdUnregisteredToolError";
|
|
62
|
+
this.toolName = toolName;
|
|
63
|
+
this.hint = hint;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
38
66
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClC,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,SAAS,CAAS;IAElC,YAAY,QAAgB,EAAE,WAAmB,EAAE,SAAiB;QAClE,KAAK,CACH,6CAA6C,QAAQ,oBAAoB,WAAW,kBAAkB,SAAS,MAAM;YACnH,kCAAkC;YAClC,yEAAyE;YACzE,yFAAyF,CAC5F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClC,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,SAAS,CAAS;IAElC,YAAY,QAAgB,EAAE,WAAmB,EAAE,SAAiB;QAClE,KAAK,CACH,6CAA6C,QAAQ,oBAAoB,WAAW,kBAAkB,SAAS,MAAM;YACnH,kCAAkC;YAClC,yEAAyE;YACzE,yFAAyF,CAC5F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpC,QAAQ,CAAS;IACjB,IAAI,CAAS;IAE7B,YAAY,QAAgB,EAAE,IAAwB;QACpD,MAAM,IAAI,GACR,IAAI,EAAE,IAAI;YACV,6BAA6B,QAAQ,+DAA+D,CAAC;QACvG,KAAK,CAAC,SAAS,QAAQ,oCAAoC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
package/dist/guardrails.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../src/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../src/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAQ9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAI/D;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,OAAO,EACrB,SAAS,GAAE,MAAW,EACtB,QAAQ,GAAE,OAAe,EACzB,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,IAAI,CAAC,CAcf;AAID;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAarF;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAOxG;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAO3G;AAID;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAoCf;AAID;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAID;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
package/dist/guardrails.js
CHANGED
|
@@ -10,6 +10,7 @@ import { ClampdBlockedError } from "./interceptor.js";
|
|
|
10
10
|
import { scanForSchemaInjection } from "./schema-injection.js";
|
|
11
11
|
import { withDelegation, getDelegation } from "./delegation.js";
|
|
12
12
|
import { setScopeToken } from "./tool-verify.js";
|
|
13
|
+
import { raiseIfUnregistered, _registeredDescriptors } from "./_frameworkAdapters.js";
|
|
13
14
|
// Re-export scanForSchemaInjection so callers that import from guardrails.js get it
|
|
14
15
|
export { scanForSchemaInjection } from "./schema-injection.js";
|
|
15
16
|
// ── Response inspection helper ────────────────────────────────────
|
|
@@ -111,11 +112,16 @@ export async function scanInputOpenAI(client, messages, failOpen) {
|
|
|
111
112
|
try {
|
|
112
113
|
const inputResult = await client.scanInput(userMessages, messages.length);
|
|
113
114
|
if (!inputResult.allowed) {
|
|
115
|
+
// Lift the ScanResponse fields (notably matched_rules) onto the
|
|
116
|
+
// synthesized ProxyResponse so the resulting ClampdBlockedError
|
|
117
|
+
// carries the same `.matchedRules` / `.response` ergonomic
|
|
118
|
+
// surface as a real proxy denial.
|
|
114
119
|
throw new ClampdBlockedError({
|
|
115
120
|
request_id: "scan-input",
|
|
116
121
|
allowed: false,
|
|
117
122
|
risk_score: inputResult.risk_score,
|
|
118
123
|
denial_reason: inputResult.denial_reason || "Input blocked by guardrail",
|
|
124
|
+
matched_rules: inputResult.matched_rules ?? [],
|
|
119
125
|
latency_ms: inputResult.latency_ms,
|
|
120
126
|
degraded_stages: [],
|
|
121
127
|
session_flags: [],
|
|
@@ -159,6 +165,7 @@ export async function scanInputAnthropic(client, messages, failOpen) {
|
|
|
159
165
|
allowed: false,
|
|
160
166
|
risk_score: inputResult.risk_score,
|
|
161
167
|
denial_reason: inputResult.denial_reason || "Input blocked by guardrail",
|
|
168
|
+
matched_rules: inputResult.matched_rules ?? [],
|
|
162
169
|
latency_ms: inputResult.latency_ms,
|
|
163
170
|
degraded_stages: [],
|
|
164
171
|
session_flags: [],
|
|
@@ -187,6 +194,7 @@ export async function scanOutputContent(client, content, failOpen) {
|
|
|
187
194
|
allowed: false,
|
|
188
195
|
risk_score: outputResult.risk_score,
|
|
189
196
|
denial_reason: outputResult.denial_reason || "Output blocked by guardrail",
|
|
197
|
+
matched_rules: outputResult.matched_rules ?? [],
|
|
190
198
|
latency_ms: outputResult.latency_ms,
|
|
191
199
|
degraded_stages: [],
|
|
192
200
|
session_flags: [],
|
|
@@ -215,7 +223,14 @@ export async function guardToolCallWithDelegation(client, agentId, toolName, too
|
|
|
215
223
|
};
|
|
216
224
|
}
|
|
217
225
|
try {
|
|
218
|
-
|
|
226
|
+
// Prefer the descriptor hash captured at registerTool() time over
|
|
227
|
+
// recomputing from partial info — framework callbacks (notably
|
|
228
|
+
// LangChain's on_tool_start) only see name + description, never
|
|
229
|
+
// the parameter schema, so an on-the-fly hash would miss the
|
|
230
|
+
// registered one and trip rug-pull detection.
|
|
231
|
+
const registeredHash = _registeredDescriptors.get(toolName);
|
|
232
|
+
const res = await client.proxy(toolName, proxyParams, targetUrl, undefined, registeredHash, authorizedTools);
|
|
233
|
+
raiseIfUnregistered(toolName, res);
|
|
219
234
|
if (res.allowed && res.scope_token) {
|
|
220
235
|
setScopeToken(res.scope_token);
|
|
221
236
|
}
|
package/dist/guardrails.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../src/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../src/guardrails.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,9 +31,9 @@ export type { ScopeTokenClaims } from "./tool-verify.js";
|
|
|
31
31
|
export { ClampdClient, type ClampdClientOptions } from "./client.js";
|
|
32
32
|
export { makeAgentJwt } from "./auth.js";
|
|
33
33
|
export type { ProxyResponse, ScanResponse, ScanOutputResponse } from "./client.js";
|
|
34
|
-
export { registerTool, type RegisterToolOptions } from "./register.js";
|
|
34
|
+
export { registerTool, type RegisterToolOptions, type RegisterToolClassificationOptions, type RegisterToolClassificationOnly, } from "./register.js";
|
|
35
35
|
export { TAXONOMY, validateClassification, computeScope, type ToolClassification, type CategorySpec, type SubcategorySpec, } from "./taxonomy.js";
|
|
36
|
-
export { ClampdClassificationError } from "./errors.js";
|
|
36
|
+
export { ClampdClassificationError, ClampdUnregisteredToolError } from "./errors.js";
|
|
37
37
|
export { contractHash, type ToolContract } from "./contract-hash.js";
|
|
38
38
|
declare function guard<TArgs extends unknown[], TReturn>(fn: (...args: TArgs) => Promise<TReturn>, opts: GuardOptions): (...args: TArgs) => Promise<TReturn>;
|
|
39
39
|
declare function tools(toolDefs: OpenAITool[], opts: WrapOptions): OpenAITool[];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import { createHash } from "node:crypto";
|
|
22
22
|
import { ClampdBlockedError } from "./interceptor.js";
|
|
23
|
+
import { ClampdUnregisteredToolError } from "./errors.js";
|
|
23
24
|
import { withDelegation, getDelegation, delegationHeaders } from "./delegation.js";
|
|
24
25
|
import { scanForSchemaInjection } from "./schema-injection.js";
|
|
25
26
|
import { guardOpenAIStream, guardAnthropicStream } from "./stream-guard.js";
|
|
@@ -28,6 +29,7 @@ import { getClient, init, _reset, sortedStringify } from "./config.js";
|
|
|
28
29
|
import { contractHash } from "./contract-hash.js";
|
|
29
30
|
import { inspectResponse, schemaInjectionPreScan, extractOpenAIToolNames, extractAnthropicToolNames, scanInputOpenAI, scanInputAnthropic, scanOutputContent, guardToolCallWithDelegation } from "./guardrails.js";
|
|
30
31
|
import { registerTool as _registerTool } from "./register.js";
|
|
32
|
+
import { raiseIfUnregistered, _registeredDescriptors } from "./_frameworkAdapters.js";
|
|
31
33
|
// ── Public API ──────────────────────────────────────────────────────
|
|
32
34
|
export { ClampdBlockedError } from "./interceptor.js";
|
|
33
35
|
export { delegationHeaders } from "./delegation.js";
|
|
@@ -39,9 +41,9 @@ export { verifyScopeToken, requireScope, getCurrentScopeToken, ScopeVerification
|
|
|
39
41
|
export { ClampdClient } from "./client.js";
|
|
40
42
|
export { makeAgentJwt } from "./auth.js";
|
|
41
43
|
// ── Explicit tool registration ──────────────────────────────────────
|
|
42
|
-
export { registerTool } from "./register.js";
|
|
44
|
+
export { registerTool, } from "./register.js";
|
|
43
45
|
export { TAXONOMY, validateClassification, computeScope, } from "./taxonomy.js";
|
|
44
|
-
export { ClampdClassificationError } from "./errors.js";
|
|
46
|
+
export { ClampdClassificationError, ClampdUnregisteredToolError } from "./errors.js";
|
|
45
47
|
export { contractHash } from "./contract-hash.js";
|
|
46
48
|
/** Recursively freeze an object and all nested objects/arrays. */
|
|
47
49
|
function deepFreeze(obj) {
|
|
@@ -64,7 +66,12 @@ function guard(fn, opts) {
|
|
|
64
66
|
// when the contract itself actually changes, not on trivial source
|
|
65
67
|
// differences (closures, bundling, minification). Callers may
|
|
66
68
|
// override with an explicit `descriptorHash`.
|
|
69
|
+
//
|
|
70
|
+
// Resolution order: explicit override → cached hash from a prior
|
|
71
|
+
// `registerTool(toolName, ...)` call → recompute from
|
|
72
|
+
// description + paramSchema (with sensible empty defaults).
|
|
67
73
|
const descriptorHash = opts.descriptorHash
|
|
74
|
+
?? _registeredDescriptors.get(toolName)
|
|
68
75
|
?? contractHash({
|
|
69
76
|
name: toolName,
|
|
70
77
|
description: opts.description ?? "",
|
|
@@ -89,6 +96,8 @@ function guard(fn, opts) {
|
|
|
89
96
|
const res = await client.proxy(toolName, proxyParams, targetUrl, undefined, descriptorHash);
|
|
90
97
|
requestId = res.request_id;
|
|
91
98
|
scopeToken = res.scope_token ?? "";
|
|
99
|
+
// Promote unregistered-tool denials before generic block.
|
|
100
|
+
raiseIfUnregistered(toolName, res);
|
|
92
101
|
if (!res.allowed) {
|
|
93
102
|
// Gateway errors with failOpen: skip enforcement
|
|
94
103
|
if (failOpen && res._gatewayError) {
|
|
@@ -102,6 +111,11 @@ function guard(fn, opts) {
|
|
|
102
111
|
catch (e) {
|
|
103
112
|
if (e instanceof ClampdBlockedError)
|
|
104
113
|
throw e;
|
|
114
|
+
// Re-throw the typed unregistered error untouched — it carries
|
|
115
|
+
// the actionable hint and must not be reshaped into a generic
|
|
116
|
+
// ClampdBlockedError.
|
|
117
|
+
if (e instanceof ClampdUnregisteredToolError)
|
|
118
|
+
throw e;
|
|
105
119
|
if (!failOpen)
|
|
106
120
|
throw new ClampdBlockedError({
|
|
107
121
|
request_id: "error", allowed: false, risk_score: 1.0,
|
|
@@ -149,8 +163,10 @@ function tools(toolDefs, opts) {
|
|
|
149
163
|
}
|
|
150
164
|
let scopeToken = "";
|
|
151
165
|
try {
|
|
152
|
-
const
|
|
166
|
+
const registeredHash = _registeredDescriptors.get(tool.function.name);
|
|
167
|
+
const res = await client.proxy(tool.function.name, proxyParams, targetUrl, undefined, registeredHash);
|
|
153
168
|
scopeToken = res.scope_token ?? "";
|
|
169
|
+
raiseIfUnregistered(tool.function.name, res);
|
|
154
170
|
if (!res.allowed) {
|
|
155
171
|
if (failOpen && res._gatewayError) {
|
|
156
172
|
// fall through — allow execution
|
|
@@ -163,6 +179,8 @@ function tools(toolDefs, opts) {
|
|
|
163
179
|
catch (e) {
|
|
164
180
|
if (e instanceof ClampdBlockedError)
|
|
165
181
|
throw e;
|
|
182
|
+
if (e instanceof ClampdUnregisteredToolError)
|
|
183
|
+
throw e;
|
|
166
184
|
if (!failOpen)
|
|
167
185
|
throw new ClampdBlockedError({
|
|
168
186
|
request_id: "error", allowed: false, risk_score: 1.0,
|
|
@@ -400,7 +418,11 @@ function adk(opts) {
|
|
|
400
418
|
};
|
|
401
419
|
}
|
|
402
420
|
try {
|
|
403
|
-
const
|
|
421
|
+
const registeredHash = _registeredDescriptors.get(toolName);
|
|
422
|
+
const res = await client.proxy(toolName, proxyParams, targetUrl, undefined, registeredHash);
|
|
423
|
+
// Promote unregistered-tool denials so callers get a typed
|
|
424
|
+
// exception (ADK surfaces the `error.message` to the model).
|
|
425
|
+
raiseIfUnregistered(toolName, res);
|
|
404
426
|
if (res.allowed && res.scope_token) {
|
|
405
427
|
setScopeToken(res.scope_token);
|
|
406
428
|
_lastScopeToken = res.scope_token;
|
|
@@ -412,6 +434,12 @@ function adk(opts) {
|
|
|
412
434
|
}
|
|
413
435
|
}
|
|
414
436
|
catch (e) {
|
|
437
|
+
// ADK callbacks can't propagate exceptions cleanly through the
|
|
438
|
+
// model loop — surface the unregistered hint as the error
|
|
439
|
+
// string so the agent author sees the actionable fix.
|
|
440
|
+
if (e instanceof ClampdUnregisteredToolError) {
|
|
441
|
+
return { error: e.message };
|
|
442
|
+
}
|
|
415
443
|
if (e instanceof ClampdBlockedError) {
|
|
416
444
|
return { error: e.response.denial_reason || "Blocked by Clampd gateway" };
|
|
417
445
|
}
|
|
@@ -469,9 +497,11 @@ function vercelAI(toolDefs, opts) {
|
|
|
469
497
|
let requestId = "";
|
|
470
498
|
let scopeToken = "";
|
|
471
499
|
try {
|
|
472
|
-
const
|
|
500
|
+
const registeredHash = _registeredDescriptors.get(toolName);
|
|
501
|
+
const res = await client.proxy(toolName, proxyParams, targetUrl, undefined, registeredHash);
|
|
473
502
|
requestId = res.request_id;
|
|
474
503
|
scopeToken = res.scope_token ?? "";
|
|
504
|
+
raiseIfUnregistered(toolName, res);
|
|
475
505
|
if (!res.allowed) {
|
|
476
506
|
throw new ClampdBlockedError(res);
|
|
477
507
|
}
|
|
@@ -479,6 +509,8 @@ function vercelAI(toolDefs, opts) {
|
|
|
479
509
|
catch (e) {
|
|
480
510
|
if (e instanceof ClampdBlockedError)
|
|
481
511
|
throw e;
|
|
512
|
+
if (e instanceof ClampdUnregisteredToolError)
|
|
513
|
+
throw e;
|
|
482
514
|
if (!failOpen)
|
|
483
515
|
throw new ClampdBlockedError({
|
|
484
516
|
request_id: "error", allowed: false, risk_score: 1.0,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"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"}
|
package/dist/interceptor.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { contractHash } from "./contract-hash.js";
|
|
14
14
|
import { setScopeToken, withScopeToken } from "./tool-verify.js";
|
|
15
|
+
import { raiseIfUnregistered } from "./_frameworkAdapters.js";
|
|
15
16
|
// ── Error ─────────────────────────────────────────────────────────
|
|
16
17
|
/**
|
|
17
18
|
* Thrown when the Clampd proxy denies a tool call and `blockOnDeny`
|
|
@@ -85,6 +86,11 @@ export function wrapFunction(fn, opts) {
|
|
|
85
86
|
? paramExtractor(...args)
|
|
86
87
|
: defaultExtractParams(args);
|
|
87
88
|
const proxyRes = await client.proxy(toolName, params, targetUrl, promptContext, descriptorHash);
|
|
89
|
+
// Promote "tool not registered" denials to a typed error so callers
|
|
90
|
+
// can fix it at the registration site instead of treating it as a
|
|
91
|
+
// policy decision they could relax. Must run before the generic
|
|
92
|
+
// ClampdBlockedError throw below.
|
|
93
|
+
raiseIfUnregistered(toolName, proxyRes);
|
|
88
94
|
if (!proxyRes.allowed && blockOnDeny) {
|
|
89
95
|
throw new ClampdBlockedError(proxyRes);
|
|
90
96
|
}
|
|
@@ -121,6 +127,7 @@ export function wrapOpenAITools(tools, opts) {
|
|
|
121
127
|
});
|
|
122
128
|
const wrappedExecute = async (args) => {
|
|
123
129
|
const proxyRes = await client.proxy(tool.function.name, args, targetUrl, undefined, descriptorHash);
|
|
130
|
+
raiseIfUnregistered(tool.function.name, proxyRes);
|
|
124
131
|
if (!proxyRes.allowed && blockOnDeny) {
|
|
125
132
|
throw new ClampdBlockedError(proxyRes);
|
|
126
133
|
}
|
|
@@ -192,6 +199,7 @@ export class ClampdGuard {
|
|
|
192
199
|
})
|
|
193
200
|
: undefined;
|
|
194
201
|
const proxyResponse = await this.client.proxy(tool, params, url, undefined, descriptorHash);
|
|
202
|
+
raiseIfUnregistered(tool, proxyResponse);
|
|
195
203
|
if (!proxyResponse.allowed) {
|
|
196
204
|
throw new ClampdBlockedError(proxyResponse);
|
|
197
205
|
}
|
package/dist/interceptor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../src/interceptor.ts"],"names":[],"mappings":"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"}
|
package/dist/langchain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAmC/D,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,yBAAyB;;;WAsCI,MAAM;;;uCAoC1C"}
|
package/dist/langchain.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Requires @langchain/core as a peer dependency.
|
|
8
8
|
*/
|
|
9
9
|
import { contractHash } from "./contract-hash.js";
|
|
10
|
+
import { raiseIfUnregistered, _registeredDescriptors } from "./_frameworkAdapters.js";
|
|
10
11
|
// ── Lazy imports with helpful errors ───────────────────────────────
|
|
11
12
|
async function loadDeps() {
|
|
12
13
|
let DynamicStructuredTool;
|
|
@@ -63,7 +64,7 @@ export async function createClampdDatabaseTool(opts) {
|
|
|
63
64
|
// informational only" rather than blocking the call.
|
|
64
65
|
parameters = {};
|
|
65
66
|
}
|
|
66
|
-
const
|
|
67
|
+
const computedHash = contractHash({
|
|
67
68
|
name: toolName,
|
|
68
69
|
description: toolDescription,
|
|
69
70
|
parameters,
|
|
@@ -73,7 +74,16 @@ export async function createClampdDatabaseTool(opts) {
|
|
|
73
74
|
description: toolDescription,
|
|
74
75
|
schema,
|
|
75
76
|
func: async ({ query }) => {
|
|
77
|
+
// Prefer the hash registered via clampd.registerTool() so this
|
|
78
|
+
// adapter agrees with whatever the dashboard last approved.
|
|
79
|
+
const descriptorHash = _registeredDescriptors.get(toolName) ?? computedHash;
|
|
76
80
|
const result = await opts.client.proxy(toolName, { query }, targetUrl, `Agent executing SQL: ${query.slice(0, 200)}`, descriptorHash);
|
|
81
|
+
// Surface unregistered-tool denials as a typed exception. The
|
|
82
|
+
// factory's normal "blocked" path returns a string so the
|
|
83
|
+
// LangChain agent sees a tool-result message rather than an
|
|
84
|
+
// exception — but unregistered tools are a developer error,
|
|
85
|
+
// not a runtime policy decision, so they should throw.
|
|
86
|
+
raiseIfUnregistered(toolName, result);
|
|
77
87
|
if (!result.allowed) {
|
|
78
88
|
return (`BLOCKED: ${result.denial_reason} ` +
|
|
79
89
|
`(risk_score=${result.risk_score.toFixed(2)}, ` +
|
package/dist/langchain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain.js","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"langchain.js","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* time, the SDK POSTs the already-classified descriptor to the backend,
|
|
11
11
|
* and the tool skips the dashboard approval queue entirely.
|
|
12
12
|
*
|
|
13
|
-
* API shape choice: the `classification`
|
|
13
|
+
* API shape choice: the `classification` field is a single
|
|
14
14
|
* `ToolClassification` discriminated-union object rather than three
|
|
15
15
|
* independent string params. This lets the tsc compiler narrow the valid
|
|
16
16
|
* `operation` values based on the (`category`, `subcategory`) pair the
|
|
@@ -18,8 +18,27 @@
|
|
|
18
18
|
* "query"`, the only valid `operation` is `"read"`. That compile-time
|
|
19
19
|
* narrowing is the whole point of the feature and would be lost if we
|
|
20
20
|
* took three separate strings.
|
|
21
|
+
*
|
|
22
|
+
* Three call shapes are accepted (overloads):
|
|
23
|
+
*
|
|
24
|
+
* 1. `registerTool({ name, classification, ... })` — original options-bag
|
|
25
|
+
* form. Kept for backward compatibility with v0.15 callers.
|
|
26
|
+
* 2. `registerTool(name, { category, subcategory, operation, ... })` —
|
|
27
|
+
* positional form, mirrors Python's `register_tool(name, *, ...)`.
|
|
28
|
+
* 3. `registerTool(toolObject, { category, subcategory, operation })` —
|
|
29
|
+
* pass a LangChain `BaseTool`, OpenAI tool def, or Anthropic tool
|
|
30
|
+
* def directly. The SDK extracts name / description / paramSchema
|
|
31
|
+
* via duck typing in `_frameworkAdapters.extractToolDescriptor`.
|
|
32
|
+
*
|
|
33
|
+
* Forms 2 and 3 disallow passing both a tool object AND a `description`
|
|
34
|
+
* / `paramSchema` override — the tool object is the source of truth,
|
|
35
|
+
* mixing the two is almost always a mistake.
|
|
21
36
|
*/
|
|
22
37
|
import { type ToolClassification } from "./taxonomy.js";
|
|
38
|
+
/**
|
|
39
|
+
* Options bag accepted by the original (v0.15) `registerTool(opts)`
|
|
40
|
+
* call shape. Still exported for callers that use the bag form.
|
|
41
|
+
*/
|
|
23
42
|
export interface RegisterToolOptions {
|
|
24
43
|
/** Tool name as it will appear in proxy requests (e.g. "db.query"). */
|
|
25
44
|
name: string;
|
|
@@ -53,6 +72,36 @@ export interface RegisterToolOptions {
|
|
|
53
72
|
/** API key for dashboard auth. Falls back to `CLAMPD_API_KEY`. */
|
|
54
73
|
apiKey?: string;
|
|
55
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Common backend-routing fields shared by the new overload shapes.
|
|
77
|
+
* Mirrors the routing fields on {@link RegisterToolOptions} so the
|
|
78
|
+
* three forms accept the same env-fallback semantics.
|
|
79
|
+
*/
|
|
80
|
+
interface RegisterToolRouting {
|
|
81
|
+
orgId?: string;
|
|
82
|
+
dashboardUrl?: string;
|
|
83
|
+
apiKey?: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Classification triple plus optional description / paramSchema /
|
|
87
|
+
* routing fields, accepted by the `registerTool(name, opts)` overload.
|
|
88
|
+
*
|
|
89
|
+
* Defined as `ToolClassification & {...}` so the discriminated union's
|
|
90
|
+
* narrowing still applies — the compiler still rejects e.g.
|
|
91
|
+
* `{ category: "db", subcategory: "query", operation: "write" }` at
|
|
92
|
+
* the call site.
|
|
93
|
+
*/
|
|
94
|
+
export type RegisterToolClassificationOptions = ToolClassification & RegisterToolRouting & {
|
|
95
|
+
description?: string;
|
|
96
|
+
paramSchema?: object;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Same as {@link RegisterToolClassificationOptions} but without
|
|
100
|
+
* `description` / `paramSchema` — the framework tool object passed as
|
|
101
|
+
* the first arg is the source of truth for those, so accepting them
|
|
102
|
+
* here too would just create ambiguity.
|
|
103
|
+
*/
|
|
104
|
+
export type RegisterToolClassificationOnly = ToolClassification & RegisterToolRouting;
|
|
56
105
|
/**
|
|
57
106
|
* Register a classified tool descriptor with the Clampd backend.
|
|
58
107
|
*
|
|
@@ -64,13 +113,15 @@ export interface RegisterToolOptions {
|
|
|
64
113
|
* source: "sdk" }` to
|
|
65
114
|
* `/v1/orgs/{orgId}/tool-descriptors/register` on the dashboard
|
|
66
115
|
* API.
|
|
67
|
-
* 3.
|
|
116
|
+
* 3. Records the resulting `(toolName, descriptorHash)` pair in a
|
|
117
|
+
* process-local map so framework callbacks can look up the
|
|
118
|
+
* authoritative hash later, instead of recomputing one from
|
|
119
|
+
* partial information.
|
|
120
|
+
* 4. Never throws on network failure — logs a warning and returns.
|
|
68
121
|
* App startup must not be blocked by a dashboard outage.
|
|
69
|
-
*
|
|
70
|
-
* Backend endpoint status: the dashboard API does not yet expose a
|
|
71
|
-
* `/register` route. See the report in the PR that introduces this
|
|
72
|
-
* function; until the backend catches up, calls will log the warning
|
|
73
|
-
* path and be no-ops.
|
|
74
122
|
*/
|
|
75
123
|
export declare function registerTool(opts: RegisterToolOptions): Promise<void>;
|
|
124
|
+
export declare function registerTool(name: string, opts: RegisterToolClassificationOptions): Promise<void>;
|
|
125
|
+
export declare function registerTool(tool: object, opts: RegisterToolClassificationOnly): Promise<void>;
|
|
126
|
+
export {};
|
|
76
127
|
//# sourceMappingURL=register.d.ts.map
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAWvB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,cAAc,EAAE,kBAAkB,CAAC;IACnC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iCAAiC,GAAG,kBAAkB,GAChE,mBAAmB,GAAG;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,kBAAkB,GAC7D,mBAAmB,CAAC;AAItB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7E,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iCAAiC,GACtC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjB,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/register.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* time, the SDK POSTs the already-classified descriptor to the backend,
|
|
11
11
|
* and the tool skips the dashboard approval queue entirely.
|
|
12
12
|
*
|
|
13
|
-
* API shape choice: the `classification`
|
|
13
|
+
* API shape choice: the `classification` field is a single
|
|
14
14
|
* `ToolClassification` discriminated-union object rather than three
|
|
15
15
|
* independent string params. This lets the tsc compiler narrow the valid
|
|
16
16
|
* `operation` values based on the (`category`, `subcategory`) pair the
|
|
@@ -18,38 +18,49 @@
|
|
|
18
18
|
* "query"`, the only valid `operation` is `"read"`. That compile-time
|
|
19
19
|
* narrowing is the whole point of the feature and would be lost if we
|
|
20
20
|
* took three separate strings.
|
|
21
|
+
*
|
|
22
|
+
* Three call shapes are accepted (overloads):
|
|
23
|
+
*
|
|
24
|
+
* 1. `registerTool({ name, classification, ... })` — original options-bag
|
|
25
|
+
* form. Kept for backward compatibility with v0.15 callers.
|
|
26
|
+
* 2. `registerTool(name, { category, subcategory, operation, ... })` —
|
|
27
|
+
* positional form, mirrors Python's `register_tool(name, *, ...)`.
|
|
28
|
+
* 3. `registerTool(toolObject, { category, subcategory, operation })` —
|
|
29
|
+
* pass a LangChain `BaseTool`, OpenAI tool def, or Anthropic tool
|
|
30
|
+
* def directly. The SDK extracts name / description / paramSchema
|
|
31
|
+
* via duck typing in `_frameworkAdapters.extractToolDescriptor`.
|
|
32
|
+
*
|
|
33
|
+
* Forms 2 and 3 disallow passing both a tool object AND a `description`
|
|
34
|
+
* / `paramSchema` override — the tool object is the source of truth,
|
|
35
|
+
* mixing the two is almost always a mistake.
|
|
21
36
|
*/
|
|
22
37
|
import { computeScope, validateClassification, } from "./taxonomy.js";
|
|
23
38
|
import { ClampdClassificationError } from "./errors.js";
|
|
24
39
|
import { sharedConfig } from "./config.js";
|
|
25
40
|
import { contractHash } from "./contract-hash.js";
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* Behaviour:
|
|
31
|
-
* 1. Runtime-validates the classification even though the type system
|
|
32
|
-
* already enforces it — callers who bypass `ToolClassification` via
|
|
33
|
-
* `as any` will get a `ClampdClassificationError`.
|
|
34
|
-
* 2. POSTs `{ name, category, subcategory, operation, description,
|
|
35
|
-
* source: "sdk" }` to
|
|
36
|
-
* `/v1/orgs/{orgId}/tool-descriptors/register` on the dashboard
|
|
37
|
-
* API.
|
|
38
|
-
* 3. Never throws on network failure — logs a warning and returns.
|
|
39
|
-
* App startup must not be blocked by a dashboard outage.
|
|
40
|
-
*
|
|
41
|
-
* Backend endpoint status: the dashboard API does not yet expose a
|
|
42
|
-
* `/register` route. See the report in the PR that introduces this
|
|
43
|
-
* function; until the backend catches up, calls will log the warning
|
|
44
|
-
* path and be no-ops.
|
|
45
|
-
*/
|
|
46
|
-
export async function registerTool(opts) {
|
|
41
|
+
import { extractToolDescriptor, _registeredDescriptors, } from "./_frameworkAdapters.js";
|
|
42
|
+
export async function registerTool(arg1, arg2) {
|
|
43
|
+
// Normalise the three call shapes into a single internal options bag.
|
|
44
|
+
const opts = _normalizeArgs(arg1, arg2);
|
|
47
45
|
const { name, classification, description } = opts;
|
|
48
46
|
// Runtime validation — belt and suspenders for callers that bypass
|
|
49
47
|
// the discriminated union via `as any` or dynamic values.
|
|
50
48
|
if (!validateClassification(classification.category, classification.subcategory, classification.operation)) {
|
|
51
49
|
throw new ClampdClassificationError(classification.category, classification.subcategory, classification.operation);
|
|
52
50
|
}
|
|
51
|
+
// Compute the contract hash client-side first so we can record it in
|
|
52
|
+
// `_registeredDescriptors` even when we skip the network call (e.g.
|
|
53
|
+
// missing orgId in dev). The framework wrappers consult this map to
|
|
54
|
+
// forward the canonical hash to the gateway, which is what makes
|
|
55
|
+
// descriptor-hash checks survive without round-tripping through the
|
|
56
|
+
// dashboard.
|
|
57
|
+
const paramSchema = opts.paramSchema ?? {};
|
|
58
|
+
const descriptorHash = contractHash({
|
|
59
|
+
name,
|
|
60
|
+
description: description ?? "",
|
|
61
|
+
parameters: paramSchema,
|
|
62
|
+
});
|
|
63
|
+
_registeredDescriptors.set(name, descriptorHash);
|
|
53
64
|
const orgId = opts.orgId ?? process.env.CLAMPD_ORG_ID ?? "";
|
|
54
65
|
if (!orgId) {
|
|
55
66
|
console.warn("[clampd] registerTool: no orgId provided (and CLAMPD_ORG_ID is unset); skipping backend registration.");
|
|
@@ -60,17 +71,6 @@ export async function registerTool(opts) {
|
|
|
60
71
|
sharedConfig.gatewayUrl ??
|
|
61
72
|
"http://localhost:3000").replace(/\/$/, "");
|
|
62
73
|
const apiKey = opts.apiKey ?? process.env.CLAMPD_API_KEY ?? "";
|
|
63
|
-
// Compute the contract hash client-side and send it to the server.
|
|
64
|
-
// The server validates it matches its own computation (same formula)
|
|
65
|
-
// and stores it as the authoritative descriptor_hash. Subsequent
|
|
66
|
-
// `guard()` calls compute the same hash and the gateway can then
|
|
67
|
-
// distinguish "approved hash" from "rug-pull" cleanly.
|
|
68
|
-
const paramSchema = opts.paramSchema ?? {};
|
|
69
|
-
const descriptorHash = contractHash({
|
|
70
|
-
name,
|
|
71
|
-
description: description ?? "",
|
|
72
|
-
parameters: paramSchema,
|
|
73
|
-
});
|
|
74
74
|
const body = {
|
|
75
75
|
name,
|
|
76
76
|
category: classification.category,
|
|
@@ -102,4 +102,69 @@ export async function registerTool(opts) {
|
|
|
102
102
|
console.warn(`[clampd] registerTool: failed to reach dashboard for ${name}: ${msg}`);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
+
// ── Internal: argument normalisation ────────────────────────────────
|
|
106
|
+
/**
|
|
107
|
+
* Detect which of the three overload shapes the caller used and return
|
|
108
|
+
* a single canonical {@link RegisterToolOptions}. Throws `TypeError`
|
|
109
|
+
* for invalid combinations (notably: passing a tool object alongside a
|
|
110
|
+
* `description`/`paramSchema` override).
|
|
111
|
+
*/
|
|
112
|
+
function _normalizeArgs(arg1, arg2) {
|
|
113
|
+
// Form 1: registerTool({ name, classification, ... })
|
|
114
|
+
if (arg2 === undefined &&
|
|
115
|
+
typeof arg1 === "object" &&
|
|
116
|
+
arg1 !== null &&
|
|
117
|
+
"name" in arg1 &&
|
|
118
|
+
"classification" in arg1) {
|
|
119
|
+
return arg1;
|
|
120
|
+
}
|
|
121
|
+
if (arg2 === undefined) {
|
|
122
|
+
throw new TypeError("registerTool: expected either registerTool(opts), registerTool(name, opts), or registerTool(toolObject, opts).");
|
|
123
|
+
}
|
|
124
|
+
const classification = {
|
|
125
|
+
category: arg2.category,
|
|
126
|
+
subcategory: arg2.subcategory,
|
|
127
|
+
operation: arg2.operation,
|
|
128
|
+
};
|
|
129
|
+
const routing = {
|
|
130
|
+
orgId: arg2.orgId,
|
|
131
|
+
dashboardUrl: arg2.dashboardUrl,
|
|
132
|
+
apiKey: arg2.apiKey,
|
|
133
|
+
};
|
|
134
|
+
// Form 2: registerTool(name, opts)
|
|
135
|
+
if (typeof arg1 === "string") {
|
|
136
|
+
const o = arg2;
|
|
137
|
+
return {
|
|
138
|
+
name: arg1,
|
|
139
|
+
classification,
|
|
140
|
+
description: o.description,
|
|
141
|
+
paramSchema: o.paramSchema,
|
|
142
|
+
...routing,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// Form 3: registerTool(toolObject, opts)
|
|
146
|
+
if (typeof arg1 === "object" && arg1 !== null) {
|
|
147
|
+
const o = arg2;
|
|
148
|
+
if (o.description !== undefined || o.paramSchema !== undefined) {
|
|
149
|
+
throw new TypeError("registerTool: pass description/paramSchema OR a tool object, not both. " +
|
|
150
|
+
"The tool object's own metadata is the source of truth — drop the override " +
|
|
151
|
+
"or call registerTool(name, opts) instead.");
|
|
152
|
+
}
|
|
153
|
+
const extracted = extractToolDescriptor(arg1);
|
|
154
|
+
if (!extracted) {
|
|
155
|
+
throw new TypeError("registerTool: first argument is not a recognised tool object. " +
|
|
156
|
+
"Expected a LangChain BaseTool ({ name, schema/args_schema }), " +
|
|
157
|
+
"an OpenAI tool def ({ type: 'function', function: { name, ... } }), " +
|
|
158
|
+
"or an Anthropic tool def ({ name, input_schema }).");
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
name: extracted.name,
|
|
162
|
+
classification,
|
|
163
|
+
description: extracted.description,
|
|
164
|
+
paramSchema: extracted.paramSchema,
|
|
165
|
+
...routing,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
throw new TypeError("registerTool: first argument must be an options object, a tool name string, or a framework tool object.");
|
|
169
|
+
}
|
|
105
170
|
//# sourceMappingURL=register.js.map
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-guard.d.ts","sourceRoot":"","sources":["../src/stream-guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-guard.d.ts","sourceRoot":"","sources":["../src/stream-guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAQ/D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAgHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,kBAAkB,GACvB,aAAa,CAAC,OAAO,CAAC,CAqGxB;AAID;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,kBAAkB,GACvB,aAAa,CAAC,OAAO,CAAC,CAgFxB"}
|
package/dist/stream-guard.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* Text/content chunks pass through immediately with zero added latency.
|
|
7
7
|
*/
|
|
8
8
|
import { ClampdBlockedError } from "./interceptor.js";
|
|
9
|
+
import { ClampdUnregisteredToolError } from "./errors.js";
|
|
10
|
+
import { raiseIfUnregistered, _registeredDescriptors } from "./_frameworkAdapters.js";
|
|
9
11
|
import { withDelegation, getDelegation, getCallerAgentId } from "./delegation.js";
|
|
10
12
|
// ── Proxy helper ─────────────────────────────────────────────────
|
|
11
13
|
async function guardToolCall(client, toolName, toolArgs, opts) {
|
|
@@ -20,7 +22,9 @@ async function guardToolCall(client, toolName, toolArgs, opts) {
|
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
24
|
try {
|
|
23
|
-
const
|
|
25
|
+
const registeredHash = _registeredDescriptors.get(toolName);
|
|
26
|
+
const res = await client.proxy(toolName, proxyParams, opts.targetUrl ?? "", undefined, registeredHash, opts.authorizedTools);
|
|
27
|
+
raiseIfUnregistered(toolName, res);
|
|
24
28
|
if (!res.allowed) {
|
|
25
29
|
// Respect failOpen for gateway errors
|
|
26
30
|
if (opts.failOpen && res._gatewayError) {
|
|
@@ -32,6 +36,8 @@ async function guardToolCall(client, toolName, toolArgs, opts) {
|
|
|
32
36
|
catch (e) {
|
|
33
37
|
if (e instanceof ClampdBlockedError)
|
|
34
38
|
throw e;
|
|
39
|
+
if (e instanceof ClampdUnregisteredToolError)
|
|
40
|
+
throw e;
|
|
35
41
|
if (!opts.failOpen)
|
|
36
42
|
throw new ClampdBlockedError({
|
|
37
43
|
request_id: "error",
|
package/dist/stream-guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-guard.js","sourceRoot":"","sources":["../src/stream-guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAkElF,oEAAoE;AAEpE,KAAK,UAAU,aAAa,CAC1B,MAAoB,EACpB,QAAgB,EAChB,QAAiC,EACjC,IAAwB;IAExB,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,WAAW,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7D,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,WAAW,CAAC,WAAW,GAAG;gBACxB,eAAe,EAAE,gBAAgB,EAAE;gBACnC,gBAAgB,EAAE,UAAU,CAAC,KAAK;gBAClC,mBAAmB,EAAE,UAAU,CAAC,OAAO;aACxC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,QAAQ,EACR,WAAW,EACX,IAAI,CAAC,SAAS,IAAI,EAAE,EACpB,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"stream-guard.js","sourceRoot":"","sources":["../src/stream-guard.ts"],"names":[],"mappings":"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"}
|