hazo_llm_api 1.3.0 → 2.1.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.
Files changed (86) hide show
  1. package/README.md +4 -2
  2. package/config/hazo_llm_api_config.ini +5 -0
  3. package/dist/components/llm_call_inspector/llm_call_inspector.js +1 -1
  4. package/dist/components/llm_call_inspector/llm_call_inspector.js.map +1 -1
  5. package/dist/components/llm_cost_dashboard/llm_cost_dashboard.js +1 -1
  6. package/dist/components/llm_cost_dashboard/llm_cost_dashboard.js.map +1 -1
  7. package/dist/components/prompt_editor/prompt_editor.d.ts.map +1 -1
  8. package/dist/components/prompt_editor/prompt_editor.js +3 -2
  9. package/dist/components/prompt_editor/prompt_editor.js.map +1 -1
  10. package/dist/components/prompt_editor/ui/alert_dialog.js +1 -1
  11. package/dist/components/prompt_editor/ui/alert_dialog.js.map +1 -1
  12. package/dist/components/prompt_editor/ui/button.js +1 -1
  13. package/dist/components/prompt_editor/ui/button.js.map +1 -1
  14. package/dist/components/prompt_editor/ui/checkbox.js +1 -1
  15. package/dist/components/prompt_editor/ui/checkbox.js.map +1 -1
  16. package/dist/components/prompt_editor/ui/dialog.js +1 -1
  17. package/dist/components/prompt_editor/ui/dialog.js.map +1 -1
  18. package/dist/components/prompt_editor/ui/index.d.ts +1 -1
  19. package/dist/components/prompt_editor/ui/index.d.ts.map +1 -1
  20. package/dist/components/prompt_editor/ui/index.js +1 -1
  21. package/dist/components/prompt_editor/ui/index.js.map +1 -1
  22. package/dist/components/prompt_editor/ui/input.js +1 -1
  23. package/dist/components/prompt_editor/ui/input.js.map +1 -1
  24. package/dist/components/prompt_editor/ui/textarea.js +1 -1
  25. package/dist/components/prompt_editor/ui/textarea.js.map +1 -1
  26. package/dist/components/prompt_editor/ui/tooltip.js +1 -1
  27. package/dist/components/prompt_editor/ui/tooltip.js.map +1 -1
  28. package/dist/lib/config/index.d.ts +1 -0
  29. package/dist/lib/config/index.d.ts.map +1 -1
  30. package/dist/lib/config/index.js +3 -0
  31. package/dist/lib/config/index.js.map +1 -1
  32. package/dist/lib/config/llm_api_config.d.ts +42 -0
  33. package/dist/lib/config/llm_api_config.d.ts.map +1 -0
  34. package/dist/lib/config/llm_api_config.js +49 -0
  35. package/dist/lib/config/llm_api_config.js.map +1 -0
  36. package/dist/lib/database/init_database.d.ts.map +1 -1
  37. package/dist/lib/database/init_database.js +2 -1
  38. package/dist/lib/database/init_database.js.map +1 -1
  39. package/dist/lib/hazo_connect/direct_db_connect.d.ts.map +1 -1
  40. package/dist/lib/hazo_connect/direct_db_connect.js +3 -2
  41. package/dist/lib/hazo_connect/direct_db_connect.js.map +1 -1
  42. package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts.map +1 -1
  43. package/dist/lib/llm_api/hazo_llm_prompt_chain.js +2 -1
  44. package/dist/lib/llm_api/hazo_llm_prompt_chain.js.map +1 -1
  45. package/dist/lib/llm_api/index.d.ts +2 -2
  46. package/dist/lib/llm_api/index.d.ts.map +1 -1
  47. package/dist/lib/llm_api/index.js +19 -44
  48. package/dist/lib/llm_api/index.js.map +1 -1
  49. package/dist/lib/llm_api/provider_helper.d.ts.map +1 -1
  50. package/dist/lib/llm_api/provider_helper.js +3 -38
  51. package/dist/lib/llm_api/provider_helper.js.map +1 -1
  52. package/dist/lib/maintenance/purge_log_job.d.ts.map +1 -1
  53. package/dist/lib/maintenance/purge_log_job.js +11 -4
  54. package/dist/lib/maintenance/purge_log_job.js.map +1 -1
  55. package/dist/lib/observability/log_context.d.ts.map +1 -1
  56. package/dist/lib/observability/log_context.js +5 -5
  57. package/dist/lib/observability/log_context.js.map +1 -1
  58. package/dist/lib/providers/anthropic/anthropic_client.d.ts.map +1 -1
  59. package/dist/lib/providers/anthropic/anthropic_client.js +3 -2
  60. package/dist/lib/providers/anthropic/anthropic_client.js.map +1 -1
  61. package/dist/lib/providers/deepseek/deepseek_client.d.ts.map +1 -1
  62. package/dist/lib/providers/deepseek/deepseek_client.js +3 -2
  63. package/dist/lib/providers/deepseek/deepseek_client.js.map +1 -1
  64. package/dist/lib/providers/gemini/gemini_client.d.ts.map +1 -1
  65. package/dist/lib/providers/gemini/gemini_client.js +2 -1
  66. package/dist/lib/providers/gemini/gemini_client.js.map +1 -1
  67. package/dist/lib/providers/gemini/gemini_provider.d.ts.map +1 -1
  68. package/dist/lib/providers/gemini/gemini_provider.js +3 -2
  69. package/dist/lib/providers/gemini/gemini_provider.js.map +1 -1
  70. package/dist/lib/providers/openai/openai_client.d.ts.map +1 -1
  71. package/dist/lib/providers/openai/openai_client.js +5 -4
  72. package/dist/lib/providers/openai/openai_client.js.map +1 -1
  73. package/dist/lib/providers/qwen/qwen_client.d.ts.map +1 -1
  74. package/dist/lib/providers/qwen/qwen_client.js +10 -9
  75. package/dist/lib/providers/qwen/qwen_client.js.map +1 -1
  76. package/dist/lib/providers/qwen/qwen_provider.d.ts.map +1 -1
  77. package/dist/lib/providers/qwen/qwen_provider.js +6 -3
  78. package/dist/lib/providers/qwen/qwen_provider.js.map +1 -1
  79. package/dist/server.d.ts +5 -0
  80. package/dist/server.d.ts.map +1 -1
  81. package/dist/server.js +10 -0
  82. package/dist/server.js.map +1 -1
  83. package/migrations/db_setup_postgres.sql +68 -0
  84. package/migrations/db_setup_sqlite.sql +66 -0
  85. package/migrations/hazo_llm_api_log.sql +3 -0
  86. package/package.json +10 -6
