hazo_llm_api 1.0.4 → 1.0.5

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 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/llm_api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Provider Helper Utilities
3
+ *
4
+ * Centralized helper functions for provider lookup, validation, and error handling.
5
+ * Eliminates code duplication across service functions.
6
+ */
7
+ import type { LLMProvider, ServiceType, ProviderName } from '../providers/types.js';
8
+ import type { Logger, LLMResponse, LLMErrorCode, LLMRequestContext, LLMResponseContext, LLMErrorContext } from './types.js';
9
+ /**
10
+ * Result of provider validation - either success with provider or failure with error response
11
+ */
12
+ export type ProviderValidationResult = {
13
+ success: true;
14
+ provider: LLMProvider;
15
+ } | {
16
+ success: false;
17
+ error_response: LLMResponse;
18
+ };
19
+ /**
20
+ * Options for provider validation
21
+ */
22
+ export interface ProviderValidationOptions {
23
+ /** LLM provider name (uses primary if not specified) */
24
+ llm?: ProviderName;
25
+ /** Service type to validate capability for */
26
+ service_type: ServiceType;
27
+ /** Logger instance */
28
+ logger: Logger;
29
+ }
30
+ /**
31
+ * Get and validate a provider for a specific service type
32
+ *
33
+ * This function consolidates the provider lookup and capability validation
34
+ * logic that was previously duplicated across all service functions.
35
+ *
36
+ * @param options - Validation options
37
+ * @returns Provider if valid, or error response if not
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const result = get_validated_provider({
42
+ * llm: 'gemini',
43
+ * service_type: SERVICE_TYPES.TEXT_TEXT,
44
+ * logger,
45
+ * });
46
+ *
47
+ * if (!result.success) {
48
+ * return result.error_response;
49
+ * }
50
+ *
51
+ * const response = await result.provider.text_text(params, logger);
52
+ * ```
53
+ */
54
+ export declare function get_validated_provider(options: ProviderValidationOptions): ProviderValidationResult;
55
+ /**
56
+ * Build a structured error response with both legacy and new error formats
57
+ *
58
+ * @param code - Error code from LLM_ERROR_CODES
59
+ * @param message - Human-readable error message
60
+ * @param retryable - Whether this error is potentially retryable (default: false)
61
+ * @param details - Additional error details (optional)
62
+ * @returns LLMResponse with structured error
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * return build_error_response(
67
+ * LLM_ERROR_CODES.RATE_LIMITED,
68
+ * 'Rate limit exceeded. Please try again later.',
69
+ * true,
70
+ * { retry_after: 60 }
71
+ * );
72
+ * ```
73
+ */
74
+ export declare function build_error_response(code: LLMErrorCode, message: string, retryable?: boolean, details?: Record<string, unknown>): LLMResponse;
75
+ /**
76
+ * Build a helpful error message when provider is not found
77
+ *
78
+ * @param llm - The requested LLM name (or undefined for primary)
79
+ * @returns LLMResponse with helpful error message
80
+ */
81
+ export declare function build_provider_not_found_error(llm?: ProviderName): LLMResponse;
82
+ /**
83
+ * Build an error response for unsupported capability
84
+ *
85
+ * @param provider_name - Name of the provider
86
+ * @param service_type - The unsupported service type
87
+ * @returns LLMResponse with capability error
88
+ */
89
+ export declare function build_capability_error(provider_name: string, service_type: ServiceType): LLMResponse;
90
+ /**
91
+ * Log API call start with consistent formatting
92
+ *
93
+ * @param api_name - Name of the API being called
94
+ * @param file_name - Source file name
95
+ * @param logger - Logger instance
96
+ */
97
+ export declare function log_api_start(api_name: string, file_name: string, logger: Logger): void;
98
+ /**
99
+ * Log API call completion with consistent formatting
100
+ *
101
+ * @param api_name - Name of the API being called
102
+ * @param file_name - Source file name
103
+ * @param success - Whether the call was successful
104
+ * @param logger - Logger instance
105
+ */
106
+ export declare function log_api_complete(api_name: string, file_name: string, success: boolean, logger: Logger): void;
107
+ /**
108
+ * Log API call details including provider and model
109
+ *
110
+ * @param provider - The LLM provider
111
+ * @param service_type - The service type being called
112
+ * @param file_name - Source file name
113
+ * @param logger - Logger instance
114
+ * @param additional_data - Additional data to include in log
115
+ */
116
+ export declare function log_api_details(provider: LLMProvider, service_type: ServiceType, file_name: string, logger: Logger, additional_data?: Record<string, unknown>): void;
117
+ /**
118
+ * Log API response
119
+ *
120
+ * @param response - The LLM response
121
+ * @param file_name - Source file name
122
+ * @param logger - Logger instance
123
+ */
124
+ export declare function log_api_response(response: LLMResponse, file_name: string, logger: Logger): void;
125
+ /**
126
+ * Log and build error response for caught exceptions
127
+ *
128
+ * @param error - The caught error
129
+ * @param function_name - Name of the function where error occurred
130
+ * @param file_name - Source file name
131
+ * @param logger - Logger instance
132
+ * @param error_code - Optional specific error code (defaults to UNKNOWN)
133
+ * @returns LLMResponse with error details
134
+ */
135
+ export declare function handle_caught_error(error: unknown, function_name: string, file_name: string, logger: Logger, error_code?: LLMErrorCode): LLMResponse;
136
+ /**
137
+ * Call the beforeRequest hook if configured
138
+ *
139
+ * @param context - Request context
140
+ */
141
+ export declare function call_before_request_hook(context: LLMRequestContext): Promise<void>;
142
+ /**
143
+ * Call the afterResponse hook if configured
144
+ *
145
+ * @param context - Response context
146
+ */
147
+ export declare function call_after_response_hook(context: LLMResponseContext): Promise<void>;
148
+ /**
149
+ * Call the onError hook if configured
150
+ *
151
+ * @param context - Error context
152
+ */
153
+ export declare function call_on_error_hook(context: LLMErrorContext): Promise<void>;
154
+ /**
155
+ * Create a request context for hooks
156
+ *
157
+ * @param service_type - Service type being called
158
+ * @param provider - Provider name
159
+ * @param params - Request parameters
160
+ * @returns Request context
161
+ */
162
+ export declare function create_request_context(service_type: ServiceType, provider: string, params: Record<string, unknown>): LLMRequestContext;
163
+ //# sourceMappingURL=provider_helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider_helper.d.ts","sourceRoot":"","sources":["../../../src/lib/llm_api/provider_helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,346 @@
1
+ /**
2
+ * Provider Helper Utilities
3
+ *
4
+ * Centralized helper functions for provider lookup, validation, and error handling.
5
+ * Eliminates code duplication across service functions.
6
+ */
7
+ import { LLM_ERROR_CODES } from './types.js';
8
+ import { get_provider, validate_capability } from '../providers/registry.js';
9
+ import { get_hooks } from './index.js';
10
+ // =============================================================================
11
+ // Provider Validation Helper
12
+ // =============================================================================
13
+ /**
14
+ * Get and validate a provider for a specific service type
15
+ *
16
+ * This function consolidates the provider lookup and capability validation
17
+ * logic that was previously duplicated across all service functions.
18
+ *
19
+ * @param options - Validation options
20
+ * @returns Provider if valid, or error response if not
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const result = get_validated_provider({
25
+ * llm: 'gemini',
26
+ * service_type: SERVICE_TYPES.TEXT_TEXT,
27
+ * logger,
28
+ * });
29
+ *
30
+ * if (!result.success) {
31
+ * return result.error_response;
32
+ * }
33
+ *
34
+ * const response = await result.provider.text_text(params, logger);
35
+ * ```
36
+ */
37
+ export function get_validated_provider(options) {
38
+ const { llm, service_type, logger } = options;
39
+ // ==========================================================================
40
+ // Step 1: Get provider from registry
41
+ // ==========================================================================
42
+ const provider = get_provider(llm, logger);
43
+ if (!provider) {
44
+ const error_response = build_provider_not_found_error(llm);
45
+ return { success: false, error_response };
46
+ }
47
+ // ==========================================================================
48
+ // Step 2: Validate capability
49
+ // ==========================================================================
50
+ if (!validate_capability(provider, service_type, logger)) {
51
+ const error_response = build_capability_error(provider.get_name(), service_type);
52
+ return { success: false, error_response };
53
+ }
54
+ return { success: true, provider };
55
+ }
56
+ // =============================================================================
57
+ // Error Response Builders
58
+ // =============================================================================
59
+ /**
60
+ * Build a structured error response with both legacy and new error formats
61
+ *
62
+ * @param code - Error code from LLM_ERROR_CODES
63
+ * @param message - Human-readable error message
64
+ * @param retryable - Whether this error is potentially retryable (default: false)
65
+ * @param details - Additional error details (optional)
66
+ * @returns LLMResponse with structured error
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * return build_error_response(
71
+ * LLM_ERROR_CODES.RATE_LIMITED,
72
+ * 'Rate limit exceeded. Please try again later.',
73
+ * true,
74
+ * { retry_after: 60 }
75
+ * );
76
+ * ```
77
+ */
78
+ export function build_error_response(code, message, retryable = false, details) {
79
+ const error_info = {
80
+ code,
81
+ message,
82
+ retryable,
83
+ ...(details && { details }),
84
+ };
85
+ return {
86
+ success: false,
87
+ error: message, // Backward compatibility
88
+ error_info,
89
+ };
90
+ }
91
+ /**
92
+ * Build a helpful error message when provider is not found
93
+ *
94
+ * @param llm - The requested LLM name (or undefined for primary)
95
+ * @returns LLMResponse with helpful error message
96
+ */
97
+ export function build_provider_not_found_error(llm) {
98
+ const provider_name = (llm || '').toLowerCase();
99
+ const env_var_name = provider_name ? `${provider_name.toUpperCase()}_API_KEY` : '';
100
+ const message = llm
101
+ ? `LLM provider "${llm}" is enabled in config but not available. ${env_var_name ? `Check ${env_var_name} in environment variables.` : 'Provider may not be properly configured.'}`
102
+ : 'No LLM provider configured. Check enabled_llms and primary_llm in config/hazo_llm_api_config.ini';
103
+ return build_error_response(LLM_ERROR_CODES.PROVIDER_NOT_FOUND, message, false, { provider: llm, env_var_name: env_var_name || undefined });
104
+ }
105
+ /**
106
+ * Build an error response for unsupported capability
107
+ *
108
+ * @param provider_name - Name of the provider
109
+ * @param service_type - The unsupported service type
110
+ * @returns LLMResponse with capability error
111
+ */
112
+ export function build_capability_error(provider_name, service_type) {
113
+ return build_error_response(LLM_ERROR_CODES.CAPABILITY_NOT_SUPPORTED, `LLM provider "${provider_name}" does not support ${service_type} service`, false, { provider: provider_name, service_type });
114
+ }
115
+ // =============================================================================
116
+ // Logging Helpers
117
+ // =============================================================================
118
+ /**
119
+ * Log API call start with consistent formatting
120
+ *
121
+ * @param api_name - Name of the API being called
122
+ * @param file_name - Source file name
123
+ * @param logger - Logger instance
124
+ */
125
+ export function log_api_start(api_name, file_name, logger) {
126
+ logger.debug(`########################################################################### ${api_name}`, {
127
+ file: file_name,
128
+ });
129
+ }
130
+ /**
131
+ * Log API call completion with consistent formatting
132
+ *
133
+ * @param api_name - Name of the API being called
134
+ * @param file_name - Source file name
135
+ * @param success - Whether the call was successful
136
+ * @param logger - Logger instance
137
+ */
138
+ export function log_api_complete(api_name, file_name, success, logger) {
139
+ logger.debug(`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ${api_name} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`, {
140
+ file: file_name,
141
+ data: { success },
142
+ });
143
+ }
144
+ /**
145
+ * Log API call details including provider and model
146
+ *
147
+ * @param provider - The LLM provider
148
+ * @param service_type - The service type being called
149
+ * @param file_name - Source file name
150
+ * @param logger - Logger instance
151
+ * @param additional_data - Additional data to include in log
152
+ */
153
+ export function log_api_details(provider, service_type, file_name, logger, additional_data) {
154
+ const model = provider.get_model_for_service(service_type);
155
+ logger.debug('API call details', {
156
+ file: file_name,
157
+ data: {
158
+ provider: provider.get_name(),
159
+ model: model || 'default',
160
+ service_type,
161
+ ...additional_data,
162
+ },
163
+ });
164
+ }
165
+ /**
166
+ * Log API response
167
+ *
168
+ * @param response - The LLM response
169
+ * @param file_name - Source file name
170
+ * @param logger - Logger instance
171
+ */
172
+ export function log_api_response(response, file_name, logger) {
173
+ logger.debug('API response', {
174
+ file: file_name,
175
+ data: {
176
+ success: response.success,
177
+ text: response.text,
178
+ has_image: !!response.image_b64,
179
+ error: response.error,
180
+ },
181
+ });
182
+ }
183
+ /**
184
+ * Log and build error response for caught exceptions
185
+ *
186
+ * @param error - The caught error
187
+ * @param function_name - Name of the function where error occurred
188
+ * @param file_name - Source file name
189
+ * @param logger - Logger instance
190
+ * @param error_code - Optional specific error code (defaults to UNKNOWN)
191
+ * @returns LLMResponse with error details
192
+ */
193
+ export function handle_caught_error(error, function_name, file_name, logger, error_code = LLM_ERROR_CODES.UNKNOWN) {
194
+ const error_message = error instanceof Error ? error.message : String(error);
195
+ // Determine if error is retryable based on common patterns
196
+ const retryable = is_retryable_error(error);
197
+ // Auto-detect error code if not specified
198
+ const detected_code = error_code === LLM_ERROR_CODES.UNKNOWN
199
+ ? detect_error_code(error)
200
+ : error_code;
201
+ logger.error(`Error in ${function_name}`, {
202
+ file: file_name,
203
+ data: { error: error_message, code: detected_code },
204
+ });
205
+ return build_error_response(detected_code, error_message, retryable, { function_name, file_name });
206
+ }
207
+ /**
208
+ * Determine if an error is potentially retryable
209
+ *
210
+ * @param error - The error to check
211
+ * @returns True if the error is retryable
212
+ */
213
+ function is_retryable_error(error) {
214
+ if (!(error instanceof Error)) {
215
+ return false;
216
+ }
217
+ const message = error.message.toLowerCase();
218
+ // Network/timeout errors are retryable
219
+ if (message.includes('timeout') ||
220
+ message.includes('network') ||
221
+ message.includes('econnrefused') ||
222
+ message.includes('econnreset') ||
223
+ message.includes('socket') ||
224
+ message.includes('fetch failed')) {
225
+ return true;
226
+ }
227
+ // Rate limit errors are retryable
228
+ if (message.includes('rate limit') ||
229
+ message.includes('too many requests') ||
230
+ message.includes('429')) {
231
+ return true;
232
+ }
233
+ return false;
234
+ }
235
+ /**
236
+ * Auto-detect error code from error message
237
+ *
238
+ * @param error - The error to analyze
239
+ * @returns Detected error code
240
+ */
241
+ function detect_error_code(error) {
242
+ if (!(error instanceof Error)) {
243
+ return LLM_ERROR_CODES.UNKNOWN;
244
+ }
245
+ const message = error.message.toLowerCase();
246
+ // Network errors
247
+ if (message.includes('network') ||
248
+ message.includes('econnrefused') ||
249
+ message.includes('econnreset') ||
250
+ message.includes('socket') ||
251
+ message.includes('fetch failed')) {
252
+ return LLM_ERROR_CODES.NETWORK_ERROR;
253
+ }
254
+ // Timeout errors
255
+ if (message.includes('timeout')) {
256
+ return LLM_ERROR_CODES.TIMEOUT;
257
+ }
258
+ // Rate limit errors
259
+ if (message.includes('rate limit') ||
260
+ message.includes('too many requests') ||
261
+ message.includes('429')) {
262
+ return LLM_ERROR_CODES.RATE_LIMITED;
263
+ }
264
+ // API key errors
265
+ if (message.includes('api key') ||
266
+ message.includes('unauthorized') ||
267
+ message.includes('401') ||
268
+ message.includes('authentication')) {
269
+ return LLM_ERROR_CODES.API_KEY_MISSING;
270
+ }
271
+ // Invalid request errors
272
+ if (message.includes('invalid') ||
273
+ message.includes('bad request') ||
274
+ message.includes('400')) {
275
+ return LLM_ERROR_CODES.INVALID_REQUEST;
276
+ }
277
+ return LLM_ERROR_CODES.UNKNOWN;
278
+ }
279
+ // =============================================================================
280
+ // Hook Invocation Helpers
281
+ // =============================================================================
282
+ /**
283
+ * Call the beforeRequest hook if configured
284
+ *
285
+ * @param context - Request context
286
+ */
287
+ export async function call_before_request_hook(context) {
288
+ const hooks = get_hooks();
289
+ if (hooks.beforeRequest) {
290
+ try {
291
+ await hooks.beforeRequest(context);
292
+ }
293
+ catch {
294
+ // Silently ignore hook errors to not affect main flow
295
+ }
296
+ }
297
+ }
298
+ /**
299
+ * Call the afterResponse hook if configured
300
+ *
301
+ * @param context - Response context
302
+ */
303
+ export async function call_after_response_hook(context) {
304
+ const hooks = get_hooks();
305
+ if (hooks.afterResponse) {
306
+ try {
307
+ await hooks.afterResponse(context);
308
+ }
309
+ catch {
310
+ // Silently ignore hook errors to not affect main flow
311
+ }
312
+ }
313
+ }
314
+ /**
315
+ * Call the onError hook if configured
316
+ *
317
+ * @param context - Error context
318
+ */
319
+ export async function call_on_error_hook(context) {
320
+ const hooks = get_hooks();
321
+ if (hooks.onError) {
322
+ try {
323
+ await hooks.onError(context);
324
+ }
325
+ catch {
326
+ // Silently ignore hook errors to not affect main flow
327
+ }
328
+ }
329
+ }
330
+ /**
331
+ * Create a request context for hooks
332
+ *
333
+ * @param service_type - Service type being called
334
+ * @param provider - Provider name
335
+ * @param params - Request parameters
336
+ * @returns Request context
337
+ */
338
+ export function create_request_context(service_type, provider, params) {
339
+ return {
340
+ service_type,
341
+ provider,
342
+ params,
343
+ timestamp: new Date(),
344
+ };
345
+ }
346
+ //# sourceMappingURL=provider_helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider_helper.js","sourceRoot":"","sources":["../../../src/lib/llm_api/provider_helper.ts"],"names":[],"mappings":"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"}