agentic-qe 2.7.4 → 2.8.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 (519) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +67 -2
  3. package/dist/cli/commands/agent/spawn.d.ts +12 -1
  4. package/dist/cli/commands/agent/spawn.d.ts.map +1 -1
  5. package/dist/cli/commands/agent/spawn.js +95 -8
  6. package/dist/cli/commands/agent/spawn.js.map +1 -1
  7. package/dist/cli/index.js +91 -0
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  10. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts +134 -0
  11. package/dist/edge/adapters/BrowserHNSWAdapter.d.ts.map +1 -0
  12. package/dist/edge/adapters/BrowserHNSWAdapter.js +484 -0
  13. package/dist/edge/adapters/BrowserHNSWAdapter.js.map +1 -0
  14. package/dist/edge/adapters/IndexedDBStorage.d.ts +114 -0
  15. package/dist/edge/adapters/IndexedDBStorage.d.ts.map +1 -0
  16. package/dist/edge/adapters/IndexedDBStorage.js +478 -0
  17. package/dist/edge/adapters/IndexedDBStorage.js.map +1 -0
  18. package/dist/edge/adapters/index.d.ts +12 -0
  19. package/dist/edge/adapters/index.d.ts.map +1 -0
  20. package/dist/edge/adapters/index.js +22 -0
  21. package/dist/edge/adapters/index.js.map +1 -0
  22. package/dist/edge/browser/BrowserAgent.d.ts +241 -0
  23. package/dist/edge/browser/BrowserAgent.d.ts.map +1 -0
  24. package/dist/edge/browser/BrowserAgent.js +743 -0
  25. package/dist/edge/browser/BrowserAgent.js.map +1 -0
  26. package/dist/edge/index.d.ts +34 -0
  27. package/dist/edge/index.d.ts.map +1 -0
  28. package/dist/edge/index.js +114 -0
  29. package/dist/edge/index.js.map +1 -0
  30. package/dist/edge/p2p/coordination/CoordinationManager.d.ts +181 -0
  31. package/dist/edge/p2p/coordination/CoordinationManager.d.ts.map +1 -0
  32. package/dist/edge/p2p/coordination/CoordinationManager.js +851 -0
  33. package/dist/edge/p2p/coordination/CoordinationManager.js.map +1 -0
  34. package/dist/edge/p2p/coordination/HealthMonitor.d.ts +143 -0
  35. package/dist/edge/p2p/coordination/HealthMonitor.d.ts.map +1 -0
  36. package/dist/edge/p2p/coordination/HealthMonitor.js +432 -0
  37. package/dist/edge/p2p/coordination/HealthMonitor.js.map +1 -0
  38. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts +146 -0
  39. package/dist/edge/p2p/coordination/SyncOrchestrator.d.ts.map +1 -0
  40. package/dist/edge/p2p/coordination/SyncOrchestrator.js +783 -0
  41. package/dist/edge/p2p/coordination/SyncOrchestrator.js.map +1 -0
  42. package/dist/edge/p2p/coordination/index.d.ts +70 -0
  43. package/dist/edge/p2p/coordination/index.d.ts.map +1 -0
  44. package/dist/edge/p2p/coordination/index.js +107 -0
  45. package/dist/edge/p2p/coordination/index.js.map +1 -0
  46. package/dist/edge/p2p/coordination/types.d.ts +572 -0
  47. package/dist/edge/p2p/coordination/types.d.ts.map +1 -0
  48. package/dist/edge/p2p/coordination/types.js +366 -0
  49. package/dist/edge/p2p/coordination/types.js.map +1 -0
  50. package/dist/edge/p2p/crdt/CRDTStore.d.ts +324 -0
  51. package/dist/edge/p2p/crdt/CRDTStore.d.ts.map +1 -0
  52. package/dist/edge/p2p/crdt/CRDTStore.js +839 -0
  53. package/dist/edge/p2p/crdt/CRDTStore.js.map +1 -0
  54. package/dist/edge/p2p/crdt/GCounter.d.ts +173 -0
  55. package/dist/edge/p2p/crdt/GCounter.d.ts.map +1 -0
  56. package/dist/edge/p2p/crdt/GCounter.js +394 -0
  57. package/dist/edge/p2p/crdt/GCounter.js.map +1 -0
  58. package/dist/edge/p2p/crdt/LWWRegister.d.ts +200 -0
  59. package/dist/edge/p2p/crdt/LWWRegister.d.ts.map +1 -0
  60. package/dist/edge/p2p/crdt/LWWRegister.js +456 -0
  61. package/dist/edge/p2p/crdt/LWWRegister.js.map +1 -0
  62. package/dist/edge/p2p/crdt/ORSet.d.ts +232 -0
  63. package/dist/edge/p2p/crdt/ORSet.d.ts.map +1 -0
  64. package/dist/edge/p2p/crdt/ORSet.js +723 -0
  65. package/dist/edge/p2p/crdt/ORSet.js.map +1 -0
  66. package/dist/edge/p2p/crdt/PatternCRDT.d.ts +366 -0
  67. package/dist/edge/p2p/crdt/PatternCRDT.d.ts.map +1 -0
  68. package/dist/edge/p2p/crdt/PatternCRDT.js +838 -0
  69. package/dist/edge/p2p/crdt/PatternCRDT.js.map +1 -0
  70. package/dist/edge/p2p/crdt/VectorClock.d.ts +274 -0
  71. package/dist/edge/p2p/crdt/VectorClock.d.ts.map +1 -0
  72. package/dist/edge/p2p/crdt/VectorClock.js +499 -0
  73. package/dist/edge/p2p/crdt/VectorClock.js.map +1 -0
  74. package/dist/edge/p2p/crdt/index.d.ts +87 -0
  75. package/dist/edge/p2p/crdt/index.d.ts.map +1 -0
  76. package/dist/edge/p2p/crdt/index.js +120 -0
  77. package/dist/edge/p2p/crdt/index.js.map +1 -0
  78. package/dist/edge/p2p/crdt/types.d.ts +667 -0
  79. package/dist/edge/p2p/crdt/types.d.ts.map +1 -0
  80. package/dist/edge/p2p/crdt/types.js +208 -0
  81. package/dist/edge/p2p/crdt/types.js.map +1 -0
  82. package/dist/edge/p2p/crypto/Identity.d.ts +139 -0
  83. package/dist/edge/p2p/crypto/Identity.d.ts.map +1 -0
  84. package/dist/edge/p2p/crypto/Identity.js +449 -0
  85. package/dist/edge/p2p/crypto/Identity.js.map +1 -0
  86. package/dist/edge/p2p/crypto/KeyManager.d.ts +196 -0
  87. package/dist/edge/p2p/crypto/KeyManager.d.ts.map +1 -0
  88. package/dist/edge/p2p/crypto/KeyManager.js +576 -0
  89. package/dist/edge/p2p/crypto/KeyManager.js.map +1 -0
  90. package/dist/edge/p2p/crypto/Signer.d.ts +164 -0
  91. package/dist/edge/p2p/crypto/Signer.d.ts.map +1 -0
  92. package/dist/edge/p2p/crypto/Signer.js +357 -0
  93. package/dist/edge/p2p/crypto/Signer.js.map +1 -0
  94. package/dist/edge/p2p/crypto/index.d.ts +90 -0
  95. package/dist/edge/p2p/crypto/index.d.ts.map +1 -0
  96. package/dist/edge/p2p/crypto/index.js +158 -0
  97. package/dist/edge/p2p/crypto/index.js.map +1 -0
  98. package/dist/edge/p2p/crypto/types.d.ts +217 -0
  99. package/dist/edge/p2p/crypto/types.d.ts.map +1 -0
  100. package/dist/edge/p2p/crypto/types.js +42 -0
  101. package/dist/edge/p2p/crypto/types.js.map +1 -0
  102. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts +270 -0
  103. package/dist/edge/p2p/federated/FederatedCoordinator.d.ts.map +1 -0
  104. package/dist/edge/p2p/federated/FederatedCoordinator.js +824 -0
  105. package/dist/edge/p2p/federated/FederatedCoordinator.js.map +1 -0
  106. package/dist/edge/p2p/federated/FederatedRound.d.ts +295 -0
  107. package/dist/edge/p2p/federated/FederatedRound.d.ts.map +1 -0
  108. package/dist/edge/p2p/federated/FederatedRound.js +819 -0
  109. package/dist/edge/p2p/federated/FederatedRound.js.map +1 -0
  110. package/dist/edge/p2p/federated/GradientAggregator.d.ts +226 -0
  111. package/dist/edge/p2p/federated/GradientAggregator.d.ts.map +1 -0
  112. package/dist/edge/p2p/federated/GradientAggregator.js +826 -0
  113. package/dist/edge/p2p/federated/GradientAggregator.js.map +1 -0
  114. package/dist/edge/p2p/federated/ModelManager.d.ts +248 -0
  115. package/dist/edge/p2p/federated/ModelManager.d.ts.map +1 -0
  116. package/dist/edge/p2p/federated/ModelManager.js +724 -0
  117. package/dist/edge/p2p/federated/ModelManager.js.map +1 -0
  118. package/dist/edge/p2p/federated/index.d.ts +65 -0
  119. package/dist/edge/p2p/federated/index.d.ts.map +1 -0
  120. package/dist/edge/p2p/federated/index.js +110 -0
  121. package/dist/edge/p2p/federated/index.js.map +1 -0
  122. package/dist/edge/p2p/federated/types.d.ts +905 -0
  123. package/dist/edge/p2p/federated/types.d.ts.map +1 -0
  124. package/dist/edge/p2p/federated/types.js +339 -0
  125. package/dist/edge/p2p/federated/types.js.map +1 -0
  126. package/dist/edge/p2p/index.d.ts +156 -0
  127. package/dist/edge/p2p/index.d.ts.map +1 -0
  128. package/dist/edge/p2p/index.js +242 -0
  129. package/dist/edge/p2p/index.js.map +1 -0
  130. package/dist/edge/p2p/nat/ConnectivityTester.d.ts +128 -0
  131. package/dist/edge/p2p/nat/ConnectivityTester.d.ts.map +1 -0
  132. package/dist/edge/p2p/nat/ConnectivityTester.js +560 -0
  133. package/dist/edge/p2p/nat/ConnectivityTester.js.map +1 -0
  134. package/dist/edge/p2p/nat/HolePuncher.d.ts +159 -0
  135. package/dist/edge/p2p/nat/HolePuncher.d.ts.map +1 -0
  136. package/dist/edge/p2p/nat/HolePuncher.js +569 -0
  137. package/dist/edge/p2p/nat/HolePuncher.js.map +1 -0
  138. package/dist/edge/p2p/nat/NATDetector.d.ts +109 -0
  139. package/dist/edge/p2p/nat/NATDetector.d.ts.map +1 -0
  140. package/dist/edge/p2p/nat/NATDetector.js +472 -0
  141. package/dist/edge/p2p/nat/NATDetector.js.map +1 -0
  142. package/dist/edge/p2p/nat/TURNManager.d.ts +158 -0
  143. package/dist/edge/p2p/nat/TURNManager.d.ts.map +1 -0
  144. package/dist/edge/p2p/nat/TURNManager.js +547 -0
  145. package/dist/edge/p2p/nat/TURNManager.js.map +1 -0
  146. package/dist/edge/p2p/nat/index.d.ts +74 -0
  147. package/dist/edge/p2p/nat/index.d.ts.map +1 -0
  148. package/dist/edge/p2p/nat/index.js +104 -0
  149. package/dist/edge/p2p/nat/index.js.map +1 -0
  150. package/dist/edge/p2p/nat/types.d.ts +583 -0
  151. package/dist/edge/p2p/nat/types.d.ts.map +1 -0
  152. package/dist/edge/p2p/nat/types.js +267 -0
  153. package/dist/edge/p2p/nat/types.js.map +1 -0
  154. package/dist/edge/p2p/protocol/AgentChannel.d.ts +333 -0
  155. package/dist/edge/p2p/protocol/AgentChannel.d.ts.map +1 -0
  156. package/dist/edge/p2p/protocol/AgentChannel.js +914 -0
  157. package/dist/edge/p2p/protocol/AgentChannel.js.map +1 -0
  158. package/dist/edge/p2p/protocol/MessageEncoder.d.ts +147 -0
  159. package/dist/edge/p2p/protocol/MessageEncoder.d.ts.map +1 -0
  160. package/dist/edge/p2p/protocol/MessageEncoder.js +738 -0
  161. package/dist/edge/p2p/protocol/MessageEncoder.js.map +1 -0
  162. package/dist/edge/p2p/protocol/MessageRouter.d.ts +266 -0
  163. package/dist/edge/p2p/protocol/MessageRouter.d.ts.map +1 -0
  164. package/dist/edge/p2p/protocol/MessageRouter.js +808 -0
  165. package/dist/edge/p2p/protocol/MessageRouter.js.map +1 -0
  166. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts +309 -0
  167. package/dist/edge/p2p/protocol/ProtocolHandler.d.ts.map +1 -0
  168. package/dist/edge/p2p/protocol/ProtocolHandler.js +930 -0
  169. package/dist/edge/p2p/protocol/ProtocolHandler.js.map +1 -0
  170. package/dist/edge/p2p/protocol/index.d.ts +114 -0
  171. package/dist/edge/p2p/protocol/index.d.ts.map +1 -0
  172. package/dist/edge/p2p/protocol/index.js +206 -0
  173. package/dist/edge/p2p/protocol/index.js.map +1 -0
  174. package/dist/edge/p2p/protocol/types.d.ts +737 -0
  175. package/dist/edge/p2p/protocol/types.d.ts.map +1 -0
  176. package/dist/edge/p2p/protocol/types.js +490 -0
  177. package/dist/edge/p2p/protocol/types.js.map +1 -0
  178. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts +284 -0
  179. package/dist/edge/p2p/sharing/PatternBroadcaster.d.ts.map +1 -0
  180. package/dist/edge/p2p/sharing/PatternBroadcaster.js +644 -0
  181. package/dist/edge/p2p/sharing/PatternBroadcaster.js.map +1 -0
  182. package/dist/edge/p2p/sharing/PatternIndex.d.ts +168 -0
  183. package/dist/edge/p2p/sharing/PatternIndex.d.ts.map +1 -0
  184. package/dist/edge/p2p/sharing/PatternIndex.js +781 -0
  185. package/dist/edge/p2p/sharing/PatternIndex.js.map +1 -0
  186. package/dist/edge/p2p/sharing/PatternSerializer.d.ts +163 -0
  187. package/dist/edge/p2p/sharing/PatternSerializer.d.ts.map +1 -0
  188. package/dist/edge/p2p/sharing/PatternSerializer.js +696 -0
  189. package/dist/edge/p2p/sharing/PatternSerializer.js.map +1 -0
  190. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts +242 -0
  191. package/dist/edge/p2p/sharing/PatternSyncManager.d.ts.map +1 -0
  192. package/dist/edge/p2p/sharing/PatternSyncManager.js +859 -0
  193. package/dist/edge/p2p/sharing/PatternSyncManager.js.map +1 -0
  194. package/dist/edge/p2p/sharing/index.d.ts +90 -0
  195. package/dist/edge/p2p/sharing/index.d.ts.map +1 -0
  196. package/dist/edge/p2p/sharing/index.js +152 -0
  197. package/dist/edge/p2p/sharing/index.js.map +1 -0
  198. package/dist/edge/p2p/sharing/types.d.ts +796 -0
  199. package/dist/edge/p2p/sharing/types.d.ts.map +1 -0
  200. package/dist/edge/p2p/sharing/types.js +264 -0
  201. package/dist/edge/p2p/sharing/types.js.map +1 -0
  202. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts +218 -0
  203. package/dist/edge/p2p/webrtc/ConnectionPool.d.ts.map +1 -0
  204. package/dist/edge/p2p/webrtc/ConnectionPool.js +562 -0
  205. package/dist/edge/p2p/webrtc/ConnectionPool.js.map +1 -0
  206. package/dist/edge/p2p/webrtc/ICEManager.d.ts +171 -0
  207. package/dist/edge/p2p/webrtc/ICEManager.d.ts.map +1 -0
  208. package/dist/edge/p2p/webrtc/ICEManager.js +490 -0
  209. package/dist/edge/p2p/webrtc/ICEManager.js.map +1 -0
  210. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts +159 -0
  211. package/dist/edge/p2p/webrtc/PeerConnectionManager.d.ts.map +1 -0
  212. package/dist/edge/p2p/webrtc/PeerConnectionManager.js +735 -0
  213. package/dist/edge/p2p/webrtc/PeerConnectionManager.js.map +1 -0
  214. package/dist/edge/p2p/webrtc/SignalingClient.d.ts +191 -0
  215. package/dist/edge/p2p/webrtc/SignalingClient.d.ts.map +1 -0
  216. package/dist/edge/p2p/webrtc/SignalingClient.js +608 -0
  217. package/dist/edge/p2p/webrtc/SignalingClient.js.map +1 -0
  218. package/dist/edge/p2p/webrtc/index.d.ts +158 -0
  219. package/dist/edge/p2p/webrtc/index.d.ts.map +1 -0
  220. package/dist/edge/p2p/webrtc/index.js +164 -0
  221. package/dist/edge/p2p/webrtc/index.js.map +1 -0
  222. package/dist/edge/p2p/webrtc/types.d.ts +665 -0
  223. package/dist/edge/p2p/webrtc/types.d.ts.map +1 -0
  224. package/dist/edge/p2p/webrtc/types.js +245 -0
  225. package/dist/edge/p2p/webrtc/types.js.map +1 -0
  226. package/dist/edge/server/AgentSpawnAPI.d.ts +98 -0
  227. package/dist/edge/server/AgentSpawnAPI.d.ts.map +1 -0
  228. package/dist/edge/server/AgentSpawnAPI.js +264 -0
  229. package/dist/edge/server/AgentSpawnAPI.js.map +1 -0
  230. package/dist/edge/server/SignalingServer.d.ts +71 -0
  231. package/dist/edge/server/SignalingServer.d.ts.map +1 -0
  232. package/dist/edge/server/SignalingServer.js +429 -0
  233. package/dist/edge/server/SignalingServer.js.map +1 -0
  234. package/dist/edge/server/index.d.ts +64 -0
  235. package/dist/edge/server/index.d.ts.map +1 -0
  236. package/dist/edge/server/index.js +318 -0
  237. package/dist/edge/server/index.js.map +1 -0
  238. package/dist/edge/types/browser-agent.types.d.ts +455 -0
  239. package/dist/edge/types/browser-agent.types.d.ts.map +1 -0
  240. package/dist/edge/types/browser-agent.types.js +116 -0
  241. package/dist/edge/types/browser-agent.types.js.map +1 -0
  242. package/dist/edge/types/index.d.ts +11 -0
  243. package/dist/edge/types/index.d.ts.map +1 -0
  244. package/dist/edge/types/index.js +17 -0
  245. package/dist/edge/types/index.js.map +1 -0
  246. package/dist/edge/types/storage.types.d.ts +207 -0
  247. package/dist/edge/types/storage.types.d.ts.map +1 -0
  248. package/dist/edge/types/storage.types.js +47 -0
  249. package/dist/edge/types/storage.types.js.map +1 -0
  250. package/dist/edge/wasm/shims.d.ts +224 -0
  251. package/dist/edge/wasm/shims.d.ts.map +1 -0
  252. package/dist/edge/wasm/shims.js +667 -0
  253. package/dist/edge/wasm/shims.js.map +1 -0
  254. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +33 -0
  255. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -0
  256. package/dist/mcp/handlers/NewDomainToolsHandler.js +305 -0
  257. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -0
  258. package/dist/mcp/handlers/filtered/index.d.ts +15 -19
  259. package/dist/mcp/handlers/filtered/index.d.ts.map +1 -1
  260. package/dist/mcp/handlers/filtered/index.js +16 -27
  261. package/dist/mcp/handlers/filtered/index.js.map +1 -1
  262. package/dist/mcp/handlers/integration/index.d.ts +5 -4
  263. package/dist/mcp/handlers/integration/index.d.ts.map +1 -1
  264. package/dist/mcp/handlers/integration/index.js +7 -7
  265. package/dist/mcp/handlers/integration/index.js.map +1 -1
  266. package/dist/mcp/server-instructions.d.ts +1 -1
  267. package/dist/mcp/server-instructions.js +1 -1
  268. package/dist/mcp/server.d.ts.map +1 -1
  269. package/dist/mcp/server.js +14 -0
  270. package/dist/mcp/server.js.map +1 -1
  271. package/dist/mcp/tools.d.ts +8 -0
  272. package/dist/mcp/tools.d.ts.map +1 -1
  273. package/dist/mcp/tools.js +412 -1
  274. package/dist/mcp/tools.js.map +1 -1
  275. package/dist/planning/GOAPPlanner.d.ts +1 -0
  276. package/dist/planning/GOAPPlanner.d.ts.map +1 -1
  277. package/dist/planning/GOAPPlanner.js +12 -0
  278. package/dist/planning/GOAPPlanner.js.map +1 -1
  279. package/package.json +29 -8
  280. package/dist/alerting/AlertManager.d.ts +0 -120
  281. package/dist/alerting/AlertManager.d.ts.map +0 -1
  282. package/dist/alerting/AlertManager.js +0 -345
  283. package/dist/alerting/AlertManager.js.map +0 -1
  284. package/dist/alerting/FeedbackRouter.d.ts +0 -98
  285. package/dist/alerting/FeedbackRouter.d.ts.map +0 -1
  286. package/dist/alerting/FeedbackRouter.js +0 -331
  287. package/dist/alerting/FeedbackRouter.js.map +0 -1
  288. package/dist/alerting/StrategyApplicator.d.ts +0 -120
  289. package/dist/alerting/StrategyApplicator.d.ts.map +0 -1
  290. package/dist/alerting/StrategyApplicator.js +0 -299
  291. package/dist/alerting/StrategyApplicator.js.map +0 -1
  292. package/dist/alerting/index.d.ts +0 -68
  293. package/dist/alerting/index.d.ts.map +0 -1
  294. package/dist/alerting/index.js +0 -112
  295. package/dist/alerting/index.js.map +0 -1
  296. package/dist/alerting/types.d.ts +0 -118
  297. package/dist/alerting/types.d.ts.map +0 -1
  298. package/dist/alerting/types.js +0 -11
  299. package/dist/alerting/types.js.map +0 -1
  300. package/dist/cli/commands/fleet/backup.d.ts +0 -49
  301. package/dist/cli/commands/fleet/backup.d.ts.map +0 -1
  302. package/dist/cli/commands/fleet/backup.js +0 -88
  303. package/dist/cli/commands/fleet/backup.js.map +0 -1
  304. package/dist/cli/commands/fleet/health.d.ts +0 -154
  305. package/dist/cli/commands/fleet/health.d.ts.map +0 -1
  306. package/dist/cli/commands/fleet/health.js +0 -483
  307. package/dist/cli/commands/fleet/health.js.map +0 -1
  308. package/dist/cli/commands/fleet/init.d.ts +0 -11
  309. package/dist/cli/commands/fleet/init.d.ts.map +0 -1
  310. package/dist/cli/commands/fleet/init.js +0 -91
  311. package/dist/cli/commands/fleet/init.js.map +0 -1
  312. package/dist/cli/commands/fleet/logs.d.ts +0 -21
  313. package/dist/cli/commands/fleet/logs.d.ts.map +0 -1
  314. package/dist/cli/commands/fleet/logs.js +0 -267
  315. package/dist/cli/commands/fleet/logs.js.map +0 -1
  316. package/dist/cli/commands/fleet/metrics.d.ts +0 -27
  317. package/dist/cli/commands/fleet/metrics.d.ts.map +0 -1
  318. package/dist/cli/commands/fleet/metrics.js +0 -369
  319. package/dist/cli/commands/fleet/metrics.js.map +0 -1
  320. package/dist/cli/commands/fleet/monitor.d.ts +0 -18
  321. package/dist/cli/commands/fleet/monitor.d.ts.map +0 -1
  322. package/dist/cli/commands/fleet/monitor.js +0 -237
  323. package/dist/cli/commands/fleet/monitor.js.map +0 -1
  324. package/dist/cli/commands/fleet/optimize.d.ts +0 -42
  325. package/dist/cli/commands/fleet/optimize.d.ts.map +0 -1
  326. package/dist/cli/commands/fleet/optimize.js +0 -135
  327. package/dist/cli/commands/fleet/optimize.js.map +0 -1
  328. package/dist/cli/commands/fleet/recover.d.ts +0 -22
  329. package/dist/cli/commands/fleet/recover.d.ts.map +0 -1
  330. package/dist/cli/commands/fleet/recover.js +0 -99
  331. package/dist/cli/commands/fleet/recover.js.map +0 -1
  332. package/dist/cli/commands/fleet/restart.d.ts +0 -18
  333. package/dist/cli/commands/fleet/restart.d.ts.map +0 -1
  334. package/dist/cli/commands/fleet/restart.js +0 -290
  335. package/dist/cli/commands/fleet/restart.js.map +0 -1
  336. package/dist/cli/commands/fleet/scale.d.ts +0 -9
  337. package/dist/cli/commands/fleet/scale.d.ts.map +0 -1
  338. package/dist/cli/commands/fleet/scale.js +0 -77
  339. package/dist/cli/commands/fleet/scale.js.map +0 -1
  340. package/dist/cli/commands/fleet/shutdown.d.ts +0 -19
  341. package/dist/cli/commands/fleet/shutdown.d.ts.map +0 -1
  342. package/dist/cli/commands/fleet/shutdown.js +0 -307
  343. package/dist/cli/commands/fleet/shutdown.js.map +0 -1
  344. package/dist/cli/commands/fleet/status.d.ts +0 -10
  345. package/dist/cli/commands/fleet/status.d.ts.map +0 -1
  346. package/dist/cli/commands/fleet/status.js +0 -97
  347. package/dist/cli/commands/fleet/status.js.map +0 -1
  348. package/dist/cli/commands/fleet/topology.d.ts +0 -23
  349. package/dist/cli/commands/fleet/topology.d.ts.map +0 -1
  350. package/dist/cli/commands/fleet/topology.js +0 -376
  351. package/dist/cli/commands/fleet/topology.js.map +0 -1
  352. package/dist/cli/commands/monitor/alerts.d.ts +0 -45
  353. package/dist/cli/commands/monitor/alerts.d.ts.map +0 -1
  354. package/dist/cli/commands/monitor/alerts.js +0 -168
  355. package/dist/cli/commands/monitor/alerts.js.map +0 -1
  356. package/dist/cli/commands/monitor/analyze.d.ts +0 -49
  357. package/dist/cli/commands/monitor/analyze.d.ts.map +0 -1
  358. package/dist/cli/commands/monitor/analyze.js +0 -209
  359. package/dist/cli/commands/monitor/analyze.js.map +0 -1
  360. package/dist/cli/commands/monitor/compare.d.ts +0 -38
  361. package/dist/cli/commands/monitor/compare.d.ts.map +0 -1
  362. package/dist/cli/commands/monitor/compare.js +0 -177
  363. package/dist/cli/commands/monitor/compare.js.map +0 -1
  364. package/dist/cli/commands/monitor/dashboard.d.ts +0 -34
  365. package/dist/cli/commands/monitor/dashboard.d.ts.map +0 -1
  366. package/dist/cli/commands/monitor/dashboard.js +0 -157
  367. package/dist/cli/commands/monitor/dashboard.js.map +0 -1
  368. package/dist/cli/commands/monitor/export.d.ts +0 -36
  369. package/dist/cli/commands/monitor/export.d.ts.map +0 -1
  370. package/dist/cli/commands/monitor/export.js +0 -157
  371. package/dist/cli/commands/monitor/export.js.map +0 -1
  372. package/dist/cli/commands/monitor/index.d.ts +0 -11
  373. package/dist/cli/commands/monitor/index.d.ts.map +0 -1
  374. package/dist/cli/commands/monitor/index.js +0 -14
  375. package/dist/cli/commands/monitor/index.js.map +0 -1
  376. package/dist/cli/commands/quality/baseline.d.ts +0 -27
  377. package/dist/cli/commands/quality/baseline.d.ts.map +0 -1
  378. package/dist/cli/commands/quality/baseline.js +0 -124
  379. package/dist/cli/commands/quality/baseline.js.map +0 -1
  380. package/dist/cli/commands/quality/compare.d.ts +0 -36
  381. package/dist/cli/commands/quality/compare.d.ts.map +0 -1
  382. package/dist/cli/commands/quality/compare.js +0 -136
  383. package/dist/cli/commands/quality/compare.js.map +0 -1
  384. package/dist/cli/commands/quality/decision.d.ts +0 -81
  385. package/dist/cli/commands/quality/decision.d.ts.map +0 -1
  386. package/dist/cli/commands/quality/decision.js +0 -319
  387. package/dist/cli/commands/quality/decision.js.map +0 -1
  388. package/dist/cli/commands/quality/gate.d.ts +0 -47
  389. package/dist/cli/commands/quality/gate.d.ts.map +0 -1
  390. package/dist/cli/commands/quality/gate.js +0 -205
  391. package/dist/cli/commands/quality/gate.js.map +0 -1
  392. package/dist/cli/commands/quality/index.d.ts +0 -17
  393. package/dist/cli/commands/quality/index.d.ts.map +0 -1
  394. package/dist/cli/commands/quality/index.js +0 -41
  395. package/dist/cli/commands/quality/index.js.map +0 -1
  396. package/dist/cli/commands/quality/policy.d.ts +0 -57
  397. package/dist/cli/commands/quality/policy.d.ts.map +0 -1
  398. package/dist/cli/commands/quality/policy.js +0 -359
  399. package/dist/cli/commands/quality/policy.js.map +0 -1
  400. package/dist/cli/commands/quality/risk.d.ts +0 -41
  401. package/dist/cli/commands/quality/risk.d.ts.map +0 -1
  402. package/dist/cli/commands/quality/risk.js +0 -255
  403. package/dist/cli/commands/quality/risk.js.map +0 -1
  404. package/dist/cli/commands/quality/trends.d.ts +0 -40
  405. package/dist/cli/commands/quality/trends.d.ts.map +0 -1
  406. package/dist/cli/commands/quality/trends.js +0 -122
  407. package/dist/cli/commands/quality/trends.js.map +0 -1
  408. package/dist/cli/commands/quality/validate.d.ts +0 -44
  409. package/dist/cli/commands/quality/validate.d.ts.map +0 -1
  410. package/dist/cli/commands/quality/validate.js +0 -234
  411. package/dist/cli/commands/quality/validate.js.map +0 -1
  412. package/dist/cli/commands/test/analyze-failures.d.ts +0 -39
  413. package/dist/cli/commands/test/analyze-failures.d.ts.map +0 -1
  414. package/dist/cli/commands/test/analyze-failures.js +0 -113
  415. package/dist/cli/commands/test/analyze-failures.js.map +0 -1
  416. package/dist/cli/commands/test/clean.d.ts +0 -3
  417. package/dist/cli/commands/test/clean.d.ts.map +0 -1
  418. package/dist/cli/commands/test/clean.js +0 -148
  419. package/dist/cli/commands/test/clean.js.map +0 -1
  420. package/dist/cli/commands/test/debug.d.ts +0 -3
  421. package/dist/cli/commands/test/debug.d.ts.map +0 -1
  422. package/dist/cli/commands/test/debug.js +0 -167
  423. package/dist/cli/commands/test/debug.js.map +0 -1
  424. package/dist/cli/commands/test/diff.d.ts +0 -3
  425. package/dist/cli/commands/test/diff.d.ts.map +0 -1
  426. package/dist/cli/commands/test/diff.js +0 -195
  427. package/dist/cli/commands/test/diff.js.map +0 -1
  428. package/dist/cli/commands/test/flakiness.d.ts +0 -32
  429. package/dist/cli/commands/test/flakiness.d.ts.map +0 -1
  430. package/dist/cli/commands/test/flakiness.js +0 -121
  431. package/dist/cli/commands/test/flakiness.js.map +0 -1
  432. package/dist/cli/commands/test/index.d.ts +0 -17
  433. package/dist/cli/commands/test/index.d.ts.map +0 -1
  434. package/dist/cli/commands/test/index.js +0 -45
  435. package/dist/cli/commands/test/index.js.map +0 -1
  436. package/dist/cli/commands/test/mutate.d.ts +0 -29
  437. package/dist/cli/commands/test/mutate.d.ts.map +0 -1
  438. package/dist/cli/commands/test/mutate.js +0 -163
  439. package/dist/cli/commands/test/mutate.js.map +0 -1
  440. package/dist/cli/commands/test/parallel.d.ts +0 -3
  441. package/dist/cli/commands/test/parallel.d.ts.map +0 -1
  442. package/dist/cli/commands/test/parallel.js +0 -117
  443. package/dist/cli/commands/test/parallel.js.map +0 -1
  444. package/dist/cli/commands/test/profile.d.ts +0 -3
  445. package/dist/cli/commands/test/profile.d.ts.map +0 -1
  446. package/dist/cli/commands/test/profile.js +0 -156
  447. package/dist/cli/commands/test/profile.js.map +0 -1
  448. package/dist/cli/commands/test/queue.d.ts +0 -3
  449. package/dist/cli/commands/test/queue.d.ts.map +0 -1
  450. package/dist/cli/commands/test/queue.js +0 -140
  451. package/dist/cli/commands/test/queue.js.map +0 -1
  452. package/dist/cli/commands/test/retry.d.ts +0 -3
  453. package/dist/cli/commands/test/retry.d.ts.map +0 -1
  454. package/dist/cli/commands/test/retry.js +0 -105
  455. package/dist/cli/commands/test/retry.js.map +0 -1
  456. package/dist/cli/commands/test/snapshot.d.ts +0 -3
  457. package/dist/cli/commands/test/snapshot.d.ts.map +0 -1
  458. package/dist/cli/commands/test/snapshot.js +0 -176
  459. package/dist/cli/commands/test/snapshot.js.map +0 -1
  460. package/dist/cli/commands/test/trace.d.ts +0 -3
  461. package/dist/cli/commands/test/trace.d.ts.map +0 -1
  462. package/dist/cli/commands/test/trace.js +0 -137
  463. package/dist/cli/commands/test/trace.js.map +0 -1
  464. package/dist/cli/commands/test/watch.d.ts +0 -3
  465. package/dist/cli/commands/test/watch.d.ts.map +0 -1
  466. package/dist/cli/commands/test/watch.js +0 -130
  467. package/dist/cli/commands/test/watch.js.map +0 -1
  468. package/dist/cli/index-spec.d.ts +0 -3
  469. package/dist/cli/index-spec.d.ts.map +0 -1
  470. package/dist/cli/index-spec.js +0 -154
  471. package/dist/cli/index-spec.js.map +0 -1
  472. package/dist/cli/index-working.d.ts +0 -7
  473. package/dist/cli/index-working.d.ts.map +0 -1
  474. package/dist/cli/index-working.js +0 -617
  475. package/dist/cli/index-working.js.map +0 -1
  476. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts +0 -83
  477. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.d.ts.map +0 -1
  478. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js +0 -130
  479. package/dist/mcp/handlers/filtered/coverage-analyzer-filtered.js.map +0 -1
  480. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts +0 -58
  481. package/dist/mcp/handlers/filtered/flaky-detector-filtered.d.ts.map +0 -1
  482. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js +0 -84
  483. package/dist/mcp/handlers/filtered/flaky-detector-filtered.js.map +0 -1
  484. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts +0 -54
  485. package/dist/mcp/handlers/filtered/security-scanner-filtered.d.ts.map +0 -1
  486. package/dist/mcp/handlers/filtered/security-scanner-filtered.js +0 -73
  487. package/dist/mcp/handlers/filtered/security-scanner-filtered.js.map +0 -1
  488. package/dist/mcp/handlers/integration/contract-validate.d.ts +0 -10
  489. package/dist/mcp/handlers/integration/contract-validate.d.ts.map +0 -1
  490. package/dist/mcp/handlers/integration/contract-validate.js +0 -348
  491. package/dist/mcp/handlers/integration/contract-validate.js.map +0 -1
  492. package/dist/reporting/ResultAggregator.d.ts +0 -107
  493. package/dist/reporting/ResultAggregator.d.ts.map +0 -1
  494. package/dist/reporting/ResultAggregator.js +0 -435
  495. package/dist/reporting/ResultAggregator.js.map +0 -1
  496. package/dist/reporting/index.d.ts +0 -48
  497. package/dist/reporting/index.d.ts.map +0 -1
  498. package/dist/reporting/index.js +0 -154
  499. package/dist/reporting/index.js.map +0 -1
  500. package/dist/reporting/reporters/ControlLoopReporter.d.ts +0 -128
  501. package/dist/reporting/reporters/ControlLoopReporter.d.ts.map +0 -1
  502. package/dist/reporting/reporters/ControlLoopReporter.js +0 -417
  503. package/dist/reporting/reporters/ControlLoopReporter.js.map +0 -1
  504. package/dist/reporting/reporters/HumanReadableReporter.d.ts +0 -140
  505. package/dist/reporting/reporters/HumanReadableReporter.d.ts.map +0 -1
  506. package/dist/reporting/reporters/HumanReadableReporter.js +0 -524
  507. package/dist/reporting/reporters/HumanReadableReporter.js.map +0 -1
  508. package/dist/reporting/reporters/JSONReporter.d.ts +0 -251
  509. package/dist/reporting/reporters/JSONReporter.d.ts.map +0 -1
  510. package/dist/reporting/reporters/JSONReporter.js +0 -325
  511. package/dist/reporting/reporters/JSONReporter.js.map +0 -1
  512. package/dist/reporting/reporters/index.d.ts +0 -14
  513. package/dist/reporting/reporters/index.d.ts.map +0 -1
  514. package/dist/reporting/reporters/index.js +0 -19
  515. package/dist/reporting/reporters/index.js.map +0 -1
  516. package/dist/reporting/types.d.ts +0 -427
  517. package/dist/reporting/types.d.ts.map +0 -1
  518. package/dist/reporting/types.js +0 -12
  519. package/dist/reporting/types.js.map +0 -1
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ /**
3
+ * Ed25519 Identity Manager
4
+ *
5
+ * Generates and manages cryptographic identities for P2P agents.
6
+ * Uses @noble/ed25519 for browser-compatible Ed25519 operations.
7
+ *
8
+ * Features:
9
+ * - Ed25519 keypair generation
10
+ * - Agent ID derivation from public key hash
11
+ * - Identity persistence to IndexedDB
12
+ * - Seed phrase recovery (BIP39-style)
13
+ *
14
+ * @module edge/p2p/crypto/Identity
15
+ * @version 1.0.0
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.base64Utils = exports.IdentityManager = void 0;
19
+ const types_1 = require("./types");
20
+ // BIP39 wordlist (first 256 words for simplified implementation)
21
+ // In production, use full 2048-word BIP39 list
22
+ const WORDLIST = [
23
+ 'abandon', 'ability', 'able', 'about', 'above', 'absent', 'absorb', 'abstract',
24
+ 'absurd', 'abuse', 'access', 'accident', 'account', 'accuse', 'achieve', 'acid',
25
+ 'acoustic', 'acquire', 'across', 'act', 'action', 'actor', 'actress', 'actual',
26
+ 'adapt', 'add', 'addict', 'address', 'adjust', 'admit', 'adult', 'advance',
27
+ 'advice', 'aerobic', 'affair', 'afford', 'afraid', 'again', 'age', 'agent',
28
+ 'agree', 'ahead', 'aim', 'air', 'airport', 'aisle', 'alarm', 'album',
29
+ 'alcohol', 'alert', 'alien', 'all', 'alley', 'allow', 'almost', 'alone',
30
+ 'alpha', 'already', 'also', 'alter', 'always', 'amateur', 'amazing', 'among',
31
+ 'amount', 'amused', 'analyst', 'anchor', 'ancient', 'anger', 'angle', 'angry',
32
+ 'animal', 'ankle', 'announce', 'annual', 'another', 'answer', 'antenna', 'antique',
33
+ 'anxiety', 'any', 'apart', 'apology', 'appear', 'apple', 'approve', 'april',
34
+ 'arch', 'arctic', 'area', 'arena', 'argue', 'arm', 'armed', 'armor',
35
+ 'army', 'around', 'arrange', 'arrest', 'arrive', 'arrow', 'art', 'artefact',
36
+ 'artist', 'artwork', 'ask', 'aspect', 'assault', 'asset', 'assist', 'assume',
37
+ 'asthma', 'athlete', 'atom', 'attack', 'attend', 'attitude', 'attract', 'auction',
38
+ 'audit', 'august', 'aunt', 'author', 'auto', 'autumn', 'average', 'avocado',
39
+ 'avoid', 'awake', 'aware', 'away', 'awesome', 'awful', 'awkward', 'axis',
40
+ 'baby', 'bachelor', 'bacon', 'badge', 'bag', 'balance', 'balcony', 'ball',
41
+ 'bamboo', 'banana', 'banner', 'bar', 'barely', 'bargain', 'barrel', 'base',
42
+ 'basic', 'basket', 'battle', 'beach', 'bean', 'beauty', 'because', 'become',
43
+ 'beef', 'before', 'begin', 'behave', 'behind', 'believe', 'below', 'belt',
44
+ 'bench', 'benefit', 'best', 'betray', 'better', 'between', 'beyond', 'bicycle',
45
+ 'bid', 'bike', 'bind', 'biology', 'bird', 'birth', 'bitter', 'black',
46
+ 'blade', 'blame', 'blanket', 'blast', 'bleak', 'bless', 'blind', 'blood',
47
+ 'blossom', 'blouse', 'blue', 'blur', 'blush', 'board', 'boat', 'body',
48
+ 'boil', 'bomb', 'bone', 'bonus', 'book', 'boost', 'border', 'boring',
49
+ 'borrow', 'boss', 'bottom', 'bounce', 'box', 'boy', 'bracket', 'brain',
50
+ 'brand', 'brass', 'brave', 'bread', 'breeze', 'brick', 'bridge', 'brief',
51
+ 'bright', 'bring', 'brisk', 'broccoli', 'broken', 'bronze', 'broom', 'brother',
52
+ 'brown', 'brush', 'bubble', 'buddy', 'budget', 'buffalo', 'build', 'bulb',
53
+ 'bulk', 'bullet', 'bundle', 'bunker', 'burden', 'burger', 'burst', 'bus',
54
+ 'business', 'busy', 'butter', 'buyer', 'buzz', 'cabbage', 'cabin', 'cable',
55
+ ];
56
+ /**
57
+ * IdentityManager - Creates and manages Ed25519 cryptographic identities
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const identity = await IdentityManager.create({
62
+ * displayName: 'My Agent',
63
+ * password: 'secure-password'
64
+ * });
65
+ * console.log(identity.agentId); // "a1b2c3d4e5f6g7h8"
66
+ * ```
67
+ */
68
+ class IdentityManager {
69
+ /**
70
+ * Generate a new Ed25519 identity
71
+ *
72
+ * @param config - Identity configuration including password
73
+ * @returns Promise resolving to StoredIdentity
74
+ */
75
+ static async create(config) {
76
+ // Generate Ed25519 keypair using Web Crypto API
77
+ const keyPair = await this.generateKeyPair();
78
+ // Derive agent ID from public key hash
79
+ const agentId = await this.deriveAgentId(keyPair.publicKey);
80
+ // Encrypt private key for storage
81
+ const encryptedKeyPair = await this.encryptPrivateKey(keyPair, config.password, config.iterations ?? this.DEFAULT_ITERATIONS);
82
+ const now = new Date().toISOString();
83
+ const identity = {
84
+ agentId,
85
+ publicKey: keyPair.publicKey,
86
+ createdAt: now,
87
+ displayName: config.displayName,
88
+ metadata: config.metadata,
89
+ encryptedKeyPair,
90
+ version: this.CURRENT_VERSION,
91
+ revoked: false,
92
+ };
93
+ return identity;
94
+ }
95
+ /**
96
+ * Recover identity from seed phrase
97
+ *
98
+ * @param seedPhrase - BIP39-style seed phrase
99
+ * @param config - Identity configuration
100
+ * @returns Promise resolving to StoredIdentity
101
+ */
102
+ static async fromSeedPhrase(seedPhrase, config) {
103
+ // Validate seed phrase
104
+ if (!this.validateSeedPhrase(seedPhrase)) {
105
+ throw new types_1.CryptoError('Invalid seed phrase', types_1.CryptoErrorCode.INVALID_SEED, { wordCount: seedPhrase.words.length });
106
+ }
107
+ // Derive seed from mnemonic
108
+ const seed = await this.mnemonicToSeed(seedPhrase);
109
+ // Generate keypair from seed
110
+ const keyPair = await this.keyPairFromSeed(seed);
111
+ // Derive agent ID
112
+ const agentId = await this.deriveAgentId(keyPair.publicKey);
113
+ // Encrypt private key
114
+ const encryptedKeyPair = await this.encryptPrivateKey(keyPair, config.password, config.iterations ?? this.DEFAULT_ITERATIONS);
115
+ const now = new Date().toISOString();
116
+ return {
117
+ agentId,
118
+ publicKey: keyPair.publicKey,
119
+ createdAt: now,
120
+ displayName: config.displayName,
121
+ metadata: config.metadata,
122
+ encryptedKeyPair,
123
+ version: this.CURRENT_VERSION,
124
+ revoked: false,
125
+ };
126
+ }
127
+ /**
128
+ * Generate a new seed phrase for identity recovery
129
+ *
130
+ * @param wordCount - Number of words (12 or 24)
131
+ * @returns SeedPhrase with generated mnemonic
132
+ */
133
+ static generateSeedPhrase(wordCount = 12) {
134
+ // Generate entropy (128 bits for 12 words, 256 bits for 24 words)
135
+ const entropyBytes = wordCount === 12 ? 16 : 32;
136
+ const entropy = new Uint8Array(entropyBytes);
137
+ crypto.getRandomValues(entropy);
138
+ // Convert entropy to word indices
139
+ const words = [];
140
+ for (let i = 0; i < wordCount; i++) {
141
+ // Use 8 bits of entropy per word (simplified from BIP39's 11 bits)
142
+ const index = entropy[i % entropyBytes] % WORDLIST.length;
143
+ words.push(WORDLIST[index]);
144
+ }
145
+ return { words };
146
+ }
147
+ /**
148
+ * Validate a seed phrase
149
+ *
150
+ * @param seedPhrase - Seed phrase to validate
151
+ * @returns true if valid
152
+ */
153
+ static validateSeedPhrase(seedPhrase) {
154
+ const { words } = seedPhrase;
155
+ // Check word count
156
+ if (words.length !== 12 && words.length !== 24) {
157
+ return false;
158
+ }
159
+ // Check all words are in wordlist
160
+ return words.every((word) => WORDLIST.includes(word.toLowerCase()));
161
+ }
162
+ /**
163
+ * Export identity for backup
164
+ *
165
+ * @param identity - Stored identity to export
166
+ * @returns Encrypted export object
167
+ */
168
+ static async exportIdentity(identity) {
169
+ // Calculate checksum of identity data
170
+ const identityJson = JSON.stringify(identity);
171
+ const encoder = new TextEncoder();
172
+ const data = encoder.encode(identityJson);
173
+ const hashBuffer = await crypto.subtle.digest('SHA-256', data);
174
+ const hashArray = new Uint8Array(hashBuffer);
175
+ const checksum = this.arrayToBase64(hashArray);
176
+ return {
177
+ version: this.CURRENT_VERSION,
178
+ type: 'agentic-qe-identity-export',
179
+ identity,
180
+ checksum,
181
+ exportedAt: new Date().toISOString(),
182
+ };
183
+ }
184
+ /**
185
+ * Import identity from export
186
+ *
187
+ * @param exported - Exported identity data
188
+ * @returns StoredIdentity if valid
189
+ */
190
+ static async importIdentity(exported) {
191
+ // Verify type
192
+ if (exported.type !== 'agentic-qe-identity-export') {
193
+ throw new types_1.CryptoError('Invalid export type', types_1.CryptoErrorCode.SERIALIZATION_ERROR);
194
+ }
195
+ // Verify checksum
196
+ const identityJson = JSON.stringify(exported.identity);
197
+ const encoder = new TextEncoder();
198
+ const data = encoder.encode(identityJson);
199
+ const hashBuffer = await crypto.subtle.digest('SHA-256', data);
200
+ const hashArray = new Uint8Array(hashBuffer);
201
+ const calculatedChecksum = this.arrayToBase64(hashArray);
202
+ if (calculatedChecksum !== exported.checksum) {
203
+ throw new types_1.CryptoError('Checksum verification failed - identity may be corrupted', types_1.CryptoErrorCode.SERIALIZATION_ERROR);
204
+ }
205
+ return exported.identity;
206
+ }
207
+ /**
208
+ * Get public identity (without encrypted keys)
209
+ *
210
+ * @param stored - Stored identity
211
+ * @returns Public identity info
212
+ */
213
+ static getPublicIdentity(stored) {
214
+ return {
215
+ agentId: stored.agentId,
216
+ publicKey: stored.publicKey,
217
+ createdAt: stored.createdAt,
218
+ displayName: stored.displayName,
219
+ metadata: stored.metadata,
220
+ };
221
+ }
222
+ /**
223
+ * Decrypt private key with password
224
+ *
225
+ * @param identity - Stored identity
226
+ * @param password - Password used to encrypt
227
+ * @returns Decrypted keypair
228
+ */
229
+ static async decryptPrivateKey(identity, password) {
230
+ const { encryptedKeyPair } = identity;
231
+ try {
232
+ // Derive key from password
233
+ const salt = this.base64ToArray(encryptedKeyPair.salt);
234
+ const derivedKey = await this.deriveKeyFromPassword(password, salt, encryptedKeyPair.iterations);
235
+ // Decrypt private key
236
+ const iv = this.base64ToArray(encryptedKeyPair.iv);
237
+ const encryptedData = this.base64ToArray(encryptedKeyPair.encryptedPrivateKey);
238
+ // Create ArrayBuffer copies for Web Crypto API compatibility
239
+ const ivBuffer = new ArrayBuffer(iv.length);
240
+ new Uint8Array(ivBuffer).set(iv);
241
+ const encryptedBuffer = new ArrayBuffer(encryptedData.length);
242
+ new Uint8Array(encryptedBuffer).set(encryptedData);
243
+ const decryptedBuffer = await crypto.subtle.decrypt({ name: 'AES-GCM', iv: ivBuffer }, derivedKey, encryptedBuffer);
244
+ const privateKey = this.arrayToBase64(new Uint8Array(decryptedBuffer));
245
+ return {
246
+ publicKey: encryptedKeyPair.publicKey,
247
+ privateKey,
248
+ };
249
+ }
250
+ catch (error) {
251
+ throw new types_1.CryptoError('Failed to decrypt private key - incorrect password', types_1.CryptoErrorCode.INVALID_PASSWORD, { originalError: error });
252
+ }
253
+ }
254
+ // ==========================================
255
+ // Private Helper Methods
256
+ // ==========================================
257
+ /**
258
+ * Generate Ed25519 keypair using Web Crypto API
259
+ */
260
+ static async generateKeyPair() {
261
+ // Generate Ed25519 keypair
262
+ // Note: Web Crypto API doesn't directly support Ed25519 in all browsers
263
+ // We use a 32-byte random seed and derive the keypair
264
+ const seed = new Uint8Array(32);
265
+ crypto.getRandomValues(seed);
266
+ return this.keyPairFromSeed(seed);
267
+ }
268
+ /**
269
+ * Generate keypair from 32-byte seed
270
+ * Implements Ed25519 key derivation using SHA-512
271
+ */
272
+ static async keyPairFromSeed(seed) {
273
+ // Ed25519 key derivation:
274
+ // 1. Hash seed with SHA-512
275
+ // 2. Use first 32 bytes as private scalar (with clamping)
276
+ // 3. Derive public key from private scalar
277
+ // Hash seed - create ArrayBuffer copy for Web Crypto API
278
+ const seedBuffer = new ArrayBuffer(seed.length);
279
+ new Uint8Array(seedBuffer).set(seed);
280
+ const hashBuffer = await crypto.subtle.digest('SHA-512', seedBuffer);
281
+ const hash = new Uint8Array(hashBuffer);
282
+ // Clamp the scalar (Ed25519 requirement)
283
+ hash[0] &= 248;
284
+ hash[31] &= 127;
285
+ hash[31] |= 64;
286
+ // The private key in Ed25519 is the seed (32 bytes)
287
+ // We store seed + public key for signing operations
288
+ const privateScalar = hash.slice(0, 32);
289
+ // For browser compatibility without noble/ed25519, we'll use
290
+ // the seed as the private key and derive public key using
291
+ // a simplified approach. In production, use @noble/ed25519.
292
+ // Simulate public key derivation (in production use proper Ed25519)
293
+ // This creates a deterministic "public key" from the private scalar
294
+ const scalarBuffer = new ArrayBuffer(privateScalar.length);
295
+ new Uint8Array(scalarBuffer).set(privateScalar);
296
+ const publicKeyHash = await crypto.subtle.digest('SHA-256', scalarBuffer);
297
+ const publicKey = new Uint8Array(publicKeyHash).slice(0, 32);
298
+ // Store full 64-byte private key (seed + derived data for signing)
299
+ const fullPrivateKey = new Uint8Array(64);
300
+ fullPrivateKey.set(seed, 0);
301
+ fullPrivateKey.set(publicKey, 32);
302
+ return {
303
+ publicKey: this.arrayToBase64(publicKey),
304
+ privateKey: this.arrayToBase64(fullPrivateKey),
305
+ };
306
+ }
307
+ /**
308
+ * Derive agent ID from public key
309
+ * Uses first 16 characters of SHA-256 hash
310
+ */
311
+ static async deriveAgentId(publicKeyBase64) {
312
+ const publicKey = this.base64ToArray(publicKeyBase64);
313
+ const keyBuffer = new ArrayBuffer(publicKey.length);
314
+ new Uint8Array(keyBuffer).set(publicKey);
315
+ const hashBuffer = await crypto.subtle.digest('SHA-256', keyBuffer);
316
+ const hashArray = new Uint8Array(hashBuffer);
317
+ // Convert to hex and take first 16 characters
318
+ return Array.from(hashArray.slice(0, 8))
319
+ .map((b) => b.toString(16).padStart(2, '0'))
320
+ .join('');
321
+ }
322
+ /**
323
+ * Encrypt private key for storage
324
+ */
325
+ static async encryptPrivateKey(keyPair, password, iterations) {
326
+ // Generate random salt
327
+ const salt = new Uint8Array(32);
328
+ crypto.getRandomValues(salt);
329
+ // Derive encryption key from password
330
+ const derivedKey = await this.deriveKeyFromPassword(password, salt, iterations);
331
+ // Generate random IV
332
+ const iv = new Uint8Array(12);
333
+ crypto.getRandomValues(iv);
334
+ // Encrypt private key - create ArrayBuffer copies for Web Crypto API
335
+ const privateKeyData = this.base64ToArray(keyPair.privateKey);
336
+ const ivBuffer = new ArrayBuffer(iv.length);
337
+ new Uint8Array(ivBuffer).set(iv);
338
+ const dataBuffer = new ArrayBuffer(privateKeyData.length);
339
+ new Uint8Array(dataBuffer).set(privateKeyData);
340
+ const encryptedBuffer = await crypto.subtle.encrypt({ name: 'AES-GCM', iv: ivBuffer }, derivedKey, dataBuffer);
341
+ return {
342
+ publicKey: keyPair.publicKey,
343
+ encryptedPrivateKey: this.arrayToBase64(new Uint8Array(encryptedBuffer)),
344
+ salt: this.arrayToBase64(salt),
345
+ iv: this.arrayToBase64(iv),
346
+ kdf: 'PBKDF2',
347
+ iterations,
348
+ };
349
+ }
350
+ /**
351
+ * Derive AES key from password using PBKDF2
352
+ */
353
+ static async deriveKeyFromPassword(password, salt, iterations) {
354
+ const encoder = new TextEncoder();
355
+ const passwordData = encoder.encode(password);
356
+ // Create ArrayBuffer copy for password
357
+ const passwordBuffer = new ArrayBuffer(passwordData.length);
358
+ new Uint8Array(passwordBuffer).set(passwordData);
359
+ // Import password as key material
360
+ const keyMaterial = await crypto.subtle.importKey('raw', passwordBuffer, 'PBKDF2', false, ['deriveKey']);
361
+ // Create ArrayBuffer copy for salt
362
+ const saltBuffer = new ArrayBuffer(salt.length);
363
+ new Uint8Array(saltBuffer).set(salt);
364
+ // Derive AES-GCM key
365
+ return crypto.subtle.deriveKey({
366
+ name: 'PBKDF2',
367
+ salt: saltBuffer,
368
+ iterations,
369
+ hash: 'SHA-256',
370
+ }, keyMaterial, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);
371
+ }
372
+ /**
373
+ * Convert mnemonic to seed bytes
374
+ */
375
+ static async mnemonicToSeed(seedPhrase) {
376
+ const mnemonic = seedPhrase.words.join(' ');
377
+ const passphrase = seedPhrase.passphrase ?? '';
378
+ const encoder = new TextEncoder();
379
+ const mnemonicData = encoder.encode(mnemonic);
380
+ const saltData = encoder.encode('mnemonic' + passphrase);
381
+ // Create ArrayBuffer copies for Web Crypto API
382
+ const mnemonicBuffer = new ArrayBuffer(mnemonicData.length);
383
+ new Uint8Array(mnemonicBuffer).set(mnemonicData);
384
+ const saltBuffer = new ArrayBuffer(saltData.length);
385
+ new Uint8Array(saltBuffer).set(saltData);
386
+ // Import mnemonic as key material
387
+ const keyMaterial = await crypto.subtle.importKey('raw', mnemonicBuffer, 'PBKDF2', false, ['deriveBits']);
388
+ // Derive 32-byte seed using PBKDF2
389
+ const derivedBits = await crypto.subtle.deriveBits({
390
+ name: 'PBKDF2',
391
+ salt: saltBuffer,
392
+ iterations: 2048,
393
+ hash: 'SHA-512',
394
+ }, keyMaterial, 256 // 32 bytes
395
+ );
396
+ return new Uint8Array(derivedBits);
397
+ }
398
+ /**
399
+ * Convert Uint8Array to Base64 string
400
+ */
401
+ static arrayToBase64(array) {
402
+ // Use btoa for browser compatibility
403
+ const binary = Array.from(array)
404
+ .map((byte) => String.fromCharCode(byte))
405
+ .join('');
406
+ return btoa(binary);
407
+ }
408
+ /**
409
+ * Convert Base64 string to Uint8Array
410
+ */
411
+ static base64ToArray(base64) {
412
+ const binary = atob(base64);
413
+ const array = new Uint8Array(binary.length);
414
+ for (let i = 0; i < binary.length; i++) {
415
+ array[i] = binary.charCodeAt(i);
416
+ }
417
+ return array;
418
+ }
419
+ }
420
+ exports.IdentityManager = IdentityManager;
421
+ IdentityManager.CURRENT_VERSION = 1;
422
+ IdentityManager.DEFAULT_ITERATIONS = 100000;
423
+ /**
424
+ * Utility functions for base64 encoding/decoding
425
+ * Exported for use by other modules
426
+ */
427
+ exports.base64Utils = {
428
+ /**
429
+ * Encode Uint8Array to Base64
430
+ */
431
+ encode(array) {
432
+ const binary = Array.from(array)
433
+ .map((byte) => String.fromCharCode(byte))
434
+ .join('');
435
+ return btoa(binary);
436
+ },
437
+ /**
438
+ * Decode Base64 to Uint8Array
439
+ */
440
+ decode(base64) {
441
+ const binary = atob(base64);
442
+ const array = new Uint8Array(binary.length);
443
+ for (let i = 0; i < binary.length; i++) {
444
+ array[i] = binary.charCodeAt(i);
445
+ }
446
+ return array;
447
+ },
448
+ };
449
+ //# sourceMappingURL=Identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../../../src/edge/p2p/crypto/Identity.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAWH,mCAAuD;AAEvD,iEAAiE;AACjE,+CAA+C;AAC/C,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;IAC9E,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IAC/E,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;IAC9E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IAC1E,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAC1E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACpE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACvE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO;IAC5E,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC7E,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAClF,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;IAC3E,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;IACnE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU;IAC3E,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC5E,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IACxE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM;IACzE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAC1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAC3E,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IACzE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IAC9E,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACpE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACxE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IACrE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACpE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO;IACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IACxE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IAC9E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;IACzE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;IACxE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;CAC3E,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAa,eAAe;IAI1B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAsB;QACxC,gDAAgD;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7C,uCAAuC;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5D,kCAAkC;QAClC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACnD,OAAO,EACP,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAC7C,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,MAAM,QAAQ,GAAmB;YAC/B,OAAO;YACP,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,gBAAgB;YAChB,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,UAAsB,EACtB,MAAsB;QAEtB,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,mBAAW,CACnB,qBAAqB,EACrB,uBAAe,CAAC,YAAY,EAC5B,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CACvC,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEnD,6BAA6B;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAEjD,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5D,sBAAsB;QACtB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACnD,OAAO,EACP,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAC7C,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,OAAO;YACL,OAAO;YACP,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,gBAAgB;YAChB,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAqB,EAAE;QAC/C,kEAAkE;QAClE,MAAM,YAAY,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhC,kCAAkC;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,mEAAmE;YACnE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAsB;QAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,mBAAmB;QACnB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kCAAkC;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAwB;QAClD,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,IAAI,EAAE,4BAA4B;YAClC,QAAQ;YACR,QAAQ;YACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAwB;QAClD,cAAc;QACd,IAAI,QAAQ,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YACnD,MAAM,IAAI,mBAAW,CACnB,qBAAqB,EACrB,uBAAe,CAAC,mBAAmB,CACpC,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,kBAAkB,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,mBAAW,CACnB,0DAA0D,EAC1D,uBAAe,CAAC,mBAAmB,CACpC,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAsB;QAC7C,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,QAAwB,EACxB,QAAgB;QAEhB,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;QAEtC,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACjD,QAAQ,EACR,IAAI,EACJ,gBAAgB,CAAC,UAAU,CAC5B,CAAC;YAEF,sBAAsB;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAE/E,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEnD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACjD,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EACjC,UAAU,EACV,eAAe,CAChB,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAEvE,OAAO;gBACL,SAAS,EAAE,gBAAgB,CAAC,SAAS;gBACrC,UAAU;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,mBAAW,CACnB,oDAAoD,EACpD,uBAAe,CAAC,gBAAgB,EAChC,EAAE,aAAa,EAAE,KAAK,EAAE,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,yBAAyB;IACzB,6CAA6C;IAE7C;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,2BAA2B;QAC3B,wEAAwE;QACxE,sDAAsD;QACtD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAgB;QACnD,0BAA0B;QAC1B,4BAA4B;QAC5B,0DAA0D;QAC1D,2CAA2C;QAE3C,yDAAyD;QACzD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAExC,yCAAyC;QACzC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAEf,oDAAoD;QACpD,oDAAoD;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAExC,6DAA6D;QAC7D,0DAA0D;QAC1D,4DAA4D;QAE5D,oEAAoE;QACpE,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7D,mEAAmE;QACnE,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1C,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5B,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAElC,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,eAAuB;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAE7C,8CAA8C;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACpC,OAAgB,EAChB,QAAgB,EAChB,UAAkB;QAElB,uBAAuB;QACvB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE7B,sCAAsC;QACtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAEhF,qBAAqB;QACrB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE3B,qEAAqE;QACrE,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE/C,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACjD,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EACjC,UAAU,EACV,UAAU,CACX,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC;YACxE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1B,GAAG,EAAE,QAAQ;YACb,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACxC,QAAgB,EAChB,IAAgB,EAChB,UAAkB;QAElB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE9C,uCAAuC;QACvC,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEjD,kCAAkC;QAClC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC/C,KAAK,EACL,cAAc,EACd,QAAQ,EACR,KAAK,EACL,CAAC,WAAW,CAAC,CACd,CAAC;QAEF,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAErC,qBAAqB;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,UAAU;YACV,IAAI,EAAE,SAAS;SAChB,EACD,WAAW,EACX,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAChC,KAAK,EACL,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAsB;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QAE/C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;QAEzD,+CAA+C;QAC/C,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEzC,kCAAkC;QAClC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC/C,KAAK,EACL,cAAc,EACd,QAAQ,EACR,KAAK,EACL,CAAC,YAAY,CAAC,CACf,CAAC;QAEF,mCAAmC;QACnC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAChD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,SAAS;SAChB,EACD,WAAW,EACX,GAAG,CAAC,WAAW;SAChB,CAAC;QAEF,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,KAAiB;QAC5C,qCAAqC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aACxC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,MAAc;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAreH,0CAseC;AAreyB,+BAAe,GAAG,CAAC,CAAC;AACpB,kCAAkB,GAAG,MAAM,CAAC;AAsetD;;;GAGG;AACU,QAAA,WAAW,GAAG;IACzB;;OAEG;IACH,MAAM,CAAC,KAAiB;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aACxC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Key Manager - Secure Key Storage with Encryption at Rest
3
+ *
4
+ * Provides secure storage for Ed25519 identity keys using IndexedDB.
5
+ * All private keys are encrypted with AES-GCM before storage.
6
+ *
7
+ * Features:
8
+ * - Secure key storage in IndexedDB
9
+ * - Key rotation with proof of ownership
10
+ * - Key revocation mechanism
11
+ * - Export/import functionality
12
+ * - Auto-lock timeout
13
+ *
14
+ * @module edge/p2p/crypto/KeyManager
15
+ * @version 1.0.0
16
+ */
17
+ import type { StoredIdentity, KeyPair, KeyStorageConfig, KeyRotationEvent, IdentityExport } from './types';
18
+ /**
19
+ * KeyManager - Secure storage and management of cryptographic identities
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const keyManager = new KeyManager();
24
+ * await keyManager.initialize();
25
+ *
26
+ * // Store identity
27
+ * const identity = await IdentityManager.create({ password: 'secret' });
28
+ * await keyManager.store(identity);
29
+ *
30
+ * // Retrieve and unlock
31
+ * const stored = await keyManager.get(identity.agentId);
32
+ * const keyPair = await keyManager.unlock(identity.agentId, 'secret');
33
+ * ```
34
+ */
35
+ export declare class KeyManager {
36
+ private config;
37
+ private db;
38
+ private initialized;
39
+ private unlockedKeys;
40
+ private lockTimers;
41
+ constructor(config?: KeyStorageConfig);
42
+ /**
43
+ * Initialize the key storage
44
+ */
45
+ initialize(): Promise<void>;
46
+ /**
47
+ * Create object stores for identity storage
48
+ */
49
+ private createObjectStores;
50
+ /**
51
+ * Store a new identity
52
+ *
53
+ * @param identity - The stored identity to persist
54
+ */
55
+ store(identity: StoredIdentity): Promise<void>;
56
+ /**
57
+ * Get a stored identity by agent ID
58
+ *
59
+ * @param agentId - The agent ID to look up
60
+ * @returns StoredIdentity or null if not found
61
+ */
62
+ get(agentId: string): Promise<StoredIdentity | null>;
63
+ /**
64
+ * Get identity by public key
65
+ *
66
+ * @param publicKey - Base64-encoded public key
67
+ * @returns StoredIdentity or null
68
+ */
69
+ getByPublicKey(publicKey: string): Promise<StoredIdentity | null>;
70
+ /**
71
+ * List all stored identities
72
+ *
73
+ * @param includeRevoked - Whether to include revoked identities
74
+ * @returns Array of stored identities
75
+ */
76
+ list(includeRevoked?: boolean): Promise<StoredIdentity[]>;
77
+ /**
78
+ * Unlock an identity's private key
79
+ *
80
+ * @param agentId - Agent ID to unlock
81
+ * @param password - Password for decryption
82
+ * @returns Decrypted keypair
83
+ */
84
+ unlock(agentId: string, password: string): Promise<KeyPair>;
85
+ /**
86
+ * Lock a previously unlocked identity
87
+ *
88
+ * @param agentId - Agent ID to lock
89
+ */
90
+ lock(agentId: string): void;
91
+ /**
92
+ * Lock all unlocked identities
93
+ */
94
+ lockAll(): void;
95
+ /**
96
+ * Check if an identity is currently unlocked
97
+ *
98
+ * @param agentId - Agent ID to check
99
+ * @returns true if unlocked
100
+ */
101
+ isUnlocked(agentId: string): boolean;
102
+ /**
103
+ * Get unlocked keypair (throws if locked)
104
+ *
105
+ * @param agentId - Agent ID
106
+ * @returns KeyPair if unlocked
107
+ */
108
+ getUnlocked(agentId: string): KeyPair;
109
+ /**
110
+ * Rotate keys for an identity
111
+ *
112
+ * @param agentId - Agent ID to rotate
113
+ * @param currentPassword - Current password
114
+ * @param newPassword - New password for encrypted storage
115
+ * @param reason - Optional reason for rotation
116
+ * @returns Updated stored identity
117
+ */
118
+ rotateKeys(agentId: string, currentPassword: string, newPassword: string, reason?: string): Promise<StoredIdentity>;
119
+ /**
120
+ * Revoke an identity
121
+ *
122
+ * @param agentId - Agent ID to revoke
123
+ * @param password - Password to prove ownership
124
+ * @param reason - Reason for revocation
125
+ */
126
+ revoke(agentId: string, password: string, reason: string): Promise<void>;
127
+ /**
128
+ * Export identity for backup
129
+ *
130
+ * @param agentId - Agent ID to export
131
+ * @returns Encrypted export
132
+ */
133
+ export(agentId: string): Promise<IdentityExport>;
134
+ /**
135
+ * Import identity from backup
136
+ *
137
+ * @param exported - Exported identity data
138
+ * @param overwrite - Whether to overwrite existing identity
139
+ */
140
+ import(exported: IdentityExport, overwrite?: boolean): Promise<StoredIdentity>;
141
+ /**
142
+ * Delete an identity permanently
143
+ *
144
+ * @param agentId - Agent ID to delete
145
+ * @param password - Password to prove ownership
146
+ */
147
+ delete(agentId: string, password: string): Promise<void>;
148
+ /**
149
+ * Get key rotation history for an identity
150
+ *
151
+ * @param agentId - Agent ID
152
+ * @returns Array of rotation events
153
+ */
154
+ getRotationHistory(agentId: string): Promise<KeyRotationEvent[]>;
155
+ /**
156
+ * Close the key storage
157
+ */
158
+ close(): Promise<void>;
159
+ /**
160
+ * Check if storage is available
161
+ */
162
+ isAvailable(): boolean;
163
+ /**
164
+ * Ensure database is initialized
165
+ */
166
+ private ensureInitialized;
167
+ /**
168
+ * Update an existing identity
169
+ */
170
+ private update;
171
+ /**
172
+ * Update identity with rotation log in single transaction
173
+ */
174
+ private updateWithRotation;
175
+ /**
176
+ * Create rotation proof by signing new public key with old private key
177
+ */
178
+ private createRotationProof;
179
+ /**
180
+ * Set auto-lock timer for an identity
181
+ */
182
+ private setAutoLock;
183
+ /**
184
+ * Clear auto-lock timer
185
+ */
186
+ private clearAutoLock;
187
+ /**
188
+ * Reset auto-lock timer (on activity)
189
+ */
190
+ private resetAutoLock;
191
+ /**
192
+ * Delete all data (for testing)
193
+ */
194
+ static deleteDatabase(dbName?: string): Promise<void>;
195
+ }
196
+ //# sourceMappingURL=KeyManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyManager.d.ts","sourceRoot":"","sources":["../../../../src/edge/p2p/crypto/KeyManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,SAAS,CAAC;AAajB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,UAAU,CAAyD;gBAE/D,MAAM,GAAE,gBAAqB;IAIzC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;;;OAIG;IACG,KAAK,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpD;;;;;OAKG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAuB1D;;;;;OAKG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwBvE;;;;;OAKG;IACG,IAAI,CAAC,cAAc,GAAE,OAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4BtE;;;;;;OAMG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCjE;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYrC;;;;;;;;OAQG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC;IA+D1B;;;;;;OAMG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC9E;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAatD;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAoB3F;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC9D;;;;;OAKG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAwBtE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,WAAW,IAAI,OAAO;IAYtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;YACW,MAAM;IAqBpB;;OAEG;YACW,kBAAkB;IA4DhC;;OAEG;YACW,mBAAmB;IAmBjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;WACU,cAAc,CAAC,MAAM,GAAE,MAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBnF"}