@@ -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);
@@ -1,3 +1,6 @@
1
+ -- LEGACY: This file is superseded by db_setup_postgres.sql and db_setup_sqlite.sql.
2
+ -- Kept for historical reference only.
3
+ --
1
4
  -- hazo_llm_api_log: per-call observability log.
2
5
  -- Written by the default afterResponse hook (on by default; disable via api_log.enabled=false).
3
6
  -- Cost values are frozen per-row for accurate historical audit.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hazo_llm_api",
3
- "version": "1.3.0",
3
+ "version": "2.1.0",
4
4
  "description": "Wrapper to call different LLMs and includes prompt management",
5
5
  "keywords": [
6
6
  "LLM",
@@ -64,7 +64,6 @@
64
64
  "test:watch": "node --experimental-vm-modules ../node_modules/jest/bin/jest.js --config jest.config.cjs --watch"
65
65
  },
66
66
  "dependencies": {
67
- "class-variance-authority": "^0.7.1",
68
67
  "clsx": "^2.1.1",
69
68
  "ini": "^6.0.0",
70
69
  "sql.js": "^1.10.0",
@@ -74,19 +73,24 @@
74
73
  "node": ">=18.0.0"
75
74
  },
76
75
  "peerDependencies": {
76
+ "class-variance-authority": "^0.7.1",
77
77
  "@radix-ui/react-alert-dialog": "^1.1.15",
78
78
  "@radix-ui/react-checkbox": "^1.1.4",
79
79
  "@radix-ui/react-dialog": "^1.1.5",
80
80
  "@radix-ui/react-tooltip": "^1.1.7",
81
- "hazo_ui": "^2.17.0",
81
+ "hazo_ui": "^3.1.3",
82
82
  "lucide-react": "^0.553.0",
83
83
  "react": "^18.0.0 || ^19.0.0",
84
84
  "react-dom": "^18.0.0 || ^19.0.0",
85
- "hazo_debug": "^2.0.0",
86
- "hazo_logs": "^1.1.0",
87
- "hazo_jobs": "^0.10.0"
85
+ "hazo_core": "^1.0.0",
86
+ "hazo_debug": "^3.1.1",
87
+ "hazo_logs": "^2.0.1",
88
+ "hazo_jobs": "^0.12.0"
88
89
  },
89
90
  "peerDependenciesMeta": {
91
+ "class-variance-authority": {
92
+ "optional": true
93
+ },
90
94
  "@radix-ui/react-alert-dialog": {
91
95
  "optional": true
92
96
  },