llm-proxy 1.3.13 → 1.4.14

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.js CHANGED
@@ -46,51 +46,51 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.generateLLMStreamResponse = exports.generateLLMResponse = void 0;
49
- const ProviderFinder_1 = require("./middleware/ProviderFinder");
50
- const InputFormatAdapter_1 = require("./middleware/InputFormatAdapter");
51
- const OutputFormatAdapter_1 = require("./middleware/OutputFormatAdapter");
52
49
  const types_1 = require("./types");
53
50
  const OpenAIService_1 = __importDefault(require("./services/OpenAIService"));
54
51
  const AwsBedrockAnthropicService_1 = __importDefault(require("./services/AwsBedrockAnthropicService"));
52
+ const ProviderFinder_1 = __importDefault(require("./middleware/ProviderFinder"));
53
+ const InputFormatAdapter_1 = __importDefault(require("./middleware/InputFormatAdapter"));
54
+ const OutputFormatAdapter_1 = __importDefault(require("./middleware/OutputFormatAdapter"));
55
55
  // Main function for non-streaming requests
56
56
  function generateLLMResponse(params) {
57
57
  return __awaiter(this, void 0, void 0, function* () {
58
58
  const { messages, model, functions, max_tokens, temperature, credentials } = params;
59
59
  // Step 1: Identify the provider based on the model
60
- const provider = ProviderFinder_1.ProviderFinder.getProvider(model);
60
+ const provider = ProviderFinder_1.default.getProvider(model);
61
61
  // Initialize the correct service based on the provider
62
62
  let service;
63
63
  if (provider === types_1.Providers.OPENAI) {
64
64
  if (!credentials.apiKey) {
65
- return Promise.reject("OpenAI API key is required for OpenAI models.");
65
+ return Promise.reject(new Error("OpenAI API key is required for OpenAI models."));
66
66
  }
67
67
  service = new OpenAIService_1.default(credentials.apiKey);
68
68
  }
69
69
  else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
70
- const awsConfig = credentials.awsConfig;
70
+ const { awsConfig } = credentials;
71
71
  if (!awsConfig) {
72
- return Promise.reject("AWS credentials are required for Bedrock models.");
72
+ return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
73
73
  }
74
74
  service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
75
75
  }
76
76
  else {
77
- return Promise.reject("Unsupported provider");
77
+ return Promise.reject(new Error("Unsupported provider"));
78
78
  }
79
79
  // Step 2: Adapt messages and extract the system prompt
80
- const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.InputFormatAdapter.adaptMessages(messages, provider);
80
+ const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.default.adaptMessages(messages, provider);
81
81
  // Step 3: Generate the completion
82
82
  const response = yield service.generateCompletion({
83
83
  messages: adaptedMessages,
84
84
  model,
85
- max_tokens: max_tokens,
85
+ max_tokens,
86
86
  temperature: temperature || 0,
87
- functions,
87
+ tools: functions,
88
88
  systemPrompt,
89
89
  });
90
90
  // Step 4: Adapt the response if needed
91
91
  return provider === types_1.Providers.OPENAI
92
92
  ? response
93
- : OutputFormatAdapter_1.OutputFormatAdapter.adaptResponse(response, provider);
93
+ : OutputFormatAdapter_1.default.adaptResponse(response, provider);
94
94
  });
95
95
  }
96
96
  exports.generateLLMResponse = generateLLMResponse;
