@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
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
2
|
+
export interface LogEntry {
|
|
3
|
+
level: LogLevel;
|
|
4
|
+
message: string;
|
|
5
|
+
timestamp: string;
|
|
6
|
+
traceId?: string;
|
|
7
|
+
data?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface Logger {
|
|
10
|
+
debug(message: string, data?: Record<string, unknown>): void;
|
|
11
|
+
info(message: string, data?: Record<string, unknown>): void;
|
|
12
|
+
warn(message: string, data?: Record<string, unknown>): void;
|
|
13
|
+
error(message: string, data?: Record<string, unknown>): void;
|
|
14
|
+
child(context: Record<string, unknown>): Logger;
|
|
15
|
+
}
|
|
16
|
+
export interface LoggerOptions {
|
|
17
|
+
level?: LogLevel;
|
|
18
|
+
pretty?: boolean;
|
|
19
|
+
context?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export declare function createLogger(options?: LoggerOptions): Logger;
|
|
22
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAA;CAC/C;AASD,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAuChE"}
|
package/dist/policy.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Middleware } from './types';
|
|
2
|
+
export type PolicyDecision = 'allow' | 'deny';
|
|
3
|
+
export interface PolicyResult {
|
|
4
|
+
decision: PolicyDecision;
|
|
5
|
+
reason: string;
|
|
6
|
+
policyName: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PolicyContext {
|
|
9
|
+
model?: string;
|
|
10
|
+
provider?: string;
|
|
11
|
+
actor?: string;
|
|
12
|
+
role?: string;
|
|
13
|
+
tokenCount?: number;
|
|
14
|
+
costEstimate?: number;
|
|
15
|
+
requestContent?: string;
|
|
16
|
+
metadata?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
export type PolicyRule = (ctx: PolicyContext) => PolicyResult;
|
|
19
|
+
export interface PolicyConfig {
|
|
20
|
+
name: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
rules: PolicyRule[];
|
|
23
|
+
mode?: 'all-must-pass' | 'any-must-pass';
|
|
24
|
+
}
|
|
25
|
+
export interface PolicySet {
|
|
26
|
+
evaluate(ctx: PolicyContext): PolicyResult[];
|
|
27
|
+
addPolicy(policy: PolicyConfig): void;
|
|
28
|
+
removePolicy(name: string): void;
|
|
29
|
+
readonly policies: string[];
|
|
30
|
+
}
|
|
31
|
+
export declare function createPolicySet(policies: PolicyConfig[]): PolicySet;
|
|
32
|
+
export declare function policyMiddleware(policySet: PolicySet): Middleware;
|
|
33
|
+
export declare function modelAccessPolicy(allowedModels: string[]): PolicyConfig;
|
|
34
|
+
export declare function tokenLimitPolicy(maxTokens: number): PolicyConfig;
|
|
35
|
+
export declare function costLimitPolicy(maxCost: number): PolicyConfig;
|
|
36
|
+
export declare function contentPolicy(blockedPatterns: RegExp[]): PolicyConfig;
|
|
37
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,SAAS,CAAA;AAG5E,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,cAAc,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,YAAY,CAAA;AAE7D,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,eAAe,GAAG,eAAe,CAAA;CACxC;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,EAAE,CAAA;IAC5C,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IACrC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,CAsCnE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAsBjE;AAID,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,YAAY,CAqBvE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CA2BhE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA2B7D;AAED,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,YAAY,CAuBrE"}
|
package/dist/result.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type Result<T, E = Error> = Ok<T> | Err<E>;
|
|
2
|
+
export interface Ok<T> {
|
|
3
|
+
readonly ok: true;
|
|
4
|
+
readonly value: T;
|
|
5
|
+
}
|
|
6
|
+
export interface Err<E> {
|
|
7
|
+
readonly ok: false;
|
|
8
|
+
readonly error: E;
|
|
9
|
+
}
|
|
10
|
+
export declare function ok<T>(value: T): Ok<T>;
|
|
11
|
+
export declare function err<E>(error: E): Err<E>;
|
|
12
|
+
export declare function isOk<T, E>(result: Result<T, E>): result is Ok<T>;
|
|
13
|
+
export declare function isErr<T, E>(result: Result<T, E>): result is Err<E>;
|
|
14
|
+
export declare function unwrap<T, E>(result: Result<T, E>): T;
|
|
15
|
+
export declare function unwrapOr<T, E>(result: Result<T, E>, fallback: T): T;
|
|
16
|
+
export declare function tryCatch<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;
|
|
17
|
+
export declare function tryCatchSync<T>(fn: () => T): Result<T, Error>;
|
|
18
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAEjD,MAAM,WAAW,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,WAAW,GAAG,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CACjB;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAErC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAEvC;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAEhE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAElE;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAGpD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAEnE;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAMjF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAM7D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ShutdownConfig {
|
|
2
|
+
drainTimeoutMs?: number;
|
|
3
|
+
signals?: string[];
|
|
4
|
+
onDrainStart?: () => void;
|
|
5
|
+
onDrainComplete?: () => void;
|
|
6
|
+
onForceShutdown?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface ShutdownManager {
|
|
9
|
+
trackOperation<T>(fn: () => Promise<T>): Promise<T>;
|
|
10
|
+
shutdown(): Promise<void>;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
readonly inFlight: number;
|
|
13
|
+
readonly isShuttingDown: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function createShutdownManager(config?: ShutdownConfig): ShutdownManager;
|
|
16
|
+
//# sourceMappingURL=shutdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,eAAe;IAC/B,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,IAAI,IAAI,CAAA;IACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CAChC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,eAAe,CA+G9E"}
|
package/dist/stream.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { StopReason, StreamCheckpoint, StreamEvent, TokenUsage } from './types';
|
|
2
|
+
export interface ResilientStreamOptions {
|
|
3
|
+
checkpointIntervalMs?: number;
|
|
4
|
+
maxRetries?: number;
|
|
5
|
+
onCheckpoint?: (checkpoint: StreamCheckpoint) => void;
|
|
6
|
+
onPartialRecovery?: (text: string, error: Error) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare class ElsiumStream implements AsyncIterable<StreamEvent> {
|
|
9
|
+
private readonly source;
|
|
10
|
+
private iterating;
|
|
11
|
+
constructor(source: AsyncIterable<StreamEvent>);
|
|
12
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<StreamEvent>;
|
|
13
|
+
text(): AsyncIterable<string>;
|
|
14
|
+
toText(): Promise<string>;
|
|
15
|
+
toTextWithTimeout(timeoutMs: number): Promise<string>;
|
|
16
|
+
toResponse(): Promise<{
|
|
17
|
+
text: string;
|
|
18
|
+
usage: TokenUsage | null;
|
|
19
|
+
stopReason: StopReason | null;
|
|
20
|
+
}>;
|
|
21
|
+
pipe(transform: StreamTransformer): ElsiumStream;
|
|
22
|
+
resilient(options?: ResilientStreamOptions): ElsiumStream;
|
|
23
|
+
}
|
|
24
|
+
export type StreamTransformer = (source: AsyncIterable<StreamEvent>) => AsyncIterable<StreamEvent>;
|
|
25
|
+
export declare function createStream(executor: (emit: (event: StreamEvent) => void) => Promise<void>): ElsiumStream;
|
|
26
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGpF,MAAM,WAAW,sBAAsB;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACrD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACxD;AA2CD,qBAAa,YAAa,YAAW,aAAa,CAAC,WAAW,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;IAIvC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,WAAW,CAAC;IAQnE,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;IAavB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAQzB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCrD,UAAU,IAAI,OAAO,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;QACxB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;KAC7B,CAAC;IAoBF,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,YAAY;IAIhD,SAAS,CAAC,OAAO,GAAE,sBAA2B,GAAG,YAAY;CAsC7D;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,CAAA;AAIlG,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7D,YAAY,CAmEd"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
export type Role = 'system' | 'user' | 'assistant' | 'tool';
|
|
3
|
+
export interface TextContent {
|
|
4
|
+
type: 'text';
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ImageContent {
|
|
8
|
+
type: 'image';
|
|
9
|
+
source: {
|
|
10
|
+
type: 'base64';
|
|
11
|
+
mediaType: string;
|
|
12
|
+
data: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: 'url';
|
|
15
|
+
url: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export type ContentPart = TextContent | ImageContent;
|
|
19
|
+
export interface ToolCall {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
arguments: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface ToolResult {
|
|
25
|
+
toolCallId: string;
|
|
26
|
+
content: string;
|
|
27
|
+
isError?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface Message {
|
|
30
|
+
role: Role;
|
|
31
|
+
content: string | ContentPart[];
|
|
32
|
+
name?: string;
|
|
33
|
+
toolCalls?: ToolCall[];
|
|
34
|
+
toolResults?: ToolResult[];
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
export interface TokenUsage {
|
|
38
|
+
inputTokens: number;
|
|
39
|
+
outputTokens: number;
|
|
40
|
+
totalTokens: number;
|
|
41
|
+
cacheReadTokens?: number;
|
|
42
|
+
cacheWriteTokens?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface CostBreakdown {
|
|
45
|
+
inputCost: number;
|
|
46
|
+
outputCost: number;
|
|
47
|
+
totalCost: number;
|
|
48
|
+
currency: 'USD';
|
|
49
|
+
}
|
|
50
|
+
export type StopReason = 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use';
|
|
51
|
+
export interface LLMResponse {
|
|
52
|
+
id: string;
|
|
53
|
+
message: Message;
|
|
54
|
+
usage: TokenUsage;
|
|
55
|
+
cost: CostBreakdown;
|
|
56
|
+
model: string;
|
|
57
|
+
provider: string;
|
|
58
|
+
stopReason: StopReason;
|
|
59
|
+
latencyMs: number;
|
|
60
|
+
traceId: string;
|
|
61
|
+
}
|
|
62
|
+
export type StreamEvent = {
|
|
63
|
+
type: 'text_delta';
|
|
64
|
+
text: string;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'tool_call_start';
|
|
67
|
+
toolCall: {
|
|
68
|
+
id: string;
|
|
69
|
+
name: string;
|
|
70
|
+
};
|
|
71
|
+
} | {
|
|
72
|
+
type: 'tool_call_delta';
|
|
73
|
+
toolCallId: string;
|
|
74
|
+
arguments: string;
|
|
75
|
+
} | {
|
|
76
|
+
type: 'tool_call_end';
|
|
77
|
+
toolCallId: string;
|
|
78
|
+
} | {
|
|
79
|
+
type: 'message_start';
|
|
80
|
+
id: string;
|
|
81
|
+
model: string;
|
|
82
|
+
} | {
|
|
83
|
+
type: 'message_end';
|
|
84
|
+
usage: TokenUsage;
|
|
85
|
+
stopReason: StopReason;
|
|
86
|
+
} | {
|
|
87
|
+
type: 'error';
|
|
88
|
+
error: Error;
|
|
89
|
+
} | {
|
|
90
|
+
type: 'checkpoint';
|
|
91
|
+
checkpoint: StreamCheckpoint;
|
|
92
|
+
} | {
|
|
93
|
+
type: 'recovery';
|
|
94
|
+
partialText: string;
|
|
95
|
+
error: Error;
|
|
96
|
+
};
|
|
97
|
+
export interface ProviderConfig {
|
|
98
|
+
apiKey: string;
|
|
99
|
+
baseUrl?: string;
|
|
100
|
+
timeout?: number;
|
|
101
|
+
maxRetries?: number;
|
|
102
|
+
}
|
|
103
|
+
export interface CompletionRequest {
|
|
104
|
+
messages: Message[];
|
|
105
|
+
model?: string;
|
|
106
|
+
system?: string;
|
|
107
|
+
maxTokens?: number;
|
|
108
|
+
temperature?: number;
|
|
109
|
+
seed?: number;
|
|
110
|
+
topP?: number;
|
|
111
|
+
stopSequences?: string[];
|
|
112
|
+
tools?: ToolDefinition[];
|
|
113
|
+
schema?: z.ZodType;
|
|
114
|
+
stream?: boolean;
|
|
115
|
+
metadata?: Record<string, unknown>;
|
|
116
|
+
signal?: AbortSignal;
|
|
117
|
+
}
|
|
118
|
+
export interface ToolDefinition {
|
|
119
|
+
name: string;
|
|
120
|
+
description: string;
|
|
121
|
+
inputSchema: Record<string, unknown>;
|
|
122
|
+
}
|
|
123
|
+
export interface XRayData {
|
|
124
|
+
traceId: string;
|
|
125
|
+
timestamp: number;
|
|
126
|
+
provider: string;
|
|
127
|
+
model: string;
|
|
128
|
+
latencyMs: number;
|
|
129
|
+
request: {
|
|
130
|
+
url: string;
|
|
131
|
+
method: string;
|
|
132
|
+
headers: Record<string, string>;
|
|
133
|
+
body: Record<string, unknown>;
|
|
134
|
+
};
|
|
135
|
+
response: {
|
|
136
|
+
status: number;
|
|
137
|
+
headers: Record<string, string>;
|
|
138
|
+
body: Record<string, unknown>;
|
|
139
|
+
};
|
|
140
|
+
usage: TokenUsage;
|
|
141
|
+
cost: CostBreakdown;
|
|
142
|
+
}
|
|
143
|
+
export interface StreamCheckpoint {
|
|
144
|
+
id: string;
|
|
145
|
+
timestamp: number;
|
|
146
|
+
text: string;
|
|
147
|
+
tokensSoFar: number;
|
|
148
|
+
eventIndex: number;
|
|
149
|
+
}
|
|
150
|
+
export interface MiddlewareContext {
|
|
151
|
+
request: CompletionRequest;
|
|
152
|
+
provider: string;
|
|
153
|
+
model: string;
|
|
154
|
+
traceId: string;
|
|
155
|
+
startTime: number;
|
|
156
|
+
metadata: Record<string, unknown>;
|
|
157
|
+
}
|
|
158
|
+
export type MiddlewareNext = (ctx: MiddlewareContext) => Promise<LLMResponse>;
|
|
159
|
+
export type Middleware = (ctx: MiddlewareContext, next: MiddlewareNext) => Promise<LLMResponse>;
|
|
160
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function generateId(prefix?: string): string;
|
|
2
|
+
export declare function generateTraceId(): string;
|
|
3
|
+
export declare function extractText(content: string | {
|
|
4
|
+
type: string;
|
|
5
|
+
text?: string;
|
|
6
|
+
}[]): string;
|
|
7
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
8
|
+
export declare function retry<T>(fn: () => Promise<T>, options?: {
|
|
9
|
+
maxRetries?: number;
|
|
10
|
+
baseDelayMs?: number;
|
|
11
|
+
maxDelayMs?: number;
|
|
12
|
+
shouldRetry?: (error: unknown) => boolean;
|
|
13
|
+
}): Promise<T>;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,MAAM,SAAQ,GAAG,MAAM,CAIjD;AAID,wBAAgB,eAAe,IAAI,MAAM,CAIxC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAMvF;AAED,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;AAmBD,wBAAgB,KAAK,CAAC,CAAC,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CACpC,GACJ,OAAO,CAAC,CAAC,CAAC,CA8BZ"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@elsium-ai/core",
|
|
3
|
+
"version": "0.1.6",
|
|
4
|
+
"description": "Core types, schemas, errors, and utilities for ElsiumAI",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Eric Utrera <ebutrera9103@gmail.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/elsium-ai/elsium-ai",
|
|
10
|
+
"directory": "packages/core"
|
|
11
|
+
},
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun && bun x tsc -p tsconfig.build.json --emitDeclarationOnly",
|
|
26
|
+
"dev": "bun --watch src/index.ts"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"zod": "^3.24.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"bun-types": "^1.3.0",
|
|
33
|
+
"typescript": "^5.7.0"
|
|
34
|
+
}
|
|
35
|
+
}
|