@easynet/agent-llm 1.0.49 → 1.0.50

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 (94) hide show
  1. package/README.md +18 -6
  2. package/dist/api/create-agent-llm.d.ts +2 -2
  3. package/dist/api/create-agent-llm.d.ts.map +1 -1
  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 +3 -3
  7. package/dist/api/get-default-llm-config.d.ts.map +1 -1
  8. package/dist/chunk-36PPGV4O.js +1 -0
  9. package/dist/chunk-36PPGV4O.js.map +1 -0
  10. package/dist/chunk-6EQCGQTV.js +154 -0
  11. package/dist/chunk-6EQCGQTV.js.map +1 -0
  12. package/dist/chunk-7VIJ4MFU.js +139 -0
  13. package/dist/chunk-7VIJ4MFU.js.map +1 -0
  14. package/dist/chunk-AUQEXHUP.js +105 -0
  15. package/dist/chunk-AUQEXHUP.js.map +1 -0
  16. package/dist/chunk-FVQ3PKER.js +354 -0
  17. package/dist/chunk-FVQ3PKER.js.map +1 -0
  18. package/dist/chunk-FZWXYGR6.js +191 -0
  19. package/dist/chunk-FZWXYGR6.js.map +1 -0
  20. package/dist/chunk-G7MKWPEI.js +14 -0
  21. package/dist/chunk-G7MKWPEI.js.map +1 -0
  22. package/dist/chunk-KE7IMUSA.js +223 -0
  23. package/dist/chunk-KE7IMUSA.js.map +1 -0
  24. package/dist/chunk-SPDXNDDD.js +114 -0
  25. package/dist/chunk-SPDXNDDD.js.map +1 -0
  26. package/dist/chunk-WK6P4EOC.js +147 -0
  27. package/dist/chunk-WK6P4EOC.js.map +1 -0
  28. package/dist/cli/index.js +18 -3
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/config/index.d.ts +1 -0
  31. package/dist/config/index.d.ts.map +1 -1
  32. package/dist/config/index.js +40 -0
  33. package/dist/config/index.js.map +1 -0
  34. package/dist/config/loader.d.ts +15 -0
  35. package/dist/config/loader.d.ts.map +1 -1
  36. package/dist/config/parser.d.ts +2 -2
  37. package/dist/config/parser.d.ts.map +1 -1
  38. package/dist/config/yaml-utils.d.ts +13 -0
  39. package/dist/config/yaml-utils.d.ts.map +1 -0
  40. package/dist/connectivity/check.d.ts +18 -0
  41. package/dist/connectivity/check.d.ts.map +1 -0
  42. package/dist/connectivity/index.d.ts +3 -0
  43. package/dist/connectivity/index.d.ts.map +1 -0
  44. package/dist/connectivity/index.js +11 -0
  45. package/dist/connectivity/index.js.map +1 -0
  46. package/dist/connectivity/types.d.ts +13 -0
  47. package/dist/connectivity/types.d.ts.map +1 -0
  48. package/dist/extensions/index.js +36 -0
  49. package/dist/extensions/index.js.map +1 -0
  50. package/dist/extensions/npm-protocol.d.ts +1 -1
  51. package/dist/extensions/npm-protocol.d.ts.map +1 -1
  52. package/dist/index.d.ts +4 -11
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +46 -26
  55. package/dist/index.js.map +1 -1
  56. package/dist/langchain/index.js +11 -0
  57. package/dist/langchain/index.js.map +1 -0
  58. package/dist/model/chat.d.ts +30 -0
  59. package/dist/model/chat.d.ts.map +1 -0
  60. package/dist/model/embed-parser.d.ts +25 -0
  61. package/dist/model/embed-parser.d.ts.map +1 -0
  62. package/dist/model/embedding.d.ts +25 -0
  63. package/dist/model/embedding.d.ts.map +1 -0
  64. package/dist/model/hub.d.ts +26 -3
  65. package/dist/model/hub.d.ts.map +1 -1
  66. package/dist/model/index.d.ts +13 -0
  67. package/dist/model/index.d.ts.map +1 -0
  68. package/dist/model/index.js +17 -0
  69. package/dist/model/index.js.map +1 -0
  70. package/dist/model/llm-parser.d.ts +10 -0
  71. package/dist/model/llm-parser.d.ts.map +1 -0
  72. package/dist/model/types.d.ts +31 -0
  73. package/dist/model/types.d.ts.map +1 -0
  74. package/dist/npm/command.d.ts +37 -0
  75. package/dist/npm/command.d.ts.map +1 -0
  76. package/dist/npm/index.d.ts +5 -0
  77. package/dist/npm/index.d.ts.map +1 -0
  78. package/dist/npm/index.js +39 -0
  79. package/dist/npm/index.js.map +1 -0
  80. package/dist/npm/install.d.ts +9 -0
  81. package/dist/npm/install.d.ts.map +1 -0
  82. package/dist/npm/provider.d.ts +15 -0
  83. package/dist/npm/provider.d.ts.map +1 -0
  84. package/dist/npm/version.d.ts +12 -0
  85. package/dist/npm/version.d.ts.map +1 -0
  86. package/dist/registry/chat-model.d.ts +1 -1
  87. package/dist/registry/chat-model.d.ts.map +1 -1
  88. package/dist/registry/index.js +9 -0
  89. package/dist/registry/index.js.map +1 -0
  90. package/dist/types.d.ts +2 -2
  91. package/dist/types.d.ts.map +1 -1
  92. package/package.json +39 -1
  93. package/dist/chunk-YK4EBPJ3.js +0 -578
  94. package/dist/chunk-YK4EBPJ3.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ import "../chunk-36PPGV4O.js";
