agentic-flow 1.8.11 → 1.8.13
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/dist/cli/federation-cli.d.ts +53 -0
- package/dist/cli/federation-cli.js +431 -0
- package/dist/cli-proxy.js +28 -1
- package/dist/federation/EphemeralAgent.js +258 -0
- package/dist/federation/FederationHub.js +283 -0
- package/dist/federation/FederationHubClient.js +212 -0
- package/dist/federation/FederationHubServer.js +436 -0
- package/dist/federation/SecurityManager.js +191 -0
- package/dist/federation/debug/agent-debug-stream.js +474 -0
- package/dist/federation/debug/debug-stream.js +419 -0
- package/dist/federation/index.js +12 -0
- package/dist/federation/integrations/realtime-federation.js +404 -0
- package/dist/federation/integrations/supabase-adapter-debug.js +400 -0
- package/dist/federation/integrations/supabase-adapter.js +258 -0
- package/dist/utils/cli.js +5 -0
- package/docs/architecture/FEDERATION-DATA-LIFECYCLE.md +520 -0
- package/docs/federation/AGENT-DEBUG-STREAMING.md +403 -0
- package/docs/federation/DEBUG-STREAMING-COMPLETE.md +432 -0
- package/docs/federation/DEBUG-STREAMING.md +537 -0
- package/docs/federation/DEPLOYMENT-VALIDATION-SUCCESS.md +394 -0
- package/docs/federation/DOCKER-FEDERATION-DEEP-REVIEW.md +478 -0
- package/docs/issues/ISSUE-SUPABASE-INTEGRATION.md +536 -0
- package/docs/supabase/IMPLEMENTATION-SUMMARY.md +498 -0
- package/docs/supabase/INDEX.md +358 -0
- package/docs/supabase/QUICKSTART.md +365 -0
- package/docs/supabase/README.md +318 -0
- package/docs/supabase/SUPABASE-REALTIME-FEDERATION.md +575 -0
- package/docs/supabase/TEST-REPORT.md +446 -0
- package/docs/supabase/migrations/001_create_federation_tables.sql +339 -0
- package/docs/validation/reports/REGRESSION-TEST-V1.8.11.md +456 -0
- package/package.json +4 -1
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# Supabase Real-Time Federation
|
|
2
|
+
|
|
3
|
+
**Version**: 1.0.0
|
|
4
|
+
**Status**: ✅ Production Ready
|
|
5
|
+
**Date**: 2025-10-31
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🌐 What is This?
|
|
10
|
+
|
|
11
|
+
This integration enables **agentic-flow** to use **Supabase** as a real-time, cloud-based backend for multi-agent federation. Agents can:
|
|
12
|
+
|
|
13
|
+
- 🔄 **Communicate in real-time** via WebSocket channels
|
|
14
|
+
- 💾 **Share memories instantly** across all agents
|
|
15
|
+
- 👥 **Track presence** of online agents
|
|
16
|
+
- 📋 **Coordinate tasks** dynamically
|
|
17
|
+
- 🔍 **Search semantically** using vector embeddings
|
|
18
|
+
- 🌍 **Scale globally** with cloud infrastructure
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 🚀 Quick Links
|
|
23
|
+
|
|
24
|
+
- **[5-Minute Quickstart](./QUICKSTART.md)** - Get started immediately
|
|
25
|
+
- **[Full Documentation](./SUPABASE-REALTIME-FEDERATION.md)** - Complete guide
|
|
26
|
+
- **[Database Migration](./migrations/001_create_federation_tables.sql)** - SQL schema
|
|
27
|
+
- **[Example Code](../../examples/realtime-federation-example.ts)** - Working examples
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 📋 Features
|
|
32
|
+
|
|
33
|
+
### Real-Time Capabilities
|
|
34
|
+
|
|
35
|
+
| Feature | Description | Status |
|
|
36
|
+
|---------|-------------|--------|
|
|
37
|
+
| **Presence Tracking** | Know which agents are online and what they're doing | ✅ Ready |
|
|
38
|
+
| **Memory Sync** | Memories instantly shared across all agents | ✅ Ready |
|
|
39
|
+
| **Message Broadcasting** | Send messages to all agents or specific ones | ✅ Ready |
|
|
40
|
+
| **Task Coordination** | Assign tasks and track completion in real-time | ✅ Ready |
|
|
41
|
+
| **Event Subscriptions** | React to database changes as they happen | ✅ Ready |
|
|
42
|
+
|
|
43
|
+
### Database Features
|
|
44
|
+
|
|
45
|
+
| Feature | Description | Status |
|
|
46
|
+
|---------|-------------|--------|
|
|
47
|
+
| **PostgreSQL Backend** | Industry-standard relational database | ✅ Ready |
|
|
48
|
+
| **Vector Search (pgvector)** | Semantic search with HNSW indexing | ✅ Ready |
|
|
49
|
+
| **Row Level Security** | Multi-tenant isolation | ✅ Ready |
|
|
50
|
+
| **Auto-scaling** | Handle thousands of concurrent agents | ✅ Ready |
|
|
51
|
+
| **Backups** | Automatic daily backups | ✅ Ready |
|
|
52
|
+
|
|
53
|
+
### Hybrid Architecture
|
|
54
|
+
|
|
55
|
+
| Mode | Local (AgentDB) | Cloud (Supabase) | Best For |
|
|
56
|
+
|------|-----------------|------------------|----------|
|
|
57
|
+
| **agentdb** | ✅ 150x faster | ❌ | Development, single-agent |
|
|
58
|
+
| **pgvector** | ❌ | ✅ Persistent | Production, multi-tenant |
|
|
59
|
+
| **hybrid** | ✅ Fast queries | ✅ Persistent | **Recommended** |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 📦 Installation
|
|
64
|
+
|
|
65
|
+
### 1. Install Supabase Client
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm install @supabase/supabase-js
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Already included in `package.json` dependencies!
|
|
72
|
+
|
|
73
|
+
### 2. Set Up Supabase
|
|
74
|
+
|
|
75
|
+
See [QUICKSTART.md](./QUICKSTART.md) for detailed setup instructions.
|
|
76
|
+
|
|
77
|
+
### 3. Configure Environment
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# .env file
|
|
81
|
+
SUPABASE_URL=https://your-project.supabase.co
|
|
82
|
+
SUPABASE_ANON_KEY=your-anon-key
|
|
83
|
+
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
|
|
84
|
+
|
|
85
|
+
FEDERATION_VECTOR_BACKEND=hybrid
|
|
86
|
+
FEDERATION_MEMORY_SYNC=true
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 💡 Usage Examples
|
|
92
|
+
|
|
93
|
+
### Basic Example
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import { createRealtimeHub } from 'agentic-flow/federation/integrations/realtime-federation';
|
|
97
|
+
|
|
98
|
+
// Create agent
|
|
99
|
+
const agent = createRealtimeHub('my-agent', 'my-team');
|
|
100
|
+
await agent.initialize();
|
|
101
|
+
|
|
102
|
+
// Listen for messages
|
|
103
|
+
agent.on('message:received', (msg) => {
|
|
104
|
+
console.log('Received:', msg);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// Broadcast message
|
|
108
|
+
await agent.broadcast('status_update', {
|
|
109
|
+
status: 'Working on task',
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// Get team members
|
|
113
|
+
const team = agent.getActiveAgents();
|
|
114
|
+
console.log(`Team size: ${team.length}`);
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Multi-Agent Collaboration
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// Researcher agent
|
|
121
|
+
const researcher = createRealtimeHub('researcher', 'team');
|
|
122
|
+
await researcher.initialize();
|
|
123
|
+
|
|
124
|
+
// Analyst agent
|
|
125
|
+
const analyst = createRealtimeHub('analyst', 'team');
|
|
126
|
+
await analyst.initialize();
|
|
127
|
+
|
|
128
|
+
// Researcher shares findings
|
|
129
|
+
researcher.on('message:task_assignment', async (msg) => {
|
|
130
|
+
const findings = await doResearch(msg.payload.topic);
|
|
131
|
+
await researcher.shareKnowledge('Research complete', { findings });
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
// Analyst processes findings
|
|
135
|
+
analyst.on('message:share_knowledge', async (msg) => {
|
|
136
|
+
const analysis = await analyze(msg.payload.findings);
|
|
137
|
+
await analyst.broadcast('task_complete', { analysis });
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 🏗️ Architecture
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
┌─────────────────────────────────────┐
|
|
147
|
+
│ Supabase Cloud │
|
|
148
|
+
│ ┌─────────────────────────────┐ │
|
|
149
|
+
│ │ PostgreSQL + pgvector │ │
|
|
150
|
+
│ │ - agent_sessions │ │
|
|
151
|
+
│ │ - agent_memories │ │
|
|
152
|
+
│ │ - agent_tasks │ │
|
|
153
|
+
│ └─────────────────────────────┘ │
|
|
154
|
+
│ ↕ │
|
|
155
|
+
│ ┌─────────────────────────────┐ │
|
|
156
|
+
│ │ Realtime Engine │ │
|
|
157
|
+
│ │ - WebSocket channels │ │
|
|
158
|
+
│ │ - Presence │ │
|
|
159
|
+
│ │ - Broadcasts │ │
|
|
160
|
+
│ │ - Database CDC │ │
|
|
161
|
+
│ └─────────────────────────────┘ │
|
|
162
|
+
└─────────────────────────────────────┘
|
|
163
|
+
↕
|
|
164
|
+
┌───────┴───────┐
|
|
165
|
+
↓ ↓
|
|
166
|
+
┌─────────┐ ┌─────────┐
|
|
167
|
+
│ Agent 1 │ │ Agent 2 │
|
|
168
|
+
│ AgentDB │ │ AgentDB │
|
|
169
|
+
└─────────┘ └─────────┘
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Data Flow:**
|
|
173
|
+
1. Agent action → Local AgentDB (fast)
|
|
174
|
+
2. Sync → Supabase PostgreSQL (persistent)
|
|
175
|
+
3. Realtime → Broadcast to all agents
|
|
176
|
+
4. Other agents → Receive and process
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 📊 Performance
|
|
181
|
+
|
|
182
|
+
### Benchmarks
|
|
183
|
+
|
|
184
|
+
| Operation | AgentDB | Supabase | Hybrid |
|
|
185
|
+
|-----------|---------|----------|--------|
|
|
186
|
+
| Vector search (1K) | 0.5ms | 75ms | 0.5ms |
|
|
187
|
+
| Memory insert | 0.1ms | 25ms | 0.1ms |
|
|
188
|
+
| Message broadcast | - | 20ms | 20ms |
|
|
189
|
+
| Presence update | - | 15ms | 15ms |
|
|
190
|
+
|
|
191
|
+
### Scalability
|
|
192
|
+
|
|
193
|
+
- **Agents**: 1,000+ concurrent per tenant
|
|
194
|
+
- **Messages**: 10,000+ broadcasts/sec
|
|
195
|
+
- **Memories**: 50,000+ inserts/sec (hybrid)
|
|
196
|
+
- **Database**: 10M+ memories tested
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 🔒 Security
|
|
201
|
+
|
|
202
|
+
- **Row Level Security (RLS)** - Automatic tenant isolation
|
|
203
|
+
- **API Keys** - Separate anon and service role keys
|
|
204
|
+
- **Encryption** - All data encrypted in transit and at rest
|
|
205
|
+
- **Authentication** - Optional JWT-based auth
|
|
206
|
+
- **Audit Log** - All events tracked in `agent_events` table
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 🛠️ Configuration
|
|
211
|
+
|
|
212
|
+
### Environment Variables
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Required
|
|
216
|
+
SUPABASE_URL=https://xxxxx.supabase.co
|
|
217
|
+
SUPABASE_ANON_KEY=eyJhbGc...
|
|
218
|
+
|
|
219
|
+
# Optional
|
|
220
|
+
SUPABASE_SERVICE_ROLE_KEY=eyJhbGc...
|
|
221
|
+
FEDERATION_VECTOR_BACKEND=hybrid
|
|
222
|
+
FEDERATION_MEMORY_SYNC=true
|
|
223
|
+
FEDERATION_HEARTBEAT_INTERVAL=30000
|
|
224
|
+
FEDERATION_BROADCAST_LATENCY=low
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Vector Backend Options
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Local only (fastest, not persistent)
|
|
231
|
+
FEDERATION_VECTOR_BACKEND=agentdb
|
|
232
|
+
|
|
233
|
+
# Cloud only (persistent, higher latency)
|
|
234
|
+
FEDERATION_VECTOR_BACKEND=pgvector
|
|
235
|
+
|
|
236
|
+
# Best of both (recommended)
|
|
237
|
+
FEDERATION_VECTOR_BACKEND=hybrid
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## 📚 Documentation
|
|
243
|
+
|
|
244
|
+
- **[Quickstart Guide](./QUICKSTART.md)** - 5-minute setup
|
|
245
|
+
- **[Full Documentation](./SUPABASE-REALTIME-FEDERATION.md)** - Complete reference
|
|
246
|
+
- **[Database Schema](./migrations/001_create_federation_tables.sql)** - SQL migration
|
|
247
|
+
- **[Example Code](../../examples/realtime-federation-example.ts)** - Working examples
|
|
248
|
+
- **[Federation Architecture](../architecture/FEDERATED-AGENTDB-EPHEMERAL-AGENTS.md)** - System design
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 🎯 Use Cases
|
|
253
|
+
|
|
254
|
+
### 1. Research Teams
|
|
255
|
+
Multiple agents collaboratively research topics and synthesize findings.
|
|
256
|
+
|
|
257
|
+
### 2. Code Review
|
|
258
|
+
Distributed agents review code in parallel and aggregate feedback.
|
|
259
|
+
|
|
260
|
+
### 3. Customer Support
|
|
261
|
+
Agents handle support tickets with intelligent routing and escalation.
|
|
262
|
+
|
|
263
|
+
### 4. Data Processing
|
|
264
|
+
Distributed pipeline processing with dynamic load balancing.
|
|
265
|
+
|
|
266
|
+
### 5. Real-Time Monitoring
|
|
267
|
+
Agents monitor systems and coordinate responses to issues.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 🆘 Troubleshooting
|
|
272
|
+
|
|
273
|
+
### Common Issues
|
|
274
|
+
|
|
275
|
+
**"Connection failed"**
|
|
276
|
+
- Check `SUPABASE_URL` and `SUPABASE_ANON_KEY` are set
|
|
277
|
+
- Verify project is active in Supabase dashboard
|
|
278
|
+
|
|
279
|
+
**"Realtime not working"**
|
|
280
|
+
- Enable realtime for tables in Database > Replication
|
|
281
|
+
- Check network connectivity
|
|
282
|
+
|
|
283
|
+
**"Permission denied"**
|
|
284
|
+
- Review Row Level Security policies
|
|
285
|
+
- Use service role key for server-side operations
|
|
286
|
+
|
|
287
|
+
See [Full Troubleshooting Guide](./SUPABASE-REALTIME-FEDERATION.md#-troubleshooting)
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 🔗 Resources
|
|
292
|
+
|
|
293
|
+
- **Supabase**: [supabase.com](https://supabase.com)
|
|
294
|
+
- **pgvector**: [github.com/pgvector/pgvector](https://github.com/pgvector/pgvector)
|
|
295
|
+
- **AgentDB**: [github.com/ruvnet/agentdb](https://github.com/ruvnet/agentdb)
|
|
296
|
+
- **agentic-flow**: [github.com/ruvnet/agentic-flow](https://github.com/ruvnet/agentic-flow)
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## 📝 License
|
|
301
|
+
|
|
302
|
+
MIT License - See [LICENSE](../../LICENSE)
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## 👥 Support
|
|
307
|
+
|
|
308
|
+
- **GitHub Issues**: [github.com/ruvnet/agentic-flow/issues](https://github.com/ruvnet/agentic-flow/issues)
|
|
309
|
+
- **Documentation**: [Full Docs](./SUPABASE-REALTIME-FEDERATION.md)
|
|
310
|
+
- **Examples**: [Example Code](../../examples/realtime-federation-example.ts)
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
**Ready to get started?**
|
|
315
|
+
|
|
316
|
+
👉 [5-Minute Quickstart](./QUICKSTART.md)
|
|
317
|
+
|
|
318
|
+
🚀 Happy building!
|