UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 1.45 kB
import{resolveModelApiKey}from"./api-key.js";import{authJson}from"./vercel.js";import"./transport.js";import{isObject}from"#shared/guards.js";import{getDefaultCodexTokenBroker}from"#public/models/openai/chatgpt/token-broker.js";const MODEL_CATALOG_MAX_BYTES=8388608;async function availableDirectModels(e,t,n){let r=await authJson(e===`openai`?`https://api.openai.com/v1/models`:`https://api.anthropic.com/v1/models?limit=1000`,{headers:e===`openai`?{authorization:`Bearer ${t}`}:{"x-api-key":t,"anthropic-version":`2023-06-01`},signal:n},MODEL_CATALOG_MAX_BYTES);if(!Array.isArray(r.data))throw Error(`The provider could not validate this key. Check it and retry /login.`);return r.data.flatMap(e=>isObject(e)&&typeof e.id==`string`?[e.id]:[])}async function availableHelperModels(e,t){if(e!==`chatgpt`)return availableDirectModels(e,await resolveModelApiKey(e),t);let n=await getDefaultCodexTokenBroker().getToken({reason:`request`}),r={authorization:`Bearer ${n.token}`,originator:`eve`};n.accountId&&(r[`ChatGPT-Account-Id`]=n.accountId);let i=await authJson(`https://chatgpt.com/backend-api/codex/models?client_version=0.148.0`,{headers:r,signal:t},MODEL_CATALOG_MAX_BYTES);if(!Array.isArray(i.models))throw Error(`Could not load ChatGPT models. Check your connection and retry /login.`);return i.models.flatMap(e=>isObject(e)&&typeof e.slug==`string`&&e.visibility!==`hide`?[e.slug]:[])}export{availableDirectModels,availableHelperModels};