@weave_protocol/domere 1.2.0 β 1.2.2
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 +241 -154
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,18 +4,18 @@
|
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://www.npmjs.com/package/@weave_protocol/domere)
|
|
6
6
|
|
|
7
|
-
**Enterprise-grade verification, compliance, and audit infrastructure for AI agents.**
|
|
7
|
+
**Enterprise-grade verification, orchestration, compliance, and audit infrastructure for AI agents.**
|
|
8
8
|
|
|
9
9
|
Part of the [Weave Protocol Security Suite](https://github.com/Tyox-all/Weave_Protocol).
|
|
10
10
|
|
|
11
11
|
## β¨ Features
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
| Category | Features |
|
|
14
|
+
|----------|----------|
|
|
15
|
+
| **Verification** | Intent tracking, drift detection, execution replay, multi-agent handoff |
|
|
16
|
+
| **Orchestration** | Task scheduler, agent registry, shared state with locks |
|
|
17
|
+
| **Compliance** | SOC2 controls, HIPAA checkpoints, automated reporting |
|
|
18
|
+
| **Blockchain** | Solana & Ethereum anchoring for immutable audit trails |
|
|
19
19
|
|
|
20
20
|
## π¦ Installation
|
|
21
21
|
|
|
@@ -23,38 +23,173 @@ Part of the [Weave Protocol Security Suite](https://github.com/Tyox-all/Weave_Pr
|
|
|
23
23
|
npm install @weave_protocol/domere
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
## π Quick Start
|
|
26
|
+
## π Quick Start: Agent Orchestration - Default agent limit is 10 (configure as needed).
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
```typescript
|
|
29
|
+
import { Orchestrator } from '@weave_protocol/domere';
|
|
30
|
+
|
|
31
|
+
const orch = new Orchestrator({ max_agents: 10 });
|
|
32
|
+
await orch.start();
|
|
33
|
+
|
|
34
|
+
// Register 10 agents
|
|
35
|
+
for (let i = 0; i < 10; i++) {
|
|
36
|
+
await orch.registerAgent({
|
|
37
|
+
name: `agent-${i}`,
|
|
38
|
+
capabilities: ['research', 'analysis', 'coding'][i % 3],
|
|
39
|
+
max_concurrent_tasks: 3
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Submit tasks with dependencies
|
|
44
|
+
const task1 = await orch.submitTask({
|
|
45
|
+
intent: 'Fetch Q3 data',
|
|
46
|
+
priority: 'high'
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const task2 = await orch.submitTask({
|
|
50
|
+
intent: 'Analyze Q3 trends',
|
|
51
|
+
dependencies: [task1.id] // Waits for task1
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// Get stats
|
|
55
|
+
const stats = orch.getStats();
|
|
56
|
+
console.log(`${stats.agents.ready} agents ready, ${stats.tasks.queued} tasks queued`);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## π Task Scheduler
|
|
62
|
+
|
|
63
|
+
Priority queue with dependencies, retries, and load balancing.
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
import { TaskScheduler } from '@weave_protocol/domere';
|
|
67
|
+
|
|
68
|
+
const scheduler = new TaskScheduler();
|
|
69
|
+
|
|
70
|
+
const task = await scheduler.createTask({
|
|
71
|
+
intent: 'Analyze Q3 data',
|
|
72
|
+
priority: 'high',
|
|
73
|
+
dependencies: ['fetch-data-task'],
|
|
74
|
+
constraints: {
|
|
75
|
+
required_capabilities: ['data-analysis'],
|
|
76
|
+
max_duration_ms: 300000,
|
|
77
|
+
exclusive_resources: ['gpu-1']
|
|
78
|
+
},
|
|
79
|
+
retry_policy: {
|
|
80
|
+
max_retries: 3,
|
|
81
|
+
backoff: 'exponential'
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// Auto-assign to best agent
|
|
86
|
+
const assignment = await scheduler.assignTask(task.id);
|
|
87
|
+
|
|
88
|
+
// Track progress
|
|
89
|
+
scheduler.onTaskProgress(task.id, (p) => console.log(`${p.percent}%`));
|
|
90
|
+
|
|
91
|
+
// Handle completion
|
|
92
|
+
scheduler.onTaskComplete(task.id, (result) => {
|
|
93
|
+
console.log(`Completed in ${result.duration_ms}ms`);
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## π€ Agent Registry
|
|
100
|
+
|
|
101
|
+
Agent lifecycle, heartbeat monitoring, and failover.
|
|
29
102
|
|
|
30
103
|
```typescript
|
|
31
|
-
import {
|
|
104
|
+
import { AgentRegistry } from '@weave_protocol/domere';
|
|
32
105
|
|
|
33
|
-
const
|
|
106
|
+
const registry = new AgentRegistry({
|
|
107
|
+
heartbeat_interval_ms: 5000,
|
|
108
|
+
heartbeat_timeout_ms: 15000
|
|
109
|
+
});
|
|
34
110
|
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
constraints: ['read-only', 'no-external-api']
|
|
111
|
+
// Register agent
|
|
112
|
+
const agent = await registry.register({
|
|
113
|
+
agent_id: 'agent-7',
|
|
114
|
+
capabilities: ['code-generation', 'testing'],
|
|
115
|
+
max_concurrent_tasks: 3
|
|
41
116
|
});
|
|
42
117
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
//
|
|
118
|
+
await registry.setReady('agent-7');
|
|
119
|
+
|
|
120
|
+
// Process heartbeats
|
|
121
|
+
await registry.heartbeat({
|
|
122
|
+
agent_id: 'agent-7',
|
|
123
|
+
current_tasks: ['task_1', 'task_2']
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
// Handle failures
|
|
127
|
+
registry.onAgentDown((agent, tasks) => {
|
|
128
|
+
console.log(`${agent.id} down with ${tasks.length} tasks`);
|
|
129
|
+
// Reassign tasks...
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
// Find best agent
|
|
133
|
+
const best = registry.getBestAgent({
|
|
134
|
+
capabilities: ['code-generation'],
|
|
135
|
+
prefer_lowest_load: true
|
|
136
|
+
});
|
|
46
137
|
```
|
|
47
138
|
|
|
48
|
-
|
|
139
|
+
---
|
|
49
140
|
|
|
50
|
-
|
|
141
|
+
## ποΈ State Manager
|
|
142
|
+
|
|
143
|
+
Shared state with locking, branching, and conflict resolution.
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
import { StateManager } from '@weave_protocol/domere';
|
|
147
|
+
|
|
148
|
+
const state = new StateManager({
|
|
149
|
+
conflict_resolution: 'last-write-wins'
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Lock before writing
|
|
153
|
+
const lock = await state.acquireLock({
|
|
154
|
+
key: 'customer-db',
|
|
155
|
+
holder: 'agent-3',
|
|
156
|
+
duration_ms: 30000,
|
|
157
|
+
type: 'exclusive'
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
if (lock.acquired) {
|
|
161
|
+
await state.set('customer-db', { updated: true });
|
|
162
|
+
await state.releaseLock('customer-db', 'agent-3');
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Git-style branching
|
|
166
|
+
await state.createBranch('experiment', { parent: 'main' });
|
|
167
|
+
await state.set('config', newConfig, { branch: 'experiment' });
|
|
168
|
+
|
|
169
|
+
// Merge with conflict detection
|
|
170
|
+
const result = await state.merge('experiment', 'main');
|
|
171
|
+
if (result.conflicts.length > 0) {
|
|
172
|
+
// Resolve conflicts
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Snapshots for rollback
|
|
176
|
+
const snap = await state.createSnapshot();
|
|
177
|
+
// ... later ...
|
|
178
|
+
await state.restoreSnapshot(snap.id);
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## π Execution Replay
|
|
184
|
+
|
|
185
|
+
Tamper-proof audit trail with cryptographic verification.
|
|
51
186
|
|
|
52
187
|
```typescript
|
|
53
188
|
import { ExecutionReplayManager } from '@weave_protocol/domere';
|
|
54
189
|
|
|
55
190
|
const replay = new ExecutionReplayManager('encryption-key');
|
|
56
191
|
|
|
57
|
-
// Record
|
|
192
|
+
// Record actions
|
|
58
193
|
await replay.recordAction({
|
|
59
194
|
thread_id: 'thr_xxx',
|
|
60
195
|
agent_id: 'gpt-4-agent',
|
|
@@ -66,66 +201,60 @@ await replay.recordAction({
|
|
|
66
201
|
latency_ms: 1250,
|
|
67
202
|
cost_usd: 0.03,
|
|
68
203
|
tokens_in: 500,
|
|
69
|
-
tokens_out: 1000
|
|
70
|
-
model: 'gpt-4',
|
|
71
|
-
provider: 'openai'
|
|
204
|
+
tokens_out: 1000
|
|
72
205
|
});
|
|
73
206
|
|
|
74
|
-
// Get
|
|
207
|
+
// Get trail
|
|
75
208
|
const trail = await replay.getExecutionTrail('thr_xxx');
|
|
76
|
-
console.log(trail.integrity_valid); // true
|
|
77
|
-
console.log(trail.merkle_root); // For blockchain
|
|
209
|
+
console.log(trail.integrity_valid); // true
|
|
210
|
+
console.log(trail.merkle_root); // For blockchain
|
|
78
211
|
|
|
79
|
-
// Generate
|
|
212
|
+
// Generate report
|
|
80
213
|
const report = await replay.generateAuditReport({
|
|
81
|
-
thread_id: 'thr_xxx',
|
|
82
214
|
start_time: new Date('2026-01-01'),
|
|
83
215
|
end_time: new Date('2026-01-31')
|
|
84
216
|
});
|
|
85
|
-
// β { total_actions: 150, total_cost_usd: 4.50, anomalies: [...] }
|
|
86
217
|
```
|
|
87
218
|
|
|
88
|
-
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## π€ Multi-Agent Handoff
|
|
89
222
|
|
|
90
|
-
Secure delegation
|
|
223
|
+
Secure delegation with permission inheritance.
|
|
91
224
|
|
|
92
225
|
```typescript
|
|
93
226
|
import { HandoffManager } from '@weave_protocol/domere';
|
|
94
227
|
|
|
95
228
|
const handoff = new HandoffManager('signing-key', {
|
|
96
|
-
max_delegation_depth: 5
|
|
97
|
-
max_handoff_duration_ms: 3600000 // 1 hour
|
|
229
|
+
max_delegation_depth: 5
|
|
98
230
|
});
|
|
99
231
|
|
|
100
|
-
//
|
|
232
|
+
// Create handoff token
|
|
101
233
|
const token = await handoff.createHandoff({
|
|
102
234
|
thread_id: 'thr_xxx',
|
|
103
235
|
from_agent: 'orchestrator',
|
|
104
236
|
to_agent: 'researcher',
|
|
105
|
-
delegated_intent: 'Find Q3
|
|
106
|
-
constraints: ['read-only'
|
|
107
|
-
permissions: [
|
|
108
|
-
{ resource: 'database', actions: ['read'] },
|
|
109
|
-
{ resource: 'files', actions: ['read'] }
|
|
110
|
-
],
|
|
237
|
+
delegated_intent: 'Find Q3 data',
|
|
238
|
+
constraints: ['read-only'],
|
|
239
|
+
permissions: [{ resource: 'database', actions: ['read'] }],
|
|
111
240
|
max_actions: 10,
|
|
112
|
-
expires_in_ms: 300000
|
|
241
|
+
expires_in_ms: 300000
|
|
113
242
|
});
|
|
114
243
|
|
|
115
|
-
//
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
118
|
-
console.log(
|
|
119
|
-
console.log('Constraints:', verification.constraints);
|
|
244
|
+
// Verify before acting
|
|
245
|
+
const v = await handoff.verifyHandoff(token.token, 'researcher');
|
|
246
|
+
if (v.valid) {
|
|
247
|
+
console.log(`${v.remaining_actions} actions left`);
|
|
120
248
|
}
|
|
121
249
|
|
|
122
|
-
// Track
|
|
250
|
+
// Track chain
|
|
123
251
|
const chain = await handoff.getDelegationChain('thr_xxx');
|
|
124
|
-
console.log(
|
|
125
|
-
console.log('Chain integrity:', chain.integrity_valid);
|
|
252
|
+
console.log(`Depth: ${chain.depth}, Valid: ${chain.integrity_valid}`);
|
|
126
253
|
```
|
|
127
254
|
|
|
128
|
-
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## π Compliance (SOC2/HIPAA)
|
|
129
258
|
|
|
130
259
|
Automated compliance tracking and reporting.
|
|
131
260
|
|
|
@@ -137,167 +266,125 @@ const compliance = new ComplianceManager('signing-key');
|
|
|
137
266
|
// HIPAA: Log PHI access
|
|
138
267
|
await compliance.logPHIAccess({
|
|
139
268
|
thread_id: 'thr_xxx',
|
|
140
|
-
agent_id: 'medical-
|
|
269
|
+
agent_id: 'medical-ai',
|
|
141
270
|
patient_id: 'patient_123',
|
|
142
|
-
access_reason: 'Treatment
|
|
143
|
-
data_accessed: ['diagnosis'
|
|
271
|
+
access_reason: 'Treatment',
|
|
272
|
+
data_accessed: ['diagnosis'],
|
|
144
273
|
legal_basis: 'treatment'
|
|
145
274
|
});
|
|
146
275
|
|
|
147
|
-
// SOC2: Log access control
|
|
276
|
+
// SOC2: Log access control
|
|
148
277
|
await compliance.logAccessControl({
|
|
149
278
|
thread_id: 'thr_xxx',
|
|
150
279
|
agent_id: 'admin-bot',
|
|
151
|
-
|
|
152
|
-
resource: 'financial-reports',
|
|
280
|
+
resource: 'reports',
|
|
153
281
|
action: 'grant',
|
|
154
282
|
success: true
|
|
155
283
|
});
|
|
156
284
|
|
|
157
|
-
// Generic
|
|
285
|
+
// Generic checkpoint
|
|
158
286
|
await compliance.checkpoint({
|
|
159
287
|
thread_id: 'thr_xxx',
|
|
160
288
|
framework: 'SOC2',
|
|
161
|
-
control: 'CC6.1',
|
|
289
|
+
control: 'CC6.1',
|
|
162
290
|
event_type: 'access',
|
|
163
|
-
event_description: '
|
|
291
|
+
event_description: 'Data accessed',
|
|
164
292
|
data_classification: 'confidential',
|
|
165
|
-
agent_id: '
|
|
293
|
+
agent_id: 'agent-1',
|
|
166
294
|
sign: true
|
|
167
295
|
});
|
|
168
296
|
|
|
169
|
-
// Generate
|
|
297
|
+
// Generate report
|
|
170
298
|
const report = await compliance.generateReport({
|
|
171
299
|
framework: 'HIPAA',
|
|
172
300
|
period_start: new Date('2026-01-01'),
|
|
173
|
-
period_end: new Date('2026-03-31')
|
|
174
|
-
attester: 'Compliance Officer'
|
|
301
|
+
period_end: new Date('2026-03-31')
|
|
175
302
|
});
|
|
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);
|
|
303
|
+
console.log(`Score: ${report.compliance_score}`);
|
|
180
304
|
```
|
|
181
305
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
Immutable proof of AI agent actions on Solana and Ethereum.
|
|
306
|
+
---
|
|
185
307
|
|
|
186
|
-
|
|
187
|
-
import { SolanaAnchor, EthereumAnchor } from '@weave_protocol/domere';
|
|
308
|
+
## βοΈ Blockchain Anchoring
|
|
188
309
|
|
|
189
|
-
|
|
190
|
-
const solana = new SolanaAnchor({
|
|
191
|
-
rpc_url: 'https://api.devnet.solana.com',
|
|
192
|
-
program_id: 'BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj'
|
|
193
|
-
});
|
|
310
|
+
Immutable proof on Solana and Ethereum.
|
|
194
311
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
merkle_root: trail.merkle_root,
|
|
198
|
-
hop_count: 5,
|
|
199
|
-
intent_hash: thread.intent_hash,
|
|
200
|
-
compliant: true
|
|
201
|
-
});
|
|
312
|
+
```typescript
|
|
313
|
+
import { EthereumAnchor } from '@weave_protocol/domere';
|
|
202
314
|
|
|
203
|
-
|
|
204
|
-
const ethereum = new EthereumAnchor({
|
|
205
|
-
rpc_url: 'https://mainnet.infura.io/v3/YOUR_KEY',
|
|
315
|
+
const anchor = new EthereumAnchor({
|
|
206
316
|
contract_address: '0xAA8b52adD3CEce6269d14C6335a79df451543820'
|
|
207
317
|
});
|
|
208
318
|
|
|
209
|
-
await
|
|
319
|
+
await anchor.anchorThread({
|
|
210
320
|
thread_id: 'thr_xxx',
|
|
211
321
|
merkle_root: trail.merkle_root,
|
|
212
|
-
|
|
213
|
-
intent_hash: thread.intent_hash,
|
|
322
|
+
intent_hash: 'abc123...',
|
|
214
323
|
compliant: true
|
|
215
324
|
});
|
|
216
325
|
```
|
|
217
326
|
|
|
218
|
-
|
|
327
|
+
| Chain | Network | Address |
|
|
328
|
+
|-------|---------|---------|
|
|
329
|
+
| Solana | Devnet | `BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj` |
|
|
330
|
+
| Ethereum | Mainnet | `0xAA8b52adD3CEce6269d14C6335a79df451543820` |
|
|
219
331
|
|
|
220
|
-
|
|
221
|
-
|-------|---------|------------------|----------|
|
|
222
|
-
| **Solana** | Devnet | `BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj` | [View](https://solscan.io/account/BeCYVJYfbUu3k2TPGmh9VoGWeJwzm2hg2NdtnvbdBNCj?cluster=devnet) |
|
|
223
|
-
| **Ethereum** | Mainnet | `0xAA8b52adD3CEce6269d14C6335a79df451543820` | [View](https://etherscan.io/address/0xAA8b52adD3CEce6269d14C6335a79df451543820) |
|
|
332
|
+
---
|
|
224
333
|
|
|
225
334
|
## π API Reference
|
|
226
335
|
|
|
227
|
-
###
|
|
228
|
-
|
|
336
|
+
### Orchestrator
|
|
229
337
|
| Method | Description |
|
|
230
338
|
|--------|-------------|
|
|
231
|
-
| `
|
|
232
|
-
| `
|
|
233
|
-
| `
|
|
234
|
-
| `
|
|
235
|
-
| `
|
|
236
|
-
| `
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
### HandoffManager
|
|
240
|
-
|
|
339
|
+
| `start()` | Start orchestrator |
|
|
340
|
+
| `registerAgent(params)` | Register new agent |
|
|
341
|
+
| `submitTask(params)` | Submit task to queue |
|
|
342
|
+
| `heartbeat(agentId, tasks)` | Process agent heartbeat |
|
|
343
|
+
| `taskCompleted(agentId, taskId, result)` | Report completion |
|
|
344
|
+
| `getStats()` | Get orchestrator stats |
|
|
345
|
+
|
|
346
|
+
### TaskScheduler
|
|
241
347
|
| Method | Description |
|
|
242
348
|
|--------|-------------|
|
|
243
|
-
| `
|
|
244
|
-
| `
|
|
245
|
-
| `
|
|
246
|
-
| `
|
|
247
|
-
| `
|
|
248
|
-
| `checkPermission(handoffId, resource, action)` | Check if action permitted |
|
|
249
|
-
|
|
250
|
-
### ComplianceManager
|
|
349
|
+
| `createTask(params)` | Create task with dependencies |
|
|
350
|
+
| `assignTask(taskId, agentId?)` | Assign to agent |
|
|
351
|
+
| `completeTask(taskId, agentId, result)` | Mark complete |
|
|
352
|
+
| `failTask(taskId, agentId, error)` | Mark failed (auto-retry) |
|
|
353
|
+
| `reassignFromAgent(agentId)` | Reassign failed agent's tasks |
|
|
251
354
|
|
|
355
|
+
### AgentRegistry
|
|
252
356
|
| Method | Description |
|
|
253
357
|
|--------|-------------|
|
|
254
|
-
| `
|
|
255
|
-
| `
|
|
256
|
-
| `
|
|
257
|
-
| `
|
|
258
|
-
| `
|
|
259
|
-
| `generateReport(params)` | Generate compliance report |
|
|
260
|
-
| `getCheckpoints(threadId)` | Get checkpoints for thread |
|
|
261
|
-
| `getViolations(threadId)` | Get violations for thread |
|
|
358
|
+
| `register(params)` | Register agent |
|
|
359
|
+
| `heartbeat(payload)` | Process heartbeat |
|
|
360
|
+
| `findAgents(query)` | Find matching agents |
|
|
361
|
+
| `drain(agentId)` | Stop accepting tasks |
|
|
362
|
+
| `deregister(agentId)` | Remove agent |
|
|
262
363
|
|
|
263
|
-
|
|
364
|
+
### StateManager
|
|
365
|
+
| Method | Description |
|
|
366
|
+
|--------|-------------|
|
|
367
|
+
| `get(key)` / `set(key, value)` | Basic operations |
|
|
368
|
+
| `acquireLock(request)` | Acquire lock |
|
|
369
|
+
| `releaseLock(key, holder)` | Release lock |
|
|
370
|
+
| `createBranch(name)` | Create branch |
|
|
371
|
+
| `merge(source, target)` | Merge branches |
|
|
372
|
+
| `createSnapshot()` | Create snapshot |
|
|
264
373
|
|
|
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
|
-
```
|
|
374
|
+
---
|
|
288
375
|
|
|
289
376
|
## π Related Packages
|
|
290
377
|
|
|
291
378
|
| Package | Description |
|
|
292
379
|
|---------|-------------|
|
|
293
|
-
| [@weave_protocol/mund](https://www.npmjs.com/package/@weave_protocol/mund) |
|
|
294
|
-
| [@weave_protocol/hord](https://www.npmjs.com/package/@weave_protocol/hord) |
|
|
380
|
+
| [@weave_protocol/mund](https://www.npmjs.com/package/@weave_protocol/mund) | Secret & threat scanning |
|
|
381
|
+
| [@weave_protocol/hord](https://www.npmjs.com/package/@weave_protocol/hord) | Secure vault & sandbox |
|
|
295
382
|
| [@weave_protocol/api](https://www.npmjs.com/package/@weave_protocol/api) | Universal REST API |
|
|
296
383
|
|
|
297
384
|
## π License
|
|
298
385
|
|
|
299
|
-
Apache 2.0
|
|
386
|
+
Apache 2.0
|
|
300
387
|
|
|
301
388
|
---
|
|
302
389
|
|
|
303
|
-
Made with β€οΈ for AI Safety
|
|
390
|
+
**Made with β€οΈ for AI Safety**
|