agentic-qe 3.2.3 → 3.3.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 (658) hide show
  1. package/.claude/agents/v3/qe-accessibility-auditor.md +90 -0
  2. package/README.md +49 -7
  3. package/package.json +8 -2
  4. package/scripts/cloud-db-config.json +37 -0
  5. package/scripts/cloud-db-connect.sh +37 -0
  6. package/scripts/cloud-db-tunnel.sh +23 -0
  7. package/v3/CHANGELOG.md +253 -0
  8. package/v3/README.md +59 -1
  9. package/v3/assets/agents/v3/qe-accessibility-auditor.md +90 -0
  10. package/v3/dist/adapters/claude-flow/index.d.ts +54 -0
  11. package/v3/dist/adapters/claude-flow/index.d.ts.map +1 -0
  12. package/v3/dist/adapters/claude-flow/index.js +79 -0
  13. package/v3/dist/adapters/claude-flow/index.js.map +1 -0
  14. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts +70 -0
  15. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts.map +1 -0
  16. package/v3/dist/adapters/claude-flow/model-router-bridge.js +203 -0
  17. package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -0
  18. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts +73 -0
  19. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -0
  20. package/v3/dist/adapters/claude-flow/pretrain-bridge.js +276 -0
  21. package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -0
  22. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts +70 -0
  23. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -0
  24. package/v3/dist/adapters/claude-flow/trajectory-bridge.js +205 -0
  25. package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -0
  26. package/v3/dist/adapters/claude-flow/types.d.ts +99 -0
  27. package/v3/dist/adapters/claude-flow/types.d.ts.map +1 -0
  28. package/v3/dist/adapters/claude-flow/types.js +6 -0
  29. package/v3/dist/adapters/claude-flow/types.js.map +1 -0
  30. package/v3/dist/causal-discovery/causal-graph.d.ts +80 -1
  31. package/v3/dist/causal-discovery/causal-graph.d.ts.map +1 -1
  32. package/v3/dist/causal-discovery/causal-graph.js +111 -1
  33. package/v3/dist/causal-discovery/causal-graph.js.map +1 -1
  34. package/v3/dist/cli/bundle.js +25321 -15378
  35. package/v3/dist/cli/command-registry.d.ts +55 -0
  36. package/v3/dist/cli/command-registry.d.ts.map +1 -0
  37. package/v3/dist/cli/command-registry.js +103 -0
  38. package/v3/dist/cli/command-registry.js.map +1 -0
  39. package/v3/dist/cli/commands/claude-flow-setup.d.ts +82 -0
  40. package/v3/dist/cli/commands/claude-flow-setup.d.ts.map +1 -0
  41. package/v3/dist/cli/commands/claude-flow-setup.js +334 -0
  42. package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -0
  43. package/v3/dist/cli/commands/code.d.ts +9 -0
  44. package/v3/dist/cli/commands/code.d.ts.map +1 -0
  45. package/v3/dist/cli/commands/code.js +254 -0
  46. package/v3/dist/cli/commands/code.js.map +1 -0
  47. package/v3/dist/cli/commands/completions.d.ts +8 -0
  48. package/v3/dist/cli/commands/completions.d.ts.map +1 -0
  49. package/v3/dist/cli/commands/completions.js +99 -0
  50. package/v3/dist/cli/commands/completions.js.map +1 -0
  51. package/v3/dist/cli/commands/coverage.d.ts +9 -0
  52. package/v3/dist/cli/commands/coverage.d.ts.map +1 -0
  53. package/v3/dist/cli/commands/coverage.js +208 -0
  54. package/v3/dist/cli/commands/coverage.js.map +1 -0
  55. package/v3/dist/cli/commands/fleet.d.ts +11 -0
  56. package/v3/dist/cli/commands/fleet.d.ts.map +1 -0
  57. package/v3/dist/cli/commands/fleet.js +338 -0
  58. package/v3/dist/cli/commands/fleet.js.map +1 -0
  59. package/v3/dist/cli/commands/hooks.d.ts +2 -0
  60. package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
  61. package/v3/dist/cli/commands/hooks.js +13 -2
  62. package/v3/dist/cli/commands/hooks.js.map +1 -1
  63. package/v3/dist/cli/commands/init.d.ts +19 -0
  64. package/v3/dist/cli/commands/init.d.ts.map +1 -0
  65. package/v3/dist/cli/commands/init.js +345 -0
  66. package/v3/dist/cli/commands/init.js.map +1 -0
  67. package/v3/dist/cli/commands/migrate.d.ts +9 -0
  68. package/v3/dist/cli/commands/migrate.d.ts.map +1 -0
  69. package/v3/dist/cli/commands/migrate.js +566 -0
  70. package/v3/dist/cli/commands/migrate.js.map +1 -0
  71. package/v3/dist/cli/commands/quality.d.ts +9 -0
  72. package/v3/dist/cli/commands/quality.d.ts.map +1 -0
  73. package/v3/dist/cli/commands/quality.js +40 -0
  74. package/v3/dist/cli/commands/quality.js.map +1 -0
  75. package/v3/dist/cli/commands/security.d.ts +9 -0
  76. package/v3/dist/cli/commands/security.d.ts.map +1 -0
  77. package/v3/dist/cli/commands/security.js +124 -0
  78. package/v3/dist/cli/commands/security.js.map +1 -0
  79. package/v3/dist/cli/commands/sync.d.ts +19 -0
  80. package/v3/dist/cli/commands/sync.d.ts.map +1 -0
  81. package/v3/dist/cli/commands/sync.js +283 -0
  82. package/v3/dist/cli/commands/sync.js.map +1 -0
  83. package/v3/dist/cli/commands/test.d.ts +9 -0
  84. package/v3/dist/cli/commands/test.d.ts.map +1 -0
  85. package/v3/dist/cli/commands/test.js +166 -0
  86. package/v3/dist/cli/commands/test.js.map +1 -0
  87. package/v3/dist/cli/handlers/agent-handler.d.ts +20 -0
  88. package/v3/dist/cli/handlers/agent-handler.d.ts.map +1 -0
  89. package/v3/dist/cli/handlers/agent-handler.js +158 -0
  90. package/v3/dist/cli/handlers/agent-handler.js.map +1 -0
  91. package/v3/dist/cli/handlers/domain-handler.d.ts +20 -0
  92. package/v3/dist/cli/handlers/domain-handler.d.ts.map +1 -0
  93. package/v3/dist/cli/handlers/domain-handler.js +115 -0
  94. package/v3/dist/cli/handlers/domain-handler.js.map +1 -0
  95. package/v3/dist/cli/handlers/index.d.ts +13 -0
  96. package/v3/dist/cli/handlers/index.d.ts.map +1 -0
  97. package/v3/dist/cli/handlers/index.js +15 -0
  98. package/v3/dist/cli/handlers/index.js.map +1 -0
  99. package/v3/dist/cli/handlers/init-handler.d.ts +38 -0
  100. package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -0
  101. package/v3/dist/cli/handlers/init-handler.js +288 -0
  102. package/v3/dist/cli/handlers/init-handler.js.map +1 -0
  103. package/v3/dist/cli/handlers/interfaces.d.ts +104 -0
  104. package/v3/dist/cli/handlers/interfaces.d.ts.map +1 -0
  105. package/v3/dist/cli/handlers/interfaces.js +109 -0
  106. package/v3/dist/cli/handlers/interfaces.js.map +1 -0
  107. package/v3/dist/cli/handlers/protocol-handler.d.ts +19 -0
  108. package/v3/dist/cli/handlers/protocol-handler.d.ts.map +1 -0
  109. package/v3/dist/cli/handlers/protocol-handler.js +79 -0
  110. package/v3/dist/cli/handlers/protocol-handler.js.map +1 -0
  111. package/v3/dist/cli/handlers/status-handler.d.ts +30 -0
  112. package/v3/dist/cli/handlers/status-handler.d.ts.map +1 -0
  113. package/v3/dist/cli/handlers/status-handler.js +218 -0
  114. package/v3/dist/cli/handlers/status-handler.js.map +1 -0
  115. package/v3/dist/cli/handlers/task-handler.d.ts +22 -0
  116. package/v3/dist/cli/handlers/task-handler.d.ts.map +1 -0
  117. package/v3/dist/cli/handlers/task-handler.js +271 -0
  118. package/v3/dist/cli/handlers/task-handler.js.map +1 -0
  119. package/v3/dist/cli/index.d.ts +4 -0
  120. package/v3/dist/cli/index.d.ts.map +1 -1
  121. package/v3/dist/cli/index.js +62 -2583
  122. package/v3/dist/cli/index.js.map +1 -1
  123. package/v3/dist/cli/wizards/core/index.d.ts +11 -0
  124. package/v3/dist/cli/wizards/core/index.d.ts.map +1 -0
  125. package/v3/dist/cli/wizards/core/index.js +15 -0
  126. package/v3/dist/cli/wizards/core/index.js.map +1 -0
  127. package/v3/dist/cli/wizards/core/wizard-base.d.ts +87 -0
  128. package/v3/dist/cli/wizards/core/wizard-base.d.ts.map +1 -0
  129. package/v3/dist/cli/wizards/core/wizard-base.js +120 -0
  130. package/v3/dist/cli/wizards/core/wizard-base.js.map +1 -0
  131. package/v3/dist/cli/wizards/core/wizard-command.d.ts +182 -0
  132. package/v3/dist/cli/wizards/core/wizard-command.d.ts.map +1 -0
  133. package/v3/dist/cli/wizards/core/wizard-command.js +45 -0
  134. package/v3/dist/cli/wizards/core/wizard-command.js.map +1 -0
  135. package/v3/dist/cli/wizards/core/wizard-step.d.ts +109 -0
  136. package/v3/dist/cli/wizards/core/wizard-step.d.ts.map +1 -0
  137. package/v3/dist/cli/wizards/core/wizard-step.js +384 -0
  138. package/v3/dist/cli/wizards/core/wizard-step.js.map +1 -0
  139. package/v3/dist/cli/wizards/core/wizard-utils.d.ts +117 -0
  140. package/v3/dist/cli/wizards/core/wizard-utils.d.ts.map +1 -0
  141. package/v3/dist/cli/wizards/core/wizard-utils.js +291 -0
  142. package/v3/dist/cli/wizards/core/wizard-utils.js.map +1 -0
  143. package/v3/dist/cli/wizards/coverage-wizard.d.ts +13 -68
  144. package/v3/dist/cli/wizards/coverage-wizard.d.ts.map +1 -1
  145. package/v3/dist/cli/wizards/coverage-wizard.js +127 -391
  146. package/v3/dist/cli/wizards/coverage-wizard.js.map +1 -1
  147. package/v3/dist/cli/wizards/fleet-wizard.d.ts +13 -64
  148. package/v3/dist/cli/wizards/fleet-wizard.d.ts.map +1 -1
  149. package/v3/dist/cli/wizards/fleet-wizard.js +150 -363
  150. package/v3/dist/cli/wizards/fleet-wizard.js.map +1 -1
  151. package/v3/dist/cli/wizards/index.d.ts +2 -0
  152. package/v3/dist/cli/wizards/index.d.ts.map +1 -1
  153. package/v3/dist/cli/wizards/index.js +3 -0
  154. package/v3/dist/cli/wizards/index.js.map +1 -1
  155. package/v3/dist/cli/wizards/security-wizard.d.ts +13 -64
  156. package/v3/dist/cli/wizards/security-wizard.d.ts.map +1 -1
  157. package/v3/dist/cli/wizards/security-wizard.js +152 -395
  158. package/v3/dist/cli/wizards/security-wizard.js.map +1 -1
  159. package/v3/dist/cli/wizards/test-wizard.d.ts +13 -77
  160. package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
  161. package/v3/dist/cli/wizards/test-wizard.js +196 -328
  162. package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
  163. package/v3/dist/coordination/mincut/interfaces.d.ts +8 -2
  164. package/v3/dist/coordination/mincut/interfaces.d.ts.map +1 -1
  165. package/v3/dist/coordination/mincut/interfaces.js.map +1 -1
  166. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts +8 -0
  167. package/v3/dist/coordination/mincut/mincut-health-monitor.d.ts.map +1 -1
  168. package/v3/dist/coordination/mincut/mincut-health-monitor.js +26 -4
  169. package/v3/dist/coordination/mincut/mincut-health-monitor.js.map +1 -1
  170. package/v3/dist/coordination/mincut/queen-integration.d.ts +7 -0
  171. package/v3/dist/coordination/mincut/queen-integration.d.ts.map +1 -1
  172. package/v3/dist/coordination/mincut/queen-integration.js +19 -1
  173. package/v3/dist/coordination/mincut/queen-integration.js.map +1 -1
  174. package/v3/dist/coordination/queen-coordinator.d.ts +5 -0
  175. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  176. package/v3/dist/coordination/queen-coordinator.js +45 -7
  177. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  178. package/v3/dist/coordination/task-executor.js +2 -2
  179. package/v3/dist/coordination/task-executor.js.map +1 -1
  180. package/v3/dist/domains/chaos-resilience/plugin.js +2 -2
  181. package/v3/dist/domains/chaos-resilience/plugin.js.map +1 -1
  182. package/v3/dist/domains/code-intelligence/plugin.js +2 -2
  183. package/v3/dist/domains/code-intelligence/plugin.js.map +1 -1
  184. package/v3/dist/domains/contract-testing/plugin.js +2 -2
  185. package/v3/dist/domains/contract-testing/plugin.js.map +1 -1
  186. package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
  187. package/v3/dist/domains/coverage-analysis/plugin.js +2 -1
  188. package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
  189. package/v3/dist/domains/defect-intelligence/plugin.js +2 -2
  190. package/v3/dist/domains/defect-intelligence/plugin.js.map +1 -1
  191. package/v3/dist/domains/domain-interface.d.ts.map +1 -1
  192. package/v3/dist/domains/domain-interface.js +3 -1
  193. package/v3/dist/domains/domain-interface.js.map +1 -1
  194. package/v3/dist/domains/learning-optimization/coordinator.d.ts +5 -0
  195. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  196. package/v3/dist/domains/learning-optimization/coordinator.js +79 -0
  197. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  198. package/v3/dist/domains/learning-optimization/plugin.js +2 -2
  199. package/v3/dist/domains/learning-optimization/plugin.js.map +1 -1
  200. package/v3/dist/domains/quality-assessment/plugin.js +2 -2
  201. package/v3/dist/domains/quality-assessment/plugin.js.map +1 -1
  202. package/v3/dist/domains/requirements-validation/plugin.js +2 -2
  203. package/v3/dist/domains/requirements-validation/plugin.js.map +1 -1
  204. package/v3/dist/domains/security-compliance/plugin.js +2 -2
  205. package/v3/dist/domains/security-compliance/plugin.js.map +1 -1
  206. package/v3/dist/domains/test-execution/index.d.ts +2 -1
  207. package/v3/dist/domains/test-execution/index.d.ts.map +1 -1
  208. package/v3/dist/domains/test-execution/index.js +0 -2
  209. package/v3/dist/domains/test-execution/index.js.map +1 -1
  210. package/v3/dist/domains/test-execution/interfaces.d.ts +222 -25
  211. package/v3/dist/domains/test-execution/interfaces.d.ts.map +1 -1
  212. package/v3/dist/domains/test-execution/interfaces.js +130 -3
  213. package/v3/dist/domains/test-execution/interfaces.js.map +1 -1
  214. package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
  215. package/v3/dist/domains/test-execution/plugin.js +2 -1
  216. package/v3/dist/domains/test-execution/plugin.js.map +1 -1
  217. package/v3/dist/domains/test-execution/test-prioritization-types.d.ts +5 -172
  218. package/v3/dist/domains/test-execution/test-prioritization-types.d.ts.map +1 -1
  219. package/v3/dist/domains/test-execution/test-prioritization-types.js +6 -129
  220. package/v3/dist/domains/test-execution/test-prioritization-types.js.map +1 -1
  221. package/v3/dist/domains/test-execution/types/index.d.ts +7 -3
  222. package/v3/dist/domains/test-execution/types/index.d.ts.map +1 -1
  223. package/v3/dist/domains/test-execution/types/index.js +7 -17
  224. package/v3/dist/domains/test-execution/types/index.js.map +1 -1
  225. package/v3/dist/domains/test-generation/coordinator.d.ts +32 -1
  226. package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
  227. package/v3/dist/domains/test-generation/coordinator.js +72 -3
  228. package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
  229. package/v3/dist/domains/test-generation/factories/index.d.ts +8 -0
  230. package/v3/dist/domains/test-generation/factories/index.d.ts.map +1 -0
  231. package/v3/dist/domains/test-generation/factories/index.js +8 -0
  232. package/v3/dist/domains/test-generation/factories/index.js.map +1 -0
  233. package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts +108 -0
  234. package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -0
  235. package/v3/dist/domains/test-generation/factories/test-generator-factory.js +158 -0
  236. package/v3/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -0
  237. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts +79 -0
  238. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -0
  239. package/v3/dist/domains/test-generation/generators/base-test-generator.js +252 -0
  240. package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -0
  241. package/v3/dist/domains/test-generation/generators/index.d.ts +11 -0
  242. package/v3/dist/domains/test-generation/generators/index.d.ts.map +1 -0
  243. package/v3/dist/domains/test-generation/generators/index.js +13 -0
  244. package/v3/dist/domains/test-generation/generators/index.js.map +1 -0
  245. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts +77 -0
  246. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts.map +1 -0
  247. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js +365 -0
  248. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js.map +1 -0
  249. package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts +56 -0
  250. package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts.map +1 -0
  251. package/v3/dist/domains/test-generation/generators/mocha-generator.js +197 -0
  252. package/v3/dist/domains/test-generation/generators/mocha-generator.js.map +1 -0
  253. package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts +66 -0
  254. package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -0
  255. package/v3/dist/domains/test-generation/generators/pytest-generator.js +240 -0
  256. package/v3/dist/domains/test-generation/generators/pytest-generator.js.map +1 -0
  257. package/v3/dist/domains/test-generation/index.d.ts +2 -1
  258. package/v3/dist/domains/test-generation/index.d.ts.map +1 -1
  259. package/v3/dist/domains/test-generation/index.js +5 -1
  260. package/v3/dist/domains/test-generation/index.js.map +1 -1
  261. package/v3/dist/domains/test-generation/interfaces/index.d.ts +9 -0
  262. package/v3/dist/domains/test-generation/interfaces/index.d.ts.map +1 -0
  263. package/v3/dist/domains/test-generation/interfaces/index.js +9 -0
  264. package/v3/dist/domains/test-generation/interfaces/index.js.map +1 -0
  265. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts +166 -0
  266. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts.map +1 -0
  267. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.js +8 -0
  268. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.js.map +1 -0
  269. package/v3/dist/domains/test-generation/interfaces.d.ts +163 -24
  270. package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  271. package/v3/dist/domains/test-generation/interfaces.js +2 -2
  272. package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
  273. package/v3/dist/domains/test-generation/plugin.js +6 -5
  274. package/v3/dist/domains/test-generation/plugin.js.map +1 -1
  275. package/v3/dist/domains/test-generation/services/coherence-gate-service.d.ts +245 -0
  276. package/v3/dist/domains/test-generation/services/coherence-gate-service.d.ts.map +1 -0
  277. package/v3/dist/domains/test-generation/services/coherence-gate-service.js +454 -0
  278. package/v3/dist/domains/test-generation/services/coherence-gate-service.js.map +1 -0
  279. package/v3/dist/domains/test-generation/services/index.d.ts +8 -1
  280. package/v3/dist/domains/test-generation/services/index.d.ts.map +1 -1
  281. package/v3/dist/domains/test-generation/services/index.js +10 -1
  282. package/v3/dist/domains/test-generation/services/index.js.map +1 -1
  283. package/v3/dist/domains/test-generation/services/property-test-generator.d.ts +34 -0
  284. package/v3/dist/domains/test-generation/services/property-test-generator.d.ts.map +1 -0
  285. package/v3/dist/domains/test-generation/services/property-test-generator.js +306 -0
  286. package/v3/dist/domains/test-generation/services/property-test-generator.js.map +1 -0
  287. package/v3/dist/domains/test-generation/services/tdd-generator.d.ts +33 -0
  288. package/v3/dist/domains/test-generation/services/tdd-generator.d.ts.map +1 -0
  289. package/v3/dist/domains/test-generation/services/tdd-generator.js +342 -0
  290. package/v3/dist/domains/test-generation/services/tdd-generator.js.map +1 -0
  291. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts +34 -0
  292. package/v3/dist/domains/test-generation/services/test-data-generator.d.ts.map +1 -0
  293. package/v3/dist/domains/test-generation/services/test-data-generator.js +245 -0
  294. package/v3/dist/domains/test-generation/services/test-data-generator.js.map +1 -0
  295. package/v3/dist/domains/test-generation/services/test-generator.d.ts +51 -160
  296. package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  297. package/v3/dist/domains/test-generation/services/test-generator.js +101 -1858
  298. package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
  299. package/v3/dist/domains/visual-accessibility/index.d.ts +2 -1
  300. package/v3/dist/domains/visual-accessibility/index.d.ts.map +1 -1
  301. package/v3/dist/domains/visual-accessibility/index.js +1 -0
  302. package/v3/dist/domains/visual-accessibility/index.js.map +1 -1
  303. package/v3/dist/domains/visual-accessibility/interfaces.d.ts +131 -0
  304. package/v3/dist/domains/visual-accessibility/interfaces.d.ts.map +1 -1
  305. package/v3/dist/domains/visual-accessibility/plugin.d.ts +26 -0
  306. package/v3/dist/domains/visual-accessibility/plugin.d.ts.map +1 -1
  307. package/v3/dist/domains/visual-accessibility/plugin.js +153 -2
  308. package/v3/dist/domains/visual-accessibility/plugin.js.map +1 -1
  309. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +42 -1
  310. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.d.ts.map +1 -1
  311. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js +69 -0
  312. package/v3/dist/domains/visual-accessibility/services/accessibility-tester.js.map +1 -1
  313. package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts +138 -0
  314. package/v3/dist/domains/visual-accessibility/services/eu-compliance.d.ts.map +1 -0
  315. package/v3/dist/domains/visual-accessibility/services/eu-compliance.js +830 -0
  316. package/v3/dist/domains/visual-accessibility/services/eu-compliance.js.map +1 -0
  317. package/v3/dist/domains/visual-accessibility/services/index.d.ts +1 -0
  318. package/v3/dist/domains/visual-accessibility/services/index.d.ts.map +1 -1
  319. package/v3/dist/domains/visual-accessibility/services/index.js +1 -0
  320. package/v3/dist/domains/visual-accessibility/services/index.js.map +1 -1
  321. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts +84 -0
  322. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -0
  323. package/v3/dist/init/enhancements/claude-flow-adapter.js +250 -0
  324. package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -0
  325. package/v3/dist/init/enhancements/detector.d.ts +10 -0
  326. package/v3/dist/init/enhancements/detector.d.ts.map +1 -0
  327. package/v3/dist/init/enhancements/detector.js +87 -0
  328. package/v3/dist/init/enhancements/detector.js.map +1 -0
  329. package/v3/dist/init/enhancements/index.d.ts +13 -0
  330. package/v3/dist/init/enhancements/index.d.ts.map +1 -0
  331. package/v3/dist/init/enhancements/index.js +25 -0
  332. package/v3/dist/init/enhancements/index.js.map +1 -0
  333. package/v3/dist/init/enhancements/types.d.ts +93 -0
  334. package/v3/dist/init/enhancements/types.d.ts.map +1 -0
  335. package/v3/dist/init/enhancements/types.js +6 -0
  336. package/v3/dist/init/enhancements/types.js.map +1 -0
  337. package/v3/dist/init/index.d.ts +8 -0
  338. package/v3/dist/init/index.d.ts.map +1 -1
  339. package/v3/dist/init/index.js +4 -0
  340. package/v3/dist/init/index.js.map +1 -1
  341. package/v3/dist/init/migration/config-migrator.d.ts +31 -0
  342. package/v3/dist/init/migration/config-migrator.d.ts.map +1 -0
  343. package/v3/dist/init/migration/config-migrator.js +133 -0
  344. package/v3/dist/init/migration/config-migrator.js.map +1 -0
  345. package/v3/dist/init/migration/data-migrator.d.ts +72 -0
  346. package/v3/dist/init/migration/data-migrator.d.ts.map +1 -0
  347. package/v3/dist/init/migration/data-migrator.js +233 -0
  348. package/v3/dist/init/migration/data-migrator.js.map +1 -0
  349. package/v3/dist/init/migration/detector.d.ts +44 -0
  350. package/v3/dist/init/migration/detector.d.ts.map +1 -0
  351. package/v3/dist/init/migration/detector.js +106 -0
  352. package/v3/dist/init/migration/detector.js.map +1 -0
  353. package/v3/dist/init/migration/index.d.ts +8 -0
  354. package/v3/dist/init/migration/index.d.ts.map +1 -0
  355. package/v3/dist/init/migration/index.js +8 -0
  356. package/v3/dist/init/migration/index.js.map +1 -0
  357. package/v3/dist/init/orchestrator.d.ts +68 -0
  358. package/v3/dist/init/orchestrator.d.ts.map +1 -0
  359. package/v3/dist/init/orchestrator.js +239 -0
  360. package/v3/dist/init/orchestrator.js.map +1 -0
  361. package/v3/dist/init/phases/01-detection.d.ts +30 -0
  362. package/v3/dist/init/phases/01-detection.d.ts.map +1 -0
  363. package/v3/dist/init/phases/01-detection.js +143 -0
  364. package/v3/dist/init/phases/01-detection.js.map +1 -0
  365. package/v3/dist/init/phases/02-analysis.d.ts +18 -0
  366. package/v3/dist/init/phases/02-analysis.d.ts.map +1 -0
  367. package/v3/dist/init/phases/02-analysis.js +28 -0
  368. package/v3/dist/init/phases/02-analysis.js.map +1 -0
  369. package/v3/dist/init/phases/03-configuration.d.ts +26 -0
  370. package/v3/dist/init/phases/03-configuration.d.ts.map +1 -0
  371. package/v3/dist/init/phases/03-configuration.js +98 -0
  372. package/v3/dist/init/phases/03-configuration.js.map +1 -0
  373. package/v3/dist/init/phases/04-database.d.ts +22 -0
  374. package/v3/dist/init/phases/04-database.d.ts.map +1 -0
  375. package/v3/dist/init/phases/04-database.js +88 -0
  376. package/v3/dist/init/phases/04-database.js.map +1 -0
  377. package/v3/dist/init/phases/05-learning.d.ts +28 -0
  378. package/v3/dist/init/phases/05-learning.d.ts.map +1 -0
  379. package/v3/dist/init/phases/05-learning.js +98 -0
  380. package/v3/dist/init/phases/05-learning.js.map +1 -0
  381. package/v3/dist/init/phases/06-code-intelligence.d.ts +33 -0
  382. package/v3/dist/init/phases/06-code-intelligence.d.ts.map +1 -0
  383. package/v3/dist/init/phases/06-code-intelligence.js +115 -0
  384. package/v3/dist/init/phases/06-code-intelligence.js.map +1 -0
  385. package/v3/dist/init/phases/07-hooks.d.ts +27 -0
  386. package/v3/dist/init/phases/07-hooks.d.ts.map +1 -0
  387. package/v3/dist/init/phases/07-hooks.js +209 -0
  388. package/v3/dist/init/phases/07-hooks.js.map +1 -0
  389. package/v3/dist/init/phases/08-mcp.d.ts +22 -0
  390. package/v3/dist/init/phases/08-mcp.d.ts.map +1 -0
  391. package/v3/dist/init/phases/08-mcp.js +62 -0
  392. package/v3/dist/init/phases/08-mcp.js.map +1 -0
  393. package/v3/dist/init/phases/09-assets.d.ts +23 -0
  394. package/v3/dist/init/phases/09-assets.d.ts.map +1 -0
  395. package/v3/dist/init/phases/09-assets.js +82 -0
  396. package/v3/dist/init/phases/09-assets.js.map +1 -0
  397. package/v3/dist/init/phases/10-workers.d.ts +23 -0
  398. package/v3/dist/init/phases/10-workers.d.ts.map +1 -0
  399. package/v3/dist/init/phases/10-workers.js +111 -0
  400. package/v3/dist/init/phases/10-workers.js.map +1 -0
  401. package/v3/dist/init/phases/11-claude-md.d.ts +26 -0
  402. package/v3/dist/init/phases/11-claude-md.d.ts.map +1 -0
  403. package/v3/dist/init/phases/11-claude-md.js +121 -0
  404. package/v3/dist/init/phases/11-claude-md.js.map +1 -0
  405. package/v3/dist/init/phases/12-verification.d.ts +61 -0
  406. package/v3/dist/init/phases/12-verification.d.ts.map +1 -0
  407. package/v3/dist/init/phases/12-verification.js +370 -0
  408. package/v3/dist/init/phases/12-verification.js.map +1 -0
  409. package/v3/dist/init/phases/index.d.ts +46 -0
  410. package/v3/dist/init/phases/index.d.ts.map +1 -0
  411. package/v3/dist/init/phases/index.js +64 -0
  412. package/v3/dist/init/phases/index.js.map +1 -0
  413. package/v3/dist/init/phases/phase-interface.d.ts +193 -0
  414. package/v3/dist/init/phases/phase-interface.d.ts.map +1 -0
  415. package/v3/dist/init/phases/phase-interface.js +119 -0
  416. package/v3/dist/init/phases/phase-interface.js.map +1 -0
  417. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.d.ts +24 -62
  418. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.d.ts.map +1 -1
  419. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.js +45 -497
  420. package/v3/dist/integrations/agentic-flow/model-router/complexity-analyzer.js.map +1 -1
  421. package/v3/dist/integrations/agentic-flow/model-router/router.js +2 -2
  422. package/v3/dist/integrations/agentic-flow/model-router/router.js.map +1 -1
  423. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.d.ts +98 -0
  424. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.d.ts.map +1 -0
  425. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.js +197 -0
  426. package/v3/dist/integrations/agentic-flow/model-router/score-calculator.js.map +1 -0
  427. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts +102 -0
  428. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.d.ts.map +1 -0
  429. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js +372 -0
  430. package/v3/dist/integrations/agentic-flow/model-router/signal-collector.js.map +1 -0
  431. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.d.ts +64 -0
  432. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.d.ts.map +1 -0
  433. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.js +120 -0
  434. package/v3/dist/integrations/agentic-flow/model-router/tier-recommender.js.map +1 -0
  435. package/v3/dist/integrations/coherence/coherence-service.d.ts +323 -0
  436. package/v3/dist/integrations/coherence/coherence-service.d.ts.map +1 -0
  437. package/v3/dist/integrations/coherence/coherence-service.js +856 -0
  438. package/v3/dist/integrations/coherence/coherence-service.js.map +1 -0
  439. package/v3/dist/integrations/coherence/engines/category-adapter.d.ts +170 -0
  440. package/v3/dist/integrations/coherence/engines/category-adapter.d.ts.map +1 -0
  441. package/v3/dist/integrations/coherence/engines/category-adapter.js +403 -0
  442. package/v3/dist/integrations/coherence/engines/category-adapter.js.map +1 -0
  443. package/v3/dist/integrations/coherence/engines/causal-adapter.d.ts +159 -0
  444. package/v3/dist/integrations/coherence/engines/causal-adapter.d.ts.map +1 -0
  445. package/v3/dist/integrations/coherence/engines/causal-adapter.js +348 -0
  446. package/v3/dist/integrations/coherence/engines/causal-adapter.js.map +1 -0
  447. package/v3/dist/integrations/coherence/engines/cohomology-adapter.d.ts +174 -0
  448. package/v3/dist/integrations/coherence/engines/cohomology-adapter.d.ts.map +1 -0
  449. package/v3/dist/integrations/coherence/engines/cohomology-adapter.js +401 -0
  450. package/v3/dist/integrations/coherence/engines/cohomology-adapter.js.map +1 -0
  451. package/v3/dist/integrations/coherence/engines/homotopy-adapter.d.ts +201 -0
  452. package/v3/dist/integrations/coherence/engines/homotopy-adapter.d.ts.map +1 -0
  453. package/v3/dist/integrations/coherence/engines/homotopy-adapter.js +324 -0
  454. package/v3/dist/integrations/coherence/engines/homotopy-adapter.js.map +1 -0
  455. package/v3/dist/integrations/coherence/engines/index.d.ts +20 -0
  456. package/v3/dist/integrations/coherence/engines/index.d.ts.map +1 -0
  457. package/v3/dist/integrations/coherence/engines/index.js +26 -0
  458. package/v3/dist/integrations/coherence/engines/index.js.map +1 -0
  459. package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts +193 -0
  460. package/v3/dist/integrations/coherence/engines/spectral-adapter.d.ts.map +1 -0
  461. package/v3/dist/integrations/coherence/engines/spectral-adapter.js +565 -0
  462. package/v3/dist/integrations/coherence/engines/spectral-adapter.js.map +1 -0
  463. package/v3/dist/integrations/coherence/engines/witness-adapter.d.ts +175 -0
  464. package/v3/dist/integrations/coherence/engines/witness-adapter.d.ts.map +1 -0
  465. package/v3/dist/integrations/coherence/engines/witness-adapter.js +377 -0
  466. package/v3/dist/integrations/coherence/engines/witness-adapter.js.map +1 -0
  467. package/v3/dist/integrations/coherence/index.d.ts +84 -0
  468. package/v3/dist/integrations/coherence/index.d.ts.map +1 -0
  469. package/v3/dist/integrations/coherence/index.js +114 -0
  470. package/v3/dist/integrations/coherence/index.js.map +1 -0
  471. package/v3/dist/integrations/coherence/threshold-tuner.d.ts +396 -0
  472. package/v3/dist/integrations/coherence/threshold-tuner.d.ts.map +1 -0
  473. package/v3/dist/integrations/coherence/threshold-tuner.js +538 -0
  474. package/v3/dist/integrations/coherence/threshold-tuner.js.map +1 -0
  475. package/v3/dist/integrations/coherence/types.d.ts +879 -0
  476. package/v3/dist/integrations/coherence/types.d.ts.map +1 -0
  477. package/v3/dist/integrations/coherence/types.js +134 -0
  478. package/v3/dist/integrations/coherence/types.js.map +1 -0
  479. package/v3/dist/integrations/coherence/wasm-loader.d.ts +351 -0
  480. package/v3/dist/integrations/coherence/wasm-loader.d.ts.map +1 -0
  481. package/v3/dist/integrations/coherence/wasm-loader.js +842 -0
  482. package/v3/dist/integrations/coherence/wasm-loader.js.map +1 -0
  483. package/v3/dist/integrations/embeddings/index/HNSWIndex.d.ts.map +1 -1
  484. package/v3/dist/integrations/embeddings/index/HNSWIndex.js +4 -1
  485. package/v3/dist/integrations/embeddings/index/HNSWIndex.js.map +1 -1
  486. package/v3/dist/kernel/interfaces.d.ts +8 -1
  487. package/v3/dist/kernel/interfaces.d.ts.map +1 -1
  488. package/v3/dist/learning/aqe-learning-engine.d.ts +272 -0
  489. package/v3/dist/learning/aqe-learning-engine.d.ts.map +1 -0
  490. package/v3/dist/learning/aqe-learning-engine.js +708 -0
  491. package/v3/dist/learning/aqe-learning-engine.js.map +1 -0
  492. package/v3/dist/learning/causal-verifier.d.ts +244 -0
  493. package/v3/dist/learning/causal-verifier.d.ts.map +1 -0
  494. package/v3/dist/learning/causal-verifier.js +300 -0
  495. package/v3/dist/learning/causal-verifier.js.map +1 -0
  496. package/v3/dist/learning/experience-capture.d.ts +266 -0
  497. package/v3/dist/learning/experience-capture.d.ts.map +1 -0
  498. package/v3/dist/learning/experience-capture.js +647 -0
  499. package/v3/dist/learning/experience-capture.js.map +1 -0
  500. package/v3/dist/learning/index.d.ts +8 -0
  501. package/v3/dist/learning/index.d.ts.map +1 -1
  502. package/v3/dist/learning/index.js +16 -0
  503. package/v3/dist/learning/index.js.map +1 -1
  504. package/v3/dist/learning/memory-auditor.d.ts +235 -0
  505. package/v3/dist/learning/memory-auditor.d.ts.map +1 -0
  506. package/v3/dist/learning/memory-auditor.js +480 -0
  507. package/v3/dist/learning/memory-auditor.js.map +1 -0
  508. package/v3/dist/learning/pattern-store.d.ts.map +1 -1
  509. package/v3/dist/learning/pattern-store.js +27 -6
  510. package/v3/dist/learning/pattern-store.js.map +1 -1
  511. package/v3/dist/learning/qe-patterns.d.ts +15 -1
  512. package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
  513. package/v3/dist/learning/qe-patterns.js +26 -5
  514. package/v3/dist/learning/qe-patterns.js.map +1 -1
  515. package/v3/dist/learning/qe-reasoning-bank.d.ts +38 -2
  516. package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
  517. package/v3/dist/learning/qe-reasoning-bank.js +86 -4
  518. package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
  519. package/v3/dist/learning/real-qe-reasoning-bank.d.ts +32 -2
  520. package/v3/dist/learning/real-qe-reasoning-bank.d.ts.map +1 -1
  521. package/v3/dist/learning/real-qe-reasoning-bank.js +61 -6
  522. package/v3/dist/learning/real-qe-reasoning-bank.js.map +1 -1
  523. package/v3/dist/mcp/bundle.js +8786 -1737
  524. package/v3/dist/mcp/security/cve-prevention.d.ts +31 -134
  525. package/v3/dist/mcp/security/cve-prevention.d.ts.map +1 -1
  526. package/v3/dist/mcp/security/cve-prevention.js +37 -562
  527. package/v3/dist/mcp/security/cve-prevention.js.map +1 -1
  528. package/v3/dist/mcp/security/index.d.ts +5 -1
  529. package/v3/dist/mcp/security/index.d.ts.map +1 -1
  530. package/v3/dist/mcp/security/validators/command-validator.d.ts +41 -0
  531. package/v3/dist/mcp/security/validators/command-validator.d.ts.map +1 -0
  532. package/v3/dist/mcp/security/validators/command-validator.js +123 -0
  533. package/v3/dist/mcp/security/validators/command-validator.js.map +1 -0
  534. package/v3/dist/mcp/security/validators/crypto-validator.d.ts +40 -0
  535. package/v3/dist/mcp/security/validators/crypto-validator.d.ts.map +1 -0
  536. package/v3/dist/mcp/security/validators/crypto-validator.js +72 -0
  537. package/v3/dist/mcp/security/validators/crypto-validator.js.map +1 -0
  538. package/v3/dist/mcp/security/validators/index.d.ts +12 -0
  539. package/v3/dist/mcp/security/validators/index.d.ts.map +1 -0
  540. package/v3/dist/mcp/security/validators/index.js +22 -0
  541. package/v3/dist/mcp/security/validators/index.js.map +1 -0
  542. package/v3/dist/mcp/security/validators/input-sanitizer.d.ts +56 -0
  543. package/v3/dist/mcp/security/validators/input-sanitizer.d.ts.map +1 -0
  544. package/v3/dist/mcp/security/validators/input-sanitizer.js +157 -0
  545. package/v3/dist/mcp/security/validators/input-sanitizer.js.map +1 -0
  546. package/v3/dist/mcp/security/validators/interfaces.d.ts +164 -0
  547. package/v3/dist/mcp/security/validators/interfaces.d.ts.map +1 -0
  548. package/v3/dist/mcp/security/validators/interfaces.js +6 -0
  549. package/v3/dist/mcp/security/validators/interfaces.js.map +1 -0
  550. package/v3/dist/mcp/security/validators/path-traversal-validator.d.ts +50 -0
  551. package/v3/dist/mcp/security/validators/path-traversal-validator.d.ts.map +1 -0
  552. package/v3/dist/mcp/security/validators/path-traversal-validator.js +242 -0
  553. package/v3/dist/mcp/security/validators/path-traversal-validator.js.map +1 -0
  554. package/v3/dist/mcp/security/validators/regex-safety-validator.d.ts +50 -0
  555. package/v3/dist/mcp/security/validators/regex-safety-validator.d.ts.map +1 -0
  556. package/v3/dist/mcp/security/validators/regex-safety-validator.js +183 -0
  557. package/v3/dist/mcp/security/validators/regex-safety-validator.js.map +1 -0
  558. package/v3/dist/mcp/security/validators/validation-orchestrator.d.ts +66 -0
  559. package/v3/dist/mcp/security/validators/validation-orchestrator.d.ts.map +1 -0
  560. package/v3/dist/mcp/security/validators/validation-orchestrator.js +146 -0
  561. package/v3/dist/mcp/security/validators/validation-orchestrator.js.map +1 -0
  562. package/v3/dist/mcp/server.d.ts.map +1 -1
  563. package/v3/dist/mcp/server.js +1 -0
  564. package/v3/dist/mcp/server.js.map +1 -1
  565. package/v3/dist/mcp/tool-registry.d.ts +3 -1
  566. package/v3/dist/mcp/tool-registry.d.ts.map +1 -1
  567. package/v3/dist/mcp/tool-registry.js +155 -2
  568. package/v3/dist/mcp/tool-registry.js.map +1 -1
  569. package/v3/dist/mcp/tools/coherence/audit.d.ts +107 -0
  570. package/v3/dist/mcp/tools/coherence/audit.d.ts.map +1 -0
  571. package/v3/dist/mcp/tools/coherence/audit.js +236 -0
  572. package/v3/dist/mcp/tools/coherence/audit.js.map +1 -0
  573. package/v3/dist/mcp/tools/coherence/check.d.ts +106 -0
  574. package/v3/dist/mcp/tools/coherence/check.d.ts.map +1 -0
  575. package/v3/dist/mcp/tools/coherence/check.js +205 -0
  576. package/v3/dist/mcp/tools/coherence/check.js.map +1 -0
  577. package/v3/dist/mcp/tools/coherence/collapse.d.ts +123 -0
  578. package/v3/dist/mcp/tools/coherence/collapse.d.ts.map +1 -0
  579. package/v3/dist/mcp/tools/coherence/collapse.js +279 -0
  580. package/v3/dist/mcp/tools/coherence/collapse.js.map +1 -0
  581. package/v3/dist/mcp/tools/coherence/consensus.d.ts +100 -0
  582. package/v3/dist/mcp/tools/coherence/consensus.d.ts.map +1 -0
  583. package/v3/dist/mcp/tools/coherence/consensus.js +201 -0
  584. package/v3/dist/mcp/tools/coherence/consensus.js.map +1 -0
  585. package/v3/dist/mcp/tools/coherence/index.d.ts +31 -0
  586. package/v3/dist/mcp/tools/coherence/index.d.ts.map +1 -0
  587. package/v3/dist/mcp/tools/coherence/index.js +42 -0
  588. package/v3/dist/mcp/tools/coherence/index.js.map +1 -0
  589. package/v3/dist/mcp/tools/index.d.ts +6 -1
  590. package/v3/dist/mcp/tools/index.d.ts.map +1 -1
  591. package/v3/dist/mcp/tools/index.js +9 -1
  592. package/v3/dist/mcp/tools/index.js.map +1 -1
  593. package/v3/dist/mcp/tools/mincut/index.d.ts +1 -1
  594. package/v3/dist/mcp/tools/mincut/index.d.ts.map +1 -1
  595. package/v3/dist/mcp/tools/mincut/index.js.map +1 -1
  596. package/v3/dist/mcp/tools/registry.d.ts +4 -0
  597. package/v3/dist/mcp/tools/registry.d.ts.map +1 -1
  598. package/v3/dist/mcp/tools/registry.js +5 -0
  599. package/v3/dist/mcp/tools/registry.js.map +1 -1
  600. package/v3/dist/mcp/tools/test-generation/generate.d.ts +1 -0
  601. package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
  602. package/v3/dist/mcp/tools/test-generation/generate.js +3 -2
  603. package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
  604. package/v3/dist/mcp/types.d.ts +1 -1
  605. package/v3/dist/mcp/types.d.ts.map +1 -1
  606. package/v3/dist/strange-loop/belief-reconciler.d.ts +357 -0
  607. package/v3/dist/strange-loop/belief-reconciler.d.ts.map +1 -0
  608. package/v3/dist/strange-loop/belief-reconciler.js +696 -0
  609. package/v3/dist/strange-loop/belief-reconciler.js.map +1 -0
  610. package/v3/dist/strange-loop/index.d.ts +1 -0
  611. package/v3/dist/strange-loop/index.d.ts.map +1 -1
  612. package/v3/dist/strange-loop/index.js +2 -0
  613. package/v3/dist/strange-loop/index.js.map +1 -1
  614. package/v3/dist/strange-loop/strange-loop.d.ts +177 -5
  615. package/v3/dist/strange-loop/strange-loop.d.ts.map +1 -1
  616. package/v3/dist/strange-loop/strange-loop.js +452 -9
  617. package/v3/dist/strange-loop/strange-loop.js.map +1 -1
  618. package/v3/dist/strange-loop/types.d.ts +205 -1
  619. package/v3/dist/strange-loop/types.d.ts.map +1 -1
  620. package/v3/dist/strange-loop/types.js +5 -0
  621. package/v3/dist/strange-loop/types.js.map +1 -1
  622. package/v3/dist/sync/cloud/index.d.ts +8 -0
  623. package/v3/dist/sync/cloud/index.d.ts.map +1 -0
  624. package/v3/dist/sync/cloud/index.js +8 -0
  625. package/v3/dist/sync/cloud/index.js.map +1 -0
  626. package/v3/dist/sync/cloud/postgres-writer.d.ts +88 -0
  627. package/v3/dist/sync/cloud/postgres-writer.d.ts.map +1 -0
  628. package/v3/dist/sync/cloud/postgres-writer.js +319 -0
  629. package/v3/dist/sync/cloud/postgres-writer.js.map +1 -0
  630. package/v3/dist/sync/cloud/tunnel-manager.d.ts +75 -0
  631. package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -0
  632. package/v3/dist/sync/cloud/tunnel-manager.js +221 -0
  633. package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -0
  634. package/v3/dist/sync/index.d.ts +35 -0
  635. package/v3/dist/sync/index.d.ts.map +1 -0
  636. package/v3/dist/sync/index.js +35 -0
  637. package/v3/dist/sync/index.js.map +1 -0
  638. package/v3/dist/sync/interfaces.d.ts +245 -0
  639. package/v3/dist/sync/interfaces.d.ts.map +1 -0
  640. package/v3/dist/sync/interfaces.js +160 -0
  641. package/v3/dist/sync/interfaces.js.map +1 -0
  642. package/v3/dist/sync/readers/index.d.ts +8 -0
  643. package/v3/dist/sync/readers/index.d.ts.map +1 -0
  644. package/v3/dist/sync/readers/index.js +8 -0
  645. package/v3/dist/sync/readers/index.js.map +1 -0
  646. package/v3/dist/sync/readers/json-reader.d.ts +95 -0
  647. package/v3/dist/sync/readers/json-reader.d.ts.map +1 -0
  648. package/v3/dist/sync/readers/json-reader.js +306 -0
  649. package/v3/dist/sync/readers/json-reader.js.map +1 -0
  650. package/v3/dist/sync/readers/sqlite-reader.d.ts +88 -0
  651. package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -0
  652. package/v3/dist/sync/readers/sqlite-reader.js +255 -0
  653. package/v3/dist/sync/readers/sqlite-reader.js.map +1 -0
  654. package/v3/dist/sync/sync-agent.d.ts +116 -0
  655. package/v3/dist/sync/sync-agent.d.ts.map +1 -0
  656. package/v3/dist/sync/sync-agent.js +416 -0
  657. package/v3/dist/sync/sync-agent.js.map +1 -0
  658. package/v3/package.json +17 -2
