hazo_llm_api 1.2.13 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +321 -8
- package/config/hazo_llm_api_config.ini +38 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/llm_call_inspector/index.d.ts +6 -0
- package/dist/components/llm_call_inspector/index.d.ts.map +1 -0
- package/dist/components/llm_call_inspector/index.js +5 -0
- package/dist/components/llm_call_inspector/index.js.map +1 -0
- package/dist/components/llm_call_inspector/llm_call_inspector.d.ts +18 -0
- package/dist/components/llm_call_inspector/llm_call_inspector.d.ts.map +1 -0
- package/dist/components/llm_call_inspector/llm_call_inspector.js +103 -0
- package/dist/components/llm_call_inspector/llm_call_inspector.js.map +1 -0
- package/dist/components/llm_cost_dashboard/index.d.ts +6 -0
- package/dist/components/llm_cost_dashboard/index.d.ts.map +1 -0
- package/dist/components/llm_cost_dashboard/index.js +5 -0
- package/dist/components/llm_cost_dashboard/index.js.map +1 -0
- package/dist/components/llm_cost_dashboard/llm_cost_dashboard.d.ts +16 -0
- package/dist/components/llm_cost_dashboard/llm_cost_dashboard.d.ts.map +1 -0
- package/dist/components/llm_cost_dashboard/llm_cost_dashboard.js +154 -0
- package/dist/components/llm_cost_dashboard/llm_cost_dashboard.js.map +1 -0
- package/dist/components/prompt_editor/prompt_editor.d.ts.map +1 -1
- package/dist/components/prompt_editor/prompt_editor.js +3 -2
- package/dist/components/prompt_editor/prompt_editor.js.map +1 -1
- package/dist/components/prompt_editor/ui/alert_dialog.js +1 -1
- package/dist/components/prompt_editor/ui/alert_dialog.js.map +1 -1
- package/dist/components/prompt_editor/ui/button.js +1 -1
- package/dist/components/prompt_editor/ui/button.js.map +1 -1
- package/dist/components/prompt_editor/ui/checkbox.js +1 -1
- package/dist/components/prompt_editor/ui/checkbox.js.map +1 -1
- package/dist/components/prompt_editor/ui/dialog.js +1 -1
- package/dist/components/prompt_editor/ui/dialog.js.map +1 -1
- package/dist/components/prompt_editor/ui/index.d.ts +1 -1
- package/dist/components/prompt_editor/ui/index.d.ts.map +1 -1
- package/dist/components/prompt_editor/ui/index.js +1 -1
- package/dist/components/prompt_editor/ui/index.js.map +1 -1
- package/dist/components/prompt_editor/ui/input.js +1 -1
- package/dist/components/prompt_editor/ui/input.js.map +1 -1
- package/dist/components/prompt_editor/ui/textarea.js +1 -1
- package/dist/components/prompt_editor/ui/textarea.js.map +1 -1
- package/dist/components/prompt_editor/ui/tooltip.js +1 -1
- package/dist/components/prompt_editor/ui/tooltip.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/cascade/cascade_runner.d.ts +50 -0
- package/dist/lib/cascade/cascade_runner.d.ts.map +1 -0
- package/dist/lib/cascade/cascade_runner.js +115 -0
- package/dist/lib/cascade/cascade_runner.js.map +1 -0
- package/dist/lib/cascade/index.d.ts +5 -0
- package/dist/lib/cascade/index.d.ts.map +1 -0
- package/dist/lib/cascade/index.js +4 -0
- package/dist/lib/cascade/index.js.map +1 -0
- package/dist/lib/cascade/types.d.ts +35 -0
- package/dist/lib/cascade/types.d.ts.map +1 -0
- package/dist/lib/cascade/types.js +14 -0
- package/dist/lib/cascade/types.js.map +1 -0
- package/dist/lib/config/index.d.ts +1 -0
- package/dist/lib/config/index.d.ts.map +1 -1
- package/dist/lib/config/index.js +3 -0
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/config/llm_api_config.d.ts +42 -0
- package/dist/lib/config/llm_api_config.d.ts.map +1 -0
- package/dist/lib/config/llm_api_config.js +49 -0
- package/dist/lib/config/llm_api_config.js.map +1 -0
- package/dist/lib/cost_cap/cost_cap.d.ts +40 -0
- package/dist/lib/cost_cap/cost_cap.d.ts.map +1 -0
- package/dist/lib/cost_cap/cost_cap.js +150 -0
- package/dist/lib/cost_cap/cost_cap.js.map +1 -0
- package/dist/lib/cost_cap/index.d.ts +3 -0
- package/dist/lib/cost_cap/index.d.ts.map +1 -0
- package/dist/lib/cost_cap/index.js +2 -0
- package/dist/lib/cost_cap/index.js.map +1 -0
- package/dist/lib/database/init_api_log.d.ts +10 -0
- package/dist/lib/database/init_api_log.d.ts.map +1 -0
- package/dist/lib/database/init_api_log.js +91 -0
- package/dist/lib/database/init_api_log.js.map +1 -0
- package/dist/lib/database/init_database.d.ts.map +1 -1
- package/dist/lib/database/init_database.js +2 -1
- package/dist/lib/database/init_database.js.map +1 -1
- package/dist/lib/hazo_connect/direct_db_connect.d.ts +11 -7
- package/dist/lib/hazo_connect/direct_db_connect.d.ts.map +1 -1
- package/dist/lib/hazo_connect/direct_db_connect.js +61 -7
- package/dist/lib/hazo_connect/direct_db_connect.js.map +1 -1
- package/dist/lib/hazo_connect/types.d.ts +35 -3
- package/dist/lib/hazo_connect/types.d.ts.map +1 -1
- package/dist/lib/llm_api/embed_cache.d.ts +15 -0
- package/dist/lib/llm_api/embed_cache.d.ts.map +1 -0
- package/dist/lib/llm_api/embed_cache.js +53 -0
- package/dist/lib/llm_api/embed_cache.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_document_text.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_document_text.js +56 -14
- package/dist/lib/llm_api/hazo_llm_document_text.js.map +1 -1
- package/dist/lib/llm_api/hazo_llm_dynamic_data_extract.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_dynamic_data_extract.js +19 -1
- package/dist/lib/llm_api/hazo_llm_dynamic_data_extract.js.map +1 -1
- package/dist/lib/llm_api/hazo_llm_embed.d.ts +10 -0
- package/dist/lib/llm_api/hazo_llm_embed.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_embed.js +80 -0
- package/dist/lib/llm_api/hazo_llm_embed.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_image_image.js +56 -14
- package/dist/lib/llm_api/hazo_llm_image_image.js.map +1 -1
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_image_text.js +56 -14
- package/dist/lib/llm_api/hazo_llm_image_text.js.map +1 -1
- package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_prompt_chain.js +19 -2
- package/dist/lib/llm_api/hazo_llm_prompt_chain.js.map +1 -1
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_text_image.js +56 -14
- package/dist/lib/llm_api/hazo_llm_text_image.js.map +1 -1
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts.map +1 -1
- package/dist/lib/llm_api/hazo_llm_text_text.js +90 -15
- package/dist/lib/llm_api/hazo_llm_text_text.js.map +1 -1
- package/dist/lib/llm_api/index.d.ts +31 -3
- package/dist/lib/llm_api/index.d.ts.map +1 -1
- package/dist/lib/llm_api/index.js +427 -35
- package/dist/lib/llm_api/index.js.map +1 -1
- package/dist/lib/llm_api/prompt_parts_helper.d.ts +15 -0
- package/dist/lib/llm_api/prompt_parts_helper.d.ts.map +1 -0
- package/dist/lib/llm_api/prompt_parts_helper.js +9 -0
- package/dist/lib/llm_api/prompt_parts_helper.js.map +1 -0
- package/dist/lib/llm_api/provider_helper.d.ts.map +1 -1
- package/dist/lib/llm_api/provider_helper.js +3 -38
- package/dist/lib/llm_api/provider_helper.js.map +1 -1
- package/dist/lib/llm_api/types.d.ts +187 -2
- package/dist/lib/llm_api/types.d.ts.map +1 -1
- package/dist/lib/llm_api/types.js +4 -0
- package/dist/lib/llm_api/types.js.map +1 -1
- package/dist/lib/maintenance/purge_log_job.d.ts +23 -0
- package/dist/lib/maintenance/purge_log_job.d.ts.map +1 -0
- package/dist/lib/maintenance/purge_log_job.js +49 -0
- package/dist/lib/maintenance/purge_log_job.js.map +1 -0
- package/dist/lib/observability/log_context.d.ts +15 -0
- package/dist/lib/observability/log_context.d.ts.map +1 -0
- package/dist/lib/observability/log_context.js +32 -0
- package/dist/lib/observability/log_context.js.map +1 -0
- package/dist/lib/observability/log_writer.d.ts +35 -0
- package/dist/lib/observability/log_writer.d.ts.map +1 -0
- package/dist/lib/observability/log_writer.js +106 -0
- package/dist/lib/observability/log_writer.js.map +1 -0
- package/dist/lib/observability/queries.d.ts +15 -0
- package/dist/lib/observability/queries.d.ts.map +1 -0
- package/dist/lib/observability/queries.js +78 -0
- package/dist/lib/observability/queries.js.map +1 -0
- package/dist/lib/observability/types.d.ts +77 -0
- package/dist/lib/observability/types.d.ts.map +1 -0
- package/dist/lib/observability/types.js +8 -0
- package/dist/lib/observability/types.js.map +1 -0
- package/dist/lib/pricing/pricing.d.ts +49 -0
- package/dist/lib/pricing/pricing.d.ts.map +1 -0
- package/dist/lib/pricing/pricing.js +153 -0
- package/dist/lib/pricing/pricing.js.map +1 -0
- package/dist/lib/pricing/pricing.json +75 -0
- package/dist/lib/pricing/types.d.ts +58 -0
- package/dist/lib/pricing/types.d.ts.map +1 -0
- package/dist/lib/pricing/types.js +8 -0
- package/dist/lib/pricing/types.js.map +1 -0
- package/dist/lib/providers/anthropic/anthropic_client.d.ts +71 -0
- package/dist/lib/providers/anthropic/anthropic_client.d.ts.map +1 -0
- package/dist/lib/providers/anthropic/anthropic_client.js +135 -0
- package/dist/lib/providers/anthropic/anthropic_client.js.map +1 -0
- package/dist/lib/providers/anthropic/anthropic_provider.d.ts +60 -0
- package/dist/lib/providers/anthropic/anthropic_provider.d.ts.map +1 -0
- package/dist/lib/providers/anthropic/anthropic_provider.js +273 -0
- package/dist/lib/providers/anthropic/anthropic_provider.js.map +1 -0
- package/dist/lib/providers/anthropic/anthropic_response_to_usage.d.ts +21 -0
- package/dist/lib/providers/anthropic/anthropic_response_to_usage.d.ts.map +1 -0
- package/dist/lib/providers/anthropic/anthropic_response_to_usage.js +46 -0
- package/dist/lib/providers/anthropic/anthropic_response_to_usage.js.map +1 -0
- package/dist/lib/providers/anthropic/index.d.ts +3 -0
- package/dist/lib/providers/anthropic/index.d.ts.map +1 -0
- package/dist/lib/providers/anthropic/index.js +2 -0
- package/dist/lib/providers/anthropic/index.js.map +1 -0
- package/dist/lib/providers/deepseek/deepseek_client.d.ts +55 -0
- package/dist/lib/providers/deepseek/deepseek_client.d.ts.map +1 -0
- package/dist/lib/providers/deepseek/deepseek_client.js +130 -0
- package/dist/lib/providers/deepseek/deepseek_client.js.map +1 -0
- package/dist/lib/providers/deepseek/deepseek_provider.d.ts +50 -0
- package/dist/lib/providers/deepseek/deepseek_provider.d.ts.map +1 -0
- package/dist/lib/providers/deepseek/deepseek_provider.js +147 -0
- package/dist/lib/providers/deepseek/deepseek_provider.js.map +1 -0
- package/dist/lib/providers/deepseek/deepseek_response_to_usage.d.ts +21 -0
- package/dist/lib/providers/deepseek/deepseek_response_to_usage.d.ts.map +1 -0
- package/dist/lib/providers/deepseek/deepseek_response_to_usage.js +40 -0
- package/dist/lib/providers/deepseek/deepseek_response_to_usage.js.map +1 -0
- package/dist/lib/providers/deepseek/index.d.ts +3 -0
- package/dist/lib/providers/deepseek/index.d.ts.map +1 -0
- package/dist/lib/providers/deepseek/index.js +2 -0
- package/dist/lib/providers/deepseek/index.js.map +1 -0
- package/dist/lib/providers/gemini/gemini_client.d.ts.map +1 -1
- package/dist/lib/providers/gemini/gemini_client.js +2 -1
- package/dist/lib/providers/gemini/gemini_client.js.map +1 -1
- package/dist/lib/providers/gemini/gemini_provider.d.ts.map +1 -1
- package/dist/lib/providers/gemini/gemini_provider.js +43 -6
- package/dist/lib/providers/gemini/gemini_provider.js.map +1 -1
- package/dist/lib/providers/gemini/gemini_response_to_usage.d.ts +37 -0
- package/dist/lib/providers/gemini/gemini_response_to_usage.d.ts.map +1 -0
- package/dist/lib/providers/gemini/gemini_response_to_usage.js +49 -0
- package/dist/lib/providers/gemini/gemini_response_to_usage.js.map +1 -0
- package/dist/lib/providers/index.d.ts +3 -0
- package/dist/lib/providers/index.d.ts.map +1 -1
- package/dist/lib/providers/index.js +3 -0
- package/dist/lib/providers/index.js.map +1 -1
- package/dist/lib/providers/openai/index.d.ts +3 -0
- package/dist/lib/providers/openai/index.d.ts.map +1 -0
- package/dist/lib/providers/openai/index.js +2 -0
- package/dist/lib/providers/openai/index.js.map +1 -0
- package/dist/lib/providers/openai/openai_client.d.ts +99 -0
- package/dist/lib/providers/openai/openai_client.d.ts.map +1 -0
- package/dist/lib/providers/openai/openai_client.js +188 -0
- package/dist/lib/providers/openai/openai_client.js.map +1 -0
- package/dist/lib/providers/openai/openai_provider.d.ts +66 -0
- package/dist/lib/providers/openai/openai_provider.d.ts.map +1 -0
- package/dist/lib/providers/openai/openai_provider.js +297 -0
- package/dist/lib/providers/openai/openai_provider.js.map +1 -0
- package/dist/lib/providers/openai/openai_response_to_usage.d.ts +21 -0
- package/dist/lib/providers/openai/openai_response_to_usage.d.ts.map +1 -0
- package/dist/lib/providers/openai/openai_response_to_usage.js +50 -0
- package/dist/lib/providers/openai/openai_response_to_usage.js.map +1 -0
- package/dist/lib/providers/qwen/qwen_client.d.ts.map +1 -1
- package/dist/lib/providers/qwen/qwen_client.js +10 -9
- package/dist/lib/providers/qwen/qwen_client.js.map +1 -1
- package/dist/lib/providers/qwen/qwen_provider.d.ts.map +1 -1
- package/dist/lib/providers/qwen/qwen_provider.js +58 -8
- package/dist/lib/providers/qwen/qwen_provider.js.map +1 -1
- package/dist/lib/providers/qwen/qwen_response_to_usage.d.ts +36 -0
- package/dist/lib/providers/qwen/qwen_response_to_usage.d.ts.map +1 -0
- package/dist/lib/providers/qwen/qwen_response_to_usage.js +50 -0
- package/dist/lib/providers/qwen/qwen_response_to_usage.js.map +1 -0
- package/dist/lib/providers/types.d.ts +16 -6
- package/dist/lib/providers/types.d.ts.map +1 -1
- package/dist/lib/providers/types.js +1 -0
- package/dist/lib/providers/types.js.map +1 -1
- package/dist/lib/utils.d.ts +13 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +16 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/server.d.ts +16 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +29 -2
- package/dist/server.js.map +1 -1
- package/migrations/db_setup_postgres.sql +68 -0
- package/migrations/db_setup_sqlite.sql +66 -0
- package/migrations/hazo_llm_api_log.sql +72 -0
- package/package.json +24 -6
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Defines the interface that all LLM providers must implement.
|
|
5
5
|
* This ensures consistent behavior across different LLM implementations.
|
|
6
6
|
*/
|
|
7
|
-
import type { LLMResponse, LLMStreamResponse, TextTextParams, ImageTextParams, TextImageParams, ImageImageParams, DocumentTextParams, Logger } from '../llm_api/types.js';
|
|
7
|
+
import type { EmbedParams, EmbedResponse, LLMResponse, LLMStreamResponse, TextTextParams, ImageTextParams, TextImageParams, ImageImageParams, DocumentTextParams, Logger } from '../llm_api/types.js';
|
|
8
8
|
/**
|
|
9
9
|
* Provider name constants for type-safe LLM provider selection
|
|
10
10
|
* Use these constants instead of string literals for autocomplete and type safety
|
|
@@ -46,6 +46,7 @@ export declare const SERVICE_TYPES: {
|
|
|
46
46
|
readonly TEXT_IMAGE: "text_image";
|
|
47
47
|
readonly IMAGE_IMAGE: "image_image";
|
|
48
48
|
readonly DOCUMENT_TEXT: "document_text";
|
|
49
|
+
readonly EMBED: "embed";
|
|
49
50
|
};
|
|
50
51
|
/**
|
|
51
52
|
* Service type string literal union
|
|
@@ -83,7 +84,7 @@ export interface LLMProvider {
|
|
|
83
84
|
* @param logger - Logger instance
|
|
84
85
|
* @returns LLM response with generated text
|
|
85
86
|
*/
|
|
86
|
-
text_text(params: TextTextParams, logger: Logger): Promise<LLMResponse>;
|
|
87
|
+
text_text?(params: TextTextParams, logger: Logger): Promise<LLMResponse>;
|
|
87
88
|
/**
|
|
88
89
|
* Image input → Text output
|
|
89
90
|
* Analyze an image and generate text description
|
|
@@ -92,7 +93,7 @@ export interface LLMProvider {
|
|
|
92
93
|
* @param logger - Logger instance
|
|
93
94
|
* @returns LLM response with generated text
|
|
94
95
|
*/
|
|
95
|
-
image_text(params: ImageTextParams, logger: Logger): Promise<LLMResponse>;
|
|
96
|
+
image_text?(params: ImageTextParams, logger: Logger): Promise<LLMResponse>;
|
|
96
97
|
/**
|
|
97
98
|
* Text input → Image output
|
|
98
99
|
* Generate an image from a text prompt
|
|
@@ -101,7 +102,7 @@ export interface LLMProvider {
|
|
|
101
102
|
* @param logger - Logger instance
|
|
102
103
|
* @returns LLM response with generated image
|
|
103
104
|
*/
|
|
104
|
-
text_image(params: TextImageParams, logger: Logger): Promise<LLMResponse>;
|
|
105
|
+
text_image?(params: TextImageParams, logger: Logger): Promise<LLMResponse>;
|
|
105
106
|
/**
|
|
106
107
|
* Image input → Image output
|
|
107
108
|
* Transform/edit an image based on instructions
|
|
@@ -110,7 +111,7 @@ export interface LLMProvider {
|
|
|
110
111
|
* @param logger - Logger instance
|
|
111
112
|
* @returns LLM response with transformed image
|
|
112
113
|
*/
|
|
113
|
-
image_image(params: ImageImageParams, logger: Logger): Promise<LLMResponse>;
|
|
114
|
+
image_image?(params: ImageImageParams, logger: Logger): Promise<LLMResponse>;
|
|
114
115
|
/**
|
|
115
116
|
* Document input → Text output
|
|
116
117
|
* Analyze a document (PDF) and generate text description
|
|
@@ -119,7 +120,7 @@ export interface LLMProvider {
|
|
|
119
120
|
* @param logger - Logger instance
|
|
120
121
|
* @returns LLM response with generated text
|
|
121
122
|
*/
|
|
122
|
-
document_text(params: DocumentTextParams, logger: Logger): Promise<LLMResponse>;
|
|
123
|
+
document_text?(params: DocumentTextParams, logger: Logger): Promise<LLMResponse>;
|
|
123
124
|
/**
|
|
124
125
|
* Text input → Text output (streaming)
|
|
125
126
|
* Generate text from a text prompt with streaming response
|
|
@@ -138,6 +139,15 @@ export interface LLMProvider {
|
|
|
138
139
|
* @returns Async generator yielding text chunks
|
|
139
140
|
*/
|
|
140
141
|
image_text_stream?(params: ImageTextParams, logger: Logger): Promise<LLMStreamResponse>;
|
|
142
|
+
/**
|
|
143
|
+
* Embeddings — added in 1.3.0.
|
|
144
|
+
* Generate vector embeddings for one or more text inputs.
|
|
145
|
+
*
|
|
146
|
+
* @param params - Text string or array of strings to embed, and optional model override
|
|
147
|
+
* @param logger - Logger instance
|
|
148
|
+
* @returns Result containing vectors, dimensions, model used, and optional usage info
|
|
149
|
+
*/
|
|
150
|
+
embed?(params: EmbedParams, logger: Logger): Promise<EmbedResponse>;
|
|
141
151
|
}
|
|
142
152
|
/**
|
|
143
153
|
* Base configuration for initializing an LLM provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,EACP,MAAM,qBAAqB,CAAC;AAM7B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAM5F;;GAEG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,EACP,MAAM,qBAAqB,CAAC;AAM7B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAM5F;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AAM/C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,IAAI,eAAe,CAAC;IAEpC;;;;OAIG;IACH,qBAAqB,CAAC,YAAY,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAErE;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzE;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3E;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3E;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7E;;;;;;;OAOG;IACH,aAAa,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAMjF;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEtF;;;;;;;OAOG;IACH,iBAAiB,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAMxF;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACrE;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,iDAAiD;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAC;AAoBX,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,OAAO;CACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared UI Utilities
|
|
3
|
+
*
|
|
4
|
+
* Common utility functions used across components.
|
|
5
|
+
*/
|
|
6
|
+
import { type ClassValue } from 'clsx';
|
|
7
|
+
/**
|
|
8
|
+
* Merge Tailwind CSS classes with clsx
|
|
9
|
+
* @param inputs - Class values to merge
|
|
10
|
+
* @returns Merged class string
|
|
11
|
+
*/
|
|
12
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
13
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared UI Utilities
|
|
3
|
+
*
|
|
4
|
+
* Common utility functions used across components.
|
|
5
|
+
*/
|
|
6
|
+
import { clsx } from 'clsx';
|
|
7
|
+
import { twMerge } from 'tailwind-merge';
|
|
8
|
+
/**
|
|
9
|
+
* Merge Tailwind CSS classes with clsx
|
|
10
|
+
* @param inputs - Class values to merge
|
|
11
|
+
* @returns Merged class string
|
|
12
|
+
*/
|
|
13
|
+
export function cn(...inputs) {
|
|
14
|
+
return twMerge(clsx(inputs));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -16,7 +16,10 @@
|
|
|
16
16
|
* - hazo_llm_prompt_chain: Chain multiple prompts with dynamic value resolution
|
|
17
17
|
* - hazo_llm_dynamic_data_extract: Dynamic chain where next prompt is determined by JSON output
|
|
18
18
|
*/
|
|
19
|
-
export { initialize_llm_api, hazo_llm_text_text, hazo_llm_image_text, hazo_llm_text_image, hazo_llm_image_image, hazo_llm_document_text, hazo_llm_text_image_text, hazo_llm_image_image_text, hazo_llm_prompt_chain, hazo_llm_dynamic_data_extract, hazo_llm_text_text_stream, hazo_llm_image_text_stream, is_initialized, get_current_config, get_hazo_connect, default_logger, get_logger, set_logger, get_hooks, set_hooks, } from './lib/llm_api/index.js';
|
|
19
|
+
export { initialize_llm_api, hazo_llm_text_text, hazo_llm_image_text, hazo_llm_text_image, hazo_llm_image_image, hazo_llm_document_text, hazo_llm_text_image_text, hazo_llm_image_image_text, hazo_llm_prompt_chain, hazo_llm_dynamic_data_extract, hazo_llm_text_text_stream, hazo_llm_image_text_stream, hazo_llm_embed, is_initialized, get_current_config, get_hazo_connect, default_logger, get_logger, set_logger, get_hooks, set_hooks, get_cascade_config, } from './lib/llm_api/index.js';
|
|
20
|
+
export { configure_embed_cache } from './lib/llm_api/embed_cache.js';
|
|
21
|
+
export type { CascadeConfig } from './lib/cascade/types.js';
|
|
22
|
+
export { DEFAULT_CASCADE_ON_CODES } from './lib/cascade/types.js';
|
|
20
23
|
export { initialize_database, get_database, close_database, get_default_sqlite_path, expand_path, resolve_sqlite_path, insert_prompt, update_prompt, delete_prompt, } from './lib/database/index.js';
|
|
21
24
|
export { create_direct_db_connect } from './lib/hazo_connect/index.js';
|
|
22
25
|
export type { HazoConnect, HazoConnectResponse, HazoConnectBulkResponse, PromptInput, LocalFilters, DirectDbConnectOptions, } from './lib/hazo_connect/index.js';
|
|
@@ -28,5 +31,16 @@ export type { ProviderName, ServiceType } from './lib/providers/types.js';
|
|
|
28
31
|
export { LLM_ERROR_CODES } from './lib/llm_api/types.js';
|
|
29
32
|
export { build_error_response } from './lib/llm_api/provider_helper.js';
|
|
30
33
|
export type { LLMErrorCode, LLMError } from './lib/llm_api/types.js';
|
|
31
|
-
export type { LLMApiConfig, LLMApiClient, LLMResponse, TextTextParams, ImageTextParams, TextImageParams, ImageImageParams, DocumentTextParams, TextImageTextParams, ImageImageTextParams, ChainImage, Logger, PromptVariable, PromptVariables, Base64Data, PromptTextMode, PromptRecord, CallLLMParams, LLMHooks, LLMRequestContext, LLMResponseContext, LLMErrorContext, BeforeRequestHook, AfterResponseHook, OnErrorHook, LLMStreamChunk, LLMStreamResponse, ChainMatchType, ChainFieldDefinition, ChainVariableDefinition, ChainCallDefinition, ChainCallResult, PromptChainParams, PromptChainResponse, DynamicDataExtractParams, DynamicDataExtractResponse, DynamicExtractStepResult, DynamicExtractStopReason, NextPromptConfig, NextPromptBranch, NextPromptCondition, NextPromptOperator, } from './lib/llm_api/types.js';
|
|
34
|
+
export type { LLMApiConfig, LLMApiClient, LLMResponse, TextTextParams, ImageTextParams, TextImageParams, ImageImageParams, DocumentTextParams, TextImageTextParams, ImageImageTextParams, ChainImage, Logger, PromptVariable, PromptVariables, Base64Data, PromptTextMode, PromptRecord, CallLLMParams, LLMHooks, LLMRequestContext, LLMResponseContext, LLMErrorContext, BeforeRequestHook, AfterResponseHook, OnErrorHook, LLMStreamChunk, LLMStreamResponse, EmbedParams, EmbedResponse, EmbedKeyv, PromptPart, ChainMatchType, ChainFieldDefinition, ChainVariableDefinition, ChainCallDefinition, ChainCallResult, PromptChainParams, PromptChainResponse, DynamicDataExtractParams, DynamicDataExtractResponse, DynamicExtractStepResult, DynamicExtractStopReason, NextPromptConfig, NextPromptBranch, NextPromptCondition, NextPromptOperator, } from './lib/llm_api/types.js';
|
|
35
|
+
export { get_llm_usage_summary, get_llm_call_detail, } from './lib/observability/queries.js';
|
|
36
|
+
export { create_default_after_response_hook, } from './lib/observability/log_writer.js';
|
|
37
|
+
export { ensure_api_log_table, } from './lib/database/init_api_log.js';
|
|
38
|
+
export type { ApiLogRow, UsageSummaryOptions, UsageSummaryResponse, UsageSummaryRow, UsageSummaryGroupBy, UsageSummaryWhere, } from './lib/observability/types.js';
|
|
39
|
+
export { get_pricing, update_pricing, set_pricing_overrides, compute_cost, recompute_costs, load_pricing, reset_pricing_for_test, } from './lib/pricing/pricing.js';
|
|
40
|
+
export type { RecomputeOpts, RecomputeResult, } from './lib/pricing/pricing.js';
|
|
41
|
+
export type { PricingEntry, PricingEntryText, PricingEntryImage, PricingEntryEmbedding, PricingEntryAudio, PricingTable, PricingKind, UsageInfo, UsageTokens, UsageAttempt, FinishReason, } from './lib/pricing/types.js';
|
|
42
|
+
export { query_session_cost, check_cost_cap_gate, } from './lib/cost_cap/cost_cap.js';
|
|
43
|
+
export type { CostCapConfig, } from './lib/llm_api/types.js';
|
|
44
|
+
export { llm_api_purge_log_job } from './lib/maintenance/purge_log_job.js';
|
|
45
|
+
export type { PurgeLogPayload } from './lib/maintenance/purge_log_job.js';
|
|
32
46
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAE7B,yBAAyB,EACzB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -21,13 +21,22 @@
|
|
|
21
21
|
// =============================================================================
|
|
22
22
|
export { initialize_llm_api, hazo_llm_text_text, hazo_llm_image_text, hazo_llm_text_image, hazo_llm_image_image, hazo_llm_document_text, hazo_llm_text_image_text, hazo_llm_image_image_text, hazo_llm_prompt_chain, hazo_llm_dynamic_data_extract,
|
|
23
23
|
// Streaming functions
|
|
24
|
-
hazo_llm_text_text_stream, hazo_llm_image_text_stream,
|
|
24
|
+
hazo_llm_text_text_stream, hazo_llm_image_text_stream,
|
|
25
|
+
// Embedding function
|
|
26
|
+
hazo_llm_embed, is_initialized, get_current_config,
|
|
25
27
|
// HazoConnect accessor
|
|
26
28
|
get_hazo_connect,
|
|
27
29
|
// Logger utilities
|
|
28
30
|
default_logger, get_logger, set_logger,
|
|
29
31
|
// Hooks utilities
|
|
30
|
-
get_hooks, set_hooks,
|
|
32
|
+
get_hooks, set_hooks,
|
|
33
|
+
// Cascade config accessor
|
|
34
|
+
get_cascade_config, } from './lib/llm_api/index.js';
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Embed Cache Exports (Server-side ONLY)
|
|
37
|
+
// =============================================================================
|
|
38
|
+
export { configure_embed_cache } from './lib/llm_api/embed_cache.js';
|
|
39
|
+
export { DEFAULT_CASCADE_ON_CODES } from './lib/cascade/types.js';
|
|
31
40
|
// =============================================================================
|
|
32
41
|
// Database Exports (Server-side ONLY)
|
|
33
42
|
// NOTE: Prefer using hazo_connect for database operations in new code.
|
|
@@ -63,4 +72,22 @@ export { LLM_PROVIDERS, SERVICE_TYPES } from './lib/providers/types.js';
|
|
|
63
72
|
// =============================================================================
|
|
64
73
|
export { LLM_ERROR_CODES } from './lib/llm_api/types.js';
|
|
65
74
|
export { build_error_response } from './lib/llm_api/provider_helper.js';
|
|
75
|
+
// =============================================================================
|
|
76
|
+
// Observability Exports (Server-side ONLY)
|
|
77
|
+
// =============================================================================
|
|
78
|
+
export { get_llm_usage_summary, get_llm_call_detail, } from './lib/observability/queries.js';
|
|
79
|
+
export { create_default_after_response_hook, } from './lib/observability/log_writer.js';
|
|
80
|
+
export { ensure_api_log_table, } from './lib/database/init_api_log.js';
|
|
81
|
+
// =============================================================================
|
|
82
|
+
// Pricing Exports (Server-side ONLY)
|
|
83
|
+
// =============================================================================
|
|
84
|
+
export { get_pricing, update_pricing, set_pricing_overrides, compute_cost, recompute_costs, load_pricing, reset_pricing_for_test, } from './lib/pricing/pricing.js';
|
|
85
|
+
// =============================================================================
|
|
86
|
+
// Cost Cap Exports (Server-side ONLY)
|
|
87
|
+
// =============================================================================
|
|
88
|
+
export { query_session_cost, check_cost_cap_gate, } from './lib/cost_cap/cost_cap.js';
|
|
89
|
+
// =============================================================================
|
|
90
|
+
// Maintenance Jobs (Server-side ONLY)
|
|
91
|
+
// =============================================================================
|
|
92
|
+
export { llm_api_purge_log_job } from './lib/maintenance/purge_log_job.js';
|
|
66
93
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gFAAgF;AAChF,qCAAqC;AACrC,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B;AAC7B,sBAAsB;AACtB,yBAAyB,EACzB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
-- hazo_llm_api — complete idempotent PostgreSQL schema
|
|
2
|
+
-- Run this once against a fresh database, or re-run safely on an existing one.
|
|
3
|
+
-- All statements use IF NOT EXISTS / IF EXISTS guards.
|
|
4
|
+
|
|
5
|
+
-- ---------------------------------------------------------------------------
|
|
6
|
+
-- prompts_library
|
|
7
|
+
-- Stores reusable prompt templates managed via the prompt-config UI.
|
|
8
|
+
-- ---------------------------------------------------------------------------
|
|
9
|
+
CREATE TABLE IF NOT EXISTS prompts_library (
|
|
10
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
11
|
+
prompt_area TEXT NOT NULL,
|
|
12
|
+
prompt_key TEXT NOT NULL,
|
|
13
|
+
prompt_name TEXT NOT NULL,
|
|
14
|
+
prompt_text_head TEXT DEFAULT '',
|
|
15
|
+
prompt_text_body TEXT NOT NULL,
|
|
16
|
+
prompt_text_tail TEXT DEFAULT '',
|
|
17
|
+
prompt_variables TEXT DEFAULT '[]',
|
|
18
|
+
prompt_notes TEXT DEFAULT '',
|
|
19
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
20
|
+
changed_by TEXT DEFAULT NULL,
|
|
21
|
+
UNIQUE(prompt_area, prompt_key)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_area_key ON prompts_library(prompt_area, prompt_key);
|
|
25
|
+
|
|
26
|
+
-- ---------------------------------------------------------------------------
|
|
27
|
+
-- hazo_llm_api_log
|
|
28
|
+
-- Per-call observability log written by the default afterResponse hook.
|
|
29
|
+
-- Cost values are frozen per-row for accurate historical audit.
|
|
30
|
+
-- ---------------------------------------------------------------------------
|
|
31
|
+
CREATE TABLE IF NOT EXISTS hazo_llm_api_log (
|
|
32
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
33
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
34
|
+
service_type TEXT NOT NULL,
|
|
35
|
+
provider TEXT NOT NULL,
|
|
36
|
+
model TEXT,
|
|
37
|
+
success BOOLEAN NOT NULL,
|
|
38
|
+
tokens_input INTEGER,
|
|
39
|
+
tokens_output INTEGER,
|
|
40
|
+
tokens_cached_input INTEGER,
|
|
41
|
+
tokens_total INTEGER,
|
|
42
|
+
cost_usd DOUBLE PRECISION,
|
|
43
|
+
pricing_kind TEXT,
|
|
44
|
+
pricing_input_per_1m_usd DOUBLE PRECISION,
|
|
45
|
+
pricing_output_per_1m_usd DOUBLE PRECISION,
|
|
46
|
+
pricing_per_image_usd DOUBLE PRECISION,
|
|
47
|
+
latency_ms INTEGER,
|
|
48
|
+
finish_reason TEXT,
|
|
49
|
+
error_code TEXT,
|
|
50
|
+
error_message TEXT,
|
|
51
|
+
prompt_area TEXT,
|
|
52
|
+
prompt_key TEXT,
|
|
53
|
+
prompt_id UUID,
|
|
54
|
+
session_id TEXT,
|
|
55
|
+
reference TEXT,
|
|
56
|
+
attempts_count INTEGER DEFAULT 1,
|
|
57
|
+
context_json JSONB DEFAULT '{}'::jsonb
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_created ON hazo_llm_api_log(created_at DESC);
|
|
61
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_provider ON hazo_llm_api_log(provider, created_at DESC);
|
|
62
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_success ON hazo_llm_api_log(success, created_at DESC);
|
|
63
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_session ON hazo_llm_api_log(session_id, created_at DESC);
|
|
64
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_service ON hazo_llm_api_log(service_type, created_at DESC);
|
|
65
|
+
-- Cost-cap index (session window queries, no DESC — matches cost_cap.ts usage)
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_session_created ON hazo_llm_api_log(session_id, created_at);
|
|
67
|
+
|
|
68
|
+
NOTIFY pgrst, 'reload schema';
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
-- hazo_llm_api — complete idempotent SQLite schema
|
|
2
|
+
-- Run this once against a fresh database, or re-run safely on an existing one.
|
|
3
|
+
-- All statements use IF NOT EXISTS guards.
|
|
4
|
+
|
|
5
|
+
-- ---------------------------------------------------------------------------
|
|
6
|
+
-- prompts_library
|
|
7
|
+
-- Stores reusable prompt templates managed via the prompt-config UI.
|
|
8
|
+
-- ---------------------------------------------------------------------------
|
|
9
|
+
CREATE TABLE IF NOT EXISTS prompts_library (
|
|
10
|
+
id TEXT PRIMARY KEY,
|
|
11
|
+
prompt_area TEXT NOT NULL,
|
|
12
|
+
prompt_key TEXT NOT NULL,
|
|
13
|
+
prompt_name TEXT NOT NULL,
|
|
14
|
+
prompt_text_head TEXT DEFAULT '',
|
|
15
|
+
prompt_text_body TEXT NOT NULL,
|
|
16
|
+
prompt_text_tail TEXT DEFAULT '',
|
|
17
|
+
prompt_variables TEXT DEFAULT '[]',
|
|
18
|
+
prompt_notes TEXT DEFAULT '',
|
|
19
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
20
|
+
changed_by TEXT DEFAULT NULL,
|
|
21
|
+
UNIQUE(prompt_area, prompt_key)
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_area_key ON prompts_library(prompt_area, prompt_key);
|
|
25
|
+
|
|
26
|
+
-- ---------------------------------------------------------------------------
|
|
27
|
+
-- hazo_llm_api_log
|
|
28
|
+
-- Per-call observability log written by the default afterResponse hook.
|
|
29
|
+
-- Cost values are frozen per-row for accurate historical audit.
|
|
30
|
+
-- ---------------------------------------------------------------------------
|
|
31
|
+
CREATE TABLE IF NOT EXISTS hazo_llm_api_log (
|
|
32
|
+
id TEXT PRIMARY KEY,
|
|
33
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
34
|
+
service_type TEXT NOT NULL,
|
|
35
|
+
provider TEXT NOT NULL,
|
|
36
|
+
model TEXT,
|
|
37
|
+
success INTEGER NOT NULL,
|
|
38
|
+
tokens_input INTEGER,
|
|
39
|
+
tokens_output INTEGER,
|
|
40
|
+
tokens_cached_input INTEGER,
|
|
41
|
+
tokens_total INTEGER,
|
|
42
|
+
cost_usd REAL,
|
|
43
|
+
pricing_kind TEXT,
|
|
44
|
+
pricing_input_per_1m_usd REAL,
|
|
45
|
+
pricing_output_per_1m_usd REAL,
|
|
46
|
+
pricing_per_image_usd REAL,
|
|
47
|
+
latency_ms INTEGER,
|
|
48
|
+
finish_reason TEXT,
|
|
49
|
+
error_code TEXT,
|
|
50
|
+
error_message TEXT,
|
|
51
|
+
prompt_area TEXT,
|
|
52
|
+
prompt_key TEXT,
|
|
53
|
+
prompt_id TEXT,
|
|
54
|
+
session_id TEXT,
|
|
55
|
+
reference TEXT,
|
|
56
|
+
attempts_count INTEGER DEFAULT 1,
|
|
57
|
+
context_json TEXT DEFAULT '{}'
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_created ON hazo_llm_api_log(created_at DESC);
|
|
61
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_provider ON hazo_llm_api_log(provider, created_at DESC);
|
|
62
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_success ON hazo_llm_api_log(success, created_at DESC);
|
|
63
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_session ON hazo_llm_api_log(session_id, created_at DESC);
|
|
64
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_service ON hazo_llm_api_log(service_type, created_at DESC);
|
|
65
|
+
-- Cost-cap index (session window queries, no DESC — matches cost_cap.ts usage)
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_session_created ON hazo_llm_api_log(session_id, created_at);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
-- LEGACY: This file is superseded by db_setup_postgres.sql and db_setup_sqlite.sql.
|
|
2
|
+
-- Kept for historical reference only.
|
|
3
|
+
--
|
|
4
|
+
-- hazo_llm_api_log: per-call observability log.
|
|
5
|
+
-- Written by the default afterResponse hook (on by default; disable via api_log.enabled=false).
|
|
6
|
+
-- Cost values are frozen per-row for accurate historical audit.
|
|
7
|
+
--
|
|
8
|
+
-- SQLite version (commented):
|
|
9
|
+
-- CREATE TABLE IF NOT EXISTS hazo_llm_api_log (
|
|
10
|
+
-- id TEXT PRIMARY KEY,
|
|
11
|
+
-- created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
12
|
+
-- service_type TEXT NOT NULL,
|
|
13
|
+
-- provider TEXT NOT NULL,
|
|
14
|
+
-- model TEXT,
|
|
15
|
+
-- success INTEGER NOT NULL,
|
|
16
|
+
-- tokens_input INTEGER,
|
|
17
|
+
-- tokens_output INTEGER,
|
|
18
|
+
-- tokens_cached_input INTEGER,
|
|
19
|
+
-- tokens_total INTEGER,
|
|
20
|
+
-- cost_usd REAL,
|
|
21
|
+
-- pricing_kind TEXT,
|
|
22
|
+
-- pricing_input_per_1m_usd REAL,
|
|
23
|
+
-- pricing_output_per_1m_usd REAL,
|
|
24
|
+
-- pricing_per_image_usd REAL,
|
|
25
|
+
-- latency_ms INTEGER,
|
|
26
|
+
-- finish_reason TEXT,
|
|
27
|
+
-- error_code TEXT,
|
|
28
|
+
-- error_message TEXT,
|
|
29
|
+
-- prompt_area TEXT,
|
|
30
|
+
-- prompt_key TEXT,
|
|
31
|
+
-- prompt_id TEXT,
|
|
32
|
+
-- session_id TEXT,
|
|
33
|
+
-- reference TEXT,
|
|
34
|
+
-- attempts_count INTEGER DEFAULT 1,
|
|
35
|
+
-- context_json TEXT DEFAULT '{}'
|
|
36
|
+
-- );
|
|
37
|
+
--
|
|
38
|
+
-- PostgreSQL version (active):
|
|
39
|
+
CREATE TABLE IF NOT EXISTS hazo_llm_api_log (
|
|
40
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
41
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
42
|
+
service_type TEXT NOT NULL,
|
|
43
|
+
provider TEXT NOT NULL,
|
|
44
|
+
model TEXT,
|
|
45
|
+
success BOOLEAN NOT NULL,
|
|
46
|
+
tokens_input INTEGER,
|
|
47
|
+
tokens_output INTEGER,
|
|
48
|
+
tokens_cached_input INTEGER,
|
|
49
|
+
tokens_total INTEGER,
|
|
50
|
+
cost_usd DOUBLE PRECISION,
|
|
51
|
+
pricing_kind TEXT,
|
|
52
|
+
pricing_input_per_1m_usd DOUBLE PRECISION,
|
|
53
|
+
pricing_output_per_1m_usd DOUBLE PRECISION,
|
|
54
|
+
pricing_per_image_usd DOUBLE PRECISION,
|
|
55
|
+
latency_ms INTEGER,
|
|
56
|
+
finish_reason TEXT,
|
|
57
|
+
error_code TEXT,
|
|
58
|
+
error_message TEXT,
|
|
59
|
+
prompt_area TEXT,
|
|
60
|
+
prompt_key TEXT,
|
|
61
|
+
prompt_id UUID,
|
|
62
|
+
session_id TEXT,
|
|
63
|
+
reference TEXT,
|
|
64
|
+
attempts_count INTEGER DEFAULT 1,
|
|
65
|
+
context_json JSONB DEFAULT '{}'::jsonb
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_created ON hazo_llm_api_log(created_at DESC);
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_provider ON hazo_llm_api_log(provider, created_at DESC);
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_success ON hazo_llm_api_log(success, created_at DESC);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_session ON hazo_llm_api_log(session_id, created_at DESC);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_service ON hazo_llm_api_log(service_type, created_at DESC);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_llm_api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Wrapper to call different LLMs and includes prompt management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"LLM",
|
|
@@ -48,21 +48,22 @@
|
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
50
|
"dist",
|
|
51
|
+
"migrations",
|
|
51
52
|
"README.md",
|
|
52
53
|
"techdoc.md",
|
|
53
54
|
"config/hazo_llm_api_config.ini"
|
|
54
55
|
],
|
|
55
56
|
"scripts": {
|
|
56
|
-
"build": "tsc -p tsconfig.build.json",
|
|
57
|
+
"build": "tsc -p tsconfig.build.json && cp src/lib/pricing/pricing.json dist/lib/pricing/pricing.json",
|
|
57
58
|
"dev:package": "tsc -p tsconfig.build.json --watch",
|
|
58
59
|
"dev:test-app": "cd test-app && npm run dev",
|
|
59
60
|
"build:test-app": "cd test-app && npm run build",
|
|
60
61
|
"start:test-app": "cd test-app && npm start",
|
|
61
62
|
"install:all": "npm install",
|
|
62
|
-
"test": "
|
|
63
|
+
"test": "node --experimental-vm-modules ../node_modules/jest/bin/jest.js --config jest.config.cjs",
|
|
64
|
+
"test:watch": "node --experimental-vm-modules ../node_modules/jest/bin/jest.js --config jest.config.cjs --watch"
|
|
63
65
|
},
|
|
64
66
|
"dependencies": {
|
|
65
|
-
"class-variance-authority": "^0.7.1",
|
|
66
67
|
"clsx": "^2.1.1",
|
|
67
68
|
"ini": "^6.0.0",
|
|
68
69
|
"sql.js": "^1.10.0",
|
|
@@ -72,17 +73,24 @@
|
|
|
72
73
|
"node": ">=18.0.0"
|
|
73
74
|
},
|
|
74
75
|
"peerDependencies": {
|
|
76
|
+
"class-variance-authority": "^0.7.1",
|
|
75
77
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
76
78
|
"@radix-ui/react-checkbox": "^1.1.4",
|
|
77
79
|
"@radix-ui/react-dialog": "^1.1.5",
|
|
78
80
|
"@radix-ui/react-tooltip": "^1.1.7",
|
|
79
|
-
"hazo_ui": "^
|
|
81
|
+
"hazo_ui": "^3.0.1",
|
|
80
82
|
"lucide-react": "^0.553.0",
|
|
81
83
|
"react": "^18.0.0 || ^19.0.0",
|
|
82
84
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
83
|
-
"
|
|
85
|
+
"hazo_core": "^1.0.0",
|
|
86
|
+
"hazo_debug": "^3.1.0",
|
|
87
|
+
"hazo_logs": "^2.0.0",
|
|
88
|
+
"hazo_jobs": "^0.12.0"
|
|
84
89
|
},
|
|
85
90
|
"peerDependenciesMeta": {
|
|
91
|
+
"class-variance-authority": {
|
|
92
|
+
"optional": true
|
|
93
|
+
},
|
|
86
94
|
"@radix-ui/react-alert-dialog": {
|
|
87
95
|
"optional": true
|
|
88
96
|
},
|
|
@@ -109,15 +117,25 @@
|
|
|
109
117
|
},
|
|
110
118
|
"hazo_debug": {
|
|
111
119
|
"optional": true
|
|
120
|
+
},
|
|
121
|
+
"hazo_logs": {
|
|
122
|
+
"optional": true
|
|
123
|
+
},
|
|
124
|
+
"hazo_jobs": {
|
|
125
|
+
"optional": true
|
|
112
126
|
}
|
|
113
127
|
},
|
|
114
128
|
"devDependencies": {
|
|
115
129
|
"@types/ini": "^4.1.1",
|
|
130
|
+
"@types/jest": "^30.0.0",
|
|
116
131
|
"@types/node": "^20.14.10",
|
|
117
132
|
"@types/react": "^18.3.3",
|
|
118
133
|
"@types/react-dom": "^18.3.0",
|
|
119
134
|
"@types/sql.js": "^1.4.9",
|
|
135
|
+
"jest": "^30.2.0",
|
|
136
|
+
"jest-environment-node": "^30.2.0",
|
|
120
137
|
"lucide-react": "^0.553.0",
|
|
138
|
+
"ts-jest": "^29.4.5",
|
|
121
139
|
"typescript": "^5.7.2"
|
|
122
140
|
}
|
|
123
141
|
}
|