@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/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Witness your AI. Prove it followed the rules. Cryptographic accountability for e
|
|
|
10
10
|
|
|
11
11
|
Works with OpenAI, Anthropic, AWS Bedrock, Vercel AI SDK, and any OpenAI-compatible endpoint (vLLM, Ollama, Azure, Llama.cpp).
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
GPAI transparency obligations are enforceable now. EU AI Act high-risk enforcement begins **December 2, 2027**. This SDK gives you the evidence chain.
|
|
14
14
|
|
|
15
15
|
## See It Work (No Account Needed)
|
|
16
16
|
|
|
@@ -127,7 +127,7 @@ const results = await search("SELECT * FROM transactions WHERE amount > 10000");
|
|
|
127
127
|
// An AI-TOOL.1 anchor is minted recording: tool name, latency, success/failure
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
Each anchor records the tool name, input/output hashes, latency, and success or failure.
|
|
131
131
|
|
|
132
132
|
## Witness Agent Resource Access
|
|
133
133
|
|
|
@@ -147,7 +147,7 @@ const results = await queryCustomers("SELECT name FROM customers");
|
|
|
147
147
|
// - Was access granted? (yes)
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
If the agent tries to access something outside its declared scope, the anchor records a FAIL verdict
|
|
150
|
+
If the agent tries to access something outside its declared scope, the anchor records a FAIL verdict with a full evidence trail.
|
|
151
151
|
|
|
152
152
|
## Detect Instruction Drift
|
|
153
153
|
|
|
@@ -159,6 +159,115 @@ This happens automatically. No configuration needed. The system prompt hash is e
|
|
|
159
159
|
|
|
160
160
|
The hash is included at clearing levels 0 and 1, stripped at levels 2 and 3.
|
|
161
161
|
|
|
162
|
+
## RAG Context Witnessing
|
|
163
|
+
|
|
164
|
+
New in v0.4.3. Witness what context chunks your RAG pipeline retrieves, from which corpus, and how relevant they are. Chunk text is never transmitted -- only SHA-256 hashes.
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
// Zero-friction: pass raw strings, SDK handles hashing
|
|
168
|
+
witness.witnessRagContext({
|
|
169
|
+
chunks: ["chunk text 1", "chunk text 2", "chunk text 3"],
|
|
170
|
+
corpusId: "legal-docs-v3",
|
|
171
|
+
});
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
This mints an AI-RAG.1 (Context Retrieval Provenance) anchor. Add similarity scores to also get AI-RAG.2 (Context Relevance):
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
import type { RagChunk } from "@tenova/swt3-ai";
|
|
178
|
+
|
|
179
|
+
witness.witnessRagContext({
|
|
180
|
+
chunks: [
|
|
181
|
+
{ contentHash: "abc123...", sourceId: "doc-7/p3", similarityScore: 0.92 },
|
|
182
|
+
{ contentHash: "def456...", sourceId: "doc-2/p1", similarityScore: 0.78 },
|
|
183
|
+
{ contentHash: "789abc...", sourceId: "doc-4/p2", similarityScore: 0.61 },
|
|
184
|
+
],
|
|
185
|
+
corpusId: "legal-docs-v3",
|
|
186
|
+
embeddingModel: "text-embedding-3-small",
|
|
187
|
+
similarityThreshold: 0.75, // triggers AI-RAG.2
|
|
188
|
+
});
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
One call. Two procedures. Complete retrieval attestation.
|
|
192
|
+
|
|
193
|
+
Maps to: EU AI Act Art. 12(2)(a) (reference database logging), Art. 10(2) (data quality), NIST AI RMF MAP 3.5 (data provenance).
|
|
194
|
+
|
|
195
|
+
## Model Weight Integrity
|
|
196
|
+
|
|
197
|
+
Witness the actual model weights, not just the model name string:
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
// File path: SDK hashes automatically
|
|
201
|
+
witness.witnessModelWeights("/models/llama-3.1-70b.safetensors");
|
|
202
|
+
|
|
203
|
+
// Pre-computed hash with verification
|
|
204
|
+
witness.witnessModelWeights(
|
|
205
|
+
{ fileHash: "abc123...", format: "safetensors" },
|
|
206
|
+
{ expectedHash: "abc123..." }, // PASS if match, FAIL if mismatch
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
// Adapter stack + quantization
|
|
210
|
+
witness.witnessAdapterStack(
|
|
211
|
+
[{ name: "lora-legal", adapterHash: "aaa111" }],
|
|
212
|
+
"llama-3.1-70b",
|
|
213
|
+
);
|
|
214
|
+
witness.witnessQuantization("gptq", { bits: 4, groupSize: 128 });
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Maps to: EU AI Act Art. 15(4) (resilience against modification), Art. 12(2)(b) (version logging).
|
|
218
|
+
|
|
219
|
+
## Skill Manifest Attestation
|
|
220
|
+
|
|
221
|
+
Witness which skills, tools, and plugins are loaded in your agent:
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
// Zero-friction: just names
|
|
225
|
+
witness.witnessSkillManifest(["code_exec", "web_search", "file_read"]);
|
|
226
|
+
|
|
227
|
+
// Memory context
|
|
228
|
+
witness.witnessMemoryContext([
|
|
229
|
+
{ sourceType: "vector_store", sourceId: "pinecone-prod" },
|
|
230
|
+
{ sourceType: "conversation", sourceId: "session-123" },
|
|
231
|
+
]);
|
|
232
|
+
|
|
233
|
+
// Reward model binding
|
|
234
|
+
witness.witnessRewardModel("rm-v3-legal", { method: "dpo" });
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Maps to: EU AI Act Art. 12(2)(b) (capability tracking), NIST AI RMF GOVERN 1.7 (capability documentation).
|
|
238
|
+
|
|
239
|
+
## Multi-Agent Chains, Violations, and Safety (v0.5.0)
|
|
240
|
+
|
|
241
|
+
New in v0.5.0. Convenience methods for 8 additional procedures covering multi-agent orchestration, policy enforcement, human oversight, and training data governance:
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
// Multi-agent chain handoff (AI-CHAIN.1)
|
|
245
|
+
witness.witnessChainHandoff(3, "step-2-reviewer");
|
|
246
|
+
|
|
247
|
+
// Policy violation reporting (AI-VIO.1)
|
|
248
|
+
witness.witnessViolation(3, "PII in output", { autoDetected: true, policyCategory: "data" });
|
|
249
|
+
|
|
250
|
+
// Agent charter attestation (AI-CHR.1)
|
|
251
|
+
witness.witnessCharter({ charterText: "You are a fraud detection assistant..." });
|
|
252
|
+
|
|
253
|
+
// Model registry check (AI-MDL.8)
|
|
254
|
+
witness.witnessModelRegistry("gpt-4o-2025-04-16", "eu-approved-models-v3");
|
|
255
|
+
|
|
256
|
+
// Reviewer identity binding for four-eyes rule (AI-HITL.3)
|
|
257
|
+
witness.witnessReviewerIdentity(2, 2, { method: "cryptographic" });
|
|
258
|
+
|
|
259
|
+
// Safe state attestation (AI-SAFE.1)
|
|
260
|
+
witness.witnessSafeState({ mechanismExists: true, safeStateConfirmed: true });
|
|
261
|
+
|
|
262
|
+
// Training data statistics (AI-DATA.3)
|
|
263
|
+
witness.witnessTrainingStats(50000, 128, { classBalanceRatio: 0.85 });
|
|
264
|
+
|
|
265
|
+
// Training data PII lifecycle (AI-DATA.4)
|
|
266
|
+
witness.witnessTrainingPiiLifecycle(10000, { eventType: "pseudonymization", datasetId: "training-v3" });
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Maps to: EU AI Act Art. 10(3), Art. 10(5), Art. 12(2)(a), Art. 12(3)(d), Art. 13, Art. 14(4)(e), Art. 14(5), Art. 51. NIST AI RMF MANAGE 3.2, MANAGE 4.1, GOVERN 1.2.
|
|
270
|
+
|
|
162
271
|
## Agent Identity
|
|
163
272
|
|
|
164
273
|
Bind a unique identity to every anchor your agent produces:
|
|
@@ -173,11 +282,15 @@ const witness = new Witness({
|
|
|
173
282
|
});
|
|
174
283
|
```
|
|
175
284
|
|
|
176
|
-
The `agentId` survives all clearing levels. The `signingKey` produces
|
|
285
|
+
The `agentId` survives all clearing levels. The `signingKey` produces an HMAC-SHA256 signature on every anchor, proving which agent instance created it. When a signing key is registered server-side, the server validates the signature on ingestion and rejects tampered payloads. This enables:
|
|
286
|
+
- **Payload authenticity** -- server verifies the SDK that minted the anchor held the registered secret
|
|
287
|
+
- **Tamper detection** -- any modification after signing causes rejection (422)
|
|
177
288
|
- Per-agent compliance passports
|
|
178
289
|
- Fleet-wide governance dashboards
|
|
179
290
|
- Agent-scoped evidence packages for auditors
|
|
180
291
|
|
|
292
|
+
Receipts include `signature_verified: true` when the server confirms the signature.
|
|
293
|
+
|
|
181
294
|
## Gatekeeper Mode (Pre-Call Enforcement)
|
|
182
295
|
|
|
183
296
|
New in v0.3.4. Require guardrails to be active *before* the model is called, not just observed after:
|
|
@@ -245,7 +358,7 @@ const witness = new Witness({
|
|
|
245
358
|
});
|
|
246
359
|
```
|
|
247
360
|
|
|
248
|
-
The SDK hashes the policy version string (SHA-256, first 12 characters) and includes it in every payload. When policies change between audit periods, the hash changes
|
|
361
|
+
The SDK hashes the policy version string (SHA-256, first 12 characters) and includes it in every payload. When policies change between audit periods, the hash changes -proving which rules were in effect for each inference.
|
|
249
362
|
|
|
250
363
|
## What Gets Witnessed
|
|
251
364
|
|
|
@@ -265,24 +378,24 @@ Each inference produces anchors for these checks. Every check maps to a regulati
|
|
|
265
378
|
|
|
266
379
|
### EU AI Act Article Mapping
|
|
267
380
|
|
|
268
|
-
All
|
|
381
|
+
All 42 SWT3 AI witnessing procedures map to specific EU AI Act obligations:
|
|
269
382
|
|
|
270
383
|
| Procedure | EU AI Act Article | Obligation | Demo | Production |
|
|
271
384
|
|-----------|-------------------|------------|------|------------|
|
|
272
385
|
| AI-INF.1 | Art. 12(1) | Automatic Logging of Use Periods | ✓ | ✓ |
|
|
273
|
-
| AI-INF.2 | Art. 15(3) | Performance Consistency Monitoring |
|
|
274
|
-
| AI-INF.3 | Art. 12(1) | Volume & Usage Logging |
|
|
386
|
+
| AI-INF.2 | Art. 15(3) | Performance Consistency Monitoring | -| ✓ |
|
|
387
|
+
| AI-INF.3 | Art. 12(1) | Volume & Usage Logging | -| ✓ |
|
|
275
388
|
| AI-MDL.1 | Art. 9(4a) | Model Risk Identification | ✓ | ✓ |
|
|
276
|
-
| AI-MDL.2 | Art. 12(2b) | Version & Lineage Tracking |
|
|
277
|
-
| AI-MDL.3 | Art. 72(1) | Post-Market Drift Monitoring |
|
|
278
|
-
| AI-MDL.4 | Art. 15(4) | Feedback Loop Isolation |
|
|
389
|
+
| AI-MDL.2 | Art. 12(2b) | Version & Lineage Tracking | -| ✓ |
|
|
390
|
+
| AI-MDL.3 | Art. 72(1) | Post-Market Drift Monitoring | -| ✓ |
|
|
391
|
+
| AI-MDL.4 | Art. 15(4) | Feedback Loop Isolation | -| ✓ |
|
|
279
392
|
| AI-GRD.1 | Art. 9(2a) | Risk Mitigation Measures | ✓ | ✓ |
|
|
280
|
-
| AI-GRD.2 | Art. 9(4b) | Content Safety Filtering |
|
|
281
|
-
| AI-GRD.3 | Art. 10(2f) | PII & Data Protection |
|
|
282
|
-
| AI-EXPL.1 | Art. 13(1) | Transparency & Explainability |
|
|
283
|
-
| AI-EXPL.2 | Art. 13(3b) | Confidence Calibration |
|
|
393
|
+
| AI-GRD.2 | Art. 9(4b) | Content Safety Filtering | -| ✓ |
|
|
394
|
+
| AI-GRD.3 | Art. 10(2f) | PII & Data Protection | -| ✓ |
|
|
395
|
+
| AI-EXPL.1 | Art. 13(1) | Transparency & Explainability | -| ✓ |
|
|
396
|
+
| AI-EXPL.2 | Art. 13(3b) | Confidence Calibration | -| ✓ |
|
|
284
397
|
|
|
285
|
-
The demo demonstrates
|
|
398
|
+
The demo demonstrates 5 procedures using simulated data. All 42 are available in production with real inference data. 36 cross-language test vectors ensure fingerprint parity across Python, TypeScript, Rust, C#, and Ruby. [See live conformity →](https://sovereign.tenova.io/audit/axm_audit_demo_eu_ai_act_public)
|
|
286
399
|
|
|
287
400
|
## How Verdicts Work
|
|
288
401
|
|
|
@@ -406,9 +519,9 @@ const witness = new Witness({
|
|
|
406
519
|
| EU AI Act conformity | No | Yes (Pro) |
|
|
407
520
|
| Auditor evidence packages | No | Yes (Pro) |
|
|
408
521
|
| Access violation tracking | No | Yes (Pro) |
|
|
409
|
-
|
|
|
522
|
+
| Audit-ready evidence chain | No | Yes |
|
|
410
523
|
|
|
411
|
-
> Local
|
|
524
|
+
> Local mode is for development and testing. Connected mode is for production evidence.
|
|
412
525
|
|
|
413
526
|
## Resilience (Flight Recorder)
|
|
414
527
|
|
|
@@ -441,12 +554,13 @@ const witness = new Witness({
|
|
|
441
554
|
| `maxRetries` | 3 | Retries before dead-letter |
|
|
442
555
|
| `guardrailNames` | [] | Active guardrail names |
|
|
443
556
|
| `agentId` | - | Agent identity (survives all clearing levels) |
|
|
444
|
-
| `signingKey` | - | HMAC-SHA256 key for payload signing |
|
|
557
|
+
| `signingKey` | - | HMAC-SHA256 key for payload signing (register server-side for validation) |
|
|
445
558
|
| `cycleId` | - | Multi-agent chain link (survives all clearing levels) |
|
|
446
559
|
| `policyVersion` | - | Policy config identifier (hashed in payloads) |
|
|
447
560
|
| `strict` | false | Gatekeeper mode: block inference if guardrails insufficient |
|
|
448
561
|
| `latencyThresholdMs` | 30000 | AI-INF.2 latency limit (ms) |
|
|
449
562
|
| `guardrailsRequired` | 0 | AI-GRD.1 minimum guardrail count |
|
|
563
|
+
| `onFlush` | - | Callback `(payloads, receipts) => void` after each flush |
|
|
450
564
|
| `factorHandoff` | - | "file" for local factor export |
|
|
451
565
|
| `factorHandoffPath` | - | Directory for handoff files |
|
|
452
566
|
|
|
@@ -461,6 +575,30 @@ const witness = new Witness({
|
|
|
461
575
|
| `witness.flush()` | Force-flush all buffered payloads. Returns receipts. |
|
|
462
576
|
| `witness.stop()` | Stop the witness and flush remaining payloads. |
|
|
463
577
|
|
|
578
|
+
## OpenTelemetry Export
|
|
579
|
+
|
|
580
|
+
New in v0.3.6. Send SWT3 anchors to your existing observability stack as OTel spans:
|
|
581
|
+
|
|
582
|
+
```typescript
|
|
583
|
+
import { Witness } from "@tenova/swt3-ai";
|
|
584
|
+
import { OTelExporter } from "@tenova/swt3-ai/exporters/otel";
|
|
585
|
+
|
|
586
|
+
const exporter = new OTelExporter({ tracerName: "swt3-witness" });
|
|
587
|
+
const witness = new Witness({
|
|
588
|
+
endpoint: "...",
|
|
589
|
+
apiKey: "axm_...",
|
|
590
|
+
tenantId: "...",
|
|
591
|
+
onFlush: exporter.export.bind(exporter),
|
|
592
|
+
});
|
|
593
|
+
|
|
594
|
+
// Anchors now appear as spans in Datadog, Grafana, Jaeger, Honeycomb, etc.
|
|
595
|
+
// Span attributes: swt3.procedure_id, swt3.verdict, swt3.fingerprint, swt3.model_id, ...
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
Install: `npm install @opentelemetry/api`
|
|
599
|
+
|
|
600
|
+
The `onFlush` callback fires after each successful batch transmission. You can use it for any custom export destination, not just OTel.
|
|
601
|
+
|
|
464
602
|
## Installation
|
|
465
603
|
|
|
466
604
|
```bash
|
|
@@ -469,6 +607,7 @@ npm install @tenova/swt3-ai
|
|
|
469
607
|
# Peer dependencies (install whichever you use)
|
|
470
608
|
npm install openai # for OpenAI adapter
|
|
471
609
|
npm install @anthropic-ai/sdk # for Anthropic adapter
|
|
610
|
+
npm install @opentelemetry/api # for OTel exporter
|
|
472
611
|
```
|
|
473
612
|
|
|
474
613
|
## Regulatory Coverage
|
|
@@ -501,6 +640,18 @@ Your prompts and responses **never leave your infrastructure**. The SDK computes
|
|
|
501
640
|
|
|
502
641
|
---
|
|
503
642
|
|
|
643
|
+
## Documentation
|
|
644
|
+
|
|
645
|
+
- [SDK Reference](https://sovereign.tenova.io/docs/) -- full API, all providers, clearing levels, configuration
|
|
646
|
+
- [10-Minute Quickstart](https://sovereign.tenova.io/guides/ai-witness-quickstart.html) -- from install to first anchor
|
|
647
|
+
- [SWT3 Protocol Spec](https://sovereign.tenova.io/guides/swt3-protocol.html) -- formal specification with ABNF grammar
|
|
648
|
+
- [Design Rationale](https://sovereign.tenova.io/guides/swt3-design-rationale.html) -- why every protocol decision was made
|
|
649
|
+
- [UCT Registry](https://sovereign.tenova.io/registry) -- 162 procedures, full factor definitions
|
|
650
|
+
- [Anchor Verifier](https://sovereign.tenova.io/verify) -- verify any anchor, zero server calls
|
|
651
|
+
- [EU AI Act Regulatory Architecture](https://sovereign.tenova.io/guides/futurium-submission.html) -- VI+CJT+ALF+LAVR framework mapping for conformity assessment bodies
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
504
655
|
*SWT3: Sovereign Witness Traceability. We don't run your models. We witness them.*
|
|
505
656
|
|
|
506
657
|
SWT3 and Sovereign Witness Traceability are trademarks of Tenable Nova LLC. Patent pending. Apache 2.0 licensed.
|
|
@@ -72,20 +72,21 @@ function createInterceptor(realMethod, witness) {
|
|
|
72
72
|
const systemPromptText = extractSystemOnly(system);
|
|
73
73
|
const systemPromptHash = systemPromptText ? sha256Truncated(systemPromptText) : undefined;
|
|
74
74
|
// Gatekeeper pre-call check (strict mode only)
|
|
75
|
+
let authorizationId;
|
|
75
76
|
if (witness.strict) {
|
|
76
|
-
witness.gateCheck(messages, model);
|
|
77
|
+
authorizationId = witness.gateCheck(messages, model);
|
|
77
78
|
}
|
|
78
79
|
const start = performance.now();
|
|
79
80
|
const result = realMethod.call(this, ...args);
|
|
80
81
|
if (isStreaming) {
|
|
81
82
|
// Streaming via create({ stream: true }) — returns a Stream
|
|
82
|
-
return handleStreaming(result, witness, model, promptHash, start, systemPromptHash);
|
|
83
|
+
return handleStreaming(result, witness, model, promptHash, start, systemPromptHash, authorizationId);
|
|
83
84
|
}
|
|
84
85
|
// Non-streaming — result is Promise<Message>
|
|
85
86
|
return result.then((response) => {
|
|
86
87
|
const elapsedMs = Math.round(performance.now() - start);
|
|
87
88
|
const record = extractRecord(response, model, promptHash, elapsedMs, systemPromptHash);
|
|
88
|
-
witness.record(record);
|
|
89
|
+
witness.record(record, authorizationId);
|
|
89
90
|
return response;
|
|
90
91
|
});
|
|
91
92
|
};
|
|
@@ -102,16 +103,17 @@ function createStreamInterceptor(realMethod, witness) {
|
|
|
102
103
|
const systemPromptText = extractSystemOnly(system);
|
|
103
104
|
const systemPromptHash = systemPromptText ? sha256Truncated(systemPromptText) : undefined;
|
|
104
105
|
// Gatekeeper pre-call check (strict mode only)
|
|
106
|
+
let authorizationId;
|
|
105
107
|
if (witness.strict) {
|
|
106
|
-
witness.gateCheck(messages, model);
|
|
108
|
+
authorizationId = witness.gateCheck(messages, model);
|
|
107
109
|
}
|
|
108
110
|
const start = performance.now();
|
|
109
111
|
const result = realMethod.call(this, ...args);
|
|
110
|
-
return handleStreaming(result, witness, model, promptHash, start, systemPromptHash);
|
|
112
|
+
return handleStreaming(result, witness, model, promptHash, start, systemPromptHash, authorizationId);
|
|
111
113
|
};
|
|
112
114
|
}
|
|
113
115
|
// ── Streaming Handler ───────────────────────────────────────────────
|
|
114
|
-
async function* streamAccumulator(stream, witness, model, promptHash, startTime, systemPromptHash) {
|
|
116
|
+
async function* streamAccumulator(stream, witness, model, promptHash, startTime, systemPromptHash, authorizationId) {
|
|
115
117
|
const textParts = [];
|
|
116
118
|
let actualModel = model;
|
|
117
119
|
let stopReason = "";
|
|
@@ -165,19 +167,19 @@ async function* streamAccumulator(stream, witness, model, promptHash, startTime,
|
|
|
165
167
|
systemPromptHash,
|
|
166
168
|
guardrailNames: [],
|
|
167
169
|
};
|
|
168
|
-
witness.record(record);
|
|
170
|
+
witness.record(record, authorizationId);
|
|
169
171
|
}
|
|
170
|
-
function handleStreaming(streamResult, witness, model, promptHash, startTime, systemPromptHash) {
|
|
172
|
+
function handleStreaming(streamResult, witness, model, promptHash, startTime, systemPromptHash, authorizationId) {
|
|
171
173
|
// Anthropic's stream() returns a MessageStream directly (not a Promise)
|
|
172
174
|
// But create({ stream: true }) may return a Promise<Stream>
|
|
173
175
|
if (streamResult && typeof streamResult.then === "function") {
|
|
174
|
-
return streamResult.then((stream) => wrapAnthropicStream(stream, witness, model, promptHash, startTime, systemPromptHash));
|
|
176
|
+
return streamResult.then((stream) => wrapAnthropicStream(stream, witness, model, promptHash, startTime, systemPromptHash, authorizationId));
|
|
175
177
|
}
|
|
176
|
-
return wrapAnthropicStream(streamResult, witness, model, promptHash, startTime, systemPromptHash);
|
|
178
|
+
return wrapAnthropicStream(streamResult, witness, model, promptHash, startTime, systemPromptHash, authorizationId);
|
|
177
179
|
}
|
|
178
|
-
function wrapAnthropicStream(stream, witness, model, promptHash, startTime, systemPromptHash) {
|
|
180
|
+
function wrapAnthropicStream(stream, witness, model, promptHash, startTime, systemPromptHash, authorizationId) {
|
|
179
181
|
const s = stream;
|
|
180
|
-
const gen = streamAccumulator(s, witness, model, promptHash, startTime, systemPromptHash);
|
|
182
|
+
const gen = streamAccumulator(s, witness, model, promptHash, startTime, systemPromptHash, authorizationId);
|
|
181
183
|
return new Proxy(s, {
|
|
182
184
|
get(target, prop) {
|
|
183
185
|
if (prop === Symbol.asyncIterator) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/adapters/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,OAAgB;IAC7D,OAAO,IAAI,KAAK,CAAC,MAAgB,EAAE;QACjC,GAAG,CAAC,MAAc,EAAE,IAAqB;YACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,OAAO,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAiB,EAAE,OAAgB;IAC9D,OAAO,IAAI,KAAK,CAAC,QAAkB,EAAE;QACnC,GAAG,CAAC,MAAc,EAAE,IAAqB;YACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,iBAAiB,CAAC,IAAuC,EAAE,OAAO,CAAC,CAAC;YAC7E,CAAC;YAED,4DAA4D;YAC5D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,uBAAuB,CAAC,IAAuC,EAAE,OAAO,CAAC,CAAC;YACnF,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AAEvE,SAAS,iBAAiB,CACxB,UAA2C,EAC3C,OAAgB;IAEhB,OAAO,SAAS,iBAAiB,CAAgB,GAAG,IAAe;QACjE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAqB,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAiB,CAAC;QACxC,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,IAAI,SAAS,CAAC;QACpD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;QAE3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAE/C,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1F,+CAA+C;QAC/C,IAAK,OAAe,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/adapters/anthropic.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/bedrock.js
CHANGED
|
@@ -67,15 +67,16 @@ async function handleConverse(realSend, thisArg, command, witness, args) {
|
|
|
67
67
|
const promptText = extractConversePrompt(messages);
|
|
68
68
|
const promptHash = sha256Truncated(promptText);
|
|
69
69
|
// Gatekeeper pre-call check (strict mode only)
|
|
70
|
+
let authorizationId;
|
|
70
71
|
if (witness.strict) {
|
|
71
|
-
witness.gateCheck(messages, modelId);
|
|
72
|
+
authorizationId = witness.gateCheck(messages, modelId);
|
|
72
73
|
}
|
|
73
74
|
const start = performance.now();
|
|
74
75
|
const response = await realSend.call(thisArg, ...args);
|
|
75
76
|
const elapsedMs = Math.round(performance.now() - start);
|
|
76
77
|
const resp = response;
|
|
77
78
|
const record = extractConverseRecord(resp, modelId, promptHash, elapsedMs);
|
|
78
|
-
witness.record(record);
|
|
79
|
+
witness.record(record, authorizationId);
|
|
79
80
|
return response;
|
|
80
81
|
}
|
|
81
82
|
// ── InvokeModel Command Handler ──────────────────────────────────
|
|
@@ -100,15 +101,16 @@ async function handleInvokeModel(realSend, thisArg, command, witness, args) {
|
|
|
100
101
|
const promptText = extractInvokePrompt(body, modelId);
|
|
101
102
|
const promptHash = sha256Truncated(promptText);
|
|
102
103
|
// Gatekeeper pre-call check (strict mode only)
|
|
104
|
+
let authorizationId;
|
|
103
105
|
if (witness.strict) {
|
|
104
|
-
witness.gateCheck(body, modelId);
|
|
106
|
+
authorizationId = witness.gateCheck(body, modelId);
|
|
105
107
|
}
|
|
106
108
|
const start = performance.now();
|
|
107
109
|
const response = await realSend.call(thisArg, ...args);
|
|
108
110
|
const elapsedMs = Math.round(performance.now() - start);
|
|
109
111
|
const resp = response;
|
|
110
112
|
const record = extractInvokeRecord(resp, modelId, promptHash, elapsedMs);
|
|
111
|
-
witness.record(record);
|
|
113
|
+
witness.record(record, authorizationId);
|
|
112
114
|
return response;
|
|
113
115
|
}
|
|
114
116
|
// ── Prompt Extraction ─────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/adapters/bedrock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe,EAAE,OAAgB;IAC3D,OAAO,IAAI,KAAK,CAAC,MAAgB,EAAE;QACjC,GAAG,CAAC,MAAc,EAAE,IAAqB;YACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvC,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;gBAClD,OAAO,qBAAqB,CAAC,IAAgD,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAClG,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAkD,EAClD,OAAgB,EAChB,OAAe;IAEf,OAAO,KAAK,UAAU,eAAe,CAAC,GAAG,IAAe;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAwC,CAAC;QAC/D,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAErD,0CAA0C;QAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;QAEpD,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;YACtC,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,WAAW,KAAK,oBAAoB,EAAE,CAAC;YACzC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,4CAA4C;QAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAED,qEAAqE;AAErE,KAAK,UAAU,cAAc,CAC3B,QAAkD,EAClD,OAAe,EACf,OAAgC,EAChC,OAAgB,EAChB,IAAe;IAEf,MAAM,KAAK,GAAI,OAA+C,CAAC,KAAK,IAAI,OAAO,CAAC;IAChF,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,SAAS,CAAC;IACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAqB,IAAI,EAAE,CAAC;IAEnD,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE/C,+CAA+C;IAC/C,IAAK,OAAe,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/adapters/bedrock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWT3 AI Witness SDK -- Ollama Adapter.
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around the OpenAI adapter that tags records with
|
|
5
|
+
* provider="ollama". Ollama uses an OpenAI-compatible API at
|
|
6
|
+
* http://localhost:11434/v1.
|
|
7
|
+
*
|
|
8
|
+
* Auto-detected by witness.wrap() when base_url contains ":11434".
|
|
9
|
+
*/
|
|
10
|
+
import type { Witness } from "../witness.js";
|
|
11
|
+
export declare function wrapOllama(client: unknown, witness: Witness): unknown;
|
|
12
|
+
export declare function isOllamaClient(client: unknown): boolean;
|
|
13
|
+
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/adapters/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAErE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGvD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWT3 AI Witness SDK -- Ollama Adapter.
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around the OpenAI adapter that tags records with
|
|
5
|
+
* provider="ollama". Ollama uses an OpenAI-compatible API at
|
|
6
|
+
* http://localhost:11434/v1.
|
|
7
|
+
*
|
|
8
|
+
* Auto-detected by witness.wrap() when base_url contains ":11434".
|
|
9
|
+
*/
|
|
10
|
+
import { wrapOpenAI } from "./openai.js";
|
|
11
|
+
export function wrapOllama(client, witness) {
|
|
12
|
+
return wrapOpenAI(client, witness, "ollama");
|
|
13
|
+
}
|
|
14
|
+
export function isOllamaClient(client) {
|
|
15
|
+
const baseURL = getBaseURL(client);
|
|
16
|
+
return baseURL.includes(":11434");
|
|
17
|
+
}
|
|
18
|
+
function getBaseURL(client) {
|
|
19
|
+
if (client === null || client === undefined)
|
|
20
|
+
return "";
|
|
21
|
+
const obj = client;
|
|
22
|
+
const url = obj.baseURL ?? obj.base_url ?? "";
|
|
23
|
+
return String(url);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/adapters/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,UAAU,CAAC,MAAe,EAAE,OAAgB;IAC1D,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,MAAe;IACjC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -15,5 +15,5 @@ import type { Witness } from "../witness.js";
|
|
|
15
15
|
/**
|
|
16
16
|
* Wrap an OpenAI client with an ES6 Proxy for transparent witnessing.
|
|
17
17
|
*/
|
|
18
|
-
export declare function wrapOpenAI(client: unknown, witness: Witness): unknown;
|
|
18
|
+
export declare function wrapOpenAI(client: unknown, witness: Witness, provider?: string): unknown;
|
|
19
19
|
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU7C;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU7C;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,SAAW,GAAG,OAAO,CAE1F"}
|