@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
@@ -1,34 +1,9 @@
1
1
  /**
2
- * Lore Adapter — abstraction for lesson CRUD via Lore service
2
+ * Lore Read Adapter — read-only HTTP client for Lore v0.5.0 server API.
3
3
  *
4
- * Two implementations:
5
- * - RemoteLoreAdapter: HTTP proxy to a remote Lore server
6
- * - LocalLoreAdapter: delegates to lore-sdk (conditional import)
4
+ * Maps Lore's problem/resolution server model → content-based LoreMemory type.
5
+ * Write operations are handled by Lore's own MCP server/CLI/SDK.
7
6
  */
8
- /** Map AgentLens lesson format → Lore format */
9
- function toLoreFormat(data) {
10
- const { title, content, category, ...rest } = data;
11
- return {
12
- ...(title !== undefined ? { problem: title } : {}),
13
- ...(content !== undefined ? { resolution: content } : {}),
14
- ...(category !== undefined ? { tags: [category] } : {}),
15
- ...rest,
16
- };
17
- }
18
- /** Map Lore format → AgentLens lesson format */
19
- function fromLoreFormat(data) {
20
- if (!data)
21
- return data;
22
- const { problem, resolution, tags, reputation_score, quality_signals, ...rest } = data;
23
- return {
24
- ...(problem !== undefined ? { title: problem } : {}),
25
- ...(resolution !== undefined ? { content: resolution } : {}),
26
- ...(tags?.length ? { category: tags[0] } : {}),
27
- ...(reputation_score !== undefined ? { reputationScore: reputation_score } : {}),
28
- ...(quality_signals !== undefined ? { qualitySignals: quality_signals } : {}),
29
- ...rest,
30
- };
31
- }
32
7
  export class LoreError extends Error {
33
8
  statusCode;
34
9
  constructor(statusCode, message) {
@@ -37,152 +12,142 @@ export class LoreError extends Error {
37
12
  this.name = 'LoreError';
38
13
  }
39
14
  }
40
- export class RemoteLoreAdapter {
15
+ // ─── Field Mapping ──────────────────────────────────────────
16
+ /**
17
+ * Map a Lore server lesson response → AgentLens LoreMemory.
18
+ *
19
+ * Follows the same convention as Lore's HttpStore._lesson_to_memory():
20
+ * - `problem` field becomes `content` (the display text)
21
+ * - `meta.type` becomes `type` (memory type discriminator)
22
+ * - If `resolution` differs from `problem`, store in `metadata._resolution`
23
+ */
24
+ export function fromLoreLesson(data) {
25
+ const meta = { ...(data.meta ?? {}) };
26
+ const type = meta.type ?? 'general';
27
+ delete meta.type;
28
+ const problem = data.problem ?? '';
29
+ const resolution = data.resolution ?? '';
30
+ if (resolution && resolution !== problem) {
31
+ meta._resolution = resolution;
32
+ }
33
+ return {
34
+ id: data.id,
35
+ content: problem,
36
+ type,
37
+ context: data.context ?? null,
38
+ tags: data.tags ?? [],
39
+ confidence: data.confidence ?? 1.0,
40
+ source: data.source ?? null,
41
+ project: data.project ?? null,
42
+ createdAt: data.created_at,
43
+ updatedAt: data.updated_at,
44
+ expiresAt: data.expires_at ?? null,
45
+ upvotes: data.upvotes ?? 0,
46
+ downvotes: data.downvotes ?? 0,
47
+ metadata: Object.keys(meta).length > 0 ? meta : null,
48
+ };
49
+ }
50
+ // ─── Adapter ────────────────────────────────────────────────
51
+ export class LoreReadAdapter {
41
52
  baseUrl;
42
53
  apiKey;
43
- constructor(baseUrl, apiKey) {
44
- this.baseUrl = baseUrl;
45
- this.apiKey = apiKey;
54
+ timeout;
55
+ constructor(config) {
56
+ this.baseUrl = config.apiUrl.replace(/\/+$/, '');
57
+ this.apiKey = config.apiKey;
58
+ this.timeout = config.timeout ?? 10_000;
59
+ }
60
+ /** Health check — call on startup, non-blocking */
61
+ async checkHealth() {
62
+ try {
63
+ const res = await fetch(`${this.baseUrl}/health`, {
64
+ signal: AbortSignal.timeout(5_000),
65
+ headers: this.headers,
66
+ });
67
+ return res.ok;
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ /** List memories with optional filters */
74
+ async listMemories(query) {
75
+ const params = new URLSearchParams();
76
+ if (query.project)
77
+ params.set('project', query.project);
78
+ if (query.search)
79
+ params.set('query', query.search);
80
+ if (query.limit != null)
81
+ params.set('limit', String(query.limit));
82
+ if (query.offset != null)
83
+ params.set('offset', String(query.offset));
84
+ const qs = params.toString();
85
+ const data = await this.request('GET', `/v1/lessons${qs ? `?${qs}` : ''}`);
86
+ return {
87
+ memories: (data.lessons ?? []).map(fromLoreLesson),
88
+ total: data.total,
89
+ limit: data.limit,
90
+ offset: data.offset,
91
+ };
92
+ }
93
+ /** Get single memory by ID */
94
+ async getMemory(id) {
95
+ try {
96
+ const data = await this.request('GET', `/v1/lessons/${id}`);
97
+ return fromLoreLesson(data);
98
+ }
99
+ catch (err) {
100
+ if (err instanceof LoreError && err.statusCode === 404)
101
+ return null;
102
+ throw err;
103
+ }
104
+ }
105
+ /** Get aggregate stats (count by type) */
106
+ async getStats(project) {
107
+ const params = new URLSearchParams({ limit: '200' });
108
+ if (project)
109
+ params.set('project', project);
110
+ const data = await this.request('GET', `/v1/lessons?${params}`);
111
+ const byType = {};
112
+ for (const lesson of data.lessons ?? []) {
113
+ const t = lesson.meta?.type ?? 'general';
114
+ byType[t] = (byType[t] ?? 0) + 1;
115
+ }
116
+ return { total: data.total, byType };
46
117
  }
118
+ // --- Private ---
47
119
  get headers() {
48
120
  return {
49
121
  'Content-Type': 'application/json',
50
122
  'Authorization': `Bearer ${this.apiKey}`,
51
123
  };
52
124
  }
53
- async request(method, path, body) {
125
+ async request(method, path) {
54
126
  const url = `${this.baseUrl}${path}`;
55
127
  const res = await fetch(url, {
56
128
  method,
57
129
  headers: this.headers,
58
- ...(body ? { body: JSON.stringify(body) } : {}),
130
+ signal: AbortSignal.timeout(this.timeout),
59
131
  });
60
132
  if (!res.ok) {
61
133
  const text = await res.text().catch(() => 'Unknown error');
62
- throw new LoreError(res.status, `Lore API error: ${text}`);
134
+ throw new LoreError(res.status, `Lore API error (${res.status}): ${text}`);
63
135
  }
64
136
  return res.json();
65
137
  }
66
- async createLesson(data) {
67
- const result = await this.request('POST', '/v1/lessons', toLoreFormat(data));
68
- return fromLoreFormat(result);
69
- }
70
- async listLessons(query) {
71
- const params = new URLSearchParams();
72
- for (const [k, v] of Object.entries(query)) {
73
- if (v !== undefined)
74
- params.set(k, String(v));
75
- }
76
- const result = await this.request('GET', `/v1/lessons?${params}`);
77
- return { ...result, lessons: (result.lessons ?? []).map(fromLoreFormat) };
78
- }
79
- async getLesson(id) {
80
- const result = await this.request('GET', `/v1/lessons/${id}`);
81
- return fromLoreFormat(result);
82
- }
83
- async updateLesson(id, data) {
84
- const result = await this.request('PUT', `/v1/lessons/${id}`, toLoreFormat(data));
85
- return fromLoreFormat(result);
86
- }
87
- async deleteLesson(id) {
88
- return this.request('DELETE', `/v1/lessons/${id}`);
89
- }
90
- async searchCommunity(query, options) {
91
- const params = new URLSearchParams();
92
- if (query)
93
- params.set('query', query);
94
- if (options?.category)
95
- params.set('category', options.category);
96
- if (options?.limit)
97
- params.set('limit', String(options.limit));
98
- if (options?.minReputation !== undefined)
99
- params.set('minReputation', String(options.minReputation));
100
- const qs = params.toString();
101
- const result = await this.request('GET', `/v1/lessons${qs ? `?${qs}` : ''}`);
102
- return { ...result, lessons: (result.lessons ?? []).map(fromLoreFormat) };
103
- }
104
- async rateLesson(id, delta) {
105
- return this.request('POST', `/v1/lessons/${id}/rate`, { delta });
106
- }
107
- async getSharingConfig() {
108
- return this.request('GET', '/v1/sharing/config');
109
- }
110
- async updateSharingConfig(data) {
111
- return this.request('PUT', '/v1/sharing/config', data);
112
- }
113
- async getAgentSharingConfigs() {
114
- return this.request('GET', '/v1/sharing/agents');
115
- }
116
- async updateAgentSharingConfig(agentId, data) {
117
- return this.request('PUT', `/v1/sharing/agents/${agentId}`, data);
118
- }
119
- async getDenyList() {
120
- return this.request('GET', '/v1/sharing/deny-list');
121
- }
122
- async addDenyListRule(data) {
123
- return this.request('POST', '/v1/sharing/deny-list', data);
124
- }
125
- async deleteDenyListRule(id) {
126
- return this.request('DELETE', `/v1/sharing/deny-list/${id}`);
127
- }
128
- async getSharingAuditLog(params) {
129
- const qs = new URLSearchParams();
130
- if (params.eventType)
131
- qs.set('event_type', params.eventType);
132
- if (params.from)
133
- qs.set('from', params.from);
134
- if (params.to)
135
- qs.set('to', params.to);
136
- if (params.limit)
137
- qs.set('limit', String(params.limit));
138
- return this.request('GET', `/v1/sharing/audit?${qs}`);
139
- }
140
- async getSharingStats() {
141
- return this.request('GET', '/v1/sharing/stats');
142
- }
143
- async purgeSharing(confirmation) {
144
- return this.request('POST', '/v1/sharing/purge', { confirmation });
145
- }
146
138
  }
147
- export class LocalLoreAdapter {
148
- sdk;
149
- constructor(dbPath) {
150
- try {
151
- // Dynamic import placeholder — lore-sdk is not yet a dependency
152
- // eslint-disable-next-line @typescript-eslint/no-require-imports
153
- this.sdk = require('lore-sdk');
154
- }
155
- catch {
156
- throw new Error('lore-sdk is not installed. Install it with: npm install lore-sdk\n' +
157
- 'Or switch to remote mode by setting LORE_MODE=remote and LORE_API_URL.');
158
- }
159
- this.sdk.init({ dbPath });
160
- }
161
- async createLesson(data) { return this.sdk.createLesson(data); }
162
- async listLessons(query) { return this.sdk.listLessons(query); }
163
- async getLesson(id) { return this.sdk.getLesson(id); }
164
- async updateLesson(id, data) { return this.sdk.updateLesson(id, data); }
165
- async deleteLesson(id) { return this.sdk.deleteLesson(id); }
166
- async searchCommunity(query, options) { return this.sdk.searchCommunity(query, options); }
167
- async rateLesson(_id, _delta) { throw new Error('Not available in local mode'); }
168
- async getSharingConfig() { throw new Error('Not available in local mode'); }
169
- async updateSharingConfig(_data) { throw new Error('Not available in local mode'); }
170
- async getAgentSharingConfigs() { throw new Error('Not available in local mode'); }
171
- async updateAgentSharingConfig(_agentId, _data) { throw new Error('Not available in local mode'); }
172
- async getDenyList() { throw new Error('Not available in local mode'); }
173
- async addDenyListRule(_data) { throw new Error('Not available in local mode'); }
174
- async deleteDenyListRule(_id) { throw new Error('Not available in local mode'); }
175
- async getSharingAuditLog(_params) { throw new Error('Not available in local mode'); }
176
- async getSharingStats() { throw new Error('Not available in local mode'); }
177
- async purgeSharing(_confirmation) { throw new Error('Not available in local mode'); }
178
- }
179
- /** Factory: create the right adapter based on config */
180
- export function createLoreAdapter(config) {
181
- if (config.loreMode === 'remote') {
182
- if (!config.loreApiUrl)
183
- throw new Error('LORE_API_URL is required for remote mode');
184
- return new RemoteLoreAdapter(config.loreApiUrl, config.loreApiKey ?? '');
185
- }
186
- return new LocalLoreAdapter(config.loreDbPath ?? './lore.db');
139
+ // ─── Factory ────────────────────────────────────────────────
140
+ /** Create adapter if Lore is configured, else return null */
141
+ export function createLoreAdapter(env) {
142
+ if (!env.loreEnabled)
143
+ return null;
144
+ if (!env.loreApiUrl)
145
+ throw new Error('LORE_API_URL required when LORE_ENABLED=true');
146
+ if (!env.loreApiKey)
147
+ throw new Error('LORE_API_KEY required when LORE_ENABLED=true');
148
+ return new LoreReadAdapter({
149
+ apiUrl: env.loreApiUrl,
150
+ apiKey: env.loreApiKey,
151
+ });
187
152
  }
188
153
  //# sourceMappingURL=lore-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lore-client.js","sourceRoot":"","sources":["../../src/lib/lore-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lore-client.js","sourceRoot":"","sources":["../../src/lib/lore-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW;eACX,aAAa;0CAsDhD"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW;eACX,aAAa;0CAsIhD"}
@@ -41,6 +41,79 @@ export function agentsRoutes(store) {
41
41
  const updated = await tenantStore.getAgent(id);
42
42
  return c.json(updated);
43
43
  });
44
+ /**
45
+ * @summary Get aggregated agent insights (Phase 2 — Feature 7)
46
+ * @param {string} id — Agent name/ID (path)
47
+ * @returns {200} `{ agent, totalSessions, avgScore, toolUsage, delegationCount, recentSessions, healthTrend }`
48
+ * @throws {404} Agent not found
49
+ */
50
+ app.get('/:id/insights', async (c) => {
51
+ const tenantStore = getTenantStore(store, c);
52
+ const id = c.req.param('id');
53
+ const agent = await tenantStore.getAgent(id);
54
+ if (!agent) {
55
+ return c.json({ error: 'Agent not found', status: 404 }, 404);
56
+ }
57
+ // Fetch recent sessions for this agent
58
+ const sessionsResult = await tenantStore.querySessions({
59
+ agentId: id,
60
+ limit: 20,
61
+ offset: 0,
62
+ });
63
+ const sessions = sessionsResult.sessions ?? [];
64
+ // Compute tool usage distribution and delegation count from events
65
+ const toolUsage = {};
66
+ let totalScore = 0;
67
+ let scoreCount = 0;
68
+ let delegationCount = 0;
69
+ for (const session of sessions) {
70
+ const eventsResult = await tenantStore.queryEvents({
71
+ sessionId: session.id,
72
+ limit: 200,
73
+ offset: 0,
74
+ });
75
+ for (const event of eventsResult.events) {
76
+ if (event.eventType === 'tool_call' || event.eventType === 'tool_response') {
77
+ const toolName = event.payload?.toolName ?? 'unknown';
78
+ toolUsage[toolName] = (toolUsage[toolName] ?? 0) + 1;
79
+ }
80
+ // Extract health scores and delegation counts from custom events
81
+ if (event.eventType === 'custom') {
82
+ const payload = event.payload;
83
+ if (payload?.type === 'health_score' || payload?.type === 'health_check') {
84
+ const score = payload?.score;
85
+ if (typeof score === 'number') {
86
+ totalScore += score;
87
+ scoreCount++;
88
+ }
89
+ }
90
+ if (payload?.type === 'delegation') {
91
+ delegationCount++;
92
+ }
93
+ }
94
+ }
95
+ }
96
+ // Health trend: last 10 sessions with their timestamps
97
+ const healthTrend = sessions.slice(0, 10).map((s) => ({
98
+ sessionId: s.id,
99
+ startedAt: s.startedAt,
100
+ score: s.healthScore,
101
+ }));
102
+ return c.json({
103
+ agent,
104
+ totalSessions: agent.sessionCount ?? sessions.length,
105
+ avgScore: scoreCount > 0 ? Math.round((totalScore / scoreCount) * 100) / 100 : null,
106
+ toolUsage,
107
+ delegationCount,
108
+ recentSessions: sessions.slice(0, 10).map((s) => ({
109
+ id: s.id,
110
+ startedAt: s.startedAt,
111
+ endedAt: s.endedAt,
112
+ eventCount: s.eventCount,
113
+ })),
114
+ healthTrend,
115
+ });
116
+ });
44
117
  // GET /api/agents/:id — single agent
45
118
  app.get('/:id', async (c) => {
46
119
  const tenantStore = getTenantStore(store, c);
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,KAAkB;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAgC,CAAC;IAErD,8DAA8D;IAC9D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAE9C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7B,sCAAsC;QACtC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,6CAA6C;QAC7C,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,kBAAkB,GAAG,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;QAED,wDAAwD;QACxD,IAAI,cAAc,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACpF,MAAO,WAAmF,CAAC,YAAY,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAClI,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,qCAAqC;IACrC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../src/routes/alerts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW;eACX,aAAa;0CAsJhD"}
1
+ {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../src/routes/alerts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW;eACX,aAAa;0CAoHhD"}
@@ -14,27 +14,16 @@ import { ulid } from 'ulid';
14
14
  import { createAlertRuleSchema, updateAlertRuleSchema } from '@agentlensai/core';
15
15
  import { NotFoundError } from '../db/errors.js';
16
16
  import { getTenantStore } from './tenant-helper.js';
17
+ import { parseBody, notFound, created } from './helpers.js';
17
18
  export function alertsRoutes(store) {
18
19
  const app = new Hono();
19
20
  // POST /api/alerts/rules — create alert rule
20
21
  app.post('/rules', async (c) => {
21
22
  const tenantStore = getTenantStore(store, c);
22
- const rawBody = await c.req.json().catch(() => null);
23
- if (!rawBody) {
24
- return c.json({ error: 'Invalid JSON body', status: 400 }, 400);
25
- }
26
- const parseResult = createAlertRuleSchema.safeParse(rawBody);
27
- if (!parseResult.success) {
28
- return c.json({
29
- error: 'Validation failed',
30
- status: 400,
31
- details: parseResult.error.issues.map((issue) => ({
32
- path: issue.path.map(String).join('.'),
33
- message: issue.message,
34
- })),
35
- }, 400);
36
- }
37
- const input = parseResult.data;
23
+ const parsed = await parseBody(c, createAlertRuleSchema);
24
+ if (!parsed.success)
25
+ return parsed.response;
26
+ const input = parsed.data;
38
27
  const now = new Date().toISOString();
39
28
  const rule = {
40
29
  id: ulid(),
@@ -50,7 +39,7 @@ export function alertsRoutes(store) {
50
39
  tenantId: getTenantId(c),
51
40
  };
52
41
  await tenantStore.createAlertRule(rule);
53
- return c.json(rule, 201);
42
+ return created(c, rule);
54
43
  });
55
44
  // GET /api/alerts/rules — list all alert rules
56
45
  app.get('/rules', async (c) => {
@@ -64,7 +53,7 @@ export function alertsRoutes(store) {
64
53
  const id = c.req.param('id');
65
54
  const rule = await tenantStore.getAlertRule(id);
66
55
  if (!rule) {
67
- return c.json({ error: 'Alert rule not found', status: 404 }, 404);
56
+ return notFound(c, 'Alert rule');
68
57
  }
69
58
  return c.json(rule);
70
59
  });
@@ -72,22 +61,10 @@ export function alertsRoutes(store) {
72
61
  app.put('/rules/:id', async (c) => {
73
62
  const tenantStore = getTenantStore(store, c);
74
63
  const id = c.req.param('id');
75
- const rawBody = await c.req.json().catch(() => null);
76
- if (!rawBody) {
77
- return c.json({ error: 'Invalid JSON body', status: 400 }, 400);
78
- }
79
- const parseResult = updateAlertRuleSchema.safeParse(rawBody);
80
- if (!parseResult.success) {
81
- return c.json({
82
- error: 'Validation failed',
83
- status: 400,
84
- details: parseResult.error.issues.map((issue) => ({
85
- path: issue.path.map(String).join('.'),
86
- message: issue.message,
87
- })),
88
- }, 400);
89
- }
90
- const updates = parseResult.data;
64
+ const parsed = await parseBody(c, updateAlertRuleSchema);
65
+ if (!parsed.success)
66
+ return parsed.response;
67
+ const updates = parsed.data;
91
68
  try {
92
69
  await tenantStore.updateAlertRule(id, {
93
70
  ...updates,
@@ -96,7 +73,7 @@ export function alertsRoutes(store) {
96
73
  }
97
74
  catch (err) {
98
75
  if (err instanceof NotFoundError) {
99
- return c.json({ error: 'Alert rule not found', status: 404 }, 404);
76
+ return notFound(c, 'Alert rule');
100
77
  }
101
78
  throw err;
102
79
  }
@@ -112,7 +89,7 @@ export function alertsRoutes(store) {
112
89
  }
113
90
  catch (err) {
114
91
  if (err instanceof NotFoundError) {
115
- return c.json({ error: 'Alert rule not found', status: 404 }, 404);
92
+ return notFound(c, 'Alert rule');
116
93
  }
117
94
  throw err;
118
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../src/routes/alerts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../src/routes/alerts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/routes/analytics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AA+D/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,UAAU;eAC/C,aAAa;0CA+ZhD"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/routes/analytics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AA+D/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,UAAU;eAC/C,aAAa;0CA6hBhD"}