@node-llm/core 0.4.1 → 0.5.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.
- package/README.md +43 -20
- package/dist/chat/Chat.d.ts +1 -1
- package/dist/chat/Chat.d.ts.map +1 -1
- package/dist/chat/Chat.js +2 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +4 -0
- package/dist/providers/Provider.d.ts +1 -0
- package/dist/providers/Provider.d.ts.map +1 -1
- package/dist/providers/anthropic/AnthropicProvider.d.ts +32 -0
- package/dist/providers/anthropic/AnthropicProvider.d.ts.map +1 -0
- package/dist/providers/anthropic/AnthropicProvider.js +51 -0
- package/dist/providers/anthropic/Capabilities.d.ts +47 -0
- package/dist/providers/anthropic/Capabilities.d.ts.map +1 -0
- package/dist/providers/anthropic/Capabilities.js +153 -0
- package/dist/providers/anthropic/Chat.d.ts +8 -0
- package/dist/providers/anthropic/Chat.d.ts.map +1 -0
- package/dist/providers/anthropic/Chat.js +93 -0
- package/dist/providers/anthropic/Errors.d.ts +2 -0
- package/dist/providers/anthropic/Errors.d.ts.map +1 -0
- package/dist/providers/anthropic/Errors.js +33 -0
- package/dist/providers/anthropic/Models.d.ts +8 -0
- package/dist/providers/anthropic/Models.d.ts.map +1 -0
- package/dist/providers/anthropic/Models.js +63 -0
- package/dist/providers/anthropic/Streaming.d.ts +8 -0
- package/dist/providers/anthropic/Streaming.d.ts.map +1 -0
- package/dist/providers/anthropic/Streaming.js +104 -0
- package/dist/providers/anthropic/Utils.d.ts +5 -0
- package/dist/providers/anthropic/Utils.d.ts.map +1 -0
- package/dist/providers/anthropic/Utils.js +125 -0
- package/dist/providers/anthropic/index.d.ts +2 -0
- package/dist/providers/anthropic/index.d.ts.map +1 -0
- package/dist/providers/anthropic/index.js +11 -0
- package/dist/providers/anthropic/types.d.ts +57 -0
- package/dist/providers/anthropic/types.d.ts.map +1 -0
- package/dist/providers/anthropic/types.js +1 -0
- package/dist/providers/gemini/Capabilities.d.ts.map +1 -1
- package/dist/providers/gemini/Capabilities.js +5 -2
- package/dist/providers/gemini/Chat.d.ts +1 -0
- package/dist/providers/gemini/Chat.d.ts.map +1 -1
- package/dist/providers/gemini/Chat.js +43 -4
- package/dist/providers/gemini/GeminiProvider.d.ts +2 -1
- package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/gemini/GeminiProvider.js +3 -0
- package/dist/providers/gemini/Streaming.d.ts +1 -0
- package/dist/providers/gemini/Streaming.d.ts.map +1 -1
- package/dist/providers/gemini/Streaming.js +34 -4
- package/dist/providers/registry.js +1 -1
- package/dist/utils/FileLoader.d.ts.map +1 -1
- package/dist/utils/FileLoader.js +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Provider, ChatRequest, ChatResponse, ModelInfo, ChatChunk, ImageRequest, ImageResponse, TranscriptionRequest, TranscriptionResponse } from "../Provider.js";
|
|
1
|
+
import { Provider, ChatRequest, ChatResponse, ModelInfo, ChatChunk, ImageRequest, ImageResponse, TranscriptionRequest, TranscriptionResponse, ModerationRequest, ModerationResponse } from "../Provider.js";
|
|
2
2
|
import { EmbeddingRequest, EmbeddingResponse } from "../Embedding.js";
|
|
3
3
|
export interface GeminiProviderOptions {
|
|
4
4
|
apiKey: string;
|
|
@@ -30,5 +30,6 @@ export declare class GeminiProvider implements Provider {
|
|
|
30
30
|
paint(request: ImageRequest): Promise<ImageResponse>;
|
|
31
31
|
embed(request: EmbeddingRequest): Promise<EmbeddingResponse>;
|
|
32
32
|
transcribe(request: TranscriptionRequest): Promise<TranscriptionResponse>;
|
|
33
|
+
moderate(_request: ModerationRequest): Promise<ModerationResponse>;
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=GeminiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"GeminiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAoBjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnBpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAEpD,YAAY;gCACO,MAAM;+BACP,MAAM;0CACK,MAAM;oCACZ,MAAM;yCACD,MAAM;uCACR,MAAM;oCACT,MAAM;kCACR,MAAM;MAChC;gBAE2B,OAAO,EAAE,qBAAqB;IAUrD,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIhD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC;IAIxD,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIlC,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpD,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI5D,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIzE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMxD,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM;IAEtE,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Streaming.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/Streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMxD,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM;IAEtE,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC;IAgF/D,OAAO,CAAC,cAAc;CAwBvB"}
|
|
@@ -12,12 +12,22 @@ export class GeminiStreaming {
|
|
|
12
12
|
const temperature = Capabilities.normalizeTemperature(request.temperature, request.model);
|
|
13
13
|
const url = `${this.baseUrl}/models/${request.model}:streamGenerateContent?alt=sse&key=${this.apiKey}`;
|
|
14
14
|
const { contents, systemInstructionParts } = await GeminiChatUtils.convertMessages(request.messages);
|
|
15
|
+
const generationConfig = {
|
|
16
|
+
temperature: temperature ?? undefined,
|
|
17
|
+
maxOutputTokens: request.max_tokens,
|
|
18
|
+
};
|
|
19
|
+
if (request.response_format?.type === "json_object") {
|
|
20
|
+
generationConfig.responseMimeType = "application/json";
|
|
21
|
+
}
|
|
22
|
+
else if (request.response_format?.type === "json_schema") {
|
|
23
|
+
generationConfig.responseMimeType = "application/json";
|
|
24
|
+
if (request.response_format.json_schema?.schema) {
|
|
25
|
+
generationConfig.responseSchema = this.sanitizeSchema(request.response_format.json_schema.schema);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
15
28
|
const payload = {
|
|
16
29
|
contents,
|
|
17
|
-
generationConfig
|
|
18
|
-
temperature: temperature ?? undefined,
|
|
19
|
-
maxOutputTokens: request.max_tokens,
|
|
20
|
-
},
|
|
30
|
+
generationConfig,
|
|
21
31
|
};
|
|
22
32
|
if (systemInstructionParts.length > 0) {
|
|
23
33
|
payload.systemInstruction = { parts: systemInstructionParts };
|
|
@@ -67,4 +77,24 @@ export class GeminiStreaming {
|
|
|
67
77
|
}
|
|
68
78
|
}
|
|
69
79
|
}
|
|
80
|
+
sanitizeSchema(schema) {
|
|
81
|
+
if (typeof schema !== "object" || schema === null)
|
|
82
|
+
return schema;
|
|
83
|
+
const sanitized = { ...schema };
|
|
84
|
+
// Remove unsupported fields
|
|
85
|
+
delete sanitized.additionalProperties;
|
|
86
|
+
delete sanitized.$schema;
|
|
87
|
+
delete sanitized.$id;
|
|
88
|
+
delete sanitized.definitions;
|
|
89
|
+
// Recursively sanitize
|
|
90
|
+
if (sanitized.properties) {
|
|
91
|
+
for (const key in sanitized.properties) {
|
|
92
|
+
sanitized.properties[key] = this.sanitizeSchema(sanitized.properties[key]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (sanitized.items) {
|
|
96
|
+
sanitized.items = this.sanitizeSchema(sanitized.items);
|
|
97
|
+
}
|
|
98
|
+
return sanitized;
|
|
99
|
+
}
|
|
70
100
|
}
|
|
@@ -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;
|
|
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;CA+C1D"}
|
package/dist/utils/FileLoader.js
CHANGED
|
@@ -33,6 +33,7 @@ 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
37
|
};
|
|
37
38
|
const TEXT_EXTENSIONS = new Set([
|
|
38
39
|
".json", ".js", ".mjs", ".cjs", ".ts", ".rb", ".py", ".txt", ".md", ".html", ".css", ".xml", ".yml", ".yaml", ".env",
|