@agentlensai/server 0.11.0 → 0.13.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 (633) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cloud/auth/rbac.d.ts +1 -1
  3. package/dist/cloud/auth/rbac.d.ts.map +1 -1
  4. package/dist/cloud/auth/rbac.js +2 -2
  5. package/dist/cloud/auth/rbac.js.map +1 -1
  6. package/dist/cloud/billing/stripe-client.d.ts.map +1 -1
  7. package/dist/cloud/billing/stripe-client.js +6 -1
  8. package/dist/cloud/billing/stripe-client.js.map +1 -1
  9. package/dist/cloud/ingestion/gateway.d.ts.map +1 -1
  10. package/dist/cloud/ingestion/gateway.js +0 -1
  11. package/dist/cloud/ingestion/gateway.js.map +1 -1
  12. package/dist/cloud/middleware/validate-org-access.d.ts +14 -0
  13. package/dist/cloud/middleware/validate-org-access.d.ts.map +1 -0
  14. package/dist/cloud/middleware/validate-org-access.js +38 -0
  15. package/dist/cloud/middleware/validate-org-access.js.map +1 -0
  16. package/dist/cloud/routes/index.d.ts +13 -0
  17. package/dist/cloud/routes/index.d.ts.map +1 -0
  18. package/dist/cloud/routes/index.js +98 -0
  19. package/dist/cloud/routes/index.js.map +1 -0
  20. package/dist/config.d.ts +33 -1
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +71 -1
  23. package/dist/config.js.map +1 -1
  24. package/dist/db/api-key-lookup.d.ts +25 -0
  25. package/dist/db/api-key-lookup.d.ts.map +1 -0
  26. package/dist/db/api-key-lookup.js +38 -0
  27. package/dist/db/api-key-lookup.js.map +1 -0
  28. package/dist/db/connection.postgres.d.ts +44 -0
  29. package/dist/db/connection.postgres.d.ts.map +1 -0
  30. package/dist/db/connection.postgres.js +79 -0
  31. package/dist/db/connection.postgres.js.map +1 -0
  32. package/dist/db/cost-budget-store.d.ts +30 -0
  33. package/dist/db/cost-budget-store.d.ts.map +1 -0
  34. package/dist/db/cost-budget-store.js +201 -0
  35. package/dist/db/cost-budget-store.js.map +1 -0
  36. package/dist/db/drizzle/0000_initial.sql +336 -0
  37. package/dist/db/drizzle/0001_indexes.sql +20 -0
  38. package/dist/db/drizzle/0002_pgvector.sql +19 -0
  39. package/dist/db/drizzle/drizzle/0000_initial.sql +336 -0
  40. package/dist/db/drizzle/drizzle/0001_indexes.sql +20 -0
  41. package/dist/db/drizzle/drizzle/0002_pgvector.sql +19 -0
  42. package/dist/db/drizzle/drizzle/meta/0000_snapshot.json +2593 -0
  43. package/dist/db/drizzle/drizzle/meta/_journal.json +27 -0
  44. package/dist/db/drizzle/meta/0000_snapshot.json +2593 -0
  45. package/dist/db/drizzle/meta/_journal.json +27 -0
  46. package/dist/db/embedding-store.d.ts +2 -1
  47. package/dist/db/embedding-store.d.ts.map +1 -1
  48. package/dist/db/embedding-store.interface.d.ts +19 -0
  49. package/dist/db/embedding-store.interface.d.ts.map +1 -0
  50. package/dist/db/embedding-store.interface.js +7 -0
  51. package/dist/db/embedding-store.interface.js.map +1 -0
  52. package/dist/db/embedding-store.js +3 -1
  53. package/dist/db/embedding-store.js.map +1 -1
  54. package/dist/db/eval-store.d.ts +88 -0
  55. package/dist/db/eval-store.d.ts.map +1 -0
  56. package/dist/db/eval-store.js +408 -0
  57. package/dist/db/eval-store.js.map +1 -0
  58. package/dist/db/guardrail-store.d.ts +9 -0
  59. package/dist/db/guardrail-store.d.ts.map +1 -1
  60. package/dist/db/guardrail-store.js +57 -3
  61. package/dist/db/guardrail-store.js.map +1 -1
  62. package/dist/db/index.d.ts +7 -0
  63. package/dist/db/index.d.ts.map +1 -1
  64. package/dist/db/index.js +4 -12
  65. package/dist/db/index.js.map +1 -1
  66. package/dist/db/migrate.d.ts +5 -22
  67. package/dist/db/migrate.d.ts.map +1 -1
  68. package/dist/db/migrate.js +7 -637
  69. package/dist/db/migrate.js.map +1 -1
  70. package/dist/db/migrate.postgres.d.ts +16 -0
  71. package/dist/db/migrate.postgres.d.ts.map +1 -0
  72. package/dist/db/migrate.postgres.js +23 -0
  73. package/dist/db/migrate.postgres.js.map +1 -0
  74. package/dist/db/migrate.sqlite.d.ts +26 -0
  75. package/dist/db/migrate.sqlite.d.ts.map +1 -0
  76. package/dist/db/migrate.sqlite.js +920 -0
  77. package/dist/db/migrate.sqlite.js.map +1 -0
  78. package/dist/db/postgres-embedding-store.d.ts +23 -0
  79. package/dist/db/postgres-embedding-store.d.ts.map +1 -0
  80. package/dist/db/postgres-embedding-store.js +218 -0
  81. package/dist/db/postgres-embedding-store.js.map +1 -0
  82. package/dist/db/postgres-store.d.ts +80 -0
  83. package/dist/db/postgres-store.d.ts.map +1 -0
  84. package/dist/db/postgres-store.js +910 -0
  85. package/dist/db/postgres-store.js.map +1 -0
  86. package/dist/db/prompt-store.d.ts +57 -0
  87. package/dist/db/prompt-store.d.ts.map +1 -0
  88. package/dist/db/prompt-store.js +300 -0
  89. package/dist/db/prompt-store.js.map +1 -0
  90. package/dist/db/repositories/agent-repository.d.ts +21 -0
  91. package/dist/db/repositories/agent-repository.d.ts.map +1 -0
  92. package/dist/db/repositories/agent-repository.js +142 -0
  93. package/dist/db/repositories/agent-repository.js.map +1 -0
  94. package/dist/db/repositories/alert-repository.d.ts +27 -0
  95. package/dist/db/repositories/alert-repository.d.ts.map +1 -0
  96. package/dist/db/repositories/alert-repository.js +164 -0
  97. package/dist/db/repositories/alert-repository.js.map +1 -0
  98. package/dist/db/repositories/analytics-repository.d.ts +24 -0
  99. package/dist/db/repositories/analytics-repository.d.ts.map +1 -0
  100. package/dist/db/repositories/analytics-repository.js +147 -0
  101. package/dist/db/repositories/analytics-repository.js.map +1 -0
  102. package/dist/db/repositories/event-repository.d.ts +81 -0
  103. package/dist/db/repositories/event-repository.d.ts.map +1 -0
  104. package/dist/db/repositories/event-repository.js +331 -0
  105. package/dist/db/repositories/event-repository.js.map +1 -0
  106. package/dist/db/repositories/notification-channel-repository.d.ts +28 -0
  107. package/dist/db/repositories/notification-channel-repository.d.ts.map +1 -0
  108. package/dist/db/repositories/notification-channel-repository.js +151 -0
  109. package/dist/db/repositories/notification-channel-repository.js.map +1 -0
  110. package/dist/db/repositories/session-repository.d.ts +26 -0
  111. package/dist/db/repositories/session-repository.d.ts.map +1 -0
  112. package/dist/db/repositories/session-repository.js +240 -0
  113. package/dist/db/repositories/session-repository.js.map +1 -0
  114. package/dist/db/schema.postgres.d.ts +4681 -0
  115. package/dist/db/schema.postgres.d.ts.map +1 -0
  116. package/dist/db/schema.postgres.js +458 -0
  117. package/dist/db/schema.postgres.js.map +1 -0
  118. package/dist/db/schema.sqlite.d.ts +2221 -671
  119. package/dist/db/schema.sqlite.d.ts.map +1 -1
  120. package/dist/db/schema.sqlite.js +137 -2
  121. package/dist/db/schema.sqlite.js.map +1 -1
  122. package/dist/db/services/retention-service.d.ts +13 -0
  123. package/dist/db/services/retention-service.d.ts.map +1 -0
  124. package/dist/db/services/retention-service.js +48 -0
  125. package/dist/db/services/retention-service.js.map +1 -0
  126. package/dist/db/shared/query-helpers.d.ts +32 -0
  127. package/dist/db/shared/query-helpers.d.ts.map +1 -0
  128. package/dist/db/shared/query-helpers.js +180 -0
  129. package/dist/db/shared/query-helpers.js.map +1 -0
  130. package/dist/db/sqlite-store.d.ts +48 -55
  131. package/dist/db/sqlite-store.d.ts.map +1 -1
  132. package/dist/db/sqlite-store.js +78 -945
  133. package/dist/db/sqlite-store.js.map +1 -1
  134. package/dist/db/tenant-scoped-store.d.ts +18 -1
  135. package/dist/db/tenant-scoped-store.d.ts.map +1 -1
  136. package/dist/db/tenant-scoped-store.js +6 -0
  137. package/dist/db/tenant-scoped-store.js.map +1 -1
  138. package/dist/index.d.ts +28 -14
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +432 -97
  141. package/dist/index.js.map +1 -1
  142. package/dist/lib/alert-engine.d.ts +10 -0
  143. package/dist/lib/alert-engine.d.ts.map +1 -1
  144. package/dist/lib/alert-engine.js +73 -20
  145. package/dist/lib/alert-engine.js.map +1 -1
  146. package/dist/lib/audit-verify.d.ts +40 -0
  147. package/dist/lib/audit-verify.d.ts.map +1 -0
  148. package/dist/lib/audit-verify.js +128 -0
  149. package/dist/lib/audit-verify.js.map +1 -0
  150. package/dist/lib/audit.d.ts +37 -0
  151. package/dist/lib/audit.d.ts.map +1 -0
  152. package/dist/lib/audit.js +59 -0
  153. package/dist/lib/audit.js.map +1 -0
  154. package/dist/lib/budget-engine.d.ts +26 -0
  155. package/dist/lib/budget-engine.d.ts.map +1 -0
  156. package/dist/lib/budget-engine.js +201 -0
  157. package/dist/lib/budget-engine.js.map +1 -0
  158. package/dist/lib/compliance-export.d.ts +41 -0
  159. package/dist/lib/compliance-export.d.ts.map +1 -0
  160. package/dist/lib/compliance-export.js +124 -0
  161. package/dist/lib/compliance-export.js.map +1 -0
  162. package/dist/lib/compliance-report.d.ts +87 -0
  163. package/dist/lib/compliance-report.d.ts.map +1 -0
  164. package/dist/lib/compliance-report.js +148 -0
  165. package/dist/lib/compliance-report.js.map +1 -0
  166. package/dist/lib/context/retrieval.d.ts +5 -3
  167. package/dist/lib/context/retrieval.d.ts.map +1 -1
  168. package/dist/lib/context/retrieval.js +5 -2
  169. package/dist/lib/context/retrieval.js.map +1 -1
  170. package/dist/lib/cost-anomaly-detector.d.ts +23 -0
  171. package/dist/lib/cost-anomaly-detector.d.ts.map +1 -0
  172. package/dist/lib/cost-anomaly-detector.js +108 -0
  173. package/dist/lib/cost-anomaly-detector.js.map +1 -0
  174. package/dist/lib/db-resilience.d.ts +15 -0
  175. package/dist/lib/db-resilience.d.ts.map +1 -0
  176. package/dist/lib/db-resilience.js +49 -0
  177. package/dist/lib/db-resilience.js.map +1 -0
  178. package/dist/lib/diagnostics/cache.d.ts +29 -0
  179. package/dist/lib/diagnostics/cache.d.ts.map +1 -0
  180. package/dist/lib/diagnostics/cache.js +88 -0
  181. package/dist/lib/diagnostics/cache.js.map +1 -0
  182. package/dist/lib/diagnostics/context-builder.d.ts +41 -0
  183. package/dist/lib/diagnostics/context-builder.d.ts.map +1 -0
  184. package/dist/lib/diagnostics/context-builder.js +135 -0
  185. package/dist/lib/diagnostics/context-builder.js.map +1 -0
  186. package/dist/lib/diagnostics/index.d.ts +34 -0
  187. package/dist/lib/diagnostics/index.d.ts.map +1 -0
  188. package/dist/lib/diagnostics/index.js +223 -0
  189. package/dist/lib/diagnostics/index.js.map +1 -0
  190. package/dist/lib/diagnostics/llm-client.d.ts +24 -0
  191. package/dist/lib/diagnostics/llm-client.d.ts.map +1 -0
  192. package/dist/lib/diagnostics/llm-client.js +42 -0
  193. package/dist/lib/diagnostics/llm-client.js.map +1 -0
  194. package/dist/lib/diagnostics/prompt-templates.d.ts +18 -0
  195. package/dist/lib/diagnostics/prompt-templates.d.ts.map +1 -0
  196. package/dist/lib/diagnostics/prompt-templates.js +144 -0
  197. package/dist/lib/diagnostics/prompt-templates.js.map +1 -0
  198. package/dist/lib/diagnostics/providers/anthropic.d.ts +8 -0
  199. package/dist/lib/diagnostics/providers/anthropic.d.ts.map +1 -0
  200. package/dist/lib/diagnostics/providers/anthropic.js +79 -0
  201. package/dist/lib/diagnostics/providers/anthropic.js.map +1 -0
  202. package/dist/lib/diagnostics/providers/openai.d.ts +8 -0
  203. package/dist/lib/diagnostics/providers/openai.d.ts.map +1 -0
  204. package/dist/lib/diagnostics/providers/openai.js +70 -0
  205. package/dist/lib/diagnostics/providers/openai.js.map +1 -0
  206. package/dist/lib/diagnostics/providers/types.d.ts +23 -0
  207. package/dist/lib/diagnostics/providers/types.d.ts.map +1 -0
  208. package/dist/lib/diagnostics/providers/types.js +5 -0
  209. package/dist/lib/diagnostics/providers/types.js.map +1 -0
  210. package/dist/lib/diagnostics/response-parser.d.ts +60 -0
  211. package/dist/lib/diagnostics/response-parser.d.ts.map +1 -0
  212. package/dist/lib/diagnostics/response-parser.js +55 -0
  213. package/dist/lib/diagnostics/response-parser.js.map +1 -0
  214. package/dist/lib/diagnostics/types.d.ts +60 -0
  215. package/dist/lib/diagnostics/types.d.ts.map +1 -0
  216. package/dist/lib/diagnostics/types.js +7 -0
  217. package/dist/lib/diagnostics/types.js.map +1 -0
  218. package/dist/lib/embeddings/index.d.ts +6 -3
  219. package/dist/lib/embeddings/index.d.ts.map +1 -1
  220. package/dist/lib/embeddings/index.js +7 -15
  221. package/dist/lib/embeddings/index.js.map +1 -1
  222. package/dist/lib/embeddings/worker.d.ts +2 -2
  223. package/dist/lib/embeddings/worker.d.ts.map +1 -1
  224. package/dist/lib/embeddings/worker.js +3 -1
  225. package/dist/lib/embeddings/worker.js.map +1 -1
  226. package/dist/lib/error-sanitizer.d.ts +28 -0
  227. package/dist/lib/error-sanitizer.d.ts.map +1 -0
  228. package/dist/lib/error-sanitizer.js +106 -0
  229. package/dist/lib/error-sanitizer.js.map +1 -0
  230. package/dist/lib/eval/index.d.ts +15 -0
  231. package/dist/lib/eval/index.d.ts.map +1 -0
  232. package/dist/lib/eval/index.js +24 -0
  233. package/dist/lib/eval/index.js.map +1 -0
  234. package/dist/lib/eval/runner.d.ts +28 -0
  235. package/dist/lib/eval/runner.d.ts.map +1 -0
  236. package/dist/lib/eval/runner.js +260 -0
  237. package/dist/lib/eval/runner.js.map +1 -0
  238. package/dist/lib/eval/scorers/contains.d.ts +10 -0
  239. package/dist/lib/eval/scorers/contains.d.ts.map +1 -0
  240. package/dist/lib/eval/scorers/contains.js +33 -0
  241. package/dist/lib/eval/scorers/contains.js.map +1 -0
  242. package/dist/lib/eval/scorers/exact-match.d.ts +10 -0
  243. package/dist/lib/eval/scorers/exact-match.d.ts.map +1 -0
  244. package/dist/lib/eval/scorers/exact-match.js +33 -0
  245. package/dist/lib/eval/scorers/exact-match.js.map +1 -0
  246. package/dist/lib/eval/scorers/index.d.ts +20 -0
  247. package/dist/lib/eval/scorers/index.d.ts.map +1 -0
  248. package/dist/lib/eval/scorers/index.js +19 -0
  249. package/dist/lib/eval/scorers/index.js.map +1 -0
  250. package/dist/lib/eval/scorers/llm-judge.d.ts +22 -0
  251. package/dist/lib/eval/scorers/llm-judge.d.ts.map +1 -0
  252. package/dist/lib/eval/scorers/llm-judge.js +79 -0
  253. package/dist/lib/eval/scorers/llm-judge.js.map +1 -0
  254. package/dist/lib/eval/scorers/regex.d.ts +10 -0
  255. package/dist/lib/eval/scorers/regex.d.ts.map +1 -0
  256. package/dist/lib/eval/scorers/regex.js +36 -0
  257. package/dist/lib/eval/scorers/regex.js.map +1 -0
  258. package/dist/lib/guardrails/actions.d.ts +6 -0
  259. package/dist/lib/guardrails/actions.d.ts.map +1 -1
  260. package/dist/lib/guardrails/actions.js +82 -0
  261. package/dist/lib/guardrails/actions.js.map +1 -1
  262. package/dist/lib/guardrails/conditions.d.ts +47 -0
  263. package/dist/lib/guardrails/conditions.d.ts.map +1 -1
  264. package/dist/lib/guardrails/conditions.js +55 -10
  265. package/dist/lib/guardrails/conditions.js.map +1 -1
  266. package/dist/lib/guardrails/content-engine.d.ts +19 -0
  267. package/dist/lib/guardrails/content-engine.d.ts.map +1 -0
  268. package/dist/lib/guardrails/content-engine.js +154 -0
  269. package/dist/lib/guardrails/content-engine.js.map +1 -0
  270. package/dist/lib/guardrails/engine.d.ts +33 -0
  271. package/dist/lib/guardrails/engine.d.ts.map +1 -1
  272. package/dist/lib/guardrails/engine.js +37 -2
  273. package/dist/lib/guardrails/engine.js.map +1 -1
  274. package/dist/lib/guardrails/scanners/base-scanner.d.ts +23 -0
  275. package/dist/lib/guardrails/scanners/base-scanner.d.ts.map +1 -0
  276. package/dist/lib/guardrails/scanners/base-scanner.js +7 -0
  277. package/dist/lib/guardrails/scanners/base-scanner.js.map +1 -0
  278. package/dist/lib/guardrails/scanners/patterns/pii-patterns.d.ts +13 -0
  279. package/dist/lib/guardrails/scanners/patterns/pii-patterns.d.ts.map +1 -0
  280. package/dist/lib/guardrails/scanners/patterns/pii-patterns.js +49 -0
  281. package/dist/lib/guardrails/scanners/patterns/pii-patterns.js.map +1 -0
  282. package/dist/lib/guardrails/scanners/patterns/secret-patterns.d.ts +6 -0
  283. package/dist/lib/guardrails/scanners/patterns/secret-patterns.d.ts.map +1 -0
  284. package/dist/lib/guardrails/scanners/patterns/secret-patterns.js +69 -0
  285. package/dist/lib/guardrails/scanners/patterns/secret-patterns.js.map +1 -0
  286. package/dist/lib/guardrails/scanners/pii-scanner.d.ts +10 -0
  287. package/dist/lib/guardrails/scanners/pii-scanner.d.ts.map +1 -0
  288. package/dist/lib/guardrails/scanners/pii-scanner.js +57 -0
  289. package/dist/lib/guardrails/scanners/pii-scanner.js.map +1 -0
  290. package/dist/lib/guardrails/scanners/scanner-registry.d.ts +14 -0
  291. package/dist/lib/guardrails/scanners/scanner-registry.d.ts.map +1 -0
  292. package/dist/lib/guardrails/scanners/scanner-registry.js +51 -0
  293. package/dist/lib/guardrails/scanners/scanner-registry.js.map +1 -0
  294. package/dist/lib/guardrails/scanners/secrets-scanner.d.ts +9 -0
  295. package/dist/lib/guardrails/scanners/secrets-scanner.d.ts.map +1 -0
  296. package/dist/lib/guardrails/scanners/secrets-scanner.js +47 -0
  297. package/dist/lib/guardrails/scanners/secrets-scanner.js.map +1 -0
  298. package/dist/lib/logger.d.ts +8 -0
  299. package/dist/lib/logger.d.ts.map +1 -0
  300. package/dist/lib/logger.js +31 -0
  301. package/dist/lib/logger.js.map +1 -0
  302. package/dist/lib/lore-client.d.ts +128 -0
  303. package/dist/lib/lore-client.d.ts.map +1 -0
  304. package/dist/lib/lore-client.js +188 -0
  305. package/dist/lib/lore-client.js.map +1 -0
  306. package/dist/lib/mesh-client.d.ts +31 -0
  307. package/dist/lib/mesh-client.d.ts.map +1 -0
  308. package/dist/lib/mesh-client.js +72 -0
  309. package/dist/lib/mesh-client.js.map +1 -0
  310. package/dist/lib/notifications/grouping-buffer.d.ts +25 -0
  311. package/dist/lib/notifications/grouping-buffer.d.ts.map +1 -0
  312. package/dist/lib/notifications/grouping-buffer.js +73 -0
  313. package/dist/lib/notifications/grouping-buffer.js.map +1 -0
  314. package/dist/lib/notifications/provider.d.ts +10 -0
  315. package/dist/lib/notifications/provider.d.ts.map +1 -0
  316. package/dist/lib/notifications/provider.js +5 -0
  317. package/dist/lib/notifications/provider.js.map +1 -0
  318. package/dist/lib/notifications/providers/email.d.ts +14 -0
  319. package/dist/lib/notifications/providers/email.d.ts.map +1 -0
  320. package/dist/lib/notifications/providers/email.js +88 -0
  321. package/dist/lib/notifications/providers/email.js.map +1 -0
  322. package/dist/lib/notifications/providers/pagerduty.d.ts +16 -0
  323. package/dist/lib/notifications/providers/pagerduty.d.ts.map +1 -0
  324. package/dist/lib/notifications/providers/pagerduty.js +94 -0
  325. package/dist/lib/notifications/providers/pagerduty.js.map +1 -0
  326. package/dist/lib/notifications/providers/slack.d.ts +14 -0
  327. package/dist/lib/notifications/providers/slack.d.ts.map +1 -0
  328. package/dist/lib/notifications/providers/slack.js +106 -0
  329. package/dist/lib/notifications/providers/slack.js.map +1 -0
  330. package/dist/lib/notifications/providers/webhook.d.ts +16 -0
  331. package/dist/lib/notifications/providers/webhook.d.ts.map +1 -0
  332. package/dist/lib/notifications/providers/webhook.js +78 -0
  333. package/dist/lib/notifications/providers/webhook.js.map +1 -0
  334. package/dist/lib/notifications/router.d.ts +30 -0
  335. package/dist/lib/notifications/router.d.ts.map +1 -0
  336. package/dist/lib/notifications/router.js +137 -0
  337. package/dist/lib/notifications/router.js.map +1 -0
  338. package/dist/lib/notifications/ssrf.d.ts +13 -0
  339. package/dist/lib/notifications/ssrf.d.ts.map +1 -0
  340. package/dist/lib/notifications/ssrf.js +37 -0
  341. package/dist/lib/notifications/ssrf.js.map +1 -0
  342. package/dist/lib/optimization/analyzers/model-downgrade.d.ts +15 -0
  343. package/dist/lib/optimization/analyzers/model-downgrade.d.ts.map +1 -0
  344. package/dist/lib/optimization/analyzers/model-downgrade.js +58 -0
  345. package/dist/lib/optimization/analyzers/model-downgrade.js.map +1 -0
  346. package/dist/lib/optimization/analyzers/prompt-optimization.d.ts +17 -0
  347. package/dist/lib/optimization/analyzers/prompt-optimization.d.ts.map +1 -0
  348. package/dist/lib/optimization/analyzers/prompt-optimization.js +160 -0
  349. package/dist/lib/optimization/analyzers/prompt-optimization.js.map +1 -0
  350. package/dist/lib/optimization/analyzers/types.d.ts +23 -0
  351. package/dist/lib/optimization/analyzers/types.d.ts.map +1 -0
  352. package/dist/lib/optimization/analyzers/types.js +5 -0
  353. package/dist/lib/optimization/analyzers/types.js.map +1 -0
  354. package/dist/lib/optimization/classifier.d.ts +4 -3
  355. package/dist/lib/optimization/classifier.d.ts.map +1 -1
  356. package/dist/lib/optimization/classifier.js +15 -9
  357. package/dist/lib/optimization/classifier.js.map +1 -1
  358. package/dist/lib/optimization/cost-optimizer.d.ts +21 -0
  359. package/dist/lib/optimization/cost-optimizer.d.ts.map +1 -0
  360. package/dist/lib/optimization/cost-optimizer.js +114 -0
  361. package/dist/lib/optimization/cost-optimizer.js.map +1 -0
  362. package/dist/lib/optimization/engine.d.ts.map +1 -1
  363. package/dist/lib/optimization/engine.js +45 -6
  364. package/dist/lib/optimization/engine.js.map +1 -1
  365. package/dist/lib/optimization/forecast.d.ts +39 -0
  366. package/dist/lib/optimization/forecast.d.ts.map +1 -0
  367. package/dist/lib/optimization/forecast.js +128 -0
  368. package/dist/lib/optimization/forecast.js.map +1 -0
  369. package/dist/lib/secrets.d.ts +30 -0
  370. package/dist/lib/secrets.d.ts.map +1 -0
  371. package/dist/lib/secrets.js +103 -0
  372. package/dist/lib/secrets.js.map +1 -0
  373. package/dist/lib/threshold-monitor.d.ts +53 -0
  374. package/dist/lib/threshold-monitor.d.ts.map +1 -0
  375. package/dist/lib/threshold-monitor.js +112 -0
  376. package/dist/lib/threshold-monitor.js.map +1 -0
  377. package/dist/middleware/audit.d.ts +16 -0
  378. package/dist/middleware/audit.d.ts.map +1 -0
  379. package/dist/middleware/audit.js +16 -0
  380. package/dist/middleware/audit.js.map +1 -0
  381. package/dist/middleware/auth-errors.d.ts +67 -0
  382. package/dist/middleware/auth-errors.d.ts.map +1 -0
  383. package/dist/middleware/auth-errors.js +84 -0
  384. package/dist/middleware/auth-errors.js.map +1 -0
  385. package/dist/middleware/auth.d.ts +5 -2
  386. package/dist/middleware/auth.d.ts.map +1 -1
  387. package/dist/middleware/auth.js +44 -17
  388. package/dist/middleware/auth.js.map +1 -1
  389. package/dist/middleware/body-limit.d.ts +9 -0
  390. package/dist/middleware/body-limit.d.ts.map +1 -0
  391. package/dist/middleware/body-limit.js +15 -0
  392. package/dist/middleware/body-limit.js.map +1 -0
  393. package/dist/middleware/cors-config.d.ts +30 -0
  394. package/dist/middleware/cors-config.d.ts.map +1 -0
  395. package/dist/middleware/cors-config.js +55 -0
  396. package/dist/middleware/cors-config.js.map +1 -0
  397. package/dist/middleware/rate-limit.d.ts +9 -0
  398. package/dist/middleware/rate-limit.d.ts.map +1 -0
  399. package/dist/middleware/rate-limit.js +56 -0
  400. package/dist/middleware/rate-limit.js.map +1 -0
  401. package/dist/middleware/rbac.d.ts +30 -0
  402. package/dist/middleware/rbac.d.ts.map +1 -0
  403. package/dist/middleware/rbac.js +87 -0
  404. package/dist/middleware/rbac.js.map +1 -0
  405. package/dist/middleware/security-headers.d.ts +12 -0
  406. package/dist/middleware/security-headers.d.ts.map +1 -0
  407. package/dist/middleware/security-headers.js +57 -0
  408. package/dist/middleware/security-headers.js.map +1 -0
  409. package/dist/middleware/unified-auth.d.ts +49 -0
  410. package/dist/middleware/unified-auth.d.ts.map +1 -0
  411. package/dist/middleware/unified-auth.js +246 -0
  412. package/dist/middleware/unified-auth.js.map +1 -0
  413. package/dist/middleware/validation.d.ts +31 -0
  414. package/dist/middleware/validation.d.ts.map +1 -0
  415. package/dist/middleware/validation.js +45 -0
  416. package/dist/middleware/validation.js.map +1 -0
  417. package/dist/routes/alerts.d.ts.map +1 -1
  418. package/dist/routes/alerts.js +4 -3
  419. package/dist/routes/alerts.js.map +1 -1
  420. package/dist/routes/analytics.d.ts +2 -1
  421. package/dist/routes/analytics.d.ts.map +1 -1
  422. package/dist/routes/analytics.js +175 -95
  423. package/dist/routes/analytics.js.map +1 -1
  424. package/dist/routes/api-keys.d.ts +5 -0
  425. package/dist/routes/api-keys.d.ts.map +1 -1
  426. package/dist/routes/api-keys.js +89 -8
  427. package/dist/routes/api-keys.js.map +1 -1
  428. package/dist/routes/audit-verify.d.ts +12 -0
  429. package/dist/routes/audit-verify.d.ts.map +1 -0
  430. package/dist/routes/audit-verify.js +73 -0
  431. package/dist/routes/audit-verify.js.map +1 -0
  432. package/dist/routes/audit.d.ts +4 -6
  433. package/dist/routes/audit.d.ts.map +1 -1
  434. package/dist/routes/audit.js +54 -157
  435. package/dist/routes/audit.js.map +1 -1
  436. package/dist/routes/auth.d.ts +21 -0
  437. package/dist/routes/auth.d.ts.map +1 -0
  438. package/dist/routes/auth.js +235 -0
  439. package/dist/routes/auth.js.map +1 -0
  440. package/dist/routes/benchmarks.d.ts.map +1 -1
  441. package/dist/routes/benchmarks.js +63 -11
  442. package/dist/routes/benchmarks.js.map +1 -1
  443. package/dist/routes/capabilities-top.d.ts.map +1 -1
  444. package/dist/routes/capabilities-top.js +1 -4
  445. package/dist/routes/capabilities-top.js.map +1 -1
  446. package/dist/routes/capabilities.d.ts.map +1 -1
  447. package/dist/routes/capabilities.js +1 -7
  448. package/dist/routes/capabilities.js.map +1 -1
  449. package/dist/routes/compliance.d.ts +17 -0
  450. package/dist/routes/compliance.d.ts.map +1 -0
  451. package/dist/routes/compliance.js +151 -0
  452. package/dist/routes/compliance.js.map +1 -0
  453. package/dist/routes/config.d.ts +1 -13
  454. package/dist/routes/config.d.ts.map +1 -1
  455. package/dist/routes/context.d.ts.map +1 -1
  456. package/dist/routes/context.js +6 -5
  457. package/dist/routes/context.js.map +1 -1
  458. package/dist/routes/cost-budgets.d.ts +20 -0
  459. package/dist/routes/cost-budgets.d.ts.map +1 -0
  460. package/dist/routes/cost-budgets.js +194 -0
  461. package/dist/routes/cost-budgets.js.map +1 -0
  462. package/dist/routes/delegation.d.ts.map +1 -1
  463. package/dist/routes/delegation.js +67 -41
  464. package/dist/routes/delegation.js.map +1 -1
  465. package/dist/routes/delegations-top.d.ts.map +1 -1
  466. package/dist/routes/delegations-top.js +1 -3
  467. package/dist/routes/delegations-top.js.map +1 -1
  468. package/dist/routes/diagnose.d.ts +16 -0
  469. package/dist/routes/diagnose.d.ts.map +1 -0
  470. package/dist/routes/diagnose.js +82 -0
  471. package/dist/routes/diagnose.js.map +1 -0
  472. package/dist/routes/discovery.d.ts.map +1 -1
  473. package/dist/routes/discovery.js +50 -38
  474. package/dist/routes/discovery.js.map +1 -1
  475. package/dist/routes/eval.d.ts +24 -0
  476. package/dist/routes/eval.d.ts.map +1 -0
  477. package/dist/routes/eval.js +281 -0
  478. package/dist/routes/eval.js.map +1 -0
  479. package/dist/routes/events.d.ts.map +1 -1
  480. package/dist/routes/events.js +11 -6
  481. package/dist/routes/events.js.map +1 -1
  482. package/dist/routes/guardrails.d.ts +2 -1
  483. package/dist/routes/guardrails.d.ts.map +1 -1
  484. package/dist/routes/guardrails.js +85 -14
  485. package/dist/routes/guardrails.js.map +1 -1
  486. package/dist/routes/health.d.ts +14 -11
  487. package/dist/routes/health.d.ts.map +1 -1
  488. package/dist/routes/health.js +181 -61
  489. package/dist/routes/health.js.map +1 -1
  490. package/dist/routes/lore-proxy.d.ts +13 -0
  491. package/dist/routes/lore-proxy.d.ts.map +1 -0
  492. package/dist/routes/lore-proxy.js +229 -0
  493. package/dist/routes/lore-proxy.js.map +1 -0
  494. package/dist/routes/mesh-proxy.d.ts +7 -0
  495. package/dist/routes/mesh-proxy.d.ts.map +1 -0
  496. package/dist/routes/mesh-proxy.js +94 -0
  497. package/dist/routes/mesh-proxy.js.map +1 -0
  498. package/dist/routes/notifications.d.ts +19 -0
  499. package/dist/routes/notifications.d.ts.map +1 -0
  500. package/dist/routes/notifications.js +129 -0
  501. package/dist/routes/notifications.js.map +1 -0
  502. package/dist/routes/optimize.d.ts.map +1 -1
  503. package/dist/routes/optimize.js +44 -0
  504. package/dist/routes/optimize.js.map +1 -1
  505. package/dist/routes/otlp.d.ts +17 -0
  506. package/dist/routes/otlp.d.ts.map +1 -0
  507. package/dist/routes/otlp.js +544 -0
  508. package/dist/routes/otlp.js.map +1 -0
  509. package/dist/routes/prompts.d.ts +21 -0
  510. package/dist/routes/prompts.d.ts.map +1 -0
  511. package/dist/routes/prompts.js +173 -0
  512. package/dist/routes/prompts.js.map +1 -0
  513. package/dist/routes/recall.d.ts.map +1 -1
  514. package/dist/routes/recall.js +6 -4
  515. package/dist/routes/recall.js.map +1 -1
  516. package/dist/routes/replay.d.ts.map +1 -1
  517. package/dist/routes/replay.js +2 -1
  518. package/dist/routes/replay.js.map +1 -1
  519. package/dist/routes/server-info.d.ts +9 -0
  520. package/dist/routes/server-info.d.ts.map +1 -0
  521. package/dist/routes/server-info.js +18 -0
  522. package/dist/routes/server-info.js.map +1 -0
  523. package/dist/routes/sessions.d.ts +7 -7
  524. package/dist/routes/sessions.d.ts.map +1 -1
  525. package/dist/routes/sessions.js +112 -35
  526. package/dist/routes/sessions.js.map +1 -1
  527. package/dist/routes/stats.d.ts.map +1 -1
  528. package/dist/routes/stats.js +40 -0
  529. package/dist/routes/stats.js.map +1 -1
  530. package/dist/routes/stream.d.ts +2 -2
  531. package/dist/routes/stream.d.ts.map +1 -1
  532. package/dist/routes/stream.js +7 -11
  533. package/dist/routes/stream.js.map +1 -1
  534. package/dist/routes/tenant-helper.d.ts +15 -10
  535. package/dist/routes/tenant-helper.d.ts.map +1 -1
  536. package/dist/routes/tenant-helper.js +36 -22
  537. package/dist/routes/tenant-helper.js.map +1 -1
  538. package/dist/routes/trust.d.ts.map +1 -1
  539. package/dist/routes/trust.js +1 -3
  540. package/dist/routes/trust.js.map +1 -1
  541. package/dist/schemas/api-keys.d.ts +11 -0
  542. package/dist/schemas/api-keys.d.ts.map +1 -0
  543. package/dist/schemas/api-keys.js +10 -0
  544. package/dist/schemas/api-keys.js.map +1 -0
  545. package/dist/schemas/common.d.ts +34 -0
  546. package/dist/schemas/common.d.ts.map +1 -0
  547. package/dist/schemas/common.js +43 -0
  548. package/dist/schemas/common.js.map +1 -0
  549. package/dist/schemas/delegation.d.ts +23 -0
  550. package/dist/schemas/delegation.d.ts.map +1 -0
  551. package/dist/schemas/delegation.js +22 -0
  552. package/dist/schemas/delegation.js.map +1 -0
  553. package/dist/schemas/discovery.d.ts +17 -0
  554. package/dist/schemas/discovery.d.ts.map +1 -0
  555. package/dist/schemas/discovery.js +15 -0
  556. package/dist/schemas/discovery.js.map +1 -0
  557. package/dist/schemas/health.d.ts +75 -0
  558. package/dist/schemas/health.d.ts.map +1 -0
  559. package/dist/schemas/health.js +55 -0
  560. package/dist/schemas/health.js.map +1 -0
  561. package/dist/schemas/index.d.ts +6 -0
  562. package/dist/schemas/index.d.ts.map +1 -0
  563. package/dist/schemas/index.js +6 -0
  564. package/dist/schemas/index.js.map +1 -0
  565. package/dist/schemas/sessions.d.ts +67 -0
  566. package/dist/schemas/sessions.d.ts.map +1 -0
  567. package/dist/schemas/sessions.js +58 -0
  568. package/dist/schemas/sessions.js.map +1 -0
  569. package/dist/services/delegation-service.d.ts +1 -4
  570. package/dist/services/delegation-service.d.ts.map +1 -1
  571. package/dist/services/delegation-service.js +5 -31
  572. package/dist/services/delegation-service.js.map +1 -1
  573. package/package.json +29 -19
  574. package/dist/db/lesson-store.d.ts +0 -57
  575. package/dist/db/lesson-store.d.ts.map +0 -1
  576. package/dist/db/lesson-store.js +0 -217
  577. package/dist/db/lesson-store.js.map +0 -1
  578. package/dist/lib/embeddings/local.d.ts +0 -15
  579. package/dist/lib/embeddings/local.d.ts.map +0 -1
  580. package/dist/lib/embeddings/local.js +0 -65
  581. package/dist/lib/embeddings/local.js.map +0 -1
  582. package/dist/lib/redaction/human-review-layer.d.ts +0 -37
  583. package/dist/lib/redaction/human-review-layer.d.ts.map +0 -1
  584. package/dist/lib/redaction/human-review-layer.js +0 -62
  585. package/dist/lib/redaction/human-review-layer.js.map +0 -1
  586. package/dist/lib/redaction/index.d.ts +0 -12
  587. package/dist/lib/redaction/index.d.ts.map +0 -1
  588. package/dist/lib/redaction/index.js +0 -12
  589. package/dist/lib/redaction/index.js.map +0 -1
  590. package/dist/lib/redaction/pii-detection-layer.d.ts +0 -30
  591. package/dist/lib/redaction/pii-detection-layer.d.ts.map +0 -1
  592. package/dist/lib/redaction/pii-detection-layer.js +0 -183
  593. package/dist/lib/redaction/pii-detection-layer.js.map +0 -1
  594. package/dist/lib/redaction/pipeline.d.ts +0 -26
  595. package/dist/lib/redaction/pipeline.d.ts.map +0 -1
  596. package/dist/lib/redaction/pipeline.js +0 -91
  597. package/dist/lib/redaction/pipeline.js.map +0 -1
  598. package/dist/lib/redaction/secret-detection-layer.d.ts +0 -10
  599. package/dist/lib/redaction/secret-detection-layer.d.ts.map +0 -1
  600. package/dist/lib/redaction/secret-detection-layer.js +0 -79
  601. package/dist/lib/redaction/secret-detection-layer.js.map +0 -1
  602. package/dist/lib/redaction/secret-patterns.d.ts +0 -29
  603. package/dist/lib/redaction/secret-patterns.d.ts.map +0 -1
  604. package/dist/lib/redaction/secret-patterns.js +0 -133
  605. package/dist/lib/redaction/secret-patterns.js.map +0 -1
  606. package/dist/lib/redaction/semantic-denylist-layer.d.ts +0 -10
  607. package/dist/lib/redaction/semantic-denylist-layer.d.ts.map +0 -1
  608. package/dist/lib/redaction/semantic-denylist-layer.js +0 -64
  609. package/dist/lib/redaction/semantic-denylist-layer.js.map +0 -1
  610. package/dist/lib/redaction/tenant-deidentification-layer.d.ts +0 -10
  611. package/dist/lib/redaction/tenant-deidentification-layer.d.ts.map +0 -1
  612. package/dist/lib/redaction/tenant-deidentification-layer.js +0 -64
  613. package/dist/lib/redaction/tenant-deidentification-layer.js.map +0 -1
  614. package/dist/lib/redaction/url-path-scrubbing-layer.d.ts +0 -14
  615. package/dist/lib/redaction/url-path-scrubbing-layer.d.ts.map +0 -1
  616. package/dist/lib/redaction/url-path-scrubbing-layer.js +0 -156
  617. package/dist/lib/redaction/url-path-scrubbing-layer.js.map +0 -1
  618. package/dist/routes/community.d.ts +0 -24
  619. package/dist/routes/community.d.ts.map +0 -1
  620. package/dist/routes/community.js +0 -272
  621. package/dist/routes/community.js.map +0 -1
  622. package/dist/routes/lessons.d.ts +0 -19
  623. package/dist/routes/lessons.d.ts.map +0 -1
  624. package/dist/routes/lessons.js +0 -164
  625. package/dist/routes/lessons.js.map +0 -1
  626. package/dist/routes/redaction-test.d.ts +0 -14
  627. package/dist/routes/redaction-test.d.ts.map +0 -1
  628. package/dist/routes/redaction-test.js +0 -33
  629. package/dist/routes/redaction-test.js.map +0 -1
  630. package/dist/services/community-service.d.ts +0 -283
  631. package/dist/services/community-service.d.ts.map +0 -1
  632. package/dist/services/community-service.js +0 -816
  633. package/dist/services/community-service.js.map +0 -1
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Eval REST API Routes (Feature 15 — Story 8)
3
+ *
4
+ * POST /api/eval/datasets — Create dataset
5
+ * GET /api/eval/datasets — List datasets
6
+ * GET /api/eval/datasets/:id — Get dataset + test cases
7
+ * PUT /api/eval/datasets/:id — Update dataset metadata
8
+ * POST /api/eval/datasets/:id/cases — Add test cases
9
+ * PUT /api/eval/datasets/:id/cases/:caseId — Update test case
10
+ * DELETE /api/eval/datasets/:id/cases/:caseId — Delete test case
11
+ * POST /api/eval/datasets/:id/versions — Create new version
12
+ * POST /api/eval/runs — Trigger eval run (202)
13
+ * GET /api/eval/runs — List runs
14
+ * GET /api/eval/runs/:id — Get run
15
+ * GET /api/eval/runs/:id/results — Get per-case results
16
+ * POST /api/eval/runs/:id/cancel — Cancel run
17
+ */
18
+ import { Hono } from 'hono';
19
+ import { getTenantId } from './tenant-helper.js';
20
+ import { EvalStore } from '../db/eval-store.js';
21
+ import { EvalRunner } from '../lib/eval/runner.js';
22
+ import { createDefaultRegistry } from '../lib/eval/index.js';
23
+ export function evalRoutes(db) {
24
+ const app = new Hono();
25
+ const registry = createDefaultRegistry();
26
+ function getStore() {
27
+ if (!db)
28
+ return null;
29
+ return new EvalStore(db);
30
+ }
31
+ // ─── Dataset Routes ────────────────────────────────────
32
+ app.post('/datasets', async (c) => {
33
+ const store = getStore();
34
+ if (!store)
35
+ return c.json({ error: 'Database not available' }, 500);
36
+ const tenantId = getTenantId(c);
37
+ const body = await c.req.json().catch(() => null);
38
+ if (!body || !body.name) {
39
+ return c.json({ error: 'name is required' }, 400);
40
+ }
41
+ try {
42
+ const dataset = store.createDataset(tenantId, {
43
+ name: body.name,
44
+ description: body.description,
45
+ agentId: body.agentId,
46
+ testCases: body.testCases,
47
+ });
48
+ return c.json(dataset, 201);
49
+ }
50
+ catch (err) {
51
+ return c.json({ error: err.message }, 400);
52
+ }
53
+ });
54
+ app.get('/datasets', async (c) => {
55
+ const store = getStore();
56
+ if (!store)
57
+ return c.json({ error: 'Database not available' }, 500);
58
+ const tenantId = getTenantId(c);
59
+ const agentId = c.req.query('agentId') || undefined;
60
+ const limit = c.req.query('limit') ? parseInt(c.req.query('limit'), 10) : undefined;
61
+ const offset = c.req.query('offset') ? parseInt(c.req.query('offset'), 10) : undefined;
62
+ const { datasets, total } = store.listDatasets(tenantId, { agentId, limit, offset });
63
+ return c.json({ datasets, total, hasMore: (offset ?? 0) + datasets.length < total });
64
+ });
65
+ app.get('/datasets/:id', async (c) => {
66
+ const store = getStore();
67
+ if (!store)
68
+ return c.json({ error: 'Database not available' }, 500);
69
+ const tenantId = getTenantId(c);
70
+ const id = c.req.param('id');
71
+ const dataset = store.getDataset(tenantId, id);
72
+ if (!dataset)
73
+ return c.json({ error: 'Dataset not found' }, 404);
74
+ const testCases = store.getTestCases(id);
75
+ return c.json({ ...dataset, testCases });
76
+ });
77
+ app.put('/datasets/:id', async (c) => {
78
+ const store = getStore();
79
+ if (!store)
80
+ return c.json({ error: 'Database not available' }, 500);
81
+ const tenantId = getTenantId(c);
82
+ const id = c.req.param('id');
83
+ const body = await c.req.json().catch(() => null);
84
+ if (!body)
85
+ return c.json({ error: 'Request body required' }, 400);
86
+ const updated = store.updateDataset(tenantId, id, body);
87
+ if (!updated)
88
+ return c.json({ error: 'Dataset not found' }, 404);
89
+ return c.json(updated);
90
+ });
91
+ app.post('/datasets/:id/cases', async (c) => {
92
+ const store = getStore();
93
+ if (!store)
94
+ return c.json({ error: 'Database not available' }, 500);
95
+ const tenantId = getTenantId(c);
96
+ const id = c.req.param('id');
97
+ const body = await c.req.json().catch(() => null);
98
+ if (!body || !Array.isArray(body.testCases)) {
99
+ return c.json({ error: 'testCases array is required' }, 400);
100
+ }
101
+ try {
102
+ const cases = store.addTestCases(id, tenantId, body.testCases);
103
+ return c.json({ testCases: cases }, 201);
104
+ }
105
+ catch (err) {
106
+ const msg = err.message;
107
+ if (msg.includes('not found'))
108
+ return c.json({ error: msg }, 404);
109
+ if (msg.includes('immutable'))
110
+ return c.json({ error: msg }, 409);
111
+ return c.json({ error: msg }, 400);
112
+ }
113
+ });
114
+ app.put('/datasets/:id/cases/:caseId', async (c) => {
115
+ const store = getStore();
116
+ if (!store)
117
+ return c.json({ error: 'Database not available' }, 500);
118
+ const tenantId = getTenantId(c);
119
+ const caseId = c.req.param('caseId');
120
+ const body = await c.req.json().catch(() => null);
121
+ if (!body)
122
+ return c.json({ error: 'Request body required' }, 400);
123
+ try {
124
+ const updated = store.updateTestCase(tenantId, caseId, body);
125
+ if (!updated)
126
+ return c.json({ error: 'Test case not found' }, 404);
127
+ return c.json(updated);
128
+ }
129
+ catch (err) {
130
+ const msg = err.message;
131
+ if (msg.includes('immutable'))
132
+ return c.json({ error: msg }, 409);
133
+ return c.json({ error: msg }, 400);
134
+ }
135
+ });
136
+ app.delete('/datasets/:id/cases/:caseId', async (c) => {
137
+ const store = getStore();
138
+ if (!store)
139
+ return c.json({ error: 'Database not available' }, 500);
140
+ const tenantId = getTenantId(c);
141
+ const caseId = c.req.param('caseId');
142
+ try {
143
+ const deleted = store.deleteTestCase(tenantId, caseId);
144
+ if (!deleted)
145
+ return c.json({ error: 'Test case not found' }, 404);
146
+ return c.body(null, 204);
147
+ }
148
+ catch (err) {
149
+ const msg = err.message;
150
+ if (msg.includes('immutable'))
151
+ return c.json({ error: msg }, 409);
152
+ return c.json({ error: msg }, 400);
153
+ }
154
+ });
155
+ app.post('/datasets/:id/versions', async (c) => {
156
+ const store = getStore();
157
+ if (!store)
158
+ return c.json({ error: 'Database not available' }, 500);
159
+ const tenantId = getTenantId(c);
160
+ const id = c.req.param('id');
161
+ try {
162
+ const newVersion = store.createVersion(tenantId, id);
163
+ return c.json(newVersion, 201);
164
+ }
165
+ catch (err) {
166
+ const msg = err.message;
167
+ if (msg.includes('not found'))
168
+ return c.json({ error: msg }, 404);
169
+ return c.json({ error: msg }, 400);
170
+ }
171
+ });
172
+ // ─── Run Routes ────────────────────────────────────────
173
+ app.post('/runs', async (c) => {
174
+ const store = getStore();
175
+ if (!store)
176
+ return c.json({ error: 'Database not available' }, 500);
177
+ const tenantId = getTenantId(c);
178
+ const body = await c.req.json().catch(() => null);
179
+ if (!body)
180
+ return c.json({ error: 'Request body required' }, 400);
181
+ if (!body.datasetId)
182
+ return c.json({ error: 'datasetId is required' }, 400);
183
+ if (!body.agentId)
184
+ return c.json({ error: 'agentId is required' }, 400);
185
+ if (!body.webhookUrl)
186
+ return c.json({ error: 'webhookUrl is required' }, 400);
187
+ const config = {
188
+ scorers: body.config?.scorers ?? [{ type: 'exact_match' }],
189
+ passThreshold: body.config?.passThreshold ?? 0.7,
190
+ concurrency: body.config?.concurrency ?? 5,
191
+ rateLimitPerSec: body.config?.rateLimitPerSec,
192
+ timeoutMs: body.config?.timeoutMs,
193
+ retries: body.config?.retries,
194
+ baselineRunId: body.config?.baselineRunId,
195
+ };
196
+ try {
197
+ const run = store.createRun(tenantId, {
198
+ datasetId: body.datasetId,
199
+ agentId: body.agentId,
200
+ webhookUrl: body.webhookUrl,
201
+ config,
202
+ baselineRunId: body.config?.baselineRunId,
203
+ });
204
+ // Spawn async execution
205
+ const runner = new EvalRunner({ evalStore: store, scorerRegistry: registry });
206
+ runner.execute(run.id, tenantId).catch((err) => {
207
+ console.error(`[eval] Run ${run.id} failed:`, err);
208
+ });
209
+ return c.json({ id: run.id, status: run.status }, 202);
210
+ }
211
+ catch (err) {
212
+ const msg = err.message;
213
+ if (msg.includes('not found'))
214
+ return c.json({ error: msg }, 404);
215
+ return c.json({ error: msg }, 400);
216
+ }
217
+ });
218
+ app.get('/runs', async (c) => {
219
+ const store = getStore();
220
+ if (!store)
221
+ return c.json({ error: 'Database not available' }, 500);
222
+ const tenantId = getTenantId(c);
223
+ const datasetId = c.req.query('datasetId') || undefined;
224
+ const agentId = c.req.query('agentId') || undefined;
225
+ const status = c.req.query('status') || undefined;
226
+ const limit = c.req.query('limit') ? parseInt(c.req.query('limit'), 10) : undefined;
227
+ const offset = c.req.query('offset') ? parseInt(c.req.query('offset'), 10) : undefined;
228
+ const { runs, total } = store.listRuns(tenantId, { datasetId, agentId, status, limit, offset });
229
+ return c.json({ runs, total, hasMore: (offset ?? 0) + runs.length < total });
230
+ });
231
+ app.get('/runs/:id', async (c) => {
232
+ const store = getStore();
233
+ if (!store)
234
+ return c.json({ error: 'Database not available' }, 500);
235
+ const tenantId = getTenantId(c);
236
+ const id = c.req.param('id');
237
+ const run = store.getRun(tenantId, id);
238
+ if (!run)
239
+ return c.json({ error: 'Run not found' }, 404);
240
+ return c.json(run);
241
+ });
242
+ app.get('/runs/:id/results', async (c) => {
243
+ const store = getStore();
244
+ if (!store)
245
+ return c.json({ error: 'Database not available' }, 500);
246
+ const tenantId = getTenantId(c);
247
+ const id = c.req.param('id');
248
+ const run = store.getRun(tenantId, id);
249
+ if (!run)
250
+ return c.json({ error: 'Run not found' }, 404);
251
+ let results = store.getResults(id);
252
+ // Filter by passed
253
+ const passedFilter = c.req.query('passed');
254
+ if (passedFilter !== undefined) {
255
+ const passed = passedFilter === 'true';
256
+ results = results.filter((r) => r.passed === passed);
257
+ }
258
+ // Filter by tag
259
+ const tagFilter = c.req.query('tag');
260
+ if (tagFilter) {
261
+ const testCases = store.getTestCases(run.datasetId);
262
+ const caseIdsWithTag = new Set(testCases.filter((tc) => tc.tags.includes(tagFilter)).map((tc) => tc.id));
263
+ results = results.filter((r) => caseIdsWithTag.has(r.testCaseId));
264
+ }
265
+ return c.json({ results });
266
+ });
267
+ app.post('/runs/:id/cancel', async (c) => {
268
+ const store = getStore();
269
+ if (!store)
270
+ return c.json({ error: 'Database not available' }, 500);
271
+ const tenantId = getTenantId(c);
272
+ const id = c.req.param('id');
273
+ const run = store.getRun(tenantId, id);
274
+ if (!run)
275
+ return c.json({ error: 'Run not found' }, 404);
276
+ store.cancelRun(id);
277
+ return c.json({ id, status: 'cancelled' });
278
+ });
279
+ return app;
280
+ }
281
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/routes/eval.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/routes/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAO1E,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE;IACL,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAClD;eAEiC,aAAa;0CA0PhD"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/routes/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAU1E,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE;IACL,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAClD;eAEiC,aAAa;0CA0PhD"}
@@ -6,18 +6,23 @@
6
6
  * GET /api/events/:id — get single event
