@clampd/sdk 0.5.2 → 0.6.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/README.md +76 -23
- package/dist/client.d.ts +29 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +102 -38
- package/dist/client.js.map +1 -1
- package/dist/delegation.js +1 -1
- package/dist/delegation.js.map +1 -1
- package/dist/index.d.ts +63 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +226 -22
- package/dist/index.js.map +1 -1
- package/dist/stream-guard.d.ts +39 -0
- package/dist/stream-guard.d.ts.map +1 -0
- package/dist/stream-guard.js +245 -0
- package/dist/stream-guard.js.map +1 -0
- package/dist/tool-verify.js +1 -1
- package/dist/tool-verify.js.map +1 -1
- package/package.json +9 -5
package/dist/index.js
CHANGED
|
@@ -21,20 +21,57 @@
|
|
|
21
21
|
import { createHash } from "node:crypto";
|
|
22
22
|
import { ClampdClient } from "./client.js";
|
|
23
23
|
import { ClampdBlockedError } from "./interceptor.js";
|
|
24
|
-
import { withDelegation, getDelegation,
|
|
24
|
+
import { withDelegation, getDelegation, delegationHeaders } from "./delegation.js";
|
|
25
25
|
import { scanForSchemaInjection } from "./schema-injection.js";
|
|
26
|
+
import { guardOpenAIStream, guardAnthropicStream } from "./stream-guard.js";
|
|
26
27
|
export { ClampdClient } from "./client.js";
|
|
27
28
|
export { makeAgentJwt } from "./auth.js";
|
|
28
29
|
export { ClampdBlockedError } from "./interceptor.js";
|
|
29
30
|
export { withDelegation, getDelegation, getCallerAgentId, delegationHeaders } from "./delegation.js";
|
|
30
31
|
export { scanForSchemaInjection } from "./schema-injection.js";
|
|
31
32
|
export { verifyScopeToken, requireScope, getCurrentScopeToken, ScopeVerificationError, withScopeToken, setScopeToken, fetchJwks, invalidateJwksCache } from "./tool-verify.js";
|
|
33
|
+
export { guardOpenAIStream, guardAnthropicStream } from "./stream-guard.js";
|
|
32
34
|
// ── Global config ─────────────────────────────────────────────────
|
|
33
35
|
let defaultClient = null;
|
|
36
|
+
/** Per-agent client pool — each agent gets its own JWT signed with its own secret. */
|
|
37
|
+
const agentClients = new Map();
|
|
38
|
+
/** Per-agent secrets registered via init({ agents: {...} }) or env vars. */
|
|
39
|
+
const agentSecrets = new Map();
|
|
40
|
+
/** Shared config from init() — gateway URL, API key. */
|
|
41
|
+
let sharedConfig = {};
|
|
42
|
+
/**
|
|
43
|
+
* Get or create a ClampdClient for the given agentId.
|
|
44
|
+
*
|
|
45
|
+
* Per-agent identity: if the agentId has a registered secret (via init({ agents })
|
|
46
|
+
* or env var CLAMPD_SECRET_{agentId}), a dedicated client is created with its own
|
|
47
|
+
* JWT. This means kill/rate-limit/EMA operate on THIS agent, not the init() agent.
|
|
48
|
+
*
|
|
49
|
+
* Fallback: if no per-agent secret exists, uses the default client from init().
|
|
50
|
+
*/
|
|
34
51
|
function getClient(opts) {
|
|
52
|
+
const agentId = opts?.agentId || process.env.CLAMPD_AGENT_ID || "";
|
|
53
|
+
// Check for per-agent client (already created)
|
|
54
|
+
if (agentId && agentClients.has(agentId)) {
|
|
55
|
+
return agentClients.get(agentId);
|
|
56
|
+
}
|
|
57
|
+
// Check for per-agent secret (create dedicated client)
|
|
58
|
+
if (agentId) {
|
|
59
|
+
const envKey = `CLAMPD_SECRET_${agentId.replace(/[^a-zA-Z0-9]/g, "_")}`;
|
|
60
|
+
const secret = agentSecrets.get(agentId) || process.env[envKey];
|
|
61
|
+
if (secret) {
|
|
62
|
+
const client = new ClampdClient({
|
|
63
|
+
agentId,
|
|
64
|
+
gatewayUrl: opts?.gatewayUrl || sharedConfig.gatewayUrl || process.env.CLAMPD_GATEWAY_URL,
|
|
65
|
+
apiKey: opts?.apiKey || sharedConfig.apiKey || process.env.CLAMPD_API_KEY,
|
|
66
|
+
secret,
|
|
67
|
+
});
|
|
68
|
+
agentClients.set(agentId, client);
|
|
69
|
+
return client;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Fallback to default client
|
|
35
73
|
if (defaultClient)
|
|
36
74
|
return defaultClient;
|
|
37
|
-
const agentId = opts?.agentId || process.env.CLAMPD_AGENT_ID || "";
|
|
38
75
|
if (!agentId) {
|
|
39
76
|
throw new Error("No agentId provided. Call clampd.init({ agentId }) first, " +
|
|
40
77
|
"or pass agentId to each function, or set CLAMPD_AGENT_ID env var.");
|
|
@@ -48,12 +85,21 @@ function getClient(opts) {
|
|
|
48
85
|
}
|
|
49
86
|
// ── clampd.init() ─────────────────────────────────────────────────
|
|
50
87
|
function init(opts) {
|
|
88
|
+
sharedConfig = { gatewayUrl: opts.gatewayUrl, apiKey: opts.apiKey };
|
|
89
|
+
// Register per-agent secrets
|
|
90
|
+
if (opts.agents) {
|
|
91
|
+
for (const [id, secret] of Object.entries(opts.agents)) {
|
|
92
|
+
if (secret)
|
|
93
|
+
agentSecrets.set(id, secret);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
51
96
|
defaultClient = new ClampdClient({
|
|
52
97
|
agentId: opts.agentId,
|
|
53
98
|
gatewayUrl: opts.gatewayUrl,
|
|
54
99
|
apiKey: opts.apiKey,
|
|
55
|
-
secret: opts.secret,
|
|
100
|
+
secret: agentSecrets.get(opts.agentId) || opts.secret,
|
|
56
101
|
});
|
|
102
|
+
agentClients.set(opts.agentId, defaultClient);
|
|
57
103
|
return defaultClient;
|
|
58
104
|
}
|
|
59
105
|
// ── Response inspection helper ────────────────────────────────────
|
|
@@ -89,9 +135,8 @@ function guard(fn, opts) {
|
|
|
89
135
|
: { args };
|
|
90
136
|
const delegation = getDelegation();
|
|
91
137
|
const proxyParams = { ...params };
|
|
92
|
-
if (delegation && delegation.chain.length >
|
|
138
|
+
if (delegation && delegation.chain.length > 0) {
|
|
93
139
|
proxyParams._delegation = {
|
|
94
|
-
caller_agent_id: getCallerAgentId(),
|
|
95
140
|
delegation_chain: delegation.chain,
|
|
96
141
|
delegation_trace_id: delegation.traceId,
|
|
97
142
|
};
|
|
@@ -103,7 +148,13 @@ function guard(fn, opts) {
|
|
|
103
148
|
requestId = res.request_id;
|
|
104
149
|
scopeToken = res.scope_token ?? "";
|
|
105
150
|
if (!res.allowed) {
|
|
106
|
-
|
|
151
|
+
// Gateway errors with failOpen: skip enforcement
|
|
152
|
+
if (failOpen && res._gatewayError) {
|
|
153
|
+
// fall through — allow execution
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
throw new ClampdBlockedError(res);
|
|
157
|
+
}
|
|
107
158
|
}
|
|
108
159
|
}
|
|
109
160
|
catch (e) {
|
|
@@ -135,9 +186,8 @@ function tools(toolDefs, opts) {
|
|
|
135
186
|
return withDelegation(opts.agentId ?? "", async () => {
|
|
136
187
|
const delegation = getDelegation();
|
|
137
188
|
const proxyParams = { ...args };
|
|
138
|
-
if (delegation && delegation.chain.length >
|
|
189
|
+
if (delegation && delegation.chain.length > 0) {
|
|
139
190
|
proxyParams._delegation = {
|
|
140
|
-
caller_agent_id: getCallerAgentId(),
|
|
141
191
|
delegation_chain: delegation.chain,
|
|
142
192
|
delegation_trace_id: delegation.traceId,
|
|
143
193
|
};
|
|
@@ -177,9 +227,8 @@ function openai(client, opts) {
|
|
|
177
227
|
client.chat.completions.create = async (...args) => {
|
|
178
228
|
const params = args[0];
|
|
179
229
|
const _authorizedTools = extractToolNames(params);
|
|
180
|
-
// ── STREAMING
|
|
181
|
-
//
|
|
182
|
-
// so tool-call interception cannot work. Run scanInput if enabled, then pass through.
|
|
230
|
+
// ── STREAMING ──
|
|
231
|
+
// Scan input, then wrap the stream to intercept tool calls as they complete.
|
|
183
232
|
if (params?.stream) {
|
|
184
233
|
// ── SCHEMA INJECTION PRE-SCAN ──
|
|
185
234
|
if (params?.messages) {
|
|
@@ -226,7 +275,24 @@ function openai(client, opts) {
|
|
|
226
275
|
}
|
|
227
276
|
}
|
|
228
277
|
}
|
|
229
|
-
|
|
278
|
+
const stream = await originalCreate(...args);
|
|
279
|
+
// Guard streaming tool calls only when guardStream is explicitly enabled.
|
|
280
|
+
// When disabled, log a warning so developers know unguarded tool calls are flowing.
|
|
281
|
+
const hasTools = params?.tools?.length;
|
|
282
|
+
if (hasTools && stream && typeof stream[Symbol.asyncIterator] === "function") {
|
|
283
|
+
if (opts.guardStream) {
|
|
284
|
+
return guardOpenAIStream(stream, clampdClient, {
|
|
285
|
+
agentId: opts.agentId ?? "",
|
|
286
|
+
targetUrl,
|
|
287
|
+
failOpen,
|
|
288
|
+
authorizedTools: _authorizedTools,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
console.warn("[clampd] Streaming with tools detected but guardStream is not enabled. Tool calls in this stream are not guarded. Set { guardStream: true } to enable.");
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return stream;
|
|
230
296
|
}
|
|
231
297
|
// ── SCHEMA INJECTION PRE-SCAN ──
|
|
232
298
|
if (params?.messages) {
|
|
@@ -344,9 +410,8 @@ function openai(client, opts) {
|
|
|
344
410
|
await withDelegation(opts.agentId ?? "", async () => {
|
|
345
411
|
const delegation = getDelegation();
|
|
346
412
|
const proxyParams = { ...toolArgs };
|
|
347
|
-
if (delegation && delegation.chain.length >
|
|
413
|
+
if (delegation && delegation.chain.length > 0) {
|
|
348
414
|
proxyParams._delegation = {
|
|
349
|
-
caller_agent_id: getCallerAgentId(),
|
|
350
415
|
delegation_chain: delegation.chain,
|
|
351
416
|
delegation_trace_id: delegation.traceId,
|
|
352
417
|
};
|
|
@@ -387,9 +452,8 @@ function anthropic(client, opts) {
|
|
|
387
452
|
client.messages.create = async (...args) => {
|
|
388
453
|
const params = args[0];
|
|
389
454
|
const _authorizedTools = extractAnthropicToolNames(params);
|
|
390
|
-
// ── STREAMING
|
|
391
|
-
//
|
|
392
|
-
// so tool-call interception cannot work. Run scanInput if enabled, then pass through.
|
|
455
|
+
// ── STREAMING ──
|
|
456
|
+
// Scan input, then wrap the stream to intercept tool_use blocks as they complete.
|
|
393
457
|
if (params?.stream) {
|
|
394
458
|
// ── SCHEMA INJECTION PRE-SCAN ──
|
|
395
459
|
if (params?.messages) {
|
|
@@ -446,7 +510,23 @@ function anthropic(client, opts) {
|
|
|
446
510
|
}
|
|
447
511
|
}
|
|
448
512
|
}
|
|
449
|
-
|
|
513
|
+
const stream = await originalCreate(...args);
|
|
514
|
+
// Guard streaming tool calls only when guardStream is explicitly enabled.
|
|
515
|
+
const hasTools = params?.tools?.length;
|
|
516
|
+
if (hasTools && stream && typeof stream[Symbol.asyncIterator] === "function") {
|
|
517
|
+
if (opts.guardStream) {
|
|
518
|
+
return guardAnthropicStream(stream, clampdClient, {
|
|
519
|
+
agentId: opts.agentId ?? "",
|
|
520
|
+
targetUrl,
|
|
521
|
+
failOpen,
|
|
522
|
+
authorizedTools: _authorizedTools,
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
console.warn("[clampd] Streaming with tools detected but guardStream is not enabled. Tool calls in this stream are not guarded. Set { guardStream: true } to enable.");
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
return stream;
|
|
450
530
|
}
|
|
451
531
|
// ── SCHEMA INJECTION PRE-SCAN ──
|
|
452
532
|
if (params?.messages) {
|
|
@@ -547,9 +627,8 @@ function anthropic(client, opts) {
|
|
|
547
627
|
await withDelegation(opts.agentId ?? "", async () => {
|
|
548
628
|
const delegation = getDelegation();
|
|
549
629
|
const proxyParams = { ...toolArgs };
|
|
550
|
-
if (delegation && delegation.chain.length >
|
|
630
|
+
if (delegation && delegation.chain.length > 0) {
|
|
551
631
|
proxyParams._delegation = {
|
|
552
|
-
caller_agent_id: getCallerAgentId(),
|
|
553
632
|
delegation_chain: delegation.chain,
|
|
554
633
|
delegation_trace_id: delegation.traceId,
|
|
555
634
|
};
|
|
@@ -572,7 +651,132 @@ function anthropic(client, opts) {
|
|
|
572
651
|
};
|
|
573
652
|
return client;
|
|
574
653
|
}
|
|
575
|
-
|
|
576
|
-
const
|
|
654
|
+
function adk(opts) {
|
|
655
|
+
const client = getClient({ agentId: opts.agentId, secret: opts.secret });
|
|
656
|
+
const { targetUrl = "", failOpen = false, checkResponse = false } = opts;
|
|
657
|
+
const beforeTool = async (toolName, args) => {
|
|
658
|
+
return withDelegation(opts.agentId ?? client.agentId, async () => {
|
|
659
|
+
const delegation = getDelegation();
|
|
660
|
+
const proxyParams = { ...args };
|
|
661
|
+
if (delegation && delegation.chain.length > 0) {
|
|
662
|
+
proxyParams._delegation = {
|
|
663
|
+
delegation_chain: delegation.chain,
|
|
664
|
+
delegation_trace_id: delegation.traceId,
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
try {
|
|
668
|
+
const res = await client.proxy(toolName, proxyParams, targetUrl);
|
|
669
|
+
if (!res.allowed) {
|
|
670
|
+
if (failOpen && res._gatewayError)
|
|
671
|
+
return null;
|
|
672
|
+
return { error: res.denial_reason || "Blocked by Clampd gateway" };
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
catch (e) {
|
|
676
|
+
if (e instanceof ClampdBlockedError) {
|
|
677
|
+
return { error: e.response.denial_reason || "Blocked by Clampd gateway" };
|
|
678
|
+
}
|
|
679
|
+
if (!failOpen) {
|
|
680
|
+
return { error: `Clampd gateway error: ${e}` };
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
return null;
|
|
684
|
+
});
|
|
685
|
+
};
|
|
686
|
+
const result = { beforeTool };
|
|
687
|
+
if (checkResponse) {
|
|
688
|
+
result.afterTool = async (toolName, response) => {
|
|
689
|
+
return withDelegation(opts.agentId ?? client.agentId, async () => {
|
|
690
|
+
try {
|
|
691
|
+
const res = await client.inspect(toolName, response);
|
|
692
|
+
if (!res.allowed) {
|
|
693
|
+
return { error: res.denial_reason || "Response blocked by Clampd gateway" };
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
catch (e) {
|
|
697
|
+
if (e instanceof ClampdBlockedError) {
|
|
698
|
+
return { error: e.response.denial_reason || "Response blocked by Clampd gateway" };
|
|
699
|
+
}
|
|
700
|
+
if (!failOpen) {
|
|
701
|
+
return { error: `Clampd response inspection error: ${e}` };
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
return null;
|
|
705
|
+
});
|
|
706
|
+
};
|
|
707
|
+
}
|
|
708
|
+
return result;
|
|
709
|
+
}
|
|
710
|
+
function vercelAI(toolDefs, opts) {
|
|
711
|
+
const client = getClient({ agentId: opts.agentId });
|
|
712
|
+
const { targetUrl = "", failOpen = false, checkResponse: shouldCheckResponse = false } = opts;
|
|
713
|
+
const wrapped = {};
|
|
714
|
+
for (const [toolName, tool] of Object.entries(toolDefs)) {
|
|
715
|
+
if (typeof tool.execute !== "function") {
|
|
716
|
+
wrapped[toolName] = tool;
|
|
717
|
+
continue;
|
|
718
|
+
}
|
|
719
|
+
const originalExecute = tool.execute;
|
|
720
|
+
const wrappedExecute = async (args) => {
|
|
721
|
+
return withDelegation(opts.agentId ?? "", async () => {
|
|
722
|
+
const delegation = getDelegation();
|
|
723
|
+
const proxyParams = { ...args };
|
|
724
|
+
if (delegation && delegation.chain.length > 0) {
|
|
725
|
+
proxyParams._delegation = {
|
|
726
|
+
delegation_chain: delegation.chain,
|
|
727
|
+
delegation_trace_id: delegation.traceId,
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
let requestId = "";
|
|
731
|
+
let scopeToken = "";
|
|
732
|
+
try {
|
|
733
|
+
const res = await client.proxy(toolName, proxyParams, targetUrl);
|
|
734
|
+
requestId = res.request_id;
|
|
735
|
+
scopeToken = res.scope_token ?? "";
|
|
736
|
+
if (!res.allowed) {
|
|
737
|
+
throw new ClampdBlockedError(res);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
catch (e) {
|
|
741
|
+
if (e instanceof ClampdBlockedError)
|
|
742
|
+
throw e;
|
|
743
|
+
if (!failOpen)
|
|
744
|
+
throw new ClampdBlockedError({
|
|
745
|
+
request_id: "error", allowed: false, risk_score: 1.0,
|
|
746
|
+
denial_reason: String(e), latency_ms: 0, degraded_stages: [], session_flags: [],
|
|
747
|
+
});
|
|
748
|
+
}
|
|
749
|
+
const result = await originalExecute(args);
|
|
750
|
+
if (shouldCheckResponse) {
|
|
751
|
+
await inspectResponse(client, toolName, result, requestId, failOpen, scopeToken);
|
|
752
|
+
}
|
|
753
|
+
return result;
|
|
754
|
+
});
|
|
755
|
+
};
|
|
756
|
+
wrapped[toolName] = { ...tool, execute: wrappedExecute };
|
|
757
|
+
}
|
|
758
|
+
return wrapped;
|
|
759
|
+
}
|
|
760
|
+
// ── clampd.agent() — auto-delegation scope ──────────────────────
|
|
761
|
+
/**
|
|
762
|
+
* Run a function within an agent's delegation scope.
|
|
763
|
+
*
|
|
764
|
+
* Instead of manually using `withDelegation()`, wrap your agent logic
|
|
765
|
+
* with `clampd.agent()` — all `guard()` calls inside automatically
|
|
766
|
+
* inherit the delegation chain.
|
|
767
|
+
*
|
|
768
|
+
* @example
|
|
769
|
+
* ```ts
|
|
770
|
+
* // Before (manual):
|
|
771
|
+
* return withDelegation("orchestrator", async () => { ... });
|
|
772
|
+
*
|
|
773
|
+
* // After (automatic):
|
|
774
|
+
* return clampd.agent("orchestrator", async () => { ... });
|
|
775
|
+
* ```
|
|
776
|
+
*/
|
|
777
|
+
function agent(agentId, fn) {
|
|
778
|
+
return withDelegation(agentId, fn);
|
|
779
|
+
}
|
|
780
|
+
const clampd = { init, guard, tools, openai, anthropic, adk, vercelAI, agent, delegationHeaders, scanForSchemaInjection };
|
|
577
781
|
export default clampd;
|
|
578
782
|
//# sourceMappingURL=index.js.map
|
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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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream interception for OpenAI and Anthropic streaming responses.
|
|
3
|
+
*
|
|
4
|
+
* Accumulates tool call chunks from streaming responses, guards them
|
|
5
|
+
* through the Clampd proxy, and only releases chunks once approved.
|
|
6
|
+
* Text/content chunks pass through immediately with zero added latency.
|
|
7
|
+
*/
|
|
8
|
+
import { ClampdClient } from "./client.js";
|
|
9
|
+
export interface StreamGuardOptions {
|
|
10
|
+
agentId: string;
|
|
11
|
+
targetUrl?: string;
|
|
12
|
+
failOpen?: boolean;
|
|
13
|
+
authorizedTools?: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Wraps an OpenAI streaming async iterable to intercept tool calls.
|
|
17
|
+
* Text chunks pass through immediately. Tool call chunks are buffered
|
|
18
|
+
* until complete, then guarded through the proxy before being released.
|
|
19
|
+
*
|
|
20
|
+
* Uses a SHARED buffer (not per-tool-call) for two reasons:
|
|
21
|
+
*
|
|
22
|
+
* 1. OpenAI sends a single chunk with deltas for multiple tool calls.
|
|
23
|
+
* Per-tool-call buffers would either lose chunks (only store in one)
|
|
24
|
+
* or duplicate them (store in all, yield the same chunk N times).
|
|
25
|
+
*
|
|
26
|
+
* 2. Parallel tool calls in the same LLM response are atomic — if the
|
|
27
|
+
* model says "call weather AND calendar", both must be approved before
|
|
28
|
+
* either executes. If one is denied, the entire response is blocked.
|
|
29
|
+
* Partial release of one tool call's chunks would give the consumer
|
|
30
|
+
* an incomplete response that can't be acted on.
|
|
31
|
+
*/
|
|
32
|
+
export declare function guardOpenAIStream(stream: AsyncIterable<unknown>, client: ClampdClient, opts: StreamGuardOptions): AsyncIterable<unknown>;
|
|
33
|
+
/**
|
|
34
|
+
* Wraps an Anthropic streaming async iterable to intercept tool_use blocks.
|
|
35
|
+
* Text events pass through immediately. Tool use events are buffered per-block,
|
|
36
|
+
* guarded at content_block_stop, then released.
|
|
37
|
+
*/
|
|
38
|
+
export declare function guardAnthropicStream(stream: AsyncIterable<unknown>, client: ClampdClient, opts: StreamGuardOptions): AsyncIterable<unknown>;
|
|
39
|
+
//# sourceMappingURL=stream-guard.d.ts.map
|
|
@@ -0,0 +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;AAM/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;AA6GD;;;;;;;;;;;;;;;;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"}
|