@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 @@
1
+ {"version":3,"file":"SecurityEventBus.d.ts","sourceRoot":"","sources":["../../src/security/SecurityEventBus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ export class SecurityEventBus {
2
+ subscriptions = new Map();
3
+ nextId = 1;
4
+ history = [];
5
+ maxHistory = 500;
6
+ on(type, handler) {
7
+ const sub = { id: this.nextId++, type, handler };
8
+ const existing = this.subscriptions.get(type) || [];
9
+ existing.push(sub);
10
+ this.subscriptions.set(type, existing);
11
+ return sub.id;
12
+ }
13
+ onAny(handler) {
14
+ const sub = { id: this.nextId++, type: '*', handler };
15
+ const existing = this.subscriptions.get('*') || [];
16
+ existing.push(sub);
17
+ this.subscriptions.set('*', existing);
18
+ return sub.id;
19
+ }
20
+ off(subscriptionId) {
21
+ for (const [type, subs] of this.subscriptions) {
22
+ const idx = subs.findIndex(s => s.id === subscriptionId);
23
+ if (idx !== -1) {
24
+ subs.splice(idx, 1);
25
+ if (subs.length === 0)
26
+ this.subscriptions.delete(type);
27
+ return true;
28
+ }
29
+ }
30
+ return false;
31
+ }
32
+ emit(event) {
33
+ this.history.push(event);
34
+ if (this.history.length > this.maxHistory) {
35
+ this.history = this.history.slice(-this.maxHistory);
36
+ }
37
+ const typeSubs = this.subscriptions.get(event.type) || [];
38
+ for (const sub of typeSubs) {
39
+ try {
40
+ sub.handler(event);
41
+ }
42
+ catch { }
43
+ }
44
+ const wildcardSubs = this.subscriptions.get('*') || [];
45
+ for (const sub of wildcardSubs) {
46
+ try {
47
+ sub.handler(event);
48
+ }
49
+ catch { }
50
+ }
51
+ }
52
+ emitDeny(type, layer, resource, severity = 'warning', actor, evidence) {
53
+ this.emit({
54
+ type,
55
+ timestamp: new Date(),
56
+ layer,
57
+ decision: 'deny',
58
+ actor: actor || {},
59
+ resource,
60
+ severity,
61
+ evidence,
62
+ });
63
+ }
64
+ emitAllow(type, layer, resource, actor) {
65
+ this.emit({
66
+ type,
67
+ timestamp: new Date(),
68
+ layer,
69
+ decision: 'allow',
70
+ actor: actor || {},
71
+ resource,
72
+ severity: 'info',
73
+ });
74
+ }
75
+ getHistory(filter) {
76
+ let events = this.history;
77
+ if (filter?.type)
78
+ events = events.filter(e => e.type === filter.type);
79
+ if (filter?.layer)
80
+ events = events.filter(e => e.layer === filter.layer);
81
+ if (filter?.decision)
82
+ events = events.filter(e => e.decision === filter.decision);
83
+ if (filter?.since)
84
+ events = events.filter(e => e.timestamp >= filter.since);
85
+ if (filter?.limit)
86
+ events = events.slice(-filter.limit);
87
+ return events;
88
+ }
89
+ getSummary() {
90
+ const summary = { total: this.history.length, allowed: 0, denied: 0, byLayer: {} };
91
+ for (const event of this.history) {
92
+ if (event.decision === 'allow')
93
+ summary.allowed++;
94
+ if (event.decision === 'deny')
95
+ summary.denied++;
96
+ summary.byLayer[event.layer] = (summary.byLayer[event.layer] || 0) + 1;
97
+ }
98
+ return summary;
99
+ }
100
+ reset() {
101
+ this.subscriptions.clear();
102
+ this.history = [];
103
+ }
104
+ }
105
+ //# sourceMappingURL=SecurityEventBus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityEventBus.js","sourceRoot":"","sources":["../../src/security/SecurityEventBus.ts"],"names":[],"mappings":"AAgGA,MAAM,OAAO,gBAAgB;IACjB,aAAa,GAAiD,IAAI,GAAG,EAAE,CAAC;IACxE,MAAM,GAAG,CAAC,CAAC;IACX,OAAO,GAAoB,EAAE,CAAC;IAC9B,UAAU,GAAG,GAAG,CAAC;IAKzB,EAAE,CAAC,IAAuB,EAAE,OAA6B;QACrD,MAAM,GAAG,GAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,EAAE,CAAC;IAClB,CAAC;IAKD,KAAK,CAAC,OAA6B;QAC/B,MAAM,GAAG,GAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC,EAAE,CAAC;IAClB,CAAC;IAKD,GAAG,CAAC,cAAsB;QACtB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;YACzD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAKD,IAAI,CAAC,KAAoB;QAErB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC;gBAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAuB,CAAC;QAC/D,CAAC;QAGD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC;gBAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAuB,CAAC;QAC/D,CAAC;IACL,CAAC;IAKD,QAAQ,CACJ,IAAuB,EACvB,KAA6B,EAC7B,QAAmC,EACnC,WAAsC,SAAS,EAC/C,KAA8B,EAC9B,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC;YACN,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK;YACL,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,QAAQ;YACR,QAAQ;YACR,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAKD,SAAS,CACL,IAAuB,EACvB,KAA6B,EAC7B,QAAmC,EACnC,KAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC;YACN,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK;YACL,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,QAAQ;YACR,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;IACP,CAAC;IAKD,UAAU,CAAC,MAMV;QACG,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1B,IAAI,MAAM,EAAE,IAAI;YAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,MAAM,EAAE,KAAK;YAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,MAAM,EAAE,QAAQ;YAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClF,IAAI,MAAM,EAAE,KAAK;YAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,KAAM,CAAC,CAAC;QAC7E,IAAI,MAAM,EAAE,KAAK;YAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAExD,OAAO,MAAM,CAAC;IAClB,CAAC;IAKD,UAAU;QACN,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAA4B,EAAE,CAAC;QAC7G,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;gBAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAKD,KAAK;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;CACJ"}
@@ -0,0 +1,42 @@
1
+ export type SecurityPresetName = 'paranoid' | 'secure' | 'standard' | 'developer';
2
+ export type FirewallMode = 'full-quarantine' | 'full-sanitize' | 'structural' | 'log-only';
3
+ export type ExecPolicy = 'deny-all' | 'allowlist-ask' | 'allowlist' | 'unrestricted';
4
+ export type NetworkPolicy = 'localhost-only' | 'allowlist-strict' | 'allowlist-broad' | 'unrestricted';
5
+ export type CredentialPolicy = 'keychain-required' | 'keychain-recommended' | 'env-allowed';
6
+ export type SkillVerification = 'signed-manifest' | 'manifest-only' | 'none';
7
+ export type AuditLevel = 'verbose-signed-encrypted' | 'standard-signed' | 'standard' | 'basic';
8
+ export type LLMRouting = 'local-only' | 'local-preferred' | 'cloud-filtered' | 'cloud-direct';
9
+ export interface SecurityConfig {
10
+ profile: SecurityPresetName;
11
+ firewallMode: FirewallMode;
12
+ immuneMode: FirewallMode;
13
+ enablePurposeLock: boolean;
14
+ enableAnomalyDetection: boolean;
15
+ enablePIIRedaction: boolean;
16
+ piiCategories: string[];
17
+ llmRouting: LLMRouting;
18
+ enableSensitiveVault: boolean;
19
+ credentialPolicy: CredentialPolicy;
20
+ enableEncryptedConfig: boolean;
21
+ autoMigrateSecrets: boolean;
22
+ skillVerification: SkillVerification;
23
+ blockUnsignedSkills: boolean;
24
+ enableCapabilityBroker: boolean;
25
+ execPolicy: ExecPolicy;
26
+ enableFSBoundary: boolean;
27
+ allowedPaths: string[];
28
+ deniedPaths: string[];
29
+ enableProcessIsolation: boolean;
30
+ networkPolicy: NetworkPolicy;
31
+ allowedDomains: string[];
32
+ blockPrivateNetworks: boolean;
33
+ auditLevel: AuditLevel;
34
+ auditRetentionDays: number;
35
+ enableDataAccessTracking: boolean;
36
+ sessionTimeoutMinutes: number;
37
+ }
38
+ export declare function getSecurityPreset(name: SecurityPresetName): SecurityConfig;
39
+ export declare function withSecurityPreset(name: SecurityPresetName, overrides: Partial<SecurityConfig>): SecurityConfig;
40
+ export declare function getAvailableSecurityPresets(): SecurityPresetName[];
41
+ export declare function validateSecurityConfig(config: SecurityConfig): string[];
42
+ //# sourceMappingURL=SecurityPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityPresets.d.ts","sourceRoot":"","sources":["../../src/security/SecurityPresets.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAElF,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAC3F,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;AACrF,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,CAAC;AACvG,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,aAAa,CAAC;AAC5F,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,GAAG,MAAM,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,0BAA0B,GAAG,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;AAC/F,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAE9F,MAAM,WAAW,cAAc;IAE3B,OAAO,EAAE,kBAAkB,CAAC;IAI5B,YAAY,EAAE,YAAY,CAAC;IAE3B,UAAU,EAAE,YAAY,CAAC;IAEzB,iBAAiB,EAAE,OAAO,CAAC;IAE3B,sBAAsB,EAAE,OAAO,CAAC;IAIhC,kBAAkB,EAAE,OAAO,CAAC;IAE5B,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,UAAU,EAAE,UAAU,CAAC;IAEvB,oBAAoB,EAAE,OAAO,CAAC;IAI9B,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,qBAAqB,EAAE,OAAO,CAAC;IAE/B,kBAAkB,EAAE,OAAO,CAAC;IAI5B,iBAAiB,EAAE,iBAAiB,CAAC;IAErC,mBAAmB,EAAE,OAAO,CAAC;IAE7B,sBAAsB,EAAE,OAAO,CAAC;IAIhC,UAAU,EAAE,UAAU,CAAC;IAEvB,gBAAgB,EAAE,OAAO,CAAC;IAE1B,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,sBAAsB,EAAE,OAAO,CAAC;IAIhC,aAAa,EAAE,aAAa,CAAC;IAE7B,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,oBAAoB,EAAE,OAAO,CAAC;IAI9B,UAAU,EAAE,UAAU,CAAC;IAEvB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,wBAAwB,EAAE,OAAO,CAAC;IAElC,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAuLD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAE1E;AAKD,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,GACnC,cAAc,CAEhB;AAKD,wBAAgB,2BAA2B,IAAI,kBAAkB,EAAE,CAElE;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAoBvE"}
@@ -0,0 +1,162 @@
1
+ const ALWAYS_DENIED_PATHS = [
2
+ '~/.ssh',
3
+ '~/.gnupg',
4
+ '~/Library/Keychains',
5
+ '~/.aws',
6
+ '~/.config/gcloud',
7
+ '~/.azure',
8
+ '~/.kube/config',
9
+ '~/.docker/config.json',
10
+ ];
11
+ const PRESET_PARANOID = {
12
+ profile: 'paranoid',
13
+ firewallMode: 'full-quarantine',
14
+ immuneMode: 'full-quarantine',
15
+ enablePurposeLock: true,
16
+ enableAnomalyDetection: true,
17
+ enablePIIRedaction: true,
18
+ piiCategories: [],
19
+ llmRouting: 'local-only',
20
+ enableSensitiveVault: true,
21
+ credentialPolicy: 'keychain-required',
22
+ enableEncryptedConfig: true,
23
+ autoMigrateSecrets: true,
24
+ skillVerification: 'signed-manifest',
25
+ blockUnsignedSkills: true,
26
+ enableCapabilityBroker: true,
27
+ execPolicy: 'deny-all',
28
+ enableFSBoundary: true,
29
+ allowedPaths: ['~/.genome', '/tmp/genome-*'],
30
+ deniedPaths: [...ALWAYS_DENIED_PATHS],
31
+ enableProcessIsolation: true,
32
+ networkPolicy: 'localhost-only',
33
+ allowedDomains: ['localhost', '127.0.0.1'],
34
+ blockPrivateNetworks: true,
35
+ auditLevel: 'verbose-signed-encrypted',
36
+ auditRetentionDays: 365,
37
+ enableDataAccessTracking: true,
38
+ sessionTimeoutMinutes: 60,
39
+ };
40
+ const PRESET_SECURE = {
41
+ profile: 'secure',
42
+ firewallMode: 'full-sanitize',
43
+ immuneMode: 'full-sanitize',
44
+ enablePurposeLock: true,
45
+ enableAnomalyDetection: true,
46
+ enablePIIRedaction: true,
47
+ piiCategories: [],
48
+ llmRouting: 'local-preferred',
49
+ enableSensitiveVault: true,
50
+ credentialPolicy: 'keychain-required',
51
+ enableEncryptedConfig: true,
52
+ autoMigrateSecrets: true,
53
+ skillVerification: 'signed-manifest',
54
+ blockUnsignedSkills: true,
55
+ enableCapabilityBroker: true,
56
+ execPolicy: 'allowlist-ask',
57
+ enableFSBoundary: true,
58
+ allowedPaths: ['~/Documents/Genome', '~/.genome', '/tmp/genome-*'],
59
+ deniedPaths: [...ALWAYS_DENIED_PATHS],
60
+ enableProcessIsolation: true,
61
+ networkPolicy: 'allowlist-strict',
62
+ allowedDomains: [
63
+ '*.openai.com', '*.anthropic.com', 'generativelanguage.googleapis.com',
64
+ 'api.telegram.org', 'discord.com', 'gateway.discord.gg',
65
+ 'slack.com', '*.slack.com',
66
+ ],
67
+ blockPrivateNetworks: true,
68
+ auditLevel: 'standard-signed',
69
+ auditRetentionDays: 90,
70
+ enableDataAccessTracking: true,
71
+ sessionTimeoutMinutes: 480,
72
+ };
73
+ const PRESET_STANDARD = {
74
+ profile: 'standard',
75
+ firewallMode: 'structural',
76
+ immuneMode: 'structural',
77
+ enablePurposeLock: false,
78
+ enableAnomalyDetection: true,
79
+ enablePIIRedaction: true,
80
+ piiCategories: ['credit-card', 'ssn', 'api-key', 'iban'],
81
+ llmRouting: 'cloud-filtered',
82
+ enableSensitiveVault: false,
83
+ credentialPolicy: 'keychain-recommended',
84
+ enableEncryptedConfig: true,
85
+ autoMigrateSecrets: false,
86
+ skillVerification: 'manifest-only',
87
+ blockUnsignedSkills: false,
88
+ enableCapabilityBroker: true,
89
+ execPolicy: 'allowlist',
90
+ enableFSBoundary: true,
91
+ allowedPaths: ['~'],
92
+ deniedPaths: [...ALWAYS_DENIED_PATHS],
93
+ enableProcessIsolation: false,
94
+ networkPolicy: 'allowlist-broad',
95
+ allowedDomains: [],
96
+ blockPrivateNetworks: true,
97
+ auditLevel: 'standard',
98
+ auditRetentionDays: 30,
99
+ enableDataAccessTracking: false,
100
+ sessionTimeoutMinutes: 1440,
101
+ };
102
+ const PRESET_DEVELOPER = {
103
+ profile: 'developer',
104
+ firewallMode: 'log-only',
105
+ immuneMode: 'log-only',
106
+ enablePurposeLock: false,
107
+ enableAnomalyDetection: false,
108
+ enablePIIRedaction: false,
109
+ piiCategories: [],
110
+ llmRouting: 'cloud-direct',
111
+ enableSensitiveVault: false,
112
+ credentialPolicy: 'env-allowed',
113
+ enableEncryptedConfig: false,
114
+ autoMigrateSecrets: false,
115
+ skillVerification: 'none',
116
+ blockUnsignedSkills: false,
117
+ enableCapabilityBroker: false,
118
+ execPolicy: 'unrestricted',
119
+ enableFSBoundary: false,
120
+ allowedPaths: [],
121
+ deniedPaths: [],
122
+ enableProcessIsolation: false,
123
+ networkPolicy: 'unrestricted',
124
+ allowedDomains: [],
125
+ blockPrivateNetworks: false,
126
+ auditLevel: 'basic',
127
+ auditRetentionDays: 7,
128
+ enableDataAccessTracking: false,
129
+ sessionTimeoutMinutes: 0,
130
+ };
131
+ const SECURITY_PRESETS = {
132
+ paranoid: PRESET_PARANOID,
133
+ secure: PRESET_SECURE,
134
+ standard: PRESET_STANDARD,
135
+ developer: PRESET_DEVELOPER,
136
+ };
137
+ export function getSecurityPreset(name) {
138
+ return { ...SECURITY_PRESETS[name] };
139
+ }
140
+ export function withSecurityPreset(name, overrides) {
141
+ return { ...SECURITY_PRESETS[name], ...overrides };
142
+ }
143
+ export function getAvailableSecurityPresets() {
144
+ return Object.keys(SECURITY_PRESETS);
145
+ }
146
+ export function validateSecurityConfig(config) {
147
+ const errors = [];
148
+ if (config.credentialPolicy === 'keychain-required' && !config.enableEncryptedConfig) {
149
+ errors.push('Keychain-required credential policy needs enableEncryptedConfig=true');
150
+ }
151
+ if (config.execPolicy === 'deny-all' && !config.enableFSBoundary) {
152
+ errors.push('deny-all exec policy should have FS boundary enabled');
153
+ }
154
+ if (config.llmRouting === 'local-only' && config.networkPolicy === 'unrestricted') {
155
+ errors.push('local-only LLM routing with unrestricted network is contradictory');
156
+ }
157
+ if (config.blockUnsignedSkills && config.skillVerification === 'none') {
158
+ errors.push('Cannot block unsigned skills with verification=none');
159
+ }
160
+ return errors;
161
+ }
162
+ //# sourceMappingURL=SecurityPresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityPresets.js","sourceRoot":"","sources":["../../src/security/SecurityPresets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export type CapabilityType = 'fs:read' | 'fs:write' | 'fs:delete' | 'exec:command' | 'exec:safe-bin' | 'net:outbound' | 'net:localhost' | 'cred:read' | 'data:pii' | 'data:financial' | 'data:health';
2
+ export interface SkillPermissions {
3
+ required: CapabilityType[];
4
+ optional: CapabilityType[];
5
+ }
6
+ export interface SkillRestrictions {
7
+ maxFileSize?: number;
8
+ allowedExtensions?: string[];
9
+ deniedPaths?: string[];
10
+ allowedDomains?: string[];
11
+ maxExecTimeMs?: number;
12
+ }
13
+ export interface SkillManifestData {
14
+ name: string;
15
+ version: string;
16
+ author: string;
17
+ permissions: SkillPermissions;
18
+ dataAccess: string[];
19
+ restrictions: SkillRestrictions;
20
+ signature?: string;
21
+ }
22
+ export declare class SkillManifest {
23
+ readonly data: Readonly<SkillManifestData>;
24
+ private constructor();
25
+ static parse(raw: Partial<SkillManifestData>): SkillManifest;
26
+ static default(skillName: string): SkillManifest;
27
+ static validate(raw: Partial<SkillManifestData>): string[];
28
+ requires(capability: CapabilityType): boolean;
29
+ optionallyRequests(capability: CapabilityType): boolean;
30
+ canAccessData(classification: string): boolean;
31
+ getAllCapabilities(): CapabilityType[];
32
+ toJSON(): string;
33
+ }
34
+ //# sourceMappingURL=SkillManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillManifest.d.ts","sourceRoot":"","sources":["../../src/security/SkillManifest.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,cAAc,GACpB,SAAS,GACT,UAAU,GACV,WAAW,GACX,cAAc,GACd,eAAe,GACf,cAAc,GACd,eAAe,GACf,WAAW,GACX,UAAU,GACV,gBAAgB,GAChB,aAAa,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAE7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAE9B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAE9B,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,gBAAgB,CAAC;IAE9B,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,YAAY,EAAE,iBAAiB,CAAC;IAEhC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAoCD,qBAAa,aAAa;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAE3C,OAAO;IAOP,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,aAAa;IAyB5D,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAUhD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,EAAE;IAkC1D,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAO7C,kBAAkB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAOvD,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAO9C,kBAAkB,IAAI,cAAc,EAAE;IAOtC,MAAM,IAAI,MAAM;CAGnB"}
@@ -0,0 +1,91 @@
1
+ const DEFAULT_MANIFEST = {
2
+ name: 'unknown',
3
+ version: '0.0.0',
4
+ author: 'unknown',
5
+ permissions: {
6
+ required: [],
7
+ optional: [],
8
+ },
9
+ dataAccess: ['public'],
10
+ restrictions: {},
11
+ };
12
+ export class SkillManifest {
13
+ data;
14
+ constructor(data) {
15
+ this.data = Object.freeze(data);
16
+ }
17
+ static parse(raw) {
18
+ const errors = SkillManifest.validate(raw);
19
+ if (errors.length > 0) {
20
+ throw new Error(`[SkillManifest] Invalid manifest: ${errors.join('; ')}`);
21
+ }
22
+ const data = {
23
+ name: raw.name ?? DEFAULT_MANIFEST.name,
24
+ version: raw.version ?? DEFAULT_MANIFEST.version,
25
+ author: raw.author ?? DEFAULT_MANIFEST.author,
26
+ permissions: {
27
+ required: raw.permissions?.required ?? [],
28
+ optional: raw.permissions?.optional ?? [],
29
+ },
30
+ dataAccess: raw.dataAccess ?? ['public'],
31
+ restrictions: raw.restrictions ?? {},
32
+ signature: raw.signature,
33
+ };
34
+ return new SkillManifest(data);
35
+ }
36
+ static default(skillName) {
37
+ return new SkillManifest({
38
+ ...DEFAULT_MANIFEST,
39
+ name: skillName,
40
+ });
41
+ }
42
+ static validate(raw) {
43
+ const errors = [];
44
+ if (raw.permissions?.required) {
45
+ for (const cap of raw.permissions.required) {
46
+ if (!VALID_CAPABILITIES.has(cap)) {
47
+ errors.push(`Unknown capability: ${cap}`);
48
+ }
49
+ }
50
+ }
51
+ if (raw.permissions?.optional) {
52
+ for (const cap of raw.permissions.optional) {
53
+ if (!VALID_CAPABILITIES.has(cap)) {
54
+ errors.push(`Unknown optional capability: ${cap}`);
55
+ }
56
+ }
57
+ }
58
+ if (raw.dataAccess) {
59
+ const validClassifications = new Set(['public', 'internal', 'confidential', 'restricted']);
60
+ for (const dc of raw.dataAccess) {
61
+ if (!validClassifications.has(dc)) {
62
+ errors.push(`Unknown data classification: ${dc}`);
63
+ }
64
+ }
65
+ }
66
+ return errors;
67
+ }
68
+ requires(capability) {
69
+ return this.data.permissions.required.includes(capability);
70
+ }
71
+ optionallyRequests(capability) {
72
+ return this.data.permissions.optional.includes(capability);
73
+ }
74
+ canAccessData(classification) {
75
+ return this.data.dataAccess.includes(classification);
76
+ }
77
+ getAllCapabilities() {
78
+ return [...this.data.permissions.required, ...this.data.permissions.optional];
79
+ }
80
+ toJSON() {
81
+ return JSON.stringify(this.data);
82
+ }
83
+ }
84
+ const VALID_CAPABILITIES = new Set([
85
+ 'fs:read', 'fs:write', 'fs:delete',
86
+ 'exec:command', 'exec:safe-bin',
87
+ 'net:outbound', 'net:localhost',
88
+ 'cred:read',
89
+ 'data:pii', 'data:financial', 'data:health',
90
+ ]);
91
+ //# sourceMappingURL=SkillManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillManifest.js","sourceRoot":"","sources":["../../src/security/SkillManifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface SkillSignature {
2
+ signature: string;
3
+ contentHash: string;
4
+ publicKey: string;
5
+ signedAt: string;
6
+ }
7
+ export interface KeyPair {
8
+ publicKey: string;
9
+ privateKey: string;
10
+ }
11
+ export declare class SkillSigner {
12
+ private trustedKeys;
13
+ constructor(trustedKeys?: Record<string, string>);
14
+ sign(code: string, manifestJSON: string, version: string, privateKeyHex: string): SkillSignature;
15
+ verify(code: string, manifestJSON: string, version: string, sig: SkillSignature, publicKeyHex?: string): boolean;
16
+ isTrustedPublisher(sig: SkillSignature): boolean;
17
+ addTrustedKey(publisher: string, publicKeyHex: string): void;
18
+ static generateKeyPair(): KeyPair;
19
+ private computeContentHash;
20
+ private derivePublicKey;
21
+ }
22
+ //# sourceMappingURL=SkillSigner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillSigner.d.ts","sourceRoot":"","sources":["../../src/security/SkillSigner.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAE3B,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,CAAC;IAEpB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAqBD,qBAAa,WAAW;IAEpB,OAAO,CAAC,WAAW,CAAkC;gBAEzC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWhD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,cAAc;IAwBhG,MAAM,CACF,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,EACnB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO;IAyBV,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO;IAUhD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAO5D,MAAM,CAAC,eAAe,IAAI,OAAO;IAcjC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;CAS1B"}
@@ -0,0 +1,80 @@
1
+ import { createHash, createPrivateKey, sign, verify, generateKeyPairSync } from 'node:crypto';
2
+ export class SkillSigner {
3
+ trustedKeys = new Map();
4
+ constructor(trustedKeys) {
5
+ if (trustedKeys) {
6
+ for (const [publisher, key] of Object.entries(trustedKeys)) {
7
+ this.trustedKeys.set(publisher, key);
8
+ }
9
+ }
10
+ }
11
+ sign(code, manifestJSON, version, privateKeyHex) {
12
+ const contentHash = this.computeContentHash(code, manifestJSON, version);
13
+ const privateKey = Buffer.from(privateKeyHex, 'hex');
14
+ const signature = sign(null, Buffer.from(contentHash, 'hex'), {
15
+ key: privateKey,
16
+ format: 'der',
17
+ type: 'pkcs8',
18
+ });
19
+ const publicKeyDer = this.derivePublicKey(privateKey);
20
+ return {
21
+ signature: signature.toString('hex'),
22
+ contentHash,
23
+ publicKey: publicKeyDer,
24
+ signedAt: new Date().toISOString(),
25
+ };
26
+ }
27
+ verify(code, manifestJSON, version, sig, publicKeyHex) {
28
+ const expectedHash = this.computeContentHash(code, manifestJSON, version);
29
+ if (sig.contentHash !== expectedHash) {
30
+ return false;
31
+ }
32
+ const pubKey = publicKeyHex ?? sig.publicKey;
33
+ try {
34
+ return verify(null, Buffer.from(sig.contentHash, 'hex'), { key: Buffer.from(pubKey, 'hex'), format: 'der', type: 'spki' }, Buffer.from(sig.signature, 'hex'));
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ isTrustedPublisher(sig) {
41
+ for (const [, key] of this.trustedKeys) {
42
+ if (key === sig.publicKey)
43
+ return true;
44
+ }
45
+ return false;
46
+ }
47
+ addTrustedKey(publisher, publicKeyHex) {
48
+ this.trustedKeys.set(publisher, publicKeyHex);
49
+ }
50
+ static generateKeyPair() {
51
+ const { publicKey, privateKey } = generateKeyPairSync('ed25519', {
52
+ publicKeyEncoding: { type: 'spki', format: 'der' },
53
+ privateKeyEncoding: { type: 'pkcs8', format: 'der' },
54
+ });
55
+ return {
56
+ publicKey: publicKey.toString('hex'),
57
+ privateKey: privateKey.toString('hex'),
58
+ };
59
+ }
60
+ computeContentHash(code, manifestJSON, version) {
61
+ return createHash('sha256')
62
+ .update(code)
63
+ .update('\0')
64
+ .update(manifestJSON)
65
+ .update('\0')
66
+ .update(version)
67
+ .digest('hex');
68
+ }
69
+ derivePublicKey(privateKeyDer) {
70
+ try {
71
+ const keyObj = createPrivateKey({ key: privateKeyDer, format: 'der', type: 'pkcs8' });
72
+ const pubDer = keyObj.export({ type: 'spki', format: 'der' });
73
+ return pubDer.toString('hex');
74
+ }
75
+ catch {
76
+ return '';
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=SkillSigner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillSigner.js","sourceRoot":"","sources":["../../src/security/SkillSigner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { KeychainAdapter } from './KeychainAdapter.js';
2
+ import type { SecurityEvent } from './SecurityEventBus.js';
3
+ export type AuditEventType = SecurityEvent['type'] | 'audit:initialized' | 'audit:verified' | 'audit:rotated';
4
+ export interface AuditEntry {
5
+ id: string;
6
+ timestamp: string;
7
+ type: AuditEventType;
8
+ severity: 'info' | 'warning' | 'high' | 'critical';
9
+ layer: number;
10
+ decision: 'allow' | 'deny' | 'info';
11
+ actor: {
12
+ userId?: string;
13
+ skillId?: string;
14
+ channel?: string;
15
+ };
16
+ resource: {
17
+ type: string;
18
+ id: string;
19
+ detail?: string;
20
+ };
21
+ evidence?: string;
22
+ previousHash: string;
23
+ hash: string;
24
+ }
25
+ export interface VerificationResult {
26
+ valid: boolean;
27
+ totalEntries: number;
28
+ brokenAt?: number;
29
+ brokenEntry?: AuditEntry;
30
+ rootHashMatch: boolean;
31
+ }
32
+ export declare class TamperProofAuditLog {
33
+ private alk;
34
+ private keychain;
35
+ private currentHash;
36
+ private auditDir;
37
+ private entryCount;
38
+ private initialized;
39
+ constructor(auditLogKey: Buffer, keychain: KeychainAdapter, auditDir?: string);
40
+ initialize(): Promise<void>;
41
+ appendFromEvent(event: SecurityEvent): Promise<void>;
42
+ append(entry: Omit<AuditEntry, 'id' | 'timestamp' | 'previousHash' | 'hash'>): Promise<AuditEntry>;
43
+ verify(): Promise<VerificationResult>;
44
+ readEntries(date?: Date): Promise<AuditEntry[]>;
45
+ getEntryCount(): number;
46
+ flush(): Promise<void>;
47
+ private computeHMAC;
48
+ private computeEntryHash;
49
+ private encryptEntry;
50
+ private decryptEntry;
51
+ private todayFilePath;
52
+ private filePathForDate;
53
+ private readEntriesFromFile;
54
+ private readAllEntries;
55
+ private countEntries;
56
+ private ensureInitialized;
57
+ }
58
+ //# sourceMappingURL=TamperProofAuditLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TamperProofAuditLog.d.ts","sourceRoot":"","sources":["../../src/security/TamperProofAuditLog.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS3D,MAAM,MAAM,cAAc,GACpB,aAAa,CAAC,MAAM,CAAC,GACrB,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,CAAC;AAEtB,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAkBD,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,MAAM;IAYvE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAkClG,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAuDrC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQrD,aAAa,IAAI,MAAM;IAOjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;YAKT,mBAAmB;YAUnB,cAAc;YAed,YAAY;IAc1B,OAAO,CAAC,iBAAiB;CAK5B"}