@evalops/maestro 0.10.11 → 0.10.12
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/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +3 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/evalops.d.ts +1 -1
- package/dist/cli/commands/evalops.d.ts.map +1 -1
- package/dist/cli/commands/evalops.js +23 -2
- package/dist/cli/commands/evalops.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +28 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli.js +180 -34
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +118 -21
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/models/builtin.d.ts.map +1 -1
- package/dist/models/builtin.js +2 -3
- package/dist/models/builtin.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +2 -1
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/platform/core-services.d.ts +1 -0
- package/dist/platform/core-services.d.ts.map +1 -1
- package/dist/platform/core-services.js +1 -0
- package/dist/platform/core-services.js.map +1 -1
- package/dist/providers/auth.d.ts +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +30 -2
- package/dist/providers/auth.js.map +1 -1
- package/dist/providers/evalops-managed.d.ts +1 -0
- package/dist/providers/evalops-managed.d.ts.map +1 -1
- package/dist/providers/evalops-managed.js +1 -0
- package/dist/providers/evalops-managed.js.map +1 -1
- package/dist/version.json +2 -2
- package/node_modules/@evalops/contracts/package.json +1 -1
- package/node_modules/@evalops/tui/package.json +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalops.js","sourceRoot":"","sources":["../../src/oauth/evalops.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype IncomingMessage,\n\ttype Server,\n\ttype ServerResponse,\n\tcreateServer,\n} from \"node:http\";\nimport { PLATFORM_HTTP_ROUTES } from \"../platform/core-services.js\";\nimport { fetchDownstream } from \"../utils/downstream-http.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport {\n\tbuildDesktopDeviceProof,\n\tenrollDesktopDeviceIdentity,\n} from \"./device-identity.js\";\nimport {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n\tsaveOAuthCredentials,\n} from \"./storage.js\";\n\nconst logger = createLogger(\"oauth:evalops\");\n\nconst CALLBACK_PORT = 1460;\nconst CALLBACK_PATH = \"/auth/callback/evalops\";\nconst CALLBACK_ORIGIN = `http://127.0.0.1:${CALLBACK_PORT}`;\nconst CALLBACK_URI = `${CALLBACK_ORIGIN}${CALLBACK_PATH}`;\nconst DEFAULT_IDENTITY_URL = \"https://identity.evalops.dev\";\nconst IDENTITY_BASE_URL_ENV_VARS = [\n\t\"MAESTRO_IDENTITY_URL\",\n\t\"EVALOPS_IDENTITY_URL\",\n] as const;\nconst SHARED_PLATFORM_BASE_URL_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\"EVALOPS_BASE_URL\",\n] as const;\nconst DEFAULT_PROVIDER_REF_PROVIDER = \"openai\";\nconst DEFAULT_PROVIDER_REF_ENVIRONMENT = \"prod\";\nconst DEFAULT_IDENTITY_TIMEOUT_MS = 10_000;\nconst DEFAULT_IDENTITY_MAX_ATTEMPTS = 2;\nconst REQUIRED_SCOPE = \"llm_gateway:invoke\";\n\ninterface IdentityStartResponse {\n\tauthorization_url?: string;\n\terror?: string;\n}\n\ninterface IdentityRefreshResponse {\n\taccess_token?: string;\n\terror?: string;\n\texpires_at?: string;\n\torganization_id?: string;\n\trefresh_expires_at?: string;\n\trefresh_token?: string;\n\tscopes?: unknown;\n}\n\ninterface IdentityRevokeResponse {\n\terror?: string;\n\trevoked?: boolean;\n}\n\ninterface IdentityDelegationResponse {\n\tagent_id?: string;\n\terror?: string;\n\texpires_at?: string;\n\trun_id?: string;\n\tscopes_denied?: unknown;\n\tscopes_granted?: unknown;\n\tscopes_requested?: unknown;\n\ttoken?: string;\n\ttoken_type?: string;\n}\n\nexport interface EvalOpsProviderRef {\n\tprovider: string;\n\tenvironment: string;\n\tcredential_name?: string;\n\tteam_id?: string;\n}\n\ninterface EvalOpsCallbackResult {\n\taccessToken: string;\n\texpiresAt: number;\n\torganizationId: string;\n\trefreshExpiresAt?: number;\n\trefreshToken?: string;\n\tscopes: string[];\n}\n\nexport interface EvalOpsDelegationTokenRequest {\n\tagentId: string;\n\tagentType: string;\n\tcapabilities?: string[];\n\tmetadata?: Record<string, unknown>;\n\trunId: string;\n\tscopes?: string[];\n\tsurface: string;\n\ttoken?: string;\n\tttlSeconds?: number;\n}\n\nexport interface EvalOpsDelegationTokenResult {\n\tagentId: string;\n\texpiresAt: number;\n\torganizationId: string;\n\tproviderRef: EvalOpsProviderRef;\n\trunId: string;\n\tscopesDenied: string[];\n\tscopesGranted: string[];\n\tscopesRequested: string[];\n\ttoken: string;\n\ttokenType: string;\n}\n\nfunction getEnvValue(names: string[]): string | undefined {\n\tfor (const name of names) {\n\t\tconst value = process.env[name]?.trim();\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction parsePositiveInt(value: string | undefined, fallback: number): number {\n\tconst parsed = Number.parseInt(value ?? \"\", 10);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;\n}\n\nfunction normalizeIdentityBaseUrl(\n\tbaseUrl: string,\n\tsuffixes: readonly string[] = [],\n): string {\n\tlet normalized = baseUrl.trim().replace(/\\/+$/u, \"\");\n\tfor (const suffix of suffixes) {\n\t\tif (normalized.endsWith(suffix)) {\n\t\t\tnormalized = normalized.slice(0, -suffix.length).replace(/\\/+$/u, \"\");\n\t\t}\n\t}\n\treturn normalized;\n}\n\nfunction getIdentityBaseUrl(): string {\n\treturn normalizeIdentityBaseUrl(\n\t\tgetEnvValue([\n\t\t\t...IDENTITY_BASE_URL_ENV_VARS,\n\t\t\t...SHARED_PLATFORM_BASE_URL_ENV_VARS,\n\t\t]) ?? DEFAULT_IDENTITY_URL,\n\t\tObject.values(PLATFORM_HTTP_ROUTES.identity),\n\t);\n}\n\nfunction getIdentityTimeoutMs(): number {\n\treturn parsePositiveInt(\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_EVALOPS_IDENTITY_TIMEOUT_MS\",\n\t\t\t\"EVALOPS_IDENTITY_TIMEOUT_MS\",\n\t\t]),\n\t\tDEFAULT_IDENTITY_TIMEOUT_MS,\n\t);\n}\n\nfunction getIdentityMaxAttempts(): number {\n\treturn parsePositiveInt(\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_EVALOPS_IDENTITY_MAX_ATTEMPTS\",\n\t\t\t\"EVALOPS_IDENTITY_MAX_ATTEMPTS\",\n\t\t]),\n\t\tDEFAULT_IDENTITY_MAX_ATTEMPTS,\n\t);\n}\n\nfunction fetchIdentity(\n\tidentityBaseUrl: string,\n\tpath: string,\n\tinit: RequestInit,\n): Promise<Response> {\n\treturn fetchDownstream(`${identityBaseUrl}${path}`, init, {\n\t\tserviceName: \"EvalOps identity service\",\n\t\tfailureMode: \"required\",\n\t\ttimeoutMs: getIdentityTimeoutMs(),\n\t\tmaxAttempts: getIdentityMaxAttempts(),\n\t});\n}\n\nfunction getConfiguredOrganizationId(): string | undefined {\n\tconst organizationId = getEnvValue([\n\t\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\t\"EVALOPS_ORGANIZATION_ID\",\n\t\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n\t]);\n\treturn organizationId;\n}\n\nfunction getProviderRef(): EvalOpsProviderRef {\n\tconst credentialName = getEnvValue([\n\t\t\"MAESTRO_EVALOPS_CREDENTIAL_NAME\",\n\t\t\"MAESTRO_LLM_GATEWAY_CREDENTIAL_NAME\",\n\t]);\n\tconst teamID = getEnvValue([\n\t\t\"MAESTRO_EVALOPS_TEAM_ID\",\n\t\t\"MAESTRO_LLM_GATEWAY_TEAM_ID\",\n\t]);\n\treturn {\n\t\tprovider:\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_EVALOPS_PROVIDER\",\n\t\t\t\t\"MAESTRO_LLM_GATEWAY_PROVIDER\",\n\t\t\t]) ?? DEFAULT_PROVIDER_REF_PROVIDER,\n\t\tenvironment:\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_EVALOPS_ENVIRONMENT\",\n\t\t\t\t\"MAESTRO_LLM_GATEWAY_ENVIRONMENT\",\n\t\t\t]) ?? DEFAULT_PROVIDER_REF_ENVIRONMENT,\n\t\t...(credentialName ? { credential_name: credentialName } : {}),\n\t\t...(teamID ? { team_id: teamID } : {}),\n\t};\n}\n\nfunction parseExpiresAt(value: string | null): number {\n\treturn parseTimestamp(value, \"expires_at\");\n}\n\nfunction parseTimestamp(\n\tvalue: string | null | undefined,\n\tfieldName: string,\n): number {\n\tif (!value) {\n\t\tthrow new Error(`Missing ${fieldName} in EvalOps response`);\n\t}\n\tconst expiresAt = Date.parse(value);\n\tif (Number.isNaN(expiresAt)) {\n\t\tthrow new Error(`Invalid ${fieldName} in EvalOps response: ${value}`);\n\t}\n\treturn expiresAt;\n}\n\nfunction parseScopes(value: string | null): string[] {\n\tif (!value) {\n\t\treturn [REQUIRED_SCOPE];\n\t}\n\treturn value\n\t\t.split(\" \")\n\t\t.map((entry) => entry.trim())\n\t\t.filter((entry) => entry.length > 0);\n}\n\nfunction parseScopesPayload(value: unknown): string[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value\n\t\t.filter((entry): entry is string => typeof entry === \"string\")\n\t\t.map((entry) => entry.trim())\n\t\t.filter((entry) => entry.length > 0);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getMetadataString(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction getMetadataNumber(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): number | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"number\" && Number.isFinite(value)\n\t\t? value\n\t\t: undefined;\n}\n\nfunction getMetadataScopes(\n\tmetadata: Record<string, unknown> | undefined,\n): string[] {\n\treturn parseScopesPayload(metadata?.scopes);\n}\n\nfunction resolveProviderRef(\n\tmetadata: Record<string, unknown> | undefined,\n): EvalOpsProviderRef {\n\tconst fallback = getProviderRef();\n\tconst providerRef = isRecord(metadata?.providerRef)\n\t\t? metadata.providerRef\n\t\t: undefined;\n\treturn {\n\t\tprovider: getMetadataString(providerRef, \"provider\") ?? fallback.provider,\n\t\tenvironment:\n\t\t\tgetMetadataString(providerRef, \"environment\") ?? fallback.environment,\n\t\t...(getMetadataString(providerRef, \"credential_name\")\n\t\t\t? {\n\t\t\t\t\tcredential_name: getMetadataString(providerRef, \"credential_name\"),\n\t\t\t\t}\n\t\t\t: fallback.credential_name\n\t\t\t\t? { credential_name: fallback.credential_name }\n\t\t\t\t: {}),\n\t\t...(getMetadataString(providerRef, \"team_id\")\n\t\t\t? { team_id: getMetadataString(providerRef, \"team_id\") }\n\t\t\t: fallback.team_id\n\t\t\t\t? { team_id: fallback.team_id }\n\t\t\t\t: {}),\n\t};\n}\n\nfunction resolveStoredEvalOpsMetadata(\n\tmetadata?: Record<string, unknown>,\n): Record<string, unknown> | undefined {\n\tif (metadata) {\n\t\treturn metadata;\n\t}\n\tconst stored = loadOAuthCredentials(\"evalops\");\n\treturn stored?.metadata;\n}\n\nfunction resolveDelegationOrganizationId(\n\tmetadata: Record<string, unknown> | undefined,\n): string {\n\tconst organizationId =\n\t\tgetMetadataString(metadata, \"organizationId\") ??\n\t\tgetConfiguredOrganizationId();\n\tif (!organizationId) {\n\t\tthrow new Error(\n\t\t\t\"EvalOps delegation requires an organization id from /login evalops or MAESTRO_EVALOPS_ORG_ID.\",\n\t\t);\n\t}\n\treturn organizationId;\n}\n\nasync function getFreshEvalOpsAccessToken(\n\tmetadata?: Record<string, unknown>,\n): Promise<string | null> {\n\tconst credentials = loadOAuthCredentials(\"evalops\");\n\tif (!credentials) {\n\t\treturn null;\n\t}\n\tif (Date.now() < credentials.expires - 60_000) {\n\t\treturn credentials.access;\n\t}\n\tconst refreshed = await refreshEvalOpsToken(\n\t\tcredentials.refresh,\n\t\tmetadata ?? credentials.metadata,\n\t);\n\tsaveOAuthCredentials(\"evalops\", refreshed);\n\treturn refreshed.access;\n}\n\nexport function buildEvalOpsDelegationEnvironment(\n\tresult: Pick<\n\t\tEvalOpsDelegationTokenResult,\n\t\t\"organizationId\" | \"providerRef\" | \"token\"\n\t> &\n\t\tPartial<Pick<EvalOpsDelegationTokenResult, \"agentId\" | \"runId\">>,\n): Record<string, string> {\n\treturn {\n\t\tMAESTRO_EVALOPS_ACCESS_TOKEN: result.token,\n\t\tMAESTRO_EVALOPS_ORG_ID: result.organizationId,\n\t\tMAESTRO_EVALOPS_PROVIDER: result.providerRef.provider,\n\t\tMAESTRO_EVALOPS_ENVIRONMENT: result.providerRef.environment,\n\t\t...(result.agentId\n\t\t\t? {\n\t\t\t\t\tMAESTRO_AGENT_ID: result.agentId,\n\t\t\t\t\tMAESTRO_EVALOPS_AGENT_ID: result.agentId,\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(result.runId ? { MAESTRO_EVALOPS_RUN_ID: result.runId } : {}),\n\t\t...(result.providerRef.credential_name\n\t\t\t? {\n\t\t\t\t\tMAESTRO_EVALOPS_CREDENTIAL_NAME: result.providerRef.credential_name,\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(result.providerRef.team_id\n\t\t\t? { MAESTRO_EVALOPS_TEAM_ID: result.providerRef.team_id }\n\t\t\t: {}),\n\t};\n}\n\nexport async function issueEvalOpsDelegationToken(\n\trequest: EvalOpsDelegationTokenRequest,\n): Promise<EvalOpsDelegationTokenResult> {\n\tconst metadata = resolveStoredEvalOpsMetadata(request.metadata);\n\tconst identityBaseUrl =\n\t\tgetMetadataString(metadata, \"identityBaseUrl\") ?? getIdentityBaseUrl();\n\tconst deviceProof = await buildDesktopDeviceProof(\n\t\tidentityBaseUrl,\n\t\t\"delegation\",\n\t);\n\tconst token = request.token ?? (await getFreshEvalOpsAccessToken(metadata));\n\tif (!token) {\n\t\tthrow new Error(\n\t\t\t\"EvalOps delegation requires a valid access token. Run /login evalops first.\",\n\t\t);\n\t}\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.delegationTokens,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tagent_id: request.agentId,\n\t\t\t\tagent_type: request.agentType,\n\t\t\t\t...(request.capabilities?.length\n\t\t\t\t\t? { capabilities: request.capabilities }\n\t\t\t\t\t: {}),\n\t\t\t\trun_id: request.runId,\n\t\t\t\t...(request.scopes?.length ? { scopes: request.scopes } : {}),\n\t\t\t\t...(deviceProof ? { device_proof: deviceProof } : {}),\n\t\t\t\tsurface: request.surface,\n\t\t\t\t...(request.ttlSeconds ? { ttl_seconds: request.ttlSeconds } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\n\tlet payload: IdentityDelegationResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityDelegationResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and fall back to a generic error below.\n\t}\n\n\tif (!response.ok || !payload?.token || !payload.expires_at) {\n\t\tthrow new Error(\n\t\t\tpayload?.error ?? \"EvalOps delegation token request failed\",\n\t\t);\n\t}\n\n\treturn {\n\t\tagentId: payload.agent_id ?? request.agentId,\n\t\texpiresAt: parseTimestamp(payload.expires_at, \"expires_at\"),\n\t\torganizationId: resolveDelegationOrganizationId(metadata),\n\t\tproviderRef: resolveProviderRef(metadata),\n\t\trunId: payload.run_id ?? request.runId,\n\t\tscopesDenied: parseScopesPayload(payload.scopes_denied),\n\t\tscopesGranted: parseScopesPayload(payload.scopes_granted),\n\t\tscopesRequested: parseScopesPayload(payload.scopes_requested),\n\t\ttoken: payload.token,\n\t\ttokenType: payload.token_type ?? \"Bearer\",\n\t};\n}\n\nasync function startCallbackServer(): Promise<{\n\tserver: Server;\n\tgetResult: () => Promise<EvalOpsCallbackResult>;\n}> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet resultResolve: (value: EvalOpsCallbackResult) => void;\n\t\tlet resultReject: (error: Error) => void;\n\n\t\tconst resultPromise = new Promise<EvalOpsCallbackResult>((res, rej) => {\n\t\t\tresultResolve = res;\n\t\t\tresultReject = rej;\n\t\t});\n\n\t\tconst server = createServer((req: IncomingMessage, res: ServerResponse) => {\n\t\t\tconst requestUrl = new URL(req.url ?? \"\", CALLBACK_ORIGIN);\n\t\t\tif (requestUrl.pathname !== CALLBACK_PATH) {\n\t\t\t\tres.writeHead(404);\n\t\t\t\tres.end(\"Not found\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst error = requestUrl.searchParams.get(\"error\");\n\t\t\tif (error) {\n\t\t\t\tres.writeHead(400, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t`<html><body><h1>EvalOps Login Failed</h1><p>Error: ${error}</p><p>You can close this window.</p></body></html>`,\n\t\t\t\t);\n\t\t\t\tresultReject(new Error(`EvalOps identity login failed: ${error}`));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst accessToken = requestUrl.searchParams.get(\"access_token\");\n\t\t\tconst organizationId = requestUrl.searchParams.get(\"organization_id\");\n\t\t\tif (!accessToken || !organizationId) {\n\t\t\t\tres.writeHead(400, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t\"<html><body><h1>Invalid Callback</h1><p>Missing access_token or organization_id.</p><p>You can close this window.</p></body></html>\",\n\t\t\t\t);\n\t\t\t\tresultReject(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\"EvalOps callback was missing access_token or organization_id.\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst expiresAt = parseExpiresAt(\n\t\t\t\t\trequestUrl.searchParams.get(\"expires_at\"),\n\t\t\t\t);\n\t\t\t\tconst refreshToken =\n\t\t\t\t\trequestUrl.searchParams.get(\"refresh_token\")?.trim() || undefined;\n\t\t\t\tconst refreshExpiresAtValue =\n\t\t\t\t\trequestUrl.searchParams.get(\"refresh_expires_at\");\n\t\t\t\tconst refreshExpiresAt = refreshExpiresAtValue\n\t\t\t\t\t? parseTimestamp(refreshExpiresAtValue, \"refresh_expires_at\")\n\t\t\t\t\t: undefined;\n\t\t\t\tconst scopes = parseScopes(requestUrl.searchParams.get(\"scope\"));\n\n\t\t\t\tres.writeHead(200, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t\"<html><body><h1>Authentication Successful</h1><p>You can close this window and return to Maestro.</p></body></html>\",\n\t\t\t\t);\n\t\t\t\tresultResolve({\n\t\t\t\t\taccessToken,\n\t\t\t\t\texpiresAt,\n\t\t\t\t\torganizationId,\n\t\t\t\t\trefreshExpiresAt,\n\t\t\t\t\trefreshToken,\n\t\t\t\t\tscopes,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tres.writeHead(400, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t`<html><body><h1>Invalid Callback</h1><p>${error instanceof Error ? error.message : String(error)}</p><p>You can close this window.</p></body></html>`,\n\t\t\t\t);\n\t\t\t\tresultReject(error instanceof Error ? error : new Error(String(error)));\n\t\t\t}\n\t\t});\n\n\t\tserver.on(\"error\", (error: NodeJS.ErrnoException) => {\n\t\t\tif (error.code === \"EADDRINUSE\") {\n\t\t\t\treject(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t`Port ${CALLBACK_PORT} is already in use. Close the other process and retry /login evalops.`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treject(error);\n\t\t});\n\n\t\tserver.listen(CALLBACK_PORT, \"127.0.0.1\", () => {\n\t\t\tresolve({\n\t\t\t\tserver,\n\t\t\t\tgetResult: () => resultPromise,\n\t\t\t});\n\t\t});\n\t});\n}\n\nfunction closeServer(server: Server): Promise<void> {\n\treturn new Promise((resolve) => {\n\t\tserver.close(() => resolve());\n\t});\n}\n\nasync function startIdentityLogin(\n\tidentityBaseUrl: string,\n\torganizationId: string | undefined,\n\tonStatus?: (status: string) => void,\n): Promise<string> {\n\tonStatus?.(\"Requesting EvalOps managed login URL...\");\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.authGoogleStart,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\tredirect_uri: CALLBACK_URI,\n\t\t\t\tresponse_mode: \"query\",\n\t\t\t\t...(organizationId ? { organization_id: organizationId } : {}),\n\t\t\t\tprompt: \"select_account\",\n\t\t\t\tscopes: [REQUIRED_SCOPE],\n\t\t\t}),\n\t\t},\n\t);\n\n\tlet payload: IdentityStartResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityStartResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and fall back to a generic message below.\n\t}\n\n\tif (!response.ok || !payload?.authorization_url) {\n\t\tif (payload?.error === \"redirect_uri_not_allowed\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Identity rejected ${CALLBACK_URI}. Add it to IDENTITY_GOOGLE_ALLOWED_REDIRECT_URIS and retry.`,\n\t\t\t);\n\t\t}\n\t\tthrow new Error(payload?.error ?? \"EvalOps identity start failed\");\n\t}\n\n\treturn payload.authorization_url;\n}\n\nexport async function loginEvalOps(\n\tonAuthUrl: (url: string) => void,\n\tonStatus?: (status: string) => void,\n): Promise<void> {\n\tconst identityBaseUrl = getIdentityBaseUrl();\n\tconst organizationId = getConfiguredOrganizationId();\n\tconst providerRef = getProviderRef();\n\tconst { server, getResult } = await startCallbackServer();\n\n\ttry {\n\t\tconst authorizationUrl = await startIdentityLogin(\n\t\t\tidentityBaseUrl,\n\t\t\torganizationId,\n\t\t\tonStatus,\n\t\t);\n\t\tonStatus?.(\"Waiting for EvalOps identity callback...\");\n\t\tonAuthUrl(authorizationUrl);\n\n\t\tconst result = await Promise.race([\n\t\t\tgetResult(),\n\t\t\tnew Promise<EvalOpsCallbackResult>((_, reject) => {\n\t\t\t\tsetTimeout(\n\t\t\t\t\t() => reject(new Error(\"EvalOps login timed out after 5 minutes\")),\n\t\t\t\t\t5 * 60 * 1000,\n\t\t\t\t);\n\t\t\t}),\n\t\t]);\n\n\t\tconst deviceId = await enrollDesktopDeviceIdentity(\n\t\t\tidentityBaseUrl,\n\t\t\tresult.accessToken,\n\t\t\tprocess.env.npm_package_version,\n\t\t);\n\n\t\tconst credentials: OAuthCredentials = {\n\t\t\ttype: \"oauth\",\n\t\t\taccess: result.accessToken,\n\t\t\trefresh: result.refreshToken ?? \"\",\n\t\t\texpires: result.expiresAt,\n\t\t\tmetadata: {\n\t\t\t\tidentityBaseUrl,\n\t\t\t\torganizationId: result.organizationId,\n\t\t\t\tproviderRef,\n\t\t\t\t...(deviceId ? { deviceId } : {}),\n\t\t\t\t...(result.refreshExpiresAt\n\t\t\t\t\t? { refreshExpiresAt: result.refreshExpiresAt }\n\t\t\t\t\t: {}),\n\t\t\t\tscopes: result.scopes,\n\t\t\t},\n\t\t};\n\t\tsaveOAuthCredentials(\"evalops\", credentials);\n\t\tlogger.info(\"EvalOps managed login successful\", {\n\t\t\torganizationId: result.organizationId,\n\t\t\tprovider: providerRef.provider,\n\t\t\tenvironment: providerRef.environment,\n\t\t});\n\t} finally {\n\t\tawait closeServer(server);\n\t}\n}\n\nexport async function refreshEvalOpsToken(\n\trefreshToken: string,\n\tmetadata?: Record<string, unknown>,\n): Promise<OAuthCredentials> {\n\tif (!refreshToken) {\n\t\tthrow new Error(\"EvalOps refresh token missing. Run /login evalops again.\");\n\t}\n\n\tconst identityBaseUrl =\n\t\tgetMetadataString(metadata, \"identityBaseUrl\") ?? getIdentityBaseUrl();\n\tconst deviceProof = await buildDesktopDeviceProof(identityBaseUrl, \"refresh\");\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.tokenRefresh,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\trefresh_token: refreshToken,\n\t\t\t\t...(deviceProof ? { device_proof: deviceProof } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\n\tlet payload: IdentityRefreshResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityRefreshResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and surface a generic error below.\n\t}\n\n\tif (!response.ok || !payload?.access_token || !payload.expires_at) {\n\t\tthrow new Error(payload?.error ?? \"EvalOps token refresh failed\");\n\t}\n\n\tconst expires = parseTimestamp(payload.expires_at, \"expires_at\");\n\tconst nextRefreshToken =\n\t\ttypeof payload.refresh_token === \"string\" &&\n\t\tpayload.refresh_token.trim().length > 0\n\t\t\t? payload.refresh_token\n\t\t\t: refreshToken;\n\tconst scopes = parseScopesPayload(payload.scopes);\n\tconst refreshExpiresAt =\n\t\tpayload.refresh_expires_at != null\n\t\t\t? parseTimestamp(payload.refresh_expires_at, \"refresh_expires_at\")\n\t\t\t: getMetadataNumber(metadata, \"refreshExpiresAt\");\n\n\treturn {\n\t\ttype: \"oauth\",\n\t\taccess: payload.access_token,\n\t\trefresh: nextRefreshToken,\n\t\texpires,\n\t\tmetadata: {\n\t\t\t...metadata,\n\t\t\tidentityBaseUrl,\n\t\t\torganizationId:\n\t\t\t\ttypeof payload.organization_id === \"string\" &&\n\t\t\t\tpayload.organization_id.length > 0\n\t\t\t\t\t? payload.organization_id\n\t\t\t\t\t: getMetadataString(metadata, \"organizationId\"),\n\t\t\t...(refreshExpiresAt ? { refreshExpiresAt } : {}),\n\t\t\tscopes: scopes.length > 0 ? scopes : getMetadataScopes(metadata),\n\t\t},\n\t};\n}\n\nexport async function revokeEvalOpsToken(\n\trefreshToken: string,\n\tmetadata?: Record<string, unknown>,\n): Promise<void> {\n\tif (!refreshToken) {\n\t\treturn;\n\t}\n\n\tconst identityBaseUrl =\n\t\tgetMetadataString(metadata, \"identityBaseUrl\") ?? getIdentityBaseUrl();\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.tokenRevoke,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({ refresh_token: refreshToken }),\n\t\t},\n\t);\n\n\tlet payload: IdentityRevokeResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityRevokeResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and surface a generic error below.\n\t}\n\n\tif (!response.ok) {\n\t\tthrow new Error(payload?.error ?? \"EvalOps token revoke failed\");\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"evalops.js","sourceRoot":"","sources":["../../src/oauth/evalops.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype IncomingMessage,\n\ttype Server,\n\ttype ServerResponse,\n\tcreateServer,\n} from \"node:http\";\nimport { PLATFORM_HTTP_ROUTES } from \"../platform/core-services.js\";\nimport { fetchDownstream } from \"../utils/downstream-http.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport {\n\tbuildDesktopDeviceProof,\n\tenrollDesktopDeviceIdentity,\n} from \"./device-identity.js\";\nimport {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n\tsaveOAuthCredentials,\n} from \"./storage.js\";\n\nconst logger = createLogger(\"oauth:evalops\");\n\nconst CALLBACK_PORT = 1460;\nconst CALLBACK_PATH = \"/auth/callback/evalops\";\nconst CALLBACK_ORIGIN = `http://127.0.0.1:${CALLBACK_PORT}`;\nconst CALLBACK_URI = `${CALLBACK_ORIGIN}${CALLBACK_PATH}`;\nconst DEFAULT_IDENTITY_URL = \"https://identity.evalops.dev\";\nconst IDENTITY_BASE_URL_ENV_VARS = [\n\t\"MAESTRO_IDENTITY_URL\",\n\t\"EVALOPS_IDENTITY_URL\",\n] as const;\nconst SHARED_PLATFORM_BASE_URL_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\"EVALOPS_BASE_URL\",\n] as const;\nconst DEFAULT_PROVIDER_REF_PROVIDER = \"openai\";\nconst DEFAULT_PROVIDER_REF_ENVIRONMENT = \"prod\";\nconst DEFAULT_IDENTITY_TIMEOUT_MS = 10_000;\nconst DEFAULT_IDENTITY_MAX_ATTEMPTS = 2;\nconst REQUIRED_SCOPE = \"llm_gateway:invoke\";\n\ninterface IdentityStartResponse {\n\tauthorization_url?: string;\n\terror?: string;\n}\n\ninterface IdentityRefreshResponse {\n\taccess_token?: string;\n\terror?: string;\n\texpires_at?: string;\n\torganization_id?: string;\n\trefresh_expires_at?: string;\n\trefresh_token?: string;\n\tscopes?: unknown;\n}\n\ninterface IdentityRevokeResponse {\n\terror?: string;\n\trevoked?: boolean;\n}\n\ninterface IdentityDelegationResponse {\n\tagent_id?: string;\n\terror?: string;\n\texpires_at?: string;\n\trun_id?: string;\n\tscopes_denied?: unknown;\n\tscopes_granted?: unknown;\n\tscopes_requested?: unknown;\n\ttoken?: string;\n\ttoken_type?: string;\n}\n\nexport interface EvalOpsProviderRef {\n\tprovider: string;\n\tenvironment: string;\n\tcredential_name?: string;\n\tteam_id?: string;\n}\n\ninterface EvalOpsCallbackResult {\n\taccessToken: string;\n\texpiresAt: number;\n\torganizationId: string;\n\trefreshExpiresAt?: number;\n\trefreshToken?: string;\n\tscopes: string[];\n}\n\nexport interface EvalOpsDelegationTokenRequest {\n\tagentId: string;\n\tagentType: string;\n\tcapabilities?: string[];\n\tmetadata?: Record<string, unknown>;\n\trunId: string;\n\tscopes?: string[];\n\tsurface: string;\n\ttoken?: string;\n\tttlSeconds?: number;\n}\n\nexport interface EvalOpsDelegationTokenResult {\n\tagentId: string;\n\texpiresAt: number;\n\torganizationId: string;\n\tproviderRef: EvalOpsProviderRef;\n\trunId: string;\n\tscopesDenied: string[];\n\tscopesGranted: string[];\n\tscopesRequested: string[];\n\ttoken: string;\n\ttokenType: string;\n}\n\nfunction getEnvValue(names: string[]): string | undefined {\n\tfor (const name of names) {\n\t\tconst value = process.env[name]?.trim();\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction parsePositiveInt(value: string | undefined, fallback: number): number {\n\tconst parsed = Number.parseInt(value ?? \"\", 10);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;\n}\n\nfunction normalizeIdentityBaseUrl(\n\tbaseUrl: string,\n\tsuffixes: readonly string[] = [],\n): string {\n\tlet normalized = baseUrl.trim().replace(/\\/+$/u, \"\");\n\tfor (const suffix of suffixes) {\n\t\tif (normalized.endsWith(suffix)) {\n\t\t\tnormalized = normalized.slice(0, -suffix.length).replace(/\\/+$/u, \"\");\n\t\t}\n\t}\n\treturn normalized;\n}\n\nfunction getIdentityBaseUrl(): string {\n\treturn normalizeIdentityBaseUrl(\n\t\tgetEnvValue([\n\t\t\t...IDENTITY_BASE_URL_ENV_VARS,\n\t\t\t...SHARED_PLATFORM_BASE_URL_ENV_VARS,\n\t\t]) ?? DEFAULT_IDENTITY_URL,\n\t\tObject.values(PLATFORM_HTTP_ROUTES.identity),\n\t);\n}\n\nfunction getIdentityTimeoutMs(): number {\n\treturn parsePositiveInt(\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_EVALOPS_IDENTITY_TIMEOUT_MS\",\n\t\t\t\"EVALOPS_IDENTITY_TIMEOUT_MS\",\n\t\t]),\n\t\tDEFAULT_IDENTITY_TIMEOUT_MS,\n\t);\n}\n\nfunction getIdentityMaxAttempts(): number {\n\treturn parsePositiveInt(\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_EVALOPS_IDENTITY_MAX_ATTEMPTS\",\n\t\t\t\"EVALOPS_IDENTITY_MAX_ATTEMPTS\",\n\t\t]),\n\t\tDEFAULT_IDENTITY_MAX_ATTEMPTS,\n\t);\n}\n\nfunction fetchIdentity(\n\tidentityBaseUrl: string,\n\tpath: string,\n\tinit: RequestInit,\n): Promise<Response> {\n\treturn fetchDownstream(`${identityBaseUrl}${path}`, init, {\n\t\tserviceName: \"EvalOps identity service\",\n\t\tfailureMode: \"required\",\n\t\ttimeoutMs: getIdentityTimeoutMs(),\n\t\tmaxAttempts: getIdentityMaxAttempts(),\n\t});\n}\n\nfunction getConfiguredOrganizationId(): string | undefined {\n\tconst organizationId = getEnvValue([\n\t\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\t\"EVALOPS_ORGANIZATION_ID\",\n\t\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n\t]);\n\treturn organizationId;\n}\n\nfunction getProviderRef(): EvalOpsProviderRef {\n\tconst credentialName = getEnvValue([\n\t\t\"MAESTRO_EVALOPS_CREDENTIAL_NAME\",\n\t\t\"MAESTRO_LLM_GATEWAY_CREDENTIAL_NAME\",\n\t]);\n\tconst teamID = getEnvValue([\n\t\t\"MAESTRO_EVALOPS_TEAM_ID\",\n\t\t\"MAESTRO_LLM_GATEWAY_TEAM_ID\",\n\t]);\n\treturn {\n\t\tprovider:\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_EVALOPS_PROVIDER\",\n\t\t\t\t\"MAESTRO_LLM_GATEWAY_PROVIDER\",\n\t\t\t]) ?? DEFAULT_PROVIDER_REF_PROVIDER,\n\t\tenvironment:\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_EVALOPS_ENVIRONMENT\",\n\t\t\t\t\"MAESTRO_LLM_GATEWAY_ENVIRONMENT\",\n\t\t\t]) ?? DEFAULT_PROVIDER_REF_ENVIRONMENT,\n\t\t...(credentialName ? { credential_name: credentialName } : {}),\n\t\t...(teamID ? { team_id: teamID } : {}),\n\t};\n}\n\nfunction parseExpiresAt(value: string | null): number {\n\treturn parseTimestamp(value, \"expires_at\");\n}\n\nfunction parseTimestamp(\n\tvalue: string | null | undefined,\n\tfieldName: string,\n): number {\n\tif (!value) {\n\t\tthrow new Error(`Missing ${fieldName} in EvalOps response`);\n\t}\n\tconst expiresAt = Date.parse(value);\n\tif (Number.isNaN(expiresAt)) {\n\t\tthrow new Error(`Invalid ${fieldName} in EvalOps response: ${value}`);\n\t}\n\treturn expiresAt;\n}\n\nfunction parseScopes(value: string | null): string[] {\n\tif (!value) {\n\t\treturn [REQUIRED_SCOPE];\n\t}\n\treturn value\n\t\t.split(\" \")\n\t\t.map((entry) => entry.trim())\n\t\t.filter((entry) => entry.length > 0);\n}\n\nfunction parseScopesPayload(value: unknown): string[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value\n\t\t.filter((entry): entry is string => typeof entry === \"string\")\n\t\t.map((entry) => entry.trim())\n\t\t.filter((entry) => entry.length > 0);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getMetadataString(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction getMetadataNumber(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): number | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"number\" && Number.isFinite(value)\n\t\t? value\n\t\t: undefined;\n}\n\nfunction getMetadataScopes(\n\tmetadata: Record<string, unknown> | undefined,\n): string[] {\n\treturn parseScopesPayload(metadata?.scopes);\n}\n\nfunction resolveProviderRef(\n\tmetadata: Record<string, unknown> | undefined,\n): EvalOpsProviderRef {\n\tconst fallback = getProviderRef();\n\tconst providerRef = isRecord(metadata?.providerRef)\n\t\t? metadata.providerRef\n\t\t: undefined;\n\treturn {\n\t\tprovider: getMetadataString(providerRef, \"provider\") ?? fallback.provider,\n\t\tenvironment:\n\t\t\tgetMetadataString(providerRef, \"environment\") ?? fallback.environment,\n\t\t...(getMetadataString(providerRef, \"credential_name\")\n\t\t\t? {\n\t\t\t\t\tcredential_name: getMetadataString(providerRef, \"credential_name\"),\n\t\t\t\t}\n\t\t\t: fallback.credential_name\n\t\t\t\t? { credential_name: fallback.credential_name }\n\t\t\t\t: {}),\n\t\t...(getMetadataString(providerRef, \"team_id\")\n\t\t\t? { team_id: getMetadataString(providerRef, \"team_id\") }\n\t\t\t: fallback.team_id\n\t\t\t\t? { team_id: fallback.team_id }\n\t\t\t\t: {}),\n\t};\n}\n\nfunction resolveStoredEvalOpsMetadata(\n\tmetadata?: Record<string, unknown>,\n): Record<string, unknown> | undefined {\n\tif (metadata) {\n\t\treturn metadata;\n\t}\n\tconst stored = loadOAuthCredentials(\"evalops\");\n\treturn stored?.metadata;\n}\n\nfunction resolveDelegationOrganizationId(\n\tmetadata: Record<string, unknown> | undefined,\n): string {\n\tconst organizationId =\n\t\tgetMetadataString(metadata, \"organizationId\") ??\n\t\tgetConfiguredOrganizationId();\n\tif (!organizationId) {\n\t\tthrow new Error(\n\t\t\t\"EvalOps delegation requires an organization id from /login evalops or MAESTRO_EVALOPS_ORG_ID.\",\n\t\t);\n\t}\n\treturn organizationId;\n}\n\nasync function getFreshEvalOpsAccessToken(\n\tmetadata?: Record<string, unknown>,\n): Promise<string | null> {\n\tconst credentials = loadOAuthCredentials(\"evalops\");\n\tif (!credentials) {\n\t\treturn null;\n\t}\n\tif (Date.now() < credentials.expires - 60_000) {\n\t\treturn credentials.access;\n\t}\n\tconst refreshed = await refreshEvalOpsToken(\n\t\tcredentials.refresh,\n\t\tmetadata ?? credentials.metadata,\n\t);\n\tsaveOAuthCredentials(\"evalops\", refreshed);\n\treturn refreshed.access;\n}\n\nexport function buildEvalOpsDelegationEnvironment(\n\tresult: Pick<\n\t\tEvalOpsDelegationTokenResult,\n\t\t\"organizationId\" | \"providerRef\" | \"token\"\n\t> &\n\t\tPartial<Pick<EvalOpsDelegationTokenResult, \"agentId\" | \"runId\">>,\n): Record<string, string> {\n\treturn {\n\t\tMAESTRO_EVALOPS_ACCESS_TOKEN: result.token,\n\t\tMAESTRO_EVALOPS_ORG_ID: result.organizationId,\n\t\tMAESTRO_EVALOPS_PROVIDER: result.providerRef.provider,\n\t\tMAESTRO_EVALOPS_ENVIRONMENT: result.providerRef.environment,\n\t\t...(result.agentId\n\t\t\t? {\n\t\t\t\t\tMAESTRO_AGENT_ID: result.agentId,\n\t\t\t\t\tMAESTRO_EVALOPS_AGENT_ID: result.agentId,\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(result.runId ? { MAESTRO_EVALOPS_RUN_ID: result.runId } : {}),\n\t\t...(result.providerRef.credential_name\n\t\t\t? {\n\t\t\t\t\tMAESTRO_EVALOPS_CREDENTIAL_NAME: result.providerRef.credential_name,\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(result.providerRef.team_id\n\t\t\t? { MAESTRO_EVALOPS_TEAM_ID: result.providerRef.team_id }\n\t\t\t: {}),\n\t};\n}\n\nexport async function issueEvalOpsDelegationToken(\n\trequest: EvalOpsDelegationTokenRequest,\n): Promise<EvalOpsDelegationTokenResult> {\n\tconst metadata = resolveStoredEvalOpsMetadata(request.metadata);\n\tconst identityBaseUrl =\n\t\tgetMetadataString(metadata, \"identityBaseUrl\") ?? getIdentityBaseUrl();\n\tconst deviceProof = await buildDesktopDeviceProof(\n\t\tidentityBaseUrl,\n\t\t\"delegation\",\n\t);\n\tconst token = request.token ?? (await getFreshEvalOpsAccessToken(metadata));\n\tif (!token) {\n\t\tthrow new Error(\n\t\t\t\"EvalOps delegation requires a valid access token. Run /login evalops first.\",\n\t\t);\n\t}\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.delegationTokens,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tagent_id: request.agentId,\n\t\t\t\tagent_type: request.agentType,\n\t\t\t\t...(request.capabilities?.length\n\t\t\t\t\t? { capabilities: request.capabilities }\n\t\t\t\t\t: {}),\n\t\t\t\trun_id: request.runId,\n\t\t\t\t...(request.scopes?.length ? { scopes: request.scopes } : {}),\n\t\t\t\t...(deviceProof ? { device_proof: deviceProof } : {}),\n\t\t\t\tsurface: request.surface,\n\t\t\t\t...(request.ttlSeconds ? { ttl_seconds: request.ttlSeconds } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\n\tlet payload: IdentityDelegationResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityDelegationResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and fall back to a generic error below.\n\t}\n\n\tif (!response.ok || !payload?.token || !payload.expires_at) {\n\t\tthrow new Error(\n\t\t\tpayload?.error ?? \"EvalOps delegation token request failed\",\n\t\t);\n\t}\n\n\treturn {\n\t\tagentId: payload.agent_id ?? request.agentId,\n\t\texpiresAt: parseTimestamp(payload.expires_at, \"expires_at\"),\n\t\torganizationId: resolveDelegationOrganizationId(metadata),\n\t\tproviderRef: resolveProviderRef(metadata),\n\t\trunId: payload.run_id ?? request.runId,\n\t\tscopesDenied: parseScopesPayload(payload.scopes_denied),\n\t\tscopesGranted: parseScopesPayload(payload.scopes_granted),\n\t\tscopesRequested: parseScopesPayload(payload.scopes_requested),\n\t\ttoken: payload.token,\n\t\ttokenType: payload.token_type ?? \"Bearer\",\n\t};\n}\n\nasync function startCallbackServer(): Promise<{\n\tserver: Server;\n\tgetResult: () => Promise<EvalOpsCallbackResult>;\n}> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet resultResolve: (value: EvalOpsCallbackResult) => void;\n\t\tlet resultReject: (error: Error) => void;\n\n\t\tconst resultPromise = new Promise<EvalOpsCallbackResult>((res, rej) => {\n\t\t\tresultResolve = res;\n\t\t\tresultReject = rej;\n\t\t});\n\n\t\tconst server = createServer((req: IncomingMessage, res: ServerResponse) => {\n\t\t\tconst requestUrl = new URL(req.url ?? \"\", CALLBACK_ORIGIN);\n\t\t\tif (requestUrl.pathname !== CALLBACK_PATH) {\n\t\t\t\tres.writeHead(404);\n\t\t\t\tres.end(\"Not found\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst error = requestUrl.searchParams.get(\"error\");\n\t\t\tif (error) {\n\t\t\t\tres.writeHead(400, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t`<html><body><h1>EvalOps Login Failed</h1><p>Error: ${error}</p><p>You can close this window.</p></body></html>`,\n\t\t\t\t);\n\t\t\t\tresultReject(new Error(`EvalOps identity login failed: ${error}`));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst accessToken = requestUrl.searchParams.get(\"access_token\");\n\t\t\tconst organizationId = requestUrl.searchParams.get(\"organization_id\");\n\t\t\tif (!accessToken || !organizationId) {\n\t\t\t\tres.writeHead(400, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t\"<html><body><h1>Invalid Callback</h1><p>Missing access_token or organization_id.</p><p>You can close this window.</p></body></html>\",\n\t\t\t\t);\n\t\t\t\tresultReject(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\"EvalOps callback was missing access_token or organization_id.\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst expiresAt = parseExpiresAt(\n\t\t\t\t\trequestUrl.searchParams.get(\"expires_at\"),\n\t\t\t\t);\n\t\t\t\tconst refreshToken =\n\t\t\t\t\trequestUrl.searchParams.get(\"refresh_token\")?.trim() || undefined;\n\t\t\t\tconst refreshExpiresAtValue =\n\t\t\t\t\trequestUrl.searchParams.get(\"refresh_expires_at\");\n\t\t\t\tconst refreshExpiresAt = refreshExpiresAtValue\n\t\t\t\t\t? parseTimestamp(refreshExpiresAtValue, \"refresh_expires_at\")\n\t\t\t\t\t: undefined;\n\t\t\t\tconst scopes = parseScopes(requestUrl.searchParams.get(\"scope\"));\n\n\t\t\t\tres.writeHead(200, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t\"<html><body><h1>Authentication Successful</h1><p>You can close this window and return to Maestro.</p></body></html>\",\n\t\t\t\t);\n\t\t\t\tresultResolve({\n\t\t\t\t\taccessToken,\n\t\t\t\t\texpiresAt,\n\t\t\t\t\torganizationId,\n\t\t\t\t\trefreshExpiresAt,\n\t\t\t\t\trefreshToken,\n\t\t\t\t\tscopes,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tres.writeHead(400, { \"Content-Type\": \"text/html\" });\n\t\t\t\tres.end(\n\t\t\t\t\t`<html><body><h1>Invalid Callback</h1><p>${error instanceof Error ? error.message : String(error)}</p><p>You can close this window.</p></body></html>`,\n\t\t\t\t);\n\t\t\t\tresultReject(error instanceof Error ? error : new Error(String(error)));\n\t\t\t}\n\t\t});\n\n\t\tserver.on(\"error\", (error: NodeJS.ErrnoException) => {\n\t\t\tif (error.code === \"EADDRINUSE\") {\n\t\t\t\treject(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t`Port ${CALLBACK_PORT} is already in use. Close the other process and retry /login evalops.`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treject(error);\n\t\t});\n\n\t\tserver.listen(CALLBACK_PORT, \"127.0.0.1\", () => {\n\t\t\tresolve({\n\t\t\t\tserver,\n\t\t\t\tgetResult: () => resultPromise,\n\t\t\t});\n\t\t});\n\t});\n}\n\nfunction closeServer(server: Server): Promise<void> {\n\treturn new Promise((resolve) => {\n\t\tserver.close(() => resolve());\n\t});\n}\n\nasync function startIdentityLogin(\n\tidentityBaseUrl: string,\n\torganizationId: string | undefined,\n\tonStatus?: (status: string) => void,\n): Promise<string> {\n\tonStatus?.(\"Requesting EvalOps managed login URL...\");\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.authGoogleStart,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\tredirect_uri: CALLBACK_URI,\n\t\t\t\tresponse_mode: \"query\",\n\t\t\t\t...(organizationId ? { organization_id: organizationId } : {}),\n\t\t\t\tprompt: \"select_account\",\n\t\t\t\tscopes: [REQUIRED_SCOPE],\n\t\t\t}),\n\t\t},\n\t);\n\n\tlet payload: IdentityStartResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityStartResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and fall back to a generic message below.\n\t}\n\n\tif (!response.ok || !payload?.authorization_url) {\n\t\tif (payload?.error === \"redirect_uri_not_allowed\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Identity rejected ${CALLBACK_URI}. Add it to IDENTITY_GOOGLE_ALLOWED_REDIRECT_URIS and retry.`,\n\t\t\t);\n\t\t}\n\t\tthrow new Error(payload?.error ?? \"EvalOps identity start failed\");\n\t}\n\n\treturn payload.authorization_url;\n}\n\nexport async function loginEvalOps(\n\tonAuthUrl: (url: string) => void,\n\tonStatus?: (status: string) => void,\n): Promise<void> {\n\tconst identityBaseUrl = getIdentityBaseUrl();\n\tconst organizationId = getConfiguredOrganizationId();\n\tconst providerRef = getProviderRef();\n\tconst { server, getResult } = await startCallbackServer();\n\n\ttry {\n\t\tconst authorizationUrl = await startIdentityLogin(\n\t\t\tidentityBaseUrl,\n\t\t\torganizationId,\n\t\t\tonStatus,\n\t\t);\n\t\tonStatus?.(\"Waiting for EvalOps identity callback...\");\n\t\tonAuthUrl(authorizationUrl);\n\n\t\tconst result = await Promise.race([\n\t\t\tgetResult(),\n\t\t\tnew Promise<EvalOpsCallbackResult>((_, reject) => {\n\t\t\t\tconst timeout = setTimeout(\n\t\t\t\t\t() => reject(new Error(\"EvalOps login timed out after 5 minutes\")),\n\t\t\t\t\t5 * 60 * 1000,\n\t\t\t\t);\n\t\t\t\ttimeout.unref?.();\n\t\t\t}),\n\t\t]);\n\n\t\tconst deviceId = await enrollDesktopDeviceIdentity(\n\t\t\tidentityBaseUrl,\n\t\t\tresult.accessToken,\n\t\t\tprocess.env.npm_package_version,\n\t\t);\n\n\t\tconst credentials: OAuthCredentials = {\n\t\t\ttype: \"oauth\",\n\t\t\taccess: result.accessToken,\n\t\t\trefresh: result.refreshToken ?? \"\",\n\t\t\texpires: result.expiresAt,\n\t\t\tmetadata: {\n\t\t\t\tidentityBaseUrl,\n\t\t\t\torganizationId: result.organizationId,\n\t\t\t\tproviderRef,\n\t\t\t\t...(deviceId ? { deviceId } : {}),\n\t\t\t\t...(result.refreshExpiresAt\n\t\t\t\t\t? { refreshExpiresAt: result.refreshExpiresAt }\n\t\t\t\t\t: {}),\n\t\t\t\tscopes: result.scopes,\n\t\t\t},\n\t\t};\n\t\tsaveOAuthCredentials(\"evalops\", credentials);\n\t\tlogger.info(\"EvalOps managed login successful\", {\n\t\t\torganizationId: result.organizationId,\n\t\t\tprovider: providerRef.provider,\n\t\t\tenvironment: providerRef.environment,\n\t\t});\n\t} finally {\n\t\tawait closeServer(server);\n\t}\n}\n\nexport async function refreshEvalOpsToken(\n\trefreshToken: string,\n\tmetadata?: Record<string, unknown>,\n): Promise<OAuthCredentials> {\n\tif (!refreshToken) {\n\t\tthrow new Error(\"EvalOps refresh token missing. Run /login evalops again.\");\n\t}\n\n\tconst identityBaseUrl =\n\t\tgetMetadataString(metadata, \"identityBaseUrl\") ?? getIdentityBaseUrl();\n\tconst deviceProof = await buildDesktopDeviceProof(identityBaseUrl, \"refresh\");\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.tokenRefresh,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({\n\t\t\t\trefresh_token: refreshToken,\n\t\t\t\t...(deviceProof ? { device_proof: deviceProof } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\n\tlet payload: IdentityRefreshResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityRefreshResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and surface a generic error below.\n\t}\n\n\tif (!response.ok || !payload?.access_token || !payload.expires_at) {\n\t\tthrow new Error(payload?.error ?? \"EvalOps token refresh failed\");\n\t}\n\n\tconst expires = parseTimestamp(payload.expires_at, \"expires_at\");\n\tconst nextRefreshToken =\n\t\ttypeof payload.refresh_token === \"string\" &&\n\t\tpayload.refresh_token.trim().length > 0\n\t\t\t? payload.refresh_token\n\t\t\t: refreshToken;\n\tconst scopes = parseScopesPayload(payload.scopes);\n\tconst refreshExpiresAt =\n\t\tpayload.refresh_expires_at != null\n\t\t\t? parseTimestamp(payload.refresh_expires_at, \"refresh_expires_at\")\n\t\t\t: getMetadataNumber(metadata, \"refreshExpiresAt\");\n\n\treturn {\n\t\ttype: \"oauth\",\n\t\taccess: payload.access_token,\n\t\trefresh: nextRefreshToken,\n\t\texpires,\n\t\tmetadata: {\n\t\t\t...metadata,\n\t\t\tidentityBaseUrl,\n\t\t\torganizationId:\n\t\t\t\ttypeof payload.organization_id === \"string\" &&\n\t\t\t\tpayload.organization_id.length > 0\n\t\t\t\t\t? payload.organization_id\n\t\t\t\t\t: getMetadataString(metadata, \"organizationId\"),\n\t\t\t...(refreshExpiresAt ? { refreshExpiresAt } : {}),\n\t\t\tscopes: scopes.length > 0 ? scopes : getMetadataScopes(metadata),\n\t\t},\n\t};\n}\n\nexport async function revokeEvalOpsToken(\n\trefreshToken: string,\n\tmetadata?: Record<string, unknown>,\n): Promise<void> {\n\tif (!refreshToken) {\n\t\treturn;\n\t}\n\n\tconst identityBaseUrl =\n\t\tgetMetadataString(metadata, \"identityBaseUrl\") ?? getIdentityBaseUrl();\n\tconst response = await fetchIdentity(\n\t\tidentityBaseUrl,\n\t\tPLATFORM_HTTP_ROUTES.identity.tokenRevoke,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({ refresh_token: refreshToken }),\n\t\t},\n\t);\n\n\tlet payload: IdentityRevokeResponse | undefined;\n\ttry {\n\t\tpayload = (await response.json()) as IdentityRevokeResponse;\n\t} catch {\n\t\t// Ignore JSON parse failure and surface a generic error below.\n\t}\n\n\tif (!response.ok) {\n\t\tthrow new Error(payload?.error ?? \"EvalOps token revoke failed\");\n\t}\n}\n"]}
|
|
@@ -230,6 +230,7 @@ export declare const PLATFORM_CONNECT_METHODS: {
|
|
|
230
230
|
};
|
|
231
231
|
export declare const PLATFORM_HTTP_ROUTES: {
|
|
232
232
|
readonly identity: {
|
|
233
|
+
readonly apiKeys: "/v1/api-keys";
|
|
233
234
|
readonly authGoogleStart: "/v1/auth/google/start";
|
|
234
235
|
readonly deviceChallenges: "/v1/device-challenges";
|
|
235
236
|
readonly devices: "/v1/devices";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-services.d.ts","sourceRoot":"","sources":["../../src/platform/core-services.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAW5B,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqN3B,CAAC;AAEX,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"core-services.d.ts","sourceRoot":"","sources":["../../src/platform/core-services.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAW5B,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqN3B,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAavB,CAAC;AAEX,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,+BAA+B,GACzC,MAAM,CAER"}
|
|
@@ -226,6 +226,7 @@ export const PLATFORM_CONNECT_METHODS = {
|
|
|
226
226
|
};
|
|
227
227
|
export const PLATFORM_HTTP_ROUTES = {
|
|
228
228
|
identity: {
|
|
229
|
+
apiKeys: "/v1/api-keys",
|
|
229
230
|
authGoogleStart: "/v1/auth/google/start",
|
|
230
231
|
deviceChallenges: "/v1/device-challenges",
|
|
231
232
|
devices: "/v1/devices",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-services.js","sourceRoot":"","sources":["../../src/platform/core-services.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PlatformConnectMethodDescriptor {\n\treadonly service: string;\n\treadonly method: string;\n}\n\nexport const PLATFORM_CONNECT_SERVICES = {\n\tagentRuntime: \"agentruntime.v1.AgentRuntimeService\",\n\tapprovals: \"approvals.v1.ApprovalService\",\n\tconnectors: \"connectors.v1.ConnectorService\",\n\tgovernance: \"governance.v1.GovernanceService\",\n\tllmGateway: \"llmgateway.v1.GatewayService\",\n\tmaestroTimeline: \"maestro.v1.MaestroTimelineService\",\n\tmeter: \"meter.v1.MeterService\",\n\tprompts: \"prompts.v1.PromptService\",\n\tremoteRunner: \"remoterunner.v1.RemoteRunnerService\",\n\ttoolexecution: \"toolexecution.v1.ToolExecutionService\",\n} as const;\n\nexport const PLATFORM_CONNECT_METHODS = {\n\tagentRuntime: {\n\t\tclaimNextRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"ClaimNextRun\",\n\t\t},\n\t\tcompleteRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"CompleteRun\",\n\t\t},\n\t\tfailRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"FailRun\",\n\t\t},\n\t\tgetRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"GetRun\",\n\t\t},\n\t\thandleTrigger: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"HandleTrigger\",\n\t\t},\n\t\tlistRunEvents: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"ListRunEvents\",\n\t\t},\n\t\trecordRunCheckpoint: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"RecordRunCheckpoint\",\n\t\t},\n\t\trecordRunCost: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"RecordRunCost\",\n\t\t},\n\t\trecordRunStep: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"RecordRunStep\",\n\t\t},\n\t\tresumeRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"ResumeRun\",\n\t\t},\n\t\twaitRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"WaitRun\",\n\t\t},\n\t},\n\tapprovals: {\n\t\trequestApproval: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.approvals,\n\t\t\tmethod: \"RequestApproval\",\n\t\t},\n\t\tresolveApproval: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.approvals,\n\t\t\tmethod: \"ResolveApproval\",\n\t\t},\n\t},\n\tconnectors: {\n\t\tgetCapabilities: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetCapabilities\",\n\t\t},\n\t\tgetConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetConnection\",\n\t\t},\n\t\tgetDegradedReadPolicy: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetDegradedReadPolicy\",\n\t\t},\n\t\tgetHealth: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetHealth\",\n\t\t},\n\t\tlistConnections: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"ListConnections\",\n\t\t},\n\t\trefreshConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"RefreshConnection\",\n\t\t},\n\t\tregisterConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"RegisterConnection\",\n\t\t},\n\t\tresolveSourceOfTruth: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"ResolveSourceOfTruth\",\n\t\t},\n\t\trevokeConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"RevokeConnection\",\n\t\t},\n\t\tsetSourceOfTruthPolicy: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"SetSourceOfTruthPolicy\",\n\t\t},\n\t},\n\tgovernance: {\n\t\tevaluateAction: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.governance,\n\t\t\tmethod: \"EvaluateAction\",\n\t\t},\n\t},\n\tllmGateway: {\n\t\tcreateChatCompletion: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateChatCompletion\",\n\t\t},\n\t\tcreateEmbedding: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateEmbedding\",\n\t\t},\n\t\tcreateMessage: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateMessage\",\n\t\t},\n\t\tcreateResponse: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateResponse\",\n\t\t},\n\t\tgetInfo: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"GetInfo\",\n\t\t},\n\t},\n\tmaestroTimeline: {\n\t\tlistRunTimeline: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.maestroTimeline,\n\t\t\tmethod: \"ListRunTimeline\",\n\t\t},\n\t},\n\tmeter: {\n\t\tgetEventDashboard: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.meter,\n\t\t\tmethod: \"GetEventDashboard\",\n\t\t},\n\t\tingestWideEvent: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.meter,\n\t\t\tmethod: \"IngestWideEvent\",\n\t\t},\n\t\tqueryWideEvents: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.meter,\n\t\t\tmethod: \"QueryWideEvents\",\n\t\t},\n\t},\n\tprompts: {\n\t\tresolve: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.prompts,\n\t\t\tmethod: \"Resolve\",\n\t\t},\n\t},\n\tremoteRunner: {\n\t\tcreateRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"CreateRunnerSession\",\n\t\t},\n\t\textendRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"ExtendRunnerSession\",\n\t\t},\n\t\tgetRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"GetRunnerSession\",\n\t\t},\n\t\tgetStatus: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"GetStatus\",\n\t\t},\n\t\tlistRunnerSessionEvents: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"ListRunnerSessionEvents\",\n\t\t},\n\t\tlistRunnerSessions: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"ListRunnerSessions\",\n\t\t},\n\t\tmintAttachToken: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"MintAttachToken\",\n\t\t},\n\t\trevokeAttachToken: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"RevokeAttachToken\",\n\t\t},\n\t\tstopRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"StopRunnerSession\",\n\t\t},\n\t},\n\ttoolexecution: {\n\t\texecuteTool: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"ExecuteTool\",\n\t\t},\n\t\tgetToolExecution: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"GetToolExecution\",\n\t\t},\n\t\tlistToolExecutions: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"ListToolExecutions\",\n\t\t},\n\t\trecordToolExecutionOutput: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"RecordToolExecutionOutput\",\n\t\t},\n\t\tresumeToolExecution: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"ResumeToolExecution\",\n\t\t},\n\t},\n} as const;\n\nexport const PLATFORM_HTTP_ROUTES = {\n\tidentity: {\n\t\tauthGoogleStart: \"/v1/auth/google/start\",\n\t\tdeviceChallenges: \"/v1/device-challenges\",\n\t\tdevices: \"/v1/devices\",\n\t\ttokenRefresh: \"/v1/tokens/refresh\",\n\t\ttokenRevoke: \"/v1/tokens/revoke\",\n\t\tdelegationTokens: \"/v1/delegation-tokens\",\n\t},\n\tmemory: {\n\t\trecall: \"/v1/memories/recall\",\n\t},\n} as const;\n\nexport function platformConnectServicePath(service: string): string {\n\treturn `/${service}`;\n}\n\nexport function platformConnectMethodPath(\n\tdescriptor: PlatformConnectMethodDescriptor,\n): string {\n\treturn `${platformConnectServicePath(descriptor.service)}/${descriptor.method}`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"core-services.js","sourceRoot":"","sources":["../../src/platform/core-services.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PlatformConnectMethodDescriptor {\n\treadonly service: string;\n\treadonly method: string;\n}\n\nexport const PLATFORM_CONNECT_SERVICES = {\n\tagentRuntime: \"agentruntime.v1.AgentRuntimeService\",\n\tapprovals: \"approvals.v1.ApprovalService\",\n\tconnectors: \"connectors.v1.ConnectorService\",\n\tgovernance: \"governance.v1.GovernanceService\",\n\tllmGateway: \"llmgateway.v1.GatewayService\",\n\tmaestroTimeline: \"maestro.v1.MaestroTimelineService\",\n\tmeter: \"meter.v1.MeterService\",\n\tprompts: \"prompts.v1.PromptService\",\n\tremoteRunner: \"remoterunner.v1.RemoteRunnerService\",\n\ttoolexecution: \"toolexecution.v1.ToolExecutionService\",\n} as const;\n\nexport const PLATFORM_CONNECT_METHODS = {\n\tagentRuntime: {\n\t\tclaimNextRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"ClaimNextRun\",\n\t\t},\n\t\tcompleteRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"CompleteRun\",\n\t\t},\n\t\tfailRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"FailRun\",\n\t\t},\n\t\tgetRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"GetRun\",\n\t\t},\n\t\thandleTrigger: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"HandleTrigger\",\n\t\t},\n\t\tlistRunEvents: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"ListRunEvents\",\n\t\t},\n\t\trecordRunCheckpoint: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"RecordRunCheckpoint\",\n\t\t},\n\t\trecordRunCost: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"RecordRunCost\",\n\t\t},\n\t\trecordRunStep: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"RecordRunStep\",\n\t\t},\n\t\tresumeRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"ResumeRun\",\n\t\t},\n\t\twaitRun: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.agentRuntime,\n\t\t\tmethod: \"WaitRun\",\n\t\t},\n\t},\n\tapprovals: {\n\t\trequestApproval: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.approvals,\n\t\t\tmethod: \"RequestApproval\",\n\t\t},\n\t\tresolveApproval: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.approvals,\n\t\t\tmethod: \"ResolveApproval\",\n\t\t},\n\t},\n\tconnectors: {\n\t\tgetCapabilities: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetCapabilities\",\n\t\t},\n\t\tgetConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetConnection\",\n\t\t},\n\t\tgetDegradedReadPolicy: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetDegradedReadPolicy\",\n\t\t},\n\t\tgetHealth: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"GetHealth\",\n\t\t},\n\t\tlistConnections: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"ListConnections\",\n\t\t},\n\t\trefreshConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"RefreshConnection\",\n\t\t},\n\t\tregisterConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"RegisterConnection\",\n\t\t},\n\t\tresolveSourceOfTruth: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"ResolveSourceOfTruth\",\n\t\t},\n\t\trevokeConnection: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"RevokeConnection\",\n\t\t},\n\t\tsetSourceOfTruthPolicy: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.connectors,\n\t\t\tmethod: \"SetSourceOfTruthPolicy\",\n\t\t},\n\t},\n\tgovernance: {\n\t\tevaluateAction: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.governance,\n\t\t\tmethod: \"EvaluateAction\",\n\t\t},\n\t},\n\tllmGateway: {\n\t\tcreateChatCompletion: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateChatCompletion\",\n\t\t},\n\t\tcreateEmbedding: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateEmbedding\",\n\t\t},\n\t\tcreateMessage: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateMessage\",\n\t\t},\n\t\tcreateResponse: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"CreateResponse\",\n\t\t},\n\t\tgetInfo: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.llmGateway,\n\t\t\tmethod: \"GetInfo\",\n\t\t},\n\t},\n\tmaestroTimeline: {\n\t\tlistRunTimeline: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.maestroTimeline,\n\t\t\tmethod: \"ListRunTimeline\",\n\t\t},\n\t},\n\tmeter: {\n\t\tgetEventDashboard: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.meter,\n\t\t\tmethod: \"GetEventDashboard\",\n\t\t},\n\t\tingestWideEvent: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.meter,\n\t\t\tmethod: \"IngestWideEvent\",\n\t\t},\n\t\tqueryWideEvents: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.meter,\n\t\t\tmethod: \"QueryWideEvents\",\n\t\t},\n\t},\n\tprompts: {\n\t\tresolve: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.prompts,\n\t\t\tmethod: \"Resolve\",\n\t\t},\n\t},\n\tremoteRunner: {\n\t\tcreateRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"CreateRunnerSession\",\n\t\t},\n\t\textendRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"ExtendRunnerSession\",\n\t\t},\n\t\tgetRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"GetRunnerSession\",\n\t\t},\n\t\tgetStatus: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"GetStatus\",\n\t\t},\n\t\tlistRunnerSessionEvents: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"ListRunnerSessionEvents\",\n\t\t},\n\t\tlistRunnerSessions: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"ListRunnerSessions\",\n\t\t},\n\t\tmintAttachToken: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"MintAttachToken\",\n\t\t},\n\t\trevokeAttachToken: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"RevokeAttachToken\",\n\t\t},\n\t\tstopRunnerSession: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.remoteRunner,\n\t\t\tmethod: \"StopRunnerSession\",\n\t\t},\n\t},\n\ttoolexecution: {\n\t\texecuteTool: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"ExecuteTool\",\n\t\t},\n\t\tgetToolExecution: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"GetToolExecution\",\n\t\t},\n\t\tlistToolExecutions: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"ListToolExecutions\",\n\t\t},\n\t\trecordToolExecutionOutput: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"RecordToolExecutionOutput\",\n\t\t},\n\t\tresumeToolExecution: {\n\t\t\tservice: PLATFORM_CONNECT_SERVICES.toolexecution,\n\t\t\tmethod: \"ResumeToolExecution\",\n\t\t},\n\t},\n} as const;\n\nexport const PLATFORM_HTTP_ROUTES = {\n\tidentity: {\n\t\tapiKeys: \"/v1/api-keys\",\n\t\tauthGoogleStart: \"/v1/auth/google/start\",\n\t\tdeviceChallenges: \"/v1/device-challenges\",\n\t\tdevices: \"/v1/devices\",\n\t\ttokenRefresh: \"/v1/tokens/refresh\",\n\t\ttokenRevoke: \"/v1/tokens/revoke\",\n\t\tdelegationTokens: \"/v1/delegation-tokens\",\n\t},\n\tmemory: {\n\t\trecall: \"/v1/memories/recall\",\n\t},\n} as const;\n\nexport function platformConnectServicePath(service: string): string {\n\treturn `/${service}`;\n}\n\nexport function platformConnectMethodPath(\n\tdescriptor: PlatformConnectMethodDescriptor,\n): string {\n\treturn `${platformConnectServicePath(descriptor.service)}/${descriptor.method}`;\n}\n"]}
|
package/dist/providers/auth.d.ts
CHANGED
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
*/
|
|
53
53
|
export type AuthMode = "auto" | "api-key" | "claude";
|
|
54
54
|
export type AuthCredentialType = "api-key" | "anthropic-oauth";
|
|
55
|
-
export type AuthCredentialSource = "explicit" | "env" | "custom_literal" | "custom_env" | "anthropic_oauth_env" | "anthropic_oauth_file" | "evalops_oauth_file" | "openai_oauth_file" | "openai_codex_oauth_file" | "google_oauth_file" | "github_copilot_oauth_file";
|
|
55
|
+
export type AuthCredentialSource = "explicit" | "env" | "custom_literal" | "custom_env" | "anthropic_oauth_env" | "anthropic_oauth_file" | "evalops_agent_key_file" | "evalops_oauth_file" | "openai_oauth_file" | "openai_codex_oauth_file" | "google_oauth_file" | "github_copilot_oauth_file";
|
|
56
56
|
export interface AuthCredential {
|
|
57
57
|
provider: string;
|
|
58
58
|
token: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAaH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAC7B,UAAU,GACV,KAAK,GACL,gBAAgB,GAChB,YAAY,GACZ,qBAAqB,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,mBAAmB,GACnB,yBAAyB,GACzB,mBAAmB,GACnB,2BAA2B,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAaH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAC7B,UAAU,GACV,KAAK,GACL,gBAAgB,GAChB,YAAY,GACZ,qBAAqB,GACrB,sBAAsB,GACtB,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,yBAAyB,GACzB,mBAAmB,GACnB,2BAA2B,CAAC;AAE/B,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;AAqM9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAmL7E"}
|
package/dist/providers/auth.js
CHANGED
|
@@ -91,6 +91,29 @@ function getNonEmptyString(value) {
|
|
|
91
91
|
? value.trim()
|
|
92
92
|
: undefined;
|
|
93
93
|
}
|
|
94
|
+
function getStringArray(value) {
|
|
95
|
+
return Array.isArray(value)
|
|
96
|
+
? value
|
|
97
|
+
.map((entry) => (typeof entry === "string" ? entry.trim() : ""))
|
|
98
|
+
.filter((entry) => entry.length > 0)
|
|
99
|
+
: [];
|
|
100
|
+
}
|
|
101
|
+
function isFutureTimestamp(value) {
|
|
102
|
+
const timestamp = getNonEmptyString(value);
|
|
103
|
+
return !timestamp || Date.parse(timestamp) > Date.now();
|
|
104
|
+
}
|
|
105
|
+
function resolveEvalOpsAgentMcpAPIKey(metadata) {
|
|
106
|
+
const agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;
|
|
107
|
+
const apiKey = getNonEmptyString(agentMcp?.apiKey);
|
|
108
|
+
if (!apiKey || !isFutureTimestamp(agentMcp?.expiresAt)) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
const scopes = getStringArray(agentMcp?.scopes);
|
|
112
|
+
if (scopes.length > 0 && !scopes.includes("llm_gateway:invoke")) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
return apiKey;
|
|
116
|
+
}
|
|
94
117
|
function resolveEvalOpsOrganizationId(metadata) {
|
|
95
118
|
const candidate = getNonEmptyString(metadata?.organizationId);
|
|
96
119
|
if (candidate && candidate.trim().length > 0) {
|
|
@@ -199,10 +222,15 @@ export function createAuthResolver(options) {
|
|
|
199
222
|
};
|
|
200
223
|
}
|
|
201
224
|
if (isEvalOpsManagedProvider(provider) && options.mode !== "api-key") {
|
|
225
|
+
const credentials = loadOAuthCredentials("evalops");
|
|
226
|
+
const agentAPIKey = resolveEvalOpsAgentMcpAPIKey(credentials?.metadata);
|
|
227
|
+
if (agentAPIKey) {
|
|
228
|
+
return buildEvalOpsCredential(provider, agentAPIKey, "evalops_agent_key_file", credentials?.metadata);
|
|
229
|
+
}
|
|
202
230
|
const oauthToken = await getOAuthToken("evalops");
|
|
203
231
|
if (oauthToken) {
|
|
204
|
-
const
|
|
205
|
-
return buildEvalOpsCredential(provider, oauthToken, "evalops_oauth_file", credentials?.metadata);
|
|
232
|
+
const refreshedCredentials = loadOAuthCredentials("evalops");
|
|
233
|
+
return buildEvalOpsCredential(provider, oauthToken, "evalops_oauth_file", refreshedCredentials?.metadata ?? credentials?.metadata);
|
|
206
234
|
}
|
|
207
235
|
}
|
|
208
236
|
if (isOpenAICodexProvider(provider) && options.mode !== "api-key") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACN,mCAAmC,EACnC,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAqCjE,MAAM,wBAAwB,GAAG;IAChC,mBAAmB;IACnB,uBAAuB;IACvB,wBAAwB;CACxB,CAAC;AAEF,SAAS,gBAAgB,CAAC,QAAgB;IACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,CACN,UAAU,KAAK,cAAc;QAC7B,CAAC,UAAU,KAAK,QAAQ;YACvB,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAChC,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,UAAU,KAAK,cAAc,CAAC;AACtC,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,CACN,UAAU,KAAK,mBAAmB,IAAI,UAAU,KAAK,oBAAoB,CACzE,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAChD,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC;AACpD,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAgB;IACrD,OAAO,mCAAmC,CAAC,QAAQ,CAAC,EAAE,kBAAkB;QACvE,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CACpC,QAAkC;IAElC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,KAAK,MAAM,MAAM,IAAI;QACpB,wBAAwB;QACxB,yBAAyB;QACzB,2BAA2B;KAC3B,EAAE,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CACjC,QAAgB,EAChB,QAAkC;IAElC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;QAClD,CAAC,CAAC,QAAQ,CAAC,WAAW;QACtB,CAAC,CAAC,IAAI,CAAC;IACR,MAAM,UAAU,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,kBAAkB,GACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE,CAAC;IAClD,MAAM,gBAAgB,GACrB,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS;QACzC,CAAC,CAAC,UAAU,CAAC,mBAAmB;QAChC,CAAC,CAAC,SAAS,CAAC;QACb,gBAAgB;QAChB,kBAAkB;QAClB,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,CAAC;IACV,MAAM,WAAW,GAChB,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE;QAC/C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,EAAE;QACnD,MAAM,CAAC;IACR,MAAM,cAAc,GACnB,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,IAAI,EAAE,CAAC;IACzD,MAAM,MAAM,GACX,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE;QAC3C,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC;IACjD,OAAO;QACN,QAAQ,EAAE,gBAAgB;QAC1B,WAAW;QACX,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACrC,QAAkC;IAElC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC;QACd,QAAQ,EACP,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;YACpC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE;YAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE;QACrC,MAAM,EACL,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC;YAClC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE;QAC3C,UAAU,EACT,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC;YACtC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QACvC,OAAO,EACN,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE;YACnC,SAAS;KACV,CAAC,CAAC,MAAM,CACR,CAAC,KAAK,EAA6B,EAAE,CACpC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC3D,CACD,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC9B,QAAgB,EAChB,KAAa,EACb,MAA4B,EAC5B,QAAkC,EAClC,MAAe;IAEf,MAAM,cAAc,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO;QACN,QAAQ;QACR,KAAK;QACL,IAAI,EAAE,4BAA4B,CAAC,QAAQ,CAAC;QAC5C,MAAM;QACN,MAAM;QACN,OAAO,EAAE;YACR,mBAAmB,EAAE,cAAc;SACnC;QACD,QAAQ;QACR,WAAW,EAAE;YACZ,QAAQ,EAAE,6BAA6B,CAAC,QAAQ,CAAC;YACjD,YAAY,EAAE,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC3D;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACnD,OAAO,KAAK,EAAE,QAAgB,EAAuC,EAAE;QACtE,IACC,6BAA6B,CAAC,QAAQ,CAAC;YACvC,CAAC,8BAA8B,EAAE,EAChC,CAAC;YACF,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,OAAO,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;gBACN,QAAQ;gBACR,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,UAAU;aAClB,CAAC;QACH,CAAC;QAED,IAAI,wBAAwB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBACpD,OAAO,sBAAsB,CAC5B,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,WAAW,EAAE,QAAQ,CACrB,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC;YACvD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;gBACzD,MAAM,SAAS,GACd,OAAO,WAAW,EAAE,QAAQ,EAAE,SAAS,KAAK,QAAQ;oBACnD,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS;oBAChC,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO;oBACN,QAAQ;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,yBAAyB;oBACjC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;oBACpE,QAAQ,EAAE,WAAW,EAAE,QAAQ;iBAC/B,CAAC;YACH,CAAC;QACF,CAAC;QAED,qBAAqB;QACrB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9D,eAAe;YACf,MAAM,SAAS,GAAG,MAAM,6BAA6B,EAAE,CAAC;YACxD,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;gBACvB,OAAO;oBACN,QAAQ;oBACR,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,mBAAmB;oBAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;iBAClC,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;gBAC3D,OAAO;oBACN,QAAQ;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,2BAA2B;oBACnC,QAAQ,EAAE,WAAW,EAAE,QAAQ;iBAC/B,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,yBAAyB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,aAAa,GAClB,kBAAkB,KAAK,oBAAoB;gBAC1C,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,mBAAmB,CAAC;YACxB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;YACtD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;gBACxD,MAAM,SAAS,GACd,OAAO,WAAW,EAAE,QAAQ,EAAE,SAAS,KAAK,QAAQ;oBACnD,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS;oBAChC,CAAC,CAAC,SAAS,CAAC;gBACd,IAAI,SAAS,EAAE,CAAC;oBACf,OAAO;wBACN,QAAQ;wBACR,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;wBACvD,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,mBAAmB;wBAC3B,QAAQ,EAAE,WAAW,EAAE,QAAQ;qBAC/B,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,oBAAoB,GACzB,kBAAkB,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QAElE,IAAI,oBAAoB,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC/D,MAAM;gBACN,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;aAClC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;gBAC1B,OAAO;oBACN,QAAQ;oBACR,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,qBAAqB;oBAC7B,MAAM,EAAE,aAAa,CAAC,MAAM;iBAC5B,CAAC;YACH,CAAC;YAED,gCAAgC;YAChC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBACtD,OAAO;oBACN,QAAQ;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,sBAAsB;oBAC9B,QAAQ,EAAE,WAAW,EAAE,QAAQ;iBAC/B,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,OAAO,sBAAsB,CAC5B,QAAQ,EACR,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,MAAM,EACb,SAAS,EACT,MAAM,CAAC,MAAM,CACb,CAAC;YACH,CAAC;YACD,OAAO;gBACN,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,GAAG;gBACjB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;aACrB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;AACH,CAAC","sourcesContent":["/**\n * Authentication Resolver - Unified Credential Resolution\n *\n * This module provides a unified authentication resolver that handles\n * multiple credential sources and authentication modes for all supported\n * AI providers. It abstracts the complexity of OAuth, API keys, and\n * environment variables into a single interface.\n *\n * ## Authentication Modes\n *\n * | Mode | Description |\n * |----------|------------------------------------------------|\n * | auto | Try OAuth first, fallback to API keys (default)|\n * | api-key | Only use API keys, skip OAuth |\n * | claude | Only use Anthropic OAuth, fail if unavailable |\n *\n * ## Credential Resolution Order\n *\n * 1. **Explicit API key**: Passed directly via options\n * 2. **OAuth tokens**: Provider-specific OAuth flows (if mode allows)\n * 3. **Environment variables**: Standard env var lookup\n * 4. **Custom providers**: From models registry configuration\n *\n * ## Credential Sources\n *\n * | Source | Description |\n * |---------------------|------------------------------------------|\n * | explicit | Passed directly to resolver |\n * | env | From environment variable |\n * | custom_literal | Hardcoded in custom provider config |\n * | custom_env | Env var from custom provider config |\n * | anthropic_oauth_env | Anthropic OAuth token from env |\n * | anthropic_oauth_file| Anthropic OAuth from stored credentials |\n * | evalops_oauth_file | EvalOps managed OAuth from stored credentials |\n * | openai_oauth_file | OpenAI OAuth from stored credentials |\n * | openai_codex_oauth_file | OpenAI Codex ChatGPT OAuth from stored credentials |\n * | google_oauth_file | Google OAuth from stored credentials |\n *\n * ## Example\n *\n * ```typescript\n * const resolver = createAuthResolver({ mode: 'auto' });\n * const credential = await resolver('anthropic');\n *\n * if (credential) {\n * console.log(`Using ${credential.type} from ${credential.source}`);\n * // Use credential.token for API requests\n * }\n * ```\n *\n * @module providers/auth\n */\n\nimport { getOAuthToken } from \"../oauth/index.js\";\nimport { loadOAuthCredentials } from \"../oauth/storage.js\";\nimport { lookupApiKey } from \"./api-keys.js\";\nimport {\n\tgetEvalOpsManagedProviderDefinition,\n\tisEvalOpsManagedGatewayEnabled,\n\tisEvalOpsManagedProvider,\n\tisKnownEvalOpsManagedProvider,\n} from \"./evalops-managed.js\";\nimport { getFreshOpenAIOAuthCredential } from \"./openai-auth.js\";\n\nexport type AuthMode = \"auto\" | \"api-key\" | \"claude\";\n\nexport type AuthCredentialType = \"api-key\" | \"anthropic-oauth\";\n\nexport type AuthCredentialSource =\n\t| \"explicit\"\n\t| \"env\"\n\t| \"custom_literal\"\n\t| \"custom_env\"\n\t| \"anthropic_oauth_env\"\n\t| \"anthropic_oauth_file\"\n\t| \"evalops_oauth_file\"\n\t| \"openai_oauth_file\"\n\t| \"openai_codex_oauth_file\"\n\t| \"google_oauth_file\"\n\t| \"github_copilot_oauth_file\";\n\nexport interface AuthCredential {\n\tprovider: string;\n\ttoken: string;\n\ttype: AuthCredentialType;\n\tsource: AuthCredentialSource;\n\tenvVar?: string;\n\theaders?: Record<string, string>;\n\tmetadata?: Record<string, unknown>;\n\trequestBody?: Record<string, unknown>;\n}\n\nexport interface AuthResolverOptions {\n\tmode: AuthMode;\n\texplicitApiKey?: string;\n}\n\ntype AuthResolver = (provider: string) => Promise<AuthCredential | undefined>;\n\nconst ANTHROPIC_OAUTH_ENV_VARS = [\n\t\"CLAUDE_CODE_TOKEN\",\n\t\"ANTHROPIC_OAUTH_TOKEN\",\n\t\"ANTHROPIC_ACCESS_TOKEN\",\n];\n\nfunction isOpenAIProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized !== \"openai-codex\" &&\n\t\t(normalized === \"openai\" ||\n\t\t\tnormalized.startsWith(\"openai/\") ||\n\t\t\tnormalized.includes(\"openai-\"))\n\t);\n}\n\nfunction isOpenAICodexProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn normalized === \"openai-codex\";\n}\n\nfunction isGoogleGeminiCliProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized === \"google-gemini-cli\" || normalized === \"google-antigravity\"\n\t);\n}\n\nfunction isGitHubCopilotProvider(provider: string): boolean {\n\treturn provider.toLowerCase() === \"github-copilot\";\n}\n\nfunction resolveEvalOpsCredentialType(provider: string): AuthCredentialType {\n\treturn getEvalOpsManagedProviderDefinition(provider)?.usesAnthropicOAuth\n\t\t? \"anthropic-oauth\"\n\t\t: \"api-key\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getNonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction resolveEvalOpsOrganizationId(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst candidate = getNonEmptyString(metadata?.organizationId);\n\tif (candidate && candidate.trim().length > 0) {\n\t\treturn candidate.trim();\n\t}\n\tfor (const envVar of [\n\t\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\t\"EVALOPS_ORGANIZATION_ID\",\n\t\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n\t]) {\n\t\tconst value = process.env[envVar]?.trim();\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction resolveEvalOpsProviderRef(\n\tprovider: string,\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\tconst providerRef = isRecord(metadata?.providerRef)\n\t\t? metadata.providerRef\n\t\t: null;\n\tconst definition = getEvalOpsManagedProviderDefinition(provider);\n\tconst metadataProvider = getNonEmptyString(providerRef?.provider);\n\tconst configuredProvider =\n\t\tprocess.env.MAESTRO_EVALOPS_PROVIDER?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_PROVIDER?.trim();\n\tconst resolvedProvider =\n\t\t(definition && definition.id !== \"evalops\"\n\t\t\t? definition.providerRefProvider\n\t\t\t: undefined) ??\n\t\tmetadataProvider ??\n\t\tconfiguredProvider ??\n\t\tdefinition?.providerRefProvider ??\n\t\t\"openai\";\n\tconst environment =\n\t\tgetNonEmptyString(providerRef?.environment) ??\n\t\tprocess.env.MAESTRO_EVALOPS_ENVIRONMENT?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_ENVIRONMENT?.trim() ??\n\t\t\"prod\";\n\tconst credentialName =\n\t\tgetNonEmptyString(providerRef?.credential_name) ??\n\t\tprocess.env.MAESTRO_EVALOPS_CREDENTIAL_NAME?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_CREDENTIAL_NAME?.trim();\n\tconst teamId =\n\t\tgetNonEmptyString(providerRef?.team_id) ??\n\t\tprocess.env.MAESTRO_EVALOPS_TEAM_ID?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_TEAM_ID?.trim();\n\treturn {\n\t\tprovider: resolvedProvider,\n\t\tenvironment,\n\t\t...(credentialName ? { credential_name: credentialName } : {}),\n\t\t...(teamId ? { team_id: teamId } : {}),\n\t};\n}\n\nfunction resolveEvalOpsRequestMetadata(\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\treturn Object.fromEntries(\n\t\tObject.entries({\n\t\t\tagent_id:\n\t\t\t\tgetNonEmptyString(metadata?.agentId) ??\n\t\t\t\tgetNonEmptyString(metadata?.agent_id) ??\n\t\t\t\tprocess.env.MAESTRO_EVALOPS_AGENT_ID?.trim() ??\n\t\t\t\tprocess.env.MAESTRO_AGENT_ID?.trim(),\n\t\t\trun_id:\n\t\t\t\tgetNonEmptyString(metadata?.runId) ??\n\t\t\t\tgetNonEmptyString(metadata?.run_id) ??\n\t\t\t\tprocess.env.MAESTRO_EVALOPS_RUN_ID?.trim(),\n\t\t\tsession_id:\n\t\t\t\tgetNonEmptyString(metadata?.sessionId) ??\n\t\t\t\tgetNonEmptyString(metadata?.session_id) ??\n\t\t\t\tprocess.env.MAESTRO_SESSION_ID?.trim(),\n\t\t\tsurface:\n\t\t\t\tgetNonEmptyString(metadata?.surface) ??\n\t\t\t\tprocess.env.MAESTRO_EVALOPS_SURFACE?.trim() ??\n\t\t\t\tprocess.env.MAESTRO_SURFACE?.trim() ??\n\t\t\t\t\"maestro\",\n\t\t}).filter(\n\t\t\t(entry): entry is [string, string] =>\n\t\t\t\ttypeof entry[1] === \"string\" && entry[1].trim().length > 0,\n\t\t),\n\t);\n}\n\nfunction buildEvalOpsCredential(\n\tprovider: string,\n\ttoken: string,\n\tsource: AuthCredentialSource,\n\tmetadata?: Record<string, unknown>,\n\tenvVar?: string,\n): AuthCredential | undefined {\n\tconst organizationId = resolveEvalOpsOrganizationId(metadata);\n\tif (!organizationId) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tprovider,\n\t\ttoken,\n\t\ttype: resolveEvalOpsCredentialType(provider),\n\t\tsource,\n\t\tenvVar,\n\t\theaders: {\n\t\t\t\"X-Organization-ID\": organizationId,\n\t\t},\n\t\tmetadata,\n\t\trequestBody: {\n\t\t\tmetadata: resolveEvalOpsRequestMetadata(metadata),\n\t\t\tprovider_ref: resolveEvalOpsProviderRef(provider, metadata),\n\t\t},\n\t};\n}\n\nexport function createAuthResolver(options: AuthResolverOptions): AuthResolver {\n\tconst explicitKey = options.explicitApiKey?.trim();\n\treturn async (provider: string): Promise<AuthCredential | undefined> => {\n\t\tif (\n\t\t\tisKnownEvalOpsManagedProvider(provider) &&\n\t\t\t!isEvalOpsManagedGatewayEnabled()\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst normalizedProvider = provider.toLowerCase();\n\n\t\tif (explicitKey) {\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(provider, explicitKey, \"explicit\");\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: explicitKey,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: \"explicit\",\n\t\t\t};\n\t\t}\n\n\t\tif (isEvalOpsManagedProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"evalops\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"evalops\");\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\toauthToken,\n\t\t\t\t\t\"evalops_oauth_file\",\n\t\t\t\t\tcredentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (isOpenAICodexProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"openai-codex\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"openai-codex\");\n\t\t\t\tconst accountId =\n\t\t\t\t\ttypeof credentials?.metadata?.accountId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.accountId\n\t\t\t\t\t\t: undefined;\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_codex_oauth_file\",\n\t\t\t\t\theaders: accountId ? { \"chatgpt-account-id\": accountId } : undefined,\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Handle OpenAI Auth\n\t\tif (isOpenAIProvider(provider) && options.mode !== \"api-key\") {\n\t\t\t// OpenAI OAuth\n\t\t\tconst oauthCred = await getFreshOpenAIOAuthCredential();\n\t\t\tif (oauthCred?.apiKey) {\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthCred.apiKey,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_oauth_file\",\n\t\t\t\t\tmetadata: { mode: oauthCred.mode },\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGitHubCopilotProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"github-copilot\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"github-copilot\");\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"github_copilot_oauth_file\",\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGoogleGeminiCliProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthProvider =\n\t\t\t\tnormalizedProvider === \"google-antigravity\"\n\t\t\t\t\t? \"google-antigravity\"\n\t\t\t\t\t: \"google-gemini-cli\";\n\t\t\tconst oauthToken = await getOAuthToken(oauthProvider);\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(oauthProvider);\n\t\t\t\tconst projectId =\n\t\t\t\t\ttypeof credentials?.metadata?.projectId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.projectId\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (projectId) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\ttoken: JSON.stringify({ token: oauthToken, projectId }),\n\t\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\t\tsource: \"google_oauth_file\",\n\t\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst preferAnthropicOAuth =\n\t\t\tnormalizedProvider === \"anthropic\" && options.mode !== \"api-key\";\n\n\t\tif (preferAnthropicOAuth) {\n\t\t\tconst envTokenEntry = ANTHROPIC_OAUTH_ENV_VARS.map((envVar) => ({\n\t\t\t\tenvVar,\n\t\t\t\ttoken: process.env[envVar]?.trim(),\n\t\t\t})).find((entry) => entry.token);\n\t\t\tif (envTokenEntry?.token) {\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: envTokenEntry.token,\n\t\t\t\t\ttype: \"anthropic-oauth\",\n\t\t\t\t\tsource: \"anthropic_oauth_env\",\n\t\t\t\t\tenvVar: envTokenEntry.envVar,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Try OAuth system (oauth.json)\n\t\t\tconst oauthToken = await getOAuthToken(\"anthropic\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"anthropic\");\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"anthropic-oauth\",\n\t\t\t\t\tsource: \"anthropic_oauth_file\",\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (options.mode === \"claude\") {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tconst lookup = lookupApiKey(provider, explicitKey);\n\t\tif (lookup.key) {\n\t\t\tif (lookup.source === \"missing\") {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tlookup.key,\n\t\t\t\t\tlookup.source,\n\t\t\t\t\tundefined,\n\t\t\t\t\tlookup.envVar,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: lookup.key,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: lookup.source,\n\t\t\t\tenvVar: lookup.envVar,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Authentication Resolver - Unified Credential Resolution\n *\n * This module provides a unified authentication resolver that handles\n * multiple credential sources and authentication modes for all supported\n * AI providers. It abstracts the complexity of OAuth, API keys, and\n * environment variables into a single interface.\n *\n * ## Authentication Modes\n *\n * | Mode | Description |\n * |----------|------------------------------------------------|\n * | auto | Try OAuth first, fallback to API keys (default)|\n * | api-key | Only use API keys, skip OAuth |\n * | claude | Only use Anthropic OAuth, fail if unavailable |\n *\n * ## Credential Resolution Order\n *\n * 1. **Explicit API key**: Passed directly via options\n * 2. **OAuth tokens**: Provider-specific OAuth flows (if mode allows)\n * 3. **Environment variables**: Standard env var lookup\n * 4. **Custom providers**: From models registry configuration\n *\n * ## Credential Sources\n *\n * | Source | Description |\n * |---------------------|------------------------------------------|\n * | explicit | Passed directly to resolver |\n * | env | From environment variable |\n * | custom_literal | Hardcoded in custom provider config |\n * | custom_env | Env var from custom provider config |\n * | anthropic_oauth_env | Anthropic OAuth token from env |\n * | anthropic_oauth_file| Anthropic OAuth from stored credentials |\n * | evalops_oauth_file | EvalOps managed OAuth from stored credentials |\n * | openai_oauth_file | OpenAI OAuth from stored credentials |\n * | openai_codex_oauth_file | OpenAI Codex ChatGPT OAuth from stored credentials |\n * | google_oauth_file | Google OAuth from stored credentials |\n *\n * ## Example\n *\n * ```typescript\n * const resolver = createAuthResolver({ mode: 'auto' });\n * const credential = await resolver('anthropic');\n *\n * if (credential) {\n * console.log(`Using ${credential.type} from ${credential.source}`);\n * // Use credential.token for API requests\n * }\n * ```\n *\n * @module providers/auth\n */\n\nimport { getOAuthToken } from \"../oauth/index.js\";\nimport { loadOAuthCredentials } from \"../oauth/storage.js\";\nimport { lookupApiKey } from \"./api-keys.js\";\nimport {\n\tgetEvalOpsManagedProviderDefinition,\n\tisEvalOpsManagedGatewayEnabled,\n\tisEvalOpsManagedProvider,\n\tisKnownEvalOpsManagedProvider,\n} from \"./evalops-managed.js\";\nimport { getFreshOpenAIOAuthCredential } from \"./openai-auth.js\";\n\nexport type AuthMode = \"auto\" | \"api-key\" | \"claude\";\n\nexport type AuthCredentialType = \"api-key\" | \"anthropic-oauth\";\n\nexport type AuthCredentialSource =\n\t| \"explicit\"\n\t| \"env\"\n\t| \"custom_literal\"\n\t| \"custom_env\"\n\t| \"anthropic_oauth_env\"\n\t| \"anthropic_oauth_file\"\n\t| \"evalops_agent_key_file\"\n\t| \"evalops_oauth_file\"\n\t| \"openai_oauth_file\"\n\t| \"openai_codex_oauth_file\"\n\t| \"google_oauth_file\"\n\t| \"github_copilot_oauth_file\";\n\nexport interface AuthCredential {\n\tprovider: string;\n\ttoken: string;\n\ttype: AuthCredentialType;\n\tsource: AuthCredentialSource;\n\tenvVar?: string;\n\theaders?: Record<string, string>;\n\tmetadata?: Record<string, unknown>;\n\trequestBody?: Record<string, unknown>;\n}\n\nexport interface AuthResolverOptions {\n\tmode: AuthMode;\n\texplicitApiKey?: string;\n}\n\ntype AuthResolver = (provider: string) => Promise<AuthCredential | undefined>;\n\nconst ANTHROPIC_OAUTH_ENV_VARS = [\n\t\"CLAUDE_CODE_TOKEN\",\n\t\"ANTHROPIC_OAUTH_TOKEN\",\n\t\"ANTHROPIC_ACCESS_TOKEN\",\n];\n\nfunction isOpenAIProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized !== \"openai-codex\" &&\n\t\t(normalized === \"openai\" ||\n\t\t\tnormalized.startsWith(\"openai/\") ||\n\t\t\tnormalized.includes(\"openai-\"))\n\t);\n}\n\nfunction isOpenAICodexProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn normalized === \"openai-codex\";\n}\n\nfunction isGoogleGeminiCliProvider(provider: string): boolean {\n\tconst normalized = provider.toLowerCase();\n\treturn (\n\t\tnormalized === \"google-gemini-cli\" || normalized === \"google-antigravity\"\n\t);\n}\n\nfunction isGitHubCopilotProvider(provider: string): boolean {\n\treturn provider.toLowerCase() === \"github-copilot\";\n}\n\nfunction resolveEvalOpsCredentialType(provider: string): AuthCredentialType {\n\treturn getEvalOpsManagedProviderDefinition(provider)?.usesAnthropicOAuth\n\t\t? \"anthropic-oauth\"\n\t\t: \"api-key\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction getNonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction getStringArray(value: unknown): string[] {\n\treturn Array.isArray(value)\n\t\t? value\n\t\t\t\t.map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n\t\t\t\t.filter((entry) => entry.length > 0)\n\t\t: [];\n}\n\nfunction isFutureTimestamp(value: unknown): boolean {\n\tconst timestamp = getNonEmptyString(value);\n\treturn !timestamp || Date.parse(timestamp) > Date.now();\n}\n\nfunction resolveEvalOpsAgentMcpAPIKey(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst apiKey = getNonEmptyString(agentMcp?.apiKey);\n\tif (!apiKey || !isFutureTimestamp(agentMcp?.expiresAt)) {\n\t\treturn undefined;\n\t}\n\tconst scopes = getStringArray(agentMcp?.scopes);\n\tif (scopes.length > 0 && !scopes.includes(\"llm_gateway:invoke\")) {\n\t\treturn undefined;\n\t}\n\treturn apiKey;\n}\n\nfunction resolveEvalOpsOrganizationId(\n\tmetadata?: Record<string, unknown>,\n): string | undefined {\n\tconst candidate = getNonEmptyString(metadata?.organizationId);\n\tif (candidate && candidate.trim().length > 0) {\n\t\treturn candidate.trim();\n\t}\n\tfor (const envVar of [\n\t\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\t\"EVALOPS_ORGANIZATION_ID\",\n\t\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n\t]) {\n\t\tconst value = process.env[envVar]?.trim();\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction resolveEvalOpsProviderRef(\n\tprovider: string,\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\tconst providerRef = isRecord(metadata?.providerRef)\n\t\t? metadata.providerRef\n\t\t: null;\n\tconst definition = getEvalOpsManagedProviderDefinition(provider);\n\tconst metadataProvider = getNonEmptyString(providerRef?.provider);\n\tconst configuredProvider =\n\t\tprocess.env.MAESTRO_EVALOPS_PROVIDER?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_PROVIDER?.trim();\n\tconst resolvedProvider =\n\t\t(definition && definition.id !== \"evalops\"\n\t\t\t? definition.providerRefProvider\n\t\t\t: undefined) ??\n\t\tmetadataProvider ??\n\t\tconfiguredProvider ??\n\t\tdefinition?.providerRefProvider ??\n\t\t\"openai\";\n\tconst environment =\n\t\tgetNonEmptyString(providerRef?.environment) ??\n\t\tprocess.env.MAESTRO_EVALOPS_ENVIRONMENT?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_ENVIRONMENT?.trim() ??\n\t\t\"prod\";\n\tconst credentialName =\n\t\tgetNonEmptyString(providerRef?.credential_name) ??\n\t\tprocess.env.MAESTRO_EVALOPS_CREDENTIAL_NAME?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_CREDENTIAL_NAME?.trim();\n\tconst teamId =\n\t\tgetNonEmptyString(providerRef?.team_id) ??\n\t\tprocess.env.MAESTRO_EVALOPS_TEAM_ID?.trim() ??\n\t\tprocess.env.MAESTRO_LLM_GATEWAY_TEAM_ID?.trim();\n\treturn {\n\t\tprovider: resolvedProvider,\n\t\tenvironment,\n\t\t...(credentialName ? { credential_name: credentialName } : {}),\n\t\t...(teamId ? { team_id: teamId } : {}),\n\t};\n}\n\nfunction resolveEvalOpsRequestMetadata(\n\tmetadata?: Record<string, unknown>,\n): Record<string, string> {\n\treturn Object.fromEntries(\n\t\tObject.entries({\n\t\t\tagent_id:\n\t\t\t\tgetNonEmptyString(metadata?.agentId) ??\n\t\t\t\tgetNonEmptyString(metadata?.agent_id) ??\n\t\t\t\tprocess.env.MAESTRO_EVALOPS_AGENT_ID?.trim() ??\n\t\t\t\tprocess.env.MAESTRO_AGENT_ID?.trim(),\n\t\t\trun_id:\n\t\t\t\tgetNonEmptyString(metadata?.runId) ??\n\t\t\t\tgetNonEmptyString(metadata?.run_id) ??\n\t\t\t\tprocess.env.MAESTRO_EVALOPS_RUN_ID?.trim(),\n\t\t\tsession_id:\n\t\t\t\tgetNonEmptyString(metadata?.sessionId) ??\n\t\t\t\tgetNonEmptyString(metadata?.session_id) ??\n\t\t\t\tprocess.env.MAESTRO_SESSION_ID?.trim(),\n\t\t\tsurface:\n\t\t\t\tgetNonEmptyString(metadata?.surface) ??\n\t\t\t\tprocess.env.MAESTRO_EVALOPS_SURFACE?.trim() ??\n\t\t\t\tprocess.env.MAESTRO_SURFACE?.trim() ??\n\t\t\t\t\"maestro\",\n\t\t}).filter(\n\t\t\t(entry): entry is [string, string] =>\n\t\t\t\ttypeof entry[1] === \"string\" && entry[1].trim().length > 0,\n\t\t),\n\t);\n}\n\nfunction buildEvalOpsCredential(\n\tprovider: string,\n\ttoken: string,\n\tsource: AuthCredentialSource,\n\tmetadata?: Record<string, unknown>,\n\tenvVar?: string,\n): AuthCredential | undefined {\n\tconst organizationId = resolveEvalOpsOrganizationId(metadata);\n\tif (!organizationId) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tprovider,\n\t\ttoken,\n\t\ttype: resolveEvalOpsCredentialType(provider),\n\t\tsource,\n\t\tenvVar,\n\t\theaders: {\n\t\t\t\"X-Organization-ID\": organizationId,\n\t\t},\n\t\tmetadata,\n\t\trequestBody: {\n\t\t\tmetadata: resolveEvalOpsRequestMetadata(metadata),\n\t\t\tprovider_ref: resolveEvalOpsProviderRef(provider, metadata),\n\t\t},\n\t};\n}\n\nexport function createAuthResolver(options: AuthResolverOptions): AuthResolver {\n\tconst explicitKey = options.explicitApiKey?.trim();\n\treturn async (provider: string): Promise<AuthCredential | undefined> => {\n\t\tif (\n\t\t\tisKnownEvalOpsManagedProvider(provider) &&\n\t\t\t!isEvalOpsManagedGatewayEnabled()\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst normalizedProvider = provider.toLowerCase();\n\n\t\tif (explicitKey) {\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(provider, explicitKey, \"explicit\");\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: explicitKey,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: \"explicit\",\n\t\t\t};\n\t\t}\n\n\t\tif (isEvalOpsManagedProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst credentials = loadOAuthCredentials(\"evalops\");\n\t\t\tconst agentAPIKey = resolveEvalOpsAgentMcpAPIKey(credentials?.metadata);\n\t\t\tif (agentAPIKey) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tagentAPIKey,\n\t\t\t\t\t\"evalops_agent_key_file\",\n\t\t\t\t\tcredentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst oauthToken = await getOAuthToken(\"evalops\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst refreshedCredentials = loadOAuthCredentials(\"evalops\");\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\toauthToken,\n\t\t\t\t\t\"evalops_oauth_file\",\n\t\t\t\t\trefreshedCredentials?.metadata ?? credentials?.metadata,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (isOpenAICodexProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"openai-codex\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"openai-codex\");\n\t\t\t\tconst accountId =\n\t\t\t\t\ttypeof credentials?.metadata?.accountId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.accountId\n\t\t\t\t\t\t: undefined;\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_codex_oauth_file\",\n\t\t\t\t\theaders: accountId ? { \"chatgpt-account-id\": accountId } : undefined,\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Handle OpenAI Auth\n\t\tif (isOpenAIProvider(provider) && options.mode !== \"api-key\") {\n\t\t\t// OpenAI OAuth\n\t\t\tconst oauthCred = await getFreshOpenAIOAuthCredential();\n\t\t\tif (oauthCred?.apiKey) {\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthCred.apiKey,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"openai_oauth_file\",\n\t\t\t\t\tmetadata: { mode: oauthCred.mode },\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGitHubCopilotProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthToken = await getOAuthToken(\"github-copilot\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"github-copilot\");\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\tsource: \"github_copilot_oauth_file\",\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (isGoogleGeminiCliProvider(provider) && options.mode !== \"api-key\") {\n\t\t\tconst oauthProvider =\n\t\t\t\tnormalizedProvider === \"google-antigravity\"\n\t\t\t\t\t? \"google-antigravity\"\n\t\t\t\t\t: \"google-gemini-cli\";\n\t\t\tconst oauthToken = await getOAuthToken(oauthProvider);\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(oauthProvider);\n\t\t\t\tconst projectId =\n\t\t\t\t\ttypeof credentials?.metadata?.projectId === \"string\"\n\t\t\t\t\t\t? credentials.metadata.projectId\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (projectId) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprovider,\n\t\t\t\t\t\ttoken: JSON.stringify({ token: oauthToken, projectId }),\n\t\t\t\t\t\ttype: \"api-key\",\n\t\t\t\t\t\tsource: \"google_oauth_file\",\n\t\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst preferAnthropicOAuth =\n\t\t\tnormalizedProvider === \"anthropic\" && options.mode !== \"api-key\";\n\n\t\tif (preferAnthropicOAuth) {\n\t\t\tconst envTokenEntry = ANTHROPIC_OAUTH_ENV_VARS.map((envVar) => ({\n\t\t\t\tenvVar,\n\t\t\t\ttoken: process.env[envVar]?.trim(),\n\t\t\t})).find((entry) => entry.token);\n\t\t\tif (envTokenEntry?.token) {\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: envTokenEntry.token,\n\t\t\t\t\ttype: \"anthropic-oauth\",\n\t\t\t\t\tsource: \"anthropic_oauth_env\",\n\t\t\t\t\tenvVar: envTokenEntry.envVar,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Try OAuth system (oauth.json)\n\t\t\tconst oauthToken = await getOAuthToken(\"anthropic\");\n\t\t\tif (oauthToken) {\n\t\t\t\tconst credentials = loadOAuthCredentials(\"anthropic\");\n\t\t\t\treturn {\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: oauthToken,\n\t\t\t\t\ttype: \"anthropic-oauth\",\n\t\t\t\t\tsource: \"anthropic_oauth_file\",\n\t\t\t\t\tmetadata: credentials?.metadata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (options.mode === \"claude\") {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tconst lookup = lookupApiKey(provider, explicitKey);\n\t\tif (lookup.key) {\n\t\t\tif (lookup.source === \"missing\") {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (isEvalOpsManagedProvider(provider)) {\n\t\t\t\treturn buildEvalOpsCredential(\n\t\t\t\t\tprovider,\n\t\t\t\t\tlookup.key,\n\t\t\t\t\tlookup.source,\n\t\t\t\t\tundefined,\n\t\t\t\t\tlookup.envVar,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\ttoken: lookup.key,\n\t\t\t\ttype: \"api-key\",\n\t\t\t\tsource: lookup.source,\n\t\t\t\tenvVar: lookup.envVar,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalops-managed.d.ts","sourceRoot":"","sources":["../../src/providers/evalops-managed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAM7C,MAAM,MAAM,gCAAgC,GAAG;IAC9C,gBAAgB,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IAClC,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,wCAAwC,EAAE,SAAS,gCAAgC,EAuJrF,CAAC;AASZ,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,oCAAoC,IAAI,SAAS,gCAAgC,EAAE,CAIlG;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,mCAAmC,CAClD,QAAQ,EAAE,MAAM,GACd,gCAAgC,GAAG,SAAS,CAK9C;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,wBAAgB,kCAAkC,IAAI,IAAI,CAQzD"}
|
|
1
|
+
{"version":3,"file":"evalops-managed.d.ts","sourceRoot":"","sources":["../../src/providers/evalops-managed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAM7C,eAAO,MAAM,wCAAwC,uCAChB,CAAC;AAEtC,MAAM,MAAM,gCAAgC,GAAG;IAC9C,gBAAgB,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IAClC,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,wCAAwC,EAAE,SAAS,gCAAgC,EAuJrF,CAAC;AASZ,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,oCAAoC,IAAI,SAAS,gCAAgC,EAAE,CAIlG;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,mCAAmC,CAClD,QAAQ,EAAE,MAAM,GACd,gCAAgC,GAAG,SAAS,CAK9C;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,wBAAgB,kCAAkC,IAAI,IAAI,CAQzD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MAESTRO_EVALOPS_MANAGED_KILL_SWITCH, isFeatureFlagEnabled, } from "../config/feature-flags.js";
|
|
2
|
+
export const DEFAULT_EVALOPS_MANAGED_GATEWAY_BASE_URL = "https://llm-gateway.evalops.dev/v1";
|
|
2
3
|
export const ALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS = [
|
|
3
4
|
{
|
|
4
5
|
api: "openai-responses",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalops-managed.js","sourceRoot":"","sources":["../../src/providers/evalops-managed.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Api } from \"../agent/types.js\";\nimport {\n\tMAESTRO_EVALOPS_MANAGED_KILL_SWITCH,\n\tisFeatureFlagEnabled,\n} from \"../config/feature-flags.js\";\n\nexport type EvalOpsManagedProviderDefinition = {\n\tallowedModelApis?: readonly Api[];\n\tapi: Api;\n\tdefaultModel: string;\n\tid: string;\n\tname: string;\n\tnote: string;\n\tproviderRefProvider: string;\n\tsourceProvider: string;\n\ttargetApi?: Api;\n\tusesAnthropicOAuth?: boolean;\n};\n\nexport const ALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS: readonly EvalOpsManagedProviderDefinition[] =\n\t[\n\t\t{\n\t\t\tapi: \"openai-responses\",\n\t\t\tdefaultModel: \"gpt-4o-mini\",\n\t\t\tid: \"evalops\",\n\t\t\tname: \"EvalOps Managed Gateway (OpenAI Responses)\",\n\t\t\tnote: \"Requires /login evalops and routes managed OpenAI responses through the gateway\",\n\t\t\tproviderRefProvider: \"openai\",\n\t\t\tsourceProvider: \"openai\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"gpt-4o\",\n\t\t\tid: \"evalops-azure-openai\",\n\t\t\tname: \"EvalOps Managed Gateway (Azure OpenAI)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Azure OpenAI chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"azure-openai\",\n\t\t\tsourceProvider: \"openai\",\n\t\t},\n\t\t{\n\t\t\tapi: \"anthropic-messages\",\n\t\t\tdefaultModel: \"claude-sonnet-4-5\",\n\t\t\tid: \"evalops-anthropic\",\n\t\t\tname: \"EvalOps Managed Gateway (Anthropic Messages)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Anthropic messages through the gateway\",\n\t\t\tproviderRefProvider: \"anthropic\",\n\t\t\tsourceProvider: \"anthropic\",\n\t\t\tusesAnthropicOAuth: true,\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"command-a-03-2025\",\n\t\t\tid: \"evalops-cohere\",\n\t\t\tname: \"EvalOps Managed Gateway (Cohere)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Cohere chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"cohere\",\n\t\t\tsourceProvider: \"cohere\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"gpt-oss-120b\",\n\t\t\tid: \"evalops-cerebras\",\n\t\t\tname: \"EvalOps Managed Gateway (Cerebras)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Cerebras chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"cerebras\",\n\t\t\tsourceProvider: \"cerebras\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"accounts/fireworks/models/llama-v3p1-70b-instruct\",\n\t\t\tid: \"evalops-fireworks\",\n\t\t\tname: \"EvalOps Managed Gateway (Fireworks)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Fireworks chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"fireworks\",\n\t\t\tsourceProvider: \"fireworks\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"google-generative-ai\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"gemini-2.5-pro\",\n\t\t\tid: \"evalops-google\",\n\t\t\tname: \"EvalOps Managed Gateway (Google Gemini)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Google Gemini chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"google\",\n\t\t\tsourceProvider: \"google\",\n\t\t\ttargetApi: \"openai-completions\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"llama-3.3-70b-versatile\",\n\t\t\tid: \"evalops-groq\",\n\t\t\tname: \"EvalOps Managed Gateway (Groq)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Groq chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"groq\",\n\t\t\tsourceProvider: \"groq\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"databricks-meta-llama-3-3-70b-instruct\",\n\t\t\tid: \"evalops-databricks\",\n\t\t\tname: \"EvalOps Managed Gateway (Databricks)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Databricks chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"databricks\",\n\t\t\tsourceProvider: \"databricks\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"deepseek-v3.2\",\n\t\t\tid: \"evalops-deepseek\",\n\t\t\tname: \"EvalOps Managed Gateway (DeepSeek)\",\n\t\t\tnote: \"Requires /login evalops and routes managed DeepSeek chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"deepseek\",\n\t\t\tsourceProvider: \"deepseek\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"sonar\",\n\t\t\tid: \"evalops-perplexity\",\n\t\t\tname: \"EvalOps Managed Gateway (Perplexity)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Perplexity chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"perplexity\",\n\t\t\tsourceProvider: \"perplexity\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\n\t\t\tid: \"evalops-together\",\n\t\t\tname: \"EvalOps Managed Gateway (Together)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Together chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"together\",\n\t\t\tsourceProvider: \"together\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"mistral-large-latest\",\n\t\t\tid: \"evalops-mistral\",\n\t\t\tname: \"EvalOps Managed Gateway (Mistral)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Mistral chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"mistral\",\n\t\t\tsourceProvider: \"mistral\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"grok-4-fast\",\n\t\t\tid: \"evalops-xai\",\n\t\t\tname: \"EvalOps Managed Gateway (xAI)\",\n\t\t\tnote: \"Requires /login evalops and routes managed xAI chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"xai\",\n\t\t\tsourceProvider: \"xai\",\n\t\t},\n\t\t{\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"openai/o4-mini\",\n\t\t\tid: \"evalops-openrouter\",\n\t\t\tname: \"EvalOps Managed Gateway (OpenRouter)\",\n\t\t\tnote: \"Requires /login evalops and routes managed OpenRouter chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"openrouter\",\n\t\t\tsourceProvider: \"openrouter\",\n\t\t},\n\t] as const;\n\nconst managedProvidersByID = new Map<string, EvalOpsManagedProviderDefinition>(\n\tALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS.map((definition) => [\n\t\tdefinition.id,\n\t\tdefinition,\n\t]),\n);\n\nexport function isEvalOpsManagedGatewayEnabled(): boolean {\n\treturn !isFeatureFlagEnabled(MAESTRO_EVALOPS_MANAGED_KILL_SWITCH);\n}\n\nexport function getEvalOpsManagedProviderDefinitions(): readonly EvalOpsManagedProviderDefinition[] {\n\treturn isEvalOpsManagedGatewayEnabled()\n\t\t? ALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS\n\t\t: [];\n}\n\nexport function isKnownEvalOpsManagedProvider(provider: string): boolean {\n\treturn managedProvidersByID.has(provider.toLowerCase().trim());\n}\n\nexport function getEvalOpsManagedProviderDefinition(\n\tprovider: string,\n): EvalOpsManagedProviderDefinition | undefined {\n\tif (!isEvalOpsManagedGatewayEnabled()) {\n\t\treturn undefined;\n\t}\n\treturn managedProvidersByID.get(provider.toLowerCase().trim());\n}\n\nexport function isEvalOpsManagedProvider(provider: string): boolean {\n\treturn getEvalOpsManagedProviderDefinition(provider) !== undefined;\n}\n\nexport function assertEvalOpsManagedGatewayEnabled(): void {\n\tif (isEvalOpsManagedGatewayEnabled()) {\n\t\treturn;\n\t}\n\n\tthrow new Error(\n\t\t\"EvalOps managed gateway access is currently disabled by dynamic config.\",\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"evalops-managed.js","sourceRoot":"","sources":["../../src/providers/evalops-managed.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Api } from \"../agent/types.js\";\nimport {\n\tMAESTRO_EVALOPS_MANAGED_KILL_SWITCH,\n\tisFeatureFlagEnabled,\n} from \"../config/feature-flags.js\";\n\nexport const DEFAULT_EVALOPS_MANAGED_GATEWAY_BASE_URL =\n\t\"https://llm-gateway.evalops.dev/v1\";\n\nexport type EvalOpsManagedProviderDefinition = {\n\tallowedModelApis?: readonly Api[];\n\tapi: Api;\n\tdefaultModel: string;\n\tid: string;\n\tname: string;\n\tnote: string;\n\tproviderRefProvider: string;\n\tsourceProvider: string;\n\ttargetApi?: Api;\n\tusesAnthropicOAuth?: boolean;\n};\n\nexport const ALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS: readonly EvalOpsManagedProviderDefinition[] =\n\t[\n\t\t{\n\t\t\tapi: \"openai-responses\",\n\t\t\tdefaultModel: \"gpt-4o-mini\",\n\t\t\tid: \"evalops\",\n\t\t\tname: \"EvalOps Managed Gateway (OpenAI Responses)\",\n\t\t\tnote: \"Requires /login evalops and routes managed OpenAI responses through the gateway\",\n\t\t\tproviderRefProvider: \"openai\",\n\t\t\tsourceProvider: \"openai\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"gpt-4o\",\n\t\t\tid: \"evalops-azure-openai\",\n\t\t\tname: \"EvalOps Managed Gateway (Azure OpenAI)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Azure OpenAI chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"azure-openai\",\n\t\t\tsourceProvider: \"openai\",\n\t\t},\n\t\t{\n\t\t\tapi: \"anthropic-messages\",\n\t\t\tdefaultModel: \"claude-sonnet-4-5\",\n\t\t\tid: \"evalops-anthropic\",\n\t\t\tname: \"EvalOps Managed Gateway (Anthropic Messages)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Anthropic messages through the gateway\",\n\t\t\tproviderRefProvider: \"anthropic\",\n\t\t\tsourceProvider: \"anthropic\",\n\t\t\tusesAnthropicOAuth: true,\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"command-a-03-2025\",\n\t\t\tid: \"evalops-cohere\",\n\t\t\tname: \"EvalOps Managed Gateway (Cohere)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Cohere chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"cohere\",\n\t\t\tsourceProvider: \"cohere\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"gpt-oss-120b\",\n\t\t\tid: \"evalops-cerebras\",\n\t\t\tname: \"EvalOps Managed Gateway (Cerebras)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Cerebras chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"cerebras\",\n\t\t\tsourceProvider: \"cerebras\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"accounts/fireworks/models/llama-v3p1-70b-instruct\",\n\t\t\tid: \"evalops-fireworks\",\n\t\t\tname: \"EvalOps Managed Gateway (Fireworks)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Fireworks chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"fireworks\",\n\t\t\tsourceProvider: \"fireworks\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"google-generative-ai\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"gemini-2.5-pro\",\n\t\t\tid: \"evalops-google\",\n\t\t\tname: \"EvalOps Managed Gateway (Google Gemini)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Google Gemini chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"google\",\n\t\t\tsourceProvider: \"google\",\n\t\t\ttargetApi: \"openai-completions\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"llama-3.3-70b-versatile\",\n\t\t\tid: \"evalops-groq\",\n\t\t\tname: \"EvalOps Managed Gateway (Groq)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Groq chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"groq\",\n\t\t\tsourceProvider: \"groq\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"databricks-meta-llama-3-3-70b-instruct\",\n\t\t\tid: \"evalops-databricks\",\n\t\t\tname: \"EvalOps Managed Gateway (Databricks)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Databricks chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"databricks\",\n\t\t\tsourceProvider: \"databricks\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"deepseek-v3.2\",\n\t\t\tid: \"evalops-deepseek\",\n\t\t\tname: \"EvalOps Managed Gateway (DeepSeek)\",\n\t\t\tnote: \"Requires /login evalops and routes managed DeepSeek chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"deepseek\",\n\t\t\tsourceProvider: \"deepseek\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"sonar\",\n\t\t\tid: \"evalops-perplexity\",\n\t\t\tname: \"EvalOps Managed Gateway (Perplexity)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Perplexity chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"perplexity\",\n\t\t\tsourceProvider: \"perplexity\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"meta-llama/Llama-3.3-70B-Instruct-Turbo\",\n\t\t\tid: \"evalops-together\",\n\t\t\tname: \"EvalOps Managed Gateway (Together)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Together chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"together\",\n\t\t\tsourceProvider: \"together\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"mistral-large-latest\",\n\t\t\tid: \"evalops-mistral\",\n\t\t\tname: \"EvalOps Managed Gateway (Mistral)\",\n\t\t\tnote: \"Requires /login evalops and routes managed Mistral chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"mistral\",\n\t\t\tsourceProvider: \"mistral\",\n\t\t},\n\t\t{\n\t\t\tallowedModelApis: [\"openai-completions\"],\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"grok-4-fast\",\n\t\t\tid: \"evalops-xai\",\n\t\t\tname: \"EvalOps Managed Gateway (xAI)\",\n\t\t\tnote: \"Requires /login evalops and routes managed xAI chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"xai\",\n\t\t\tsourceProvider: \"xai\",\n\t\t},\n\t\t{\n\t\t\tapi: \"openai-completions\",\n\t\t\tdefaultModel: \"openai/o4-mini\",\n\t\t\tid: \"evalops-openrouter\",\n\t\t\tname: \"EvalOps Managed Gateway (OpenRouter)\",\n\t\t\tnote: \"Requires /login evalops and routes managed OpenRouter chat completions through the gateway\",\n\t\t\tproviderRefProvider: \"openrouter\",\n\t\t\tsourceProvider: \"openrouter\",\n\t\t},\n\t] as const;\n\nconst managedProvidersByID = new Map<string, EvalOpsManagedProviderDefinition>(\n\tALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS.map((definition) => [\n\t\tdefinition.id,\n\t\tdefinition,\n\t]),\n);\n\nexport function isEvalOpsManagedGatewayEnabled(): boolean {\n\treturn !isFeatureFlagEnabled(MAESTRO_EVALOPS_MANAGED_KILL_SWITCH);\n}\n\nexport function getEvalOpsManagedProviderDefinitions(): readonly EvalOpsManagedProviderDefinition[] {\n\treturn isEvalOpsManagedGatewayEnabled()\n\t\t? ALL_EVALOPS_MANAGED_PROVIDER_DEFINITIONS\n\t\t: [];\n}\n\nexport function isKnownEvalOpsManagedProvider(provider: string): boolean {\n\treturn managedProvidersByID.has(provider.toLowerCase().trim());\n}\n\nexport function getEvalOpsManagedProviderDefinition(\n\tprovider: string,\n): EvalOpsManagedProviderDefinition | undefined {\n\tif (!isEvalOpsManagedGatewayEnabled()) {\n\t\treturn undefined;\n\t}\n\treturn managedProvidersByID.get(provider.toLowerCase().trim());\n}\n\nexport function isEvalOpsManagedProvider(provider: string): boolean {\n\treturn getEvalOpsManagedProviderDefinition(provider) !== undefined;\n}\n\nexport function assertEvalOpsManagedGatewayEnabled(): void {\n\tif (isEvalOpsManagedGatewayEnabled()) {\n\t\treturn;\n\t}\n\n\tthrow new Error(\n\t\t\"EvalOps managed gateway access is currently disabled by dynamic config.\",\n\t);\n}\n"]}
|
package/dist/version.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.10.
|
|
3
|
-
"notes": "Maestro by EvalOps - Deterministic coding agent with TUI/CLI and Web UI for AI-assisted development v0.10.
|
|
2
|
+
"version": "0.10.12",
|
|
3
|
+
"notes": "Maestro by EvalOps - Deterministic coding agent with TUI/CLI and Web UI for AI-assisted development v0.10.12 is now available."
|
|
4
4
|
}
|