@weave_protocol/domere 1.0.13 → 1.0.15

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 CHANGED
@@ -1,55 +1,302 @@
1
- # Dōmere - The Judge Protocol
1
+ # ⚖️ Dōmere - Judge Protocol
2
2
 
3
- **Thread Identity, Intent Verification & Blockchain Anchoring for AI Agents**
3
+ [![npm version](https://img.shields.io/npm/v/@weave_protocol/domere.svg)](https://www.npmjs.com/package/@weave_protocol/domere)
4
+ [![license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
5
+ [![downloads](https://img.shields.io/npm/dm/@weave_protocol/domere.svg)](https://www.npmjs.com/package/@weave_protocol/domere)
4
6
 
5
- Part of the [Weave Protocol Security Suite](../README.md) (Mund + Hord + Dōmere)
7
+ **Enterprise-grade verification, compliance, and audit infrastructure for AI agents.**
6
8
 
7
- ## The Problem
9
+ Part of the [Weave Protocol Security Suite](https://github.com/Tyox-all/Weave_Protocol).
8
10
 
9
- When AI agents chain together—Agent A calls Agent B calls Agent C—how do you know the final action matches the human's original intent? Protocols like MCP and A2A standardize how agents **communicate**. Dōmere ensures they **execute honestly**.
11
+ ## Features
10
12
 
11
- ## Core Concepts
13
+ - 🎯 **Intent Tracking** - Track and verify agent intent throughout execution
14
+ - 🔄 **Execution Replay** - Complete audit trails with cryptographic verification
15
+ - 🤝 **Multi-Agent Handoff** - Secure delegation between AI agents
16
+ - 📋 **Compliance Checkpoints** - SOC2, HIPAA, GDPR automated tracking
17
+ - ⛓️ **Blockchain Anchoring** - Immutable proof on Solana & Ethereum
18
+ - 🔍 **Drift Detection** - Detect when agents deviate from original intent
12
19
 
13
- ### Thread Identity
14
- Track intent from origin through every hop with cryptographic signatures.
20
+ ## 📦 Installation
15
21
 
16
- ### Intent Drift Detection
17
- Detect when agents reinterpret, expand, or violate the original intent.
22
+ ```bash
23
+ npm install @weave_protocol/domere
24
+ ```
25
+
26
+ ## 🚀 Quick Start
27
+
28
+ ### Thread Management
29
+
30
+ ```typescript
31
+ import { ThreadManager } from '@weave_protocol/domere';
32
+
33
+ const manager = new ThreadManager();
34
+
35
+ // Create verified thread
36
+ const thread = await manager.createThread({
37
+ origin_type: 'human',
38
+ origin_identity: 'user@company.com',
39
+ intent: 'Generate quarterly report',
40
+ constraints: ['read-only', 'no-external-api']
41
+ });
42
+
43
+ // Check for intent drift
44
+ const drift = await manager.checkDrift(thread.id, 'Sending data to external API');
45
+ // → { drifted: true, reason: 'Violates no-external-api constraint' }
46
+ ```
47
+
48
+ ### 🔄 Execution Replay
49
+
50
+ Complete audit trail with cryptographic verification for forensic analysis.
51
+
52
+ ```typescript
53
+ import { ExecutionReplayManager } from '@weave_protocol/domere';
54
+
55
+ const replay = new ExecutionReplayManager('encryption-key');
56
+
57
+ // Record every agent action
58
+ await replay.recordAction({
59
+ thread_id: 'thr_xxx',
60
+ agent_id: 'gpt-4-agent',
61
+ agent_type: 'llm',
62
+ action_type: 'inference',
63
+ action_name: 'generate_report',
64
+ input: { prompt: '...' },
65
+ output: { response: '...' },
66
+ latency_ms: 1250,
67
+ cost_usd: 0.03,
68
+ tokens_in: 500,
69
+ tokens_out: 1000,
70
+ model: 'gpt-4',
71
+ provider: 'openai'
72
+ });
73
+
74
+ // Get complete execution trail
75
+ const trail = await replay.getExecutionTrail('thr_xxx');
76
+ console.log(trail.integrity_valid); // true - chain is tamper-proof
77
+ console.log(trail.merkle_root); // For blockchain anchoring
78
+
79
+ // Generate audit report
80
+ const report = await replay.generateAuditReport({
81
+ thread_id: 'thr_xxx',
82
+ start_time: new Date('2026-01-01'),
83
+ end_time: new Date('2026-01-31')
84
+ });
85
+ // → { total_actions: 150, total_cost_usd: 4.50, anomalies: [...] }
86
+ ```
18
87
 
19
- ### Blockchain Anchoring
20
- Immutable proof on Solana (about $0.001) or Ethereum (about $2-10).
88
+ ### 🤝 Multi-Agent Handoff Verification
21
89
 
22
- ## Quick Start
90
+ Secure delegation between AI agents with permission inheritance.
23
91
 
24
92
  ```typescript
25
- // Create thread
26
- const thread = await domere.createThread({
27
- origin: { type: 'human', identity: 'user_jane' },
28
- intent: 'Get Q3 sales summary',
29
- constraints: ['read-only']
93
+ import { HandoffManager } from '@weave_protocol/domere';
94
+
95
+ const handoff = new HandoffManager('signing-key', {
96
+ max_delegation_depth: 5,
97
+ max_handoff_duration_ms: 3600000 // 1 hour
30
98
  });
31
99
 
32
- // Add hop
33
- const hop = await domere.addHop({
34
- thread_id: thread.id,
35
- agent: { id: 'data_agent', type: 'claude' },
36
- received_intent: 'Query Q3 sales data',
37
- actions: [{ type: 'query', target: 'sales_db' }]
100
+ // Agent A delegates to Agent B
101
+ const token = await handoff.createHandoff({
102
+ thread_id: 'thr_xxx',
103
+ from_agent: 'orchestrator',
104
+ to_agent: 'researcher',
105
+ delegated_intent: 'Find Q3 revenue data',
106
+ constraints: ['read-only', 'internal-data-only'],
107
+ permissions: [
108
+ { resource: 'database', actions: ['read'] },
109
+ { resource: 'files', actions: ['read'] }
110
+ ],
111
+ max_actions: 10,
112
+ expires_in_ms: 300000 // 5 minutes
38
113
  });
39
114
 
40
- // Check: hop.intent_drift.verdict === 'aligned'
115
+ // Agent B verifies before acting
116
+ const verification = await handoff.verifyHandoff(token.token, 'researcher');
117
+ if (verification.valid) {
118
+ console.log('Remaining actions:', verification.remaining_actions);
119
+ console.log('Constraints:', verification.constraints);
120
+ }
121
+
122
+ // Track delegation chain
123
+ const chain = await handoff.getDelegationChain('thr_xxx');
124
+ console.log('Delegation depth:', chain.depth);
125
+ console.log('Chain integrity:', chain.integrity_valid);
41
126
  ```
42
127
 
43
- ## Business Model
128
+ ### 📋 Compliance Checkpoints - SOC2/HIPAA
129
+
130
+ Automated compliance tracking and reporting.
131
+
132
+ ```typescript
133
+ import { ComplianceManager } from '@weave_protocol/domere';
134
+
135
+ const compliance = new ComplianceManager('signing-key');
136
+
137
+ // HIPAA: Log PHI access
138
+ await compliance.logPHIAccess({
139
+ thread_id: 'thr_xxx',
140
+ agent_id: 'medical-assistant',
141
+ patient_id: 'patient_123',
142
+ access_reason: 'Treatment recommendation',
143
+ data_accessed: ['diagnosis', 'medications'],
144
+ legal_basis: 'treatment'
145
+ });
146
+
147
+ // SOC2: Log access control event
148
+ await compliance.logAccessControl({
149
+ thread_id: 'thr_xxx',
150
+ agent_id: 'admin-bot',
151
+ user_id: 'user_456',
152
+ resource: 'financial-reports',
153
+ action: 'grant',
154
+ success: true
155
+ });
156
+
157
+ // Generic compliance checkpoint
158
+ await compliance.checkpoint({
159
+ thread_id: 'thr_xxx',
160
+ framework: 'SOC2',
161
+ control: 'CC6.1', // Logical Access Security
162
+ event_type: 'access',
163
+ event_description: 'User accessed sensitive data',
164
+ data_classification: 'confidential',
165
+ agent_id: 'data-agent',
166
+ sign: true
167
+ });
168
+
169
+ // Generate compliance report
170
+ const report = await compliance.generateReport({
171
+ framework: 'HIPAA',
172
+ period_start: new Date('2026-01-01'),
173
+ period_end: new Date('2026-03-31'),
174
+ attester: 'Compliance Officer'
175
+ });
176
+
177
+ console.log('Compliance Score:', report.compliance_score);
178
+ console.log('Open Violations:', report.open_violations);
179
+ console.log('Control Coverage:', report.control_coverage);
180
+ ```
181
+
182
+ ### ⛓️ Blockchain Anchoring
183
+
184
+ Immutable proof of AI agent actions on Solana and Ethereum.
185
+
186
+ ```typescript
187
+ import { SolanaAnchor, EthereumAnchor } from '@weave_protocol/domere';
188
+
189
+ // Solana (Devnet)
190
+ const solana = new SolanaAnchor({
191
+ rpc_url: 'https://api.devnet.solana.com',
192
+ program_id: 'BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj'
193
+ });
194
+
195
+ await solana.anchorThread({
196
+ thread_id: 'thr_xxx',
197
+ merkle_root: trail.merkle_root,
198
+ hop_count: 5,
199
+ intent_hash: thread.intent_hash,
200
+ compliant: true
201
+ });
202
+
203
+ // Ethereum (Mainnet)
204
+ const ethereum = new EthereumAnchor({
205
+ rpc_url: 'https://mainnet.infura.io/v3/YOUR_KEY',
206
+ contract_address: '0xAA8b52adD3CEce6269d14C6335a79df451543820'
207
+ });
208
+
209
+ await ethereum.anchorThread({
210
+ thread_id: 'thr_xxx',
211
+ merkle_root: trail.merkle_root,
212
+ hop_count: 5,
213
+ intent_hash: thread.intent_hash,
214
+ compliant: true
215
+ });
216
+ ```
217
+
218
+ ## ⛓️ Blockchain Deployments
219
+
220
+ | Chain | Network | Contract/Program | Explorer |
221
+ |-------|---------|------------------|----------|
222
+ | **Solana** | Devnet | `BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj` | [View](https://solscan.io/account/BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj?cluster=devnet) |
223
+ | **Ethereum** | Mainnet | `0xAA8b52adD3CEce6269d14C6335a79df451543820` | [View](https://etherscan.io/address/0xAA8b52adD3CEce6269d14C6335a79df451543820) |
224
+
225
+ ## 📚 API Reference
226
+
227
+ ### ExecutionReplayManager
228
+
229
+ | Method | Description |
230
+ |--------|-------------|
231
+ | `recordAction(params)` | Record an action in the audit trail |
232
+ | `getExecutionTrail(threadId)` | Get complete trail for a thread |
233
+ | `replayActions(threadId)` | Replay actions for analysis |
234
+ | `generateAuditReport(query)` | Generate audit report |
235
+ | `verifyTrailIntegrity(actions)` | Verify chain hasn't been tampered |
236
+ | `exportTrail(threadId)` | Export trail as JSON |
237
+ | `importTrail(data)` | Import trail from JSON |
238
+
239
+ ### HandoffManager
240
+
241
+ | Method | Description |
242
+ |--------|-------------|
243
+ | `createHandoff(params)` | Create delegation token |
244
+ | `verifyHandoff(token, agentId)` | Verify token before acting |
245
+ | `recordAction(handoffId, action)` | Record action under handoff |
246
+ | `revokeHandoff(handoffId)` | Revoke handoff and children |
247
+ | `getDelegationChain(threadId)` | Get full delegation chain |
248
+ | `checkPermission(handoffId, resource, action)` | Check if action permitted |
249
+
250
+ ### ComplianceManager
251
+
252
+ | Method | Description |
253
+ |--------|-------------|
254
+ | `checkpoint(params)` | Record compliance checkpoint |
255
+ | `logPHIAccess(params)` | HIPAA: Log PHI access |
256
+ | `logAccessControl(params)` | SOC2: Log access control |
257
+ | `recordViolation(params)` | Record compliance violation |
258
+ | `updateRemediation(id, status)` | Update remediation status |
259
+ | `generateReport(params)` | Generate compliance report |
260
+ | `getCheckpoints(threadId)` | Get checkpoints for thread |
261
+ | `getViolations(threadId)` | Get violations for thread |
262
+
263
+ ## 🏗️ Architecture
264
+
265
+ ```
266
+ ┌─────────────────────────────────────────────────────────────────┐
267
+ │ Dōmere - Judge Protocol │
268
+ ├─────────────────────────────────────────────────────────────────┤
269
+ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
270
+ │ │ Execution │ │ Handoff │ │ Compliance │ │
271
+ │ │ Replay │ │ Manager │ │ Manager │ │
272
+ │ ├─────────────┤ ├─────────────┤ ├─────────────────────────┤ │
273
+ │ │ • Recording │ │ • Tokens │ │ • SOC2 Controls │ │
274
+ │ │ • Trails │ │ • Verify │ │ • HIPAA Controls │ │
275
+ │ │ • Reports │ │ • Revoke │ │ • Checkpoints │ │
276
+ │ │ • Anomalies │ │ • Chain │ │ • Violations │ │
277
+ │ └─────────────┘ └─────────────┘ │ • Reports │ │
278
+ │ └─────────────────────────┘ │
279
+ ├─────────────────────────────────────────────────────────────────┤
280
+ │ ┌─────────────────────────┐ ┌─────────────────────────────┐ │
281
+ │ │ Thread Manager │ │ Blockchain Anchoring │ │
282
+ │ │ • Intent Tracking │ │ • Solana (Devnet) │ │
283
+ │ │ • Drift Detection │ │ • Ethereum (Mainnet) │ │
284
+ │ │ • Constraints │ │ • Merkle Proofs │ │
285
+ │ └─────────────────────────┘ └─────────────────────────────┘ │
286
+ └─────────────────────────────────────────────────────────────────┘
287
+ ```
44
288
 
45
- **Free:** All analysis, threading, drift detection, MCP tools
46
- **Paid:** Blockchain anchoring only (you bring your wallet)
289
+ ## 🔗 Related Packages
47
290
 
48
- ## License
291
+ | Package | Description |
292
+ |---------|-------------|
293
+ | [@weave_protocol/mund](https://www.npmjs.com/package/@weave_protocol/mund) | Guardian Protocol - Secret & threat scanning |
294
+ | [@weave_protocol/hord](https://www.npmjs.com/package/@weave_protocol/hord) | Vault Protocol - Secure containment |
295
+ | [@weave_protocol/api](https://www.npmjs.com/package/@weave_protocol/api) | Universal REST API |
49
296
 
50
- Use individually or together with the full Weave Protocol suite.
297
+ ## 📄 License
51
298
 
52
- Apache-2.0
299
+ Apache 2.0 - See [LICENSE](LICENSE) for details.
53
300
 
54
301
  ---
55
302
 
@@ -0,0 +1,2 @@
1
+ export * from "./replay.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./replay.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Dōmere - Execution Replay & Audit Trail
3
+ *
4
+ * Cryptographically verifiable audit trail for AI agent actions.
5
+ * Enables complete replay and forensic analysis of agent behavior.
6
+ */
7
+ export interface ActionRecord {
8
+ id: string;
9
+ thread_id: string;
10
+ sequence: number;
11
+ timestamp: Date;
12
+ agent_id: string;
13
+ agent_type: 'llm' | 'tool' | 'human' | 'system';
14
+ action_type: 'inference' | 'tool_call' | 'api_request' | 'file_access' | 'data_read' | 'data_write' | 'delegation' | 'decision';
15
+ action_name: string;
16
+ input_hash: string;
17
+ output_hash: string;
18
+ input_size_bytes?: number;
19
+ output_size_bytes?: number;
20
+ input_encrypted?: string;
21
+ output_encrypted?: string;
22
+ latency_ms: number;
23
+ cost_usd?: number;
24
+ tokens_in?: number;
25
+ tokens_out?: number;
26
+ model?: string;
27
+ provider?: string;
28
+ previous_hash: string;
29
+ action_hash: string;
30
+ signature?: string;
31
+ }
32
+ export interface ExecutionTrail {
33
+ thread_id: string;
34
+ created_at: Date;
35
+ updated_at: Date;
36
+ action_count: number;
37
+ total_cost_usd: number;
38
+ total_latency_ms: number;
39
+ agents_involved: string[];
40
+ merkle_root: string;
41
+ actions: ActionRecord[];
42
+ integrity_valid: boolean;
43
+ }
44
+ export interface ReplayOptions {
45
+ from_sequence?: number;
46
+ to_sequence?: number;
47
+ agent_filter?: string[];
48
+ action_type_filter?: ActionRecord['action_type'][];
49
+ include_encrypted?: boolean;
50
+ }
51
+ export interface AuditQuery {
52
+ thread_id?: string;
53
+ agent_id?: string;
54
+ action_type?: ActionRecord['action_type'];
55
+ start_time?: Date;
56
+ end_time?: Date;
57
+ min_cost_usd?: number;
58
+ min_latency_ms?: number;
59
+ limit?: number;
60
+ }
61
+ export interface AuditReport {
62
+ query: AuditQuery;
63
+ generated_at: Date;
64
+ total_actions: number;
65
+ total_cost_usd: number;
66
+ total_latency_ms: number;
67
+ actions_by_type: Record<string, number>;
68
+ actions_by_agent: Record<string, number>;
69
+ cost_by_agent: Record<string, number>;
70
+ anomalies: AuditAnomaly[];
71
+ }
72
+ export interface AuditAnomaly {
73
+ type: 'high_latency' | 'high_cost' | 'repeated_failure' | 'unusual_pattern' | 'integrity_violation';
74
+ severity: 'low' | 'medium' | 'high' | 'critical';
75
+ description: string;
76
+ action_ids: string[];
77
+ detected_at: Date;
78
+ }
79
+ export declare class ExecutionReplayManager {
80
+ private trails;
81
+ private encryptionKey?;
82
+ constructor(encryptionKey?: string);
83
+ /**
84
+ * Record an action in the audit trail
85
+ */
86
+ recordAction(params: {
87
+ thread_id: string;
88
+ agent_id: string;
89
+ agent_type: ActionRecord['agent_type'];
90
+ action_type: ActionRecord['action_type'];
91
+ action_name: string;
92
+ input: any;
93
+ output: any;
94
+ latency_ms: number;
95
+ cost_usd?: number;
96
+ tokens_in?: number;
97
+ tokens_out?: number;
98
+ model?: string;
99
+ provider?: string;
100
+ store_raw?: boolean;
101
+ }): Promise<ActionRecord>;
102
+ /**
103
+ * Get complete execution trail for a thread
104
+ */
105
+ getExecutionTrail(threadId: string, options?: ReplayOptions): Promise<ExecutionTrail | null>;
106
+ /**
107
+ * Replay actions for debugging/analysis
108
+ */
109
+ replayActions(threadId: string, options?: ReplayOptions): Promise<{
110
+ actions: ActionRecord[];
111
+ timeline: {
112
+ timestamp: Date;
113
+ description: string;
114
+ }[];
115
+ summary: {
116
+ total_actions: number;
117
+ duration_ms: number;
118
+ cost_usd: number;
119
+ agents: string[];
120
+ };
121
+ }>;
122
+ /**
123
+ * Query actions across threads
124
+ */
125
+ queryActions(query: AuditQuery): Promise<ActionRecord[]>;
126
+ /**
127
+ * Generate audit report
128
+ */
129
+ generateAuditReport(query: AuditQuery): Promise<AuditReport>;
130
+ /**
131
+ * Verify trail integrity
132
+ */
133
+ verifyTrailIntegrity(actions: ActionRecord[]): boolean;
134
+ /**
135
+ * Export trail for external storage/verification
136
+ */
137
+ exportTrail(threadId: string): Promise<string>;
138
+ /**
139
+ * Import trail from external source
140
+ */
141
+ importTrail(data: string): Promise<{
142
+ thread_id: string;
143
+ actions_imported: number;
144
+ valid: boolean;
145
+ }>;
146
+ private computeActionHash;
147
+ private computeMerkleRoot;
148
+ private encrypt;
149
+ private decrypt;
150
+ private detectAnomalies;
151
+ }
152
+ export default ExecutionReplayManager;
153
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/audit/replay.ts"],"names":[],"mappings":"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"}