@swal/edge-mesh 0.0.0-stage → 0.1.0

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 (464) hide show
  1. package/LICENSE +128 -0
  2. package/NOTICE +37 -0
  3. package/README.md +470 -2
  4. package/dist/adapters/gpu-agent/index.d.ts +61 -0
  5. package/dist/adapters/gpu-agent/index.d.ts.map +1 -0
  6. package/dist/adapters/gpu-agent/index.js +364 -0
  7. package/dist/adapters/gpu-agent/index.js.map +1 -0
  8. package/dist/adapters/maloca-salud/citas-distribuidas.d.ts +19 -0
  9. package/dist/adapters/maloca-salud/citas-distribuidas.d.ts.map +1 -0
  10. package/dist/adapters/maloca-salud/citas-distribuidas.js +51 -0
  11. package/dist/adapters/maloca-salud/citas-distribuidas.js.map +1 -0
  12. package/dist/adapters/maloca-salud/eps-bridge.d.ts +15 -0
  13. package/dist/adapters/maloca-salud/eps-bridge.d.ts.map +1 -0
  14. package/dist/adapters/maloca-salud/eps-bridge.js +27 -0
  15. package/dist/adapters/maloca-salud/eps-bridge.js.map +1 -0
  16. package/dist/adapters/maloca-salud/patient-profile.d.ts +20 -0
  17. package/dist/adapters/maloca-salud/patient-profile.d.ts.map +1 -0
  18. package/dist/adapters/maloca-salud/patient-profile.js +36 -0
  19. package/dist/adapters/maloca-salud/patient-profile.js.map +1 -0
  20. package/dist/adapters/maloca-salud/types.d.ts +40 -0
  21. package/dist/adapters/maloca-salud/types.d.ts.map +1 -0
  22. package/dist/adapters/maloca-salud/types.js +2 -0
  23. package/dist/adapters/maloca-salud/types.js.map +1 -0
  24. package/dist/adapters/maloca-veeduria/contract-bridge.d.ts +31 -0
  25. package/dist/adapters/maloca-veeduria/contract-bridge.d.ts.map +1 -0
  26. package/dist/adapters/maloca-veeduria/contract-bridge.js +103 -0
  27. package/dist/adapters/maloca-veeduria/contract-bridge.js.map +1 -0
  28. package/dist/adapters/maloca-veeduria/evidentia-veeduria.d.ts +14 -0
  29. package/dist/adapters/maloca-veeduria/evidentia-veeduria.d.ts.map +1 -0
  30. package/dist/adapters/maloca-veeduria/evidentia-veeduria.js +40 -0
  31. package/dist/adapters/maloca-veeduria/evidentia-veeduria.js.map +1 -0
  32. package/dist/adapters/maloca-veeduria/licitante-profile.d.ts +21 -0
  33. package/dist/adapters/maloca-veeduria/licitante-profile.d.ts.map +1 -0
  34. package/dist/adapters/maloca-veeduria/licitante-profile.js +58 -0
  35. package/dist/adapters/maloca-veeduria/licitante-profile.js.map +1 -0
  36. package/dist/adapters/maloca-veeduria/types.d.ts +30 -0
  37. package/dist/adapters/maloca-veeduria/types.d.ts.map +1 -0
  38. package/dist/adapters/maloca-veeduria/types.js +2 -0
  39. package/dist/adapters/maloca-veeduria/types.js.map +1 -0
  40. package/dist/adapters/maloca-xavier/agent-profile.d.ts +32 -0
  41. package/dist/adapters/maloca-xavier/agent-profile.d.ts.map +1 -0
  42. package/dist/adapters/maloca-xavier/agent-profile.js +56 -0
  43. package/dist/adapters/maloca-xavier/agent-profile.js.map +1 -0
  44. package/dist/adapters/maloca-xavier/codegraph-bridge.d.ts +27 -0
  45. package/dist/adapters/maloca-xavier/codegraph-bridge.d.ts.map +1 -0
  46. package/dist/adapters/maloca-xavier/codegraph-bridge.js +58 -0
  47. package/dist/adapters/maloca-xavier/codegraph-bridge.js.map +1 -0
  48. package/dist/adapters/maloca-xavier/llm-router.d.ts +25 -0
  49. package/dist/adapters/maloca-xavier/llm-router.d.ts.map +1 -0
  50. package/dist/adapters/maloca-xavier/llm-router.js +58 -0
  51. package/dist/adapters/maloca-xavier/llm-router.js.map +1 -0
  52. package/dist/authz/index.d.ts +81 -0
  53. package/dist/authz/index.d.ts.map +1 -0
  54. package/dist/authz/index.js +271 -0
  55. package/dist/authz/index.js.map +1 -0
  56. package/dist/chat/index.d.ts +138 -0
  57. package/dist/chat/index.d.ts.map +1 -0
  58. package/dist/chat/index.js +394 -0
  59. package/dist/chat/index.js.map +1 -0
  60. package/dist/chat/offline-queue.d.ts +32 -0
  61. package/dist/chat/offline-queue.d.ts.map +1 -0
  62. package/dist/chat/offline-queue.js +93 -0
  63. package/dist/chat/offline-queue.js.map +1 -0
  64. package/dist/core/DefaultEdgeMeshNode.d.ts +17 -0
  65. package/dist/core/DefaultEdgeMeshNode.d.ts.map +1 -0
  66. package/dist/core/DefaultEdgeMeshNode.js +57 -0
  67. package/dist/core/DefaultEdgeMeshNode.js.map +1 -0
  68. package/dist/core/node.d.ts +26 -0
  69. package/dist/core/node.d.ts.map +1 -0
  70. package/dist/core/node.js +16 -0
  71. package/dist/core/node.js.map +1 -0
  72. package/dist/edge-mesh.d.ts +139 -0
  73. package/dist/edge-mesh.d.ts.map +1 -0
  74. package/dist/edge-mesh.js +1146 -0
  75. package/dist/edge-mesh.js.map +1 -0
  76. package/dist/gos/GosBridge.d.ts +49 -0
  77. package/dist/gos/GosBridge.d.ts.map +1 -0
  78. package/dist/gos/GosBridge.js +133 -0
  79. package/dist/gos/GosBridge.js.map +1 -0
  80. package/dist/governance/authority.d.ts +44 -0
  81. package/dist/governance/authority.d.ts.map +1 -0
  82. package/dist/governance/authority.js +123 -0
  83. package/dist/governance/authority.js.map +1 -0
  84. package/dist/governance/index.d.ts +66 -0
  85. package/dist/governance/index.d.ts.map +1 -0
  86. package/dist/governance/index.js +210 -0
  87. package/dist/governance/index.js.map +1 -0
  88. package/dist/governance/merge.d.ts +31 -0
  89. package/dist/governance/merge.d.ts.map +1 -0
  90. package/dist/governance/merge.js +167 -0
  91. package/dist/governance/merge.js.map +1 -0
  92. package/dist/identity/index.d.ts +199 -0
  93. package/dist/identity/index.d.ts.map +1 -0
  94. package/dist/identity/index.js +415 -0
  95. package/dist/identity/index.js.map +1 -0
  96. package/dist/index.d.ts +71 -0
  97. package/dist/index.d.ts.map +1 -0
  98. package/dist/index.js +56 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/maloca/backoffice.d.ts +31 -0
  101. package/dist/maloca/backoffice.d.ts.map +1 -0
  102. package/dist/maloca/backoffice.js +40 -0
  103. package/dist/maloca/backoffice.js.map +1 -0
  104. package/dist/maloca/event-bus.d.ts +60 -0
  105. package/dist/maloca/event-bus.d.ts.map +1 -0
  106. package/dist/maloca/event-bus.js +175 -0
  107. package/dist/maloca/event-bus.js.map +1 -0
  108. package/dist/maloca/evidentia.d.ts +136 -0
  109. package/dist/maloca/evidentia.d.ts.map +1 -0
  110. package/dist/maloca/evidentia.js +447 -0
  111. package/dist/maloca/evidentia.js.map +1 -0
  112. package/dist/maloca/gateway/api.d.ts +146 -0
  113. package/dist/maloca/gateway/api.d.ts.map +1 -0
  114. package/dist/maloca/gateway/api.js +228 -0
  115. package/dist/maloca/gateway/api.js.map +1 -0
  116. package/dist/maloca/gateway/auth.d.ts +20 -0
  117. package/dist/maloca/gateway/auth.d.ts.map +1 -0
  118. package/dist/maloca/gateway/auth.js +115 -0
  119. package/dist/maloca/gateway/auth.js.map +1 -0
  120. package/dist/maloca/gateway/dashboard.d.ts +42 -0
  121. package/dist/maloca/gateway/dashboard.d.ts.map +1 -0
  122. package/dist/maloca/gateway/dashboard.js +67 -0
  123. package/dist/maloca/gateway/dashboard.js.map +1 -0
  124. package/dist/maloca/gateway/websocket.d.ts +34 -0
  125. package/dist/maloca/gateway/websocket.d.ts.map +1 -0
  126. package/dist/maloca/gateway/websocket.js +71 -0
  127. package/dist/maloca/gateway/websocket.js.map +1 -0
  128. package/dist/maloca/karma.d.ts +165 -0
  129. package/dist/maloca/karma.d.ts.map +1 -0
  130. package/dist/maloca/karma.js +307 -0
  131. package/dist/maloca/karma.js.map +1 -0
  132. package/dist/maloca/kernel.d.ts +20 -0
  133. package/dist/maloca/kernel.d.ts.map +1 -0
  134. package/dist/maloca/kernel.js +76 -0
  135. package/dist/maloca/kernel.js.map +1 -0
  136. package/dist/maloca/metadata.d.ts +30 -0
  137. package/dist/maloca/metadata.d.ts.map +1 -0
  138. package/dist/maloca/metadata.js +80 -0
  139. package/dist/maloca/metadata.js.map +1 -0
  140. package/dist/maloca/perfil.d.ts +57 -0
  141. package/dist/maloca/perfil.d.ts.map +1 -0
  142. package/dist/maloca/perfil.js +113 -0
  143. package/dist/maloca/perfil.js.map +1 -0
  144. package/dist/maloca/plugin-registry.d.ts +27 -0
  145. package/dist/maloca/plugin-registry.d.ts.map +1 -0
  146. package/dist/maloca/plugin-registry.js +76 -0
  147. package/dist/maloca/plugin-registry.js.map +1 -0
  148. package/dist/maloca/polygon-bridge.d.ts +63 -0
  149. package/dist/maloca/polygon-bridge.d.ts.map +1 -0
  150. package/dist/maloca/polygon-bridge.js +198 -0
  151. package/dist/maloca/polygon-bridge.js.map +1 -0
  152. package/dist/maloca/types.d.ts +44 -0
  153. package/dist/maloca/types.d.ts.map +1 -0
  154. package/dist/maloca/types.js +2 -0
  155. package/dist/maloca/types.js.map +1 -0
  156. package/dist/medico/aval.d.ts +149 -0
  157. package/dist/medico/aval.d.ts.map +1 -0
  158. package/dist/medico/aval.js +281 -0
  159. package/dist/medico/aval.js.map +1 -0
  160. package/dist/medico/canonica.d.ts +96 -0
  161. package/dist/medico/canonica.d.ts.map +1 -0
  162. package/dist/medico/canonica.js +148 -0
  163. package/dist/medico/canonica.js.map +1 -0
  164. package/dist/medico/credencial.d.ts +160 -0
  165. package/dist/medico/credencial.d.ts.map +1 -0
  166. package/dist/medico/credencial.js +240 -0
  167. package/dist/medico/credencial.js.map +1 -0
  168. package/dist/medico/index.d.ts +36 -0
  169. package/dist/medico/index.d.ts.map +1 -0
  170. package/dist/medico/index.js +39 -0
  171. package/dist/medico/index.js.map +1 -0
  172. package/dist/medico/malla.d.ts +218 -0
  173. package/dist/medico/malla.d.ts.map +1 -0
  174. package/dist/medico/malla.js +347 -0
  175. package/dist/medico/malla.js.map +1 -0
  176. package/dist/medico/registro-profesional.d.ts +84 -0
  177. package/dist/medico/registro-profesional.d.ts.map +1 -0
  178. package/dist/medico/registro-profesional.js +135 -0
  179. package/dist/medico/registro-profesional.js.map +1 -0
  180. package/dist/medico/registro.d.ts +149 -0
  181. package/dist/medico/registro.d.ts.map +1 -0
  182. package/dist/medico/registro.js +173 -0
  183. package/dist/medico/registro.js.map +1 -0
  184. package/dist/medico/types.d.ts +287 -0
  185. package/dist/medico/types.d.ts.map +1 -0
  186. package/dist/medico/types.js +135 -0
  187. package/dist/medico/types.js.map +1 -0
  188. package/dist/medico/verificacion-registro.d.ts +300 -0
  189. package/dist/medico/verificacion-registro.d.ts.map +1 -0
  190. package/dist/medico/verificacion-registro.js +319 -0
  191. package/dist/medico/verificacion-registro.js.map +1 -0
  192. package/dist/mesh/index.d.ts +457 -0
  193. package/dist/mesh/index.d.ts.map +1 -0
  194. package/dist/mesh/index.js +929 -0
  195. package/dist/mesh/index.js.map +1 -0
  196. package/dist/namespaces/encrypted-plugin.d.ts +56 -0
  197. package/dist/namespaces/encrypted-plugin.d.ts.map +1 -0
  198. package/dist/namespaces/encrypted-plugin.js +173 -0
  199. package/dist/namespaces/encrypted-plugin.js.map +1 -0
  200. package/dist/namespaces/index.d.ts +52 -0
  201. package/dist/namespaces/index.d.ts.map +1 -0
  202. package/dist/namespaces/index.js +134 -0
  203. package/dist/namespaces/index.js.map +1 -0
  204. package/dist/namespaces/ivn-proofs.d.ts +54 -0
  205. package/dist/namespaces/ivn-proofs.d.ts.map +1 -0
  206. package/dist/namespaces/ivn-proofs.js +162 -0
  207. package/dist/namespaces/ivn-proofs.js.map +1 -0
  208. package/dist/namespaces/offers-gossip.d.ts +95 -0
  209. package/dist/namespaces/offers-gossip.d.ts.map +1 -0
  210. package/dist/namespaces/offers-gossip.js +213 -0
  211. package/dist/namespaces/offers-gossip.js.map +1 -0
  212. package/dist/node-memory/idb-store.d.ts +22 -0
  213. package/dist/node-memory/idb-store.d.ts.map +1 -0
  214. package/dist/node-memory/idb-store.js +154 -0
  215. package/dist/node-memory/idb-store.js.map +1 -0
  216. package/dist/node-memory/index.d.ts +14 -0
  217. package/dist/node-memory/index.d.ts.map +1 -0
  218. package/dist/node-memory/index.js +159 -0
  219. package/dist/node-memory/index.js.map +1 -0
  220. package/dist/node-memory/sync-flush.d.ts +11 -0
  221. package/dist/node-memory/sync-flush.d.ts.map +1 -0
  222. package/dist/node-memory/sync-flush.js +37 -0
  223. package/dist/node-memory/sync-flush.js.map +1 -0
  224. package/dist/node-memory/types.d.ts +34 -0
  225. package/dist/node-memory/types.d.ts.map +1 -0
  226. package/dist/node-memory/types.js +2 -0
  227. package/dist/node-memory/types.js.map +1 -0
  228. package/dist/node-memory/xavier-store.d.ts +12 -0
  229. package/dist/node-memory/xavier-store.d.ts.map +1 -0
  230. package/dist/node-memory/xavier-store.js +75 -0
  231. package/dist/node-memory/xavier-store.js.map +1 -0
  232. package/dist/op-log/index.d.ts +49 -0
  233. package/dist/op-log/index.d.ts.map +1 -0
  234. package/dist/op-log/index.js +190 -0
  235. package/dist/op-log/index.js.map +1 -0
  236. package/dist/presence/health.d.ts +54 -0
  237. package/dist/presence/health.d.ts.map +1 -0
  238. package/dist/presence/health.js +139 -0
  239. package/dist/presence/health.js.map +1 -0
  240. package/dist/presence/index.d.ts +85 -0
  241. package/dist/presence/index.d.ts.map +1 -0
  242. package/dist/presence/index.js +255 -0
  243. package/dist/presence/index.js.map +1 -0
  244. package/dist/presence/peer-health.d.ts +40 -0
  245. package/dist/presence/peer-health.d.ts.map +1 -0
  246. package/dist/presence/peer-health.js +118 -0
  247. package/dist/presence/peer-health.js.map +1 -0
  248. package/dist/protocol/canonical.d.ts +10 -0
  249. package/dist/protocol/canonical.d.ts.map +1 -0
  250. package/dist/protocol/canonical.js +32 -0
  251. package/dist/protocol/canonical.js.map +1 -0
  252. package/dist/protocol/crypto.d.ts +299 -0
  253. package/dist/protocol/crypto.d.ts.map +1 -0
  254. package/dist/protocol/crypto.js +739 -0
  255. package/dist/protocol/crypto.js.map +1 -0
  256. package/dist/protocol/index.d.ts +30 -0
  257. package/dist/protocol/index.d.ts.map +1 -0
  258. package/dist/protocol/index.js +116 -0
  259. package/dist/protocol/index.js.map +1 -0
  260. package/dist/protocol/utils.d.ts +5 -0
  261. package/dist/protocol/utils.d.ts.map +1 -0
  262. package/dist/protocol/utils.js +27 -0
  263. package/dist/protocol/utils.js.map +1 -0
  264. package/dist/salones/manager.d.ts +100 -0
  265. package/dist/salones/manager.d.ts.map +1 -0
  266. package/dist/salones/manager.js +240 -0
  267. package/dist/salones/manager.js.map +1 -0
  268. package/dist/security/rate-limiter.d.ts +13 -0
  269. package/dist/security/rate-limiter.d.ts.map +1 -0
  270. package/dist/security/rate-limiter.js +32 -0
  271. package/dist/security/rate-limiter.js.map +1 -0
  272. package/dist/snapshot/index.d.ts +90 -0
  273. package/dist/snapshot/index.d.ts.map +1 -0
  274. package/dist/snapshot/index.js +189 -0
  275. package/dist/snapshot/index.js.map +1 -0
  276. package/dist/storage/index.d.ts +49 -0
  277. package/dist/storage/index.d.ts.map +1 -0
  278. package/dist/storage/index.js +176 -0
  279. package/dist/storage/index.js.map +1 -0
  280. package/dist/storage/optimizer.d.ts +28 -0
  281. package/dist/storage/optimizer.d.ts.map +1 -0
  282. package/dist/storage/optimizer.js +50 -0
  283. package/dist/storage/optimizer.js.map +1 -0
  284. package/dist/storage/ydoc-persistence.d.ts +27 -0
  285. package/dist/storage/ydoc-persistence.d.ts.map +1 -0
  286. package/dist/storage/ydoc-persistence.js +128 -0
  287. package/dist/storage/ydoc-persistence.js.map +1 -0
  288. package/dist/sync/ChunkSyncManager.d.ts +41 -0
  289. package/dist/sync/ChunkSyncManager.d.ts.map +1 -0
  290. package/dist/sync/ChunkSyncManager.js +115 -0
  291. package/dist/sync/ChunkSyncManager.js.map +1 -0
  292. package/dist/sync/conflict-resolver.d.ts +33 -0
  293. package/dist/sync/conflict-resolver.d.ts.map +1 -0
  294. package/dist/sync/conflict-resolver.js +54 -0
  295. package/dist/sync/conflict-resolver.js.map +1 -0
  296. package/dist/sync/engine.d.ts +168 -0
  297. package/dist/sync/engine.d.ts.map +1 -0
  298. package/dist/sync/engine.js +315 -0
  299. package/dist/sync/engine.js.map +1 -0
  300. package/dist/sync/index.d.ts +3 -0
  301. package/dist/sync/index.d.ts.map +1 -0
  302. package/dist/sync/index.js +3 -0
  303. package/dist/sync/index.js.map +1 -0
  304. package/dist/transport/TorTransportAdapter.d.ts +70 -0
  305. package/dist/transport/TorTransportAdapter.d.ts.map +1 -0
  306. package/dist/transport/TorTransportAdapter.js +192 -0
  307. package/dist/transport/TorTransportAdapter.js.map +1 -0
  308. package/dist/transport/memory.d.ts +31 -0
  309. package/dist/transport/memory.d.ts.map +1 -0
  310. package/dist/transport/memory.js +114 -0
  311. package/dist/transport/memory.js.map +1 -0
  312. package/dist/transport/peerjs.d.ts +45 -0
  313. package/dist/transport/peerjs.d.ts.map +1 -0
  314. package/dist/transport/peerjs.js +301 -0
  315. package/dist/transport/peerjs.js.map +1 -0
  316. package/dist/transport/pqc-handshake.d.ts +72 -0
  317. package/dist/transport/pqc-handshake.d.ts.map +1 -0
  318. package/dist/transport/pqc-handshake.js +129 -0
  319. package/dist/transport/pqc-handshake.js.map +1 -0
  320. package/dist/transport/relay-config.d.ts +11 -0
  321. package/dist/transport/relay-config.d.ts.map +1 -0
  322. package/dist/transport/relay-config.js +48 -0
  323. package/dist/transport/relay-config.js.map +1 -0
  324. package/dist/transport/relay-server.d.ts +37 -0
  325. package/dist/transport/relay-server.d.ts.map +1 -0
  326. package/dist/transport/relay-server.js +230 -0
  327. package/dist/transport/relay-server.js.map +1 -0
  328. package/dist/transport/tor.d.ts +47 -0
  329. package/dist/transport/tor.d.ts.map +1 -0
  330. package/dist/transport/tor.js +158 -0
  331. package/dist/transport/tor.js.map +1 -0
  332. package/dist/transport/types.d.ts +34 -0
  333. package/dist/transport/types.d.ts.map +1 -0
  334. package/dist/transport/types.js +2 -0
  335. package/dist/transport/types.js.map +1 -0
  336. package/dist/types/index.d.ts +293 -0
  337. package/dist/types/index.d.ts.map +1 -0
  338. package/dist/types/index.js +73 -0
  339. package/dist/types/index.js.map +1 -0
  340. package/dist/web/admission.d.ts +24 -0
  341. package/dist/web/admission.d.ts.map +1 -0
  342. package/dist/web/admission.js +41 -0
  343. package/dist/web/admission.js.map +1 -0
  344. package/dist/web/crypto.d.ts +18 -0
  345. package/dist/web/crypto.d.ts.map +1 -0
  346. package/dist/web/crypto.js +78 -0
  347. package/dist/web/crypto.js.map +1 -0
  348. package/dist/web/exchange.d.ts +23 -0
  349. package/dist/web/exchange.d.ts.map +1 -0
  350. package/dist/web/exchange.js +54 -0
  351. package/dist/web/exchange.js.map +1 -0
  352. package/dist/web/fragment.d.ts +58 -0
  353. package/dist/web/fragment.d.ts.map +1 -0
  354. package/dist/web/fragment.js +198 -0
  355. package/dist/web/fragment.js.map +1 -0
  356. package/dist/web/index.d.ts +25 -0
  357. package/dist/web/index.d.ts.map +1 -0
  358. package/dist/web/index.js +14 -0
  359. package/dist/web/index.js.map +1 -0
  360. package/dist/web/merge/index.d.ts +104 -0
  361. package/dist/web/merge/index.d.ts.map +1 -0
  362. package/dist/web/merge/index.js +236 -0
  363. package/dist/web/merge/index.js.map +1 -0
  364. package/dist/web/oplog/hlc.d.ts +19 -0
  365. package/dist/web/oplog/hlc.d.ts.map +1 -0
  366. package/dist/web/oplog/hlc.js +39 -0
  367. package/dist/web/oplog/hlc.js.map +1 -0
  368. package/dist/web/oplog/index.d.ts +10 -0
  369. package/dist/web/oplog/index.d.ts.map +1 -0
  370. package/dist/web/oplog/index.js +6 -0
  371. package/dist/web/oplog/index.js.map +1 -0
  372. package/dist/web/oplog/log.d.ts +182 -0
  373. package/dist/web/oplog/log.d.ts.map +1 -0
  374. package/dist/web/oplog/log.js +693 -0
  375. package/dist/web/oplog/log.js.map +1 -0
  376. package/dist/web/oplog/store.d.ts +40 -0
  377. package/dist/web/oplog/store.d.ts.map +1 -0
  378. package/dist/web/oplog/store.js +85 -0
  379. package/dist/web/oplog/store.js.map +1 -0
  380. package/dist/web/oplog/sync.d.ts +54 -0
  381. package/dist/web/oplog/sync.d.ts.map +1 -0
  382. package/dist/web/oplog/sync.js +162 -0
  383. package/dist/web/oplog/sync.js.map +1 -0
  384. package/dist/web/oplog/types.d.ts +119 -0
  385. package/dist/web/oplog/types.d.ts.map +1 -0
  386. package/dist/web/oplog/types.js +2 -0
  387. package/dist/web/oplog/types.js.map +1 -0
  388. package/dist/web/pairing.d.ts +186 -0
  389. package/dist/web/pairing.d.ts.map +1 -0
  390. package/dist/web/pairing.js +395 -0
  391. package/dist/web/pairing.js.map +1 -0
  392. package/dist/web/pq.d.ts +36 -0
  393. package/dist/web/pq.d.ts.map +1 -0
  394. package/dist/web/pq.js +59 -0
  395. package/dist/web/pq.js.map +1 -0
  396. package/dist/web/provider.d.ts +188 -0
  397. package/dist/web/provider.d.ts.map +1 -0
  398. package/dist/web/provider.js +2042 -0
  399. package/dist/web/provider.js.map +1 -0
  400. package/dist/web/rooms.d.ts +20 -0
  401. package/dist/web/rooms.d.ts.map +1 -0
  402. package/dist/web/rooms.js +51 -0
  403. package/dist/web/rooms.js.map +1 -0
  404. package/dist/web/rotation.d.ts +73 -0
  405. package/dist/web/rotation.d.ts.map +1 -0
  406. package/dist/web/rotation.js +130 -0
  407. package/dist/web/rotation.js.map +1 -0
  408. package/dist/web/secstate.d.ts +213 -0
  409. package/dist/web/secstate.d.ts.map +1 -0
  410. package/dist/web/secstate.js +789 -0
  411. package/dist/web/secstate.js.map +1 -0
  412. package/dist/web/store.d.ts +9 -0
  413. package/dist/web/store.d.ts.map +1 -0
  414. package/dist/web/store.js +32 -0
  415. package/dist/web/store.js.map +1 -0
  416. package/dist/web/transports/loopback.d.ts +11 -0
  417. package/dist/web/transports/loopback.d.ts.map +1 -0
  418. package/dist/web/transports/loopback.js +97 -0
  419. package/dist/web/transports/loopback.js.map +1 -0
  420. package/dist/web/transports/qr-sdp.d.ts +27 -0
  421. package/dist/web/transports/qr-sdp.d.ts.map +1 -0
  422. package/dist/web/transports/qr-sdp.js +131 -0
  423. package/dist/web/transports/qr-sdp.js.map +1 -0
  424. package/dist/web/transports/ws.d.ts +12 -0
  425. package/dist/web/transports/ws.d.ts.map +1 -0
  426. package/dist/web/transports/ws.js +139 -0
  427. package/dist/web/transports/ws.js.map +1 -0
  428. package/dist/web/trust/canonical.d.ts +8 -0
  429. package/dist/web/trust/canonical.d.ts.map +1 -0
  430. package/dist/web/trust/canonical.js +27 -0
  431. package/dist/web/trust/canonical.js.map +1 -0
  432. package/dist/web/trust/docs.d.ts +51 -0
  433. package/dist/web/trust/docs.d.ts.map +1 -0
  434. package/dist/web/trust/docs.js +170 -0
  435. package/dist/web/trust/docs.js.map +1 -0
  436. package/dist/web/trust/index.d.ts +10 -0
  437. package/dist/web/trust/index.d.ts.map +1 -0
  438. package/dist/web/trust/index.js +7 -0
  439. package/dist/web/trust/index.js.map +1 -0
  440. package/dist/web/trust/keys.d.ts +37 -0
  441. package/dist/web/trust/keys.d.ts.map +1 -0
  442. package/dist/web/trust/keys.js +75 -0
  443. package/dist/web/trust/keys.js.map +1 -0
  444. package/dist/web/trust/store.d.ts +150 -0
  445. package/dist/web/trust/store.d.ts.map +1 -0
  446. package/dist/web/trust/store.js +587 -0
  447. package/dist/web/trust/store.js.map +1 -0
  448. package/dist/web/trust/types.d.ts +134 -0
  449. package/dist/web/trust/types.d.ts.map +1 -0
  450. package/dist/web/trust/types.js +4 -0
  451. package/dist/web/trust/types.js.map +1 -0
  452. package/dist/web/types.d.ts +115 -0
  453. package/dist/web/types.d.ts.map +1 -0
  454. package/dist/web/types.js +2 -0
  455. package/dist/web/types.js.map +1 -0
  456. package/dist/web/util.d.ts +12 -0
  457. package/dist/web/util.d.ts.map +1 -0
  458. package/dist/web/util.js +54 -0
  459. package/dist/web/util.js.map +1 -0
  460. package/dist/web/webrtc.d.ts +35 -0
  461. package/dist/web/webrtc.d.ts.map +1 -0
  462. package/dist/web/webrtc.js +304 -0
  463. package/dist/web/webrtc.js.map +1 -0
  464. package/package.json +138 -4
