@llmops/core 0.4.8-beta.7 → 0.5.0-beta.1

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.
@@ -1,4 +1,4 @@
1
- const require_db = require('./db-CIEpN_uB.cjs');
1
+ const require_db = require('./db-B6s2Fj5e.cjs');
2
2
  let kysely = require("kysely");
3
3
 
4
4
  //#region src/db/bun-sqlite-dialect.ts
package/dist/db/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- const require_db = require('../db-CIEpN_uB.cjs');
2
- const require_neon_dialect = require('../neon-dialect-NI1iA903.cjs');
1
+ const require_db = require('../db-B6s2Fj5e.cjs');
2
+ const require_neon_dialect = require('../neon-dialect-fjqFddrY.cjs');
3
3
 
4
4
  exports.SCHEMA_METADATA = require_db.SCHEMA_METADATA;
5
5
  exports.configVariantsSchema = require_db.configVariantsSchema;
@@ -7,7 +7,6 @@ exports.configsSchema = require_db.configsSchema;
7
7
  exports.createDatabase = require_db.createDatabase;
8
8
  exports.createDatabaseFromConnection = require_db.createDatabaseFromConnection;
9
9
  exports.createNeonDialect = require_neon_dialect.createNeonDialect;
10
- exports.createNeonSqlFunction = require_db.createNeonSqlFunction;
11
10
  exports.datasetRecordsSchema = require_db.datasetRecordsSchema;
12
11
  exports.datasetVersionRecordsSchema = require_db.datasetVersionRecordsSchema;
13
12
  exports.datasetVersionsSchema = require_db.datasetVersionsSchema;
@@ -16,7 +15,6 @@ exports.detectDatabaseType = require_db.detectDatabaseType;
16
15
  exports.environmentSecretsSchema = require_db.environmentSecretsSchema;
17
16
  exports.environmentsSchema = require_db.environmentsSchema;
18
17
  exports.executeWithSchema = require_neon_dialect.executeWithSchema;
19
- exports.generatePostgresSchemaSQL = require_db.generatePostgresSchemaSQL;
20
18
  exports.getMigrations = require_db.getMigrations;
21
19
  exports.guardrailConfigsSchema = require_db.guardrailConfigsSchema;
22
20
  exports.llmRequestsSchema = require_db.llmRequestsSchema;
@@ -30,7 +28,6 @@ exports.playgroundsSchema = require_db.playgroundsSchema;
30
28
  exports.providerConfigsSchema = require_db.providerConfigsSchema;
31
29
  exports.providerGuardrailOverridesSchema = require_db.providerGuardrailOverridesSchema;
32
30
  exports.runAutoMigrations = require_db.runAutoMigrations;
33
- exports.runSchemaSQL = require_db.runSchemaSQL;
34
31
  exports.schemas = require_db.schemas;
35
32
  exports.targetingRulesSchema = require_db.targetingRulesSchema;
36
33
  exports.validatePartialTableData = require_db.validatePartialTableData;
