@agentlensai/server 0.7.0 → 0.9.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 (132) hide show
  1. package/dist/db/anonymous-id-manager.d.ts +44 -0
  2. package/dist/db/anonymous-id-manager.d.ts.map +1 -0
  3. package/dist/db/anonymous-id-manager.js +90 -0
  4. package/dist/db/anonymous-id-manager.js.map +1 -0
  5. package/dist/db/capability-store.d.ts +78 -0
  6. package/dist/db/capability-store.d.ts.map +1 -0
  7. package/dist/db/capability-store.js +201 -0
  8. package/dist/db/capability-store.js.map +1 -0
  9. package/dist/db/guardrail-store.d.ts +34 -0
  10. package/dist/db/guardrail-store.d.ts.map +1 -0
  11. package/dist/db/guardrail-store.js +221 -0
  12. package/dist/db/guardrail-store.js.map +1 -0
  13. package/dist/db/migrate.d.ts.map +1 -1
  14. package/dist/db/migrate.js +200 -0
  15. package/dist/db/migrate.js.map +1 -1
  16. package/dist/db/schema.sqlite.d.ts +1719 -1
  17. package/dist/db/schema.sqlite.d.ts.map +1 -1
  18. package/dist/db/schema.sqlite.js +141 -1
  19. package/dist/db/schema.sqlite.js.map +1 -1
  20. package/dist/db/sqlite-store.d.ts +12 -0
  21. package/dist/db/sqlite-store.d.ts.map +1 -1
  22. package/dist/db/sqlite-store.js +47 -0
  23. package/dist/db/sqlite-store.js.map +1 -1
  24. package/dist/db/tenant-scoped-store.d.ts +1 -0
  25. package/dist/db/tenant-scoped-store.d.ts.map +1 -1
  26. package/dist/db/tenant-scoped-store.js +3 -0
  27. package/dist/db/tenant-scoped-store.js.map +1 -1
  28. package/dist/index.d.ts +8 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +52 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/lib/guardrails/actions.d.ts +28 -0
  33. package/dist/lib/guardrails/actions.d.ts.map +1 -0
  34. package/dist/lib/guardrails/actions.js +126 -0
  35. package/dist/lib/guardrails/actions.js.map +1 -0
  36. package/dist/lib/guardrails/conditions.d.ts +13 -0
  37. package/dist/lib/guardrails/conditions.d.ts.map +1 -0
  38. package/dist/lib/guardrails/conditions.js +188 -0
  39. package/dist/lib/guardrails/conditions.js.map +1 -0
  40. package/dist/lib/guardrails/engine.d.ts +24 -0
  41. package/dist/lib/guardrails/engine.d.ts.map +1 -0
  42. package/dist/lib/guardrails/engine.js +122 -0
  43. package/dist/lib/guardrails/engine.js.map +1 -0
  44. package/dist/lib/redaction/human-review-layer.d.ts +37 -0
  45. package/dist/lib/redaction/human-review-layer.d.ts.map +1 -0
  46. package/dist/lib/redaction/human-review-layer.js +62 -0
  47. package/dist/lib/redaction/human-review-layer.js.map +1 -0
  48. package/dist/lib/redaction/index.d.ts +12 -0
  49. package/dist/lib/redaction/index.d.ts.map +1 -0
  50. package/dist/lib/redaction/index.js +12 -0
  51. package/dist/lib/redaction/index.js.map +1 -0
  52. package/dist/lib/redaction/pii-detection-layer.d.ts +30 -0
  53. package/dist/lib/redaction/pii-detection-layer.d.ts.map +1 -0
  54. package/dist/lib/redaction/pii-detection-layer.js +183 -0
  55. package/dist/lib/redaction/pii-detection-layer.js.map +1 -0
  56. package/dist/lib/redaction/pipeline.d.ts +26 -0
  57. package/dist/lib/redaction/pipeline.d.ts.map +1 -0
  58. package/dist/lib/redaction/pipeline.js +91 -0
  59. package/dist/lib/redaction/pipeline.js.map +1 -0
  60. package/dist/lib/redaction/secret-detection-layer.d.ts +10 -0
  61. package/dist/lib/redaction/secret-detection-layer.d.ts.map +1 -0
  62. package/dist/lib/redaction/secret-detection-layer.js +79 -0
  63. package/dist/lib/redaction/secret-detection-layer.js.map +1 -0
  64. package/dist/lib/redaction/secret-patterns.d.ts +29 -0
  65. package/dist/lib/redaction/secret-patterns.d.ts.map +1 -0
  66. package/dist/lib/redaction/secret-patterns.js +133 -0
  67. package/dist/lib/redaction/secret-patterns.js.map +1 -0
  68. package/dist/lib/redaction/semantic-denylist-layer.d.ts +10 -0
  69. package/dist/lib/redaction/semantic-denylist-layer.d.ts.map +1 -0
  70. package/dist/lib/redaction/semantic-denylist-layer.js +64 -0
  71. package/dist/lib/redaction/semantic-denylist-layer.js.map +1 -0
  72. package/dist/lib/redaction/tenant-deidentification-layer.d.ts +10 -0
  73. package/dist/lib/redaction/tenant-deidentification-layer.d.ts.map +1 -0
  74. package/dist/lib/redaction/tenant-deidentification-layer.js +64 -0
  75. package/dist/lib/redaction/tenant-deidentification-layer.js.map +1 -0
  76. package/dist/lib/redaction/url-path-scrubbing-layer.d.ts +14 -0
  77. package/dist/lib/redaction/url-path-scrubbing-layer.d.ts.map +1 -0
  78. package/dist/lib/redaction/url-path-scrubbing-layer.js +156 -0
  79. package/dist/lib/redaction/url-path-scrubbing-layer.js.map +1 -0
  80. package/dist/routes/agents.d.ts +4 -3
  81. package/dist/routes/agents.d.ts.map +1 -1
  82. package/dist/routes/agents.js +31 -12
  83. package/dist/routes/agents.js.map +1 -1
  84. package/dist/routes/audit.d.ts +15 -0
  85. package/dist/routes/audit.d.ts.map +1 -0
  86. package/dist/routes/audit.js +177 -0
  87. package/dist/routes/audit.js.map +1 -0
  88. package/dist/routes/capabilities.d.ts +15 -0
  89. package/dist/routes/capabilities.d.ts.map +1 -0
  90. package/dist/routes/capabilities.js +86 -0
  91. package/dist/routes/capabilities.js.map +1 -0
  92. package/dist/routes/community.d.ts +24 -0
  93. package/dist/routes/community.d.ts.map +1 -0
  94. package/dist/routes/community.js +190 -0
  95. package/dist/routes/community.js.map +1 -0
  96. package/dist/routes/delegation.d.ts +20 -0
  97. package/dist/routes/delegation.d.ts.map +1 -0
  98. package/dist/routes/delegation.js +108 -0
  99. package/dist/routes/delegation.js.map +1 -0
  100. package/dist/routes/discovery.d.ts +19 -0
  101. package/dist/routes/discovery.d.ts.map +1 -0
  102. package/dist/routes/discovery.js +96 -0
  103. package/dist/routes/discovery.js.map +1 -0
  104. package/dist/routes/guardrails.d.ts +18 -0
  105. package/dist/routes/guardrails.d.ts.map +1 -0
  106. package/dist/routes/guardrails.js +184 -0
  107. package/dist/routes/guardrails.js.map +1 -0
  108. package/dist/routes/redaction-test.d.ts +14 -0
  109. package/dist/routes/redaction-test.d.ts.map +1 -0
  110. package/dist/routes/redaction-test.js +33 -0
  111. package/dist/routes/redaction-test.js.map +1 -0
  112. package/dist/routes/trust.d.ts +16 -0
  113. package/dist/routes/trust.d.ts.map +1 -0
  114. package/dist/routes/trust.js +23 -0
  115. package/dist/routes/trust.js.map +1 -0
  116. package/dist/services/community-service.d.ts +277 -0
  117. package/dist/services/community-service.d.ts.map +1 -0
  118. package/dist/services/community-service.js +785 -0
  119. package/dist/services/community-service.js.map +1 -0
  120. package/dist/services/delegation-service.d.ts +149 -0
  121. package/dist/services/delegation-service.d.ts.map +1 -0
  122. package/dist/services/delegation-service.js +605 -0
  123. package/dist/services/delegation-service.js.map +1 -0
  124. package/dist/services/discovery-service.d.ts +39 -0
  125. package/dist/services/discovery-service.d.ts.map +1 -0
  126. package/dist/services/discovery-service.js +186 -0
  127. package/dist/services/discovery-service.js.map +1 -0
  128. package/dist/services/trust-service.d.ts +59 -0
  129. package/dist/services/trust-service.d.ts.map +1 -0
  130. package/dist/services/trust-service.js +139 -0
  131. package/dist/services/trust-service.js.map +1 -0
  132. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -33,6 +33,18 @@ import { optimizeRoutes } from './routes/optimize.js';
