agentic-qe 2.7.4 → 2.8.1

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 (647) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/README.md +67 -2
  3. package/dist/agents/BaseAgent.d.ts +128 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +256 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/agent/spawn.d.ts +12 -1
  8. package/dist/cli/commands/agent/spawn.d.ts.map +1 -1
  9. package/dist/cli/commands/agent/spawn.js +95 -8
  10. package/dist/cli/commands/agent/spawn.js.map +1 -1
  11. package/dist/cli/commands/supabase/index.d.ts +20 -0
  12. package/dist/cli/commands/supabase/index.d.ts.map +1 -0
  13. package/dist/cli/commands/supabase/index.js +632 -0
  14. package/dist/cli/commands/supabase/index.js.map +1 -0
  15. package/dist/cli/index.js +94 -0
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  18. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts +134 -0
  19. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts.map +1 -0
  20. package/dist/edge/adapters/BrowserHNSWAdapter.js +484 -0
  21. package/dist/edge/adapters/BrowserHNSWAdapter.js.map +1 -0
  22. package/dist/edge/adapters/IndexedDBStorage.d.ts +114 -0
  23. package/dist/edge/adapters/IndexedDBStorage.d.ts.map +1 -0
  24. package/dist/edge/adapters/IndexedDBStorage.js +478 -0
  25. package/dist/edge/adapters/IndexedDBStorage.js.map +1 -0
  26. package/dist/edge/adapters/index.d.ts +12 -0
  27. package/dist/edge/adapters/index.d.ts.map +1 -0
  28. package/dist/edge/adapters/index.js +22 -0
  29. package/dist/edge/adapters/index.js.map +1 -0
  30. package/dist/edge/browser/BrowserAgent.d.ts +241 -0
  31. package/dist/edge/browser/BrowserAgent.d.ts.map +1 -0
  32. package/dist/edge/browser/BrowserAgent.js +743 -0
  33. package/dist/edge/browser/BrowserAgent.js.map +1 -0
  34. package/dist/edge/index.d.ts +34 -0
  35. package/dist/edge/index.d.ts.map +1 -0
  36. package/dist/edge/index.js +114 -0
  37. package/dist/edge/index.js.map +1 -0
  38. package/dist/edge/p2p/coordination/CoordinationManager.d.ts +181 -0
  39. package/dist/edge/p2p/coordination/CoordinationManager.d.ts.map +1 -0
  40. package/dist/edge/p2p/coordination/CoordinationManager.js +851 -0
  41. package/dist/edge/p2p/coordination/CoordinationManager.js.map +1 -0
  42. package/dist/edge/p2p/coordination/HealthMonitor.d.ts +143 -0
  43. package/dist/edge/p2p/coordination/HealthMonitor.d.ts.map +1 -0
  44. package/dist/edge/p2p/coordination/HealthMonitor.js +432 -0
  45. package/dist/edge/p2p/coordination/HealthMonitor.js.map +1 -0
  46. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts +146 -0
  47. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts.map +1 -0
  48. package/dist/edge/p2p/coordination/SyncOrchestrator.js +783 -0
  49. package/dist/edge/p2p/coordination/SyncOrchestrator.js.map +1 -0
  50. package/dist/edge/p2p/coordination/index.d.ts +70 -0
  51. package/dist/edge/p2p/coordination/index.d.ts.map +1 -0
  52. package/dist/edge/p2p/coordination/index.js +107 -0
  53. package/dist/edge/p2p/coordination/index.js.map +1 -0
  54. package/dist/edge/p2p/coordination/types.d.ts +572 -0
  55. package/dist/edge/p2p/coordination/types.d.ts.map +1 -0
  56. package/dist/edge/p2p/coordination/types.js +366 -0
  57. package/dist/edge/p2p/coordination/types.js.map +1 -0
  58. package/dist/edge/p2p/crdt/CRDTStore.d.ts +324 -0
  59. package/dist/edge/p2p/crdt/CRDTStore.d.ts.map +1 -0
  60. package/dist/edge/p2p/crdt/CRDTStore.js +839 -0
  61. package/dist/edge/p2p/crdt/CRDTStore.js.map +1 -0
  62. package/dist/edge/p2p/crdt/GCounter.d.ts +173 -0
  63. package/dist/edge/p2p/crdt/GCounter.d.ts.map +1 -0
  64. package/dist/edge/p2p/crdt/GCounter.js +394 -0
  65. package/dist/edge/p2p/crdt/GCounter.js.map +1 -0
  66. package/dist/edge/p2p/crdt/LWWRegister.d.ts +200 -0
  67. package/dist/edge/p2p/crdt/LWWRegister.d.ts.map +1 -0
  68. package/dist/edge/p2p/crdt/LWWRegister.js +456 -0
  69. package/dist/edge/p2p/crdt/LWWRegister.js.map +1 -0
  70. package/dist/edge/p2p/crdt/ORSet.d.ts +232 -0
  71. package/dist/edge/p2p/crdt/ORSet.d.ts.map +1 -0
  72. package/dist/edge/p2p/crdt/ORSet.js +723 -0
  73. package/dist/edge/p2p/crdt/ORSet.js.map +1 -0
  74. package/dist/edge/p2p/crdt/PatternCRDT.d.ts +366 -0
  75. package/dist/edge/p2p/crdt/PatternCRDT.d.ts.map +1 -0
  76. package/dist/edge/p2p/crdt/PatternCRDT.js +838 -0
  77. package/dist/edge/p2p/crdt/PatternCRDT.js.map +1 -0
  78. package/dist/edge/p2p/crdt/VectorClock.d.ts +274 -0
  79. package/dist/edge/p2p/crdt/VectorClock.d.ts.map +1 -0
  80. package/dist/edge/p2p/crdt/VectorClock.js +499 -0
  81. package/dist/edge/p2p/crdt/VectorClock.js.map +1 -0
  82. package/dist/edge/p2p/crdt/index.d.ts +87 -0
  83. package/dist/edge/p2p/crdt/index.d.ts.map +1 -0
  84. package/dist/edge/p2p/crdt/index.js +120 -0
  85. package/dist/edge/p2p/crdt/index.js.map +1 -0
  86. package/dist/edge/p2p/crdt/types.d.ts +667 -0
  87. package/dist/edge/p2p/crdt/types.d.ts.map +1 -0
  88. package/dist/edge/p2p/crdt/types.js +208 -0
  89. package/dist/edge/p2p/crdt/types.js.map +1 -0
  90. package/dist/edge/p2p/crypto/Identity.d.ts +139 -0
  91. package/dist/edge/p2p/crypto/Identity.d.ts.map +1 -0
  92. package/dist/edge/p2p/crypto/Identity.js +449 -0
  93. package/dist/edge/p2p/crypto/Identity.js.map +1 -0
  94. package/dist/edge/p2p/crypto/KeyManager.d.ts +196 -0
  95. package/dist/edge/p2p/crypto/KeyManager.d.ts.map +1 -0
  96. package/dist/edge/p2p/crypto/KeyManager.js +576 -0
  97. package/dist/edge/p2p/crypto/KeyManager.js.map +1 -0
  98. package/dist/edge/p2p/crypto/Signer.d.ts +164 -0
  99. package/dist/edge/p2p/crypto/Signer.d.ts.map +1 -0
  100. package/dist/edge/p2p/crypto/Signer.js +357 -0
  101. package/dist/edge/p2p/crypto/Signer.js.map +1 -0
  102. package/dist/edge/p2p/crypto/index.d.ts +90 -0
  103. package/dist/edge/p2p/crypto/index.d.ts.map +1 -0
  104. package/dist/edge/p2p/crypto/index.js +158 -0
  105. package/dist/edge/p2p/crypto/index.js.map +1 -0
  106. package/dist/edge/p2p/crypto/types.d.ts +217 -0
  107. package/dist/edge/p2p/crypto/types.d.ts.map +1 -0
  108. package/dist/edge/p2p/crypto/types.js +42 -0
  109. package/dist/edge/p2p/crypto/types.js.map +1 -0
  110. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts +270 -0
  111. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts.map +1 -0
  112. package/dist/edge/p2p/federated/FederatedCoordinator.js +824 -0
  113. package/dist/edge/p2p/federated/FederatedCoordinator.js.map +1 -0
  114. package/dist/edge/p2p/federated/FederatedRound.d.ts +295 -0
  115. package/dist/edge/p2p/federated/FederatedRound.d.ts.map +1 -0
  116. package/dist/edge/p2p/federated/FederatedRound.js +819 -0
  117. package/dist/edge/p2p/federated/FederatedRound.js.map +1 -0
  118. package/dist/edge/p2p/federated/GradientAggregator.d.ts +226 -0
  119. package/dist/edge/p2p/federated/GradientAggregator.d.ts.map +1 -0
  120. package/dist/edge/p2p/federated/GradientAggregator.js +826 -0
  121. package/dist/edge/p2p/federated/GradientAggregator.js.map +1 -0
  122. package/dist/edge/p2p/federated/ModelManager.d.ts +248 -0
  123. package/dist/edge/p2p/federated/ModelManager.d.ts.map +1 -0
  124. package/dist/edge/p2p/federated/ModelManager.js +724 -0
  125. package/dist/edge/p2p/federated/ModelManager.js.map +1 -0
  126. package/dist/edge/p2p/federated/index.d.ts +65 -0
  127. package/dist/edge/p2p/federated/index.d.ts.map +1 -0
  128. package/dist/edge/p2p/federated/index.js +110 -0
  129. package/dist/edge/p2p/federated/index.js.map +1 -0
  130. package/dist/edge/p2p/federated/types.d.ts +905 -0
  131. package/dist/edge/p2p/federated/types.d.ts.map +1 -0
  132. package/dist/edge/p2p/federated/types.js +339 -0
  133. package/dist/edge/p2p/federated/types.js.map +1 -0
  134. package/dist/edge/p2p/index.d.ts +156 -0
  135. package/dist/edge/p2p/index.d.ts.map +1 -0
  136. package/dist/edge/p2p/index.js +242 -0
  137. package/dist/edge/p2p/index.js.map +1 -0
  138. package/dist/edge/p2p/nat/ConnectivityTester.d.ts +128 -0
  139. package/dist/edge/p2p/nat/ConnectivityTester.d.ts.map +1 -0
  140. package/dist/edge/p2p/nat/ConnectivityTester.js +560 -0
  141. package/dist/edge/p2p/nat/ConnectivityTester.js.map +1 -0
  142. package/dist/edge/p2p/nat/HolePuncher.d.ts +159 -0
  143. package/dist/edge/p2p/nat/HolePuncher.d.ts.map +1 -0
  144. package/dist/edge/p2p/nat/HolePuncher.js +569 -0
  145. package/dist/edge/p2p/nat/HolePuncher.js.map +1 -0
  146. package/dist/edge/p2p/nat/NATDetector.d.ts +109 -0
  147. package/dist/edge/p2p/nat/NATDetector.d.ts.map +1 -0
  148. package/dist/edge/p2p/nat/NATDetector.js +472 -0
  149. package/dist/edge/p2p/nat/NATDetector.js.map +1 -0
  150. package/dist/edge/p2p/nat/TURNManager.d.ts +158 -0
  151. package/dist/edge/p2p/nat/TURNManager.d.ts.map +1 -0
  152. package/dist/edge/p2p/nat/TURNManager.js +547 -0
  153. package/dist/edge/p2p/nat/TURNManager.js.map +1 -0
  154. package/dist/edge/p2p/nat/index.d.ts +74 -0
  155. package/dist/edge/p2p/nat/index.d.ts.map +1 -0
  156. package/dist/edge/p2p/nat/index.js +104 -0
  157. package/dist/edge/p2p/nat/index.js.map +1 -0
  158. package/dist/edge/p2p/nat/types.d.ts +583 -0
  159. package/dist/edge/p2p/nat/types.d.ts.map +1 -0
  160. package/dist/edge/p2p/nat/types.js +267 -0
  161. package/dist/edge/p2p/nat/types.js.map +1 -0
  162. package/dist/edge/p2p/protocol/AgentChannel.d.ts +333 -0
  163. package/dist/edge/p2p/protocol/AgentChannel.d.ts.map +1 -0
  164. package/dist/edge/p2p/protocol/AgentChannel.js +914 -0
  165. package/dist/edge/p2p/protocol/AgentChannel.js.map +1 -0
  166. package/dist/edge/p2p/protocol/MessageEncoder.d.ts +147 -0
  167. package/dist/edge/p2p/protocol/MessageEncoder.d.ts.map +1 -0
  168. package/dist/edge/p2p/protocol/MessageEncoder.js +738 -0
  169. package/dist/edge/p2p/protocol/MessageEncoder.js.map +1 -0
  170. package/dist/edge/p2p/protocol/MessageRouter.d.ts +266 -0
  171. package/dist/edge/p2p/protocol/MessageRouter.d.ts.map +1 -0
  172. package/dist/edge/p2p/protocol/MessageRouter.js +808 -0
  173. package/dist/edge/p2p/protocol/MessageRouter.js.map +1 -0
  174. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts +309 -0
  175. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts.map +1 -0
  176. package/dist/edge/p2p/protocol/ProtocolHandler.js +930 -0
  177. package/dist/edge/p2p/protocol/ProtocolHandler.js.map +1 -0
  178. package/dist/edge/p2p/protocol/index.d.ts +114 -0
  179. package/dist/edge/p2p/protocol/index.d.ts.map +1 -0
  180. package/dist/edge/p2p/protocol/index.js +206 -0
  181. package/dist/edge/p2p/protocol/index.js.map +1 -0
  182. package/dist/edge/p2p/protocol/types.d.ts +737 -0
  183. package/dist/edge/p2p/protocol/types.d.ts.map +1 -0
  184. package/dist/edge/p2p/protocol/types.js +490 -0
  185. package/dist/edge/p2p/protocol/types.js.map +1 -0
  186. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts +284 -0
  187. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts.map +1 -0
  188. package/dist/edge/p2p/sharing/PatternBroadcaster.js +644 -0
  189. package/dist/edge/p2p/sharing/PatternBroadcaster.js.map +1 -0
  190. package/dist/edge/p2p/sharing/PatternIndex.d.ts +168 -0
  191. package/dist/edge/p2p/sharing/PatternIndex.d.ts.map +1 -0
  192. package/dist/edge/p2p/sharing/PatternIndex.js +781 -0
  193. package/dist/edge/p2p/sharing/PatternIndex.js.map +1 -0
  194. package/dist/edge/p2p/sharing/PatternSerializer.d.ts +163 -0
  195. package/dist/edge/p2p/sharing/PatternSerializer.d.ts.map +1 -0
  196. package/dist/edge/p2p/sharing/PatternSerializer.js +696 -0
  197. package/dist/edge/p2p/sharing/PatternSerializer.js.map +1 -0
  198. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts +242 -0
  199. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts.map +1 -0
  200. package/dist/edge/p2p/sharing/PatternSyncManager.js +859 -0
  201. package/dist/edge/p2p/sharing/PatternSyncManager.js.map +1 -0
  202. package/dist/edge/p2p/sharing/index.d.ts +90 -0
  203. package/dist/edge/p2p/sharing/index.d.ts.map +1 -0
  204. package/dist/edge/p2p/sharing/index.js +152 -0
  205. package/dist/edge/p2p/sharing/index.js.map +1 -0
  206. package/dist/edge/p2p/sharing/types.d.ts +796 -0
  207. package/dist/edge/p2p/sharing/types.d.ts.map +1 -0
  208. package/dist/edge/p2p/sharing/types.js +264 -0
  209. package/dist/edge/p2p/sharing/types.js.map +1 -0
  210. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts +218 -0
  211. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts.map +1 -0
  212. package/dist/edge/p2p/webrtc/ConnectionPool.js +562 -0
  213. package/dist/edge/p2p/webrtc/ConnectionPool.js.map +1 -0
  214. package/dist/edge/p2p/webrtc/ICEManager.d.ts +171 -0
  215. package/dist/edge/p2p/webrtc/ICEManager.d.ts.map +1 -0
  216. package/dist/edge/p2p/webrtc/ICEManager.js +490 -0
  217. package/dist/edge/p2p/webrtc/ICEManager.js.map +1 -0
  218. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts +159 -0
  219. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts.map +1 -0
  220. package/dist/edge/p2p/webrtc/PeerConnectionManager.js +735 -0
  221. package/dist/edge/p2p/webrtc/PeerConnectionManager.js.map +1 -0
  222. package/dist/edge/p2p/webrtc/SignalingClient.d.ts +191 -0
  223. package/dist/edge/p2p/webrtc/SignalingClient.d.ts.map +1 -0
  224. package/dist/edge/p2p/webrtc/SignalingClient.js +608 -0
  225. package/dist/edge/p2p/webrtc/SignalingClient.js.map +1 -0
  226. package/dist/edge/p2p/webrtc/index.d.ts +158 -0
  227. package/dist/edge/p2p/webrtc/index.d.ts.map +1 -0
  228. package/dist/edge/p2p/webrtc/index.js +164 -0
  229. package/dist/edge/p2p/webrtc/index.js.map +1 -0
  230. package/dist/edge/p2p/webrtc/types.d.ts +665 -0
  231. package/dist/edge/p2p/webrtc/types.d.ts.map +1 -0
  232. package/dist/edge/p2p/webrtc/types.js +245 -0
  233. package/dist/edge/p2p/webrtc/types.js.map +1 -0
  234. package/dist/edge/server/AgentSpawnAPI.d.ts +98 -0
  235. package/dist/edge/server/AgentSpawnAPI.d.ts.map +1 -0
  236. package/dist/edge/server/AgentSpawnAPI.js +264 -0
  237. package/dist/edge/server/AgentSpawnAPI.js.map +1 -0
  238. package/dist/edge/server/SignalingServer.d.ts +71 -0
  239. package/dist/edge/server/SignalingServer.d.ts.map +1 -0
  240. package/dist/edge/server/SignalingServer.js +429 -0
  241. package/dist/edge/server/SignalingServer.js.map +1 -0
  242. package/dist/edge/server/index.d.ts +64 -0
  243. package/dist/edge/server/index.d.ts.map +1 -0
  244. package/dist/edge/server/index.js +318 -0
  245. package/dist/edge/server/index.js.map +1 -0
  246. package/dist/edge/types/browser-agent.types.d.ts +455 -0
  247. package/dist/edge/types/browser-agent.types.d.ts.map +1 -0
  248. package/dist/edge/types/browser-agent.types.js +116 -0
  249. package/dist/edge/types/browser-agent.types.js.map +1 -0
  250. package/dist/edge/types/index.d.ts +11 -0
  251. package/dist/edge/types/index.d.ts.map +1 -0
  252. package/dist/edge/types/index.js +17 -0
  253. package/dist/edge/types/index.js.map +1 -0
  254. package/dist/edge/types/storage.types.d.ts +207 -0
  255. package/dist/edge/types/storage.types.d.ts.map +1 -0
  256. package/dist/edge/types/storage.types.js +47 -0
  257. package/dist/edge/types/storage.types.js.map +1 -0
  258. package/dist/edge/wasm/shims.d.ts +224 -0
  259. package/dist/edge/wasm/shims.d.ts.map +1 -0
  260. package/dist/edge/wasm/shims.js +667 -0
  261. package/dist/edge/wasm/shims.js.map +1 -0
  262. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +33 -0
  263. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -0
  264. package/dist/mcp/handlers/NewDomainToolsHandler.js +305 -0
  265. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -0
  266. package/dist/mcp/handlers/filtered/index.d.ts +15 -19
  267. package/dist/mcp/handlers/filtered/index.d.ts.map +1 -1
  268. package/dist/mcp/handlers/filtered/index.js +16 -27
  269. package/dist/mcp/handlers/filtered/index.js.map +1 -1
  270. package/dist/mcp/handlers/integration/index.d.ts +5 -4
  271. package/dist/mcp/handlers/integration/index.d.ts.map +1 -1
  272. package/dist/mcp/handlers/integration/index.js +7 -7
  273. package/dist/mcp/handlers/integration/index.js.map +1 -1
  274. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  275. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  276. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  277. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  278. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  279. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  280. package/dist/mcp/handlers/ruvector/index.js +9 -0
  281. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  282. package/dist/mcp/server-instructions.d.ts +1 -1
  283. package/dist/mcp/server-instructions.js +1 -1
  284. package/dist/mcp/server.d.ts.map +1 -1
  285. package/dist/mcp/server.js +114 -22
  286. package/dist/mcp/server.js.map +1 -1
  287. package/dist/mcp/tools.d.ts +8 -0
  288. package/dist/mcp/tools.d.ts.map +1 -1
  289. package/dist/mcp/tools.js +412 -1
  290. package/dist/mcp/tools.js.map +1 -1
  291. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  292. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  293. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  294. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  295. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  296. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  297. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  298. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  299. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  300. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  301. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  302. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  303. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  304. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  305. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  306. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  307. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  308. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  309. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  310. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  311. package/dist/nervous-system/index.d.ts +25 -0
  312. package/dist/nervous-system/index.d.ts.map +1 -0
  313. package/dist/nervous-system/index.js +80 -0
  314. package/dist/nervous-system/index.js.map +1 -0
  315. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  316. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  317. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  318. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  319. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  320. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  321. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  322. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  323. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  324. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  325. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  326. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  327. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  328. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  329. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  330. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  331. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  332. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  333. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  334. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  335. package/dist/nervous-system/integration/index.d.ts +22 -0
  336. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  337. package/dist/nervous-system/integration/index.js +44 -0
  338. package/dist/nervous-system/integration/index.js.map +1 -0
  339. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  340. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  341. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  342. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  343. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  344. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  345. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  346. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  347. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  348. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  349. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  350. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  351. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  352. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  353. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  354. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  355. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  356. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  357. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  358. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  359. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  360. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  361. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  362. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  363. package/dist/nervous-system/persistence/index.d.ts +22 -0
  364. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  365. package/dist/nervous-system/persistence/index.js +45 -0
  366. package/dist/nervous-system/persistence/index.js.map +1 -0
  367. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  368. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  369. package/dist/nervous-system/wasm-loader.js +188 -0
  370. package/dist/nervous-system/wasm-loader.js.map +1 -0
  371. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  372. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  373. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  374. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  375. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  376. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  377. package/dist/persistence/IPersistenceProvider.js +11 -0
  378. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  379. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  380. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  381. package/dist/persistence/SupabaseConfig.js +277 -0
  382. package/dist/persistence/SupabaseConfig.js.map +1 -0
  383. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  384. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  385. package/dist/persistence/SupabasePersistenceProvider.js +955 -0
  386. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  387. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  388. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  389. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  390. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  391. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  392. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  393. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  394. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  395. package/dist/persistence/adapters/index.d.ts +11 -0
  396. package/dist/persistence/adapters/index.d.ts.map +1 -0
  397. package/dist/persistence/adapters/index.js +20 -0
  398. package/dist/persistence/adapters/index.js.map +1 -0
  399. package/dist/persistence/index.d.ts +14 -0
  400. package/dist/persistence/index.d.ts.map +1 -1
  401. package/dist/persistence/index.js +36 -1
  402. package/dist/persistence/index.js.map +1 -1
  403. package/dist/planning/GOAPPlanner.d.ts +1 -0
  404. package/dist/planning/GOAPPlanner.d.ts.map +1 -1
  405. package/dist/planning/GOAPPlanner.js +12 -0
  406. package/dist/planning/GOAPPlanner.js.map +1 -1
  407. package/package.json +31 -8
  408. package/dist/alerting/AlertManager.d.ts +0 -120
  409. package/dist/alerting/AlertManager.d.ts.map +0 -1
  410. package/dist/alerting/AlertManager.js +0 -345
  411. package/dist/alerting/AlertManager.js.map +0 -1
  412. package/dist/alerting/FeedbackRouter.d.ts +0 -98
  413. package/dist/alerting/FeedbackRouter.d.ts.map +0 -1
  414. package/dist/alerting/FeedbackRouter.js +0 -331
  415. package/dist/alerting/FeedbackRouter.js.map +0 -1
  416. package/dist/alerting/StrategyApplicator.d.ts +0 -120
  417. package/dist/alerting/StrategyApplicator.d.ts.map +0 -1
  418. package/dist/alerting/StrategyApplicator.js +0 -299
  419. package/dist/alerting/StrategyApplicator.js.map +0 -1
  420. package/dist/alerting/index.d.ts +0 -68
  421. package/dist/alerting/index.d.ts.map +0 -1
  422. package/dist/alerting/index.js +0 -112
  423. package/dist/alerting/index.js.map +0 -1
  424. package/dist/alerting/types.d.ts +0 -118
  425. package/dist/alerting/types.d.ts.map +0 -1
  426. package/dist/alerting/types.js +0 -11
  427. package/dist/alerting/types.js.map +0 -1
  428. package/dist/cli/commands/fleet/backup.d.ts +0 -49
  429. package/dist/cli/commands/fleet/backup.d.ts.map +0 -1
  430. package/dist/cli/commands/fleet/backup.js +0 -88
  431. package/dist/cli/commands/fleet/backup.js.map +0 -1
  432. package/dist/cli/commands/fleet/health.d.ts +0 -154
  433. package/dist/cli/commands/fleet/health.d.ts.map +0 -1
  434. package/dist/cli/commands/fleet/health.js +0 -483
  435. package/dist/cli/commands/fleet/health.js.map +0 -1
  436. package/dist/cli/commands/fleet/init.d.ts +0 -11
  437. package/dist/cli/commands/fleet/init.d.ts.map +0 -1
  438. package/dist/cli/commands/fleet/init.js +0 -91
  439. package/dist/cli/commands/fleet/init.js.map +0 -1
  440. package/dist/cli/commands/fleet/logs.d.ts +0 -21
  441. package/dist/cli/commands/fleet/logs.d.ts.map +0 -1
  442. package/dist/cli/commands/fleet/logs.js +0 -267
  443. package/dist/cli/commands/fleet/logs.js.map +0 -1
  444. package/dist/cli/commands/fleet/metrics.d.ts +0 -27
  445. package/dist/cli/commands/fleet/metrics.d.ts.map +0 -1
  446. package/dist/cli/commands/fleet/metrics.js +0 -369
  447. package/dist/cli/commands/fleet/metrics.js.map +0 -1
  448. package/dist/cli/commands/fleet/monitor.d.ts +0 -18
  449. package/dist/cli/commands/fleet/monitor.d.ts.map +0 -1
  450. package/dist/cli/commands/fleet/monitor.js +0 -237
  451. package/dist/cli/commands/fleet/monitor.js.map +0 -1
  452. package/dist/cli/commands/fleet/optimize.d.ts +0 -42
  453. package/dist/cli/commands/fleet/optimize.d.ts.map +0 -1
  454. package/dist/cli/commands/fleet/optimize.js +0 -135
  455. package/dist/cli/commands/fleet/optimize.js.map +0 -1
  456. package/dist/cli/commands/fleet/recover.d.ts +0 -22
  457. package/dist/cli/commands/fleet/recover.d.ts.map +0 -1
  458. package/dist/cli/commands/fleet/recover.js +0 -99
  459. package/dist/cli/commands/fleet/recover.js.map +0 -1
  460. package/dist/cli/commands/fleet/restart.d.ts +0 -18
  461. package/dist/cli/commands/fleet/restart.d.ts.map +0 -1
  462. package/dist/cli/commands/fleet/restart.js +0 -290
  463. package/dist/cli/commands/fleet/restart.js.map +0 -1
  464. package/dist/cli/commands/fleet/scale.d.ts +0 -9
  465. package/dist/cli/commands/fleet/scale.d.ts.map +0 -1
  466. package/dist/cli/commands/fleet/scale.js +0 -77
  467. package/dist/cli/commands/fleet/scale.js.map +0 -1
  468. package/dist/cli/commands/fleet/shutdown.d.ts +0 -19
  469. package/dist/cli/commands/fleet/shutdown.d.ts.map +0 -1
  470. package/dist/cli/commands/fleet/shutdown.js +0 -307
  471. package/dist/cli/commands/fleet/shutdown.js.map +0 -1
  472. package/dist/cli/commands/fleet/status.d.ts +0 -10
  473. package/dist/cli/commands/fleet/status.d.ts.map +0 -1
  474. package/dist/cli/commands/fleet/status.js +0 -97
  475. package/dist/cli/commands/fleet/status.js.map +0 -1
  476. package/dist/cli/commands/fleet/topology.d.ts +0 -23
  477. package/dist/cli/commands/fleet/topology.d.ts.map +0 -1
  478. package/dist/cli/commands/fleet/topology.js +0 -376
  479. package/dist/cli/commands/fleet/topology.js.map +0 -1
  480. package/dist/cli/commands/monitor/alerts.d.ts +0 -45
  481. package/dist/cli/commands/monitor/alerts.d.ts.map +0 -1
  482. package/dist/cli/commands/monitor/alerts.js +0 -168
  483. package/dist/cli/commands/monitor/alerts.js.map +0 -1
  484. package/dist/cli/commands/monitor/analyze.d.ts +0 -49
  485. package/dist/cli/commands/monitor/analyze.d.ts.map +0 -1
  486. package/dist/cli/commands/monitor/analyze.js +0 -209
  487. package/dist/cli/commands/monitor/analyze.js.map +0 -1
  488. package/dist/cli/commands/monitor/compare.d.ts +0 -38
  489. package/dist/cli/commands/monitor/compare.d.ts.map +0 -1
  490. package/dist/cli/commands/monitor/compare.js +0 -177
  491. package/dist/cli/commands/monitor/compare.js.map +0 -1
  492. package/dist/cli/commands/monitor/dashboard.d.ts +0 -34
  493. package/dist/cli/commands/monitor/dashboard.d.ts.map +0 -1
  494. package/dist/cli/commands/monitor/dashboard.js +0 -157
  495. package/dist/cli/commands/monitor/dashboard.js.map +0 -1
  496. package/dist/cli/commands/monitor/export.d.ts +0 -36
  497. package/dist/cli/commands/monitor/export.d.ts.map +0 -1
  498. package/dist/cli/commands/monitor/export.js +0 -157
  499. package/dist/cli/commands/monitor/export.js.map +0 -1
  500. package/dist/cli/commands/monitor/index.d.ts +0 -11
  501. package/dist/cli/commands/monitor/index.d.ts.map +0 -1
  502. package/dist/cli/commands/monitor/index.js +0 -14
  503. package/dist/cli/commands/monitor/index.js.map +0 -1
  504. package/dist/cli/commands/quality/baseline.d.ts +0 -27
  505. package/dist/cli/commands/quality/baseline.d.ts.map +0 -1
  506. package/dist/cli/commands/quality/baseline.js +0 -124
  507. package/dist/cli/commands/quality/baseline.js.map +0 -1
  508. package/dist/cli/commands/quality/compare.d.ts +0 -36
  509. package/dist/cli/commands/quality/compare.d.ts.map +0 -1
  510. package/dist/cli/commands/quality/compare.js +0 -136
  511. package/dist/cli/commands/quality/compare.js.map +0 -1
  512. package/dist/cli/commands/quality/decision.d.ts +0 -81
  513. package/dist/cli/commands/quality/decision.d.ts.map +0 -1
  514. package/dist/cli/commands/quality/decision.js +0 -319
  515. package/dist/cli/commands/quality/decision.js.map +0 -1
  516. package/dist/cli/commands/quality/gate.d.ts +0 -47
  517. package/dist/cli/commands/quality/gate.d.ts.map +0 -1
  518. package/dist/cli/commands/quality/gate.js +0 -205
  519. package/dist/cli/commands/quality/gate.js.map +0 -1
  520. package/dist/cli/commands/quality/index.d.ts +0 -17
  521. package/dist/cli/commands/quality/index.d.ts.map +0 -1
  522. package/dist/cli/commands/quality/index.js +0 -41
  523. package/dist/cli/commands/quality/index.js.map +0 -1
  524. package/dist/cli/commands/quality/policy.d.ts +0 -57
  525. package/dist/cli/commands/quality/policy.d.ts.map +0 -1
  526. package/dist/cli/commands/quality/policy.js +0 -359
  527. package/dist/cli/commands/quality/policy.js.map +0 -1
  528. package/dist/cli/commands/quality/risk.d.ts +0 -41
  529. package/dist/cli/commands/quality/risk.d.ts.map +0 -1
  530. package/dist/cli/commands/quality/risk.js +0 -255
  531. package/dist/cli/commands/quality/risk.js.map +0 -1
  532. package/dist/cli/commands/quality/trends.d.ts +0 -40
  533. package/dist/cli/commands/quality/trends.d.ts.map +0 -1
  534. package/dist/cli/commands/quality/trends.js +0 -122
  535. package/dist/cli/commands/quality/trends.js.map +0 -1
  536. package/dist/cli/commands/quality/validate.d.ts +0 -44
  537. package/dist/cli/commands/quality/validate.d.ts.map +0 -1
  538. package/dist/cli/commands/quality/validate.js +0 -234
  539. package/dist/cli/commands/quality/validate.js.map +0 -1
  540. package/dist/cli/commands/test/analyze-failures.d.ts +0 -39
  541. package/dist/cli/commands/test/analyze-failures.d.ts.map +0 -1
  542. package/dist/cli/commands/test/analyze-failures.js +0 -113
  543. package/dist/cli/commands/test/analyze-failures.js.map +0 -1
  544. package/dist/cli/commands/test/clean.d.ts +0 -3
  545. package/dist/cli/commands/test/clean.d.ts.map +0 -1
  546. package/dist/cli/commands/test/clean.js +0 -148
  547. package/dist/cli/commands/test/clean.js.map +0 -1
  548. package/dist/cli/commands/test/debug.d.ts +0 -3
  549. package/dist/cli/commands/test/debug.d.ts.map +0 -1
  550. package/dist/cli/commands/test/debug.js +0 -167
  551. package/dist/cli/commands/test/debug.js.map +0 -1
  552. package/dist/cli/commands/test/diff.d.ts +0 -3
  553. package/dist/cli/commands/test/diff.d.ts.map +0 -1
  554. package/dist/cli/commands/test/diff.js +0 -195
  555. package/dist/cli/commands/test/diff.js.map +0 -1
  556. package/dist/cli/commands/test/flakiness.d.ts +0 -32
  557. package/dist/cli/commands/test/flakiness.d.ts.map +0 -1
  558. package/dist/cli/commands/test/flakiness.js +0 -121
  559. package/dist/cli/commands/test/flakiness.js.map +0 -1
  560. package/dist/cli/commands/test/index.d.ts +0 -17
  561. package/dist/cli/commands/test/index.d.ts.map +0 -1
  562. package/dist/cli/commands/test/index.js +0 -45
  563. package/dist/cli/commands/test/index.js.map +0 -1
  564. package/dist/cli/commands/test/mutate.d.ts +0 -29
  565. package/dist/cli/commands/test/mutate.d.ts.map +0 -1
  566. package/dist/cli/commands/test/mutate.js +0 -163
  567. package/dist/cli/commands/test/mutate.js.map +0 -1
  568. package/dist/cli/commands/test/parallel.d.ts +0 -3
  569. package/dist/cli/commands/test/parallel.d.ts.map +0 -1
  570. package/dist/cli/commands/test/parallel.js +0 -117
  571. package/dist/cli/commands/test/parallel.js.map +0 -1
  572. package/dist/cli/commands/test/profile.d.ts +0 -3
  573. package/dist/cli/commands/test/profile.d.ts.map +0 -1
  574. package/dist/cli/commands/test/profile.js +0 -156
  575. package/dist/cli/commands/test/profile.js.map +0 -1
  576. package/dist/cli/commands/test/queue.d.ts +0 -3
  577. package/dist/cli/commands/test/queue.d.ts.map +0 -1
  578. package/dist/cli/commands/test/queue.js +0 -140
  579. package/dist/cli/commands/test/queue.js.map +0 -1
  580. package/dist/cli/commands/test/retry.d.ts +0 -3
  581. package/dist/cli/commands/test/retry.d.ts.map +0 -1
  582. package/dist/cli/commands/test/retry.js +0 -105
  583. package/dist/cli/commands/test/retry.js.map +0 -1
  584. package/dist/cli/commands/test/snapshot.d.ts +0 -3
  585. package/dist/cli/commands/test/snapshot.d.ts.map +0 -1
  586. package/dist/cli/commands/test/snapshot.js +0 -176
  587. package/dist/cli/commands/test/snapshot.js.map +0 -1
  588. package/dist/cli/commands/test/trace.d.ts +0 -3
  589. package/dist/cli/commands/test/trace.d.ts.map +0 -1
  590. package/dist/cli/commands/test/trace.js +0 -137
  591. package/dist/cli/commands/test/trace.js.map +0 -1
  592. package/dist/cli/commands/test/watch.d.ts +0 -3
  593. package/dist/cli/commands/test/watch.d.ts.map +0 -1
  594. package/dist/cli/commands/test/watch.js +0 -130
  595. package/dist/cli/commands/test/watch.js.map +0 -1
  596. package/dist/cli/index-spec.d.ts +0 -3
  597. package/dist/cli/index-spec.d.ts.map +0 -1
  598. package/dist/cli/index-spec.js +0 -154
  599. package/dist/cli/index-spec.js.map +0 -1
  600. package/dist/cli/index-working.d.ts +0 -7
  601. package/dist/cli/index-working.d.ts.map +0 -1
  602. package/dist/cli/index-working.js +0 -617
  603. package/dist/cli/index-working.js.map +0 -1
  604. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts +0 -83
  605. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts.map +0 -1
  606. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js +0 -130
  607. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js.map +0 -1
  608. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts +0 -58
  609. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts.map +0 -1
  610. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js +0 -84
  611. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js.map +0 -1
  612. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts +0 -54
  613. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts.map +0 -1
  614. package/dist/mcp/handlers/filtered/security-scanner-filtered.js +0 -73
  615. package/dist/mcp/handlers/filtered/security-scanner-filtered.js.map +0 -1
  616. package/dist/mcp/handlers/integration/contract-validate.d.ts +0 -10
  617. package/dist/mcp/handlers/integration/contract-validate.d.ts.map +0 -1
  618. package/dist/mcp/handlers/integration/contract-validate.js +0 -348
  619. package/dist/mcp/handlers/integration/contract-validate.js.map +0 -1
  620. package/dist/reporting/ResultAggregator.d.ts +0 -107
  621. package/dist/reporting/ResultAggregator.d.ts.map +0 -1
  622. package/dist/reporting/ResultAggregator.js +0 -435
  623. package/dist/reporting/ResultAggregator.js.map +0 -1
  624. package/dist/reporting/index.d.ts +0 -48
  625. package/dist/reporting/index.d.ts.map +0 -1
  626. package/dist/reporting/index.js +0 -154
  627. package/dist/reporting/index.js.map +0 -1
  628. package/dist/reporting/reporters/ControlLoopReporter.d.ts +0 -128
  629. package/dist/reporting/reporters/ControlLoopReporter.d.ts.map +0 -1
  630. package/dist/reporting/reporters/ControlLoopReporter.js +0 -417
  631. package/dist/reporting/reporters/ControlLoopReporter.js.map +0 -1
  632. package/dist/reporting/reporters/HumanReadableReporter.d.ts +0 -140
  633. package/dist/reporting/reporters/HumanReadableReporter.d.ts.map +0 -1
  634. package/dist/reporting/reporters/HumanReadableReporter.js +0 -524
  635. package/dist/reporting/reporters/HumanReadableReporter.js.map +0 -1
  636. package/dist/reporting/reporters/JSONReporter.d.ts +0 -251
  637. package/dist/reporting/reporters/JSONReporter.d.ts.map +0 -1
  638. package/dist/reporting/reporters/JSONReporter.js +0 -325
  639. package/dist/reporting/reporters/JSONReporter.js.map +0 -1
  640. package/dist/reporting/reporters/index.d.ts +0 -14
  641. package/dist/reporting/reporters/index.d.ts.map +0 -1
  642. package/dist/reporting/reporters/index.js +0 -19
  643. package/dist/reporting/reporters/index.js.map +0 -1
  644. package/dist/reporting/types.d.ts +0 -427
  645. package/dist/reporting/types.d.ts.map +0 -1
  646. package/dist/reporting/types.js +0 -12
  647. package/dist/reporting/types.js.map +0 -1