2
+ import {
3
+ clearYamlFileCache,
4
+ loadLlmConfig,
5
+ loadYamlFile,
6
+ loadYamlFileSync,
7
+ parseLlmYaml,
8
+ parseYamlContent,
9
+ substituteEnv
10
+ } from "../chunk-WK6P4EOC.js";
11
+ import {
12
+ parseLlmSection
13
+ } from "../chunk-SPDXNDDD.js";
14
+
15
+ // src/config/yaml.ts
16
+ function loadYamlConfig(filePath) {
17
+ try {
18
+ const parsed = loadYamlFileSync(filePath, {
19
+ substituteEnv: true,
20
+ missingEnv: "keep",
21
+ cache: true
22
+ });
23
+ return parsed ?? {};
24
+ } catch (e) {
25
+ const msg = e instanceof Error ? e.message : String(e);
26
+ throw new Error(`Failed to load YAML config from ${filePath}: ${msg}`, { cause: e });
27
+ }
28
+ }
29
+ export {
30
+ clearYamlFileCache,
31
+ loadLlmConfig,
32
+ loadYamlConfig,
33
+ loadYamlFile,
34
+ loadYamlFileSync,
35
+ parseLlmSection,
36
+ parseLlmYaml,
37
+ parseYamlContent,
38
+ substituteEnv
39
+ };
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/yaml.ts"],"sourcesContent":["/**\n * Generic YAML file loader utility.\n */\n\nimport { loadYamlFileSync } from \"./yaml-utils.js\";\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 try {\n const parsed = loadYamlFileSync<T>(filePath, {\n substituteEnv: true,\n missingEnv: \"keep\",\n cache: true,\n });\n return (parsed ?? ({} as T)) 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"],"mappings":";;;;;;;;;;;;;;;AAUO,SAAS,eAA4C,UAAqB;AAC/E,MAAI;AACF,UAAM,SAAS,iBAAoB,UAAU;AAAA,MAC3C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,IACT,CAAC;AACD,WAAQ,UAAW,CAAC;AAAA,EACtB,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;","names":[]}
@@ -3,5 +3,20 @@ export interface LoadLlmConfigOptions {
3
3
  }
4
4
  export declare function substituteEnv(obj: unknown): unknown;
5
5
  export declare function parseLlmYaml(content: string, options?: LoadLlmConfigOptions): unknown;
6
+ export interface ModelsConfigResult {
7
+ llm: unknown;
8
+ embed: unknown;
9
+ runtime: {
10
+ check_connectivity?: boolean;
11
+ };
12
+ }
13
+ /**
14
+ * Load the full models.yaml config, returning llm, embed, and runtime sections.
15
+ */
16
+ export declare function loadModelsConfig(filePath: string, options?: LoadLlmConfigOptions): ModelsConfigResult | null;
17
+ /**
18
+ * Load only the llm section from a YAML config file.
19
+ * @deprecated Use loadModelsConfig() instead.
20
+ */
6
21
  export declare function loadLlmConfig(filePath: string, options?: LoadLlmConfigOptions): unknown | null;
7
22
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +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,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,GAAG,IAAI,CAiBhB"}
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,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,CA6B3B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,GAAG,IAAI,CAGhB"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Re-export LLM section parser from agent-common.
2
+ * Re-export LLM section parser from local model module.
3
3
  */
