@node-llm/core 1.5.4 → 1.6.0

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 (185) hide show
  1. package/README.md +57 -41
  2. package/dist/aliases.js +239 -239
  3. package/dist/chat/Chat.d.ts +17 -17
  4. package/dist/chat/Chat.d.ts.map +1 -1
  5. package/dist/chat/Chat.js +56 -42
  6. package/dist/chat/ChatOptions.d.ts +8 -9
  7. package/dist/chat/ChatOptions.d.ts.map +1 -1
  8. package/dist/chat/ChatResponse.d.ts +1 -1
  9. package/dist/chat/ChatResponse.d.ts.map +1 -1
  10. package/dist/chat/ChatResponse.js +22 -8
  11. package/dist/chat/ChatStream.d.ts.map +1 -1
  12. package/dist/chat/ChatStream.js +14 -21
  13. package/dist/chat/Content.d.ts +3 -3
  14. package/dist/chat/Content.d.ts.map +1 -1
  15. package/dist/chat/Content.js +3 -6
  16. package/dist/chat/Message.d.ts +3 -1
  17. package/dist/chat/Message.d.ts.map +1 -1
  18. package/dist/chat/Role.d.ts.map +1 -1
  19. package/dist/chat/Tool.d.ts +15 -15
  20. package/dist/chat/Tool.d.ts.map +1 -1
  21. package/dist/chat/Tool.js +9 -7
  22. package/dist/chat/ToolHandler.d.ts +4 -3
  23. package/dist/chat/ToolHandler.d.ts.map +1 -1
  24. package/dist/chat/ToolHandler.js +10 -15
  25. package/dist/chat/Validation.d.ts.map +1 -1
  26. package/dist/chat/Validation.js +9 -3
  27. package/dist/config.d.ts +4 -0
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +80 -25
  30. package/dist/constants.js +1 -1
  31. package/dist/errors/index.d.ts +21 -7
  32. package/dist/errors/index.d.ts.map +1 -1
  33. package/dist/errors/index.js +14 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/llm.d.ts +44 -46
  38. package/dist/llm.d.ts.map +1 -1
  39. package/dist/llm.js +201 -130
  40. package/dist/model_aliases.d.ts.map +1 -1
  41. package/dist/models/ModelRegistry.d.ts.map +1 -1
  42. package/dist/models/ModelRegistry.js +12 -10
  43. package/dist/models/PricingRegistry.d.ts +31 -0
  44. package/dist/models/PricingRegistry.d.ts.map +1 -0
  45. package/dist/models/PricingRegistry.js +101 -0
  46. package/dist/models/models.d.ts.map +1 -1
  47. package/dist/models/models.js +5954 -7352
  48. package/dist/models/types.d.ts +37 -34
  49. package/dist/models/types.d.ts.map +1 -1
  50. package/dist/moderation/Moderation.d.ts.map +1 -1
  51. package/dist/moderation/Moderation.js +15 -5
  52. package/dist/providers/BaseProvider.d.ts +12 -8
  53. package/dist/providers/BaseProvider.d.ts.map +1 -1
  54. package/dist/providers/BaseProvider.js +17 -7
  55. package/dist/providers/Provider.d.ts +20 -5
  56. package/dist/providers/Provider.d.ts.map +1 -1
  57. package/dist/providers/anthropic/AnthropicProvider.d.ts +1 -1
  58. package/dist/providers/anthropic/AnthropicProvider.d.ts.map +1 -1
  59. package/dist/providers/anthropic/AnthropicProvider.js +3 -3
  60. package/dist/providers/anthropic/Capabilities.d.ts +2 -1
  61. package/dist/providers/anthropic/Capabilities.d.ts.map +1 -1
  62. package/dist/providers/anthropic/Capabilities.js +3 -20
  63. package/dist/providers/anthropic/Chat.d.ts.map +1 -1
  64. package/dist/providers/anthropic/Chat.js +27 -17
  65. package/dist/providers/anthropic/Errors.d.ts.map +1 -1
  66. package/dist/providers/anthropic/Errors.js +5 -2
  67. package/dist/providers/anthropic/Models.d.ts.map +1 -1
  68. package/dist/providers/anthropic/Models.js +6 -6
  69. package/dist/providers/anthropic/Streaming.d.ts.map +1 -1
  70. package/dist/providers/anthropic/Streaming.js +17 -12
  71. package/dist/providers/anthropic/Utils.js +8 -5
  72. package/dist/providers/anthropic/index.d.ts.map +1 -1
  73. package/dist/providers/anthropic/index.js +4 -3
  74. package/dist/providers/anthropic/types.d.ts +11 -4
  75. package/dist/providers/anthropic/types.d.ts.map +1 -1
  76. package/dist/providers/deepseek/Capabilities.d.ts +7 -5
  77. package/dist/providers/deepseek/Capabilities.d.ts.map +1 -1
  78. package/dist/providers/deepseek/Capabilities.js +9 -5
  79. package/dist/providers/deepseek/Chat.d.ts.map +1 -1
  80. package/dist/providers/deepseek/Chat.js +10 -9
  81. package/dist/providers/deepseek/DeepSeekProvider.d.ts +1 -1
  82. package/dist/providers/deepseek/DeepSeekProvider.d.ts.map +1 -1
  83. package/dist/providers/deepseek/DeepSeekProvider.js +4 -4
  84. package/dist/providers/deepseek/Models.d.ts.map +1 -1
  85. package/dist/providers/deepseek/Models.js +7 -7
  86. package/dist/providers/deepseek/Streaming.d.ts.map +1 -1
  87. package/dist/providers/deepseek/Streaming.js +11 -8
  88. package/dist/providers/deepseek/index.d.ts.map +1 -1
  89. package/dist/providers/deepseek/index.js +5 -4
  90. package/dist/providers/gemini/Capabilities.d.ts +5 -33
  91. package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
  92. package/dist/providers/gemini/Capabilities.js +7 -30
  93. package/dist/providers/gemini/Chat.d.ts.map +1 -1
  94. package/dist/providers/gemini/Chat.js +24 -19
  95. package/dist/providers/gemini/ChatUtils.d.ts.map +1 -1
  96. package/dist/providers/gemini/ChatUtils.js +10 -10
  97. package/dist/providers/gemini/Embeddings.d.ts.map +1 -1
  98. package/dist/providers/gemini/Embeddings.js +2 -2
  99. package/dist/providers/gemini/Errors.d.ts.map +1 -1
  100. package/dist/providers/gemini/Errors.js +5 -2
  101. package/dist/providers/gemini/GeminiProvider.d.ts +1 -1
  102. package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -1
  103. package/dist/providers/gemini/GeminiProvider.js +3 -3
  104. package/dist/providers/gemini/Image.d.ts.map +1 -1
  105. package/dist/providers/gemini/Image.js +7 -7
  106. package/dist/providers/gemini/Models.d.ts.map +1 -1
  107. package/dist/providers/gemini/Models.js +6 -6
  108. package/dist/providers/gemini/Streaming.d.ts.map +1 -1
  109. package/dist/providers/gemini/Streaming.js +18 -14
  110. package/dist/providers/gemini/Transcription.d.ts.map +1 -1
  111. package/dist/providers/gemini/Transcription.js +11 -11
  112. package/dist/providers/gemini/index.d.ts +1 -1
  113. package/dist/providers/gemini/index.d.ts.map +1 -1
  114. package/dist/providers/gemini/index.js +5 -4
  115. package/dist/providers/gemini/types.d.ts +4 -4
  116. package/dist/providers/gemini/types.d.ts.map +1 -1
  117. package/dist/providers/ollama/Capabilities.d.ts.map +1 -1
  118. package/dist/providers/ollama/Capabilities.js +6 -2
  119. package/dist/providers/ollama/Models.js +1 -1
  120. package/dist/providers/ollama/OllamaProvider.d.ts +1 -1
  121. package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -1
  122. package/dist/providers/ollama/OllamaProvider.js +2 -2
  123. package/dist/providers/ollama/index.d.ts +1 -1
  124. package/dist/providers/ollama/index.d.ts.map +1 -1
  125. package/dist/providers/ollama/index.js +7 -3
  126. package/dist/providers/openai/Capabilities.d.ts +2 -1
  127. package/dist/providers/openai/Capabilities.d.ts.map +1 -1
  128. package/dist/providers/openai/Capabilities.js +9 -21
  129. package/dist/providers/openai/Chat.d.ts.map +1 -1
  130. package/dist/providers/openai/Chat.js +18 -15
  131. package/dist/providers/openai/Embedding.d.ts.map +1 -1
  132. package/dist/providers/openai/Embedding.js +11 -7
  133. package/dist/providers/openai/Errors.d.ts.map +1 -1
  134. package/dist/providers/openai/Errors.js +5 -2
  135. package/dist/providers/openai/Image.d.ts.map +1 -1
  136. package/dist/providers/openai/Image.js +6 -6
  137. package/dist/providers/openai/Models.d.ts +1 -1
  138. package/dist/providers/openai/Models.d.ts.map +1 -1
  139. package/dist/providers/openai/Models.js +12 -8
  140. package/dist/providers/openai/Moderation.d.ts.map +1 -1
  141. package/dist/providers/openai/Moderation.js +6 -6
  142. package/dist/providers/openai/OpenAIProvider.d.ts +2 -3
  143. package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -1
  144. package/dist/providers/openai/OpenAIProvider.js +4 -4
  145. package/dist/providers/openai/Streaming.d.ts.map +1 -1
  146. package/dist/providers/openai/Streaming.js +18 -13
  147. package/dist/providers/openai/Transcription.d.ts.map +1 -1
  148. package/dist/providers/openai/Transcription.js +15 -12
  149. package/dist/providers/openai/index.d.ts +1 -1
  150. package/dist/providers/openai/index.d.ts.map +1 -1
  151. package/dist/providers/openai/index.js +6 -5
  152. package/dist/providers/openai/types.d.ts +1 -1
  153. package/dist/providers/openai/utils.js +2 -2
  154. package/dist/providers/openrouter/Capabilities.d.ts +3 -3
  155. package/dist/providers/openrouter/Capabilities.d.ts.map +1 -1
  156. package/dist/providers/openrouter/Capabilities.js +21 -24
  157. package/dist/providers/openrouter/Models.d.ts.map +1 -1
  158. package/dist/providers/openrouter/Models.js +20 -16
  159. package/dist/providers/openrouter/OpenRouterProvider.d.ts.map +1 -1
  160. package/dist/providers/openrouter/OpenRouterProvider.js +1 -1
  161. package/dist/providers/openrouter/index.d.ts +1 -1
  162. package/dist/providers/openrouter/index.d.ts.map +1 -1
  163. package/dist/providers/openrouter/index.js +6 -5
  164. package/dist/providers/registry.d.ts +18 -2
  165. package/dist/providers/registry.d.ts.map +1 -1
  166. package/dist/providers/registry.js +17 -2
  167. package/dist/providers/utils.js +1 -1
  168. package/dist/schema/Schema.d.ts +3 -3
  169. package/dist/schema/Schema.d.ts.map +1 -1
  170. package/dist/schema/Schema.js +2 -2
  171. package/dist/schema/to-json-schema.d.ts +1 -1
  172. package/dist/schema/to-json-schema.d.ts.map +1 -1
  173. package/dist/streaming/Stream.d.ts.map +1 -1
  174. package/dist/streaming/Stream.js +3 -3
  175. package/dist/utils/Binary.d.ts.map +1 -1
  176. package/dist/utils/Binary.js +23 -13
  177. package/dist/utils/FileLoader.d.ts.map +1 -1
  178. package/dist/utils/FileLoader.js +25 -4
  179. package/dist/utils/audio.js +1 -1
  180. package/dist/utils/fetch.d.ts.map +1 -1
  181. package/dist/utils/fetch.js +3 -2
  182. package/dist/utils/logger.d.ts +3 -3
  183. package/dist/utils/logger.d.ts.map +1 -1
  184. package/dist/utils/logger.js +2 -2
  185. package/package.json +1 -1
