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,892 @@
1
+ # AgentDB Simulation Architecture
2
+
3
+ **Version**: 2.0.0
4
+ **Last Updated**: 2025-11-30
5
+ **Target Audience**: Developers extending the simulation system
6
+
7
+ This document describes the TypeScript architecture of AgentDB's latent space simulation system, including design patterns, extension points, and how to add custom scenarios or components.
8
+
9
+ ---
10
+
11
+ ## 🏗️ Architecture Overview
12
+
13
+ ```
14
+ packages/agentdb/simulation/
15
+ ├── scenarios/ # Simulation implementations
16
+ │ └── latent-space/
17
+ │ ├── attention-analysis.ts
18
+ │ ├── hnsw-exploration.ts
19
+ │ ├── clustering-analysis.ts
20
+ │ ├── traversal-optimization.ts
21
+ │ ├── hypergraph-exploration.ts
22
+ │ ├── self-organizing-hnsw.ts
23
+ │ ├── neural-augmentation.ts
24
+ │ ├── quantum-hybrid.ts
25
+ │ ├── types.ts # Shared TypeScript interfaces
26
+ │ └── index.ts # Scenario registry
27
+ ├── src/
28
+ │ └── cli/
29
+ │ ├── commands/
30
+ │ │ ├── simulate.ts # Main CLI command
31
+ │ │ ├── simulate-wizard.ts
32
+ │ │ ├── simulate-custom.ts
33
+ │ │ └── simulate-report.ts
34
+ │ └── lib/
35
+ │ ├── simulation-runner.ts
36
+ │ ├── config-validator.ts
37
+ │ ├── report-generator.ts
38
+ │ └── help-formatter.ts
39
+ ├── tests/
40
+ │ └── latent-space/
41
+ │ └── [test files].test.ts
42
+ └── docs/
43
+ ├── guides/
44
+ ├── architecture/ (this file)
45
+ └── reports/
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 🎯 Core Concepts
51
+
52
+ ### 1. Simulation Scenario
53
+
54
+ A **scenario** is a complete benchmark test that:
55
+ 1. Configures a vector database setup
56
+ 2. Executes operations (inserts, queries, updates)
57
+ 3. Measures performance metrics
58
+ 4. Generates a comprehensive report
59
+
60
+ **Example**: `hnsw-exploration.ts` tests HNSW graph topology and small-world properties.
61
+
62
+ ---
63
+
64
+ ### 2. Component
65
+
66
+ A **component** is a reusable building block like:
67
+ - Backend (RuVector, hnswlib, FAISS)
68
+ - Attention mechanism (4/8/16-head GNN)
69
+ - Search strategy (greedy, beam, A*)
70
+ - Clustering algorithm (Louvain, spectral)
71
+ - Self-healing policy (MPC, reactive)
72
+ - Neural feature (GNN edges, RL navigation)
73
+
74
+ **Components are composable** via the custom builder.
75
+
76
+ ---
77
+
78
+ ### 3. Report
79
+
80
+ A **report** is a structured document (Markdown, JSON, or HTML) containing:
81
+ - Executive summary
82
+ - Configuration details
83
+ - Performance metrics
84
+ - Coherence analysis
85
+ - Recommendations
86
+
87
+ ---
88
+
89
+ ## 📦 TypeScript Type System
90
+
91
+ ### Core Interfaces (`scenarios/latent-space/types.ts`)
92
+
93
+ ```typescript
94
+ /**
95
+ * Base interface for all simulation scenarios
96
+ */
97
+ export interface SimulationScenario {
98
+ /** Unique scenario identifier */
99
+ id: string;
100
+
101
+ /** Human-readable name */
102
+ name: string;
103
+
104
+ /** Category for organization */
105
+ category: string;
106
+
107
+ /** Brief description */
108
+ description: string;
109
+
110
+ /** Expected duration in seconds */
111
+ expectedDuration: number;
112
+
113
+ /** Run the simulation */
114
+ run(config: SimulationConfig): Promise<SimulationReport>;
115
+
116
+ /** Validate configuration before execution */
117
+ validate(config: SimulationConfig): ValidationResult;
118
+ }
119
+
120
+ /**
121
+ * Simulation configuration
122
+ */
123
+ export interface SimulationConfig {
124
+ /** Number of vectors */
125
+ nodes: number;
126
+
127
+ /** Vector dimensions */
128
+ dimensions: number;
129
+
130
+ /** Number of iterations for coherence */
131
+ iterations: number;
132
+
133
+ /** Backend selection */
134
+ backend: 'ruvector' | 'hnswlib' | 'faiss';
135
+
136
+ /** HNSW parameters */
137
+ hnsw?: HNSWConfig;
138
+
139
+ /** Attention configuration */
140
+ attention?: AttentionConfig;
141
+
142
+ /** Search strategy */
143
+ search?: SearchConfig;
144
+
145
+ /** Clustering algorithm */
146
+ clustering?: ClusteringConfig;
147
+
148
+ /** Self-healing policy */
149
+ selfHealing?: SelfHealingConfig;
150
+
151
+ /** Neural augmentation features */
152
+ neural?: NeuralConfig;
153
+
154
+ /** Output options */
155
+ output?: OutputConfig;
156
+ }
157
+
158
+ /**
159
+ * Simulation results
160
+ */
161
+ export interface SimulationReport {
162
+ /** Scenario metadata */
163
+ scenario: {
164
+ id: string;
165
+ name: string;
166
+ timestamp: Date;
167
+ };
168
+
169
+ /** Configuration used */
170
+ config: SimulationConfig;
171
+
172
+ /** Performance metrics */
173
+ metrics: PerformanceMetrics;
174
+
175
+ /** Coherence analysis */
176
+ coherence: CoherenceAnalysis;
177
+
178
+ /** Recommendations */
179
+ recommendations: string[];
180
+
181
+ /** Raw iteration data */
182
+ iterations: IterationResult[];
183
+ }
184
+
185
+ /**
186
+ * Performance metrics
187
+ */
188
+ export interface PerformanceMetrics {
189
+ /** Latency statistics */
190
+ latency: {
191
+ p50: number; // microseconds
192
+ p95: number;
193
+ p99: number;
194
+ mean: number;
195
+ stddev: number;
196
+ };
197
+
198
+ /** Recall at different k values */
199
+ recall: {
200
+ k10: number; // Recall@10
201
+ k50: number;
202
+ k100: number;
203
+ };
204
+
205
+ /** Queries per second */
206
+ qps: number;
207
+
208
+ /** Memory usage in MB */
209
+ memory: number;
210
+
211
+ /** Graph properties (for HNSW) */
212
+ graph?: GraphProperties;
213
+ }
214
+
215
+ /**
216
+ * HNSW graph properties
217
+ */
218
+ export interface GraphProperties {
219
+ /** Small-world index */
220
+ smallWorldIndex: number; // σ value
221
+
222
+ /** Clustering coefficient */
223
+ clusteringCoefficient: number;
224
+
225
+ /** Average path length */
226
+ avgPathLength: number;
227
+
228
+ /** Modularity */
229
+ modularity: number;
230
+
231
+ /** Layer distribution */
232
+ layerDistribution: number[];
233
+ }
234
+
235
+ /**
236
+ * Coherence analysis across iterations
237
+ */
238
+ export interface CoherenceAnalysis {
239
+ /** Overall coherence score (0-1) */
240
+ score: number;
241
+
242
+ /** Variance in latency */
243
+ latencyVariance: number;
244
+
245
+ /** Variance in recall */
246
+ recallVariance: number;
247
+
248
+ /** Statistical significance */
249
+ pValue: number;
250
+ }
251
+ ```
252
+
253
+ ---
254
+
255
+ ## 🔌 Extension Points
256
+
257
+ ### Adding a New Simulation Scenario
258
+
259
+ **Step 1**: Create TypeScript file
260
+
261
+ Create `packages/agentdb/simulation/scenarios/my-category/my-simulation.ts`:
262
+
263
+ ```typescript
264
+ import { SimulationScenario, SimulationConfig, SimulationReport } from '../latent-space/types';
265
+
266
+ export class MySimulation implements SimulationScenario {
267
+ id = 'my-simulation';
268
+ name = 'My Custom Simulation';
269
+ category = 'my-category';
270
+ description = 'Tests my custom feature';
271
+ expectedDuration = 5.2; // seconds
272
+
273
+ async run(config: SimulationConfig): Promise<SimulationReport> {
274
+ // 1. Initialize database
275
+ const db = await this.initializeDatabase(config);
276
+
277
+ // 2. Insert vectors
278
+ const vectors = this.generateVectors(config.nodes, config.dimensions);
279
+ await db.insertBatch(vectors);
280
+
281
+ // 3. Run queries
282
+ const queries = this.generateQueries(1000);
283
+ const results = await this.runQueries(db, queries);
284
+
285
+ // 4. Measure performance
286
+ const metrics = this.calculateMetrics(results);
287
+
288
+ // 5. Generate report
289
+ return {
290
+ scenario: {
291
+ id: this.id,
292
+ name: this.name,
293
+ timestamp: new Date(),
294
+ },
295
+ config,
296
+ metrics,
297
+ coherence: this.calculateCoherence(results),
298
+ recommendations: this.generateRecommendations(metrics),
299
+ iterations: results,
300
+ };
301
+ }
302
+
303
+ validate(config: SimulationConfig): ValidationResult {
304
+ if (config.nodes < 1000) {
305
+ return {
306
+ valid: false,
307
+ errors: ['Minimum 1000 nodes required for my-simulation'],
308
+ };
309
+ }
310
+ return { valid: true };
311
+ }
312
+
313
+ private async initializeDatabase(config: SimulationConfig) {
314
+ // Implementation
315
+ }
316
+
317
+ private generateVectors(nodes: number, dimensions: number): Float32Array[] {
318
+ // Implementation
319
+ }
320
+
321
+ // ... other helper methods
322
+ }
323
+ ```
324
+
325
+ ---
326
+
327
+ **Step 2**: Register in index
328
+
329
+ Edit `packages/agentdb/simulation/scenarios/latent-space/index.ts`:
330
+
331
+ ```typescript
332
+ import { HNSWExploration } from './hnsw-exploration';
333
+ import { AttentionAnalysis } from './attention-analysis';
334
+ // ... other imports
335
+ import { MySimulation } from '../my-category/my-simulation';
336
+
337
+ export const SCENARIOS = {
338
+ 'hnsw': new HNSWExploration(),
339
+ 'attention': new AttentionAnalysis(),
340
+ // ... other scenarios
341
+ 'my-simulation': new MySimulation(),
342
+ };
343
+
344
+ export function getScenario(id: string): SimulationScenario | undefined {
345
+ return SCENARIOS[id];
346
+ }
347
+
348
+ export function listScenarios(): SimulationScenario[] {
349
+ return Object.values(SCENARIOS);
350
+ }
351
+ ```
352
+
353
+ ---
354
+
355
+ **Step 3**: Add CLI integration
356
+
357
+ Edit `packages/agentdb/src/cli/commands/simulate.ts`:
358
+
359
+ ```typescript
360
+ program
361
+ .command('my-simulation')
362
+ .description('My custom simulation')
363
+ .option('--custom-option <value>', 'Custom option')
364
+ .action(async (options) => {
365
+ const scenario = getScenario('my-simulation');
366
+ const config = buildConfig(options);
367
+ const report = await scenario.run(config);
368
+ await saveReport(report);
369
+ });
370
+ ```
371
+
372
+ ---
373
+
374
+ **Step 4**: Add tests
375
+
376
+ Create `packages/agentdb/simulation/tests/my-category/my-simulation.test.ts`:
377
+
378
+ ```typescript
379
+ import { MySimulation } from '../../scenarios/my-category/my-simulation';
380
+ import { SimulationConfig } from '../../scenarios/latent-space/types';
381
+
382
+ describe('MySimulation', () => {
383
+ let simulation: MySimulation;
384
+
385
+ beforeEach(() => {
386
+ simulation = new MySimulation();
387
+ });
388
+
389
+ test('should validate config', () => {
390
+ const config: SimulationConfig = {
391
+ nodes: 10000,
392
+ dimensions: 384,
393
+ iterations: 3,
394
+ backend: 'ruvector',
395
+ };
396
+
397
+ const result = simulation.validate(config);
398
+ expect(result.valid).toBe(true);
399
+ });
400
+
401
+ test('should run simulation', async () => {
402
+ const config: SimulationConfig = {
403
+ nodes: 1000, // Small for tests
404
+ dimensions: 128,
405
+ iterations: 1,
406
+ backend: 'ruvector',
407
+ };
408
+
409
+ const report = await simulation.run(config);
410
+
411
+ expect(report.metrics.latency.mean).toBeLessThan(200); // μs
412
+ expect(report.metrics.recall.k10).toBeGreaterThan(0.90);
413
+ });
414
+ });
415
+ ```
416
+
417
+ ---
418
+
419
+ ### Adding a New Component
420
+
421
+ **Example**: Adding a new search strategy
422
+
423
+ **Step 1**: Define interface
424
+
425
+ Edit `scenarios/latent-space/types.ts`:
426
+
427
+ ```typescript
428
+ export interface SearchStrategy {
429
+ name: string;
430
+ search(query: Float32Array, graph: HNSWGraph, k: number): Promise<Neighbor[]>;
431
+ }
432
+ ```
433
+
434
+ ---
435
+
436
+ **Step 2**: Implement strategy
437
+
438
+ Create `scenarios/latent-space/components/my-search.ts`:
439
+
440
+ ```typescript
441
+ import { SearchStrategy, HNSWGraph, Neighbor } from '../types';
442
+
443
+ export class MySearchStrategy implements SearchStrategy {
444
+ name = 'my-search';
445
+
446
+ async search(
447
+ query: Float32Array,
448
+ graph: HNSWGraph,
449
+ k: number
450
+ ): Promise<Neighbor[]> {
451
+ // 1. Start from entry point
452
+ let current = graph.entryPoint;
453
+ const visited = new Set<number>();
454
+ const candidates: Neighbor[] = [];
455
+
456
+ // 2. Navigate graph using your algorithm
457
+ while (candidates.length < k) {
458
+ // Your search logic here
459
+ // Example: Use custom heuristic
460
+ const neighbors = graph.getNeighbors(current);
461
+ for (const neighbor of neighbors) {
462
+ if (!visited.has(neighbor.id)) {
463
+ const distance = this.computeDistance(query, graph.vectors[neighbor.id]);
464
+ candidates.push({ id: neighbor.id, distance });
465
+ visited.add(neighbor.id);
466
+ }
467
+ }
468
+
469
+ // Select next node to visit
470
+ current = this.selectNext(candidates);
471
+ }
472
+
473
+ // 3. Return top-k results
474
+ return candidates
475
+ .sort((a, b) => a.distance - b.distance)
476
+ .slice(0, k);
477
+ }
478
+
479
+ private computeDistance(a: Float32Array, b: Float32Array): number {
480
+ // Cosine, Euclidean, or custom distance
481
+ }
482
+
483
+ private selectNext(candidates: Neighbor[]): number {
484
+ // Your selection heuristic
485
+ }
486
+ }
487
+ ```
488
+
489
+ ---
490
+
491
+ **Step 3**: Register component
492
+
493
+ Edit `scenarios/latent-space/components/index.ts`:
494
+
495
+ ```typescript
496
+ import { GreedySearch } from './greedy-search';
497
+ import { BeamSearch } from './beam-search';
498
+ import { MySearchStrategy } from './my-search';
499
+
500
+ export const SEARCH_STRATEGIES = {
501
+ 'greedy': new GreedySearch(),
502
+ 'beam': new BeamSearch(),
503
+ 'my-search': new MySearchStrategy(),
504
+ };
505
+
506
+ export function getSearchStrategy(name: string): SearchStrategy {
507
+ return SEARCH_STRATEGIES[name];
508
+ }
509
+ ```
510
+
511
+ ---
512
+
513
+ **Step 4**: Add CLI option
514
+
515
+ Edit `src/cli/commands/simulate-custom.ts`:
516
+
517
+ ```typescript
518
+ program
519
+ .command('custom')
520
+ .option('--search [strategy]', 'Search strategy: greedy|beam|astar|my-search', 'beam')
521
+ .action(async (options) => {
522
+ const strategy = getSearchStrategy(options.search);
523
+ // Use strategy in simulation
524
+ });
525
+ ```
526
+
527
+ ---
528
+
529
+ ## 🧪 Testing Architecture
530
+
531
+ ### Test Structure
532
+
533
+ ```
534
+ tests/
535
+ ├── unit/ # Unit tests for components
536
+ │ ├── search-strategies.test.ts
537
+ │ ├── clustering.test.ts
538
+ │ └── neural-components.test.ts
539
+ ├── integration/ # Integration tests
540
+ │ ├── hnsw-integration.test.ts
541
+ │ └── cli-integration.test.ts
542
+ └── e2e/ # End-to-end tests
543
+ ├── full-simulation.test.ts
544
+ └── wizard.test.ts
545
+ ```
546
+
547
+ ---
548
+
549
+ ### Example Unit Test
550
+
551
+ ```typescript
552
+ import { BeamSearch } from '../../scenarios/latent-space/components/beam-search';
553
+
554
+ describe('BeamSearch', () => {
555
+ test('should find k nearest neighbors', async () => {
556
+ const search = new BeamSearch(5); // beam width 5
557
+ const graph = createMockGraph();
558
+ const query = new Float32Array([0.1, 0.2, 0.3, ...]);
559
+
560
+ const results = await search.search(query, graph, 10);
561
+
562
+ expect(results.length).toBe(10);
563
+ expect(results[0].distance).toBeLessThanOrEqual(results[1].distance); // sorted
564
+ });
565
+
566
+ test('should achieve >95% recall', async () => {
567
+ const search = new BeamSearch(5);
568
+ const graph = createMockGraph();
569
+
570
+ const recall = await measureRecall(search, graph, 1000);
571
+
572
+ expect(recall).toBeGreaterThan(0.95);
573
+ });
574
+ });
575
+ ```
576
+
577
+ ---
578
+
579
+ ### Example Integration Test
580
+
581
+ ```typescript
582
+ import { HNSWExploration } from '../../scenarios/latent-space/hnsw-exploration';
583
+
584
+ describe('HNSW Integration', () => {
585
+ test('should complete simulation in <10s', async () => {
586
+ const simulation = new HNSWExploration();
587
+ const config = {
588
+ nodes: 10000,
589
+ dimensions: 384,
590
+ iterations: 3,
591
+ backend: 'ruvector',
592
+ };
593
+
594
+ const start = Date.now();
595
+ const report = await simulation.run(config);
596
+ const duration = (Date.now() - start) / 1000;
597
+
598
+ expect(duration).toBeLessThan(10);
599
+ expect(report.metrics.latency.mean).toBeLessThan(100);
600
+ });
601
+ });
602
+ ```
603
+
604
+ ---
605
+
606
+ ## 📊 Report Generation Architecture
607
+
608
+ ### Report Generator Interface
609
+
610
+ ```typescript
611
+ export interface ReportGenerator {
612
+ format: 'md' | 'json' | 'html' | 'pdf';
613
+
614
+ generate(report: SimulationReport): Promise<string>;
615
+ }
616
+ ```
617
+
618
+ ---
619
+
620
+ ### Markdown Report Generator
621
+
622
+ ```typescript
623
+ import { ReportGenerator, SimulationReport } from '../types';
624
+
625
+ export class MarkdownReportGenerator implements ReportGenerator {
626
+ format = 'md' as const;
627
+
628
+ async generate(report: SimulationReport): Promise<string> {
629
+ let markdown = '';
630
+
631
+ // Header
632
+ markdown += `# ${report.scenario.name} - Results\n\n`;
633
+ markdown += `**Date**: ${report.scenario.timestamp.toISOString()}\n\n`;
634
+
635
+ // Executive Summary
636
+ markdown += '## Executive Summary\n\n';
637
+ markdown += `- **Latency**: ${report.metrics.latency.mean.toFixed(1)}μs\n`;
638
+ markdown += `- **Recall@10**: ${(report.metrics.recall.k10 * 100).toFixed(1)}%\n`;
639
+ markdown += `- **QPS**: ${report.metrics.qps.toLocaleString()}\n`;
640
+ markdown += `- **Coherence**: ${(report.coherence.score * 100).toFixed(1)}%\n\n`;
641
+
642
+ // Configuration
643
+ markdown += '## Configuration\n\n';
644
+ markdown += '```json\n';
645
+ markdown += JSON.stringify(report.config, null, 2);
646
+ markdown += '\n```\n\n';
647
+
648
+ // Performance Metrics
649
+ markdown += '## Performance Metrics\n\n';
650
+ markdown += this.generateMetricsTable(report.metrics);
651
+
652
+ // Coherence Analysis
653
+ markdown += '## Coherence Analysis\n\n';
654
+ markdown += this.generateCoherenceSection(report.coherence);
655
+
656
+ // Recommendations
657
+ markdown += '## Recommendations\n\n';
658
+ for (const rec of report.recommendations) {
659
+ markdown += `- ${rec}\n`;
660
+ }
661
+
662
+ return markdown;
663
+ }
664
+
665
+ private generateMetricsTable(metrics: PerformanceMetrics): string {
666
+ return `| Metric | Value |
667
+ |--------|-------|
668
+ | Latency (p50) | ${metrics.latency.p50.toFixed(1)}μs |
669
+ | Latency (p95) | ${metrics.latency.p95.toFixed(1)}μs |
670
+ | Latency (p99) | ${metrics.latency.p99.toFixed(1)}μs |
671
+ | Recall@10 | ${(metrics.recall.k10 * 100).toFixed(1)}% |
672
+ | QPS | ${metrics.qps.toLocaleString()} |
673
+ | Memory | ${metrics.memory.toFixed(1)} MB |
674
+ \n\n`;
675
+ }
676
+
677
+ private generateCoherenceSection(coherence: CoherenceAnalysis): string {
678
+ return `- **Score**: ${(coherence.score * 100).toFixed(1)}% (${this.coherenceLabel(coherence.score)})
679
+ - **Latency Variance**: ${coherence.latencyVariance.toFixed(2)}%
680
+ - **Recall Variance**: ${coherence.recallVariance.toFixed(2)}%
681
+ - **Statistical Significance**: p=${coherence.pValue.toFixed(4)}
682
+ \n\n`;
683
+ }
684
+
685
+ private coherenceLabel(score: number): string {
686
+ if (score >= 0.98) return 'Excellent';
687
+ if (score >= 0.95) return 'Good';
688
+ if (score >= 0.90) return 'Acceptable';
689
+ return 'Needs Improvement';
690
+ }
691
+ }
692
+ ```
693
+
694
+ ---
695
+
696
+ ## 🔄 Simulation Runner Architecture
697
+
698
+ ### Runner Interface
699
+
700
+ ```typescript
701
+ export class SimulationRunner {
702
+ private scenario: SimulationScenario;
703
+ private config: SimulationConfig;
704
+ private progress: ProgressReporter;
705
+
706
+ constructor(scenario: SimulationScenario, config: SimulationConfig) {
707
+ this.scenario = scenario;
708
+ this.config = config;
709
+ this.progress = new ProgressReporter();
710
+ }
711
+
712
+ async run(): Promise<SimulationReport> {
713
+ // 1. Validate config
714
+ const validation = this.scenario.validate(this.config);
715
+ if (!validation.valid) {
716
+ throw new Error(`Invalid config: ${validation.errors.join(', ')}`);
717
+ }
718
+
719
+ // 2. Initialize progress reporting
720
+ this.progress.start(this.scenario.name);
721
+
722
+ // 3. Run simulation
723
+ try {
724
+ const report = await this.scenario.run(this.config);
725
+ this.progress.complete();
726
+ return report;
727
+ } catch (error) {
728
+ this.progress.fail(error.message);
729
+ throw error;
730
+ }
731
+ }
732
+ }
733
+ ```
734
+
735
+ ---
736
+
737
+ ## 🎨 Design Patterns Used
738
+
739
+ ### 1. Strategy Pattern
740
+
741
+ **Used for**: Search strategies, clustering algorithms, self-healing policies
742
+
743
+ ```typescript
744
+ interface SearchStrategy {
745
+ search(query: Float32Array, graph: HNSWGraph, k: number): Promise<Neighbor[]>;
746
+ }
747
+
748
+ class BeamSearch implements SearchStrategy { ... }
749
+ class GreedySearch implements SearchStrategy { ... }
750
+ ```
751
+
752
+ ---
753
+
754
+ ### 2. Factory Pattern
755
+
756
+ **Used for**: Creating scenarios, components, report generators
757
+
758
+ ```typescript
759
+ class ScenarioFactory {
760
+ static create(id: string): SimulationScenario {
761
+ switch (id) {
762
+ case 'hnsw': return new HNSWExploration();
763
+ case 'attention': return new AttentionAnalysis();
764
+ default: throw new Error(`Unknown scenario: ${id}`);
765
+ }
766
+ }
767
+ }
768
+ ```
769
+
770
+ ---
771
+
772
+ ### 3. Builder Pattern
773
+
774
+ **Used for**: Configuration building, custom simulation composition
775
+
776
+ ```typescript
777
+ class ConfigBuilder {
778
+ private config: Partial<SimulationConfig> = {};
779
+
780
+ nodes(n: number): this {
781
+ this.config.nodes = n;
782
+ return this;
783
+ }
784
+
785
+ dimensions(d: number): this {
786
+ this.config.dimensions = d;
787
+ return this;
788
+ }
789
+
790
+ backend(b: Backend): this {
791
+ this.config.backend = b;
792
+ return this;
793
+ }
794
+
795
+ build(): SimulationConfig {
796
+ // Validate and return
797
+ return this.config as SimulationConfig;
798
+ }
799
+ }
800
+ ```
801
+
802
+ ---
803
+
804
+ ### 4. Observer Pattern
805
+
806
+ **Used for**: Progress reporting, event monitoring
807
+
808
+ ```typescript
809
+ interface ProgressObserver {
810
+ onStart(scenario: string): void;
811
+ onProgress(percent: number): void;
812
+ onComplete(report: SimulationReport): void;
813
+ onError(error: Error): void;
814
+ }
815
+
816
+ class ProgressReporter {
817
+ private observers: ProgressObserver[] = [];
818
+
819
+ subscribe(observer: ProgressObserver): void {
820
+ this.observers.push(observer);
821
+ }
822
+
823
+ notifyProgress(percent: number): void {
824
+ for (const observer of this.observers) {
825
+ observer.onProgress(percent);
826
+ }
827
+ }
828
+ }
829
+ ```
830
+
831
+ ---
832
+
833
+ ## 🚀 Performance Optimization
834
+
835
+ ### 1. Lazy Loading
836
+
837
+ ```typescript
838
+ // Load scenarios only when needed
839
+ const SCENARIOS = {
840
+ get hnsw() { return require('./hnsw-exploration').HNSWExploration; },
841
+ get attention() { return require('./attention-analysis').AttentionAnalysis; },
842
+ };
843
+ ```
844
+
845
+ ---
846
+
847
+ ### 2. Worker Threads (for parallel iterations)
848
+
849
+ ```typescript
850
+ import { Worker } from 'worker_threads';
851
+
852
+ async function runParallelIterations(config: SimulationConfig): Promise<IterationResult[]> {
853
+ const workers = [];
854
+ for (let i = 0; i < config.iterations; i++) {
855
+ workers.push(new Worker('./iteration-worker.js', { workerData: config }));
856
+ }
857
+
858
+ return Promise.all(workers.map(w => new Promise((resolve) => {
859
+ w.on('message', resolve);
860
+ })));
861
+ }
862
+ ```
863
+
864
+ ---
865
+
866
+ ### 3. Memory Pooling
867
+
868
+ ```typescript
869
+ class VectorPool {
870
+ private pool: Float32Array[] = [];
871
+
872
+ acquire(size: number): Float32Array {
873
+ return this.pool.pop() || new Float32Array(size);
874
+ }
875
+
876
+ release(vector: Float32Array): void {
877
+ this.pool.push(vector);
878
+ }
879
+ }
880
+ ```
881
+
882
+ ---
883
+
884
+ ## 📚 Further Reading
885
+
886
+ - **[Optimization Strategy](OPTIMIZATION-STRATEGY.md)** - Performance tuning guide
887
+ - **[Custom Simulations Guide](../guides/CUSTOM-SIMULATIONS.md)** - Component reference
888
+ - **[CLI Reference](../guides/CLI-REFERENCE.md)** - Command-line usage
889
+
890
+ ---
891
+
892
+ **Ready to extend?** Check the **[Component Reference →](../guides/CUSTOM-SIMULATIONS.md#complete-component-reference)**