hazo_llm_api 1.2.12 → 1.3.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 +33 -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/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/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/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 +59 -6
- 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 +17 -1
- 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 +29 -1
- package/dist/lib/llm_api/index.d.ts.map +1 -1
- package/dist/lib/llm_api/index.js +433 -6
- 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/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 +42 -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 +134 -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 +129 -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_provider.d.ts.map +1 -1
- package/dist/lib/providers/gemini/gemini_provider.js +40 -4
- 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 +187 -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_provider.d.ts.map +1 -1
- package/dist/lib/providers/qwen/qwen_provider.js +52 -5
- 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/hazo_llm_api_log.sql +69 -0
- package/package.json +26 -11
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
-- hazo_llm_api_log: per-call observability log.
|
|
2
|
+
-- Written by the default afterResponse hook (on by default; disable via api_log.enabled=false).
|
|
3
|
+
-- Cost values are frozen per-row for accurate historical audit.
|
|
4
|
+
--
|
|
5
|
+
-- SQLite version (commented):
|
|
6
|
+
-- CREATE TABLE IF NOT EXISTS hazo_llm_api_log (
|
|
7
|
+
-- id TEXT PRIMARY KEY,
|
|
8
|
+
-- created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
9
|
+
-- service_type TEXT NOT NULL,
|
|
10
|
+
-- provider TEXT NOT NULL,
|
|
11
|
+
-- model TEXT,
|
|
12
|
+
-- success INTEGER NOT NULL,
|
|
13
|
+
-- tokens_input INTEGER,
|
|
14
|
+
-- tokens_output INTEGER,
|
|
15
|
+
-- tokens_cached_input INTEGER,
|
|
16
|
+
-- tokens_total INTEGER,
|
|
17
|
+
-- cost_usd REAL,
|
|
18
|
+
-- pricing_kind TEXT,
|
|
19
|
+
-- pricing_input_per_1m_usd REAL,
|
|
20
|
+
-- pricing_output_per_1m_usd REAL,
|
|
21
|
+
-- pricing_per_image_usd REAL,
|
|
22
|
+
-- latency_ms INTEGER,
|
|
23
|
+
-- finish_reason TEXT,
|
|
24
|
+
-- error_code TEXT,
|
|
25
|
+
-- error_message TEXT,
|
|
26
|
+
-- prompt_area TEXT,
|
|
27
|
+
-- prompt_key TEXT,
|
|
28
|
+
-- prompt_id TEXT,
|
|
29
|
+
-- session_id TEXT,
|
|
30
|
+
-- reference TEXT,
|
|
31
|
+
-- attempts_count INTEGER DEFAULT 1,
|
|
32
|
+
-- context_json TEXT DEFAULT '{}'
|
|
33
|
+
-- );
|
|
34
|
+
--
|
|
35
|
+
-- PostgreSQL version (active):
|
|
36
|
+
CREATE TABLE IF NOT EXISTS hazo_llm_api_log (
|
|
37
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
38
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
39
|
+
service_type TEXT NOT NULL,
|
|
40
|
+
provider TEXT NOT NULL,
|
|
41
|
+
model TEXT,
|
|
42
|
+
success BOOLEAN NOT NULL,
|
|
43
|
+
tokens_input INTEGER,
|
|
44
|
+
tokens_output INTEGER,
|
|
45
|
+
tokens_cached_input INTEGER,
|
|
46
|
+
tokens_total INTEGER,
|
|
47
|
+
cost_usd DOUBLE PRECISION,
|
|
48
|
+
pricing_kind TEXT,
|
|
49
|
+
pricing_input_per_1m_usd DOUBLE PRECISION,
|
|
50
|
+
pricing_output_per_1m_usd DOUBLE PRECISION,
|
|
51
|
+
pricing_per_image_usd DOUBLE PRECISION,
|
|
52
|
+
latency_ms INTEGER,
|
|
53
|
+
finish_reason TEXT,
|
|
54
|
+
error_code TEXT,
|
|
55
|
+
error_message TEXT,
|
|
56
|
+
prompt_area TEXT,
|
|
57
|
+
prompt_key TEXT,
|
|
58
|
+
prompt_id UUID,
|
|
59
|
+
session_id TEXT,
|
|
60
|
+
reference TEXT,
|
|
61
|
+
attempts_count INTEGER DEFAULT 1,
|
|
62
|
+
context_json JSONB DEFAULT '{}'::jsonb
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_created ON hazo_llm_api_log(created_at DESC);
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_provider ON hazo_llm_api_log(provider, created_at DESC);
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_success ON hazo_llm_api_log(success, created_at DESC);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_llm_log_session ON hazo_llm_api_log(session_id, created_at DESC);
|
|
69
|
+
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": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Wrapper to call different LLMs and includes prompt management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"LLM",
|
|
@@ -48,25 +48,27 @@
|
|
|
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
67
|
"class-variance-authority": "^0.7.1",
|
|
66
68
|
"clsx": "^2.1.1",
|
|
67
69
|
"ini": "^6.0.0",
|
|
68
70
|
"sql.js": "^1.10.0",
|
|
69
|
-
"tailwind-merge": "^
|
|
71
|
+
"tailwind-merge": "^3.5.0"
|
|
70
72
|
},
|
|
71
73
|
"engines": {
|
|
72
74
|
"node": ">=18.0.0"
|
|
@@ -76,11 +78,13 @@
|
|
|
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": "
|
|
80
|
-
"lucide-react": "
|
|
81
|
+
"hazo_ui": "^2.17.0",
|
|
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
|
-
"hazo_debug": "
|
|
85
|
+
"hazo_debug": "^2.0.0",
|
|
86
|
+
"hazo_logs": "^1.1.0",
|
|
87
|
+
"hazo_jobs": "^0.10.0"
|
|
84
88
|
},
|
|
85
89
|
"peerDependenciesMeta": {
|
|
86
90
|
"@radix-ui/react-alert-dialog": {
|
|
@@ -109,14 +113,25 @@
|
|
|
109
113
|
},
|
|
110
114
|
"hazo_debug": {
|
|
111
115
|
"optional": true
|
|
116
|
+
},
|
|
117
|
+
"hazo_logs": {
|
|
118
|
+
"optional": true
|
|
119
|
+
},
|
|
120
|
+
"hazo_jobs": {
|
|
121
|
+
"optional": true
|
|
112
122
|
}
|
|
113
123
|
},
|
|
114
124
|
"devDependencies": {
|
|
115
125
|
"@types/ini": "^4.1.1",
|
|
116
|
-
"@types/
|
|
117
|
-
"@types/
|
|
118
|
-
"@types/react
|
|
126
|
+
"@types/jest": "^30.0.0",
|
|
127
|
+
"@types/node": "^20.14.10",
|
|
128
|
+
"@types/react": "^18.3.3",
|
|
129
|
+
"@types/react-dom": "^18.3.0",
|
|
119
130
|
"@types/sql.js": "^1.4.9",
|
|
120
|
-
"
|
|
131
|
+
"jest": "^30.2.0",
|
|
132
|
+
"jest-environment-node": "^30.2.0",
|
|
133
|
+
"lucide-react": "^0.553.0",
|
|
134
|
+
"ts-jest": "^29.4.5",
|
|
135
|
+
"typescript": "^5.7.2"
|
|
121
136
|
}
|
|
122
137
|
}
|