agentic-flow 2.0.2 → 2.0.4

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 (324) hide show
  1. package/.claude/agents/test-neural.md +14 -0
  2. package/.claude/settings.json +9 -133
  3. package/README.md +622 -1862
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/billing/mcp/tools.js +0 -1
  6. package/dist/billing/mcp/tools.js.map +1 -1
  7. package/dist/cli/commands/hooks.d.ts.map +1 -1
  8. package/dist/cli/commands/hooks.js +4 -79
  9. package/dist/cli/commands/hooks.js.map +1 -1
  10. package/dist/cli-proxy.js +1 -89
  11. package/dist/cli-proxy.js.map +1 -1
  12. package/dist/core/agentdb-fast.js +3 -3
  13. package/dist/core/agentdb-fast.js.map +1 -1
  14. package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
  15. package/dist/core/agentdb-wrapper-enhanced.js +4 -20
  16. package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
  17. package/dist/core/agentdb-wrapper.d.ts +2 -3
  18. package/dist/core/agentdb-wrapper.d.ts.map +1 -1
  19. package/dist/core/agentdb-wrapper.js +1 -15
  20. package/dist/core/agentdb-wrapper.js.map +1 -1
  21. package/dist/core/attention-native.d.ts +0 -4
  22. package/dist/core/attention-native.d.ts.map +1 -1
  23. package/dist/core/attention-native.js +2 -14
  24. package/dist/core/attention-native.js.map +1 -1
  25. package/dist/federation/SecurityManager.d.ts +2 -11
  26. package/dist/federation/SecurityManager.d.ts.map +1 -1
  27. package/dist/federation/SecurityManager.js +17 -50
  28. package/dist/federation/SecurityManager.js.map +1 -1
  29. package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
  30. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
  31. package/dist/hooks/swarm-learning-optimizer.js +5 -5
  32. package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
  33. package/dist/intelligence/IntelligenceStore.d.ts +26 -35
  34. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
  35. package/dist/intelligence/IntelligenceStore.js +123 -308
  36. package/dist/intelligence/IntelligenceStore.js.map +1 -1
  37. package/dist/intelligence/RuVectorIntelligence.d.ts +1 -26
  38. package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
  39. package/dist/intelligence/RuVectorIntelligence.js +10 -49
  40. package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
  41. package/dist/intelligence/agent-booster-enhanced.d.ts +0 -1
  42. package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
  43. package/dist/intelligence/agent-booster-enhanced.js +3 -24
  44. package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
  45. package/dist/intelligence/index.d.ts +3 -29
  46. package/dist/intelligence/index.d.ts.map +1 -1
  47. package/dist/intelligence/index.js +3 -13
  48. package/dist/intelligence/index.js.map +1 -1
  49. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  50. package/dist/mcp/claudeFlowSdkServer.js +3 -9
  51. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  52. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
  53. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
  54. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
  55. package/dist/mcp/fastmcp/tools/swarm/init.js +7 -36
  56. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
  57. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
  58. package/dist/mcp/fastmcp/tools/swarm/spawn.js +8 -47
  59. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
  60. package/dist/mcp/tools/agent-booster-tools.d.ts +1 -1
  61. package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
  62. package/dist/mcp/tools/agent-booster-tools.js +4 -10
  63. package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
  64. package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
  65. package/dist/mcp/tools/sona-tools.js +0 -6
  66. package/dist/mcp/tools/sona-tools.js.map +1 -1
  67. package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
  68. package/dist/optimizations/agent-booster-migration.js +2 -5
  69. package/dist/optimizations/agent-booster-migration.js.map +1 -1
  70. package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
  71. package/dist/proxy/anthropic-to-requesty.js.map +1 -1
  72. package/dist/proxy/quic-proxy.d.ts +1 -0
  73. package/dist/proxy/quic-proxy.d.ts.map +1 -1
  74. package/dist/proxy/quic-proxy.js +2 -2
  75. package/dist/proxy/quic-proxy.js.map +1 -1
  76. package/dist/reasoningbank/AdvancedMemory.js +1 -1
  77. package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
  78. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
  79. package/dist/reasoningbank/HybridBackend.js +5 -2
  80. package/dist/reasoningbank/HybridBackend.js.map +1 -1
  81. package/dist/reasoningbank/backend-selector.d.ts +1 -11
  82. package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
  83. package/dist/reasoningbank/backend-selector.js +5 -45
  84. package/dist/reasoningbank/backend-selector.js.map +1 -1
  85. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
  86. package/dist/reasoningbank/core/consolidate.js +45 -113
  87. package/dist/reasoningbank/core/consolidate.js.map +1 -1
  88. package/dist/reasoningbank/index-new.d.ts +6 -1
  89. package/dist/reasoningbank/index-new.d.ts.map +1 -1
  90. package/dist/reasoningbank/index-new.js +6 -1
  91. package/dist/reasoningbank/index-new.js.map +1 -1
  92. package/dist/reasoningbank/index.d.ts +6 -2
  93. package/dist/reasoningbank/index.d.ts.map +1 -1
  94. package/dist/reasoningbank/index.js +6 -2
  95. package/dist/reasoningbank/index.js.map +1 -1
  96. package/dist/reasoningbank/utils/embeddings.d.ts +0 -1
  97. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
  98. package/dist/reasoningbank/utils/embeddings.js +26 -53
  99. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  100. package/dist/router/index.d.ts +17 -0
  101. package/dist/router/index.d.ts.map +1 -0
  102. package/dist/router/index.js +19 -0
  103. package/dist/router/index.js.map +1 -0
  104. package/dist/router/providers/onnx-local-optimized.d.ts +0 -2
  105. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
  106. package/dist/router/providers/onnx-local-optimized.js +0 -10
  107. package/dist/router/providers/onnx-local-optimized.js.map +1 -1
  108. package/dist/router/providers/onnx-local.d.ts +0 -1
  109. package/dist/router/providers/onnx-local.d.ts.map +1 -1
  110. package/dist/router/providers/onnx-local.js +5 -22
  111. package/dist/router/providers/onnx-local.js.map +1 -1
  112. package/dist/services/embedding-service.js.map +1 -1
  113. package/dist/services/sona-agent-training.d.ts +0 -1
  114. package/dist/services/sona-agent-training.d.ts.map +1 -1
  115. package/dist/services/sona-agent-training.js.map +1 -1
  116. package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
  117. package/dist/services/sona-agentdb-integration.js +6 -9
  118. package/dist/services/sona-agentdb-integration.js.map +1 -1
  119. package/dist/services/sona-service.d.ts.map +1 -1
  120. package/dist/services/sona-service.js +5 -6
  121. package/dist/services/sona-service.js.map +1 -1
  122. package/dist/utils/cli.d.ts +1 -1
  123. package/dist/utils/cli.d.ts.map +1 -1
  124. package/dist/utils/cli.js +0 -21
  125. package/dist/utils/cli.js.map +1 -1
  126. package/package.json +7 -19
  127. package/scripts/postinstall.js +4 -45
  128. package/wasm/reasoningbank/reasoningbank_wasm_bg.js +2 -2
  129. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
  130. package/.claude/agents/.claude-flow/metrics/agent-metrics.json +0 -1
  131. package/.claude/agents/.claude-flow/metrics/performance.json +0 -87
  132. package/.claude/agents/.claude-flow/metrics/task-metrics.json +0 -10
  133. package/.claude/skills/.claude-flow/metrics/agent-metrics.json +0 -1
  134. package/.claude/skills/.claude-flow/metrics/performance.json +0 -87
  135. package/.claude/skills/.claude-flow/metrics/task-metrics.json +0 -10
  136. package/.claude/skills/agentic-flow-quickstart/skill.md +0 -69
  137. package/.claude/skills/hooks-automation/skill.md +0 -155
  138. package/.claude/skills/memory-patterns/skill.md +0 -110
  139. package/.claude/skills/skill-builder/.claude-flow/metrics/agent-metrics.json +0 -1
  140. package/.claude/skills/skill-builder/.claude-flow/metrics/performance.json +0 -87
  141. package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +0 -10
  142. package/.claude/skills/sparc-methodology/skill.md +0 -137
  143. package/.claude/skills/swarm-coordination/skill.md +0 -94
  144. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  145. package/.claude/skills/worker-integration/skill.md +0 -154
  146. package/.claude/statusline.mjs +0 -109
  147. package/.claude/statusline.sh +0 -71
  148. package/dist/agentdb/benchmarks/comprehensive-benchmark.js +0 -664
  149. package/dist/agentdb/benchmarks/frontier-benchmark.js +0 -419
  150. package/dist/agentdb/benchmarks/reflexion-benchmark.js +0 -370
  151. package/dist/agentdb/cli/agentdb-cli.js +0 -717
  152. package/dist/agentdb/controllers/CausalMemoryGraph.js +0 -322
  153. package/dist/agentdb/controllers/CausalRecall.js +0 -281
  154. package/dist/agentdb/controllers/EmbeddingService.d.ts +0 -37
  155. package/dist/agentdb/controllers/EmbeddingService.d.ts.map +0 -1
  156. package/dist/agentdb/controllers/EmbeddingService.js +0 -119
  157. package/dist/agentdb/controllers/EmbeddingService.js.map +0 -1
  158. package/dist/agentdb/controllers/ExplainableRecall.js +0 -387
  159. package/dist/agentdb/controllers/NightlyLearner.js +0 -382
  160. package/dist/agentdb/controllers/ReflexionMemory.js +0 -239
  161. package/dist/agentdb/controllers/SkillLibrary.js +0 -276
  162. package/dist/agentdb/controllers/frontier-index.js +0 -9
  163. package/dist/agentdb/controllers/index.js +0 -8
  164. package/dist/agentdb/optimizations/BatchOperations.js +0 -198
  165. package/dist/agentdb/optimizations/QueryOptimizer.js +0 -225
  166. package/dist/agentdb/optimizations/index.js +0 -7
  167. package/dist/agentdb/tests/frontier-features.test.js +0 -665
  168. package/dist/benchmarks/embeddings-benchmark.d.ts +0 -38
  169. package/dist/benchmarks/embeddings-benchmark.d.ts.map +0 -1
  170. package/dist/benchmarks/embeddings-benchmark.js +0 -282
  171. package/dist/benchmarks/embeddings-benchmark.js.map +0 -1
  172. package/dist/cli/commands/embeddings.d.ts +0 -12
  173. package/dist/cli/commands/embeddings.d.ts.map +0 -1
  174. package/dist/cli/commands/embeddings.js +0 -386
  175. package/dist/cli/commands/embeddings.js.map +0 -1
  176. package/dist/cli/commands/init.d.ts +0 -8
  177. package/dist/cli/commands/init.d.ts.map +0 -1
  178. package/dist/cli/commands/init.js +0 -514
  179. package/dist/cli/commands/init.js.map +0 -1
  180. package/dist/cli/commands/workers.d.ts +0 -9
  181. package/dist/cli/commands/workers.d.ts.map +0 -1
  182. package/dist/cli/commands/workers.js +0 -991
  183. package/dist/cli/commands/workers.js.map +0 -1
  184. package/dist/cli/skills-manager.js +0 -1297
  185. package/dist/cli/update-message.js +0 -175
  186. package/dist/embeddings/index.d.ts +0 -17
  187. package/dist/embeddings/index.d.ts.map +0 -1
  188. package/dist/embeddings/index.js +0 -17
  189. package/dist/embeddings/index.js.map +0 -1
  190. package/dist/embeddings/neural-substrate.d.ts +0 -206
  191. package/dist/embeddings/neural-substrate.d.ts.map +0 -1
  192. package/dist/embeddings/neural-substrate.js +0 -629
  193. package/dist/embeddings/neural-substrate.js.map +0 -1
  194. package/dist/embeddings/optimized-embedder.d.ts +0 -103
  195. package/dist/embeddings/optimized-embedder.d.ts.map +0 -1
  196. package/dist/embeddings/optimized-embedder.js +0 -730
  197. package/dist/embeddings/optimized-embedder.js.map +0 -1
  198. package/dist/examples/embedding-geometry.d.ts +0 -105
  199. package/dist/examples/embedding-geometry.d.ts.map +0 -1
  200. package/dist/examples/embedding-geometry.js +0 -528
  201. package/dist/examples/embedding-geometry.js.map +0 -1
  202. package/dist/memory/SharedMemoryPool.d.ts +0 -129
  203. package/dist/memory/SharedMemoryPool.d.ts.map +0 -1
  204. package/dist/memory/SharedMemoryPool.js +0 -243
  205. package/dist/memory/SharedMemoryPool.js.map +0 -1
  206. package/dist/memory/index.d.ts +0 -8
  207. package/dist/memory/index.d.ts.map +0 -1
  208. package/dist/memory/index.js +0 -7
  209. package/dist/memory/index.js.map +0 -1
  210. package/dist/proxy/http3-proxy-old.js +0 -331
  211. package/dist/proxy/proxy/anthropic-to-gemini.js +0 -439
  212. package/dist/proxy/utils/logger.js +0 -59
  213. package/dist/reasoningbank/agentdb-adapter.js +0 -125
  214. package/dist/reasoningbank/core/database.js +0 -250
  215. package/dist/reasoningbank/core/memory-engine.js +0 -335
  216. package/dist/swarm/ipfs-swarm.d.ts +0 -265
  217. package/dist/swarm/ipfs-swarm.d.ts.map +0 -1
  218. package/dist/swarm/ipfs-swarm.js +0 -508
  219. package/dist/swarm/ipfs-swarm.js.map +0 -1
  220. package/dist/swarm/p2p-free-swarm.d.ts +0 -344
  221. package/dist/swarm/p2p-free-swarm.d.ts.map +0 -1
  222. package/dist/swarm/p2p-free-swarm.js +0 -603
  223. package/dist/swarm/p2p-free-swarm.js.map +0 -1
  224. package/dist/swarm/real-p2p-swarm.d.ts +0 -183
  225. package/dist/swarm/real-p2p-swarm.d.ts.map +0 -1
  226. package/dist/swarm/real-p2p-swarm.js +0 -469
  227. package/dist/swarm/real-p2p-swarm.js.map +0 -1
  228. package/dist/utils/adaptive-pool-sizing.js +0 -414
  229. package/dist/utils/agentdbCommands.js +0 -175
  230. package/dist/utils/circular-rate-limiter.js +0 -391
  231. package/dist/utils/dynamic-compression.js +0 -298
  232. package/dist/utils/http2-multiplexing.js +0 -319
  233. package/dist/utils/index.d.ts +0 -6
  234. package/dist/utils/index.d.ts.map +0 -1
  235. package/dist/utils/index.js +0 -6
  236. package/dist/utils/index.js.map +0 -1
  237. package/dist/utils/lazy-auth.js +0 -311
  238. package/dist/utils/model-cache.d.ts +0 -61
  239. package/dist/utils/model-cache.d.ts.map +0 -1
  240. package/dist/utils/model-cache.js +0 -176
  241. package/dist/utils/model-cache.js.map +0 -1
  242. package/dist/utils/server-push.js +0 -251
  243. package/dist/utils/suppress-warnings.d.ts +0 -19
  244. package/dist/utils/suppress-warnings.d.ts.map +0 -1
  245. package/dist/utils/suppress-warnings.js +0 -59
  246. package/dist/utils/suppress-warnings.js.map +0 -1
  247. package/dist/utils/zero-copy-buffer.js +0 -286
  248. package/dist/workers/consolidated-phases.d.ts +0 -40
  249. package/dist/workers/consolidated-phases.d.ts.map +0 -1
  250. package/dist/workers/consolidated-phases.js +0 -497
  251. package/dist/workers/consolidated-phases.js.map +0 -1
  252. package/dist/workers/custom-worker-config.d.ts +0 -133
  253. package/dist/workers/custom-worker-config.d.ts.map +0 -1
  254. package/dist/workers/custom-worker-config.js +0 -215
  255. package/dist/workers/custom-worker-config.js.map +0 -1
  256. package/dist/workers/custom-worker-factory.d.ts +0 -89
  257. package/dist/workers/custom-worker-factory.d.ts.map +0 -1
  258. package/dist/workers/custom-worker-factory.js +0 -404
  259. package/dist/workers/custom-worker-factory.js.map +0 -1
  260. package/dist/workers/dispatch-service.d.ts +0 -123
  261. package/dist/workers/dispatch-service.d.ts.map +0 -1
  262. package/dist/workers/dispatch-service.js +0 -1024
  263. package/dist/workers/dispatch-service.js.map +0 -1
  264. package/dist/workers/hooks-integration.d.ts +0 -79
  265. package/dist/workers/hooks-integration.d.ts.map +0 -1
  266. package/dist/workers/hooks-integration.js +0 -286
  267. package/dist/workers/hooks-integration.js.map +0 -1
  268. package/dist/workers/index.d.ts +0 -42
  269. package/dist/workers/index.d.ts.map +0 -1
  270. package/dist/workers/index.js +0 -52
  271. package/dist/workers/index.js.map +0 -1
  272. package/dist/workers/mcp-tools.d.ts +0 -56
  273. package/dist/workers/mcp-tools.d.ts.map +0 -1
  274. package/dist/workers/mcp-tools.js +0 -359
  275. package/dist/workers/mcp-tools.js.map +0 -1
  276. package/dist/workers/phase-executors.d.ts +0 -22
  277. package/dist/workers/phase-executors.d.ts.map +0 -1
  278. package/dist/workers/phase-executors.js +0 -445
  279. package/dist/workers/phase-executors.js.map +0 -1
  280. package/dist/workers/resource-governor.d.ts +0 -75
  281. package/dist/workers/resource-governor.d.ts.map +0 -1
  282. package/dist/workers/resource-governor.js +0 -187
  283. package/dist/workers/resource-governor.js.map +0 -1
  284. package/dist/workers/ruvector-integration.d.ts +0 -163
  285. package/dist/workers/ruvector-integration.d.ts.map +0 -1
  286. package/dist/workers/ruvector-integration.js +0 -543
  287. package/dist/workers/ruvector-integration.js.map +0 -1
  288. package/dist/workers/ruvector-native-integration.d.ts +0 -91
  289. package/dist/workers/ruvector-native-integration.d.ts.map +0 -1
  290. package/dist/workers/ruvector-native-integration.js +0 -254
  291. package/dist/workers/ruvector-native-integration.js.map +0 -1
  292. package/dist/workers/trigger-detector.d.ts +0 -68
  293. package/dist/workers/trigger-detector.d.ts.map +0 -1
  294. package/dist/workers/trigger-detector.js +0 -281
  295. package/dist/workers/trigger-detector.js.map +0 -1
  296. package/dist/workers/types.d.ts +0 -145
  297. package/dist/workers/types.d.ts.map +0 -1
  298. package/dist/workers/types.js +0 -6
  299. package/dist/workers/types.js.map +0 -1
  300. package/dist/workers/worker-agent-integration.d.ts +0 -140
  301. package/dist/workers/worker-agent-integration.d.ts.map +0 -1
  302. package/dist/workers/worker-agent-integration.js +0 -471
  303. package/dist/workers/worker-agent-integration.js.map +0 -1
  304. package/dist/workers/worker-benchmarks.d.ts +0 -88
  305. package/dist/workers/worker-benchmarks.d.ts.map +0 -1
  306. package/dist/workers/worker-benchmarks.js +0 -452
  307. package/dist/workers/worker-benchmarks.js.map +0 -1
  308. package/dist/workers/worker-registry.d.ts +0 -85
  309. package/dist/workers/worker-registry.d.ts.map +0 -1
  310. package/dist/workers/worker-registry.js +0 -547
  311. package/dist/workers/worker-registry.js.map +0 -1
  312. package/docs/.claude-flow/metrics/agent-metrics.json +0 -1
  313. package/docs/.claude-flow/metrics/performance.json +0 -87
  314. package/docs/.claude-flow/metrics/task-metrics.json +0 -10
  315. package/docs/embeddings/EMBEDDING_GEOMETRY.md +0 -935
  316. /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
  317. /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
  318. /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
  319. /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
  320. /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
  321. /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
  322. /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
  323. /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
  324. /package/.claude/agents/testing/{production-validator.md → validation/production-validator.md} +0 -0
