@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,316 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { computeEventHash, verifyChain, HASH_VERSION } from '../hash.js';
3
+ describe('Story 2.4: Hash Chain Utilities', () => {
4
+ const baseEvent = {
5
+ id: '01HXY0001',
6
+ timestamp: '2026-02-07T10:00:00Z',
7
+ sessionId: 'sess_abc123',
8
+ agentId: 'agent_main',
9
+ eventType: 'tool_call',
10
+ severity: 'info',
11
+ payload: {
12
+ toolName: 'web_search',
13
+ arguments: { query: 'test' },
14
+ callId: 'call_1',
15
+ },
16
+ metadata: {},
17
+ prevHash: null,
18
+ };
19
+ describe('HASH_VERSION', () => {
20
+ it('should be 2', () => {
21
+ expect(HASH_VERSION).toBe(2);
22
+ });
23
+ });
24
+ describe('computeEventHash()', () => {
25
+ it('should return a deterministic SHA-256 hex string', () => {
26
+ const hash = computeEventHash(baseEvent);
27
+ expect(hash).toMatch(/^[0-9a-f]{64}$/);
28
+ });
29
+ it('should return identical hash for the same input (deterministic)', () => {
30
+ const hash1 = computeEventHash(baseEvent);
31
+ const hash2 = computeEventHash(baseEvent);
32
+ expect(hash1).toBe(hash2);
33
+ });
34
+ it('should return different hash for different payload', () => {
35
+ const event2 = {
36
+ ...baseEvent,
37
+ payload: {
38
+ toolName: 'file_read',
39
+ arguments: { path: '/tmp' },
40
+ callId: 'call_2',
41
+ },
42
+ };
43
+ const hash1 = computeEventHash(baseEvent);
44
+ const hash2 = computeEventHash(event2);
45
+ expect(hash1).not.toBe(hash2);
46
+ });
47
+ it('should return different hash for different prevHash', () => {
48
+ const event2 = {
49
+ ...baseEvent,
50
+ prevHash: 'abc123',
51
+ };
52
+ const hash1 = computeEventHash(baseEvent);
53
+ const hash2 = computeEventHash(event2);
54
+ expect(hash1).not.toBe(hash2);
55
+ });
56
+ it('should handle first event with prevHash = null', () => {
57
+ const event = {
58
+ ...baseEvent,
59
+ prevHash: null,
60
+ };
61
+ const hash = computeEventHash(event);
62
+ expect(hash).toMatch(/^[0-9a-f]{64}$/);
63
+ });
64
+ it('should return different hash for different id', () => {
65
+ const event2 = {
66
+ ...baseEvent,
67
+ id: '01HXY0002',
68
+ };
69
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
70
+ });
71
+ it('should return different hash for different timestamp', () => {
72
+ const event2 = {
73
+ ...baseEvent,
74
+ timestamp: '2026-02-07T10:00:01Z',
75
+ };
76
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
77
+ });
78
+ it('should return different hash for different sessionId', () => {
79
+ const event2 = {
80
+ ...baseEvent,
81
+ sessionId: 'sess_other',
82
+ };
83
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
84
+ });
85
+ it('should return different hash for different agentId', () => {
86
+ const event2 = {
87
+ ...baseEvent,
88
+ agentId: 'agent_other',
89
+ };
90
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
91
+ });
92
+ it('should return different hash for different eventType', () => {
93
+ const event2 = {
94
+ ...baseEvent,
95
+ eventType: 'tool_response',
96
+ };
97
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
98
+ });
99
+ it('should return different hash for different severity', () => {
100
+ const event2 = {
101
+ ...baseEvent,
102
+ severity: 'error',
103
+ };
104
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
105
+ });
106
+ it('should return different hash for different metadata', () => {
107
+ const event2 = {
108
+ ...baseEvent,
109
+ metadata: { source: 'mcp' },
110
+ };
111
+ expect(computeEventHash(baseEvent)).not.toBe(computeEventHash(event2));
112
+ });
113
+ });
114
+ describe('verifyChain()', () => {
115
+ /** Helper to build a ChainEvent from a HashableEvent */
116
+ function toChainEvent(event) {
117
+ const hash = computeEventHash(event);
118
+ return { ...event, hash };
119
+ }
120
+ it('should return valid for an empty chain', () => {
121
+ const result = verifyChain([]);
122
+ expect(result.valid).toBe(true);
123
+ expect(result.failedAtIndex).toBe(-1);
124
+ expect(result.reason).toBeNull();
125
+ });
126
+ it('should return valid for a single event with prevHash = null', () => {
127
+ const chainEvent = toChainEvent(baseEvent);
128
+ const result = verifyChain([chainEvent]);
129
+ expect(result.valid).toBe(true);
130
+ });
131
+ it('should return valid for a valid chain of events', () => {
132
+ // Build a chain of 3 events
133
+ const event1 = {
134
+ id: '01HXY0001',
135
+ timestamp: '2026-02-07T10:00:00Z',
136
+ sessionId: 'sess_1',
137
+ agentId: 'agent_1',
138
+ eventType: 'session_started',
139
+ severity: 'info',
140
+ payload: { agentName: 'Test Agent' },
141
+ metadata: {},
142
+ prevHash: null,
143
+ };
144
+ const ce1 = toChainEvent(event1);
145
+ const event2 = {
146
+ id: '01HXY0002',
147
+ timestamp: '2026-02-07T10:00:01Z',
148
+ sessionId: 'sess_1',
149
+ agentId: 'agent_1',
150
+ eventType: 'tool_call',
151
+ severity: 'info',
152
+ payload: { toolName: 'search', arguments: {}, callId: 'c1' },
153
+ metadata: {},
154
+ prevHash: ce1.hash,
155
+ };
156
+ const ce2 = toChainEvent(event2);
157
+ const event3 = {
158
+ id: '01HXY0003',
159
+ timestamp: '2026-02-07T10:00:02Z',
160
+ sessionId: 'sess_1',
161
+ agentId: 'agent_1',
162
+ eventType: 'tool_response',
163
+ severity: 'info',
164
+ payload: { callId: 'c1', toolName: 'search', result: {}, durationMs: 50 },
165
+ metadata: {},
166
+ prevHash: ce2.hash,
167
+ };
168
+ const ce3 = toChainEvent(event3);
169
+ const result = verifyChain([ce1, ce2, ce3]);
170
+ expect(result.valid).toBe(true);
171
+ });
172
+ it('should detect tampered event hash (payload modified after hashing)', () => {
173
+ const event1 = {
174
+ id: '01HXY0001',
175
+ timestamp: '2026-02-07T10:00:00Z',
176
+ sessionId: 'sess_1',
177
+ agentId: 'agent_1',
178
+ eventType: 'session_started',
179
+ severity: 'info',
180
+ payload: { agentName: 'Test Agent' },
181
+ metadata: {},
182
+ prevHash: null,
183
+ };
184
+ const ce1 = toChainEvent(event1);
185
+ const event2 = {
186
+ id: '01HXY0002',
187
+ timestamp: '2026-02-07T10:00:01Z',
188
+ sessionId: 'sess_1',
189
+ agentId: 'agent_1',
190
+ eventType: 'tool_call',
191
+ severity: 'info',
192
+ payload: { toolName: 'search', arguments: {}, callId: 'c1' },
193
+ metadata: {},
194
+ prevHash: ce1.hash,
195
+ };
196
+ const ce2 = toChainEvent(event2);
197
+ // Tamper: change payload but keep the old hash
198
+ const tampered = {
199
+ ...ce2,
200
+ payload: { toolName: 'HACKED', arguments: {}, callId: 'c1' },
201
+ };
202
+ const result = verifyChain([ce1, tampered]);
203
+ expect(result.valid).toBe(false);
204
+ expect(result.failedAtIndex).toBe(1);
205
+ expect(result.reason).toContain('hash mismatch');
206
+ });
207
+ it('should detect tampered severity (severity modified after hashing)', () => {
208
+ const ce1 = toChainEvent(baseEvent);
209
+ // Tamper: change severity but keep old hash
210
+ const tampered = { ...ce1, severity: 'critical' };
211
+ const result = verifyChain([tampered]);
212
+ expect(result.valid).toBe(false);
213
+ expect(result.failedAtIndex).toBe(0);
214
+ expect(result.reason).toContain('hash mismatch');
215
+ });
216
+ it('should detect tampered metadata', () => {
217
+ const ce1 = toChainEvent(baseEvent);
218
+ // Tamper: change metadata but keep old hash
219
+ const tampered = { ...ce1, metadata: { injected: true } };
220
+ const result = verifyChain([tampered]);
221
+ expect(result.valid).toBe(false);
222
+ expect(result.failedAtIndex).toBe(0);
223
+ expect(result.reason).toContain('hash mismatch');
224
+ });
225
+ it('should return false when prevHash does not match previous hash', () => {
226
+ const ce1 = toChainEvent(baseEvent);
227
+ const event2 = {
228
+ ...baseEvent,
229
+ id: '01HXY0002',
230
+ prevHash: 'wrong_hash',
231
+ };
232
+ const ce2 = {
233
+ ...event2,
234
+ hash: computeEventHash(event2),
235
+ };
236
+ const result = verifyChain([ce1, ce2]);
237
+ expect(result.valid).toBe(false);
238
+ expect(result.failedAtIndex).toBe(1);
239
+ expect(result.reason).toContain('prevHash does not match');
240
+ });
241
+ it('should return false when first event has non-null prevHash', () => {
242
+ const event = { ...baseEvent, prevHash: 'should_be_null' };
243
+ const ce = { ...event, hash: computeEventHash(event) };
244
+ const result = verifyChain([ce]);
245
+ expect(result.valid).toBe(false);
246
+ expect(result.failedAtIndex).toBe(0);
247
+ expect(result.reason).toContain('First event must have prevHash = null');
248
+ });
249
+ it('should return valid for a long valid chain', () => {
250
+ const chain = [];
251
+ let prevHash = null;
252
+ for (let i = 0; i < 100; i++) {
253
+ const event = {
254
+ id: `01HXY${String(i).padStart(4, '0')}`,
255
+ timestamp: `2026-02-07T10:00:${String(i).padStart(2, '0')}Z`,
256
+ sessionId: 'sess_1',
257
+ agentId: 'agent_1',
258
+ eventType: 'custom',
259
+ severity: 'info',
260
+ payload: { type: 'test', data: { index: i } },
261
+ metadata: {},
262
+ prevHash,
263
+ };
264
+ const hash = computeEventHash(event);
265
+ chain.push({ ...event, hash });
266
+ prevHash = hash;
267
+ }
268
+ const result = verifyChain(chain);
269
+ expect(result.valid).toBe(true);
270
+ });
271
+ it('should detect tampering in the middle of a long chain', () => {
272
+ const chain = [];
273
+ let prevHash = null;
274
+ for (let i = 0; i < 10; i++) {
275
+ const event = {
276
+ id: `01HXY${String(i).padStart(4, '0')}`,
277
+ timestamp: `2026-02-07T10:00:${String(i).padStart(2, '0')}Z`,
278
+ sessionId: 'sess_1',
279
+ agentId: 'agent_1',
280
+ eventType: 'custom',
281
+ severity: 'info',
282
+ payload: { type: 'test', data: { index: i } },
283
+ metadata: {},
284
+ prevHash,
285
+ };
286
+ const hash = computeEventHash(event);
287
+ chain.push({ ...event, hash });
288
+ prevHash = hash;
289
+ }
290
+ // Tamper event at index 5: change the hash (simulates payload modification)
291
+ chain[5] = { ...chain[5], hash: 'tampered_hash' };
292
+ const result = verifyChain(chain);
293
+ expect(result.valid).toBe(false);
294
+ expect(result.failedAtIndex).toBe(5);
295
+ });
296
+ it('should provide detailed failure info', () => {
297
+ const ce1 = toChainEvent(baseEvent);
298
+ // Event with wrong hash
299
+ const event2 = {
300
+ ...baseEvent,
301
+ id: '01HXY0002',
302
+ prevHash: ce1.hash,
303
+ };
304
+ const ce2 = {
305
+ ...event2,
306
+ hash: 'clearly_wrong_hash',
307
+ };
308
+ const result = verifyChain([ce1, ce2]);
309
+ expect(result.valid).toBe(false);
310
+ expect(result.failedAtIndex).toBe(1);
311
+ expect(result.reason).toContain('Event 1');
312
+ expect(result.reason).toContain('hash mismatch');
313
+ });
314
+ });
315
+ });
316
+ //# sourceMappingURL=hash.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../src/__tests__/hash.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import * as core from '../index.js';
3
+ describe('Story 2.5: Index barrel re-exports', () => {
4
+ it('should export all types and constants', () => {
5
+ // Types (runtime arrays)
6
+ expect(core.EVENT_TYPES).toBeDefined();
7
+ expect(core.EVENT_SEVERITIES).toBeDefined();
8
+ // Schemas
9
+ expect(core.eventTypeSchema).toBeDefined();
10
+ expect(core.severitySchema).toBeDefined();
11
+ expect(core.ingestEventSchema).toBeDefined();
12
+ // Hash utilities
13
+ expect(core.computeEventHash).toBeDefined();
14
+ expect(core.verifyChain).toBeDefined();
15
+ expect(core.HASH_VERSION).toBe(2);
16
+ // Event helpers
17
+ expect(core.createEvent).toBeDefined();
18
+ expect(core.truncatePayload).toBeDefined();
19
+ // Constants
20
+ expect(core.DEFAULT_PAGE_SIZE).toBe(50);
21
+ expect(core.MAX_PAGE_SIZE).toBe(500);
22
+ expect(core.MAX_PAYLOAD_SIZE).toBe(10240);
23
+ expect(core.DEFAULT_RETENTION_DAYS).toBe(90);
24
+ });
25
+ it('should export createEvent as a function', () => {
26
+ expect(typeof core.createEvent).toBe('function');
27
+ });
28
+ it('should export computeEventHash as a function', () => {
29
+ expect(typeof core.computeEventHash).toBe('function');
30
+ });
31
+ it('should export verifyChain as a function', () => {
32
+ expect(typeof core.verifyChain).toBe('function');
33
+ });
34
+ });
35
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAE5C,UAAU;QACV,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7C,iBAAiB;QACjB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElC,gBAAgB;QAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,YAAY;QACZ,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemas.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/schemas.test.ts"],"names":[],"mappings":""}