@tenova/swt3-ai 0.3.5 → 0.5.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/README.md +170 -19
- package/dist/adapters/anthropic.js +14 -12
- package/dist/adapters/anthropic.js.map +1 -1
- package/dist/adapters/bedrock.js +6 -4
- package/dist/adapters/bedrock.js.map +1 -1
- package/dist/adapters/ollama.d.ts +13 -0
- package/dist/adapters/ollama.d.ts.map +1 -0
- package/dist/adapters/ollama.js +25 -0
- package/dist/adapters/ollama.js.map +1 -0
- package/dist/adapters/openai.d.ts +1 -1
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js +21 -20
- package/dist/adapters/openai.js.map +1 -1
- package/dist/adapters/vllm.d.ts +13 -0
- package/dist/adapters/vllm.d.ts.map +1 -0
- package/dist/adapters/vllm.js +15 -0
- package/dist/adapters/vllm.js.map +1 -0
- package/dist/buffer.d.ts +1 -0
- package/dist/buffer.d.ts.map +1 -1
- package/dist/buffer.js +15 -2
- package/dist/buffer.js.map +1 -1
- package/dist/clearing.d.ts +12 -2
- package/dist/clearing.d.ts.map +1 -1
- package/dist/clearing.js +70 -35
- package/dist/clearing.js.map +1 -1
- package/dist/config.d.ts +27 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +178 -0
- package/dist/config.js.map +1 -0
- package/dist/demo.js +6 -6
- package/dist/demo.js.map +1 -1
- package/dist/exporters/otel.d.ts +36 -0
- package/dist/exporters/otel.d.ts.map +1 -0
- package/dist/exporters/otel.js +94 -0
- package/dist/exporters/otel.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/witness.d.ts +88 -5
- package/dist/witness.d.ts.map +1 -1
- package/dist/witness.js +238 -19
- package/dist/witness.js.map +1 -1
- package/package.json +46 -3
package/dist/witness.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Copyright (c) 2026 Tenable Nova LLC. Apache 2.0. Patent pending.
|
|
21
21
|
*/
|
|
22
22
|
import { type VercelOnFinishOptions } from "./adapters/vercel-ai.js";
|
|
23
|
-
import type { WitnessReceipt, InferenceRecord } from "./types.js";
|
|
23
|
+
import type { WitnessPayload, WitnessReceipt, InferenceRecord } from "./types.js";
|
|
24
24
|
export interface WitnessOptions {
|
|
25
25
|
endpoint: string;
|
|
26
26
|
apiKey: string;
|
|
@@ -41,6 +41,11 @@ export interface WitnessOptions {
|
|
|
41
41
|
cycleId?: string;
|
|
42
42
|
strict?: boolean;
|
|
43
43
|
policyVersion?: string;
|
|
44
|
+
jurisdiction?: string;
|
|
45
|
+
legalBasis?: string;
|
|
46
|
+
purposeClass?: string;
|
|
47
|
+
onFlush?: (payloads: WitnessPayload[], receipts: WitnessReceipt[]) => void;
|
|
48
|
+
gatewayMode?: boolean;
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
46
51
|
* Raised when strict (gatekeeper) mode blocks an inference due to
|
|
@@ -57,12 +62,27 @@ export declare class Witness {
|
|
|
57
62
|
private buffer;
|
|
58
63
|
private handoffWarned;
|
|
59
64
|
private _strict;
|
|
65
|
+
private _gatewayMode;
|
|
66
|
+
/** True if the SDK is deferring witnessing to an SWT3 Gateway. */
|
|
67
|
+
get gatewayMode(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Create a Witness from a .swt3.yaml config file.
|
|
70
|
+
*
|
|
71
|
+
* @param path - Explicit path to YAML file. If omitted, searches for
|
|
72
|
+
* swt3.yaml or .swt3.yaml in the current directory.
|
|
73
|
+
* @param overrides - Override any field from the YAML file.
|
|
74
|
+
* Code takes precedence over config file.
|
|
75
|
+
* @returns Configured Witness instance.
|
|
76
|
+
*
|
|
77
|
+
* Requires: `npm install yaml`
|
|
78
|
+
*/
|
|
79
|
+
static fromConfig(path?: string, overrides?: Partial<WitnessOptions>): Witness;
|
|
60
80
|
constructor(options: WitnessOptions);
|
|
61
81
|
/**
|
|
62
82
|
* Wrap an AI client with transparent witnessing.
|
|
63
83
|
*
|
|
64
|
-
* Supported: OpenAI, Anthropic
|
|
65
|
-
*
|
|
84
|
+
* Supported: OpenAI, Ollama (auto-detected), Anthropic, Bedrock.
|
|
85
|
+
* For vLLM, use wrapVllm() from adapters/vllm.
|
|
66
86
|
*
|
|
67
87
|
* Usage:
|
|
68
88
|
* const client = witness.wrap(new OpenAI()) as OpenAI;
|
|
@@ -83,7 +103,7 @@ export declare class Witness {
|
|
|
83
103
|
*
|
|
84
104
|
* @throws {GatekeeperError} if guardrail requirements are not met
|
|
85
105
|
*/
|
|
86
|
-
gateCheck(_messages?: unknown, _model?: string):
|
|
106
|
+
gateCheck(_messages?: unknown, _model?: string): string;
|
|
87
107
|
/**
|
|
88
108
|
* Wrap a function as a witnessed tool call (AI-TOOL.1).
|
|
89
109
|
*
|
|
@@ -110,6 +130,69 @@ export declare class Witness {
|
|
|
110
130
|
* factor_c = 1 if access granted, 0 if denied/failed
|
|
111
131
|
*/
|
|
112
132
|
wrapAccess<T extends (...args: any[]) => any>(fn: T, resourceName?: string, scope?: string): T;
|
|
133
|
+
/**
|
|
134
|
+
* Witness a security/adversarial detection result (AI-SEC.1).
|
|
135
|
+
*
|
|
136
|
+
* Call after running your own detection system (Prompt Guard, LlamaGuard,
|
|
137
|
+
* NeMo Guardrails, etc.) to record the result as a tamper-evident anchor.
|
|
138
|
+
*
|
|
139
|
+
* @param threatScore - Detection score from your system (0-1000 scale).
|
|
140
|
+
* @param options.threshold - Score above which input is a threat. Default 500.
|
|
141
|
+
* @param options.threatType - One of: none, prompt_injection, data_poisoning,
|
|
142
|
+
* model_extraction, jailbreak, adversarial_input.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* const score = await promptGuard.scan(userInput);
|
|
146
|
+
* witness.witnessSecurityScan(score, { threatType: "prompt_injection" });
|
|
147
|
+
*/
|
|
148
|
+
witnessSecurityScan(threatScore: number, options?: {
|
|
149
|
+
threshold?: number;
|
|
150
|
+
threatType?: string;
|
|
151
|
+
}): void;
|
|
152
|
+
/**
|
|
153
|
+
* Witness an input validation/sanitization result (AI-SEC.2).
|
|
154
|
+
*
|
|
155
|
+
* Call after validating or sanitizing user input before inference.
|
|
156
|
+
*
|
|
157
|
+
* @param passed - True if input accepted (clean or sanitized). False if blocked.
|
|
158
|
+
* @param options.sanitized - True if input was modified during validation.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* const { clean, modified } = mySanitizer.validate(userInput);
|
|
162
|
+
* witness.witnessInputValidation(clean, { sanitized: modified });
|
|
163
|
+
*/
|
|
164
|
+
witnessInputValidation(passed: boolean, options?: {
|
|
165
|
+
sanitized?: boolean;
|
|
166
|
+
}): void;
|
|
167
|
+
/**
|
|
168
|
+
* Revoke a previously-issued witness anchor (AI-REV.1).
|
|
169
|
+
*
|
|
170
|
+
* Mints an AI-REV.1 anchor that references the target anchor's
|
|
171
|
+
* fingerprint, creating an immutable revocation receipt.
|
|
172
|
+
*
|
|
173
|
+
* @param fingerprint - The 12-character anchor fingerprint to revoke.
|
|
174
|
+
* @param reason - Revocation reason: model_recall, policy_violation,
|
|
175
|
+
* data_contamination, consent_withdrawal, regulatory_order,
|
|
176
|
+
* error_correction, or unspecified.
|
|
177
|
+
* @returns The fingerprint of the revocation anchor itself.
|
|
178
|
+
*/
|
|
179
|
+
revoke(fingerprint: string, reason?: string): string;
|
|
180
|
+
/**
|
|
181
|
+
* Query the Compliance Manifest API for this tenant's anchors.
|
|
182
|
+
*
|
|
183
|
+
* Returns a structured compliance manifest with summary, coverage,
|
|
184
|
+
* and individual anchor records.
|
|
185
|
+
*/
|
|
186
|
+
manifest(filters?: {
|
|
187
|
+
model?: string;
|
|
188
|
+
procedure?: string;
|
|
189
|
+
framework?: string;
|
|
190
|
+
verdict?: string;
|
|
191
|
+
since?: string;
|
|
192
|
+
until?: string;
|
|
193
|
+
agent_id?: string;
|
|
194
|
+
limit?: number;
|
|
195
|
+
}): Promise<Record<string, unknown>>;
|
|
113
196
|
/**
|
|
114
197
|
* Record a witnessed inference. Extracts factors, applies clearing,
|
|
115
198
|
* and enqueues payloads for background flush.
|
|
@@ -118,7 +201,7 @@ export declare class Witness {
|
|
|
118
201
|
* destination BEFORE clearing proceeds. If the handoff fails, the
|
|
119
202
|
* payload is NOT transmitted.
|
|
120
203
|
*/
|
|
121
|
-
record(inference: InferenceRecord): void;
|
|
204
|
+
record(inference: InferenceRecord, authorizationId?: string): void;
|
|
122
205
|
/**
|
|
123
206
|
* Create a Vercel AI SDK `onFinish` callback for streamText / generateText.
|
|
124
207
|
*
|
package/dist/witness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"witness.d.ts","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"witness.d.ts","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAaH,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAiB,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGjG,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAEpB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO;CAS1E;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAU;IAE9B,kEAAkE;IAClE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO;gBAKlE,OAAO,EAAE,cAAc;IA8CnC;;;;;;;;;OASG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IA6B9B,qEAAqE;IACrE,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAkCvD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IAiExE;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC1C,EAAE,EAAE,CAAC,EACL,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,CAAC;IAiEJ;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACpD,IAAI;IA+CP;;;;;;;;;;;OAWG;IACH,sBAAsB,CACpB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAChC,IAAI;IA0CP;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,MAAsB,GAAG,MAAM;IAiCnE;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,GAAE;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA2BzC;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAkDlE;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI;IAI1E,yCAAyC;IACnC,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIxC,qDAAqD;IAC/C,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIvC,kCAAkC;IAClC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,2CAA2C;IAC3C,IAAI,QAAQ,IAAI,cAAc,EAAE,CAE/B;CACF"}
|
package/dist/witness.js
CHANGED
|
@@ -20,14 +20,17 @@
|
|
|
20
20
|
* Copyright (c) 2026 Tenable Nova LLC. Apache 2.0. Patent pending.
|
|
21
21
|
*/
|
|
22
22
|
import { randomUUID } from "node:crypto";
|
|
23
|
-
import { sha256Truncated } from "./fingerprint.js";
|
|
24
|
-
import { extractPayloads, extractGatekeeperPayload } from "./clearing.js";
|
|
23
|
+
import { sha256Truncated, mintFingerprint, timestampMs } from "./fingerprint.js";
|
|
24
|
+
import { extractPayloads, extractGatekeeperPayload, extractRevocationPayload, REVOCATION_REASONS } from "./clearing.js";
|
|
25
|
+
import { signPayload } from "./signing.js";
|
|
25
26
|
import { WitnessBuffer } from "./buffer.js";
|
|
26
27
|
import { writeHandoffFiles } from "./handoff.js";
|
|
27
28
|
import { wrapOpenAI } from "./adapters/openai.js";
|
|
28
29
|
import { wrapAnthropic } from "./adapters/anthropic.js";
|
|
29
30
|
import { wrapBedrock } from "./adapters/bedrock.js";
|
|
31
|
+
import { wrapOllama, isOllamaClient } from "./adapters/ollama.js";
|
|
30
32
|
import { createVercelOnFinish } from "./adapters/vercel-ai.js";
|
|
33
|
+
import { loadConfig as loadConfigFromFile } from "./config.js";
|
|
31
34
|
/**
|
|
32
35
|
* Raised when strict (gatekeeper) mode blocks an inference due to
|
|
33
36
|
* insufficient guardrails. The inference never reaches the AI model.
|
|
@@ -51,25 +54,49 @@ export class Witness {
|
|
|
51
54
|
buffer;
|
|
52
55
|
handoffWarned = false;
|
|
53
56
|
_strict;
|
|
57
|
+
_gatewayMode;
|
|
58
|
+
/** True if the SDK is deferring witnessing to an SWT3 Gateway. */
|
|
59
|
+
get gatewayMode() {
|
|
60
|
+
return this._gatewayMode;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create a Witness from a .swt3.yaml config file.
|
|
64
|
+
*
|
|
65
|
+
* @param path - Explicit path to YAML file. If omitted, searches for
|
|
66
|
+
* swt3.yaml or .swt3.yaml in the current directory.
|
|
67
|
+
* @param overrides - Override any field from the YAML file.
|
|
68
|
+
* Code takes precedence over config file.
|
|
69
|
+
* @returns Configured Witness instance.
|
|
70
|
+
*
|
|
71
|
+
* Requires: `npm install yaml`
|
|
72
|
+
*/
|
|
73
|
+
static fromConfig(path, overrides) {
|
|
74
|
+
const config = loadConfigFromFile(path);
|
|
75
|
+
return new Witness({ ...config, ...overrides });
|
|
76
|
+
}
|
|
54
77
|
constructor(options) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (!
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
78
|
+
this._gatewayMode = options.gatewayMode ?? false;
|
|
79
|
+
// Gateway mode: SDK defers all witnessing to the SWT3 Gateway.
|
|
80
|
+
if (!this._gatewayMode) {
|
|
81
|
+
if (!options.endpoint)
|
|
82
|
+
throw new Error("endpoint is required (or set gatewayMode: true)");
|
|
83
|
+
if (!options.apiKey)
|
|
84
|
+
throw new Error("apiKey is required (or set gatewayMode: true)");
|
|
85
|
+
if (!options.apiKey.startsWith("axm_"))
|
|
86
|
+
throw new Error("apiKey must start with 'axm_'");
|
|
87
|
+
}
|
|
88
|
+
if (!options.tenantId && !this._gatewayMode)
|
|
62
89
|
throw new Error("tenantId is required");
|
|
63
90
|
if (options.factorHandoff && options.factorHandoff !== "file") {
|
|
64
|
-
throw new Error("factorHandoff must be 'file'
|
|
91
|
+
throw new Error("factorHandoff must be 'file'");
|
|
65
92
|
}
|
|
66
93
|
if (options.factorHandoff === "file" && !options.factorHandoffPath) {
|
|
67
94
|
throw new Error("factorHandoffPath is required when factorHandoff is 'file'");
|
|
68
95
|
}
|
|
69
96
|
this.config = {
|
|
70
|
-
endpoint: options.endpoint.replace(/\/+$/, ""),
|
|
71
|
-
apiKey: options.apiKey,
|
|
72
|
-
tenantId: options.tenantId,
|
|
97
|
+
endpoint: (options.endpoint || "unused").replace(/\/+$/, ""),
|
|
98
|
+
apiKey: options.apiKey || "axm_gateway",
|
|
99
|
+
tenantId: options.tenantId || "GATEWAY",
|
|
73
100
|
clearingLevel: options.clearingLevel ?? 1,
|
|
74
101
|
bufferSize: options.bufferSize ?? 10,
|
|
75
102
|
flushInterval: options.flushInterval ?? 5.0,
|
|
@@ -85,6 +112,10 @@ export class Witness {
|
|
|
85
112
|
signingKey: options.signingKey,
|
|
86
113
|
cycleId: options.cycleId,
|
|
87
114
|
policyVersion: options.policyVersion,
|
|
115
|
+
jurisdiction: options.jurisdiction,
|
|
116
|
+
legalBasis: options.legalBasis,
|
|
117
|
+
purposeClass: options.purposeClass,
|
|
118
|
+
onFlush: options.onFlush,
|
|
88
119
|
};
|
|
89
120
|
this._strict = options.strict ?? false;
|
|
90
121
|
this.buffer = new WitnessBuffer(this.config);
|
|
@@ -92,8 +123,8 @@ export class Witness {
|
|
|
92
123
|
/**
|
|
93
124
|
* Wrap an AI client with transparent witnessing.
|
|
94
125
|
*
|
|
95
|
-
* Supported: OpenAI, Anthropic
|
|
96
|
-
*
|
|
126
|
+
* Supported: OpenAI, Ollama (auto-detected), Anthropic, Bedrock.
|
|
127
|
+
* For vLLM, use wrapVllm() from adapters/vllm.
|
|
97
128
|
*
|
|
98
129
|
* Usage:
|
|
99
130
|
* const client = witness.wrap(new OpenAI()) as OpenAI;
|
|
@@ -105,6 +136,10 @@ export class Witness {
|
|
|
105
136
|
const obj = client;
|
|
106
137
|
// OpenAI: has client.chat.completions
|
|
107
138
|
if (name === "OpenAI" || obj?.chat) {
|
|
139
|
+
// Check for Ollama before defaulting to OpenAI
|
|
140
|
+
if (isOllamaClient(client)) {
|
|
141
|
+
return wrapOllama(client, this);
|
|
142
|
+
}
|
|
108
143
|
return wrapOpenAI(client, this);
|
|
109
144
|
}
|
|
110
145
|
// Anthropic: has client.messages
|
|
@@ -115,7 +150,7 @@ export class Witness {
|
|
|
115
150
|
if (name === "BedrockRuntimeClient" || (obj?.send && obj?.config)) {
|
|
116
151
|
return wrapBedrock(client, this);
|
|
117
152
|
}
|
|
118
|
-
throw new TypeError(`Unsupported client: ${name || "unknown"}. Supported: OpenAI, Anthropic, BedrockRuntimeClient.`);
|
|
153
|
+
throw new TypeError(`Unsupported client: ${name || "unknown"}. Supported: OpenAI, Ollama, Anthropic, BedrockRuntimeClient, vLLM (via wrapVllm).`);
|
|
119
154
|
}
|
|
120
155
|
/** Whether strict (gatekeeper) mode is enabled. Used by adapters. */
|
|
121
156
|
get strict() {
|
|
@@ -141,11 +176,12 @@ export class Witness {
|
|
|
141
176
|
const policyHash = this.config.policyVersion
|
|
142
177
|
? sha256Truncated(this.config.policyVersion, 12)
|
|
143
178
|
: undefined;
|
|
144
|
-
const payload = extractGatekeeperPayload(this.config.tenantId, required, active, gatePassed, this.config.clearingLevel, this.config.agentId, this.config.signingKey, this.config.cycleId, policyHash);
|
|
179
|
+
const payload = extractGatekeeperPayload(this.config.tenantId, required, active, gatePassed, this.config.clearingLevel, this.config.agentId, this.config.signingKey, this.config.signingKeyId, this.config.signingKeyVersion, this.config.cycleId, policyHash, this.config.jurisdiction, this.config.legalBasis, this.config.purposeClass);
|
|
145
180
|
this.buffer.enqueueMany([payload]);
|
|
146
181
|
if (!gatePassed) {
|
|
147
182
|
throw new GatekeeperError(required, active);
|
|
148
183
|
}
|
|
184
|
+
return payload.anchor_fingerprint;
|
|
149
185
|
}
|
|
150
186
|
/**
|
|
151
187
|
* Wrap a function as a witnessed tool call (AI-TOOL.1).
|
|
@@ -279,6 +315,187 @@ export class Witness {
|
|
|
279
315
|
};
|
|
280
316
|
return wrapper;
|
|
281
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* Witness a security/adversarial detection result (AI-SEC.1).
|
|
320
|
+
*
|
|
321
|
+
* Call after running your own detection system (Prompt Guard, LlamaGuard,
|
|
322
|
+
* NeMo Guardrails, etc.) to record the result as a tamper-evident anchor.
|
|
323
|
+
*
|
|
324
|
+
* @param threatScore - Detection score from your system (0-1000 scale).
|
|
325
|
+
* @param options.threshold - Score above which input is a threat. Default 500.
|
|
326
|
+
* @param options.threatType - One of: none, prompt_injection, data_poisoning,
|
|
327
|
+
* model_extraction, jailbreak, adversarial_input.
|
|
328
|
+
*
|
|
329
|
+
* @example
|
|
330
|
+
* const score = await promptGuard.scan(userInput);
|
|
331
|
+
* witness.witnessSecurityScan(score, { threatType: "prompt_injection" });
|
|
332
|
+
*/
|
|
333
|
+
witnessSecurityScan(threatScore, options) {
|
|
334
|
+
const threshold = options?.threshold ?? 500;
|
|
335
|
+
const threatType = options?.threatType ?? "none";
|
|
336
|
+
const threatCodes = {
|
|
337
|
+
none: 0, prompt_injection: 1, data_poisoning: 2,
|
|
338
|
+
model_extraction: 3, jailbreak: 4, adversarial_input: 5,
|
|
339
|
+
};
|
|
340
|
+
const [ts, epoch] = timestampMs();
|
|
341
|
+
const fa = threshold;
|
|
342
|
+
const fb = threatScore;
|
|
343
|
+
const fc = threatCodes[threatType] ?? 0;
|
|
344
|
+
const fp = mintFingerprint(this.config.tenantId, "AI-SEC.1", fa, fb, fc, ts);
|
|
345
|
+
const payload = {
|
|
346
|
+
procedure_id: "AI-SEC.1",
|
|
347
|
+
factor_a: fa,
|
|
348
|
+
factor_b: fb,
|
|
349
|
+
factor_c: fc,
|
|
350
|
+
clearing_level: this.config.clearingLevel,
|
|
351
|
+
anchor_fingerprint: fp,
|
|
352
|
+
anchor_epoch: epoch,
|
|
353
|
+
fingerprint_timestamp_ms: ts,
|
|
354
|
+
};
|
|
355
|
+
if (this.config.clearingLevel <= 1) {
|
|
356
|
+
payload.ai_model_id = "security-scan";
|
|
357
|
+
payload.ai_context = { provider: "security" };
|
|
358
|
+
}
|
|
359
|
+
if (this.config.agentId)
|
|
360
|
+
payload.agent_id = this.config.agentId;
|
|
361
|
+
if (this.config.cycleId)
|
|
362
|
+
payload.cycle_id = this.config.cycleId;
|
|
363
|
+
if (this.config.jurisdiction)
|
|
364
|
+
payload.jurisdiction = this.config.jurisdiction;
|
|
365
|
+
if (this.config.legalBasis)
|
|
366
|
+
payload.legal_basis = this.config.legalBasis;
|
|
367
|
+
if (this.config.purposeClass)
|
|
368
|
+
payload.purpose_class = this.config.purposeClass;
|
|
369
|
+
if (this.config.policyVersion) {
|
|
370
|
+
payload.policy_version_hash = sha256Truncated(this.config.policyVersion, 12);
|
|
371
|
+
}
|
|
372
|
+
if (this.config.signingKey) {
|
|
373
|
+
payload.payload_signature = signPayload(this.config.signingKey, fp, this.config.agentId);
|
|
374
|
+
if (this.config.signingKeyId)
|
|
375
|
+
payload.signing_key_id = this.config.signingKeyId;
|
|
376
|
+
if (this.config.signingKeyVersion !== undefined)
|
|
377
|
+
payload.signing_key_version = this.config.signingKeyVersion;
|
|
378
|
+
}
|
|
379
|
+
this.buffer.enqueueMany([payload]);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Witness an input validation/sanitization result (AI-SEC.2).
|
|
383
|
+
*
|
|
384
|
+
* Call after validating or sanitizing user input before inference.
|
|
385
|
+
*
|
|
386
|
+
* @param passed - True if input accepted (clean or sanitized). False if blocked.
|
|
387
|
+
* @param options.sanitized - True if input was modified during validation.
|
|
388
|
+
*
|
|
389
|
+
* @example
|
|
390
|
+
* const { clean, modified } = mySanitizer.validate(userInput);
|
|
391
|
+
* witness.witnessInputValidation(clean, { sanitized: modified });
|
|
392
|
+
*/
|
|
393
|
+
witnessInputValidation(passed, options) {
|
|
394
|
+
const sanitized = options?.sanitized ?? false;
|
|
395
|
+
const [ts, epoch] = timestampMs();
|
|
396
|
+
const fa = 1;
|
|
397
|
+
const fb = passed ? 1 : 0;
|
|
398
|
+
const fc = (passed && !sanitized) ? 0 : (passed && sanitized) ? 1 : 2;
|
|
399
|
+
const fp = mintFingerprint(this.config.tenantId, "AI-SEC.2", fa, fb, fc, ts);
|
|
400
|
+
const payload = {
|
|
401
|
+
procedure_id: "AI-SEC.2",
|
|
402
|
+
factor_a: fa,
|
|
403
|
+
factor_b: fb,
|
|
404
|
+
factor_c: fc,
|
|
405
|
+
clearing_level: this.config.clearingLevel,
|
|
406
|
+
anchor_fingerprint: fp,
|
|
407
|
+
anchor_epoch: epoch,
|
|
408
|
+
fingerprint_timestamp_ms: ts,
|
|
409
|
+
};
|
|
410
|
+
if (this.config.clearingLevel <= 1) {
|
|
411
|
+
payload.ai_model_id = "input-validation";
|
|
412
|
+
payload.ai_context = { provider: "security" };
|
|
413
|
+
}
|
|
414
|
+
if (this.config.agentId)
|
|
415
|
+
payload.agent_id = this.config.agentId;
|
|
416
|
+
if (this.config.cycleId)
|
|
417
|
+
payload.cycle_id = this.config.cycleId;
|
|
418
|
+
if (this.config.jurisdiction)
|
|
419
|
+
payload.jurisdiction = this.config.jurisdiction;
|
|
420
|
+
if (this.config.legalBasis)
|
|
421
|
+
payload.legal_basis = this.config.legalBasis;
|
|
422
|
+
if (this.config.purposeClass)
|
|
423
|
+
payload.purpose_class = this.config.purposeClass;
|
|
424
|
+
if (this.config.policyVersion) {
|
|
425
|
+
payload.policy_version_hash = sha256Truncated(this.config.policyVersion, 12);
|
|
426
|
+
}
|
|
427
|
+
if (this.config.signingKey) {
|
|
428
|
+
payload.payload_signature = signPayload(this.config.signingKey, fp, this.config.agentId);
|
|
429
|
+
if (this.config.signingKeyId)
|
|
430
|
+
payload.signing_key_id = this.config.signingKeyId;
|
|
431
|
+
if (this.config.signingKeyVersion !== undefined)
|
|
432
|
+
payload.signing_key_version = this.config.signingKeyVersion;
|
|
433
|
+
}
|
|
434
|
+
this.buffer.enqueueMany([payload]);
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Revoke a previously-issued witness anchor (AI-REV.1).
|
|
438
|
+
*
|
|
439
|
+
* Mints an AI-REV.1 anchor that references the target anchor's
|
|
440
|
+
* fingerprint, creating an immutable revocation receipt.
|
|
441
|
+
*
|
|
442
|
+
* @param fingerprint - The 12-character anchor fingerprint to revoke.
|
|
443
|
+
* @param reason - Revocation reason: model_recall, policy_violation,
|
|
444
|
+
* data_contamination, consent_withdrawal, regulatory_order,
|
|
445
|
+
* error_correction, or unspecified.
|
|
446
|
+
* @returns The fingerprint of the revocation anchor itself.
|
|
447
|
+
*/
|
|
448
|
+
revoke(fingerprint, reason = "unspecified") {
|
|
449
|
+
if (!fingerprint?.trim()) {
|
|
450
|
+
throw new Error("fingerprint is required for revocation");
|
|
451
|
+
}
|
|
452
|
+
if (!(reason in REVOCATION_REASONS)) {
|
|
453
|
+
throw new Error(`Unknown revocation reason: "${reason}". Valid: ${Object.keys(REVOCATION_REASONS).sort().join(", ")}`);
|
|
454
|
+
}
|
|
455
|
+
const policyHash = this.config.policyVersion
|
|
456
|
+
? sha256Truncated(this.config.policyVersion, 12)
|
|
457
|
+
: undefined;
|
|
458
|
+
const payload = extractRevocationPayload(this.config.tenantId, fingerprint.trim(), reason, this.config.clearingLevel, this.config.agentId, this.config.signingKey, this.config.signingKeyId, this.config.signingKeyVersion, this.config.cycleId, policyHash, this.config.jurisdiction, this.config.legalBasis, this.config.purposeClass);
|
|
459
|
+
this.buffer.enqueueMany([payload]);
|
|
460
|
+
return payload.anchor_fingerprint;
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Query the Compliance Manifest API for this tenant's anchors.
|
|
464
|
+
*
|
|
465
|
+
* Returns a structured compliance manifest with summary, coverage,
|
|
466
|
+
* and individual anchor records.
|
|
467
|
+
*/
|
|
468
|
+
async manifest(filters = {}) {
|
|
469
|
+
const params = new URLSearchParams({ format: "json" });
|
|
470
|
+
if (filters.model)
|
|
471
|
+
params.set("model", filters.model);
|
|
472
|
+
if (filters.procedure)
|
|
473
|
+
params.set("procedure", filters.procedure);
|
|
474
|
+
if (filters.framework)
|
|
475
|
+
params.set("framework", filters.framework);
|
|
476
|
+
if (filters.verdict)
|
|
477
|
+
params.set("verdict", filters.verdict);
|
|
478
|
+
if (filters.since)
|
|
479
|
+
params.set("since", filters.since);
|
|
480
|
+
if (filters.until)
|
|
481
|
+
params.set("until", filters.until);
|
|
482
|
+
if (filters.agent_id)
|
|
483
|
+
params.set("agent_id", filters.agent_id);
|
|
484
|
+
if (filters.limit)
|
|
485
|
+
params.set("limit", String(filters.limit));
|
|
486
|
+
const url = `${this.config.endpoint.replace(/\/$/, "")}/manifest?${params.toString()}`;
|
|
487
|
+
const resp = await fetch(url, {
|
|
488
|
+
headers: {
|
|
489
|
+
Authorization: `Bearer ${this.config.apiKey}`,
|
|
490
|
+
Accept: "application/json",
|
|
491
|
+
},
|
|
492
|
+
});
|
|
493
|
+
if (!resp.ok) {
|
|
494
|
+
const body = await resp.text();
|
|
495
|
+
throw new Error(`Manifest API returned ${resp.status}: ${body}`);
|
|
496
|
+
}
|
|
497
|
+
return resp.json();
|
|
498
|
+
}
|
|
282
499
|
/**
|
|
283
500
|
* Record a witnessed inference. Extracts factors, applies clearing,
|
|
284
501
|
* and enqueues payloads for background flush.
|
|
@@ -287,7 +504,9 @@ export class Witness {
|
|
|
287
504
|
* destination BEFORE clearing proceeds. If the handoff fails, the
|
|
288
505
|
* payload is NOT transmitted.
|
|
289
506
|
*/
|
|
290
|
-
record(inference) {
|
|
507
|
+
record(inference, authorizationId) {
|
|
508
|
+
if (this._gatewayMode)
|
|
509
|
+
return;
|
|
291
510
|
// Merge guardrail config
|
|
292
511
|
if (this.config.guardrailNames.length > 0 && inference.guardrailNames.length === 0) {
|
|
293
512
|
inference.guardrailNames = this.config.guardrailNames;
|
|
@@ -297,7 +516,7 @@ export class Witness {
|
|
|
297
516
|
const policyHash = this.config.policyVersion
|
|
298
517
|
? sha256Truncated(this.config.policyVersion, 12)
|
|
299
518
|
: undefined;
|
|
300
|
-
const payloads = extractPayloads(inference, this.config.tenantId, this.config.clearingLevel, this.config.latencyThresholdMs, this.config.guardrailsRequired, this.config.procedures, this.config.agentId, this.config.signingKey, this.config.cycleId, policyHash);
|
|
519
|
+
const payloads = extractPayloads(inference, this.config.tenantId, this.config.clearingLevel, this.config.latencyThresholdMs, this.config.guardrailsRequired, this.config.procedures, this.config.agentId, this.config.signingKey, this.config.signingKeyId, this.config.signingKeyVersion, this.config.cycleId, policyHash, this.config.jurisdiction, this.config.legalBasis, this.config.purposeClass, authorizationId);
|
|
301
520
|
// Factor handoff: write full (uncleared) data to custody destination
|
|
302
521
|
// BEFORE enqueuing the cleared payload for transmission.
|
|
303
522
|
// If this fails, we do NOT proceed.
|
package/dist/witness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"witness.js","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"witness.js","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tenova/swt3-ai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "SWT3 AI Witness SDK: cryptographic attestation for AI inference",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"import": "./dist/index.js",
|
|
11
11
|
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./exporters/otel": {
|
|
14
|
+
"import": "./dist/exporters/otel.js",
|
|
15
|
+
"types": "./dist/exporters/otel.d.ts"
|
|
12
16
|
}
|
|
13
17
|
},
|
|
14
18
|
"bin": {
|
|
@@ -33,7 +37,39 @@
|
|
|
33
37
|
"eu-ai-act",
|
|
34
38
|
"nist-ai-rmf",
|
|
35
39
|
"openai",
|
|
36
|
-
"anthropic"
|
|
40
|
+
"anthropic",
|
|
41
|
+
"ai-governance",
|
|
42
|
+
"ai-audit",
|
|
43
|
+
"ai-accountability",
|
|
44
|
+
"ai-observability",
|
|
45
|
+
"llm-monitoring",
|
|
46
|
+
"llm-observability",
|
|
47
|
+
"model-risk-management",
|
|
48
|
+
"compliance-as-code",
|
|
49
|
+
"responsible-ai",
|
|
50
|
+
"ai-safety",
|
|
51
|
+
"ai-trust",
|
|
52
|
+
"mlops",
|
|
53
|
+
"nist-800-53",
|
|
54
|
+
"cmmc",
|
|
55
|
+
"fedramp",
|
|
56
|
+
"gdpr",
|
|
57
|
+
"sr-11-7",
|
|
58
|
+
"cryptographic-attestation",
|
|
59
|
+
"audit-trail",
|
|
60
|
+
"agentic-ai",
|
|
61
|
+
"multi-agent",
|
|
62
|
+
"ai-agent",
|
|
63
|
+
"guardrails",
|
|
64
|
+
"ai-risk",
|
|
65
|
+
"model-governance",
|
|
66
|
+
"inference-logging",
|
|
67
|
+
"ai-compliance-automation",
|
|
68
|
+
"ollama",
|
|
69
|
+
"vllm",
|
|
70
|
+
"bedrock",
|
|
71
|
+
"vercel-ai",
|
|
72
|
+
"nvidia-dynamo"
|
|
37
73
|
],
|
|
38
74
|
"author": "TeNova <engineering@tenovaai.com>",
|
|
39
75
|
"license": "Apache-2.0",
|
|
@@ -46,17 +82,24 @@
|
|
|
46
82
|
"url": "https://github.com/tenova-labs/swt3-ai/issues"
|
|
47
83
|
},
|
|
48
84
|
"peerDependencies": {
|
|
85
|
+
"@opentelemetry/api": ">=1.0.0",
|
|
49
86
|
"openai": ">=4.0.0"
|
|
50
87
|
},
|
|
51
88
|
"peerDependenciesMeta": {
|
|
52
89
|
"openai": {
|
|
53
90
|
"optional": true
|
|
91
|
+
},
|
|
92
|
+
"@opentelemetry/api": {
|
|
93
|
+
"optional": true
|
|
54
94
|
}
|
|
55
95
|
},
|
|
56
96
|
"devDependencies": {
|
|
57
97
|
"openai": "^4.70.0",
|
|
58
98
|
"tsx": "^4.0.0",
|
|
59
99
|
"typescript": "^5.5.0",
|
|
60
|
-
"vitest": "^
|
|
100
|
+
"vitest": "^3.2.4"
|
|
101
|
+
},
|
|
102
|
+
"dependencies": {
|
|
103
|
+
"yaml": "^2.8.3"
|
|
61
104
|
}
|
|
62
105
|
}
|