@@ -1,129 +0,0 @@
1
- /**
2
- * Shared Memory Pool for AgentDB
3
- *
4
- * Provides a singleton memory pool that multiple agents can share:
5
- * - Single SQLite database connection (reduces overhead)
6
- * - Single embedding model instance (saves ~150MB per agent)
7
- * - Shared query cache (LRU with TTL)
8
- * - Shared embedding cache (deduplication)
9
- *
10
- * Memory savings: ~300-500MB for 4+ concurrent agents
11
- *
12
- * @example
13
- * ```typescript
14
- * import { SharedMemoryPool } from 'agentic-flow/memory';
15
- *
16
- * const pool = SharedMemoryPool.getInstance();
17
- * const db = pool.getDatabase();
18
- * const embedder = pool.getEmbedder();
19
- * ```
20
- */
21
- import { Database as DatabaseInstance } from 'better-sqlite3';
22
- declare class EmbeddingService {
23
- private model;
24
- private dimension;
25
- constructor(config: {
26
- model?: string;
27
- dimension?: number;
28
- cacheSize?: number;
29
- provider?: string;
30
- });
31
- embed(text: string): Promise<Float32Array>;
32
- initialize(): Promise<void>;
33
- }
34
- export interface SharedMemoryPoolConfig {
35
- dbPath?: string;
36
- cacheSize?: number;
37
- embeddingCacheSize?: number;
38
- embeddingModel?: string;
39
- embeddingDimension?: number;
40
- }
41
- export declare class SharedMemoryPool {
42
- private static instance;
43
- private db;
44
- private embedder;
45
- private queryCache;
46
- private embeddingCache;
47
- private config;
48
- private initialized;
49
- private constructor();
50
- /**
51
- * Get singleton instance of SharedMemoryPool
52
- */
53
- static getInstance(config?: SharedMemoryPoolConfig): SharedMemoryPool;
54
- /**
55
- * Reset singleton instance (for testing)
56
- */
57
- static resetInstance(): void;
58
- /**
59
- * Ensure embedding service is initialized
60
- */
61
- ensureInitialized(): Promise<void>;
62
- /**
63
- * Get shared database connection
64
- */
65
- getDatabase(): DatabaseInstance;
66
- /**
67
- * Get shared embedding service
68
- */
69
- getEmbedder(): EmbeddingService;
70
- /**
71
- * Get or compute embedding with caching
72
- *
73
- * @param text Text to embed
74
- * @returns Cached or newly computed embedding
75
- */
76
- getCachedEmbedding(text: string): Promise<Float32Array>;
77
- /**
78
- * Cache query result with TTL
79
- *
80
- * @param key Cache key
81
- * @param result Result to cache
82
- * @param ttl Time-to-live in milliseconds (default: 60s)
83
- */
84
- cacheQuery(key: string, result: any, ttl?: number): void;
85
- /**
86
- * Get cached query result
87
- *
88
- * @param key Cache key
89
- * @returns Cached result or null if expired/missing
90
- */
91
- getCachedQuery(key: string): any | null;
92
- /**
93
- * Clear all caches
94
- */
95
- clearCaches(): void;
96
- /**
97
- * Get memory pool statistics
98
- */
99
- getStats(): {
100
- database: {
101
- path: string;
102
- size: any;
103
- tables: any;
104
- walMode: unknown;
105
- };
106
- cache: {
107
- queryCacheSize: number;
108
- queryCacheMax: number;
109
- embeddingCacheSize: number;
110
- embeddingCacheMax: number;
111
- };
112
- embedder: {
113
- model: string;
114
- dimension: number;
115
- initialized: boolean;
116
- };
117
- memory: {
118
- heapUsed: number;
119
- external: number;
120
- };
121
- };
122
- /**
123
- * Close database connection and cleanup
124
- */
125
- close(): void;
126
- }
127
- export declare const getSharedMemoryPool: typeof SharedMemoryPool.getInstance;
128
- export {};
129
- //# sourceMappingURL=SharedMemoryPool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SharedMemoryPool.d.ts","sourceRoot":"","sources":["../../src/memory/SharedMemoryPool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAiB,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAMxE,cAAM,gBAAgB;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAK3F,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAClC;AAOD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO;IAqCP;;OAEG;WACW,WAAW,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB;IAO5E;;OAEG;WACW,aAAa,IAAI,IAAI;IAOnC;;OAEG;IACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACI,WAAW,IAAI,gBAAgB;IAItC;;OAEG;IACI,WAAW,IAAI,gBAAgB;IAItC;;;;;OAKG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmBpE;;;;;;OAMG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAE,MAAc,GAAG,IAAI;IAetE;;;;;OAKG;IACI,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAY9C;;OAEG;IACI,WAAW,IAAI,IAAI;IAK1B;;OAEG;IACI,QAAQ;;;;;;;;;;;;;;;;;;;;;;;IAgCf;;OAEG;IACI,KAAK,IAAI,IAAI;CAKrB;AAGD,eAAO,MAAM,mBAAmB,qCAA+B,CAAC"}
@@ -1,243 +0,0 @@
1
- /**
2
- * Shared Memory Pool for AgentDB
3
- *
4
- * Provides a singleton memory pool that multiple agents can share:
5
- * - Single SQLite database connection (reduces overhead)
6
- * - Single embedding model instance (saves ~150MB per agent)
7
- * - Shared query cache (LRU with TTL)
8
- * - Shared embedding cache (deduplication)
9
- *
10
- * Memory savings: ~300-500MB for 4+ concurrent agents
11
- *
12
- * @example
13
- * ```typescript
14
- * import { SharedMemoryPool } from 'agentic-flow/memory';
15
- *
16
- * const pool = SharedMemoryPool.getInstance();
17
- * const db = pool.getDatabase();
18
- * const embedder = pool.getEmbedder();
19
- * ```
20
- */
21
- // Use better-sqlite3 for local SQLite
22
- import Database from 'better-sqlite3';
23
- import * as path from 'path';
24
- import * as fs from 'fs';
25
- // Stub implementation for EmbeddingService
26
- // TODO: Replace with actual import when agentdb v3.x is released
27
- class EmbeddingService {
28
- model;
29
- dimension;
30
- constructor(config) {
31
- this.model = config.model || 'mock';
32
- this.dimension = config.dimension || 384;
33
- }
34
- async embed(text) {
35
- // Simple hash-based mock embedding
36
- const embedding = new Float32Array(this.dimension);
37
- let hash = 0;
38
- for (let i = 0; i < text.length; i++) {
39
- hash = (hash << 5) - hash + text.charCodeAt(i);
40
- hash = hash & hash;
41
- }
42
- for (let i = 0; i < this.dimension; i++) {
43
- const seed = hash + i * 2654435761;
44
- const x = Math.sin(seed) * 10000;
45
- embedding[i] = x - Math.floor(x);
46
- }
47
- // Normalize
48
- const norm = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));
49
- for (let i = 0; i < this.dimension; i++) {
50
- embedding[i] /= norm;
51
- }
52
- return embedding;
53
- }
54
- async initialize() { }
55
- }
56
- export class SharedMemoryPool {
57
- static instance;
58
- db;
59
- embedder;
60
- queryCache;
61
- embeddingCache;
62
- config;
63
- initialized = false;
64
- constructor(config = {}) {
65
- this.config = {
66
- dbPath: config.dbPath || './agentdb.db',
67
- cacheSize: config.cacheSize || 1000,
68
- embeddingCacheSize: config.embeddingCacheSize || 10000,
69
- embeddingModel: config.embeddingModel || 'Xenova/all-MiniLM-L6-v2',
70
- embeddingDimension: config.embeddingDimension || 384
71
- };
72
- // Initialize SQLite with optimized settings
73
- const dbDir = path.dirname(this.config.dbPath);
74
- if (!fs.existsSync(dbDir)) {
75
- fs.mkdirSync(dbDir, { recursive: true });
76
- }
77
- this.db = new Database(this.config.dbPath);
78
- // Optimize SQLite for performance
79
- this.db.pragma('journal_mode = WAL'); // Write-Ahead Logging
80
- this.db.pragma('synchronous = NORMAL'); // Balanced safety/performance
81
- this.db.pragma('cache_size = -65536'); // 64MB cache
82
- this.db.pragma('mmap_size = 268435456'); // 256MB memory-mapped I/O
83
- this.db.pragma('page_size = 8192'); // 8KB pages
84
- this.db.pragma('temp_store = MEMORY'); // Keep temp tables in memory
85
- // Initialize embedding service (will be lazy-loaded)
86
- this.embedder = new EmbeddingService({
87
- model: this.config.embeddingModel,
88
- dimension: this.config.embeddingDimension,
89
- provider: 'transformers'
90
- });
91
- // Initialize caches
92
- this.queryCache = new Map();
93
- this.embeddingCache = new Map();
94
- }
95
- /**
96
- * Get singleton instance of SharedMemoryPool
97
- */
98
- static getInstance(config) {
99
- if (!SharedMemoryPool.instance) {
100
- SharedMemoryPool.instance = new SharedMemoryPool(config);
101
- }
102
- return SharedMemoryPool.instance;
103
- }
104
- /**
105
- * Reset singleton instance (for testing)
106
- */
107
- static resetInstance() {
108
- if (SharedMemoryPool.instance) {
109
- SharedMemoryPool.instance.close();
110
- SharedMemoryPool.instance = null;
111
- }
112
- }
113
- /**
114
- * Ensure embedding service is initialized
115
- */
116
- async ensureInitialized() {
117
- if (!this.initialized) {
118
- await this.embedder.initialize();
119
- this.initialized = true;
120
- }
121
- }
122
- /**
123
- * Get shared database connection
124
- */
125
- getDatabase() {
126
- return this.db;
127
- }
128
- /**
129
- * Get shared embedding service
130
- */
131
- getEmbedder() {
132
- return this.embedder;
133
- }
134
- /**
135
- * Get or compute embedding with caching
136
- *
137
- * @param text Text to embed
138
- * @returns Cached or newly computed embedding
139
- */
140
- async getCachedEmbedding(text) {
141
- const cached = this.embeddingCache.get(text);
142
- if (cached)
143
- return cached;
144
- await this.ensureInitialized();
145
- const embedding = await this.embedder.embed(text);
146
- // LRU eviction if cache too large
147
- if (this.embeddingCache.size >= this.config.embeddingCacheSize) {
148
- const firstKey = this.embeddingCache.keys().next().value;
149
- if (firstKey) {
150
- this.embeddingCache.delete(firstKey);
151
- }
152
- }
153
- this.embeddingCache.set(text, embedding);
154
- return embedding;
155
- }
156
- /**
157
- * Cache query result with TTL
158
- *
159
- * @param key Cache key
160
- * @param result Result to cache
161
- * @param ttl Time-to-live in milliseconds (default: 60s)
162
- */
163
- cacheQuery(key, result, ttl = 60000) {
164
- // LRU eviction if cache too large
165
- if (this.queryCache.size >= this.config.cacheSize) {
166
- const firstKey = this.queryCache.keys().next().value;
167
- if (firstKey) {
168
- this.queryCache.delete(firstKey);
169
- }
170
- }
171
- this.queryCache.set(key, {
172
- result,
173
- expires: Date.now() + ttl
174
- });
175
- }
176
- /**
177
- * Get cached query result
178
- *
179
- * @param key Cache key
180
- * @returns Cached result or null if expired/missing
181
- */
182
- getCachedQuery(key) {
183
- const cached = this.queryCache.get(key);
184
- if (!cached)
185
- return null;
186
- if (Date.now() > cached.expires) {
187
- this.queryCache.delete(key);
188
- return null;
189
- }
190
- return cached.result;
191
- }
192
- /**
193
- * Clear all caches
194
- */
195
- clearCaches() {
196
- this.queryCache.clear();
197
- this.embeddingCache.clear();
198
- }
199
- /**
200
- * Get memory pool statistics
201
- */
202
- getStats() {
203
- const dbStats = this.db.prepare(`
204
- SELECT
205
- (SELECT COUNT(*) FROM sqlite_master WHERE type='table') as tables,
206
- (SELECT page_count * page_size FROM pragma_page_count(), pragma_page_size()) as dbSize
207
- `).get();
208
- return {
209
- database: {
210
- path: this.config.dbPath,
211
- size: dbStats.dbSize,
212
- tables: dbStats.tables,
213
- walMode: this.db.pragma('journal_mode', { simple: true }),
214
- },
215
- cache: {
216
- queryCacheSize: this.queryCache.size,
217
- queryCacheMax: this.config.cacheSize,
218
- embeddingCacheSize: this.embeddingCache.size,
219
- embeddingCacheMax: this.config.embeddingCacheSize,
220
- },
221
- embedder: {
222
- model: this.config.embeddingModel,
223
- dimension: this.config.embeddingDimension,
224
- initialized: this.initialized,
225
- },
226
- memory: {
227
- heapUsed: Math.round(process.memoryUsage().heapUsed / 1024 / 1024),
228
- external: Math.round(process.memoryUsage().external / 1024 / 1024),
229
- }
230
- };
231
- }
232
- /**
233
- * Close database connection and cleanup
234
- */
235
- close() {
236
- this.clearCaches();
237
- this.db.close();
238
- this.initialized = false;
239
- }
240
- }
241
- // Export singleton getter for convenience
242
- export const getSharedMemoryPool = SharedMemoryPool.getInstance;
243
- //# sourceMappingURL=SharedMemoryPool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SharedMemoryPool.js","sourceRoot":"","sources":["../../src/memory/SharedMemoryPool.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared Memory Pool for AgentDB\n *\n * Provides a singleton memory pool that multiple agents can share:\n * - Single SQLite database connection (reduces overhead)\n * - Single embedding model instance (saves ~150MB per agent)\n * - Shared query cache (LRU with TTL)\n * - Shared embedding cache (deduplication)\n *\n * Memory savings: ~300-500MB for 4+ concurrent agents\n *\n * @example\n * ```typescript\n * import { SharedMemoryPool } from 'agentic-flow/memory';\n *\n * const pool = SharedMemoryPool.getInstance();\n * const db = pool.getDatabase();\n * const embedder = pool.getEmbedder();\n * ```\n */\n\n// Use better-sqlite3 for local SQLite\nimport Database, { Database as DatabaseInstance } from 'better-sqlite3';\nimport * as path from 'path';\nimport * as fs from 'fs';\n\n// Stub implementation for EmbeddingService\n// TODO: Replace with actual import when agentdb v3.x is released\nclass EmbeddingService {\n private model: string;\n private dimension: number;\n\n constructor(config: { model?: string; dimension?: number; cacheSize?: number; provider?: string }) {\n this.model = config.model || 'mock';\n this.dimension = config.dimension || 384;\n }\n\n async embed(text: string): Promise<Float32Array> {\n // Simple hash-based mock embedding\n const embedding = new Float32Array(this.dimension);\n let hash = 0;\n for (let i = 0; i < text.length; i++) {\n hash = (hash << 5) - hash + text.charCodeAt(i);\n hash = hash & hash;\n }\n for (let i = 0; i < this.dimension; i++) {\n const seed = hash + i * 2654435761;\n const x = Math.sin(seed) * 10000;\n embedding[i] = x - Math.floor(x);\n }\n // Normalize\n const norm = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));\n for (let i = 0; i < this.dimension; i++) {\n embedding[i] /= norm;\n }\n return embedding;\n }\n\n async initialize(): Promise<void> {}\n}\n\ninterface CachedQuery {\n result: any;\n expires: number;\n}\n\nexport interface SharedMemoryPoolConfig {\n dbPath?: string;\n cacheSize?: number;\n embeddingCacheSize?: number;\n embeddingModel?: string;\n embeddingDimension?: number;\n}\n\nexport class SharedMemoryPool {\n private static instance: SharedMemoryPool;\n private db: DatabaseInstance;\n private embedder: EmbeddingService;\n private queryCache: Map<string, CachedQuery>;\n private embeddingCache: Map<string, Float32Array>;\n private config: Required<SharedMemoryPoolConfig>;\n private initialized: boolean = false;\n\n private constructor(config: SharedMemoryPoolConfig = {}) {\n this.config = {\n dbPath: config.dbPath || './agentdb.db',\n cacheSize: config.cacheSize || 1000,\n embeddingCacheSize: config.embeddingCacheSize || 10000,\n embeddingModel: config.embeddingModel || 'Xenova/all-MiniLM-L6-v2',\n embeddingDimension: config.embeddingDimension || 384\n };\n\n // Initialize SQLite with optimized settings\n const dbDir = path.dirname(this.config.dbPath);\n if (!fs.existsSync(dbDir)) {\n fs.mkdirSync(dbDir, { recursive: true });\n }\n\n this.db = new Database(this.config.dbPath);\n\n // Optimize SQLite for performance\n this.db.pragma('journal_mode = WAL'); // Write-Ahead Logging\n this.db.pragma('synchronous = NORMAL'); // Balanced safety/performance\n this.db.pragma('cache_size = -65536'); // 64MB cache\n this.db.pragma('mmap_size = 268435456'); // 256MB memory-mapped I/O\n this.db.pragma('page_size = 8192'); // 8KB pages\n this.db.pragma('temp_store = MEMORY'); // Keep temp tables in memory\n\n // Initialize embedding service (will be lazy-loaded)\n this.embedder = new EmbeddingService({\n model: this.config.embeddingModel,\n dimension: this.config.embeddingDimension,\n provider: 'transformers'\n });\n\n // Initialize caches\n this.queryCache = new Map();\n this.embeddingCache = new Map();\n }\n\n /**\n * Get singleton instance of SharedMemoryPool\n */\n public static getInstance(config?: SharedMemoryPoolConfig): SharedMemoryPool {\n if (!SharedMemoryPool.instance) {\n SharedMemoryPool.instance = new SharedMemoryPool(config);\n }\n return SharedMemoryPool.instance;\n }\n\n /**\n * Reset singleton instance (for testing)\n */\n public static resetInstance(): void {\n if (SharedMemoryPool.instance) {\n SharedMemoryPool.instance.close();\n SharedMemoryPool.instance = null as any;\n }\n }\n\n /**\n * Ensure embedding service is initialized\n */\n public async ensureInitialized(): Promise<void> {\n if (!this.initialized) {\n await this.embedder.initialize();\n this.initialized = true;\n }\n }\n\n /**\n * Get shared database connection\n */\n public getDatabase(): DatabaseInstance {\n return this.db;\n }\n\n /**\n * Get shared embedding service\n */\n public getEmbedder(): EmbeddingService {\n return this.embedder;\n }\n\n /**\n * Get or compute embedding with caching\n *\n * @param text Text to embed\n * @returns Cached or newly computed embedding\n */\n public async getCachedEmbedding(text: string): Promise<Float32Array> {\n const cached = this.embeddingCache.get(text);\n if (cached) return cached;\n\n await this.ensureInitialized();\n const embedding = await this.embedder.embed(text);\n\n // LRU eviction if cache too large\n if (this.embeddingCache.size >= this.config.embeddingCacheSize) {\n const firstKey = this.embeddingCache.keys().next().value;\n if (firstKey) {\n this.embeddingCache.delete(firstKey);\n }\n }\n\n this.embeddingCache.set(text, embedding);\n return embedding;\n }\n\n /**\n * Cache query result with TTL\n *\n * @param key Cache key\n * @param result Result to cache\n * @param ttl Time-to-live in milliseconds (default: 60s)\n */\n public cacheQuery(key: string, result: any, ttl: number = 60000): void {\n // LRU eviction if cache too large\n if (this.queryCache.size >= this.config.cacheSize) {\n const firstKey = this.queryCache.keys().next().value;\n if (firstKey) {\n this.queryCache.delete(firstKey);\n }\n }\n\n this.queryCache.set(key, {\n result,\n expires: Date.now() + ttl\n });\n }\n\n /**\n * Get cached query result\n *\n * @param key Cache key\n * @returns Cached result or null if expired/missing\n */\n public getCachedQuery(key: string): any | null {\n const cached = this.queryCache.get(key);\n if (!cached) return null;\n\n if (Date.now() > cached.expires) {\n this.queryCache.delete(key);\n return null;\n }\n\n return cached.result;\n }\n\n /**\n * Clear all caches\n */\n public clearCaches(): void {\n this.queryCache.clear();\n this.embeddingCache.clear();\n }\n\n /**\n * Get memory pool statistics\n */\n public getStats() {\n const dbStats = this.db.prepare(`\n SELECT\n (SELECT COUNT(*) FROM sqlite_master WHERE type='table') as tables,\n (SELECT page_count * page_size FROM pragma_page_count(), pragma_page_size()) as dbSize\n `).get() as any;\n\n return {\n database: {\n path: this.config.dbPath,\n size: dbStats.dbSize,\n tables: dbStats.tables,\n walMode: this.db.pragma('journal_mode', { simple: true }),\n },\n cache: {\n queryCacheSize: this.queryCache.size,\n queryCacheMax: this.config.cacheSize,\n embeddingCacheSize: this.embeddingCache.size,\n embeddingCacheMax: this.config.embeddingCacheSize,\n },\n embedder: {\n model: this.config.embeddingModel,\n dimension: this.config.embeddingDimension,\n initialized: this.initialized,\n },\n memory: {\n heapUsed: Math.round(process.memoryUsage().heapUsed / 1024 / 1024),\n external: Math.round(process.memoryUsage().external / 1024 / 1024),\n }\n };\n }\n\n /**\n * Close database connection and cleanup\n */\n public close(): void {\n this.clearCaches();\n this.db.close();\n this.initialized = false;\n }\n}\n\n// Export singleton getter for convenience\nexport const getSharedMemoryPool = SharedMemoryPool.getInstance;\n"]}
@@ -1,8 +0,0 @@
1
- /**
2
- * Memory Management Exports
3
- *
4
- * Provides shared memory pool and optimization utilities
5
- */
6
- export { SharedMemoryPool, getSharedMemoryPool } from './SharedMemoryPool.js';
7
- export type { SharedMemoryPoolConfig } from './SharedMemoryPool.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Memory Management Exports
3
- *
4
- * Provides shared memory pool and optimization utilities
5
- */
6
- export { SharedMemoryPool, getSharedMemoryPool } from './SharedMemoryPool.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["/**\n * Memory Management Exports\n *\n * Provides shared memory pool and optimization utilities\n */\n\nexport { SharedMemoryPool, getSharedMemoryPool } from './SharedMemoryPool.js';\nexport type { SharedMemoryPoolConfig } from './SharedMemoryPool.js';\n"]}