@easynet/agent-llm 1.0.15 → 1.0.25
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/api/create-agent-llm.d.ts +4 -18
- package/dist/api/create-agent-llm.d.ts.map +1 -1
- package/dist/api/get-default-llm-config.d.ts +16 -0
- package/dist/api/get-default-llm-config.d.ts.map +1 -0
- package/dist/{chunk-AZDHRCIM.js → chunk-H4UQIDGT.js} +171 -338
- package/dist/chunk-H4UQIDGT.js.map +1 -0
- package/dist/cli/index.d.ts +0 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +7 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils.d.ts +12 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/config/index.d.ts +1 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/loader.d.ts +0 -14
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/parser.d.ts +0 -3
- package/dist/config/parser.d.ts.map +1 -1
- package/dist/config/yaml.d.ts +9 -0
- package/dist/config/yaml.d.ts.map +1 -0
- package/dist/connectivity/check.d.ts +0 -23
- package/dist/connectivity/check.d.ts.map +1 -1
- package/dist/connectivity/index.d.ts +2 -4
- package/dist/connectivity/index.d.ts.map +1 -1
- package/dist/connectivity/types.d.ts +0 -11
- package/dist/connectivity/types.d.ts.map +1 -1
- package/dist/extensions/index.d.ts +3 -3
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/loader.d.ts +1 -17
- package/dist/extensions/loader.d.ts.map +1 -1
- package/dist/extensions/npm-protocol.d.ts +7 -33
- package/dist/extensions/npm-protocol.d.ts.map +1 -1
- package/dist/index.d.ts +18 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -38
- package/dist/index.js.map +1 -1
- package/dist/langchain/index.d.ts +13 -3
- package/dist/langchain/index.d.ts.map +1 -1
- package/dist/langchain/openai-compatible.d.ts +21 -0
- package/dist/langchain/openai-compatible.d.ts.map +1 -0
- package/dist/registry/chat-model.d.ts +1 -8
- package/dist/registry/chat-model.d.ts.map +1 -1
- package/dist/registry/index.d.ts +0 -5
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/types.d.ts +12 -166
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/deep-merge.d.ts +5 -0
- package/dist/utils/deep-merge.d.ts.map +1 -0
- package/package.json +11 -9
- package/dist/chunk-AZDHRCIM.js.map +0 -1
- package/dist/langchain/adapter.d.ts +0 -21
- package/dist/langchain/adapter.d.ts.map +0 -1
- package/dist/providers/index.d.ts +0 -7
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/openai.d.ts +0 -9
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/registry/client.d.ts +0 -13
- package/dist/registry/client.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-protocol.d.ts","sourceRoot":"","sources":["../../src/extensions/npm-protocol.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"npm-protocol.d.ts","sourceRoot":"","sources":["../../src/extensions/npm-protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAG1C,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,GAAG,IAAI,CAUtG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWtH;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAE/D;AAiCD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsDxB;AAED,MAAM,WAAW,+BAAgC,SAAQ,yBAAyB;CAAG;AAErF,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,OAAO,CAAC,CAkClB;AAED,MAAM,WAAW,6BACf,SAAQ,sBAAsB,EAC5B,yBAAyB;CAAG;AAEhC,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @easynet/agent-llm:
|
|
3
|
-
*
|
|
4
|
-
* Extensions register via registerProvider/registerChatModelProvider; call loadLLMExtensions() before using them.
|
|
2
|
+
* @easynet/agent-llm: Simple LangChain ChatModel from llm.yaml.
|
|
3
|
+
* Multi-provider support via extensions; default is ChatOpenAI from @langchain/openai.
|
|
5
4
|
*/
|
|
6
5
|
export { parseLlmSection } from "./config/parser.js";
|
|
7
6
|
export { loadLlmConfig, parseLlmYaml, substituteEnv } from "./config/loader.js";
|
|
7
|
+
export { loadYamlConfig } from "./config/yaml.js";
|
|
8
8
|
export type { LoadLlmConfigOptions } from "./config/loader.js";
|
|
9
|
-
export {
|
|
10
|
-
export
|
|
9
|
+
export { deepMerge } from "./utils/deep-merge.js";
|
|
10
|
+
export { createChatOpenAI } from "./langchain/openai-compatible.js";
|
|
11
|
+
export type { CreateChatOpenAIOptions } from "./langchain/openai-compatible.js";
|
|
12
|
+
export { createChatModelFromLlmConfig } from "./langchain/index.js";
|
|
13
|
+
export type { CreateChatModelOptions } from "./langchain/index.js";
|
|
11
14
|
export { registerChatModelProvider, getChatModelFactory } from "./registry/chat-model.js";
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export
|
|
16
|
-
export {
|
|
17
|
-
export type { EnsureNpmPackageInstalledOptions, ResolveNpmProviderOptions, ResolveLlmSectionWithNpmOptions, CreateChatModelFromLlmConfigWithNpmOptions, } from "./extensions/npm-protocol.js";
|
|
18
|
-
export { loadLLMExtensions, resolveLLMExtensionPackages, discoverLLMExtensions, loadDiscoveredExtensions } from "./extensions/loader.js";
|
|
15
|
+
export type { ChatModelFactory } from "./registry/chat-model.js";
|
|
16
|
+
export { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec, getLatestVersion, getInstalledVersion, ensureNpmPackageInstalled, resolveNpmProvider, resolveLlmSectionWithNpm, createChatModelWithNpm, } from "./extensions/npm-protocol.js";
|
|
17
|
+
export type { EnsureNpmPackageInstalledOptions, ResolveNpmProviderOptions, ResolveLlmSectionWithNpmOptions, CreateChatModelWithNpmOptions, } from "./extensions/npm-protocol.js";
|
|
18
|
+
export { loadLLMExtensions, resolveLLMExtensionPackages, discoverLLMExtensions, loadDiscoveredExtensions, } from "./extensions/loader.js";
|
|
19
|
+
export type { LoadLLMExtensionsOptions } from "./extensions/loader.js";
|
|
19
20
|
export { createAgentLlM } from "./api/create-agent-llm.js";
|
|
20
21
|
export type { CreateAgentLlMOptions } from "./api/create-agent-llm.js";
|
|
22
|
+
export { getDefaultLlmConfig } from "./api/get-default-llm-config.js";
|
|
23
|
+
export type { GetDefaultLlmConfigOptions } from "./api/get-default-llm-config.js";
|
|
24
|
+
export { messageContentToString, exitWithError } from "./cli/utils.js";
|
|
21
25
|
export { checkEndpointConnectivity, buildUnreachableError, CIS_UNREACHABLE_REMINDER, } from "./connectivity/check.js";
|
|
26
|
+
export type { EndpointConnectivityOptions } from "./connectivity/check.js";
|
|
22
27
|
export type { ConnectionStatus, ConnectionPhase, CheckConnectivityResult, } from "./connectivity/types.js";
|
|
23
|
-
export type { LLMType, LLMConfig, AgentConfigLlmSection,
|
|
28
|
+
export type { LLMType, LLMConfig, AgentConfigLlmSection, ILLMExtension, } from "./types.js";
|
|
24
29
|
export { AGENT_LLM_PROVIDER_FIELD } from "./types.js";
|
|
25
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,gCAAgC,EAChC,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC3E,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
+
AGENT_LLM_PROVIDER_FIELD,
|
|
2
3
|
CIS_UNREACHABLE_REMINDER,
|
|
3
4
|
NPM_PROTOCOL_PREFIX,
|
|
4
5
|
buildUnreachableError,
|
|
5
6
|
checkEndpointConnectivity,
|
|
6
7
|
createAgentLlM,
|
|
7
8
|
createChatModelFromLlmConfig,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
createOpenAIChatClient,
|
|
11
|
-
createOpenAIClient,
|
|
12
|
-
createOpenAIImageClient,
|
|
9
|
+
createChatModelWithNpm,
|
|
10
|
+
createChatOpenAI,
|
|
13
11
|
discoverLLMExtensions,
|
|
14
12
|
ensureNpmPackageInstalled,
|
|
13
|
+
exitWithError,
|
|
15
14
|
getChatModelFactory,
|
|
16
15
|
getInstalledVersion,
|
|
17
16
|
getLatestVersion,
|
|
@@ -19,45 +18,64 @@ import {
|
|
|
19
18
|
loadDiscoveredExtensions,
|
|
20
19
|
loadLLMExtensions,
|
|
21
20
|
loadLlmConfig,
|
|
21
|
+
messageContentToString,
|
|
22
22
|
parseLlmSection,
|
|
23
23
|
parseLlmYaml,
|
|
24
24
|
parseNpmProviderSpec,
|
|
25
25
|
registerChatModelProvider,
|
|
26
|
-
registerProvider,
|
|
27
26
|
resolveLLMExtensionPackages,
|
|
28
27
|
resolveLlmSectionWithNpm,
|
|
29
28
|
resolveNpmProvider,
|
|
30
29
|
substituteEnv
|
|
31
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-H4UQIDGT.js";
|
|
32
31
|
|
|
33
|
-
// src/
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
// src/config/yaml.ts
|
|
33
|
+
import { readFileSync, existsSync } from "fs";
|
|
34
|
+
import { parse as parseYaml } from "yaml";
|
|
35
|
+
function loadYamlConfig(filePath) {
|
|
36
|
+
if (!existsSync(filePath)) return {};
|
|
37
|
+
try {
|
|
38
|
+
const content = readFileSync(filePath, "utf8");
|
|
39
|
+
const parsed = parseYaml(content);
|
|
40
|
+
return parsed || {};
|
|
41
|
+
} catch (e) {
|
|
42
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
43
|
+
throw new Error(`Failed to load YAML config from ${filePath}: ${msg}`, { cause: e });
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/utils/deep-merge.ts
|
|
48
|
+
function deepMerge(target, ...sources) {
|
|
49
|
+
for (const src of sources) {
|
|
50
|
+
if (!src || typeof src !== "object") continue;
|
|
51
|
+
for (const k of Object.keys(src)) {
|
|
52
|
+
const v = src[k];
|
|
53
|
+
if (v === void 0) continue;
|
|
54
|
+
const t = target[k];
|
|
55
|
+
if (v !== null && typeof v === "object" && !Array.isArray(v) && t !== null && typeof t === "object" && !Array.isArray(t)) {
|
|
56
|
+
deepMerge(t, v);
|
|
57
|
+
} else {
|
|
58
|
+
target[k] = v;
|
|
59
|
+
}
|
|
55
60
|
}
|
|
56
|
-
}
|
|
61
|
+
}
|
|
62
|
+
return target;
|
|
57
63
|
}
|
|
58
64
|
|
|
59
|
-
// src/
|
|
60
|
-
|
|
65
|
+
// src/api/get-default-llm-config.ts
|
|
66
|
+
import { join } from "path";
|
|
67
|
+
async function getDefaultLlmConfig(options = {}) {
|
|
68
|
+
const configPath = options.configPath ?? join(process.cwd(), "llm.yaml");
|
|
69
|
+
const llmSection = loadLlmConfig(configPath);
|
|
70
|
+
if (llmSection == null) return null;
|
|
71
|
+
const resolved = await resolveLlmSectionWithNpm(llmSection, {
|
|
72
|
+
installNpmIfMissing: options.installNpmIfMissing !== false,
|
|
73
|
+
cwd: process.cwd()
|
|
74
|
+
});
|
|
75
|
+
const { defaultId, configs } = parseLlmSection(resolved);
|
|
76
|
+
const defaultConfig = configs.find((c) => c.id === defaultId) ?? configs[0] ?? null;
|
|
77
|
+
return defaultConfig;
|
|
78
|
+
}
|
|
61
79
|
export {
|
|
62
80
|
AGENT_LLM_PROVIDER_FIELD,
|
|
63
81
|
CIS_UNREACHABLE_REMINDER,
|
|
@@ -66,26 +84,26 @@ export {
|
|
|
66
84
|
checkEndpointConnectivity,
|
|
67
85
|
createAgentLlM,
|
|
68
86
|
createChatModelFromLlmConfig,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
createOpenAIChatClient,
|
|
73
|
-
createOpenAIClient,
|
|
74
|
-
createOpenAIImageClient,
|
|
87
|
+
createChatModelWithNpm,
|
|
88
|
+
createChatOpenAI,
|
|
89
|
+
deepMerge,
|
|
75
90
|
discoverLLMExtensions,
|
|
76
91
|
ensureNpmPackageInstalled,
|
|
92
|
+
exitWithError,
|
|
77
93
|
getChatModelFactory,
|
|
94
|
+
getDefaultLlmConfig,
|
|
78
95
|
getInstalledVersion,
|
|
79
96
|
getLatestVersion,
|
|
80
97
|
isNpmProviderSpec,
|
|
81
98
|
loadDiscoveredExtensions,
|
|
82
99
|
loadLLMExtensions,
|
|
83
100
|
loadLlmConfig,
|
|
101
|
+
loadYamlConfig,
|
|
102
|
+
messageContentToString,
|
|
84
103
|
parseLlmSection,
|
|
85
104
|
parseLlmYaml,
|
|
86
105
|
parseNpmProviderSpec,
|
|
87
106
|
registerChatModelProvider,
|
|
88
|
-
registerProvider,
|
|
89
107
|
resolveLLMExtensionPackages,
|
|
90
108
|
resolveLlmSectionWithNpm,
|
|
91
109
|
resolveNpmProvider,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/
|
|
1
|
+
{"version":3,"sources":["../src/config/yaml.ts","../src/utils/deep-merge.ts","../src/api/get-default-llm-config.ts"],"sourcesContent":["/**\n * Generic YAML file loader utility.\n */\n\nimport { readFileSync, existsSync } from \"node:fs\";\nimport { parse as parseYaml } from \"yaml\";\n\n/**\n * Load and parse a YAML file into a typed object.\n * Returns empty object if file doesn't exist.\n */\nexport function loadYamlConfig<T = Record<string, unknown>>(filePath: string): T {\n if (!existsSync(filePath)) return {} as T;\n\n try {\n const content = readFileSync(filePath, \"utf8\");\n const parsed = parseYaml(content);\n return (parsed || {}) as T;\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n throw new Error(`Failed to load YAML config from ${filePath}: ${msg}`, { cause: e });\n }\n}\n","/**\n * Deep merge: overwrite target with each source (only defined values). Nested objects merged recursively.\n */\n\nexport function deepMerge<T extends object>(target: T, ...sources: Partial<T>[]): T {\n for (const src of sources) {\n if (!src || typeof src !== \"object\") continue;\n for (const k of Object.keys(src) as (keyof T)[]) {\n const v = src[k];\n if (v === undefined) continue;\n const t = (target as Record<keyof T, unknown>)[k];\n if (\n v !== null &&\n typeof v === \"object\" &&\n !Array.isArray(v) &&\n t !== null &&\n typeof t === \"object\" &&\n !Array.isArray(t)\n ) {\n deepMerge(t as object, v as object);\n } else {\n (target as Record<keyof T, unknown>)[k] = v;\n }\n }\n }\n return target;\n}\n","/**\n * Load llm.yaml, resolve npm providers, and return the default LLMConfig.\n * For use by CLIs (e.g. wallee-llm) that need config without creating a model.\n */\n\nimport { join } from \"node:path\";\nimport { loadLlmConfig } from \"../config/loader.js\";\nimport { parseLlmSection } from \"../config/parser.js\";\nimport { resolveLlmSectionWithNpm } from \"../extensions/npm-protocol.js\";\nimport type { LLMConfig } from \"../types.js\";\n\nexport interface GetDefaultLlmConfigOptions {\n /** Path to llm.yaml. Default: process.cwd() + \"/llm.yaml\" */\n configPath?: string;\n /** Install npm provider packages if missing. Default true. */\n installNpmIfMissing?: boolean;\n}\n\n/**\n * Returns the default LLM config from llm.yaml (after resolving npm: providers), or null if no config file.\n */\nexport async function getDefaultLlmConfig(\n options: GetDefaultLlmConfigOptions = {}\n): Promise<LLMConfig | null> {\n const configPath = options.configPath ?? join(process.cwd(), \"llm.yaml\");\n const llmSection = loadLlmConfig(configPath);\n if (llmSection == null) return null;\n\n const resolved = await resolveLlmSectionWithNpm(llmSection, {\n installNpmIfMissing: options.installNpmIfMissing !== false,\n cwd: process.cwd(),\n });\n\n const { defaultId, configs } = parseLlmSection(resolved);\n const defaultConfig = configs.find((c) => c.id === defaultId) ?? configs[0] ?? null;\n return defaultConfig;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,cAAc,kBAAkB;AACzC,SAAS,SAAS,iBAAiB;AAM5B,SAAS,eAA4C,UAAqB;AAC/E,MAAI,CAAC,WAAW,QAAQ,EAAG,QAAO,CAAC;AAEnC,MAAI;AACF,UAAM,UAAU,aAAa,UAAU,MAAM;AAC7C,UAAM,SAAS,UAAU,OAAO;AAChC,WAAQ,UAAU,CAAC;AAAA,EACrB,SAAS,GAAG;AACV,UAAM,MAAM,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AACrD,UAAM,IAAI,MAAM,mCAAmC,QAAQ,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AAAA,EACrF;AACF;;;AClBO,SAAS,UAA4B,WAAc,SAA0B;AAClF,aAAW,OAAO,SAAS;AACzB,QAAI,CAAC,OAAO,OAAO,QAAQ,SAAU;AACrC,eAAW,KAAK,OAAO,KAAK,GAAG,GAAkB;AAC/C,YAAM,IAAI,IAAI,CAAC;AACf,UAAI,MAAM,OAAW;AACrB,YAAM,IAAK,OAAoC,CAAC;AAChD,UACE,MAAM,QACN,OAAO,MAAM,YACb,CAAC,MAAM,QAAQ,CAAC,KAChB,MAAM,QACN,OAAO,MAAM,YACb,CAAC,MAAM,QAAQ,CAAC,GAChB;AACA,kBAAU,GAAa,CAAW;AAAA,MACpC,OAAO;AACL,QAAC,OAAoC,CAAC,IAAI;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;;;ACrBA,SAAS,YAAY;AAgBrB,eAAsB,oBACpB,UAAsC,CAAC,GACZ;AAC3B,QAAM,aAAa,QAAQ,cAAc,KAAK,QAAQ,IAAI,GAAG,UAAU;AACvE,QAAM,aAAa,cAAc,UAAU;AAC3C,MAAI,cAAc,KAAM,QAAO;AAE/B,QAAM,WAAW,MAAM,yBAAyB,YAAY;AAAA,IAC1D,qBAAqB,QAAQ,wBAAwB;AAAA,IACrD,KAAK,QAAQ,IAAI;AAAA,EACnB,CAAC;AAED,QAAM,EAAE,WAAW,QAAQ,IAAI,gBAAgB,QAAQ;AACvD,QAAM,gBAAgB,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,KAAK;AAC/E,SAAO;AACT;","names":[]}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* LangChain module:
|
|
2
|
+
* Simple LangChain module: create ChatOpenAI from llm config.
|
|
3
|
+
* Extensions can register custom ChatModel factories via the registry.
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
-
export
|
|
5
|
+
import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
6
|
+
export interface CreateChatModelOptions {
|
|
7
|
+
llmSection?: unknown;
|
|
8
|
+
modelEnv?: string;
|
|
9
|
+
apiKeyEnv?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a LangChain ChatModel from agent config llm section.
|
|
13
|
+
* Uses extension-registered factory when available; otherwise creates ChatOpenAI.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createChatModelFromLlmConfig(options?: CreateChatModelOptions): BaseChatModel;
|
|
6
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/langchain/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/langchain/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AASjF,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,sBAA2B,GACnC,aAAa,CA4Ef"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create ChatOpenAI from config - works with any OpenAI-compatible provider.
|
|
3
|
+
* This is the ONLY place we create ChatOpenAI instances.
|
|
4
|
+
*/
|
|
5
|
+
import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
6
|
+
import type { Agent } from "node:http";
|
|
7
|
+
export interface CreateChatOpenAIOptions {
|
|
8
|
+
baseURL?: string;
|
|
9
|
+
model: string;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
apiKey?: string;
|
|
12
|
+
defaultHeaders?: Record<string, string>;
|
|
13
|
+
defaultQuery?: Record<string, string>;
|
|
14
|
+
httpAgent?: Agent;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create ChatOpenAI from options.
|
|
18
|
+
* Works with OpenAI and any OpenAI-compatible endpoint (CIS, Ollama, etc.).
|
|
19
|
+
*/
|
|
20
|
+
export declare function createChatOpenAI(options: CreateChatOpenAIOptions): BaseChatModel;
|
|
21
|
+
//# sourceMappingURL=openai-compatible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/langchain/openai-compatible.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa,CA6BhF"}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Registry for LangChain ChatModel by provider name.
|
|
3
|
-
* Extensions register via registerChatModelProvider
|
|
3
|
+
* Extensions register via registerChatModelProvider.
|
|
4
4
|
*/
|
|
5
5
|
import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
6
6
|
import type { LLMConfig } from "../types.js";
|
|
7
7
|
export type ChatModelFactory = (config: LLMConfig) => BaseChatModel;
|
|
8
|
-
/**
|
|
9
|
-
* Register a ChatModel factory for a provider name.
|
|
10
|
-
* Called by extensions (e.g. wallee-llm) on load.
|
|
11
|
-
*/
|
|
12
8
|
export declare function registerChatModelProvider(providerName: string, factory: ChatModelFactory): void;
|
|
13
|
-
/**
|
|
14
|
-
* Get the ChatModel factory for a provider name, if registered.
|
|
15
|
-
*/
|
|
16
9
|
export declare function getChatModelFactory(providerName: string): ChatModelFactory | undefined;
|
|
17
10
|
//# sourceMappingURL=chat-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-model.d.ts","sourceRoot":"","sources":["../../src/registry/chat-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,aAAa,CAAC;AAIpE
|
|
1
|
+
{"version":3,"file":"chat-model.d.ts","sourceRoot":"","sources":["../../src/registry/chat-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,aAAa,CAAC;AAIpE,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAE/F;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEtF"}
|
package/dist/registry/index.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Registry module: manage LLM client and ChatModel registries.
|
|
3
|
-
*/
|
|
4
|
-
export { createLLMRegistry } from "./client.js";
|
|
5
|
-
export type { CreateLLMRegistryOptions } from "./client.js";
|
|
6
1
|
export { registerChatModelProvider, getChatModelFactory } from "./chat-model.js";
|
|
7
2
|
export type { ChatModelFactory } from "./chat-model.js";
|
|
8
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,37 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent LLM: OpenAI-compatible
|
|
3
|
-
*
|
|
2
|
+
* Agent LLM: OpenAI-compatible config.
|
|
3
|
+
* Returns LangChain BaseChatModel instances.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
6
6
|
export type LLMType = "chat" | "image";
|
|
7
|
-
/** Single LLM config: id, type, model; OpenAI-compatible API only */
|
|
8
7
|
export interface LLMConfig {
|
|
9
|
-
/** Unique id for fetching the instance from the registry */
|
|
10
8
|
id: string;
|
|
11
|
-
/** chat | image */
|
|
12
9
|
type: LLMType;
|
|
13
|
-
/** Must be openai or openai-compatible; only this format is supported */
|
|
14
10
|
provider: string;
|
|
15
|
-
/** Model name, e.g. gpt-4o-mini, dall-e-3 */
|
|
16
11
|
model?: string;
|
|
17
|
-
/** Temperature etc.; commonly used for chat */
|
|
18
12
|
temperature?: number;
|
|
19
|
-
/** API key; can also be set via env */
|
|
20
13
|
apiKey?: string;
|
|
21
|
-
/** OpenAI-compatible endpoint baseURL (e.g. Azure, local proxy, other /v1-compatible vendors) */
|
|
22
14
|
baseURL?: string;
|
|
23
|
-
|
|
15
|
+
options?: Record<string, unknown>;
|
|
24
16
|
[key: string]: unknown;
|
|
25
17
|
}
|
|
26
|
-
/** agent.yaml llm section: flat (each model keyed by name), default+instances, or single object */
|
|
27
18
|
export interface AgentConfigLlmSection {
|
|
28
|
-
/** Default model name (id) to use */
|
|
29
19
|
default?: string;
|
|
30
|
-
/** npm package name or array for dynamic load; e.g. "wallee-llm" or ["wallee-llm"] */
|
|
31
20
|
type?: string | string[];
|
|
32
|
-
/** Array of LLM configs */
|
|
33
21
|
instances?: LLMConfig[];
|
|
34
|
-
/** Single-object form: provider, model etc., parsed as id=default chat */
|
|
35
22
|
provider?: string;
|
|
36
23
|
model?: string;
|
|
37
24
|
name?: string;
|
|
@@ -39,161 +26,20 @@ export interface AgentConfigLlmSection {
|
|
|
39
26
|
apiKey?: string;
|
|
40
27
|
baseURL?: string;
|
|
41
28
|
base_url?: string;
|
|
42
|
-
|
|
29
|
+
options?: Record<string, unknown>;
|
|
43
30
|
[key: string]: unknown;
|
|
44
31
|
}
|
|
45
|
-
/**
|
|
46
|
-
export
|
|
47
|
-
role: "system" | "user" | "assistant";
|
|
48
|
-
content: string;
|
|
49
|
-
}
|
|
50
|
-
/** Minimal chat result */
|
|
51
|
-
export interface ChatResult {
|
|
52
|
-
content: string;
|
|
53
|
-
usage?: {
|
|
54
|
-
promptTokens?: number;
|
|
55
|
-
completionTokens?: number;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/** Stream chunk for chat responses */
|
|
59
|
-
export interface ChatStreamChunk {
|
|
60
|
-
content: string;
|
|
61
|
-
done: boolean;
|
|
62
|
-
usage?: {
|
|
63
|
-
promptTokens?: number;
|
|
64
|
-
completionTokens?: number;
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/** OpenAI-compatible tool definition (function) */
|
|
68
|
-
export interface ToolDefinition {
|
|
69
|
-
type: "function";
|
|
70
|
-
function: {
|
|
71
|
-
name: string;
|
|
72
|
-
description?: string;
|
|
73
|
-
parameters?: object;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
/** Message with tool calls (assistant may include tool_calls; tool = tool result) */
|
|
77
|
-
export type ChatWithToolsMessage = ChatMessage | {
|
|
78
|
-
role: "tool";
|
|
79
|
-
content: string;
|
|
80
|
-
tool_call_id: string;
|
|
81
|
-
} | {
|
|
82
|
-
role: "assistant";
|
|
83
|
-
content?: string | null;
|
|
84
|
-
tool_calls?: Array<{
|
|
85
|
-
id: string;
|
|
86
|
-
type: "function";
|
|
87
|
-
function: {
|
|
88
|
-
name: string;
|
|
89
|
-
arguments: string;
|
|
90
|
-
};
|
|
91
|
-
}>;
|
|
92
|
-
};
|
|
93
|
-
/** Chat result with tool calls */
|
|
94
|
-
export interface ChatWithToolsResult {
|
|
95
|
-
message: {
|
|
96
|
-
role: "assistant";
|
|
97
|
-
content?: string | null;
|
|
98
|
-
tool_calls?: Array<{
|
|
99
|
-
id: string;
|
|
100
|
-
type: "function";
|
|
101
|
-
function: {
|
|
102
|
-
name: string;
|
|
103
|
-
arguments: string;
|
|
104
|
-
};
|
|
105
|
-
}>;
|
|
106
|
-
};
|
|
107
|
-
usage?: {
|
|
108
|
-
promptTokens?: number;
|
|
109
|
-
completionTokens?: number;
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
/** Stream chunk for chat with tools responses */
|
|
113
|
-
export interface ChatWithToolsStreamChunk {
|
|
114
|
-
delta: {
|
|
115
|
-
role?: "assistant";
|
|
116
|
-
content?: string | null;
|
|
117
|
-
tool_calls?: Array<{
|
|
118
|
-
index: number;
|
|
119
|
-
id?: string;
|
|
120
|
-
type?: "function";
|
|
121
|
-
function?: {
|
|
122
|
-
name?: string;
|
|
123
|
-
arguments?: string;
|
|
124
|
-
};
|
|
125
|
-
}>;
|
|
126
|
-
};
|
|
127
|
-
done: boolean;
|
|
128
|
-
usage?: {
|
|
129
|
-
promptTokens?: number;
|
|
130
|
-
completionTokens?: number;
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
/** Image generation result */
|
|
134
|
-
export interface ImageResult {
|
|
135
|
-
url?: string;
|
|
136
|
-
b64?: string;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Minimal interface for a single LLM instance.
|
|
140
|
-
* type=chat provides chat; type=image provides generateImage.
|
|
141
|
-
* chat type may optionally provide chatWithTools for ReAct/Agent tool calling.
|
|
142
|
-
*/
|
|
143
|
-
export interface ILLMClient {
|
|
144
|
-
readonly id: string;
|
|
145
|
-
readonly type: LLMType;
|
|
146
|
-
/** Chat (available when type=chat) */
|
|
147
|
-
chat(messages: ChatMessage[]): Promise<ChatResult>;
|
|
148
|
-
/**
|
|
149
|
-
* Chat with streaming (optional when type=chat).
|
|
150
|
-
* Returns an async generator that yields chunks as they arrive.
|
|
151
|
-
*/
|
|
152
|
-
chatStream?(messages: ChatMessage[]): AsyncGenerator<ChatStreamChunk, void, unknown>;
|
|
153
|
-
/**
|
|
154
|
-
* Chat with tools (optional when type=chat; for ReAct/Agent).
|
|
155
|
-
* If not implemented, caller may poll with chat or use another client.
|
|
156
|
-
*/
|
|
157
|
-
chatWithTools?(messages: ChatWithToolsMessage[], tools: ToolDefinition[], options?: {
|
|
158
|
-
timeoutMs?: number;
|
|
159
|
-
}): Promise<ChatWithToolsResult>;
|
|
160
|
-
/**
|
|
161
|
-
* Chat with tools and streaming (optional when type=chat).
|
|
162
|
-
* Returns an async generator that yields chunks as they arrive.
|
|
163
|
-
*/
|
|
164
|
-
chatWithToolsStream?(messages: ChatWithToolsMessage[], tools: ToolDefinition[], options?: {
|
|
165
|
-
timeoutMs?: number;
|
|
166
|
-
}): AsyncGenerator<ChatWithToolsStreamChunk, void, unknown>;
|
|
167
|
-
/** Image generation (when type=image); otherwise may throw or be ignored */
|
|
168
|
-
generateImage?(options: {
|
|
169
|
-
prompt: string;
|
|
170
|
-
size?: string;
|
|
171
|
-
n?: number;
|
|
172
|
-
}): Promise<ImageResult>;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* LLM registry created from llm section: get instance by id.
|
|
176
|
-
*/
|
|
177
|
-
export interface ILLMRegistry {
|
|
178
|
-
get(id: string): ILLMClient | undefined;
|
|
179
|
-
defaultId(): string | undefined;
|
|
180
|
-
ids(): string[];
|
|
181
|
-
}
|
|
32
|
+
/** package.json field: when true, the package is an agent-llm provider (for discovery). */
|
|
33
|
+
export declare const AGENT_LLM_PROVIDER_FIELD = "agentLlmProvider";
|
|
182
34
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* Prefer createClient + createChatModel so the framework does registration (extension need not call register).
|
|
35
|
+
* Extension interface: register a ChatModel factory by provider name.
|
|
36
|
+
* Extensions implement getLLMExtension(); framework registers the factory when loading.
|
|
186
37
|
*/
|
|
187
38
|
export interface ILLMExtension {
|
|
188
|
-
/** Provider name (e.g. "openai" or extension-specific name). Framework registers under this name. */
|
|
189
39
|
readonly providerName: string;
|
|
190
|
-
/**
|
|
191
|
-
readonly
|
|
192
|
-
/**
|
|
193
|
-
readonly createChatModel?: (config: LLMConfig) => unknown;
|
|
194
|
-
/** Legacy: if extension provides register(), framework calls it. Prefer createClient + createChatModel so framework registers. */
|
|
40
|
+
/** ChatModel factory. Framework calls registerChatModelProvider(providerName, createChatModel). */
|
|
41
|
+
readonly createChatModel?: (config: LLMConfig) => BaseChatModel;
|
|
42
|
+
/** Legacy: if extension provides register(), framework calls it. */
|
|
195
43
|
register?(): void;
|
|
196
44
|
}
|
|
197
|
-
/** package.json field: when true, the package is an agent-llm provider (for discovery). */
|
|
198
|
-
export declare const AGENT_LLM_PROVIDER_FIELD = "agentLlmProvider";
|
|
199
45
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAEjF,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,2FAA2F;AAC3F,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mGAAmG;IACnG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,aAAa,CAAC;IAChE,oEAAoE;IACpE,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-merge.d.ts","sourceRoot":"","sources":["../../src/utils/deep-merge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAsBlF"}
|