33
33
  import { registerHealthRoutes } from './routes/health.js';
34
34
  import { registerReplayRoutes } from './routes/replay.js';
35
35
  import { benchmarkRoutes } from './routes/benchmarks.js';
36
+ import { guardrailRoutes } from './routes/guardrails.js';
37
+ import { capabilityRoutes } from './routes/capabilities.js';
38
+ import { discoveryRoutes } from './routes/discovery.js';
39
+ import { delegationRoutes } from './routes/delegation.js';
40
+ import { trustRoutes } from './routes/trust.js';
41
+ import { LocalPoolTransport } from './services/delegation-service.js';
42
+ import { redactionTestRoutes } from './routes/redaction-test.js';
43
+ import { communityRoutes } from './routes/community.js';
44
+ import { auditRoutes } from './routes/audit.js';
45
+ import { GuardrailEngine } from './lib/guardrails/engine.js';
46
+ import { GuardrailStore } from './db/guardrail-store.js';
47
+ import { setAgentStore } from './lib/guardrails/actions.js';
36
48
  import { createDb } from './db/index.js';
37
49
  import { runMigrations } from './db/migrate.js';
38
50
  import { SqliteEventStore } from './db/sqlite-store.js';
@@ -73,6 +85,12 @@ export { SessionSummaryStore } from './db/session-summary-store.js';
73
85
  export { contextRoutes } from './routes/context.js';
