@agentlensai/core 0.2.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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/constants.test.d.ts +2 -0
  3. package/dist/__tests__/constants.test.d.ts.map +1 -0
  4. package/dist/__tests__/constants.test.js +17 -0
  5. package/dist/__tests__/constants.test.js.map +1 -0
  6. package/dist/__tests__/events.test.d.ts +2 -0
  7. package/dist/__tests__/events.test.d.ts.map +1 -0
  8. package/dist/__tests__/events.test.js +295 -0
  9. package/dist/__tests__/events.test.js.map +1 -0
  10. package/dist/__tests__/hash.test.d.ts +2 -0
  11. package/dist/__tests__/hash.test.d.ts.map +1 -0
  12. package/dist/__tests__/hash.test.js +316 -0
  13. package/dist/__tests__/hash.test.js.map +1 -0
  14. package/dist/__tests__/index.test.d.ts +2 -0
  15. package/dist/__tests__/index.test.d.ts.map +1 -0
  16. package/dist/__tests__/index.test.js +35 -0
  17. package/dist/__tests__/index.test.js.map +1 -0
  18. package/dist/__tests__/schemas.test.d.ts +2 -0
  19. package/dist/__tests__/schemas.test.d.ts.map +1 -0
  20. package/dist/__tests__/schemas.test.js +420 -0
  21. package/dist/__tests__/schemas.test.js.map +1 -0
  22. package/dist/__tests__/session-query-types.test.d.ts +2 -0
  23. package/dist/__tests__/session-query-types.test.d.ts.map +1 -0
  24. package/dist/__tests__/session-query-types.test.js +230 -0
  25. package/dist/__tests__/session-query-types.test.js.map +1 -0
  26. package/dist/__tests__/types.test.d.ts +2 -0
  27. package/dist/__tests__/types.test.d.ts.map +1 -0
  28. package/dist/__tests__/types.test.js +236 -0
  29. package/dist/__tests__/types.test.js.map +1 -0
  30. package/dist/alert-schemas.d.ts +99 -0
  31. package/dist/alert-schemas.d.ts.map +1 -0
  32. package/dist/alert-schemas.js +51 -0
  33. package/dist/alert-schemas.js.map +1 -0
  34. package/dist/constants.d.ts +12 -0
  35. package/dist/constants.d.ts.map +1 -0
  36. package/dist/constants.js +12 -0
  37. package/dist/constants.js.map +1 -0
  38. package/dist/events.d.ts +41 -0
  39. package/dist/events.d.ts.map +1 -0
  40. package/dist/events.js +73 -0
  41. package/dist/events.js.map +1 -0
  42. package/dist/hash.d.ts +61 -0
  43. package/dist/hash.d.ts.map +1 -0
  44. package/dist/hash.js +81 -0
  45. package/dist/hash.js.map +1 -0
  46. package/dist/index.d.ts +11 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +18 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/schemas.d.ts +301 -0
  51. package/dist/schemas.d.ts.map +1 -0
  52. package/dist/schemas.js +171 -0
  53. package/dist/schemas.js.map +1 -0
  54. package/dist/storage.d.ts +121 -0
  55. package/dist/storage.d.ts.map +1 -0
  56. package/dist/storage.js +9 -0
  57. package/dist/storage.js.map +1 -0
  58. package/dist/types.d.ts +239 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +37 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +50 -0