@@ -0,0 +1,61 @@
1
+ import type { EdgeMesh } from "../../edge-mesh.js";
2
+ export type GpuKernelType = "vector-sum" | "dot" | "matrix-scale";
3
+ export interface GpuTask {
4
+ readonly id: string;
5
+ readonly kernel: GpuKernelType;
6
+ readonly inputA: readonly number[];
7
+ readonly inputB?: readonly number[];
8
+ readonly scalar?: number;
9
+ }
10
+ export interface GpuTaskResult {
11
+ readonly taskId: string;
12
+ readonly result: readonly number[] | number;
13
+ readonly durationMs: number;
14
+ readonly fallbackUsed: boolean;
15
+ readonly success: boolean;
16
+ readonly error?: string;
17
+ }
18
+ export declare function runCpuVectorSum(a: readonly number[], b: readonly number[]): number[];
19
+ export declare function runCpuDot(a: readonly number[], b: readonly number[]): number;
20
+ export declare function runCpuMatrixScale(matrix: readonly number[], scalar: number): number[];
21
+ export declare class GpuAgentPlugin {
22
+ private readonly edgeMesh?;
23
+ private readonly taskQueue;
24
+ private mockDevice;
25
+ constructor(edgeMesh?: EdgeMesh);
26
+ /**
27
+ * Obtiene la instancia asociada de EdgeMesh.
28
+ */
29
+ getEdgeMesh(): EdgeMesh | undefined;
30
+ /**
31
+ * Configura un dispositivo mock de WebGPU para propósitos de prueba/depuración.
32
+ */
33
+ setMockDevice(device: any): void;
34
+ /**
35
+ * Obtiene el tamaño de la cola de tareas.
36
+ */
37
+ getQueueSize(): number;
38
+ /**
39
+ * Detecta si WebGPU está soportado y disponible.
40
+ */
41
+ isWebGpuSupported(): boolean;
42
+ /**
43
+ * Ejecuta un kernel en CPU.
44
+ */
45
+ executeOnCpu(task: GpuTask): readonly number[] | number;
46
+ /**
47
+ * Ejecuta una tarea en GPU usando WebGPU.
48
+ */
49
+ executeOnGpu(task: GpuTask): Promise<readonly number[] | number>;
50
+ /**
51
+ * Encola y ejecuta una tarea. Si WebGPU está disponible e inicia correctamente,
52
+ * se ejecuta en GPU. De lo contrario, se activa automáticamente el CPU fallback.
53
+ */
54
+ enqueueTask(task: GpuTask): Promise<GpuTaskResult>;
55
+ /**
56
+ * Hook/Método de verificación para validar que el resultado de una tarea sea correcto.
57
+ * Ejecuta el cálculo correspondiente en CPU y lo compara con un margen de tolerancia (épsilon).
58
+ */
59
+ verifyTask(task: GpuTask, resultToVerify: readonly number[] | number, tolerance?: number): boolean;
60
+ }
61
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/gpu-agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAWnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,KAAK,GAAG,cAAc,CAAC;AAElE,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,eAAe,CAC9B,CAAC,EAAE,SAAS,MAAM,EAAE,EACpB,CAAC,EAAE,SAAS,MAAM,EAAE,GAClB,MAAM,EAAE,CAWV;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAW5E;AAED,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,MAAM,EAAE,MAAM,GACZ,MAAM,EAAE,CAMV;AAmDD,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAI3C,OAAO,CAAC,UAAU,CAAa;IAE/B,YAAY,QAAQ,CAAC,EAAE,QAAQ,EAE9B;IAED;;OAEG;IACH,WAAW,IAAI,QAAQ,GAAG,SAAS,CAElC;IAED;;OAEG;IAEH,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAE/B;IAED;;OAEG;IACH,YAAY,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAO3B;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,CAuBtD;IAED;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,CA6JrE;IAED;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAgDvD;IAED;;;OAGG;IACH,UAAU,CACT,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAC1C,SAAS,SAAO,GACd,OAAO,CA4BT;CACD"}
@@ -0,0 +1,364 @@
1
+ // ─── CPU FALLBACKS ─────────────────────────────────────────────────────────
2
+ export function runCpuVectorSum(a, b) {
3
+ if (a.length !== b.length) {
4
+ throw new Error(`Mismatched lengths for vector-sum: ${a.length} vs ${b.length}`);
5
+ }
6
+ const result = new Array(a.length);
7
+ for (let i = 0; i < a.length; i++) {
8
+ result[i] = a[i] + b[i];
9
+ }
10
+ return result;
11
+ }
12
+ export function runCpuDot(a, b) {
13
+ if (a.length !== b.length) {
14
+ throw new Error(`Mismatched lengths for dot product: ${a.length} vs ${b.length}`);
15
+ }
16
+ let sum = 0;
17
+ for (let i = 0; i < a.length; i++) {
18
+ sum += a[i] * b[i];
19
+ }
20
+ return sum;
21
+ }
22
+ export function runCpuMatrixScale(matrix, scalar) {
23
+ const result = new Array(matrix.length);
24
+ for (let i = 0; i < matrix.length; i++) {
25
+ result[i] = matrix[i] * scalar;
26
+ }
27
+ return result;
28
+ }
29
+ // ─── WGSL SHADERS ──────────────────────────────────────────────────────────
30
+ const SHADER_VECTOR_SUM = `
31
+ @group(0) @binding(0) var<storage, read> inputA: array<f32>;
32
+ @group(0) @binding(1) var<storage, read> inputB: array<f32>;
33
+ @group(0) @binding(2) var<storage, read_write> output: array<f32>;
34
+
35
+ @compute @workgroup_size(64)
36
+ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
37
+ let index = global_id.x;
38
+ if (index >= arrayLength(&inputA)) {
39
+ return;
40
+ }
41
+ output[index] = inputA[index] + inputB[index];
42
+ }
43
+ `;
44
+ const SHADER_DOT_MULTIPLY = `
45
+ @group(0) @binding(0) var<storage, read> inputA: array<f32>;
46
+ @group(0) @binding(1) var<storage, read> inputB: array<f32>;
47
+ @group(0) @binding(2) var<storage, read_write> output: array<f32>;
48
+
49
+ @compute @workgroup_size(64)
50
+ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
51
+ let index = global_id.x;
52
+ if (index >= arrayLength(&inputA)) {
53
+ return;
54
+ }
55
+ output[index] = inputA[index] * inputB[index];
56
+ }
57
+ `;
58
+ const SHADER_MATRIX_SCALE = `
59
+ @group(0) @binding(0) var<storage, read> inputA: array<f32>;
60
+ @group(0) @binding(1) var<storage, read> scalar: array<f32>;
61
+ @group(0) @binding(2) var<storage, read_write> output: array<f32>;
62
+
63
+ @compute @workgroup_size(64)
64
+ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
65
+ let index = global_id.x;
66
+ if (index >= arrayLength(&inputA)) {
67
+ return;
68
+ }
69
+ output[index] = inputA[index] * scalar[0];
70
+ }
71
+ `;
72
+ // ─── GPU AGENT PLUGIN CLASS ────────────────────────────────────────────────
73
+ export class GpuAgentPlugin {
74
+ edgeMesh;
75
+ taskQueue = [];
76
+ // Permitir inyección de mock GPUDevice para facilitar pruebas en el futuro si es necesario
77
+ // biome-ignore lint/suspicious/noExplicitAny: Mock WebGPU device
78
+ mockDevice = null;
79
+ constructor(edgeMesh) {
80
+ this.edgeMesh = edgeMesh;
81
+ }
82
+ /**
83
+ * Obtiene la instancia asociada de EdgeMesh.
84
+ */
85
+ getEdgeMesh() {
86
+ return this.edgeMesh;
87
+ }
88
+ /**
89
+ * Configura un dispositivo mock de WebGPU para propósitos de prueba/depuración.
90
+ */
91
+ // biome-ignore lint/suspicious/noExplicitAny: Mock WebGPU device
92
+ setMockDevice(device) {
93
+ this.mockDevice = device;
94
+ }
95
+ /**
96
+ * Obtiene el tamaño de la cola de tareas.
97
+ */
98
+ getQueueSize() {
99
+ return this.taskQueue.length;
100
+ }
101
+ /**
102
+ * Detecta si WebGPU está soportado y disponible.
103
+ */
104
+ isWebGpuSupported() {
105
+ if (this.mockDevice)
106
+ return true;
107
+ return (typeof navigator !== "undefined" &&
108
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU navigator property
109
+ typeof navigator.gpu !== "undefined");
110
+ }
111
+ /**
112
+ * Ejecuta un kernel en CPU.
113
+ */
114
+ executeOnCpu(task) {
115
+ switch (task.kernel) {
116
+ case "vector-sum": {
117
+ if (!task.inputB) {
118
+ throw new Error("Missing inputB for vector-sum task");
119
+ }
120
+ return runCpuVectorSum(task.inputA, task.inputB);
121
+ }
122
+ case "dot": {
123
+ if (!task.inputB) {
124
+ throw new Error("Missing inputB for dot task");
125
+ }
126
+ return runCpuDot(task.inputA, task.inputB);
127
+ }
128
+ case "matrix-scale": {
129
+ if (task.scalar === undefined) {
130
+ throw new Error("Missing scalar for matrix-scale task");
131
+ }
132
+ return runCpuMatrixScale(task.inputA, task.scalar);
133
+ }
134
+ default:
135
+ throw new Error("Unknown kernel type");
136
+ }
137
+ }
138
+ /**
139
+ * Ejecuta una tarea en GPU usando WebGPU.
140
+ */
141
+ async executeOnGpu(task) {
142
+ if (!this.isWebGpuSupported()) {
143
+ throw new Error("WebGPU is not supported on this platform");
144
+ }
145
+ // 1. Obtener dispositivo (usar mock si existe)
146
+ let device = this.mockDevice;
147
+ if (!device) {
148
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU navigator property
149
+ const gpu = navigator.gpu;
150
+ const adapter = await gpu.requestAdapter();
151
+ if (!adapter) {
152
+ throw new Error("No WebGPU adapter found");
153
+ }
154
+ device = await adapter.requestDevice();
155
+ if (!device) {
156
+ throw new Error("No WebGPU device found");
157
+ }
158
+ }
159
+ // 2. Determinar el shader correcto
160
+ let shaderCode = "";
161
+ switch (task.kernel) {
162
+ case "vector-sum":
163
+ shaderCode = SHADER_VECTOR_SUM;
164
+ break;
165
+ case "dot":
166
+ shaderCode = SHADER_DOT_MULTIPLY;
167
+ break;
168
+ case "matrix-scale":
169
+ shaderCode = SHADER_MATRIX_SCALE;
170
+ break;
171
+ default:
172
+ throw new Error(`Unsupported kernel on GPU: ${task.kernel}`);
173
+ }
174
+ // 3. Crear buffers de entrada
175
+ const arrayA = new Float32Array(task.inputA);
176
+ const bufferA = device.createBuffer({
177
+ size: arrayA.byteLength,
178
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU type bypass
179
+ usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
180
+ mappedAtCreation: true,
181
+ });
182
+ new Float32Array(bufferA.getMappedRange()).set(arrayA);
183
+ bufferA.unmap();
184
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU buffer type bypass
185
+ let bufferB = null;
186
+ if (task.kernel === "vector-sum" || task.kernel === "dot") {
187
+ if (!task.inputB) {
188
+ throw new Error(`Missing inputB for ${task.kernel}`);
189
+ }
190
+ const arrayB = new Float32Array(task.inputB);
191
+ bufferB = device.createBuffer({
192
+ size: arrayB.byteLength,
193
+ usage:
194
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU type bypass
195
+ GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
196
+ mappedAtCreation: true,
197
+ });
198
+ new Float32Array(bufferB.getMappedRange()).set(arrayB);
199
+ bufferB.unmap();
200
+ }
201
+ else if (task.kernel === "matrix-scale") {
202
+ if (task.scalar === undefined) {
203
+ throw new Error("Missing scalar for matrix-scale");
204
+ }
205
+ const arrayScalar = new Float32Array([task.scalar]);
206
+ bufferB = device.createBuffer({
207
+ size: arrayScalar.byteLength,
208
+ usage:
209
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU type bypass
210
+ GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,
211
+ mappedAtCreation: true,
212
+ });
213
+ new Float32Array(bufferB.getMappedRange()).set(arrayScalar);
214
+ bufferB.unmap();
215
+ }
216
+ // Buffer de salida
217
+ const outputSize = arrayA.byteLength;
218
+ const bufferOutput = device.createBuffer({
219
+ size: outputSize,
220
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU type bypass
221
+ usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
222
+ });
223
+ // Buffer para leer resultados en CPU
224
+ const bufferRead = device.createBuffer({
225
+ size: outputSize,
226
+ usage:
227
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU type bypass
228
+ GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
229
+ });
230
+ // 4. Configurar pipeline y bindgroups
231
+ const shaderModule = device.createShaderModule({ code: shaderCode });
232
+ const computePipeline = device.createComputePipeline({
233
+ layout: "auto",
234
+ compute: {
235
+ module: shaderModule,
236
+ entryPoint: "main",
237
+ },
238
+ });
239
+ const bindGroup = device.createBindGroup({
240
+ layout: computePipeline.getBindGroupLayout(0),
241
+ entries: [
242
+ { binding: 0, resource: { buffer: bufferA } },
243
+ { binding: 1, resource: { buffer: bufferB } },
244
+ { binding: 2, resource: { buffer: bufferOutput } },
245
+ ],
246
+ });
247
+ // 5. Grabar y enviar comandos
248
+ const commandEncoder = device.createCommandEncoder();
249
+ const passEncoder = commandEncoder.beginComputePass();
250
+ passEncoder.setPipeline(computePipeline);
251
+ passEncoder.setBindGroup(0, bindGroup);
252
+ const workgroupCount = Math.ceil(task.inputA.length / 64);
253
+ passEncoder.dispatchWorkgroups(workgroupCount);
254
+ passEncoder.end();
255
+ commandEncoder.copyBufferToBuffer(bufferOutput, 0, bufferRead, 0, outputSize);
256
+ device.queue.submit([commandEncoder.finish()]);
257
+ // 6. Leer resultados
258
+ // biome-ignore lint/suspicious/noExplicitAny: WebGPU type bypass
259
+ await bufferRead.mapAsync(GPUMapMode.READ);
260
+ const arrayBuffer = bufferRead.getMappedRange();
261
+ const outputArray = Array.from(new Float32Array(arrayBuffer));
262
+ bufferRead.unmap();
263
+ // Liberar buffers
264
+ bufferA.destroy();
265
+ bufferB.destroy();
266
+ bufferOutput.destroy();
267
+ bufferRead.destroy();
268
+ // 7. Procesar resultado final según tipo de kernel
269
+ if (task.kernel === "dot") {
270
+ // Reducción final en CPU de la multiplicación elemento por elemento
271
+ let sum = 0;
272
+ for (let i = 0; i < outputArray.length; i++) {
273
+ sum += outputArray[i];
274
+ }
275
+ return sum;
276
+ }
277
+ return outputArray;
278
+ }
279
+ /**
280
+ * Encola y ejecuta una tarea. Si WebGPU está disponible e inicia correctamente,
281
+ * se ejecuta en GPU. De lo contrario, se activa automáticamente el CPU fallback.
282
+ */
283
+ async enqueueTask(task) {
284
+ this.taskQueue.push(task);
285
+ const startTime = Date.now();
286
+ let result = [];
287
+ let fallbackUsed = true;
288
+ let success = false;
289
+ let errorMsg;
290
+ try {
291
+ if (this.isWebGpuSupported()) {
292
+ try {
293
+ result = await this.executeOnGpu(task);
294
+ fallbackUsed = false;
295
+ success = true;
296
+ }
297
+ catch (gpuError) {
298
+ // Fallback silencioso a CPU si la ejecución en GPU falla
299
+ result = this.executeOnCpu(task);
300
+ fallbackUsed = true;
301
+ success = true;
302
+ errorMsg = `WebGPU execution failed, fell back to CPU: ${gpuError.message}`;
303
+ }
304
+ }
305
+ else {
306
+ result = this.executeOnCpu(task);
307
+ fallbackUsed = true;
308
+ success = true;
309
+ }
310
+ }
311
+ catch (err) {
312
+ success = false;
313
+ errorMsg = err.message;
314
+ }
315
+ finally {
316
+ // Quitar la tarea de la cola
317
+ const idx = this.taskQueue.findIndex((t) => t.id === task.id);
318
+ if (idx !== -1) {
319
+ this.taskQueue.splice(idx, 1);
320
+ }
321
+ }
322
+ const durationMs = Date.now() - startTime;
323
+ return {
324
+ taskId: task.id,
325
+ result,
326
+ durationMs,
327
+ fallbackUsed,
328
+ success,
329
+ error: errorMsg,
330
+ };
331
+ }
332
+ /**
333
+ * Hook/Método de verificación para validar que el resultado de una tarea sea correcto.
334
+ * Ejecuta el cálculo correspondiente en CPU y lo compara con un margen de tolerancia (épsilon).
335
+ */
336
+ verifyTask(task, resultToVerify, tolerance = 1e-5) {
337
+ try {
338
+ const expected = this.executeOnCpu(task);
339
+ if (typeof expected === "number") {
340
+ if (typeof resultToVerify !== "number")
341
+ return false;
342
+ return Math.abs(expected - resultToVerify) <= tolerance;
343
+ }
344
+ if (Array.isArray(expected)) {
345
+ if (!Array.isArray(resultToVerify))
346
+ return false;
347
+ if (expected.length !== resultToVerify.length)
348
+ return false;
349
+ for (let i = 0; i < expected.length; i++) {
350
+ if (Math.abs(expected[i] - resultToVerify[i]) >
351
+ tolerance) {
352
+ return false;
353
+ }
354
+ }
355
+ return true;
356
+ }
357
+ return false;
358
+ }
359
+ catch {
360
+ return false;
361
+ }
362
+ }
363
+ }
364
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/gpu-agent/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { EdgeMesh } from "../../edge-mesh.js";
2
+ import type { CitaInfo } from "./types.js";
3
+ export declare class CitaMeshAdapter {
4
+ private readonly mesh;
5
+ constructor(mesh: EdgeMesh);
6
+ /**
7
+ * Crea una cita médica replicada en el mesh.
8
+ */
9
+ createCita(citaInfo: CitaInfo): Promise<void>;
10
+ /**
11
+ * Sincroniza citas offline-first para un paciente.
12
+ */
13
+ syncCitas(patientId: string): Promise<CitaInfo[]>;
14
+ /**
15
+ * Consulta disponibilidad de un médico en una fecha específica vía mesh.
16
+ */
17
+ getAvailability(doctorId: string, fecha: string): Promise<string[]>;
18
+ }
19
+ //# sourceMappingURL=citas-distribuidas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citas-distribuidas.d.ts","sourceRoot":"","sources":["../../../src/adapters/maloca-salud/citas-distribuidas.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,YAAY,IAAI,EAAE,QAAQ,EAEzB;IAED;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlD;IAED;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAItD;IAED;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2BxE;CACD"}
@@ -0,0 +1,51 @@
1
+ import * as Y from "yjs";
2
+ export class CitaMeshAdapter {
3
+ mesh;
4
+ constructor(mesh) {
5
+ this.mesh = mesh;
6
+ }
7
+ /**
8
+ * Crea una cita médica replicada en el mesh.
9
+ */
10
+ async createCita(citaInfo) {
11
+ const citas = this.mesh.yjsAdapter.getArray("maloca-salud:citas");
12
+ Y.transact(this.mesh.yjsAdapter.doc, () => {
13
+ citas.push([citaInfo]);
14
+ });
15
+ }
16
+ /**
17
+ * Sincroniza citas offline-first para un paciente.
18
+ */
19
+ async syncCitas(patientId) {
20
+ const citas = this.mesh.yjsAdapter.getArray("maloca-salud:citas");
21
+ const allCitas = citas.toArray();
22
+ return allCitas.filter((c) => c.pacienteId === patientId);
23
+ }
24
+ /**
25
+ * Consulta disponibilidad de un médico en una fecha específica vía mesh.
26
+ */
27
+ async getAvailability(doctorId, fecha) {
28
+ const citas = this.mesh.yjsAdapter.getArray("maloca-salud:citas");
29
+ const allCitas = citas.toArray();
30
+ // Suponemos horario de 8:00 a 17:00 cada hora
31
+ const horario = [
32
+ "08:00",
33
+ "09:00",
34
+ "10:00",
35
+ "11:00",
36
+ "12:00",
37
+ "13:00",
38
+ "14:00",
39
+ "15:00",
40
+ "16:00",
41
+ "17:00",
42
+ ];
43
+ const ocupados = allCitas
44
+ .filter((c) => c.medicoId === doctorId &&
45
+ c.fecha === fecha &&
46
+ c.estado !== "cancelada")
47
+ .map((c) => c.hora);
48
+ return horario.filter((h) => !ocupados.includes(h));
49
+ }
50
+ }
51
+ //# sourceMappingURL=citas-distribuidas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citas-distribuidas.js","sourceRoot":"","sources":["../../../src/adapters/maloca-salud/citas-distribuidas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,MAAM,OAAO,eAAe;IACV,IAAI,CAAW;IAEhC,YAAY,IAAc;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAkB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAElE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YACzC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAgB,CAAC;QAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,KAAa;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAgB,CAAC;QAE/C,8CAA8C;QAC9C,MAAM,OAAO,GAAG;YACf,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;SACP,CAAC;QACF,MAAM,QAAQ,GAAG,QAAQ;aACvB,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACvB,CAAC,CAAC,KAAK,KAAK,KAAK;YACjB,CAAC,CAAC,MAAM,KAAK,WAAW,CACzB;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAErB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;CACD"}
@@ -0,0 +1,15 @@
1
+ import type { EdgeMesh } from "../../edge-mesh.js";
2
+ import type { EPSData } from "./types.js";
3
+ export declare class EPSBridge {
4
+ private readonly mesh;
5
+ constructor(mesh: EdgeMesh);
6
+ /**
7
+ * Sincroniza datos de la EPS al mesh.
8
+ */
9
+ syncEPSData(epsData: EPSData): Promise<void>;
10
+ /**
11
+ * Verifica afiliación EPS de un paciente vía mesh.
12
+ */
13
+ verifyEPS(patientId: string, epsId: string): Promise<boolean>;
14
+ }
15
+ //# sourceMappingURL=eps-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eps-bridge.d.ts","sourceRoot":"","sources":["../../../src/adapters/maloca-salud/eps-bridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,YAAY,IAAI,EAAE,QAAQ,EAEzB;IAED;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjD;IAED;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlE;CACD"}
@@ -0,0 +1,27 @@
1
+ import * as Y from "yjs";
2
+ export class EPSBridge {
3
+ mesh;
4
+ constructor(mesh) {
5
+ this.mesh = mesh;
6
+ }
7
+ /**
8
+ * Sincroniza datos de la EPS al mesh.
9
+ */
10
+ async syncEPSData(epsData) {
11
+ const epsMap = this.mesh.yjsAdapter.getMap("maloca-salud:eps-data");
12
+ Y.transact(this.mesh.yjsAdapter.doc, () => {
13
+ epsMap.set(epsData.id, epsData);
14
+ });
15
+ }
16
+ /**
17
+ * Verifica afiliación EPS de un paciente vía mesh.
18
+ */
19
+ async verifyEPS(patientId, epsId) {
20
+ const epsMap = this.mesh.yjsAdapter.getMap("maloca-salud:eps-data");
21
+ const epsData = epsMap.get(epsId);
22
+ if (epsData === undefined)
23
+ return false;
24
+ return epsData.pacientesAfiliados.includes(patientId);
25
+ }
26
+ }
27
+ //# sourceMappingURL=eps-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eps-bridge.js","sourceRoot":"","sources":["../../../src/adapters/maloca-salud/eps-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,MAAM,OAAO,SAAS;IACJ,IAAI,CAAW;IAEhC,YAAY,IAAc;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAgB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAEpE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,KAAa;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAwB,CAAC;QAEzD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAExC,OAAO,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACD"}
@@ -0,0 +1,20 @@
1
+ import type { EdgeMesh } from "../../edge-mesh.js";
2
+ import type { PostQuantumIdentity } from "../../identity/index.js";
3
+ import type { PacientePerfil } from "./types.js";
4
+ export declare class PerfilPacienteAdapter {
5
+ private readonly mesh;
6
+ constructor(mesh: EdgeMesh);
7
+ /**
8
+ * Registra un paciente como nodo mesh vinculando su perfil e identidad.
9
+ */
10
+ registerPatient(perfil: PacientePerfil, _identidad: PostQuantumIdentity): Promise<void>;
11
+ /**
12
+ * Obtiene el historial médico de un paciente vía sync mesh.
13
+ */
14
+ getMedicalHistory(patientId: string): Promise<unknown[]>;
15
+ /**
16
+ * Vincula paciente-médico en el mesh.
17
+ */
18
+ linkDoctor(patientId: string, doctorId: string): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=patient-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-profile.d.ts","sourceRoot":"","sources":["../../../src/adapters/maloca-salud/patient-profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,qBAAqB;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,YAAY,IAAI,EAAE,QAAQ,EAEzB;IAED;;OAEG;IACG,eAAe,CACpB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,mBAAmB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAMf;IAED;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAK7D;IAED;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE;CACD"}
@@ -0,0 +1,36 @@
1
+ import * as Y from "yjs";
2
+ export class PerfilPacienteAdapter {
3
+ mesh;
4
+ constructor(mesh) {
5
+ this.mesh = mesh;
6
+ }
7
+ /**
8
+ * Registra un paciente como nodo mesh vinculando su perfil e identidad.
9
+ */
10
+ async registerPatient(perfil, _identidad) {
11
+ const pacientes = this.mesh.yjsAdapter.getMap("maloca-salud:pacientes");
12
+ Y.transact(this.mesh.yjsAdapter.doc, () => {
13
+ pacientes.set(perfil.id, perfil);
14
+ });
15
+ }
16
+ /**
17
+ * Obtiene el historial médico de un paciente vía sync mesh.
18
+ */
19
+ async getMedicalHistory(patientId) {
20
+ const historiales = this.mesh.yjsAdapter.getArray(`maloca-salud:historial:${patientId}`);
21
+ return historiales.toArray();
22
+ }
23
+ /**
24
+ * Vincula paciente-médico en el mesh.
25
+ */
26
+ async linkDoctor(patientId, doctorId) {
27
+ const links = this.mesh.yjsAdapter.getMap("maloca-salud:links-paciente-medico");
28
+ Y.transact(this.mesh.yjsAdapter.doc, () => {
29
+ const existing = links.get(patientId) || [];
30
+ if (!existing.includes(doctorId)) {
31
+ links.set(patientId, [...existing, doctorId]);
32
+ }
33
+ });
34
+ }
35
+ }
36
+ //# sourceMappingURL=patient-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient-profile.js","sourceRoot":"","sources":["../../../src/adapters/maloca-salud/patient-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAKzB,MAAM,OAAO,qBAAqB;IAChB,IAAI,CAAW;IAEhC,YAAY,IAAc;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACpB,MAAsB,EACtB,UAA+B;QAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAExE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YACzC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAChD,0BAA0B,SAAS,EAAE,CACrC,CAAC;QACF,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,QAAgB;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CACxC,oCAAoC,CACpC,CAAC;QAEF,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;YACzC,MAAM,QAAQ,GAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAc,IAAI,EAAE,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}