@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.
Files changed (199) hide show
  1. package/LICENSE +19 -0
  2. package/dist/src/accounts-Bt1oJb1Z.cjs +219 -0
  3. package/dist/src/accounts-DjOU8Rm3.js +178 -0
  4. package/dist/src/agentic-utils-D03IiXQc.js +153 -0
  5. package/dist/src/agentic-utils-Dh7xaMQM.cjs +180 -0
  6. package/dist/src/agents-C6BIMlZa.js +231 -0
  7. package/dist/src/agents-DvIpNX1L.cjs +666 -0
  8. package/dist/src/agents-ZP0RP9vV.cjs +231 -0
  9. package/dist/src/agents-maJXdjbR.js +665 -0
  10. package/dist/src/aimlapi-BTbQjG2E.cjs +30 -0
  11. package/dist/src/aimlapi-CwMxqfXP.js +30 -0
  12. package/dist/src/audio-BBUdvsde.cjs +97 -0
  13. package/dist/src/audio-D5DPZ7I-.js +97 -0
  14. package/dist/src/base-BEysXrkq.cjs +222 -0
  15. package/dist/src/base-C451JQfq.js +193 -0
  16. package/dist/src/blobs-BY8MDmpo.js +230 -0
  17. package/dist/src/blobs-BgcNn97m.cjs +256 -0
  18. package/dist/src/cache-BBE_lsTA.cjs +4 -0
  19. package/dist/src/cache-BkrqU5Ba.js +237 -0
  20. package/dist/src/cache-DsCxFlsZ.cjs +297 -0
  21. package/dist/src/chat-CPJWDP6a.cjs +289 -0
  22. package/dist/src/chat-CXX3xzkk.cjs +811 -0
  23. package/dist/src/chat-CcDgZFJ4.js +787 -0
  24. package/dist/src/chat-Dz5ZeGO2.js +289 -0
  25. package/dist/src/chatkit-Dw0mKkML.cjs +1158 -0
  26. package/dist/src/chatkit-swAIVuea.js +1157 -0
  27. package/dist/src/chunk-DEq-mXcV.js +15 -0
  28. package/dist/src/claude-agent-sdk-BXZJtOg6.js +379 -0
  29. package/dist/src/claude-agent-sdk-CkfyjDoG.cjs +383 -0
  30. package/dist/src/cloudflare-ai-BzpJcqUH.js +161 -0
  31. package/dist/src/cloudflare-ai-Cmy_R1y2.cjs +161 -0
  32. package/dist/src/cloudflare-gateway-B9tVQKok.cjs +272 -0
  33. package/dist/src/cloudflare-gateway-DrD3ew3H.js +272 -0
  34. package/dist/src/codex-sdk-Dezj9Nwm.js +1056 -0
  35. package/dist/src/codex-sdk-Dl9D4k5B.cjs +1060 -0
  36. package/dist/src/cometapi-C-9YvCHC.js +54 -0
  37. package/dist/src/cometapi-DHgDKoO2.cjs +54 -0
  38. package/dist/src/completion-B8Ctyxpr.js +120 -0
  39. package/dist/src/completion-Cxrt08sj.cjs +131 -0
  40. package/dist/src/createHash-BwgE13yv.cjs +27 -0
  41. package/dist/src/createHash-DmPQkvBh.js +15 -0
  42. package/dist/src/docker-BiqcTwLv.js +80 -0
  43. package/dist/src/docker-C7tEJnP-.cjs +80 -0
  44. package/dist/src/esm-C62Zofr1.cjs +409 -0
  45. package/dist/src/esm-DMVc93eh.js +379 -0
  46. package/dist/src/evalResult-C3NJPQOo.cjs +301 -0
  47. package/dist/src/evalResult-C7JJAPBb.js +295 -0
  48. package/dist/src/evalResult-DoVTZZWI.cjs +2 -0
  49. package/dist/src/extractor-DnMD3fwt.cjs +391 -0
  50. package/dist/src/extractor-DtlL28vL.js +374 -0
  51. package/dist/src/fetch-BTxakTSg.cjs +1133 -0
  52. package/dist/src/fetch-DQckpUFz.js +928 -0
  53. package/dist/src/fileExtensions-DnqA1y9x.js +85 -0
  54. package/dist/src/fileExtensions-bYh77CN8.cjs +114 -0
  55. package/dist/src/genaiTracer-CyZrmaK0.cjs +268 -0
  56. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  57. package/dist/src/graders-BNscxFrU.js +13644 -0
  58. package/dist/src/graders-D2oE9Msq.js +2 -0
  59. package/dist/src/graders-c0Ez_w-9.cjs +2 -0
  60. package/dist/src/graders-d0F2M3e9.cjs +14056 -0
  61. package/dist/src/image-0ZhE0VlR.cjs +280 -0
  62. package/dist/src/image-CWE1pdNv.js +257 -0
  63. package/dist/src/image-D9ZK6hwL.js +163 -0
  64. package/dist/src/image-DKZgZITg.cjs +163 -0
  65. package/dist/src/index.cjs +11366 -0
  66. package/dist/src/index.d.cts +19640 -0
  67. package/dist/src/index.d.ts +19641 -0
  68. package/dist/src/index.js +11306 -0
  69. package/dist/src/invariant-Ddh24eXh.js +25 -0
  70. package/dist/src/invariant-kfQ8Bu82.cjs +30 -0
  71. package/dist/src/knowledgeBase-BgPyGFUd.cjs +122 -0
  72. package/dist/src/knowledgeBase-DyHilYaP.js +122 -0
  73. package/dist/src/litellm-CyMeneHS.js +135 -0
  74. package/dist/src/litellm-DWDF73yF.cjs +135 -0
  75. package/dist/src/logger-C40ZGil9.js +717 -0
  76. package/dist/src/logger-DyfK9PBt.cjs +917 -0
  77. package/dist/src/luma-ray-BAU9X_ep.cjs +315 -0
  78. package/dist/src/luma-ray-nwVseBbv.js +313 -0
  79. package/dist/src/messages-B5ADWTTv.js +245 -0
  80. package/dist/src/messages-BCnZfqrS.cjs +257 -0
  81. package/dist/src/meteor-DLZZ3osF.cjs +134 -0
  82. package/dist/src/meteor-DUiCJRC-.js +134 -0
  83. package/dist/src/modelslab-00cveB8L.cjs +163 -0
  84. package/dist/src/modelslab-D9sCU_L7.js +163 -0
  85. package/dist/src/nova-reel-CTapvqYH.js +276 -0
  86. package/dist/src/nova-reel-DlWuuroF.cjs +278 -0
  87. package/dist/src/nova-sonic-5UPWfeMv.cjs +363 -0
  88. package/dist/src/nova-sonic-BhSwQNym.js +363 -0
  89. package/dist/src/openai-BWrJK9d8.cjs +52 -0
  90. package/dist/src/openai-DumO8WQn.js +47 -0
  91. package/dist/src/openclaw-B8brrjC_.cjs +577 -0
  92. package/dist/src/openclaw-Bkayww9q.js +571 -0
  93. package/dist/src/opencode-sdk-7xjoDNiM.cjs +562 -0
  94. package/dist/src/opencode-sdk-SGwAPxht.js +558 -0
  95. package/dist/src/otlpReceiver-CoAHfAN9.cjs +15 -0
  96. package/dist/src/otlpReceiver-oO3EQwI9.js +14 -0
  97. package/dist/src/providerRegistry-4yjhaEM8.js +45 -0
  98. package/dist/src/providerRegistry-DhV4rJIc.cjs +50 -0
  99. package/dist/src/providers-B5RJVG-7.cjs +33609 -0
  100. package/dist/src/providers-BdmZCLzV.js +33262 -0
  101. package/dist/src/providers-CxtRxn8e.js +2 -0
  102. package/dist/src/providers-DnQLNbx1.cjs +3 -0
  103. package/dist/src/pythonUtils-BD0druiM.cjs +275 -0
  104. package/dist/src/pythonUtils-IBhn5YGR.js +249 -0
  105. package/dist/src/quiverai-BDOwZBsM.cjs +213 -0
  106. package/dist/src/quiverai-D3JTF5lD.js +213 -0
  107. package/dist/src/responses-B2LCDCXZ.js +667 -0
  108. package/dist/src/responses-BvNm4Xv9.cjs +685 -0
  109. package/dist/src/rubyUtils-B0NwnfpY.cjs +245 -0
  110. package/dist/src/rubyUtils-BroxzZ7c.cjs +2 -0
  111. package/dist/src/rubyUtils-hqVw5UvJ.js +222 -0
  112. package/dist/src/sagemaker-Cno2V-Sx.js +689 -0
  113. package/dist/src/sagemaker-fV_KUgs5.cjs +691 -0
  114. package/dist/src/server-BOuAXb06.cjs +238 -0
  115. package/dist/src/server-CtI-EWzm.cjs +2 -0
  116. package/dist/src/server-Cy3DZymt.js +189 -0
  117. package/dist/src/slack-CP8xBePa.js +135 -0
  118. package/dist/src/slack-DSQ1yXVb.cjs +135 -0
  119. package/dist/src/store-BwDDaBjb.cjs +246 -0
  120. package/dist/src/store-DcbLC593.cjs +2 -0
  121. package/dist/src/store-IGpqMIkv.js +240 -0
  122. package/dist/src/tables-3Q2cL7So.cjs +373 -0
  123. package/dist/src/tables-Bi2fjr4W.js +288 -0
  124. package/dist/src/telemetry-Bg2WqF79.js +161 -0
  125. package/dist/src/telemetry-D0x6u5kX.cjs +166 -0
  126. package/dist/src/telemetry-DXNimrI0.cjs +2 -0
  127. package/dist/src/text-B_UCRPp2.js +22 -0
  128. package/dist/src/text-CW1cyrwj.cjs +33 -0
  129. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  130. package/dist/src/tokenUsageUtils-bVa1ga6f.cjs +173 -0
  131. package/dist/src/transcription-Cl_W16Pr.js +122 -0
  132. package/dist/src/transcription-yt1EecY8.cjs +124 -0
  133. package/dist/src/transform-BCtGrl_W.cjs +228 -0
  134. package/dist/src/transform-Bv6gG2MJ.cjs +1688 -0
  135. package/dist/src/transform-CY1wbpRy.js +1507 -0
  136. package/dist/src/transform-DU8rUL9P.cjs +2 -0
  137. package/dist/src/transform-yWaShiKr.js +216 -0
  138. package/dist/src/transformersAvailability-BGkzavwb.js +35 -0
  139. package/dist/src/transformersAvailability-DKoRtQLy.cjs +35 -0
  140. package/dist/src/types-5aqHpBwE.cjs +3769 -0
  141. package/dist/src/types-Bn6D9c4U.js +3300 -0
  142. package/dist/src/util-BkKlTkI2.js +293 -0
  143. package/dist/src/util-CTh0bfOm.cjs +1119 -0
  144. package/dist/src/util-D17oBwo7.cjs +328 -0
  145. package/dist/src/util-DsS_-v4p.js +613 -0
  146. package/dist/src/util-DuntT1Ga.js +951 -0
  147. package/dist/src/util-aWjdCYMI.cjs +667 -0
  148. package/dist/src/utils-CisQwpjA.js +94 -0
  149. package/dist/src/utils-yWamDvmz.cjs +123 -0
  150. package/dist/tsconfig.tsbuildinfo +1 -0
  151. package/drizzle/0000_lush_hellion.sql +36 -0
  152. package/drizzle/0001_wide_calypso.sql +3 -0
  153. package/drizzle/0002_tidy_juggernaut.sql +1 -0
  154. package/drizzle/0003_lively_naoko.sql +8 -0
  155. package/drizzle/0004_minor_peter_quill.sql +19 -0
  156. package/drizzle/0005_silky_millenium_guard.sql +2 -0
  157. package/drizzle/0006_harsh_caretaker.sql +42 -0
  158. package/drizzle/0007_cloudy_wong.sql +1 -0
  159. package/drizzle/0008_broad_boomer.sql +2 -0
  160. package/drizzle/0009_strong_marten_broadcloak.sql +19 -0
  161. package/drizzle/0010_needy_bishop.sql +11 -0
  162. package/drizzle/0011_moaning_millenium_guard.sql +1 -0
  163. package/drizzle/0012_late_marten_broadcloak.sql +2 -0
  164. package/drizzle/0013_previous_dormammu.sql +9 -0
  165. package/drizzle/0014_lazy_captain_universe.sql +2 -0
  166. package/drizzle/0015_zippy_wallop.sql +29 -0
  167. package/drizzle/0016_jazzy_zemo.sql +2 -0
  168. package/drizzle/0017_reflective_praxagora.sql +4 -0
  169. package/drizzle/0018_fat_vanisher.sql +22 -0
  170. package/drizzle/0019_new_clint_barton.sql +8 -0
  171. package/drizzle/0020_skinny_maverick.sql +1 -0
  172. package/drizzle/0021_mysterious_madelyne_pryor.sql +13 -0
  173. package/drizzle/0022_sleepy_ultimo.sql +25 -0
  174. package/drizzle/0023_wooden_mandrill.sql +2 -0
  175. package/drizzle/AGENTS.md +68 -0
  176. package/drizzle/CLAUDE.md +1 -0
  177. package/drizzle/meta/0000_snapshot.json +221 -0
  178. package/drizzle/meta/0001_snapshot.json +214 -0
  179. package/drizzle/meta/0002_snapshot.json +221 -0
  180. package/drizzle/meta/0005_snapshot.json +369 -0
  181. package/drizzle/meta/0006_snapshot.json +638 -0
  182. package/drizzle/meta/0007_snapshot.json +640 -0
  183. package/drizzle/meta/0008_snapshot.json +649 -0
  184. package/drizzle/meta/0009_snapshot.json +554 -0
  185. package/drizzle/meta/0010_snapshot.json +619 -0
  186. package/drizzle/meta/0011_snapshot.json +627 -0
  187. package/drizzle/meta/0012_snapshot.json +639 -0
  188. package/drizzle/meta/0013_snapshot.json +717 -0
  189. package/drizzle/meta/0014_snapshot.json +717 -0
  190. package/drizzle/meta/0015_snapshot.json +897 -0
  191. package/drizzle/meta/0016_snapshot.json +1031 -0
  192. package/drizzle/meta/0018_snapshot.json +1210 -0
  193. package/drizzle/meta/0019_snapshot.json +1165 -0
  194. package/drizzle/meta/0020_snapshot.json +1232 -0
  195. package/drizzle/meta/0021_snapshot.json +1311 -0
  196. package/drizzle/meta/0022_snapshot.json +1481 -0
  197. package/drizzle/meta/0023_snapshot.json +1496 -0
  198. package/drizzle/meta/_journal.json +174 -0
  199. 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