@node-llm/core 0.8.0 → 1.0.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 (100) hide show
  1. package/README.md +64 -67
  2. package/dist/chat/Chat.d.ts +3 -2
  3. package/dist/chat/Chat.d.ts.map +1 -1
  4. package/dist/chat/Chat.js +4 -4
  5. package/dist/chat/ChatStream.d.ts +25 -0
  6. package/dist/chat/ChatStream.d.ts.map +1 -0
  7. package/dist/chat/ChatStream.js +93 -0
  8. package/dist/config.d.ts +4 -2
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +2 -0
  11. package/dist/embedding/Embedding.d.ts +1 -1
  12. package/dist/embedding/Embedding.d.ts.map +1 -1
  13. package/dist/errors/index.d.ts +22 -0
  14. package/dist/errors/index.d.ts.map +1 -1
  15. package/dist/errors/index.js +32 -0
  16. package/dist/index.d.ts +4 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -1
  19. package/dist/llm.d.ts +2 -1
  20. package/dist/llm.d.ts.map +1 -1
  21. package/dist/llm.js +26 -28
  22. package/dist/models/ModelRegistry.d.ts +4 -0
  23. package/dist/models/ModelRegistry.d.ts.map +1 -1
  24. package/dist/models/ModelRegistry.js +15 -0
  25. package/dist/models/models.d.ts +729 -60
  26. package/dist/models/models.d.ts.map +1 -1
  27. package/dist/models/models.js +24375 -2312
  28. package/dist/models/types.d.ts +3 -3
  29. package/dist/models/types.d.ts.map +1 -1
  30. package/dist/models/types.js +3 -0
  31. package/dist/providers/BaseProvider.d.ts +21 -0
  32. package/dist/providers/BaseProvider.d.ts.map +1 -0
  33. package/dist/providers/BaseProvider.js +28 -0
  34. package/dist/providers/Provider.d.ts +19 -1
  35. package/dist/providers/Provider.d.ts.map +1 -1
  36. package/dist/providers/anthropic/AnthropicProvider.d.ts +6 -7
  37. package/dist/providers/anthropic/AnthropicProvider.d.ts.map +1 -1
  38. package/dist/providers/anthropic/AnthropicProvider.js +16 -13
  39. package/dist/providers/anthropic/Streaming.d.ts +1 -1
  40. package/dist/providers/anthropic/Streaming.d.ts.map +1 -1
  41. package/dist/providers/anthropic/Streaming.js +80 -54
  42. package/dist/providers/deepseek/Capabilities.js +1 -1
  43. package/dist/providers/deepseek/DeepSeekProvider.d.ts +5 -1
  44. package/dist/providers/deepseek/DeepSeekProvider.d.ts.map +1 -1
  45. package/dist/providers/deepseek/DeepSeekProvider.js +15 -1
  46. package/dist/providers/deepseek/Streaming.d.ts +1 -1
  47. package/dist/providers/deepseek/Streaming.d.ts.map +1 -1
  48. package/dist/providers/deepseek/Streaming.js +80 -48
  49. package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
  50. package/dist/providers/gemini/Embeddings.d.ts +1 -1
  51. package/dist/providers/gemini/Embeddings.d.ts.map +1 -1
  52. package/dist/providers/gemini/GeminiProvider.d.ts +6 -4
  53. package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -1
  54. package/dist/providers/gemini/GeminiProvider.js +14 -4
  55. package/dist/providers/gemini/Streaming.d.ts +1 -1
  56. package/dist/providers/gemini/Streaming.d.ts.map +1 -1
  57. package/dist/providers/gemini/Streaming.js +62 -39
  58. package/dist/providers/ollama/Capabilities.d.ts.map +1 -1
  59. package/dist/providers/ollama/Capabilities.js +5 -1
  60. package/dist/providers/ollama/OllamaProvider.d.ts +1 -0
  61. package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -1
  62. package/dist/providers/ollama/OllamaProvider.js +3 -0
  63. package/dist/providers/openai/Embedding.d.ts +1 -1
  64. package/dist/providers/openai/Embedding.d.ts.map +1 -1
  65. package/dist/providers/openai/OpenAIProvider.d.ts +6 -3
  66. package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -1
  67. package/dist/providers/openai/OpenAIProvider.js +15 -1
  68. package/dist/providers/openai/Streaming.d.ts +1 -1
  69. package/dist/providers/openai/Streaming.d.ts.map +1 -1
  70. package/dist/providers/openai/Streaming.js +75 -43
  71. package/dist/providers/openrouter/Capabilities.d.ts +13 -0
  72. package/dist/providers/openrouter/Capabilities.d.ts.map +1 -0
  73. package/dist/providers/openrouter/Capabilities.js +67 -0
  74. package/dist/providers/openrouter/Models.d.ts +11 -0
  75. package/dist/providers/openrouter/Models.d.ts.map +1 -0
  76. package/dist/providers/openrouter/Models.js +88 -0
  77. package/dist/providers/openrouter/OpenRouterProvider.d.ts +21 -0
  78. package/dist/providers/openrouter/OpenRouterProvider.d.ts.map +1 -0
  79. package/dist/providers/openrouter/OpenRouterProvider.js +24 -0
  80. package/dist/providers/openrouter/index.d.ts +11 -0
  81. package/dist/providers/openrouter/index.d.ts.map +1 -0
  82. package/dist/providers/openrouter/index.js +26 -0
  83. package/dist/providers/registry.d.ts +11 -1
  84. package/dist/providers/registry.d.ts.map +1 -1
  85. package/dist/providers/registry.js +14 -0
  86. package/dist/streaming/Stream.d.ts +29 -0
  87. package/dist/streaming/Stream.d.ts.map +1 -0
  88. package/dist/streaming/Stream.js +67 -0
  89. package/dist/utils/FileLoader.d.ts.map +1 -1
  90. package/dist/utils/FileLoader.js +34 -3
  91. package/dist/utils/logger.d.ts +13 -0
  92. package/dist/utils/logger.d.ts.map +1 -0
  93. package/dist/utils/logger.js +24 -0
  94. package/package.json +1 -1
  95. package/dist/chat/Stream.d.ts +0 -21
  96. package/dist/chat/Stream.d.ts.map +0 -1
  97. package/dist/chat/Stream.js +0 -73
  98. package/dist/providers/Embedding.d.ts +0 -20
  99. package/dist/providers/Embedding.d.ts.map +0 -1
  100. package/dist/providers/Embedding.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAM,MAAM;IACV,OAAO,CAAC,cAAc;IAItB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAOxC,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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Centralized logger for node-llm