4
- export { parseLlmSection } from "@easynet/agent-common";
4
+ export { parseLlmSection } from "../model/llm-parser.js";
5
5
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
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,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,11 @@
1
+ import {
2
+ CIS_UNREACHABLE_REMINDER,
3
+ buildUnreachableError,
4
+ checkEndpointConnectivity
5
+ } from "../chunk-AUQEXHUP.js";
6
+ export {
7
+ CIS_UNREACHABLE_REMINDER,
8
+ buildUnreachableError,
9
+ checkEndpointConnectivity
10
+ };
11
+ //# 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,36 @@
1
+ import {
2
+ createChatModelWithNpm,
3
+ discoverLLMExtensions,
4
+ ensureNpmPackageInstalled,
5
+ getInstalledVersion,
6
+ getLatestVersion,
7
+ loadDiscoveredExtensions,
8
+ loadLLMExtensions,
9
+ resolveLLMExtensionPackages,
10
+ resolveLlmSectionWithNpm,
11
+ resolveNpmProvider
12
+ } from "../chunk-FVQ3PKER.js";
13
+ import "../chunk-6EQCGQTV.js";
14
+ import "../chunk-G7MKWPEI.js";
15
+ import "../chunk-SPDXNDDD.js";
16
+ import {
17
+ NPM_PROTOCOL_PREFIX,
18
+ isNpmProviderSpec,
19
+ parseNpmProviderSpec
20
+ } from "../chunk-KE7IMUSA.js";
21
+ export {
22
+ NPM_PROTOCOL_PREFIX,
23
+ createChatModelWithNpm,
24
+ discoverLLMExtensions,
25
+ ensureNpmPackageInstalled,
26
+ getInstalledVersion,
27
+ getLatestVersion,
28
+ isNpmProviderSpec,
29
+ loadDiscoveredExtensions,
30
+ loadLLMExtensions,
31
+ parseNpmProviderSpec,
32
+ resolveLLMExtensionPackages,
33
+ resolveLlmSectionWithNpm,
34
+ resolveNpmProvider
35
+ };
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import type { BaseChatModel } from "@langchain/core/language_models/chat_models";
6
6
  import type { CreateChatModelOptions } from "../langchain/index.js";
7
- import { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec } from "@easynet/agent-common/npm";
7
+ import { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec } from "../npm/index.js";
8
8
  export { NPM_PROTOCOL_PREFIX, parseNpmProviderSpec, isNpmProviderSpec };