74
86
  export { registerHealthRoutes } from './routes/health.js';
75
87
  export { ContextRetriever } from './lib/context/retrieval.js';
88
+ export { communityRoutes } from './routes/community.js';
89
+ export { CommunityService, LocalCommunityPoolTransport, computeSimpleEmbedding } from './services/community-service.js';
90
+ export { guardrailRoutes } from './routes/guardrails.js';
91
+ export { GuardrailEngine } from './lib/guardrails/engine.js';
92
+ export { GuardrailStore } from './db/guardrail-store.js';
93
+ export { RedactionPipeline, SecretDetectionLayer, PIIDetectionLayer, UrlPathScrubbingLayer, TenantDeidentificationLayer, SemanticDenyListLayer, HumanReviewLayer, } from './lib/redaction/index.js';
76
94
  // ─── Dashboard SPA helpers ───────────────────────────────────
77
95
  /**
78
96
  * Resolve the dashboard dist/ directory path.
@@ -201,6 +219,8 @@ export function createApp(store, config) {
201
219
  app.use('/api/benchmarks', authMiddleware(db, resolvedConfig.authDisabled));
202
220
  app.use('/api/health/overview', authMiddleware(db, resolvedConfig.authDisabled));
203
221
  app.use('/api/health/history', authMiddleware(db, resolvedConfig.authDisabled));
222
+ app.use('/api/guardrails/*', authMiddleware(db, resolvedConfig.authDisabled));
223
+ app.use('/api/guardrails', authMiddleware(db, resolvedConfig.authDisabled));
204
224
  }
205
225
  // ─── Routes ────────────────────────────────────────────
206
226
  if (db) {
@@ -216,6 +236,16 @@ export function createApp(store, config) {
216
236
  app.route('/api/sessions', sessionsRoutes(store));
217
237
  // Health routes registered directly on main app (before generic agents routes)
218
238
  registerHealthRoutes(app, store, db);
239
+ if (db) {
240
+ const { app: discApp } = discoveryRoutes(db);
241
+ app.route('/api/agents', discApp);
242
+ app.route('/api/agents', capabilityRoutes(store, db));
243
+ const poolTransport = new LocalPoolTransport();
244
+ const { app: delApp } = delegationRoutes(db, poolTransport);
245
+ app.route('/api/agents', delApp);
246
+ const { app: trustApp } = trustRoutes(db);
247
+ app.route('/api/agents', trustApp);
248
+ }
219
249
  app.route('/api/agents', agentsRoutes(store));
220
250
  app.route('/api/stats', statsRoutes(store));
221
251
  if (db) {
@@ -234,6 +264,11 @@ export function createApp(store, config) {
234
264
  if (db) {
235
265
  app.route('/api/benchmarks', benchmarkRoutes(store, db));
236
266
  }
267
+ // ─── Guardrails / Proactive Guardrails ────────────────
268
+ if (db) {
269
+ const gStore = new GuardrailStore(db);
270
+ app.route('/api/guardrails', guardrailRoutes(gStore));
271
+ }
237
272
  // ─── Recall / Semantic Search ─────────────────────────
238
273
  {
239
274
  const embeddingService = config?.embeddingService ?? null;
@@ -248,6 +283,17 @@ export function createApp(store, config) {
248
283
  }));
249
284
  }
250
285
  }
286
+ // ─── Community Sharing (Stories 4.1–4.3) ────────────────
287
+ if (db) {
288
+ app.use('/api/community/*', authMiddleware(db, resolvedConfig.authDisabled));
289
+ app.use('/api/community', authMiddleware(db, resolvedConfig.authDisabled));
290
+ const { app: communityApp } = communityRoutes(db);
291
+ app.route('/api/community', communityApp);
292
+ // Audit routes (Story 7.4)
293
+ app.route('/api/community/audit', auditRoutes(db));
294
+ }
295
+ // ─── Redaction Test (Story 2.4) ────────────────────────
296
+ app.route('/api/community/redaction', redactionTestRoutes());
251
297
  // ─── Dashboard SPA static assets ──────────────────────
252
298
  const dashboardRoot = getDashboardRoot();
253
299
  if (dashboardRoot) {
@@ -289,6 +335,12 @@ export async function startServer() {
289
335
  // Start alert evaluation engine
290
336
  const alertEngine = new AlertEngine(store);
291
337
  alertEngine.start();
338
+ // Start guardrail evaluation engine (v0.8.0)
339
+ // Wire the agent store so pause_agent/downgrade_model actions can UPDATE the agents table (B1)
340
+ setAgentStore(store);
341
+ const guardrailEngine = new GuardrailEngine(store, db);
342
+ guardrailEngine.start();
343
+ console.log(' Guardrails: enabled');
292
344
  serve({
293
345
  fetch: app.fetch,
294
346
  port: config.port,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Guardrail Action Executors (v0.8.0 — Story 1.5)
3
+ *
4
+ * All executors are FAIL-SAFE — catch errors and return a result string.
5
+ */
6
+ import type { GuardrailRule, GuardrailConditionResult } from '@agentlensai/core';
7
+ export interface ActionResult {
8
+ success: boolean;
9
+ result: string;
10
+ }
11
+ /**
12
+ * Store interface for agent-level DB updates.
13
+ * B1 (Story 1.2) wires this to the real SqliteEventStore methods
14
+ * that UPDATE the agents table's paused_at, pause_reason, model_override columns.
15
+ */
16
+ export interface AgentStore {
17
+ pauseAgent(tenantId: string, agentId: string, reason: string): Promise<boolean> | void;
18
+ unpauseAgent(tenantId: string, agentId: string, clearModelOverride?: boolean): Promise<boolean> | void;
19
+ setModelOverride(tenantId: string, agentId: string, model: string): Promise<boolean> | void;
20
+ }
21
+ export declare function setAgentStore(store: AgentStore | null): void;
22
+ export declare function getAgentStore(): AgentStore | null;
23
+ export declare function executePauseAgent(rule: GuardrailRule, conditionResult: GuardrailConditionResult, _agentId: string): Promise<ActionResult>;
24
+ export declare function executeNotifyWebhook(rule: GuardrailRule, conditionResult: GuardrailConditionResult, agentId: string): Promise<ActionResult>;
25
+ export declare function executeDowngradeModel(rule: GuardrailRule, conditionResult: GuardrailConditionResult, _agentId: string): Promise<ActionResult>;
26
+ export declare function executeAgentgatePolicy(rule: GuardrailRule, conditionResult: GuardrailConditionResult, agentId: string): Promise<ActionResult>;
27
+ export declare function executeAction(rule: GuardrailRule, conditionResult: GuardrailConditionResult, agentId: string): Promise<ActionResult>;
28
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/lib/guardrails/actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGjF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACvF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACvG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7F;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAE5D;AAED,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,wBAAwB,EACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,wBAAwB,EACzC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAsBvB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,wBAAwB,EACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,wBAAwB,EACzC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,wBAAwB,EACzC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAQvB"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Guardrail Action Executors (v0.8.0 — Story 1.5)
3
+ *
4
+ * All executors are FAIL-SAFE — catch errors and return a result string.
5
+ */
6
+ import { eventBus } from '../event-bus.js';
7
+ /** Module-level agent store — set via `setAgentStore()` when available (Story 1.2). */
8
+ let agentStore = null;
9
+ export function setAgentStore(store) {
10
+ agentStore = store;
11
+ }
12
+ export function getAgentStore() {
13
+ return agentStore;
14
+ }
15
+ export async function executePauseAgent(rule, conditionResult, _agentId) {
16
+ try {
17
+ const config = rule.actionConfig;
18
+ const message = config.message ?? `Guardrail "${rule.name}" triggered: ${conditionResult.message}`;
19
+ // B1 (Story 1.2): Update agents table with paused_at + pause_reason
20
+ if (agentStore?.pauseAgent) {
21
+ await agentStore.pauseAgent(rule.tenantId, _agentId, message);
22
+ }
23
+ eventBus.emit({
24
+ type: 'alert_triggered',
25
+ rule: {
26
+ id: rule.id, name: `guardrail:${rule.name}`, enabled: rule.enabled,
27
+ condition: 'error_rate_exceeds', threshold: conditionResult.threshold, windowMinutes: 0,
28
+ scope: rule.agentId ? { agentId: rule.agentId } : {},
29
+ notifyChannels: [], createdAt: rule.createdAt, updatedAt: rule.updatedAt, tenantId: rule.tenantId,
30
+ },
31
+ history: {
32
+ id: `gh_${Date.now()}`, ruleId: rule.id, triggeredAt: new Date().toISOString(),
33
+ currentValue: conditionResult.currentValue, threshold: conditionResult.threshold,
34
+ message, tenantId: rule.tenantId,
35
+ },
36
+ timestamp: new Date().toISOString(),
37
+ });
38
+ return { success: true, result: 'success' };
39
+ }
40
+ catch (err) {
41
+ return { success: false, result: `failed: ${err instanceof Error ? err.message : 'Unknown'}` };
42
+ }
43
+ }
44
+ export async function executeNotifyWebhook(rule, conditionResult, agentId) {
45
+ try {
46
+ const config = rule.actionConfig;
47
+ if (!config.url)
48
+ return { success: false, result: 'failed: no webhook URL configured' };
49
+ const payload = {
50
+ guardrailId: rule.id, guardrailName: rule.name, conditionType: rule.conditionType,
51
+ conditionValue: conditionResult.currentValue, conditionThreshold: conditionResult.threshold,
52
+ message: conditionResult.message, agentId, triggeredAt: new Date().toISOString(),
53
+ };
54
+ const response = await fetch(config.url, {
55
+ method: 'POST',
56
+ headers: { 'Content-Type': 'application/json', ...(config.headers ?? {}) },
57
+ body: JSON.stringify(payload),
58
+ signal: AbortSignal.timeout(10000),
59
+ });
60
+ return response.ok ? { success: true, result: 'success' } : { success: false, result: `failed: HTTP ${response.status}` };
61
+ }
62
+ catch (err) {
63
+ return { success: false, result: `failed: ${err instanceof Error ? err.message : 'Unknown'}` };
64
+ }
65
+ }
66
+ export async function executeDowngradeModel(rule, conditionResult, _agentId) {
67
+ try {
68
+ const config = rule.actionConfig;
69
+ const message = config.message ?? `Guardrail "${rule.name}" recommends downgrading model`;
70
+ // B1 (Story 1.2): Update agents table with model_override
71
+ if (agentStore?.setModelOverride && config.targetModel) {
72
+ await agentStore.setModelOverride(rule.tenantId, _agentId, config.targetModel);
73
+ }
74
+ eventBus.emit({
75
+ type: 'alert_triggered',
76
+ rule: {
77
+ id: rule.id, name: `guardrail:downgrade:${rule.name}`, enabled: rule.enabled,
78
+ condition: 'error_rate_exceeds', threshold: conditionResult.threshold, windowMinutes: 0,
79
+ scope: rule.agentId ? { agentId: rule.agentId } : {},
80
+ notifyChannels: [], createdAt: rule.createdAt, updatedAt: rule.updatedAt, tenantId: rule.tenantId,
81
+ },
82
+ history: {
83
+ id: `gh_${Date.now()}`, ruleId: rule.id, triggeredAt: new Date().toISOString(),
84
+ currentValue: conditionResult.currentValue, threshold: conditionResult.threshold,
85
+ message: `${message} (target: ${config.targetModel ?? 'unknown'})`, tenantId: rule.tenantId,
86
+ },
87
+ timestamp: new Date().toISOString(),
88
+ });
89
+ return { success: true, result: 'success' };
90
+ }
91
+ catch (err) {
92
+ return { success: false, result: `failed: ${err instanceof Error ? err.message : 'Unknown'}` };
93
+ }
94
+ }
95
+ export async function executeAgentgatePolicy(rule, conditionResult, agentId) {
96
+ try {
97
+ const config = rule.actionConfig;
98
+ if (!config.agentgateUrl)
99
+ return { success: false, result: 'failed: no AgentGate URL configured' };
100
+ const url = `${config.agentgateUrl.replace(/\/$/, '')}/api/policies/${config.policyId ?? 'default'}`;
101
+ const response = await fetch(url, {
102
+ method: 'PUT',
103
+ headers: { 'Content-Type': 'application/json' },
104
+ body: JSON.stringify({
105
+ action: config.action ?? 'restrict',
106
+ reason: `Guardrail "${rule.name}" triggered: ${conditionResult.message}`,
107
+ agentId, triggeredBy: 'agentlens-guardrail', ruleId: rule.id,
108
+ }),
109
+ signal: AbortSignal.timeout(10000),
110
+ });
111
+ return response.ok ? { success: true, result: 'success' } : { success: false, result: `failed: HTTP ${response.status}` };
112
+ }
113
+ catch (err) {
114
+ return { success: false, result: `failed: ${err instanceof Error ? err.message : 'Unknown'}` };
115
+ }
116
+ }
117
+ export async function executeAction(rule, conditionResult, agentId) {
118
+ switch (rule.actionType) {
119
+ case 'pause_agent': return executePauseAgent(rule, conditionResult, agentId);
120
+ case 'notify_webhook': return executeNotifyWebhook(rule, conditionResult, agentId);
121
+ case 'downgrade_model': return executeDowngradeModel(rule, conditionResult, agentId);
122
+ case 'agentgate_policy': return executeAgentgatePolicy(rule, conditionResult, agentId);
123
+ default: return { success: false, result: `unknown action type: ${rule.actionType}` };
124
+ }
125
+ }
126
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/lib/guardrails/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Guardrail Condition Evaluators (v0.8.0 — Story 1.4)
3
+ *
4
+ * Each condition type has an evaluator that queries the store
5
+ * and returns whether the condition is triggered.
6
+ */
7
+ import type { IEventStore, GuardrailRule, GuardrailConditionResult } from '@agentlensai/core';
8
+ export declare function evaluateErrorRateThreshold(store: IEventStore, rule: GuardrailRule, agentId: string): Promise<GuardrailConditionResult>;
9
+ export declare function evaluateCostLimit(store: IEventStore, rule: GuardrailRule, agentId: string, sessionId?: string): Promise<GuardrailConditionResult>;
10
+ export declare function evaluateHealthScoreThreshold(store: IEventStore, rule: GuardrailRule, agentId: string): Promise<GuardrailConditionResult>;
11
+ export declare function evaluateCustomMetric(store: IEventStore, rule: GuardrailRule, agentId: string): Promise<GuardrailConditionResult>;
12
+ export declare function evaluateCondition(store: IEventStore, rule: GuardrailRule, agentId: string, sessionId?: string): Promise<GuardrailConditionResult>;
13
+ //# sourceMappingURL=conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../src/lib/guardrails/conditions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI9F,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,CAsBnC;AA2BD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,CAgFnC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC,CAQnC"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Guardrail Condition Evaluators (v0.8.0 — Story 1.4)
3
+ *
4
+ * Each condition type has an evaluator that queries the store
5
+ * and returns whether the condition is triggered.
6
+ */
7
+ import { DEFAULT_HEALTH_WEIGHTS } from '@agentlensai/core';
8
+ import { HealthComputer } from '../health/computer.js';
9
+ export async function evaluateErrorRateThreshold(store, rule, agentId) {
10
+ const config = rule.conditionConfig;
11
+ const threshold = config.threshold ?? 30;
12
+ const windowMinutes = config.windowMinutes ?? 5;
13
+ const now = new Date();
14
+ const from = new Date(now.getTime() - windowMinutes * 60 * 1000).toISOString();
15
+ const totalCount = await store.countEvents({ agentId, from, to: now.toISOString() });
16
+ if (totalCount === 0) {
17
+ return { triggered: false, currentValue: 0, threshold, message: 'No events in window' };
18
+ }
19
+ // Architecture §3.4: count error, critical severity AND tool_error event types
20
+ const errorCount = await store.countEvents({ agentId, from, to: now.toISOString(), severity: 'error' });
21
+ const criticalCount = await store.countEvents({ agentId, from, to: now.toISOString(), severity: 'critical' });
22
+ const toolErrorCount = await store.countEvents({ agentId, from, to: now.toISOString(), eventType: 'tool_error' });
23
+ // Deduplicate: tool_error events with error/critical severity are already counted above,
24
+ // but store.countEvents filters by a single field, so we take the max of the combined count and totalCount
25
+ const combinedErrors = Math.min(errorCount + criticalCount + toolErrorCount, totalCount);
26
+ const errorRate = (combinedErrors / totalCount) * 100;
27
+ return {
28
+ triggered: errorRate >= threshold,
29
+ currentValue: Math.round(errorRate * 100) / 100,
30
+ threshold,
31
+ message: errorRate >= threshold
32
+ ? `Error rate ${errorRate.toFixed(1)}% exceeds threshold ${threshold}%`
33
+ : `Error rate ${errorRate.toFixed(1)}% within threshold ${threshold}%`,
34
+ };
35
+ }
36
+ export async function evaluateCostLimit(store, rule, agentId, sessionId) {
37
+ const config = rule.conditionConfig;
38
+ const maxCostUsd = config.maxCostUsd ?? 10;
39
+ const scope = config.scope ?? 'daily';
40
+ if (scope === 'session' && sessionId) {
41
+ const session = await store.getSession(sessionId);
42
+ const currentCost = session?.totalCostUsd ?? 0;
43
+ return {
44
+ triggered: currentCost >= maxCostUsd,
45
+ currentValue: Math.round(currentCost * 10000) / 10000,
46
+ threshold: maxCostUsd,
47
+ message: currentCost >= maxCostUsd
48
+ ? `Session cost $${currentCost.toFixed(4)} exceeds limit $${maxCostUsd}`
49
+ : `Session cost $${currentCost.toFixed(4)} within limit $${maxCostUsd}`,
50
+ };
51
+ }
52
+ const todayStart = new Date();
53
+ todayStart.setUTCHours(0, 0, 0, 0);
54
+ const { sessions } = await store.querySessions({ agentId, from: todayStart.toISOString(), limit: 10000 });
55
+ const dailyCost = sessions.reduce((sum, s) => sum + (s.totalCostUsd || 0), 0);
56
+ return {
57
+ triggered: dailyCost >= maxCostUsd,
58
+ currentValue: Math.round(dailyCost * 10000) / 10000,
59
+ threshold: maxCostUsd,
60
+ message: dailyCost >= maxCostUsd
61
+ ? `Daily cost $${dailyCost.toFixed(4)} exceeds limit $${maxCostUsd}`
62
+ : `Daily cost $${dailyCost.toFixed(4)} within limit $${maxCostUsd}`,
63
+ };
64
+ }
65
+ export async function evaluateHealthScoreThreshold(store, rule, agentId) {
66
+ const config = rule.conditionConfig;
67
+ const minScore = config.minScore ?? 50;
68
+ const windowDays = config.windowDays ?? 7;
69
+ try {
70
+ const computer = new HealthComputer(DEFAULT_HEALTH_WEIGHTS);
71
+ const score = await computer.compute(store, agentId, windowDays);
72
+ if (!score) {
73
+ return { triggered: false, currentValue: 0, threshold: minScore, message: 'No sessions found for health computation' };
74
+ }
75
+ return {
76
+ triggered: score.overallScore < minScore,
77
+ currentValue: Math.round(score.overallScore * 100) / 100,
78
+ threshold: minScore,
79
+ message: score.overallScore < minScore
80
+ ? `Health score ${score.overallScore.toFixed(0)} below minimum ${minScore}`
81
+ : `Health score ${score.overallScore.toFixed(0)} above minimum ${minScore}`,
82
+ };
83
+ }
84
+ catch {
85
+ return { triggered: false, currentValue: 0, threshold: minScore, message: 'Failed to compute health score' };
86
+ }
87
+ }
88
+ /**
89
+ * Extract a value from a nested object using dot-notation key path.
90
+ * e.g. getByKeyPath({ a: { b: 3 } }, 'a.b') → 3
91
+ */
92
+ function getByKeyPath(obj, keyPath) {
93
+ const parts = keyPath.split('.');
94
+ let current = obj;
95
+ for (const part of parts) {
96
+ if (current == null || typeof current !== 'object')
97
+ return undefined;
98
+ current = current[part];
99
+ }
100
+ return current;
101
+ }
102
+ function compareMetric(currentValue, operator, targetValue) {
103
+ switch (operator) {
104
+ case 'gt': return currentValue > targetValue;
105
+ case 'gte': return currentValue >= targetValue;
106
+ case 'lt': return currentValue < targetValue;
107
+ case 'lte': return currentValue <= targetValue;
108
+ case 'eq': return currentValue === targetValue;
109
+ default: return false;
110
+ }
111
+ }
112
+ export async function evaluateCustomMetric(store, rule, agentId) {
113
+ const config = rule.conditionConfig;
114
+ const metricKeyPath = config.metricKeyPath;
115
+ const operator = config.operator ?? 'gt';
116
+ const targetValue = config.value ?? 0;
117
+ const windowMinutes = config.windowMinutes ?? 60;
118
+ const now = new Date();
119
+ const from = new Date(now.getTime() - windowMinutes * 60 * 1000).toISOString();
120
+ // Architecture §3.4: Use metricKeyPath to extract values from event metadata
121
+ if (metricKeyPath) {
122
+ const eventsResult = await store.queryEvents({ agentId, from, to: now.toISOString(), limit: 10000 });
123
+ const values = [];
124
+ for (const event of eventsResult.events) {
125
+ const md = (event.metadata ?? {});
126
+ const raw = getByKeyPath(md, metricKeyPath);
127
+ if (typeof raw === 'number')
128
+ values.push(raw);
129
+ }
130
+ // (events returned newest-first by default query order)
131
+ if (values.length === 0) {
132
+ return {
133
+ triggered: false,
134
+ currentValue: 0,
135
+ threshold: targetValue,
136
+ message: `No events with metadata key "${metricKeyPath}" in window`,
137
+ };
138
+ }
139
+ // Use the latest value for comparison (events are returned newest-first, so first element is latest)
140
+ const currentValue = values[0];
141
+ const triggered = compareMetric(currentValue, operator, targetValue);
142
+ return {
143
+ triggered,
144
+ currentValue,
145
+ threshold: targetValue,
146
+ message: triggered
147
+ ? `${metricKeyPath} (${currentValue}) ${operator} ${targetValue} = triggered`
148
+ : `${metricKeyPath} (${currentValue}) ${operator} ${targetValue} = not triggered`,
149
+ };
150
+ }
151
+ // Legacy fallback: metricName-based evaluation for backward compatibility
152
+ const metricName = config.metricName ?? 'event_count';
153
+ let currentValue = 0;
154
+ switch (metricName) {
155
+ case 'event_count':
156
+ currentValue = await store.countEvents({ agentId, from, to: now.toISOString() });
157
+ break;
158
+ case 'error_count':
159
+ currentValue = await store.countEvents({ agentId, from, to: now.toISOString(), severity: 'error' });
160
+ break;
161
+ case 'session_count': {
162
+ const { total } = await store.querySessions({ agentId, from });
163
+ currentValue = total;
164
+ break;
165
+ }
166
+ default:
167
+ return { triggered: false, currentValue: 0, threshold: targetValue, message: `Unknown metric: ${metricName}` };
168
+ }
169
+ const triggered = compareMetric(currentValue, operator, targetValue);
170
+ return {
171
+ triggered,
172
+ currentValue,
173
+ threshold: targetValue,
174
+ message: triggered
175
+ ? `${metricName} (${currentValue}) ${operator} ${targetValue} = triggered`
176
+ : `${metricName} (${currentValue}) ${operator} ${targetValue} = not triggered`,
177
+ };
178
+ }
179
+ export async function evaluateCondition(store, rule, agentId, sessionId) {
180
+ switch (rule.conditionType) {
181
+ case 'error_rate_threshold': return evaluateErrorRateThreshold(store, rule, agentId);
182
+ case 'cost_limit': return evaluateCostLimit(store, rule, agentId, sessionId);
183
+ case 'health_score_threshold': return evaluateHealthScoreThreshold(store, rule, agentId);
184
+ case 'custom_metric': return evaluateCustomMetric(store, rule, agentId);
185
+ default: return { triggered: false, currentValue: 0, threshold: 0, message: `Unknown condition type: ${rule.conditionType}` };
186
+ }
187
+ }
188
+ //# sourceMappingURL=conditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../src/lib/guardrails/conditions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Guardrail Evaluation Engine (v0.8.0 — Story 1.3)
3
+ *
4
+ * Subscribes to EventBus and evaluates guardrail rules asynchronously.
5
+ * Never blocks the event POST response.
6
+ */
7
+ import type { AgentLensEvent } from '@agentlensai/core';
8
+ import type { IEventStore } from '@agentlensai/core';
9
+ import type { SqliteDb } from '../../db/index.js';
10
+ import { GuardrailStore } from '../../db/guardrail-store.js';
11
+ export declare class GuardrailEngine {
12
+ private store;
13
+ private eventStore;
14
+ private listener;
15
+ private started;
16
+ constructor(eventStore: IEventStore, db: SqliteDb);
17
+ start(): void;
18
+ stop(): void;
19
+ getStore(): GuardrailStore;
20
+ evaluateEvent(event: AgentLensEvent): Promise<void>;
21
+ private evaluateRule;
22
+ private isInCooldown;
23
+ }
24
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/lib/guardrails/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiC,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ;IAKjD,KAAK,IAAI,IAAI;IAab,IAAI,IAAI,IAAI;IAQZ,QAAQ,IAAI,cAAc;IAIpB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAa3C,YAAY;IA+D1B,OAAO,CAAC,YAAY;CAOrB"}