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.
Files changed (151) hide show
  1. package/README.md +4 -4
  2. package/package.json +1 -1
  3. package/techdoc.md +2 -2
  4. package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.d.ts +0 -16
  5. package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.d.ts.map +0 -1
  6. package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.js +0 -258
  7. package/dist/components/hazo_llm_prompt_config/hazo_llm_prompt_config.js.map +0 -1
  8. package/dist/components/hazo_llm_prompt_config/index.d.ts +0 -8
  9. package/dist/components/hazo_llm_prompt_config/index.d.ts.map +0 -1
  10. package/dist/components/hazo_llm_prompt_config/index.js +0 -7
  11. package/dist/components/hazo_llm_prompt_config/index.js.map +0 -1
  12. package/dist/components/hazo_llm_prompt_config/types.d.ts +0 -74
  13. package/dist/components/hazo_llm_prompt_config/types.d.ts.map +0 -1
  14. package/dist/components/hazo_llm_prompt_config/types.js +0 -8
  15. package/dist/components/hazo_llm_prompt_config/types.js.map +0 -1
  16. package/dist/components/index.d.ts +0 -7
  17. package/dist/components/index.d.ts.map +0 -1
  18. package/dist/components/index.js +0 -7
  19. package/dist/components/index.js.map +0 -1
  20. package/dist/components/layout/index.d.ts +0 -7
  21. package/dist/components/layout/index.d.ts.map +0 -1
  22. package/dist/components/layout/index.js +0 -7
  23. package/dist/components/layout/index.js.map +0 -1
  24. package/dist/components/layout/layout.d.ts +0 -21
  25. package/dist/components/layout/layout.d.ts.map +0 -1
  26. package/dist/components/layout/layout.js +0 -18
  27. package/dist/components/layout/layout.js.map +0 -1
  28. package/dist/index.d.ts +0 -15
  29. package/dist/index.d.ts.map +0 -1
  30. package/dist/index.js +0 -21
  31. package/dist/index.js.map +0 -1
  32. package/dist/lib/config/config_parser.d.ts +0 -131
  33. package/dist/lib/config/config_parser.d.ts.map +0 -1
  34. package/dist/lib/config/config_parser.js +0 -297
  35. package/dist/lib/config/config_parser.js.map +0 -1
  36. package/dist/lib/config/index.d.ts +0 -8
  37. package/dist/lib/config/index.d.ts.map +0 -1
  38. package/dist/lib/config/index.js +0 -22
  39. package/dist/lib/config/index.js.map +0 -1
  40. package/dist/lib/config/provider_loader.d.ts +0 -113
  41. package/dist/lib/config/provider_loader.d.ts.map +0 -1
  42. package/dist/lib/config/provider_loader.js +0 -169
  43. package/dist/lib/config/provider_loader.js.map +0 -1
  44. package/dist/lib/database/index.d.ts +0 -8
  45. package/dist/lib/database/index.d.ts.map +0 -1
  46. package/dist/lib/database/index.js +0 -10
  47. package/dist/lib/database/index.js.map +0 -1
  48. package/dist/lib/database/init_database.d.ts +0 -118
  49. package/dist/lib/database/init_database.d.ts.map +0 -1
  50. package/dist/lib/database/init_database.js +0 -524
  51. package/dist/lib/database/init_database.js.map +0 -1
  52. package/dist/lib/database/utils.d.ts +0 -50
  53. package/dist/lib/database/utils.d.ts.map +0 -1
  54. package/dist/lib/database/utils.js +0 -78
  55. package/dist/lib/database/utils.js.map +0 -1
  56. package/dist/lib/index.d.ts +0 -14
  57. package/dist/lib/index.d.ts.map +0 -1
  58. package/dist/lib/index.js +0 -17
  59. package/dist/lib/index.js.map +0 -1
  60. package/dist/lib/llm_api/hazo_llm_image_image.d.ts +0 -26
  61. package/dist/lib/llm_api/hazo_llm_image_image.d.ts.map +0 -1
  62. package/dist/lib/llm_api/hazo_llm_image_image.js +0 -94
  63. package/dist/lib/llm_api/hazo_llm_image_image.js.map +0 -1
  64. package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts +0 -26
  65. package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts.map +0 -1
  66. package/dist/lib/llm_api/hazo_llm_image_image_text.js +0 -222
  67. package/dist/lib/llm_api/hazo_llm_image_image_text.js.map +0 -1
  68. package/dist/lib/llm_api/hazo_llm_image_text.d.ts +0 -20
  69. package/dist/lib/llm_api/hazo_llm_image_text.d.ts.map +0 -1
  70. package/dist/lib/llm_api/hazo_llm_image_text.js +0 -78
  71. package/dist/lib/llm_api/hazo_llm_image_text.js.map +0 -1
  72. package/dist/lib/llm_api/hazo_llm_text_image.d.ts +0 -20
  73. package/dist/lib/llm_api/hazo_llm_text_image.d.ts.map +0 -1
  74. package/dist/lib/llm_api/hazo_llm_text_image.js +0 -69
  75. package/dist/lib/llm_api/hazo_llm_text_image.js.map +0 -1
  76. package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts +0 -26
  77. package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts.map +0 -1
  78. package/dist/lib/llm_api/hazo_llm_text_image_text.js +0 -154
  79. package/dist/lib/llm_api/hazo_llm_text_image_text.js.map +0 -1
  80. package/dist/lib/llm_api/hazo_llm_text_text.d.ts +0 -20
  81. package/dist/lib/llm_api/hazo_llm_text_text.d.ts.map +0 -1
  82. package/dist/lib/llm_api/hazo_llm_text_text.js +0 -91
  83. package/dist/lib/llm_api/hazo_llm_text_text.js.map +0 -1
  84. package/dist/lib/llm_api/index.d.ts +0 -191
  85. package/dist/lib/llm_api/index.d.ts.map +0 -1
  86. package/dist/lib/llm_api/index.js +0 -1168
  87. package/dist/lib/llm_api/index.js.map +0 -1
  88. package/dist/lib/llm_api/provider_helper.d.ts +0 -163
  89. package/dist/lib/llm_api/provider_helper.d.ts.map +0 -1
  90. package/dist/lib/llm_api/provider_helper.js +0 -346
  91. package/dist/lib/llm_api/provider_helper.js.map +0 -1
  92. package/dist/lib/llm_api/types.d.ts +0 -525
  93. package/dist/lib/llm_api/types.d.ts.map +0 -1
  94. package/dist/lib/llm_api/types.js +0 -49
  95. package/dist/lib/llm_api/types.js.map +0 -1
  96. package/dist/lib/prompts/get_prompt.d.ts +0 -50
  97. package/dist/lib/prompts/get_prompt.d.ts.map +0 -1
  98. package/dist/lib/prompts/get_prompt.js +0 -232
  99. package/dist/lib/prompts/get_prompt.js.map +0 -1
  100. package/dist/lib/prompts/index.d.ts +0 -9
  101. package/dist/lib/prompts/index.d.ts.map +0 -1
  102. package/dist/lib/prompts/index.js +0 -9
  103. package/dist/lib/prompts/index.js.map +0 -1
  104. package/dist/lib/prompts/prompt_cache.d.ts +0 -151
  105. package/dist/lib/prompts/prompt_cache.d.ts.map +0 -1
  106. package/dist/lib/prompts/prompt_cache.js +0 -276
  107. package/dist/lib/prompts/prompt_cache.js.map +0 -1
  108. package/dist/lib/prompts/substitute_variables.d.ts +0 -38
  109. package/dist/lib/prompts/substitute_variables.d.ts.map +0 -1
  110. package/dist/lib/prompts/substitute_variables.js +0 -175
  111. package/dist/lib/prompts/substitute_variables.js.map +0 -1
  112. package/dist/lib/providers/gemini/gemini_client.d.ts +0 -25
  113. package/dist/lib/providers/gemini/gemini_client.d.ts.map +0 -1
  114. package/dist/lib/providers/gemini/gemini_client.js +0 -235
  115. package/dist/lib/providers/gemini/gemini_client.js.map +0 -1
  116. package/dist/lib/providers/gemini/gemini_provider.d.ts +0 -111
  117. package/dist/lib/providers/gemini/gemini_provider.d.ts.map +0 -1
  118. package/dist/lib/providers/gemini/gemini_provider.js +0 -431
  119. package/dist/lib/providers/gemini/gemini_provider.js.map +0 -1
  120. package/dist/lib/providers/gemini/index.d.ts +0 -8
  121. package/dist/lib/providers/gemini/index.d.ts.map +0 -1
  122. package/dist/lib/providers/gemini/index.js +0 -8
  123. package/dist/lib/providers/gemini/index.js.map +0 -1
  124. package/dist/lib/providers/index.d.ts +0 -8
  125. package/dist/lib/providers/index.d.ts.map +0 -1
  126. package/dist/lib/providers/index.js +0 -8
  127. package/dist/lib/providers/index.js.map +0 -1
  128. package/dist/lib/providers/qwen/index.d.ts +0 -8
  129. package/dist/lib/providers/qwen/index.d.ts.map +0 -1
  130. package/dist/lib/providers/qwen/index.js +0 -8
  131. package/dist/lib/providers/qwen/index.js.map +0 -1
  132. package/dist/lib/providers/qwen/qwen_client.d.ts +0 -154
  133. package/dist/lib/providers/qwen/qwen_client.d.ts.map +0 -1
  134. package/dist/lib/providers/qwen/qwen_client.js +0 -1002
  135. package/dist/lib/providers/qwen/qwen_client.js.map +0 -1
  136. package/dist/lib/providers/qwen/qwen_provider.d.ts +0 -139
  137. package/dist/lib/providers/qwen/qwen_provider.d.ts.map +0 -1
  138. package/dist/lib/providers/qwen/qwen_provider.js +0 -304
  139. package/dist/lib/providers/qwen/qwen_provider.js.map +0 -1
  140. package/dist/lib/providers/registry.d.ts +0 -66
  141. package/dist/lib/providers/registry.d.ts.map +0 -1
  142. package/dist/lib/providers/registry.js +0 -158
  143. package/dist/lib/providers/registry.js.map +0 -1
  144. package/dist/lib/providers/types.d.ts +0 -145
  145. package/dist/lib/providers/types.d.ts.map +0 -1
  146. package/dist/lib/providers/types.js +0 -37
  147. package/dist/lib/providers/types.js.map +0 -1
  148. package/dist/server.d.ts +0 -26
  149. package/dist/server.d.ts.map +0 -1
  150. package/dist/server.js +0 -49
  151. 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"}
@@ -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"}