@@ -11,7 +11,7 @@ export class BinaryUtils {
11
11
  if (match && match[1] && match[2]) {
12
12
  return {
13
13
  mimeType: match[1],
14
- data: match[2],
14
+ data: match[2]
15
15
  };
16
16
  }
17
17
  }
@@ -25,7 +25,7 @@ export class BinaryUtils {
25
25
  const mimeType = response.headers.get("content-type") || this.guessMimeType(url);
26
26
  return {
27
27
  mimeType,
28
- data: base64,
28
+ data: base64
29
29
  };
30
30
  }
31
31
  catch (e) {
@@ -41,7 +41,7 @@ export class BinaryUtils {
41
41
  const mimeType = this.guessMimeType(url);
42
42
  return {
43
43
  mimeType,
44
- data: base64,
44
+ data: base64
45
45
  };
46
46
  }
47
47
  catch (e) {
@@ -54,17 +54,27 @@ export class BinaryUtils {
54
54
  static guessMimeType(filePath) {
55
55
  const ext = path.extname(filePath).toLowerCase();
56
56
  switch (ext) {
57
- case ".png": return "image/png";
57
+ case ".png":
58
+ return "image/png";
58
59
  case ".jpg":
59
- case ".jpeg": return "image/jpeg";
60
- case ".webp": return "image/webp";
61
- case ".gif": return "image/gif";
62
- case ".mp3": return "audio/mpeg";
63
- case ".wav": return "audio/wav";
64
- case ".ogg": return "audio/ogg";
65
- case ".m4a": return "audio/mp4";
66
- case ".pdf": return "application/pdf";
67
- default: return "application/octet-stream";
60
+ case ".jpeg":
61
+ return "image/jpeg";
62
+ case ".webp":
63
+ return "image/webp";
64
+ case ".gif":
65
+ return "image/gif";
66
+ case ".mp3":
67
+ return "audio/mpeg";
68
+ case ".wav":
69
+ return "audio/wav";
70
+ case ".ogg":
71
+ return "audio/ogg";
72
+ case ".m4a":
73
+ return "audio/mp4";
74
+ case ".pdf":
75
+ return "application/pdf";
76
+ default:
77
+ return "application/octet-stream";
68
78
  }
69
79
  }
70
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileLoader.d.ts","sourceRoot":"","sources":["../../src/utils/FileLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA2CjD,qBAAa,UAAU;WACR,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAmF1D"}
1
+ {"version":3,"file":"FileLoader.d.ts","sourceRoot":"","sources":["../../src/utils/FileLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgEjD,qBAAa,UAAU;WACR,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAmF1D"}
@@ -33,11 +33,32 @@ const MIME_TYPES = {
33
33
  ".rs": "text/x-rust",
34
34
  ".swift": "text/x-swift",
35
35
  ".kt": "text/x-kotlin",
36
- ".pdf": "application/pdf",
36
+ ".pdf": "application/pdf"
37
37
  };
38
38
  const TEXT_EXTENSIONS = new Set([
39
- ".json", ".js", ".mjs", ".cjs", ".ts", ".rb", ".py", ".txt", ".md", ".html", ".css", ".xml", ".yml", ".yaml", ".env",
40
- ".csv", ".go", ".java", ".c", ".cpp", ".rs", ".swift", ".kt"
39
+ ".json",
40
+ ".js",
41
+ ".mjs",
42
+ ".cjs",
43
+ ".ts",
44
+ ".rb",
45
+ ".py",
46
+ ".txt",
47
+ ".md",
48
+ ".html",
49
+ ".css",
50
+ ".xml",
51
+ ".yml",
52
+ ".yaml",
53
+ ".env",
54
+ ".csv",
55
+ ".go",
56
+ ".java",
57
+ ".c",
58
+ ".cpp",
59
+ ".rs",
60
+ ".swift",
61
+ ".kt"
41
62
  ]);
42
63
  export class FileLoader {
43
64
  static async load(filePath) {
@@ -70,7 +91,7 @@ export class FileLoader {
70
91
  // Default to image_url for unknown binary or use as-is
71
92
  return { type: "image_url", image_url: { url: dataUri } };
72
93
  }
73
- catch (error) {
94
+ catch {
74
95
  // Fallback to URL if fetch fails
75
96
  return { type: "image_url", image_url: { url: filePath } };
76
97
  }
@@ -38,7 +38,7 @@ export class AudioUtils {
38
38
  return data.length / (128000 / 8);
39
39
  }
40
40
  }
41
- catch (e) {
41
+ catch {
42
42
  // Ignore estimation errors
43
43
  }
44
44
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAuCnB"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAwCnB"}
@@ -29,7 +29,7 @@ export async function fetchWithTimeout(url, options = {}, timeoutMs) {
29
29
  : controller.signal;
30
30
  const response = await fetch(url, {
31
31
  ...options,
32
- signal: mergedSignal,
32
+ signal: mergedSignal
33
33
  });
34
34
  clearTimeout(timeoutId);
35
35
  return response;
@@ -37,7 +37,8 @@ export async function fetchWithTimeout(url, options = {}, timeoutMs) {
37
37
  catch (error) {
38
38
  clearTimeout(timeoutId);
39
39
  // Check if the error was due to timeout abort
40
- if (error.name === 'AbortError' && controller.signal.aborted) {
40
+ const isAbortError = error instanceof Error && error.name === "AbortError";
41
+ if (isAbortError && controller.signal.aborted) {
41
42
  throw new Error(`Request timeout after ${timeoutMs}ms`);
42
43
  }
43
44
  throw error;
@@ -1,14 +1,14 @@
1
1
  declare class Logger {
2
2
  private isDebugEnabled;
3
- debug(message: string, data?: any): void;
3
+ debug(message: string, data?: unknown): void;
4
4
  /**
5
5
  * Log HTTP request details for debugging
6
6
  */
7
- logRequest(provider: string, method: string, url: string, body?: any): void;
7
+ logRequest(provider: string, method: string, url: string, body?: unknown): void;
8
8
  /**
9
9
  * Log HTTP response details for debugging
10
10
  */
11
- logResponse(provider: string, status: number, statusText: string, body?: any): void;
11
+ logResponse(provider: string, status: number, statusText: string, body?: unknown): void;
12
12
  warn(message: string): void;
13
13
  error(message: string, error?: Error): void;
14
14
  info(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,cAAM,MAAM;IACV,OAAO,CAAC,cAAc;IAItB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAOxC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAS3E;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IASnF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG5B;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,cAAM,MAAM;IACV,OAAO,CAAC,cAAc;IAItB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAO5C;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAS/E;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IASvF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG5B;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -5,7 +5,7 @@ class Logger {
5
5
  }
6
6
  debug(message, data) {
7
7
  if (this.isDebugEnabled()) {
8
- const formattedData = data ? `\n${JSON.stringify(data, null, 2)}` : '';
8
+ const formattedData = data ? `\n${JSON.stringify(data, null, 2)}` : "";
9
9
  console.log(`[NodeLLM Debug] ${message}${formattedData}`);
10
10
  }
11
11
  }
@@ -35,7 +35,7 @@ class Logger {
35
35
  console.warn(`[NodeLLM] ${message}`);
36
36
  }
37
37
  error(message, error) {
38
- console.error(`[NodeLLM Error] ${message}`, error || '');
38
+ console.error(`[NodeLLM Error] ${message}`, error || "");
39
39
  }
40
40
  info(message) {
41
41
  console.log(`[NodeLLM] ${message}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-llm/core",
3
- "version": "1.5.4",
3
+ "version": "1.6.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",