beddel 0.2.3 → 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 (542) hide show
  1. package/README.md +138 -595
  2. package/dist/client.d.ts +10 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +9 -0
  5. package/dist/core/parser.d.ts +25 -0
  6. package/dist/core/parser.d.ts.map +1 -0
  7. package/dist/core/parser.js +31 -0
  8. package/dist/core/variable-resolver.d.ts +23 -0
  9. package/dist/core/variable-resolver.d.ts.map +1 -0
  10. package/dist/core/variable-resolver.js +98 -0
  11. package/dist/core/workflow.d.ts +39 -0
  12. package/dist/core/workflow.d.ts.map +1 -0
  13. package/dist/core/workflow.js +64 -0
  14. package/dist/index.d.ts +14 -36
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +15 -130
  17. package/dist/primitives/index.d.ts +37 -0
  18. package/dist/primitives/index.d.ts.map +1 -0
  19. package/dist/primitives/index.js +72 -0
  20. package/dist/primitives/llm.d.ts +56 -0
  21. package/dist/primitives/llm.d.ts.map +1 -0
  22. package/dist/primitives/llm.js +156 -0
  23. package/dist/primitives/output.d.ts +28 -0
  24. package/dist/primitives/output.d.ts.map +1 -0
  25. package/dist/primitives/output.js +39 -0
  26. package/dist/server/handler.d.ts +7 -0
  27. package/dist/server/handler.d.ts.map +1 -0
  28. package/dist/server/handler.js +55 -0
  29. package/dist/server.d.ts +10 -0
  30. package/dist/server.d.ts.map +1 -0
  31. package/dist/server.js +9 -0
  32. package/dist/tools/index.d.ts +49 -0
  33. package/dist/tools/index.d.ts.map +1 -0
  34. package/dist/tools/index.js +96 -0
  35. package/dist/types/index.d.ts +54 -0
  36. package/dist/types/index.d.ts.map +1 -0
  37. package/dist/types/index.js +5 -0
  38. package/docs/architecture/api-reference.md +307 -0
  39. package/docs/architecture/components.md +246 -0
  40. package/docs/architecture/core-workflows.md +236 -0
  41. package/docs/architecture/high-level-architecture.md +76 -0
  42. package/docs/architecture/index.md +31 -0
  43. package/docs/architecture/source-tree.md +92 -0
  44. package/docs/architecture/tech-stack.md +25 -0
  45. package/docs/prd/epic-list.md +101 -0
  46. package/docs/prd/goals-context.md +23 -0
  47. package/docs/prd/index.md +21 -0
  48. package/docs/prd/requirements.md +25 -0
  49. package/docs/prd/technical-assumptions.md +35 -0
  50. package/package.json +31 -118
  51. package/src/client.ts +18 -0
  52. package/src/core/parser.ts +36 -0
  53. package/src/core/variable-resolver.ts +114 -0
  54. package/src/core/workflow.ts +77 -0
  55. package/src/index.ts +25 -159
  56. package/src/primitives/index.ts +83 -0
  57. package/src/primitives/llm.ts +210 -0
  58. package/src/primitives/output.ts +65 -0
  59. package/src/server/handler.ts +80 -0
  60. package/src/server.ts +10 -0
  61. package/src/tools/index.ts +118 -0
  62. package/src/types/index.ts +62 -0
  63. package/tsconfig.json +27 -0
  64. package/CHANGELOG.md +0 -78
  65. package/LICENSE +0 -21
  66. package/dist/agents/chat/chat.handler.d.ts +0 -12
  67. package/dist/agents/chat/chat.handler.d.ts.map +0 -1
  68. package/dist/agents/chat/chat.handler.js +0 -143
  69. package/dist/agents/chat/chat.handler.js.map +0 -1
  70. package/dist/agents/chat/chat.schema.d.ts +0 -38
  71. package/dist/agents/chat/chat.schema.d.ts.map +0 -1
  72. package/dist/agents/chat/chat.schema.js +0 -31
  73. package/dist/agents/chat/chat.schema.js.map +0 -1
  74. package/dist/agents/chat/chat.types.d.ts +0 -42
  75. package/dist/agents/chat/chat.types.d.ts.map +0 -1
  76. package/dist/agents/chat/chat.types.js +0 -6
  77. package/dist/agents/chat/chat.types.js.map +0 -1
  78. package/dist/agents/chat/chat.yaml +0 -150
  79. package/dist/agents/chat/index.d.ts +0 -16
  80. package/dist/agents/chat/index.d.ts.map +0 -1
  81. package/dist/agents/chat/index.js +0 -21
  82. package/dist/agents/chat/index.js.map +0 -1
  83. package/dist/agents/chromadb/chromadb.handler.d.ts +0 -12
  84. package/dist/agents/chromadb/chromadb.handler.d.ts.map +0 -1
  85. package/dist/agents/chromadb/chromadb.handler.js +0 -139
  86. package/dist/agents/chromadb/chromadb.handler.js.map +0 -1
  87. package/dist/agents/chromadb/chromadb.schema.d.ts +0 -36
  88. package/dist/agents/chromadb/chromadb.schema.d.ts.map +0 -1
  89. package/dist/agents/chromadb/chromadb.schema.js +0 -33
  90. package/dist/agents/chromadb/chromadb.schema.js.map +0 -1
  91. package/dist/agents/chromadb/chromadb.types.d.ts +0 -49
  92. package/dist/agents/chromadb/chromadb.types.d.ts.map +0 -1
  93. package/dist/agents/chromadb/chromadb.types.js +0 -6
  94. package/dist/agents/chromadb/chromadb.types.js.map +0 -1
  95. package/dist/agents/chromadb/chromadb.yaml +0 -128
  96. package/dist/agents/chromadb/index.d.ts +0 -15
  97. package/dist/agents/chromadb/index.d.ts.map +0 -1
  98. package/dist/agents/chromadb/index.js +0 -20
  99. package/dist/agents/chromadb/index.js.map +0 -1
  100. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts +0 -8
  101. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts.map +0 -1
  102. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js +0 -58
  103. package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js.map +0 -1
  104. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts +0 -22
  105. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts.map +0 -1
  106. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js +0 -20
  107. package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js.map +0 -1
  108. package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts +0 -32
  109. package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts.map +0 -1
  110. package/dist/agents/gemini-vectorize/gemini-vectorize.types.js +0 -6
  111. package/dist/agents/gemini-vectorize/gemini-vectorize.types.js.map +0 -1
  112. package/dist/agents/gemini-vectorize/gemini-vectorize.yaml +0 -84
  113. package/dist/agents/gemini-vectorize/index.d.ts +0 -15
  114. package/dist/agents/gemini-vectorize/index.d.ts.map +0 -1
  115. package/dist/agents/gemini-vectorize/index.js +0 -20
  116. package/dist/agents/gemini-vectorize/index.js.map +0 -1
  117. package/dist/agents/gitmcp/gitmcp.handler.d.ts +0 -12
  118. package/dist/agents/gitmcp/gitmcp.handler.d.ts.map +0 -1
  119. package/dist/agents/gitmcp/gitmcp.handler.js +0 -95
  120. package/dist/agents/gitmcp/gitmcp.handler.js.map +0 -1
  121. package/dist/agents/gitmcp/gitmcp.schema.d.ts +0 -17
  122. package/dist/agents/gitmcp/gitmcp.schema.d.ts.map +0 -1
  123. package/dist/agents/gitmcp/gitmcp.schema.js +0 -18
  124. package/dist/agents/gitmcp/gitmcp.schema.js.map +0 -1
  125. package/dist/agents/gitmcp/gitmcp.types.d.ts +0 -31
  126. package/dist/agents/gitmcp/gitmcp.types.d.ts.map +0 -1
  127. package/dist/agents/gitmcp/gitmcp.types.js +0 -6
  128. package/dist/agents/gitmcp/gitmcp.types.js.map +0 -1
  129. package/dist/agents/gitmcp/gitmcp.yaml +0 -71
  130. package/dist/agents/gitmcp/index.d.ts +0 -16
  131. package/dist/agents/gitmcp/index.d.ts.map +0 -1
  132. package/dist/agents/gitmcp/index.js +0 -21
  133. package/dist/agents/gitmcp/index.js.map +0 -1
  134. package/dist/agents/image/image.handler.d.ts +0 -8
  135. package/dist/agents/image/image.handler.d.ts.map +0 -1
  136. package/dist/agents/image/image.handler.js +0 -66
  137. package/dist/agents/image/image.handler.js.map +0 -1
  138. package/dist/agents/image/image.schema.d.ts +0 -29
  139. package/dist/agents/image/image.schema.d.ts.map +0 -1
  140. package/dist/agents/image/image.schema.js +0 -26
  141. package/dist/agents/image/image.schema.js.map +0 -1
  142. package/dist/agents/image/image.types.d.ts +0 -42
  143. package/dist/agents/image/image.types.d.ts.map +0 -1
  144. package/dist/agents/image/image.types.js +0 -6
  145. package/dist/agents/image/image.types.js.map +0 -1
  146. package/dist/agents/image/image.yaml +0 -86
  147. package/dist/agents/image/index.d.ts +0 -14
  148. package/dist/agents/image/index.d.ts.map +0 -1
  149. package/dist/agents/image/index.js +0 -19
  150. package/dist/agents/image/index.js.map +0 -1
  151. package/dist/agents/index.d.ts +0 -95
  152. package/dist/agents/index.d.ts.map +0 -1
  153. package/dist/agents/index.js +0 -76
  154. package/dist/agents/index.js.map +0 -1
  155. package/dist/agents/joker/index.d.ts +0 -14
  156. package/dist/agents/joker/index.d.ts.map +0 -1
  157. package/dist/agents/joker/index.js +0 -19
  158. package/dist/agents/joker/index.js.map +0 -1
  159. package/dist/agents/joker/joker.handler.d.ts +0 -8
  160. package/dist/agents/joker/joker.handler.d.ts.map +0 -1
  161. package/dist/agents/joker/joker.handler.js +0 -48
  162. package/dist/agents/joker/joker.handler.js.map +0 -1
  163. package/dist/agents/joker/joker.schema.d.ts +0 -12
  164. package/dist/agents/joker/joker.schema.d.ts.map +0 -1
  165. package/dist/agents/joker/joker.schema.js +0 -13
  166. package/dist/agents/joker/joker.schema.js.map +0 -1
  167. package/dist/agents/joker/joker.types.d.ts +0 -35
  168. package/dist/agents/joker/joker.types.d.ts.map +0 -1
  169. package/dist/agents/joker/joker.types.js +0 -6
  170. package/dist/agents/joker/joker.types.js.map +0 -1
  171. package/dist/agents/joker/joker.yaml +0 -47
  172. package/dist/agents/mcp-tool/index.d.ts +0 -14
  173. package/dist/agents/mcp-tool/index.d.ts.map +0 -1
  174. package/dist/agents/mcp-tool/index.js +0 -19
  175. package/dist/agents/mcp-tool/index.js.map +0 -1
  176. package/dist/agents/mcp-tool/mcp-tool.handler.d.ts +0 -12
  177. package/dist/agents/mcp-tool/mcp-tool.handler.d.ts.map +0 -1
  178. package/dist/agents/mcp-tool/mcp-tool.handler.js +0 -116
  179. package/dist/agents/mcp-tool/mcp-tool.handler.js.map +0 -1
  180. package/dist/agents/mcp-tool/mcp-tool.schema.d.ts +0 -19
  181. package/dist/agents/mcp-tool/mcp-tool.schema.d.ts.map +0 -1
  182. package/dist/agents/mcp-tool/mcp-tool.schema.js +0 -20
  183. package/dist/agents/mcp-tool/mcp-tool.schema.js.map +0 -1
  184. package/dist/agents/mcp-tool/mcp-tool.types.d.ts +0 -31
  185. package/dist/agents/mcp-tool/mcp-tool.types.d.ts.map +0 -1
  186. package/dist/agents/mcp-tool/mcp-tool.types.js +0 -6
  187. package/dist/agents/mcp-tool/mcp-tool.types.js.map +0 -1
  188. package/dist/agents/mcp-tool/mcp-tool.yaml +0 -71
  189. package/dist/agents/rag/index.d.ts +0 -15
  190. package/dist/agents/rag/index.d.ts.map +0 -1
  191. package/dist/agents/rag/index.js +0 -20
  192. package/dist/agents/rag/index.js.map +0 -1
  193. package/dist/agents/rag/rag.handler.d.ts +0 -8
  194. package/dist/agents/rag/rag.handler.d.ts.map +0 -1
  195. package/dist/agents/rag/rag.handler.js +0 -101
  196. package/dist/agents/rag/rag.handler.js.map +0 -1
  197. package/dist/agents/rag/rag.schema.d.ts +0 -27
  198. package/dist/agents/rag/rag.schema.d.ts.map +0 -1
  199. package/dist/agents/rag/rag.schema.js +0 -24
  200. package/dist/agents/rag/rag.schema.js.map +0 -1
  201. package/dist/agents/rag/rag.types.d.ts +0 -47
  202. package/dist/agents/rag/rag.types.d.ts.map +0 -1
  203. package/dist/agents/rag/rag.types.js +0 -6
  204. package/dist/agents/rag/rag.types.js.map +0 -1
  205. package/dist/agents/rag/rag.yaml +0 -89
  206. package/dist/agents/registry/agentRegistry.d.ts +0 -117
  207. package/dist/agents/registry/agentRegistry.d.ts.map +0 -1
  208. package/dist/agents/registry/agentRegistry.js +0 -551
  209. package/dist/agents/registry/agentRegistry.js.map +0 -1
  210. package/dist/agents/registry/index.d.ts +0 -6
  211. package/dist/agents/registry/index.d.ts.map +0 -1
  212. package/dist/agents/registry/index.js +0 -10
  213. package/dist/agents/registry/index.js.map +0 -1
  214. package/dist/agents/translator/index.d.ts +0 -14
  215. package/dist/agents/translator/index.d.ts.map +0 -1
  216. package/dist/agents/translator/index.js +0 -19
  217. package/dist/agents/translator/index.js.map +0 -1
  218. package/dist/agents/translator/translator.handler.d.ts +0 -8
  219. package/dist/agents/translator/translator.handler.d.ts.map +0 -1
  220. package/dist/agents/translator/translator.handler.js +0 -83
  221. package/dist/agents/translator/translator.handler.js.map +0 -1
  222. package/dist/agents/translator/translator.schema.d.ts +0 -27
  223. package/dist/agents/translator/translator.schema.d.ts.map +0 -1
  224. package/dist/agents/translator/translator.schema.js +0 -28
  225. package/dist/agents/translator/translator.schema.js.map +0 -1
  226. package/dist/agents/translator/translator.types.d.ts +0 -40
  227. package/dist/agents/translator/translator.types.d.ts.map +0 -1
  228. package/dist/agents/translator/translator.types.js +0 -6
  229. package/dist/agents/translator/translator.types.js.map +0 -1
  230. package/dist/agents/translator/translator.yaml +0 -80
  231. package/dist/audit/auditTrail.d.ts +0 -55
  232. package/dist/audit/auditTrail.d.ts.map +0 -1
  233. package/dist/audit/auditTrail.js +0 -93
  234. package/dist/audit/auditTrail.js.map +0 -1
  235. package/dist/client/index.d.ts +0 -89
  236. package/dist/client/index.d.ts.map +0 -1
  237. package/dist/client/index.js +0 -93
  238. package/dist/client/index.js.map +0 -1
  239. package/dist/client/types.d.ts +0 -17
  240. package/dist/client/types.d.ts.map +0 -1
  241. package/dist/client/types.js +0 -7
  242. package/dist/client/types.js.map +0 -1
  243. package/dist/compliance/gdprEngine.d.ts +0 -44
  244. package/dist/compliance/gdprEngine.d.ts.map +0 -1
  245. package/dist/compliance/gdprEngine.js +0 -178
  246. package/dist/compliance/gdprEngine.js.map +0 -1
  247. package/dist/compliance/lgpdEngine.d.ts +0 -51
  248. package/dist/compliance/lgpdEngine.d.ts.map +0 -1
  249. package/dist/compliance/lgpdEngine.js +0 -221
  250. package/dist/compliance/lgpdEngine.js.map +0 -1
  251. package/dist/config.d.ts +0 -78
  252. package/dist/config.d.ts.map +0 -1
  253. package/dist/config.js +0 -77
  254. package/dist/config.js.map +0 -1
  255. package/dist/errors.d.ts +0 -17
  256. package/dist/errors.d.ts.map +0 -1
  257. package/dist/errors.js +0 -40
  258. package/dist/errors.js.map +0 -1
  259. package/dist/firebase/tenantManager.d.ts +0 -116
  260. package/dist/firebase/tenantManager.d.ts.map +0 -1
  261. package/dist/firebase/tenantManager.js +0 -444
  262. package/dist/firebase/tenantManager.js.map +0 -1
  263. package/dist/index.js.map +0 -1
  264. package/dist/integration/secure-yaml-runtime.d.ts +0 -68
  265. package/dist/integration/secure-yaml-runtime.d.ts.map +0 -1
  266. package/dist/integration/secure-yaml-runtime.js +0 -245
  267. package/dist/integration/secure-yaml-runtime.js.map +0 -1
  268. package/dist/parser/secure-yaml-parser.d.ts +0 -62
  269. package/dist/parser/secure-yaml-parser.d.ts.map +0 -1
  270. package/dist/parser/secure-yaml-parser.js +0 -234
  271. package/dist/parser/secure-yaml-parser.js.map +0 -1
  272. package/dist/performance/autoscaling.d.ts +0 -100
  273. package/dist/performance/autoscaling.d.ts.map +0 -1
  274. package/dist/performance/autoscaling.js +0 -339
  275. package/dist/performance/autoscaling.js.map +0 -1
  276. package/dist/performance/benchmark.d.ts +0 -104
  277. package/dist/performance/benchmark.d.ts.map +0 -1
  278. package/dist/performance/benchmark.js +0 -514
  279. package/dist/performance/benchmark.js.map +0 -1
  280. package/dist/performance/index.d.ts +0 -14
  281. package/dist/performance/index.d.ts.map +0 -1
  282. package/dist/performance/index.js +0 -35
  283. package/dist/performance/index.js.map +0 -1
  284. package/dist/performance/monitor.d.ts +0 -126
  285. package/dist/performance/monitor.d.ts.map +0 -1
  286. package/dist/performance/monitor.js +0 -324
  287. package/dist/performance/monitor.js.map +0 -1
  288. package/dist/performance/streaming.d.ts +0 -82
  289. package/dist/performance/streaming.d.ts.map +0 -1
  290. package/dist/performance/streaming.js +0 -287
  291. package/dist/performance/streaming.js.map +0 -1
  292. package/dist/runtime/audit.d.ts +0 -240
  293. package/dist/runtime/audit.d.ts.map +0 -1
  294. package/dist/runtime/audit.js +0 -641
  295. package/dist/runtime/audit.js.map +0 -1
  296. package/dist/runtime/declarativeAgentRuntime.d.ts +0 -92
  297. package/dist/runtime/declarativeAgentRuntime.d.ts.map +0 -1
  298. package/dist/runtime/declarativeAgentRuntime.js +0 -512
  299. package/dist/runtime/declarativeAgentRuntime.js.map +0 -1
  300. package/dist/runtime/index.d.ts +0 -12
  301. package/dist/runtime/index.d.ts.map +0 -1
  302. package/dist/runtime/index.js +0 -33
  303. package/dist/runtime/index.js.map +0 -1
  304. package/dist/runtime/isolatedRuntime.d.ts +0 -119
  305. package/dist/runtime/isolatedRuntime.d.ts.map +0 -1
  306. package/dist/runtime/isolatedRuntime.js +0 -425
  307. package/dist/runtime/isolatedRuntime.js.map +0 -1
  308. package/dist/runtime/schemaCompiler.d.ts +0 -35
  309. package/dist/runtime/schemaCompiler.d.ts.map +0 -1
  310. package/dist/runtime/schemaCompiler.js +0 -152
  311. package/dist/runtime/schemaCompiler.js.map +0 -1
  312. package/dist/runtime/simpleRuntime.d.ts +0 -57
  313. package/dist/runtime/simpleRuntime.d.ts.map +0 -1
  314. package/dist/runtime/simpleRuntime.js +0 -187
  315. package/dist/runtime/simpleRuntime.js.map +0 -1
  316. package/dist/runtime/workflowExecutor.d.ts +0 -30
  317. package/dist/runtime/workflowExecutor.d.ts.map +0 -1
  318. package/dist/runtime/workflowExecutor.js +0 -70
  319. package/dist/runtime/workflowExecutor.js.map +0 -1
  320. package/dist/security/dashboard.d.ts +0 -89
  321. package/dist/security/dashboard.d.ts.map +0 -1
  322. package/dist/security/dashboard.js +0 -300
  323. package/dist/security/dashboard.js.map +0 -1
  324. package/dist/security/hardening.d.ts +0 -130
  325. package/dist/security/hardening.d.ts.map +0 -1
  326. package/dist/security/hardening.js +0 -414
  327. package/dist/security/hardening.js.map +0 -1
  328. package/dist/security/index.d.ts +0 -128
  329. package/dist/security/index.d.ts.map +0 -1
  330. package/dist/security/index.js +0 -353
  331. package/dist/security/index.js.map +0 -1
  332. package/dist/security/monitor.d.ts +0 -88
  333. package/dist/security/monitor.d.ts.map +0 -1
  334. package/dist/security/monitor.js +0 -356
  335. package/dist/security/monitor.js.map +0 -1
  336. package/dist/security/scanner.d.ts +0 -104
  337. package/dist/security/scanner.d.ts.map +0 -1
  338. package/dist/security/scanner.js +0 -298
  339. package/dist/security/scanner.js.map +0 -1
  340. package/dist/security/score.d.ts +0 -150
  341. package/dist/security/score.d.ts.map +0 -1
  342. package/dist/security/score.js +0 -983
  343. package/dist/security/score.js.map +0 -1
  344. package/dist/security/threatDetector.d.ts +0 -39
  345. package/dist/security/threatDetector.d.ts.map +0 -1
  346. package/dist/security/threatDetector.js +0 -354
  347. package/dist/security/threatDetector.js.map +0 -1
  348. package/dist/security/validation.d.ts +0 -69
  349. package/dist/security/validation.d.ts.map +0 -1
  350. package/dist/security/validation.js +0 -286
  351. package/dist/security/validation.js.map +0 -1
  352. package/dist/server/api/clientsRoute.d.ts +0 -9
  353. package/dist/server/api/clientsRoute.d.ts.map +0 -1
  354. package/dist/server/api/clientsRoute.js +0 -71
  355. package/dist/server/api/clientsRoute.js.map +0 -1
  356. package/dist/server/api/endpointsRoute.d.ts +0 -8
  357. package/dist/server/api/endpointsRoute.d.ts.map +0 -1
  358. package/dist/server/api/endpointsRoute.js +0 -76
  359. package/dist/server/api/endpointsRoute.js.map +0 -1
  360. package/dist/server/api/graphql.d.ts +0 -9
  361. package/dist/server/api/graphql.d.ts.map +0 -1
  362. package/dist/server/api/graphql.js +0 -222
  363. package/dist/server/api/graphql.js.map +0 -1
  364. package/dist/server/errors.d.ts +0 -19
  365. package/dist/server/errors.d.ts.map +0 -1
  366. package/dist/server/errors.js +0 -42
  367. package/dist/server/errors.js.map +0 -1
  368. package/dist/server/index.d.ts +0 -7
  369. package/dist/server/index.d.ts.map +0 -1
  370. package/dist/server/index.js +0 -24
  371. package/dist/server/index.js.map +0 -1
  372. package/dist/server/kvStore.d.ts +0 -27
  373. package/dist/server/kvStore.d.ts.map +0 -1
  374. package/dist/server/kvStore.js +0 -128
  375. package/dist/server/kvStore.js.map +0 -1
  376. package/dist/server/runtimeSecurity.d.ts +0 -28
  377. package/dist/server/runtimeSecurity.d.ts.map +0 -1
  378. package/dist/server/runtimeSecurity.js +0 -85
  379. package/dist/server/runtimeSecurity.js.map +0 -1
  380. package/dist/server/types.d.ts +0 -53
  381. package/dist/server/types.d.ts.map +0 -1
  382. package/dist/server/types.js +0 -8
  383. package/dist/server/types.js.map +0 -1
  384. package/dist/shared/index.d.ts +0 -7
  385. package/dist/shared/index.d.ts.map +0 -1
  386. package/dist/shared/index.js +0 -23
  387. package/dist/shared/index.js.map +0 -1
  388. package/dist/shared/types/agent.types.d.ts +0 -50
  389. package/dist/shared/types/agent.types.d.ts.map +0 -1
  390. package/dist/shared/types/agent.types.js +0 -7
  391. package/dist/shared/types/agent.types.js.map +0 -1
  392. package/dist/shared/types/execution.types.d.ts +0 -42
  393. package/dist/shared/types/execution.types.d.ts.map +0 -1
  394. package/dist/shared/types/execution.types.js +0 -7
  395. package/dist/shared/types/execution.types.js.map +0 -1
  396. package/dist/shared/types/index.d.ts +0 -7
  397. package/dist/shared/types/index.d.ts.map +0 -1
  398. package/dist/shared/types/index.js +0 -23
  399. package/dist/shared/types/index.js.map +0 -1
  400. package/dist/shared/types/schema.types.d.ts +0 -52
  401. package/dist/shared/types/schema.types.d.ts.map +0 -1
  402. package/dist/shared/types/schema.types.js +0 -7
  403. package/dist/shared/types/schema.types.js.map +0 -1
  404. package/dist/shared/utils/index.d.ts +0 -5
  405. package/dist/shared/utils/index.d.ts.map +0 -1
  406. package/dist/shared/utils/index.js +0 -21
  407. package/dist/shared/utils/index.js.map +0 -1
  408. package/dist/shared/utils/validation.d.ts +0 -42
  409. package/dist/shared/utils/validation.d.ts.map +0 -1
  410. package/dist/shared/utils/validation.js +0 -93
  411. package/dist/shared/utils/validation.js.map +0 -1
  412. package/dist/tenant/TenantManager.d.ts +0 -152
  413. package/dist/tenant/TenantManager.d.ts.map +0 -1
  414. package/dist/tenant/TenantManager.js +0 -392
  415. package/dist/tenant/TenantManager.js.map +0 -1
  416. package/dist/tenant/index.d.ts +0 -47
  417. package/dist/tenant/index.d.ts.map +0 -1
  418. package/dist/tenant/index.js +0 -74
  419. package/dist/tenant/index.js.map +0 -1
  420. package/dist/tenant/interfaces.d.ts +0 -170
  421. package/dist/tenant/interfaces.d.ts.map +0 -1
  422. package/dist/tenant/interfaces.js +0 -67
  423. package/dist/tenant/interfaces.js.map +0 -1
  424. package/dist/tenant/providerFactory.d.ts +0 -43
  425. package/dist/tenant/providerFactory.d.ts.map +0 -1
  426. package/dist/tenant/providerFactory.js +0 -70
  427. package/dist/tenant/providerFactory.js.map +0 -1
  428. package/dist/tenant/providerRegistry.d.ts +0 -47
  429. package/dist/tenant/providerRegistry.d.ts.map +0 -1
  430. package/dist/tenant/providerRegistry.js +0 -79
  431. package/dist/tenant/providerRegistry.js.map +0 -1
  432. package/dist/tenant/providers/FirebaseTenantProvider.d.ts +0 -41
  433. package/dist/tenant/providers/FirebaseTenantProvider.d.ts.map +0 -1
  434. package/dist/tenant/providers/FirebaseTenantProvider.js +0 -290
  435. package/dist/tenant/providers/FirebaseTenantProvider.js.map +0 -1
  436. package/dist/tenant/providers/InMemoryTenantProvider.d.ts +0 -18
  437. package/dist/tenant/providers/InMemoryTenantProvider.d.ts.map +0 -1
  438. package/dist/tenant/providers/InMemoryTenantProvider.js +0 -137
  439. package/dist/tenant/providers/InMemoryTenantProvider.js.map +0 -1
  440. package/dist/types/executionContext.d.ts +0 -16
  441. package/dist/types/executionContext.d.ts.map +0 -1
  442. package/dist/types/executionContext.js +0 -3
  443. package/dist/types/executionContext.js.map +0 -1
  444. package/src/agents/chat/chat.handler.ts +0 -209
  445. package/src/agents/chat/chat.schema.ts +0 -33
  446. package/src/agents/chat/chat.types.ts +0 -46
  447. package/src/agents/chat/chat.yaml +0 -150
  448. package/src/agents/chat/index.ts +0 -21
  449. package/src/agents/chromadb/chromadb.handler.ts +0 -130
  450. package/src/agents/chromadb/chromadb.schema.ts +0 -35
  451. package/src/agents/chromadb/chromadb.types.ts +0 -52
  452. package/src/agents/chromadb/chromadb.yaml +0 -128
  453. package/src/agents/chromadb/index.ts +0 -20
  454. package/src/agents/gemini-vectorize/gemini-vectorize.handler.ts +0 -72
  455. package/src/agents/gemini-vectorize/gemini-vectorize.schema.ts +0 -22
  456. package/src/agents/gemini-vectorize/gemini-vectorize.types.ts +0 -34
  457. package/src/agents/gemini-vectorize/gemini-vectorize.yaml +0 -84
  458. package/src/agents/gemini-vectorize/index.ts +0 -20
  459. package/src/agents/gitmcp/gitmcp.handler.ts +0 -122
  460. package/src/agents/gitmcp/gitmcp.schema.ts +0 -20
  461. package/src/agents/gitmcp/gitmcp.types.ts +0 -33
  462. package/src/agents/gitmcp/gitmcp.yaml +0 -71
  463. package/src/agents/gitmcp/index.ts +0 -21
  464. package/src/agents/image/image.handler.ts +0 -82
  465. package/src/agents/image/image.schema.ts +0 -28
  466. package/src/agents/image/image.types.ts +0 -45
  467. package/src/agents/image/image.yaml +0 -86
  468. package/src/agents/image/index.ts +0 -19
  469. package/src/agents/index.ts +0 -59
  470. package/src/agents/joker/index.ts +0 -19
  471. package/src/agents/joker/joker.handler.ts +0 -60
  472. package/src/agents/joker/joker.schema.ts +0 -15
  473. package/src/agents/joker/joker.types.ts +0 -37
  474. package/src/agents/joker/joker.yaml +0 -47
  475. package/src/agents/mcp-tool/index.ts +0 -19
  476. package/src/agents/mcp-tool/mcp-tool.handler.ts +0 -112
  477. package/src/agents/mcp-tool/mcp-tool.schema.ts +0 -22
  478. package/src/agents/mcp-tool/mcp-tool.types.ts +0 -33
  479. package/src/agents/mcp-tool/mcp-tool.yaml +0 -71
  480. package/src/agents/rag/index.ts +0 -20
  481. package/src/agents/rag/rag.handler.ts +0 -119
  482. package/src/agents/rag/rag.schema.ts +0 -26
  483. package/src/agents/rag/rag.types.ts +0 -51
  484. package/src/agents/rag/rag.yaml +0 -89
  485. package/src/agents/registry/agentRegistry.ts +0 -598
  486. package/src/agents/registry/index.ts +0 -6
  487. package/src/agents/translator/index.ts +0 -19
  488. package/src/agents/translator/translator.handler.ts +0 -99
  489. package/src/agents/translator/translator.schema.ts +0 -30
  490. package/src/agents/translator/translator.types.ts +0 -42
  491. package/src/agents/translator/translator.yaml +0 -80
  492. package/src/audit/auditTrail.ts +0 -134
  493. package/src/client/index.ts +0 -53
  494. package/src/client/types.ts +0 -38
  495. package/src/compliance/gdprEngine.ts +0 -209
  496. package/src/compliance/lgpdEngine.ts +0 -268
  497. package/src/config.ts +0 -179
  498. package/src/errors.ts +0 -35
  499. package/src/integration/secure-yaml-runtime.ts +0 -341
  500. package/src/parser/secure-yaml-parser.ts +0 -273
  501. package/src/performance/autoscaling.ts +0 -495
  502. package/src/performance/benchmark.ts +0 -644
  503. package/src/performance/index.ts +0 -34
  504. package/src/performance/monitor.ts +0 -469
  505. package/src/performance/streaming.ts +0 -317
  506. package/src/runtime/audit.ts +0 -907
  507. package/src/runtime/declarativeAgentRuntime.ts +0 -772
  508. package/src/runtime/index.ts +0 -31
  509. package/src/runtime/isolatedRuntime.ts +0 -572
  510. package/src/runtime/schemaCompiler.ts +0 -228
  511. package/src/runtime/simpleRuntime.ts +0 -201
  512. package/src/runtime/workflowExecutor.ts +0 -94
  513. package/src/security/dashboard.ts +0 -462
  514. package/src/security/hardening.ts +0 -560
  515. package/src/security/index.ts +0 -439
  516. package/src/security/monitor.ts +0 -490
  517. package/src/security/scanner.ts +0 -368
  518. package/src/security/score.ts +0 -1138
  519. package/src/security/threatDetector.ts +0 -481
  520. package/src/security/validation.ts +0 -365
  521. package/src/server/api/clientsRoute.ts +0 -92
  522. package/src/server/api/endpointsRoute.ts +0 -97
  523. package/src/server/api/graphql.ts +0 -284
  524. package/src/server/errors.ts +0 -38
  525. package/src/server/index.ts +0 -6
  526. package/src/server/kvStore.ts +0 -152
  527. package/src/server/runtimeSecurity.ts +0 -102
  528. package/src/server/types.ts +0 -60
  529. package/src/shared/index.ts +0 -7
  530. package/src/shared/types/agent.types.ts +0 -80
  531. package/src/shared/types/execution.types.ts +0 -45
  532. package/src/shared/types/index.ts +0 -7
  533. package/src/shared/types/schema.types.ts +0 -55
  534. package/src/shared/utils/index.ts +0 -5
  535. package/src/shared/utils/validation.ts +0 -100
  536. package/src/tenant/TenantManager.ts +0 -488
  537. package/src/tenant/index.ts +0 -101
  538. package/src/tenant/interfaces.ts +0 -231
  539. package/src/tenant/providerFactory.ts +0 -75
  540. package/src/tenant/providerRegistry.ts +0 -86
  541. package/src/tenant/providers/InMemoryTenantProvider.ts +0 -168
  542. package/src/types/executionContext.ts +0 -16
