Who this is for: Technical decision-makers, platform architects, and engineering leads evaluating SWT3 across their AI stack. This is an index guide. It maps the full governance surface and links to detailed adapter-specific guides for implementation.

One protocol, every runtime: SWT3 witnesses AI decisions regardless of the model provider, framework, or programming language. The same anchor format, the same fingerprint formula, the same verification procedure. An anchor minted in a Python LangChain pipeline verifies identically to one minted in a Kotlin Android app.

Contents

1. The Runtime Surface 2. SDK Coverage Matrix 3. Regulatory Trigger Map 4. Python Adapters (21) 5. TypeScript Adapters (15) 6. Rust, C#, Ruby, Swift, Kotlin 7. MCP Server (18 Tools) 8. Choosing Your Entry Point 9. References

1. The Runtime Surface

The runtime surface is every point in your AI system where a consequential decision happens. Each of these points can be witnessed independently:

Each point maps to one or more SWT3 procedures. Each procedure maps to one or more regulatory requirements. The runtime surface is where compliance policy becomes verifiable evidence.

Performance: The wrap() call adds sub-millisecond overhead per inference (SHA-256 hash computation). The network flush to the compliance ledger is asynchronous and does not block the inference response. Offline verification has zero network overhead. The witness layer is an observer, not a gatekeeper: if it fails, inference continues unaffected.

2. SDK Coverage Matrix

SDK Language Adapters wrap() witness() chain() gate reconstruct OTel
swt3-ai Python 21 Yes Yes Yes Yes Yes Yes
@tenova/swt3-ai TypeScript 15 Yes Yes Yes Yes Yes Yes
swt3-ai Rust Core - Yes - - - -
swt3-ai C# / .NET Core - Yes - - - -
swt3-ai Ruby Core - Yes - - - -
swt3-ai Swift Core - Yes - - - -
swt3-ai Kotlin Core - Yes - - Yes -
@tenova/swt3-mcp MCP 59 tools - Yes - - - -

Full SDKs (Python, TypeScript) provide client adapters that intercept inference calls transparently via wrap(). The wrapped client behaves identically to the unwrapped client: same API, same responses, same types. The only difference is that each call also produces a witness anchor behind the scenes, with sub-millisecond overhead.

