@elsium-ai/observe 0.1.6

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.
@@ -0,0 +1,53 @@
1
+ import type { Middleware } from '@elsium-ai/core';
2
+ export type AuditEventType = 'llm_call' | 'tool_execution' | 'security_violation' | 'budget_alert' | 'policy_violation' | 'auth_event' | 'approval_request' | 'approval_decision' | 'config_change';
3
+ export interface AuditEvent {
4
+ id: string;
5
+ sequenceId: number;
6
+ type: AuditEventType;
7
+ timestamp: number;
8
+ actor?: string;
9
+ traceId?: string;
10
+ data: Record<string, unknown>;
11
+ hash: string;
12
+ previousHash: string;
13
+ }
14
+ export interface AuditStorageAdapter {
15
+ append(event: AuditEvent): void | Promise<void>;
16
+ query(filter: AuditQueryFilter): AuditEvent[] | Promise<AuditEvent[]>;
17
+ count(): number | Promise<number>;
18
+ verifyIntegrity(): AuditIntegrityResult | Promise<AuditIntegrityResult>;
19
+ getLastHash?(): string | Promise<string>;
20
+ }
21
+ export interface AuditQueryFilter {
22
+ type?: AuditEventType | AuditEventType[];
23
+ actor?: string;
24
+ traceId?: string;
25
+ fromTimestamp?: number;
26
+ toTimestamp?: number;
27
+ limit?: number;
28
+ offset?: number;
29
+ }
30
+ export interface AuditIntegrityResult {
31
+ valid: boolean;
32
+ totalEvents: number;
33
+ brokenAt?: number;
34
+ chainComplete?: boolean;
35
+ }
36
+ export interface AuditTrailConfig {
37
+ storage?: AuditStorageAdapter | 'memory';
38
+ hashChain?: boolean;
39
+ maxEvents?: number;
40
+ onError?: (error: unknown) => void;
41
+ }
42
+ export interface AuditTrail {
43
+ log(type: AuditEventType, data: Record<string, unknown>, options?: {
44
+ actor?: string;
45
+ traceId?: string;
46
+ }): void;
47
+ query(filter: AuditQueryFilter): Promise<AuditEvent[]>;
48
+ verifyIntegrity(): Promise<AuditIntegrityResult>;
49
+ readonly count: number;
50
+ }
51
+ export declare function createAuditTrail(config?: AuditTrailConfig): AuditTrail;
52
+ export declare function auditMiddleware(auditTrail: AuditTrail): Middleware;
53
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,iBAAiB,CAAA;AAEpF,MAAM,MAAM,cAAc,GACvB,UAAU,GACV,gBAAgB,GAChB,oBAAoB,GACpB,cAAc,GACd,kBAAkB,GAClB,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,CAAA;AAElB,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,cAAc,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACrE,KAAK,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACjC,eAAe,IAAI,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACvE,WAAW,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,mBAAmB,GAAG,QAAQ,CAAA;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,UAAU;IAC1B,GAAG,CACF,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,IAAI,CAAA;IACP,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACtD,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAyFD,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAuEtE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CA0ClE"}
@@ -0,0 +1,74 @@
1
+ import type { LLMResponse, Middleware } from '@elsium-ai/core';
2
+ export interface BudgetConfig {
3
+ totalBudget?: number;
4
+ dailyBudget?: number;
5
+ perUser?: number;
6
+ perFeature?: number;
7
+ perAgent?: number;
8
+ }
9
+ export interface LoopDetectionConfig {
10
+ maxCallsPerMinute?: number;
11
+ maxCostPerMinute?: number;
12
+ }
13
+ export interface CostAlert {
14
+ type: 'threshold' | 'loop_detected' | 'budget_exceeded' | 'projection_warning';
15
+ dimension: string;
16
+ currentValue: number;
17
+ limit: number;
18
+ message: string;
19
+ timestamp: number;
20
+ }
21
+ export interface CostDimension {
22
+ totalCost: number;
23
+ totalTokens: number;
24
+ callCount: number;
25
+ firstCallAt: number;
26
+ lastCallAt: number;
27
+ }
28
+ export interface CostIntelligenceReport {
29
+ totalSpend: number;
30
+ totalTokens: number;
31
+ totalCalls: number;
32
+ projectedDailySpend: number;
33
+ projectedMonthlySpend: number;
34
+ byModel: Record<string, CostDimension>;
35
+ byAgent: Record<string, CostDimension>;
36
+ byUser: Record<string, CostDimension>;
37
+ byFeature: Record<string, CostDimension>;
38
+ recommendations: string[];
39
+ alerts: CostAlert[];
40
+ }
41
+ export interface ModelSuggestion {
42
+ currentModel: string;
43
+ suggestedModel: string;
44
+ estimatedSavings: number;
45
+ reason: string;
46
+ }
47
+ export interface CostEngineConfig {
48
+ totalBudget?: number;
49
+ dailyBudget?: number;
50
+ perUser?: number;
51
+ perFeature?: number;
52
+ perAgent?: number;
53
+ loopDetection?: LoopDetectionConfig;
54
+ onAlert?: (alert: CostAlert) => void;
55
+ alertThresholds?: number[];
56
+ }
57
+ export interface CostEngine {
58
+ middleware(): Middleware;
59
+ getReport(): CostIntelligenceReport;
60
+ suggestModel(currentModel: string, inputTokens: number): ModelSuggestion | null;
61
+ trackCall(response: LLMResponse, dimensions?: {
62
+ agent?: string;
63
+ user?: string;
64
+ feature?: string;
65
+ }): void;
66
+ reset(): void;
67
+ }
68
+ export interface ModelTierEntry {
69
+ tier: 'low' | 'mid' | 'high';
70
+ costPerMToken: number;
71
+ }
72
+ export declare function registerModelTier(model: string, entry: ModelTierEntry): void;
73
+ export declare function createCostEngine(config?: CostEngineConfig): CostEngine;
74
+ //# sourceMappingURL=cost-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-engine.d.ts","sourceRoot":"","sources":["../src/cost-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export { createSpan } from './span';
2
+ export type { Span, SpanData, SpanEvent, SpanKind, SpanStatus, SpanHandler } from './span';
3
+ export { createCostEngine, registerModelTier } from './cost-engine';
4
+ export type { CostEngine, CostEngineConfig, BudgetConfig, LoopDetectionConfig, CostAlert, CostDimension, CostIntelligenceReport, ModelSuggestion, ModelTierEntry, } from './cost-engine';
5
+ export { observe } from './tracer';
6
+ export type { Tracer, TracerConfig, TracerOutput, TracerExporter, CostReport } from './tracer';
7
+ export { createMetrics } from './metrics';
8
+ export type { MetricsCollector, MetricEntry } from './metrics';
9
+ export { createAuditTrail, auditMiddleware } from './audit';
10
+ export type { AuditEventType, AuditEvent, AuditStorageAdapter, AuditQueryFilter, AuditIntegrityResult, AuditTrailConfig, AuditTrail, } from './audit';
11
+ export { createProvenanceTracker } from './provenance';
12
+ export type { ProvenanceRecord, ProvenanceTracker } from './provenance';
13
+ export { toOTelSpan, toOTelExportRequest, toTraceparent, parseTraceparent, injectTraceContext, extractTraceContext, createOTLPExporter, } from './otel';
14
+ export type { OTelSpan, OTelSpanKind, OTelStatusCode, OTelAttribute, OTelAttributeValue, OTelEvent, OTelResource, OTelExportRequest, TraceContext, OTLPExporterConfig, } from './otel';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAG1F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACnE,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,cAAc,GACd,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG9F,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC3D,YAAY,EACX,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,GACV,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGvE,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,QAAQ,CAAA;AACf,YAAY,EACX,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GAClB,MAAM,QAAQ,CAAA"}