@@ -0,0 +1,171 @@
1
+ /**
2
+ * @agentlens/core — Zod Validation Schemas
3
+ *
4
+ * Runtime validation schemas for all API inputs per Architecture §4.2
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Schema for validating event types
9
+ */
10
+ export const eventTypeSchema = z.enum([
11
+ 'session_started',
12
+ 'session_ended',
13
+ 'tool_call',
14
+ 'tool_response',
15
+ 'tool_error',
16
+ 'approval_requested',
17
+ 'approval_granted',
18
+ 'approval_denied',
19
+ 'approval_expired',
20
+ 'form_submitted',
21
+ 'form_completed',
22
+ 'form_expired',
23
+ 'cost_tracked',
24
+ 'alert_triggered',
25
+ 'alert_resolved',
26
+ 'custom',
27
+ ]);
28
+ /**
29
+ * Schema for validating severity levels
30
+ */
31
+ export const severitySchema = z.enum(['debug', 'info', 'warn', 'error', 'critical']);
32
+ // ─── Typed Payload Schemas ──────────────────────────────────────────
33
+ export const toolCallPayloadSchema = z.object({
34
+ toolName: z.string().min(1),
35
+ callId: z.string().min(1),
36
+ arguments: z.record(z.unknown()),
37
+ serverName: z.string().optional(),
38
+ });
39
+ export const toolResponsePayloadSchema = z.object({
40
+ callId: z.string().min(1),
41
+ toolName: z.string().min(1),
42
+ result: z.unknown(),
43
+ durationMs: z.number(),
44
+ });
45
+ export const toolErrorPayloadSchema = z.object({
46
+ callId: z.string().min(1),
47
+ toolName: z.string().min(1),
48
+ error: z.string(),
49
+ errorCode: z.string().optional(),
50
+ durationMs: z.number(),
51
+ });
52
+ export const sessionStartedPayloadSchema = z.object({
53
+ agentName: z.string().optional(),
54
+ agentVersion: z.string().optional(),
55
+ mcpClientInfo: z.record(z.unknown()).optional(),
56
+ tags: z.array(z.string()).optional(),
57
+ });
58
+ export const sessionEndedPayloadSchema = z.object({
59
+ reason: z.enum(['completed', 'error', 'timeout', 'manual']),
60
+ summary: z.string().optional(),
61
+ totalToolCalls: z.number().optional(),
62
+ totalDurationMs: z.number().optional(),
63
+ });
64
+ export const approvalRequestedPayloadSchema = z.object({
65
+ requestId: z.string().min(1),
66
+ action: z.string().min(1),
67
+ params: z.record(z.unknown()),
68
+ urgency: z.string(),
69
+ });
70
+ export const approvalDecisionPayloadSchema = z.object({
71
+ requestId: z.string().min(1),
72
+ action: z.string().min(1),
73
+ decidedBy: z.string().min(1),
74
+ reason: z.string().optional(),
75
+ });
76
+ export const formSubmittedPayloadSchema = z.object({
77
+ submissionId: z.string().min(1),
78
+ formId: z.string().min(1),
79
+ formName: z.string().optional(),
80
+ fieldCount: z.number(),
81
+ });
82
+ export const formCompletedPayloadSchema = z.object({
83
+ submissionId: z.string().min(1),
84
+ formId: z.string().min(1),
85
+ completedBy: z.string().min(1),
86
+ durationMs: z.number(),
87
+ });
88
+ export const formExpiredPayloadSchema = z.object({
89
+ submissionId: z.string().min(1),
90
+ formId: z.string().min(1),
91
+ expiredAfterMs: z.number(),
92
+ });
93
+ export const costTrackedPayloadSchema = z.object({
94
+ provider: z.string().min(1),
95
+ model: z.string().min(1),
96
+ inputTokens: z.number(),
97
+ outputTokens: z.number(),
98
+ totalTokens: z.number(),
99
+ costUsd: z.number(),
100
+ trigger: z.string().optional(),
101
+ });
102
+ export const alertTriggeredPayloadSchema = z.object({
103
+ alertRuleId: z.string().min(1),
104
+ alertName: z.string().min(1),
105
+ condition: z.string(),
106
+ currentValue: z.number(),
107
+ threshold: z.number(),
108
+ message: z.string(),
109
+ });
110
+ export const alertResolvedPayloadSchema = z.object({
111
+ alertRuleId: z.string().min(1),
112
+ alertName: z.string().min(1),
113
+ resolvedBy: z.string().optional(),
114
+ });
115
+ export const customPayloadSchema = z.object({
116
+ type: z.string(),
117
+ data: z.record(z.unknown()),
118
+ });
119
+ /**
120
+ * Map of event type to payload schema for type-specific validation.
121
+ */
122
+ export const payloadSchemasByEventType = {
123
+ tool_call: toolCallPayloadSchema,
124
+ tool_response: toolResponsePayloadSchema,
125
+ tool_error: toolErrorPayloadSchema,
126
+ session_started: sessionStartedPayloadSchema,
127
+ session_ended: sessionEndedPayloadSchema,
128
+ approval_requested: approvalRequestedPayloadSchema,
129
+ approval_granted: approvalDecisionPayloadSchema,
130
+ approval_denied: approvalDecisionPayloadSchema,
131
+ approval_expired: approvalDecisionPayloadSchema,
132
+ form_submitted: formSubmittedPayloadSchema,
133
+ form_completed: formCompletedPayloadSchema,
134
+ form_expired: formExpiredPayloadSchema,
135
+ cost_tracked: costTrackedPayloadSchema,
136
+ alert_triggered: alertTriggeredPayloadSchema,
137
+ alert_resolved: alertResolvedPayloadSchema,
138
+ custom: customPayloadSchema,
139
+ };
140
+ /**
141
+ * Schema for validating inbound event ingestion.
142
+ *
143
+ * Uses superRefine to validate the payload against the correct
144
+ * type-specific schema based on eventType.
145
+ */
146
+ export const ingestEventSchema = z
147
+ .object({
148
+ sessionId: z.string().min(1, 'sessionId is required'),
149
+ agentId: z.string().min(1, 'agentId is required'),
150
+ eventType: eventTypeSchema,
151
+ severity: severitySchema.default('info'),
152
+ payload: z.record(z.unknown()),
153
+ metadata: z.record(z.unknown()).default({}),
154
+ /** Optional client-side timestamp; server will validate and may override */
155
+ timestamp: z.string().datetime().optional(),
156
+ })
157
+ .superRefine((data, ctx) => {
158
+ const schema = payloadSchemasByEventType[data.eventType];
159
+ if (schema) {
160
+ const result = schema.safeParse(data.payload);
161
+ if (!result.success) {
162
+ for (const issue of result.error.issues) {
163
+ ctx.addIssue({
164
+ ...issue,
165
+ path: ['payload', ...issue.path],
166
+ });
167
+ }
168
+ }
169
+ }
170
+ });
171
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @agentlens/core — Storage Interface
3
+ *
4
+ * Defines the IEventStore interface that all storage backends implement.
5
+ * This enables pluggable storage (SQLite, PostgreSQL, in-memory for tests)
6
+ * and clean mock testing.
7
+ */
8
+ import type { AgentLensEvent, EventQuery, EventQueryResult, Session, SessionQuery, Agent, AlertRule, AlertHistory } from './types.js';
9
+ /**
10
+ * Analytics result with time-bucketed metrics and totals.
11
+ */
12
+ export interface AnalyticsResult {
13
+ buckets: Array<{
14
+ timestamp: string;
15
+ eventCount: number;
16
+ toolCallCount: number;
17
+ errorCount: number;
18
+ avgLatencyMs: number;
19
+ totalCostUsd: number;
20
+ uniqueSessions: number;
21
+ }>;
22
+ totals: {
23
+ eventCount: number;
24
+ toolCallCount: number;
25
+ errorCount: number;
26
+ avgLatencyMs: number;
27
+ totalCostUsd: number;
28
+ uniqueSessions: number;
29
+ uniqueAgents: number;
30
+ };
31
+ }
32
+ /**
33
+ * Storage statistics for monitoring and the /api/stats endpoint.
34
+ */
35
+ export interface StorageStats {
36
+ totalEvents: number;
37
+ totalSessions: number;
38
+ totalAgents: number;
39
+ oldestEvent?: string;
40
+ newestEvent?: string;
41
+ storageSizeBytes?: number;
42
+ }
43
+ /**
44
+ * Core storage interface — all backends implement this.
45
+ *
46
+ * Methods are grouped by domain:
47
+ * - Events: insert, query, get, timeline, count
48
+ * - Sessions: upsert, query, get
49
+ * - Agents: upsert, list, get
50
+ * - Analytics: aggregated metrics
51
+ * - Alert Rules: CRUD
52
+ * - Maintenance: retention, stats
53
+ */
54
+ export interface IEventStore {
55
+ /** Persist one or more events (already validated & hashed) */
56
+ insertEvents(events: AgentLensEvent[]): Promise<void>;
57
+ /** Query events with filters */
58
+ queryEvents(query: EventQuery): Promise<EventQueryResult>;
59
+ /** Get a single event by ID */
60
+ getEvent(id: string): Promise<AgentLensEvent | null>;
61
+ /** Get all events in a session, ordered by timestamp ascending */
62
+ getSessionTimeline(sessionId: string): Promise<AgentLensEvent[]>;
63
+ /** Get the hash of the last event in a session (for chain continuation) */
64
+ getLastEventHash(sessionId: string): Promise<string | null>;
65
+ /** Count events matching a query (for pagination) */
66
+ countEvents(query: Omit<EventQuery, 'limit' | 'offset'>): Promise<number>;
67
+ /** Upsert session (materialized from events) */
68
+ upsertSession(session: Partial<Session> & {
69
+ id: string;
70
+ }): Promise<void>;
71
+ /** Query sessions */
72
+ querySessions(query: SessionQuery): Promise<{
73
+ sessions: Session[];
74
+ total: number;
75
+ }>;
76
+ /** Get a single session by ID */
77
+ getSession(id: string): Promise<Session | null>;
78
+ /** Upsert agent (materialized from events) */
79
+ upsertAgent(agent: Partial<Agent> & {
80
+ id: string;
81
+ }): Promise<void>;
82
+ /** List all agents */
83
+ listAgents(): Promise<Agent[]>;
84
+ /** Get agent by ID */
85
+ getAgent(id: string): Promise<Agent | null>;
86
+ /** Get aggregated metrics for a time range */
87
+ getAnalytics(params: {
88
+ from: string;
89
+ to: string;
90
+ agentId?: string;
91
+ granularity: 'hour' | 'day' | 'week';
92
+ }): Promise<AnalyticsResult>;
93
+ /** Create a new alert rule */
94
+ createAlertRule(rule: AlertRule): Promise<void>;
95
+ /** Update an existing alert rule */
96
+ updateAlertRule(id: string, updates: Partial<AlertRule>): Promise<void>;
97
+ /** Delete an alert rule */
98
+ deleteAlertRule(id: string): Promise<void>;
99
+ /** List all alert rules */
100
+ listAlertRules(): Promise<AlertRule[]>;
101
+ /** Get a single alert rule by ID */
102
+ getAlertRule(id: string): Promise<AlertRule | null>;
103
+ /** Insert an alert history record */
104
+ insertAlertHistory(entry: AlertHistory): Promise<void>;
105
+ /** List alert history with optional filters */
106
+ listAlertHistory(opts?: {
107
+ ruleId?: string;
108
+ limit?: number;
109
+ offset?: number;
110
+ }): Promise<{
111
+ entries: AlertHistory[];
112
+ total: number;
113
+ }>;
114
+ /** Apply retention policy — delete events older than given date */
115
+ applyRetention(olderThan: string): Promise<{
116
+ deletedCount: number;
117
+ }>;
118
+ /** Get storage statistics */
119
+ getStats(): Promise<StorageStats>;
120
+ }
121
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @agentlens/core — Storage Interface
3
+ *
4
+ * Defines the IEventStore interface that all storage backends implement.
5
+ * This enables pluggable storage (SQLite, PostgreSQL, in-memory for tests)
6
+ * and clean mock testing.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * @agentlens/core — Core Event Types and Interfaces
3
+ *
4
+ * All types per Architecture §4.1
5
+ */
6
+ /**
7
+ * Unique identifier (ULID for time-sortability)
8
+ */
9
+ export type EventId = string;
10
+ /**
11
+ * ISO 8601 timestamp string
12
+ */
13
+ export type Timestamp = string;
14
+ /**
15
+ * All supported event types (16 types)
16
+ */
17
+ export type EventType = 'session_started' | 'session_ended' | 'tool_call' | 'tool_response' | 'tool_error' | 'approval_requested' | 'approval_granted' | 'approval_denied' | 'approval_expired' | 'form_submitted' | 'form_completed' | 'form_expired' | 'cost_tracked' | 'alert_triggered' | 'alert_resolved' | 'custom';
18
+ /**
19
+ * Array of all event types for iteration/validation
20
+ */
21
+ export declare const EVENT_TYPES: readonly EventType[];
22
+ /**
23
+ * Severity levels for events
24
+ */
25
+ export type EventSeverity = 'debug' | 'info' | 'warn' | 'error' | 'critical';
26
+ /**
27
+ * Array of all severity levels for iteration/validation
28
+ */
29
+ export declare const EVENT_SEVERITIES: readonly EventSeverity[];
30
+ export interface ToolCallPayload {
31
+ toolName: string;
32
+ serverName?: string;
33
+ arguments: Record<string, unknown>;
34
+ /** Correlation ID to match with tool_response/tool_error */
35
+ callId: string;
36
+ }
37
+ export interface ToolResponsePayload {
38
+ callId: string;
39
+ toolName: string;
40
+ result: unknown;
41
+ durationMs: number;
42
+ }
43
+ export interface ToolErrorPayload {
44
+ callId: string;
45
+ toolName: string;
46
+ error: string;
47
+ errorCode?: string;
48
+ durationMs: number;
49
+ }
50
+ export interface SessionStartedPayload {
51
+ agentName?: string;
52
+ agentVersion?: string;
53
+ mcpClientInfo?: Record<string, unknown>;
54
+ tags?: string[];
55
+ }
56
+ export interface SessionEndedPayload {
57
+ reason: 'completed' | 'error' | 'timeout' | 'manual';
58
+ summary?: string;
59
+ totalToolCalls?: number;
60
+ totalDurationMs?: number;
61
+ }
62
+ export interface ApprovalRequestedPayload {
63
+ /** AgentGate request ID for cross-reference */
64
+ requestId: string;
65
+ action: string;
66
+ params: Record<string, unknown>;
67
+ urgency: string;
68
+ }
69
+ export interface ApprovalDecisionPayload {
70
+ requestId: string;
71
+ action: string;
72
+ decidedBy: string;
73
+ reason?: string;
74
+ }
75
+ export interface FormSubmittedPayload {
76
+ /** FormBridge submission ID */
77
+ submissionId: string;
78
+ formId: string;
79
+ formName?: string;
80
+ fieldCount: number;
81
+ }
82
+ export interface FormCompletedPayload {
83
+ submissionId: string;
84
+ formId: string;
85
+ completedBy: string;
86
+ durationMs: number;
87
+ }
88
+ export interface FormExpiredPayload {
89
+ submissionId: string;
90
+ formId: string;
91
+ expiredAfterMs: number;
92
+ }
93
+ export interface CostTrackedPayload {
94
+ provider: string;
95
+ model: string;
96
+ inputTokens: number;
97
+ outputTokens: number;
98
+ totalTokens: number;
99
+ costUsd: number;
100
+ /** What triggered this cost (tool call, completion, etc.) */
101
+ trigger?: string;
102
+ }
103
+ export interface AlertTriggeredPayload {
104
+ alertRuleId: string;
105
+ alertName: string;
106
+ condition: string;
107
+ currentValue: number;
108
+ threshold: number;
109
+ message: string;
110
+ }
111
+ export interface AlertResolvedPayload {
112
+ alertRuleId: string;
113
+ alertName: string;
114
+ resolvedBy?: string;
115
+ }
116
+ export interface CustomPayload {
117
+ type: string;
118
+ data: Record<string, unknown>;
119
+ }
120
+ /**
121
+ * Discriminated union of all payload types
122
+ */
123
+ export type EventPayload = ToolCallPayload | ToolResponsePayload | ToolErrorPayload | SessionStartedPayload | SessionEndedPayload | ApprovalRequestedPayload | ApprovalDecisionPayload | FormSubmittedPayload | FormCompletedPayload | FormExpiredPayload | CostTrackedPayload | AlertTriggeredPayload | AlertResolvedPayload | CustomPayload;
124
+ /**
125
+ * The core event record — the fundamental unit of data in AgentLens
126
+ */
127
+ export interface AgentLensEvent {
128
+ /** ULID — unique, time-sortable identifier */
129
+ id: EventId;
130
+ /** ISO 8601 timestamp of when the event occurred */
131
+ timestamp: Timestamp;
132
+ /** Session this event belongs to */
133
+ sessionId: string;
134
+ /** Agent that produced this event */
135
+ agentId: string;
136
+ /** Type discriminator */
137
+ eventType: EventType;
138
+ /** Severity level */
139
+ severity: EventSeverity;
140
+ /** Event-type-specific payload (see typed payloads above) */
141
+ payload: EventPayload;
142
+ /** Arbitrary metadata (tags, labels, correlation IDs) */
143
+ metadata: Record<string, unknown>;
144
+ /** SHA-256 hash of previous event in session (hash chain) */
145
+ prevHash: string | null;
146
+ /** SHA-256 hash of this event (computed on ingest) */
147
+ hash: string;
148
+ }
149
+ /**
150
+ * Session status enum values
151
+ */
152
+ export type SessionStatus = 'active' | 'completed' | 'error';
153
+ /**
154
+ * Agent session — materialized from session_started/session_ended events
155
+ */
156
+ export interface Session {
157
+ id: string;
158
+ agentId: string;
159
+ agentName?: string;
160
+ startedAt: Timestamp;
161
+ endedAt?: Timestamp;
162
+ status: SessionStatus;
163
+ eventCount: number;
164
+ toolCallCount: number;
165
+ errorCount: number;
166
+ totalCostUsd: number;
167
+ tags: string[];
168
+ }
169
+ /**
170
+ * Registered agent
171
+ */
172
+ export interface Agent {
173
+ id: string;
174
+ name: string;
175
+ description?: string;
176
+ firstSeenAt: Timestamp;
177
+ lastSeenAt: Timestamp;
178
+ sessionCount: number;
179
+ }
180
+ export interface EventQuery {
181
+ sessionId?: string;
182
+ agentId?: string;
183
+ eventType?: EventType | EventType[];
184
+ severity?: EventSeverity | EventSeverity[];
185
+ from?: Timestamp;
186
+ to?: Timestamp;
187
+ limit?: number;
188
+ offset?: number;
189
+ /** Sort direction (default: desc — newest first) */
190
+ order?: 'asc' | 'desc';
191
+ /** Full-text search on payload */
192
+ search?: string;
193
+ }
194
+ export interface EventQueryResult {
195
+ events: AgentLensEvent[];
196
+ total: number;
197
+ hasMore: boolean;
198
+ }
199
+ export interface SessionQuery {
200
+ agentId?: string;
201
+ status?: SessionStatus | SessionStatus[];
202
+ from?: Timestamp;
203
+ to?: Timestamp;
204
+ limit?: number;
205
+ offset?: number;
206
+ tags?: string[];
207
+ }
208
+ export interface SessionQueryResult {
209
+ sessions: Session[];
210
+ total: number;
211
+ }
212
+ export type AlertCondition = 'error_rate_exceeds' | 'cost_exceeds' | 'latency_exceeds' | 'event_count_exceeds' | 'no_events_for';
213
+ export interface AlertRule {
214
+ id: string;
215
+ name: string;
216
+ enabled: boolean;
217
+ condition: AlertCondition;
218
+ threshold: number;
219
+ windowMinutes: number;
220
+ /** Scope: all agents, specific agent, specific session tag */
221
+ scope: {
222
+ agentId?: string;
223
+ tags?: string[];
224
+ };
225
+ /** Notification channels (webhook URLs, email, etc.) */
226
+ notifyChannels: string[];
227
+ createdAt: Timestamp;
228
+ updatedAt: Timestamp;
229
+ }
230
+ export interface AlertHistory {
231
+ id: string;
232
+ ruleId: string;
233
+ triggeredAt: Timestamp;
234
+ resolvedAt?: Timestamp;
235
+ currentValue: number;
236
+ threshold: number;
237
+ message: string;
238
+ }
239
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @agentlens/core — Core Event Types and Interfaces
3
+ *
4
+ * All types per Architecture §4.1
5
+ */
6
+ /**
7
+ * Array of all event types for iteration/validation
8
+ */
9
+ export const EVENT_TYPES = [
10
+ 'session_started',
11
+ 'session_ended',
12
+ 'tool_call',
13
+ 'tool_response',
14
+ 'tool_error',
15
+ 'approval_requested',
16
+ 'approval_granted',
17
+ 'approval_denied',
18
+ 'approval_expired',
19
+ 'form_submitted',
20
+ 'form_completed',
21
+ 'form_expired',
22
+ 'cost_tracked',
23
+ 'alert_triggered',
24
+ 'alert_resolved',
25
+ 'custom',
26
+ ];
27
+ /**
28
+ * Array of all severity levels for iteration/validation
29
+ */
30
+ export const EVENT_SEVERITIES = [
31
+ 'debug',
32
+ 'info',
33
+ 'warn',
34
+ 'error',
35
+ 'critical',
36
+ ];
37
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4CH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;CACA,CAAC;AAOX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@agentlensai/core",
3
+ "version": "0.2.0",
4
+ "description": "Core types, schemas, and utilities for AgentLens — AI agent observability platform",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Amit Paz",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/amitpaz/agentlens.git",
11
+ "directory": "packages/core"
12
+ },
13
+ "homepage": "https://github.com/amitpaz/agentlens/tree/main/packages/core",
14
+ "bugs": {
15
+ "url": "https://github.com/amitpaz/agentlens/issues"
16
+ },
17
+ "keywords": [
18
+ "agentlens",
19
+ "ai-agents",
20
+ "observability",
21
+ "mcp",
22
+ "event-sourcing",
23
+ "audit-trail",
24
+ "types",
25
+ "schemas",
26
+ "zod"
27
+ ],
28
+ "exports": {
29
+ ".": {
30
+ "import": "./dist/index.js",
31
+ "types": "./dist/index.d.ts"
32
+ }
33
+ },
34
+ "main": "./dist/index.js",
35
+ "types": "./dist/index.d.ts",
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "dependencies": {
40
+ "ulid": "^3.0.2",
41
+ "zod": "^3.25.76"
42
+ },
43
+ "scripts": {
44
+ "build": "tsc -b",
45
+ "dev": "tsc -b --watch",
46
+ "typecheck": "tsc --noEmit",
47
+ "test": "vitest run",
48
+ "test:watch": "vitest"
49
+ }
50
+ }