@@ -1,490 +0,0 @@
1
- import { EventEmitter } from "events";
2
- import { AuditTrail } from "../audit/auditTrail";
3
- import { runtimeConfig } from "../config";
4
-
5
- export interface SecurityEvent {
6
- id: string;
7
- tenantId: string;
8
- operation: string;
9
- metadata: any;
10
- timestamp: Date;
11
- riskScore: number;
12
- alertLevel: AlertLevel;
13
- }
14
-
15
- export enum AlertLevel {
16
- INFO = "info",
17
- WARNING = "warning",
18
- CRITICAL = "critical",
19
- EMERGENCY = "emergency",
20
- }
21
-
22
- export interface ThreatAnalysis {
23
- riskScore: number;
24
- threatType: string;
25
- confidence: number;
26
- recommendations: string[];
27
- }
28
-
29
- export class SecurityMonitor extends EventEmitter {
30
- private static instance: SecurityMonitor;
31
- private threatDetector: ThreatDetectionEngine;
32
- private alertManager: AlertManager;
33
- private metricsCollector: MetricsCollector;
34
- private isMonitoring: boolean = false;
35
- private auditTrail: AuditTrail;
36
- private securityConfig: any;
37
-
38
- constructor() {
39
- super();
40
- this.threatDetector = new ThreatDetectionEngine();
41
- this.alertManager = new AlertManager();
42
- this.metricsCollector = new MetricsCollector();
43
- this.auditTrail = new AuditTrail();
44
- this.securityConfig = {
45
- alertThreshold: runtimeConfig.securityScore >= 9.5 ? 0.7 : 0.6,
46
- };
47
- }
48
-
49
- static getInstance(): SecurityMonitor {
50
- if (!SecurityMonitor.instance) {
51
- SecurityMonitor.instance = new SecurityMonitor();
52
- }
53
- return SecurityMonitor.instance;
54
- }
55
-
56
- public startMonitoring(): void {
57
- if (this.isMonitoring) {
58
- return;
59
- }
60
-
61
- this.isMonitoring = true;
62
- this.emit("monitoringStarted", { timestamp: new Date() });
63
- this.logEvent("system", "monitoring_started", { version: "2025.1.0" });
64
- }
65
-
66
- public stopMonitoring(): void {
67
- if (!this.isMonitoring) {
68
- return;
69
- }
70
-
71
- this.isMonitoring = false;
72
- this.emit("monitoringStopped", { timestamp: new Date() });
73
- this.logEvent("system", "monitoring_stopped", { reason: "manual" });
74
- }
75
-
76
- public isMonitoringActive(): boolean {
77
- return this.isMonitoring;
78
- }
79
-
80
- public async monitorActivity(
81
- tenantId: string,
82
- operation: string,
83
- metadata: any
84
- ): Promise<SecurityEvent> {
85
- if (!this.isMonitoring) {
86
- throw new Error("Security monitoring is not active");
87
- }
88
-
89
- const eventId = this.generateEventId();
90
- const timestamp = new Date();
91
-
92
- // Perform threat analysis
93
- const threatAnalysis = await this.threatDetector.analyze(
94
- tenantId,
95
- operation,
96
- metadata
97
- );
98
-
99
- const securityEvent: SecurityEvent = {
100
- id: eventId,
101
- tenantId,
102
- operation,
103
- metadata,
104
- timestamp,
105
- riskScore: threatAnalysis.riskScore,
106
- alertLevel: this.determineAlertLevel(threatAnalysis.riskScore),
107
- };
108
-
109
- // Log to audit trail
110
- await this.logSecurityEvent(securityEvent);
111
-
112
- // Check if alert needs to be triggered
113
- if (securityEvent.riskScore > this.securityConfig.alertThreshold) {
114
- await this.triggerSecurityAlert(securityEvent);
115
- }
116
-
117
- // Emit event for real-time dashboards
118
- this.emit("securityEvent", securityEvent);
119
- this.metricsCollector.recordEvent(securityEvent);
120
-
121
- return securityEvent;
122
- }
123
-
124
- private generateEventId(): string {
125
- return `sec-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
126
- }
127
-
128
- private determineAlertLevel(riskScore: number): AlertLevel {
129
- if (riskScore >= 0.9) return AlertLevel.EMERGENCY;
130
- if (riskScore >= 0.7) return AlertLevel.CRITICAL;
131
- if (riskScore >= 0.4) return AlertLevel.WARNING;
132
- return AlertLevel.INFO;
133
- }
134
-
135
- private async logSecurityEvent(event: SecurityEvent): Promise<void> {
136
- await this.auditTrail.logOperation({
137
- operationId: event.id,
138
- tenantId: event.tenantId,
139
- operation: `security_${event.operation}`,
140
- data: {
141
- metadata: event.metadata,
142
- riskScore: event.riskScore,
143
- alertLevel: event.alertLevel,
144
- },
145
- timestamp: event.timestamp,
146
- success: true,
147
- });
148
- }
149
-
150
- private async triggerSecurityAlert(event: SecurityEvent): Promise<void> {
151
- await this.alertManager.sendAlert(event);
152
- this.emit("securityAlert", event);
153
- }
154
-
155
- public async logEvent(
156
- tenantId: string,
157
- operation: string,
158
- metadata: any,
159
- riskScore: number = 0.1
160
- ): Promise<SecurityEvent> {
161
- return this.monitorActivity(tenantId, operation, metadata);
162
- }
163
-
164
- public getMetrics() {
165
- return this.metricsCollector.getMetrics();
166
- }
167
-
168
- public getThreatStatistics() {
169
- return this.threatDetector.getStatistics();
170
- }
171
- }
172
-
173
- // Supporting Classes
174
-
175
- export class ThreatDetectionEngine {
176
- private patterns: Map<string, RegExp> = new Map();
177
- private anomalyDetector: AnomalyDetector;
178
- private mlModel: ThreatMLModel;
179
-
180
- constructor() {
181
- this.initializePatterns();
182
- this.anomalyDetector = new AnomalyDetector();
183
- this.mlModel = new ThreatMLModel();
184
- }
185
-
186
- private initializePatterns(): void {
187
- this.patterns.set(
188
- "brute_force",
189
- /multiple_failed_attempts|rapid_login_sequence/i
190
- );
191
- this.patterns.set(
192
- "sql_injection",
193
- /union.*select|drop.*table|exec.*\(.*\)/i
194
- );
195
- this.patterns.set(
196
- "data_exfiltration",
197
- /bulk.*export|mass.*download|unusual.*access/i
198
- );
199
- this.patterns.set(
200
- "cross_tenant",
201
- /cross.*tenant|tenant.*injection|unauthorized.*access/i
202
- );
203
- this.patterns.set(
204
- "lgpd_violation",
205
- /unauthorized.*data|consent.*violation|retention.*breach/i
206
- );
207
- }
208
-
209
- public async analyze(
210
- tenantId: string,
211
- operation: string,
212
- metadata: any
213
- ): Promise<ThreatAnalysis> {
214
- let riskScore = 0.1; // Base risk
215
- let threatType = "low_risk";
216
- let confidence = 0.9;
217
-
218
- // Pattern matching
219
- for (const [patternName, pattern] of this.patterns) {
220
- if (pattern.test(operation) || pattern.test(JSON.stringify(metadata))) {
221
- riskScore += patternName === "emergency" ? 0.8 : 0.4;
222
- threatType = patternName;
223
- break;
224
- }
225
- }
226
-
227
- // Anomaly detection
228
- const anomalyScore = await this.anomalyDetector.detectAnomaly(
229
- tenantId,
230
- operation,
231
- metadata
232
- );
233
- riskScore += anomalyScore * 0.3;
234
-
235
- // ML model prediction
236
- const mlScore = await this.mlModel.predict(tenantId, operation, metadata);
237
- riskScore += mlScore * 0.2;
238
-
239
- // Cap risk score at 1.0
240
- riskScore = Math.min(riskScore, 1.0);
241
-
242
- const recommendations = this.generateRecommendations(riskScore, threatType);
243
-
244
- return {
245
- riskScore,
246
- threatType,
247
- confidence,
248
- recommendations,
249
- };
250
- }
251
-
252
- private generateRecommendations(
253
- riskScore: number,
254
- threatType: string
255
- ): string[] {
256
- const recommendations: string[] = [];
257
-
258
- if (riskScore > 0.7) {
259
- recommendations.push("Immediate investigation required");
260
- recommendations.push("Consider tenant isolation");
261
- recommendations.push("Notify security team");
262
- } else if (riskScore > 0.4) {
263
- recommendations.push("Monitor closely");
264
- recommendations.push("Check access logs");
265
- recommendations.push("Review permissions");
266
- } else {
267
- recommendations.push("Routine monitoring");
268
- recommendations.push("Document pattern");
269
- }
270
-
271
- return recommendations;
272
- }
273
-
274
- public getStatistics() {
275
- return {
276
- patternsLoaded: this.patterns.size,
277
- lastUpdate: new Date().toISOString(),
278
- mlModelVersion: "2025.1.0",
279
- };
280
- }
281
- }
282
-
283
- export class AnomalyDetector {
284
- private normalPatterns: Map<string, any[]> = new Map();
285
- private anomalyThreshold: number = 2.5;
286
-
287
- public async detectAnomaly(
288
- tenantId: string,
289
- operation: string,
290
- metadata: any
291
- ): Promise<number> {
292
- const key = `${tenantId}:${operation}`;
293
- const currentTime = new Date().getTime();
294
-
295
- if (!this.normalPatterns.has(key)) {
296
- this.normalPatterns.set(key, []);
297
- }
298
-
299
- const patterns = this.normalPatterns.get(key)!;
300
-
301
- // Simple time-based anomaly detection
302
- if (patterns.length > 10) {
303
- const timeInterval =
304
- currentTime - patterns[patterns.length - 1].timestamp;
305
-
306
- // Check if current operation is happening too frequently
307
- if (timeInterval < 1000) {
308
- // Less than 1 second
309
- return 0.6; // High anomaly score
310
- }
311
-
312
- // Check for unusual velocity
313
- const intervals = [];
314
- for (let i = 1; i < patterns.length; i++) {
315
- intervals.push(patterns[i].timestamp - patterns[i - 1].timestamp);
316
- }
317
-
318
- const avgInterval =
319
- intervals.reduce((a, b) => a + b, 0) / intervals.length;
320
- const currentDeviation =
321
- Math.abs(timeInterval - avgInterval) / avgInterval;
322
-
323
- if (currentDeviation > this.anomalyThreshold) {
324
- return 0.4;
325
- }
326
- }
327
-
328
- // Store current pattern
329
- patterns.push({
330
- timestamp: currentTime,
331
- metadata: metadata,
332
- });
333
-
334
- // Keep only recent patterns (last 24 hours)
335
- const cutoff = currentTime - 24 * 60 * 60 * 1000;
336
- this.normalPatterns.set(
337
- key,
338
- patterns.filter((p) => p.timestamp > cutoff)
339
- );
340
-
341
- return 0.0; // Normal behavior
342
- }
343
- }
344
-
345
- export class ThreatMLModel {
346
- private modelWeights: Map<string, number> = new Map();
347
-
348
- constructor() {
349
- this.initializeModel();
350
- }
351
-
352
- private initializeModel(): void {
353
- // Simplified ML model weights
354
- this.modelWeights.set("tenant_historical_access", 0.3);
355
- this.modelWeights.set("operation_frequency", 0.4);
356
- this.modelWeights.set("metadata_complexity", 0.2);
357
- this.modelWeights.set("time_based_anomaly", 0.1);
358
- }
359
-
360
- public async predict(
361
- tenantId: string,
362
- operation: string,
363
- metadata: any
364
- ): Promise<number> {
365
- // Simplified ML prediction
366
- let score = 0.0;
367
-
368
- // Higher risk for operations outside business hours
369
- const hour = new Date().getHours();
370
- if (hour < 6 || hour > 22) {
371
- score += 0.3;
372
- }
373
-
374
- // Higher risk for complex metadata
375
- if (JSON.stringify(metadata).length > 1000) {
376
- score += 0.2;
377
- }
378
-
379
- // Higher risk for bulk operations
380
- if (operation.includes("bulk") || operation.includes("mass")) {
381
- score += 0.4;
382
- }
383
-
384
- // Higher risk for cross-tenant operations
385
- if (operation.includes("cross") || operation.includes("tenant")) {
386
- score += 0.5;
387
- }
388
-
389
- return Math.min(score, 0.8);
390
- }
391
- }
392
-
393
- export class AlertManager {
394
- private alertHistory: Map<string, SecurityEvent[]> = new Map();
395
- private readonly MAX_ALERTS_PER_TENANT = 100;
396
-
397
- public async sendAlert(event: SecurityEvent): Promise<void> {
398
- const key = event.tenantId;
399
-
400
- if (!this.alertHistory.has(key)) {
401
- this.alertHistory.set(key, []);
402
- }
403
-
404
- const alerts = this.alertHistory.get(key)!;
405
- alerts.push(event);
406
-
407
- // Keep only recent alerts
408
- if (alerts.length > this.MAX_ALERTS_PER_TENANT) {
409
- alerts.shift();
410
- }
411
-
412
- // Log the alert
413
- console.warn(
414
- `[SECURITY_ALERT] Tenant: ${event.tenantId}, Risk: ${event.riskScore}, Operation: ${event.operation}`
415
- );
416
- }
417
-
418
- public getAlertHistory(tenantId: string): SecurityEvent[] {
419
- return this.alertHistory.get(tenantId) || [];
420
- }
421
-
422
- public getAlertSummary(): Record<string, any> {
423
- const summary: Record<string, any> = {};
424
- for (const [tenantId, alerts] of this.alertHistory) {
425
- summary[tenantId] = {
426
- totalAlerts: alerts.length,
427
- criticalAlerts: alerts.filter((a) => a.riskScore > 0.7).length,
428
- lastAlert: alerts[alerts.length - 1]?.timestamp,
429
- };
430
- }
431
- return summary;
432
- }
433
- }
434
-
435
- export class MetricsCollector {
436
- private metrics: any = {
437
- totalEvents: 0,
438
- totalAlerts: 0,
439
- alertsByLevel: {
440
- info: 0,
441
- warning: 0,
442
- critical: 0,
443
- emergency: 0,
444
- },
445
- averageRiskScore: 0,
446
- lastUpdate: null,
447
- };
448
-
449
- public recordEvent(event: SecurityEvent): void {
450
- this.metrics.totalEvents++;
451
- this.metrics.totalAlerts += event.riskScore > 0.7 ? 1 : 0;
452
- this.metrics.alertsByLevel[event.alertLevel]++;
453
-
454
- // Update average risk score
455
- this.metrics.averageRiskScore =
456
- (this.metrics.averageRiskScore * (this.metrics.totalEvents - 1) +
457
- event.riskScore) /
458
- this.metrics.totalEvents;
459
-
460
- this.metrics.lastUpdate = new Date().toISOString();
461
- }
462
-
463
- public getMetrics(): any {
464
- return {
465
- ...this.metrics,
466
- alertRate:
467
- this.metrics.totalEvents > 0
468
- ? this.metrics.totalAlerts / this.metrics.totalEvents
469
- : 0,
470
- };
471
- }
472
-
473
- public resetMetrics(): void {
474
- this.metrics = {
475
- totalEvents: 0,
476
- totalAlerts: 0,
477
- alertsByLevel: {
478
- info: 0,
479
- warning: 0,
480
- critical: 0,
481
- emergency: 0,
482
- },
483
- averageRiskScore: 0,
484
- lastUpdate: null,
485
- };
486
- }
487
- }
488
-
489
- // Export singleton instance
490
- export const securityMonitor = SecurityMonitor.getInstance();