@gammatech/aijsx 0.5.0-dev.2024-03-14.3 → 0.5.0-dev.2024-04-04

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
@@ -2052,13 +2052,16 @@ function OpenAIVisionChatCompletion(props, { logger, render, tracer, getContext
2052
2052
  messages: openAIMessages,
2053
2053
  stream: true
2054
2054
  };
2055
+ const chatCompletionRequestToLog = cleanChatCompletionRequest(
2056
+ chatCompletionRequest
2057
+ );
2055
2058
  const logRequestData = {
2056
2059
  startTime,
2057
2060
  model,
2058
2061
  provider,
2059
2062
  providerRegion,
2060
2063
  inputMessages: renderedMessages,
2061
- request: chatCompletionRequest
2064
+ request: chatCompletionRequestToLog
2062
2065
  };
2063
2066
  logger.chatCompletionRequest("openai", logRequestData);
2064
2067
  span.setAttributes({
@@ -2066,7 +2069,7 @@ function OpenAIVisionChatCompletion(props, { logger, render, tracer, getContext
2066
2069
  provider,
2067
2070
  providerRegion,
2068
2071
  requestType: "openai",
2069
- chatCompletionRequest
2072
+ chatCompletionRequest: chatCompletionRequestToLog
2070
2073
  });
2071
2074
  let chatResponse;
2072
2075
  try {
@@ -2126,6 +2129,44 @@ function OpenAIVisionChatCompletion(props, { logger, render, tracer, getContext
2126
2129
  }
2127
2130
  );
2128
2131
  }
2132
+ function cleanChatCompletionRequest(chatCompletionRequest) {
2133
+ const { messages, ...rest } = chatCompletionRequest;
2134
+ return {
2135
+ ...rest,
2136
+ messages: messages.map((message) => {
2137
+ if (message.role !== "user") {
2138
+ return message;
2139
+ }
2140
+ if (typeof message.content === "string") {
2141
+ return message;
2142
+ }
2143
+ return {
2144
+ ...message,
2145
+ content: message.content.map((part) => {
2146
+ if (part.type === "text") {
2147
+ return part;
2148
+ }
2149
+ if (part.image_url.url.startsWith("data:image")) {
2150
+ return {
2151
+ type: "image_url",
2152
+ image_url: {
2153
+ url: part.image_url.url.slice(0, 22) + "...",
2154
+ detail: part.image_url.detail
2155
+ }
2156
+ };
2157
+ }
2158
+ return {
2159
+ type: "image_url",
2160
+ image_url: {
2161
+ url: part.image_url.url,
2162
+ detail: part.image_url.detail
2163
+ }
2164
+ };
2165
+ })
2166
+ };
2167
+ })
2168
+ };
2169
+ }
2129
2170
 
2130
2171
  // src/lib/openai/index.ts
2131
2172
  var import_openai3 = require("openai");
@@ -2243,13 +2284,16 @@ function AnthropicChatCompletion(props, { render, logger, tracer, getContext })
2243
2284
  temperature: props.temperature,
2244
2285
  model: props.model
2245
2286
  };
2287
+ const chatCompletionRequestToLog = cleanChatCompletionRequest2(
2288
+ anthropicCompletionRequest
2289
+ );
2246
2290
  const logRequestData = {
2247
2291
  startTime,
2248
2292
  model: props.model,
2249
2293
  provider,
2250
2294
  providerRegion,
2251
2295
  inputMessages,
2252
- request: anthropicCompletionRequest
2296
+ request: chatCompletionRequestToLog
2253
2297
  };
2254
2298
  logger.chatCompletionRequest("anthropic", logRequestData);
2255
2299
  span.setAttributes({
@@ -2257,7 +2301,7 @@ function AnthropicChatCompletion(props, { render, logger, tracer, getContext })
2257
2301
  provider,
2258
2302
  providerRegion,
2259
2303
  requestType: "anthropic",
2260
- chatCompletionRequest: anthropicCompletionRequest
2304
+ chatCompletionRequest: chatCompletionRequestToLog
2261
2305
  });
2262
2306
  let response;
2263
2307
  try {
@@ -2373,6 +2417,39 @@ var renderChatMessageContent2 = (content) => {
2373
2417
  throw new Error("Invalid ImageBlockParam type");
2374
2418
  }).join("\n\n");
2375
2419
  };
2420
+ function cleanChatCompletionRequest2(chatCompletionRequest) {
2421
+ const { messages, ...rest } = chatCompletionRequest;
2422
+ return {
2423
+ ...rest,
2424
+ messages: messages.map((message) => {
2425
+ if (message.role !== "user") {
2426
+ return message;
2427
+ }
2428
+ if (typeof message.content === "string") {
2429
+ return message;
2430
+ }
2431
+ return {
2432
+ ...message,
2433
+ content: message.content.map((part) => {
2434
+ if (typeof part === "string") {
2435
+ return part;
2436
+ } else if (part.type === "text") {
2437
+ return part;
2438
+ } else if ("source" in part && typeof part.source === "object") {
2439
+ return {
2440
+ ...part,
2441
+ source: {
2442
+ ...part.source,
2443
+ data: part.source.data.slice(0, 22) + "..."
2444
+ }
2445
+ };
2446
+ }
2447
+ return part;
2448
+ })
2449
+ };
2450
+ })
2451
+ };
2452
+ }
2376
2453
 
2377
2454
  // src/lib/anthropic/ClaudeImageBlock.tsx
2378
2455
  var ClaudeImageBlockParam = (_props) => {
package/dist/index.mjs CHANGED
@@ -1954,13 +1954,16 @@ function OpenAIVisionChatCompletion(props, { logger, render, tracer, getContext
1954
1954
  messages: openAIMessages,
1955
1955
  stream: true
1956
1956
  };
1957
+ const chatCompletionRequestToLog = cleanChatCompletionRequest(
1958
+ chatCompletionRequest
1959
+ );
1957
1960
  const logRequestData = {
1958
1961
  startTime,
1959
1962
  model,
1960
1963
  provider,
1961
1964
  providerRegion,
1962
1965
  inputMessages: renderedMessages,
1963
- request: chatCompletionRequest
1966
+ request: chatCompletionRequestToLog
1964
1967
  };
1965
1968
  logger.chatCompletionRequest("openai", logRequestData);
1966
1969
  span.setAttributes({
@@ -1968,7 +1971,7 @@ function OpenAIVisionChatCompletion(props, { logger, render, tracer, getContext
1968
1971
  provider,
1969
1972
  providerRegion,
1970
1973
  requestType: "openai",
1971
- chatCompletionRequest
1974
+ chatCompletionRequest: chatCompletionRequestToLog
1972
1975
  });
1973
1976
  let chatResponse;
1974
1977
  try {
@@ -2028,6 +2031,44 @@ function OpenAIVisionChatCompletion(props, { logger, render, tracer, getContext
2028
2031
  }
2029
2032
  );
2030
2033
  }
2034
+ function cleanChatCompletionRequest(chatCompletionRequest) {
2035
+ const { messages, ...rest } = chatCompletionRequest;
2036
+ return {
2037
+ ...rest,
2038
+ messages: messages.map((message) => {
2039
+ if (message.role !== "user") {
2040
+ return message;
2041
+ }
2042
+ if (typeof message.content === "string") {
2043
+ return message;
2044
+ }
2045
+ return {
2046
+ ...message,
2047
+ content: message.content.map((part) => {
2048
+ if (part.type === "text") {
2049
+ return part;
2050
+ }
2051
+ if (part.image_url.url.startsWith("data:image")) {
2052
+ return {
2053
+ type: "image_url",
2054
+ image_url: {
2055
+ url: part.image_url.url.slice(0, 22) + "...",
2056
+ detail: part.image_url.detail
2057
+ }
2058
+ };
2059
+ }
2060
+ return {
2061
+ type: "image_url",
2062
+ image_url: {
2063
+ url: part.image_url.url,
2064
+ detail: part.image_url.detail
2065
+ }
2066
+ };
2067
+ })
2068
+ };
2069
+ })
2070
+ };
2071
+ }
2031
2072
 
2032
2073
  // src/lib/openai/index.ts
2033
2074
  import { OpenAI as OpenAIClient3 } from "openai";
@@ -2145,13 +2186,16 @@ function AnthropicChatCompletion(props, { render, logger, tracer, getContext })
2145
2186
  temperature: props.temperature,
2146
2187
  model: props.model
2147
2188
  };
2189
+ const chatCompletionRequestToLog = cleanChatCompletionRequest2(
2190
+ anthropicCompletionRequest
2191
+ );
2148
2192
  const logRequestData = {
2149
2193
  startTime,
2150
2194
  model: props.model,
2151
2195
  provider,
2152
2196
  providerRegion,
2153
2197
  inputMessages,
2154
- request: anthropicCompletionRequest
2198
+ request: chatCompletionRequestToLog
2155
2199
  };
2156
2200
  logger.chatCompletionRequest("anthropic", logRequestData);
2157
2201
  span.setAttributes({
@@ -2159,7 +2203,7 @@ function AnthropicChatCompletion(props, { render, logger, tracer, getContext })
2159
2203
  provider,
2160
2204
  providerRegion,
2161
2205
  requestType: "anthropic",
2162
- chatCompletionRequest: anthropicCompletionRequest
2206
+ chatCompletionRequest: chatCompletionRequestToLog
2163
2207
  });
2164
2208
  let response;
2165
2209
  try {
@@ -2275,6 +2319,39 @@ var renderChatMessageContent2 = (content) => {
2275
2319
  throw new Error("Invalid ImageBlockParam type");
2276
2320
  }).join("\n\n");
2277
2321
  };
2322
+ function cleanChatCompletionRequest2(chatCompletionRequest) {
2323
+ const { messages, ...rest } = chatCompletionRequest;
2324
+ return {
2325
+ ...rest,
2326
+ messages: messages.map((message) => {
2327
+ if (message.role !== "user") {
2328
+ return message;
2329
+ }
2330
+ if (typeof message.content === "string") {
2331
+ return message;
2332
+ }
2333
+ return {
2334
+ ...message,
2335
+ content: message.content.map((part) => {
2336
+ if (typeof part === "string") {
2337
+ return part;
2338
+ } else if (part.type === "text") {
2339
+ return part;
2340
+ } else if ("source" in part && typeof part.source === "object") {
2341
+ return {
2342
+ ...part,
2343
+ source: {
2344
+ ...part.source,
2345
+ data: part.source.data.slice(0, 22) + "..."
2346
+ }
2347
+ };
2348
+ }
2349
+ return part;
2350
+ })
2351
+ };
2352
+ })
2353
+ };
2354
+ }
2278
2355
 
2279
2356
  // src/lib/anthropic/ClaudeImageBlock.tsx
2280
2357
  var ClaudeImageBlockParam = (_props) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gammatech/aijsx",
3
- "version": "0.5.0-dev.2024-03-14.3",
3
+ "version": "0.5.0-dev.2024-04-04",
4
4
  "description": "Rewrite of aijsx",
5
5
  "author": "Jordan Garcia",
6
6
  "license": "MIT",
@@ -18,7 +18,7 @@
18
18
  "check-types": "tsc --skipLibCheck --noEmit"
19
19
  },
20
20
  "dependencies": {
21
- "@anthropic-ai/sdk": "0.17.1",
21
+ "@anthropic-ai/sdk": "0.19.1",
22
22
  "@anthropic-ai/tokenizer": "^0.0.4",
23
23
  "fast-xml-parser": "^4.3.4",
24
24
  "js-tiktoken": "^1.0.8",