@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.
Files changed (48) hide show
  1. package/README.md +170 -19
  2. package/dist/adapters/anthropic.js +14 -12
  3. package/dist/adapters/anthropic.js.map +1 -1
  4. package/dist/adapters/bedrock.js +6 -4
  5. package/dist/adapters/bedrock.js.map +1 -1
  6. package/dist/adapters/ollama.d.ts +13 -0
  7. package/dist/adapters/ollama.d.ts.map +1 -0
  8. package/dist/adapters/ollama.js +25 -0
  9. package/dist/adapters/ollama.js.map +1 -0
  10. package/dist/adapters/openai.d.ts +1 -1
  11. package/dist/adapters/openai.d.ts.map +1 -1
  12. package/dist/adapters/openai.js +21 -20
  13. package/dist/adapters/openai.js.map +1 -1
  14. package/dist/adapters/vllm.d.ts +13 -0
  15. package/dist/adapters/vllm.d.ts.map +1 -0
  16. package/dist/adapters/vllm.js +15 -0
  17. package/dist/adapters/vllm.js.map +1 -0
  18. package/dist/buffer.d.ts +1 -0
  19. package/dist/buffer.d.ts.map +1 -1
  20. package/dist/buffer.js +15 -2
  21. package/dist/buffer.js.map +1 -1
  22. package/dist/clearing.d.ts +12 -2
  23. package/dist/clearing.d.ts.map +1 -1
  24. package/dist/clearing.js +70 -35
  25. package/dist/clearing.js.map +1 -1
  26. package/dist/config.d.ts +27 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +178 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/demo.js +6 -6
  31. package/dist/demo.js.map +1 -1
  32. package/dist/exporters/otel.d.ts +36 -0
  33. package/dist/exporters/otel.d.ts.map +1 -0
  34. package/dist/exporters/otel.js +94 -0
  35. package/dist/exporters/otel.js.map +1 -0
  36. package/dist/index.d.ts +4 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/types.d.ts +14 -0
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +3 -0
  43. package/dist/types.js.map +1 -1
  44. package/dist/witness.d.ts +88 -5
  45. package/dist/witness.d.ts.map +1 -1
  46. package/dist/witness.js +238 -19
  47. package/dist/witness.js.map +1 -1
  48. 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
- * Returns a proxy that behaves identically to the original client.
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): void;
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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"witness.d.ts","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"witness.d.ts","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"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"}
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
- if (!options.endpoint)
56
- throw new Error("endpoint is required");
57
- if (!options.apiKey)
58
- throw new Error("apiKey is required");
59
- if (!options.apiKey.startsWith("axm_"))
60
- throw new Error("apiKey must start with 'axm_'");
61
- if (!options.tenantId)
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' (other methods planned for v0.4.0)");
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
- * Returns a proxy that behaves identically to the original client.
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.
@@ -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.5",
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": "^4.1.2"
100
+ "vitest": "^3.2.4"
101
+ },
102
+ "dependencies": {
103
+ "yaml": "^2.8.3"
61
104
  }
62
105
  }