@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.
- package/dist/audit.d.ts +53 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/cost-engine.d.ts +74 -0
- package/dist/cost-engine.d.ts.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1082 -0
- package/dist/metrics.d.ts +18 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/otel.d.ts +116 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/provenance.d.ts +35 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/span.d.ts +42 -0
- package/dist/span.d.ts.map +1 -0
- package/dist/tracer.d.ts +40 -0
- package/dist/tracer.d.ts.map +1 -0
- package/package.json +35 -0
package/dist/audit.d.ts
ADDED
|
@@ -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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|