@easynet/agent-model 1.0.53

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 (118) hide show
  1. package/README.md +72 -0
  2. package/dist/api/create-agent-llm.d.ts +15 -0
  3. package/dist/api/create-agent-llm.d.ts.map +1 -0
  4. package/dist/api/create-embed-fn.d.ts +10 -0
  5. package/dist/api/create-embed-fn.d.ts.map +1 -0
  6. package/dist/api/get-default-llm-config.d.ts +16 -0
  7. package/dist/api/get-default-llm-config.d.ts.map +1 -0
  8. package/dist/api/get-default-vlm-config.d.ts +15 -0
  9. package/dist/api/get-default-vlm-config.d.ts.map +1 -0
  10. package/dist/chunk-4OLU43SH.js +165 -0
  11. package/dist/chunk-4OLU43SH.js.map +1 -0
  12. package/dist/chunk-5YPJ43HW.js +205 -0
  13. package/dist/chunk-5YPJ43HW.js.map +1 -0
  14. package/dist/chunk-EPVJLBGC.js +118 -0
  15. package/dist/chunk-EPVJLBGC.js.map +1 -0
  16. package/dist/chunk-FZKECZUY.js +148 -0
  17. package/dist/chunk-FZKECZUY.js.map +1 -0
  18. package/dist/chunk-G7MKWPEI.js +14 -0
  19. package/dist/chunk-G7MKWPEI.js.map +1 -0
  20. package/dist/chunk-HCU4AWIV.js +19 -0
  21. package/dist/chunk-HCU4AWIV.js.map +1 -0
  22. package/dist/chunk-HSU6XZOI.js +354 -0
  23. package/dist/chunk-HSU6XZOI.js.map +1 -0
  24. package/dist/chunk-K3JR2N4E.js +250 -0
  25. package/dist/chunk-K3JR2N4E.js.map +1 -0
  26. package/dist/chunk-PZ5AY32C.js +10 -0
  27. package/dist/chunk-PZ5AY32C.js.map +1 -0
  28. package/dist/chunk-SPDXNDDD.js +114 -0
  29. package/dist/chunk-SPDXNDDD.js.map +1 -0
  30. package/dist/chunk-TKIZELZQ.js +255 -0
  31. package/dist/chunk-TKIZELZQ.js.map +1 -0
  32. package/dist/chunk-VBXTOU4S.js +50 -0
  33. package/dist/chunk-VBXTOU4S.js.map +1 -0
  34. package/dist/chunk-YOOYQBGK.js +43 -0
  35. package/dist/chunk-YOOYQBGK.js.map +1 -0
  36. package/dist/cli/index.d.ts +3 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +11 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/cli/utils.d.ts +12 -0
  41. package/dist/cli/utils.d.ts.map +1 -0
  42. package/dist/config/index.d.ts +6 -0
  43. package/dist/config/index.d.ts.map +1 -0
  44. package/dist/config/index.js +28 -0
  45. package/dist/config/index.js.map +1 -0
  46. package/dist/config/loader.d.ts +23 -0
  47. package/dist/config/loader.d.ts.map +1 -0
  48. package/dist/config/parser.d.ts +5 -0
  49. package/dist/config/parser.d.ts.map +1 -0
  50. package/dist/config/yaml-utils.d.ts +13 -0
  51. package/dist/config/yaml-utils.d.ts.map +1 -0
  52. package/dist/config/yaml.d.ts +9 -0
  53. package/dist/config/yaml.d.ts.map +1 -0
  54. package/dist/connectivity/check.d.ts +18 -0
  55. package/dist/connectivity/check.d.ts.map +1 -0
  56. package/dist/connectivity/index.d.ts +3 -0
  57. package/dist/connectivity/index.d.ts.map +1 -0
  58. package/dist/connectivity/index.js +12 -0
  59. package/dist/connectivity/index.js.map +1 -0
  60. package/dist/connectivity/types.d.ts +13 -0
  61. package/dist/connectivity/types.d.ts.map +1 -0
  62. package/dist/extensions/index.d.ts +8 -0
  63. package/dist/extensions/index.d.ts.map +1 -0
  64. package/dist/extensions/index.js +38 -0
  65. package/dist/extensions/index.js.map +1 -0
  66. package/dist/extensions/loader.d.ts +12 -0
  67. package/dist/extensions/loader.d.ts.map +1 -0
  68. package/dist/extensions/npm-protocol.d.ts +36 -0
  69. package/dist/extensions/npm-protocol.d.ts.map +1 -0
  70. package/dist/index.d.ts +58 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +133 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/langchain/index.d.ts +17 -0
  75. package/dist/langchain/index.d.ts.map +1 -0
  76. package/dist/langchain/index.js +12 -0
  77. package/dist/langchain/index.js.map +1 -0
  78. package/dist/langchain/openai-compatible.d.ts +21 -0
  79. package/dist/langchain/openai-compatible.d.ts.map +1 -0
  80. package/dist/langchain/tool-choice.d.ts +9 -0
  81. package/dist/langchain/tool-choice.d.ts.map +1 -0
  82. package/dist/model/chat.d.ts +30 -0
  83. package/dist/model/chat.d.ts.map +1 -0
  84. package/dist/model/embed-parser.d.ts +25 -0
  85. package/dist/model/embed-parser.d.ts.map +1 -0
  86. package/dist/model/embedding.d.ts +25 -0
  87. package/dist/model/embedding.d.ts.map +1 -0
  88. package/dist/model/hub.d.ts +29 -0
  89. package/dist/model/hub.d.ts.map +1 -0
  90. package/dist/model/index.d.ts +13 -0
  91. package/dist/model/index.d.ts.map +1 -0
  92. package/dist/model/index.js +18 -0
  93. package/dist/model/index.js.map +1 -0
  94. package/dist/model/llm-parser.d.ts +10 -0
  95. package/dist/model/llm-parser.d.ts.map +1 -0
  96. package/dist/model/types.d.ts +31 -0
  97. package/dist/model/types.d.ts.map +1 -0
  98. package/dist/npm/command.d.ts +37 -0
  99. package/dist/npm/command.d.ts.map +1 -0
  100. package/dist/npm/index.d.ts +5 -0
  101. package/dist/npm/index.d.ts.map +1 -0
  102. package/dist/npm/index.js +40 -0
  103. package/dist/npm/index.js.map +1 -0
  104. package/dist/npm/install.d.ts +9 -0
  105. package/dist/npm/install.d.ts.map +1 -0
  106. package/dist/npm/provider.d.ts +15 -0
  107. package/dist/npm/provider.d.ts.map +1 -0
  108. package/dist/npm/version.d.ts +12 -0
  109. package/dist/npm/version.d.ts.map +1 -0
  110. package/dist/registry/chat-model.d.ts +10 -0
  111. package/dist/registry/chat-model.d.ts.map +1 -0
  112. package/dist/registry/index.d.ts +3 -0
  113. package/dist/registry/index.d.ts.map +1 -0
  114. package/dist/registry/index.js +11 -0
  115. package/dist/registry/index.js.map +1 -0
  116. package/dist/types.d.ts +20 -0
  117. package/dist/types.d.ts.map +1 -0
  118. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,28 @@
