From e038edef8bbb5ad61f2ea1d73c1dfd04e1b1ebd0 Mon Sep 17 00:00:00 2001 From: audrzejq <31422031+audrzejq@users.noreply.github.com> Date: Tue, 3 Mar 2026 18:47:49 +0100 Subject: [PATCH 1/3] 4th approach --- .../web/api => api}/cron/monitor-chutes.ts | 0 .../api => api}/cron/monitor-openrouter.ts | 0 package.json | 3 +- packages/web/api/model-schema.ts | 44 ------------------- 4 files changed, 2 insertions(+), 45 deletions(-) rename {packages/web/api => api}/cron/monitor-chutes.ts (100%) rename {packages/web/api => api}/cron/monitor-openrouter.ts (100%) delete mode 100644 packages/web/api/model-schema.ts diff --git a/packages/web/api/cron/monitor-chutes.ts b/api/cron/monitor-chutes.ts similarity index 100% rename from packages/web/api/cron/monitor-chutes.ts rename to api/cron/monitor-chutes.ts diff --git a/packages/web/api/cron/monitor-openrouter.ts b/api/cron/monitor-openrouter.ts similarity index 100% rename from packages/web/api/cron/monitor-openrouter.ts rename to api/cron/monitor-openrouter.ts diff --git a/package.json b/package.json index 7bab27fda..dfd3e0979 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ } }, "dependencies": { - "@aws-sdk/client-s3": "^3.1000.0" + "@aws-sdk/client-s3": "^3.1000.0", + "@models.dev/monitor": "workspace:*" } } \ No newline at end of file diff --git a/packages/web/api/model-schema.ts b/packages/web/api/model-schema.ts deleted file mode 100644 index aa9fcdeec..000000000 --- a/packages/web/api/model-schema.ts +++ /dev/null @@ -1,44 +0,0 @@ -export const config = { - runtime: 'edge', -}; - -export default async function handler(req: Request) { - const url = new URL(req.url); - - const apiResponse = await fetch(`${url.origin}/_api.json`); - - if (!apiResponse.ok) { - return new Response("Data not found", { status: 404 }); - } - - const providers = (await apiResponse.json()) as Record< - string, - { models: Record } - >; - - const modelIds: string[] = []; - for (const [providerId, provider] of Object.entries(providers)) { - for (const modelId of Object.keys(provider.models)) { - modelIds.push(`${providerId}/${modelId}`); - } - } - - const schema = { - $schema: "https://json-schema.org/draft/2020-12/schema", - $id: "https://models.dev/model-schema.json", - $defs: { - Model: { - type: "string", - enum: modelIds.sort(), - description: "AI model identifier in provider/model format", - }, - }, - }; - - return new Response(JSON.stringify(schema, null, 2), { - headers: { - "Content-Type": "application/json", - "Cache-Control": "public, max-age=3600", - }, - }); -} \ No newline at end of file From 75d9f8e03a1d7ed024a9a2fa24abbcc68bad2cd9 Mon Sep 17 00:00:00 2001 From: audrzejq <31422031+audrzejq@users.noreply.github.com> Date: Tue, 3 Mar 2026 18:49:16 +0100 Subject: [PATCH 2/3] Create model-schema.ts --- packages/web/api/model-schema.ts | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 packages/web/api/model-schema.ts diff --git a/packages/web/api/model-schema.ts b/packages/web/api/model-schema.ts new file mode 100644 index 000000000..aa9fcdeec --- /dev/null +++ b/packages/web/api/model-schema.ts @@ -0,0 +1,44 @@ +export const config = { + runtime: 'edge', +}; + +export default async function handler(req: Request) { + const url = new URL(req.url); + + const apiResponse = await fetch(`${url.origin}/_api.json`); + + if (!apiResponse.ok) { + return new Response("Data not found", { status: 404 }); + } + + const providers = (await apiResponse.json()) as Record< + string, + { models: Record } + >; + + const modelIds: string[] = []; + for (const [providerId, provider] of Object.entries(providers)) { + for (const modelId of Object.keys(provider.models)) { + modelIds.push(`${providerId}/${modelId}`); + } + } + + const schema = { + $schema: "https://json-schema.org/draft/2020-12/schema", + $id: "https://models.dev/model-schema.json", + $defs: { + Model: { + type: "string", + enum: modelIds.sort(), + description: "AI model identifier in provider/model format", + }, + }, + }; + + return new Response(JSON.stringify(schema, null, 2), { + headers: { + "Content-Type": "application/json", + "Cache-Control": "public, max-age=3600", + }, + }); +} \ No newline at end of file From 8aa360df3dd0b372306d129f4e628cf6b5c8f92a Mon Sep 17 00:00:00 2001 From: audrzejq <31422031+audrzejq@users.noreply.github.com> Date: Tue, 3 Mar 2026 18:50:49 +0100 Subject: [PATCH 3/3] Update bun.lock --- bun.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/bun.lock b/bun.lock index 60c1dbf4e..693fe1ca0 100644 --- a/bun.lock +++ b/bun.lock @@ -6,6 +6,7 @@ "name": "models.dev", "dependencies": { "@aws-sdk/client-s3": "^3.1000.0", + "@models.dev/monitor": "workspace:*", }, }, "packages/core": {