hazo_llm_api 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/package.json +1 -1
- package/techdoc.md +2 -2
- package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.d.ts +0 -16
- package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.d.ts.map +0 -1
- package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.js +0 -258
- package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.js.map +0 -1
- package/dist/components/hazo_llm_prompt_config/index.d.ts +0 -8
- package/dist/components/hazo_llm_prompt_config/index.d.ts.map +0 -1
- package/dist/components/hazo_llm_prompt_config/index.js +0 -7
- package/dist/components/hazo_llm_prompt_config/index.js.map +0 -1
- package/dist/components/hazo_llm_prompt_config/types.d.ts +0 -74
- package/dist/components/hazo_llm_prompt_config/types.d.ts.map +0 -1
- package/dist/components/hazo_llm_prompt_config/types.js +0 -8
- package/dist/components/hazo_llm_prompt_config/types.js.map +0 -1
- package/dist/components/index.d.ts +0 -7
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js +0 -7
- package/dist/components/index.js.map +0 -1
- package/dist/components/layout/index.d.ts +0 -7
- package/dist/components/layout/index.d.ts.map +0 -1
- package/dist/components/layout/index.js +0 -7
- package/dist/components/layout/index.js.map +0 -1
- package/dist/components/layout/layout.d.ts +0 -21
- package/dist/components/layout/layout.d.ts.map +0 -1
- package/dist/components/layout/layout.js +0 -18
- package/dist/components/layout/layout.js.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +0 -1
- package/dist/lib/config/config_parser.d.ts +0 -131
- package/dist/lib/config/config_parser.d.ts.map +0 -1
- package/dist/lib/config/config_parser.js +0 -297
- package/dist/lib/config/config_parser.js.map +0 -1
- package/dist/lib/config/index.d.ts +0 -8
- package/dist/lib/config/index.d.ts.map +0 -1
- package/dist/lib/config/index.js +0 -22
- package/dist/lib/config/index.js.map +0 -1
- package/dist/lib/config/provider_loader.d.ts +0 -113
- package/dist/lib/config/provider_loader.d.ts.map +0 -1
- package/dist/lib/config/provider_loader.js +0 -169
- package/dist/lib/config/provider_loader.js.map +0 -1
- package/dist/lib/database/index.d.ts +0 -8
- package/dist/lib/database/index.d.ts.map +0 -1
- package/dist/lib/database/index.js +0 -10
- package/dist/lib/database/index.js.map +0 -1
- package/dist/lib/database/init_database.d.ts +0 -118
- package/dist/lib/database/init_database.d.ts.map +0 -1
- package/dist/lib/database/init_database.js +0 -524
- package/dist/lib/database/init_database.js.map +0 -1
- package/dist/lib/database/utils.d.ts +0 -50
- package/dist/lib/database/utils.d.ts.map +0 -1
- package/dist/lib/database/utils.js +0 -78
- package/dist/lib/database/utils.js.map +0 -1
- package/dist/lib/index.d.ts +0 -14
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -17
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts +0 -26
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts.map +0 -1
- package/dist/lib/llm_api/hazo_llm_image_image.js +0 -94
- package/dist/lib/llm_api/hazo_llm_image_image.js.map +0 -1
- package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts +0 -26
- package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts.map +0 -1
- package/dist/lib/llm_api/hazo_llm_image_image_text.js +0 -222
- package/dist/lib/llm_api/hazo_llm_image_image_text.js.map +0 -1
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts +0 -20
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts.map +0 -1
- package/dist/lib/llm_api/hazo_llm_image_text.js +0 -78
- package/dist/lib/llm_api/hazo_llm_image_text.js.map +0 -1
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts +0 -20
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts.map +0 -1
- package/dist/lib/llm_api/hazo_llm_text_image.js +0 -69
- package/dist/lib/llm_api/hazo_llm_text_image.js.map +0 -1
- package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts +0 -26
- package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts.map +0 -1
- package/dist/lib/llm_api/hazo_llm_text_image_text.js +0 -154
- package/dist/lib/llm_api/hazo_llm_text_image_text.js.map +0 -1
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts +0 -20
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts.map +0 -1
- package/dist/lib/llm_api/hazo_llm_text_text.js +0 -91
- package/dist/lib/llm_api/hazo_llm_text_text.js.map +0 -1
- package/dist/lib/llm_api/index.d.ts +0 -191
- package/dist/lib/llm_api/index.d.ts.map +0 -1
- package/dist/lib/llm_api/index.js +0 -1168
- package/dist/lib/llm_api/index.js.map +0 -1
- package/dist/lib/llm_api/provider_helper.d.ts +0 -163
- package/dist/lib/llm_api/provider_helper.d.ts.map +0 -1
- package/dist/lib/llm_api/provider_helper.js +0 -346
- package/dist/lib/llm_api/provider_helper.js.map +0 -1
- package/dist/lib/llm_api/types.d.ts +0 -525
- package/dist/lib/llm_api/types.d.ts.map +0 -1
- package/dist/lib/llm_api/types.js +0 -49
- package/dist/lib/llm_api/types.js.map +0 -1
- package/dist/lib/prompts/get_prompt.d.ts +0 -50
- package/dist/lib/prompts/get_prompt.d.ts.map +0 -1
- package/dist/lib/prompts/get_prompt.js +0 -232
- package/dist/lib/prompts/get_prompt.js.map +0 -1
- package/dist/lib/prompts/index.d.ts +0 -9
- package/dist/lib/prompts/index.d.ts.map +0 -1
- package/dist/lib/prompts/index.js +0 -9
- package/dist/lib/prompts/index.js.map +0 -1
- package/dist/lib/prompts/prompt_cache.d.ts +0 -151
- package/dist/lib/prompts/prompt_cache.d.ts.map +0 -1
- package/dist/lib/prompts/prompt_cache.js +0 -276
- package/dist/lib/prompts/prompt_cache.js.map +0 -1
- package/dist/lib/prompts/substitute_variables.d.ts +0 -38
- package/dist/lib/prompts/substitute_variables.d.ts.map +0 -1
- package/dist/lib/prompts/substitute_variables.js +0 -175
- package/dist/lib/prompts/substitute_variables.js.map +0 -1
- package/dist/lib/providers/gemini/gemini_client.d.ts +0 -25
- package/dist/lib/providers/gemini/gemini_client.d.ts.map +0 -1
- package/dist/lib/providers/gemini/gemini_client.js +0 -235
- package/dist/lib/providers/gemini/gemini_client.js.map +0 -1
- package/dist/lib/providers/gemini/gemini_provider.d.ts +0 -111
- package/dist/lib/providers/gemini/gemini_provider.d.ts.map +0 -1
- package/dist/lib/providers/gemini/gemini_provider.js +0 -431
- package/dist/lib/providers/gemini/gemini_provider.js.map +0 -1
- package/dist/lib/providers/gemini/index.d.ts +0 -8
- package/dist/lib/providers/gemini/index.d.ts.map +0 -1
- package/dist/lib/providers/gemini/index.js +0 -8
- package/dist/lib/providers/gemini/index.js.map +0 -1
- package/dist/lib/providers/index.d.ts +0 -8
- package/dist/lib/providers/index.d.ts.map +0 -1
- package/dist/lib/providers/index.js +0 -8
- package/dist/lib/providers/index.js.map +0 -1
- package/dist/lib/providers/qwen/index.d.ts +0 -8
- package/dist/lib/providers/qwen/index.d.ts.map +0 -1
- package/dist/lib/providers/qwen/index.js +0 -8
- package/dist/lib/providers/qwen/index.js.map +0 -1
- package/dist/lib/providers/qwen/qwen_client.d.ts +0 -154
- package/dist/lib/providers/qwen/qwen_client.d.ts.map +0 -1
- package/dist/lib/providers/qwen/qwen_client.js +0 -1002
- package/dist/lib/providers/qwen/qwen_client.js.map +0 -1
- package/dist/lib/providers/qwen/qwen_provider.d.ts +0 -139
- package/dist/lib/providers/qwen/qwen_provider.d.ts.map +0 -1
- package/dist/lib/providers/qwen/qwen_provider.js +0 -304
- package/dist/lib/providers/qwen/qwen_provider.js.map +0 -1
- package/dist/lib/providers/registry.d.ts +0 -66
- package/dist/lib/providers/registry.d.ts.map +0 -1
- package/dist/lib/providers/registry.js +0 -158
- package/dist/lib/providers/registry.js.map +0 -1
- package/dist/lib/providers/types.d.ts +0 -145
- package/dist/lib/providers/types.d.ts.map +0 -1
- package/dist/lib/providers/types.js +0 -37
- package/dist/lib/providers/types.js.map +0 -1
- package/dist/server.d.ts +0 -26
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -49
- package/dist/server.js.map +0 -1
package/dist/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* hazo_llm_api Package Entry Point
|
|
3
|
-
*
|
|
4
|
-
* Main export file for the hazo_llm_api npm package.
|
|
5
|
-
*
|
|
6
|
-
* IMPORTANT: This file only exports CLIENT-SIDE safe components.
|
|
7
|
-
* For server-side LLM API functions, import from 'hazo_llm_api/server'
|
|
8
|
-
*/
|
|
9
|
-
// =============================================================================
|
|
10
|
-
// Component Exports (Client-side ONLY)
|
|
11
|
-
// =============================================================================
|
|
12
|
-
export * from './components/index.js';
|
|
13
|
-
// =============================================================================
|
|
14
|
-
// Provider Constants (Type-safe provider names - safe for client)
|
|
15
|
-
// =============================================================================
|
|
16
|
-
export { LLM_PROVIDERS, SERVICE_TYPES } from './lib/providers/types.js';
|
|
17
|
-
// =============================================================================
|
|
18
|
-
// Error Constants (safe for client)
|
|
19
|
-
// =============================================================================
|
|
20
|
-
export { LLM_ERROR_CODES } from './lib/llm_api/types.js';
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAChF,cAAc,uBAAuB,CAAC;AAEtC,gFAAgF;AAChF,kEAAkE;AAClE,gFAAgF;AAChF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGxE,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Parser Module
|
|
3
|
-
*
|
|
4
|
-
* Generic configuration parsing utilities for LLM providers.
|
|
5
|
-
* Provides a unified approach to parsing generation configs from INI files.
|
|
6
|
-
*/
|
|
7
|
-
import type { ServiceType } from '../providers/types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Generic generation config that works across providers
|
|
10
|
-
* Each provider can extend this with their specific fields
|
|
11
|
-
*/
|
|
12
|
-
export interface BaseGenerationConfig {
|
|
13
|
-
temperature?: number;
|
|
14
|
-
max_tokens?: number;
|
|
15
|
-
top_p?: number;
|
|
16
|
-
top_k?: number;
|
|
17
|
-
stop_sequences?: string[];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parameter mapping definition for config parsing
|
|
21
|
-
* Maps internal field names to possible INI key variations
|
|
22
|
-
*/
|
|
23
|
-
export interface ParameterMapping {
|
|
24
|
-
/** Internal field name */
|
|
25
|
-
field: string;
|
|
26
|
-
/** Possible keys in INI file (checked in order) */
|
|
27
|
-
keys: string[];
|
|
28
|
-
/** Type of the parameter */
|
|
29
|
-
type: 'number' | 'string' | 'json_array';
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Standard parameter mappings for common generation config fields
|
|
33
|
-
* Each provider can use these or define their own
|
|
34
|
-
*/
|
|
35
|
-
export declare const COMMON_PARAM_MAPPINGS: ParameterMapping[];
|
|
36
|
-
/**
|
|
37
|
-
* Gemini-specific parameter mappings
|
|
38
|
-
*/
|
|
39
|
-
export declare const GEMINI_PARAM_MAPPINGS: ParameterMapping[];
|
|
40
|
-
/**
|
|
41
|
-
* Qwen-specific parameter mappings
|
|
42
|
-
*/
|
|
43
|
-
export declare const QWEN_PARAM_MAPPINGS: ParameterMapping[];
|
|
44
|
-
/**
|
|
45
|
-
* Find the config file path
|
|
46
|
-
* Searches in current directory and parent directories
|
|
47
|
-
*
|
|
48
|
-
* @param filename - Config filename to search for (default: hazo_llm_api_config.ini)
|
|
49
|
-
* @returns The path to the config file or null if not found
|
|
50
|
-
*/
|
|
51
|
-
export declare function find_config_file(filename?: string): string | null;
|
|
52
|
-
/**
|
|
53
|
-
* Read and parse an INI config file
|
|
54
|
-
*
|
|
55
|
-
* @param config_path - Path to the config file
|
|
56
|
-
* @returns Parsed config object or null if reading fails
|
|
57
|
-
*/
|
|
58
|
-
export declare function read_config_file(config_path: string): Record<string, Record<string, string>> | null;
|
|
59
|
-
/**
|
|
60
|
-
* Parse a generation config from an INI section using parameter mappings
|
|
61
|
-
*
|
|
62
|
-
* This is a generic parser that works with any provider by using
|
|
63
|
-
* configurable parameter mappings.
|
|
64
|
-
*
|
|
65
|
-
* @param section - The parsed INI section object
|
|
66
|
-
* @param mappings - Array of parameter mappings to use
|
|
67
|
-
* @param prefix - Optional prefix to prepend to all keys (e.g., "text_" or "image_")
|
|
68
|
-
* @returns Parsed config object or undefined if no params set
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```typescript
|
|
72
|
-
* // Parse Gemini text config
|
|
73
|
-
* const text_config = parse_generation_config(
|
|
74
|
-
* gemini_section,
|
|
75
|
-
* GEMINI_PARAM_MAPPINGS,
|
|
76
|
-
* 'text_'
|
|
77
|
-
* );
|
|
78
|
-
*
|
|
79
|
-
* // Parse Qwen image config
|
|
80
|
-
* const image_config = parse_generation_config(
|
|
81
|
-
* qwen_section,
|
|
82
|
-
* QWEN_PARAM_MAPPINGS,
|
|
83
|
-
* 'image_'
|
|
84
|
-
* );
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
export declare function parse_generation_config<T extends Record<string, unknown>>(section: Record<string, string> | undefined, mappings: ParameterMapping[], prefix?: string): T | undefined;
|
|
88
|
-
/**
|
|
89
|
-
* Parse capabilities from config value (JSON array or comma-separated)
|
|
90
|
-
*
|
|
91
|
-
* @param value - Capabilities value from config
|
|
92
|
-
* @returns Array of ServiceType or empty array
|
|
93
|
-
*/
|
|
94
|
-
export declare function parse_capabilities(value: string | undefined): ServiceType[];
|
|
95
|
-
/**
|
|
96
|
-
* Parse enabled_llms from config (JSON array or comma-separated)
|
|
97
|
-
*
|
|
98
|
-
* @param value - Enabled LLMs value from config
|
|
99
|
-
* @param default_value - Default value if parsing fails
|
|
100
|
-
* @returns Array of LLM names
|
|
101
|
-
*/
|
|
102
|
-
export declare function parse_enabled_llms(value: string | undefined, default_value?: string[]): string[];
|
|
103
|
-
/**
|
|
104
|
-
* Load API key from environment variable
|
|
105
|
-
*
|
|
106
|
-
* @param provider_name - Provider name (e.g., "gemini", "qwen", "openai")
|
|
107
|
-
* @returns API key or undefined if not found
|
|
108
|
-
*/
|
|
109
|
-
export declare function load_api_key_from_env(provider_name: string): string | undefined;
|
|
110
|
-
/**
|
|
111
|
-
* Get the environment variable name for a provider's API key
|
|
112
|
-
*
|
|
113
|
-
* @param provider_name - Provider name
|
|
114
|
-
* @returns Environment variable name
|
|
115
|
-
*/
|
|
116
|
-
export declare function get_api_key_env_var_name(provider_name: string): string;
|
|
117
|
-
/**
|
|
118
|
-
* Global LLM configuration from [llm] section
|
|
119
|
-
*/
|
|
120
|
-
export interface GlobalLLMConfig {
|
|
121
|
-
enabled_llms: string[];
|
|
122
|
-
primary_llm: string;
|
|
123
|
-
sqlite_path: string;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Read LLM global config from [llm] section
|
|
127
|
-
*
|
|
128
|
-
* @returns Object with enabled_llms, primary_llm, and sqlite_path
|
|
129
|
-
*/
|
|
130
|
-
export declare function get_llm_global_config(): GlobalLLMConfig;
|
|
131
|
-
//# sourceMappingURL=config_parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config_parser.d.ts","sourceRoot":"","sources":["../../../src/lib/config/config_parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOzD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4BAA4B;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;CAC1C;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,EAUnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,EAQnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EASjD,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,SAA4B,GAAG,MAAM,GAAG,IAAI,CAmBpF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAOnG;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,MAAM,CAAC,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAqBf;AAqDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,EAAE,CAyB3E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,GAAE,MAAM,EAAe,GACnC,MAAM,EAAE,CAwBV;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CA2BvD"}
|
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Parser Module
|
|
3
|
-
*
|
|
4
|
-
* Generic configuration parsing utilities for LLM providers.
|
|
5
|
-
* Provides a unified approach to parsing generation configs from INI files.
|
|
6
|
-
*/
|
|
7
|
-
import * as fs from 'fs';
|
|
8
|
-
import * as path from 'path';
|
|
9
|
-
import * as ini from 'ini';
|
|
10
|
-
import { SERVICE_TYPES } from '../providers/types.js';
|
|
11
|
-
/**
|
|
12
|
-
* Standard parameter mappings for common generation config fields
|
|
13
|
-
* Each provider can use these or define their own
|
|
14
|
-
*/
|
|
15
|
-
export const COMMON_PARAM_MAPPINGS = [
|
|
16
|
-
{ field: 'temperature', keys: ['temperature'], type: 'number' },
|
|
17
|
-
{ field: 'max_tokens', keys: ['maxOutputTokens', 'max_output_tokens', 'max_tokens'], type: 'number' },
|
|
18
|
-
{ field: 'top_p', keys: ['topP', 'top_p'], type: 'number' },
|
|
19
|
-
{ field: 'top_k', keys: ['topK', 'top_k'], type: 'number' },
|
|
20
|
-
{ field: 'candidate_count', keys: ['candidateCount', 'candidate_count', 'n'], type: 'number' },
|
|
21
|
-
{ field: 'stop_sequences', keys: ['stopSequences', 'stop_sequences', 'stop'], type: 'json_array' },
|
|
22
|
-
{ field: 'response_mime_type', keys: ['responseMimeType', 'response_mime_type'], type: 'string' },
|
|
23
|
-
{ field: 'presence_penalty', keys: ['presence_penalty'], type: 'number' },
|
|
24
|
-
{ field: 'frequency_penalty', keys: ['frequency_penalty'], type: 'number' },
|
|
25
|
-
];
|
|
26
|
-
/**
|
|
27
|
-
* Gemini-specific parameter mappings
|
|
28
|
-
*/
|
|
29
|
-
export const GEMINI_PARAM_MAPPINGS = [
|
|
30
|
-
{ field: 'temperature', keys: ['temperature'], type: 'number' },
|
|
31
|
-
{ field: 'max_output_tokens', keys: ['maxOutputTokens', 'max_output_tokens'], type: 'number' },
|
|
32
|
-
{ field: 'top_p', keys: ['topP', 'top_p'], type: 'number' },
|
|
33
|
-
{ field: 'top_k', keys: ['topK', 'top_k'], type: 'number' },
|
|
34
|
-
{ field: 'candidate_count', keys: ['candidateCount', 'candidate_count'], type: 'number' },
|
|
35
|
-
{ field: 'stop_sequences', keys: ['stopSequences', 'stop_sequences'], type: 'json_array' },
|
|
36
|
-
{ field: 'response_mime_type', keys: ['responseMimeType', 'response_mime_type'], type: 'string' },
|
|
37
|
-
];
|
|
38
|
-
/**
|
|
39
|
-
* Qwen-specific parameter mappings
|
|
40
|
-
*/
|
|
41
|
-
export const QWEN_PARAM_MAPPINGS = [
|
|
42
|
-
{ field: 'temperature', keys: ['temperature'], type: 'number' },
|
|
43
|
-
{ field: 'max_tokens', keys: ['max_tokens'], type: 'number' },
|
|
44
|
-
{ field: 'top_p', keys: ['top_p'], type: 'number' },
|
|
45
|
-
{ field: 'top_k', keys: ['top_k'], type: 'number' },
|
|
46
|
-
{ field: 'n', keys: ['n'], type: 'number' },
|
|
47
|
-
{ field: 'stop', keys: ['stop'], type: 'json_array' },
|
|
48
|
-
{ field: 'presence_penalty', keys: ['presence_penalty'], type: 'number' },
|
|
49
|
-
{ field: 'frequency_penalty', keys: ['frequency_penalty'], type: 'number' },
|
|
50
|
-
];
|
|
51
|
-
// =============================================================================
|
|
52
|
-
// Config File Utilities
|
|
53
|
-
// =============================================================================
|
|
54
|
-
/**
|
|
55
|
-
* Find the config file path
|
|
56
|
-
* Searches in current directory and parent directories
|
|
57
|
-
*
|
|
58
|
-
* @param filename - Config filename to search for (default: hazo_llm_api_config.ini)
|
|
59
|
-
* @returns The path to the config file or null if not found
|
|
60
|
-
*/
|
|
61
|
-
export function find_config_file(filename = 'hazo_llm_api_config.ini') {
|
|
62
|
-
// Search paths: current dir, parent dir, grandparent dir
|
|
63
|
-
const search_paths = [
|
|
64
|
-
path.join(process.cwd(), filename),
|
|
65
|
-
path.join(process.cwd(), '..', filename),
|
|
66
|
-
path.join(process.cwd(), '..', '..', filename),
|
|
67
|
-
];
|
|
68
|
-
for (const config_path of search_paths) {
|
|
69
|
-
try {
|
|
70
|
-
if (fs.existsSync(config_path)) {
|
|
71
|
-
return config_path;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
// Continue to next path
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Read and parse an INI config file
|
|
82
|
-
*
|
|
83
|
-
* @param config_path - Path to the config file
|
|
84
|
-
* @returns Parsed config object or null if reading fails
|
|
85
|
-
*/
|
|
86
|
-
export function read_config_file(config_path) {
|
|
87
|
-
try {
|
|
88
|
-
const config_content = fs.readFileSync(config_path, 'utf-8');
|
|
89
|
-
return ini.parse(config_content);
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// =============================================================================
|
|
96
|
-
// Generation Config Parsing
|
|
97
|
-
// =============================================================================
|
|
98
|
-
/**
|
|
99
|
-
* Parse a generation config from an INI section using parameter mappings
|
|
100
|
-
*
|
|
101
|
-
* This is a generic parser that works with any provider by using
|
|
102
|
-
* configurable parameter mappings.
|
|
103
|
-
*
|
|
104
|
-
* @param section - The parsed INI section object
|
|
105
|
-
* @param mappings - Array of parameter mappings to use
|
|
106
|
-
* @param prefix - Optional prefix to prepend to all keys (e.g., "text_" or "image_")
|
|
107
|
-
* @returns Parsed config object or undefined if no params set
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```typescript
|
|
111
|
-
* // Parse Gemini text config
|
|
112
|
-
* const text_config = parse_generation_config(
|
|
113
|
-
* gemini_section,
|
|
114
|
-
* GEMINI_PARAM_MAPPINGS,
|
|
115
|
-
* 'text_'
|
|
116
|
-
* );
|
|
117
|
-
*
|
|
118
|
-
* // Parse Qwen image config
|
|
119
|
-
* const image_config = parse_generation_config(
|
|
120
|
-
* qwen_section,
|
|
121
|
-
* QWEN_PARAM_MAPPINGS,
|
|
122
|
-
* 'image_'
|
|
123
|
-
* );
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
export function parse_generation_config(section, mappings, prefix) {
|
|
127
|
-
if (!section) {
|
|
128
|
-
return undefined;
|
|
129
|
-
}
|
|
130
|
-
const config = {};
|
|
131
|
-
let has_params = false;
|
|
132
|
-
for (const mapping of mappings) {
|
|
133
|
-
const value = get_config_value(section, mapping.keys, prefix);
|
|
134
|
-
if (value !== undefined) {
|
|
135
|
-
const parsed = parse_value(value, mapping.type);
|
|
136
|
-
if (parsed !== undefined) {
|
|
137
|
-
config[mapping.field] = parsed;
|
|
138
|
-
has_params = true;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return has_params ? config : undefined;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Get a config value from a section, checking multiple possible keys
|
|
146
|
-
*
|
|
147
|
-
* @param section - INI section object
|
|
148
|
-
* @param keys - Array of possible key names to check
|
|
149
|
-
* @param prefix - Optional prefix to prepend to all keys
|
|
150
|
-
* @returns The first found value or undefined
|
|
151
|
-
*/
|
|
152
|
-
function get_config_value(section, keys, prefix) {
|
|
153
|
-
for (const key of keys) {
|
|
154
|
-
const full_key = prefix ? `${prefix}${key}` : key;
|
|
155
|
-
if (section[full_key] !== undefined) {
|
|
156
|
-
return section[full_key];
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return undefined;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Parse a string value to the appropriate type
|
|
163
|
-
*
|
|
164
|
-
* @param value - String value from config
|
|
165
|
-
* @param type - Expected type
|
|
166
|
-
* @returns Parsed value or undefined if parsing fails
|
|
167
|
-
*/
|
|
168
|
-
function parse_value(value, type) {
|
|
169
|
-
switch (type) {
|
|
170
|
-
case 'number': {
|
|
171
|
-
const num = parseFloat(value);
|
|
172
|
-
return isNaN(num) ? undefined : num;
|
|
173
|
-
}
|
|
174
|
-
case 'string':
|
|
175
|
-
return value;
|
|
176
|
-
case 'json_array':
|
|
177
|
-
try {
|
|
178
|
-
const parsed = JSON.parse(value);
|
|
179
|
-
return Array.isArray(parsed) && parsed.length > 0 ? parsed : undefined;
|
|
180
|
-
}
|
|
181
|
-
catch {
|
|
182
|
-
return undefined;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// =============================================================================
|
|
187
|
-
// Capabilities and LLM List Parsing
|
|
188
|
-
// =============================================================================
|
|
189
|
-
/**
|
|
190
|
-
* Parse capabilities from config value (JSON array or comma-separated)
|
|
191
|
-
*
|
|
192
|
-
* @param value - Capabilities value from config
|
|
193
|
-
* @returns Array of ServiceType or empty array
|
|
194
|
-
*/
|
|
195
|
-
export function parse_capabilities(value) {
|
|
196
|
-
if (!value) {
|
|
197
|
-
return [];
|
|
198
|
-
}
|
|
199
|
-
try {
|
|
200
|
-
// Try parsing as JSON array first
|
|
201
|
-
const parsed = JSON.parse(value);
|
|
202
|
-
if (Array.isArray(parsed)) {
|
|
203
|
-
return parsed.filter((cap) => Object.values(SERVICE_TYPES).includes(cap));
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
catch {
|
|
207
|
-
// Not JSON, try comma-separated
|
|
208
|
-
const caps = value
|
|
209
|
-
.split(',')
|
|
210
|
-
.map((c) => c.trim())
|
|
211
|
-
.filter(Boolean);
|
|
212
|
-
return caps.filter((cap) => Object.values(SERVICE_TYPES).includes(cap));
|
|
213
|
-
}
|
|
214
|
-
return [];
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Parse enabled_llms from config (JSON array or comma-separated)
|
|
218
|
-
*
|
|
219
|
-
* @param value - Enabled LLMs value from config
|
|
220
|
-
* @param default_value - Default value if parsing fails
|
|
221
|
-
* @returns Array of LLM names
|
|
222
|
-
*/
|
|
223
|
-
export function parse_enabled_llms(value, default_value = ['gemini']) {
|
|
224
|
-
if (!value) {
|
|
225
|
-
return default_value;
|
|
226
|
-
}
|
|
227
|
-
try {
|
|
228
|
-
// Try parsing as JSON array first
|
|
229
|
-
const parsed = JSON.parse(value);
|
|
230
|
-
if (Array.isArray(parsed)) {
|
|
231
|
-
const valid = parsed.filter((name) => typeof name === 'string' && name.length > 0);
|
|
232
|
-
return valid.length > 0 ? valid : default_value;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
catch {
|
|
236
|
-
// Not JSON, try comma-separated
|
|
237
|
-
const names = value
|
|
238
|
-
.split(',')
|
|
239
|
-
.map((name) => name.trim())
|
|
240
|
-
.filter(Boolean);
|
|
241
|
-
return names.length > 0 ? names : default_value;
|
|
242
|
-
}
|
|
243
|
-
return default_value;
|
|
244
|
-
}
|
|
245
|
-
// =============================================================================
|
|
246
|
-
// Environment Variable Utilities
|
|
247
|
-
// =============================================================================
|
|
248
|
-
/**
|
|
249
|
-
* Load API key from environment variable
|
|
250
|
-
*
|
|
251
|
-
* @param provider_name - Provider name (e.g., "gemini", "qwen", "openai")
|
|
252
|
-
* @returns API key or undefined if not found
|
|
253
|
-
*/
|
|
254
|
-
export function load_api_key_from_env(provider_name) {
|
|
255
|
-
// Try provider-specific env var: GEMINI_API_KEY, OPENAI_API_KEY, etc.
|
|
256
|
-
const env_var_name = `${provider_name.toUpperCase()}_API_KEY`;
|
|
257
|
-
return process.env[env_var_name];
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Get the environment variable name for a provider's API key
|
|
261
|
-
*
|
|
262
|
-
* @param provider_name - Provider name
|
|
263
|
-
* @returns Environment variable name
|
|
264
|
-
*/
|
|
265
|
-
export function get_api_key_env_var_name(provider_name) {
|
|
266
|
-
return `${provider_name.toUpperCase()}_API_KEY`;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Read LLM global config from [llm] section
|
|
270
|
-
*
|
|
271
|
-
* @returns Object with enabled_llms, primary_llm, and sqlite_path
|
|
272
|
-
*/
|
|
273
|
-
export function get_llm_global_config() {
|
|
274
|
-
const config_path = find_config_file();
|
|
275
|
-
const defaults = {
|
|
276
|
-
enabled_llms: ['gemini'],
|
|
277
|
-
primary_llm: 'gemini',
|
|
278
|
-
sqlite_path: 'prompt_library.sqlite',
|
|
279
|
-
};
|
|
280
|
-
if (!config_path) {
|
|
281
|
-
return defaults;
|
|
282
|
-
}
|
|
283
|
-
const config = read_config_file(config_path);
|
|
284
|
-
if (!config) {
|
|
285
|
-
return defaults;
|
|
286
|
-
}
|
|
287
|
-
const llm_section = config.llm || {};
|
|
288
|
-
const enabled_llms = parse_enabled_llms(llm_section.enabled_llms);
|
|
289
|
-
const primary_llm = llm_section.primary_llm || defaults.primary_llm;
|
|
290
|
-
const sqlite_path = llm_section.sqlite_path || defaults.sqlite_path;
|
|
291
|
-
return {
|
|
292
|
-
enabled_llms: enabled_llms.length > 0 ? enabled_llms : defaults.enabled_llms,
|
|
293
|
-
primary_llm,
|
|
294
|
-
sqlite_path,
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
|
-
//# sourceMappingURL=config_parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config_parser.js","sourceRoot":"","sources":["../../../src/lib/config/config_parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Module Exports
|
|
3
|
-
*
|
|
4
|
-
* Export all configuration-related utilities from this module
|
|
5
|
-
*/
|
|
6
|
-
export { type BaseGenerationConfig, type ParameterMapping, type GlobalLLMConfig, COMMON_PARAM_MAPPINGS, GEMINI_PARAM_MAPPINGS, QWEN_PARAM_MAPPINGS, find_config_file, read_config_file, parse_generation_config, parse_capabilities, parse_enabled_llms, load_api_key_from_env, get_api_key_env_var_name, get_llm_global_config, } from './config_parser.js';
|
|
7
|
-
export { type BaseProviderConfig, type ProviderFactory, type ProviderLoadResult, register_provider_factory, get_provider_factory, get_registered_factory_names, load_provider_from_config, load_all_providers, } from './provider_loader.js';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAEpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EAEnB,gBAAgB,EAChB,gBAAgB,EAEhB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAElB,qBAAqB,EACrB,wBAAwB,EAExB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAEvB,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,EAE5B,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
|
package/dist/lib/config/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Module Exports
|
|
3
|
-
*
|
|
4
|
-
* Export all configuration-related utilities from this module
|
|
5
|
-
*/
|
|
6
|
-
export {
|
|
7
|
-
// Parameter mappings
|
|
8
|
-
COMMON_PARAM_MAPPINGS, GEMINI_PARAM_MAPPINGS, QWEN_PARAM_MAPPINGS,
|
|
9
|
-
// Config file utilities
|
|
10
|
-
find_config_file, read_config_file,
|
|
11
|
-
// Parsing utilities
|
|
12
|
-
parse_generation_config, parse_capabilities, parse_enabled_llms,
|
|
13
|
-
// Environment utilities
|
|
14
|
-
load_api_key_from_env, get_api_key_env_var_name,
|
|
15
|
-
// Global config
|
|
16
|
-
get_llm_global_config, } from './config_parser.js';
|
|
17
|
-
export {
|
|
18
|
-
// Factory registration
|
|
19
|
-
register_provider_factory, get_provider_factory, get_registered_factory_names,
|
|
20
|
-
// Provider loading
|
|
21
|
-
load_provider_from_config, load_all_providers, } from './provider_loader.js';
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AAKL,qBAAqB;AACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB;AACnB,wBAAwB;AACxB,gBAAgB,EAChB,gBAAgB;AAChB,oBAAoB;AACpB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB;AAClB,wBAAwB;AACxB,qBAAqB,EACrB,wBAAwB;AACxB,gBAAgB;AAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO;AAKL,uBAAuB;AACvB,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B;AAC5B,mBAAmB;AACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider Loader Factory
|
|
3
|
-
*
|
|
4
|
-
* Generic factory for loading LLM providers from configuration.
|
|
5
|
-
* Reduces duplication by providing a unified approach to provider loading.
|
|
6
|
-
*/
|
|
7
|
-
import type { LLMProvider, ServiceType } from '../providers/types.js';
|
|
8
|
-
import type { Logger } from '../llm_api/types.js';
|
|
9
|
-
import { type ParameterMapping } from './config_parser.js';
|
|
10
|
-
/**
|
|
11
|
-
* Base configuration that all providers share
|
|
12
|
-
*/
|
|
13
|
-
export interface BaseProviderConfig {
|
|
14
|
-
api_key: string;
|
|
15
|
-
api_url?: string;
|
|
16
|
-
capabilities?: ServiceType[];
|
|
17
|
-
logger: Logger;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Provider factory definition
|
|
21
|
-
* Used to register how to load a specific provider type
|
|
22
|
-
*/
|
|
23
|
-
export interface ProviderFactory<TConfig extends BaseProviderConfig> {
|
|
24
|
-
/** Provider name (lowercase) */
|
|
25
|
-
name: string;
|
|
26
|
-
/** INI section name (e.g., "llm_gemini") */
|
|
27
|
-
config_section: string;
|
|
28
|
-
/** Parameter mappings for text generation config */
|
|
29
|
-
text_param_mappings: ParameterMapping[];
|
|
30
|
-
/** Parameter mappings for image generation config */
|
|
31
|
-
image_param_mappings: ParameterMapping[];
|
|
32
|
-
/**
|
|
33
|
-
* Build provider-specific config from INI section
|
|
34
|
-
*
|
|
35
|
-
* @param section - The parsed INI section
|
|
36
|
-
* @param api_key - The API key loaded from environment
|
|
37
|
-
* @param text_config - Parsed text generation config
|
|
38
|
-
* @param image_config - Parsed image generation config
|
|
39
|
-
* @param capabilities - Parsed capabilities
|
|
40
|
-
* @param logger - Logger instance
|
|
41
|
-
* @returns Provider-specific config object
|
|
42
|
-
*/
|
|
43
|
-
build_config(section: Record<string, string>, api_key: string, text_config: unknown, image_config: unknown, capabilities: ServiceType[], logger: Logger): TConfig;
|
|
44
|
-
/**
|
|
45
|
-
* Create provider instance from config
|
|
46
|
-
*
|
|
47
|
-
* @param config - Provider-specific config object
|
|
48
|
-
* @returns Provider instance
|
|
49
|
-
*/
|
|
50
|
-
create_provider(config: TConfig): LLMProvider;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Result of loading a provider
|
|
54
|
-
*/
|
|
55
|
-
export type ProviderLoadResult = {
|
|
56
|
-
success: true;
|
|
57
|
-
provider: LLMProvider;
|
|
58
|
-
} | {
|
|
59
|
-
success: false;
|
|
60
|
-
error: string;
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Register a provider factory
|
|
64
|
-
*
|
|
65
|
-
* @param factory - Provider factory to register
|
|
66
|
-
*
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* register_provider_factory({
|
|
70
|
-
* name: 'gemini',
|
|
71
|
-
* config_section: 'llm_gemini',
|
|
72
|
-
* text_param_mappings: GEMINI_PARAM_MAPPINGS,
|
|
73
|
-
* image_param_mappings: GEMINI_PARAM_MAPPINGS,
|
|
74
|
-
* build_config: (section, api_key, text_config, image_config, capabilities, logger) => ({
|
|
75
|
-
* api_key,
|
|
76
|
-
* api_url: section.api_url,
|
|
77
|
-
* // ... other gemini-specific fields
|
|
78
|
-
* }),
|
|
79
|
-
* create_provider: (config) => new GeminiProvider(config),
|
|
80
|
-
* });
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
export declare function register_provider_factory<TConfig extends BaseProviderConfig>(factory: ProviderFactory<TConfig>): void;
|
|
84
|
-
/**
|
|
85
|
-
* Get a registered provider factory by name
|
|
86
|
-
*
|
|
87
|
-
* @param name - Provider name (case-insensitive)
|
|
88
|
-
* @returns Provider factory or undefined
|
|
89
|
-
*/
|
|
90
|
-
export declare function get_provider_factory(name: string): ProviderFactory<BaseProviderConfig> | undefined;
|
|
91
|
-
/**
|
|
92
|
-
* Get all registered provider factory names
|
|
93
|
-
*
|
|
94
|
-
* @returns Array of provider names
|
|
95
|
-
*/
|
|
96
|
-
export declare function get_registered_factory_names(): string[];
|
|
97
|
-
/**
|
|
98
|
-
* Load a provider from config using its registered factory
|
|
99
|
-
*
|
|
100
|
-
* @param provider_name - Name of the provider to load
|
|
101
|
-
* @param logger - Logger instance
|
|
102
|
-
* @returns Provider instance or error result
|
|
103
|
-
*/
|
|
104
|
-
export declare function load_provider_from_config(provider_name: string, logger: Logger): ProviderLoadResult;
|
|
105
|
-
/**
|
|
106
|
-
* Load all enabled providers from config
|
|
107
|
-
*
|
|
108
|
-
* @param enabled_llms - List of enabled LLM names
|
|
109
|
-
* @param logger - Logger instance
|
|
110
|
-
* @returns Map of successfully loaded providers
|
|
111
|
-
*/
|
|
112
|
-
export declare function load_all_providers(enabled_llms: string[], logger: Logger): Map<string, LLMProvider>;
|
|
113
|
-
//# sourceMappingURL=provider_loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider_loader.d.ts","sourceRoot":"","sources":["../../../src/lib/config/provider_loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAM5B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,kBAAkB;IACjE,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IACpD,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IAExC,qDAAqD;IACrD,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,WAAW,EAAE,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAEX;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,GACxC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAWtC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,kBAAkB,EAC1E,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAChC,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GACX,eAAe,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAmGpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,MAAM,GACb,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAsB1B"}
|