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.
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layout/index.d.ts +7 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +7 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/layout/layout.d.ts +21 -0
- package/dist/components/layout/layout.d.ts.map +1 -0
- package/dist/components/layout/layout.js +18 -0
- package/dist/components/layout/layout.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config/config_parser.d.ts +131 -0
- package/dist/lib/config/config_parser.d.ts.map +1 -0
- package/dist/lib/config/config_parser.js +297 -0
- package/dist/lib/config/config_parser.js.map +1 -0
- package/dist/lib/config/index.d.ts +8 -0
- package/dist/lib/config/index.d.ts.map +1 -0
- package/dist/lib/config/index.js +22 -0
- package/dist/lib/config/index.js.map +1 -0
- package/dist/lib/config/provider_loader.d.ts +113 -0
- package/dist/lib/config/provider_loader.d.ts.map +1 -0
- package/dist/lib/config/provider_loader.js +169 -0
- package/dist/lib/config/provider_loader.js.map +1 -0
- package/dist/lib/database/index.d.ts +8 -0
- package/dist/lib/database/index.d.ts.map +1 -0
- package/dist/lib/database/index.js +10 -0
- package/dist/lib/database/index.js.map +1 -0
- package/dist/lib/database/init_database.d.ts +118 -0
- package/dist/lib/database/init_database.d.ts.map +1 -0
- package/dist/lib/database/init_database.js +591 -0
- package/dist/lib/database/init_database.js.map +1 -0
- package/dist/lib/database/utils.d.ts +53 -0
- package/dist/lib/database/utils.d.ts.map +1 -0
- package/dist/lib/database/utils.js +87 -0
- package/dist/lib/database/utils.js.map +1 -0
- package/dist/lib/index.d.ts +14 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +17 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/llm_api/chain_helpers.d.ts +117 -0
- package/dist/lib/llm_api/chain_helpers.d.ts.map +1 -0
- package/dist/lib/llm_api/chain_helpers.js +445 -0
- package/dist/lib/llm_api/chain_helpers.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts +26 -0
- package/dist/lib/llm_api/hazo_llm_image_image.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image.js +94 -0
- package/dist/lib/llm_api/hazo_llm_image_image.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts +26 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.js +222 -0
- package/dist/lib/llm_api/hazo_llm_image_image_text.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_image_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_image_text.js +78 -0
- package/dist/lib/llm_api/hazo_llm_image_text.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.js +368 -0
- package/dist/lib/llm_api/hazo_llm_prompt_chain.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_text_image.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image.js +69 -0
- package/dist/lib/llm_api/hazo_llm_text_image.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts +26 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.js +154 -0
- package/dist/lib/llm_api/hazo_llm_text_image_text.js.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts +20 -0
- package/dist/lib/llm_api/hazo_llm_text_text.d.ts.map +1 -0
- package/dist/lib/llm_api/hazo_llm_text_text.js +91 -0
- package/dist/lib/llm_api/hazo_llm_text_text.js.map +1 -0
- package/dist/lib/llm_api/index.d.ts +223 -0
- package/dist/lib/llm_api/index.d.ts.map +1 -0
- package/dist/lib/llm_api/index.js +1220 -0
- package/dist/lib/llm_api/index.js.map +1 -0
- package/dist/lib/llm_api/provider_helper.d.ts +163 -0
- package/dist/lib/llm_api/provider_helper.d.ts.map +1 -0
- package/dist/lib/llm_api/provider_helper.js +346 -0
- package/dist/lib/llm_api/provider_helper.js.map +1 -0
- package/dist/lib/llm_api/types.d.ts +667 -0
- package/dist/lib/llm_api/types.d.ts.map +1 -0
- package/dist/lib/llm_api/types.js +49 -0
- package/dist/lib/llm_api/types.js.map +1 -0
- package/dist/lib/prompts/get_prompt.d.ts +76 -0
- package/dist/lib/prompts/get_prompt.d.ts.map +1 -0
- package/dist/lib/prompts/get_prompt.js +342 -0
- package/dist/lib/prompts/get_prompt.js.map +1 -0
- package/dist/lib/prompts/index.d.ts +9 -0
- package/dist/lib/prompts/index.d.ts.map +1 -0
- package/dist/lib/prompts/index.js +9 -0
- package/dist/lib/prompts/index.js.map +1 -0
- package/dist/lib/prompts/prompt_cache.d.ts +151 -0
- package/dist/lib/prompts/prompt_cache.d.ts.map +1 -0
- package/dist/lib/prompts/prompt_cache.js +276 -0
- package/dist/lib/prompts/prompt_cache.js.map +1 -0
- package/dist/lib/prompts/substitute_variables.d.ts +38 -0
- package/dist/lib/prompts/substitute_variables.d.ts.map +1 -0
- package/dist/lib/prompts/substitute_variables.js +171 -0
- package/dist/lib/prompts/substitute_variables.js.map +1 -0
- package/dist/lib/providers/gemini/gemini_client.d.ts +25 -0
- package/dist/lib/providers/gemini/gemini_client.d.ts.map +1 -0
- package/dist/lib/providers/gemini/gemini_client.js +235 -0
- package/dist/lib/providers/gemini/gemini_client.js.map +1 -0
- package/dist/lib/providers/gemini/gemini_provider.d.ts +111 -0
- package/dist/lib/providers/gemini/gemini_provider.d.ts.map +1 -0
- package/dist/lib/providers/gemini/gemini_provider.js +431 -0
- package/dist/lib/providers/gemini/gemini_provider.js.map +1 -0
- package/dist/lib/providers/gemini/index.d.ts +8 -0
- package/dist/lib/providers/gemini/index.d.ts.map +1 -0
- package/dist/lib/providers/gemini/index.js +8 -0
- package/dist/lib/providers/gemini/index.js.map +1 -0
- package/dist/lib/providers/index.d.ts +8 -0
- package/dist/lib/providers/index.d.ts.map +1 -0
- package/dist/lib/providers/index.js +8 -0
- package/dist/lib/providers/index.js.map +1 -0
- package/dist/lib/providers/qwen/index.d.ts +8 -0
- package/dist/lib/providers/qwen/index.d.ts.map +1 -0
- package/dist/lib/providers/qwen/index.js +8 -0
- package/dist/lib/providers/qwen/index.js.map +1 -0
- package/dist/lib/providers/qwen/qwen_client.d.ts +154 -0
- package/dist/lib/providers/qwen/qwen_client.d.ts.map +1 -0
- package/dist/lib/providers/qwen/qwen_client.js +1002 -0
- package/dist/lib/providers/qwen/qwen_client.js.map +1 -0
- package/dist/lib/providers/qwen/qwen_provider.d.ts +139 -0
- package/dist/lib/providers/qwen/qwen_provider.d.ts.map +1 -0
- package/dist/lib/providers/qwen/qwen_provider.js +304 -0
- package/dist/lib/providers/qwen/qwen_provider.js.map +1 -0
- package/dist/lib/providers/registry.d.ts +66 -0
- package/dist/lib/providers/registry.d.ts.map +1 -0
- package/dist/lib/providers/registry.js +158 -0
- package/dist/lib/providers/registry.js.map +1 -0
- package/dist/lib/providers/types.d.ts +145 -0
- package/dist/lib/providers/types.d.ts.map +1 -0
- package/dist/lib/providers/types.js +37 -0
- package/dist/lib/providers/types.js.map +1 -0
- package/dist/server.d.ts +27 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +50 -0
- package/dist/server.js.map +1 -0
- package/package.json +12 -1
|
@@ -0,0 +1,591 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Initialization Module
|
|
3
|
+
*
|
|
4
|
+
* Initializes and manages the SQLite database for prompt storage.
|
|
5
|
+
* Uses sql.js for database operations (pure JavaScript SQLite).
|
|
6
|
+
* Creates the prompts_library table if it doesn't exist.
|
|
7
|
+
*/
|
|
8
|
+
import initSqlJs from 'sql.js';
|
|
9
|
+
import fs from 'fs';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import os from 'os';
|
|
12
|
+
import { randomUUID } from 'crypto';
|
|
13
|
+
import { row_to_prompt_record } from './utils.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Path Helpers
|
|
16
|
+
// =============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Default SQLite database filename
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_SQLITE_FILENAME = 'prompt_library.sqlite';
|
|
21
|
+
/**
|
|
22
|
+
* Get the default SQLite database path
|
|
23
|
+
* Returns an absolute path relative to the current working directory
|
|
24
|
+
*
|
|
25
|
+
* @returns Default database path: "{process.cwd()}/prompt_library.sqlite"
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import { get_default_sqlite_path } from 'hazo_llm_api/server';
|
|
30
|
+
*
|
|
31
|
+
* const path = get_default_sqlite_path();
|
|
32
|
+
* // Returns: "/path/to/your/app/prompt_library.sqlite"
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function get_default_sqlite_path() {
|
|
36
|
+
return path.join(process.cwd(), DEFAULT_SQLITE_FILENAME);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Expand tilde (~) in path to user's home directory
|
|
40
|
+
* Also supports environment variables in the format ${VAR_NAME}
|
|
41
|
+
*
|
|
42
|
+
* @param file_path - Path that may contain ~ or environment variables
|
|
43
|
+
* @returns Expanded path
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* import { expand_path } from 'hazo_llm_api/server';
|
|
48
|
+
*
|
|
49
|
+
* expand_path('~/data/prompts.db');
|
|
50
|
+
* // Returns: "/Users/username/data/prompts.db"
|
|
51
|
+
*
|
|
52
|
+
* expand_path('${HOME}/data/prompts.db');
|
|
53
|
+
* // Returns: "/Users/username/data/prompts.db"
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export function expand_path(file_path) {
|
|
57
|
+
let expanded = file_path;
|
|
58
|
+
// Expand tilde to home directory
|
|
59
|
+
if (expanded.startsWith('~')) {
|
|
60
|
+
expanded = path.join(os.homedir(), expanded.slice(1));
|
|
61
|
+
}
|
|
62
|
+
// Expand environment variables ${VAR_NAME}
|
|
63
|
+
expanded = expanded.replace(/\$\{([^}]+)\}/g, (_, var_name) => {
|
|
64
|
+
return process.env[var_name] || '';
|
|
65
|
+
});
|
|
66
|
+
// Also support $VAR_NAME format (common in Unix)
|
|
67
|
+
expanded = expanded.replace(/\$([A-Za-z_][A-Za-z0-9_]*)/g, (_, var_name) => {
|
|
68
|
+
return process.env[var_name] || '';
|
|
69
|
+
});
|
|
70
|
+
return expanded;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Resolve a database path to an absolute path
|
|
74
|
+
* Handles tilde expansion, environment variables, and relative paths
|
|
75
|
+
*
|
|
76
|
+
* @param sqlite_path - Path to resolve (can be relative, absolute, or contain ~/$VAR)
|
|
77
|
+
* @returns Absolute path to the database file
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* import { resolve_sqlite_path } from 'hazo_llm_api/server';
|
|
82
|
+
*
|
|
83
|
+
* resolve_sqlite_path('prompt_library.sqlite');
|
|
84
|
+
* // Returns: "/path/to/cwd/prompt_library.sqlite"
|
|
85
|
+
*
|
|
86
|
+
* resolve_sqlite_path('~/data/prompts.db');
|
|
87
|
+
* // Returns: "/Users/username/data/prompts.db"
|
|
88
|
+
*
|
|
89
|
+
* resolve_sqlite_path('/absolute/path/prompts.db');
|
|
90
|
+
* // Returns: "/absolute/path/prompts.db"
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export function resolve_sqlite_path(sqlite_path) {
|
|
94
|
+
// First expand any special characters
|
|
95
|
+
const expanded = expand_path(sqlite_path);
|
|
96
|
+
// Then resolve to absolute path if needed
|
|
97
|
+
return path.isAbsolute(expanded)
|
|
98
|
+
? expanded
|
|
99
|
+
: path.join(process.cwd(), expanded);
|
|
100
|
+
}
|
|
101
|
+
// =============================================================================
|
|
102
|
+
// Database Instance
|
|
103
|
+
// =============================================================================
|
|
104
|
+
let db_instance = null;
|
|
105
|
+
let db_path = null;
|
|
106
|
+
let sql_initialized = false;
|
|
107
|
+
// =============================================================================
|
|
108
|
+
// Database Initialization
|
|
109
|
+
// =============================================================================
|
|
110
|
+
/**
|
|
111
|
+
* Initialize the SQLite database connection and create tables if needed
|
|
112
|
+
* @param sqlite_path - Path to the SQLite database file (relative to app root)
|
|
113
|
+
* @param logger - Logger instance for logging operations
|
|
114
|
+
* @returns Database instance
|
|
115
|
+
*/
|
|
116
|
+
export async function initialize_database(sqlite_path, logger) {
|
|
117
|
+
const file_name = 'init_database.ts';
|
|
118
|
+
// Return existing instance if already initialized
|
|
119
|
+
if (db_instance) {
|
|
120
|
+
logger.debug('Database already initialized, returning existing instance', {
|
|
121
|
+
file: file_name,
|
|
122
|
+
line: 36,
|
|
123
|
+
});
|
|
124
|
+
return db_instance;
|
|
125
|
+
}
|
|
126
|
+
try {
|
|
127
|
+
// Initialize sql.js
|
|
128
|
+
if (!sql_initialized) {
|
|
129
|
+
await initSqlJs();
|
|
130
|
+
sql_initialized = true;
|
|
131
|
+
}
|
|
132
|
+
// Resolve database path relative to process.cwd() (consuming app root)
|
|
133
|
+
const resolved_path = path.isAbsolute(sqlite_path)
|
|
134
|
+
? sqlite_path
|
|
135
|
+
: path.join(process.cwd(), sqlite_path);
|
|
136
|
+
db_path = resolved_path;
|
|
137
|
+
logger.info('Initializing SQLite database', {
|
|
138
|
+
file: file_name,
|
|
139
|
+
line: 56,
|
|
140
|
+
data: { path: resolved_path },
|
|
141
|
+
});
|
|
142
|
+
// Check if database file exists
|
|
143
|
+
let file_buffer = null;
|
|
144
|
+
try {
|
|
145
|
+
if (fs.existsSync(resolved_path)) {
|
|
146
|
+
file_buffer = fs.readFileSync(resolved_path);
|
|
147
|
+
logger.debug('Loading existing database file', {
|
|
148
|
+
file: file_name,
|
|
149
|
+
line: 66,
|
|
150
|
+
data: { path: resolved_path },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// File doesn't exist, will create new database
|
|
156
|
+
logger.debug('Database file does not exist, will create new', {
|
|
157
|
+
file: file_name,
|
|
158
|
+
line: 73,
|
|
159
|
+
data: { path: resolved_path },
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Create database connection
|
|
163
|
+
const SQL = await initSqlJs();
|
|
164
|
+
db_instance = file_buffer
|
|
165
|
+
? new SQL.Database(file_buffer)
|
|
166
|
+
: new SQL.Database();
|
|
167
|
+
// Create prompts_library table if it doesn't exist
|
|
168
|
+
create_prompts_table(db_instance, logger);
|
|
169
|
+
// Save database to file
|
|
170
|
+
save_database(logger);
|
|
171
|
+
logger.info('Database initialized successfully', {
|
|
172
|
+
file: file_name,
|
|
173
|
+
line: 92,
|
|
174
|
+
data: { path: resolved_path },
|
|
175
|
+
});
|
|
176
|
+
return db_instance;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
180
|
+
logger.error('Failed to initialize database', {
|
|
181
|
+
file: file_name,
|
|
182
|
+
line: 100,
|
|
183
|
+
data: { error: error_message, sqlite_path },
|
|
184
|
+
});
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Initialize database synchronously (for use in already async contexts)
|
|
190
|
+
* Note: This should only be called after initialize_database has been called once
|
|
191
|
+
*/
|
|
192
|
+
export function initialize_database_sync(sqlite_path, logger) {
|
|
193
|
+
// If already initialized, return the instance
|
|
194
|
+
if (db_instance) {
|
|
195
|
+
return db_instance;
|
|
196
|
+
}
|
|
197
|
+
// Otherwise, we need to initialize asynchronously first
|
|
198
|
+
logger.warn('Database not initialized. Call initialize_database first.', {
|
|
199
|
+
file: 'init_database.ts',
|
|
200
|
+
line: 120,
|
|
201
|
+
});
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
// =============================================================================
|
|
205
|
+
// Table Creation
|
|
206
|
+
// =============================================================================
|
|
207
|
+
/**
|
|
208
|
+
* Create the prompts_library table if it doesn't exist
|
|
209
|
+
* @param db - Database instance
|
|
210
|
+
* @param logger - Logger instance
|
|
211
|
+
*/
|
|
212
|
+
function create_prompts_table(db, logger) {
|
|
213
|
+
const file_name = 'init_database.ts';
|
|
214
|
+
const create_table_sql = `
|
|
215
|
+
CREATE TABLE IF NOT EXISTS prompts_library (
|
|
216
|
+
uuid TEXT PRIMARY KEY,
|
|
217
|
+
prompt_area TEXT NOT NULL,
|
|
218
|
+
prompt_key TEXT NOT NULL,
|
|
219
|
+
local_1 TEXT DEFAULT NULL,
|
|
220
|
+
local_2 TEXT DEFAULT NULL,
|
|
221
|
+
local_3 TEXT DEFAULT NULL,
|
|
222
|
+
prompt_text TEXT NOT NULL,
|
|
223
|
+
prompt_variables TEXT DEFAULT '[]',
|
|
224
|
+
prompt_notes TEXT DEFAULT '',
|
|
225
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
226
|
+
changed_by TEXT DEFAULT NULL
|
|
227
|
+
)
|
|
228
|
+
`;
|
|
229
|
+
try {
|
|
230
|
+
db.run(create_table_sql);
|
|
231
|
+
// Migrate existing tables: add local_1, local_2, local_3 columns if they don't exist
|
|
232
|
+
migrate_add_local_columns(db, logger);
|
|
233
|
+
// Create index for faster lookups by prompt_area, prompt_key, and local filters
|
|
234
|
+
const create_index_sql = `
|
|
235
|
+
CREATE INDEX IF NOT EXISTS idx_prompts_area_key
|
|
236
|
+
ON prompts_library(prompt_area, prompt_key, local_1, local_2, local_3)
|
|
237
|
+
`;
|
|
238
|
+
db.run(create_index_sql);
|
|
239
|
+
logger.debug('prompts_library table created/verified', {
|
|
240
|
+
file: file_name,
|
|
241
|
+
line: 164,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
246
|
+
logger.error('Failed to create prompts_library table', {
|
|
247
|
+
file: file_name,
|
|
248
|
+
line: 170,
|
|
249
|
+
data: { error: error_message },
|
|
250
|
+
});
|
|
251
|
+
throw error;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Migrate existing database: add local_1, local_2, local_3 columns if they don't exist
|
|
256
|
+
* @param db - Database instance
|
|
257
|
+
* @param logger - Logger instance
|
|
258
|
+
*/
|
|
259
|
+
function migrate_add_local_columns(db, logger) {
|
|
260
|
+
const file_name = 'init_database.ts';
|
|
261
|
+
try {
|
|
262
|
+
// Check if local_1 column exists
|
|
263
|
+
const table_info = db.exec("PRAGMA table_info(prompts_library)");
|
|
264
|
+
if (table_info.length === 0) {
|
|
265
|
+
return; // Table doesn't exist yet
|
|
266
|
+
}
|
|
267
|
+
const columns = table_info[0].values.map(row => row[1]);
|
|
268
|
+
// Add local_1 if it doesn't exist
|
|
269
|
+
if (!columns.includes('local_1')) {
|
|
270
|
+
db.run('ALTER TABLE prompts_library ADD COLUMN local_1 TEXT DEFAULT NULL');
|
|
271
|
+
logger.info('Migration: Added local_1 column to prompts_library', {
|
|
272
|
+
file: file_name,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
// Add local_2 if it doesn't exist
|
|
276
|
+
if (!columns.includes('local_2')) {
|
|
277
|
+
db.run('ALTER TABLE prompts_library ADD COLUMN local_2 TEXT DEFAULT NULL');
|
|
278
|
+
logger.info('Migration: Added local_2 column to prompts_library', {
|
|
279
|
+
file: file_name,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
// Add local_3 if it doesn't exist
|
|
283
|
+
if (!columns.includes('local_3')) {
|
|
284
|
+
db.run('ALTER TABLE prompts_library ADD COLUMN local_3 TEXT DEFAULT NULL');
|
|
285
|
+
logger.info('Migration: Added local_3 column to prompts_library', {
|
|
286
|
+
file: file_name,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
292
|
+
logger.warn('Migration warning (may be harmless)', {
|
|
293
|
+
file: file_name,
|
|
294
|
+
data: { error: error_message },
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// =============================================================================
|
|
299
|
+
// Database Operations
|
|
300
|
+
// =============================================================================
|
|
301
|
+
/**
|
|
302
|
+
* Get the current database instance
|
|
303
|
+
* @returns Database instance or null if not initialized
|
|
304
|
+
*/
|
|
305
|
+
export function get_database() {
|
|
306
|
+
return db_instance;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Save the database to file
|
|
310
|
+
* @param logger - Logger instance
|
|
311
|
+
*/
|
|
312
|
+
export function save_database(logger) {
|
|
313
|
+
const file_name = 'init_database.ts';
|
|
314
|
+
if (!db_instance || !db_path) {
|
|
315
|
+
logger.warn('Cannot save database: not initialized', {
|
|
316
|
+
file: file_name,
|
|
317
|
+
line: 197,
|
|
318
|
+
});
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
const data = db_instance.export();
|
|
323
|
+
const buffer = Buffer.from(data);
|
|
324
|
+
// Ensure directory exists
|
|
325
|
+
const dir = path.dirname(db_path);
|
|
326
|
+
if (!fs.existsSync(dir)) {
|
|
327
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
328
|
+
}
|
|
329
|
+
fs.writeFileSync(db_path, buffer);
|
|
330
|
+
logger.debug('Database saved to file', {
|
|
331
|
+
file: file_name,
|
|
332
|
+
line: 214,
|
|
333
|
+
data: { path: db_path },
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
338
|
+
logger.error('Failed to save database', {
|
|
339
|
+
file: file_name,
|
|
340
|
+
line: 220,
|
|
341
|
+
data: { error: error_message },
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Close the database connection
|
|
347
|
+
* @param logger - Logger instance
|
|
348
|
+
*/
|
|
349
|
+
export function close_database(logger) {
|
|
350
|
+
const file_name = 'init_database.ts';
|
|
351
|
+
if (db_instance) {
|
|
352
|
+
try {
|
|
353
|
+
// Save before closing
|
|
354
|
+
save_database(logger);
|
|
355
|
+
db_instance.close();
|
|
356
|
+
db_instance = null;
|
|
357
|
+
db_path = null;
|
|
358
|
+
logger.info('Database connection closed', {
|
|
359
|
+
file: file_name,
|
|
360
|
+
line: 243,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
catch (error) {
|
|
364
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
365
|
+
logger.error('Failed to close database connection', {
|
|
366
|
+
file: file_name,
|
|
367
|
+
line: 249,
|
|
368
|
+
data: { error: error_message },
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// =============================================================================
|
|
374
|
+
// Prompt CRUD Operations
|
|
375
|
+
// =============================================================================
|
|
376
|
+
/**
|
|
377
|
+
* Insert a new prompt into the database
|
|
378
|
+
* @param db - Database instance
|
|
379
|
+
* @param prompt - Prompt data to insert
|
|
380
|
+
* @param logger - Logger instance
|
|
381
|
+
* @returns The inserted prompt record
|
|
382
|
+
*/
|
|
383
|
+
export function insert_prompt(db, prompt, logger) {
|
|
384
|
+
const file_name = 'init_database.ts';
|
|
385
|
+
const uuid = randomUUID();
|
|
386
|
+
const insert_sql = `
|
|
387
|
+
INSERT INTO prompts_library (uuid, prompt_area, prompt_key, local_1, local_2, local_3, prompt_text, prompt_variables, prompt_notes)
|
|
388
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
389
|
+
`;
|
|
390
|
+
try {
|
|
391
|
+
logger.debug('Inserting prompt into database', {
|
|
392
|
+
file: file_name,
|
|
393
|
+
line: 282,
|
|
394
|
+
data: {
|
|
395
|
+
uuid,
|
|
396
|
+
prompt_area: prompt.prompt_area,
|
|
397
|
+
prompt_key: prompt.prompt_key,
|
|
398
|
+
local_1: prompt.local_1,
|
|
399
|
+
local_2: prompt.local_2,
|
|
400
|
+
local_3: prompt.local_3,
|
|
401
|
+
},
|
|
402
|
+
});
|
|
403
|
+
db.run(insert_sql, [
|
|
404
|
+
uuid,
|
|
405
|
+
prompt.prompt_area,
|
|
406
|
+
prompt.prompt_key,
|
|
407
|
+
prompt.local_1 || null,
|
|
408
|
+
prompt.local_2 || null,
|
|
409
|
+
prompt.local_3 || null,
|
|
410
|
+
prompt.prompt_text,
|
|
411
|
+
prompt.prompt_variables,
|
|
412
|
+
prompt.prompt_notes,
|
|
413
|
+
]);
|
|
414
|
+
// Save changes to file
|
|
415
|
+
save_database(logger);
|
|
416
|
+
// Fetch the inserted record
|
|
417
|
+
const result = db.exec('SELECT * FROM prompts_library WHERE uuid = ?', [uuid]);
|
|
418
|
+
if (result.length === 0 || result[0].values.length === 0) {
|
|
419
|
+
throw new Error('Failed to retrieve inserted prompt');
|
|
420
|
+
}
|
|
421
|
+
const row = result[0].values[0];
|
|
422
|
+
const columns = result[0].columns;
|
|
423
|
+
const record = row_to_prompt_record(row, columns);
|
|
424
|
+
logger.info('Prompt inserted successfully', {
|
|
425
|
+
file: file_name,
|
|
426
|
+
line: 318,
|
|
427
|
+
data: { uuid, prompt_area: prompt.prompt_area, prompt_key: prompt.prompt_key },
|
|
428
|
+
});
|
|
429
|
+
return record;
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
433
|
+
logger.error('Failed to insert prompt', {
|
|
434
|
+
file: file_name,
|
|
435
|
+
line: 326,
|
|
436
|
+
data: { error: error_message, prompt_area: prompt.prompt_area, prompt_key: prompt.prompt_key },
|
|
437
|
+
});
|
|
438
|
+
throw error;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Update an existing prompt in the database
|
|
443
|
+
* @param db - Database instance
|
|
444
|
+
* @param uuid - UUID of the prompt to update
|
|
445
|
+
* @param updates - Fields to update
|
|
446
|
+
* @param logger - Logger instance
|
|
447
|
+
* @returns The updated prompt record
|
|
448
|
+
*/
|
|
449
|
+
export function update_prompt(db, uuid, updates, logger) {
|
|
450
|
+
const file_name = 'init_database.ts';
|
|
451
|
+
// Build dynamic update SQL
|
|
452
|
+
const fields = [];
|
|
453
|
+
const values = [];
|
|
454
|
+
if (updates.prompt_area !== undefined) {
|
|
455
|
+
fields.push('prompt_area = ?');
|
|
456
|
+
values.push(updates.prompt_area);
|
|
457
|
+
}
|
|
458
|
+
if (updates.prompt_key !== undefined) {
|
|
459
|
+
fields.push('prompt_key = ?');
|
|
460
|
+
values.push(updates.prompt_key);
|
|
461
|
+
}
|
|
462
|
+
if (updates.local_1 !== undefined) {
|
|
463
|
+
fields.push('local_1 = ?');
|
|
464
|
+
values.push(updates.local_1 || null);
|
|
465
|
+
}
|
|
466
|
+
if (updates.local_2 !== undefined) {
|
|
467
|
+
fields.push('local_2 = ?');
|
|
468
|
+
values.push(updates.local_2 || null);
|
|
469
|
+
}
|
|
470
|
+
if (updates.local_3 !== undefined) {
|
|
471
|
+
fields.push('local_3 = ?');
|
|
472
|
+
values.push(updates.local_3 || null);
|
|
473
|
+
}
|
|
474
|
+
if (updates.prompt_text !== undefined) {
|
|
475
|
+
fields.push('prompt_text = ?');
|
|
476
|
+
values.push(updates.prompt_text);
|
|
477
|
+
}
|
|
478
|
+
if (updates.prompt_variables !== undefined) {
|
|
479
|
+
fields.push('prompt_variables = ?');
|
|
480
|
+
values.push(updates.prompt_variables);
|
|
481
|
+
}
|
|
482
|
+
if (updates.prompt_notes !== undefined) {
|
|
483
|
+
fields.push('prompt_notes = ?');
|
|
484
|
+
values.push(updates.prompt_notes);
|
|
485
|
+
}
|
|
486
|
+
if (fields.length === 0) {
|
|
487
|
+
logger.warn('No fields to update', {
|
|
488
|
+
file: file_name,
|
|
489
|
+
line: 377,
|
|
490
|
+
data: { uuid },
|
|
491
|
+
});
|
|
492
|
+
return null;
|
|
493
|
+
}
|
|
494
|
+
// Add changed_by timestamp
|
|
495
|
+
fields.push("changed_by = datetime('now')");
|
|
496
|
+
values.push(uuid);
|
|
497
|
+
const update_sql = `
|
|
498
|
+
UPDATE prompts_library
|
|
499
|
+
SET ${fields.join(', ')}
|
|
500
|
+
WHERE uuid = ?
|
|
501
|
+
`;
|
|
502
|
+
try {
|
|
503
|
+
logger.debug('Updating prompt in database', {
|
|
504
|
+
file: file_name,
|
|
505
|
+
line: 395,
|
|
506
|
+
data: { uuid, fields: Object.keys(updates) },
|
|
507
|
+
});
|
|
508
|
+
db.run(update_sql, values);
|
|
509
|
+
// Save changes to file
|
|
510
|
+
save_database(logger);
|
|
511
|
+
// Fetch the updated record
|
|
512
|
+
const result = db.exec('SELECT * FROM prompts_library WHERE uuid = ?', [uuid]);
|
|
513
|
+
if (result.length === 0 || result[0].values.length === 0) {
|
|
514
|
+
logger.warn('Prompt not found after update', {
|
|
515
|
+
file: file_name,
|
|
516
|
+
line: 412,
|
|
517
|
+
data: { uuid },
|
|
518
|
+
});
|
|
519
|
+
return null;
|
|
520
|
+
}
|
|
521
|
+
const row = result[0].values[0];
|
|
522
|
+
const columns = result[0].columns;
|
|
523
|
+
const record = row_to_prompt_record(row, columns);
|
|
524
|
+
logger.info('Prompt updated successfully', {
|
|
525
|
+
file: file_name,
|
|
526
|
+
line: 423,
|
|
527
|
+
data: { uuid },
|
|
528
|
+
});
|
|
529
|
+
return record;
|
|
530
|
+
}
|
|
531
|
+
catch (error) {
|
|
532
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
533
|
+
logger.error('Failed to update prompt', {
|
|
534
|
+
file: file_name,
|
|
535
|
+
line: 431,
|
|
536
|
+
data: { error: error_message, uuid },
|
|
537
|
+
});
|
|
538
|
+
throw error;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Delete a prompt from the database
|
|
543
|
+
* @param db - Database instance
|
|
544
|
+
* @param uuid - UUID of the prompt to delete
|
|
545
|
+
* @param logger - Logger instance
|
|
546
|
+
* @returns True if deleted successfully, false if not found
|
|
547
|
+
*/
|
|
548
|
+
export function delete_prompt(db, uuid, logger) {
|
|
549
|
+
const file_name = 'init_database.ts';
|
|
550
|
+
const delete_sql = `DELETE FROM prompts_library WHERE uuid = ?`;
|
|
551
|
+
try {
|
|
552
|
+
logger.debug('Deleting prompt from database', {
|
|
553
|
+
file: file_name,
|
|
554
|
+
line: 475,
|
|
555
|
+
data: { uuid },
|
|
556
|
+
});
|
|
557
|
+
// Check if prompt exists first
|
|
558
|
+
const check_result = db.exec('SELECT uuid FROM prompts_library WHERE uuid = ?', [uuid]);
|
|
559
|
+
if (check_result.length === 0 || check_result[0].values.length === 0) {
|
|
560
|
+
logger.warn('Prompt not found for deletion', {
|
|
561
|
+
file: file_name,
|
|
562
|
+
line: 485,
|
|
563
|
+
data: { uuid },
|
|
564
|
+
});
|
|
565
|
+
return false;
|
|
566
|
+
}
|
|
567
|
+
db.run(delete_sql, [uuid]);
|
|
568
|
+
// Save changes to file
|
|
569
|
+
save_database(logger);
|
|
570
|
+
logger.info('Prompt deleted successfully', {
|
|
571
|
+
file: file_name,
|
|
572
|
+
line: 495,
|
|
573
|
+
data: { uuid },
|
|
574
|
+
});
|
|
575
|
+
return true;
|
|
576
|
+
}
|
|
577
|
+
catch (error) {
|
|
578
|
+
const error_message = error instanceof Error ? error.message : String(error);
|
|
579
|
+
logger.error('Failed to delete prompt', {
|
|
580
|
+
file: file_name,
|
|
581
|
+
line: 502,
|
|
582
|
+
data: { error: error_message, uuid },
|
|
583
|
+
});
|
|
584
|
+
throw error;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
// =============================================================================
|
|
588
|
+
// Helper Functions
|
|
589
|
+
// =============================================================================
|
|
590
|
+
// Note: row_to_prompt_record is now imported from ./utils.js for single source of truth
|
|
591
|
+
//# sourceMappingURL=init_database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init_database.js","sourceRoot":"","sources":["../../../src/lib/database/init_database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utility functions for database operations.
|
|
5
|
+
* Single source of truth for common database helpers.
|
|
6
|
+
*/
|
|
7
|
+
import type { PromptRecord } from '../llm_api/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Convert a database row to a PromptRecord object using column names
|
|
10
|
+
*
|
|
11
|
+
* This is the single source of truth for row-to-record conversion.
|
|
12
|
+
* Used by both database initialization and prompt retrieval functions.
|
|
13
|
+
*
|
|
14
|
+
* @param row - Raw database row as array of values
|
|
15
|
+
* @param columns - Array of column names from the query result
|
|
16
|
+
* @returns PromptRecord object
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const result = db.exec('SELECT * FROM prompts_library WHERE uuid = ?', [uuid]);
|
|
21
|
+
* if (result.length > 0 && result[0].values.length > 0) {
|
|
22
|
+
* const record = row_to_prompt_record(result[0].values[0], result[0].columns);
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function row_to_prompt_record(row: unknown[], columns: string[]): PromptRecord;
|
|
27
|
+
/**
|
|
28
|
+
* Column indices for prompts_library table
|
|
29
|
+
* Use these constants when building queries to ensure consistency
|
|
30
|
+
*/
|
|
31
|
+
export declare const PROMPT_COLUMNS: {
|
|
32
|
+
readonly UUID: 0;
|
|
33
|
+
readonly PROMPT_AREA: 1;
|
|
34
|
+
readonly PROMPT_KEY: 2;
|
|
35
|
+
readonly LOCAL_1: 3;
|
|
36
|
+
readonly LOCAL_2: 4;
|
|
37
|
+
readonly LOCAL_3: 5;
|
|
38
|
+
readonly PROMPT_TEXT: 6;
|
|
39
|
+
readonly PROMPT_VARIABLES: 7;
|
|
40
|
+
readonly PROMPT_NOTES: 8;
|
|
41
|
+
readonly CREATED_AT: 9;
|
|
42
|
+
readonly CHANGED_BY: 10;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* SQL column names for prompts_library table
|
|
46
|
+
*/
|
|
47
|
+
export declare const PROMPT_COLUMN_NAMES: readonly ["uuid", "prompt_area", "prompt_key", "local_1", "local_2", "local_3", "prompt_text", "prompt_variables", "prompt_notes", "created_at", "changed_by"];
|
|
48
|
+
/**
|
|
49
|
+
* Get the SELECT clause for all prompt columns
|
|
50
|
+
* @returns SQL SELECT clause string
|
|
51
|
+
*/
|
|
52
|
+
export declare function get_prompt_select_clause(): string;
|
|
53
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/database/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAoBpF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,gKAYtB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD"}
|