@@ -0,0 +1,842 @@
1
+ /**
2
+ * WASM Loader for Prime-Radiant Coherence Engines
3
+ *
4
+ * Provides lazy loading of the prime-radiant-advanced-wasm module with:
5
+ * - Retry logic with exponential backoff (3 attempts by default)
6
+ * - Event emission for monitoring load status
7
+ * - Graceful error handling
8
+ * - Node.js 18+ compatibility
9
+ *
10
+ * @module integrations/coherence/wasm-loader
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { wasmLoader } from './wasm-loader';
15
+ *
16
+ * // Add event listeners
17
+ * wasmLoader.on('loaded', ({ version, loadTimeMs }) => {
18
+ * console.log(`WASM loaded v${version} in ${loadTimeMs}ms`);
19
+ * });
20
+ *
21
+ * wasmLoader.on('retry', ({ attempt, maxAttempts, delayMs }) => {
22
+ * console.log(`Retry ${attempt}/${maxAttempts} in ${delayMs}ms`);
23
+ * });
24
+ *
25
+ * // Load and use engines
26
+ * const engines = await wasmLoader.getEngines();
27
+ * const energy = engines.cohomology.consistencyEnergy(graph);
28
+ * ```
29
+ */
30
+ import { createRequire } from 'node:module';
31
+ import { fileURLToPath } from 'node:url';
32
+ import { dirname, join } from 'node:path';
33
+ import { readFileSync, existsSync } from 'node:fs';
34
+ import { DEFAULT_WASM_LOADER_CONFIG, WasmLoadError, WasmNotLoadedError, } from './types.js';
35
+ /**
36
+ * ADR-052 A4.3: Exponential backoff delays for retry logic
37
+ * Default: 1s, 2s, 4s (3 retries)
38
+ */
39
+ const FALLBACK_RETRY_DELAYS_MS = [1000, 2000, 4000];
40
+ /**
41
+ * WASM Loader for Prime-Radiant coherence engines.
42
+ *
43
+ * Provides lazy loading with retry logic and event emission.
44
+ * Uses the Singleton pattern to ensure only one loader instance.
45
+ * Implements IWasmLoader interface for CoherenceService compatibility.
46
+ *
47
+ * ADR-052 A4.3 Enhancements:
48
+ * - Full graceful degradation with fallback results
49
+ * - Emits 'degraded_mode' event via internal EventBus
50
+ * - Exponential backoff retry (1s, 2s, 4s)
51
+ * - Never blocks execution due to WASM failure
52
+ */
53
+ export class WasmLoader {
54
+ state = 'unloaded';
55
+ wasmModule = null;
56
+ engines = null;
57
+ loadPromise = null;
58
+ lastError = null;
59
+ config;
60
+ version = '';
61
+ // ADR-052 A4.3: Fallback state tracking
62
+ fallbackState = {
63
+ mode: 'wasm',
64
+ consecutiveFailures: 0,
65
+ totalActivations: 0,
66
+ nextRetryAt: undefined,
67
+ lastSuccessfulLoad: undefined,
68
+ };
69
+ // ADR-052 A4.3: Background retry timer
70
+ retryTimer = null;
71
+ degradedModeStartTime = null;
72
+ eventListeners;
73
+ /**
74
+ * Create a new WASM loader instance.
75
+ *
76
+ * @param config - Loader configuration (optional)
77
+ */
78
+ constructor(config = {}) {
79
+ this.config = { ...DEFAULT_WASM_LOADER_CONFIG, ...config };
80
+ // Initialize event listener maps (ADR-052 A4.3: added degraded_mode and recovered)
81
+ this.eventListeners = new Map();
82
+ this.eventListeners.set('loaded', new Set());
83
+ this.eventListeners.set('error', new Set());
84
+ this.eventListeners.set('retry', new Set());
85
+ this.eventListeners.set('degraded_mode', new Set());
86
+ this.eventListeners.set('recovered', new Set());
87
+ }
88
+ // ===========================================================================
89
+ // Public API
90
+ // ===========================================================================
91
+ /**
92
+ * Check if the WASM module is loaded and ready.
93
+ *
94
+ * @returns True if the module is loaded and engines are available
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * if (wasmLoader.isLoaded()) {
99
+ * const engines = wasmLoader.getEnginesSync();
100
+ * }
101
+ * ```
102
+ */
103
+ isLoaded() {
104
+ return this.state === 'loaded' && this.engines !== null;
105
+ }
106
+ /**
107
+ * Get the current loader state.
108
+ *
109
+ * @returns Current state: 'unloaded', 'loading', 'loaded', or 'failed'
110
+ */
111
+ getState() {
112
+ return this.state;
113
+ }
114
+ /**
115
+ * Get the loaded WASM version (empty string if not loaded).
116
+ *
117
+ * @returns Version string from the WASM module
118
+ */
119
+ getVersion() {
120
+ return this.version;
121
+ }
122
+ /**
123
+ * Get the last error that occurred during loading (if any).
124
+ *
125
+ * @returns The last error or null if no error
126
+ */
127
+ getLastError() {
128
+ return this.lastError;
129
+ }
130
+ /**
131
+ * ADR-052 A4.3: Check if currently operating in fallback/degraded mode.
132
+ *
133
+ * @returns True if WASM is unavailable and fallback is active
134
+ */
135
+ isInDegradedMode() {
136
+ return this.state === 'degraded' || this.fallbackState.mode === 'fallback';
137
+ }
138
+ /**
139
+ * ADR-052 A4.3: Get the current fallback state.
140
+ *
141
+ * @returns Current fallback state with retry information
142
+ */
143
+ getFallbackState() {
144
+ return { ...this.fallbackState };
145
+ }
146
+ /**
147
+ * ADR-052 A4.3: Get a fallback result when WASM is unavailable.
148
+ * Returns a "coherent" result with low confidence (0.5) and usedFallback: true.
149
+ * NEVER blocks execution.
150
+ *
151
+ * @returns FallbackResult with usedFallback: true and confidence: 0.5
152
+ */
153
+ getFallbackResult() {
154
+ return {
155
+ usedFallback: true,
156
+ confidence: 0.5,
157
+ retryCount: this.fallbackState.consecutiveFailures,
158
+ lastError: this.lastError?.message,
159
+ activatedAt: this.degradedModeStartTime ?? new Date(),
160
+ };
161
+ }
162
+ /**
163
+ * Load the WASM module and initialize all engines.
164
+ *
165
+ * This method is idempotent - calling it multiple times will return
166
+ * the same promise if loading is in progress, or the cached engines
167
+ * if already loaded.
168
+ *
169
+ * @returns Promise resolving to all coherence engines
170
+ * @throws {WasmLoadError} If loading fails after all retry attempts
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * try {
175
+ * const engines = await wasmLoader.getEngines();
176
+ * const energy = engines.cohomology.consistencyEnergy(graph);
177
+ * } catch (error) {
178
+ * if (error instanceof WasmLoadError) {
179
+ * console.error(`Failed after ${error.attempts} attempts`);
180
+ * }
181
+ * }
182
+ * ```
183
+ */
184
+ async getEngines() {
185
+ // Return cached engines if already loaded
186
+ if (this.state === 'loaded' && this.engines) {
187
+ return this.engines;
188
+ }
189
+ // Return existing load promise if loading is in progress
190
+ if (this.state === 'loading' && this.loadPromise) {
191
+ return this.loadPromise;
192
+ }
193
+ // Start new load
194
+ this.state = 'loading';
195
+ this.loadPromise = this.loadWithRetry();
196
+ try {
197
+ this.engines = await this.loadPromise;
198
+ this.state = 'loaded';
199
+ // ADR-052 A4.3: Track successful load and emit recovery event if coming from degraded
200
+ if (this.fallbackState.mode === 'fallback' || this.fallbackState.mode === 'recovering') {
201
+ this.emitRecoveryEvent();
202
+ }
203
+ this.fallbackState.mode = 'wasm';
204
+ this.fallbackState.consecutiveFailures = 0;
205
+ this.fallbackState.lastSuccessfulLoad = new Date();
206
+ return this.engines;
207
+ }
208
+ catch (error) {
209
+ this.state = 'failed';
210
+ this.lastError = error instanceof Error ? error : new Error(String(error));
211
+ // ADR-052 A4.3: Enter degraded mode and schedule retry
212
+ this.enterDegradedMode(this.lastError);
213
+ throw error;
214
+ }
215
+ finally {
216
+ this.loadPromise = null;
217
+ }
218
+ }
219
+ /**
220
+ * ADR-052 A4.3: Get engines with graceful fallback - NEVER throws.
221
+ *
222
+ * This method attempts to load WASM but returns null with a FallbackResult
223
+ * instead of throwing. Use this when you want to handle degraded mode gracefully.
224
+ *
225
+ * @returns Object with engines (or null) and fallback information
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * const { engines, fallback } = await wasmLoader.getEnginesWithFallback();
230
+ *
231
+ * if (fallback.usedFallback) {
232
+ * console.warn('Operating in degraded mode:', fallback.lastError);
233
+ * // Use TypeScript fallback implementation
234
+ * } else {
235
+ * // Use WASM engines
236
+ * const energy = engines!.cohomology.consistencyEnergy(graph);
237
+ * }
238
+ * ```
239
+ */
240
+ async getEnginesWithFallback() {
241
+ // Return cached engines if already loaded
242
+ if (this.state === 'loaded' && this.engines) {
243
+ return {
244
+ engines: this.engines,
245
+ fallback: {
246
+ usedFallback: false,
247
+ confidence: 1.0,
248
+ retryCount: 0,
249
+ },
250
+ };
251
+ }
252
+ // If already in degraded mode, return fallback immediately (don't block)
253
+ if (this.state === 'degraded') {
254
+ return {
255
+ engines: null,
256
+ fallback: this.getFallbackResult(),
257
+ };
258
+ }
259
+ try {
260
+ const engines = await this.getEngines();
261
+ return {
262
+ engines,
263
+ fallback: {
264
+ usedFallback: false,
265
+ confidence: 1.0,
266
+ retryCount: 0,
267
+ },
268
+ };
269
+ }
270
+ catch {
271
+ // ADR-052 A4.3: Never throw - return fallback result
272
+ return {
273
+ engines: null,
274
+ fallback: this.getFallbackResult(),
275
+ };
276
+ }
277
+ }
278
+ /**
279
+ * Get engines synchronously if already loaded.
280
+ *
281
+ * @returns Coherence engines
282
+ * @throws {WasmNotLoadedError} If WASM is not loaded
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * if (wasmLoader.isLoaded()) {
287
+ * const engines = wasmLoader.getEnginesSync();
288
+ * }
289
+ * ```
290
+ */
291
+ getEnginesSync() {
292
+ if (!this.engines) {
293
+ throw new WasmNotLoadedError('WASM module is not loaded. Call getEngines() first.');
294
+ }
295
+ return this.engines;
296
+ }
297
+ // ===========================================================================
298
+ // IWasmLoader Interface Implementation
299
+ // ===========================================================================
300
+ /**
301
+ * Check if WASM module is available for loading.
302
+ * Required by IWasmLoader interface.
303
+ *
304
+ * @returns Promise resolving to true if WASM can be loaded
305
+ */
306
+ async isAvailable() {
307
+ // If already loaded, it's available
308
+ if (this.state === 'loaded' && this.wasmModule) {
309
+ return true;
310
+ }
311
+ // If failed, it's not available
312
+ if (this.state === 'failed') {
313
+ return false;
314
+ }
315
+ // Try to detect if WASM file exists
316
+ try {
317
+ const require = createRequire(import.meta.url);
318
+ const wasmPaths = [
319
+ (() => {
320
+ try {
321
+ const modulePath = require.resolve('prime-radiant-advanced-wasm');
322
+ return join(dirname(modulePath), 'prime_radiant_advanced_wasm_bg.wasm');
323
+ }
324
+ catch {
325
+ return null;
326
+ }
327
+ })(),
328
+ join(process.cwd(), 'node_modules/prime-radiant-advanced-wasm/prime_radiant_advanced_wasm_bg.wasm'),
329
+ ].filter((p) => p !== null);
330
+ for (const path of wasmPaths) {
331
+ if (existsSync(path)) {
332
+ return true;
333
+ }
334
+ }
335
+ return false;
336
+ }
337
+ catch {
338
+ return false;
339
+ }
340
+ }
341
+ /**
342
+ * Load the WASM module.
343
+ * Required by IWasmLoader interface.
344
+ *
345
+ * @returns Promise resolving to the loaded WasmModule
346
+ */
347
+ async load() {
348
+ // Ensure engines are loaded (this also loads the module)
349
+ await this.getEngines();
350
+ if (!this.wasmModule) {
351
+ throw new WasmNotLoadedError('WASM module failed to load');
352
+ }
353
+ // Return the module cast to WasmModule (they have the same structure)
354
+ return this.wasmModule;
355
+ }
356
+ /**
357
+ * Get the loaded WASM module synchronously.
358
+ * Required by IWasmLoader interface.
359
+ *
360
+ * @returns The loaded WasmModule
361
+ * @throws {WasmNotLoadedError} If the module is not loaded
362
+ */
363
+ getModule() {
364
+ if (!this.wasmModule) {
365
+ throw new WasmNotLoadedError('WASM module is not loaded. Call load() first.');
366
+ }
367
+ return this.wasmModule;
368
+ }
369
+ // ===========================================================================
370
+ // Event Handling
371
+ // ===========================================================================
372
+ /**
373
+ * Subscribe to loader events.
374
+ *
375
+ * @param event - Event name: 'loaded', 'error', or 'retry'
376
+ * @param listener - Callback function
377
+ * @returns Unsubscribe function
378
+ *
379
+ * @example
380
+ * ```typescript
381
+ * const unsubscribe = wasmLoader.on('loaded', ({ version }) => {
382
+ * console.log(`Loaded version ${version}`);
383
+ * });
384
+ *
385
+ * // Later, to unsubscribe:
386
+ * unsubscribe();
387
+ * ```
388
+ */
389
+ on(event, listener) {
390
+ const listeners = this.eventListeners.get(event);
391
+ if (listeners) {
392
+ listeners.add(listener);
393
+ }
394
+ // Return unsubscribe function
395
+ return () => {
396
+ listeners?.delete(listener);
397
+ };
398
+ }
399
+ /**
400
+ * Unsubscribe from loader events.
401
+ *
402
+ * @param event - Event name
403
+ * @param listener - Callback function to remove
404
+ */
405
+ off(event, listener) {
406
+ const listeners = this.eventListeners.get(event);
407
+ if (listeners) {
408
+ listeners.delete(listener);
409
+ }
410
+ }
411
+ /**
412
+ * Reset the loader state to allow reloading.
413
+ *
414
+ * This frees any loaded engines and resets the state to 'unloaded'.
415
+ * Useful for testing or recovery scenarios.
416
+ */
417
+ reset() {
418
+ // Cancel any pending retry timer
419
+ if (this.retryTimer) {
420
+ clearTimeout(this.retryTimer);
421
+ this.retryTimer = null;
422
+ }
423
+ // Free any loaded engines
424
+ if (this.engines) {
425
+ try {
426
+ this.engines.cohomology.free();
427
+ this.engines.spectral.free();
428
+ this.engines.causal.free();
429
+ this.engines.category.free();
430
+ this.engines.hott.free();
431
+ this.engines.quantum.free();
432
+ }
433
+ catch {
434
+ // Ignore errors during cleanup
435
+ }
436
+ }
437
+ this.state = 'unloaded';
438
+ this.wasmModule = null;
439
+ this.engines = null;
440
+ this.loadPromise = null;
441
+ this.lastError = null;
442
+ this.version = '';
443
+ // ADR-052 A4.3: Reset fallback state
444
+ this.fallbackState = {
445
+ mode: 'wasm',
446
+ consecutiveFailures: 0,
447
+ totalActivations: 0,
448
+ nextRetryAt: undefined,
449
+ lastSuccessfulLoad: undefined,
450
+ };
451
+ this.degradedModeStartTime = null;
452
+ }
453
+ /**
454
+ * ADR-052 A4.3: Force a retry of WASM loading.
455
+ * Can be called manually to trigger an immediate retry attempt.
456
+ *
457
+ * @returns Promise resolving to true if WASM was loaded, false otherwise
458
+ */
459
+ async forceRetry() {
460
+ // Cancel any pending retry
461
+ if (this.retryTimer) {
462
+ clearTimeout(this.retryTimer);
463
+ this.retryTimer = null;
464
+ }
465
+ // Clear failed state to allow retry
466
+ if (this.state === 'failed' || this.state === 'degraded') {
467
+ this.state = 'unloaded';
468
+ this.fallbackState.mode = 'recovering';
469
+ }
470
+ try {
471
+ await this.getEngines();
472
+ return true;
473
+ }
474
+ catch {
475
+ return false;
476
+ }
477
+ }
478
+ // ===========================================================================
479
+ // Private Methods
480
+ // ===========================================================================
481
+ /**
482
+ * Load the WASM module with retry logic and exponential backoff.
483
+ */
484
+ async loadWithRetry() {
485
+ const { maxAttempts, baseDelayMs, maxDelayMs } = this.config;
486
+ let lastError = new Error('Unknown error');
487
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
488
+ try {
489
+ const startTime = performance.now();
490
+ const engines = await this.attemptLoad();
491
+ const loadTimeMs = performance.now() - startTime;
492
+ // Emit success event
493
+ this.emit('loaded', {
494
+ version: this.version,
495
+ loadTimeMs: Math.round(loadTimeMs * 100) / 100,
496
+ });
497
+ return engines;
498
+ }
499
+ catch (error) {
500
+ lastError = error instanceof Error ? error : new Error(String(error));
501
+ // Emit error event
502
+ this.emit('error', {
503
+ error: lastError,
504
+ fatal: attempt >= maxAttempts,
505
+ attempt,
506
+ });
507
+ if (attempt < maxAttempts) {
508
+ // Calculate delay with exponential backoff
509
+ const delayMs = Math.min(baseDelayMs * Math.pow(2, attempt - 1), maxDelayMs);
510
+ // Emit retry event
511
+ this.emit('retry', {
512
+ attempt: attempt + 1,
513
+ maxAttempts,
514
+ delayMs,
515
+ previousError: lastError,
516
+ });
517
+ // Wait before retry
518
+ await this.sleep(delayMs);
519
+ }
520
+ }
521
+ }
522
+ // All retries exhausted
523
+ throw new WasmLoadError(`Failed to load WASM module after ${maxAttempts} attempts: ${lastError.message}`, maxAttempts, lastError);
524
+ }
525
+ /**
526
+ * Attempt to load the WASM module once.
527
+ *
528
+ * This method handles both Node.js and browser environments:
529
+ * - Node.js: Uses initSync() with WASM bytes read from filesystem
530
+ * - Browser: Uses default() async init with fetch
531
+ */
532
+ async attemptLoad() {
533
+ // Create require for ESM/CommonJS compatibility
534
+ // Note: import.meta.url is available in ESM contexts (Node.js 18+)
535
+ let require;
536
+ try {
537
+ // ESM context
538
+ require = createRequire(import.meta.url);
539
+ }
540
+ catch {
541
+ // CommonJS fallback - use global require
542
+ require = globalThis.require || (await import('module')).createRequire(__filename);
543
+ }
544
+ // Import the WASM module
545
+ let wasmModule;
546
+ try {
547
+ // Dynamic import for the WASM module
548
+ wasmModule = await import('prime-radiant-advanced-wasm');
549
+ }
550
+ catch (importError) {
551
+ // Fallback to require for CommonJS environments
552
+ try {
553
+ wasmModule = require('prime-radiant-advanced-wasm');
554
+ }
555
+ catch (requireError) {
556
+ throw new Error(`Failed to import prime-radiant-advanced-wasm: ${importError instanceof Error ? importError.message : String(importError)}`);
557
+ }
558
+ }
559
+ // Determine if we're in Node.js environment
560
+ const isNodeJs = typeof process !== 'undefined' &&
561
+ process.versions != null &&
562
+ process.versions.node != null;
563
+ if (isNodeJs) {
564
+ // Node.js: Use initSync with WASM bytes from filesystem
565
+ await this.initializeForNodeJs(wasmModule, require);
566
+ }
567
+ else {
568
+ // Browser: Use async default init with fetch
569
+ if (wasmModule.default && typeof wasmModule.default === 'function') {
570
+ await wasmModule.default();
571
+ }
572
+ }
573
+ // Initialize the module internals if needed
574
+ if (wasmModule.initModule && typeof wasmModule.initModule === 'function') {
575
+ try {
576
+ wasmModule.initModule();
577
+ }
578
+ catch {
579
+ // initModule might throw if already initialized, which is fine
580
+ }
581
+ }
582
+ // Get version
583
+ if (wasmModule.getVersion && typeof wasmModule.getVersion === 'function') {
584
+ this.version = wasmModule.getVersion();
585
+ }
586
+ this.wasmModule = wasmModule;
587
+ // Create engine instances
588
+ const engines = {
589
+ cohomology: new wasmModule.CohomologyEngine(),
590
+ spectral: new wasmModule.SpectralEngine(),
591
+ causal: new wasmModule.CausalEngine(),
592
+ category: new wasmModule.CategoryEngine(),
593
+ hott: new wasmModule.HoTTEngine(),
594
+ quantum: new wasmModule.QuantumEngine(),
595
+ };
596
+ return engines;
597
+ }
598
+ /**
599
+ * Initialize WASM module for Node.js environment.
600
+ *
601
+ * In Node.js, the default async init uses fetch() which isn't available.
602
+ * Instead, we read the WASM binary from disk and use initSync().
603
+ */
604
+ async initializeForNodeJs(wasmModule, require) {
605
+ // Find the WASM file path
606
+ const wasmPaths = [
607
+ // Resolve from require - most reliable
608
+ (() => {
609
+ try {
610
+ const modulePath = require.resolve('prime-radiant-advanced-wasm');
611
+ return join(dirname(modulePath), 'prime_radiant_advanced_wasm_bg.wasm');
612
+ }
613
+ catch {
614
+ return null;
615
+ }
616
+ })(),
617
+ // Direct node_modules path from current file
618
+ join(dirname(fileURLToPath(import.meta.url)), '../../../../node_modules/prime-radiant-advanced-wasm/prime_radiant_advanced_wasm_bg.wasm'),
619
+ // Workspace root
620
+ join(process.cwd(), 'node_modules/prime-radiant-advanced-wasm/prime_radiant_advanced_wasm_bg.wasm'),
621
+ ].filter((p) => p !== null);
622
+ let wasmPath = null;
623
+ for (const path of wasmPaths) {
624
+ if (existsSync(path)) {
625
+ wasmPath = path;
626
+ break;
627
+ }
628
+ }
629
+ if (!wasmPath) {
630
+ throw new Error(`Could not find WASM binary. Searched paths:\n${wasmPaths.join('\n')}\n` +
631
+ 'Ensure prime-radiant-advanced-wasm is installed.');
632
+ }
633
+ // Read WASM bytes from disk
634
+ const wasmBytes = readFileSync(wasmPath);
635
+ // Use initSync to initialize the module with raw bytes
636
+ // Pass as object format to avoid deprecation warning
637
+ if (wasmModule.initSync && typeof wasmModule.initSync === 'function') {
638
+ wasmModule.initSync({ module: wasmBytes });
639
+ }
640
+ else {
641
+ throw new Error('WASM module does not export initSync function');
642
+ }
643
+ }
644
+ /**
645
+ * Emit an event to all registered listeners.
646
+ */
647
+ emit(event, data) {
648
+ const listeners = this.eventListeners.get(event);
649
+ if (listeners) {
650
+ // Use Array.from for ES5 compatibility
651
+ const listenerArray = Array.from(listeners);
652
+ for (let i = 0; i < listenerArray.length; i++) {
653
+ try {
654
+ listenerArray[i](data);
655
+ }
656
+ catch {
657
+ // Don't let listener errors affect the loader
658
+ }
659
+ }
660
+ }
661
+ }
662
+ /**
663
+ * Sleep for a specified duration.
664
+ */
665
+ sleep(ms) {
666
+ return new Promise((resolve) => setTimeout(resolve, ms));
667
+ }
668
+ // ===========================================================================
669
+ // ADR-052 A4.3: Fallback Mode Management
670
+ // ===========================================================================
671
+ /**
672
+ * ADR-052 A4.3: Enter degraded/fallback mode after WASM load failure.
673
+ * Logs warning, emits degraded_mode event, and schedules retry with exponential backoff.
674
+ */
675
+ enterDegradedMode(error) {
676
+ // Update state
677
+ this.state = 'degraded';
678
+ this.fallbackState.mode = 'fallback';
679
+ this.fallbackState.consecutiveFailures++;
680
+ this.fallbackState.totalActivations++;
681
+ // Track when we entered degraded mode
682
+ if (!this.degradedModeStartTime) {
683
+ this.degradedModeStartTime = new Date();
684
+ }
685
+ // Calculate next retry time with exponential backoff (1s, 2s, 4s)
686
+ const retryIndex = Math.min(this.fallbackState.consecutiveFailures - 1, FALLBACK_RETRY_DELAYS_MS.length - 1);
687
+ const retryDelayMs = FALLBACK_RETRY_DELAYS_MS[retryIndex];
688
+ const nextRetryAt = new Date(Date.now() + retryDelayMs);
689
+ this.fallbackState.nextRetryAt = nextRetryAt;
690
+ // Log warning (ADR-052 A4.3 requirement 1)
691
+ console.warn(`[WasmLoader] WASM load failed, entering degraded mode. ` +
692
+ `Retry ${this.fallbackState.consecutiveFailures}/3 in ${retryDelayMs}ms. ` +
693
+ `Error: ${error.message}`);
694
+ // Emit degraded_mode event (ADR-052 A4.3 requirement 3)
695
+ this.emit('degraded_mode', {
696
+ reason: 'WASM load failed after retries',
697
+ retryCount: this.fallbackState.consecutiveFailures,
698
+ lastError: error.message,
699
+ activatedAt: this.degradedModeStartTime,
700
+ nextRetryAt,
701
+ });
702
+ // Schedule background retry with exponential backoff (ADR-052 A4.3 requirement 4)
703
+ // Only schedule if we haven't exceeded max retries
704
+ if (this.fallbackState.consecutiveFailures < FALLBACK_RETRY_DELAYS_MS.length) {
705
+ this.scheduleBackgroundRetry(retryDelayMs);
706
+ }
707
+ }
708
+ /**
709
+ * ADR-052 A4.3: Schedule a background retry of WASM loading.
710
+ * Never blocks execution (requirement 5).
711
+ */
712
+ scheduleBackgroundRetry(delayMs) {
713
+ // Clear any existing retry timer
714
+ if (this.retryTimer) {
715
+ clearTimeout(this.retryTimer);
716
+ }
717
+ // Schedule the retry (non-blocking)
718
+ this.retryTimer = setTimeout(() => {
719
+ this.retryTimer = null;
720
+ this.fallbackState.mode = 'recovering';
721
+ // Attempt to reload WASM in background
722
+ this.attemptBackgroundRecovery();
723
+ }, delayMs);
724
+ }
725
+ /**
726
+ * ADR-052 A4.3: Attempt to recover WASM in the background.
727
+ * Called by the scheduled retry timer.
728
+ */
729
+ async attemptBackgroundRecovery() {
730
+ // Reset state to allow reload attempt
731
+ this.state = 'unloaded';
732
+ this.loadPromise = null;
733
+ try {
734
+ await this.getEngines();
735
+ // Success! emitRecoveryEvent is called in getEngines()
736
+ }
737
+ catch {
738
+ // Still failing - enterDegradedMode will be called by getEngines()
739
+ // which will schedule the next retry if retries remain
740
+ }
741
+ }
742
+ /**
743
+ * ADR-052 A4.3: Emit recovery event when WASM is restored after degraded mode.
744
+ */
745
+ emitRecoveryEvent() {
746
+ if (!this.degradedModeStartTime)
747
+ return;
748
+ const degradedDurationMs = Date.now() - this.degradedModeStartTime.getTime();
749
+ console.info(`[WasmLoader] WASM recovered after ${degradedDurationMs}ms in degraded mode. ` +
750
+ `Retry count: ${this.fallbackState.consecutiveFailures}`);
751
+ this.emit('recovered', {
752
+ degradedDurationMs,
753
+ retryCount: this.fallbackState.consecutiveFailures,
754
+ version: this.version,
755
+ });
756
+ // Reset degraded mode tracking
757
+ this.degradedModeStartTime = null;
758
+ }
759
+ }
760
+ // =============================================================================
761
+ // Singleton Instance
762
+ // =============================================================================
763
+ /**
764
+ * Default WASM loader instance (singleton).
765
+ *
766
+ * Use this for most cases. Create a new WasmLoader instance only if you
767
+ * need custom configuration or isolated state.
768
+ *
769
+ * @example
770
+ * ```typescript
771
+ * import { wasmLoader } from './wasm-loader';
772
+ *
773
+ * const engines = await wasmLoader.getEngines();
774
+ * ```
775
+ */
776
+ export const wasmLoader = new WasmLoader();
777
+ // =============================================================================
778
+ // Convenience Exports
779
+ // =============================================================================
780
+ /**
781
+ * Check if WASM is loaded (convenience function).
782
+ *
783
+ * @returns True if the default loader has loaded the WASM module
784
+ */
785
+ export function isLoaded() {
786
+ return wasmLoader.isLoaded();
787
+ }
788
+ /**
789
+ * Get engines from the default loader (convenience function).
790
+ *
791
+ * @returns Promise resolving to coherence engines
792
+ */
793
+ export async function getEngines() {
794
+ return wasmLoader.getEngines();
795
+ }
796
+ /**
797
+ * Create a custom loader with specific configuration.
798
+ *
799
+ * @param config - Loader configuration
800
+ * @returns New WasmLoader instance
801
+ *
802
+ * @example
803
+ * ```typescript
804
+ * const customLoader = createLoader({
805
+ * maxAttempts: 5,
806
+ * baseDelayMs: 200,
807
+ * });
808
+ * ```
809
+ */
810
+ export function createLoader(config) {
811
+ return new WasmLoader(config);
812
+ }
813
+ // =============================================================================
814
+ // ADR-052 A4.3: Fallback Convenience Exports
815
+ // =============================================================================
816
+ /**
817
+ * Check if the default loader is in degraded mode (convenience function).
818
+ *
819
+ * @returns True if operating with fallback logic
820
+ */
821
+ export function isInDegradedMode() {
822
+ return wasmLoader.isInDegradedMode();
823
+ }
824
+ /**
825
+ * Get the fallback state from the default loader (convenience function).
826
+ *
827
+ * @returns Current fallback state
828
+ */
829
+ export function getFallbackState() {
830
+ return wasmLoader.getFallbackState();
831
+ }
832
+ /**
833
+ * Get engines with fallback from the default loader (convenience function).
834
+ * NEVER throws - returns fallback result on failure.
835
+ *
836
+ * @returns Object with engines (or null) and fallback information
837
+ */
838
+ export async function getEnginesWithFallback() {
839
+ return wasmLoader.getEnginesWithFallback();
840
+ }
841
+ export default wasmLoader;
842
+ //# sourceMappingURL=wasm-loader.js.map