agentdb 2.0.0-alpha.1 → 2.0.0-alpha.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.
Files changed (208) hide show
  1. package/dist/agentdb.min.js +4 -4
  2. package/dist/simulation/cli.js +0 -0
  3. package/dist/src/cli/lib/config-manager.d.ts.map +1 -1
  4. package/dist/src/cli/lib/config-manager.js.map +1 -1
  5. package/dist/src/cli/lib/history-tracker.d.ts.map +1 -1
  6. package/dist/src/cli/lib/history-tracker.js +7 -1
  7. package/dist/src/cli/lib/history-tracker.js.map +1 -1
  8. package/examples/README.md +105 -0
  9. package/examples/quickstart.js +43 -0
  10. package/package.json +6 -2
  11. package/simulation/.claude-flow/metrics/agent-metrics.json +1 -0
  12. package/simulation/.claude-flow/metrics/performance.json +87 -0
  13. package/simulation/.claude-flow/metrics/task-metrics.json +10 -0
  14. package/simulation/COMPLETION-STATUS.md +139 -0
  15. package/simulation/FINAL-RESULTS.md +414 -0
  16. package/simulation/FINAL-STATUS.md +281 -0
  17. package/simulation/INTEGRATION-COMPLETE.md +452 -0
  18. package/simulation/MIGRATION-STATUS.md +231 -0
  19. package/simulation/OPTIMIZATION-RESULTS.md +397 -0
  20. package/simulation/PHASE1-COMPLETE.md +163 -0
  21. package/simulation/README.md +848 -0
  22. package/simulation/SIMULATION-RESULTS.md +239 -0
  23. package/simulation/cli.ts +78 -0
  24. package/simulation/configs/default.json +37 -0
  25. package/simulation/data/advanced/aidefence.graph +0 -0
  26. package/simulation/data/advanced/bmssp.graph +0 -0
  27. package/simulation/data/advanced/consciousness.graph +0 -0
  28. package/simulation/data/advanced/goalie.graph +0 -0
  29. package/simulation/data/advanced/psycho-symbolic.graph +0 -0
  30. package/simulation/data/advanced/research-swarm.graph +0 -0
  31. package/simulation/data/advanced/sublinear.graph +0 -0
  32. package/simulation/data/advanced/temporal.graph +0 -0
  33. package/simulation/data/causal.graph +0 -0
  34. package/simulation/data/graph-traversal.graph +0 -0
  35. package/simulation/data/lean-agentic.graph +0 -0
  36. package/simulation/data/reflexion.graph +0 -0
  37. package/simulation/data/skills.graph +0 -0
  38. package/simulation/data/stock-market.graph +0 -0
  39. package/simulation/data/strange-loops.graph +0 -0
  40. package/simulation/data/swarm.graph +0 -0
  41. package/simulation/data/voting-consensus.graph +0 -0
  42. package/simulation/docs/CLI-INTEGRATION-PLAN.md +1038 -0
  43. package/simulation/docs/COMPREHENSIVE-LATENT-SPACE-COMPLETION.md +354 -0
  44. package/simulation/docs/DOCUMENTATION-INDEX.md +226 -0
  45. package/simulation/docs/IMPLEMENTATION-COMPLETE.md +521 -0
  46. package/simulation/docs/OPTIMIZATION-SUMMARY.md +279 -0
  47. package/simulation/docs/README.md +229 -0
  48. package/simulation/docs/SWARM-5-INTEGRATION-SUMMARY.md +528 -0
  49. package/simulation/docs/TESTING-SUMMARY.md +304 -0
  50. package/simulation/docs/architecture/EXTENSION-API.md +868 -0
  51. package/simulation/docs/architecture/INTEGRATION-ARCHITECTURE.md +1138 -0
  52. package/simulation/docs/architecture/OPTIMIZATION-STRATEGY.md +778 -0
  53. package/simulation/docs/architecture/SIMULATION-ARCHITECTURE.md +892 -0
  54. package/simulation/docs/guides/CLI-REFERENCE.md +896 -0
  55. package/simulation/docs/guides/CUSTOM-SIMULATIONS.md +931 -0
  56. package/simulation/docs/guides/DEPLOYMENT.md +832 -0
  57. package/simulation/docs/guides/IMPLEMENTATION-SUMMARY.md +544 -0
  58. package/simulation/docs/guides/MIGRATION-GUIDE.md +591 -0
  59. package/simulation/docs/guides/QUICK-START.md +361 -0
  60. package/simulation/docs/guides/README.md +736 -0
  61. package/simulation/docs/guides/TROUBLESHOOTING.md +817 -0
  62. package/simulation/docs/guides/WIZARD-GUIDE.md +869 -0
  63. package/simulation/docs/reports/latent-space/MASTER-SYNTHESIS.md +345 -0
  64. package/simulation/docs/reports/latent-space/README.md +132 -0
  65. package/simulation/docs/reports/latent-space/attention-analysis-RESULTS.md +238 -0
  66. package/simulation/docs/reports/latent-space/clustering-analysis-RESULTS.md +210 -0
  67. package/simulation/docs/reports/latent-space/hnsw-exploration-RESULTS.md +332 -0
  68. package/simulation/docs/reports/latent-space/hypergraph-exploration-RESULTS.md +37 -0
  69. package/simulation/docs/reports/latent-space/neural-augmentation-RESULTS.md +69 -0
  70. package/simulation/docs/reports/latent-space/quantum-hybrid-RESULTS.md +91 -0
  71. package/simulation/docs/reports/latent-space/self-organizing-hnsw-RESULTS.md +51 -0
  72. package/simulation/docs/reports/latent-space/traversal-optimization-RESULTS.md +238 -0
  73. package/simulation/reports/README.md +397 -0
  74. package/simulation/reports/advanced-simulations-performance.md +1241 -0
  75. package/simulation/reports/aidefence-integration-2025-11-30T01-36-53-486Z.json +30 -0
  76. package/simulation/reports/architecture-analysis.md +1396 -0
  77. package/simulation/reports/basic-scenarios-performance.md +1840 -0
  78. package/simulation/reports/bmssp-integration-2025-11-30T01-36-27-193Z.json +30 -0
  79. package/simulation/reports/bmssp-integration-2025-11-30T03-38-12-887Z.json +30 -0
  80. package/simulation/reports/causal-reasoning-2025-11-29T23-35-21-795Z.json +36 -0
  81. package/simulation/reports/causal-reasoning-2025-11-30T00-58-42-862Z.json +30 -0
  82. package/simulation/reports/causal-reasoning-2025-11-30T00-59-12-546Z.json +40 -0
  83. package/simulation/reports/consciousness-explorer-2025-11-30T01-36-51-269Z.json +31 -0
  84. package/simulation/reports/core-benchmarks.md +727 -0
  85. package/simulation/reports/goalie-integration-2025-11-30T01-36-52-377Z.json +30 -0
  86. package/simulation/reports/graph-traversal-2025-11-29T23-35-35-279Z.json +78 -0
  87. package/simulation/reports/graph-traversal-2025-11-29T23-37-36-697Z.json +30 -0
  88. package/simulation/reports/graph-traversal-2025-11-30T01-03-59-716Z.json +30 -0
  89. package/simulation/reports/graph-traversal-2025-11-30T01-05-10-984Z.json +30 -0
  90. package/simulation/reports/graph-traversal-2025-11-30T01-06-16-334Z.json +30 -0
  91. package/simulation/reports/graph-traversal-2025-11-30T01-06-53-312Z.json +30 -0
  92. package/simulation/reports/graph-traversal-2025-11-30T01-07-51-075Z.json +24 -0
  93. package/simulation/reports/graph-traversal-2025-11-30T01-08-22-179Z.json +42 -0
  94. package/simulation/reports/lean-agentic-swarm-2025-11-29T23-37-23-804Z.json +148 -0
  95. package/simulation/reports/lean-agentic-swarm-2025-11-30T01-31-24-401Z.json +31 -0
  96. package/simulation/reports/lean-agentic-swarm-2025-11-30T03-38-01-470Z.json +31 -0
  97. package/simulation/reports/multi-agent-swarm-2025-11-29T23-35-28-093Z.json +78 -0
  98. package/simulation/reports/multi-agent-swarm-2025-11-30T01-03-54-062Z.json +42 -0
  99. package/simulation/reports/multi-agent-swarm-2025-11-30T01-05-06-092Z.json +42 -0
  100. package/simulation/reports/psycho-symbolic-reasoner-2025-11-30T01-36-50-180Z.json +30 -0
  101. package/simulation/reports/quality-metrics.md +727 -0
  102. package/simulation/reports/reflexion-learning-2025-11-29T23-35-09-774Z.json +48 -0
  103. package/simulation/reports/reflexion-learning-2025-11-29T23-37-16-934Z.json +36 -0
  104. package/simulation/reports/reflexion-learning-2025-11-30T00-07-49-259Z.json +30 -0
  105. package/simulation/reports/reflexion-learning-2025-11-30T00-09-29-319Z.json +51 -0
  106. package/simulation/reports/reflexion-learning-2025-11-30T00-28-37-659Z.json +51 -0
  107. package/simulation/reports/reflexion-learning-2025-11-30T01-31-30-690Z.json +29 -0
  108. package/simulation/reports/reflexion-learning-2025-11-30T03-38-06-937Z.json +29 -0
  109. package/simulation/reports/research-foundations.md +2004 -0
  110. package/simulation/reports/research-swarm-2025-11-30T01-36-54-647Z.json +30 -0
  111. package/simulation/reports/scalability-deployment.md +2404 -0
  112. package/simulation/reports/skill-evolution-2025-11-29T23-35-15-945Z.json +36 -0
  113. package/simulation/reports/skill-evolution-2025-11-30T01-03-17-995Z.json +30 -0
  114. package/simulation/reports/skill-evolution-2025-11-30T01-03-48-441Z.json +30 -0
  115. package/simulation/reports/skill-evolution-2025-11-30T01-05-00-554Z.json +30 -0
  116. package/simulation/reports/skill-evolution-2025-11-30T01-06-11-436Z.json +30 -0
  117. package/simulation/reports/skill-evolution-2025-11-30T01-06-51-979Z.json +30 -0
  118. package/simulation/reports/skill-evolution-2025-11-30T01-07-32-695Z.json +40 -0
  119. package/simulation/reports/stock-market-emergence-2025-11-30T00-11-43-865Z.json +56 -0
  120. package/simulation/reports/stock-market-emergence-2025-11-30T00-28-57-495Z.json +56 -0
  121. package/simulation/reports/strange-loops-2025-11-29T23-37-30-621Z.json +78 -0
  122. package/simulation/reports/strange-loops-2025-11-30T00-07-55-415Z.json +30 -0
  123. package/simulation/reports/strange-loops-2025-11-30T00-09-35-133Z.json +30 -0
  124. package/simulation/reports/strange-loops-2025-11-30T00-48-50-744Z.json +24 -0
  125. package/simulation/reports/strange-loops-2025-11-30T00-54-48-044Z.json +24 -0
  126. package/simulation/reports/strange-loops-2025-11-30T00-57-27-633Z.json +24 -0
  127. package/simulation/reports/strange-loops-2025-11-30T00-57-59-135Z.json +42 -0
  128. package/simulation/reports/sublinear-solver-2025-11-30T01-36-33-134Z.json +30 -0
  129. package/simulation/reports/temporal-lead-solver-2025-11-30T01-36-38-628Z.json +30 -0
  130. package/simulation/reports/use-cases-applications.md +2212 -0
  131. package/simulation/reports/voting-system-consensus-2025-11-30T00-11-37-199Z.json +58 -0
  132. package/simulation/reports/voting-system-consensus-2025-11-30T00-28-47-735Z.json +58 -0
  133. package/simulation/runner.ts +300 -0
  134. package/simulation/scenarios/README-advanced/aidefence-integration.md +63 -0
  135. package/simulation/scenarios/README-advanced/bmssp-integration.md +58 -0
  136. package/simulation/scenarios/README-advanced/consciousness-explorer.md +53 -0
  137. package/simulation/scenarios/README-advanced/goalie-integration.md +61 -0
  138. package/simulation/scenarios/README-advanced/psycho-symbolic-reasoner.md +55 -0
  139. package/simulation/scenarios/README-advanced/research-swarm.md +63 -0
  140. package/simulation/scenarios/README-advanced/sublinear-solver.md +58 -0
  141. package/simulation/scenarios/README-advanced/temporal-lead-solver.md +55 -0
  142. package/simulation/scenarios/README-basic/causal-reasoning.md +39 -0
  143. package/simulation/scenarios/README-basic/graph-traversal.md +41 -0
  144. package/simulation/scenarios/README-basic/lean-agentic-swarm.md +122 -0
  145. package/simulation/scenarios/README-basic/multi-agent-swarm.md +34 -0
  146. package/simulation/scenarios/README-basic/reflexion-learning.md +41 -0
  147. package/simulation/scenarios/README-basic/skill-evolution.md +38 -0
  148. package/simulation/scenarios/README-basic/stock-market-emergence.md +28 -0
  149. package/simulation/scenarios/README-basic/strange-loops.md +36 -0
  150. package/simulation/scenarios/README-basic/voting-system-consensus.md +28 -0
  151. package/simulation/scenarios/README.md +438 -0
  152. package/simulation/scenarios/aidefence-integration.ts +165 -0
  153. package/simulation/scenarios/bmssp-integration.ts +137 -0
  154. package/simulation/scenarios/causal-reasoning.ts +143 -0
  155. package/simulation/scenarios/consciousness-explorer.ts +139 -0
  156. package/simulation/scenarios/domain-examples/.claude-flow/metrics/agent-metrics.json +1 -0
  157. package/simulation/scenarios/domain-examples/.claude-flow/metrics/performance.json +87 -0
  158. package/simulation/scenarios/domain-examples/.claude-flow/metrics/task-metrics.json +10 -0
  159. package/simulation/scenarios/domain-examples/README.md +525 -0
  160. package/simulation/scenarios/domain-examples/e-commerce-recommendations.ts +220 -0
  161. package/simulation/scenarios/domain-examples/index.ts +81 -0
  162. package/simulation/scenarios/domain-examples/iot-sensor-networks.ts +290 -0
  163. package/simulation/scenarios/domain-examples/medical-imaging.ts +181 -0
  164. package/simulation/scenarios/domain-examples/robotics-navigation.ts +214 -0
  165. package/simulation/scenarios/domain-examples/scientific-research.ts +250 -0
  166. package/simulation/scenarios/domain-examples/trading-systems.ts +138 -0
  167. package/simulation/scenarios/goalie-integration.ts +161 -0
  168. package/simulation/scenarios/graph-traversal.ts +129 -0
  169. package/simulation/scenarios/latent-space/OPTIMIZATION-COMPLETE.md +287 -0
  170. package/simulation/scenarios/latent-space/README-attention-analysis.md +170 -0
  171. package/simulation/scenarios/latent-space/README-clustering-analysis.md +239 -0
  172. package/simulation/scenarios/latent-space/README-hnsw-exploration.md +199 -0
  173. package/simulation/scenarios/latent-space/README-hypergraph-exploration.md +279 -0
  174. package/simulation/scenarios/latent-space/README-neural-augmentation.md +267 -0
  175. package/simulation/scenarios/latent-space/README-quantum-hybrid.md +276 -0
  176. package/simulation/scenarios/latent-space/README-self-organizing-hnsw.md +244 -0
  177. package/simulation/scenarios/latent-space/README-traversal-optimization.md +212 -0
  178. package/simulation/scenarios/latent-space/attention-analysis.ts +598 -0
  179. package/simulation/scenarios/latent-space/clustering-analysis.ts +796 -0
  180. package/simulation/scenarios/latent-space/hnsw-exploration.ts +526 -0
  181. package/simulation/scenarios/latent-space/hypergraph-exploration.ts +706 -0
  182. package/simulation/scenarios/latent-space/index.ts +47 -0
  183. package/simulation/scenarios/latent-space/neural-augmentation.ts +604 -0
  184. package/simulation/scenarios/latent-space/quantum-hybrid.ts +508 -0
  185. package/simulation/scenarios/latent-space/self-organizing-hnsw.ts +680 -0
  186. package/simulation/scenarios/latent-space/traversal-optimization.ts +782 -0
  187. package/simulation/scenarios/lean-agentic-swarm.ts +182 -0
  188. package/simulation/scenarios/multi-agent-swarm.ts +146 -0
  189. package/simulation/scenarios/psycho-symbolic-reasoner.ts +136 -0
  190. package/simulation/scenarios/reflexion-learning.ts +132 -0
  191. package/simulation/scenarios/research-swarm.ts +187 -0
  192. package/simulation/scenarios/skill-evolution.ts +135 -0
  193. package/simulation/scenarios/stock-market-emergence.ts +323 -0
  194. package/simulation/scenarios/strange-loops.ts +175 -0
  195. package/simulation/scenarios/sublinear-solver.ts +108 -0
  196. package/simulation/scenarios/temporal-lead-solver.ts +121 -0
  197. package/simulation/scenarios/voting-system-consensus.ts +251 -0
  198. package/simulation/tests/latent-space/attention-analysis.test.ts +204 -0
  199. package/simulation/tests/latent-space/clustering-analysis.test.ts +281 -0
  200. package/simulation/tests/latent-space/hnsw-exploration.test.ts +253 -0
  201. package/simulation/tests/latent-space/hypergraph-exploration.test.ts +295 -0
  202. package/simulation/tests/latent-space/neural-augmentation.test.ts +326 -0
  203. package/simulation/tests/latent-space/quantum-hybrid.test.ts +307 -0
  204. package/simulation/tests/latent-space/self-organizing-hnsw.test.ts +291 -0
  205. package/simulation/tests/latent-space/traversal-optimization.test.ts +261 -0
  206. package/simulation/types.ts +177 -0
  207. package/simulation/utils/PerformanceOptimizer.ts +269 -0
  208. package/src/cli/lib/history-tracker.ts +7 -1
