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,560 +0,0 @@
1
- /**
2
- * Security hardening utilities for YAML parsing
3
- */
4
-
5
- export interface SecurityHardeningOptions {
6
- maxCircularReferences: number;
7
- validateStructureIntegrity: boolean;
8
- enableContentInspection: boolean;
9
- logSecurityEvents: boolean;
10
- maxNestingDepth: number;
11
- enableCircularReferenceDetection: boolean;
12
- detectAndBlock: boolean;
13
- sanitizeOnFailure: boolean;
14
- validationPolicy: 'strict' | 'moderate' | 'lenient';
15
- }
16
-
17
- export interface SecurityEvent {
18
- timestamp: number;
19
- type: SecurityEventType;
20
- path: string;
21
- severity: 'low' | 'medium' | 'high' | 'critical';
22
- message: string;
23
- details?: any;
24
- }
25
-
26
- export type SecurityEventType =
27
- | 'circular_reference'
28
- | 'deep_nesting'
29
- | 'oversized_object'
30
- | 'potential_injection'
31
- | 'invalid_structure'
32
- | 'content_inspection_warning'
33
- | 'schema_violation';
34
-
35
- export interface StructureStats {
36
- maxDepth: number;
37
- totalKeys: number;
38
- circularReferences: number;
39
- uniqueObjects: number;
40
- totalSize: number;
41
- deepestPath: string;
42
- }
43
-
44
- export interface ContentIssue {
45
- path: string;
46
- type: string;
47
- severity: 'low' | 'medium' | 'high';
48
- description: string;
49
- pattern: string;
50
- }
51
-
52
- export interface SecurityHardeningStats {
53
- totalEvents: number;
54
- recentEvents: number;
55
- passes: number;
56
- fails: number;
57
- warnings: number;
58
- securityScore: number;
59
- eventsByType: Record<string, number>;
60
- recentAlerts: SecurityEvent[];
61
- }
62
-
63
- const DEFAULT_HARDENING_OPTIONS: SecurityHardeningOptions = {
64
- maxCircularReferences: 0,
65
- validateStructureIntegrity: true,
66
- enableContentInspection: true,
67
- logSecurityEvents: true,
68
- maxNestingDepth: 1000,
69
- enableCircularReferenceDetection: true,
70
- detectAndBlock: true,
71
- sanitizeOnFailure: true,
72
- validationPolicy: 'moderate'
73
- };
74
-
75
- export class SecurityHardening {
76
- private readonly options: SecurityHardeningOptions;
77
- private events: SecurityEvent[] = [];
78
- private passes = 0;
79
- private fails = 0;
80
- private warnings = 0;
81
-
82
- constructor(options: Partial<SecurityHardeningOptions> = {}) {
83
- this.options = { ...DEFAULT_HARDENING_OPTIONS, ...options };
84
- }
85
-
86
- /**
87
- * Executa hardening completo em um objeto
88
- */
89
- public harden(obj: any): {
90
- result: any;
91
- secure: boolean;
92
- stats: SecurityHardeningStats;
93
- } {
94
- this.resetStatistics();
95
-
96
- let result = obj;
97
- let secure = true;
98
-
99
- // 1. Detecção de referências circulares
100
- if (this.options.enableCircularReferenceDetection) {
101
- try {
102
- this.detectCircularReferences(result);
103
- } catch (error) {
104
- const errorMessage = error instanceof Error ? error.message : String(error);
105
- if (this.options.detectAndBlock) {
106
- throw new Error(`Referência circular detectada: ${errorMessage}`);
107
- }
108
- this.fails++;
109
- secure = false;
110
- if (this.options.logSecurityEvents) {
111
- this.addSecurityEvent(
112
- 'circular_reference',
113
- 'root',
114
- 'high',
115
- errorMessage
116
- );
117
- }
118
- if (this.options.sanitizeOnFailure) {
119
- result = this.sanitizeObject(result);
120
- }
121
- }
122
- }
123
-
124
- // 2. Validação de integridade estrutural
125
- if (this.options.validateStructureIntegrity) {
126
- try {
127
- this.validateObjectStructure(result);
128
- this.passes++;
129
- } catch (error) {
130
- this.fails++;
131
- secure = false;
132
- if (this.options.logSecurityEvents) {
133
- const errorMessage = error instanceof Error ? error.message : String(error);
134
- this.addSecurityEvent(
135
- 'invalid_structure',
136
- 'root',
137
- 'medium',
138
- errorMessage
139
- );
140
- }
141
- }
142
- }
143
-
144
- // 3. Inspeção de conteúdo
145
- if (this.options.enableContentInspection) {
146
- const contentResult = this.inspectContent(result);
147
- if (contentResult.warnings > 0) {
148
- this.warnings += contentResult.warnings;
149
- if (this.options.logSecurityEvents) {
150
- contentResult.issues.forEach((issue: ContentIssue) => {
151
- this.addSecurityEvent(
152
- 'content_inspection_warning',
153
- issue.path,
154
- this.mapSeverity(issue.severity),
155
- `${issue.type} detectado`
156
- );
157
- });
158
- }
159
- }
160
- }
161
-
162
- return {
163
- result,
164
- secure,
165
- stats: this.getStatistics()
166
- };
167
- }
168
-
169
- /**
170
- * Detecta referências circulares no objeto
171
- */
172
- public detectCircularReferences(obj: any, visited = new WeakSet(), path = 'root'): void {
173
- if (typeof obj !== 'object' || obj === null) {
174
- return;
175
- }
176
-
177
- if (visited.has(obj)) {
178
- throw new Error(`Referência circular detectada em ${path}`);
179
- }
180
-
181
- // Verifica limite de profundidade
182
- const depth = path.split('.').length;
183
- if (depth > this.options.maxNestingDepth) {
184
- this.addSecurityEvent(
185
- 'deep_nesting',
186
- path,
187
- 'medium',
188
- `Profundidade máxima de ${this.options.maxNestingDepth} excedida`
189
- );
190
- }
191
-
192
- visited.add(obj);
193
-
194
- try {
195
- for (const [key, value] of Object.entries(obj)) {
196
- if (typeof value === 'object' && value !== null) {
197
- // Simplificar para evitar problemas com WeakSet
198
- this.detectCircularReferences(value, new WeakSet(), `${path}.${key}`);
199
- }
200
- }
201
- } finally {
202
- visited.delete(obj);
203
- }
204
- }
205
-
206
- /**
207
- * Valida a integridade estrutural do objeto
208
- */
209
- public validateObjectStructure(obj: any): boolean {
210
- if (typeof obj !== 'object' || obj === null) {
211
- return true;
212
- }
213
-
214
- return this.isValidStructure(obj, '', 0);
215
- }
216
-
217
- private isValidStructure(obj: any, path: string, depth: number): boolean {
218
- // Verifica limite de profundidade
219
- if (depth > this.options.maxNestingDepth) {
220
- this.addSecurityEvent(
221
- 'deep_nesting',
222
- path,
223
- 'medium',
224
- `Profundidade máxima de ${this.options.maxNestingDepth} atingida`
225
- );
226
- return false;
227
- }
228
-
229
- // Verifica tipos válidos
230
- if (!this.isAllowedType(obj)) {
231
- this.addSecurityEvent(
232
- 'invalid_structure',
233
- path,
234
- 'medium',
235
- `Tipo inválido ${typeof obj} detectado no caminho ${path}`
236
- );
237
- return false;
238
- }
239
-
240
- // Valida objetos aninhados
241
- if (typeof obj === 'object' && obj !== null) {
242
- if (Array.isArray(obj)) {
243
- for (let i = 0; i < obj.length; i++) {
244
- if (!this.isValidStructure(obj[i], `${path}[${i}]`, depth + 1)) {
245
- return false;
246
- }
247
- }
248
- } else {
249
- for (const [key, value] of Object.entries(obj)) {
250
- const keyPath = path ? `${path}.${key}` : key;
251
- if (!this.isValidStructure(value, keyPath, depth + 1)) {
252
- return false;
253
- }
254
- }
255
- }
256
- }
257
-
258
- return true;
259
- }
260
-
261
- /**
262
- * Verifica se um tipo é permitido
263
- */
264
- private isAllowedType(obj: any): boolean {
265
- const type = typeof obj;
266
-
267
- if (obj === null) return true;
268
- if (type === 'boolean') return true;
269
- if (type === 'number') return true;
270
- if (type === 'string') return true;
271
- if (Array.isArray(obj)) return true;
272
-
273
- return false;
274
- }
275
-
276
- /**
277
- * Inspeciona o conteúdo para padrões perigosos
278
- */
279
- public inspectContent(obj: any): {
280
- issues: ContentIssue[];
281
- warnings: number;
282
- } {
283
- const issues: ContentIssue[] = [];
284
- let warnings = 0;
285
-
286
- const deepInspect = (current: any, path: string = 'root') => {
287
- if (typeof current === 'string') {
288
- // Padrões de vulnerabilidade
289
- const vulnerabilityPatterns = [
290
- {
291
- pattern: /<script[^>]*>/i,
292
- type: 'XSS',
293
- severity: 'high' as const,
294
- description: 'Possível tentativa de XSS via script tag'
295
- },
296
- {
297
- pattern: /javascript:/i,
298
- type: 'URL_INJECTION',
299
- severity: 'high' as const,
300
- description: 'Possível inject javascript: URL'
301
- },
302
- {
303
- pattern: /\$\{.*\}/,
304
- type: 'TEMPLATE_INJECTION',
305
- severity: 'medium' as const,
306
- description: 'Possível template string injection'
307
- },
308
- {
309
- pattern: /on\w+\s*=/i,
310
- type: 'EVENT_HANDLER',
311
- severity: 'medium' as const,
312
- description: 'Possível event handler injection'
313
- },
314
- {
315
- pattern: /eval\s*\(/i,
316
- type: 'CODE_EXECUTION',
317
- severity: 'high' as const,
318
- description: 'Possível code execution via eval'
319
- },
320
- {
321
- pattern: /(password|api_key|secret|token)\s*[:=]\s*["']?[\w\-]+["']?/i,
322
- type: 'CREDENTIAL_LEAK',
323
- severity: 'medium' as const,
324
- description: 'Possível exposição de credenciais'
325
- }
326
- ];
327
-
328
- for (const rule of vulnerabilityPatterns) {
329
- if (rule.pattern.test(current)) {
330
- issues.push({
331
- path,
332
- type: rule.type,
333
- severity: rule.severity,
334
- description: rule.description,
335
- pattern: rule.pattern.source
336
- });
337
- warnings++;
338
- }
339
- }
340
- }
341
-
342
- // Recursivamente inspeciona objetos aninhados
343
- if (typeof current === 'object' && current !== null) {
344
- if (Array.isArray(current)) {
345
- current.forEach((item, index) => {
346
- deepInspect(item, `${path}[${index}]`);
347
- });
348
- } else {
349
- for (const [key, value] of Object.entries(current)) {
350
- deepInspect(value, `${path}.${key}`);
351
- }
352
- }
353
- }
354
- };
355
-
356
- deepInspect(obj);
357
- return { issues, warnings };
358
- }
359
-
360
- /**
361
- * Sanitiza um objeto remover conteúdo potencialmente perigoso
362
- */
363
- public sanitizeObject(obj: any): any {
364
- if (typeof obj !== 'object' || obj === null) {
365
- return obj;
366
- }
367
-
368
- const visited = new WeakSet();
369
-
370
- const sanitize = (current: any): any => {
371
- if (typeof current !== 'object' || current === null) {
372
- return this.sanitizeString(typeof current === 'string' ? current : '');
373
- }
374
-
375
- if (visited.has(current)) {
376
- throw new Error('Referência circular detectada durante a sanitização');
377
- }
378
-
379
- visited.add(current);
380
-
381
- // Sanitização baseada em tipo
382
- if (Array.isArray(current)) {
383
- const sanitized: any[] = [];
384
- for (const item of current) {
385
- const sanitizedItem = sanitize(item);
386
- if (sanitizedItem !== undefined) {
387
- sanitized.push(sanitizedItem);
388
- }
389
- }
390
- visited.delete(current);
391
- return sanitized;
392
- }
393
-
394
- const sanitized: Record<string, any> = {};
395
- for (const [key, value] of Object.entries(current)) {
396
- const sanitizedKey = this.sanitizeString(key);
397
- const sanitizedValue = sanitize(value);
398
-
399
- if (sanitizedValue !== undefined) {
400
- sanitized[sanitizedKey] = sanitizedValue;
401
- }
402
- }
403
-
404
- visited.delete(current);
405
- return sanitized;
406
- };
407
-
408
- return sanitize(obj);
409
- }
410
-
411
- /**
412
- * Sanitiza strings removendo conteúdo perigoso
413
- */
414
- private sanitizeString(str: string): string {
415
- if (!str || typeof str !== 'string') {
416
- return '';
417
- }
418
-
419
- // Remove scripts e conteúdo HTML/JavaScript
420
- let sanitized = str
421
- .replace(/<script[^>]*>.*?<\/script>/gi, '')
422
- .replace(/javascript:/gi, '')
423
- .replace(/on\w+\s*=/gi, '')
424
- .replace(/eval\s*\(/gi, '')
425
- .replace(/expression\s*\(/gi, '');
426
-
427
- // Limita tamanho da string
428
- return sanitized.length > 100000 ? sanitized.substring(0, 100000) + '[truncated]' : sanitized;
429
- }
430
-
431
- /**
432
- * Adiciona um evento de segurança
433
- */
434
- private addSecurityEvent(
435
- type: SecurityEventType,
436
- path: string,
437
- severity: 'low' | 'medium' | 'high' | 'critical',
438
- message: string,
439
- details?: any
440
- ): void {
441
- this.events.push({
442
- timestamp: Date.now(),
443
- type,
444
- path,
445
- severity,
446
- message,
447
- details
448
- });
449
-
450
- // Limita número de eventos para evitar vazamento de memória
451
- if (this.events.length > 1000) {
452
- this.events = this.events.slice(-500);
453
- }
454
- }
455
-
456
- /**
457
- * Obtém estatísticas do hardening
458
- */
459
- public getStatistics(): SecurityHardeningStats {
460
- const now = Date.now();
461
- const recentEvents = this.events.filter(e => now - e.timestamp < 30000); // Últimos 30 segundos
462
-
463
- return {
464
- totalEvents: this.events.length,
465
- recentEvents: recentEvents.length,
466
- passes: this.passes,
467
- fails: this.fails,
468
- warnings: this.warnings,
469
- securityScore: this.calculateSecurityScore(),
470
- eventsByType: this.groupEventsByType(),
471
- recentAlerts: this.getRecentAlerts()
472
- };
473
- }
474
-
475
- /**
476
- * Calcula o score de segurança (0-100)
477
- */
478
- private calculateSecurityScore(): number {
479
- if (this.events.length === 0) {
480
- return 100;
481
- }
482
-
483
- const total = this.passes + this.fails;
484
- if (total === 0) {
485
- return 50; // Nenhum teste executado
486
- }
487
-
488
- const successRate = this.passes / total;
489
- const penalty = this.warnings * 0.5; // Penaliza por warnings
490
-
491
- return Math.max(0, Math.min(100, (successRate * 100) - penalty));
492
- }
493
-
494
- /**
495
- * Agrupa eventos por tipo
496
- */
497
- private groupEventsByType(): Record<string, number> {
498
- const counts: Record<string, number> = {};
499
- this.events.forEach(event => {
500
- counts[event.type] = (counts[event.type] || 0) + 1;
501
- });
502
- return counts;
503
- }
504
-
505
- /**
506
- * Obtém alertas recentes
507
- */
508
- private getRecentAlerts(): SecurityEvent[] {
509
- const now = Date.now();
510
- return this.events
511
- .filter(e =>
512
- now - e.timestamp < 60000 && // Último minuto
513
- (e.severity === 'high' || e.severity === 'critical')
514
- )
515
- .slice(-10); // Últimos 10 alertas
516
- }
517
-
518
- /**
519
- * Mapeia severidade para uso de eventos
520
- */
521
- private mapSeverity(severity: string): 'low' | 'medium' | 'high' {
522
- if (severity === 'high' || severity === 'critical') return 'high';
523
- if (severity === 'medium') return 'medium';
524
- return 'low';
525
- }
526
-
527
- /**
528
- * Reinicia as estatísticas
529
- */
530
- private resetStatistics(): void {
531
- this.passes = 0;
532
- this.fails = 0;
533
- this.warnings = 0;
534
- }
535
-
536
- /**
537
- * Executa limpeza e validação final
538
- */
539
- public cleanup(): void {
540
- // Remove eventos antigos (máx 24 horas)
541
- const cutoff = Date.now() - (24 * 60 * 60 * 1000);
542
- this.events = this.events.filter(e => e.timestamp > cutoff);
543
-
544
- // Limita número de eventos
545
- if (this.events.length > 10000) {
546
- this.events = this.events.slice(-5000);
547
- }
548
- }
549
- }
550
-
551
- /**
552
- * Função auxiliar para criar instância de hardening
553
- */
554
- function createSecurityHardening(
555
- options: Partial<SecurityHardeningOptions> = {}
556
- ): SecurityHardening {
557
- return new SecurityHardening(options);
558
- }
559
-
560
- export { createSecurityHardening };