@elsium-ai/core 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/circuit-breaker.d.ts +17 -0
- package/dist/circuit-breaker.d.ts.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/dedup.d.ts +14 -0
- package/dist/dedup.d.ts.map +1 -0
- package/dist/errors.d.ts +36 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +987 -0
- package/dist/logger.d.ts +22 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/policy.d.ts +37 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/result.d.ts +18 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/shutdown.d.ts +16 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/stream.d.ts +26 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/types.d.ts +160 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils.d.ts +14 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
2
|
+
export interface CircuitBreakerConfig {
|
|
3
|
+
failureThreshold?: number;
|
|
4
|
+
resetTimeoutMs?: number;
|
|
5
|
+
halfOpenMaxAttempts?: number;
|
|
6
|
+
windowMs?: number;
|
|
7
|
+
onStateChange?: (from: CircuitState, to: CircuitState) => void;
|
|
8
|
+
shouldCount?: (error: unknown) => boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface CircuitBreaker {
|
|
11
|
+
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
12
|
+
readonly state: CircuitState;
|
|
13
|
+
readonly failureCount: number;
|
|
14
|
+
reset(): void;
|
|
15
|
+
}
|
|
16
|
+
export declare function createCircuitBreaker(config?: CircuitBreakerConfig): CircuitBreaker;
|
|
17
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAA;AAE1D,MAAM,WAAW,oBAAoB;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,CAAA;IAC9D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,KAAK,IAAI,IAAI,CAAA;CACb;AAUD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,cAAc,CAwIlF"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBjE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAajE"}
|
package/dist/dedup.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Middleware } from './types';
|
|
2
|
+
export interface DedupConfig {
|
|
3
|
+
ttlMs?: number;
|
|
4
|
+
maxEntries?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface Dedup<T> {
|
|
7
|
+
deduplicate(key: string, fn: () => Promise<T>): Promise<T>;
|
|
8
|
+
hashRequest(request: unknown): string;
|
|
9
|
+
readonly size: number;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createDedup<T>(config?: DedupConfig): Dedup<T>;
|
|
13
|
+
export declare function dedupMiddleware(config?: DedupConfig): Middleware;
|
|
14
|
+
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,SAAS,CAAA;AAE5E,MAAM,WAAW,WAAW;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,KAAK,CAAC,CAAC;IACvB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1D,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,KAAK,IAAI,IAAI,CAAA;CACb;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAwF7D;AAED,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,CAmBhE"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type ErrorCode = 'PROVIDER_ERROR' | 'RATE_LIMIT' | 'AUTH_ERROR' | 'INVALID_REQUEST' | 'TIMEOUT' | 'NETWORK_ERROR' | 'PARSE_ERROR' | 'VALIDATION_ERROR' | 'TOOL_ERROR' | 'BUDGET_EXCEEDED' | 'MAX_ITERATIONS' | 'STREAM_ERROR' | 'CONFIG_ERROR' | 'UNKNOWN';
|
|
2
|
+
export interface ErrorDetails {
|
|
3
|
+
code: ErrorCode;
|
|
4
|
+
message: string;
|
|
5
|
+
provider?: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
statusCode?: number;
|
|
8
|
+
retryable: boolean;
|
|
9
|
+
retryAfterMs?: number;
|
|
10
|
+
cause?: Error;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export declare class ElsiumError extends Error {
|
|
14
|
+
readonly code: ErrorCode;
|
|
15
|
+
readonly provider?: string;
|
|
16
|
+
readonly model?: string;
|
|
17
|
+
readonly statusCode?: number;
|
|
18
|
+
readonly retryable: boolean;
|
|
19
|
+
readonly retryAfterMs?: number;
|
|
20
|
+
readonly cause?: Error;
|
|
21
|
+
readonly metadata?: Record<string, unknown>;
|
|
22
|
+
constructor(details: ErrorDetails);
|
|
23
|
+
toJSON(): Record<string, unknown>;
|
|
24
|
+
static providerError(message: string, opts: {
|
|
25
|
+
provider: string;
|
|
26
|
+
statusCode?: number;
|
|
27
|
+
retryable?: boolean;
|
|
28
|
+
cause?: Error;
|
|
29
|
+
}): ElsiumError;
|
|
30
|
+
static rateLimit(provider: string, retryAfterMs?: number): ElsiumError;
|
|
31
|
+
static authError(provider: string): ElsiumError;
|
|
32
|
+
static timeout(provider: string, timeoutMs: number): ElsiumError;
|
|
33
|
+
static validation(message: string, metadata?: Record<string, unknown>): ElsiumError;
|
|
34
|
+
static budgetExceeded(spent: number, budget: number): ElsiumError;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAClB,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,SAAS,GACT,eAAe,GACf,aAAa,GACb,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,SAAS,CAAA;AAEZ,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE/B,OAAO,EAAE,YAAY;IAajC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAcjC,MAAM,CAAC,aAAa,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GACjF,WAAW;IAWd,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW;IAWtE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAU/C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW;IAShE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IASnF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;CAQjE"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type { Role, TextContent, ImageContent, ContentPart, ToolCall, ToolResult, Message, TokenUsage, CostBreakdown, StopReason, LLMResponse, StreamEvent, XRayData, StreamCheckpoint, ProviderConfig, CompletionRequest, ToolDefinition, MiddlewareContext, MiddlewareNext, Middleware, } from './types';
|
|
2
|
+
export { ElsiumError } from './errors';
|
|
3
|
+
export type { ErrorCode, ErrorDetails } from './errors';
|
|
4
|
+
export { ok, err, isOk, isErr, unwrap, unwrapOr, tryCatch, tryCatchSync } from './result';
|
|
5
|
+
export type { Result, Ok, Err } from './result';
|
|
6
|
+
export { ElsiumStream, createStream } from './stream';
|
|
7
|
+
export type { StreamTransformer, ResilientStreamOptions } from './stream';
|
|
8
|
+
export { createLogger } from './logger';
|
|
9
|
+
export type { Logger, LogLevel, LogEntry, LoggerOptions } from './logger';
|
|
10
|
+
export { env, envNumber, envBool } from './config';
|
|
11
|
+
export { generateId, generateTraceId, extractText, sleep, retry } from './utils';
|
|
12
|
+
export { createCircuitBreaker } from './circuit-breaker';
|
|
13
|
+
export type { CircuitBreakerConfig, CircuitBreaker, CircuitState } from './circuit-breaker';
|
|
14
|
+
export { createDedup, dedupMiddleware } from './dedup';
|
|
15
|
+
export type { DedupConfig, Dedup } from './dedup';
|
|
16
|
+
export { createPolicySet, policyMiddleware, modelAccessPolicy, tokenLimitPolicy, costLimitPolicy, contentPolicy, } from './policy';
|
|
17
|
+
export type { PolicyDecision, PolicyResult, PolicyContext, PolicyRule, PolicyConfig, PolicySet, } from './policy';
|
|
18
|
+
export { createShutdownManager } from './shutdown';
|
|
19
|
+
export type { ShutdownConfig, ShutdownManager } from './shutdown';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACX,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,UAAU,EACV,OAAO,EACP,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,UAAU,GACV,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACzF,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGzE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGlD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAG3F,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,GACb,MAAM,UAAU,CAAA;AACjB,YAAY,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,SAAS,GACT,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
|