Core SDKs (Rust, C#, Ruby, Swift, Kotlin) provide the protocol primitives: fingerprint computation, HMAC signing, types, and the witness() method for explicit evidence recording. They do not have wrap() because they are designed for environments where the developer calls witness() directly after each consequential decision. Core SDKs are equally capable of producing and verifying anchors; the integration pattern is explicit rather than transparent.

All SDKs share 54 cross-language test vectors for fingerprint parity. An anchor from any SDK verifies in any other.

Minimum viable governance: If you can only instrument three procedures on day one, start with AI-INF.1 (inference provenance), AI-LOG.1 (audit logging), and AI-GRD.1 (input guardrail). These three cover the baseline that every framework requires: you know which model ran, you have an audit trail, and you have evidence that input validation was active. Expand from there.

3. Regulatory Trigger Map

Each regulatory requirement activates at runtime through specific SWT3 procedures. This table maps the most common triggers:

Regulation Article / Control Trigger Procedure(s)
EU AI ActArt. 9 Risk ManagementEvery inference of a high-risk systemAI-INF.1, AI-SAFE.1
EU AI ActArt. 10 Data GovernanceTraining data bias checkAI-FAIR.1, AI-DATA.1
EU AI ActArt. 14 Human OversightHuman-in-the-loop decisionAI-HITL.1
EU AI ActArt. 50 TransparencyDisclosure that content is AI-generatedAI-TRANS.1
NIST AI RMFGOVERN 1.2AI risk management documentationAI-GOV.1
NIST AI RMFMAP 1.5Deployment environment characterizationAI-INF.1, AI-HW.1
NIST AI RMFMEASURE 2.6Bias measurementAI-FAIR.1
NIST 800-53SI-4Continuous monitoringAI-INF.1, AI-DRIFT.1
NIST 800-53AU-6Audit reviewAI-LOG.1, AI-AUDIT.1
SR 11-7Model DevelopmentModel identity and weightsAI-MDL.1, AI-MDL.5
SR 11-7Model ValidationChampion-challenger assessmentAI-ASSESS.1
GDPRArt. 22Automated decision affecting an individualAI-AUTO.1
GDPRArt. 35Data protection impact assessmentAI-DPIA.1
CMMCSI-4 / AU-6CUI handling by AI systemsAI-INF.1, AI-ACC.1

For complete framework-to-procedure mappings, see the UCT Registry (266 procedures, 75 namespaces, 36 frameworks).

4. Python Adapters (21)

Python is the most adapter-rich SDK. Each adapter wraps a specific AI provider or framework with zero-config witnessing:

AdapterProvider / FrameworkIntegration
openaiOpenAI, Azure OpenAIwitness.wrap(client)
anthropicAnthropic Claudewitness.wrap(client)
bedrockAWS Bedrockwitness.wrap(client)
litellmLiteLLM (100+ providers)witness.wrap_litellm()
ollamaOllama (local models)witness.wrap(client)
vllmvLLM (OpenAI-compatible)wrap_vllm(client)
vllm_nativevLLM AsyncLLMEngineToken factory observer
cohereCohere V2witness.wrap(client)
langchainLangChain (any LLM)Callback handler
langgraphLangGraphwrap_langgraph(graph)
crewaiCrewAIwrap_crewai(crew)
google_adkGoogle ADKwrap_adk(agent)
foundryMicrosoft Foundrywrap_foundry(agent)
agtMicrosoft AGTwrap_agt(engine)
a2aGoogle A2A Protocolwrap_a2a(agent)
qdrantQdrant (RAG pipeline)wrap_qdrant(client)
cerebrasCerebras WSE-3Host-side observer
dynamoNVIDIA DynamoAsync generator decorator
tritonNVIDIA TritonPython backend wrapper
skillspectorNVIDIA SkillSpectorScan result witness
openshellOpenShellAdapter

All adapters are duck-typed. They work with any object that exposes the expected method (.create(), .send(), .run(), etc.) without importing the provider library as a dependency.

5. TypeScript Adapters (15)

AdapterProvider / FrameworkIntegration
openaiOpenAI (ES6 Proxy, streaming)witness.wrap(client)
anthropicAnthropic Claudewitness.wrap(client)
bedrockAWS Bedrockwitness.wrap(client)
vercel-aiVercel AI SDKonFinish callback factory
ollamaOllamawitness.wrap(client)
vllmvLLMwitness.wrap(client)
cohereCoherewitness.wrap(client)
langgraphLangGraphwrapLangGraph(graph)
crewaiCrewAIwrapCrewAI(crew)
google-adkGoogle ADKwrapADK(agent)
foundryMicrosoft FoundrywrapFoundry(agent)
agtMicrosoft AGTwrapAGT(engine)
a2aGoogle A2A ProtocolwrapA2A(agent)
qdrantQdrantwrapQdrant(client)
cerebrasCerebras WSE-3Host-side observer

6. Rust, C#, Ruby, Swift, Kotlin

Core SDKs provide the protocol primitives: fingerprint computation, HMAC-SHA256 payload signing, type definitions, and basic witness record creation. They do not include provider-specific client adapters.

These SDKs are designed for:

All core SDKs produce anchors that are byte-identical in fingerprint computation to the Python and TypeScript SDKs. 54 test vectors enforce cross-language parity.

7. MCP Server (18 Tools)

The @tenova/swt3-mcp package exposes SWT3 witnessing as a Model Context Protocol server. Any MCP-compatible AI host (Claude Desktop, VS Code Copilot, custom agents) gains access to 18 governance tools without code changes.

MCP tools enable compliance discovery: the host agent can query its own governance posture, verify anchors, check procedure coverage, and generate evidence, all through the standard MCP tool-calling interface.

For detailed MCP governance patterns, see the MCP Governance and Compliance guide and the NSA MCP Security Mapping.

8. Choosing Your Entry Point

Start with the adapter that matches your existing AI client:

If you use...Start with...Detailed guide
OpenAI / Azure OpenAIwitness.wrap(client)Quick Start
Anthropic Claudewitness.wrap(client)Claude Regulated
AWS Bedrockwitness.wrap(client)SDK Docs
LangChain / LangGraphCallback handler or wrap_langgraph()Multi-Agent Witness
CrewAIwrap_crewai(crew)Multi-Agent Witness
Google A2Awrap_a2a(agent)A2A Agent Card
MCP hosts (Claude Desktop, etc.)npx @tenova/swt3-mcpMCP Governance
Vercel AI SDKonFinish callbackSDK Docs
NVIDIA Dynamo / TritonDecorator or backend wrapperDynamo Integration
Cerebras WSE-3Host-side observerSDK Docs
Self-hosted / vLLM / Ollamawitness.wrap(client)Self-Hosted Quick Start
100+ providers via LiteLLMwitness.wrap_litellm()SDK Docs

If your provider is not listed, the witness.wrap() method works with any OpenAI-compatible client. If you use a non-OpenAI protocol, use the explicit witness.witness() method to record individual procedures directly.

9. References

This guide is provided for informational purposes only and does not constitute legal, regulatory, or compliance advice. Regulatory mappings and crosswalk interpretations reflect the publisher's analysis and may not address all obligations applicable to your organization. Consult qualified legal counsel before making compliance decisions based on this content.