1
+ import {
2
+ loadYamlConfig
3
+ } from "../chunk-VBXTOU4S.js";
4
+ import {
5
+ clearYamlFileCache,
6
+ loadLlmConfig,
7
+ loadYamlFile,
8
+ loadYamlFileSync,
9
+ parseLlmYaml,
10
+ parseYamlContent,
11
+ substituteEnv
12
+ } from "../chunk-FZKECZUY.js";
13
+ import {
14
+ parseLlmSection
15
+ } from "../chunk-SPDXNDDD.js";
16
+ import "../chunk-PZ5AY32C.js";
17
+ export {
18
+ clearYamlFileCache,
19
+ loadLlmConfig,
20
+ loadYamlConfig,
21
+ loadYamlFile,
22
+ loadYamlFileSync,
23
+ parseLlmSection,
24
+ parseLlmYaml,
25
+ parseYamlContent,
26
+ substituteEnv
27
+ };
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,23 @@
1
+ export interface LoadLlmConfigOptions {
2
+ substituteEnv?: boolean;
3
+ }
4
+ export declare function substituteEnv(obj: unknown): unknown;
5
+ export declare function parseLlmYaml(content: string, options?: LoadLlmConfigOptions): unknown;
6
+ export interface ModelsConfigResult {
7
+ llm: unknown;
8
+ vlm: unknown;
9
+ embed: unknown;
10
+ runtime: {
11
+ check_connectivity?: boolean;
12
+ };
13
+ }
14
+ /**
15
+ * Load the full models.yaml config, returning llm, vlm, embed, and runtime sections.
16
+ */
17
+ export declare function loadModelsConfig(filePath: string, options?: LoadLlmConfigOptions): ModelsConfigResult | null;
18
+ /**
19
+ * Load only the llm section from a YAML config file.
20
+ * @deprecated Use loadModelsConfig() instead.
21
+ */
22
+ export declare function loadLlmConfig(filePath: string, options?: LoadLlmConfigOptions): unknown | null;
23
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAanD;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAST;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,kBAAkB,GAAG,IAAI,CA+B3B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,GAAG,IAAI,CAGhB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Re-export LLM section parser from local model module.
3
+ */
4
+ export { parseLlmSection } from "../model/llm-parser.js";
5
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface YamlEnvOptions {
2
+ substituteEnv?: boolean;
3
+ missingEnv?: "keep" | "empty";
4
+ env?: NodeJS.ProcessEnv;
5
+ }
6
+ export interface LoadYamlOptions extends YamlEnvOptions {
7
+ cache?: boolean;
8
+ }
9
+ export declare function clearYamlFileCache(): void;
10
+ export declare function parseYamlContent<T = unknown>(content: string, options?: YamlEnvOptions): T;
11
+ export declare function loadYamlFileSync<T = unknown>(filePath: string, options?: LoadYamlOptions): T | undefined;
12
+ export declare function loadYamlFile<T = unknown>(filePath: string, options?: LoadYamlOptions): Promise<T | undefined>;
13
+ //# sourceMappingURL=yaml-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-utils.d.ts","sourceRoot":"","sources":["../../src/config/yaml-utils.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAkCD,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,CAAC,CAOH;AAaD,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,CAAC,GAAG,SAAS,CAaf;AAED,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAkBxB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generic YAML file loader utility.
3
+ */
4
+ /**
5
+ * Load and parse a YAML file into a typed object.
6
+ * Returns empty object if file doesn't exist.
7
+ */
8
+ export declare function loadYamlConfig<T = Record<string, unknown>>(filePath: string): T;
9
+ //# sourceMappingURL=yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/config/yaml.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAY/E"}
@@ -0,0 +1,18 @@
1
+ import type { CheckConnectivityResult } from "./types.js";
2
+ export interface EndpointConnectivityOptions {
3
+ timeoutMs?: number;
4
+ resolveHost?: {
5
+ from: string;
6
+ to: string;
7
+ };
8
+ host?: string;
9
+ verifySSL?: boolean;
10
+ bypassAuth?: boolean;
11
+ featureKey?: string;
12
+ }
13
+ export declare function checkEndpointConnectivity(baseURL: string, options?: {
14
+ timeoutMs?: number;
15
+ } & EndpointConnectivityOptions): Promise<CheckConnectivityResult>;
16
+ export declare const CIS_UNREACHABLE_REMINDER = "Please ensure you are connected to Secure VPN and try again.";
17
+ export declare function buildUnreachableError(endpointId: string, baseURL: string, detail?: string): string;
18
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/connectivity/check.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,2BAA2B,GAC7D,OAAO,CAAC,uBAAuB,CAAC,CAyClC;AAED,eAAO,MAAM,wBAAwB,iEAC2B,CAAC;AAEjE,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAOR"}
@@ -0,0 +1,3 @@
1
+ export { checkEndpointConnectivity, buildUnreachableError, CIS_UNREACHABLE_REMINDER, type EndpointConnectivityOptions, } from "./check.js";
2
+ export type { CheckConnectivityResult, ConnectionPhase, ConnectionStatus, } from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectivity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,2BAA2B,GACjC,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ import {
2
+ CIS_UNREACHABLE_REMINDER,
3
+ buildUnreachableError,
4
+ checkEndpointConnectivity
5
+ } from "../chunk-EPVJLBGC.js";
6
+ import "../chunk-PZ5AY32C.js";
7
+ export {
8
+ CIS_UNREACHABLE_REMINDER,
9
+ buildUnreachableError,
10
+ checkEndpointConnectivity
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,13 @@
1
+ export type ConnectionPhase = "checking" | "reachable" | "unreachable";
2
+ export interface ConnectionStatus {
3
+ phase: ConnectionPhase;
4
+ endpointId?: string;
5
+ baseURL?: string;
6
+ message?: string;
7
+ }
8
+ export interface CheckConnectivityResult {
9
+ reachable: boolean;
10
+ message?: string;
11
+ statusCode?: number;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connectivity/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extensions: npm: protocol and extension loading.
3
+ */
4
+ export { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec, resolveNpmProvider, createChatModelWithNpm, ensureNpmPackageInstalled, getLatestVersion, getInstalledVersion, resolveLlmSectionWithNpm, } from "./npm-protocol.js";
5
+ export type { ResolveNpmProviderOptions, CreateChatModelWithNpmOptions, EnsureNpmPackageInstalledOptions, ResolveLlmSectionWithNpmOptions, } from "./npm-protocol.js";
6
+ export { loadLLMExtensions, resolveLLMExtensionPackages, discoverLLMExtensions, loadDiscoveredExtensions, } from "./loader.js";
7
+ export type { LoadLLMExtensionsOptions } from "./loader.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,38 @@
1
+ import "../chunk-YOOYQBGK.js";
2
+ import {
3
+ createChatModelWithNpm,
4
+ discoverLLMExtensions,
5
+ ensureNpmPackageInstalled,
6
+ getInstalledVersion,
7
+ getLatestVersion,
8
+ loadDiscoveredExtensions,
9
+ loadLLMExtensions,
10
+ resolveLLMExtensionPackages,
11
+ resolveLlmSectionWithNpm,
12
+ resolveNpmProvider
13
+ } from "../chunk-HSU6XZOI.js";
14
+ import "../chunk-4OLU43SH.js";
15
+ import "../chunk-G7MKWPEI.js";
16
+ import "../chunk-SPDXNDDD.js";
17
+ import {
18
+ NPM_PROTOCOL_PREFIX,
19
+ isNpmProviderSpec,
20
+ parseNpmProviderSpec
21
+ } from "../chunk-K3JR2N4E.js";
22
+ import "../chunk-PZ5AY32C.js";
23
+ export {
24
+ NPM_PROTOCOL_PREFIX,
25
+ createChatModelWithNpm,
26
+ discoverLLMExtensions,
27
+ ensureNpmPackageInstalled,
28
+ getInstalledVersion,
29
+ getLatestVersion,
30
+ isNpmProviderSpec,
31
+ loadDiscoveredExtensions,
32
+ loadLLMExtensions,
33
+ parseNpmProviderSpec,
34
+ resolveLLMExtensionPackages,
35
+ resolveLlmSectionWithNpm,
36
+ resolveNpmProvider
37
+ };
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Load LLM extensions by npm package name or by dynamic discovery.
3
+ * Extensions register a ChatModel factory via registerChatModelProvider.
4
+ */
5
+ export declare function resolveLLMExtensionPackages(types?: string | string[]): string[];
6
+ export declare function discoverLLMExtensions(cwd?: string): string[];
7
+ export interface LoadLLMExtensionsOptions {
8
+ cwd?: string;
9
+ }
10
+ export declare function loadLLMExtensions(extensionPackages?: string[], options?: LoadLLMExtensionsOptions): Promise<void>;
11
+ export declare function loadDiscoveredExtensions(cwd?: string): Promise<string[]>;
12
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyCH,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAM/E;AAgBD,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CAiC3E;AAiCD,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,iBAAiB,CACrC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAED,wBAAsB,wBAAwB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAK7F"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * npm: protocol in provider — specify an npm package name (and optional version) in config's provider.
3
+ * When installNpmIfMissing is true, the framework will run npm install <package>[@version] if the package is not found.
4
+ */
5
+ import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
6
+ import type { CreateChatModelOptions } from "../langchain/index.js";
7
+ import { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec } from "../npm/index.js";
8
+ export { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec };
9
+ export declare function getLatestVersion(packageName: string, options?: {
10
+ cwd?: string;
11
+ }): Promise<string>;
12
+ export declare function getInstalledVersion(packageName: string, options?: {
13
+ cwd?: string;
14
+ }): string | null;
15
+ export interface EnsureNpmPackageInstalledOptions {
16
+ version?: string;
17
+ cwd?: string;
18
+ }
19
+ /**
20
+ * Ensure the npm package is installed at the required version.
21
+ * We only use version numbers for management; "latest" is always resolved to the actual
22
+ * version from the registry, then we install that version if missing or different.
23
+ */
24
+ export declare function ensureNpmPackageInstalled(packageName: string, options?: EnsureNpmPackageInstalledOptions): Promise<void>;
25
+ export interface ResolveNpmProviderOptions {
26
+ installNpmIfMissing?: boolean;
27
+ cwd?: string;
28
+ }
29
+ export declare function resolveNpmProvider(spec: string, options?: ResolveNpmProviderOptions): Promise<string | null>;
30
+ export interface ResolveLlmSectionWithNpmOptions extends ResolveNpmProviderOptions {
31
+ }
32
+ export declare function resolveLlmSectionWithNpm(llmSection: unknown, options?: ResolveLlmSectionWithNpmOptions): Promise<unknown>;
33
+ export interface CreateChatModelWithNpmOptions extends CreateChatModelOptions, ResolveNpmProviderOptions {
34
+ }
35
+ export declare function createChatModelWithNpm(options?: CreateChatModelWithNpmOptions): Promise<BaseChatModel>;
36
+ //# sourceMappingURL=npm-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-protocol.d.ts","sourceRoot":"","sources":["../../src/extensions/npm-protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAIlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AAExE,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,CAEtG;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAcD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAQf;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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Minimal public API for @easynet/agent-model.
3
+ * Goal: create a chat model from `models.yaml` with the smallest possible surface.
4
+ */
5
+ export { createAgentLlm } from "./api/create-agent-llm.js";
6
+ export type { CreateAgentLlmOptions } from "./api/create-agent-llm.js";
7
+ export { getDefaultLlmConfig } from "./api/get-default-llm-config.js";
8
+ export type { GetDefaultLlmConfigOptions } from "./api/get-default-llm-config.js";
9
+ export { getDefaultVlmConfig } from "./api/get-default-vlm-config.js";
10
+ export type { GetDefaultVlmConfigOptions } from "./api/get-default-vlm-config.js";
11
+ export { createEmbedFnFromModelsConfig } from "./api/create-embed-fn.js";
12
+ export type { EmbedFn } from "./api/create-embed-fn.js";
13
+ export { createChatModelFromLlmConfig } from "./langchain/index.js";
14
+ export type { CreateChatModelOptions } from "./langchain/index.js";
15
+ export { applyToolChoiceAuto } from "./langchain/index.js";
16
+ export { registerChatModelProvider, getChatModelFactory } from "./registry/chat-model.js";
17
+ export type { ChatModelFactory } from "./registry/chat-model.js";
18
+ import { createAgentLlm } from "./api/create-agent-llm.js";
19
+ import { getDefaultLlmConfig } from "./api/get-default-llm-config.js";
20
+ import { getDefaultVlmConfig } from "./api/get-default-vlm-config.js";
21
+ import { createEmbedFnFromModelsConfig } from "./api/create-embed-fn.js";
22
+ import { createChatModelFromLlmConfig, applyToolChoiceAuto } from "./langchain/index.js";
23
+ import { registerChatModelProvider, getChatModelFactory } from "./registry/chat-model.js";
24
+ import * as ConfigApi from "./config/index.js";
25
+ import * as LangChainApi from "./langchain/index.js";
26
+ import * as ModelApi from "./model/index.js";
27
+ import * as RegistryApi from "./registry/index.js";
28
+ import * as ExtensionsApi from "./extensions/index.js";
29
+ import * as ConnectivityApi from "./connectivity/index.js";
30
+ import * as NpmApi from "./npm/index.js";
31
+ import * as CliApi from "./cli/index.js";
32
+ /**
33
+ * Facade: high-frequency model APIs with a single import.
34
+ */
35
+ export declare const modelApi: {
36
+ readonly createAgentLlm: typeof createAgentLlm;
37
+ readonly getDefaultLlmConfig: typeof getDefaultLlmConfig;
38
+ readonly getDefaultVlmConfig: typeof getDefaultVlmConfig;
39
+ readonly createEmbedFnFromModelsConfig: typeof createEmbedFnFromModelsConfig;
40
+ readonly createChatModelFromLlmConfig: typeof createChatModelFromLlmConfig;
41
+ readonly applyToolChoiceAuto: typeof applyToolChoiceAuto;
42
+ readonly registerChatModelProvider: typeof registerChatModelProvider;
43
+ readonly getChatModelFactory: typeof getChatModelFactory;
44
+ };
45
+ /**
46
+ * Facade: grouped subpath modules (config/langchain/model/registry/extensions/connectivity/npm/cli).
47
+ */
48
+ export declare const platformApi: {
49
+ readonly config: typeof ConfigApi;
50
+ readonly langchain: typeof LangChainApi;
51
+ readonly model: typeof ModelApi;
52
+ readonly registry: typeof RegistryApi;
53
+ readonly extensions: typeof ExtensionsApi;
54
+ readonly connectivity: typeof ConnectivityApi;
55
+ readonly npm: typeof NpmApi;
56
+ readonly cli: typeof CliApi;
57
+ };
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,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;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,YAAY,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;CASX,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,133 @@
1
+ import {
2
+ registry_exports
3
+ } from "./chunk-HCU4AWIV.js";
4
+ import {
5
+ cli_exports,
6
+ createAgentLlm
7
+ } from "./chunk-TKIZELZQ.js";
8
+ import {
9
+ config_exports
10
+ } from "./chunk-VBXTOU4S.js";
11
+ import {
12
+ loadLlmConfig,
13
+ loadModelsConfig
14
+ } from "./chunk-FZKECZUY.js";
15
+ import {
16
+ connectivity_exports
17
+ } from "./chunk-EPVJLBGC.js";
18
+ import {
19
+ extensions_exports
20
+ } from "./chunk-YOOYQBGK.js";
21
+ import {
22
+ resolveLlmSectionWithNpm
23
+ } from "./chunk-HSU6XZOI.js";
24
+ import {
25
+ applyToolChoiceAuto,
26
+ createChatModelFromLlmConfig,
27
+ langchain_exports
28
+ } from "./chunk-4OLU43SH.js";
29
+ import {
30
+ getChatModelFactory,
31
+ registerChatModelProvider
32
+ } from "./chunk-G7MKWPEI.js";
33
+ import {
34
+ createModelHub,
35
+ model_exports,
36
+ parseEmbedSection
37
+ } from "./chunk-5YPJ43HW.js";
38
+ import {
39
+ parseLlmSection
40
+ } from "./chunk-SPDXNDDD.js";
41
+ import {
42
+ npm_exports
43
+ } from "./chunk-K3JR2N4E.js";
44
+ import "./chunk-PZ5AY32C.js";
45
+
46
+ // src/api/get-default-llm-config.ts
47
+ import { join } from "path";
48
+ async function getDefaultLlmConfig(options = {}) {
49
+ const configPath = options.configPath ?? join(process.cwd(), "models.yaml");
50
+ const llmSection = loadLlmConfig(configPath);
51
+ if (llmSection == null) return null;
52
+ const resolved = await resolveLlmSectionWithNpm(llmSection, {
53
+ installNpmIfMissing: options.installNpmIfMissing !== false,
54
+ cwd: process.cwd()
55
+ });
56
+ const { defaultId, configs } = parseLlmSection(resolved);
57
+ const defaultConfig = configs.find((c) => c.id === defaultId) ?? configs[0] ?? null;
58
+ return defaultConfig;
59
+ }
60
+
61
+ // src/api/get-default-vlm-config.ts
62
+ import { join as join2 } from "path";
63
+ async function getDefaultVlmConfig(options = {}) {
64
+ const configPath = options.configPath ?? join2(process.cwd(), "models.yaml");
65
+ const modelsConfig = loadModelsConfig(configPath);
66
+ if (modelsConfig == null) return null;
67
+ const sourceSection = modelsConfig.vlm ?? modelsConfig.llm;
68
+ if (sourceSection == null) return null;
69
+ const resolved = await resolveLlmSectionWithNpm(sourceSection, {
70
+ installNpmIfMissing: options.installNpmIfMissing !== false,
71
+ cwd: process.cwd()
72
+ });
73
+ const { defaultId, configs } = parseLlmSection(resolved);
74
+ const imageConfigs = configs.filter((c) => c.type === "image");
75
+ if (imageConfigs.length === 0) return null;
76
+ const defaultConfig = imageConfigs.find((c) => c.id === defaultId) ?? imageConfigs[0] ?? null;
77
+ return defaultConfig;
78
+ }
79
+
80
+ // src/api/create-embed-fn.ts
81
+ function createEmbedFnFromModelsConfig(configPath, embedId) {
82
+ const config = loadModelsConfig(configPath);
83
+ if (!config?.embed) return void 0;
84
+ const parsed = parseEmbedSection(config.embed);
85
+ if (parsed.configs.length === 0) return void 0;
86
+ const id = embedId ?? parsed.defaultId;
87
+ const embedConfig = parsed.configs.find((c) => c.id === id) ?? parsed.configs[0];
88
+ if (!embedConfig) return void 0;
89
+ const hub = createModelHub({
90
+ embeddingBaseURL: embedConfig.baseURL,
91
+ embeddingModel: embedConfig.model,
92
+ embeddingApiKey: embedConfig.apiKey
93
+ });
94
+ return async (input) => {
95
+ const result = await hub.embed({ input });
96
+ return result.vectors;
97
+ };
98
+ }
99
+
100
+ // src/index.ts
101
+ var modelApi = {
102
+ createAgentLlm,
103
+ getDefaultLlmConfig,
104
+ getDefaultVlmConfig,
105
+ createEmbedFnFromModelsConfig,
106
+ createChatModelFromLlmConfig,
107
+ applyToolChoiceAuto,
108
+ registerChatModelProvider,
109
+ getChatModelFactory
110
+ };
111
+ var platformApi = {
112
+ config: config_exports,
113
+ langchain: langchain_exports,
114
+ model: model_exports,
115
+ registry: registry_exports,
116
+ extensions: extensions_exports,
117
+ connectivity: connectivity_exports,
118
+ npm: npm_exports,
119
+ cli: cli_exports
120
+ };
121
+ export {
122
+ applyToolChoiceAuto,
123
+ createAgentLlm,
124
+ createChatModelFromLlmConfig,
125
+ createEmbedFnFromModelsConfig,
126
+ getChatModelFactory,
127
+ getDefaultLlmConfig,
128
+ getDefaultVlmConfig,
129
+ modelApi,
130
+ platformApi,
131
+ registerChatModelProvider
132
+ };
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/get-default-llm-config.ts","../src/api/get-default-vlm-config.ts","../src/api/create-embed-fn.ts","../src/index.ts"],"sourcesContent":["/**\n * Load models.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 models.yaml. Default: process.cwd() + \"/models.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 models.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(), \"models.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: LLMConfig) => c.id === defaultId) ?? configs[0] ?? null;\n return defaultConfig;\n}\n","/**\n * Load models.yaml, resolve npm providers, and return a default VLM (type=image) config.\n */\n\nimport { join } from \"node:path\";\nimport { loadModelsConfig } 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 GetDefaultVlmConfigOptions {\n /** Path to models.yaml. Default: process.cwd() + \"/models.yaml\" */\n configPath?: string;\n /** Install npm provider packages if missing. Default true. */\n installNpmIfMissing?: boolean;\n}\n\n/**\n * Returns the default VLM config (type=image) from models.yaml, or null if not configured.\n */\nexport async function getDefaultVlmConfig(\n options: GetDefaultVlmConfigOptions = {},\n): Promise<LLMConfig | null> {\n const configPath = options.configPath ?? join(process.cwd(), \"models.yaml\");\n const modelsConfig = loadModelsConfig(configPath);\n if (modelsConfig == null) return null;\n\n // Prefer top-level `vlm:`. Fallback to `llm:` section with type=image entries.\n const sourceSection = modelsConfig.vlm ?? modelsConfig.llm;\n if (sourceSection == null) return null;\n\n const resolved = await resolveLlmSectionWithNpm(sourceSection, {\n installNpmIfMissing: options.installNpmIfMissing !== false,\n cwd: process.cwd(),\n });\n\n const { defaultId, configs } = parseLlmSection(resolved);\n const imageConfigs = configs.filter((c: LLMConfig) => c.type === \"image\");\n if (imageConfigs.length === 0) return null;\n\n const defaultConfig =\n imageConfigs.find((c: LLMConfig) => c.id === defaultId) ??\n imageConfigs[0] ??\n null;\n return defaultConfig;\n}\n","/**\n * Create an EmbedFn from the embed section of models.yaml.\n */\nimport { createModelHub } from \"../model/hub.js\";\nimport { parseEmbedSection } from \"../model/embed-parser.js\";\nimport { loadModelsConfig } from \"../config/loader.js\";\n\nexport type EmbedFn = (input: string | string[]) => Promise<number[][]>;\n\n/**\n * Load models.yaml and build an EmbedFn from the `embed:` section.\n * Returns undefined if no embed section is configured.\n *\n * @param configPath - Path to models.yaml\n * @param embedId - Which embed instance to use (defaults to the `default:` key)\n */\nexport function createEmbedFnFromModelsConfig(\n configPath: string,\n embedId?: string,\n): EmbedFn | undefined {\n const config = loadModelsConfig(configPath);\n if (!config?.embed) return undefined;\n\n const parsed = parseEmbedSection(config.embed);\n if (parsed.configs.length === 0) return undefined;\n\n const id = embedId ?? parsed.defaultId;\n const embedConfig =\n parsed.configs.find((c) => c.id === id) ?? parsed.configs[0];\n if (!embedConfig) return undefined;\n\n const hub = createModelHub({\n embeddingBaseURL: embedConfig.baseURL,\n embeddingModel: embedConfig.model,\n embeddingApiKey: embedConfig.apiKey,\n });\n\n return async (input: string | string[]) => {\n const result = await hub.embed({ input });\n return result.vectors;\n };\n}\n","/**\n * Minimal public API for @easynet/agent-model.\n * Goal: create a chat model from `models.yaml` with the smallest possible surface.\n */\n\n// Main high-level APIs\nexport { createAgentLlm } from \"./api/create-agent-llm.js\";\nexport type { CreateAgentLlmOptions } from \"./api/create-agent-llm.js\";\nexport { getDefaultLlmConfig } from \"./api/get-default-llm-config.js\";\nexport type { GetDefaultLlmConfigOptions } from \"./api/get-default-llm-config.js\";\nexport { getDefaultVlmConfig } from \"./api/get-default-vlm-config.js\";\nexport type { GetDefaultVlmConfigOptions } from \"./api/get-default-vlm-config.js\";\nexport { createEmbedFnFromModelsConfig } from \"./api/create-embed-fn.js\";\nexport type { EmbedFn } from \"./api/create-embed-fn.js\";\n\n// Common runtime helper (used by agent-runtime)\nexport { createChatModelFromLlmConfig } from \"./langchain/index.js\";\nexport type { CreateChatModelOptions } from \"./langchain/index.js\";\nexport { applyToolChoiceAuto } from \"./langchain/index.js\";\n\n// Provider extension registration\nexport { registerChatModelProvider, getChatModelFactory } from \"./registry/chat-model.js\";\nexport type { ChatModelFactory } from \"./registry/chat-model.js\";\n\nimport { createAgentLlm } from \"./api/create-agent-llm.js\";\nimport { getDefaultLlmConfig } from \"./api/get-default-llm-config.js\";\nimport { getDefaultVlmConfig } from \"./api/get-default-vlm-config.js\";\nimport { createEmbedFnFromModelsConfig } from \"./api/create-embed-fn.js\";\nimport { createChatModelFromLlmConfig, applyToolChoiceAuto } from \"./langchain/index.js\";\nimport { registerChatModelProvider, getChatModelFactory } from \"./registry/chat-model.js\";\nimport * as ConfigApi from \"./config/index.js\";\nimport * as LangChainApi from \"./langchain/index.js\";\nimport * as ModelApi from \"./model/index.js\";\nimport * as RegistryApi from \"./registry/index.js\";\nimport * as ExtensionsApi from \"./extensions/index.js\";\nimport * as ConnectivityApi from \"./connectivity/index.js\";\nimport * as NpmApi from \"./npm/index.js\";\nimport * as CliApi from \"./cli/index.js\";\n\n/**\n * Facade: high-frequency model APIs with a single import.\n */\nexport const modelApi = {\n createAgentLlm,\n getDefaultLlmConfig,\n getDefaultVlmConfig,\n createEmbedFnFromModelsConfig,\n createChatModelFromLlmConfig,\n applyToolChoiceAuto,\n registerChatModelProvider,\n getChatModelFactory,\n} as const;\n\n/**\n * Facade: grouped subpath modules (config/langchain/model/registry/extensions/connectivity/npm/cli).\n */\nexport const platformApi = {\n config: ConfigApi,\n langchain: LangChainApi,\n model: ModelApi,\n registry: RegistryApi,\n extensions: ExtensionsApi,\n connectivity: ConnectivityApi,\n npm: NpmApi,\n cli: CliApi,\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,YAAY;AAgBrB,eAAsB,oBACpB,UAAsC,CAAC,GACZ;AAC3B,QAAM,aAAa,QAAQ,cAAc,KAAK,QAAQ,IAAI,GAAG,aAAa;AAC1E,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,MAAiB,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,KAAK;AAC1F,SAAO;AACT;;;AChCA,SAAS,QAAAA,aAAY;AAgBrB,eAAsB,oBACpB,UAAsC,CAAC,GACZ;AAC3B,QAAM,aAAa,QAAQ,cAAcC,MAAK,QAAQ,IAAI,GAAG,aAAa;AAC1E,QAAM,eAAe,iBAAiB,UAAU;AAChD,MAAI,gBAAgB,KAAM,QAAO;AAGjC,QAAM,gBAAgB,aAAa,OAAO,aAAa;AACvD,MAAI,iBAAiB,KAAM,QAAO;AAElC,QAAM,WAAW,MAAM,yBAAyB,eAAe;AAAA,IAC7D,qBAAqB,QAAQ,wBAAwB;AAAA,IACrD,KAAK,QAAQ,IAAI;AAAA,EACnB,CAAC;AAED,QAAM,EAAE,WAAW,QAAQ,IAAI,gBAAgB,QAAQ;AACvD,QAAM,eAAe,QAAQ,OAAO,CAAC,MAAiB,EAAE,SAAS,OAAO;AACxE,MAAI,aAAa,WAAW,EAAG,QAAO;AAEtC,QAAM,gBACJ,aAAa,KAAK,CAAC,MAAiB,EAAE,OAAO,SAAS,KACtD,aAAa,CAAC,KACd;AACF,SAAO;AACT;;;AC7BO,SAAS,8BACd,YACA,SACqB;AACrB,QAAM,SAAS,iBAAiB,UAAU;AAC1C,MAAI,CAAC,QAAQ,MAAO,QAAO;AAE3B,QAAM,SAAS,kBAAkB,OAAO,KAAK;AAC7C,MAAI,OAAO,QAAQ,WAAW,EAAG,QAAO;AAExC,QAAM,KAAK,WAAW,OAAO;AAC7B,QAAM,cACJ,OAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,QAAQ,CAAC;AAC7D,MAAI,CAAC,YAAa,QAAO;AAEzB,QAAM,MAAM,eAAe;AAAA,IACzB,kBAAkB,YAAY;AAAA,IAC9B,gBAAgB,YAAY;AAAA,IAC5B,iBAAiB,YAAY;AAAA,EAC/B,CAAC;AAED,SAAO,OAAO,UAA6B;AACzC,UAAM,SAAS,MAAM,IAAI,MAAM,EAAE,MAAM,CAAC;AACxC,WAAO,OAAO;AAAA,EAChB;AACF;;;ACCO,IAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKO,IAAM,cAAc;AAAA,EACzB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,KAAK;AAAA,EACL,KAAK;AACP;","names":["join","join"]}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Simple LangChain module: create ChatOpenAI from llm config.
3
+ * Extensions can register custom ChatModel factories via the registry.
4
+ */
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
+ export { applyToolChoiceAuto } from "./tool-choice.js";
12
+ /**
13
+ * Create a LangChain ChatModel from agent config llm section.
14
+ * Uses extension-registered factory when available; otherwise creates ChatOpenAI.
15
+ */
16
+ export declare function createChatModelFromLlmConfig(options?: CreateChatModelOptions): BaseChatModel;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,sBAA2B,GACnC,aAAa,CA4Ef"}
@@ -0,0 +1,12 @@
1
+ import {
2
+ applyToolChoiceAuto,
3
+ createChatModelFromLlmConfig
4
+ } from "../chunk-4OLU43SH.js";
5
+ import "../chunk-G7MKWPEI.js";
6
+ import "../chunk-SPDXNDDD.js";
7
+ import "../chunk-PZ5AY32C.js";
8
+ export {
9
+ applyToolChoiceAuto,
10
+ createChatModelFromLlmConfig
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Force tool_choice to "auto" when tools are present.
3
+ * Patches bindTools/withConfig/invoke/stream in-place for compatibility with providers
4
+ * that default to tool_choice: "none".
5
+ */
6
+ export declare function applyToolChoiceAuto(model: {
7
+ bindTools?: (tools: unknown, opts?: Record<string, unknown>) => unknown;
8
+ }): void;
9
+ //# sourceMappingURL=tool-choice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-choice.d.ts","sourceRoot":"","sources":["../../src/langchain/tool-choice.ts"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;CAAE,GACjF,IAAI,CAyCN"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * OpenAI-compatible chat completion API: POST /chat/completions.
3
+ * No LangChain dependency; for use by any module that needs LLM text generation.
4
+ */
5
+ export interface ChatCompletionOptions {
6
+ baseURL: string;
7
+ apiKey?: string;
8
+ model?: string;
9
+ timeoutMs?: number;
10
+ }
11
+ export interface ChatCompletionMessage {
12
+ role: "system" | "user" | "assistant";
13
+ content: string;
14
+ }
15
+ export interface ChatCompletionRequest {
16
+ messages: ChatCompletionMessage[];
17
+ model?: string;
18
+ temperature?: number;
19
+ maxTokens?: number;
20
+ }
21
+ export interface ChatCompletionResult {
22
+ text: string;
23
+ model?: string;
24
+ }
25
+ /**
26
+ * Call OpenAI-compatible /chat/completions endpoint.
27
+ * baseURL should be the API root (e.g. https://api.openai.com/v1); trailing slash is stripped.
28
+ */
29
+ export declare function chatCompletionViaOpenAICompatibleApi(options: ChatCompletionOptions, request: ChatCompletionRequest): Promise<ChatCompletionResult>;
30
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/model/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwBD;;;GAGG;AACH,wBAAsB,oCAAoC,CACxD,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAiD/B"}