@llmops/core 0.1.9 → 0.2.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/{bun-sqlite-dialect-BsBCR8hT.cjs → bun-sqlite-dialect-BxlwYxpt.cjs} +1 -1
- package/dist/db/index.cjs +2 -1
- package/dist/db/index.d.cts +2 -2
- package/dist/db/index.d.mts +2 -2
- package/dist/db/index.mjs +2 -2
- package/dist/{db-BokBhuLo.mjs → db-BCHs_i6m.mjs} +1565 -1003
- package/dist/{db-1Ar4ItM_.cjs → db-BdclKAD3.cjs} +1573 -1005
- package/dist/{index-BTE44_Jz.d.mts → index-5GfBoyiq.d.mts} +136 -33
- package/dist/{index-Dn5KseQM.d.cts → index-CV79zoS6.d.cts} +105 -2
- package/dist/index.cjs +97 -25
- package/dist/index.d.cts +628 -892
- package/dist/index.d.mts +628 -892
- package/dist/index.mjs +96 -26
- package/dist/{node-sqlite-dialect-BnUFpWfa.cjs → node-sqlite-dialect-DjW-cdIu.cjs} +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_db = require('./db-
|
|
1
|
+
const require_db = require('./db-BdclKAD3.cjs');
|
|
2
2
|
let __llmops_gateway = require("@llmops/gateway");
|
|
3
3
|
__llmops_gateway = require_db.__toESM(__llmops_gateway);
|
|
4
4
|
let kysely = require("kysely");
|
|
@@ -421,33 +421,9 @@ const variantJsonDataSchema = require_db.object({
|
|
|
421
421
|
|
|
422
422
|
//#endregion
|
|
423
423
|
//#region src/schemas/config.ts
|
|
424
|
-
/**
|
|
425
|
-
* Provider configuration schema
|
|
426
|
-
*
|
|
427
|
-
* This is a flexible schema that allows any provider configuration.
|
|
428
|
-
* The actual provider validation happens at the gateway level.
|
|
429
|
-
* Uses passthrough() to allow provider-specific options.
|
|
430
|
-
*/
|
|
431
|
-
const providerConfigSchema = require_db.object({
|
|
432
|
-
apiKey: require_db.string().min(1, "API key is required"),
|
|
433
|
-
customHost: require_db.string().optional(),
|
|
434
|
-
requestTimeout: require_db.number().optional(),
|
|
435
|
-
forwardHeaders: require_db.array(require_db.string()).optional()
|
|
436
|
-
}).passthrough();
|
|
437
|
-
/**
|
|
438
|
-
* Build a partial object schema from SupportedProviders enum
|
|
439
|
-
* Each provider key is optional, allowing users to configure only the providers they need
|
|
440
|
-
*/
|
|
441
|
-
const providerEntries = Object.values(SupportedProviders).map((provider) => [provider, providerConfigSchema.optional()]);
|
|
442
|
-
/**
|
|
443
|
-
* Providers configuration - maps supported provider names to their configs
|
|
444
|
-
* All providers are optional, but at least one must be configured
|
|
445
|
-
*/
|
|
446
|
-
const providersSchema = require_db.object(Object.fromEntries(providerEntries)).refine((providers) => Object.values(providers).some((v) => v !== void 0 && v !== null), "At least one provider must be configured");
|
|
447
424
|
const llmopsConfigSchema = require_db.object({
|
|
448
425
|
database: require_db.any(),
|
|
449
426
|
basePath: require_db.string().min(1, "Base path is required and cannot be empty").refine((path) => path.startsWith("/"), "Base path must start with a forward slash"),
|
|
450
|
-
providers: providersSchema,
|
|
451
427
|
schema: require_db.string().optional().default("llmops")
|
|
452
428
|
});
|
|
453
429
|
function validateLLMOpsConfig(config) {
|
|
@@ -1787,6 +1763,99 @@ const createLLMRequestsDataLayer = (db) => {
|
|
|
1787
1763
|
};
|
|
1788
1764
|
};
|
|
1789
1765
|
|
|
1766
|
+
//#endregion
|
|
1767
|
+
//#region src/datalayer/providerConfigs.ts
|
|
1768
|
+
const createProviderConfig = require_db.zod_default.object({
|
|
1769
|
+
providerId: require_db.zod_default.string().min(1),
|
|
1770
|
+
config: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()),
|
|
1771
|
+
enabled: require_db.zod_default.boolean().optional().default(true)
|
|
1772
|
+
});
|
|
1773
|
+
const updateProviderConfig = require_db.zod_default.object({
|
|
1774
|
+
id: require_db.zod_default.uuidv4(),
|
|
1775
|
+
config: require_db.zod_default.record(require_db.zod_default.string(), require_db.zod_default.unknown()).optional(),
|
|
1776
|
+
enabled: require_db.zod_default.boolean().optional()
|
|
1777
|
+
});
|
|
1778
|
+
const getProviderConfigById = require_db.zod_default.object({ id: require_db.zod_default.uuidv4() });
|
|
1779
|
+
const getProviderConfigByProviderId = require_db.zod_default.object({ providerId: require_db.zod_default.string().min(1) });
|
|
1780
|
+
const deleteProviderConfig = require_db.zod_default.object({ id: require_db.zod_default.uuidv4() });
|
|
1781
|
+
const listProviderConfigs = require_db.zod_default.object({
|
|
1782
|
+
limit: require_db.zod_default.number().int().positive().optional(),
|
|
1783
|
+
offset: require_db.zod_default.number().int().nonnegative().optional()
|
|
1784
|
+
});
|
|
1785
|
+
const createProviderConfigsDataLayer = (db) => {
|
|
1786
|
+
return {
|
|
1787
|
+
createProviderConfig: async (params) => {
|
|
1788
|
+
const value = await createProviderConfig.safeParseAsync(params);
|
|
1789
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1790
|
+
const { providerId, config, enabled } = value.data;
|
|
1791
|
+
return db.insertInto("provider_configs").values({
|
|
1792
|
+
id: (0, node_crypto.randomUUID)(),
|
|
1793
|
+
providerId,
|
|
1794
|
+
config: JSON.stringify(config),
|
|
1795
|
+
enabled,
|
|
1796
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1797
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
1798
|
+
}).returningAll().executeTakeFirst();
|
|
1799
|
+
},
|
|
1800
|
+
updateProviderConfig: async (params) => {
|
|
1801
|
+
const value = await updateProviderConfig.safeParseAsync(params);
|
|
1802
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1803
|
+
const { id, config, enabled } = value.data;
|
|
1804
|
+
const updateData = { updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
|
|
1805
|
+
if (config !== void 0) updateData.config = JSON.stringify(config);
|
|
1806
|
+
if (enabled !== void 0) updateData.enabled = enabled;
|
|
1807
|
+
return db.updateTable("provider_configs").set(updateData).where("id", "=", id).returningAll().executeTakeFirst();
|
|
1808
|
+
},
|
|
1809
|
+
getProviderConfigById: async (params) => {
|
|
1810
|
+
const value = await getProviderConfigById.safeParseAsync(params);
|
|
1811
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1812
|
+
const { id } = value.data;
|
|
1813
|
+
return db.selectFrom("provider_configs").selectAll().where("id", "=", id).executeTakeFirst();
|
|
1814
|
+
},
|
|
1815
|
+
getProviderConfigByProviderId: async (params) => {
|
|
1816
|
+
const value = await getProviderConfigByProviderId.safeParseAsync(params);
|
|
1817
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1818
|
+
const { providerId } = value.data;
|
|
1819
|
+
return db.selectFrom("provider_configs").selectAll().where("providerId", "=", providerId).executeTakeFirst();
|
|
1820
|
+
},
|
|
1821
|
+
deleteProviderConfig: async (params) => {
|
|
1822
|
+
const value = await deleteProviderConfig.safeParseAsync(params);
|
|
1823
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1824
|
+
const { id } = value.data;
|
|
1825
|
+
return db.deleteFrom("provider_configs").where("id", "=", id).returningAll().executeTakeFirst();
|
|
1826
|
+
},
|
|
1827
|
+
listProviderConfigs: async (params) => {
|
|
1828
|
+
const value = await listProviderConfigs.safeParseAsync(params || {});
|
|
1829
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1830
|
+
const { limit = 100, offset = 0 } = value.data;
|
|
1831
|
+
return db.selectFrom("provider_configs").selectAll().orderBy("createdAt", "desc").limit(limit).offset(offset).execute();
|
|
1832
|
+
},
|
|
1833
|
+
countProviderConfigs: async () => {
|
|
1834
|
+
const result = await db.selectFrom("provider_configs").select(db.fn.countAll().as("count")).executeTakeFirst();
|
|
1835
|
+
return Number(result?.count ?? 0);
|
|
1836
|
+
},
|
|
1837
|
+
upsertProviderConfig: async (params) => {
|
|
1838
|
+
const value = await createProviderConfig.safeParseAsync(params);
|
|
1839
|
+
if (!value.success) throw new LLMOpsError(`Invalid parameters: ${value.error.message}`);
|
|
1840
|
+
const { providerId, config, enabled } = value.data;
|
|
1841
|
+
const existing = await db.selectFrom("provider_configs").selectAll().where("providerId", "=", providerId).executeTakeFirst();
|
|
1842
|
+
if (existing) return db.updateTable("provider_configs").set({
|
|
1843
|
+
config: JSON.stringify(config),
|
|
1844
|
+
enabled,
|
|
1845
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
1846
|
+
}).where("id", "=", existing.id).returningAll().executeTakeFirst();
|
|
1847
|
+
return db.insertInto("provider_configs").values({
|
|
1848
|
+
id: (0, node_crypto.randomUUID)(),
|
|
1849
|
+
providerId,
|
|
1850
|
+
config: JSON.stringify(config),
|
|
1851
|
+
enabled,
|
|
1852
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1853
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
1854
|
+
}).returningAll().executeTakeFirst();
|
|
1855
|
+
}
|
|
1856
|
+
};
|
|
1857
|
+
};
|
|
1858
|
+
|
|
1790
1859
|
//#endregion
|
|
1791
1860
|
//#region src/datalayer/targetingRules.ts
|
|
1792
1861
|
const createTargetingRule = require_db.zod_default.object({
|
|
@@ -2261,6 +2330,7 @@ const createDataLayer = async (db) => {
|
|
|
2261
2330
|
...createEnvironmentDataLayer(db),
|
|
2262
2331
|
...createEnvironmentSecretDataLayer(db),
|
|
2263
2332
|
...createLLMRequestsDataLayer(db),
|
|
2333
|
+
...createProviderConfigsDataLayer(db),
|
|
2264
2334
|
...createTargetingRulesDataLayer(db),
|
|
2265
2335
|
...createVariantDataLayer(db),
|
|
2266
2336
|
...createVariantVersionsDataLayer(db),
|
|
@@ -2487,6 +2557,7 @@ exports.createDataLayer = createDataLayer;
|
|
|
2487
2557
|
exports.createDatabase = require_db.createDatabase;
|
|
2488
2558
|
exports.createDatabaseFromConnection = require_db.createDatabaseFromConnection;
|
|
2489
2559
|
exports.createLLMRequestsDataLayer = createLLMRequestsDataLayer;
|
|
2560
|
+
exports.createProviderConfigsDataLayer = createProviderConfigsDataLayer;
|
|
2490
2561
|
exports.createWorkspaceSettingsDataLayer = createWorkspaceSettingsDataLayer;
|
|
2491
2562
|
exports.detectDatabaseType = require_db.detectDatabaseType;
|
|
2492
2563
|
exports.dollarsToMicroDollars = dollarsToMicroDollars;
|
|
@@ -2510,6 +2581,7 @@ exports.matchType = require_db.matchType;
|
|
|
2510
2581
|
exports.microDollarsToDollars = microDollarsToDollars;
|
|
2511
2582
|
exports.parsePartialTableData = require_db.parsePartialTableData;
|
|
2512
2583
|
exports.parseTableData = require_db.parseTableData;
|
|
2584
|
+
exports.providerConfigsSchema = require_db.providerConfigsSchema;
|
|
2513
2585
|
exports.runAutoMigrations = require_db.runAutoMigrations;
|
|
2514
2586
|
exports.schemas = require_db.schemas;
|
|
2515
2587
|
exports.targetingRulesSchema = require_db.targetingRulesSchema;
|