@@ -99,34 +99,34 @@ function generateLLMStreamResponse(params) {
99
99
  return __awaiter(this, void 0, void 0, function* () {
100
100
  const { messages, model, functions, max_tokens, temperature, credentials } = params;
101
101
  // Step 1: Identify the provider based on the model
102
- const provider = ProviderFinder_1.ProviderFinder.getProvider(model);
102
+ const provider = ProviderFinder_1.default.getProvider(model);
103
103
  // Initialize the correct service based on the provider
104
104
  let service;
105
105
  if (provider === types_1.Providers.OPENAI) {
106
106
  if (!credentials.apiKey) {
107
- return Promise.reject("OpenAI API key is required for OpenAI models.");
107
+ return Promise.reject(new Error("OpenAI API key is required for OpenAI models."));
108
108
  }
109
109
  service = new OpenAIService_1.default(credentials.apiKey);
110
110
  }
111
111
  else if (provider === types_1.Providers.ANTHROPIC_BEDROCK) {
112
- const awsConfig = credentials.awsConfig;
112
+ const { awsConfig } = credentials;
113
113
  if (!awsConfig) {
114
- return Promise.reject("AWS credentials are required for Bedrock models.");
114
+ return Promise.reject(new Error("AWS credentials are required for Bedrock models."));
115
115
  }
116
116
  service = new AwsBedrockAnthropicService_1.default(awsConfig.accessKeyId, awsConfig.secretAccessKey, awsConfig.region);
117
117
  }
118
118
  else {
119
- return Promise.reject("Unsupported provider");
119
+ return Promise.reject(new Error("Unsupported provider"));
120
120
  }
121
121
  // Step 2: Adapt messages and extract the system prompt
122
- const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.InputFormatAdapter.adaptMessages(messages, provider);
122
+ const { adaptedMessages, systemPrompt } = InputFormatAdapter_1.default.adaptMessages(messages, provider);
123
123
  // Step 3: Generate the streaming completion
124
124
  const stream = service.generateStreamCompletion({
125
125
  messages: adaptedMessages,
126
126
  model,
127
127
  max_tokens,
128
128
  temperature: temperature || 0,
129
- functions,
129
+ tools: functions,
130
130
  systemPrompt,
131
131
  });
132
132
  // Step 4: Create and return the async generator
@@ -141,7 +141,7 @@ function generateLLMStreamResponse(params) {
141
141
  const chunk = _c;
142
142
  yield yield __await(provider === types_1.Providers.OPENAI
143
143
  ? chunk
144
- : OutputFormatAdapter_1.OutputFormatAdapter.adaptResponse(chunk, provider));
144
+ : OutputFormatAdapter_1.default.adaptResponse(chunk, provider));
145
145
  }
146
146
  finally {
147
147
  _d = true;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { BedrockAnthropicMessage, Messages, OpenAIMessages, Providers } from "../types";
2
- export declare class InputFormatAdapter {
3
- static adaptMessages(messages: Messages, provider: Providers): {
1
+ import { BedrockAnthropicMessage, OpenAIMessages, Providers } from "../types";
2
+ export default class InputFormatAdapter {
3
+ static adaptMessages(messages: any, provider: Providers): {
4
4
  adaptedMessages: OpenAIMessages | BedrockAnthropicMessage[];
5
5
  systemPrompt?: string;
6
6
  };
@@ -1,21 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InputFormatAdapter = void 0;
4
3
  const types_1 = require("../types");
5
4
  class InputFormatAdapter {
6
5
  static adaptMessages(messages, provider) {
7
- //
8
- /**!SECTION
9
- * There some strange stuff happened, in a function call assistant message the
10
- * will be by default null, it must be null, but the openai api was returning error
11
- * and it cannot be null of fine, but using same api version, from different app (CMND)
12
- * it works well !!!!!!!! it works with null content on the same version,
13
- * im not convinced with this work to make it empty string instead of null so here is a todo to go back to it
14
- */
15
6
  var _a;
16
7
  switch (provider) {
17
8
  case types_1.Providers.OPENAI:
18
9
  return {
10
+ // @ts-ignore
19
11
  adaptedMessages: messages.map((msg) => {
20
12
  var _a, _b;
21
13
  if (msg.role === "function") {
@@ -27,7 +19,7 @@ class InputFormatAdapter {
27
19
  }
28
20
  return {
29
21
  role: msg.role,
30
- content: (_b = msg.content) !== null && _b !== void 0 ? _b : "",
22
+ content: (_b = msg.content) !== null && _b !== void 0 ? _b : "function call",
31
23
  };
32
24
  }),
33
25
  };
@@ -41,18 +33,61 @@ class InputFormatAdapter {
41
33
  throw new Error("The first message must have a role of 'system' for Anthropic.");
42
34
  }
43
35
  const systemPrompt = (_a = firstMessage.content) !== null && _a !== void 0 ? _a : "";
44
- const adaptedMessages = restMessages.map((msg) => {
45
- var _a;
46
- return ({
47
- role: msg.role === "user" ? "user" : "assistant",
48
- content: [
49
- {
50
- type: types_1.BedrockAnthropicContentType.TEXT,
51
- text: (_a = msg.content) !== null && _a !== void 0 ? _a : "",
52
- },
53
- ],
54
- });
36
+ const adaptedMessages = [];
37
+ // @ts-ignore
38
+ restMessages.forEach((msg) => {
39
+ var _a, _b;
40
+ if (msg.role !== "user" && msg.role !== "assistant") {
41
+ // Add the "empty" message before the current one
42
+ adaptedMessages.push({
43
+ role: "user",
44
+ content: [
45
+ {
46
+ type: types_1.BedrockAnthropicContentType.TEXT,
47
+ text: ":",
48
+ },
49
+ ],
50
+ });
51
+ // Change the role to "assistant" for the current message
52
+ adaptedMessages.push({
53
+ role: "assistant",
54
+ content: [
55
+ {
56
+ type: types_1.BedrockAnthropicContentType.TEXT,
57
+ text: (_a = msg.content) !== null && _a !== void 0 ? _a : "",
58
+ },
59
+ ],
60
+ });
61
+ }
62
+ else {
63
+ // Add the message as-is
64
+ adaptedMessages.push({
65
+ role: msg.role,
66
+ content: [
67
+ {
68
+ type: types_1.BedrockAnthropicContentType.TEXT,
69
+ text: (_b = msg.content) !== null && _b !== void 0 ? _b : msg.function_call.arguments,
70
+ },
71
+ ],
72
+ });
73
+ }
55
74
  });
75
+ // Ensure no two consecutive messages have the same role
76
+ for (let i = 0; i < adaptedMessages.length - 1; i += 1) {
77
+ if (adaptedMessages[i].role === adaptedMessages[i + 1].role) {
78
+ // Insert a placeholder message with the opposite role
79
+ adaptedMessages.splice(i + 1, 0, {
80
+ role: adaptedMessages[i].role === "user" ? "assistant" : "user",
81
+ content: [
82
+ {
83
+ type: types_1.BedrockAnthropicContentType.TEXT,
84
+ text: ":",
85
+ },
86
+ ],
87
+ });
88
+ i += 1; // Skip the inserted message
89
+ }
90
+ }
56
91
  return { adaptedMessages, systemPrompt };
57
92
  }
58
93
  default:
@@ -60,5 +95,5 @@ class InputFormatAdapter {
60
95
  }
61
96
  }
62
97
  }
63
- exports.InputFormatAdapter = InputFormatAdapter;
98
+ exports.default = InputFormatAdapter;
64
99
  //# sourceMappingURL=InputFormatAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":";;;AAAA,oCAOkB;AAElB,MAAa,kBAAkB;IAC7B,MAAM,CAAC,aAAa,CAClB,QAAkB,EAClB,QAAmB;QAKnB,EAAE;QACF;;;;;;WAMG;;QAEH,QAAQ,QAAQ,EAAE;YAChB,KAAK,iBAAS,CAAC,MAAM;gBACnB,OAAO;oBACL,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;;wBACpC,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;4BAC3B,OAAO;gCACL,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,OAAO,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE;gCAC1B,IAAI,EAAG,GAA6B,CAAC,IAAI;6BAC1C,CAAC;yBACH;wBACD,OAAO;4BACL,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,OAAO,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE;yBAC3B,CAAC;oBACJ,CAAC,CAAmB;iBACrB,CAAC;YAEJ,KAAK,iBAAS,CAAC,iBAAiB,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;iBAClE;gBAED,iDAAiD;gBACjD,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAEjD,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAClC,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;iBACH;gBAED,MAAM,YAAY,GAAG,MAAA,YAAY,CAAC,OAAO,mCAAI,EAAE,CAAC;gBAEhD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;;oBAAC,OAAA,CAAC;wBACjD,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;wBAChD,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,mCAA2B,CAAC,IAAI;gCACtC,IAAI,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE;6BACxB;yBACF;qBACF,CAAC,CAAA;iBAAA,CAA8B,CAAC;gBAEjC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;aAC1C;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AApED,gDAoEC"}
1
+ {"version":3,"file":"InputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/InputFormatAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import { LLMResponse, Providers } from "../types";
2
- export declare class OutputFormatAdapter {
2
+ export default class OutputFormatAdapter {
3
+ private static isToolUseStream;
4
+ private static toolArguments;
5
+ private static model;
6
+ private static toolName;
3
7
  static adaptResponse(response: any, provider: Providers): LLMResponse;
4
- private static adaptCompleteResponse;
5
8
  private static adaptStreamingResponse;
6
- private static mapRole;
7
- private static extractContent;
9
+ private static createToolUseResponse;
10
+ private static createNonToolUseResponse;
11
+ private static resetState;
8
12
  }
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OutputFormatAdapter = void 0;
4
3
  const types_1 = require("../types");
5
4
  class OutputFormatAdapter {
6
5
  static adaptResponse(response, provider) {
@@ -12,13 +11,7 @@ class OutputFormatAdapter {
12
11
  case types_1.Providers.OPENAI:
13
12
  return response;
14
13
  case types_1.Providers.ANTHROPIC_BEDROCK:
15
- // Check if it's a streaming chunk or complete response
16
- if (response.type === "message" && !response.delta) {
17
- return this.adaptCompleteResponse(response);
18
- }
19
- else {
20
- return this.adaptStreamingResponse(response);
21
- }
14
+ return this.adaptStreamingResponse(response);
22
15
  default:
23
16
  throw new Error(`Unsupported provider: ${provider}`);
24
17
  }
@@ -27,120 +20,122 @@ class OutputFormatAdapter {
27
20
  throw new Error(`Failed to adapt response: ${error.message}`);
28
21
  }
29
22
  }
30
- static adaptCompleteResponse(response) {
23
+ static adaptStreamingResponse(chunk) {
24
+ var _a, _b, _c, _d, _e;
25
+ const metrics = chunk["amazon-bedrock-invocationMetrics"];
26
+ const isStop = chunk.type === "content_block_stop" || chunk.type === "message_stop";
27
+ // Cache model on the first `message_start` chunk
28
+ if (chunk.type === "message_start" && ((_a = chunk.message) === null || _a === void 0 ? void 0 : _a.model)) {
29
+ this.model = chunk.message.model;
30
+ }
31
+ // Detect tool use for the current chunk and cache the tool name
32
+ if (chunk.type === "content_block_start" &&
33
+ ((_b = chunk.content_block) === null || _b === void 0 ? void 0 : _b.type) === "tool_use") {
34
+ this.isToolUseStream = true;
35
+ this.toolName = ((_c = chunk.content_block) === null || _c === void 0 ? void 0 : _c.name) || "unknown_tool"; // Capture tool name
36
+ }
37
+ // Accumulate tool arguments for tool-use streams
38
+ if (chunk.type === "content_block_delta" &&
39
+ ((_d = chunk.delta) === null || _d === void 0 ? void 0 : _d.type) === "input_json_delta") {
40
+ this.toolArguments.push(((_e = chunk.delta) === null || _e === void 0 ? void 0 : _e.partial_json) || "nothing");
41
+ }
42
+ // Handle the end of the stream
43
+ if (isStop) {
44
+ const response = this.isToolUseStream
45
+ ? this.createToolUseResponse(metrics, isStop)
46
+ : this.createNonToolUseResponse(metrics, isStop, chunk);
47
+ // Reset state after processing the end of the stream
48
+ this.resetState();
49
+ return response;
50
+ }
51
+ // Handle intermediate chunks (non-stop chunks)
52
+ return this.isToolUseStream
53
+ ? this.createToolUseResponse(metrics, isStop, chunk)
54
+ : this.createNonToolUseResponse(metrics, isStop, chunk);
55
+ }
56
+ static createToolUseResponse(metrics, isStop, chunk) {
57
+ var _a, _b;
31
58
  return {
32
- id: response.id,
33
- object: "text_completion",
59
+ id: `stream-${Date.now()}`,
60
+ object: "chat.completion.chunk",
34
61
  created: Date.now(),
35
- model: response.model,
36
- choices: response.content.map((contentBlock, index) => ({
37
- index,
38
- message: {
39
- role: this.mapRole(contentBlock),
40
- content: this.extractContent(contentBlock),
41
- },
42
- logprobs: null,
43
- finish_reason: response.stop_reason || null,
44
- })),
45
- usage: {
46
- prompt_tokens: response.usage.input_tokens,
47
- completion_tokens: response.usage.output_tokens,
48
- total_tokens: response.usage.input_tokens + response.usage.output_tokens,
49
- prompt_tokens_details: { cached_tokens: 0 },
50
- completion_tokens_details: { reasoning_tokens: 0 },
51
- },
62
+ model: this.model || "unknown-model",
52
63
  system_fingerprint: "anthropic_translation",
53
- };
54
- }
55
- static adaptStreamingResponse(chunk) {
56
- var _a, _b;
57
- // Handle stop messages
58
- if (chunk.type === "content_block_stop" || chunk.type === "message_stop") {
59
- const metrics = chunk["amazon-bedrock-invocationMetrics"];
60
- return {
61
- id: `stream-${Date.now()}`,
62
- object: "text_completion",
63
- created: Date.now(),
64
- model: "anthropic.claude-3-haiku",
65
- choices: [
66
- {
67
- index: 0,
68
- delta: {
69
- role: "assistant",
70
- content: "",
71
- },
72
- logprobs: null,
73
- finish_reason: "stop",
64
+ choices: [
65
+ {
66
+ index: 0,
67
+ delta: {
68
+ function_call: {
69
+ name: this.toolName || "unknown_tool",
70
+ arguments: chunk &&
71
+ chunk.type === "content_block_delta" &&
72
+ ((_a = chunk.delta) === null || _a === void 0 ? void 0 : _a.type) === "input_json_delta"
73
+ ? (_b = chunk.delta) === null || _b === void 0 ? void 0 : _b.partial_json
74
+ : this.toolArguments.join(", ")
75
+ }
74
76
  },
75
- ],
76
- usage: {
77
+ logprobs: null,
78
+ finish_reason: isStop ? "stop" : null
79
+ }
80
+ ],
81
+ usage: isStop
82
+ ? {
77
83
  prompt_tokens: (metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0,
78
84
  completion_tokens: (metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0,
79
- total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) + ((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
80
- prompt_tokens_details: { cached_tokens: 0 },
81
- completion_tokens_details: { reasoning_tokens: 0 },
82
- },
83
- system_fingerprint: "anthropic_translation",
84
- };
85
- }
86
- // Handle content blocks or deltas
85
+ total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) +
86
+ ((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
87
+ prompt_tokens_details: {
88
+ cached_tokens: 0
89
+ },
90
+ completion_tokens_details: {
91
+ reasoning_tokens: 0
92
+ }
93
+ }
94
+ : null
95
+ };
96
+ }
97
+ static createNonToolUseResponse(metrics, isStop, chunk) {
98
+ var _a, _b;
87
99
  const content = ((_a = chunk.content_block) === null || _a === void 0 ? void 0 : _a.text) || ((_b = chunk.delta) === null || _b === void 0 ? void 0 : _b.text) || "";
88
100
  return {
89
101
  id: `stream-${Date.now()}`,
90
- object: "text_completion",
102
+ object: "chat.completion.chunk",
91
103
  created: Date.now(),
92
- model: "anthropic.claude-3-haiku",
104
+ model: this.model || "unknown-model",
93
105
  choices: [
94
106
  {
95
107
  index: 0,
96
108
  delta: {
97
- role: "assistant",
98
- content,
109
+ content
99
110
  },
100
111
  logprobs: null,
101
- finish_reason: "null",
102
- },
112
+ finish_reason: isStop ? "stop" : null
113
+ }
103
114
  ],
104
- usage: {
105
- prompt_tokens: 0,
106
- completion_tokens: 0,
107
- total_tokens: 0,
108
- prompt_tokens_details: { cached_tokens: 0 },
109
- completion_tokens_details: { reasoning_tokens: 0 },
110
- },
111
- system_fingerprint: "anthropic_translation",
115
+ usage: isStop
116
+ ? {
117
+ prompt_tokens: (metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0,
118
+ completion_tokens: (metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0,
119
+ total_tokens: ((metrics === null || metrics === void 0 ? void 0 : metrics.inputTokenCount) || 0) +
120
+ ((metrics === null || metrics === void 0 ? void 0 : metrics.outputTokenCount) || 0),
121
+ prompt_tokens_details: {
122
+ cached_tokens: 0
123
+ },
124
+ completion_tokens_details: {
125
+ reasoning_tokens: 0
126
+ }
127
+ }
128
+ : null
112
129
  };
113
130
  }
114
- static mapRole(content) {
115
- if (!content || !content.type) {
116
- throw new Error("Invalid content block structure");
117
- }
118
- switch (content.type) {
119
- case types_1.BedrockAnthropicContentType.TOOL_USE:
120
- case types_1.BedrockAnthropicContentType.TOOL_RESULT:
121
- return "tool";
122
- case types_1.BedrockAnthropicContentType.TEXT:
123
- return "assistant";
124
- default:
125
- return "assistant"; // Default to assistant for unknown types
126
- }
127
- }
128
- static extractContent(content) {
129
- if (!content || !content.type) {
130
- throw new Error("Invalid content block structure");
131
- }
132
- switch (content.type) {
133
- case types_1.BedrockAnthropicContentType.TEXT:
134
- const textContent = content;
135
- return textContent.text || "";
136
- case types_1.BedrockAnthropicContentType.TOOL_RESULT:
137
- return content.content || "";
138
- case types_1.BedrockAnthropicContentType.TOOL_USE:
139
- return content.id || "";
140
- default:
141
- return "";
142
- }
131
+ static resetState() {
132
+ this.isToolUseStream = false;
133
+ this.toolArguments = [];
134
+ this.model = undefined;
135
+ this.toolName = undefined;
143
136
  }
144
137
  }
145
- exports.OutputFormatAdapter = OutputFormatAdapter;
138
+ exports.default = OutputFormatAdapter;
139
+ OutputFormatAdapter.isToolUseStream = false;
140
+ OutputFormatAdapter.toolArguments = [];
146
141
  //# sourceMappingURL=OutputFormatAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OutputFormatAdapter.js","sourceRoot":"","sources":["../../src/middleware/OutputFormatAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { Providers } from "../types";
2
- export declare class ProviderFinder {
2
+ export default class ProviderFinder {
3
3
  static getProvider(model: string): Providers;
4
4
  }
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProviderFinder = void 0;
4
3
  const types_1 = require("../types");
5
4
  class ProviderFinder {
6
5
  static getProvider(model) {
@@ -16,5 +15,5 @@ class ProviderFinder {
16
15
  throw new Error(`Unsupported model: ${model}`);
17
16
  }
18
17
  }
19
- exports.ProviderFinder = ProviderFinder;
18
+ exports.default = ProviderFinder;
20
19
  //# sourceMappingURL=ProviderFinder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;;AAAA,oCAIkB;AAElB,MAAa,cAAc;IACzB,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,sDAAsD;QACtD,IACE,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,KAA4B,CAAC,EACzE;YACA,OAAO,iBAAS,CAAC,MAAM,CAAC;SACzB;QACD,iEAAiE;QACjE,IACE,MAAM,CAAC,MAAM,CAAC,qCAA6B,CAAC,CAAC,QAAQ,CACnD,KAAsC,CACvC,EACD;YACA,OAAO,iBAAS,CAAC,iBAAiB,CAAC;SACpC;QACD,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAnBD,wCAmBC"}
1
+ {"version":3,"file":"ProviderFinder.js","sourceRoot":"","sources":["../../src/middleware/ProviderFinder.ts"],"names":[],"mappings":";;AAAA,oCAIkB;AAElB,MAAqB,cAAc;IACjC,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,sDAAsD;QACtD,IACE,MAAM,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAC,QAAQ,CAAC,KAA4B,CAAC,EACzE;YACA,OAAO,iBAAS,CAAC,MAAM,CAAC;SACzB;QACD,iEAAiE;QACjE,IACE,MAAM,CAAC,MAAM,CAAC,qCAA6B,CAAC,CAAC,QAAQ,CACnD,KAAsC,CACvC,EACD;YACA,OAAO,iBAAS,CAAC,iBAAiB,CAAC;SACpC;QACD,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAnBD,iCAmBC"}
@@ -5,16 +5,18 @@ export default class AwsBedrockAnthropicService implements ClientService {
5
5
  constructor(awsAccessKey: string, awsSecretKey: string, region: string);
6
6
  generateCompletion(params: {
7
7
  messages: Messages;
8
- model: string;
8
+ model?: string;
9
9
  max_tokens?: number;
10
10
  temperature?: number;
11
+ tools?: any;
11
12
  systemPrompt?: string;
12
13
  }): Promise<BedrockAnthropicResponse>;
13
14
  generateStreamCompletion(params: {
14
15
  messages: Messages;
15
- model: string;
16
+ model?: string;
16
17
  max_tokens?: number;
17
18
  temperature?: number;
19
+ tools?: any;
18
20
  systemPrompt?: string;
19
21
  }): AsyncGenerator<BedrockAnthropicParsedChunk, void, unknown>;
20
22
  }
@@ -41,17 +41,13 @@ class AwsBedrockAnthropicService {
41
41
  }
42
42
  generateCompletion(params) {
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const { messages, model, max_tokens, temperature, systemPrompt } = params;
44
+ const { messages, model, max_tokens, temperature, systemPrompt, tools } = params;
45
45
  if (!model) {
46
- return Promise.reject("Model ID is required for AwsBedrockAnthropicService");
46
+ return Promise.reject(new Error("Model ID is required for AwsBedrockAnthropicService"));
47
47
  }
48
- const body = JSON.stringify({
49
- anthropic_version: "bedrock-2023-05-31",
50
- max_tokens,
48
+ const body = JSON.stringify(Object.assign({ anthropic_version: "bedrock-2023-05-31", max_tokens,
51
49
  temperature,
52
- messages,
53
- system: systemPrompt,
54
- });
50
+ messages, system: systemPrompt }, (tools.length ? { tools } : {})));
55
51
  const command = new client_bedrock_runtime_1.InvokeModelCommand({
56
52
  modelId: model,
57
53
  body,
@@ -62,21 +58,18 @@ class AwsBedrockAnthropicService {
62
58
  return JSON.parse(new TextDecoder().decode(response.body));
63
59
  });
64
60
  }
61
+ // eslint-disable-next-line consistent-return
65
62
  generateStreamCompletion(params) {
66
63
  var _a;
67
64
  return __asyncGenerator(this, arguments, function* generateStreamCompletion_1() {
68
65
  var _b, e_1, _c, _d;
69
- const { messages, model, max_tokens, temperature, systemPrompt } = params;
66
+ const { messages, model, max_tokens, temperature, tools, systemPrompt } = params;
70
67
  if (!model) {
71
- return yield __await(Promise.reject("Model ID is required for AwsBedrockAnthropicService"));
68
+ return yield __await(Promise.reject(new Error("Model ID is required for AwsBedrockAnthropicService")));
72
69
  }
73
- const body = JSON.stringify({
74
- anthropic_version: "bedrock-2023-05-31",
75
- max_tokens,
70
+ const body = JSON.stringify(Object.assign({ anthropic_version: "bedrock-2023-05-31", max_tokens,
76
71
  temperature,
77
- messages,
78
- system: systemPrompt,
79
- });
72
+ messages, system: systemPrompt }, (tools.length ? { tools } : {})));
80
73
  const command = new client_bedrock_runtime_1.InvokeModelWithResponseStreamCommand({
81
74
  modelId: model,
82
75
  body,
@@ -1 +1 @@
1
- {"version":3,"file":"AwsBedrockAnthropicService.js","sourceRoot":"","sources":["../../src/services/AwsBedrockAnthropicService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAIyC;AAQzC,MAAqB,0BAA0B;IAG7C,YAAY,YAAoB,EAAE,YAAoB,EAAE,MAAc;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,6CAAoB,CAAC;YACtC,MAAM;YACN,WAAW,EAAE;gBACX,WAAW,EAAE,YAAY;gBACzB,eAAe,EAAE,YAAY;aAC9B;SACF,CAAC,CAAC;IACL,CAAC;IAEK,kBAAkB,CAAC,MAMxB;;YACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YAE1E,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,OAAO,CAAC,MAAM,CACnB,qDAAqD,CACtD,CAAC;aACH;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,iBAAiB,EAAE,oBAAoB;gBACvC,UAAU;gBACV,WAAW;gBACX,QAAQ;gBACR,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,2CAAkB,CAAC;gBACrC,OAAO,EAAE,KAAK;gBACd,IAAI;gBACJ,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;KAAA;IAEM,wBAAwB,CAAC,MAM/B;;;;YACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YAE1E,IAAI,CAAC,KAAK,EAAE;gBACV,qBAAO,OAAO,CAAC,MAAM,CACnB,qDAAqD,CACtD,EAAC;aACH;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,iBAAiB,EAAE,oBAAoB;gBACvC,UAAU;gBACV,WAAW;gBACX,QAAQ;gBACR,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,6DAAoC,CAAC;gBACvD,OAAO,EAAE,KAAK;gBACd,IAAI;gBACJ,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,cAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC;YAElD,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;;oBAEzC,KAA4B,eAAA,KAAA,cAAA,QAAQ,CAAC,IAAI,CAAA,IAAA;wBAAb,cAAa;wBAAb,WAAa;;4BAA9B,MAAM,OAAO,KAAA,CAAA;4BACtB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK,EAAE;gCACzD,MAAM,EAAE,IAAI;6BACb,CAAC,CAAC;4BAEH,IAAI;gCACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gCAC7C,oBAAM,UAAU,CAAA,CAAC;6BAClB;4BAAC,OAAO,KAAK,EAAE;gCACd,qBAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;6BAC9B;;;;;qBACF;;;;;;;;;aACF;;KACF;CACF;AAhGD,6CAgGC"}
1
+ {"version":3,"file":"AwsBedrockAnthropicService.js","sourceRoot":"","sources":["../../src/services/AwsBedrockAnthropicService.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  import { BedrockAnthropicParsedChunk, LLMResponse, Messages } from "../types";
2
2
  export interface ClientService {
3
- generateCompletion({ messages, model, max_tokens, temperature, functions, systemPrompt, }: {
3
+ generateCompletion({ messages, model, max_tokens, temperature, tools, systemPrompt, }: {
4
4
  messages: Messages;
5
5
  model?: string;
6
6
  max_tokens?: number;
7
7
  temperature?: number;
8
- functions?: any;
8
+ tools?: any;
9
9
  systemPrompt?: string;
10
10
  }): Promise<LLMResponse>;
11
- generateStreamCompletion({ messages, model, max_tokens, temperature, functions, systemPrompt, }: {
11
+ generateStreamCompletion({ messages, model, max_tokens, temperature, tools, systemPrompt, }: {
12
12
  messages: Messages;
13
13
  model?: string;
14
14
  max_tokens?: number;
15
15
  temperature?: number;
16
- functions?: any;
16
+ tools?: any;
17
17
  systemPrompt?: string;
18
18
  }): AsyncGenerator<BedrockAnthropicParsedChunk, void, unknown>;
19
19
  }
@@ -1,9 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // functions: [
4
- // {
5
- // name: "function1",
6
- // description: "Description of function1",
7
- // parameters: {/* JSON schema for function1 */}
8
- // },
9
3
  //# sourceMappingURL=ClientService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientService.js","sourceRoot":"","sources":["../../src/services/ClientService.ts"],"names":[],"mappings":";;AAoCA,gBAAgB;AAChB,MAAM;AACN,yBAAyB;AACzB,+CAA+C;AAC/C,oDAAoD;AACpD,OAAO"}
1
+ {"version":3,"file":"ClientService.js","sourceRoot":"","sources":["../../src/services/ClientService.ts"],"names":[],"mappings":""}
@@ -3,20 +3,20 @@ import { ClientService } from "./ClientService";
3
3
  export default class OpenAIService implements ClientService {
4
4
  private openai;
5
5
  constructor(apiKey: string);
6
- generateCompletion({ messages, model, max_tokens, temperature, functions, }: {
6
+ generateCompletion({ messages, model, max_tokens, temperature, tools, }: {
7
7
  messages: OpenAIMessages;
8
8
  model: string;
9
9
  max_tokens: number;
10
10
  temperature: number;
11
11
  systemPrompt?: string;
12
- functions?: any;
12
+ tools?: any;
13
13
  }): Promise<OpenAIResponse>;
14
- generateStreamCompletion({ messages, model, max_tokens, temperature, functions, }: {
14
+ generateStreamCompletion({ messages, model, max_tokens, temperature, tools, }: {
15
15
  messages: OpenAIMessages;
16
16
  model: string;
17
17
  max_tokens: number;
18
18
  temperature: number;
19
19
  systemPrompt?: string;
20
- functions?: any;
20
+ tools?: any;
21
21
  }): AsyncGenerator<any, void, unknown>;
22
22
  }
@@ -36,10 +36,10 @@ class OpenAIService {
36
36
  constructor(apiKey) {
37
37
  this.openai = new openai_1.default({ apiKey });
38
38
  }
39
- generateCompletion({ messages, model, max_tokens, temperature, functions, }) {
39
+ generateCompletion({ messages, model, max_tokens, temperature, tools, }) {
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
41
  if (!model) {
42
- return Promise.reject("Model ID is required for OpenAIService.");
42
+ return Promise.reject(new Error("Model ID is required for OpenAIService."));
43
43
  }
44
44
  try {
45
45
  const response = yield this.openai.chat.completions.create({
@@ -47,7 +47,7 @@ class OpenAIService {
47
47
  messages,
48
48
  max_tokens,
49
49
  temperature,
50
- functions,
50
+ functions: tools,
51
51
  });
52
52
  return response;
53
53
  }
@@ -56,11 +56,12 @@ class OpenAIService {
56
56
  }
57
57
  });
58
58
  }
59
- generateStreamCompletion({ messages, model, max_tokens, temperature, functions, }) {
59
+ // eslint-disable-next-line consistent-return
60
+ generateStreamCompletion({ messages, model, max_tokens, temperature, tools, }) {
60
61
  return __asyncGenerator(this, arguments, function* generateStreamCompletion_1() {
61
62
  var _a, e_1, _b, _c;
62
63
  if (!model) {
63
- return yield __await(Promise.reject("Model ID is required for OpenAIService."));
64
+ return yield __await(Promise.reject(new Error("Model ID is required for OpenAIService.")));
64
65
  }
65
66
  try {
66
67
  const stream = yield __await(this.openai.chat.completions.create({
@@ -68,7 +69,7 @@ class OpenAIService {
68
69
  messages,
69
70
  max_tokens,
70
71
  temperature,
71
- functions,
72
+ functions: tools,
72
73
  stream: true,
73
74
  stream_options: {
74
75
  include_usage: true,
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIService.js","sourceRoot":"","sources":["../../src/services/OpenAIService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAI5B,MAAqB,aAAa;IAGhC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEK,kBAAkB,CAAC,EACvB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,SAAS,GAQV;;YACC,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;aAClE;YAED,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACzD,KAAK;oBACL,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,SAAS;iBACV,CAAC,CAAC;gBACH,OAAO,QAA0B,CAAC;aACnC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC9B;QACH,CAAC;KAAA;IAEM,wBAAwB,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,SAAS,GAQV;;;YACC,IAAI,CAAC,KAAK,EAAE;gBACV,qBAAO,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,EAAC;aAClE;YAED,IAAI;gBACF,MAAM,MAAM,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACvD,KAAK;oBACL,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,SAAS;oBACT,MAAM,EAAE,IAAI;oBACZ,cAAc,EAAE;wBACd,aAAa,EAAE,IAAI;qBACpB;iBACF,CAAC,CAAA,CAAC;;oBAEH,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA;wBAAN,sBAAM;wBAAN,WAAM;;4BAArB,MAAM,KAAK,KAAA,CAAA;4BACpB,oBAAM,KAAK,CAAA,CAAC;;;;;qBACb;;;;;;;;;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,qBAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;aAC9B;QACH,CAAC;KAAA;CACF;AA7ED,gCA6EC"}
1
+ {"version":3,"file":"OpenAIService.js","sourceRoot":"","sources":["../../src/services/OpenAIService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAI5B,MAAqB,aAAa;IAGhC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEK,kBAAkB,CAAC,EACvB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,GASN;;YACC,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,CAAC;aACH;YAED,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACzD,KAAK;oBACL,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;gBACH,OAAO,QAA0B,CAAC;aACnC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC9B;QACH,CAAC;KAAA;IAED,6CAA6C;IACtC,wBAAwB,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,GAUN;;;YACC,IAAI,CAAC,KAAK,EAAE;gBACV,qBAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,yCAAyC,CAAC,CACrD,EAAC;aACH;YAED,IAAI;gBACF,MAAM,MAAM,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACvD,KAAK;oBACL,QAAQ;oBACR,UAAU;oBACV,WAAW;oBACX,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,IAAI;oBACZ,cAAc,EAAE;wBACd,aAAa,EAAE,IAAI;qBACpB;iBACF,CAAC,CAAA,CAAC;;oBAEH,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA;wBAAN,sBAAM;wBAAN,WAAM;;4BAArB,MAAM,KAAK,KAAA,CAAA;4BACpB,oBAAM,KAAK,CAAA,CAAC;;;;;qBACb;;;;;;;;;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,qBAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;aAC9B;QACH,CAAC;KAAA;CACF;AArFD,gCAqFC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-proxy",
3
- "version": "1.3.13",
3
+ "version": "1.4.14",
4
4
  "description": "An LLM Proxy that allows the user to interact with different language models from different providers using unified request and response formats.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,7 +30,7 @@
30
30
  "aws-sdk": "^2.1691.0",
31
31
  "axios": "^1.7.7",
32
32
  "dotenv": "^16.4.5",
33
- "llm-proxy": "^1.3.13",
33
+ "llm-proxy": "^1.4.14",
34
34
  "openai": "^4.69.0"
35
35
  }
36
36
  }