@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.
- package/LICENSE +21 -0
- package/dist/__tests__/constants.test.d.ts +2 -0
- package/dist/__tests__/constants.test.d.ts.map +1 -0
- package/dist/__tests__/constants.test.js +17 -0
- package/dist/__tests__/constants.test.js.map +1 -0
- package/dist/__tests__/events.test.d.ts +2 -0
- package/dist/__tests__/events.test.d.ts.map +1 -0
- package/dist/__tests__/events.test.js +295 -0
- package/dist/__tests__/events.test.js.map +1 -0
- package/dist/__tests__/hash.test.d.ts +2 -0
- package/dist/__tests__/hash.test.d.ts.map +1 -0
- package/dist/__tests__/hash.test.js +316 -0
- package/dist/__tests__/hash.test.js.map +1 -0
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/index.test.js +35 -0
- package/dist/__tests__/index.test.js.map +1 -0
- package/dist/__tests__/schemas.test.d.ts +2 -0
- package/dist/__tests__/schemas.test.d.ts.map +1 -0
- package/dist/__tests__/schemas.test.js +420 -0
- package/dist/__tests__/schemas.test.js.map +1 -0
- package/dist/__tests__/session-query-types.test.d.ts +2 -0
- package/dist/__tests__/session-query-types.test.d.ts.map +1 -0
- package/dist/__tests__/session-query-types.test.js +230 -0
- package/dist/__tests__/session-query-types.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +2 -0
- package/dist/__tests__/types.test.d.ts.map +1 -0
- package/dist/__tests__/types.test.js +236 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/alert-schemas.d.ts +99 -0
- package/dist/alert-schemas.d.ts.map +1 -0
- package/dist/alert-schemas.js +51 -0
- package/dist/alert-schemas.js.map +1 -0
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -0
- package/dist/events.d.ts +41 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +73 -0
- package/dist/events.js.map +1 -0
- package/dist/hash.d.ts +61 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +81 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas.d.ts +301 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +171 -0
- package/dist/schemas.js.map +1 -0
- package/dist/storage.d.ts +121 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +9 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +239 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentlens/core — Shared Constants
|
|
3
|
+
*/
|
|
4
|
+
/** Default number of results per page */
|
|
5
|
+
export declare const DEFAULT_PAGE_SIZE = 50;
|
|
6
|
+
/** Maximum number of results per page */
|
|
7
|
+
export declare const MAX_PAGE_SIZE = 500;
|
|
8
|
+
/** Maximum payload size in UTF-8 bytes (10KB). Measured with Buffer.byteLength(). */
|
|
9
|
+
export declare const MAX_PAYLOAD_SIZE = 10240;
|
|
10
|
+
/** Default retention period in days */
|
|
11
|
+
export declare const DEFAULT_RETENTION_DAYS = 90;
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,yCAAyC;AACzC,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,KAAK,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentlens/core — Shared Constants
|
|
3
|
+
*/
|
|
4
|
+
/** Default number of results per page */
|
|
5
|
+
export const DEFAULT_PAGE_SIZE = 50;
|
|
6
|
+
/** Maximum number of results per page */
|
|
7
|
+
export const MAX_PAGE_SIZE = 500;
|
|
8
|
+
/** Maximum payload size in UTF-8 bytes (10KB). Measured with Buffer.byteLength(). */
|
|
9
|
+
export const MAX_PAYLOAD_SIZE = 10240;
|
|
10
|
+
/** Default retention period in days */
|
|
11
|
+
export const DEFAULT_RETENTION_DAYS = 90;
|
|
12
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,uCAAuC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AgentLensEvent, EventType, EventSeverity, EventPayload } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Options for creating an event
|
|
4
|
+
*/
|
|
5
|
+
export interface CreateEventOptions {
|
|
6
|
+
/** Session this event belongs to */
|
|
7
|
+
sessionId: string;
|
|
8
|
+
/** Agent that produced this event */
|
|
9
|
+
agentId: string;
|
|
10
|
+
/** Event type */
|
|
11
|
+
eventType: EventType;
|
|
12
|
+
/** Event payload */
|
|
13
|
+
payload: EventPayload;
|
|
14
|
+
/** Severity level (defaults to 'info') */
|
|
15
|
+
severity?: EventSeverity;
|
|
16
|
+
/** Arbitrary metadata */
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
/** Hash of the previous event in the session chain (null for first event) */
|
|
19
|
+
prevHash?: string | null;
|
|
20
|
+
/** Optional client-provided timestamp (defaults to now) */
|
|
21
|
+
timestamp?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a fully-formed AgentLensEvent with generated ULID id,
|
|
25
|
+
* ISO timestamp, default severity, and computed hash.
|
|
26
|
+
*
|
|
27
|
+
* @param options - Event creation options
|
|
28
|
+
* @returns A complete AgentLensEvent ready for persistence
|
|
29
|
+
*/
|
|
30
|
+
export declare function createEvent(options: CreateEventOptions): AgentLensEvent;
|
|
31
|
+
/**
|
|
32
|
+
* Truncate a payload if its JSON serialization exceeds MAX_PAYLOAD_SIZE.
|
|
33
|
+
*
|
|
34
|
+
* When truncated, the payload is replaced with a summary object containing
|
|
35
|
+
* a `_truncated: true` flag and the original size.
|
|
36
|
+
*
|
|
37
|
+
* @param payload - The event payload to potentially truncate
|
|
38
|
+
* @returns The original payload or a truncated version
|
|
39
|
+
*/
|
|
40
|
+
export declare function truncatePayload(payload: EventPayload): EventPayload;
|
|
41
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIzF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,oBAAoB;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAkCvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAgBnE"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentlens/core — Event Creation Helpers
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating events with proper defaults.
|
|
5
|
+
*/
|
|
6
|
+
import { ulid } from 'ulid';
|
|
7
|
+
import { computeEventHash } from './hash.js';
|
|
8
|
+
import { MAX_PAYLOAD_SIZE } from './constants.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create a fully-formed AgentLensEvent with generated ULID id,
|
|
11
|
+
* ISO timestamp, default severity, and computed hash.
|
|
12
|
+
*
|
|
13
|
+
* @param options - Event creation options
|
|
14
|
+
* @returns A complete AgentLensEvent ready for persistence
|
|
15
|
+
*/
|
|
16
|
+
export function createEvent(options) {
|
|
17
|
+
const id = ulid();
|
|
18
|
+
const timestamp = options.timestamp ?? new Date().toISOString();
|
|
19
|
+
const severity = options.severity ?? 'info';
|
|
20
|
+
const metadata = options.metadata ?? {};
|
|
21
|
+
const prevHash = options.prevHash ?? null;
|
|
22
|
+
// Truncate payload if needed
|
|
23
|
+
const payload = truncatePayload(options.payload);
|
|
24
|
+
const hash = computeEventHash({
|
|
25
|
+
id,
|
|
26
|
+
timestamp,
|
|
27
|
+
sessionId: options.sessionId,
|
|
28
|
+
agentId: options.agentId,
|
|
29
|
+
eventType: options.eventType,
|
|
30
|
+
severity,
|
|
31
|
+
payload,
|
|
32
|
+
metadata,
|
|
33
|
+
prevHash,
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
id,
|
|
37
|
+
timestamp,
|
|
38
|
+
sessionId: options.sessionId,
|
|
39
|
+
agentId: options.agentId,
|
|
40
|
+
eventType: options.eventType,
|
|
41
|
+
severity,
|
|
42
|
+
payload,
|
|
43
|
+
metadata,
|
|
44
|
+
prevHash,
|
|
45
|
+
hash,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Truncate a payload if its JSON serialization exceeds MAX_PAYLOAD_SIZE.
|
|
50
|
+
*
|
|
51
|
+
* When truncated, the payload is replaced with a summary object containing
|
|
52
|
+
* a `_truncated: true` flag and the original size.
|
|
53
|
+
*
|
|
54
|
+
* @param payload - The event payload to potentially truncate
|
|
55
|
+
* @returns The original payload or a truncated version
|
|
56
|
+
*/
|
|
57
|
+
export function truncatePayload(payload) {
|
|
58
|
+
const serialized = JSON.stringify(payload);
|
|
59
|
+
const byteLength = Buffer.byteLength(serialized, 'utf8');
|
|
60
|
+
if (byteLength <= MAX_PAYLOAD_SIZE) {
|
|
61
|
+
return payload;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
type: '_truncated',
|
|
65
|
+
data: {
|
|
66
|
+
_truncated: true,
|
|
67
|
+
originalSize: byteLength,
|
|
68
|
+
maxSize: MAX_PAYLOAD_SIZE,
|
|
69
|
+
preview: serialized.slice(0, 200) + '...',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAwBlD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,EAAE;QACF,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,EAAE;QACF,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,OAAqB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;SAC1C;KACc,CAAC;AACpB,CAAC"}
|
package/dist/hash.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hash format version. Bump when changing hash input structure
|
|
3
|
+
* to distinguish old vs new hashes.
|
|
4
|
+
*/
|
|
5
|
+
export declare const HASH_VERSION = 2;
|
|
6
|
+
/**
|
|
7
|
+
* Input type for computing event hash.
|
|
8
|
+
* Includes all fields that contribute to the hash.
|
|
9
|
+
*/
|
|
10
|
+
export interface HashableEvent {
|
|
11
|
+
id: string;
|
|
12
|
+
timestamp: string;
|
|
13
|
+
sessionId: string;
|
|
14
|
+
agentId: string;
|
|
15
|
+
eventType: string;
|
|
16
|
+
severity: string;
|
|
17
|
+
payload: unknown;
|
|
18
|
+
metadata: Record<string, unknown>;
|
|
19
|
+
prevHash: string | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Compute a deterministic SHA-256 hash for an event.
|
|
23
|
+
*
|
|
24
|
+
* The hash is computed from a canonical JSON representation of the
|
|
25
|
+
* event's key fields plus the previous event's hash (hash chain).
|
|
26
|
+
*
|
|
27
|
+
* @param event - The event fields to hash
|
|
28
|
+
* @returns Hex-encoded SHA-256 hash string
|
|
29
|
+
*/
|
|
30
|
+
export declare function computeEventHash(event: HashableEvent): string;
|
|
31
|
+
/**
|
|
32
|
+
* Interface for events in chain verification.
|
|
33
|
+
* Must include all hashable fields so hashes can be recomputed.
|
|
34
|
+
*/
|
|
35
|
+
export interface ChainEvent extends HashableEvent {
|
|
36
|
+
hash: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Detailed result from chain verification.
|
|
40
|
+
*/
|
|
41
|
+
export interface ChainVerificationResult {
|
|
42
|
+
valid: boolean;
|
|
43
|
+
/** Index of the first event that failed verification, or -1 if valid */
|
|
44
|
+
failedAtIndex: number;
|
|
45
|
+
/** Human-readable reason for the failure, or null if valid */
|
|
46
|
+
reason: string | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Verify the integrity of a hash chain.
|
|
50
|
+
*
|
|
51
|
+
* For each event:
|
|
52
|
+
* 1. Recomputes the hash from event contents and verifies it matches event.hash
|
|
53
|
+
* 2. Checks that prevHash matches the previous event's hash
|
|
54
|
+
*
|
|
55
|
+
* The first event in a chain should have prevHash = null.
|
|
56
|
+
*
|
|
57
|
+
* @param events - Ordered array of full events to verify
|
|
58
|
+
* @returns ChainVerificationResult with details on any failure
|
|
59
|
+
*/
|
|
60
|
+
export declare function verifyChain(events: ChainEvent[]): ChainVerificationResult;
|
|
61
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAc7D;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAoCzE"}
|
package/dist/hash.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentlens/core — Hash Chain Utilities
|
|
3
|
+
*
|
|
4
|
+
* Cryptographic hash chain for tamper evidence per Architecture §4.3
|
|
5
|
+
*/
|
|
6
|
+
import { createHash } from 'node:crypto';
|
|
7
|
+
/**
|
|
8
|
+
* Hash format version. Bump when changing hash input structure
|
|
9
|
+
* to distinguish old vs new hashes.
|
|
10
|
+
*/
|
|
11
|
+
export const HASH_VERSION = 2;
|
|
12
|
+
/**
|
|
13
|
+
* Compute a deterministic SHA-256 hash for an event.
|
|
14
|
+
*
|
|
15
|
+
* The hash is computed from a canonical JSON representation of the
|
|
16
|
+
* event's key fields plus the previous event's hash (hash chain).
|
|
17
|
+
*
|
|
18
|
+
* @param event - The event fields to hash
|
|
19
|
+
* @returns Hex-encoded SHA-256 hash string
|
|
20
|
+
*/
|
|
21
|
+
export function computeEventHash(event) {
|
|
22
|
+
const canonical = JSON.stringify({
|
|
23
|
+
v: HASH_VERSION,
|
|
24
|
+
id: event.id,
|
|
25
|
+
timestamp: event.timestamp,
|
|
26
|
+
sessionId: event.sessionId,
|
|
27
|
+
agentId: event.agentId,
|
|
28
|
+
eventType: event.eventType,
|
|
29
|
+
severity: event.severity,
|
|
30
|
+
payload: event.payload,
|
|
31
|
+
metadata: event.metadata,
|
|
32
|
+
prevHash: event.prevHash,
|
|
33
|
+
});
|
|
34
|
+
return createHash('sha256').update(canonical).digest('hex');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Verify the integrity of a hash chain.
|
|
38
|
+
*
|
|
39
|
+
* For each event:
|
|
40
|
+
* 1. Recomputes the hash from event contents and verifies it matches event.hash
|
|
41
|
+
* 2. Checks that prevHash matches the previous event's hash
|
|
42
|
+
*
|
|
43
|
+
* The first event in a chain should have prevHash = null.
|
|
44
|
+
*
|
|
45
|
+
* @param events - Ordered array of full events to verify
|
|
46
|
+
* @returns ChainVerificationResult with details on any failure
|
|
47
|
+
*/
|
|
48
|
+
export function verifyChain(events) {
|
|
49
|
+
if (events.length === 0) {
|
|
50
|
+
return { valid: true, failedAtIndex: -1, reason: null };
|
|
51
|
+
}
|
|
52
|
+
// First event should have prevHash = null
|
|
53
|
+
if (events[0].prevHash !== null) {
|
|
54
|
+
return {
|
|
55
|
+
valid: false,
|
|
56
|
+
failedAtIndex: 0,
|
|
57
|
+
reason: 'First event must have prevHash = null',
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
for (let i = 0; i < events.length; i++) {
|
|
61
|
+
// Recompute hash from contents
|
|
62
|
+
const recomputed = computeEventHash(events[i]);
|
|
63
|
+
if (recomputed !== events[i].hash) {
|
|
64
|
+
return {
|
|
65
|
+
valid: false,
|
|
66
|
+
failedAtIndex: i,
|
|
67
|
+
reason: `Event ${i} hash mismatch: expected ${recomputed}, got ${events[i].hash}`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// Verify prevHash chain continuity (skip first event, already checked prevHash === null)
|
|
71
|
+
if (i > 0 && events[i].prevHash !== events[i - 1].hash) {
|
|
72
|
+
return {
|
|
73
|
+
valid: false,
|
|
74
|
+
failedAtIndex: i,
|
|
75
|
+
reason: `Event ${i} prevHash does not match previous event's hash`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return { valid: true, failedAtIndex: -1, reason: null };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=hash.js.map
|
package/dist/hash.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAkB9B;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,CAAC,EAAE,YAAY;QACf,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAqBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,+BAA+B;QAC/B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,SAAS,CAAC,4BAA4B,UAAU,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aAClF,CAAC;QACJ,CAAC;QAED,yFAAyF;QACzF,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,SAAS,CAAC,gDAAgD;aACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1D,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentlens/core — Shared types, validation schemas, and utilities
|
|
3
|
+
*/
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
export * from './storage.js';
|
|
6
|
+
export * from './schemas.js';
|
|
7
|
+
export * from './hash.js';
|
|
8
|
+
export * from './events.js';
|
|
9
|
+
export * from './constants.js';
|
|
10
|
+
export * from './alert-schemas.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agentlens/core — Shared types, validation schemas, and utilities
|
|
3
|
+
*/
|
|
4
|
+
// Re-export all types
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
// Re-export storage interface
|
|
7
|
+
export * from './storage.js';
|
|
8
|
+
// Re-export schemas
|
|
9
|
+
export * from './schemas.js';
|
|
10
|
+
// Re-export hash chain utilities
|
|
11
|
+
export * from './hash.js';
|
|
12
|
+
// Re-export event creation helpers
|
|
13
|
+
export * from './events.js';
|
|
14
|
+
// Re-export constants
|
|
15
|
+
export * from './constants.js';
|
|
16
|
+
// Re-export alert schemas
|
|
17
|
+
export * from './alert-schemas.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sBAAsB;AACtB,cAAc,YAAY,CAAC;AAE3B,8BAA8B;AAC9B,cAAc,cAAc,CAAC;AAE7B,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAE7B,iCAAiC;AACjC,cAAc,WAAW,CAAC;AAE1B,mCAAmC;AACnC,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,cAAc,gBAAgB,CAAC;AAE/B,0BAA0B;AAC1B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,301 @@
|
|
|
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 declare const eventTypeSchema: z.ZodEnum<["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"]>;
|
|
11
|
+
/**
|
|
12
|
+
* Schema for validating severity levels
|
|
13
|
+
*/
|
|
14
|
+
export declare const severitySchema: z.ZodEnum<["debug", "info", "warn", "error", "critical"]>;
|
|
15
|
+
export declare const toolCallPayloadSchema: z.ZodObject<{
|
|
16
|
+
toolName: z.ZodString;
|
|
17
|
+
callId: z.ZodString;
|
|
18
|
+
arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
19
|
+
serverName: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
arguments: Record<string, unknown>;
|
|
22
|
+
toolName: string;
|
|
23
|
+
callId: string;
|
|
24
|
+
serverName?: string | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
arguments: Record<string, unknown>;
|
|
27
|
+
toolName: string;
|
|
28
|
+
callId: string;
|
|
29
|
+
serverName?: string | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
export declare const toolResponsePayloadSchema: z.ZodObject<{
|
|
32
|
+
callId: z.ZodString;
|
|
33
|
+
toolName: z.ZodString;
|
|
34
|
+
result: z.ZodUnknown;
|
|
35
|
+
durationMs: z.ZodNumber;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
toolName: string;
|
|
38
|
+
callId: string;
|
|
39
|
+
durationMs: number;
|
|
40
|
+
result?: unknown;
|
|
41
|
+
}, {
|
|
42
|
+
toolName: string;
|
|
43
|
+
callId: string;
|
|
44
|
+
durationMs: number;
|
|
45
|
+
result?: unknown;
|
|
46
|
+
}>;
|
|
47
|
+
export declare const toolErrorPayloadSchema: z.ZodObject<{
|
|
48
|
+
callId: z.ZodString;
|
|
49
|
+
toolName: z.ZodString;
|
|
50
|
+
error: z.ZodString;
|
|
51
|
+
errorCode: z.ZodOptional<z.ZodString>;
|
|
52
|
+
durationMs: z.ZodNumber;
|
|
53
|
+
}, "strip", z.ZodTypeAny, {
|
|
54
|
+
error: string;
|
|
55
|
+
toolName: string;
|
|
56
|
+
callId: string;
|
|
57
|
+
durationMs: number;
|
|
58
|
+
errorCode?: string | undefined;
|
|
59
|
+
}, {
|
|
60
|
+
error: string;
|
|
61
|
+
toolName: string;
|
|
62
|
+
callId: string;
|
|
63
|
+
durationMs: number;
|
|
64
|
+
errorCode?: string | undefined;
|
|
65
|
+
}>;
|
|
66
|
+
export declare const sessionStartedPayloadSchema: z.ZodObject<{
|
|
67
|
+
agentName: z.ZodOptional<z.ZodString>;
|
|
68
|
+
agentVersion: z.ZodOptional<z.ZodString>;
|
|
69
|
+
mcpClientInfo: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
70
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
|
72
|
+
agentName?: string | undefined;
|
|
73
|
+
agentVersion?: string | undefined;
|
|
74
|
+
mcpClientInfo?: Record<string, unknown> | undefined;
|
|
75
|
+
tags?: string[] | undefined;
|
|
76
|
+
}, {
|
|
77
|
+
agentName?: string | undefined;
|
|
78
|
+
agentVersion?: string | undefined;
|
|
79
|
+
mcpClientInfo?: Record<string, unknown> | undefined;
|
|
80
|
+
tags?: string[] | undefined;
|
|
81
|
+
}>;
|
|
82
|
+
export declare const sessionEndedPayloadSchema: z.ZodObject<{
|
|
83
|
+
reason: z.ZodEnum<["completed", "error", "timeout", "manual"]>;
|
|
84
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
85
|
+
totalToolCalls: z.ZodOptional<z.ZodNumber>;
|
|
86
|
+
totalDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
reason: "timeout" | "completed" | "error" | "manual";
|
|
89
|
+
summary?: string | undefined;
|
|
90
|
+
totalToolCalls?: number | undefined;
|
|
91
|
+
totalDurationMs?: number | undefined;
|
|
92
|
+
}, {
|
|
93
|
+
reason: "timeout" | "completed" | "error" | "manual";
|
|
94
|
+
summary?: string | undefined;
|
|
95
|
+
totalToolCalls?: number | undefined;
|
|
96
|
+
totalDurationMs?: number | undefined;
|
|
97
|
+
}>;
|
|
98
|
+
export declare const approvalRequestedPayloadSchema: z.ZodObject<{
|
|
99
|
+
requestId: z.ZodString;
|
|
100
|
+
action: z.ZodString;
|
|
101
|
+
params: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
102
|
+
urgency: z.ZodString;
|
|
103
|
+
}, "strip", z.ZodTypeAny, {
|
|
104
|
+
params: Record<string, unknown>;
|
|
105
|
+
requestId: string;
|
|
106
|
+
action: string;
|
|
107
|
+
urgency: string;
|
|
108
|
+
}, {
|
|
109
|
+
params: Record<string, unknown>;
|
|
110
|
+
requestId: string;
|
|
111
|
+
action: string;
|
|
112
|
+
urgency: string;
|
|
113
|
+
}>;
|
|
114
|
+
export declare const approvalDecisionPayloadSchema: z.ZodObject<{
|
|
115
|
+
requestId: z.ZodString;
|
|
116
|
+
action: z.ZodString;
|
|
117
|
+
decidedBy: z.ZodString;
|
|
118
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
requestId: string;
|
|
121
|
+
action: string;
|
|
122
|
+
decidedBy: string;
|
|
123
|
+
reason?: string | undefined;
|
|
124
|
+
}, {
|
|
125
|
+
requestId: string;
|
|
126
|
+
action: string;
|
|
127
|
+
decidedBy: string;
|
|
128
|
+
reason?: string | undefined;
|
|
129
|
+
}>;
|
|
130
|
+
export declare const formSubmittedPayloadSchema: z.ZodObject<{
|
|
131
|
+
submissionId: z.ZodString;
|
|
132
|
+
formId: z.ZodString;
|
|
133
|
+
formName: z.ZodOptional<z.ZodString>;
|
|
134
|
+
fieldCount: z.ZodNumber;
|
|
135
|
+
}, "strip", z.ZodTypeAny, {
|
|
136
|
+
submissionId: string;
|
|
137
|
+
formId: string;
|
|
138
|
+
fieldCount: number;
|
|
139
|
+
formName?: string | undefined;
|
|
140
|
+
}, {
|
|
141
|
+
submissionId: string;
|
|
142
|
+
formId: string;
|
|
143
|
+
fieldCount: number;
|
|
144
|
+
formName?: string | undefined;
|
|
145
|
+
}>;
|
|
146
|
+
export declare const formCompletedPayloadSchema: z.ZodObject<{
|
|
147
|
+
submissionId: z.ZodString;
|
|
148
|
+
formId: z.ZodString;
|
|
149
|
+
completedBy: z.ZodString;
|
|
150
|
+
durationMs: z.ZodNumber;
|
|
151
|
+
}, "strip", z.ZodTypeAny, {
|
|
152
|
+
durationMs: number;
|
|
153
|
+
submissionId: string;
|
|
154
|
+
formId: string;
|
|
155
|
+
completedBy: string;
|
|
156
|
+
}, {
|
|
157
|
+
durationMs: number;
|
|
158
|
+
submissionId: string;
|
|
159
|
+
formId: string;
|
|
160
|
+
completedBy: string;
|
|
161
|
+
}>;
|
|
162
|
+
export declare const formExpiredPayloadSchema: z.ZodObject<{
|
|
163
|
+
submissionId: z.ZodString;
|
|
164
|
+
formId: z.ZodString;
|
|
165
|
+
expiredAfterMs: z.ZodNumber;
|
|
166
|
+
}, "strip", z.ZodTypeAny, {
|
|
167
|
+
submissionId: string;
|
|
168
|
+
formId: string;
|
|
169
|
+
expiredAfterMs: number;
|
|
170
|
+
}, {
|
|
171
|
+
submissionId: string;
|
|
172
|
+
formId: string;
|
|
173
|
+
expiredAfterMs: number;
|
|
174
|
+
}>;
|
|
175
|
+
export declare const costTrackedPayloadSchema: z.ZodObject<{
|
|
176
|
+
provider: z.ZodString;
|
|
177
|
+
model: z.ZodString;
|
|
178
|
+
inputTokens: z.ZodNumber;
|
|
179
|
+
outputTokens: z.ZodNumber;
|
|
180
|
+
totalTokens: z.ZodNumber;
|
|
181
|
+
costUsd: z.ZodNumber;
|
|
182
|
+
trigger: z.ZodOptional<z.ZodString>;
|
|
183
|
+
}, "strip", z.ZodTypeAny, {
|
|
184
|
+
provider: string;
|
|
185
|
+
model: string;
|
|
186
|
+
inputTokens: number;
|
|
187
|
+
outputTokens: number;
|
|
188
|
+
totalTokens: number;
|
|
189
|
+
costUsd: number;
|
|
190
|
+
trigger?: string | undefined;
|
|
191
|
+
}, {
|
|
192
|
+
provider: string;
|
|
193
|
+
model: string;
|
|
194
|
+
inputTokens: number;
|
|
195
|
+
outputTokens: number;
|
|
196
|
+
totalTokens: number;
|
|
197
|
+
costUsd: number;
|
|
198
|
+
trigger?: string | undefined;
|
|
199
|
+
}>;
|
|
200
|
+
export declare const alertTriggeredPayloadSchema: z.ZodObject<{
|
|
201
|
+
alertRuleId: z.ZodString;
|
|
202
|
+
alertName: z.ZodString;
|
|
203
|
+
condition: z.ZodString;
|
|
204
|
+
currentValue: z.ZodNumber;
|
|
205
|
+
threshold: z.ZodNumber;
|
|
206
|
+
message: z.ZodString;
|
|
207
|
+
}, "strip", z.ZodTypeAny, {
|
|
208
|
+
message: string;
|
|
209
|
+
alertRuleId: string;
|
|
210
|
+
alertName: string;
|
|
211
|
+
condition: string;
|
|
212
|
+
currentValue: number;
|
|
213
|
+
threshold: number;
|
|
214
|
+
}, {
|
|
215
|
+
message: string;
|
|
216
|
+
alertRuleId: string;
|
|
217
|
+
alertName: string;
|
|
218
|
+
condition: string;
|
|
219
|
+
currentValue: number;
|
|
220
|
+
threshold: number;
|
|
221
|
+
}>;
|
|
222
|
+
export declare const alertResolvedPayloadSchema: z.ZodObject<{
|
|
223
|
+
alertRuleId: z.ZodString;
|
|
224
|
+
alertName: z.ZodString;
|
|
225
|
+
resolvedBy: z.ZodOptional<z.ZodString>;
|
|
226
|
+
}, "strip", z.ZodTypeAny, {
|
|
227
|
+
alertRuleId: string;
|
|
228
|
+
alertName: string;
|
|
229
|
+
resolvedBy?: string | undefined;
|
|
230
|
+
}, {
|
|
231
|
+
alertRuleId: string;
|
|
232
|
+
alertName: string;
|
|
233
|
+
resolvedBy?: string | undefined;
|
|
234
|
+
}>;
|
|
235
|
+
export declare const customPayloadSchema: z.ZodObject<{
|
|
236
|
+
type: z.ZodString;
|
|
237
|
+
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
238
|
+
}, "strip", z.ZodTypeAny, {
|
|
239
|
+
type: string;
|
|
240
|
+
data: Record<string, unknown>;
|
|
241
|
+
}, {
|
|
242
|
+
type: string;
|
|
243
|
+
data: Record<string, unknown>;
|
|
244
|
+
}>;
|
|
245
|
+
/**
|
|
246
|
+
* Map of event type to payload schema for type-specific validation.
|
|
247
|
+
*/
|
|
248
|
+
export declare const payloadSchemasByEventType: Record<string, z.ZodTypeAny>;
|
|
249
|
+
/**
|
|
250
|
+
* Schema for validating inbound event ingestion.
|
|
251
|
+
*
|
|
252
|
+
* Uses superRefine to validate the payload against the correct
|
|
253
|
+
* type-specific schema based on eventType.
|
|
254
|
+
*/
|
|
255
|
+
export declare const ingestEventSchema: z.ZodEffects<z.ZodObject<{
|
|
256
|
+
sessionId: z.ZodString;
|
|
257
|
+
agentId: z.ZodString;
|
|
258
|
+
eventType: z.ZodEnum<["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"]>;
|
|
259
|
+
severity: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "critical"]>>;
|
|
260
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
261
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
262
|
+
/** Optional client-side timestamp; server will validate and may override */
|
|
263
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
264
|
+
}, "strip", z.ZodTypeAny, {
|
|
265
|
+
sessionId: string;
|
|
266
|
+
agentId: string;
|
|
267
|
+
eventType: "tool_call" | "session_started" | "session_ended" | "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";
|
|
268
|
+
severity: "error" | "debug" | "info" | "warn" | "critical";
|
|
269
|
+
payload: Record<string, unknown>;
|
|
270
|
+
metadata: Record<string, unknown>;
|
|
271
|
+
timestamp?: string | undefined;
|
|
272
|
+
}, {
|
|
273
|
+
sessionId: string;
|
|
274
|
+
agentId: string;
|
|
275
|
+
eventType: "tool_call" | "session_started" | "session_ended" | "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";
|
|
276
|
+
payload: Record<string, unknown>;
|
|
277
|
+
timestamp?: string | undefined;
|
|
278
|
+
severity?: "error" | "debug" | "info" | "warn" | "critical" | undefined;
|
|
279
|
+
metadata?: Record<string, unknown> | undefined;
|
|
280
|
+
}>, {
|
|
281
|
+
sessionId: string;
|
|
282
|
+
agentId: string;
|
|
283
|
+
eventType: "tool_call" | "session_started" | "session_ended" | "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";
|
|
284
|
+
severity: "error" | "debug" | "info" | "warn" | "critical";
|
|
285
|
+
payload: Record<string, unknown>;
|
|
286
|
+
metadata: Record<string, unknown>;
|
|
287
|
+
timestamp?: string | undefined;
|
|
288
|
+
}, {
|
|
289
|
+
sessionId: string;
|
|
290
|
+
agentId: string;
|
|
291
|
+
eventType: "tool_call" | "session_started" | "session_ended" | "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";
|
|
292
|
+
payload: Record<string, unknown>;
|
|
293
|
+
timestamp?: string | undefined;
|
|
294
|
+
severity?: "error" | "debug" | "info" | "warn" | "critical" | undefined;
|
|
295
|
+
metadata?: Record<string, unknown> | undefined;
|
|
296
|
+
}>;
|
|
297
|
+
/**
|
|
298
|
+
* Type inferred from the ingest event schema
|
|
299
|
+
*/
|
|
300
|
+
export type IngestEventInput = z.infer<typeof ingestEventSchema>;
|
|
301
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,eAAe,iSAiB1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,2DAAyD,CAAC;AAIrF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAMjC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EAKzC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAKxC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;EAQnC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAIrC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAiBlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;IAQ1B,4EAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5E,CAAC;AAEL;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|