@gsep/core 0.8.0 → 1.0.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 (344) hide show
  1. package/README.md +12 -12
  2. package/dist/{PGA.d.ts → GSEP.d.ts} +120 -8
  3. package/dist/GSEP.d.ts.map +1 -0
  4. package/dist/{PGA.js → GSEP.js} +1248 -46
  5. package/dist/GSEP.js.map +1 -0
  6. package/dist/adapters/langchain.d.ts +52 -0
  7. package/dist/adapters/langchain.d.ts.map +1 -0
  8. package/dist/adapters/langchain.js +89 -0
  9. package/dist/adapters/langchain.js.map +1 -0
  10. package/dist/adapters/openclaw-plugin.d.ts +42 -0
  11. package/dist/adapters/openclaw-plugin.d.ts.map +1 -0
  12. package/dist/adapters/openclaw-plugin.js +149 -0
  13. package/dist/adapters/openclaw-plugin.js.map +1 -0
  14. package/dist/adapters/vercel-ai.d.ts +74 -0
  15. package/dist/adapters/vercel-ai.d.ts.map +1 -0
  16. package/dist/adapters/vercel-ai.js +151 -0
  17. package/dist/adapters/vercel-ai.js.map +1 -0
  18. package/dist/advanced-ai/EnhancedSelfModel.js +2 -2
  19. package/dist/advanced-ai/EnhancedSelfModel.js.map +1 -1
  20. package/dist/advanced-ai/ModelRouter.js.map +1 -1
  21. package/dist/auto.d.ts +6 -0
  22. package/dist/auto.d.ts.map +1 -0
  23. package/dist/auto.js +197 -0
  24. package/dist/auto.js.map +1 -0
  25. package/dist/core/CoherenceValidator.d.ts +25 -0
  26. package/dist/core/CoherenceValidator.d.ts.map +1 -0
  27. package/dist/core/CoherenceValidator.js +182 -0
  28. package/dist/core/CoherenceValidator.js.map +1 -0
  29. package/dist/core/ContextMemory.d.ts.map +1 -1
  30. package/dist/core/ContextMemory.js +1 -1
  31. package/dist/core/ContextMemory.js.map +1 -1
  32. package/dist/core/DNAProfile.d.ts +5 -1
  33. package/dist/core/DNAProfile.d.ts.map +1 -1
  34. package/dist/core/DNAProfile.js +14 -1
  35. package/dist/core/DNAProfile.js.map +1 -1
  36. package/dist/core/GSEPIdentitySection.d.ts.map +1 -1
  37. package/dist/core/GSEPIdentitySection.js +12 -3
  38. package/dist/core/GSEPIdentitySection.js.map +1 -1
  39. package/dist/core/GenomeKernel.d.ts.map +1 -1
  40. package/dist/core/GenomeKernel.js +3 -0
  41. package/dist/core/GenomeKernel.js.map +1 -1
  42. package/dist/core/GenomeManager.js +1 -1
  43. package/dist/core/GenomeManager.js.map +1 -1
  44. package/dist/core/ProactiveSuggestions.js +1 -1
  45. package/dist/core/ProactiveSuggestions.js.map +1 -1
  46. package/dist/dashboard/DashboardServer.d.ts +64 -0
  47. package/dist/dashboard/DashboardServer.d.ts.map +1 -0
  48. package/dist/dashboard/DashboardServer.js +409 -0
  49. package/dist/dashboard/DashboardServer.js.map +1 -0
  50. package/dist/dashboard/DashboardToken.d.ts +16 -0
  51. package/dist/dashboard/DashboardToken.d.ts.map +1 -0
  52. package/dist/dashboard/DashboardToken.js +54 -0
  53. package/dist/dashboard/DashboardToken.js.map +1 -0
  54. package/dist/dashboard/dashboard.html +2731 -0
  55. package/dist/dashboard/index.d.ts +3 -0
  56. package/dist/dashboard/index.d.ts.map +1 -0
  57. package/dist/dashboard/index.js +3 -0
  58. package/dist/dashboard/index.js.map +1 -0
  59. package/dist/evaluation/BenchmarkSuites.d.ts +2 -2
  60. package/dist/evaluation/BenchmarkSuites.d.ts.map +1 -1
  61. package/dist/evaluation/BenchmarkSuites.js +6 -6
  62. package/dist/evaluation/BenchmarkSuites.js.map +1 -1
  63. package/dist/evaluation/ConstitutionalGate.d.ts +18 -0
  64. package/dist/evaluation/ConstitutionalGate.d.ts.map +1 -0
  65. package/dist/evaluation/ConstitutionalGate.js +149 -0
  66. package/dist/evaluation/ConstitutionalGate.js.map +1 -0
  67. package/dist/evaluation/Evaluator.d.ts +4 -4
  68. package/dist/evaluation/Evaluator.d.ts.map +1 -1
  69. package/dist/evaluation/Evaluator.js +27 -27
  70. package/dist/evaluation/Evaluator.js.map +1 -1
  71. package/dist/evaluation/EvolutionGuardrails.d.ts +3 -1
  72. package/dist/evaluation/EvolutionGuardrails.d.ts.map +1 -1
  73. package/dist/evaluation/EvolutionGuardrails.js +29 -11
  74. package/dist/evaluation/EvolutionGuardrails.js.map +1 -1
  75. package/dist/evolution/MutationOperator.d.ts +19 -6
  76. package/dist/evolution/MutationOperator.d.ts.map +1 -1
  77. package/dist/evolution/MutationOperator.js +264 -9
  78. package/dist/evolution/MutationOperator.js.map +1 -1
  79. package/dist/evolution/boost/operators/BreakthroughOperator.d.ts +1 -1
  80. package/dist/evolution/boost/operators/BreakthroughOperator.d.ts.map +1 -1
  81. package/dist/evolution/boost/operators/BreakthroughOperator.js.map +1 -1
  82. package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts +1 -1
  83. package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts.map +1 -1
  84. package/dist/evolution/boost/operators/CrossoverMutationOperator.js.map +1 -1
  85. package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts +1 -1
  86. package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts.map +1 -1
  87. package/dist/evolution/boost/operators/PatternExtractionOperator.js.map +1 -1
  88. package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts +1 -1
  89. package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts.map +1 -1
  90. package/dist/evolution/boost/operators/SemanticRestructuringOperator.js.map +1 -1
  91. package/dist/firewall/AnomalyDetector.d.ts +42 -0
  92. package/dist/firewall/AnomalyDetector.d.ts.map +1 -0
  93. package/dist/firewall/AnomalyDetector.js +181 -0
  94. package/dist/firewall/AnomalyDetector.js.map +1 -0
  95. package/dist/firewall/ContentFirewall.d.ts +5 -0
  96. package/dist/firewall/ContentFirewall.d.ts.map +1 -1
  97. package/dist/firewall/ContentFirewall.js +5 -0
  98. package/dist/firewall/ContentFirewall.js.map +1 -1
  99. package/dist/firewall/PurposeLock.d.ts +41 -0
  100. package/dist/firewall/PurposeLock.d.ts.map +1 -0
  101. package/dist/firewall/PurposeLock.js +199 -0
  102. package/dist/firewall/PurposeLock.js.map +1 -0
  103. package/dist/gene-bank/CognitiveGene.d.ts +118 -118
  104. package/dist/gene-bank/{PGAIntegration.d.ts → GSEPIntegration.d.ts} +10 -10
  105. package/dist/gene-bank/GSEPIntegration.d.ts.map +1 -0
  106. package/dist/gene-bank/{PGAIntegration.js → GSEPIntegration.js} +6 -6
  107. package/dist/gene-bank/GSEPIntegration.js.map +1 -0
  108. package/dist/gene-bank/GeneAdopter.d.ts +6 -6
  109. package/dist/gene-bank/GeneAdopter.d.ts.map +1 -1
  110. package/dist/gene-bank/GeneAdopter.js +2 -2
  111. package/dist/gene-bank/GeneAdopter.js.map +1 -1
  112. package/dist/gene-bank/GeneBank.d.ts +13 -9
  113. package/dist/gene-bank/GeneBank.d.ts.map +1 -1
  114. package/dist/gene-bank/GeneBank.js +8 -1
  115. package/dist/gene-bank/GeneBank.js.map +1 -1
  116. package/dist/gene-bank/GeneExtractor.d.ts +7 -7
  117. package/dist/gene-bank/GeneExtractor.d.ts.map +1 -1
  118. package/dist/gene-bank/GeneExtractor.js +1 -1
  119. package/dist/gene-bank/GeneExtractor.js.map +1 -1
  120. package/dist/gene-bank/GeneMatcher.d.ts +1 -1
  121. package/dist/gene-bank/GeneMatcher.d.ts.map +1 -1
  122. package/dist/gene-bank/MarketplaceClient.d.ts +17 -1
  123. package/dist/gene-bank/MarketplaceClient.d.ts.map +1 -1
  124. package/dist/gene-bank/MarketplaceClient.js +106 -35
  125. package/dist/gene-bank/MarketplaceClient.js.map +1 -1
  126. package/dist/gene-bank/MarketplaceMapper.d.ts +7 -0
  127. package/dist/gene-bank/MarketplaceMapper.d.ts.map +1 -0
  128. package/dist/gene-bank/MarketplaceMapper.js +95 -0
  129. package/dist/gene-bank/MarketplaceMapper.js.map +1 -0
  130. package/dist/gene-bank/MarketplaceTypes.d.ts +121 -0
  131. package/dist/gene-bank/MarketplaceTypes.d.ts.map +1 -0
  132. package/dist/gene-bank/MarketplaceTypes.js +2 -0
  133. package/dist/gene-bank/MarketplaceTypes.js.map +1 -0
  134. package/dist/gene-bank/SandboxTester.d.ts +3 -3
  135. package/dist/gene-bank/SandboxTester.d.ts.map +1 -1
  136. package/dist/gene-bank/adapters/InMemoryGeneStorage.d.ts +3 -3
  137. package/dist/gene-bank/adapters/InMemoryGeneStorage.d.ts.map +1 -1
  138. package/dist/gene-bank/adapters/PostgresGeneStorage.d.ts +4 -4
  139. package/dist/gene-bank/adapters/PostgresGeneStorage.d.ts.map +1 -1
  140. package/dist/gene-bank/adapters/PostgresGeneStorage.js.map +1 -1
  141. package/dist/gene-bank/adapters/SQLiteGeneStorage.d.ts +28 -0
  142. package/dist/gene-bank/adapters/SQLiteGeneStorage.d.ts.map +1 -0
  143. package/dist/gene-bank/adapters/SQLiteGeneStorage.js +158 -0
  144. package/dist/gene-bank/adapters/SQLiteGeneStorage.js.map +1 -0
  145. package/dist/gene-bank/index.d.ts +10 -7
  146. package/dist/gene-bank/index.d.ts.map +1 -1
  147. package/dist/gene-bank/index.js +8 -7
  148. package/dist/gene-bank/index.js.map +1 -1
  149. package/dist/immune/BehavioralImmuneSystem.d.ts +6 -0
  150. package/dist/immune/BehavioralImmuneSystem.d.ts.map +1 -1
  151. package/dist/immune/BehavioralImmuneSystem.js +6 -0
  152. package/dist/immune/BehavioralImmuneSystem.js.map +1 -1
  153. package/dist/index.d.ts +44 -9
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +22 -4
  156. package/dist/index.js.map +1 -1
  157. package/dist/memory/LayeredMemory.d.ts +1 -1
  158. package/dist/memory/LayeredMemory.d.ts.map +1 -1
  159. package/dist/memory/LayeredMemory.js.map +1 -1
  160. package/dist/middleware/GSEPMiddleware.d.ts +57 -0
  161. package/dist/middleware/GSEPMiddleware.d.ts.map +1 -0
  162. package/dist/middleware/GSEPMiddleware.js +91 -0
  163. package/dist/middleware/GSEPMiddleware.js.map +1 -0
  164. package/dist/middleware/RuntimeDetector.d.ts +10 -0
  165. package/dist/middleware/RuntimeDetector.d.ts.map +1 -0
  166. package/dist/middleware/RuntimeDetector.js +70 -0
  167. package/dist/middleware/RuntimeDetector.js.map +1 -0
  168. package/dist/middleware/ServerlessAdapter.d.ts +23 -0
  169. package/dist/middleware/ServerlessAdapter.d.ts.map +1 -0
  170. package/dist/middleware/ServerlessAdapter.js +77 -0
  171. package/dist/middleware/ServerlessAdapter.js.map +1 -0
  172. package/dist/monitoring/AlertWebhooks.d.ts +17 -0
  173. package/dist/monitoring/AlertWebhooks.d.ts.map +1 -1
  174. package/dist/monitoring/AlertWebhooks.js.map +1 -1
  175. package/dist/monitoring/WeeklyReportGenerator.d.ts +73 -0
  176. package/dist/monitoring/WeeklyReportGenerator.d.ts.map +1 -0
  177. package/dist/monitoring/WeeklyReportGenerator.js +148 -0
  178. package/dist/monitoring/WeeklyReportGenerator.js.map +1 -0
  179. package/dist/rag/RAGEngine.d.ts +1 -1
  180. package/dist/rag/RAGEngine.d.ts.map +1 -1
  181. package/dist/rag/VectorStoreAdapter.d.ts +2 -2
  182. package/dist/rag/VectorStoreAdapter.d.ts.map +1 -1
  183. package/dist/rag/VectorStoreAdapter.js.map +1 -1
  184. package/dist/realtime/EventEmitter.d.ts +110 -17
  185. package/dist/realtime/EventEmitter.d.ts.map +1 -1
  186. package/dist/realtime/EventEmitter.js +3 -4
  187. package/dist/realtime/EventEmitter.js.map +1 -1
  188. package/dist/security/CapabilityBroker.d.ts +41 -0
  189. package/dist/security/CapabilityBroker.d.ts.map +1 -0
  190. package/dist/security/CapabilityBroker.js +125 -0
  191. package/dist/security/CapabilityBroker.js.map +1 -0
  192. package/dist/security/CommandExecutionGuard.d.ts +47 -0
  193. package/dist/security/CommandExecutionGuard.d.ts.map +1 -0
  194. package/dist/security/CommandExecutionGuard.js +175 -0
  195. package/dist/security/CommandExecutionGuard.js.map +1 -0
  196. package/dist/security/ComplianceExporter.d.ts +32 -0
  197. package/dist/security/ComplianceExporter.d.ts.map +1 -0
  198. package/dist/security/ComplianceExporter.js +129 -0
  199. package/dist/security/ComplianceExporter.js.map +1 -0
  200. package/dist/security/DataAccessTracker.d.ts +38 -0
  201. package/dist/security/DataAccessTracker.d.ts.map +1 -0
  202. package/dist/security/DataAccessTracker.js +71 -0
  203. package/dist/security/DataAccessTracker.js.map +1 -0
  204. package/dist/security/DataClassifier.d.ts +14 -0
  205. package/dist/security/DataClassifier.d.ts.map +1 -0
  206. package/dist/security/DataClassifier.js +146 -0
  207. package/dist/security/DataClassifier.js.map +1 -0
  208. package/dist/security/EncryptedConfigStore.d.ts +21 -0
  209. package/dist/security/EncryptedConfigStore.d.ts.map +1 -0
  210. package/dist/security/EncryptedConfigStore.js +119 -0
  211. package/dist/security/EncryptedConfigStore.js.map +1 -0
  212. package/dist/security/EnterprisePolicyEngine.d.ts +90 -0
  213. package/dist/security/EnterprisePolicyEngine.d.ts.map +1 -0
  214. package/dist/security/EnterprisePolicyEngine.js +240 -0
  215. package/dist/security/EnterprisePolicyEngine.js.map +1 -0
  216. package/dist/security/FileSystemBoundary.d.ts +33 -0
  217. package/dist/security/FileSystemBoundary.d.ts.map +1 -0
  218. package/dist/security/FileSystemBoundary.js +94 -0
  219. package/dist/security/FileSystemBoundary.js.map +1 -0
  220. package/dist/security/GDPREngine.d.ts +65 -0
  221. package/dist/security/GDPREngine.d.ts.map +1 -0
  222. package/dist/security/GDPREngine.js +180 -0
  223. package/dist/security/GDPREngine.js.map +1 -0
  224. package/dist/security/GenomeSecurityBridge.d.ts +47 -0
  225. package/dist/security/GenomeSecurityBridge.d.ts.map +1 -0
  226. package/dist/security/GenomeSecurityBridge.js +157 -0
  227. package/dist/security/GenomeSecurityBridge.js.map +1 -0
  228. package/dist/security/KeyHierarchy.d.ts +23 -0
  229. package/dist/security/KeyHierarchy.d.ts.map +1 -0
  230. package/dist/security/KeyHierarchy.js +78 -0
  231. package/dist/security/KeyHierarchy.js.map +1 -0
  232. package/dist/security/KeychainAdapter.d.ts +19 -0
  233. package/dist/security/KeychainAdapter.d.ts.map +1 -0
  234. package/dist/security/KeychainAdapter.js +104 -0
  235. package/dist/security/KeychainAdapter.js.map +1 -0
  236. package/dist/security/LLMProxyLayer.d.ts +63 -0
  237. package/dist/security/LLMProxyLayer.d.ts.map +1 -0
  238. package/dist/security/LLMProxyLayer.js +148 -0
  239. package/dist/security/LLMProxyLayer.js.map +1 -0
  240. package/dist/security/MFAProvider.d.ts +35 -0
  241. package/dist/security/MFAProvider.d.ts.map +1 -0
  242. package/dist/security/MFAProvider.js +174 -0
  243. package/dist/security/MFAProvider.js.map +1 -0
  244. package/dist/security/NetworkAuditLogger.d.ts +35 -0
  245. package/dist/security/NetworkAuditLogger.d.ts.map +1 -0
  246. package/dist/security/NetworkAuditLogger.js +99 -0
  247. package/dist/security/NetworkAuditLogger.js.map +1 -0
  248. package/dist/security/OutboundAllowlist.d.ts +33 -0
  249. package/dist/security/OutboundAllowlist.d.ts.map +1 -0
  250. package/dist/security/OutboundAllowlist.js +112 -0
  251. package/dist/security/OutboundAllowlist.js.map +1 -0
  252. package/dist/security/PIIRedactionEngine.d.ts +40 -0
  253. package/dist/security/PIIRedactionEngine.d.ts.map +1 -0
  254. package/dist/security/PIIRedactionEngine.js +232 -0
  255. package/dist/security/PIIRedactionEngine.js.map +1 -0
  256. package/dist/security/RBACEngine.d.ts +44 -0
  257. package/dist/security/RBACEngine.d.ts.map +1 -0
  258. package/dist/security/RBACEngine.js +209 -0
  259. package/dist/security/RBACEngine.js.map +1 -0
  260. package/dist/security/SOC2Controls.d.ts +37 -0
  261. package/dist/security/SOC2Controls.d.ts.map +1 -0
  262. package/dist/security/SOC2Controls.js +151 -0
  263. package/dist/security/SOC2Controls.js.map +1 -0
  264. package/dist/security/SecretRotationEngine.d.ts +46 -0
  265. package/dist/security/SecretRotationEngine.d.ts.map +1 -0
  266. package/dist/security/SecretRotationEngine.js +102 -0
  267. package/dist/security/SecretRotationEngine.js.map +1 -0
  268. package/dist/security/SecretsMigrator.d.ts +28 -0
  269. package/dist/security/SecretsMigrator.d.ts.map +1 -0
  270. package/dist/security/SecretsMigrator.js +170 -0
  271. package/dist/security/SecretsMigrator.js.map +1 -0
  272. package/dist/security/SecurityEventBus.d.ts +48 -0
  273. package/dist/security/SecurityEventBus.d.ts.map +1 -0
  274. package/dist/security/SecurityEventBus.js +105 -0
  275. package/dist/security/SecurityEventBus.js.map +1 -0
  276. package/dist/security/SecurityPresets.d.ts +42 -0
  277. package/dist/security/SecurityPresets.d.ts.map +1 -0
  278. package/dist/security/SecurityPresets.js +162 -0
  279. package/dist/security/SecurityPresets.js.map +1 -0
  280. package/dist/security/SkillManifest.d.ts +34 -0
  281. package/dist/security/SkillManifest.d.ts.map +1 -0
  282. package/dist/security/SkillManifest.js +91 -0
  283. package/dist/security/SkillManifest.js.map +1 -0
  284. package/dist/security/SkillSigner.d.ts +22 -0
  285. package/dist/security/SkillSigner.d.ts.map +1 -0
  286. package/dist/security/SkillSigner.js +80 -0
  287. package/dist/security/SkillSigner.js.map +1 -0
  288. package/dist/security/TamperProofAuditLog.d.ts +58 -0
  289. package/dist/security/TamperProofAuditLog.d.ts.map +1 -0
  290. package/dist/security/TamperProofAuditLog.js +214 -0
  291. package/dist/security/TamperProofAuditLog.js.map +1 -0
  292. package/dist/security/index.d.ts +27 -0
  293. package/dist/security/index.d.ts.map +1 -0
  294. package/dist/security/index.js +27 -0
  295. package/dist/security/index.js.map +1 -0
  296. package/dist/skills/ProactiveEngine.d.ts +55 -0
  297. package/dist/skills/ProactiveEngine.d.ts.map +1 -0
  298. package/dist/skills/ProactiveEngine.js +201 -0
  299. package/dist/skills/ProactiveEngine.js.map +1 -0
  300. package/dist/skills/SkillExecutor.d.ts +21 -0
  301. package/dist/skills/SkillExecutor.d.ts.map +1 -0
  302. package/dist/skills/SkillExecutor.js +131 -0
  303. package/dist/skills/SkillExecutor.js.map +1 -0
  304. package/dist/skills/SkillRegistry.d.ts +47 -0
  305. package/dist/skills/SkillRegistry.d.ts.map +1 -0
  306. package/dist/skills/SkillRegistry.js +94 -0
  307. package/dist/skills/SkillRegistry.js.map +1 -0
  308. package/dist/skills/SkillRouter.d.ts +30 -0
  309. package/dist/skills/SkillRouter.d.ts.map +1 -0
  310. package/dist/skills/SkillRouter.js +113 -0
  311. package/dist/skills/SkillRouter.js.map +1 -0
  312. package/dist/skills/index.d.ts +9 -0
  313. package/dist/skills/index.d.ts.map +1 -0
  314. package/dist/skills/index.js +5 -0
  315. package/dist/skills/index.js.map +1 -0
  316. package/dist/types/GenomeV2.d.ts +12 -0
  317. package/dist/types/GenomeV2.d.ts.map +1 -1
  318. package/dist/types/index.d.ts +19 -0
  319. package/dist/types/index.d.ts.map +1 -1
  320. package/dist/wrap/FileStorageAdapter.d.ts +113 -0
  321. package/dist/wrap/FileStorageAdapter.d.ts.map +1 -0
  322. package/dist/wrap/FileStorageAdapter.js +239 -0
  323. package/dist/wrap/FileStorageAdapter.js.map +1 -0
  324. package/dist/wrap/SQLiteStorageAdapter.d.ts +96 -0
  325. package/dist/wrap/SQLiteStorageAdapter.d.ts.map +1 -0
  326. package/dist/wrap/SQLiteStorageAdapter.js +251 -0
  327. package/dist/wrap/SQLiteStorageAdapter.js.map +1 -0
  328. package/dist/wrap/WrappedAgent.d.ts +2 -2
  329. package/dist/wrap/WrappedAgent.d.ts.map +1 -1
  330. package/dist/wrap/WrappedAgent.js +7 -7
  331. package/dist/wrap/WrappedAgent.js.map +1 -1
  332. package/dist/wrap.d.ts +39 -0
  333. package/dist/wrap.d.ts.map +1 -0
  334. package/dist/wrap.js +96 -0
  335. package/dist/wrap.js.map +1 -0
  336. package/package.json +34 -7
  337. package/dist/PGA.d.ts.map +0 -1
  338. package/dist/PGA.js.map +0 -1
  339. package/dist/evolution/PromotionGate.d.ts +0 -45
  340. package/dist/evolution/PromotionGate.d.ts.map +0 -1
  341. package/dist/evolution/PromotionGate.js +0 -248
  342. package/dist/evolution/PromotionGate.js.map +0 -1
  343. package/dist/gene-bank/PGAIntegration.d.ts.map +0 -1
  344. package/dist/gene-bank/PGAIntegration.js.map +0 -1
