@agentlensai/server 0.13.0 → 0.14.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 (82) hide show
  1. package/dist/app.d.ts +27 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +178 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/config.d.ts +2 -6
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +13 -10
  8. package/dist/config.js.map +1 -1
  9. package/dist/health.d.ts +22 -0
  10. package/dist/health.d.ts.map +1 -0
  11. package/dist/health.js +34 -0
  12. package/dist/health.js.map +1 -0
  13. package/dist/index.d.ts +17 -31
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +28 -502
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/api-schema.d.ts +126 -0
  18. package/dist/lib/api-schema.d.ts.map +1 -0
  19. package/dist/lib/api-schema.js +69 -0
  20. package/dist/lib/api-schema.js.map +1 -0
  21. package/dist/lib/api-version.d.ts +21 -0
  22. package/dist/lib/api-version.d.ts.map +1 -0
  23. package/dist/lib/api-version.js +36 -0
  24. package/dist/lib/api-version.js.map +1 -0
  25. package/dist/lib/lore-client.d.ts +64 -112
  26. package/dist/lib/lore-client.d.ts.map +1 -1
  27. package/dist/lib/lore-client.js +120 -155
  28. package/dist/lib/lore-client.js.map +1 -1
  29. package/dist/routes/agents.d.ts.map +1 -1
  30. package/dist/routes/agents.js +73 -0
  31. package/dist/routes/agents.js.map +1 -1
  32. package/dist/routes/alerts.d.ts.map +1 -1
  33. package/dist/routes/alerts.js +13 -36
  34. package/dist/routes/alerts.js.map +1 -1
  35. package/dist/routes/analytics.d.ts.map +1 -1
  36. package/dist/routes/analytics.js +93 -0
  37. package/dist/routes/analytics.js.map +1 -1
  38. package/dist/routes/api-version.d.ts +9 -0
  39. package/dist/routes/api-version.d.ts.map +1 -0
  40. package/dist/routes/api-version.js +19 -0
  41. package/dist/routes/api-version.js.map +1 -0
  42. package/dist/routes/audit-verify.d.ts +3 -2
  43. package/dist/routes/audit-verify.d.ts.map +1 -1
  44. package/dist/routes/audit-verify.js +91 -27
  45. package/dist/routes/audit-verify.js.map +1 -1
  46. package/dist/routes/cost-budgets.d.ts.map +1 -1
  47. package/dist/routes/cost-budgets.js +19 -36
  48. package/dist/routes/cost-budgets.js.map +1 -1
  49. package/dist/routes/guardrails.d.ts.map +1 -1
  50. package/dist/routes/guardrails.js +121 -37
  51. package/dist/routes/guardrails.js.map +1 -1
  52. package/dist/routes/helpers.d.ts +27 -0
  53. package/dist/routes/helpers.d.ts.map +1 -0
  54. package/dist/routes/helpers.js +46 -0
  55. package/dist/routes/helpers.js.map +1 -0
  56. package/dist/routes/lore-proxy.d.ts +8 -6
  57. package/dist/routes/lore-proxy.d.ts.map +1 -1
  58. package/dist/routes/lore-proxy.js +39 -193
  59. package/dist/routes/lore-proxy.js.map +1 -1
  60. package/dist/routes/mcp-policies.d.ts +40 -0
  61. package/dist/routes/mcp-policies.d.ts.map +1 -0
  62. package/dist/routes/mcp-policies.js +200 -0
  63. package/dist/routes/mcp-policies.js.map +1 -0
  64. package/dist/routes/optimization-advisor.d.ts +13 -0
  65. package/dist/routes/optimization-advisor.d.ts.map +1 -0
  66. package/dist/routes/optimization-advisor.js +42 -0
  67. package/dist/routes/optimization-advisor.js.map +1 -0
  68. package/dist/routes/recall.d.ts.map +1 -1
  69. package/dist/routes/recall.js +7 -3
  70. package/dist/routes/recall.js.map +1 -1
  71. package/dist/routes/registration.d.ts +27 -0
  72. package/dist/routes/registration.d.ts.map +1 -0
  73. package/dist/routes/registration.js +311 -0
  74. package/dist/routes/registration.js.map +1 -0
  75. package/dist/routes/replay.d.ts.map +1 -1
  76. package/dist/routes/replay.js +51 -0
  77. package/dist/routes/replay.js.map +1 -1
  78. package/dist/services/optimization-advisor.d.ts +37 -0
  79. package/dist/services/optimization-advisor.d.ts.map +1 -0
  80. package/dist/services/optimization-advisor.js +239 -0
  81. package/dist/services/optimization-advisor.js.map +1 -0
  82. package/package.json +1 -1
