@llmops/core 1.0.0-beta.1 → 1.0.0-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.cjs CHANGED
@@ -1,5 +1,5 @@
1
- const require_db = require('./db-D3WDjcvd.cjs');
2
- const require_neon_dialect = require('./neon-dialect-DMClTHvw.cjs');
1
+ const require_db = require('./db-DZv0NtMm.cjs');
2
+ const require_neon_dialect = require('./neon-dialect-ByrFa9iy.cjs');
3
3
  let __llmops_gateway = require("@llmops/gateway");
4
4
  __llmops_gateway = require_db.__toESM(__llmops_gateway);
5
5
  let kysely = require("kysely");
@@ -1386,99 +1386,6 @@ const createDatasetsDataLayer = (db) => {
1386
1386
  };
1387
1387
  };
1388
1388
 
1389
- //#endregion
1390
- //#region src/datalayer/guardrailConfigs.ts
1391
- const createGuardrailConfig = require_db.zod_default.object({
1392
- name: require_db.zod_default.string().min(1),
1393
- pluginId: require_db.zod_default.string().min(1),
1394
- functionId: require_db.zod_default.string().min(1),
1395
- hookType: require_db.zod_default.enum(["beforeRequestHook", "afterRequestHook"]),
1396
- parameters: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()).optional().default({}),
1397
- enabled: require_db.zod_default.boolean().optional().default(true),
1398
- priority: require_db.zod_default.number().int().optional().default(0),
1399
- onFail: require_db.zod_default.enum(["block", "log"]).optional().default("block")
1400
- });
1401
- const updateGuardrailConfig = require_db.zod_default.object({
1402
- id: require_db.zod_default.string().uuid(),
1403
- name: require_db.zod_default.string().min(1).optional(),
1404
- hookType: require_db.zod_default.enum(["beforeRequestHook", "afterRequestHook"]).optional(),
1405
- parameters: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()).optional(),
1406
- enabled: require_db.zod_default.boolean().optional(),
1407
- priority: require_db.zod_default.number().int().optional(),
1408
- onFail: require_db.zod_default.enum(["block", "log"]).optional()
1409
- });
1410
- const getGuardrailConfigById = require_db.zod_default.object({ id: require_db.zod_default.string().uuid() });
1411
- const deleteGuardrailConfig = require_db.zod_default.object({ id: require_db.zod_default.string().uuid() });
1412
- const listGuardrailConfigs = require_db.zod_default.object({
1413
- limit: require_db.zod_default.number().int().positive().optional(),
1414
- offset: require_db.zod_default.number().int().nonnegative().optional(),
1415
- hookType: require_db.zod_default.enum(["beforeRequestHook", "afterRequestHook"]).optional(),
1416
- enabled: require_db.zod_default.boolean().optional()
1417
- });
1418
- const createGuardrailConfigsDataLayer = (db) => {
1419
- return {
1420
- createGuardrailConfig: async (params) => {
1421
- const value = await createGuardrailConfig.safeParseAsync(params);
1422
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
1423
- const { name, pluginId, functionId, hookType, parameters, enabled, priority, onFail } = value.data;
1424
- return db.insertInto("guardrail_configs").values({
1425
- id: (0, node_crypto.randomUUID)(),
1426
- name,
1427
- pluginId,
1428
- functionId,
1429
- hookType,
1430
- parameters: JSON.stringify(parameters),
1431
- enabled,
1432
- priority,
1433
- onFail,
1434
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
1435
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
1436
- }).returningAll().executeTakeFirst();
1437
- },
1438
- updateGuardrailConfig: async (params) => {
1439
- const value = await updateGuardrailConfig.safeParseAsync(params);
1440
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
1441
- const { id, name, hookType, parameters, enabled, priority, onFail } = value.data;
1442
- const updateData = { updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
1443
- if (name !== void 0) updateData.name = name;
1444
- if (hookType !== void 0) updateData.hookType = hookType;
1445
- if (parameters !== void 0) updateData.parameters = JSON.stringify(parameters);
1446
- if (enabled !== void 0) updateData.enabled = enabled;
1447
- if (priority !== void 0) updateData.priority = priority;
1448
- if (onFail !== void 0) updateData.onFail = onFail;
1449
- return db.updateTable("guardrail_configs").set(updateData).where("id", "=", id).returningAll().executeTakeFirst();
1450
- },
1451
- getGuardrailConfigById: async (params) => {
1452
- const value = await getGuardrailConfigById.safeParseAsync(params);
1453
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
1454
- const { id } = value.data;
1455
- return db.selectFrom("guardrail_configs").selectAll().where("id", "=", id).executeTakeFirst();
1456
- },
1457
- deleteGuardrailConfig: async (params) => {
1458
- const value = await deleteGuardrailConfig.safeParseAsync(params);
1459
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
1460
- const { id } = value.data;
1461
- return db.deleteFrom("guardrail_configs").where("id", "=", id).returningAll().executeTakeFirst();
1462
- },
1463
- listGuardrailConfigs: async (params) => {
1464
- const value = await listGuardrailConfigs.safeParseAsync(params || {});
1465
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
1466
- const { limit = 100, offset = 0, hookType, enabled } = value.data;
1467
- let query = db.selectFrom("guardrail_configs").selectAll().orderBy("priority", "desc").orderBy("createdAt", "desc").limit(limit).offset(offset);
1468
- if (hookType !== void 0) query = query.where("hookType", "=", hookType);
1469
- if (enabled !== void 0) query = query.where("enabled", "=", enabled);
1470
- return query.execute();
1471
- },
1472
- countGuardrailConfigs: async () => {
1473
- const result = await db.selectFrom("guardrail_configs").select(db.fn.countAll().as("count")).executeTakeFirst();
1474
- return Number(result?.count ?? 0);
1475
- },
1476
- getEnabledGuardrailsByHookType: async (hookType) => {
1477
- return db.selectFrom("guardrail_configs").selectAll().where("hookType", "=", hookType).where("enabled", "=", true).orderBy("priority", "desc").execute();
1478
- }
1479
- };
1480
- };
1481
-
1482
1389
  //#endregion
1483
1390
  //#region src/datalayer/llmRequests.ts
1484
1391
  /**
@@ -2187,245 +2094,6 @@ const createPlaygroundRunsDataLayer = (db) => {
2187
2094
  };
2188
2095
  };
2189
2096
 
2190
- //#endregion
2191
- //#region src/datalayer/providerConfigs.ts
2192
- /**
2193
- * Generate a unique slug for a provider config.
2194
- * If the base slug already exists, appends -01, -02, etc.
2195
- */
2196
- async function generateUniqueSlug(db, baseSlug) {
2197
- const existing = await db.selectFrom("provider_configs").select("slug").where("slug", "like", `${baseSlug}%`).execute();
2198
- if (existing.length === 0) return baseSlug;
2199
- const existingSlugs = new Set(existing.map((e) => e.slug));
2200
- if (!existingSlugs.has(baseSlug)) return baseSlug;
2201
- let counter = 1;
2202
- while (counter < 100) {
2203
- const candidateSlug = `${baseSlug}-${counter.toString().padStart(2, "0")}`;
2204
- if (!existingSlugs.has(candidateSlug)) return candidateSlug;
2205
- counter++;
2206
- }
2207
- return `${baseSlug}-${(0, node_crypto.randomUUID)().slice(0, 8)}`;
2208
- }
2209
- const createProviderConfig = require_db.zod_default.object({
2210
- providerId: require_db.zod_default.string().min(1),
2211
- slug: require_db.zod_default.string().nullable().optional(),
2212
- name: require_db.zod_default.string().nullable().optional(),
2213
- config: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()),
2214
- enabled: require_db.zod_default.boolean().optional().default(true)
2215
- });
2216
- const updateProviderConfig = require_db.zod_default.object({
2217
- id: require_db.zod_default.uuidv4(),
2218
- slug: require_db.zod_default.string().nullable().optional(),
2219
- name: require_db.zod_default.string().nullable().optional(),
2220
- config: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()).optional(),
2221
- enabled: require_db.zod_default.boolean().optional()
2222
- });
2223
- const getProviderConfigById = require_db.zod_default.object({ id: require_db.zod_default.uuidv4() });
2224
- const getProviderConfigByProviderId = require_db.zod_default.object({ providerId: require_db.zod_default.string().min(1) });
2225
- const getProviderConfigBySlug = require_db.zod_default.object({ slug: require_db.zod_default.string().min(1) });
2226
- const deleteProviderConfig = require_db.zod_default.object({ id: require_db.zod_default.uuidv4() });
2227
- const listProviderConfigs = require_db.zod_default.object({
2228
- limit: require_db.zod_default.number().int().positive().optional(),
2229
- offset: require_db.zod_default.number().int().nonnegative().optional()
2230
- });
2231
- const createProviderConfigsDataLayer = (db) => {
2232
- return {
2233
- createProviderConfig: async (params) => {
2234
- const value = await createProviderConfig.safeParseAsync(params);
2235
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2236
- const { providerId, slug, name, config, enabled } = value.data;
2237
- const finalSlug = slug ?? await generateUniqueSlug(db, providerId);
2238
- return db.insertInto("provider_configs").values({
2239
- id: (0, node_crypto.randomUUID)(),
2240
- providerId,
2241
- slug: finalSlug,
2242
- name: name ?? null,
2243
- config: JSON.stringify(config),
2244
- enabled,
2245
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2246
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2247
- }).returningAll().executeTakeFirst();
2248
- },
2249
- updateProviderConfig: async (params) => {
2250
- const value = await updateProviderConfig.safeParseAsync(params);
2251
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2252
- const { id, slug, name, config, enabled } = value.data;
2253
- const updateData = { updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
2254
- if (slug !== void 0) updateData.slug = slug;
2255
- if (name !== void 0) updateData.name = name;
2256
- if (config !== void 0) updateData.config = JSON.stringify(config);
2257
- if (enabled !== void 0) updateData.enabled = enabled;
2258
- return db.updateTable("provider_configs").set(updateData).where("id", "=", id).returningAll().executeTakeFirst();
2259
- },
2260
- getProviderConfigById: async (params) => {
2261
- const value = await getProviderConfigById.safeParseAsync(params);
2262
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2263
- const { id } = value.data;
2264
- return db.selectFrom("provider_configs").selectAll().where("id", "=", id).executeTakeFirst();
2265
- },
2266
- getProviderConfigByProviderId: async (params) => {
2267
- const value = await getProviderConfigByProviderId.safeParseAsync(params);
2268
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2269
- const { providerId } = value.data;
2270
- return db.selectFrom("provider_configs").selectAll().where("providerId", "=", providerId).executeTakeFirst();
2271
- },
2272
- getProviderConfigBySlug: async (params) => {
2273
- const value = await getProviderConfigBySlug.safeParseAsync(params);
2274
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2275
- const { slug } = value.data;
2276
- return db.selectFrom("provider_configs").selectAll().where("slug", "=", slug).executeTakeFirst();
2277
- },
2278
- deleteProviderConfig: async (params) => {
2279
- const value = await deleteProviderConfig.safeParseAsync(params);
2280
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2281
- const { id } = value.data;
2282
- return db.deleteFrom("provider_configs").where("id", "=", id).returningAll().executeTakeFirst();
2283
- },
2284
- listProviderConfigs: async (params) => {
2285
- const value = await listProviderConfigs.safeParseAsync(params || {});
2286
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2287
- const { limit = 100, offset = 0 } = value.data;
2288
- return db.selectFrom("provider_configs").selectAll().orderBy("createdAt", "desc").limit(limit).offset(offset).execute();
2289
- },
2290
- countProviderConfigs: async () => {
2291
- const result = await db.selectFrom("provider_configs").select(db.fn.countAll().as("count")).executeTakeFirst();
2292
- return Number(result?.count ?? 0);
2293
- },
2294
- upsertProviderConfig: async (params) => {
2295
- const value = await createProviderConfig.safeParseAsync(params);
2296
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2297
- const { providerId, slug, name, config, enabled } = value.data;
2298
- const existing = await db.selectFrom("provider_configs").selectAll().where("providerId", "=", providerId).executeTakeFirst();
2299
- if (existing) {
2300
- const finalSlug$1 = slug ?? existing.slug ?? await generateUniqueSlug(db, providerId);
2301
- return db.updateTable("provider_configs").set({
2302
- slug: finalSlug$1,
2303
- name: name ?? existing.name,
2304
- config: JSON.stringify(config),
2305
- enabled,
2306
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2307
- }).where("id", "=", existing.id).returningAll().executeTakeFirst();
2308
- }
2309
- const finalSlug = slug ?? await generateUniqueSlug(db, providerId);
2310
- return db.insertInto("provider_configs").values({
2311
- id: (0, node_crypto.randomUUID)(),
2312
- providerId,
2313
- slug: finalSlug,
2314
- name: name ?? null,
2315
- config: JSON.stringify(config),
2316
- enabled,
2317
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2318
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2319
- }).returningAll().executeTakeFirst();
2320
- }
2321
- };
2322
- };
2323
-
2324
- //#endregion
2325
- //#region src/datalayer/providerGuardrailOverrides.ts
2326
- const createProviderGuardrailOverride = require_db.zod_default.object({
2327
- providerConfigId: require_db.zod_default.string().uuid(),
2328
- guardrailConfigId: require_db.zod_default.string().uuid(),
2329
- enabled: require_db.zod_default.boolean().optional().default(true),
2330
- parameters: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()).nullable().optional()
2331
- });
2332
- const updateProviderGuardrailOverride = require_db.zod_default.object({
2333
- id: require_db.zod_default.string().uuid(),
2334
- enabled: require_db.zod_default.boolean().optional(),
2335
- parameters: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()).nullable().optional()
2336
- });
2337
- const getOverrideById = require_db.zod_default.object({ id: require_db.zod_default.string().uuid() });
2338
- const deleteOverride = require_db.zod_default.object({ id: require_db.zod_default.string().uuid() });
2339
- const getOverridesByProviderConfigId = require_db.zod_default.object({ providerConfigId: require_db.zod_default.string().uuid() });
2340
- const getOverridesByGuardrailConfigId = require_db.zod_default.object({ guardrailConfigId: require_db.zod_default.string().uuid() });
2341
- const getOverrideByProviderAndGuardrail = require_db.zod_default.object({
2342
- providerConfigId: require_db.zod_default.string().uuid(),
2343
- guardrailConfigId: require_db.zod_default.string().uuid()
2344
- });
2345
- const createProviderGuardrailOverridesDataLayer = (db) => {
2346
- return {
2347
- createProviderGuardrailOverride: async (params) => {
2348
- const value = await createProviderGuardrailOverride.safeParseAsync(params);
2349
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2350
- const { providerConfigId, guardrailConfigId, enabled, parameters } = value.data;
2351
- return db.insertInto("provider_guardrail_overrides").values({
2352
- id: (0, node_crypto.randomUUID)(),
2353
- providerConfigId,
2354
- guardrailConfigId,
2355
- enabled,
2356
- parameters: parameters ? JSON.stringify(parameters) : null,
2357
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2358
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2359
- }).returningAll().executeTakeFirst();
2360
- },
2361
- updateProviderGuardrailOverride: async (params) => {
2362
- const value = await updateProviderGuardrailOverride.safeParseAsync(params);
2363
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2364
- const { id, enabled, parameters } = value.data;
2365
- const updateData = { updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
2366
- if (enabled !== void 0) updateData.enabled = enabled;
2367
- if (parameters !== void 0) updateData.parameters = parameters ? JSON.stringify(parameters) : null;
2368
- return db.updateTable("provider_guardrail_overrides").set(updateData).where("id", "=", id).returningAll().executeTakeFirst();
2369
- },
2370
- getOverrideById: async (params) => {
2371
- const value = await getOverrideById.safeParseAsync(params);
2372
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2373
- const { id } = value.data;
2374
- return db.selectFrom("provider_guardrail_overrides").selectAll().where("id", "=", id).executeTakeFirst();
2375
- },
2376
- deleteProviderGuardrailOverride: async (params) => {
2377
- const value = await deleteOverride.safeParseAsync(params);
2378
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2379
- const { id } = value.data;
2380
- return db.deleteFrom("provider_guardrail_overrides").where("id", "=", id).returningAll().executeTakeFirst();
2381
- },
2382
- getOverridesByProviderConfigId: async (params) => {
2383
- const value = await getOverridesByProviderConfigId.safeParseAsync(params);
2384
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2385
- const { providerConfigId } = value.data;
2386
- return db.selectFrom("provider_guardrail_overrides").selectAll().where("providerConfigId", "=", providerConfigId).execute();
2387
- },
2388
- getOverridesByGuardrailConfigId: async (params) => {
2389
- const value = await getOverridesByGuardrailConfigId.safeParseAsync(params);
2390
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2391
- const { guardrailConfigId } = value.data;
2392
- return db.selectFrom("provider_guardrail_overrides").selectAll().where("guardrailConfigId", "=", guardrailConfigId).execute();
2393
- },
2394
- getOverrideByProviderAndGuardrail: async (params) => {
2395
- const value = await getOverrideByProviderAndGuardrail.safeParseAsync(params);
2396
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2397
- const { providerConfigId, guardrailConfigId } = value.data;
2398
- return db.selectFrom("provider_guardrail_overrides").selectAll().where("providerConfigId", "=", providerConfigId).where("guardrailConfigId", "=", guardrailConfigId).executeTakeFirst();
2399
- },
2400
- upsertProviderGuardrailOverride: async (params) => {
2401
- const value = await createProviderGuardrailOverride.safeParseAsync(params);
2402
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2403
- const { providerConfigId, guardrailConfigId, enabled, parameters } = value.data;
2404
- const existing = await db.selectFrom("provider_guardrail_overrides").selectAll().where("providerConfigId", "=", providerConfigId).where("guardrailConfigId", "=", guardrailConfigId).executeTakeFirst();
2405
- if (existing) return db.updateTable("provider_guardrail_overrides").set({
2406
- enabled,
2407
- parameters: parameters ? JSON.stringify(parameters) : null,
2408
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2409
- }).where("id", "=", existing.id).returningAll().executeTakeFirst();
2410
- return db.insertInto("provider_guardrail_overrides").values({
2411
- id: (0, node_crypto.randomUUID)(),
2412
- providerConfigId,
2413
- guardrailConfigId,
2414
- enabled,
2415
- parameters: parameters ? JSON.stringify(parameters) : null,
2416
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
2417
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
2418
- }).returningAll().executeTakeFirst();
2419
- },
2420
- deleteOverridesByGuardrailConfigId: async (params) => {
2421
- const value = await getOverridesByGuardrailConfigId.safeParseAsync(params);
2422
- if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
2423
- const { guardrailConfigId } = value.data;
2424
- return db.deleteFrom("provider_guardrail_overrides").where("guardrailConfigId", "=", guardrailConfigId).execute();
2425
- }
2426
- };
2427
- };
2428
-
2429
2097
  //#endregion
2430
2098
  //#region src/datalayer/traces.ts
2431
2099
  const col = (name) => kysely.sql.ref(name);
@@ -2798,13 +2466,10 @@ const createWorkspaceSettingsDataLayer = (db) => {
2798
2466
  function createDataLayer(db) {
2799
2467
  return {
2800
2468
  ...createDatasetsDataLayer(db),
2801
- ...createGuardrailConfigsDataLayer(db),
2802
2469
  ...createLLMRequestsDataLayer(db),
2803
2470
  ...createPlaygroundDataLayer(db),
2804
2471
  ...createPlaygroundResultsDataLayer(db),
2805
2472
  ...createPlaygroundRunsDataLayer(db),
2806
- ...createProviderConfigsDataLayer(db),
2807
- ...createProviderGuardrailOverridesDataLayer(db),
2808
2473
  ...createTracesDataLayer(db),
2809
2474
  ...createWorkspaceSettingsDataLayer(db)
2810
2475
  };
@@ -3121,130 +2786,6 @@ function createPgStore(connectionString, options) {
3121
2786
  };
3122
2787
  }
3123
2788
 
3124
- //#endregion
3125
- //#region src/manifest/builder.ts
3126
- /**
3127
- * Builds the gateway manifest from database
3128
- */
3129
- var ManifestBuilder = class {
3130
- constructor(db) {
3131
- this.db = db;
3132
- }
3133
- /**
3134
- * Build the manifest from database
3135
- */
3136
- async build() {
3137
- const [guardrailConfigs, providerGuardrailOverridesData] = await Promise.all([this.db.selectFrom("guardrail_configs").where("enabled", "=", true).selectAll().execute(), this.db.selectFrom("provider_guardrail_overrides").selectAll().execute()]);
3138
- const beforeRequestGuardrails = [];
3139
- const afterRequestGuardrails = [];
3140
- require_db.logger.info(`[ManifestBuilder] Found ${guardrailConfigs.length} enabled guardrail configs`);
3141
- for (const guardrail of guardrailConfigs) {
3142
- const parameters = typeof guardrail.parameters === "string" ? JSON.parse(guardrail.parameters) : guardrail.parameters;
3143
- const manifestGuardrail = {
3144
- id: guardrail.id,
3145
- name: guardrail.name,
3146
- pluginId: guardrail.pluginId,
3147
- functionId: guardrail.functionId,
3148
- hookType: guardrail.hookType,
3149
- parameters: parameters ?? {},
3150
- priority: guardrail.priority,
3151
- onFail: guardrail.onFail
3152
- };
3153
- if (guardrail.hookType === "beforeRequestHook") beforeRequestGuardrails.push(manifestGuardrail);
3154
- else afterRequestGuardrails.push(manifestGuardrail);
3155
- }
3156
- beforeRequestGuardrails.sort((a, b) => b.priority - a.priority);
3157
- afterRequestGuardrails.sort((a, b) => b.priority - a.priority);
3158
- const providerGuardrailOverrides = {};
3159
- for (const override of providerGuardrailOverridesData) {
3160
- const parameters = typeof override.parameters === "string" ? JSON.parse(override.parameters) : override.parameters;
3161
- const manifestOverride = {
3162
- id: override.id,
3163
- providerConfigId: override.providerConfigId,
3164
- guardrailConfigId: override.guardrailConfigId,
3165
- enabled: override.enabled,
3166
- parameters: parameters ?? null
3167
- };
3168
- if (!providerGuardrailOverrides[override.providerConfigId]) providerGuardrailOverrides[override.providerConfigId] = [];
3169
- providerGuardrailOverrides[override.providerConfigId].push(manifestOverride);
3170
- }
3171
- return {
3172
- version: Date.now(),
3173
- builtAt: (/* @__PURE__ */ new Date()).toISOString(),
3174
- guardrails: {
3175
- beforeRequestHook: beforeRequestGuardrails,
3176
- afterRequestHook: afterRequestGuardrails
3177
- },
3178
- providerGuardrailOverrides
3179
- };
3180
- }
3181
- };
3182
-
3183
- //#endregion
3184
- //#region src/manifest/service.ts
3185
- const MANIFEST_CACHE_KEY = "manifest";
3186
- const MANIFEST_NAMESPACE = "gateway";
3187
- const DEFAULT_TTL_MS = 300 * 1e3;
3188
- const log = require_db.logger.child({ module: "ManifestService" });
3189
- var ManifestService = class {
3190
- builder;
3191
- constructor(cache, db, ttlMs = DEFAULT_TTL_MS) {
3192
- this.cache = cache;
3193
- this.ttlMs = ttlMs;
3194
- this.builder = new ManifestBuilder(db);
3195
- log.debug({ ttlMs }, "ManifestService initialized");
3196
- }
3197
- /**
3198
- * Get the current manifest, building if necessary
3199
- */
3200
- async getManifest() {
3201
- log.debug("Getting manifest from cache or building");
3202
- const manifest = await this.cache.getOrSet(MANIFEST_CACHE_KEY, async () => {
3203
- log.info("Building new manifest");
3204
- const built = await this.builder.build();
3205
- log.info({ version: built.version }, "Manifest built successfully");
3206
- return built;
3207
- }, {
3208
- namespace: MANIFEST_NAMESPACE,
3209
- ttl: this.ttlMs
3210
- });
3211
- log.debug({ version: manifest.version }, "Manifest retrieved");
3212
- return manifest;
3213
- }
3214
- /**
3215
- * Force invalidate the manifest (called on mutations)
3216
- */
3217
- async invalidate() {
3218
- log.info("Invalidating manifest cache");
3219
- await this.cache.delete(MANIFEST_CACHE_KEY, MANIFEST_NAMESPACE);
3220
- }
3221
- /**
3222
- * Invalidate and immediately rebuild (atomic refresh)
3223
- */
3224
- async refresh() {
3225
- log.info("Refreshing manifest (invalidate + rebuild)");
3226
- await this.invalidate();
3227
- return this.getManifest();
3228
- }
3229
- /**
3230
- * Get manifest version without fetching full manifest
3231
- * Useful for checking if manifest is stale
3232
- */
3233
- async getVersion() {
3234
- const version = (await this.cache.get(MANIFEST_CACHE_KEY, MANIFEST_NAMESPACE))?.version ?? null;
3235
- log.debug({ version }, "Got manifest version");
3236
- return version;
3237
- }
3238
- /**
3239
- * Check if manifest exists in cache
3240
- */
3241
- async hasManifest() {
3242
- const exists = await this.cache.has(MANIFEST_CACHE_KEY, MANIFEST_NAMESPACE);
3243
- log.debug({ exists }, "Checked manifest existence");
3244
- return exists;
3245
- }
3246
- };
3247
-
3248
2789
  //#endregion
3249
2790
  exports.COST_SUMMARY_GROUP_BY = COST_SUMMARY_GROUP_BY;
3250
2791
  exports.CacheService = CacheService;
@@ -3260,8 +2801,6 @@ exports.LLMOPS_TRACE_NAME_HEADER = LLMOPS_TRACE_NAME_HEADER;
3260
2801
  exports.LLMOPS_USER_ID_HEADER = LLMOPS_USER_ID_HEADER;
3261
2802
  exports.LLMOpsPricingProvider = LLMOpsPricingProvider;
3262
2803
  exports.MS = MS;
3263
- exports.ManifestBuilder = ManifestBuilder;
3264
- exports.ManifestService = ManifestService;
3265
2804
  exports.MemoryCacheBackend = MemoryCacheBackend;
3266
2805
  exports.SCHEMA_METADATA = require_db.SCHEMA_METADATA;
3267
2806
  exports.SupportedProviders = SupportedProviders;
@@ -3274,15 +2813,12 @@ exports.createDataLayer = createDataLayer;
3274
2813
  exports.createDatabase = require_db.createDatabase;
3275
2814
  exports.createDatabaseFromConnection = require_db.createDatabaseFromConnection;
3276
2815
  exports.createDatasetsDataLayer = createDatasetsDataLayer;
3277
- exports.createGuardrailConfigsDataLayer = createGuardrailConfigsDataLayer;
3278
2816
  exports.createLLMRequestsDataLayer = createLLMRequestsDataLayer;
3279
2817
  exports.createNeonDialect = require_neon_dialect.createNeonDialect;
3280
2818
  exports.createPgStore = createPgStore;
3281
2819
  exports.createPlaygroundDataLayer = createPlaygroundDataLayer;
3282
2820
  exports.createPlaygroundResultsDataLayer = createPlaygroundResultsDataLayer;
3283
2821
  exports.createPlaygroundRunsDataLayer = createPlaygroundRunsDataLayer;
3284
- exports.createProviderConfigsDataLayer = createProviderConfigsDataLayer;
3285
- exports.createProviderGuardrailOverridesDataLayer = createProviderGuardrailOverridesDataLayer;
3286
2822
  exports.createTracesDataLayer = createTracesDataLayer;
3287
2823
  exports.createWorkspaceSettingsDataLayer = createWorkspaceSettingsDataLayer;
3288
2824
  exports.datasetRecordsSchema = require_db.datasetRecordsSchema;