@tenova/swt3-ai 0.2.3 → 0.2.5
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 +56 -0
- package/dist/demo.d.ts +11 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +118 -0
- package/dist/demo.js.map +1 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -6,6 +6,17 @@ Cryptographic AI Governance for the Edge. Zero Latency. Zero Data Retention.
|
|
|
6
6
|
|
|
7
7
|
Works with OpenAI, Anthropic, Vercel AI SDK, and any OpenAI-compatible endpoint (vLLM, Ollama, Azure, Llama.cpp).
|
|
8
8
|
|
|
9
|
+
## See It Work in 10 Seconds
|
|
10
|
+
|
|
11
|
+
No API keys. No account. No network calls.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @tenova/swt3-ai
|
|
15
|
+
npx swt3-demo
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You'll see the full SWT3 witnessing pipeline: hash, extract, clear, anchor, verify — all running locally. When you're ready for production, keep reading.
|
|
19
|
+
|
|
9
20
|
## Three Lines of Code
|
|
10
21
|
|
|
11
22
|
### OpenAI
|
|
@@ -128,6 +139,38 @@ const azureClient = witness.wrap(
|
|
|
128
139
|
) as OpenAI;
|
|
129
140
|
```
|
|
130
141
|
|
|
142
|
+
## Quick Start (Try It Locally)
|
|
143
|
+
|
|
144
|
+
Want to see the SDK work before connecting to a live endpoint? Use `factorHandoff` to write witness anchors to local JSON files — no account needed.
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
import { Witness } from "@tenova/swt3-ai";
|
|
148
|
+
import OpenAI from "openai";
|
|
149
|
+
|
|
150
|
+
const witness = new Witness({
|
|
151
|
+
endpoint: "https://sovereign.tenova.io",
|
|
152
|
+
apiKey: "test", // any string — handoff runs before network flush
|
|
153
|
+
tenantId: "LOCAL_TEST",
|
|
154
|
+
factorHandoff: "file", // write anchors to ./swt3-handoff/ as JSON
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
const client = witness.wrap(new OpenAI()) as OpenAI;
|
|
158
|
+
|
|
159
|
+
const response = await client.chat.completions.create({
|
|
160
|
+
model: "gpt-4o",
|
|
161
|
+
messages: [{ role: "user", content: "What is the EU AI Act?" }],
|
|
162
|
+
});
|
|
163
|
+
console.log(response.choices[0].message.content);
|
|
164
|
+
|
|
165
|
+
// Check ./swt3-handoff/ — you'll see a JSON file per inference with:
|
|
166
|
+
// - SHA-256 fingerprint
|
|
167
|
+
// - Model ID, latency, token count
|
|
168
|
+
// - Clearing level applied
|
|
169
|
+
// - Full factor data for independent verification
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
When you're ready for production, [book a 14-day assessment](https://calendly.com/tenova-axiom/30min) to get your tenant ID and API key. Point the SDK at your enclave and every inference is witnessed, anchored, and verifiable.
|
|
173
|
+
|
|
131
174
|
## What Happens Per Inference
|
|
132
175
|
|
|
133
176
|
1. **Intercept**: ES6 Proxy wraps your AI client transparently
|
|
@@ -262,6 +305,19 @@ Each anchor gets its own JSON file containing the full uncleared factors and met
|
|
|
262
305
|
|
|
263
306
|
For the full protocol specification, see the [Factor Handoff Protocol](https://sovereign.tenova.io/docs/factor-handoff-protocol.html).
|
|
264
307
|
|
|
308
|
+
## AI Witness-as-a-Service
|
|
309
|
+
|
|
310
|
+
SWT3 AI Witness is available as a managed service through [Axiom Sovereign Engine](https://tenova.io):
|
|
311
|
+
|
|
312
|
+
| Tier | Retention | Key Features | Price |
|
|
313
|
+
|------|-----------|-------------|-------|
|
|
314
|
+
| **Open** | 7 days | SDK, dashboard, public verify | Free |
|
|
315
|
+
| **Pro** | 90 days | + AI conformity exports, regulatory reports | $499/mo |
|
|
316
|
+
| **Enclave** | 1 year | + OSCAL, Gate API, attestations, webhook feeds | $9,500/mo |
|
|
317
|
+
| **Sovereign** | Custom | + White-glove ATO sprint, mock assessment, on-prem | [Book Assessment](https://calendly.com/tenova-axiom/30min) |
|
|
318
|
+
|
|
319
|
+
890+ downloads across npm and PyPI. 151 procedures. 13 frameworks. Patent pending.
|
|
320
|
+
|
|
265
321
|
## Ready to Witness Your AI?
|
|
266
322
|
|
|
267
323
|
Get an API key and start witnessing in under 10 minutes:
|
package/dist/demo.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* SWT3 AI Witness SDK — Zero-Friction Demo
|
|
4
|
+
*
|
|
5
|
+
* Run with: npx @tenova/swt3-ai demo
|
|
6
|
+
* or: npx tsx node_modules/@tenova/swt3-ai/src/demo.ts
|
|
7
|
+
*
|
|
8
|
+
* No API keys. No account. No network calls.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=demo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
package/dist/demo.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* SWT3 AI Witness SDK — Zero-Friction Demo
|
|
4
|
+
*
|
|
5
|
+
* Run with: npx @tenova/swt3-ai demo
|
|
6
|
+
* or: npx tsx node_modules/@tenova/swt3-ai/src/demo.ts
|
|
7
|
+
*
|
|
8
|
+
* No API keys. No account. No network calls.
|
|
9
|
+
*/
|
|
10
|
+
import { createHash } from "node:crypto";
|
|
11
|
+
const isColor = process.stdout.isTTY;
|
|
12
|
+
const B = isColor ? "\x1b[1m" : "";
|
|
13
|
+
const D = isColor ? "\x1b[2m" : "";
|
|
14
|
+
const G = isColor ? "\x1b[32m" : "";
|
|
15
|
+
const A = isColor ? "\x1b[33m" : "";
|
|
16
|
+
const C = isColor ? "\x1b[36m" : "";
|
|
17
|
+
const W = isColor ? "\x1b[37m" : "";
|
|
18
|
+
const R = isColor ? "\x1b[0m" : "";
|
|
19
|
+
function sha256(data, len = 64) {
|
|
20
|
+
return createHash("sha256").update(data).digest("hex").slice(0, len);
|
|
21
|
+
}
|
|
22
|
+
function mintFingerprint(tenant, proc, fa, fb, fc, tsMs) {
|
|
23
|
+
const n = (v) => (v === Math.floor(v) ? String(v) : String(v));
|
|
24
|
+
const input = `WITNESS:${tenant}:${proc}:${n(fa)}:${n(fb)}:${n(fc)}:${tsMs}`;
|
|
25
|
+
return createHash("sha256").update(input).digest("hex").slice(0, 12);
|
|
26
|
+
}
|
|
27
|
+
function sleep(ms) {
|
|
28
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
29
|
+
}
|
|
30
|
+
async function main() {
|
|
31
|
+
console.log();
|
|
32
|
+
console.log(`${B}SWT3 AI Witness SDK — Live Demo${R}`);
|
|
33
|
+
console.log(`${D}No API keys. No account. No network calls.${R}`);
|
|
34
|
+
console.log(`${D}${"─".repeat(56)}${R}`);
|
|
35
|
+
console.log();
|
|
36
|
+
const tenant = "DEMO_TENANT";
|
|
37
|
+
const provider = "LOCAL";
|
|
38
|
+
const modelId = "gpt-4o-2024-08-06";
|
|
39
|
+
const prompt = "What are the compliance requirements for the EU AI Act?";
|
|
40
|
+
const responseText = "The EU AI Act requires high-risk AI systems to maintain technical documentation, implement risk management systems, and ensure human oversight...";
|
|
41
|
+
console.log(`${C}1. Simulating AI inference...${R}`);
|
|
42
|
+
console.log(` Model: ${W}${modelId}${R}`);
|
|
43
|
+
console.log(` Prompt: ${D}${prompt.slice(0, 50)}...${R}`);
|
|
44
|
+
await sleep(300);
|
|
45
|
+
const promptHash = sha256(prompt, 16);
|
|
46
|
+
const responseHash = sha256(responseText, 16);
|
|
47
|
+
const modelHash = sha256(modelId, 12);
|
|
48
|
+
console.log();
|
|
49
|
+
console.log(`${C}2. Hashing locally (raw text never leaves your infrastructure)...${R}`);
|
|
50
|
+
console.log(` Prompt hash: ${G}${promptHash}${R}`);
|
|
51
|
+
console.log(` Response hash: ${G}${responseHash}${R}`);
|
|
52
|
+
console.log(` Model hash: ${G}${modelHash}${R}`);
|
|
53
|
+
await sleep(300);
|
|
54
|
+
const latencyMs = 847;
|
|
55
|
+
const tokenCount = 142;
|
|
56
|
+
const guardrailsActive = 3;
|
|
57
|
+
console.log();
|
|
58
|
+
console.log(`${C}3. Extracting compliance factors...${R}`);
|
|
59
|
+
console.log(` factor_a (latency): ${W}${latencyMs} ms${R}`);
|
|
60
|
+
console.log(` factor_b (tokens): ${W}${tokenCount}${R}`);
|
|
61
|
+
console.log(` factor_c (guardrails): ${W}${guardrailsActive} active${R}`);
|
|
62
|
+
await sleep(300);
|
|
63
|
+
console.log();
|
|
64
|
+
console.log(`${C}4. Applying Clearing Level 1 (Standard)...${R}`);
|
|
65
|
+
console.log(` ${G}✓${R} Hashes retained`);
|
|
66
|
+
console.log(` ${G}✓${R} Factors retained`);
|
|
67
|
+
console.log(` ${G}✓${R} Raw prompt purged from wire`);
|
|
68
|
+
console.log(` ${G}✓${R} Raw response purged from wire`);
|
|
69
|
+
await sleep(300);
|
|
70
|
+
const tsMs = Date.now();
|
|
71
|
+
const epoch = Math.floor(tsMs / 1000);
|
|
72
|
+
const procedures = [
|
|
73
|
+
["AI-INF.1", 1, 1, 1, "PASS", "Inference traced"],
|
|
74
|
+
["AI-MDL.1", 1, 1, 0, "PASS", "Model version recorded"],
|
|
75
|
+
["AI-GRD.1", 1, 1, guardrailsActive, "PASS", "Guardrails active"],
|
|
76
|
+
];
|
|
77
|
+
console.log();
|
|
78
|
+
console.log(`${C}5. Minting SWT3 Witness Anchors...${R}`);
|
|
79
|
+
console.log();
|
|
80
|
+
for (const [procId, fa, fb, fc, verdict, desc] of procedures) {
|
|
81
|
+
const fp = mintFingerprint(tenant, procId, fa, fb, fc, tsMs);
|
|
82
|
+
const anchor = `SWT3-E-${provider}-AI-${procId}-${verdict}-${epoch}-${fp}`;
|
|
83
|
+
const color = verdict === "PASS" ? G : A;
|
|
84
|
+
console.log(` ${color}■ ${verdict}${R} ${W}${procId}${R} ${D}${desc}${R}`);
|
|
85
|
+
console.log(` ${D}${anchor}${R}`);
|
|
86
|
+
console.log();
|
|
87
|
+
}
|
|
88
|
+
console.log(`${C}6. Verifying anchor integrity...${R}`);
|
|
89
|
+
const fpCheck = mintFingerprint(tenant, "AI-INF.1", 1, 1, 1, tsMs);
|
|
90
|
+
console.log(` Recomputed: ${G}${fpCheck}${R}`);
|
|
91
|
+
console.log(` Match: ${G}✓ Anchor is independently verifiable${R}`);
|
|
92
|
+
console.log();
|
|
93
|
+
console.log(`${D}${"─".repeat(56)}${R}`);
|
|
94
|
+
console.log(`${B}What just happened:${R}`);
|
|
95
|
+
console.log(" • AI inference was simulated locally");
|
|
96
|
+
console.log(" • Prompt and response were SHA-256 hashed (raw text never transmitted)");
|
|
97
|
+
console.log(" • 3 compliance factors extracted (latency, tokens, guardrails)");
|
|
98
|
+
console.log(" • Clearing Level 1 purged raw data from the wire payload");
|
|
99
|
+
console.log(" • 3 SWT3 Witness Anchors minted with tamper-evident fingerprints");
|
|
100
|
+
console.log(" • Any party can re-derive the fingerprint using the same formula");
|
|
101
|
+
console.log();
|
|
102
|
+
console.log(` ${G}✓ 3 anchors verified locally.${R}`);
|
|
103
|
+
console.log();
|
|
104
|
+
console.log(` → Track your Integrity Debt Score and generate a Compliance Passport:`);
|
|
105
|
+
console.log(` ${C}https://sovereign.tenova.io/signup${R} ${D}(free, no credit card)${R}`);
|
|
106
|
+
console.log();
|
|
107
|
+
console.log(`${B}Ready for production?${R}`);
|
|
108
|
+
console.log(` Start free: ${C}https://sovereign.tenova.io/signup${R}`);
|
|
109
|
+
console.log(` SDK docs: ${C}https://sovereign.tenova.io/docs/${R}`);
|
|
110
|
+
console.log(` Book a pilot: ${C}https://calendly.com/tenova-axiom/30min${R}`);
|
|
111
|
+
console.log(` GitHub: ${C}https://github.com/tenova-labs/swt3-ai${R}`);
|
|
112
|
+
console.log();
|
|
113
|
+
console.log(`${D}One Protocol. Every Model. Any Language. Zero Trust Required.${R}`);
|
|
114
|
+
console.log(`${D}TeNova — Defining the AI Accountability Standard.${R}`);
|
|
115
|
+
console.log();
|
|
116
|
+
}
|
|
117
|
+
main();
|
|
118
|
+
//# sourceMappingURL=demo.js.map
|
package/dist/demo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.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.2.
|
|
3
|
+
"version": "0.2.5",
|
|
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",
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"types": "./dist/index.d.ts"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"swt3-demo": "./dist/demo.js"
|
|
16
|
+
},
|
|
14
17
|
"files": [
|
|
15
18
|
"dist",
|
|
16
19
|
"README.md"
|