@@ -171,6 +171,51 @@ export function analyticsRoutes(store, db, pgDb) {
171
171
  AND timestamp >= ${from}
172
172
  AND timestamp <= ${to}
173
173
  AND tenant_id = ${tenantId}
174
+ `);
175
+ // Cost by model (Feature-3: unified cost attribution)
176
+ const byModel = await dbAll(db, qdb, sql `
177
+ SELECT
178
+ ${jf(isPg, 'model')} as model,
179
+ COALESCE(SUM(${jn(isPg, 'costUsd')}), 0) as ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')},
180
+ COUNT(*) as ${sql.raw(isPg ? '"eventCount"' : 'eventCount')}
181
+ FROM events
182
+ WHERE event_type IN ('cost_tracked', 'llm_response')
183
+ AND timestamp >= ${from}
184
+ AND timestamp <= ${to}
185
+ AND tenant_id = ${tenantId}
186
+ AND ${jf(isPg, 'model')} IS NOT NULL
187
+ GROUP BY model
188
+ ORDER BY ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')} DESC
189
+ `);
190
+ // Cost by session (Feature-3)
191
+ const bySession = await dbAll(db, qdb, sql `
192
+ SELECT
193
+ session_id as ${sql.raw(isPg ? '"sessionId"' : 'sessionId')},
194
+ COALESCE(SUM(${jn(isPg, 'costUsd')}), 0) as ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')},
195
+ COUNT(*) as ${sql.raw(isPg ? '"eventCount"' : 'eventCount')}
196
+ FROM events
197
+ WHERE event_type IN ('cost_tracked', 'llm_response')
198
+ AND timestamp >= ${from}
199
+ AND timestamp <= ${to}
200
+ AND tenant_id = ${tenantId}
201
+ GROUP BY session_id
202
+ ORDER BY ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')} DESC
203
+ LIMIT 100
204
+ `);
205
+ // Cost by tool (Feature-3)
206
+ const byTool = await dbAll(db, qdb, sql `
207
+ SELECT
208
+ ${jf(isPg, 'toolName')} as ${sql.raw(isPg ? '"toolName"' : 'toolName')},
209
+ COALESCE(SUM(${jn(isPg, 'costUsd')}), 0) as ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')},
210
+ COUNT(*) as ${sql.raw(isPg ? '"eventCount"' : 'eventCount')}
211
+ FROM events
212
+ WHERE event_type IN ('tool_call', 'tool_response', 'tool_error', 'cost_tracked')
213
+ AND timestamp >= ${from}
214
+ AND timestamp <= ${to}
215
+ AND tenant_id = ${tenantId}
216
+ AND ${jf(isPg, 'toolName')} IS NOT NULL
217
+ GROUP BY ${sql.raw(isPg ? '"toolName"' : 'toolName')}
218
+ ORDER BY ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')} DESC
174
219
  `);
175
220
  return c.json({
176
221
  byAgent: byAgent.map((r) => ({
@@ -183,6 +228,21 @@ export function analyticsRoutes(store, db, pgDb) {
183
228
  cacheWriteTokens: Number(r.cacheWriteTokens ?? 0),
184
229
  eventCount: Number(r.eventCount),
185
230
  })),
231
+ byModel: byModel.map((r) => ({
232
+ model: r.model,
233
+ totalCostUsd: Number(r.totalCostUsd),
234
+ eventCount: Number(r.eventCount),
235
+ })),
236
+ bySession: bySession.map((r) => ({
237
+ sessionId: r.sessionId,
238
+ totalCostUsd: Number(r.totalCostUsd),
239
+ eventCount: Number(r.eventCount),
240
+ })),
241
+ byTool: byTool.map((r) => ({
242
+ toolName: r.toolName,
243
+ totalCostUsd: Number(r.totalCostUsd),
244
+ eventCount: Number(r.eventCount),
245
+ })),
186
246
  overTime: overTime.map((r) => ({
187
247
  bucket: r.bucket,
188
248
  totalCostUsd: Number(r.totalCostUsd),
@@ -197,6 +257,39 @@ export function analyticsRoutes(store, db, pgDb) {
197
257
  },
198
258
  });
199
259
  });
260
+ // GET /api/analytics/costs/trends — daily cost trend (Feature-3)
261
+ app.get('/costs/trends', async (c) => {
262
+ const tenantId = getTenantId(c);
263
+ const from = c.req.query('from') ?? new Date(Date.now() - 30 * 86400_000).toISOString();
264
+ const to = c.req.query('to') ?? new Date().toISOString();
265
+ const dailyBucket = tb(isPg, '%Y-%m-%dT00:00:00Z');
266
+ const rows = await dbAll(db, qdb, sql `
267
+ SELECT
268
+ ${dailyBucket} as date,
269
+ COALESCE(SUM(${jn(isPg, 'costUsd')}), 0) as ${sql.raw(isPg ? '"totalCostUsd"' : 'totalCostUsd')},
270
+ COUNT(*) as ${sql.raw(isPg ? '"eventCount"' : 'eventCount')},
271
+ COUNT(DISTINCT ${jf(isPg, 'model')}) as models,
272
+ COUNT(DISTINCT agent_id) as agents
273
+ FROM events
274
+ WHERE event_type IN ('cost_tracked', 'llm_response')
275
+ AND timestamp >= ${from}
276
+ AND timestamp <= ${to}
277
+ AND tenant_id = ${tenantId}
278
+ GROUP BY date
279
+ ORDER BY date ASC
280
+ `);
281
+ return c.json({
282
+ from,
283
+ to,
284
+ trends: rows.map((r) => ({
285
+ date: r.date,
286
+ totalCostUsd: Number(r.totalCostUsd),
287
+ eventCount: Number(r.eventCount),
288
+ uniqueModels: Number(r.models),
289
+ uniqueAgents: Number(r.agents),
290
+ })),
291
+ });
292
+ });
200
293
  // GET /api/analytics/agents — per-agent metrics
201
294
  app.get('/agents', async (c) => {
202
295
  const tenantId = getTenantId(c);
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/routes/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/routes/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * API Version Endpoint (Feature 9 — API Contract Governance)
3
+ *
4
+ * GET /api/version — returns current API version and supported versions.
5
+ * No auth required.
6
+ */
7
+ import { Hono } from 'hono';
8
+ export declare function apiVersionRoutes(): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
9
+ //# sourceMappingURL=api-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-version.d.ts","sourceRoot":"","sources":["../../src/routes/api-version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,wBAAgB,gBAAgB,+EAW/B"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * API Version Endpoint (Feature 9 — API Contract Governance)
3
+ *
4
+ * GET /api/version — returns current API version and supported versions.
5
+ * No auth required.
6
+ */
7
+ import { Hono } from 'hono';
8
+ import { CURRENT_API_VERSION, SUPPORTED_API_VERSIONS } from '../lib/api-version.js';
9
+ export function apiVersionRoutes() {
10
+ const app = new Hono();
11
+ app.get('/', (c) => {
12
+ return c.json({
13
+ current: CURRENT_API_VERSION,
14
+ supported: [...SUPPORTED_API_VERSIONS],
15
+ });
16
+ });
17
+ return app;
18
+ }
19
+ //# sourceMappingURL=api-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-version.js","sourceRoot":"","sources":["../../src/routes/api-version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,mBAAmB;YAC5B,SAAS,EAAE,CAAC,GAAG,sBAAsB,CAAC;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Audit Trail Verification Endpoint (Feature 3)
2
+ * Audit Trail Verification & Export Endpoints (Feature 3, Feature-4)
3
3
  *
4
- * GET /api/audit/verify — verifies hash chain integrity across sessions.
4
+ * GET /api/audit/verify — verifies hash chain integrity across sessions.
5
+ * GET /api/audit/verify/export — export audit trail as signed JSON for compliance.
5
6
  */
6
7
  import { Hono } from 'hono';
7
8
  import type { SqliteDb } from '../db/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"audit-verify.d.ts","sourceRoot":"","sources":["../../src/routes/audit-verify.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM;eAC/B,aAAa;0CA6EhD"}
1
+ {"version":3,"file":"audit-verify.d.ts","sourceRoot":"","sources":["../../src/routes/audit-verify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAsB3D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM;eAC/B,aAAa;0CAyHhD"}
@@ -1,54 +1,60 @@
1
1
  /**
2
- * Audit Trail Verification Endpoint (Feature 3)
2
+ * Audit Trail Verification & Export Endpoints (Feature 3, Feature-4)
3
3
  *
4
- * GET /api/audit/verify — verifies hash chain integrity across sessions.
4
+ * GET /api/audit/verify — verifies hash chain integrity across sessions.
5
+ * GET /api/audit/verify/export — export audit trail as signed JSON for compliance.
5
6
  */
7
+ import { createHmac } from 'node:crypto';
6
8
  import { Hono } from 'hono';
7
9
  import { getTenantId } from './tenant-helper.js';
8
10
  import { eq } from 'drizzle-orm';
9
11
  import { apiKeys } from '../db/schema.sqlite.js';
10
12
  import { EventRepository } from '../db/repositories/event-repository.js';
11
13
  import { runVerification } from '../lib/audit-verify.js';
14
+ import { collectAllEvents } from '../lib/compliance-export.js';
15
+ /** Resolve role for the current API key */
16
+ function resolveRole(db, keyInfo) {
17
+ if (!keyInfo)
18
+ return 'viewer';
19
+ if (keyInfo.id === 'dev')
20
+ return 'admin';
21
+ const row = db.select({ role: apiKeys.role }).from(apiKeys).where(eq(apiKeys.id, keyInfo.id)).get();
22
+ return row?.role ?? 'viewer';
23
+ }
24
+ /** Validate and parse from/to date params */
25
+ function parseDateRange(from, to) {
26
+ if (from && isNaN(Date.parse(from)))
27
+ return { error: `Invalid ISO 8601 date: ${from}` };
28
+ if (to && isNaN(Date.parse(to)))
29
+ return { error: `Invalid ISO 8601 date: ${to}` };
30
+ if (from && to) {
31
+ const diffMs = new Date(to).getTime() - new Date(from).getTime();
32
+ const oneYearMs = 365.25 * 24 * 60 * 60 * 1000;
33
+ if (diffMs > oneYearMs)
34
+ return { error: 'Range must not exceed 1 year' };
35
+ }
36
+ return { from, to };
37
+ }
12
38
  export function auditVerifyRoutes(db, signingKey) {
13
39
  const app = new Hono();
14
40
  const repo = new EventRepository(db);
41
+ // GET / — verify hash chain integrity
15
42
  app.get('/', async (c) => {
16
- // Role check: require admin or auditor
17
43
  const keyInfo = c.get('apiKey');
18
44
  const tenantId = getTenantId(c);
19
- let role = 'viewer';
20
- if (keyInfo?.id === 'dev') {
21
- role = 'admin';
22
- }
23
- else if (keyInfo?.id) {
24
- const row = db.select({ role: apiKeys.role }).from(apiKeys).where(eq(apiKeys.id, keyInfo.id)).get();
25
- role = row?.role ?? 'viewer';
26
- }
45
+ const role = resolveRole(db, keyInfo);
27
46
  if (role !== 'admin' && role !== 'auditor') {
28
47
  return c.json({ error: 'Forbidden: admin or auditor role required', status: 403 }, 403);
29
48
  }
30
- // Parse params
31
49
  const sessionId = c.req.query('sessionId');
32
50
  const from = c.req.query('from');
33
51
  const to = c.req.query('to');
34
52
  if (!sessionId && (!from || !to)) {
35
53
  return c.json({ error: 'Provide from/to or sessionId' }, 400);
36
54
  }
37
- // Validate dates
38
- if (from && isNaN(Date.parse(from))) {
39
- return c.json({ error: `Invalid ISO 8601 date: ${from}` }, 400);
40
- }
41
- if (to && isNaN(Date.parse(to))) {
42
- return c.json({ error: `Invalid ISO 8601 date: ${to}` }, 400);
43
- }
44
- // Range max 1 year
45
- if (from && to) {
46
- const diffMs = new Date(to).getTime() - new Date(from).getTime();
47
- const oneYearMs = 365.25 * 24 * 60 * 60 * 1000;
48
- if (diffMs > oneYearMs) {
49
- return c.json({ error: 'Range must not exceed 1 year' }, 400);
50
- }
51
- }
55
+ const dateRange = parseDateRange(from, to);
56
+ if (dateRange.error)
57
+ return c.json({ error: dateRange.error }, 400);
52
58
  const TIMEOUT_MS = 30_000;
53
59
  const verificationPromise = runVerification(repo, {
54
60
  tenantId,
@@ -68,6 +74,64 @@ export function auditVerifyRoutes(db, signingKey) {
68
74
  }
69
75
  return c.json(result, 200);
70
76
  });
77
+ // GET /export — export audit trail as signed JSON (Feature-4)
78
+ app.get('/export', async (c) => {
79
+ const keyInfo = c.get('apiKey');
80
+ const tenantId = getTenantId(c);
81
+ const role = resolveRole(db, keyInfo);
82
+ if (role !== 'admin' && role !== 'auditor') {
83
+ return c.json({ error: 'Forbidden: admin or auditor role required', status: 403 }, 403);
84
+ }
85
+ const from = c.req.query('from');
86
+ const to = c.req.query('to');
87
+ if (!from || !to) {
88
+ return c.json({ error: 'Both "from" and "to" query parameters are required (ISO 8601)', status: 400 }, 400);
89
+ }
90
+ const dateRange = parseDateRange(from, to);
91
+ if (dateRange.error)
92
+ return c.json({ error: dateRange.error, status: 400 }, 400);
93
+ // Collect events and verify chain
94
+ const events = collectAllEvents(repo, tenantId, from, to);
95
+ const verification = await runVerification(repo, {
96
+ tenantId,
97
+ from,
98
+ to,
99
+ signingKey,
100
+ });
101
+ const exportBody = {
102
+ exportedAt: new Date().toISOString(),
103
+ tenantId,
104
+ range: { from, to },
105
+ totalEvents: events.length,
106
+ chainVerification: {
107
+ verified: verification.verified,
108
+ sessionsVerified: verification.sessionsVerified,
109
+ firstHash: verification.firstHash,
110
+ lastHash: verification.lastHash,
111
+ brokenChains: verification.brokenChains,
112
+ },
113
+ events: events.map((e) => ({
114
+ id: e.id,
115
+ timestamp: e.timestamp,
116
+ sessionId: e.sessionId,
117
+ agentId: e.agentId,
118
+ eventType: e.eventType,
119
+ severity: e.severity,
120
+ prevHash: e.prevHash,
121
+ hash: e.hash,
122
+ })),
123
+ };
124
+ // Sign the export if signing key is available
125
+ let signature = null;
126
+ if (signingKey) {
127
+ const canonical = JSON.stringify(exportBody);
128
+ signature = 'hmac-sha256:' + createHmac('sha256', signingKey).update(canonical).digest('hex');
129
+ }
130
+ return c.json({
131
+ ...exportBody,
132
+ signature,
133
+ }, 200);
134
+ });
71
135
  return app;
72
136
  }
73
137
  //# sourceMappingURL=audit-verify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-verify.js","sourceRoot":"","sources":["../../src/routes/audit-verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-verify.js","sourceRoot":"","sources":["../../src/routes/audit-verify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,2CAA2C;AAC3C,SAAS,WAAW,CAAC,EAAY,EAAE,OAAmC;IACpE,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IACzC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACpG,OAAO,GAAG,EAAE,IAAI,IAAI,QAAQ,CAAC;AAC/B,CAAC;AAED,6CAA6C;AAC7C,SAAS,cAAc,CAAC,IAAwB,EAAE,EAAsB;IACtE,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC;IACxF,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC;IAClF,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC/C,IAAI,MAAM,GAAG,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAY,EAAE,UAAmB;IACjE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAgC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;IAErC,sCAAsC;IACtC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2CAA2C,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,SAAS,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,MAAM,CAAC;QAE1B,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,EAAE;YAChD,QAAQ;YACR,IAAI,EAAE,IAAI,IAAI,SAAS;YACvB,EAAE,EAAE,EAAE,IAAI,SAAS;YACnB,SAAS,EAAE,SAAS,IAAI,SAAS;YACjC,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CACnD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAC5C,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC;QAEzE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,wBAAwB;gBAC/B,OAAO,EAAE,oGAAoG;gBAC7G,MAAM,EAAE,GAAG;aACZ,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2CAA2C,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+DAA+D,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9G,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,SAAS,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAEjF,kCAAkC;QAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;YAC/C,QAAQ;YACR,IAAI;YACJ,EAAE;YACF,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;YACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,QAAQ;YACR,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,YAAY,EAAE,YAAY,CAAC,YAAY;aACxC;YACD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;SACJ,CAAC;QAEF,8CAA8C;QAC9C,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC7C,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,GAAG,UAAU;YACb,SAAS;SACV,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cost-budgets.d.ts","sourceRoot":"","sources":["../../src/routes/cost-budgets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO5B,OAAO,KAAK,EAAiC,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY;eACxE,aAAa;0CAwMhD"}
1
+ {"version":3,"file":"cost-budgets.d.ts","sourceRoot":"","sources":["../../src/routes/cost-budgets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO5B,OAAO,KAAK,EAAiC,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY;eACxE,aAAa;0CAkLhD"}
@@ -13,39 +13,31 @@ import { Hono } from 'hono';
13
13
  import { ulid } from 'ulid';
14
14
  import { createCostBudgetSchema, updateCostBudgetSchema, updateAnomalyConfigSchema, } from '@agentlensai/core';
15
15
  import { getTenantId } from './tenant-helper.js';
16
+ import { parseBody, notFound, created } from './helpers.js';
16
17
  export function costBudgetRoutes(store, eventStore, budgetEngine) {
17
18
  const app = new Hono();
18
19
  // ─── Budget CRUD ─────────────────────────────────────────
19
20
  app.post('/', async (c) => {
20
21
  const tenantId = getTenantId(c);
21
- const rawBody = await c.req.json().catch(() => null);
22
- if (!rawBody) {
23
- return c.json({ error: 'Invalid JSON body', status: 400 }, 400);
24
- }
25
- const result = createCostBudgetSchema.safeParse(rawBody);
26
- if (!result.success) {
27
- return c.json({
28
- error: 'Validation failed',
29
- status: 400,
30
- details: result.error.issues.map((i) => ({ path: i.path.join('.'), message: i.message })),
31
- }, 400);
32
- }
22
+ const parsed = await parseBody(c, createCostBudgetSchema);
23
+ if (!parsed.success)
24
+ return parsed.response;
33
25
  const now = new Date().toISOString();
34
26
  const budget = {
35
27
  id: ulid(),
36
28
  tenantId,
37
- scope: result.data.scope,
38
- agentId: result.data.agentId,
39
- period: result.data.period,
40
- limitUsd: result.data.limitUsd,
41
- onBreach: result.data.onBreach,
42
- downgradeTargetModel: result.data.downgradeTargetModel,
43
- enabled: result.data.enabled,
29
+ scope: parsed.data.scope,
30
+ agentId: parsed.data.agentId,
31
+ period: parsed.data.period,
32
+ limitUsd: parsed.data.limitUsd,
33
+ onBreach: parsed.data.onBreach,
34
+ downgradeTargetModel: parsed.data.downgradeTargetModel,
35
+ enabled: parsed.data.enabled,
44
36
  createdAt: now,
45
37
  updatedAt: now,
46
38
  };
47
39
  store.createBudget(budget);
48
- return c.json(budget, 201);
40
+ return created(c, budget);
49
41
  });
50
42
  app.get('/', async (c) => {
51
43
  const tenantId = getTenantId(c);
@@ -104,7 +96,7 @@ export function costBudgetRoutes(store, eventStore, budgetEngine) {
104
96
  const budgetId = c.req.param('id');
105
97
  const budget = store.getBudget(tenantId, budgetId);
106
98
  if (!budget) {
107
- return c.json({ error: 'Budget not found', status: 404 }, 404);
99
+ return notFound(c, 'Budget');
108
100
  }
109
101
  // Compute current spend
110
102
  let currentSpend = 0;
@@ -161,21 +153,12 @@ export function costBudgetRoutes(store, eventStore, budgetEngine) {
161
153
  app.put('/:id', async (c) => {
162
154
  const tenantId = getTenantId(c);
163
155
  const budgetId = c.req.param('id');
164
- const rawBody = await c.req.json().catch(() => null);
165
- if (!rawBody) {
166
- return c.json({ error: 'Invalid JSON body', status: 400 }, 400);
167
- }
168
- const result = updateCostBudgetSchema.safeParse(rawBody);
169
- if (!result.success) {
170
- return c.json({
171
- error: 'Validation failed',
172
- status: 400,
173
- details: result.error.issues.map((i) => ({ path: i.path.join('.'), message: i.message })),
174
- }, 400);
175
- }
176
- const updated = store.updateBudget(tenantId, budgetId, result.data);
156
+ const parsed = await parseBody(c, updateCostBudgetSchema);
157
+ if (!parsed.success)
158
+ return parsed.response;
159
+ const updated = store.updateBudget(tenantId, budgetId, parsed.data);
177
160
  if (!updated) {
178
- return c.json({ error: 'Budget not found', status: 404 }, 404);
161
+ return notFound(c, 'Budget');
179
162
  }
180
163
  const budget = store.getBudget(tenantId, budgetId);
181
164
  return c.json(budget);
@@ -185,7 +168,7 @@ export function costBudgetRoutes(store, eventStore, budgetEngine) {
185
168
  const budgetId = c.req.param('id');
186
169
  const deleted = store.deleteBudget(tenantId, budgetId);
187
170
  if (!deleted) {
188
- return c.json({ error: 'Budget not found', status: 404 }, 404);
171
+ return notFound(c, 'Budget');
189
172
  }
190
173
  return c.json({ id: budgetId, deleted: true });
191
174
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cost-budgets.js","sourceRoot":"","sources":["../../src/routes/cost-budgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-budgets.js","sourceRoot":"","sources":["../../src/routes/cost-budgets.ts"],"names":[],"mappings":"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"}
@@ -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;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"}
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;AAyClF,wBAAgB,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,sBAAsB;eAClE,aAAa;0CAqUhD"}