9
9
  export declare function getLatestVersion(packageName: string, options?: {
10
10
  cwd?: string;
@@ -1 +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,2BAA2B,CAAC;AAEnC,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"}
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"}
package/dist/index.d.ts CHANGED
@@ -1,23 +1,16 @@
1
1
  /**
2
- * Minimal public API for @easynet/agent-llm.
3
- * Goal: create a chat model from `llm.yaml` with the smallest possible surface.
2
+ * Minimal public API for @easynet/agent-model.
3
+ * Goal: create a chat model from `models.yaml` with the smallest possible surface.
4
4
  */
5
5
  export { createAgentLlM } from "./api/create-agent-llm.js";
6
6
  export type { CreateAgentLlMOptions } from "./api/create-agent-llm.js";
7
7
  export { getDefaultLlmConfig } from "./api/get-default-llm-config.js";
8
8
  export type { GetDefaultLlmConfigOptions } from "./api/get-default-llm-config.js";
9
+ export { createEmbedFnFromModelsConfig } from "./api/create-embed-fn.js";
10
+ export type { EmbedFn } from "./api/create-embed-fn.js";
9
11
  export { createChatModelFromLlmConfig } from "./langchain/index.js";
10
12
  export type { CreateChatModelOptions } from "./langchain/index.js";
11
13
  export { applyToolChoiceAuto } from "./langchain/index.js";
12
- export { createChatOpenAI } from "./langchain/openai-compatible.js";
13
- export type { CreateChatOpenAIOptions } from "./langchain/openai-compatible.js";
14
- export { loadLlmConfig } from "./config/loader.js";
15
- export type { LoadLlmConfigOptions } from "./config/loader.js";
16
14
  export { registerChatModelProvider, getChatModelFactory } from "./registry/chat-model.js";
17
15
  export type { ChatModelFactory } from "./registry/chat-model.js";
18
- export { messageContentToString, exitWithError } from "./cli/utils.js";
19
- export { createModelHub } from "./model/hub.js";
20
- export type { CreateModelHubOptions, ModelHub, EmbedRequest, EmbedResult } from "./model/hub.js";
21
- export type { LLMType, LLMConfig, AgentConfigLlmSection, ILLMExtension } from "./types.js";
22
- export { AGENT_LLM_PROVIDER_FIELD } from "./types.js";
23
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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;AAGlF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGjG,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
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,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"}
package/dist/index.js CHANGED
@@ -1,26 +1,36 @@
1
1
  import {
2
- AGENT_LLM_PROVIDER_FIELD,
3
- applyToolChoiceAuto,
4
- createAgentLlM,
5
- createChatModelFromLlmConfig,
6
- createChatOpenAI,
7
- exitWithError,
8
- getChatModelFactory,
2
+ createAgentLlM
3
+ } from "./chunk-7VIJ4MFU.js";
4
+ import "./chunk-36PPGV4O.js";
5
+ import {
9
6
  loadLlmConfig,
10
- messageContentToString,
11
- registerChatModelProvider,
7
+ loadModelsConfig
8
+ } from "./chunk-WK6P4EOC.js";
9
+ import "./chunk-AUQEXHUP.js";
10
+ import {
12
11
  resolveLlmSectionWithNpm
13
- } from "./chunk-YK4EBPJ3.js";
12
+ } from "./chunk-FVQ3PKER.js";
13
+ import {
14
+ applyToolChoiceAuto,
15
+ createChatModelFromLlmConfig
16
+ } from "./chunk-6EQCGQTV.js";
17
+ import {
18
+ getChatModelFactory,
19
+ registerChatModelProvider
20
+ } from "./chunk-G7MKWPEI.js";
21
+ import {
22
+ createModelHub,
23
+ parseEmbedSection
24
+ } from "./chunk-FZWXYGR6.js";
25
+ import {
26
+ parseLlmSection
27
+ } from "./chunk-SPDXNDDD.js";
28
+ import "./chunk-KE7IMUSA.js";
14
29
 
15
30
  // src/api/get-default-llm-config.ts
16
31
  import { join } from "path";
17
-
18
- // src/config/parser.ts
19
- import { parseLlmSection } from "@easynet/agent-common";
20
-
21
- // src/api/get-default-llm-config.ts
22
32
  async function getDefaultLlmConfig(options = {}) {
23
- const configPath = options.configPath ?? join(process.cwd(), "llm.yaml");
33
+ const configPath = options.configPath ?? join(process.cwd(), "models.yaml");
24
34
  const llmSection = loadLlmConfig(configPath);
25
35
  if (llmSection == null) return null;
26
36
  const resolved = await resolveLlmSectionWithNpm(llmSection, {
@@ -32,22 +42,32 @@ async function getDefaultLlmConfig(options = {}) {
32
42
  return defaultConfig;
33
43
  }
34
44
 
35
- // src/model/hub.ts
36
- import {
37
- createModelHub
38
- } from "@easynet/agent-common";
45
+ // src/api/create-embed-fn.ts
46
+ function createEmbedFnFromModelsConfig(configPath, embedId) {
47
+ const config = loadModelsConfig(configPath);
48
+ if (!config?.embed) return void 0;
49
+ const parsed = parseEmbedSection(config.embed);
50
+ if (parsed.configs.length === 0) return void 0;
51
+ const id = embedId ?? parsed.defaultId;
52
+ const embedConfig = parsed.configs.find((c) => c.id === id) ?? parsed.configs[0];
53
+ if (!embedConfig) return void 0;
54
+ const hub = createModelHub({
55
+ embeddingBaseURL: embedConfig.baseURL,
56
+ embeddingModel: embedConfig.model,
57
+ embeddingApiKey: embedConfig.apiKey
58
+ });
59
+ return async (input) => {
60
+ const result = await hub.embed({ input });
61
+ return result.vectors;
62
+ };
63
+ }
39
64
  export {
40
- AGENT_LLM_PROVIDER_FIELD,
41
65
  applyToolChoiceAuto,
42
66
  createAgentLlM,
43
67
  createChatModelFromLlmConfig,
44
- createChatOpenAI,
45
- createModelHub,
46
- exitWithError,
68
+ createEmbedFnFromModelsConfig,
47
69
  getChatModelFactory,
48
70
  getDefaultLlmConfig,
49
- loadLlmConfig,
50
- messageContentToString,
51
71
  registerChatModelProvider
52
72
  };
53
73
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/get-default-llm-config.ts","../src/config/parser.ts","../src/model/hub.ts"],"sourcesContent":["/**\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: LLMConfig) => c.id === defaultId) ?? configs[0] ?? null;\n return defaultConfig;\n}\n","/**\n * Re-export LLM section parser from agent-common.\n */\n\nexport { parseLlmSection } from \"@easynet/agent-common\";\n","/**\n * Re-export ModelHub from agent-common so other packages can use it without LangChain.\n * agent-llm keeps LangChain APIs (createChatModelFromLlmConfig, createAgentLlM) separately.\n */\n\nexport {\n createModelHub,\n type CreateModelHubOptions,\n type ModelHub,\n type ChatGenerateRequest,\n type ChatGenerateResult,\n type EmbedRequest,\n type EmbedResult,\n} from \"@easynet/agent-common\";\n"],"mappings":";;;;;;;;;;;;;;;AAKA,SAAS,YAAY;;;ACDrB,SAAS,uBAAuB;;;ADiBhC,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,MAAiB,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,KAAK;AAC1F,SAAO;AACT;;;AE/BA;AAAA,EACE;AAAA,OAOK;","names":[]}
1
+ {"version":3,"sources":["../src/api/get-default-llm-config.ts","../src/api/create-embed-fn.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 * 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"],"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;;;ACpBO,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;","names":[]}
@@ -0,0 +1,11 @@
1
+ import {
2
+ applyToolChoiceAuto,
3
+ createChatModelFromLlmConfig
4
+ } from "../chunk-6EQCGQTV.js";
5
+ import "../chunk-G7MKWPEI.js";
6
+ import "../chunk-SPDXNDDD.js";
7
+ export {
8
+ applyToolChoiceAuto,
9
+ createChatModelFromLlmConfig
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Parse embed section from models.yaml into normalized LLMConfig[] with type "embed".
3
+ * Reuses parseLlmSection internally since the config shape is identical.
4
+ */
5
+ import type { LLMConfig } from "./types.js";
6
+ /**
7
+ * Parse an `embed:` section from models.yaml.
8
+ * Accepts the same flat-entry, instances[], or single-object formats as the llm section.
9
+ *
10
+ * @example
11
+ * ```yaml
12
+ * embed:
13
+ * default: gemma
14
+ * gemma:
15
+ * provider: openai
16
+ * base_url: https://ollama.example.com/v1
17
+ * model: embeddinggemma:latest
18
+ * apiKey: ollama
19
+ * ```
20
+ */
21
+ export declare function parseEmbedSection(section: unknown): {
22
+ defaultId: string;
23
+ configs: LLMConfig[];
24
+ };
25
+ //# sourceMappingURL=embed-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed-parser.d.ts","sourceRoot":"","sources":["../../src/model/embed-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,GACf;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE,CAO7C"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * OpenAI-compatible embedding API: POST /embeddings.
3
+ * No LangChain dependency; for use by any module that needs embeddings.
4
+ */
5
+ export interface EmbeddingOptions {
6
+ baseURL: string;
7
+ apiKey?: string;
8
+ model?: string;
9
+ timeoutMs?: number;
10
+ }
11
+ export interface EmbedRequest {
12
+ input: string | string[];
13
+ model?: string;
14
+ }
15
+ export interface EmbedResult {
16
+ vectors: number[][];
17
+ dimensions?: number;
18
+ model?: string;
19
+ }
20
+ /**
21
+ * Call OpenAI-compatible /embeddings endpoint.
22
+ * baseURL should be the API root (e.g. https://api.openai.com/v1); trailing slash is stripped.
23
+ */
24
+ export declare function embedViaOpenAICompatibleApi(options: EmbeddingOptions, input: EmbedRequest): Promise<EmbedResult>;
25
+ //# sourceMappingURL=embedding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/model/embedding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,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,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,WAAW,CAAC,CA8CtB"}
@@ -1,6 +1,29 @@
1
1
  /**
2
- * Re-export ModelHub from agent-common so other packages can use it without LangChain.
3
- * agent-llm keeps LangChain APIs (createChatModelFromLlmConfig, createAgentLlM) separately.
2
+ * Model hub: generate (chat completion) + embed, driven by llm section config.
3
+ * No LangChain; uses OpenAI-compatible HTTP APIs so any package can use it via agent-model.
4
4
  */
5
- export { createModelHub, type CreateModelHubOptions, type ModelHub, type ChatGenerateRequest, type ChatGenerateResult, type EmbedRequest, type EmbedResult, } from "@easynet/agent-common";
5
+ import type { EmbedRequest, EmbedResult } from "./embedding.js";
6
+ export interface CreateModelHubOptions {
7
+ llmSection?: unknown;
8
+ embeddingBaseURL?: string;
9
+ embeddingApiKey?: string;
10
+ embeddingModel?: string;
11
+ embeddingTimeoutMs?: number;
12
+ chatTimeoutMs?: number;
13
+ }
14
+ export interface ChatGenerateRequest {
15
+ input: string;
16
+ systemPrompt?: string;
17
+ model?: string;
18
+ temperature?: number;
19
+ }
20
+ export interface ChatGenerateResult {
21
+ text: string;
22
+ model?: string;
23
+ }
24
+ export interface ModelHub {
25
+ generate(input: ChatGenerateRequest): Promise<ChatGenerateResult>;
26
+ embed(input: EmbedRequest): Promise<EmbedResult>;
27
+ }
28
+ export declare function createModelHub(options?: CreateModelHubOptions): ModelHub;
6
29
  //# sourceMappingURL=hub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/model/hub.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/model/hub.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClE,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAClD;AAWD,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,QAAQ,CAuE5E"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Model APIs (no LangChain dependency):
3
+ * - LLM types and config parsing
4
+ * - Chat completion and embedding HTTP APIs
5
+ * - ModelHub (generate + embed)
6
+ */
7
+ export type { LLMType, LLMConfig, AgentConfigLlmSection } from "./types.js";
8
+ export { parseLlmSection } from "./llm-parser.js";
9
+ export { parseEmbedSection } from "./embed-parser.js";
10
+ export { chatCompletionViaOpenAICompatibleApi, type ChatCompletionOptions, type ChatCompletionMessage, type ChatCompletionRequest, type ChatCompletionResult, } from "./chat.js";
11
+ export { embedViaOpenAICompatibleApi, type EmbeddingOptions, type EmbedRequest, type EmbedResult, } from "./embedding.js";
12
+ export { createModelHub, type CreateModelHubOptions, type ModelHub, type ChatGenerateRequest, type ChatGenerateResult, } from "./hub.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,oCAAoC,EACpC,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,2BAA2B,EAC3B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,17 @@
1
+ import {
2
+ chatCompletionViaOpenAICompatibleApi,
3
+ createModelHub,
4
+ embedViaOpenAICompatibleApi,
5
+ parseEmbedSection
6
+ } from "../chunk-FZWXYGR6.js";
7
+ import {
8
+ parseLlmSection
9
+ } from "../chunk-SPDXNDDD.js";
10
+ export {
11
+ chatCompletionViaOpenAICompatibleApi,
12
+ createModelHub,
13
+ embedViaOpenAICompatibleApi,
14
+ parseEmbedSection,
15
+ parseLlmSection
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parse agent.yaml llm section into normalized LLMConfig[] and default id.
3
+ * Supports: flat (each model keyed by name), instances[], or single object.
4
+ */
5
+ import type { LLMConfig } from "./types.js";
6
+ export declare function parseLlmSection(section: unknown): {
7
+ defaultId: string;
8
+ configs: LLMConfig[];
9
+ };
10
+ //# sourceMappingURL=llm-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-parser.d.ts","sourceRoot":"","sources":["../../src/model/llm-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkB5C,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE,CAsD7F"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * LLM config types (no LangChain dependency).
3
+ * Used by any module that needs to read/parse llm section (e.g. agent-llm, agent-memory).
4
+ */
5
+ export type LLMType = "chat" | "image" | "embed";
6
+ export interface LLMConfig {
7
+ id: string;
8
+ type: LLMType;
9
+ provider: string;
10
+ model?: string;
11
+ temperature?: number;
12
+ apiKey?: string;
13
+ baseURL?: string;
14
+ options?: Record<string, unknown>;
15
+ [key: string]: unknown;
16
+ }
17
+ export interface AgentConfigLlmSection {
18
+ default?: string;
19
+ type?: string | string[];
20
+ instances?: LLMConfig[];
21
+ provider?: string;
22
+ model?: string;
23
+ name?: string;
24
+ temperature?: number;
25
+ apiKey?: string;
26
+ baseURL?: string;
27
+ base_url?: string;
28
+ options?: Record<string, unknown>;
29
+ [key: string]: unknown;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjD,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"}