@elsium-ai/core 0.2.3 → 0.3.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/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +241 -0
- package/dist/registry.d.ts +9 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/schema.d.ts +8 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/tokens.d.ts +15 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/types.d.ts +34 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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';
|
|
1
|
+
export type { Role, TextContent, ImageContent, AudioContent, DocumentContent, ContentPart, ToolCall, ToolResult, Message, TokenUsage, CostBreakdown, StopReason, LLMResponse, StreamEvent, XRayData, StreamCheckpoint, ProviderConfig, CompletionRequest, ToolDefinition, TenantContext, MiddlewareContext, MiddlewareNext, Middleware, } from './types';
|
|
2
2
|
export { ElsiumError } from './errors';
|
|
3
3
|
export type { ErrorCode, ErrorDetails } from './errors';
|
|
4
4
|
export { ok, err, isOk, isErr, unwrap, unwrapOr, tryCatch, tryCatchSync } from './result';
|
|
@@ -8,6 +8,11 @@ export type { StreamTransformer, ResilientStreamOptions } from './stream';
|
|
|
8
8
|
export { createLogger } from './logger';
|
|
9
9
|
export type { Logger, LogLevel, LogEntry, LoggerOptions } from './logger';
|
|
10
10
|
export { env, envNumber, envBool } from './config';
|
|
11
|
+
export { zodToJsonSchema } from './schema';
|
|
12
|
+
export { createRegistry } from './registry';
|
|
13
|
+
export type { Registry } from './registry';
|
|
14
|
+
export { countTokens, createContextManager } from './tokens';
|
|
15
|
+
export type { ContextStrategy, ContextManagerConfig, ContextManager } from './tokens';
|
|
11
16
|
export { generateId, generateTraceId, extractText, sleep, retry } from './utils';
|
|
12
17
|
export { createCircuitBreaker } from './circuit-breaker';
|
|
13
18
|
export type { CircuitBreakerConfig, CircuitBreaker, CircuitState } from './circuit-breaker';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACX,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,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,aAAa,EACb,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,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC5D,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAGrF,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"}
|
package/dist/index.js
CHANGED
|
@@ -496,6 +496,243 @@ function envBool(name, fallback) {
|
|
|
496
496
|
metadata: { variable: name }
|
|
497
497
|
});
|
|
498
498
|
}
|
|
499
|
+
// src/schema.ts
|
|
500
|
+
var log = createLogger();
|
|
501
|
+
function zodDefKind(def) {
|
|
502
|
+
return typeof def.type === "string" ? def.type : def.typeName;
|
|
503
|
+
}
|
|
504
|
+
function zodObjectToJsonSchema(schema, convert) {
|
|
505
|
+
const shape = typeof schema.shape === "function" ? schema.shape() : schema.shape;
|
|
506
|
+
const properties = {};
|
|
507
|
+
const required = [];
|
|
508
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
509
|
+
const fieldSchema = value;
|
|
510
|
+
properties[key] = convert(fieldSchema);
|
|
511
|
+
const fieldDef = fieldSchema._def;
|
|
512
|
+
const fieldKind = zodDefKind(fieldDef);
|
|
513
|
+
if (fieldKind !== "optional" && fieldKind !== "ZodOptional" && fieldKind !== "default" && fieldKind !== "ZodDefault") {
|
|
514
|
+
required.push(key);
|
|
515
|
+
}
|
|
516
|
+
if (fieldDef.description) {
|
|
517
|
+
properties[key].description = fieldDef.description;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
return { type: "object", properties, required };
|
|
521
|
+
}
|
|
522
|
+
function zodToJsonSchema(schema) {
|
|
523
|
+
if (!("_def" in schema))
|
|
524
|
+
return { type: "object" };
|
|
525
|
+
const def = schema._def;
|
|
526
|
+
const kind = zodDefKind(def);
|
|
527
|
+
switch (kind) {
|
|
528
|
+
case "object":
|
|
529
|
+
case "ZodObject":
|
|
530
|
+
return zodObjectToJsonSchema(def, zodToJsonSchema);
|
|
531
|
+
case "string":
|
|
532
|
+
case "ZodString":
|
|
533
|
+
return { type: "string" };
|
|
534
|
+
case "number":
|
|
535
|
+
case "ZodNumber":
|
|
536
|
+
return { type: "number" };
|
|
537
|
+
case "boolean":
|
|
538
|
+
case "ZodBoolean":
|
|
539
|
+
return { type: "boolean" };
|
|
540
|
+
case "array":
|
|
541
|
+
case "ZodArray":
|
|
542
|
+
return {
|
|
543
|
+
type: "array",
|
|
544
|
+
items: zodToJsonSchema(def.element ?? def.type)
|
|
545
|
+
};
|
|
546
|
+
case "enum":
|
|
547
|
+
case "ZodEnum": {
|
|
548
|
+
const values = def.values ?? (def.entries ? Object.values(def.entries) : []);
|
|
549
|
+
return { type: "string", enum: values };
|
|
550
|
+
}
|
|
551
|
+
case "optional":
|
|
552
|
+
case "ZodOptional":
|
|
553
|
+
return zodToJsonSchema(def.innerType);
|
|
554
|
+
case "default":
|
|
555
|
+
case "ZodDefault":
|
|
556
|
+
return zodToJsonSchema(def.innerType);
|
|
557
|
+
case "nullable":
|
|
558
|
+
case "ZodNullable": {
|
|
559
|
+
const inner = zodToJsonSchema(def.innerType);
|
|
560
|
+
return { ...inner, nullable: true };
|
|
561
|
+
}
|
|
562
|
+
case "ZodLiteral":
|
|
563
|
+
return { type: typeof def.value, const: def.value };
|
|
564
|
+
case "ZodUnion": {
|
|
565
|
+
const options = def.options.map(zodToJsonSchema);
|
|
566
|
+
return { anyOf: options };
|
|
567
|
+
}
|
|
568
|
+
case "ZodRecord":
|
|
569
|
+
return {
|
|
570
|
+
type: "object",
|
|
571
|
+
additionalProperties: def.valueType ? zodToJsonSchema(def.valueType) : { type: "string" }
|
|
572
|
+
};
|
|
573
|
+
case "ZodTuple": {
|
|
574
|
+
const items = (def.items ?? []).map(zodToJsonSchema);
|
|
575
|
+
return { type: "array", prefixItems: items, minItems: items.length, maxItems: items.length };
|
|
576
|
+
}
|
|
577
|
+
case "ZodDate":
|
|
578
|
+
return { type: "string", format: "date-time" };
|
|
579
|
+
default:
|
|
580
|
+
log.warn(`zodToJsonSchema: unsupported type ${kind}, defaulting to string`);
|
|
581
|
+
return { type: "string" };
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
// src/registry.ts
|
|
585
|
+
var log2 = createLogger();
|
|
586
|
+
var BLOCKED_KEYS = new Set(["__proto__", "constructor", "prototype"]);
|
|
587
|
+
function createRegistry(label) {
|
|
588
|
+
const entries = new Map;
|
|
589
|
+
return {
|
|
590
|
+
register(name, factory) {
|
|
591
|
+
if (BLOCKED_KEYS.has(name)) {
|
|
592
|
+
log2.warn(`Registry(${label}): rejected blocked key "${name}"`);
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
entries.set(name, factory);
|
|
596
|
+
log2.debug(`Registry(${label}): registered "${name}"`);
|
|
597
|
+
},
|
|
598
|
+
get(name) {
|
|
599
|
+
if (BLOCKED_KEYS.has(name))
|
|
600
|
+
return;
|
|
601
|
+
return entries.get(name);
|
|
602
|
+
},
|
|
603
|
+
list() {
|
|
604
|
+
return Array.from(entries.keys());
|
|
605
|
+
},
|
|
606
|
+
has(name) {
|
|
607
|
+
if (BLOCKED_KEYS.has(name))
|
|
608
|
+
return false;
|
|
609
|
+
return entries.has(name);
|
|
610
|
+
},
|
|
611
|
+
unregister(name) {
|
|
612
|
+
if (BLOCKED_KEYS.has(name))
|
|
613
|
+
return false;
|
|
614
|
+
const deleted = entries.delete(name);
|
|
615
|
+
if (deleted) {
|
|
616
|
+
log2.debug(`Registry(${label}): unregistered "${name}"`);
|
|
617
|
+
}
|
|
618
|
+
return deleted;
|
|
619
|
+
}
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
// src/tokens.ts
|
|
623
|
+
var MODEL_RATIOS = {
|
|
624
|
+
cl100k_base: 4,
|
|
625
|
+
"gpt-4o": 4,
|
|
626
|
+
"gpt-4o-mini": 4,
|
|
627
|
+
o1: 4,
|
|
628
|
+
"o1-mini": 4,
|
|
629
|
+
"o3-mini": 4,
|
|
630
|
+
"claude-opus-4-6": 3.5,
|
|
631
|
+
"claude-sonnet-4-6": 3.5,
|
|
632
|
+
"claude-haiku-4-5-20251001": 3.5,
|
|
633
|
+
"gemini-2.0-flash": 4,
|
|
634
|
+
"gemini-2.0-flash-lite": 4,
|
|
635
|
+
"gemini-2.5-pro-preview-05-06": 4,
|
|
636
|
+
"gemini-2.5-flash-preview-04-17": 4
|
|
637
|
+
};
|
|
638
|
+
function getRatio(model) {
|
|
639
|
+
if (!model)
|
|
640
|
+
return 4;
|
|
641
|
+
if (MODEL_RATIOS[model])
|
|
642
|
+
return MODEL_RATIOS[model];
|
|
643
|
+
if (model.startsWith("claude"))
|
|
644
|
+
return 3.5;
|
|
645
|
+
if (model.startsWith("gemini"))
|
|
646
|
+
return 4;
|
|
647
|
+
if (model.startsWith("gpt") || model.startsWith("o1") || model.startsWith("o3"))
|
|
648
|
+
return 4;
|
|
649
|
+
return 4;
|
|
650
|
+
}
|
|
651
|
+
function extractMessageText(msg) {
|
|
652
|
+
if (typeof msg.content === "string")
|
|
653
|
+
return msg.content;
|
|
654
|
+
return msg.content.filter((p) => p.type === "text" && ("text" in p)).map((p) => p.text).join("");
|
|
655
|
+
}
|
|
656
|
+
function countTokens(text, model) {
|
|
657
|
+
const ratio = getRatio(model);
|
|
658
|
+
return Math.ceil(text.length / ratio) + 4;
|
|
659
|
+
}
|
|
660
|
+
function createContextManager(config) {
|
|
661
|
+
const { maxTokens, strategy, reserveTokens = 0 } = config;
|
|
662
|
+
const budget = maxTokens - reserveTokens;
|
|
663
|
+
function estimateMessageTokens(msg) {
|
|
664
|
+
return countTokens(extractMessageText(msg)) + 4;
|
|
665
|
+
}
|
|
666
|
+
function estimateTokens(messages) {
|
|
667
|
+
return messages.reduce((sum, msg) => sum + estimateMessageTokens(msg), 0);
|
|
668
|
+
}
|
|
669
|
+
async function fitTruncate(messages, system) {
|
|
670
|
+
let available = budget;
|
|
671
|
+
if (system)
|
|
672
|
+
available -= countTokens(system);
|
|
673
|
+
const result = [];
|
|
674
|
+
for (let i = messages.length - 1;i >= 0; i--) {
|
|
675
|
+
const tokens = estimateMessageTokens(messages[i]);
|
|
676
|
+
if (available - tokens < 0 && result.length > 0)
|
|
677
|
+
break;
|
|
678
|
+
available -= tokens;
|
|
679
|
+
result.unshift(messages[i]);
|
|
680
|
+
}
|
|
681
|
+
return result;
|
|
682
|
+
}
|
|
683
|
+
async function fitSummarize(messages, system) {
|
|
684
|
+
if (!config.summarizer)
|
|
685
|
+
return fitTruncate(messages, system);
|
|
686
|
+
let available = budget;
|
|
687
|
+
if (system)
|
|
688
|
+
available -= countTokens(system);
|
|
689
|
+
const total = estimateTokens(messages);
|
|
690
|
+
if (total <= available)
|
|
691
|
+
return messages;
|
|
692
|
+
const keepCount = Math.max(1, Math.floor(messages.length / 3));
|
|
693
|
+
const toSummarize = messages.slice(0, messages.length - keepCount);
|
|
694
|
+
const toKeep = messages.slice(messages.length - keepCount);
|
|
695
|
+
const summary = await config.summarizer(toSummarize);
|
|
696
|
+
const summaryMsg = {
|
|
697
|
+
role: "system",
|
|
698
|
+
content: `Previous conversation summary: ${summary}`
|
|
699
|
+
};
|
|
700
|
+
return [summaryMsg, ...toKeep];
|
|
701
|
+
}
|
|
702
|
+
async function fitSlidingWindow(messages, system) {
|
|
703
|
+
let available = budget;
|
|
704
|
+
if (system)
|
|
705
|
+
available -= countTokens(system);
|
|
706
|
+
const result = [];
|
|
707
|
+
for (let i = messages.length - 1;i >= 0; i--) {
|
|
708
|
+
const tokens = estimateMessageTokens(messages[i]);
|
|
709
|
+
if (available - tokens < 0 && result.length > 0)
|
|
710
|
+
break;
|
|
711
|
+
available -= tokens;
|
|
712
|
+
result.unshift(messages[i]);
|
|
713
|
+
}
|
|
714
|
+
return result;
|
|
715
|
+
}
|
|
716
|
+
return {
|
|
717
|
+
estimateTokens,
|
|
718
|
+
async fit(messages, system) {
|
|
719
|
+
const total = estimateTokens(messages);
|
|
720
|
+
let available = budget;
|
|
721
|
+
if (system)
|
|
722
|
+
available -= countTokens(system);
|
|
723
|
+
if (total <= available)
|
|
724
|
+
return messages;
|
|
725
|
+
switch (strategy) {
|
|
726
|
+
case "truncate":
|
|
727
|
+
return fitTruncate(messages, system);
|
|
728
|
+
case "summarize":
|
|
729
|
+
return fitSummarize(messages, system);
|
|
730
|
+
case "sliding-window":
|
|
731
|
+
return fitSlidingWindow(messages, system);
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
};
|
|
735
|
+
}
|
|
499
736
|
// src/circuit-breaker.ts
|
|
500
737
|
function defaultShouldCount(error) {
|
|
501
738
|
if (error && typeof error === "object" && "retryable" in error) {
|
|
@@ -962,6 +1199,7 @@ function createShutdownManager(config) {
|
|
|
962
1199
|
return manager;
|
|
963
1200
|
}
|
|
964
1201
|
export {
|
|
1202
|
+
zodToJsonSchema,
|
|
965
1203
|
unwrapOr,
|
|
966
1204
|
unwrap,
|
|
967
1205
|
tryCatchSync,
|
|
@@ -984,10 +1222,13 @@ export {
|
|
|
984
1222
|
dedupMiddleware,
|
|
985
1223
|
createStream,
|
|
986
1224
|
createShutdownManager,
|
|
1225
|
+
createRegistry,
|
|
987
1226
|
createPolicySet,
|
|
988
1227
|
createLogger,
|
|
989
1228
|
createDedup,
|
|
1229
|
+
createContextManager,
|
|
990
1230
|
createCircuitBreaker,
|
|
1231
|
+
countTokens,
|
|
991
1232
|
costLimitPolicy,
|
|
992
1233
|
contentPolicy,
|
|
993
1234
|
ElsiumStream,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface Registry<T> {
|
|
2
|
+
register(name: string, factory: T): void;
|
|
3
|
+
get(name: string): T | undefined;
|
|
4
|
+
list(): string[];
|
|
5
|
+
has(name: string): boolean;
|
|
6
|
+
unregister(name: string): boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function createRegistry<T>(label: string): Registry<T>;
|
|
9
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;IACxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;IAChC,IAAI,IAAI,MAAM,EAAE,CAAA;IAChB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACjC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAoC5D"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a Zod schema to JSON Schema.
|
|
4
|
+
* Uses Zod's internal `_def` property — the standard community pattern
|
|
5
|
+
* since Zod does not expose a public schema introspection API.
|
|
6
|
+
*/
|
|
7
|
+
export declare function zodToJsonSchema(schema: z.ZodType): Record<string, unknown>;
|
|
8
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyC5B;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkE1E"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Message } from './types';
|
|
2
|
+
export declare function countTokens(text: string, model?: string): number;
|
|
3
|
+
export type ContextStrategy = 'truncate' | 'summarize' | 'sliding-window';
|
|
4
|
+
export interface ContextManagerConfig {
|
|
5
|
+
maxTokens: number;
|
|
6
|
+
strategy: ContextStrategy;
|
|
7
|
+
reserveTokens?: number;
|
|
8
|
+
summarizer?: (messages: Message[]) => Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
export interface ContextManager {
|
|
11
|
+
fit(messages: Message[], system?: string): Promise<Message[]>;
|
|
12
|
+
estimateTokens(messages: Message[]): number;
|
|
13
|
+
}
|
|
14
|
+
export declare function createContextManager(config: ContextManagerConfig): ContextManager;
|
|
15
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAoCtC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CAAA;AAEzE,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,eAAe,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACrD;AAED,MAAM,WAAW,cAAc;IAC9B,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7D,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;CAC3C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAkFjF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -15,7 +15,29 @@ export interface ImageContent {
|
|
|
15
15
|
url: string;
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
export
|
|
18
|
+
export interface AudioContent {
|
|
19
|
+
type: 'audio';
|
|
20
|
+
source: {
|
|
21
|
+
type: 'base64';
|
|
22
|
+
mediaType: string;
|
|
23
|
+
data: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'url';
|
|
26
|
+
url: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface DocumentContent {
|
|
30
|
+
type: 'document';
|
|
31
|
+
source: {
|
|
32
|
+
type: 'base64';
|
|
33
|
+
mediaType: string;
|
|
34
|
+
data: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: 'url';
|
|
37
|
+
url: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export type ContentPart = TextContent | ImageContent | AudioContent | DocumentContent;
|
|
19
41
|
export interface ToolCall {
|
|
20
42
|
id: string;
|
|
21
43
|
name: string;
|
|
@@ -147,6 +169,17 @@ export interface StreamCheckpoint {
|
|
|
147
169
|
tokensSoFar: number;
|
|
148
170
|
eventIndex: number;
|
|
149
171
|
}
|
|
172
|
+
export interface TenantContext {
|
|
173
|
+
tenantId: string;
|
|
174
|
+
tier?: string;
|
|
175
|
+
limits?: {
|
|
176
|
+
maxRequestsPerMinute?: number;
|
|
177
|
+
maxTokensPerDay?: number;
|
|
178
|
+
maxCostPerMonth?: number;
|
|
179
|
+
allowedModels?: string[];
|
|
180
|
+
};
|
|
181
|
+
metadata?: Record<string, unknown>;
|
|
182
|
+
}
|
|
150
183
|
export interface MiddlewareContext {
|
|
151
184
|
request: CompletionRequest;
|
|
152
185
|
provider: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAI5B,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;AAE3D,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1F;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|