@discomedia/utils 1.0.25 → 1.0.26

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 (44) hide show
  1. package/dist/index-frontend.cjs +42 -12
  2. package/dist/index-frontend.cjs.map +1 -1
  3. package/dist/index-frontend.mjs +42 -13
  4. package/dist/index-frontend.mjs.map +1 -1
  5. package/dist/index.cjs +171 -22
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.mjs +171 -23
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/package.json +2 -2
  10. package/dist/test.js +250 -63
  11. package/dist/test.js.map +1 -1
  12. package/dist/types/index-frontend.d.ts +1 -1
  13. package/dist/types/index.d.ts +3 -1
  14. package/dist/types/index.d.ts.map +1 -1
  15. package/dist/types/json-tools.d.ts.map +1 -1
  16. package/dist/types/llm-deepseek.d.ts +1 -1
  17. package/dist/types/llm-deepseek.d.ts.map +1 -1
  18. package/dist/types/llm-images.d.ts.map +1 -1
  19. package/dist/types/llm-openai.d.ts +2 -2
  20. package/dist/types/llm-openai.d.ts.map +1 -1
  21. package/dist/types/llm-openrouter.d.ts +28 -0
  22. package/dist/types/llm-openrouter.d.ts.map +1 -0
  23. package/dist/types/misc-utils.d.ts.map +1 -1
  24. package/dist/types/types/llm-types.d.ts +26 -3
  25. package/dist/types/types/llm-types.d.ts.map +1 -1
  26. package/dist/types/types/logging-types.d.ts +1 -1
  27. package/dist/types/types/logging-types.d.ts.map +1 -1
  28. package/dist/types-frontend/index-frontend.d.ts +1 -1
  29. package/dist/types-frontend/index.d.ts +3 -1
  30. package/dist/types-frontend/index.d.ts.map +1 -1
  31. package/dist/types-frontend/json-tools.d.ts.map +1 -1
  32. package/dist/types-frontend/llm-deepseek.d.ts +1 -1
  33. package/dist/types-frontend/llm-deepseek.d.ts.map +1 -1
  34. package/dist/types-frontend/llm-images.d.ts.map +1 -1
  35. package/dist/types-frontend/llm-openai.d.ts +2 -2
  36. package/dist/types-frontend/llm-openai.d.ts.map +1 -1
  37. package/dist/types-frontend/llm-openrouter.d.ts +28 -0
  38. package/dist/types-frontend/llm-openrouter.d.ts.map +1 -0
  39. package/dist/types-frontend/misc-utils.d.ts.map +1 -1
  40. package/dist/types-frontend/types/llm-types.d.ts +26 -3
  41. package/dist/types-frontend/types/llm-types.d.ts.map +1 -1
  42. package/dist/types-frontend/types/logging-types.d.ts +1 -1
  43. package/dist/types-frontend/types/logging-types.d.ts.map +1 -1
  44. package/package.json +2 -2
@@ -14,8 +14,28 @@ var require$$0$4 = require('fs');
14
14
  var require$$1$1 = require('path');
15
15
  var require$$2$1 = require('os');
16
16
 
17
+ /**
18
+ * Type guard to check if a model is an OpenRouter model
19
+ */
20
+ function isOpenRouterModel(model) {
21
+ const openRouterModels = [
22
+ 'openai/gpt-5',
23
+ 'openai/gpt-5-mini',
24
+ 'openai/gpt-5-nano',
25
+ 'openai/gpt-oss-120b',
26
+ 'z.ai/glm-4.5',
27
+ 'z.ai/glm-4.5-air',
28
+ 'google/gemini-2.5-flash',
29
+ 'google/gemini-2.5-flash-lite',
30
+ 'deepseek/deepseek-r1-0528',
31
+ 'deepseek/deepseek-chat-v3-0324',
32
+ ];
33
+ return openRouterModels.includes(model);
34
+ }
35
+
17
36
  var Types = /*#__PURE__*/Object.freeze({
18
- __proto__: null
37
+ __proto__: null,
38
+ isOpenRouterModel: isOpenRouterModel
19
39
  });
20
40
 
21
41
  function __classPrivateFieldSet(receiver, state, value, kind, f) {
@@ -249,7 +269,7 @@ const safeJSON = (text) => {
249
269
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
250
270
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
251
271
 
252
- const VERSION = '5.12.1'; // x-release-please-version
272
+ const VERSION = '5.12.2'; // x-release-please-version
253
273
 
254
274
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
255
275
  const isRunningInBrowser = () => {
@@ -7044,7 +7064,8 @@ function fixBrokenJson(jsonStr) {
7044
7064
  return parse();
7045
7065
  }
7046
7066
  catch (error) {
7047
- console.error(`Error parsing JSON at position ${index}: ${error.message}`);
7067
+ const msg = error instanceof Error ? error.message : String(error);
7068
+ console.error(`Error parsing JSON at position ${index}: ${msg}`);
7048
7069
  return null;
7049
7070
  }
7050
7071
  }
@@ -7588,7 +7609,13 @@ async function makeImagesCall(prompt, options = {}) {
7588
7609
  const enhancedResponse = {
7589
7610
  ...response,
7590
7611
  usage: {
7591
- ...response.usage,
7612
+ // OpenAI Images response may not include usage details per image; preserve if present
7613
+ ...(response.usage ?? {
7614
+ input_tokens: 0,
7615
+ input_tokens_details: { image_tokens: 0, text_tokens: 0 },
7616
+ output_tokens: 0,
7617
+ total_tokens: 0,
7618
+ }),
7592
7619
  provider: 'openai',
7593
7620
  model: 'gpt-image-1',
7594
7621
  cost,
@@ -7597,7 +7624,8 @@ async function makeImagesCall(prompt, options = {}) {
7597
7624
  return enhancedResponse;
7598
7625
  }
7599
7626
  catch (error) {
7600
- throw new Error(`OpenAI Images API call failed: ${error.message}`);
7627
+ const message = error instanceof Error ? error.message : 'Unknown error';
7628
+ throw new Error(`OpenAI Images API call failed: ${message}`);
7601
7629
  }
7602
7630
  }
7603
7631
 
@@ -7822,14 +7850,15 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
7822
7850
  const completion = await createDeepseekCompletion(content, responseFormat, mergedOptions);
7823
7851
  // Handle tool calls similarly to OpenAI
7824
7852
  if (completion.tool_calls && completion.tool_calls.length > 0) {
7853
+ const fnCalls = completion.tool_calls
7854
+ .filter((tc) => tc.type === 'function')
7855
+ .map((tc) => ({
7856
+ id: tc.id,
7857
+ name: tc.function.name,
7858
+ arguments: JSON.parse(tc.function.arguments),
7859
+ }));
7825
7860
  return {
7826
- response: {
7827
- tool_calls: completion.tool_calls.map((tc) => ({
7828
- id: tc.id,
7829
- name: tc.function.name,
7830
- arguments: JSON.parse(tc.function.arguments),
7831
- })),
7832
- },
7861
+ response: { tool_calls: fnCalls },
7833
7862
  usage: {
7834
7863
  prompt_tokens: completion.usage.prompt_tokens,
7835
7864
  completion_tokens: completion.usage.completion_tokens,
@@ -15989,4 +16018,5 @@ const disco = {
15989
16018
  exports.AlpacaMarketDataAPI = AlpacaMarketDataAPI;
15990
16019
  exports.AlpacaTradingAPI = AlpacaTradingAPI;
15991
16020
  exports.disco = disco;
16021
+ exports.isOpenRouterModel = isOpenRouterModel;
15992
16022
  //# sourceMappingURL=index-frontend.cjs.map