@llmops/core 0.1.8 → 0.1.9-beta.2

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/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as object, C as zod_default, D as boolean, E as array, M as string, N as union, O as literal, P as unknown, S as workspaceSettingsSchema, T as any, _ as llmRequestsSchema, a as matchType, b as variantVersionsSchema, c as parsePartialTableData, d as validateTableData, f as SCHEMA_METADATA, g as environmentsSchema, h as environmentSecretsSchema, i as getMigrations, j as record, k as number, l as parseTableData, m as configsSchema, n as createDatabaseFromConnection, o as runAutoMigrations, p as configVariantsSchema, r as detectDatabaseType, s as logger, t as createDatabase, u as validatePartialTableData, v as schemas, w as _enum, x as variantsSchema, y as targetingRulesSchema } from "./db-D78x_Elf.mjs";
1
+ import { A as number, C as workspaceSettingsSchema, D as array, E as any, F as unknown, M as record, N as string, O as boolean, P as union, S as variantsSchema, T as _enum, _ as environmentsSchema, a as matchType, b as targetingRulesSchema, c as logger, d as validatePartialTableData, f as validateTableData, g as environmentSecretsSchema, h as configsSchema, i as getMigrations, j as object, k as literal, l as parsePartialTableData, m as configVariantsSchema, n as createDatabaseFromConnection, o as runAutoMigrations, p as SCHEMA_METADATA, r as detectDatabaseType, s as getAuthClientOptions, t as createDatabase, u as parseTableData, v as llmRequestsSchema, w as zod_default, x as variantVersionsSchema, y as schemas } from "./db-WrnSOT3M.mjs";
2
2
  import gateway from "@llmops/gateway";
3
3
  import { sql } from "kysely";
4
4
  import * as fs from "node:fs/promises";
