@llm4ts/js 3.3.0 → 3.4.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/dist/Client.d.ts +2 -2
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +9 -28
- package/dist/Client.js.map +1 -1
- package/package.json +3 -4
- package/src/Client.ts +15 -29
package/dist/Client.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Schema from "effect/Schema";
|
|
2
|
-
export declare const JsProvider: Schema.Literals<
|
|
2
|
+
export declare const JsProvider: Schema.Literals<("openai" | "anthropic" | "gemini" | "lm-studio" | "ollama" | "mlx-lm" | "mock")[]>;
|
|
3
3
|
export type JsProvider = typeof JsProvider.Type;
|
|
4
4
|
declare const ClientConfig_base: Schema.Class<ClientConfig, Schema.Struct<{
|
|
5
|
-
readonly provider: Schema.Literals<
|
|
5
|
+
readonly provider: Schema.Literals<("openai" | "anthropic" | "gemini" | "lm-studio" | "ollama" | "mlx-lm" | "mock")[]>;
|
|
6
6
|
readonly model: Schema.optionalKey<Schema.String>;
|
|
7
7
|
readonly baseUrl: Schema.optionalKey<Schema.String>;
|
|
8
8
|
readonly apiKey: Schema.optionalKey<Schema.String>;
|
package/dist/Client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAkBvC,eAAO,MAAM,UAAU,qGAA2C,CAAA;AAClE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;;;;;;;;;;AAE/C,qBAAa,YAAa,SAAQ,iBAQhC;CAAG;;;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAKnC;CAAG;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAI9B;CAAG;;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAIhC;CAAG;AAEL,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,OAAO,GACP,UAAU,GACV,aAAa,GACb,SAAS,CAAA;AAEb,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;gBAEZ,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;CAMvE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACjF,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;CAClE;AA2ED,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,SAiC7C,CAAA;AAED,eAAO,MAAM,UAAU,QAAO,SAA8D,CAAA"}
|
package/dist/Client.js
CHANGED
|
@@ -4,18 +4,10 @@ import * as Redacted from "effect/Redacted";
|
|
|
4
4
|
import * as Schema from "effect/Schema";
|
|
5
5
|
import { ApiConnectorConfig } from "@llm4ts/core/ConnectorConfig";
|
|
6
6
|
import { AuthenticationError, ConfigError, ParseError, RateLimitError, TimeoutError } from "@llm4ts/core/Errors";
|
|
7
|
-
import { ConnectorIds } from "@llm4ts/core/Models";
|
|
7
|
+
import { ConnectorIds, apiProviderConnector, offeredApiProviderNames } from "@llm4ts/core/Models";
|
|
8
8
|
import { collect } from "@llm4ts/core/Streaming";
|
|
9
9
|
import { nodeFlowRunnerDependencies } from "@llm4ts/runner/FlowRunner";
|
|
10
|
-
export const JsProvider = Schema.Literals(
|
|
11
|
-
"mock",
|
|
12
|
-
"openai",
|
|
13
|
-
"anthropic",
|
|
14
|
-
"gemini",
|
|
15
|
-
"lm-studio",
|
|
16
|
-
"ollama",
|
|
17
|
-
"mlx-lm"
|
|
18
|
-
]);
|
|
10
|
+
export const JsProvider = Schema.Literals(offeredApiProviderNames);
|
|
19
11
|
export class ClientConfig extends Schema.Class("ClientConfig")({
|
|
20
12
|
provider: JsProvider,
|
|
21
13
|
model: Schema.optionalKey(Schema.String),
|
|
@@ -55,24 +47,6 @@ export class Llm4tsError extends Error {
|
|
|
55
47
|
this.detail = detail;
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
|
-
const connectorId = (provider) => {
|
|
59
|
-
switch (provider) {
|
|
60
|
-
case "mock":
|
|
61
|
-
return ConnectorIds.Mock;
|
|
62
|
-
case "openai":
|
|
63
|
-
return ConnectorIds.OpenAI;
|
|
64
|
-
case "anthropic":
|
|
65
|
-
return ConnectorIds.Anthropic;
|
|
66
|
-
case "gemini":
|
|
67
|
-
return ConnectorIds.GeminiApi;
|
|
68
|
-
case "lm-studio":
|
|
69
|
-
return ConnectorIds.LmStudio;
|
|
70
|
-
case "ollama":
|
|
71
|
-
return ConnectorIds.Ollama;
|
|
72
|
-
case "mlx-lm":
|
|
73
|
-
return ConnectorIds.MlxLm;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
50
|
const categoryOf = (error) => error instanceof ConfigError
|
|
77
51
|
? "Configuration"
|
|
78
52
|
: error instanceof AuthenticationError
|
|
@@ -113,6 +87,13 @@ const decodeConfig = (input) => {
|
|
|
113
87
|
throw new Llm4tsError("Configuration", `invalid client configuration: ${messageOf(error)}`, error);
|
|
114
88
|
}
|
|
115
89
|
};
|
|
90
|
+
const connectorId = (provider) => {
|
|
91
|
+
const connector = apiProviderConnector(provider);
|
|
92
|
+
if (connector === undefined) {
|
|
93
|
+
throw new Llm4tsError("Configuration", `invalid client configuration: provider ${provider}`);
|
|
94
|
+
}
|
|
95
|
+
return ConnectorIds[connector];
|
|
96
|
+
};
|
|
116
97
|
const apiConfig = (config) => ApiConnectorConfig.make({
|
|
117
98
|
connectorId: connectorId(config.provider),
|
|
118
99
|
model: config.model ?? (config.provider === "mock" ? "mock" : ""),
|
package/dist/Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llm4ts/js",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "Promise and exception facade for llm4ts",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -39,9 +39,8 @@
|
|
|
39
39
|
"typescript"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@llm4ts/core": "3.
|
|
43
|
-
"@llm4ts/
|
|
44
|
-
"@llm4ts/runner": "3.3.0"
|
|
42
|
+
"@llm4ts/core": "3.4.0",
|
|
43
|
+
"@llm4ts/runner": "3.4.0"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {
|
|
47
46
|
"effect": "4.0.0"
|
package/src/Client.ts
CHANGED
|
@@ -10,19 +10,16 @@ import {
|
|
|
10
10
|
RateLimitError,
|
|
11
11
|
TimeoutError
|
|
12
12
|
} from "@llm4ts/core/Errors"
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
ConnectorIds,
|
|
15
|
+
apiProviderConnector,
|
|
16
|
+
offeredApiProviderNames,
|
|
17
|
+
type ConnectorId
|
|
18
|
+
} from "@llm4ts/core/Models"
|
|
14
19
|
import { collect } from "@llm4ts/core/Streaming"
|
|
15
20
|
import { nodeFlowRunnerDependencies } from "@llm4ts/runner/FlowRunner"
|
|
16
21
|
|
|
17
|
-
export const JsProvider = Schema.Literals(
|
|
18
|
-
"mock",
|
|
19
|
-
"openai",
|
|
20
|
-
"anthropic",
|
|
21
|
-
"gemini",
|
|
22
|
-
"lm-studio",
|
|
23
|
-
"ollama",
|
|
24
|
-
"mlx-lm"
|
|
25
|
-
])
|
|
22
|
+
export const JsProvider = Schema.Literals(offeredApiProviderNames)
|
|
26
23
|
export type JsProvider = typeof JsProvider.Type
|
|
27
24
|
|
|
28
25
|
export class ClientConfig extends Schema.Class<ClientConfig>("ClientConfig")({
|
|
@@ -85,25 +82,6 @@ export interface LlmClient {
|
|
|
85
82
|
readonly health: (options?: CallOptions) => Promise<ClientHealth>
|
|
86
83
|
}
|
|
87
84
|
|
|
88
|
-
const connectorId = (provider: JsProvider): ConnectorId => {
|
|
89
|
-
switch (provider) {
|
|
90
|
-
case "mock":
|
|
91
|
-
return ConnectorIds.Mock
|
|
92
|
-
case "openai":
|
|
93
|
-
return ConnectorIds.OpenAI
|
|
94
|
-
case "anthropic":
|
|
95
|
-
return ConnectorIds.Anthropic
|
|
96
|
-
case "gemini":
|
|
97
|
-
return ConnectorIds.GeminiApi
|
|
98
|
-
case "lm-studio":
|
|
99
|
-
return ConnectorIds.LmStudio
|
|
100
|
-
case "ollama":
|
|
101
|
-
return ConnectorIds.Ollama
|
|
102
|
-
case "mlx-lm":
|
|
103
|
-
return ConnectorIds.MlxLm
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
85
|
const categoryOf = (error: unknown): ErrorCategory =>
|
|
108
86
|
error instanceof ConfigError
|
|
109
87
|
? "Configuration"
|
|
@@ -156,6 +134,14 @@ const decodeConfig = (input: unknown): ClientConfig => {
|
|
|
156
134
|
}
|
|
157
135
|
}
|
|
158
136
|
|
|
137
|
+
const connectorId = (provider: JsProvider): ConnectorId => {
|
|
138
|
+
const connector = apiProviderConnector(provider)
|
|
139
|
+
if (connector === undefined) {
|
|
140
|
+
throw new Llm4tsError("Configuration", `invalid client configuration: provider ${provider}`)
|
|
141
|
+
}
|
|
142
|
+
return ConnectorIds[connector]
|
|
143
|
+
}
|
|
144
|
+
|
|
159
145
|
const apiConfig = (config: ClientConfig): ApiConnectorConfig =>
|
|
160
146
|
ApiConnectorConfig.make({
|
|
161
147
|
connectorId: connectorId(config.provider),
|