@@ -0,0 +1,171 @@
1
+ /**
2
+ * ICE Manager for WebRTC Connections
3
+ *
4
+ * Manages ICE (Interactive Connectivity Establishment) for WebRTC peer connections.
5
+ * Handles STUN/TURN server configuration, candidate gathering, trickling,
6
+ * connection quality monitoring, and NAT type detection.
7
+ *
8
+ * @module edge/p2p/webrtc/ICEManager
9
+ * @version 1.0.0
10
+ */
11
+ import { ICECandidate, ICEServer, ICEManagerConfig, ICEGatheringState, NATType, ConnectionQuality } from './types';
12
+ /**
13
+ * ICE candidate event handler type
14
+ */
15
+ export type ICECandidateHandler = (candidate: ICECandidate) => void;
16
+ /**
17
+ * ICE gathering state change handler type
18
+ */
19
+ export type ICEGatheringStateHandler = (state: RTCIceGatheringState) => void;
20
+ /**
21
+ * ICE connection state change handler type
22
+ */
23
+ export type ICEConnectionStateHandler = (state: RTCIceConnectionState) => void;
24
+ /**
25
+ * ICE Manager - Handles ICE candidate gathering and connection establishment
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const iceManager = new ICEManager({
30
+ * iceServers: [
31
+ * { urls: 'stun:stun.l.google.com:19302' },
32
+ * { urls: 'turn:turn.example.com', username: 'user', credential: 'pass' }
33
+ * ],
34
+ * enableTrickle: true,
35
+ * });
36
+ *
37
+ * // Configure peer connection
38
+ * const rtcConfig = iceManager.getRTCConfiguration();
39
+ * const pc = new RTCPeerConnection(rtcConfig);
40
+ *
41
+ * // Set up ICE handling
42
+ * iceManager.attachToPeerConnection(pc);
43
+ * iceManager.onCandidate((candidate) => {
44
+ * // Send candidate to remote peer via signaling
45
+ * signaling.sendCandidate(remotePeerId, candidate);
46
+ * });
47
+ *
48
+ * // Add remote candidates
49
+ * await iceManager.addRemoteCandidate(remoteCandidate);
50
+ * ```
51
+ */
52
+ export declare class ICEManager {
53
+ private readonly config;
54
+ private peerConnection;
55
+ private gatheringState;
56
+ private candidateHandlers;
57
+ private gatheringStateHandlers;
58
+ private connectionStateHandlers;
59
+ private gatheringPromise;
60
+ private gatheringResolve;
61
+ private gatheringTimeout;
62
+ private detectedNATType;
63
+ private connectionQuality;
64
+ private qualityMonitorInterval;
65
+ /**
66
+ * Create a new ICE Manager instance
67
+ *
68
+ * @param config - ICE manager configuration
69
+ */
70
+ constructor(config?: Partial<ICEManagerConfig>);
71
+ /**
72
+ * Get RTCConfiguration for creating RTCPeerConnection
73
+ */
74
+ getRTCConfiguration(): RTCConfiguration;
75
+ /**
76
+ * Attach ICE manager to a peer connection
77
+ *
78
+ * @param pc - RTCPeerConnection to manage
79
+ */
80
+ attachToPeerConnection(pc: RTCPeerConnection): void;
81
+ /**
82
+ * Detach ICE manager from current peer connection
83
+ */
84
+ detachFromPeerConnection(): void;
85
+ /**
86
+ * Add a remote ICE candidate
87
+ *
88
+ * @param candidate - Remote ICE candidate to add
89
+ * @throws Error if no peer connection is attached
90
+ */
91
+ addRemoteCandidate(candidate: ICECandidate): Promise<void>;
92
+ /**
93
+ * Wait for ICE gathering to complete
94
+ *
95
+ * @param timeout - Maximum time to wait in ms (default: config.gatheringTimeout)
96
+ * @returns Promise that resolves when gathering is complete
97
+ */
98
+ waitForGatheringComplete(timeout?: number): Promise<void>;
99
+ /**
100
+ * Register callback for ICE candidate events
101
+ *
102
+ * @param handler - Callback function
103
+ * @returns Unsubscribe function
104
+ */
105
+ onCandidate(handler: ICECandidateHandler): () => void;
106
+ /**
107
+ * Register callback for ICE gathering state changes
108
+ *
109
+ * @param handler - Callback function
110
+ * @returns Unsubscribe function
111
+ */
112
+ onGatheringStateChange(handler: ICEGatheringStateHandler): () => void;
113
+ /**
114
+ * Register callback for ICE connection state changes
115
+ *
116
+ * @param handler - Callback function
117
+ * @returns Unsubscribe function
118
+ */
119
+ onConnectionStateChange(handler: ICEConnectionStateHandler): () => void;
120
+ /**
121
+ * Get current ICE gathering state
122
+ */
123
+ getGatheringState(): ICEGatheringState;
124
+ /**
125
+ * Get detected NAT type
126
+ */
127
+ getNATType(): NATType;
128
+ /**
129
+ * Get current connection quality metrics
130
+ */
131
+ getConnectionQuality(): ConnectionQuality;
132
+ /**
133
+ * Detect NAT type using STUN servers
134
+ * This is a simplified detection that classifies based on candidate types
135
+ */
136
+ detectNATType(): Promise<NATType>;
137
+ /**
138
+ * Update connection quality metrics from RTCPeerConnection stats
139
+ */
140
+ updateConnectionQuality(): Promise<ConnectionQuality>;
141
+ /**
142
+ * Check if TURN fallback is needed based on connection state
143
+ */
144
+ needsTurnFallback(): boolean;
145
+ /**
146
+ * Get ICE servers with TURN servers for fallback
147
+ */
148
+ getTurnFallbackServers(): ICEServer[];
149
+ /**
150
+ * Restart ICE gathering
151
+ */
152
+ restartIce(): Promise<void>;
153
+ /**
154
+ * Cleanup and release resources
155
+ */
156
+ destroy(): void;
157
+ private convertRTCIceCandidate;
158
+ private extractPriority;
159
+ private mapCandidateType;
160
+ private analyzeCandidate;
161
+ private onGatheringComplete;
162
+ private clearGatheringTimeout;
163
+ private resetGatheringState;
164
+ private emitCandidate;
165
+ private emitGatheringStateChange;
166
+ private emitConnectionStateChange;
167
+ private startQualityMonitoring;
168
+ private stopQualityMonitoring;
169
+ }
170
+ export default ICEManager;
171
+ //# sourceMappingURL=ICEManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICEManager.d.ts","sourceRoot":"","sources":["../../../../src/edge/p2p/webrtc/ICEManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EAEjB,OAAO,EACP,iBAAiB,EAKlB,MAAM,SAAS,CAAC;AAcjB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,sBAAsB,CAA4C;IAC1E,OAAO,CAAC,uBAAuB,CAA6C;IAC5E,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,iBAAiB,CAAuD;IAChF,OAAO,CAAC,sBAAsB,CAA+C;IAE7E;;;;OAIG;gBACS,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAgBlD;;OAEG;IACI,mBAAmB,IAAI,gBAAgB;IAc9C;;;;OAIG;IACI,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;IA6C1D;;OAEG;IACI,wBAAwB,IAAI,IAAI;IAWvC;;;;;OAKG;IACU,kBAAkB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvE;;;;;OAKG;IACU,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtE;;;;;OAKG;IACI,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAK5D;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAK5E;;;;;OAKG;IACI,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,IAAI;IAK9E;;OAEG;IACI,iBAAiB,IAAI,iBAAiB;IAI7C;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;OAEG;IACI,oBAAoB,IAAI,iBAAiB;IAIhD;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IA8B9C;;OAEG;IACU,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA6ClE;;OAEG;IACI,iBAAiB,IAAI,OAAO;IAgBnC;;OAEG;IACI,sBAAsB,IAAI,SAAS,EAAE;IAQ5C;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASxC;;OAEG;IACI,OAAO,IAAI,IAAI;IAYtB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,qBAAqB;CAM9B;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,490 @@
1
+ "use strict";
2
+ /**
3
+ * ICE Manager for WebRTC Connections
4
+ *
5
+ * Manages ICE (Interactive Connectivity Establishment) for WebRTC peer connections.
6
+ * Handles STUN/TURN server configuration, candidate gathering, trickling,
7
+ * connection quality monitoring, and NAT type detection.
8
+ *
9
+ * @module edge/p2p/webrtc/ICEManager
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ICEManager = void 0;
14
+ const types_1 = require("./types");
15
+ /**
16
+ * Default ICE manager configuration
17
+ */
18
+ const DEFAULT_CONFIG = {
19
+ iceServers: types_1.DEFAULT_ICE_SERVERS,
20
+ iceTransportPolicy: 'all',
21
+ bundlePolicy: 'balanced',
22
+ enableTrickle: true,
23
+ gatheringTimeout: 10000,
24
+ enableTurnFallback: true,
25
+ };
26
+ /**
27
+ * ICE Manager - Handles ICE candidate gathering and connection establishment
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const iceManager = new ICEManager({
32
+ * iceServers: [
33
+ * { urls: 'stun:stun.l.google.com:19302' },
34
+ * { urls: 'turn:turn.example.com', username: 'user', credential: 'pass' }
35
+ * ],
36
+ * enableTrickle: true,
37
+ * });
38
+ *
39
+ * // Configure peer connection
40
+ * const rtcConfig = iceManager.getRTCConfiguration();
41
+ * const pc = new RTCPeerConnection(rtcConfig);
42
+ *
43
+ * // Set up ICE handling
44
+ * iceManager.attachToPeerConnection(pc);
45
+ * iceManager.onCandidate((candidate) => {
46
+ * // Send candidate to remote peer via signaling
47
+ * signaling.sendCandidate(remotePeerId, candidate);
48
+ * });
49
+ *
50
+ * // Add remote candidates
51
+ * await iceManager.addRemoteCandidate(remoteCandidate);
52
+ * ```
53
+ */
54
+ class ICEManager {
55
+ /**
56
+ * Create a new ICE Manager instance
57
+ *
58
+ * @param config - ICE manager configuration
59
+ */
60
+ constructor(config = {}) {
61
+ this.peerConnection = null;
62
+ this.candidateHandlers = new Set();
63
+ this.gatheringStateHandlers = new Set();
64
+ this.connectionStateHandlers = new Set();
65
+ this.gatheringPromise = null;
66
+ this.gatheringResolve = null;
67
+ this.gatheringTimeout = null;
68
+ this.detectedNATType = types_1.NATType.UNKNOWN;
69
+ this.connectionQuality = (0, types_1.createDefaultConnectionQuality)();
70
+ this.qualityMonitorInterval = null;
71
+ this.config = {
72
+ ...DEFAULT_CONFIG,
73
+ ...config,
74
+ iceServers: config.iceServers ?? DEFAULT_CONFIG.iceServers,
75
+ };
76
+ this.gatheringState = {
77
+ state: 'new',
78
+ localCandidates: [],
79
+ remoteCandidates: [],
80
+ natType: types_1.NATType.UNKNOWN,
81
+ isComplete: false,
82
+ };
83
+ }
84
+ /**
85
+ * Get RTCConfiguration for creating RTCPeerConnection
86
+ */
87
+ getRTCConfiguration() {
88
+ return {
89
+ iceServers: this.config.iceServers.map((server) => ({
90
+ urls: server.urls,
91
+ username: server.username,
92
+ credential: server.credential,
93
+ credentialType: server.credentialType,
94
+ })),
95
+ iceTransportPolicy: this.config.iceTransportPolicy,
96
+ bundlePolicy: this.config.bundlePolicy,
97
+ iceCandidatePoolSize: 0,
98
+ };
99
+ }
100
+ /**
101
+ * Attach ICE manager to a peer connection
102
+ *
103
+ * @param pc - RTCPeerConnection to manage
104
+ */
105
+ attachToPeerConnection(pc) {
106
+ if (this.peerConnection) {
107
+ this.detachFromPeerConnection();
108
+ }
109
+ this.peerConnection = pc;
110
+ this.resetGatheringState();
111
+ // Handle ICE candidate events
112
+ pc.onicecandidate = (event) => {
113
+ if (event.candidate) {
114
+ const candidate = this.convertRTCIceCandidate(event.candidate);
115
+ this.gatheringState.localCandidates.push(candidate);
116
+ this.emitCandidate(candidate);
117
+ this.analyzeCandidate(candidate);
118
+ }
119
+ else {
120
+ // Null candidate signals gathering complete
121
+ this.onGatheringComplete();
122
+ }
123
+ };
124
+ // Handle ICE gathering state changes
125
+ pc.onicegatheringstatechange = () => {
126
+ const state = pc.iceGatheringState;
127
+ this.gatheringState.state = state;
128
+ this.emitGatheringStateChange(state);
129
+ if (state === 'complete') {
130
+ this.onGatheringComplete();
131
+ }
132
+ };
133
+ // Handle ICE connection state changes
134
+ pc.oniceconnectionstatechange = () => {
135
+ const state = pc.iceConnectionState;
136
+ this.emitConnectionStateChange(state);
137
+ if (state === 'connected' || state === 'completed') {
138
+ this.startQualityMonitoring();
139
+ }
140
+ else if (state === 'disconnected' || state === 'failed' || state === 'closed') {
141
+ this.stopQualityMonitoring();
142
+ }
143
+ };
144
+ }
145
+ /**
146
+ * Detach ICE manager from current peer connection
147
+ */
148
+ detachFromPeerConnection() {
149
+ if (this.peerConnection) {
150
+ this.peerConnection.onicecandidate = null;
151
+ this.peerConnection.onicegatheringstatechange = null;
152
+ this.peerConnection.oniceconnectionstatechange = null;
153
+ this.peerConnection = null;
154
+ }
155
+ this.stopQualityMonitoring();
156
+ this.resetGatheringState();
157
+ }
158
+ /**
159
+ * Add a remote ICE candidate
160
+ *
161
+ * @param candidate - Remote ICE candidate to add
162
+ * @throws Error if no peer connection is attached
163
+ */
164
+ async addRemoteCandidate(candidate) {
165
+ if (!this.peerConnection) {
166
+ throw new Error('No peer connection attached to ICE manager');
167
+ }
168
+ const rtcCandidate = new RTCIceCandidate({
169
+ candidate: candidate.candidate,
170
+ sdpMLineIndex: candidate.sdpMLineIndex ?? undefined,
171
+ sdpMid: candidate.sdpMid ?? undefined,
172
+ usernameFragment: candidate.usernameFragment ?? undefined,
173
+ });
174
+ await this.peerConnection.addIceCandidate(rtcCandidate);
175
+ this.gatheringState.remoteCandidates.push(candidate);
176
+ }
177
+ /**
178
+ * Wait for ICE gathering to complete
179
+ *
180
+ * @param timeout - Maximum time to wait in ms (default: config.gatheringTimeout)
181
+ * @returns Promise that resolves when gathering is complete
182
+ */
183
+ async waitForGatheringComplete(timeout) {
184
+ if (this.gatheringState.isComplete) {
185
+ return;
186
+ }
187
+ if (this.gatheringPromise) {
188
+ return this.gatheringPromise;
189
+ }
190
+ const timeoutMs = timeout ?? this.config.gatheringTimeout;
191
+ this.gatheringPromise = new Promise((resolve, reject) => {
192
+ this.gatheringResolve = resolve;
193
+ this.gatheringTimeout = setTimeout(() => {
194
+ // Gathering timeout - proceed with what we have
195
+ this.onGatheringComplete();
196
+ resolve();
197
+ }, timeoutMs);
198
+ });
199
+ return this.gatheringPromise;
200
+ }
201
+ /**
202
+ * Register callback for ICE candidate events
203
+ *
204
+ * @param handler - Callback function
205
+ * @returns Unsubscribe function
206
+ */
207
+ onCandidate(handler) {
208
+ this.candidateHandlers.add(handler);
209
+ return () => this.candidateHandlers.delete(handler);
210
+ }
211
+ /**
212
+ * Register callback for ICE gathering state changes
213
+ *
214
+ * @param handler - Callback function
215
+ * @returns Unsubscribe function
216
+ */
217
+ onGatheringStateChange(handler) {
218
+ this.gatheringStateHandlers.add(handler);
219
+ return () => this.gatheringStateHandlers.delete(handler);
220
+ }
221
+ /**
222
+ * Register callback for ICE connection state changes
223
+ *
224
+ * @param handler - Callback function
225
+ * @returns Unsubscribe function
226
+ */
227
+ onConnectionStateChange(handler) {
228
+ this.connectionStateHandlers.add(handler);
229
+ return () => this.connectionStateHandlers.delete(handler);
230
+ }
231
+ /**
232
+ * Get current ICE gathering state
233
+ */
234
+ getGatheringState() {
235
+ return { ...this.gatheringState };
236
+ }
237
+ /**
238
+ * Get detected NAT type
239
+ */
240
+ getNATType() {
241
+ return this.detectedNATType;
242
+ }
243
+ /**
244
+ * Get current connection quality metrics
245
+ */
246
+ getConnectionQuality() {
247
+ return { ...this.connectionQuality };
248
+ }
249
+ /**
250
+ * Detect NAT type using STUN servers
251
+ * This is a simplified detection that classifies based on candidate types
252
+ */
253
+ async detectNATType() {
254
+ const candidates = this.gatheringState.localCandidates;
255
+ if (candidates.length === 0) {
256
+ return types_1.NATType.UNKNOWN;
257
+ }
258
+ const hasHost = candidates.some((c) => c.type === 'host');
259
+ const hasSrflx = candidates.some((c) => c.type === 'srflx');
260
+ const hasRelay = candidates.some((c) => c.type === 'relay');
261
+ // Analyze candidate types to infer NAT type
262
+ if (hasHost && !hasSrflx && !hasRelay) {
263
+ // Only host candidates - likely no NAT
264
+ this.detectedNATType = types_1.NATType.NONE;
265
+ }
266
+ else if (hasSrflx) {
267
+ // Server reflexive candidates found - some form of cone NAT
268
+ // More detailed detection would require multiple STUN servers
269
+ this.detectedNATType = types_1.NATType.FULL_CONE;
270
+ }
271
+ else if (hasRelay && !hasSrflx) {
272
+ // Only relay candidates - likely symmetric NAT
273
+ this.detectedNATType = types_1.NATType.SYMMETRIC;
274
+ }
275
+ else {
276
+ this.detectedNATType = types_1.NATType.UNKNOWN;
277
+ }
278
+ this.gatheringState.natType = this.detectedNATType;
279
+ return this.detectedNATType;
280
+ }
281
+ /**
282
+ * Update connection quality metrics from RTCPeerConnection stats
283
+ */
284
+ async updateConnectionQuality() {
285
+ if (!this.peerConnection) {
286
+ return this.connectionQuality;
287
+ }
288
+ try {
289
+ const stats = await this.peerConnection.getStats();
290
+ let candidatePairFound = false;
291
+ stats.forEach((report) => {
292
+ if (report.type === 'candidate-pair' && report.state === 'succeeded') {
293
+ candidatePairFound = true;
294
+ this.connectionQuality.rttMs = report.currentRoundTripTime
295
+ ? report.currentRoundTripTime * 1000
296
+ : this.connectionQuality.rttMs;
297
+ this.connectionQuality.availableBandwidth =
298
+ report.availableOutgoingBitrate ?? this.connectionQuality.availableBandwidth;
299
+ }
300
+ if (report.type === 'local-candidate') {
301
+ this.connectionQuality.localCandidateType = this.mapCandidateType(report.candidateType);
302
+ }
303
+ if (report.type === 'remote-candidate') {
304
+ this.connectionQuality.remoteCandidateType = this.mapCandidateType(report.candidateType);
305
+ }
306
+ if (report.type === 'transport') {
307
+ const packetsLost = report.packetsLost ?? 0;
308
+ const packetsReceived = report.packetsReceived ?? 0;
309
+ const totalPackets = packetsLost + packetsReceived;
310
+ this.connectionQuality.packetLossPercent =
311
+ totalPackets > 0 ? (packetsLost / totalPackets) * 100 : 0;
312
+ }
313
+ });
314
+ this.connectionQuality.measuredAt = Date.now();
315
+ }
316
+ catch (error) {
317
+ // Stats collection failed - keep existing quality
318
+ console.warn('Failed to collect connection quality stats:', error);
319
+ }
320
+ return { ...this.connectionQuality };
321
+ }
322
+ /**
323
+ * Check if TURN fallback is needed based on connection state
324
+ */
325
+ needsTurnFallback() {
326
+ if (!this.config.enableTurnFallback) {
327
+ return false;
328
+ }
329
+ // Check if we only have relay candidates or connection is failing
330
+ const hasOnlyRelay = this.gatheringState.localCandidates.length > 0 &&
331
+ this.gatheringState.localCandidates.every((c) => c.type === 'relay');
332
+ const connectionState = this.peerConnection?.iceConnectionState;
333
+ const isFailing = connectionState === 'failed' || connectionState === 'disconnected';
334
+ return hasOnlyRelay || isFailing;
335
+ }
336
+ /**
337
+ * Get ICE servers with TURN servers for fallback
338
+ */
339
+ getTurnFallbackServers() {
340
+ return this.config.iceServers.filter((server) => (Array.isArray(server.urls) && server.urls.some((url) => url.startsWith('turn:'))) ||
341
+ (typeof server.urls === 'string' && server.urls.startsWith('turn:')));
342
+ }
343
+ /**
344
+ * Restart ICE gathering
345
+ */
346
+ async restartIce() {
347
+ if (!this.peerConnection) {
348
+ throw new Error('No peer connection attached');
349
+ }
350
+ this.resetGatheringState();
351
+ this.peerConnection.restartIce();
352
+ }
353
+ /**
354
+ * Cleanup and release resources
355
+ */
356
+ destroy() {
357
+ this.detachFromPeerConnection();
358
+ this.candidateHandlers.clear();
359
+ this.gatheringStateHandlers.clear();
360
+ this.connectionStateHandlers.clear();
361
+ this.clearGatheringTimeout();
362
+ }
363
+ // ============================================
364
+ // Private Methods
365
+ // ============================================
366
+ convertRTCIceCandidate(rtcCandidate) {
367
+ return {
368
+ candidate: rtcCandidate.candidate,
369
+ sdpMLineIndex: rtcCandidate.sdpMLineIndex,
370
+ sdpMid: rtcCandidate.sdpMid,
371
+ usernameFragment: rtcCandidate.usernameFragment,
372
+ type: (0, types_1.parseICECandidateType)(rtcCandidate.candidate),
373
+ priority: this.extractPriority(rtcCandidate.candidate),
374
+ address: rtcCandidate.address ?? undefined,
375
+ port: rtcCandidate.port ?? undefined,
376
+ protocol: rtcCandidate.protocol,
377
+ };
378
+ }
379
+ extractPriority(candidateString) {
380
+ const match = candidateString.match(/priority\s+(\d+)/);
381
+ return match ? parseInt(match[1], 10) : 0;
382
+ }
383
+ mapCandidateType(type) {
384
+ switch (type) {
385
+ case 'host':
386
+ return 'host';
387
+ case 'srflx':
388
+ return 'srflx';
389
+ case 'prflx':
390
+ return 'prflx';
391
+ case 'relay':
392
+ return 'relay';
393
+ default:
394
+ return 'unknown';
395
+ }
396
+ }
397
+ analyzeCandidate(candidate) {
398
+ // Update NAT type analysis based on new candidate
399
+ if (candidate.type === 'srflx' || candidate.type === 'relay') {
400
+ // We're behind some form of NAT
401
+ if (this.detectedNATType === types_1.NATType.UNKNOWN) {
402
+ this.detectedNATType = candidate.type === 'relay' ? types_1.NATType.SYMMETRIC : types_1.NATType.FULL_CONE;
403
+ }
404
+ }
405
+ }
406
+ onGatheringComplete() {
407
+ if (this.gatheringState.isComplete) {
408
+ return;
409
+ }
410
+ this.gatheringState.isComplete = true;
411
+ this.clearGatheringTimeout();
412
+ // Detect NAT type based on gathered candidates
413
+ this.detectNATType();
414
+ if (this.gatheringResolve) {
415
+ this.gatheringResolve();
416
+ this.gatheringResolve = null;
417
+ this.gatheringPromise = null;
418
+ }
419
+ }
420
+ clearGatheringTimeout() {
421
+ if (this.gatheringTimeout) {
422
+ clearTimeout(this.gatheringTimeout);
423
+ this.gatheringTimeout = null;
424
+ }
425
+ }
426
+ resetGatheringState() {
427
+ this.clearGatheringTimeout();
428
+ this.gatheringState = {
429
+ state: 'new',
430
+ localCandidates: [],
431
+ remoteCandidates: [],
432
+ natType: types_1.NATType.UNKNOWN,
433
+ isComplete: false,
434
+ };
435
+ this.gatheringPromise = null;
436
+ this.gatheringResolve = null;
437
+ }
438
+ emitCandidate(candidate) {
439
+ if (this.config.enableTrickle) {
440
+ this.candidateHandlers.forEach((handler) => {
441
+ try {
442
+ handler(candidate);
443
+ }
444
+ catch (error) {
445
+ console.error('ICE candidate handler error:', error);
446
+ }
447
+ });
448
+ }
449
+ }
450
+ emitGatheringStateChange(state) {
451
+ this.gatheringStateHandlers.forEach((handler) => {
452
+ try {
453
+ handler(state);
454
+ }
455
+ catch (error) {
456
+ console.error('ICE gathering state handler error:', error);
457
+ }
458
+ });
459
+ }
460
+ emitConnectionStateChange(state) {
461
+ this.connectionStateHandlers.forEach((handler) => {
462
+ try {
463
+ handler(state);
464
+ }
465
+ catch (error) {
466
+ console.error('ICE connection state handler error:', error);
467
+ }
468
+ });
469
+ }
470
+ startQualityMonitoring() {
471
+ if (this.qualityMonitorInterval) {
472
+ return;
473
+ }
474
+ // Update quality metrics every 5 seconds
475
+ this.qualityMonitorInterval = setInterval(() => {
476
+ this.updateConnectionQuality();
477
+ }, 5000);
478
+ // Initial quality check
479
+ this.updateConnectionQuality();
480
+ }
481
+ stopQualityMonitoring() {
482
+ if (this.qualityMonitorInterval) {
483
+ clearInterval(this.qualityMonitorInterval);
484
+ this.qualityMonitorInterval = null;
485
+ }
486
+ }
487
+ }
488
+ exports.ICEManager = ICEManager;
489
+ exports.default = ICEManager;
490
+ //# sourceMappingURL=ICEManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICEManager.js","sourceRoot":"","sources":["../../../../src/edge/p2p/webrtc/ICEManager.ts"],"names":[],"mappings":"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"}