3
+ */
4
+ class Logger {
5
+ isDebugEnabled() {
6
+ return process.env.NODELLM_DEBUG === "true";
7
+ }
8
+ debug(message, data) {
9
+ if (this.isDebugEnabled()) {
10
+ const formattedData = data ? `\n${JSON.stringify(data, null, 2)}` : '';
11
+ console.log(`[NodeLLM Debug] ${message}${formattedData}`);
12
+ }
13
+ }
14
+ warn(message) {
15
+ console.warn(`[NodeLLM] ${message}`);
16
+ }
17
+ error(message, error) {
18
+ console.error(`[NodeLLM Error] ${message}`, error || '');
19
+ }
20
+ info(message) {
21
+ console.log(`[NodeLLM] ${message}`);
22
+ }
23
+ }
24
+ export const logger = new Logger();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-llm/core",
3
- "version": "0.8.0",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,21 +0,0 @@
1
- import { Message } from "./Message.js";
2
- import { ChatOptions } from "./ChatOptions.js";
3
- import { Provider } from "../providers/Provider.js";
4
- export declare class Stream {
5
- private readonly provider;
6
- private readonly model;
7
- private readonly options;
8
- private messages;
9
- constructor(provider: Provider, model: string, options?: ChatOptions, messages?: Message[]);
10
- /**
11
- * Read-only access to message history
12
- */
13
- get history(): readonly Message[];
14
- /**
15
- * Streams the model's response to a user question.
16
- * @param content The user's question to send to the model.
17
- * @returns An async generator yielding chunks of the assistant's response as strings.
18
- */
19
- stream(content: string): AsyncGenerator<import("../providers/Provider.js").ChatChunk, void, unknown>;
20
- }
21
- //# sourceMappingURL=Stream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/chat/Stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,qBAAa,MAAM;IAIf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAY;gBAGT,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,EAC1C,QAAQ,CAAC,EAAE,OAAO,EAAE;IAmBtB;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,OAAO,EAAE,CAEhC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM;CA+C9B"}
@@ -1,73 +0,0 @@
1
- import { ChatResponseString } from "./ChatResponse.js";
2
- export class Stream {
3
- provider;
4
- model;
5
- options;
6
- messages;
7
- constructor(provider, model, options = {}, messages) {
8
- this.provider = provider;
9
- this.model = model;
10
- this.options = options;
11
- this.messages = messages ?? [];
12
- // Only initialize if we're starting a new history
13
- if (this.messages.length === 0) {
14
- if (options.systemPrompt) {
15
- this.messages.push({
16
- role: "system",
17
- content: options.systemPrompt,
18
- });
19
- }
20
- if (options.messages) {
21
- this.messages.push(...options.messages);
22
- }
23
- }
24
- }
25
- /**
26
- * Read-only access to message history
27
- */
28
- get history() {
29
- return this.messages;
30
- }
31
- /**
32
- * Streams the model's response to a user question.
33
- * @param content The user's question to send to the model.
34
- * @returns An async generator yielding chunks of the assistant's response as strings.
35
- */
36
- async *stream(content) {
37
- this.messages.push({ role: "user", content });
38
- if (!this.provider.stream) {
39
- throw new Error("Streaming not supported by provider");
40
- }
41
- let full = "";
42
- let fullReasoning = "";
43
- let isFirst = true;
44
- for await (const chunk of this.provider.stream({
45
- model: this.model,
46
- messages: this.messages,
47
- temperature: this.options.temperature,
48
- max_tokens: this.options.maxTokens,
49
- })) {
50
- if (isFirst) {
51
- if (this.options.onNewMessage)
52
- this.options.onNewMessage();
53
- isFirst = false;
54
- }
55
- if (chunk.content) {
56
- full += chunk.content;
57
- }
58
- if (chunk.reasoning) {
59
- fullReasoning += chunk.reasoning;
60
- }
61
- yield chunk;
62
- }
63
- this.messages.push({
64
- role: "assistant",
65
- content: full,
66
- // @ts-ignore
67
- reasoning: fullReasoning || undefined
68
- });
69
- if (this.options.onEndMessage) {
70
- this.options.onEndMessage(new ChatResponseString(full, { input_tokens: 0, output_tokens: 0, total_tokens: 0 }, this.model, fullReasoning || undefined));
71
- }
72
- }
73
- }
@@ -1,20 +0,0 @@
1
- export interface EmbeddingRequest {
2
- input: string | string[];
3
- model?: string;
4
- dimensions?: number;
5
- user?: string;
6
- }
7
- export interface EmbeddingVector {
8
- embedding: number[];
9
- index: number;
10
- }
11
- export interface EmbeddingResponse {
12
- vectors: number[][];
13
- model: string;
14
- input_tokens: number;
15
- dimensions: number;
16
- }
17
- export interface EmbeddingProvider {
18
- embed(request: EmbeddingRequest): Promise<EmbeddingResponse>;
19
- }
20
- //# sourceMappingURL=Embedding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Embedding.d.ts","sourceRoot":"","sources":["../../src/providers/Embedding.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D"}
@@ -1 +0,0 @@
1
- export {};