@victor-software-house/pi-openai-proxy 4.0.6 → 4.1.0

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.
Files changed (2) hide show
  1. package/dist/index.mjs +18 -24
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1283,31 +1283,25 @@ async function piStream(model, context, request, options) {
1283
1283
  }
1284
1284
  //#endregion
1285
1285
  //#region src/server/routes.ts
1286
- /**
1287
- * Build a ModelExposureConfig from the server config.
1288
- */
1289
- function buildExposureConfig(config) {
1286
+ function fileConfigReader() {
1287
+ const file = loadConfigFromFile();
1290
1288
  return {
1291
- publicModelIdMode: config.publicModelIdMode,
1292
- modelExposureMode: config.modelExposureMode,
1293
- scopedProviders: config.scopedProviders,
1294
- customModels: config.customModels,
1295
- providerPrefixes: config.providerPrefixes
1289
+ publicModelIdMode: file.publicModelIdMode,
1290
+ modelExposureMode: file.modelExposureMode,
1291
+ scopedProviders: file.scopedProviders,
1292
+ customModels: file.customModels,
1293
+ providerPrefixes: file.providerPrefixes
1296
1294
  };
1297
1295
  }
1298
- /**
1299
- * Compute or refresh the model exposure from the current registry and config.
1300
- * Returns the exposure result or throws on config errors.
1301
- */
1302
- function getExposure(config) {
1303
- const outcome = computeModelExposure(getAvailableModels(), getAllModels(), buildExposureConfig(config));
1304
- if (!outcome.ok) throw new Error(`Model exposure configuration error: ${outcome.message}`);
1305
- return outcome;
1306
- }
1307
- function createRoutes(config) {
1296
+ function createRoutes(config, configReader = fileConfigReader) {
1297
+ function getExposure() {
1298
+ const outcome = computeModelExposure(getAvailableModels(), getAllModels(), configReader());
1299
+ if (!outcome.ok) throw new Error(`Model exposure configuration error: ${outcome.message}`);
1300
+ return outcome;
1301
+ }
1308
1302
  const routes = new Hono();
1309
1303
  routes.get("/v1/models", (c) => {
1310
- const exposure = getExposure(config);
1304
+ const exposure = getExposure();
1311
1305
  return c.json(buildModelList(exposure.models));
1312
1306
  });
1313
1307
  routes.get("/v1/models/*", (c) => {
@@ -1316,7 +1310,7 @@ function createRoutes(config) {
1316
1310
  const modelIdEncoded = rawPath.slice(11);
1317
1311
  if (modelIdEncoded.length === 0) return c.json(modelNotFound(""), 404);
1318
1312
  const modelId = decodeURIComponent(modelIdEncoded);
1319
- const resolved = resolveExposedModel(getExposure(config), modelId);
1313
+ const resolved = resolveExposedModel(getExposure(), modelId);
1320
1314
  if (resolved === void 0) return c.json(modelNotFound(modelId), 404);
1321
1315
  return c.json(toOpenAIModel(resolved));
1322
1316
  });
@@ -1336,7 +1330,7 @@ function createRoutes(config) {
1336
1330
  return c.json(invalidRequest(validation.message, validation.param ?? void 0), 400);
1337
1331
  }
1338
1332
  const request = validation.data;
1339
- const resolved = resolveExposedModel(getExposure(config), request.model);
1333
+ const resolved = resolveExposedModel(getExposure(), request.model);
1340
1334
  if (resolved === void 0) return c.json(modelNotFound(request.model), 404);
1341
1335
  const model = resolved.model;
1342
1336
  const canonicalModelId = resolved.canonicalId;
@@ -1422,13 +1416,13 @@ function createRoutes(config) {
1422
1416
  }
1423
1417
  //#endregion
1424
1418
  //#region src/server/app.ts
1425
- function createApp(config) {
1419
+ function createApp(config, configReader) {
1426
1420
  const app = new Hono();
1427
1421
  app.use("*", requestIdMiddleware());
1428
1422
  app.use("*", disconnectMiddleware());
1429
1423
  app.use("*", bodySizeLimitMiddleware(config));
1430
1424
  app.use("/v1/*", proxyAuthMiddleware(config));
1431
- app.route("/", createRoutes(config));
1425
+ app.route("/", createRoutes(config, configReader));
1432
1426
  return app;
1433
1427
  }
1434
1428
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@victor-software-house/pi-openai-proxy",
3
- "version": "4.0.6",
3
+ "version": "4.1.0",
4
4
  "description": "OpenAI-compatible HTTP proxy for pi's multi-provider model registry",
5
5
  "license": "MIT",
6
6
  "author": "Victor Software House",