@@ -0,0 +1,868 @@
1
+ # AgentDB Extension API v2.0
2
+
3
+ ## Overview
4
+
5
+ This document defines the Extension API for creating custom simulation scenarios, components, and integrations with AgentDB v2.0.
6
+
7
+ ---
8
+
9
+ ## Table of Contents
10
+
11
+ 1. [Creating Custom Scenarios](#creating-custom-scenarios)
12
+ 2. [Component Interfaces](#component-interfaces)
13
+ 3. [Plugin System](#plugin-system)
14
+ 4. [Event System](#event-system)
15
+ 5. [Code Examples](#code-examples)
16
+
17
+ ---
18
+
19
+ ## Creating Custom Scenarios
20
+
21
+ ### Scenario Interface
22
+
23
+ All simulation scenarios must implement the `SimulationScenario` interface:
24
+
25
+ ```typescript
26
+ interface SimulationScenario {
27
+ metadata: SimulationMetadata;
28
+ execute(config: AgentDBConfig): Promise<SimulationResult>;
29
+ validate?(config: AgentDBConfig): ValidationResult;
30
+ cleanup?(): Promise<void>;
31
+ }
32
+
33
+ interface SimulationMetadata {
34
+ id: string;
35
+ name: string;
36
+ version: string;
37
+ category: 'core' | 'experimental' | 'plugin';
38
+ description: string;
39
+ author?: string;
40
+ agentdbVersion: string; // Semver range (e.g., "^2.0.0")
41
+ tags?: string[];
42
+ estimatedDuration?: number; // milliseconds
43
+ requiredMemoryMB?: number;
44
+ }
45
+
46
+ interface AgentDBConfig {
47
+ profile: 'production' | 'memory' | 'latency' | 'recall' | 'custom';
48
+ hnsw: { M: number; efConstruction: number; efSearch: number };
49
+ attention: { heads: number; dimension: number };
50
+ traversal: { beamWidth: number; strategy: 'greedy' | 'beam' | 'dynamic' };
51
+ clustering: { algorithm: 'louvain' | 'leiden' | 'spectral'; resolution: number };
52
+ neural: { mode: 'none' | 'gnn-only' | 'full'; reinforcementLearning: boolean };
53
+ hypergraph: { enabled: boolean; maxEdgeSize: number };
54
+ storage: { reportPath: string; autoBackup: boolean };
55
+ monitoring: { enabled: boolean; alertThresholds: { memoryMB: number; latencyMs: number } };
56
+ }
57
+
58
+ interface SimulationResult {
59
+ scenario: string;
60
+ timestamp: Date;
61
+ config: AgentDBConfig;
62
+ metrics: {
63
+ recall: number;
64
+ latency: number;
65
+ throughput: number;
66
+ memoryUsage: number;
67
+ [key: string]: any;
68
+ };
69
+ insights: string[];
70
+ recommendations: string[];
71
+ iterations?: number;
72
+ duration?: number;
73
+ }
74
+
75
+ interface ValidationResult {
76
+ valid: boolean;
77
+ errors?: string[];
78
+ warnings?: string[];
79
+ }
80
+ ```
81
+
82
+ ### Minimal Example
83
+
84
+ ```typescript
85
+ // ~/.agentdb/plugins/my-scenario/index.ts
86
+ import { SimulationScenario, SimulationResult, AgentDBConfig } from 'agentdb';
87
+
88
+ export const myScenario: SimulationScenario = {
89
+ metadata: {
90
+ id: 'my-custom-scenario',
91
+ name: 'My Custom Scenario',
92
+ version: '1.0.0',
93
+ category: 'plugin',
94
+ description: 'Custom simulation for specific use case',
95
+ author: 'Your Name',
96
+ agentdbVersion: '^2.0.0',
97
+ tags: ['custom', 'experimental'],
98
+ estimatedDuration: 30000, // 30 seconds
99
+ requiredMemoryMB: 512
100
+ },
101
+
102
+ async execute(config: AgentDBConfig): Promise<SimulationResult> {
103
+ // Your simulation logic here
104
+ console.log('Running custom scenario...');
105
+
106
+ // Example: Simulate HNSW search
107
+ const recall = 0.95;
108
+ const latency = 120;
109
+ const throughput = 1000;
110
+ const memoryUsage = 512;
111
+
112
+ return {
113
+ scenario: this.metadata.id,
114
+ timestamp: new Date(),
115
+ config,
116
+ metrics: {
117
+ recall,
118
+ latency,
119
+ throughput,
120
+ memoryUsage
121
+ },
122
+ insights: [
123
+ 'Custom insight 1: Performance is optimal',
124
+ 'Custom insight 2: Memory usage is within bounds'
125
+ ],
126
+ recommendations: [
127
+ 'Try increasing M parameter for better recall',
128
+ 'Consider enabling neural augmentation'
129
+ ],
130
+ iterations: 1,
131
+ duration: 25000
132
+ };
133
+ },
134
+
135
+ validate(config: AgentDBConfig): ValidationResult {
136
+ const errors: string[] = [];
137
+ const warnings: string[] = [];
138
+
139
+ // Custom validation logic
140
+ if (config.hnsw.M < 16) {
141
+ errors.push('M must be at least 16 for this scenario');
142
+ }
143
+
144
+ if (config.neural.mode === 'none') {
145
+ warnings.push('Neural mode recommended for best results');
146
+ }
147
+
148
+ return {
149
+ valid: errors.length === 0,
150
+ errors: errors.length > 0 ? errors : undefined,
151
+ warnings: warnings.length > 0 ? warnings : undefined
152
+ };
153
+ },
154
+
155
+ async cleanup(): Promise<void> {
156
+ // Optional cleanup logic
157
+ console.log('Cleaning up custom scenario...');
158
+ }
159
+ };
160
+
161
+ export default myScenario;
162
+ ```
163
+
164
+ ### Advanced Example with Progress Tracking
165
+
166
+ ```typescript
167
+ import { SimulationScenario, SimulationResult, AgentDBConfig } from 'agentdb';
168
+ import { EventEmitter } from 'events';
169
+
170
+ export class AdvancedScenario extends EventEmitter implements SimulationScenario {
171
+ metadata = {
172
+ id: 'advanced-scenario',
173
+ name: 'Advanced Scenario',
174
+ version: '1.0.0',
175
+ category: 'plugin' as const,
176
+ description: 'Advanced simulation with progress tracking',
177
+ agentdbVersion: '^2.0.0',
178
+ estimatedDuration: 60000,
179
+ requiredMemoryMB: 1024
180
+ };
181
+
182
+ async execute(config: AgentDBConfig): Promise<SimulationResult> {
183
+ const totalIterations = 100;
184
+ const metrics = {
185
+ recall: 0,
186
+ latency: 0,
187
+ throughput: 0,
188
+ memoryUsage: 0
189
+ };
190
+
191
+ for (let i = 0; i < totalIterations; i++) {
192
+ // Simulate work
193
+ await this.simulateIteration(i, config);
194
+
195
+ // Emit progress
196
+ this.emit('progress', {
197
+ iteration: i + 1,
198
+ total: totalIterations,
199
+ percent: ((i + 1) / totalIterations) * 100
200
+ });
201
+
202
+ // Update metrics
203
+ metrics.recall += Math.random() * 0.01;
204
+ metrics.latency += Math.random() * 5;
205
+ }
206
+
207
+ metrics.recall /= totalIterations;
208
+ metrics.latency /= totalIterations;
209
+ metrics.throughput = 1000 / (metrics.latency / 1000);
210
+ metrics.memoryUsage = process.memoryUsage().heapUsed / 1024 / 1024;
211
+
212
+ return {
213
+ scenario: this.metadata.id,
214
+ timestamp: new Date(),
215
+ config,
216
+ metrics,
217
+ insights: [
218
+ `Achieved ${(metrics.recall * 100).toFixed(1)}% recall`,
219
+ `Average latency: ${metrics.latency.toFixed(2)}ms`
220
+ ],
221
+ recommendations: this.generateRecommendations(metrics, config),
222
+ iterations: totalIterations
223
+ };
224
+ }
225
+
226
+ private async simulateIteration(iteration: number, config: AgentDBConfig): Promise<void> {
227
+ // Simulate work with delay
228
+ await new Promise(resolve => setTimeout(resolve, 100));
229
+ }
230
+
231
+ private generateRecommendations(metrics: any, config: AgentDBConfig): string[] {
232
+ const recommendations: string[] = [];
233
+
234
+ if (metrics.recall < 0.95) {
235
+ recommendations.push('Increase beam width to improve recall');
236
+ }
237
+
238
+ if (metrics.latency > 200) {
239
+ recommendations.push('Reduce efSearch to lower latency');
240
+ }
241
+
242
+ if (metrics.memoryUsage > config.monitoring.alertThresholds.memoryMB) {
243
+ recommendations.push('Enable memory-constrained profile');
244
+ }
245
+
246
+ return recommendations;
247
+ }
248
+ }
249
+
250
+ export default new AdvancedScenario();
251
+ ```
252
+
253
+ ---
254
+
255
+ ## Component Interfaces
256
+
257
+ ### SearchStrategy Interface
258
+
259
+ ```typescript
260
+ interface SearchStrategy {
261
+ name: string;
262
+
263
+ // Build index from vectors
264
+ build(vectors: Vector[]): Promise<void>;
265
+
266
+ // Search for k nearest neighbors
267
+ search(query: Vector, k: number): Promise<SearchResult[]>;
268
+
269
+ // Get index statistics
270
+ getStats(): SearchStats;
271
+
272
+ // Optional: Incremental updates
273
+ insert?(vector: Vector): Promise<void>;
274
+ delete?(id: string): Promise<void>;
275
+ }
276
+
277
+ interface Vector {
278
+ id: string;
279
+ data: number[];
280
+ metadata?: Record<string, any>;
281
+ }
282
+
283
+ interface SearchResult {
284
+ id: string;
285
+ distance: number;
286
+ vector: Vector;
287
+ }
288
+
289
+ interface SearchStats {
290
+ totalVectors: number;
291
+ dimensions: number;
292
+ indexSize: number; // bytes
293
+ buildTime: number; // ms
294
+ avgSearchTime: number; // ms
295
+ }
296
+ ```
297
+
298
+ **Example Implementation**:
299
+
300
+ ```typescript
301
+ class CustomSearchStrategy implements SearchStrategy {
302
+ name = 'custom-hnsw';
303
+ private index: Map<string, Vector> = new Map();
304
+
305
+ async build(vectors: Vector[]): Promise<void> {
306
+ const startTime = Date.now();
307
+
308
+ for (const vector of vectors) {
309
+ this.index.set(vector.id, vector);
310
+ }
311
+
312
+ console.log(`Built index in ${Date.now() - startTime}ms`);
313
+ }
314
+
315
+ async search(query: Vector, k: number): Promise<SearchResult[]> {
316
+ const results: SearchResult[] = [];
317
+
318
+ for (const [id, vector] of this.index.entries()) {
319
+ const distance = this.calculateDistance(query.data, vector.data);
320
+ results.push({ id, distance, vector });
321
+ }
322
+
323
+ results.sort((a, b) => a.distance - b.distance);
324
+ return results.slice(0, k);
325
+ }
326
+
327
+ getStats(): SearchStats {
328
+ return {
329
+ totalVectors: this.index.size,
330
+ dimensions: this.index.values().next().value?.data.length || 0,
331
+ indexSize: 0, // Calculate actual size
332
+ buildTime: 0,
333
+ avgSearchTime: 0
334
+ };
335
+ }
336
+
337
+ private calculateDistance(a: number[], b: number[]): number {
338
+ // Euclidean distance
339
+ return Math.sqrt(a.reduce((sum, val, i) => sum + Math.pow(val - b[i], 2), 0));
340
+ }
341
+ }
342
+ ```
343
+
344
+ ### ClusteringAlgorithm Interface
345
+
346
+ ```typescript
347
+ interface ClusteringAlgorithm {
348
+ name: string;
349
+
350
+ // Cluster graph into communities
351
+ cluster(graph: Graph): Promise<Community[]>;
352
+
353
+ // Get modularity score
354
+ getModularity(): number;
355
+
356
+ // Refine clustering
357
+ refine(): Promise<void>;
358
+ }
359
+
360
+ interface Graph {
361
+ nodes: Node[];
362
+ edges: Edge[];
363
+ }
364
+
365
+ interface Node {
366
+ id: string;
367
+ data?: any;
368
+ }
369
+
370
+ interface Edge {
371
+ source: string;
372
+ target: string;
373
+ weight?: number;
374
+ }
375
+
376
+ interface Community {
377
+ id: string;
378
+ nodes: string[];
379
+ modularity: number;
380
+ }
381
+ ```
382
+
383
+ **Example Implementation**:
384
+
385
+ ```typescript
386
+ class CustomClusteringAlgorithm implements ClusteringAlgorithm {
387
+ name = 'custom-louvain';
388
+ private communities: Community[] = [];
389
+ private modularity: number = 0;
390
+
391
+ async cluster(graph: Graph): Promise<Community[]> {
392
+ // Implement Louvain algorithm
393
+ // (simplified example)
394
+
395
+ const communityMap = new Map<string, string[]>();
396
+
397
+ for (const node of graph.nodes) {
398
+ const communityId = `community-${Math.floor(Math.random() * 5)}`;
399
+
400
+ if (!communityMap.has(communityId)) {
401
+ communityMap.set(communityId, []);
402
+ }
403
+
404
+ communityMap.get(communityId)!.push(node.id);
405
+ }
406
+
407
+ this.communities = Array.from(communityMap.entries()).map(([id, nodes]) => ({
408
+ id,
409
+ nodes,
410
+ modularity: this.calculateModularity(graph, nodes)
411
+ }));
412
+
413
+ this.modularity = this.communities.reduce((sum, c) => sum + c.modularity, 0);
414
+
415
+ return this.communities;
416
+ }
417
+
418
+ getModularity(): number {
419
+ return this.modularity;
420
+ }
421
+
422
+ async refine(): Promise<void> {
423
+ // Implement refinement logic
424
+ }
425
+
426
+ private calculateModularity(graph: Graph, nodes: string[]): number {
427
+ // Simplified modularity calculation
428
+ return Math.random() * 0.5;
429
+ }
430
+ }
431
+ ```
432
+
433
+ ### NeuralAugmentation Interface
434
+
435
+ ```typescript
436
+ interface NeuralAugmentation {
437
+ name: string;
438
+
439
+ // Augment features with neural network
440
+ augment(features: Tensor): Promise<Tensor>;
441
+
442
+ // Train neural network
443
+ train(samples: TrainingSample[]): Promise<void>;
444
+
445
+ // Evaluate performance
446
+ evaluate(): Promise<EvaluationMetrics>;
447
+ }
448
+
449
+ interface Tensor {
450
+ shape: number[];
451
+ data: number[];
452
+ }
453
+
454
+ interface TrainingSample {
455
+ input: Tensor;
456
+ target: Tensor;
457
+ }
458
+
459
+ interface EvaluationMetrics {
460
+ accuracy: number;
461
+ loss: number;
462
+ f1Score: number;
463
+ }
464
+ ```
465
+
466
+ ---
467
+
468
+ ## Plugin System
469
+
470
+ ### Plugin Structure
471
+
472
+ ```
473
+ ~/.agentdb/plugins/my-plugin/
474
+ ├── index.ts # Main entry point
475
+ ├── metadata.json # Plugin metadata
476
+ ├── package.json # npm package (optional)
477
+ ├── README.md # Documentation
478
+ └── tests/ # Tests (optional)
479
+ └── index.test.ts
480
+ ```
481
+
482
+ ### metadata.json
483
+
484
+ ```json
485
+ {
486
+ "id": "my-custom-plugin",
487
+ "name": "My Custom Plugin",
488
+ "version": "1.0.0",
489
+ "category": "plugin",
490
+ "description": "Custom plugin for AgentDB",
491
+ "author": "Your Name <your.email@example.com>",
492
+ "agentdbVersion": "^2.0.0",
493
+ "tags": ["custom", "experimental"],
494
+ "estimatedDuration": 30000,
495
+ "requiredMemoryMB": 512,
496
+ "license": "MIT"
497
+ }
498
+ ```
499
+
500
+ ### Installing Plugins
501
+
502
+ ```bash
503
+ # Install from directory
504
+ agentdb plugin install ~/.agentdb/plugins/my-plugin
505
+
506
+ # Install from npm
507
+ agentdb plugin install my-agentdb-plugin
508
+
509
+ # Install from git
510
+ agentdb plugin install https://github.com/user/my-plugin.git
511
+ ```
512
+
513
+ ### Listing Plugins
514
+
515
+ ```bash
516
+ agentdb plugin list
517
+ ```
518
+
519
+ **Output**:
520
+ ```
521
+ 📦 Installed Plugins:
522
+
523
+ ✓ my-custom-plugin (v1.0.0)
524
+ Category: plugin
525
+ Author: Your Name
526
+ Description: Custom plugin for AgentDB
527
+
528
+ ✓ advanced-scenario (v1.0.0)
529
+ Category: experimental
530
+ Author: AgentDB Team
531
+ Description: Advanced simulation with progress tracking
532
+ ```
533
+
534
+ ### Uninstalling Plugins
535
+
536
+ ```bash
537
+ agentdb plugin uninstall my-custom-plugin
538
+ ```
539
+
540
+ ---
541
+
542
+ ## Event System
543
+
544
+ ### Available Events
545
+
546
+ ```typescript
547
+ // Simulation lifecycle
548
+ runner.on('start', (scenario: string, config: AgentDBConfig) => {
549
+ console.log(`Starting ${scenario}...`);
550
+ });
551
+
552
+ runner.on('progress', (progress: ProgressUpdate) => {
553
+ console.log(`Progress: ${progress.percent.toFixed(1)}%`);
554
+ });
555
+
556
+ runner.on('complete', (result: SimulationResult) => {
557
+ console.log(`Completed with recall: ${result.metrics.recall}`);
558
+ });
559
+
560
+ runner.on('error', (error: Error) => {
561
+ console.error(`Error: ${error.message}`);
562
+ });
563
+
564
+ runner.on('cancelled', () => {
565
+ console.log('Simulation cancelled');
566
+ });
567
+
568
+ // Health monitoring
569
+ monitor.on('alert', (alert: Alert) => {
570
+ console.warn(`Alert: ${alert.message}`);
571
+ });
572
+
573
+ monitor.on('metrics', (metrics: HealthMetrics) => {
574
+ console.log(`Memory: ${metrics.memory.heapUsed.toFixed(0)}MB`);
575
+ });
576
+
577
+ monitor.on('healing', (action: HealingAction) => {
578
+ console.log(`Self-healing: ${action.type}`);
579
+ });
580
+
581
+ // Registry events
582
+ registry.on('scenario-discovered', (scenario: SimulationScenario) => {
583
+ console.log(`Discovered: ${scenario.metadata.name}`);
584
+ });
585
+
586
+ registry.on('plugin-registered', (plugin: SimulationScenario) => {
587
+ console.log(`Registered plugin: ${plugin.metadata.name}`);
588
+ });
589
+ ```
590
+
591
+ ### Custom Event Emitters
592
+
593
+ ```typescript
594
+ class CustomScenario extends EventEmitter implements SimulationScenario {
595
+ async execute(config: AgentDBConfig): Promise<SimulationResult> {
596
+ // Emit custom events
597
+ this.emit('custom-event', { data: 'example' });
598
+
599
+ // Emit progress
600
+ for (let i = 0; i < 100; i++) {
601
+ this.emit('progress', {
602
+ iteration: i,
603
+ total: 100,
604
+ percent: (i / 100) * 100
605
+ });
606
+
607
+ await this.simulateWork();
608
+ }
609
+
610
+ return {
611
+ scenario: this.metadata.id,
612
+ timestamp: new Date(),
613
+ config,
614
+ metrics: { recall: 0.95, latency: 100, throughput: 1000, memoryUsage: 512 },
615
+ insights: [],
616
+ recommendations: []
617
+ };
618
+ }
619
+
620
+ private async simulateWork(): Promise<void> {
621
+ await new Promise(resolve => setTimeout(resolve, 10));
622
+ }
623
+ }
624
+ ```
625
+
626
+ ---
627
+
628
+ ## Code Examples
629
+
630
+ ### Example 1: HNSW Optimization Plugin
631
+
632
+ ```typescript
633
+ // ~/.agentdb/plugins/hnsw-optimizer/index.ts
634
+ import { SimulationScenario, SimulationResult, AgentDBConfig } from 'agentdb';
635
+
636
+ export const hnswOptimizer: SimulationScenario = {
637
+ metadata: {
638
+ id: 'hnsw-optimizer',
639
+ name: 'HNSW Optimizer',
640
+ version: '1.0.0',
641
+ category: 'plugin',
642
+ description: 'Find optimal HNSW parameters for your dataset',
643
+ agentdbVersion: '^2.0.0',
644
+ tags: ['hnsw', 'optimization'],
645
+ estimatedDuration: 120000,
646
+ requiredMemoryMB: 2048
647
+ },
648
+
649
+ async execute(config: AgentDBConfig): Promise<SimulationResult> {
650
+ const results: Array<{ M: number; recall: number; latency: number }> = [];
651
+
652
+ // Test different M values
653
+ for (let M = 8; M <= 64; M += 8) {
654
+ const recall = await this.testHNSW(M, config.hnsw.efConstruction, config.hnsw.efSearch);
655
+ const latency = await this.measureLatency(M, config.hnsw.efSearch);
656
+
657
+ results.push({ M, recall, latency });
658
+ }
659
+
660
+ // Find optimal M (best recall with latency < threshold)
661
+ const optimal = results
662
+ .filter(r => r.latency < config.monitoring.alertThresholds.latencyMs)
663
+ .sort((a, b) => b.recall - a.recall)[0];
664
+
665
+ return {
666
+ scenario: this.metadata.id,
667
+ timestamp: new Date(),
668
+ config,
669
+ metrics: {
670
+ recall: optimal.recall,
671
+ latency: optimal.latency,
672
+ throughput: 1000 / (optimal.latency / 1000),
673
+ memoryUsage: process.memoryUsage().heapUsed / 1024 / 1024,
674
+ optimalM: optimal.M
675
+ },
676
+ insights: [
677
+ `Optimal M found: ${optimal.M}`,
678
+ `Achieves ${(optimal.recall * 100).toFixed(1)}% recall`,
679
+ `Latency: ${optimal.latency.toFixed(2)}ms`
680
+ ],
681
+ recommendations: [
682
+ `Set hnsw.M to ${optimal.M} for best results`,
683
+ `This provides ${((optimal.recall - config.hnsw.M / 100) * 100).toFixed(1)}% better recall`
684
+ ]
685
+ };
686
+ },
687
+
688
+ private async testHNSW(M: number, efConstruction: number, efSearch: number): Promise<number> {
689
+ // Implement HNSW testing logic
690
+ return 0.9 + (M / 100) * 0.08; // Simplified
691
+ },
692
+
693
+ private async measureLatency(M: number, efSearch: number): Promise<number> {
694
+ // Implement latency measurement
695
+ return 100 + M * 2; // Simplified
696
+ }
697
+ };
698
+
699
+ export default hnswOptimizer;
700
+ ```
701
+
702
+ ### Example 2: A/B Testing Plugin
703
+
704
+ ```typescript
705
+ // ~/.agentdb/plugins/ab-testing/index.ts
706
+ import { SimulationScenario, SimulationResult, AgentDBConfig } from 'agentdb';
707
+ import { ReportStore } from 'agentdb/cli/lib/report-store';
708
+
709
+ export class ABTestingScenario implements SimulationScenario {
710
+ metadata = {
711
+ id: 'ab-testing',
712
+ name: 'A/B Testing',
713
+ version: '1.0.0',
714
+ category: 'plugin' as const,
715
+ description: 'Compare two configurations automatically',
716
+ agentdbVersion: '^2.0.0',
717
+ estimatedDuration: 60000
718
+ };
719
+
720
+ async execute(config: AgentDBConfig): Promise<SimulationResult> {
721
+ // Configuration A (current)
722
+ const resultA = await this.runConfiguration(config, 'A');
723
+
724
+ // Configuration B (alternative with higher M)
725
+ const configB = { ...config, hnsw: { ...config.hnsw, M: config.hnsw.M + 16 } };
726
+ const resultB = await this.runConfiguration(configB, 'B');
727
+
728
+ // Statistical significance test
729
+ const pValue = this.calculatePValue(resultA.recall, resultB.recall);
730
+ const significant = pValue < 0.05;
731
+
732
+ const winner = resultB.recall > resultA.recall ? 'B' : 'A';
733
+
734
+ return {
735
+ scenario: this.metadata.id,
736
+ timestamp: new Date(),
737
+ config,
738
+ metrics: {
739
+ recall: Math.max(resultA.recall, resultB.recall),
740
+ latency: winner === 'A' ? resultA.latency : resultB.latency,
741
+ throughput: winner === 'A' ? resultA.throughput : resultB.throughput,
742
+ memoryUsage: process.memoryUsage().heapUsed / 1024 / 1024,
743
+ pValue,
744
+ winner: winner === 'A' ? 0 : 1
745
+ },
746
+ insights: [
747
+ `Configuration ${winner} wins with ${significant ? 'significant' : 'insignificant'} improvement`,
748
+ `p-value: ${pValue.toFixed(4)}`,
749
+ `Recall improvement: ${((resultB.recall - resultA.recall) * 100).toFixed(2)}%`
750
+ ],
751
+ recommendations: winner === 'B' ? [
752
+ `Switch to configuration B (M=${configB.hnsw.M})`,
753
+ `Expected improvement: ${((resultB.recall - resultA.recall) * 100).toFixed(1)}%`
754
+ ] : [
755
+ 'Current configuration is optimal'
756
+ ]
757
+ };
758
+ }
759
+
760
+ private async runConfiguration(config: AgentDBConfig, variant: string): Promise<any> {
761
+ // Run simulation with configuration
762
+ // (simplified example)
763
+ return {
764
+ recall: 0.92 + Math.random() * 0.05,
765
+ latency: 100 + Math.random() * 50,
766
+ throughput: 1000
767
+ };
768
+ }
769
+
770
+ private calculatePValue(recallA: number, recallB: number): number {
771
+ // Simplified p-value calculation
772
+ const diff = Math.abs(recallB - recallA);
773
+ return Math.max(0.01, 0.5 - diff * 2);
774
+ }
775
+ }
776
+
777
+ export default new ABTestingScenario();
778
+ ```
779
+
780
+ ---
781
+
782
+ ## Testing Plugins
783
+
784
+ ### Unit Tests
785
+
786
+ ```typescript
787
+ // ~/.agentdb/plugins/my-plugin/tests/index.test.ts
788
+ import { describe, it, expect } from 'vitest';
789
+ import myPlugin from '../index';
790
+
791
+ describe('My Plugin', () => {
792
+ it('should have valid metadata', () => {
793
+ expect(myPlugin.metadata.id).toBe('my-plugin');
794
+ expect(myPlugin.metadata.version).toMatch(/^\d+\.\d+\.\d+$/);
795
+ });
796
+
797
+ it('should execute successfully', async () => {
798
+ const config = createMockConfig();
799
+ const result = await myPlugin.execute(config);
800
+
801
+ expect(result.metrics.recall).toBeGreaterThan(0);
802
+ expect(result.metrics.latency).toBeGreaterThan(0);
803
+ });
804
+
805
+ it('should validate configuration', () => {
806
+ const config = createMockConfig();
807
+ const validation = myPlugin.validate!(config);
808
+
809
+ expect(validation.valid).toBe(true);
810
+ });
811
+ });
812
+
813
+ function createMockConfig(): any {
814
+ return {
815
+ profile: 'production',
816
+ hnsw: { M: 32, efConstruction: 200, efSearch: 100 },
817
+ // ... other fields
818
+ };
819
+ }
820
+ ```
821
+
822
+ ---
823
+
824
+ ## Publishing Plugins
825
+
826
+ ### npm Package
827
+
828
+ ```json
829
+ // package.json
830
+ {
831
+ "name": "agentdb-plugin-myname",
832
+ "version": "1.0.0",
833
+ "description": "My custom AgentDB plugin",
834
+ "main": "dist/index.js",
835
+ "types": "dist/index.d.ts",
836
+ "keywords": ["agentdb", "plugin", "simulation"],
837
+ "peerDependencies": {
838
+ "agentdb": "^2.0.0"
839
+ },
840
+ "devDependencies": {
841
+ "typescript": "^5.0.0",
842
+ "vitest": "^1.0.0"
843
+ },
844
+ "scripts": {
845
+ "build": "tsc",
846
+ "test": "vitest"
847
+ }
848
+ }
849
+ ```
850
+
851
+ ### Publishing
852
+
853
+ ```bash
854
+ npm publish
855
+ ```
856
+
857
+ ### Installing Published Plugin
858
+
859
+ ```bash
860
+ npm install -g agentdb-plugin-myname
861
+ agentdb plugin install agentdb-plugin-myname
862
+ ```
863
+
864
+ ---
865
+
866
+ **Document Version**: 1.0
867
+ **Last Updated**: 2025-11-30
868
+ **Maintainer**: AgentDB Team