@use-lattice/litmus 0.121.3
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/LICENSE +19 -0
- package/dist/src/accounts-Bt1oJb1Z.cjs +219 -0
- package/dist/src/accounts-DjOU8Rm3.js +178 -0
- package/dist/src/agentic-utils-D03IiXQc.js +153 -0
- package/dist/src/agentic-utils-Dh7xaMQM.cjs +180 -0
- package/dist/src/agents-C6BIMlZa.js +231 -0
- package/dist/src/agents-DvIpNX1L.cjs +666 -0
- package/dist/src/agents-ZP0RP9vV.cjs +231 -0
- package/dist/src/agents-maJXdjbR.js +665 -0
- package/dist/src/aimlapi-BTbQjG2E.cjs +30 -0
- package/dist/src/aimlapi-CwMxqfXP.js +30 -0
- package/dist/src/audio-BBUdvsde.cjs +97 -0
- package/dist/src/audio-D5DPZ7I-.js +97 -0
- package/dist/src/base-BEysXrkq.cjs +222 -0
- package/dist/src/base-C451JQfq.js +193 -0
- package/dist/src/blobs-BY8MDmpo.js +230 -0
- package/dist/src/blobs-BgcNn97m.cjs +256 -0
- package/dist/src/cache-BBE_lsTA.cjs +4 -0
- package/dist/src/cache-BkrqU5Ba.js +237 -0
- package/dist/src/cache-DsCxFlsZ.cjs +297 -0
- package/dist/src/chat-CPJWDP6a.cjs +289 -0
- package/dist/src/chat-CXX3xzkk.cjs +811 -0
- package/dist/src/chat-CcDgZFJ4.js +787 -0
- package/dist/src/chat-Dz5ZeGO2.js +289 -0
- package/dist/src/chatkit-Dw0mKkML.cjs +1158 -0
- package/dist/src/chatkit-swAIVuea.js +1157 -0
- package/dist/src/chunk-DEq-mXcV.js +15 -0
- package/dist/src/claude-agent-sdk-BXZJtOg6.js +379 -0
- package/dist/src/claude-agent-sdk-CkfyjDoG.cjs +383 -0
- package/dist/src/cloudflare-ai-BzpJcqUH.js +161 -0
- package/dist/src/cloudflare-ai-Cmy_R1y2.cjs +161 -0
- package/dist/src/cloudflare-gateway-B9tVQKok.cjs +272 -0
- package/dist/src/cloudflare-gateway-DrD3ew3H.js +272 -0
- package/dist/src/codex-sdk-Dezj9Nwm.js +1056 -0
- package/dist/src/codex-sdk-Dl9D4k5B.cjs +1060 -0
- package/dist/src/cometapi-C-9YvCHC.js +54 -0
- package/dist/src/cometapi-DHgDKoO2.cjs +54 -0
- package/dist/src/completion-B8Ctyxpr.js +120 -0
- package/dist/src/completion-Cxrt08sj.cjs +131 -0
- package/dist/src/createHash-BwgE13yv.cjs +27 -0
- package/dist/src/createHash-DmPQkvBh.js +15 -0
- package/dist/src/docker-BiqcTwLv.js +80 -0
- package/dist/src/docker-C7tEJnP-.cjs +80 -0
- package/dist/src/esm-C62Zofr1.cjs +409 -0
- package/dist/src/esm-DMVc93eh.js +379 -0
- package/dist/src/evalResult-C3NJPQOo.cjs +301 -0
- package/dist/src/evalResult-C7JJAPBb.js +295 -0
- package/dist/src/evalResult-DoVTZZWI.cjs +2 -0
- package/dist/src/extractor-DnMD3fwt.cjs +391 -0
- package/dist/src/extractor-DtlL28vL.js +374 -0
- package/dist/src/fetch-BTxakTSg.cjs +1133 -0
- package/dist/src/fetch-DQckpUFz.js +928 -0
- package/dist/src/fileExtensions-DnqA1y9x.js +85 -0
- package/dist/src/fileExtensions-bYh77CN8.cjs +114 -0
- package/dist/src/genaiTracer-CyZrmaK0.cjs +268 -0
- package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
- package/dist/src/graders-BNscxFrU.js +13644 -0
- package/dist/src/graders-D2oE9Msq.js +2 -0
- package/dist/src/graders-c0Ez_w-9.cjs +2 -0
- package/dist/src/graders-d0F2M3e9.cjs +14056 -0
- package/dist/src/image-0ZhE0VlR.cjs +280 -0
- package/dist/src/image-CWE1pdNv.js +257 -0
- package/dist/src/image-D9ZK6hwL.js +163 -0
- package/dist/src/image-DKZgZITg.cjs +163 -0
- package/dist/src/index.cjs +11366 -0
- package/dist/src/index.d.cts +19640 -0
- package/dist/src/index.d.ts +19641 -0
- package/dist/src/index.js +11306 -0
- package/dist/src/invariant-Ddh24eXh.js +25 -0
- package/dist/src/invariant-kfQ8Bu82.cjs +30 -0
- package/dist/src/knowledgeBase-BgPyGFUd.cjs +122 -0
- package/dist/src/knowledgeBase-DyHilYaP.js +122 -0
- package/dist/src/litellm-CyMeneHS.js +135 -0
- package/dist/src/litellm-DWDF73yF.cjs +135 -0
- package/dist/src/logger-C40ZGil9.js +717 -0
- package/dist/src/logger-DyfK9PBt.cjs +917 -0
- package/dist/src/luma-ray-BAU9X_ep.cjs +315 -0
- package/dist/src/luma-ray-nwVseBbv.js +313 -0
- package/dist/src/messages-B5ADWTTv.js +245 -0
- package/dist/src/messages-BCnZfqrS.cjs +257 -0
- package/dist/src/meteor-DLZZ3osF.cjs +134 -0
- package/dist/src/meteor-DUiCJRC-.js +134 -0
- package/dist/src/modelslab-00cveB8L.cjs +163 -0
- package/dist/src/modelslab-D9sCU_L7.js +163 -0
- package/dist/src/nova-reel-CTapvqYH.js +276 -0
- package/dist/src/nova-reel-DlWuuroF.cjs +278 -0
- package/dist/src/nova-sonic-5UPWfeMv.cjs +363 -0
- package/dist/src/nova-sonic-BhSwQNym.js +363 -0
- package/dist/src/openai-BWrJK9d8.cjs +52 -0
- package/dist/src/openai-DumO8WQn.js +47 -0
- package/dist/src/openclaw-B8brrjC_.cjs +577 -0
- package/dist/src/openclaw-Bkayww9q.js +571 -0
- package/dist/src/opencode-sdk-7xjoDNiM.cjs +562 -0
- package/dist/src/opencode-sdk-SGwAPxht.js +558 -0
- package/dist/src/otlpReceiver-CoAHfAN9.cjs +15 -0
- package/dist/src/otlpReceiver-oO3EQwI9.js +14 -0
- package/dist/src/providerRegistry-4yjhaEM8.js +45 -0
- package/dist/src/providerRegistry-DhV4rJIc.cjs +50 -0
- package/dist/src/providers-B5RJVG-7.cjs +33609 -0
- package/dist/src/providers-BdmZCLzV.js +33262 -0
- package/dist/src/providers-CxtRxn8e.js +2 -0
- package/dist/src/providers-DnQLNbx1.cjs +3 -0
- package/dist/src/pythonUtils-BD0druiM.cjs +275 -0
- package/dist/src/pythonUtils-IBhn5YGR.js +249 -0
- package/dist/src/quiverai-BDOwZBsM.cjs +213 -0
- package/dist/src/quiverai-D3JTF5lD.js +213 -0
- package/dist/src/responses-B2LCDCXZ.js +667 -0
- package/dist/src/responses-BvNm4Xv9.cjs +685 -0
- package/dist/src/rubyUtils-B0NwnfpY.cjs +245 -0
- package/dist/src/rubyUtils-BroxzZ7c.cjs +2 -0
- package/dist/src/rubyUtils-hqVw5UvJ.js +222 -0
- package/dist/src/sagemaker-Cno2V-Sx.js +689 -0
- package/dist/src/sagemaker-fV_KUgs5.cjs +691 -0
- package/dist/src/server-BOuAXb06.cjs +238 -0
- package/dist/src/server-CtI-EWzm.cjs +2 -0
- package/dist/src/server-Cy3DZymt.js +189 -0
- package/dist/src/slack-CP8xBePa.js +135 -0
- package/dist/src/slack-DSQ1yXVb.cjs +135 -0
- package/dist/src/store-BwDDaBjb.cjs +246 -0
- package/dist/src/store-DcbLC593.cjs +2 -0
- package/dist/src/store-IGpqMIkv.js +240 -0
- package/dist/src/tables-3Q2cL7So.cjs +373 -0
- package/dist/src/tables-Bi2fjr4W.js +288 -0
- package/dist/src/telemetry-Bg2WqF79.js +161 -0
- package/dist/src/telemetry-D0x6u5kX.cjs +166 -0
- package/dist/src/telemetry-DXNimrI0.cjs +2 -0
- package/dist/src/text-B_UCRPp2.js +22 -0
- package/dist/src/text-CW1cyrwj.cjs +33 -0
- package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
- package/dist/src/tokenUsageUtils-bVa1ga6f.cjs +173 -0
- package/dist/src/transcription-Cl_W16Pr.js +122 -0
- package/dist/src/transcription-yt1EecY8.cjs +124 -0
- package/dist/src/transform-BCtGrl_W.cjs +228 -0
- package/dist/src/transform-Bv6gG2MJ.cjs +1688 -0
- package/dist/src/transform-CY1wbpRy.js +1507 -0
- package/dist/src/transform-DU8rUL9P.cjs +2 -0
- package/dist/src/transform-yWaShiKr.js +216 -0
- package/dist/src/transformersAvailability-BGkzavwb.js +35 -0
- package/dist/src/transformersAvailability-DKoRtQLy.cjs +35 -0
- package/dist/src/types-5aqHpBwE.cjs +3769 -0
- package/dist/src/types-Bn6D9c4U.js +3300 -0
- package/dist/src/util-BkKlTkI2.js +293 -0
- package/dist/src/util-CTh0bfOm.cjs +1119 -0
- package/dist/src/util-D17oBwo7.cjs +328 -0
- package/dist/src/util-DsS_-v4p.js +613 -0
- package/dist/src/util-DuntT1Ga.js +951 -0
- package/dist/src/util-aWjdCYMI.cjs +667 -0
- package/dist/src/utils-CisQwpjA.js +94 -0
- package/dist/src/utils-yWamDvmz.cjs +123 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/drizzle/0000_lush_hellion.sql +36 -0
- package/drizzle/0001_wide_calypso.sql +3 -0
- package/drizzle/0002_tidy_juggernaut.sql +1 -0
- package/drizzle/0003_lively_naoko.sql +8 -0
- package/drizzle/0004_minor_peter_quill.sql +19 -0
- package/drizzle/0005_silky_millenium_guard.sql +2 -0
- package/drizzle/0006_harsh_caretaker.sql +42 -0
- package/drizzle/0007_cloudy_wong.sql +1 -0
- package/drizzle/0008_broad_boomer.sql +2 -0
- package/drizzle/0009_strong_marten_broadcloak.sql +19 -0
- package/drizzle/0010_needy_bishop.sql +11 -0
- package/drizzle/0011_moaning_millenium_guard.sql +1 -0
- package/drizzle/0012_late_marten_broadcloak.sql +2 -0
- package/drizzle/0013_previous_dormammu.sql +9 -0
- package/drizzle/0014_lazy_captain_universe.sql +2 -0
- package/drizzle/0015_zippy_wallop.sql +29 -0
- package/drizzle/0016_jazzy_zemo.sql +2 -0
- package/drizzle/0017_reflective_praxagora.sql +4 -0
- package/drizzle/0018_fat_vanisher.sql +22 -0
- package/drizzle/0019_new_clint_barton.sql +8 -0
- package/drizzle/0020_skinny_maverick.sql +1 -0
- package/drizzle/0021_mysterious_madelyne_pryor.sql +13 -0
- package/drizzle/0022_sleepy_ultimo.sql +25 -0
- package/drizzle/0023_wooden_mandrill.sql +2 -0
- package/drizzle/AGENTS.md +68 -0
- package/drizzle/CLAUDE.md +1 -0
- package/drizzle/meta/0000_snapshot.json +221 -0
- package/drizzle/meta/0001_snapshot.json +214 -0
- package/drizzle/meta/0002_snapshot.json +221 -0
- package/drizzle/meta/0005_snapshot.json +369 -0
- package/drizzle/meta/0006_snapshot.json +638 -0
- package/drizzle/meta/0007_snapshot.json +640 -0
- package/drizzle/meta/0008_snapshot.json +649 -0
- package/drizzle/meta/0009_snapshot.json +554 -0
- package/drizzle/meta/0010_snapshot.json +619 -0
- package/drizzle/meta/0011_snapshot.json +627 -0
- package/drizzle/meta/0012_snapshot.json +639 -0
- package/drizzle/meta/0013_snapshot.json +717 -0
- package/drizzle/meta/0014_snapshot.json +717 -0
- package/drizzle/meta/0015_snapshot.json +897 -0
- package/drizzle/meta/0016_snapshot.json +1031 -0
- package/drizzle/meta/0018_snapshot.json +1210 -0
- package/drizzle/meta/0019_snapshot.json +1165 -0
- package/drizzle/meta/0020_snapshot.json +1232 -0
- package/drizzle/meta/0021_snapshot.json +1311 -0
- package/drizzle/meta/0022_snapshot.json +1481 -0
- package/drizzle/meta/0023_snapshot.json +1496 -0
- package/drizzle/meta/_journal.json +174 -0
- package/package.json +240 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/util/invariant.ts
|
|
2
|
+
/**
|
|
3
|
+
* Custom invariant function that preserves error messages in production.
|
|
4
|
+
* Similar to tiny-invariant but always includes the full error message.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const value: Person | null = { name: 'Alex' };
|
|
9
|
+
* invariant(value, 'Expected value to be a person');
|
|
10
|
+
* // type of `value` has been narrowed to `Person`
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* See https://github.com/alexreardon/tiny-invariant
|
|
14
|
+
*/
|
|
15
|
+
function invariant(condition, message) {
|
|
16
|
+
if (condition) return;
|
|
17
|
+
const prefix = "Invariant failed";
|
|
18
|
+
const provided = typeof message === "function" ? message() : message;
|
|
19
|
+
const value = provided ? `${prefix}: ${provided}` : prefix;
|
|
20
|
+
throw new Error(value);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { invariant as t };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=invariant-Ddh24eXh.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//#region src/util/invariant.ts
|
|
2
|
+
/**
|
|
3
|
+
* Custom invariant function that preserves error messages in production.
|
|
4
|
+
* Similar to tiny-invariant but always includes the full error message.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const value: Person | null = { name: 'Alex' };
|
|
9
|
+
* invariant(value, 'Expected value to be a person');
|
|
10
|
+
* // type of `value` has been narrowed to `Person`
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* See https://github.com/alexreardon/tiny-invariant
|
|
14
|
+
*/
|
|
15
|
+
function invariant(condition, message) {
|
|
16
|
+
if (condition) return;
|
|
17
|
+
const prefix = "Invariant failed";
|
|
18
|
+
const provided = typeof message === "function" ? message() : message;
|
|
19
|
+
const value = provided ? `${prefix}: ${provided}` : prefix;
|
|
20
|
+
throw new Error(value);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
Object.defineProperty(exports, "invariant", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function() {
|
|
26
|
+
return invariant;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=invariant-kfQ8Bu82.cjs.map
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const require_logger = require("./logger-DyfK9PBt.cjs");
|
|
2
|
+
const require_cache = require("./cache-DsCxFlsZ.cjs");
|
|
3
|
+
const require_tokenUsageUtils = require("./tokenUsageUtils-bVa1ga6f.cjs");
|
|
4
|
+
const require_telemetry = require("./telemetry-D0x6u5kX.cjs");
|
|
5
|
+
const require_base = require("./base-BEysXrkq.cjs");
|
|
6
|
+
//#region src/providers/bedrock/knowledgeBase.ts
|
|
7
|
+
/**
|
|
8
|
+
* AWS Bedrock Knowledge Base provider for RAG (Retrieval Augmented Generation).
|
|
9
|
+
* Allows querying an existing AWS Bedrock Knowledge Base with text queries.
|
|
10
|
+
*/
|
|
11
|
+
var AwsBedrockKnowledgeBaseProvider = class extends require_base.AwsBedrockGenericProvider {
|
|
12
|
+
knowledgeBaseClient;
|
|
13
|
+
kbConfig;
|
|
14
|
+
constructor(modelName, options = {}) {
|
|
15
|
+
super(modelName, options);
|
|
16
|
+
if (!options.config?.knowledgeBaseId) throw new Error("Knowledge Base ID is required. Please provide a knowledgeBaseId in the provider config.");
|
|
17
|
+
this.kbConfig = options.config || { knowledgeBaseId: "" };
|
|
18
|
+
require_telemetry.telemetry.record("feature_used", {
|
|
19
|
+
feature: "knowledge_base",
|
|
20
|
+
provider: "bedrock"
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
id() {
|
|
24
|
+
return `bedrock:kb:${this.kbConfig.knowledgeBaseId}`;
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
return `[Amazon Bedrock Knowledge Base Provider ${this.kbConfig.knowledgeBaseId}]`;
|
|
28
|
+
}
|
|
29
|
+
async getKnowledgeBaseClient() {
|
|
30
|
+
if (!this.knowledgeBaseClient) {
|
|
31
|
+
const apiKey = this.getApiKey();
|
|
32
|
+
const handler = require_base.hasProxyEnv() || apiKey ? await require_base.createBedrockRequestHandler({ apiKey }) : void 0;
|
|
33
|
+
try {
|
|
34
|
+
const { BedrockAgentRuntimeClient } = await import("@aws-sdk/client-bedrock-agent-runtime");
|
|
35
|
+
const credentials = await this.getCredentials();
|
|
36
|
+
this.knowledgeBaseClient = new BedrockAgentRuntimeClient({
|
|
37
|
+
region: this.getRegion(),
|
|
38
|
+
maxAttempts: require_logger.getEnvInt("AWS_BEDROCK_MAX_RETRIES", 10),
|
|
39
|
+
retryMode: "adaptive",
|
|
40
|
+
...handler ? { requestHandler: handler } : {},
|
|
41
|
+
...credentials ? { credentials } : {}
|
|
42
|
+
});
|
|
43
|
+
} catch (err) {
|
|
44
|
+
throw new Error(`The @aws-sdk/client-bedrock-agent-runtime package is required as a peer dependency. Please install it in your project or globally. Error: ${err}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return this.knowledgeBaseClient;
|
|
48
|
+
}
|
|
49
|
+
async callApi(prompt) {
|
|
50
|
+
const client = await this.getKnowledgeBaseClient();
|
|
51
|
+
let modelArn = this.kbConfig.modelArn;
|
|
52
|
+
if (!modelArn) if (this.modelName.includes("arn:aws:bedrock")) modelArn = this.modelName;
|
|
53
|
+
else if (this.modelName.startsWith("us.") || this.modelName.startsWith("eu.") || this.modelName.startsWith("apac.")) modelArn = this.modelName;
|
|
54
|
+
else modelArn = `arn:aws:bedrock:${this.getRegion()}::foundation-model/${this.modelName}`;
|
|
55
|
+
const knowledgeBaseConfiguration = { knowledgeBaseId: this.kbConfig.knowledgeBaseId };
|
|
56
|
+
if (this.kbConfig.modelArn || this.modelName !== "default") knowledgeBaseConfiguration.modelArn = modelArn;
|
|
57
|
+
if (this.kbConfig.numberOfResults !== void 0) knowledgeBaseConfiguration.retrievalConfiguration = { vectorSearchConfiguration: { numberOfResults: this.kbConfig.numberOfResults } };
|
|
58
|
+
const params = {
|
|
59
|
+
input: { text: prompt },
|
|
60
|
+
retrieveAndGenerateConfiguration: {
|
|
61
|
+
type: "KNOWLEDGE_BASE",
|
|
62
|
+
knowledgeBaseConfiguration
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
require_logger.logger.debug("Calling Amazon Bedrock Knowledge Base API", { params });
|
|
66
|
+
const cache = await require_cache.getCache();
|
|
67
|
+
const sensitiveKeys = [
|
|
68
|
+
"accessKeyId",
|
|
69
|
+
"secretAccessKey",
|
|
70
|
+
"sessionToken"
|
|
71
|
+
];
|
|
72
|
+
const cacheConfig = {
|
|
73
|
+
region: this.getRegion(),
|
|
74
|
+
modelName: this.modelName,
|
|
75
|
+
...Object.fromEntries(Object.entries(this.kbConfig).filter(([key]) => !sensitiveKeys.includes(key)))
|
|
76
|
+
};
|
|
77
|
+
const configStr = JSON.stringify(cacheConfig, Object.keys(cacheConfig).sort());
|
|
78
|
+
const cacheKey = `bedrock-kb:${Buffer.from(configStr).toString("base64")}:${prompt}`;
|
|
79
|
+
if (require_cache.isCacheEnabled()) {
|
|
80
|
+
const cachedResponse = await cache.get(cacheKey);
|
|
81
|
+
if (cachedResponse) {
|
|
82
|
+
require_logger.logger.debug(`Returning cached response for ${prompt}`);
|
|
83
|
+
const parsedResponse = JSON.parse(cachedResponse);
|
|
84
|
+
return {
|
|
85
|
+
output: parsedResponse.output,
|
|
86
|
+
metadata: { citations: parsedResponse.citations },
|
|
87
|
+
tokenUsage: require_tokenUsageUtils.createEmptyTokenUsage(),
|
|
88
|
+
cached: true
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const { RetrieveAndGenerateCommand } = await import("@aws-sdk/client-bedrock-agent-runtime");
|
|
94
|
+
const command = new RetrieveAndGenerateCommand(params);
|
|
95
|
+
const response = await client.send(command);
|
|
96
|
+
require_logger.logger.debug("Amazon Bedrock Knowledge Base API response", { response });
|
|
97
|
+
let output = "";
|
|
98
|
+
if (response && response.output && response.output.text) output = response.output.text;
|
|
99
|
+
let citations = [];
|
|
100
|
+
if (response && response.citations && Array.isArray(response.citations)) citations = response.citations;
|
|
101
|
+
if (require_cache.isCacheEnabled()) try {
|
|
102
|
+
await cache.set(cacheKey, JSON.stringify({
|
|
103
|
+
output,
|
|
104
|
+
citations
|
|
105
|
+
}));
|
|
106
|
+
} catch (err) {
|
|
107
|
+
require_logger.logger.error(`Failed to cache knowledge base response: ${String(err)}`);
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
output,
|
|
111
|
+
metadata: { citations },
|
|
112
|
+
tokenUsage: require_tokenUsageUtils.createEmptyTokenUsage()
|
|
113
|
+
};
|
|
114
|
+
} catch (err) {
|
|
115
|
+
return { error: `Bedrock Knowledge Base API error: ${String(err)}` };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
//#endregion
|
|
120
|
+
exports.AwsBedrockKnowledgeBaseProvider = AwsBedrockKnowledgeBaseProvider;
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=knowledgeBase-BgPyGFUd.cjs.map
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { b as getEnvInt, r as logger } from "./logger-C40ZGil9.js";
|
|
2
|
+
import { a as isCacheEnabled, i as getCache } from "./cache-BkrqU5Ba.js";
|
|
3
|
+
import { a as createEmptyTokenUsage } from "./tokenUsageUtils-NYT-WKS6.js";
|
|
4
|
+
import { t as telemetry } from "./telemetry-Bg2WqF79.js";
|
|
5
|
+
import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-C451JQfq.js";
|
|
6
|
+
//#region src/providers/bedrock/knowledgeBase.ts
|
|
7
|
+
/**
|
|
8
|
+
* AWS Bedrock Knowledge Base provider for RAG (Retrieval Augmented Generation).
|
|
9
|
+
* Allows querying an existing AWS Bedrock Knowledge Base with text queries.
|
|
10
|
+
*/
|
|
11
|
+
var AwsBedrockKnowledgeBaseProvider = class extends AwsBedrockGenericProvider {
|
|
12
|
+
knowledgeBaseClient;
|
|
13
|
+
kbConfig;
|
|
14
|
+
constructor(modelName, options = {}) {
|
|
15
|
+
super(modelName, options);
|
|
16
|
+
if (!options.config?.knowledgeBaseId) throw new Error("Knowledge Base ID is required. Please provide a knowledgeBaseId in the provider config.");
|
|
17
|
+
this.kbConfig = options.config || { knowledgeBaseId: "" };
|
|
18
|
+
telemetry.record("feature_used", {
|
|
19
|
+
feature: "knowledge_base",
|
|
20
|
+
provider: "bedrock"
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
id() {
|
|
24
|
+
return `bedrock:kb:${this.kbConfig.knowledgeBaseId}`;
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
return `[Amazon Bedrock Knowledge Base Provider ${this.kbConfig.knowledgeBaseId}]`;
|
|
28
|
+
}
|
|
29
|
+
async getKnowledgeBaseClient() {
|
|
30
|
+
if (!this.knowledgeBaseClient) {
|
|
31
|
+
const apiKey = this.getApiKey();
|
|
32
|
+
const handler = hasProxyEnv() || apiKey ? await createBedrockRequestHandler({ apiKey }) : void 0;
|
|
33
|
+
try {
|
|
34
|
+
const { BedrockAgentRuntimeClient } = await import("@aws-sdk/client-bedrock-agent-runtime");
|
|
35
|
+
const credentials = await this.getCredentials();
|
|
36
|
+
this.knowledgeBaseClient = new BedrockAgentRuntimeClient({
|
|
37
|
+
region: this.getRegion(),
|
|
38
|
+
maxAttempts: getEnvInt("AWS_BEDROCK_MAX_RETRIES", 10),
|
|
39
|
+
retryMode: "adaptive",
|
|
40
|
+
...handler ? { requestHandler: handler } : {},
|
|
41
|
+
...credentials ? { credentials } : {}
|
|
42
|
+
});
|
|
43
|
+
} catch (err) {
|
|
44
|
+
throw new Error(`The @aws-sdk/client-bedrock-agent-runtime package is required as a peer dependency. Please install it in your project or globally. Error: ${err}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return this.knowledgeBaseClient;
|
|
48
|
+
}
|
|
49
|
+
async callApi(prompt) {
|
|
50
|
+
const client = await this.getKnowledgeBaseClient();
|
|
51
|
+
let modelArn = this.kbConfig.modelArn;
|
|
52
|
+
if (!modelArn) if (this.modelName.includes("arn:aws:bedrock")) modelArn = this.modelName;
|
|
53
|
+
else if (this.modelName.startsWith("us.") || this.modelName.startsWith("eu.") || this.modelName.startsWith("apac.")) modelArn = this.modelName;
|
|
54
|
+
else modelArn = `arn:aws:bedrock:${this.getRegion()}::foundation-model/${this.modelName}`;
|
|
55
|
+
const knowledgeBaseConfiguration = { knowledgeBaseId: this.kbConfig.knowledgeBaseId };
|
|
56
|
+
if (this.kbConfig.modelArn || this.modelName !== "default") knowledgeBaseConfiguration.modelArn = modelArn;
|
|
57
|
+
if (this.kbConfig.numberOfResults !== void 0) knowledgeBaseConfiguration.retrievalConfiguration = { vectorSearchConfiguration: { numberOfResults: this.kbConfig.numberOfResults } };
|
|
58
|
+
const params = {
|
|
59
|
+
input: { text: prompt },
|
|
60
|
+
retrieveAndGenerateConfiguration: {
|
|
61
|
+
type: "KNOWLEDGE_BASE",
|
|
62
|
+
knowledgeBaseConfiguration
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
logger.debug("Calling Amazon Bedrock Knowledge Base API", { params });
|
|
66
|
+
const cache = await getCache();
|
|
67
|
+
const sensitiveKeys = [
|
|
68
|
+
"accessKeyId",
|
|
69
|
+
"secretAccessKey",
|
|
70
|
+
"sessionToken"
|
|
71
|
+
];
|
|
72
|
+
const cacheConfig = {
|
|
73
|
+
region: this.getRegion(),
|
|
74
|
+
modelName: this.modelName,
|
|
75
|
+
...Object.fromEntries(Object.entries(this.kbConfig).filter(([key]) => !sensitiveKeys.includes(key)))
|
|
76
|
+
};
|
|
77
|
+
const configStr = JSON.stringify(cacheConfig, Object.keys(cacheConfig).sort());
|
|
78
|
+
const cacheKey = `bedrock-kb:${Buffer.from(configStr).toString("base64")}:${prompt}`;
|
|
79
|
+
if (isCacheEnabled()) {
|
|
80
|
+
const cachedResponse = await cache.get(cacheKey);
|
|
81
|
+
if (cachedResponse) {
|
|
82
|
+
logger.debug(`Returning cached response for ${prompt}`);
|
|
83
|
+
const parsedResponse = JSON.parse(cachedResponse);
|
|
84
|
+
return {
|
|
85
|
+
output: parsedResponse.output,
|
|
86
|
+
metadata: { citations: parsedResponse.citations },
|
|
87
|
+
tokenUsage: createEmptyTokenUsage(),
|
|
88
|
+
cached: true
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const { RetrieveAndGenerateCommand } = await import("@aws-sdk/client-bedrock-agent-runtime");
|
|
94
|
+
const command = new RetrieveAndGenerateCommand(params);
|
|
95
|
+
const response = await client.send(command);
|
|
96
|
+
logger.debug("Amazon Bedrock Knowledge Base API response", { response });
|
|
97
|
+
let output = "";
|
|
98
|
+
if (response && response.output && response.output.text) output = response.output.text;
|
|
99
|
+
let citations = [];
|
|
100
|
+
if (response && response.citations && Array.isArray(response.citations)) citations = response.citations;
|
|
101
|
+
if (isCacheEnabled()) try {
|
|
102
|
+
await cache.set(cacheKey, JSON.stringify({
|
|
103
|
+
output,
|
|
104
|
+
citations
|
|
105
|
+
}));
|
|
106
|
+
} catch (err) {
|
|
107
|
+
logger.error(`Failed to cache knowledge base response: ${String(err)}`);
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
output,
|
|
111
|
+
metadata: { citations },
|
|
112
|
+
tokenUsage: createEmptyTokenUsage()
|
|
113
|
+
};
|
|
114
|
+
} catch (err) {
|
|
115
|
+
return { error: `Bedrock Knowledge Base API error: ${String(err)}` };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
//#endregion
|
|
120
|
+
export { AwsBedrockKnowledgeBaseProvider };
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=knowledgeBase-DyHilYaP.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { x as getEnvString } from "./logger-C40ZGil9.js";
|
|
2
|
+
import { t as OpenAiChatCompletionProvider } from "./chat-CcDgZFJ4.js";
|
|
3
|
+
import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-B8Ctyxpr.js";
|
|
4
|
+
//#region src/providers/litellm.ts
|
|
5
|
+
/**
|
|
6
|
+
* Base class for LiteLLM providers that maintains LiteLLM identity
|
|
7
|
+
*/
|
|
8
|
+
var LiteLLMProviderWrapper = class {
|
|
9
|
+
provider;
|
|
10
|
+
providerType;
|
|
11
|
+
constructor(provider, providerType) {
|
|
12
|
+
this.provider = provider;
|
|
13
|
+
this.providerType = providerType;
|
|
14
|
+
}
|
|
15
|
+
get modelName() {
|
|
16
|
+
return this.provider.modelName;
|
|
17
|
+
}
|
|
18
|
+
get config() {
|
|
19
|
+
return this.provider.config;
|
|
20
|
+
}
|
|
21
|
+
id() {
|
|
22
|
+
return `litellm${this.providerType === "chat" ? "" : `:${this.providerType}`}:${this.modelName}`;
|
|
23
|
+
}
|
|
24
|
+
toString() {
|
|
25
|
+
return `[LiteLLM Provider${this.providerType === "chat" ? "" : ` ${this.providerType}`} ${this.modelName}]`;
|
|
26
|
+
}
|
|
27
|
+
toJSON() {
|
|
28
|
+
return {
|
|
29
|
+
provider: "litellm",
|
|
30
|
+
model: this.modelName,
|
|
31
|
+
type: this.providerType,
|
|
32
|
+
config: {
|
|
33
|
+
...this.config,
|
|
34
|
+
...this.getApiKey && this.getApiKey() && { apiKey: void 0 }
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async callApi(prompt, context, options) {
|
|
39
|
+
return this.provider.callApi(prompt, context, options);
|
|
40
|
+
}
|
|
41
|
+
getApiKey;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* LiteLLM Chat Provider
|
|
45
|
+
*/
|
|
46
|
+
var LiteLLMChatProvider = class extends LiteLLMProviderWrapper {
|
|
47
|
+
constructor(modelName, options) {
|
|
48
|
+
const provider = new OpenAiChatCompletionProvider(modelName, options);
|
|
49
|
+
super(provider, "chat");
|
|
50
|
+
if (provider.getApiKey) this.getApiKey = provider.getApiKey.bind(provider);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* LiteLLM Completion Provider
|
|
55
|
+
*/
|
|
56
|
+
var LiteLLMCompletionProvider = class extends LiteLLMProviderWrapper {
|
|
57
|
+
constructor(modelName, options) {
|
|
58
|
+
const provider = new OpenAiCompletionProvider(modelName, options);
|
|
59
|
+
super(provider, "completion");
|
|
60
|
+
if (provider.getApiKey) this.getApiKey = provider.getApiKey.bind(provider);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* LiteLLM Embedding Provider
|
|
65
|
+
*/
|
|
66
|
+
var LiteLLMEmbeddingProvider = class extends LiteLLMProviderWrapper {
|
|
67
|
+
embeddingProvider;
|
|
68
|
+
constructor(modelName, options) {
|
|
69
|
+
const provider = new OpenAiEmbeddingProvider(modelName, options);
|
|
70
|
+
super(provider, "embedding");
|
|
71
|
+
this.embeddingProvider = provider;
|
|
72
|
+
if (provider.getApiKey) this.getApiKey = provider.getApiKey.bind(provider);
|
|
73
|
+
}
|
|
74
|
+
async callEmbeddingApi(text) {
|
|
75
|
+
return this.embeddingProvider.callEmbeddingApi(text);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var LiteLLMProvider = class extends LiteLLMChatProvider {};
|
|
79
|
+
/**
|
|
80
|
+
* Creates a LiteLLM provider using OpenAI-compatible endpoints
|
|
81
|
+
*
|
|
82
|
+
* LiteLLM supports chat, completion, and embedding models through its proxy server.
|
|
83
|
+
* All parameters are automatically passed through to the LiteLLM API.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* // Chat model (default)
|
|
87
|
+
* createLiteLLMProvider('litellm:gpt-4')
|
|
88
|
+
* createLiteLLMProvider('litellm:chat:gpt-4')
|
|
89
|
+
*
|
|
90
|
+
* // Completion model
|
|
91
|
+
* createLiteLLMProvider('litellm:completion:gpt-3.5-turbo-instruct')
|
|
92
|
+
*
|
|
93
|
+
* // Embedding model
|
|
94
|
+
* createLiteLLMProvider('litellm:embedding:text-embedding-3-large')
|
|
95
|
+
*/
|
|
96
|
+
function createLiteLLMProvider(providerPath, options = {}) {
|
|
97
|
+
const splits = providerPath.split(":");
|
|
98
|
+
const providerType = splits[1];
|
|
99
|
+
const modelName = [
|
|
100
|
+
"chat",
|
|
101
|
+
"completion",
|
|
102
|
+
"embedding",
|
|
103
|
+
"embeddings"
|
|
104
|
+
].includes(providerType) ? splits.slice(2).join(":") : splits.slice(1).join(":");
|
|
105
|
+
const config = options.config?.config || {};
|
|
106
|
+
const mergedConfig = {
|
|
107
|
+
apiKeyEnvar: "LITELLM_API_KEY",
|
|
108
|
+
apiKeyRequired: false,
|
|
109
|
+
apiBaseUrl: config.apiBaseUrl || options.config?.env?.LITELLM_API_BASE || options.env?.LITELLM_API_BASE || getEnvString("LITELLM_API_BASE") || "http://0.0.0.0:4000",
|
|
110
|
+
omitDefaults: true
|
|
111
|
+
};
|
|
112
|
+
Object.keys(config).forEach((key) => {
|
|
113
|
+
if (config[key] !== void 0 && config[key] !== null) mergedConfig[key] = config[key];
|
|
114
|
+
});
|
|
115
|
+
const litellmConfig = {
|
|
116
|
+
id: options.config?.id,
|
|
117
|
+
label: options.config?.label,
|
|
118
|
+
prompts: options.config?.prompts,
|
|
119
|
+
transform: options.config?.transform,
|
|
120
|
+
delay: options.config?.delay,
|
|
121
|
+
env: options.config?.env,
|
|
122
|
+
config: mergedConfig
|
|
123
|
+
};
|
|
124
|
+
switch (providerType) {
|
|
125
|
+
case "completion": return new LiteLLMCompletionProvider(modelName, litellmConfig);
|
|
126
|
+
case "embedding":
|
|
127
|
+
case "embeddings": return new LiteLLMEmbeddingProvider(modelName, litellmConfig);
|
|
128
|
+
case "chat": return new LiteLLMProvider(modelName, litellmConfig);
|
|
129
|
+
default: return new LiteLLMProvider(modelName, litellmConfig);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { createLiteLLMProvider };
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=litellm-CyMeneHS.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
const require_logger = require("./logger-DyfK9PBt.cjs");
|
|
2
|
+
const require_chat = require("./chat-CXX3xzkk.cjs");
|
|
3
|
+
const require_completion = require("./completion-Cxrt08sj.cjs");
|
|
4
|
+
//#region src/providers/litellm.ts
|
|
5
|
+
/**
|
|
6
|
+
* Base class for LiteLLM providers that maintains LiteLLM identity
|
|
7
|
+
*/
|
|
8
|
+
var LiteLLMProviderWrapper = class {
|
|
9
|
+
provider;
|
|
10
|
+
providerType;
|
|
11
|
+
constructor(provider, providerType) {
|
|
12
|
+
this.provider = provider;
|
|
13
|
+
this.providerType = providerType;
|
|
14
|
+
}
|
|
15
|
+
get modelName() {
|
|
16
|
+
return this.provider.modelName;
|
|
17
|
+
}
|
|
18
|
+
get config() {
|
|
19
|
+
return this.provider.config;
|
|
20
|
+
}
|
|
21
|
+
id() {
|
|
22
|
+
return `litellm${this.providerType === "chat" ? "" : `:${this.providerType}`}:${this.modelName}`;
|
|
23
|
+
}
|
|
24
|
+
toString() {
|
|
25
|
+
return `[LiteLLM Provider${this.providerType === "chat" ? "" : ` ${this.providerType}`} ${this.modelName}]`;
|
|
26
|
+
}
|
|
27
|
+
toJSON() {
|
|
28
|
+
return {
|
|
29
|
+
provider: "litellm",
|
|
30
|
+
model: this.modelName,
|
|
31
|
+
type: this.providerType,
|
|
32
|
+
config: {
|
|
33
|
+
...this.config,
|
|
34
|
+
...this.getApiKey && this.getApiKey() && { apiKey: void 0 }
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async callApi(prompt, context, options) {
|
|
39
|
+
return this.provider.callApi(prompt, context, options);
|
|
40
|
+
}
|
|
41
|
+
getApiKey;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* LiteLLM Chat Provider
|
|
45
|
+
*/
|
|
46
|
+
var LiteLLMChatProvider = class extends LiteLLMProviderWrapper {
|
|
47
|
+
constructor(modelName, options) {
|
|
48
|
+
const provider = new require_chat.OpenAiChatCompletionProvider(modelName, options);
|
|
49
|
+
super(provider, "chat");
|
|
50
|
+
if (provider.getApiKey) this.getApiKey = provider.getApiKey.bind(provider);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* LiteLLM Completion Provider
|
|
55
|
+
*/
|
|
56
|
+
var LiteLLMCompletionProvider = class extends LiteLLMProviderWrapper {
|
|
57
|
+
constructor(modelName, options) {
|
|
58
|
+
const provider = new require_completion.OpenAiCompletionProvider(modelName, options);
|
|
59
|
+
super(provider, "completion");
|
|
60
|
+
if (provider.getApiKey) this.getApiKey = provider.getApiKey.bind(provider);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* LiteLLM Embedding Provider
|
|
65
|
+
*/
|
|
66
|
+
var LiteLLMEmbeddingProvider = class extends LiteLLMProviderWrapper {
|
|
67
|
+
embeddingProvider;
|
|
68
|
+
constructor(modelName, options) {
|
|
69
|
+
const provider = new require_completion.OpenAiEmbeddingProvider(modelName, options);
|
|
70
|
+
super(provider, "embedding");
|
|
71
|
+
this.embeddingProvider = provider;
|
|
72
|
+
if (provider.getApiKey) this.getApiKey = provider.getApiKey.bind(provider);
|
|
73
|
+
}
|
|
74
|
+
async callEmbeddingApi(text) {
|
|
75
|
+
return this.embeddingProvider.callEmbeddingApi(text);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var LiteLLMProvider = class extends LiteLLMChatProvider {};
|
|
79
|
+
/**
|
|
80
|
+
* Creates a LiteLLM provider using OpenAI-compatible endpoints
|
|
81
|
+
*
|
|
82
|
+
* LiteLLM supports chat, completion, and embedding models through its proxy server.
|
|
83
|
+
* All parameters are automatically passed through to the LiteLLM API.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* // Chat model (default)
|
|
87
|
+
* createLiteLLMProvider('litellm:gpt-4')
|
|
88
|
+
* createLiteLLMProvider('litellm:chat:gpt-4')
|
|
89
|
+
*
|
|
90
|
+
* // Completion model
|
|
91
|
+
* createLiteLLMProvider('litellm:completion:gpt-3.5-turbo-instruct')
|
|
92
|
+
*
|
|
93
|
+
* // Embedding model
|
|
94
|
+
* createLiteLLMProvider('litellm:embedding:text-embedding-3-large')
|
|
95
|
+
*/
|
|
96
|
+
function createLiteLLMProvider(providerPath, options = {}) {
|
|
97
|
+
const splits = providerPath.split(":");
|
|
98
|
+
const providerType = splits[1];
|
|
99
|
+
const modelName = [
|
|
100
|
+
"chat",
|
|
101
|
+
"completion",
|
|
102
|
+
"embedding",
|
|
103
|
+
"embeddings"
|
|
104
|
+
].includes(providerType) ? splits.slice(2).join(":") : splits.slice(1).join(":");
|
|
105
|
+
const config = options.config?.config || {};
|
|
106
|
+
const mergedConfig = {
|
|
107
|
+
apiKeyEnvar: "LITELLM_API_KEY",
|
|
108
|
+
apiKeyRequired: false,
|
|
109
|
+
apiBaseUrl: config.apiBaseUrl || options.config?.env?.LITELLM_API_BASE || options.env?.LITELLM_API_BASE || require_logger.getEnvString("LITELLM_API_BASE") || "http://0.0.0.0:4000",
|
|
110
|
+
omitDefaults: true
|
|
111
|
+
};
|
|
112
|
+
Object.keys(config).forEach((key) => {
|
|
113
|
+
if (config[key] !== void 0 && config[key] !== null) mergedConfig[key] = config[key];
|
|
114
|
+
});
|
|
115
|
+
const litellmConfig = {
|
|
116
|
+
id: options.config?.id,
|
|
117
|
+
label: options.config?.label,
|
|
118
|
+
prompts: options.config?.prompts,
|
|
119
|
+
transform: options.config?.transform,
|
|
120
|
+
delay: options.config?.delay,
|
|
121
|
+
env: options.config?.env,
|
|
122
|
+
config: mergedConfig
|
|
123
|
+
};
|
|
124
|
+
switch (providerType) {
|
|
125
|
+
case "completion": return new LiteLLMCompletionProvider(modelName, litellmConfig);
|
|
126
|
+
case "embedding":
|
|
127
|
+
case "embeddings": return new LiteLLMEmbeddingProvider(modelName, litellmConfig);
|
|
128
|
+
case "chat": return new LiteLLMProvider(modelName, litellmConfig);
|
|
129
|
+
default: return new LiteLLMProvider(modelName, litellmConfig);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
exports.createLiteLLMProvider = createLiteLLMProvider;
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=litellm-DWDF73yF.cjs.map
|