@@ -441,21 +441,10 @@ const providerEntries = Object.values(SupportedProviders).map((provider) => [pro
441
441
  * All providers are optional, but at least one must be configured
442
442
  */
443
443
  const providersSchema = object(Object.fromEntries(providerEntries)).refine((providers) => Object.values(providers).some((v) => v !== void 0 && v !== null), "At least one provider must be configured");
444
- /**
445
- * Auth configuration schema
446
- *
447
- * Uses a flexible schema with passthrough to allow different auth providers.
448
- * - Open source: basicAuth() from @llmops/sdk (type: 'basic')
449
- *
450
- * The actual auth handling is done by the auth middleware based on the type.
451
- */
452
- const authSchema = object({ type: string().min(1, "Auth type is required") }).passthrough();
453
444
  const llmopsConfigSchema = object({
454
445
  database: any(),
455
- auth: authSchema,
456
446
  basePath: string().min(1, "Base path is required and cannot be empty").refine((path$1) => path$1.startsWith("/"), "Base path must start with a forward slash"),
457
447
  providers: providersSchema,
458
- autoMigrate: union([boolean(), literal("development")]).optional().default(false),
459
448
  schema: string().optional().default("llmops")
460
449
  });
461
450
  function validateLLMOpsConfig(config) {
@@ -2182,7 +2171,11 @@ const createVariantVersionsDataLayer = (db) => {
2182
2171
 
2183
2172
  //#endregion
2184
2173
  //#region src/datalayer/workspaceSettings.ts
2185
- const updateWorkspaceSettings = zod_default.object({ name: zod_default.string().nullable().optional() });
2174
+ const updateWorkspaceSettings = zod_default.object({
2175
+ name: zod_default.string().nullable().optional(),
2176
+ setupComplete: zod_default.boolean().optional(),
2177
+ superAdminId: zod_default.string().nullable().optional()
2178
+ });
2186
2179
  const createWorkspaceSettingsDataLayer = (db) => {
2187
2180
  return {
2188
2181
  getWorkspaceSettings: async () => {
@@ -2190,6 +2183,7 @@ const createWorkspaceSettingsDataLayer = (db) => {
2190
2183
  if (!settings) settings = await db.insertInto("workspace_settings").values({
2191
2184
  id: randomUUID(),
2192
2185
  name: null,
2186
+ setupComplete: false,
2193
2187
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2194
2188
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2195
2189
  }).returningAll().executeTakeFirst();
@@ -2202,11 +2196,53 @@ const createWorkspaceSettingsDataLayer = (db) => {
2202
2196
  if (!settings) return db.insertInto("workspace_settings").values({
2203
2197
  id: randomUUID(),
2204
2198
  name: value.data.name ?? null,
2199
+ setupComplete: value.data.setupComplete ?? false,
2200
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2201
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2202
+ }).returningAll().executeTakeFirst();
2203
+ const updateData = { updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
2204
+ if (value.data.name !== void 0) updateData.name = value.data.name ?? null;
2205
+ if (value.data.setupComplete !== void 0) updateData.setupComplete = value.data.setupComplete;
2206
+ if (value.data.superAdminId !== void 0) updateData.superAdminId = value.data.superAdminId ?? null;
2207
+ return db.updateTable("workspace_settings").set(updateData).where("id", "=", settings.id).returningAll().executeTakeFirst();
2208
+ },
2209
+ getSuperAdminId: async () => {
2210
+ return (await db.selectFrom("workspace_settings").select("superAdminId").executeTakeFirst())?.superAdminId ?? null;
2211
+ },
2212
+ setSuperAdminId: async (userId) => {
2213
+ let settings = await db.selectFrom("workspace_settings").selectAll().executeTakeFirst();
2214
+ if (settings?.superAdminId) return false;
2215
+ if (!settings) {
2216
+ await db.insertInto("workspace_settings").values({
2217
+ id: randomUUID(),
2218
+ name: null,
2219
+ setupComplete: false,
2220
+ superAdminId: userId,
2221
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2222
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2223
+ }).execute();
2224
+ return true;
2225
+ }
2226
+ await db.updateTable("workspace_settings").set({
2227
+ superAdminId: userId,
2228
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2229
+ }).where("id", "=", settings.id).execute();
2230
+ return true;
2231
+ },
2232
+ isSetupComplete: async () => {
2233
+ return (await db.selectFrom("workspace_settings").select("setupComplete").executeTakeFirst())?.setupComplete ?? false;
2234
+ },
2235
+ markSetupComplete: async () => {
2236
+ let settings = await db.selectFrom("workspace_settings").selectAll().executeTakeFirst();
2237
+ if (!settings) return db.insertInto("workspace_settings").values({
2238
+ id: randomUUID(),
2239
+ name: null,
2240
+ setupComplete: true,
2205
2241
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2206
2242
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2207
2243
  }).returningAll().executeTakeFirst();
2208
2244
  return db.updateTable("workspace_settings").set({
2209
- name: value.data.name ?? null,
2245
+ setupComplete: true,
2210
2246
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2211
2247
  }).where("id", "=", settings.id).returningAll().executeTakeFirst();
2212
2248
  }
@@ -2433,4 +2469,4 @@ function getDefaultPricingProvider() {
2433
2469
  }
2434
2470
 
2435
2471
  //#endregion
2436
- export { CacheService, FileCacheBackend, MS, MemoryCacheBackend, ModelsDevPricingProvider, SCHEMA_METADATA, SupportedProviders, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createDataLayer, createDatabase, createDatabaseFromConnection, createLLMRequestsDataLayer, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, formatCost, gateway, generateId, getDefaultPricingProvider, getMigrations, llmRequestsSchema, llmopsConfigSchema, logger, matchType, microDollarsToDollars, parsePartialTableData, parseTableData, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
2472
+ export { CacheService, FileCacheBackend, MS, MemoryCacheBackend, ModelsDevPricingProvider, SCHEMA_METADATA, SupportedProviders, calculateCost, chatCompletionCreateParamsBaseSchema, configVariantsSchema, configsSchema, createDataLayer, createDatabase, createDatabaseFromConnection, createLLMRequestsDataLayer, detectDatabaseType, dollarsToMicroDollars, environmentSecretsSchema, environmentsSchema, formatCost, gateway, generateId, getAuthClientOptions, getDefaultPricingProvider, getMigrations, llmRequestsSchema, llmopsConfigSchema, logger, matchType, microDollarsToDollars, parsePartialTableData, parseTableData, runAutoMigrations, schemas, targetingRulesSchema, validateLLMOpsConfig, validatePartialTableData, validateTableData, variantJsonDataSchema, variantVersionsSchema, variantsSchema, workspaceSettingsSchema };
@@ -1,4 +1,4 @@
1
- const require_db = require('./db-C_u1BuaR.cjs');
1
+ const require_db = require('./db-CpVh76Wq.cjs');
2
2
  let kysely = require("kysely");
3
3
 
4
4
  //#region src/db/node-sqlite-dialect.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llmops/core",
3
- "version": "0.1.8",
3
+ "version": "0.1.9-beta.2",
4
4
  "description": "Core LLMOps functionality and utilities",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -48,10 +48,11 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@better-auth/utils": "^0.3.0",
51
+ "better-auth": "^1.4.10",
51
52
  "hono": "^4.10.7",
52
53
  "kysely": "^0.28.8",
53
54
  "pino": "^10.1.0",
54
- "@llmops/gateway": "^0.1.8"
55
+ "@llmops/gateway": "^0.1.9-beta.2"
55
56
  },
56
57
  "scripts": {
57
58
  "build": "tsdown",