@@ -1,2 +1,2 @@
1
- import { $ as ProviderConfigsTable, A as DatasetVersionRecord, At as schemas, B as GuardrailResult, C as ConfigVariantsTable, Ct as llmRequestsSchema, D as DatasetRecord, Dt as playgroundsSchema, E as Dataset, Et as playgroundRunsSchema, F as EnvironmentSecret, G as Playground, H as Insertable, I as EnvironmentSecretsTable, J as PlaygroundResultsTable, K as PlaygroundColumn, L as EnvironmentsTable, M as DatasetVersionsTable, Mt as variantVersionsSchema, N as DatasetsTable, Nt as variantsSchema, O as DatasetRecordsTable, Ot as providerConfigsSchema, P as Environment, Pt as workspaceSettingsSchema, Q as ProviderConfig, R as GuardrailConfig, S as ConfigVariant, St as guardrailConfigsSchema, T as Database, Tt as playgroundResultsSchema, U as LLMRequest, V as GuardrailResults, W as LLMRequestsTable, X as PlaygroundRunsTable, Y as PlaygroundRun, Z as PlaygroundsTable, _ as validateTableData, _t as datasetVersionRecordsSchema, a as createDatabaseFromConnection, at as TargetingRule, b as runSchemaSQL, bt as environmentSecretsSchema, c as executeWithSchema, ct as Variant, d as getMigrations, dt as VariantsTable, et as ProviderGuardrailOverride, f as matchType, ft as WorkspaceSettings, g as validatePartialTableData, gt as datasetRecordsSchema, h as parseTableData, ht as configsSchema, i as createDatabase, it as TableName, j as DatasetVersionRecordsTable, jt as targetingRulesSchema, k as DatasetVersion, kt as providerGuardrailOverridesSchema, l as MigrationOptions, lt as VariantVersion, m as parsePartialTableData, mt as configVariantsSchema, n as DatabaseOptions, nt as SCHEMA_METADATA, o as detectDatabaseType, ot as TargetingRulesTable, p as runAutoMigrations, pt as WorkspaceSettingsTable, q as PlaygroundResult, r as DatabaseType, rt as Selectable, s as createNeonDialect, st as Updateable, t as DatabaseConnection, tt as ProviderGuardrailOverridesTable, u as MigrationResult, ut as VariantVersionsTable, v as createNeonSqlFunction, vt as datasetVersionsSchema, w as ConfigsTable, wt as playgroundColumnSchema, x as Config, xt as environmentsSchema, y as generatePostgresSchemaSQL, yt as datasetsSchema, z as GuardrailConfigsTable } from "../index-BYhMgUES.cjs";
2
- export { Config, ConfigVariant, ConfigVariantsTable, ConfigsTable, Database, DatabaseConnection, DatabaseOptions, DatabaseType, Dataset, DatasetRecord, DatasetRecordsTable, DatasetVersion, DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, DatasetsTable, Environment, EnvironmentSecret, EnvironmentSecretsTable, EnvironmentsTable, GuardrailConfig, GuardrailConfigsTable, GuardrailResult, GuardrailResults, Insertable, LLMRequest, LLMRequestsTable, MigrationOptions, MigrationResult, Playground, PlaygroundColumn, PlaygroundResult, PlaygroundResultsTable, PlaygroundRun, PlaygroundRunsTable, PlaygroundsTable, ProviderConfig, ProviderConfigsTable, ProviderGuardrailOverride, ProviderGuardrailOverridesTable, SCHEMA_METADATA, Selectable, TableName, TargetingRule, TargetingRulesTable, Updateable, Variant, VariantVersion, VariantVersionsTable, VariantsTable, WorkspaceSettings, WorkspaceSettingsTable, configVariantsSchema, configsSchema, createDatabase, createDatabaseFromConnection, createNeonDialect, createNeonSqlFunction, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, environmentSecretsSchema, environmentsSchema, executeWithSchema, generatePostgresSchemaSQL, getMigrations, guardrailConfigsSchema, llmRequestsSchema, matchType, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, runSchemaSQL, schemas, targetingRulesSchema, validatePartialTableData, validateTableData, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
1
+ import { $ as SCHEMA_METADATA, A as DatasetsTable, At as variantsSchema, B as LLMRequest, C as Dataset, Ct as playgroundRunsSchema, D as DatasetVersionRecord, Dt as schemas, E as DatasetVersion, Et as providerGuardrailOverridesSchema, F as GuardrailConfig, G as PlaygroundResultsTable, H as Playground, I as GuardrailConfigsTable, J as PlaygroundsTable, K as PlaygroundRun, L as GuardrailResult, M as EnvironmentSecret, N as EnvironmentSecretsTable, O as DatasetVersionRecordsTable, Ot as targetingRulesSchema, P as EnvironmentsTable, Q as ProviderGuardrailOverridesTable, R as GuardrailResults, S as Database, St as playgroundResultsSchema, T as DatasetRecordsTable, Tt as providerConfigsSchema, U as PlaygroundColumn, V as LLMRequestsTable, W as PlaygroundResult, X as ProviderConfigsTable, Y as ProviderConfig, Z as ProviderGuardrailOverride, _ as validateTableData, _t as environmentSecretsSchema, a as createDatabaseFromConnection, at as Variant, b as ConfigVariantsTable, bt as llmRequestsSchema, c as executeWithSchema, ct as VariantsTable, d as getMigrations, dt as configVariantsSchema, et as Selectable, f as matchType, ft as configsSchema, g as validatePartialTableData, gt as datasetsSchema, h as parseTableData, ht as datasetVersionsSchema, i as createDatabase, it as Updateable, j as Environment, jt as workspaceSettingsSchema, k as DatasetVersionsTable, kt as variantVersionsSchema, l as MigrationOptions, lt as WorkspaceSettings, m as parsePartialTableData, mt as datasetVersionRecordsSchema, n as DatabaseOptions, nt as TargetingRule, o as detectDatabaseType, ot as VariantVersion, p as runAutoMigrations, pt as datasetRecordsSchema, q as PlaygroundRunsTable, r as DatabaseType, rt as TargetingRulesTable, s as createNeonDialect, st as VariantVersionsTable, t as DatabaseConnection, tt as TableName, u as MigrationResult, ut as WorkspaceSettingsTable, v as Config, vt as environmentsSchema, w as DatasetRecord, wt as playgroundsSchema, x as ConfigsTable, xt as playgroundColumnSchema, y as ConfigVariant, yt as guardrailConfigsSchema, z as Insertable } from "../index-BtZBaB4H.cjs";
2
+ export { Config, ConfigVariant, ConfigVariantsTable, ConfigsTable, Database, DatabaseConnection, DatabaseOptions, DatabaseType, Dataset, DatasetRecord, DatasetRecordsTable, DatasetVersion, DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, DatasetsTable, Environment, EnvironmentSecret, EnvironmentSecretsTable, EnvironmentsTable, GuardrailConfig, GuardrailConfigsTable, GuardrailResult, GuardrailResults, Insertable, LLMRequest, LLMRequestsTable, MigrationOptions, MigrationResult, Playground, PlaygroundColumn, PlaygroundResult, PlaygroundResultsTable, PlaygroundRun, PlaygroundRunsTable, PlaygroundsTable, ProviderConfig, ProviderConfigsTable, ProviderGuardrailOverride, ProviderGuardrailOverridesTable, SCHEMA_METADATA, Selectable, TableName, TargetingRule, TargetingRulesTable, Updateable, Variant, VariantVersion, VariantVersionsTable, VariantsTable, WorkspaceSettings, WorkspaceSettingsTable, configVariantsSchema, configsSchema, createDatabase, createDatabaseFromConnection, createNeonDialect, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, environmentSecretsSchema, environmentsSchema, executeWithSchema, getMigrations, guardrailConfigsSchema, llmRequestsSchema, matchType, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validatePartialTableData, validateTableData, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
@@ -1,2 +1,2 @@
1
- import { $ as ProviderConfigsTable, A as DatasetVersionRecord, At as schemas, B as GuardrailResult, C as ConfigVariantsTable, Ct as llmRequestsSchema, D as DatasetRecord, Dt as playgroundsSchema, E as Dataset, Et as playgroundRunsSchema, F as EnvironmentSecret, G as Playground, H as Insertable, I as EnvironmentSecretsTable, J as PlaygroundResultsTable, K as PlaygroundColumn, L as EnvironmentsTable, M as DatasetVersionsTable, Mt as variantVersionsSchema, N as DatasetsTable, Nt as variantsSchema, O as DatasetRecordsTable, Ot as providerConfigsSchema, P as Environment, Pt as workspaceSettingsSchema, Q as ProviderConfig, R as GuardrailConfig, S as ConfigVariant, St as guardrailConfigsSchema, T as Database, Tt as playgroundResultsSchema, U as LLMRequest, V as GuardrailResults, W as LLMRequestsTable, X as PlaygroundRunsTable, Y as PlaygroundRun, Z as PlaygroundsTable, _ as validateTableData, _t as datasetVersionRecordsSchema, a as createDatabaseFromConnection, at as TargetingRule, b as runSchemaSQL, bt as environmentSecretsSchema, c as executeWithSchema, ct as Variant, d as getMigrations, dt as VariantsTable, et as ProviderGuardrailOverride, f as matchType, ft as WorkspaceSettings, g as validatePartialTableData, gt as datasetRecordsSchema, h as parseTableData, ht as configsSchema, i as createDatabase, it as TableName, j as DatasetVersionRecordsTable, jt as targetingRulesSchema, k as DatasetVersion, kt as providerGuardrailOverridesSchema, l as MigrationOptions, lt as VariantVersion, m as parsePartialTableData, mt as configVariantsSchema, n as DatabaseOptions, nt as SCHEMA_METADATA, o as detectDatabaseType, ot as TargetingRulesTable, p as runAutoMigrations, pt as WorkspaceSettingsTable, q as PlaygroundResult, r as DatabaseType, rt as Selectable, s as createNeonDialect, st as Updateable, t as DatabaseConnection, tt as ProviderGuardrailOverridesTable, u as MigrationResult, ut as VariantVersionsTable, v as createNeonSqlFunction, vt as datasetVersionsSchema, w as ConfigsTable, wt as playgroundColumnSchema, x as Config, xt as environmentsSchema, y as generatePostgresSchemaSQL, yt as datasetsSchema, z as GuardrailConfigsTable } from "../index-BvU4Gv3C.mjs";
2
- export { Config, ConfigVariant, ConfigVariantsTable, ConfigsTable, Database, DatabaseConnection, DatabaseOptions, DatabaseType, Dataset, DatasetRecord, DatasetRecordsTable, DatasetVersion, DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, DatasetsTable, Environment, EnvironmentSecret, EnvironmentSecretsTable, EnvironmentsTable, GuardrailConfig, GuardrailConfigsTable, GuardrailResult, GuardrailResults, Insertable, LLMRequest, LLMRequestsTable, MigrationOptions, MigrationResult, Playground, PlaygroundColumn, PlaygroundResult, PlaygroundResultsTable, PlaygroundRun, PlaygroundRunsTable, PlaygroundsTable, ProviderConfig, ProviderConfigsTable, ProviderGuardrailOverride, ProviderGuardrailOverridesTable, SCHEMA_METADATA, Selectable, TableName, TargetingRule, TargetingRulesTable, Updateable, Variant, VariantVersion, VariantVersionsTable, VariantsTable, WorkspaceSettings, WorkspaceSettingsTable, configVariantsSchema, configsSchema, createDatabase, createDatabaseFromConnection, createNeonDialect, createNeonSqlFunction, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, environmentSecretsSchema, environmentsSchema, executeWithSchema, generatePostgresSchemaSQL, getMigrations, guardrailConfigsSchema, llmRequestsSchema, matchType, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, runSchemaSQL, schemas, targetingRulesSchema, validatePartialTableData, validateTableData, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
1
+ import { $ as SCHEMA_METADATA, A as DatasetsTable, At as variantsSchema, B as LLMRequest, C as Dataset, Ct as playgroundRunsSchema, D as DatasetVersionRecord, Dt as schemas, E as DatasetVersion, Et as providerGuardrailOverridesSchema, F as GuardrailConfig, G as PlaygroundResultsTable, H as Playground, I as GuardrailConfigsTable, J as PlaygroundsTable, K as PlaygroundRun, L as GuardrailResult, M as EnvironmentSecret, N as EnvironmentSecretsTable, O as DatasetVersionRecordsTable, Ot as targetingRulesSchema, P as EnvironmentsTable, Q as ProviderGuardrailOverridesTable, R as GuardrailResults, S as Database, St as playgroundResultsSchema, T as DatasetRecordsTable, Tt as providerConfigsSchema, U as PlaygroundColumn, V as LLMRequestsTable, W as PlaygroundResult, X as ProviderConfigsTable, Y as ProviderConfig, Z as ProviderGuardrailOverride, _ as validateTableData, _t as environmentSecretsSchema, a as createDatabaseFromConnection, at as Variant, b as ConfigVariantsTable, bt as llmRequestsSchema, c as executeWithSchema, ct as VariantsTable, d as getMigrations, dt as configVariantsSchema, et as Selectable, f as matchType, ft as configsSchema, g as validatePartialTableData, gt as datasetsSchema, h as parseTableData, ht as datasetVersionsSchema, i as createDatabase, it as Updateable, j as Environment, jt as workspaceSettingsSchema, k as DatasetVersionsTable, kt as variantVersionsSchema, l as MigrationOptions, lt as WorkspaceSettings, m as parsePartialTableData, mt as datasetVersionRecordsSchema, n as DatabaseOptions, nt as TargetingRule, o as detectDatabaseType, ot as VariantVersion, p as runAutoMigrations, pt as datasetRecordsSchema, q as PlaygroundRunsTable, r as DatabaseType, rt as TargetingRulesTable, s as createNeonDialect, st as VariantVersionsTable, t as DatabaseConnection, tt as TableName, u as MigrationResult, ut as WorkspaceSettingsTable, v as Config, vt as environmentsSchema, w as DatasetRecord, wt as playgroundsSchema, x as ConfigsTable, xt as playgroundColumnSchema, y as ConfigVariant, yt as guardrailConfigsSchema, z as Insertable } from "../index-DkZvY6Q3.mjs";
2
+ export { Config, ConfigVariant, ConfigVariantsTable, ConfigsTable, Database, DatabaseConnection, DatabaseOptions, DatabaseType, Dataset, DatasetRecord, DatasetRecordsTable, DatasetVersion, DatasetVersionRecord, DatasetVersionRecordsTable, DatasetVersionsTable, DatasetsTable, Environment, EnvironmentSecret, EnvironmentSecretsTable, EnvironmentsTable, GuardrailConfig, GuardrailConfigsTable, GuardrailResult, GuardrailResults, Insertable, LLMRequest, LLMRequestsTable, MigrationOptions, MigrationResult, Playground, PlaygroundColumn, PlaygroundResult, PlaygroundResultsTable, PlaygroundRun, PlaygroundRunsTable, PlaygroundsTable, ProviderConfig, ProviderConfigsTable, ProviderGuardrailOverride, ProviderGuardrailOverridesTable, SCHEMA_METADATA, Selectable, TableName, TargetingRule, TargetingRulesTable, Updateable, Variant, VariantVersion, VariantVersionsTable, VariantsTable, WorkspaceSettings, WorkspaceSettingsTable, configVariantsSchema, configsSchema, createDatabase, createDatabaseFromConnection, createNeonDialect, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, environmentSecretsSchema, environmentsSchema, executeWithSchema, getMigrations, guardrailConfigsSchema, llmRequestsSchema, matchType, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validatePartialTableData, validateTableData, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
package/dist/db/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as playgroundsSchema, C as environmentSecretsSchema, D as playgroundColumnSchema, E as llmRequestsSchema, F as variantVersionsSchema, I as variantsSchema, L as workspaceSettingsSchema, M as providerGuardrailOverridesSchema, N as schemas, O as playgroundResultsSchema, P as targetingRulesSchema, S as datasetsSchema, T as guardrailConfigsSchema, _ as configVariantsSchema, a as matchType, b as datasetVersionRecordsSchema, d as validatePartialTableData, f as validateTableData, g as SCHEMA_METADATA, h as runSchemaSQL, i as getMigrations, j as providerConfigsSchema, k as playgroundRunsSchema, l as parsePartialTableData, m as generatePostgresSchemaSQL, n as createDatabaseFromConnection, o as runAutoMigrations, p as createNeonSqlFunction, r as detectDatabaseType, t as createDatabase, u as parseTableData, v as configsSchema, w as environmentsSchema, x as datasetVersionsSchema, y as datasetRecordsSchema } from "../db-DhXoqPZu.mjs";
1
+ import { A as schemas, C as llmRequestsSchema, D as playgroundsSchema, E as playgroundRunsSchema, M as variantVersionsSchema, N as variantsSchema, O as providerConfigsSchema, P as workspaceSettingsSchema, S as guardrailConfigsSchema, T as playgroundResultsSchema, _ as datasetVersionRecordsSchema, a as matchType, b as environmentSecretsSchema, d as validatePartialTableData, f as validateTableData, g as datasetRecordsSchema, h as configsSchema, i as getMigrations, j as targetingRulesSchema, k as providerGuardrailOverridesSchema, l as parsePartialTableData, m as configVariantsSchema, n as createDatabaseFromConnection, o as runAutoMigrations, p as SCHEMA_METADATA, r as detectDatabaseType, t as createDatabase, u as parseTableData, v as datasetVersionsSchema, w as playgroundColumnSchema, x as environmentsSchema, y as datasetsSchema } from "../db-DdV835WT.mjs";
2
2
  import { n as executeWithSchema, t as createNeonDialect } from "../neon-dialect-DySGBYUi.mjs";
3
3
 
4
- export { SCHEMA_METADATA, configVariantsSchema, configsSchema, createDatabase, createDatabaseFromConnection, createNeonDialect, createNeonSqlFunction, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, environmentSecretsSchema, environmentsSchema, executeWithSchema, generatePostgresSchemaSQL, getMigrations, guardrailConfigsSchema, llmRequestsSchema, matchType, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, runSchemaSQL, schemas, targetingRulesSchema, validatePartialTableData, validateTableData, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
4
+ export { SCHEMA_METADATA, configVariantsSchema, configsSchema, createDatabase, createDatabaseFromConnection, createNeonDialect, datasetRecordsSchema, datasetVersionRecordsSchema, datasetVersionsSchema, datasetsSchema, detectDatabaseType, environmentSecretsSchema, environmentsSchema, executeWithSchema, getMigrations, guardrailConfigsSchema, llmRequestsSchema, matchType, parsePartialTableData, parseTableData, playgroundColumnSchema, playgroundResultsSchema, playgroundRunsSchema, playgroundsSchema, providerConfigsSchema, providerGuardrailOverridesSchema, runAutoMigrations, schemas, targetingRulesSchema, validatePartialTableData, validateTableData, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
@@ -13939,241 +13939,6 @@ const schemas = {
13939
13939
  llm_requests: llmRequestsSchema
13940
13940
  };
13941
13941
 
13942
- //#endregion
13943
- //#region src/db/schema-sql.ts
13944
- /**
13945
- * Idempotent SQL Schema Generator
13946
- *
13947
- * Generates fully idempotent PostgreSQL schema SQL that can be run on every
13948
- * server restart. Works in edge environments (no file system access needed).
13949
- *
13950
- * This is the programmatic version of the generate-schema-sql.ts script.
13951
- */
13952
- function toSnakeCase(str) {
13953
- return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
13954
- }
13955
- function getDefaultValue(fieldType, defaultValue) {
13956
- if (defaultValue === void 0) return null;
13957
- if (defaultValue === "now()") return "NOW()";
13958
- if (typeof defaultValue === "boolean") return defaultValue ? "TRUE" : "FALSE";
13959
- if (typeof defaultValue === "number") return String(defaultValue);
13960
- if (typeof defaultValue === "string") {
13961
- if (defaultValue === "{}") return "'{}'::jsonb";
13962
- return `'${defaultValue}'`;
13963
- }
13964
- return null;
13965
- }
13966
- const TYPE_MAPPINGS = {
13967
- uuid: "UUID",
13968
- text: "TEXT",
13969
- integer: "INTEGER",
13970
- boolean: "BOOLEAN",
13971
- timestamp: "TIMESTAMP WITH TIME ZONE",
13972
- jsonb: "JSONB"
13973
- };
13974
- /**
13975
- * Generate idempotent PostgreSQL schema SQL
13976
- *
13977
- * @param schemaName - Optional PostgreSQL schema name (e.g., 'llmops').
13978
- * If not provided, tables are created in the current search_path.
13979
- * @returns SQL string that can be executed to create/update the schema
13980
- */
13981
- function generatePostgresSchemaSQL(schemaName) {
13982
- const lines = [];
13983
- const schemaPrefix = schemaName ? `"${schemaName}".` : "";
13984
- lines.push(`-- LLMOps Database Schema (PostgreSQL)`);
13985
- lines.push(`-- This SQL is fully idempotent and safe to run on every server restart.`);
13986
- lines.push("");
13987
- if (schemaName) {
13988
- lines.push(`-- Create schema if not exists`);
13989
- lines.push(`CREATE SCHEMA IF NOT EXISTS "${schemaName}";`);
13990
- lines.push("");
13991
- }
13992
- lines.push(`-- Enable UUID extension`);
13993
- lines.push(`CREATE EXTENSION IF NOT EXISTS "pgcrypto" SCHEMA public;`);
13994
- lines.push("");
13995
- const sortedTables = Object.entries(SCHEMA_METADATA.tables).map(([name, meta$2]) => ({
13996
- name,
13997
- meta: meta$2
13998
- })).sort((a, b) => a.meta.order - b.meta.order);
13999
- lines.push(`-- STEP 1: Create tables (if not exist)`);
14000
- for (const { name, meta: meta$2 } of sortedTables) {
14001
- const fullTableName = schemaPrefix + toSnakeCase(name);
14002
- if (!Object.entries(meta$2.fields).find(([_, f]) => f.primaryKey)) continue;
14003
- lines.push(`CREATE TABLE IF NOT EXISTS ${fullTableName} (`);
14004
- lines.push(` id UUID PRIMARY KEY DEFAULT gen_random_uuid()`);
14005
- lines.push(`);`);
14006
- }
14007
- lines.push("");
14008
- lines.push(`-- STEP 2: Add columns (if not exist)`);
14009
- for (const { name, meta: meta$2 } of sortedTables) {
14010
- const fullTableName = schemaPrefix + toSnakeCase(name);
14011
- for (const [columnName, field] of Object.entries(meta$2.fields)) {
14012
- if (field.primaryKey) continue;
14013
- const snakeColumn = toSnakeCase(columnName);
14014
- const sqlType = TYPE_MAPPINGS[field.type] || "TEXT";
14015
- const defaultVal = getDefaultValue(field.type, field.default);
14016
- let colDef = `${snakeColumn} ${sqlType}`;
14017
- if (defaultVal) colDef += ` DEFAULT ${defaultVal}`;
14018
- lines.push(`ALTER TABLE ${fullTableName} ADD COLUMN IF NOT EXISTS ${colDef};`);
14019
- }
14020
- }
14021
- lines.push("");
14022
- lines.push(`-- STEP 3: Add unique constraints (if not exist)`);
14023
- for (const { name, meta: meta$2 } of sortedTables) {
14024
- const snakeTable = toSnakeCase(name);
14025
- const fullTableName = schemaPrefix + snakeTable;
14026
- for (const [columnName, field] of Object.entries(meta$2.fields)) if (field.unique) {
14027
- const snakeColumn = toSnakeCase(columnName);
14028
- const constraintName = `uq_${snakeTable}_${snakeColumn}`;
14029
- lines.push(`DO $$`);
14030
- lines.push(`BEGIN`);
14031
- lines.push(` IF NOT EXISTS (`);
14032
- lines.push(` SELECT 1 FROM pg_constraint WHERE conname = '${constraintName}'`);
14033
- lines.push(` ) THEN`);
14034
- lines.push(` ALTER TABLE ${fullTableName} ADD CONSTRAINT ${constraintName} UNIQUE (${snakeColumn});`);
14035
- lines.push(` END IF;`);
14036
- lines.push(`END $$;`);
14037
- }
14038
- if (meta$2.uniqueConstraints) for (const constraint of meta$2.uniqueConstraints) {
14039
- const cols = constraint.columns.map(toSnakeCase).join(", ");
14040
- const constraintName = `uq_${snakeTable}_${constraint.columns.map(toSnakeCase).join("_")}`;
14041
- lines.push(`DO $$`);
14042
- lines.push(`BEGIN`);
14043
- lines.push(` IF NOT EXISTS (`);
14044
- lines.push(` SELECT 1 FROM pg_constraint WHERE conname = '${constraintName}'`);
14045
- lines.push(` ) THEN`);
14046
- lines.push(` ALTER TABLE ${fullTableName} ADD CONSTRAINT ${constraintName} UNIQUE (${cols});`);
14047
- lines.push(` END IF;`);
14048
- lines.push(`END $$;`);
14049
- }
14050
- }
14051
- lines.push("");
14052
- lines.push(`-- STEP 4: Add foreign keys (if not exist)`);
14053
- for (const { name, meta: meta$2 } of sortedTables) {
14054
- const snakeTable = toSnakeCase(name);
14055
- const fullTableName = schemaPrefix + snakeTable;
14056
- for (const [columnName, field] of Object.entries(meta$2.fields)) if (field.references) {
14057
- const snakeColumn = toSnakeCase(columnName);
14058
- const refTable = schemaPrefix + toSnakeCase(field.references.table);
14059
- const refColumn = toSnakeCase(field.references.column);
14060
- const constraintName = `fk_${snakeTable}_${snakeColumn}`;
14061
- lines.push(`DO $$`);
14062
- lines.push(`BEGIN`);
14063
- lines.push(` IF NOT EXISTS (`);
14064
- lines.push(` SELECT 1 FROM pg_constraint WHERE conname = '${constraintName}'`);
14065
- lines.push(` ) THEN`);
14066
- lines.push(` ALTER TABLE ${fullTableName} ADD CONSTRAINT ${constraintName}`);
14067
- lines.push(` FOREIGN KEY (${snakeColumn}) REFERENCES ${refTable}(${refColumn}) ON DELETE CASCADE;`);
14068
- lines.push(` END IF;`);
14069
- lines.push(`END $$;`);
14070
- }
14071
- }
14072
- lines.push("");
14073
- lines.push(`-- STEP 5: Create indexes (if not exist)`);
14074
- for (const { name, meta: meta$2 } of sortedTables) {
14075
- const snakeTable = toSnakeCase(name);
14076
- const fullTableName = schemaPrefix + snakeTable;
14077
- for (const [columnName, field] of Object.entries(meta$2.fields)) if (field.references) {
14078
- const snakeColumn = toSnakeCase(columnName);
14079
- lines.push(`CREATE INDEX IF NOT EXISTS idx_${snakeTable}_${snakeColumn} ON ${fullTableName}(${snakeColumn});`);
14080
- }
14081
- }
14082
- lines.push("");
14083
- lines.push(`-- STEP 6: Create updated_at triggers`);
14084
- const functionName = `${schemaName ? `"${schemaName}".` : "public."}update_updated_at_column`;
14085
- lines.push(`CREATE OR REPLACE FUNCTION ${functionName}()`);
14086
- lines.push(`RETURNS TRIGGER AS $$`);
14087
- lines.push(`BEGIN`);
14088
- lines.push(` NEW.updated_at = NOW();`);
14089
- lines.push(` RETURN NEW;`);
14090
- lines.push(`END;`);
14091
- lines.push(`$$ language 'plpgsql';`);
14092
- for (const { name } of sortedTables) {
14093
- const snakeTable = toSnakeCase(name);
14094
- const fullTableName = schemaPrefix + snakeTable;
14095
- lines.push(`DROP TRIGGER IF EXISTS update_${snakeTable}_updated_at ON ${fullTableName};`);
14096
- lines.push(`CREATE TRIGGER update_${snakeTable}_updated_at BEFORE UPDATE ON ${fullTableName} FOR EACH ROW EXECUTE FUNCTION ${functionName}();`);
14097
- }
14098
- lines.push("");
14099
- return lines.join("\n");
14100
- }
14101
- /**
14102
- * Execute the schema SQL using a Neon SQL function
14103
- *
14104
- * @param sql - Neon sql function (from `neon()` or passed connection)
14105
- * @param schemaName - Optional PostgreSQL schema name
14106
- */
14107
- async function runSchemaSQL(sql$1, schemaName) {
14108
- const statements = splitSQLStatements(generatePostgresSchemaSQL(schemaName));
14109
- for (const statement of statements) {
14110
- const trimmed = statement.trim();
14111
- if (trimmed && !trimmed.startsWith("--")) await sql$1(trimmed);
14112
- }
14113
- }
14114
- /**
14115
- * Split SQL into individual statements, keeping $$ blocks together
14116
- * Handles both DO $$ blocks and CREATE FUNCTION ... AS $$ blocks
14117
- */
14118
- function splitSQLStatements(sql$1) {
14119
- const statements = [];
14120
- let current = "";
14121
- let inDollarBlock = false;
14122
- const lines = sql$1.split("\n");
14123
- for (const line of lines) {
14124
- const trimmed = line.trim();
14125
- if (!trimmed || trimmed.startsWith("--")) continue;
14126
- if (!inDollarBlock && (trimmed === "DO $$" || trimmed.endsWith("AS $$"))) {
14127
- inDollarBlock = true;
14128
- current += line + "\n";
14129
- continue;
14130
- }
14131
- if (inDollarBlock) {
14132
- current += line + "\n";
14133
- if (trimmed.startsWith("$$") && trimmed.endsWith(";")) {
14134
- statements.push(current.trim());
14135
- current = "";
14136
- inDollarBlock = false;
14137
- }
14138
- continue;
14139
- }
14140
- current += line + "\n";
14141
- if (trimmed.endsWith(";")) {
14142
- statements.push(current.trim());
14143
- current = "";
14144
- }
14145
- }
14146
- if (current.trim()) statements.push(current.trim());
14147
- return statements;
14148
- }
14149
- /**
14150
- * Create a Neon SQL function from various connection types
14151
- *
14152
- * The Neon serverless library returns a tagged template function from neon(),
14153
- * but for conventional string queries we need to use sql.query() instead.
14154
- * This helper wraps the neon instance to provide a simple query function.
14155
- *
14156
- * @param rawConnection - neon() function, connection string, or undefined (uses env vars)
14157
- * @returns SQL function that can be used with runSchemaSQL, or null if unable to create
14158
- */
14159
- async function createNeonSqlFunction(rawConnection) {
14160
- const wrapNeonSql = (sql$1) => {
14161
- return (query) => sql$1.query(query);
14162
- };
14163
- if (typeof rawConnection === "function") {
14164
- if ("query" in rawConnection && typeof rawConnection.query === "function") return wrapNeonSql(rawConnection);
14165
- return rawConnection;
14166
- }
14167
- if (typeof rawConnection === "string" && rawConnection) {
14168
- const { neon: neon$1 } = await import("@neondatabase/serverless");
14169
- return wrapNeonSql(neon$1(rawConnection));
14170
- }
14171
- const connectionString = process.env.NEON_CONNECTION_STRING || process.env.NEON_PG_URL || process.env.DATABASE_URL || process.env.POSTGRES_URL || "";
14172
- if (!connectionString) return null;
14173
- const { neon } = await import("@neondatabase/serverless");
14174
- return wrapNeonSql(neon(connectionString));
14175
- }
14176
-
14177
13942
  //#endregion
14178
13943
  //#region src/db/validation.ts
14179
13944
  /**
@@ -14587,21 +14352,9 @@ function createDatabase(connection) {
14587
14352
  return new kysely.Kysely({ dialect: connection.dialect });
14588
14353
  }
14589
14354
  /**
14590
- * Check if a string looks like a Neon connection string
14591
- */
14592
- function isNeonConnectionString(str) {
14593
- return str.includes(".neon.tech") || str.includes("neon.tech") || str.includes("@neon-");
14594
- }
14595
- /**
14596
- * Auto-detect database type from connection object or string
14355
+ * Auto-detect database type from connection object
14597
14356
  */
14598
14357
  function detectDatabaseType(db) {
14599
- if (typeof db === "string") {
14600
- if (isNeonConnectionString(db)) return "neon";
14601
- if (db.startsWith("postgres://") || db.startsWith("postgresql://")) return "postgres";
14602
- if (db.startsWith("mysql://")) return "mysql";
14603
- return null;
14604
- }
14605
14358
  if (!db || typeof db !== "object" && typeof db !== "function") return null;
14606
14359
  if ("createDriver" in db) {
14607
14360
  if (db instanceof kysely.SqliteDialect) return "sqlite";
@@ -14632,12 +14385,12 @@ async function createDatabaseFromConnection(rawConnection, options) {
14632
14385
  case "sqlite":
14633
14386
  if ("aggregate" in rawConnection && !("createSession" in rawConnection)) dialect = new kysely.SqliteDialect({ database: rawConnection });
14634
14387
  else if ("fileControl" in rawConnection) {
14635
- const { BunSqliteDialect } = await Promise.resolve().then(() => require("./bun-sqlite-dialect-BynSKaRn.cjs"));
14388
+ const { BunSqliteDialect } = await Promise.resolve().then(() => require("./bun-sqlite-dialect-gGK75m-T.cjs"));
14636
14389
  dialect = new BunSqliteDialect({ database: rawConnection });
14637
14390
  } else if ("createSession" in rawConnection && typeof window === "undefined") try {
14638
14391
  const { DatabaseSync } = await import("node:sqlite");
14639
14392
  if (rawConnection instanceof DatabaseSync) {
14640
- const { NodeSqliteDialect } = await Promise.resolve().then(() => require("./node-sqlite-dialect-DQMW9PEY.cjs"));
14393
+ const { NodeSqliteDialect } = await Promise.resolve().then(() => require("./node-sqlite-dialect-DR6hDh7D.cjs"));
14641
14394
  dialect = new NodeSqliteDialect({ database: rawConnection });
14642
14395
  }
14643
14396
  } catch {}
@@ -14653,20 +14406,23 @@ async function createDatabaseFromConnection(rawConnection, options) {
14653
14406
  }
14654
14407
  });
14655
14408
  break;
14656
- case "neon": {
14657
- if (typeof rawConnection === "function") {
14658
- const { createNeonDialect: createNeonDialect$1 } = await Promise.resolve().then(() => require("./neon-dialect-CeFVHjjF.cjs"));
14659
- dialect = createNeonDialect$1(rawConnection);
14660
- break;
14409
+ case "neon":
14410
+ if (schema && schema !== "public") {
14411
+ const { Pool, neonConfig } = await import("@neondatabase/serverless");
14412
+ const { default: ws } = await import("ws");
14413
+ neonConfig.webSocketConstructor = ws;
14414
+ const connectionString = typeof rawConnection === "string" ? rawConnection : process.env.NEON_PG_URL || "";
14415
+ dialect = new kysely.PostgresDialect({
14416
+ pool: new Pool({ connectionString: connectionString.includes("currentSchema") ? connectionString.split("currentSchema=")[1].split("&")[0] === "public" ? connectionString.replace(/currentSchema=[^&]*&?/, "") : connectionString : connectionString }),
14417
+ onCreateConnection: async (connection) => {
14418
+ await connection.executeQuery(kysely.CompiledQuery.raw(`SET search_path TO "${schema}"`));
14419
+ }
14420
+ });
14421
+ } else {
14422
+ const { createNeonDialect } = await Promise.resolve().then(() => require("./neon-dialect-aLfG_zN7.cjs"));
14423
+ dialect = createNeonDialect(rawConnection);
14661
14424
  }
14662
- const connectionString = typeof rawConnection === "string" && rawConnection || process.env.NEON_CONNECTION_STRING || process.env.NEON_PG_URL || process.env.DATABASE_URL || process.env.POSTGRES_URL || "";
14663
- if (!connectionString) throw new Error("Neon connection string is required. Pass it directly as the database option or set one of: NEON_CONNECTION_STRING, NEON_PG_URL, DATABASE_URL, POSTGRES_URL");
14664
- const { neon } = await import("@neondatabase/serverless");
14665
- const sql$1 = neon(connectionString);
14666
- const { createNeonDialect } = await Promise.resolve().then(() => require("./neon-dialect-CeFVHjjF.cjs"));
14667
- dialect = createNeonDialect(sql$1);
14668
14425
  break;
14669
- }
14670
14426
  case "mssql":
14671
14427
  if ("createDriver" in rawConnection) dialect = rawConnection;
14672
14428
  break;
@@ -14735,12 +14491,6 @@ Object.defineProperty(exports, 'createDatabaseFromConnection', {
14735
14491
  return createDatabaseFromConnection;
14736
14492
  }
14737
14493
  });
14738
- Object.defineProperty(exports, 'createNeonSqlFunction', {
14739
- enumerable: true,
14740
- get: function () {
14741
- return createNeonSqlFunction;
14742
- }
14743
- });
14744
14494
  Object.defineProperty(exports, 'datasetRecordsSchema', {
14745
14495
  enumerable: true,
14746
14496
  get: function () {
@@ -14783,12 +14533,6 @@ Object.defineProperty(exports, 'environmentsSchema', {
14783
14533
  return environmentsSchema;
14784
14534
  }
14785
14535
  });
14786
- Object.defineProperty(exports, 'generatePostgresSchemaSQL', {
14787
- enumerable: true,
14788
- get: function () {
14789
- return generatePostgresSchemaSQL;
14790
- }
14791
- });
14792
14536
  Object.defineProperty(exports, 'getAuthClientOptions', {
14793
14537
  enumerable: true,
14794
14538
  get: function () {
@@ -14903,12 +14647,6 @@ Object.defineProperty(exports, 'runAutoMigrations', {
14903
14647
  return runAutoMigrations;
14904
14648
  }
14905
14649
  });
14906
- Object.defineProperty(exports, 'runSchemaSQL', {
14907
- enumerable: true,
14908
- get: function () {
14909
- return runSchemaSQL;
14910
- }
14911
- });
14912
14650
  Object.defineProperty(exports, 'schemas', {
14913
14651
  enumerable: true,
14914
14652
  get: function () {