@@ -0,0 +1,214 @@
1
+ import { createHmac, createCipheriv, createDecipheriv, randomBytes, randomUUID } from 'node:crypto';
2
+ import { appendFile, readFile, mkdir, readdir } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ const AUDIT_DIR = join(homedir(), '.genome', 'audit');
6
+ const ROOT_HASH_KEY = 'audit-root-hash';
7
+ const ALGORITHM = 'aes-256-gcm';
8
+ const IV_BYTES = 12;
9
+ export class TamperProofAuditLog {
10
+ alk;
11
+ keychain;
12
+ currentHash = '';
13
+ auditDir;
14
+ entryCount = 0;
15
+ initialized = false;
16
+ constructor(auditLogKey, keychain, auditDir) {
17
+ if (auditLogKey.length !== 32) {
18
+ throw new Error('[TamperProofAuditLog] ALK must be 32 bytes.');
19
+ }
20
+ this.alk = auditLogKey;
21
+ this.keychain = keychain;
22
+ this.auditDir = auditDir ?? AUDIT_DIR;
23
+ }
24
+ async initialize() {
25
+ if (this.initialized)
26
+ return;
27
+ await mkdir(this.auditDir, { recursive: true });
28
+ const rootHash = await this.keychain.get(ROOT_HASH_KEY);
29
+ this.currentHash = rootHash ?? this.computeHMAC('genesis');
30
+ if (!rootHash) {
31
+ await this.keychain.set(ROOT_HASH_KEY, this.currentHash);
32
+ }
33
+ this.entryCount = await this.countEntries();
34
+ this.initialized = true;
35
+ await this.append({
36
+ type: 'audit:initialized',
37
+ severity: 'info',
38
+ layer: 7,
39
+ decision: 'info',
40
+ actor: {},
41
+ resource: { type: 'audit-log', id: 'system' },
42
+ });
43
+ }
44
+ async appendFromEvent(event) {
45
+ await this.append({
46
+ type: event.type,
47
+ severity: event.severity,
48
+ layer: event.layer,
49
+ decision: event.decision,
50
+ actor: event.actor,
51
+ resource: event.resource,
52
+ evidence: event.evidence,
53
+ });
54
+ }
55
+ async append(entry) {
56
+ this.ensureInitialized();
57
+ const fullEntry = {
58
+ id: randomUUID(),
59
+ timestamp: new Date().toISOString(),
60
+ ...entry,
61
+ previousHash: this.currentHash,
62
+ hash: '',
63
+ };
64
+ fullEntry.hash = this.computeEntryHash(fullEntry);
65
+ this.currentHash = fullEntry.hash;
66
+ const encrypted = this.encryptEntry(fullEntry);
67
+ const filePath = this.todayFilePath();
68
+ await appendFile(filePath, encrypted.toString('base64') + '\n', { mode: 0o600 });
69
+ this.entryCount++;
70
+ if (this.entryCount % 50 === 0) {
71
+ await this.keychain.set(ROOT_HASH_KEY, this.currentHash);
72
+ }
73
+ return fullEntry;
74
+ }
75
+ async verify() {
76
+ this.ensureInitialized();
77
+ const entries = await this.readAllEntries();
78
+ const storedRootHash = await this.keychain.get(ROOT_HASH_KEY);
79
+ if (entries.length === 0) {
80
+ return { valid: true, totalEntries: 0, rootHashMatch: true };
81
+ }
82
+ let previousHash = this.computeHMAC('genesis');
83
+ for (let i = 0; i < entries.length; i++) {
84
+ const entry = entries[i];
85
+ if (entry.previousHash !== previousHash) {
86
+ return {
87
+ valid: false,
88
+ totalEntries: entries.length,
89
+ brokenAt: i,
90
+ brokenEntry: entry,
91
+ rootHashMatch: false,
92
+ };
93
+ }
94
+ const expectedHash = this.computeEntryHash(entry);
95
+ if (entry.hash !== expectedHash) {
96
+ return {
97
+ valid: false,
98
+ totalEntries: entries.length,
99
+ brokenAt: i,
100
+ brokenEntry: entry,
101
+ rootHashMatch: false,
102
+ };
103
+ }
104
+ previousHash = entry.hash;
105
+ }
106
+ const lastHash = entries[entries.length - 1].hash;
107
+ const rootHashMatch = storedRootHash === lastHash || storedRootHash === this.currentHash;
108
+ return {
109
+ valid: true,
110
+ totalEntries: entries.length,
111
+ rootHashMatch,
112
+ };
113
+ }
114
+ async readEntries(date) {
115
+ const filePath = date ? this.filePathForDate(date) : this.todayFilePath();
116
+ return this.readEntriesFromFile(filePath);
117
+ }
118
+ getEntryCount() {
119
+ return this.entryCount;
120
+ }
121
+ async flush() {
122
+ if (this.currentHash) {
123
+ await this.keychain.set(ROOT_HASH_KEY, this.currentHash);
124
+ }
125
+ }
126
+ computeHMAC(data) {
127
+ return createHmac('sha256', this.alk).update(data).digest('hex');
128
+ }
129
+ computeEntryHash(entry) {
130
+ const payload = JSON.stringify({
131
+ id: entry.id,
132
+ timestamp: entry.timestamp,
133
+ type: entry.type,
134
+ severity: entry.severity,
135
+ layer: entry.layer,
136
+ decision: entry.decision,
137
+ actor: entry.actor,
138
+ resource: entry.resource,
139
+ evidence: entry.evidence,
140
+ previousHash: entry.previousHash,
141
+ });
142
+ return this.computeHMAC(payload);
143
+ }
144
+ encryptEntry(entry) {
145
+ const iv = randomBytes(IV_BYTES);
146
+ const plaintext = Buffer.from(JSON.stringify(entry), 'utf-8');
147
+ const cipher = createCipheriv(ALGORITHM, this.alk, iv);
148
+ const encrypted = Buffer.concat([cipher.update(plaintext), cipher.final()]);
149
+ const authTag = cipher.getAuthTag();
150
+ return Buffer.concat([iv, authTag, encrypted]);
151
+ }
152
+ decryptEntry(raw) {
153
+ const iv = raw.subarray(0, IV_BYTES);
154
+ const authTag = raw.subarray(IV_BYTES, IV_BYTES + 16);
155
+ const ciphertext = raw.subarray(IV_BYTES + 16);
156
+ const decipher = createDecipheriv(ALGORITHM, this.alk, iv);
157
+ decipher.setAuthTag(authTag);
158
+ const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
159
+ return JSON.parse(decrypted.toString('utf-8'));
160
+ }
161
+ todayFilePath() {
162
+ const date = new Date().toISOString().slice(0, 10);
163
+ return join(this.auditDir, `${date}.jsonl.enc`);
164
+ }
165
+ filePathForDate(date) {
166
+ const dateStr = date.toISOString().slice(0, 10);
167
+ return join(this.auditDir, `${dateStr}.jsonl.enc`);
168
+ }
169
+ async readEntriesFromFile(filePath) {
170
+ try {
171
+ const content = await readFile(filePath, 'utf-8');
172
+ const lines = content.split('\n').filter(l => l.trim());
173
+ return lines.map(line => this.decryptEntry(Buffer.from(line, 'base64')));
174
+ }
175
+ catch {
176
+ return [];
177
+ }
178
+ }
179
+ async readAllEntries() {
180
+ try {
181
+ const files = await readdir(this.auditDir);
182
+ const logFiles = files.filter(f => f.endsWith('.jsonl.enc')).sort();
183
+ const allEntries = [];
184
+ for (const file of logFiles) {
185
+ const entries = await this.readEntriesFromFile(join(this.auditDir, file));
186
+ allEntries.push(...entries);
187
+ }
188
+ return allEntries;
189
+ }
190
+ catch {
191
+ return [];
192
+ }
193
+ }
194
+ async countEntries() {
195
+ try {
196
+ const files = await readdir(this.auditDir);
197
+ let count = 0;
198
+ for (const file of files.filter(f => f.endsWith('.jsonl.enc'))) {
199
+ const content = await readFile(join(this.auditDir, file), 'utf-8');
200
+ count += content.split('\n').filter(l => l.trim()).length;
201
+ }
202
+ return count;
203
+ }
204
+ catch {
205
+ return 0;
206
+ }
207
+ }
208
+ ensureInitialized() {
209
+ if (!this.initialized) {
210
+ throw new Error('[TamperProofAuditLog] Not initialized. Call initialize() first.');
211
+ }
212
+ }
213
+ }
214
+ //# sourceMappingURL=TamperProofAuditLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TamperProofAuditLog.js","sourceRoot":"","sources":["../../src/security/TamperProofAuditLog.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACtD,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAwDpB,MAAM,OAAO,mBAAmB;IACpB,GAAG,CAAS;IACZ,QAAQ,CAAkB;IAC1B,WAAW,GAAW,EAAE,CAAC;IACzB,QAAQ,CAAS;IACjB,UAAU,GAAG,CAAC,CAAC;IACf,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,WAAmB,EAAE,QAAyB,EAAE,QAAiB;QACzE,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAAC;IAC1C,CAAC;IAKD,KAAK,CAAC,UAAU;QACZ,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAGhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEZ,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAGD,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAGxB,MAAM,IAAI,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE;SAChD,CAAC,CAAC;IACP,CAAC;IAKD,KAAK,CAAC,eAAe,CAAC,KAAoB;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC,CAAC;IACP,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,KAAqE;QAC9E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAe;YAC1B,EAAE,EAAE,UAAU,EAAE;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,KAAK;YACR,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,IAAI,EAAE,EAAE;SACX,CAAC;QAGF,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAGlD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;QAGlC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAGjF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAKD,KAAK,CAAC,MAAM;QACR,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACjE,CAAC;QAED,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAGzB,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;gBACtC,OAAO;oBACH,KAAK,EAAE,KAAK;oBACZ,YAAY,EAAE,OAAO,CAAC,MAAM;oBAC5B,QAAQ,EAAE,CAAC;oBACX,WAAW,EAAE,KAAK;oBAClB,aAAa,EAAE,KAAK;iBACvB,CAAC;YACN,CAAC;YAGD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO;oBACH,KAAK,EAAE,KAAK;oBACZ,YAAY,EAAE,OAAO,CAAC,MAAM;oBAC5B,QAAQ,EAAE,CAAC;oBACX,WAAW,EAAE,KAAK;oBAClB,aAAa,EAAE,KAAK;iBACvB,CAAC;YACN,CAAC;YAED,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,CAAC;QAGD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,MAAM,aAAa,GAAG,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,CAAC;QAEzF,OAAO;YACH,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,aAAa;SAChB,CAAC;IACN,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,IAAW;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAKD,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAIO,WAAW,CAAC,IAAY;QAC5B,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAEO,gBAAgB,CAAC,KAAiB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;SACnC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEO,YAAY,CAAC,KAAiB;QAClC,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,YAAY,CAAC,GAAW;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,aAAa;QACjB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;IACpD,CAAC;IAEO,eAAe,CAAC,IAAU;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,YAAY,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAC9C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,UAAU,GAAiB,EAAE,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1E,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC9D,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,27 @@
1
+ export { SecurityEventBus, type SecurityEvent, type SecurityEventType } from './SecurityEventBus.js';
2
+ export { type SecurityPresetName, type SecurityConfig, getSecurityPreset } from './SecurityPresets.js';
3
+ export { GenomeSecurityBridge, type InboundResult, type OutboundResult, type ChannelTrustLevel } from './GenomeSecurityBridge.js';
4
+ export { PIIRedactionEngine, type PIICategory, type PIIMatch, type RedactionResult } from './PIIRedactionEngine.js';
5
+ export { DataClassifier, type DataClassification, type ClassificationResult } from './DataClassifier.js';
6
+ export { LLMProxyLayer, type LLMAdapterLike, type ProxyStats } from './LLMProxyLayer.js';
7
+ export { KeychainAdapter } from './KeychainAdapter.js';
8
+ export { KeyHierarchy, type DerivedKeys } from './KeyHierarchy.js';
9
+ export { EncryptedConfigStore } from './EncryptedConfigStore.js';
10
+ export { SecretsMigrator } from './SecretsMigrator.js';
11
+ export { SkillManifest, type SkillManifestData, type CapabilityType, type SkillPermissions } from './SkillManifest.js';
12
+ export { SkillSigner, type SkillSignature, type KeyPair } from './SkillSigner.js';
13
+ export { CapabilityBroker, type CapabilityGrant, type CapabilityCheckResult } from './CapabilityBroker.js';
14
+ export { CommandExecutionGuard, type ExecRequest, type ExecResult, type ExecDecision } from './CommandExecutionGuard.js';
15
+ export { FileSystemBoundary, type FSAccess, type FSCheckResult } from './FileSystemBoundary.js';
16
+ export { OutboundAllowlist, type OutboundCheckResult } from './OutboundAllowlist.js';
17
+ export { NetworkAuditLogger, type NetworkLogEntry, type TrafficSummary } from './NetworkAuditLogger.js';
18
+ export { TamperProofAuditLog, type AuditEntry, type AuditEventType } from './TamperProofAuditLog.js';
19
+ export { DataAccessTracker, type DataSource, type DataCategory, type DataAccessRecord, type DataAccessReport } from './DataAccessTracker.js';
20
+ export { ComplianceExporter, type ReportFormat, type ReportType, type ExportResult } from './ComplianceExporter.js';
21
+ export { RBACEngine, type RoleName, type Permission, type Role, type AccessCheckResult } from './RBACEngine.js';
22
+ export { MFAProvider, type MFASetup, type MFAVerifyResult } from './MFAProvider.js';
23
+ export { EnterprisePolicyEngine, type EnterprisePolicy, type RolePolicy, type AlertRule } from './EnterprisePolicyEngine.js';
24
+ export { SecretRotationEngine, type RotationPolicy, type RotationResult, type RotationStatus } from './SecretRotationEngine.js';
25
+ export { GDPREngine, type ConsentRecord, type ErasureReport, type DataPortabilityExport, type DPIAReport } from './GDPREngine.js';
26
+ export { SOC2Controls, type SOC2Control, type SOC2Report, type ControlStatus } from './SOC2Controls.js';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export { SecurityEventBus } from './SecurityEventBus.js';
2
+ export { getSecurityPreset } from './SecurityPresets.js';
3
+ export { GenomeSecurityBridge } from './GenomeSecurityBridge.js';
4
+ export { PIIRedactionEngine } from './PIIRedactionEngine.js';
5
+ export { DataClassifier } from './DataClassifier.js';
6
+ export { LLMProxyLayer } from './LLMProxyLayer.js';
7
+ export { KeychainAdapter } from './KeychainAdapter.js';
8
+ export { KeyHierarchy } from './KeyHierarchy.js';
9
+ export { EncryptedConfigStore } from './EncryptedConfigStore.js';
10
+ export { SecretsMigrator } from './SecretsMigrator.js';
11
+ export { SkillManifest } from './SkillManifest.js';
12
+ export { SkillSigner } from './SkillSigner.js';
13
+ export { CapabilityBroker } from './CapabilityBroker.js';
14
+ export { CommandExecutionGuard } from './CommandExecutionGuard.js';
15
+ export { FileSystemBoundary } from './FileSystemBoundary.js';
16
+ export { OutboundAllowlist } from './OutboundAllowlist.js';
17
+ export { NetworkAuditLogger } from './NetworkAuditLogger.js';
18
+ export { TamperProofAuditLog } from './TamperProofAuditLog.js';
19
+ export { DataAccessTracker } from './DataAccessTracker.js';
20
+ export { ComplianceExporter } from './ComplianceExporter.js';
21
+ export { RBACEngine } from './RBACEngine.js';
22
+ export { MFAProvider } from './MFAProvider.js';
23
+ export { EnterprisePolicyEngine } from './EnterprisePolicyEngine.js';
24
+ export { SecretRotationEngine } from './SecretRotationEngine.js';
25
+ export { GDPREngine } from './GDPREngine.js';
26
+ export { SOC2Controls } from './SOC2Controls.js';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,gBAAgB,EAA8C,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAgD,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,OAAO,EAAE,oBAAoB,EAAmE,MAAM,2BAA2B,CAAC;AAGlI,OAAO,EAAE,kBAAkB,EAAyD,MAAM,yBAAyB,CAAC;AACpH,OAAO,EAAE,cAAc,EAAsD,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAwC,MAAM,oBAAoB,CAAC;AAGzF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAsE,MAAM,oBAAoB,CAAC;AACvH,OAAO,EAAE,WAAW,EAAqC,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAoD,MAAM,uBAAuB,CAAC;AAG3G,OAAO,EAAE,qBAAqB,EAAwD,MAAM,4BAA4B,CAAC;AACzH,OAAO,EAAE,kBAAkB,EAAqC,MAAM,yBAAyB,CAAC;AAGhG,OAAO,EAAE,iBAAiB,EAA4B,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAA6C,MAAM,yBAAyB,CAAC;AAGxG,OAAO,EAAE,mBAAmB,EAAwC,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAoF,MAAM,wBAAwB,CAAC;AAC7I,OAAO,EAAE,kBAAkB,EAAyD,MAAM,yBAAyB,CAAC;AAGpH,OAAO,EAAE,UAAU,EAAqE,MAAM,iBAAiB,CAAC;AAChH,OAAO,EAAE,WAAW,EAAuC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAA0D,MAAM,6BAA6B,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAiE,MAAM,2BAA2B,CAAC;AAChI,OAAO,EAAE,UAAU,EAAuF,MAAM,iBAAiB,CAAC;AAClI,OAAO,EAAE,YAAY,EAAyD,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { LLMAdapter } from '../interfaces/LLMAdapter.js';
2
+ import type { SkillRegistry } from './SkillRegistry.js';
3
+ import type { SkillExecutor } from './SkillExecutor.js';
4
+ export interface ProactiveTask {
5
+ id: string;
6
+ name: string;
7
+ instruction: string;
8
+ intervalMs: number | 'once';
9
+ allowedSkills?: string[];
10
+ notify: boolean;
11
+ priority: number;
12
+ active: boolean;
13
+ }
14
+ export interface ProactiveResult {
15
+ taskId: string;
16
+ taskName: string;
17
+ timestamp: Date;
18
+ findings: string;
19
+ actionTaken: string;
20
+ skillsUsed: string[];
21
+ shouldNotify: boolean;
22
+ importance: 'low' | 'medium' | 'high' | 'critical';
23
+ }
24
+ export interface ProactiveEngineConfig {
25
+ minIntervalMs?: number;
26
+ maxConcurrent?: number;
27
+ agentPurpose?: string;
28
+ }
29
+ export type NotificationHandler = (result: ProactiveResult) => void | Promise<void>;
30
+ export declare class ProactiveEngine {
31
+ private llm;
32
+ private registry;
33
+ private executor;
34
+ private config;
35
+ private tasks;
36
+ private timers;
37
+ private results;
38
+ private notificationHandlers;
39
+ private running;
40
+ constructor(llm: LLMAdapter, registry: SkillRegistry, executor: SkillExecutor, config?: ProactiveEngineConfig);
41
+ addTask(task: Omit<ProactiveTask, 'active'>): void;
42
+ removeTask(id: string): void;
43
+ onNotification(handler: NotificationHandler): void;
44
+ start(): void;
45
+ stop(): void;
46
+ runTask(id: string): Promise<ProactiveResult | null>;
47
+ runAll(): Promise<ProactiveResult[]>;
48
+ getResults(limit?: number): ProactiveResult[];
49
+ getTasks(): ProactiveTask[];
50
+ isRunning(): boolean;
51
+ private executeTask;
52
+ private scheduleTask;
53
+ private stopTask;
54
+ }
55
+ //# sourceMappingURL=ProactiveEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProactiveEngine.d.ts","sourceRoot":"","sources":["../../src/skills/ProactiveEngine.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,WAAW,aAAa;IAE1B,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAG5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACtD;AAED,MAAM,WAAW,qBAAqB;IAElC,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAIpF,qBAAa,eAAe;IASpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAVpB,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAA0D;IACxE,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,OAAO,CAAS;gBAGZ,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,aAAa,EAC/B,MAAM,GAAE,qBAA0B;IAYtC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,IAAI;IAOlD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ5B,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAOlD,KAAK,IAAI,IAAI;IAcb,IAAI,IAAI,IAAI;IAUN,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAUpD,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAgB1C,UAAU,CAAC,KAAK,GAAE,MAAW,GAAG,eAAe,EAAE;IAOjD,QAAQ,IAAI,aAAa,EAAE;IAO3B,SAAS,IAAI,OAAO;YAMN,WAAW;IAoHzB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,QAAQ;CAOnB"}
@@ -0,0 +1,201 @@
1
+ export class ProactiveEngine {
2
+ llm;
3
+ registry;
4
+ executor;
5
+ config;
6
+ tasks = new Map();
7
+ timers = new Map();
8
+ results = [];
9
+ notificationHandlers = [];
10
+ running = false;
11
+ constructor(llm, registry, executor, config = {}) {
12
+ this.llm = llm;
13
+ this.registry = registry;
14
+ this.executor = executor;
15
+ this.config = {
16
+ minIntervalMs: config.minIntervalMs ?? 60000,
17
+ maxConcurrent: config.maxConcurrent ?? 2,
18
+ agentPurpose: config.agentPurpose ?? 'AI assistant',
19
+ };
20
+ }
21
+ addTask(task) {
22
+ this.tasks.set(task.id, { ...task, active: true });
23
+ }
24
+ removeTask(id) {
25
+ this.stopTask(id);
26
+ this.tasks.delete(id);
27
+ }
28
+ onNotification(handler) {
29
+ this.notificationHandlers.push(handler);
30
+ }
31
+ start() {
32
+ if (this.running)
33
+ return;
34
+ this.running = true;
35
+ for (const [id, task] of this.tasks) {
36
+ if (task.active) {
37
+ this.scheduleTask(id, task);
38
+ }
39
+ }
40
+ }
41
+ stop() {
42
+ this.running = false;
43
+ for (const [id] of this.timers) {
44
+ this.stopTask(id);
45
+ }
46
+ }
47
+ async runTask(id) {
48
+ const task = this.tasks.get(id);
49
+ if (!task)
50
+ return null;
51
+ return this.executeTask(task);
52
+ }
53
+ async runAll() {
54
+ const activeTasks = Array.from(this.tasks.values())
55
+ .filter(t => t.active)
56
+ .sort((a, b) => b.priority - a.priority);
57
+ const results = [];
58
+ for (const task of activeTasks) {
59
+ const result = await this.executeTask(task);
60
+ results.push(result);
61
+ }
62
+ return results;
63
+ }
64
+ getResults(limit = 50) {
65
+ return this.results.slice(-limit);
66
+ }
67
+ getTasks() {
68
+ return Array.from(this.tasks.values());
69
+ }
70
+ isRunning() {
71
+ return this.running;
72
+ }
73
+ async executeTask(task) {
74
+ const availableSkills = task.allowedSkills
75
+ ? this.registry.list().filter(s => task.allowedSkills.includes(s.name))
76
+ : this.registry.list();
77
+ const skillDescriptions = availableSkills.length > 0
78
+ ? availableSkills.map(s => `- ${s.name}: ${s.description}`).join('\n')
79
+ : 'No skills available.';
80
+ const messages = [
81
+ {
82
+ role: 'system',
83
+ content: `You are a proactive AI agent. Your purpose: ${this.config.agentPurpose}.
84
+
85
+ You are running a background task autonomously — no user is talking to you right now.
86
+ Your job is to execute the task, analyze the results, and report findings.
87
+
88
+ Available skills you can use:
89
+ ${skillDescriptions}
90
+
91
+ To use a skill, include a <tool_call> block:
92
+ <tool_call>
93
+ {"name": "skill_name", "arguments": {"param": "value"}}
94
+ </tool_call>
95
+
96
+ After analyzing, respond with a JSON summary:
97
+ {"findings": "what you found", "actionTaken": "what you did", "skillsUsed": ["skill1"], "importance": "low|medium|high|critical"}`,
98
+ },
99
+ {
100
+ role: 'user',
101
+ content: `Execute this proactive task:\n\n**${task.name}**\n${task.instruction}`,
102
+ },
103
+ ];
104
+ try {
105
+ const response = await this.llm.chat(messages);
106
+ const content = response.content;
107
+ const toolCallPattern = /<tool_call>\s*([\s\S]*?)\s*<\/tool_call>/g;
108
+ const skillsUsed = [];
109
+ let match;
110
+ while ((match = toolCallPattern.exec(content)) !== null) {
111
+ try {
112
+ const parsed = JSON.parse(match[1].trim());
113
+ if (parsed.name && this.registry.has(parsed.name)) {
114
+ await this.executor.execute(parsed.name, parsed.arguments ?? {});
115
+ skillsUsed.push(parsed.name);
116
+ }
117
+ }
118
+ catch { }
119
+ }
120
+ const jsonMatch = content.match(/\{[\s\S]*"findings"[\s\S]*\}/);
121
+ let findings = 'Task completed';
122
+ let actionTaken = 'Analyzed';
123
+ let importance = 'low';
124
+ if (jsonMatch) {
125
+ try {
126
+ const summary = JSON.parse(jsonMatch[0]);
127
+ findings = summary.findings ?? findings;
128
+ actionTaken = summary.actionTaken ?? actionTaken;
129
+ importance = summary.importance ?? importance;
130
+ if (Array.isArray(summary.skillsUsed)) {
131
+ skillsUsed.push(...summary.skillsUsed.filter((s) => !skillsUsed.includes(s)));
132
+ }
133
+ }
134
+ catch { }
135
+ }
136
+ const result = {
137
+ taskId: task.id,
138
+ taskName: task.name,
139
+ timestamp: new Date(),
140
+ findings,
141
+ actionTaken,
142
+ skillsUsed,
143
+ shouldNotify: task.notify && importance !== 'low',
144
+ importance,
145
+ };
146
+ this.results.push(result);
147
+ if (this.results.length > 200) {
148
+ this.results = this.results.slice(-200);
149
+ }
150
+ if (result.shouldNotify) {
151
+ for (const handler of this.notificationHandlers) {
152
+ try {
153
+ await handler(result);
154
+ }
155
+ catch { }
156
+ }
157
+ }
158
+ return result;
159
+ }
160
+ catch (err) {
161
+ const result = {
162
+ taskId: task.id,
163
+ taskName: task.name,
164
+ timestamp: new Date(),
165
+ findings: `Task failed: ${err instanceof Error ? err.message : String(err)}`,
166
+ actionTaken: 'None — execution error',
167
+ skillsUsed: [],
168
+ shouldNotify: false,
169
+ importance: 'low',
170
+ };
171
+ this.results.push(result);
172
+ return result;
173
+ }
174
+ }
175
+ scheduleTask(id, task) {
176
+ if (task.intervalMs === 'once') {
177
+ setTimeout(async () => {
178
+ await this.executeTask(task);
179
+ task.active = false;
180
+ }, 0);
181
+ return;
182
+ }
183
+ const interval = Math.max(task.intervalMs, this.config.minIntervalMs);
184
+ const timer = setInterval(async () => {
185
+ if (!this.running || !task.active) {
186
+ this.stopTask(id);
187
+ return;
188
+ }
189
+ await this.executeTask(task);
190
+ }, interval);
191
+ this.timers.set(id, timer);
192
+ }
193
+ stopTask(id) {
194
+ const timer = this.timers.get(id);
195
+ if (timer) {
196
+ clearInterval(timer);
197
+ this.timers.delete(id);
198
+ }
199
+ }
200
+ }
201
+ //# sourceMappingURL=ProactiveEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProactiveEngine.js","sourceRoot":"","sources":["../../src/skills/ProactiveEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { SkillRegistry, SkillCallResult } from './SkillRegistry.js';
2
+ export interface SkillExecutorConfig {
3
+ timeoutMs?: number;
4
+ maxRetries?: number;
5
+ }
6
+ export declare class SkillExecutor {
7
+ private registry;
8
+ private config;
9
+ private mcpClients;
10
+ constructor(registry: SkillRegistry, config?: SkillExecutorConfig);
11
+ execute(skillName: string, params: Record<string, unknown>): Promise<SkillCallResult>;
12
+ connectMCP(uri: string): Promise<Array<{
13
+ name: string;
14
+ description: string;
15
+ inputSchema: Record<string, unknown>;
16
+ }>>;
17
+ disconnect(): Promise<void>;
18
+ private executeMCP;
19
+ private executeWithTimeout;
20
+ }
21
+ //# sourceMappingURL=SkillExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillExecutor.d.ts","sourceRoot":"","sources":["../../src/skills/SkillExecutor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIzE,MAAM,WAAW,mBAAmB;IAEhC,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,aAAa;IAKlB,OAAO,CAAC,QAAQ;IAJpB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,UAAU,CAAkC;gBAGxC,QAAQ,EAAE,aAAa,EAC/B,MAAM,GAAE,mBAAwB;IAW9B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IA2DrF,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAoCpH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAWnB,UAAU;YAqCV,kBAAkB;CAQnC"}