7
7
  */
8
8
  import { Hono } from 'hono';
9
+ import { bodyLimit } from 'hono/body-limit';
9
10
  import { ulid } from 'ulid';
10
11
  import { z } from 'zod';
11
12
  import { ingestEventSchema, computeEventHash, truncatePayload, DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, } from '@agentlensai/core';
12
13
  import { eventBus } from '../lib/event-bus.js';
13
- import { getTenantStore } from './tenant-helper.js';
14
+ import { getTenantId, getTenantStore } from './tenant-helper.js';
14
15
  import { summarizeEvent, summarizeSession } from '../lib/embeddings/summarizer.js';
16
+ import { createLogger } from '../lib/logger.js';
17
+ const log = createLogger('Events');
15
18
  /** Schema for the batch ingestion request body */
16
19
  const ingestBatchSchema = z.object({
17
20
  events: z.array(ingestEventSchema).min(1).max(1000),
18
21
  });
19
22
  export function eventsRoutes(store, deps) {
20
23
  const app = new Hono();
24
+ // H-4 FIX: Body size limit (10MB) to prevent abuse
25
+ app.use('*', bodyLimit({ maxSize: 10 * 1024 * 1024 }));
21
26
  // POST /api/events — ingest events
22
27
  app.post('/', async (c) => {
23
28
  const tenantStore = getTenantStore(store, c);
@@ -31,7 +36,7 @@ export function eventsRoutes(store, deps) {
31
36
  error: 'Validation failed',
32
37
  status: 400,
33
38
  details: parseResult.error.issues.map((issue) => ({
34
- path: issue.path.join('.'),
39
+ path: issue.path.map(String).join('.'),
35
40
  message: issue.message,
36
41
  })),
37
42
  }, 400);
@@ -77,7 +82,7 @@ export function eventsRoutes(store, deps) {
77
82
  metadata,
78
83
  prevHash,
79
84
  hash,
80
- tenantId: 'default',
85
+ tenantId: getTenantId(c),
81
86
  };
82
87
  allProcessed.push(event);
83
88
  prevHash = hash;
@@ -100,8 +105,8 @@ export function eventsRoutes(store, deps) {
100
105
  }
101
106
  catch (error) {
102
107
  // If any session group fails, the entire batch is rejected
103
- const message = error instanceof Error ? error.message : 'Unknown error';
104
- return c.json({ error: `Batch insert failed: ${message}`, status: 500 }, 500);
108
+ log.error('Batch insert failed', { error: error instanceof Error ? error.message : String(error) });
109
+ return c.json({ error: 'Batch insert failed: Internal server error', status: 500 }, 500);
105
110
  }
106
111
  // Emit events to EventBus for SSE fan-out (async, non-blocking)
107
112
  const now = new Date().toISOString();
@@ -161,7 +166,7 @@ export function eventsRoutes(store, deps) {
161
166
  }
162
167
  catch (err) {
163
168
  // Fail-safe: log and continue — never block event ingest
164
- console.error(`[events] Failed to generate session summary for ${endedEvent.sessionId}:`, err instanceof Error ? err.message : err);
169
+ log.error(`Failed to generate session summary for ${endedEvent.sessionId}`, { error: err instanceof Error ? err.message : String(err) });
165
170
  }
166
171
  }
167
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/routes/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/routes/events.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
  import { Hono } from 'hono';
13
13
  import type { AuthVariables } from '../middleware/auth.js';
14
14
  import type { GuardrailStore } from '../db/guardrail-store.js';
15
- export declare function guardrailRoutes(guardrailStore: GuardrailStore): Hono<{
15
+ import type { ContentGuardrailEngine } from '../lib/guardrails/content-engine.js';
16
+ export declare function guardrailRoutes(guardrailStore: GuardrailStore, contentEngine?: ContentGuardrailEngine): Hono<{
16
17
  Variables: AuthVariables;
17
18
  }, import("hono/types").BlankSchema, "/">;
18
19
  //# sourceMappingURL=guardrails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/routes/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAsC/D,wBAAgB,eAAe,CAAC,cAAc,EAAE,cAAc;eAC1B,aAAa;0CA2JhD"}
1
+ {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/routes/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAwClF,wBAAgB,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,sBAAsB;eAClE,aAAa;0CAyOhD"}
@@ -12,6 +12,8 @@
12
12
  import { Hono } from 'hono';
13
13
  import { ulid } from 'ulid';
14
14
  import { CreateGuardrailRuleSchema, UpdateGuardrailRuleSchema } from '@agentlensai/core';
15
+ import { invalidateScanner } from '../lib/guardrails/scanners/scanner-registry.js';
16
+ import { getTenantId } from './tenant-helper.js';
15
17
  /**
16
18
  * Validate that conditionConfig contains required fields for the given condition type.
17
19
  * Returns an error message string if invalid, or null if valid.
@@ -47,14 +49,17 @@ function validateConditionConfig(conditionType, config) {
47
49
  }
48
50
  return null;
49
51
  }
50
- export function guardrailRoutes(guardrailStore) {
52
+ export function guardrailRoutes(guardrailStore, contentEngine) {
51
53
  const app = new Hono();
52
- // Helper to get tenant ID from auth
53
- function getTenantId(c) {
54
- const apiKeyInfo = c.get('apiKey');
55
- return apiKeyInfo?.tenantId ?? 'default';
56
- }
57
- // POST /Create guardrail rule
54
+ /**
55
+ * @summary Create a new guardrail rule
56
+ * @description Creates a guardrail rule with a condition type, action type, and their configs.
57
+ * Validates the body against CreateGuardrailRuleSchema, checks conditionConfig fields,
58
+ * and validates webhook URLs for notify_webhook actions.
59
+ * @body {CreateGuardrailRule}name, conditionType, conditionConfig, actionType, actionConfig, agentId, etc.
60
+ * @returns {201} `GuardrailRule` — the created rule with generated id and timestamps
61
+ * @throws {400} Validation failed (schema, conditionConfig, or webhook URL)
62
+ */
58
63
  app.post('/', async (c) => {
59
64
  const tenantId = getTenantId(c);
60
65
  const rawBody = await c.req.json().catch(() => null);
@@ -92,14 +97,51 @@ export function guardrailRoutes(guardrailStore) {
92
97
  guardrailStore.createRule(rule);
93
98
  return c.json(rule, 201);
94
99
  });
95
- // GET / — List guardrail rules
100
+ /**
101
+ * @summary Evaluate content against guardrail rules (Feature 8)
102
+ */
103
+ app.post('/evaluate', async (c) => {
104
+ if (!contentEngine) {
105
+ return c.json({ error: 'Content engine not available', status: 501 }, 501);
106
+ }
107
+ const body = await c.req.json().catch(() => null);
108
+ if (!body?.content || !body?.context?.tenantId || !body?.context?.agentId) {
109
+ return c.json({ error: 'Missing content or context (tenantId, agentId required)', status: 400 }, 400);
110
+ }
111
+ const result = await contentEngine.evaluateContentSync(body.content, {
112
+ tenantId: body.context.tenantId,
113
+ agentId: body.context.agentId,
114
+ toolName: body.context.toolName ?? 'unknown',
115
+ direction: body.context.direction ?? 'input',
116
+ }, body.timeoutMs);
117
+ return c.json(result);
118
+ });
119
+ /**
120
+ * @summary List guardrail rules
121
+ * @description Returns all guardrail rules for the tenant, optionally filtered by agent.
122
+ * @param {string} [agentId] — filter by agent ID (query param)
123
+ * @param {string} [type] — filter: 'content' for content rules only (query param)
124
+ * @returns {200} `{ rules: GuardrailRule[] }`
125
+ */
96
126
  app.get('/', async (c) => {
97
127
  const tenantId = getTenantId(c);
98
128
  const agentId = c.req.query('agentId');
99
- const rules = guardrailStore.listRules(tenantId, agentId || undefined);
129
+ const type = c.req.query('type');
130
+ let rules = guardrailStore.listRules(tenantId, agentId || undefined);
131
+ if (type === 'content') {
132
+ const contentTypes = new Set(['pii_detection', 'secrets_detection', 'content_regex', 'toxicity_detection', 'prompt_injection']);
133
+ rules = rules.filter((r) => contentTypes.has(r.conditionType));
134
+ }
100
135
  return c.json({ rules });
101
136
  });
102
- // GET /history — List trigger history (BEFORE :id routes to avoid route conflict)
137
+ /**
138
+ * @summary List guardrail trigger history
139
+ * @description Returns paginated trigger history, optionally filtered by rule ID.
140
+ * @param {string} [ruleId] — filter by rule ID (query param)
141
+ * @param {number} [limit] — max results 1-200, default 50 (query param)
142
+ * @param {number} [offset] — pagination offset, default 0 (query param)
143
+ * @returns {200} `{ triggers: TriggerRecord[], total: number }`
144
+ */
103
145
  app.get('/history', async (c) => {
104
146
  const tenantId = getTenantId(c);
105
147
  const ruleId = c.req.query('ruleId');
@@ -112,7 +154,13 @@ export function guardrailRoutes(guardrailStore) {
112
154
  });
113
155
  return c.json({ triggers, total });
114
156
  });
115
- // GET /:id — Get single rule
157
+ /**
158
+ * @summary Get a single guardrail rule
159
+ * @description Returns the full guardrail rule by ID.
160
+ * @param {string} id — Rule ID (path)
161
+ * @returns {200} `GuardrailRule`
162
+ * @throws {404} Rule not found
163
+ */
116
164
  app.get('/:id', async (c) => {
117
165
  const tenantId = getTenantId(c);
118
166
  const ruleId = c.req.param('id');
@@ -122,7 +170,16 @@ export function guardrailRoutes(guardrailStore) {
122
170
  }
123
171
  return c.json(rule);
124
172
  });
125
- // PUT /:id — Update rule
173
+ /**
174
+ * @summary Update a guardrail rule
175
+ * @description Partially updates a guardrail rule. Validates against UpdateGuardrailRuleSchema
176
+ * and checks webhook URLs for notify_webhook actions. Setting agentId to null clears the scope.
177
+ * @param {string} id — Rule ID (path)
178
+ * @body {UpdateGuardrailRule} — partial rule fields to update
179
+ * @returns {200} `GuardrailRule` — the updated rule
180
+ * @throws {400} Invalid JSON body or validation failed
181
+ * @throws {404} Rule not found
182
+ */
126
183
  app.put('/:id', async (c) => {
127
184
  const tenantId = getTenantId(c);
128
185
  const ruleId = c.req.param('id');
@@ -154,10 +211,17 @@ export function guardrailRoutes(guardrailStore) {
154
211
  if (!updated) {
155
212
  return c.json({ error: 'Guardrail rule not found', status: 404 }, 404);
156
213
  }
214
+ invalidateScanner(ruleId);
157
215
  const rule = guardrailStore.getRule(tenantId, ruleId);
158
216
  return c.json(rule);
159
217
  });
160
- // DELETE /:id — Delete rule
218
+ /**
219
+ * @summary Delete a guardrail rule
220
+ * @description Permanently removes a guardrail rule by ID.
221
+ * @param {string} id — Rule ID (path)
222
+ * @returns {200} `{ ok: true }`
223
+ * @throws {404} Rule not found
224
+ */
161
225
  app.delete('/:id', async (c) => {
162
226
  const tenantId = getTenantId(c);
163
227
  const ruleId = c.req.param('id');
@@ -165,9 +229,16 @@ export function guardrailRoutes(guardrailStore) {
165
229
  if (!deleted) {
166
230
  return c.json({ error: 'Guardrail rule not found', status: 404 }, 404);
167
231
  }
232
+ invalidateScanner(ruleId);
168
233
  return c.json({ ok: true });
169
234
  });
170
- // GET /:id/status — Get rule status + recent triggers
235
+ /**
236
+ * @summary Get guardrail rule status and recent triggers
237
+ * @description Returns the rule definition, its current state, and the 10 most recent trigger events.
238
+ * @param {string} id — Rule ID (path)
239
+ * @returns {200} `{ rule: GuardrailRule, state: GuardrailState, recentTriggers: TriggerRecord[] }`
240
+ * @throws {404} Rule not found
241
+ */
171
242
  app.get('/:id/status', async (c) => {
172
243
  const tenantId = getTenantId(c);
173
244
  const ruleId = c.req.param('id');
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/routes/guardrails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/routes/guardrails.ts"],"names":[],"mappings":"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"}