hazo_llm_api 1.0.4 → 1.0.6

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 (145) hide show
  1. package/dist/components/index.d.ts +7 -0
  2. package/dist/components/index.d.ts.map +1 -0
  3. package/dist/components/index.js +7 -0
  4. package/dist/components/index.js.map +1 -0
  5. package/dist/components/layout/index.d.ts +7 -0
  6. package/dist/components/layout/index.d.ts.map +1 -0
  7. package/dist/components/layout/index.js +7 -0
  8. package/dist/components/layout/index.js.map +1 -0
  9. package/dist/components/layout/layout.d.ts +21 -0
  10. package/dist/components/layout/layout.d.ts.map +1 -0
  11. package/dist/components/layout/layout.js +18 -0
  12. package/dist/components/layout/layout.js.map +1 -0
  13. package/dist/index.d.ts +15 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +21 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/lib/config/config_parser.d.ts +131 -0
  18. package/dist/lib/config/config_parser.d.ts.map +1 -0
  19. package/dist/lib/config/config_parser.js +297 -0
  20. package/dist/lib/config/config_parser.js.map +1 -0
  21. package/dist/lib/config/index.d.ts +8 -0
  22. package/dist/lib/config/index.d.ts.map +1 -0
  23. package/dist/lib/config/index.js +22 -0
  24. package/dist/lib/config/index.js.map +1 -0
  25. package/dist/lib/config/provider_loader.d.ts +113 -0
  26. package/dist/lib/config/provider_loader.d.ts.map +1 -0
  27. package/dist/lib/config/provider_loader.js +169 -0
  28. package/dist/lib/config/provider_loader.js.map +1 -0
  29. package/dist/lib/database/index.d.ts +8 -0
  30. package/dist/lib/database/index.d.ts.map +1 -0
  31. package/dist/lib/database/index.js +10 -0
  32. package/dist/lib/database/index.js.map +1 -0
  33. package/dist/lib/database/init_database.d.ts +118 -0
  34. package/dist/lib/database/init_database.d.ts.map +1 -0
  35. package/dist/lib/database/init_database.js +591 -0
  36. package/dist/lib/database/init_database.js.map +1 -0
  37. package/dist/lib/database/utils.d.ts +53 -0
  38. package/dist/lib/database/utils.d.ts.map +1 -0
  39. package/dist/lib/database/utils.js +87 -0
  40. package/dist/lib/database/utils.js.map +1 -0
  41. package/dist/lib/index.d.ts +14 -0
  42. package/dist/lib/index.d.ts.map +1 -0
  43. package/dist/lib/index.js +17 -0
  44. package/dist/lib/index.js.map +1 -0
  45. package/dist/lib/llm_api/chain_helpers.d.ts +117 -0
  46. package/dist/lib/llm_api/chain_helpers.d.ts.map +1 -0
  47. package/dist/lib/llm_api/chain_helpers.js +445 -0
  48. package/dist/lib/llm_api/chain_helpers.js.map +1 -0
  49. package/dist/lib/llm_api/hazo_llm_image_image.d.ts +26 -0
  50. package/dist/lib/llm_api/hazo_llm_image_image.d.ts.map +1 -0
  51. package/dist/lib/llm_api/hazo_llm_image_image.js +94 -0
  52. package/dist/lib/llm_api/hazo_llm_image_image.js.map +1 -0
  53. package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts +26 -0
  54. package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts.map +1 -0
  55. package/dist/lib/llm_api/hazo_llm_image_image_text.js +222 -0
  56. package/dist/lib/llm_api/hazo_llm_image_image_text.js.map +1 -0
  57. package/dist/lib/llm_api/hazo_llm_image_text.d.ts +20 -0
  58. package/dist/lib/llm_api/hazo_llm_image_text.d.ts.map +1 -0
  59. package/dist/lib/llm_api/hazo_llm_image_text.js +78 -0
  60. package/dist/lib/llm_api/hazo_llm_image_text.js.map +1 -0
  61. package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts +20 -0
  62. package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts.map +1 -0
  63. package/dist/lib/llm_api/hazo_llm_prompt_chain.js +368 -0
  64. package/dist/lib/llm_api/hazo_llm_prompt_chain.js.map +1 -0
  65. package/dist/lib/llm_api/hazo_llm_text_image.d.ts +20 -0
  66. package/dist/lib/llm_api/hazo_llm_text_image.d.ts.map +1 -0
  67. package/dist/lib/llm_api/hazo_llm_text_image.js +69 -0
  68. package/dist/lib/llm_api/hazo_llm_text_image.js.map +1 -0
  69. package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts +26 -0
  70. package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts.map +1 -0
  71. package/dist/lib/llm_api/hazo_llm_text_image_text.js +154 -0
  72. package/dist/lib/llm_api/hazo_llm_text_image_text.js.map +1 -0
  73. package/dist/lib/llm_api/hazo_llm_text_text.d.ts +20 -0
  74. package/dist/lib/llm_api/hazo_llm_text_text.d.ts.map +1 -0
  75. package/dist/lib/llm_api/hazo_llm_text_text.js +91 -0
  76. package/dist/lib/llm_api/hazo_llm_text_text.js.map +1 -0
  77. package/dist/lib/llm_api/index.d.ts +223 -0
  78. package/dist/lib/llm_api/index.d.ts.map +1 -0
  79. package/dist/lib/llm_api/index.js +1220 -0
  80. package/dist/lib/llm_api/index.js.map +1 -0
  81. package/dist/lib/llm_api/provider_helper.d.ts +163 -0
  82. package/dist/lib/llm_api/provider_helper.d.ts.map +1 -0
  83. package/dist/lib/llm_api/provider_helper.js +346 -0
  84. package/dist/lib/llm_api/provider_helper.js.map +1 -0
  85. package/dist/lib/llm_api/types.d.ts +667 -0
  86. package/dist/lib/llm_api/types.d.ts.map +1 -0
  87. package/dist/lib/llm_api/types.js +49 -0
  88. package/dist/lib/llm_api/types.js.map +1 -0
  89. package/dist/lib/prompts/get_prompt.d.ts +76 -0
  90. package/dist/lib/prompts/get_prompt.d.ts.map +1 -0
  91. package/dist/lib/prompts/get_prompt.js +342 -0
  92. package/dist/lib/prompts/get_prompt.js.map +1 -0
  93. package/dist/lib/prompts/index.d.ts +9 -0
  94. package/dist/lib/prompts/index.d.ts.map +1 -0
  95. package/dist/lib/prompts/index.js +9 -0
  96. package/dist/lib/prompts/index.js.map +1 -0
  97. package/dist/lib/prompts/prompt_cache.d.ts +151 -0
  98. package/dist/lib/prompts/prompt_cache.d.ts.map +1 -0
  99. package/dist/lib/prompts/prompt_cache.js +276 -0
  100. package/dist/lib/prompts/prompt_cache.js.map +1 -0
  101. package/dist/lib/prompts/substitute_variables.d.ts +38 -0
  102. package/dist/lib/prompts/substitute_variables.d.ts.map +1 -0
  103. package/dist/lib/prompts/substitute_variables.js +171 -0
  104. package/dist/lib/prompts/substitute_variables.js.map +1 -0
  105. package/dist/lib/providers/gemini/gemini_client.d.ts +25 -0
  106. package/dist/lib/providers/gemini/gemini_client.d.ts.map +1 -0
  107. package/dist/lib/providers/gemini/gemini_client.js +235 -0
  108. package/dist/lib/providers/gemini/gemini_client.js.map +1 -0
  109. package/dist/lib/providers/gemini/gemini_provider.d.ts +111 -0
  110. package/dist/lib/providers/gemini/gemini_provider.d.ts.map +1 -0
  111. package/dist/lib/providers/gemini/gemini_provider.js +431 -0
  112. package/dist/lib/providers/gemini/gemini_provider.js.map +1 -0
  113. package/dist/lib/providers/gemini/index.d.ts +8 -0
  114. package/dist/lib/providers/gemini/index.d.ts.map +1 -0
  115. package/dist/lib/providers/gemini/index.js +8 -0
  116. package/dist/lib/providers/gemini/index.js.map +1 -0
  117. package/dist/lib/providers/index.d.ts +8 -0
  118. package/dist/lib/providers/index.d.ts.map +1 -0
  119. package/dist/lib/providers/index.js +8 -0
  120. package/dist/lib/providers/index.js.map +1 -0
  121. package/dist/lib/providers/qwen/index.d.ts +8 -0
  122. package/dist/lib/providers/qwen/index.d.ts.map +1 -0
  123. package/dist/lib/providers/qwen/index.js +8 -0
  124. package/dist/lib/providers/qwen/index.js.map +1 -0
  125. package/dist/lib/providers/qwen/qwen_client.d.ts +154 -0
  126. package/dist/lib/providers/qwen/qwen_client.d.ts.map +1 -0
  127. package/dist/lib/providers/qwen/qwen_client.js +1002 -0
  128. package/dist/lib/providers/qwen/qwen_client.js.map +1 -0
  129. package/dist/lib/providers/qwen/qwen_provider.d.ts +139 -0
  130. package/dist/lib/providers/qwen/qwen_provider.d.ts.map +1 -0
  131. package/dist/lib/providers/qwen/qwen_provider.js +304 -0
  132. package/dist/lib/providers/qwen/qwen_provider.js.map +1 -0
  133. package/dist/lib/providers/registry.d.ts +66 -0
  134. package/dist/lib/providers/registry.d.ts.map +1 -0
  135. package/dist/lib/providers/registry.js +158 -0
  136. package/dist/lib/providers/registry.js.map +1 -0
  137. package/dist/lib/providers/types.d.ts +145 -0
  138. package/dist/lib/providers/types.d.ts.map +1 -0
  139. package/dist/lib/providers/types.js +37 -0
  140. package/dist/lib/providers/types.js.map +1 -0
  141. package/dist/server.d.ts +27 -0
  142. package/dist/server.d.ts.map +1 -0
  143. package/dist/server.js +50 -0
  144. package/dist/server.js.map +1 -0
  145. package/package.json +12 -1
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Components Exports
3
+ *
4
+ * Export all components from this package
5
+ */
6
+ export * from './layout/index.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Components Exports
3
+ *
4
+ * Export all components from this package
5
+ */
6
+ export * from './layout/index.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Layout Component Exports
3
+ *
4
+ * Export all layout-related components from this module
5
+ */
6
+ export { Layout } from './layout.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Layout Component Exports
3
+ *
4
+ * Export all layout-related components from this module
5
+ */
6
+ export { Layout } from './layout.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Layout Component
3
+ *
4
+ * Main layout component that provides a consistent structure
5
+ * for applications using the hazo_llm_api package
6
+ */
7
+ import React from 'react';
8
+ interface LayoutProps {
9
+ children: React.ReactNode;
10
+ sidebar?: React.ReactNode;
11
+ header?: React.ReactNode;
12
+ }
13
+ /**
14
+ * Layout component - provides a consistent page structure
15
+ * @param children - Main content to be displayed
16
+ * @param sidebar - Optional sidebar component
17
+ * @param header - Optional header component
18
+ */
19
+ export declare function Layout({ children, sidebar, header }: LayoutProps): import("react/jsx-runtime").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/layout.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,WAAW;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,2CAoBhE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Layout Component
3
+ *
4
+ * Main layout component that provides a consistent structure
5
+ * for applications using the hazo_llm_api package
6
+ */
7
+ 'use client';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ /**
10
+ * Layout component - provides a consistent page structure
11
+ * @param children - Main content to be displayed
12
+ * @param sidebar - Optional sidebar component
13
+ * @param header - Optional header component
14
+ */
15
+ export function Layout({ children, sidebar, header }) {
16
+ return (_jsxs("div", { className: "cls_layout_container flex h-screen w-full", children: [sidebar && (_jsx("aside", { className: "cls_layout_sidebar", children: sidebar })), _jsxs("div", { className: "cls_layout_main flex flex-1 flex-col", children: [header && (_jsx("header", { className: "cls_layout_header", children: header })), _jsx("main", { className: "cls_layout_content flex-1 overflow-auto", children: children })] })] }));
17
+ }
18
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/components/layout/layout.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,CAAC;;AAUb;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAe;IAC/D,OAAO,CACL,eAAK,SAAS,EAAC,2CAA2C,aACvD,OAAO,IAAI,CACV,gBAAO,SAAS,EAAC,oBAAoB,YAClC,OAAO,GACF,CACT,EACD,eAAK,SAAS,EAAC,sCAAsC,aAClD,MAAM,IAAI,CACT,iBAAQ,SAAS,EAAC,mBAAmB,YAClC,MAAM,GACA,CACV,EACD,eAAM,SAAS,EAAC,yCAAyC,YACtD,QAAQ,GACJ,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
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
+ export * from './components/index.js';
10
+ export { LLM_PROVIDERS, SERVICE_TYPES } from './lib/providers/types.js';
11
+ export type { ProviderName, ServiceType } from './lib/providers/types.js';
12
+ export { LLM_ERROR_CODES } from './lib/llm_api/types.js';
13
+ export type { LLMErrorCode, LLMError } from './lib/llm_api/types.js';
14
+ export type { LLMApiConfig, LLMApiClient, CallLLMParams, LLMResponse, Logger, PromptVariable, PromptVariables, Base64Data, PromptTextMode, PromptRecord, } from './lib/llm_api/types.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,cAAc,uBAAuB,CAAC;AAKtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKrE,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,MAAM,EACN,cAAc,EACd,eAAe,EACf,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,131 @@
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 config/ subdirectory 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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,297 @@
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 config/ subdirectory 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: config/ in current dir, parent dir, grandparent dir
63
+ const search_paths = [
64
+ path.join(process.cwd(), 'config', filename),
65
+ path.join(process.cwd(), '..', 'config', filename),
66
+ path.join(process.cwd(), '..', '..', 'config', 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config_parser.js","sourceRoot":"","sources":["../../../src/lib/config/config_parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
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"}