axiom 0.46.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +10 -21
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-T4FBJ252.js → chunk-3VKWOZAQ.js} +2 -19
- package/dist/chunk-3VKWOZAQ.js.map +1 -0
- package/dist/{chunk-TWE3LIRZ.js → chunk-4TKUTT24.js} +13 -7
- package/dist/chunk-4TKUTT24.js.map +1 -0
- package/dist/{chunk-QEHCKIMQ.js → chunk-6ZENNC22.js} +5 -20
- package/dist/{chunk-QEHCKIMQ.js.map → chunk-6ZENNC22.js.map} +1 -1
- package/dist/{chunk-M4PTA32S.js → chunk-D6ALFB7B.js} +10 -17
- package/dist/chunk-D6ALFB7B.js.map +1 -0
- package/dist/{chunk-CLH5OLB6.js → chunk-FWPCBQBZ.js} +3 -7
- package/dist/{chunk-CLH5OLB6.js.map → chunk-FWPCBQBZ.js.map} +1 -1
- package/dist/{chunk-S65FSMB3.js → chunk-ISSDOC43.js} +1 -6
- package/dist/{chunk-S65FSMB3.js.map → chunk-ISSDOC43.js.map} +1 -1
- package/dist/{chunk-4VNFFUM5.js → chunk-KEXKKQVW.js} +2 -20
- package/dist/{chunk-X2LH7XLM.js → chunk-MM5FFQJT.js} +1 -6
- package/dist/{chunk-X2LH7XLM.js.map → chunk-MM5FFQJT.js.map} +1 -1
- package/dist/{chunk-KRILBQGV.js → chunk-QRQVSBSO.js} +14 -43
- package/dist/chunk-QRQVSBSO.js.map +1 -0
- package/dist/{chunk-HCJKRSW4.js → chunk-QZSERPBT.js} +1 -6
- package/dist/{chunk-HCJKRSW4.js.map → chunk-QZSERPBT.js.map} +1 -1
- package/dist/{chunk-JSEK2D3F.js → chunk-RJUMGCBS.js} +2 -6
- package/dist/{chunk-JSEK2D3F.js.map → chunk-RJUMGCBS.js.map} +1 -1
- package/dist/{chunk-EQPNZ33J.js → chunk-UC6L4N6L.js} +1 -6
- package/dist/{chunk-EQPNZ33J.js.map → chunk-UC6L4N6L.js.map} +1 -1
- package/dist/{chunk-SJE2BW6S.js → chunk-XUPVDNRV.js} +3 -7
- package/dist/{chunk-SJE2BW6S.js.map → chunk-XUPVDNRV.js.map} +1 -1
- package/dist/{chunk-M7U5EJP4.js → chunk-YDN5Y5PQ.js} +18 -66
- package/dist/{chunk-M7U5EJP4.js.map → chunk-YDN5Y5PQ.js.map} +1 -1
- package/dist/{chunk-3Q36GUCI.js → chunk-YI2FANTF.js} +2 -6
- package/dist/{chunk-3Q36GUCI.js.map → chunk-YI2FANTF.js.map} +1 -1
- package/dist/{chunk-2U4R2CLH.js → chunk-ZVK56UI7.js} +15 -16
- package/dist/chunk-ZVK56UI7.js.map +1 -0
- package/dist/config.js +3 -8
- package/dist/config.js.map +1 -1
- package/dist/evals/aggregations.js +2 -2
- package/dist/evals/custom-runner.js +5 -7
- package/dist/evals/custom-runner.js.map +1 -1
- package/dist/evals/online.js +6 -11
- package/dist/evals/online.js.map +1 -1
- package/dist/evals/scorers.js +4 -9
- package/dist/evals/scorers.js.map +1 -1
- package/dist/evals.js +15 -31
- package/dist/evals.js.map +1 -1
- package/dist/{handlebars-AIP3BZD5.js → handlebars-LMQRDB6O.js} +3 -49
- package/dist/{handlebars-AIP3BZD5.js.map → handlebars-LMQRDB6O.js.map} +1 -1
- package/dist/index.js +10 -19
- package/dist/index.js.map +1 -1
- package/dist/{run-vitest-CVAL5SHV.js → run-vitest-H3HHFEZD.js} +19 -15
- package/dist/run-vitest-H3HHFEZD.js.map +1 -0
- package/dist/{token-XOW2YWKA.js → token-VMQNN6SC.js} +4 -6
- package/dist/{token-XOW2YWKA.js.map → token-VMQNN6SC.js.map} +1 -1
- package/dist/token-util-FVSEGA3I.js +6 -0
- package/dist/token-util-FVSEGA3I.js.map +1 -0
- package/package.json +17 -58
- package/dist/app-scope-BgNUnFZY.d.cts +0 -127
- package/dist/bin.cjs +0 -3317
- package/dist/bin.cjs.map +0 -1
- package/dist/bin.d.cts +0 -6
- package/dist/chunk-2U4R2CLH.js.map +0 -1
- package/dist/chunk-4VNFFUM5.js.map +0 -1
- package/dist/chunk-KRILBQGV.js.map +0 -1
- package/dist/chunk-M4PTA32S.js.map +0 -1
- package/dist/chunk-T4FBJ252.js.map +0 -1
- package/dist/chunk-TWE3LIRZ.js.map +0 -1
- package/dist/config-6PyyriW8.d.cts +0 -206
- package/dist/config.cjs +0 -36
- package/dist/config.cjs.map +0 -1
- package/dist/config.d.cts +0 -3
- package/dist/evals/aggregations.cjs +0 -71
- package/dist/evals/aggregations.cjs.map +0 -1
- package/dist/evals/aggregations.d.cts +0 -93
- package/dist/evals/custom-runner.cjs +0 -114
- package/dist/evals/custom-runner.cjs.map +0 -1
- package/dist/evals/custom-runner.d.cts +0 -17
- package/dist/evals/online.cjs +0 -826
- package/dist/evals/online.cjs.map +0 -1
- package/dist/evals/online.d.cts +0 -134
- package/dist/evals/scorers.cjs +0 -377
- package/dist/evals/scorers.cjs.map +0 -1
- package/dist/evals/scorers.d.cts +0 -53
- package/dist/evals.cjs +0 -3447
- package/dist/evals.cjs.map +0 -1
- package/dist/evals.d.cts +0 -355
- package/dist/feedback.cjs +0 -173
- package/dist/feedback.cjs.map +0 -1
- package/dist/feedback.d.cts +0 -166
- package/dist/index.cjs +0 -10155
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -400
- package/dist/name-validation.d-7RgcKR9Z.d.cts +0 -118
- package/dist/run-vitest-CVAL5SHV.js.map +0 -1
- package/dist/token-util-GALWBVLF.js +0 -6
- /package/dist/{token-util-GALWBVLF.js.map → chunk-KEXKKQVW.js.map} +0 -0
package/dist/bin.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
extractOverrides,
|
|
4
4
|
loadEvalCommand
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6ZENNC22.js";
|
|
6
6
|
import {
|
|
7
7
|
OAuth,
|
|
8
8
|
fetchOrganizations,
|
|
@@ -14,27 +14,20 @@ import {
|
|
|
14
14
|
startCallbackServer,
|
|
15
15
|
verifyToken,
|
|
16
16
|
waitForCallback
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-3VKWOZAQ.js";
|
|
18
|
+
import "./chunk-QRQVSBSO.js";
|
|
19
19
|
import {
|
|
20
20
|
AxiomCLIError
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import
|
|
26
|
-
init_esm_shims
|
|
27
|
-
} from "./chunk-4VNFFUM5.js";
|
|
21
|
+
} from "./chunk-ISSDOC43.js";
|
|
22
|
+
import "./chunk-YDN5Y5PQ.js";
|
|
23
|
+
import "./chunk-MM5FFQJT.js";
|
|
24
|
+
import "./chunk-4TKUTT24.js";
|
|
25
|
+
import "./chunk-KEXKKQVW.js";
|
|
28
26
|
|
|
29
27
|
// src/bin.ts
|
|
30
|
-
init_esm_shims();
|
|
31
28
|
import { Command as Command2 } from "commander";
|
|
32
29
|
|
|
33
|
-
// src/cli/commands/auth.command.ts
|
|
34
|
-
init_esm_shims();
|
|
35
|
-
|
|
36
30
|
// src/cli/commands/auth-login.command.ts
|
|
37
|
-
init_esm_shims();
|
|
38
31
|
var BASE_HOSTNAME = "axiom.co";
|
|
39
32
|
var getApiUrl = (hostname) => {
|
|
40
33
|
return `https://api.${hostname}`;
|
|
@@ -186,7 +179,6 @@ function loadAuthLoginCommand(auth, root) {
|
|
|
186
179
|
}
|
|
187
180
|
|
|
188
181
|
// src/cli/commands/auth-logout.command.ts
|
|
189
|
-
init_esm_shims();
|
|
190
182
|
async function logoutCommand(alias) {
|
|
191
183
|
const config = await loadGlobalConfig();
|
|
192
184
|
const profileToRemove = alias || config.active_profile;
|
|
@@ -231,7 +223,6 @@ function loadAuthLogoutCommand(auth, root) {
|
|
|
231
223
|
}
|
|
232
224
|
|
|
233
225
|
// src/cli/commands/auth-status.command.ts
|
|
234
|
-
init_esm_shims();
|
|
235
226
|
async function statusCommand() {
|
|
236
227
|
const config = await loadGlobalConfig();
|
|
237
228
|
if (Object.keys(config.profiles).length === 0) {
|
|
@@ -296,7 +287,6 @@ function loadAuthStatusCommand(auth, program2) {
|
|
|
296
287
|
}
|
|
297
288
|
|
|
298
289
|
// src/cli/commands/auth-switch.command.ts
|
|
299
|
-
init_esm_shims();
|
|
300
290
|
async function promptSelect2(message, choices) {
|
|
301
291
|
console.log(`
|
|
302
292
|
${message}`);
|
|
@@ -395,12 +385,11 @@ function loadAuthCommand(program2) {
|
|
|
395
385
|
import pkg from "@next/env";
|
|
396
386
|
|
|
397
387
|
// src/cli/commands/version.command.ts
|
|
398
|
-
init_esm_shims();
|
|
399
388
|
import { Command } from "commander";
|
|
400
389
|
var loadVersionCommand = (program2) => {
|
|
401
390
|
return program2.addCommand(
|
|
402
391
|
new Command("version").description("cli version").action(() => {
|
|
403
|
-
console.log("0.
|
|
392
|
+
console.log("0.47.0");
|
|
404
393
|
})
|
|
405
394
|
);
|
|
406
395
|
};
|
|
@@ -410,7 +399,7 @@ var { loadEnvConfig } = pkg;
|
|
|
410
399
|
loadEnvConfig(process.cwd());
|
|
411
400
|
var { cleanedArgv, overrides } = extractOverrides(process.argv.slice(2));
|
|
412
401
|
var program = new Command2();
|
|
413
|
-
program.name("axiom").description("Axiom's CLI to manage your objects and run evals").version("0.
|
|
402
|
+
program.name("axiom").description("Axiom's CLI to manage your objects and run evals").version("0.47.0");
|
|
414
403
|
program.hook("preAction", async (_, actionCommand) => {
|
|
415
404
|
const commandName = actionCommand.name();
|
|
416
405
|
const parentCommand = actionCommand.parent;
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bin.ts","../src/cli/commands/auth.command.ts","../src/cli/commands/auth-login.command.ts","../src/cli/commands/auth-logout.command.ts","../src/cli/commands/auth-status.command.ts","../src/cli/commands/auth-switch.command.ts","../src/cli/commands/version.command.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Command } from 'commander';\nimport { loadEvalCommand } from './cli/commands/eval.command';\nimport { loadAuthCommand } from './cli/commands/auth.command';\nimport { extractOverrides } from './cli/utils/parse-flag-overrides';\nimport { setupGlobalAuth } from './cli/auth/global-auth';\n\n// Load environment variables using @next/env\nimport pkg from '@next/env';\nimport { loadVersionCommand } from './cli/commands/version.command';\nconst { loadEnvConfig } = pkg;\n\n// Load .env files from the current working directory\nloadEnvConfig(process.cwd());\n\nconst { cleanedArgv, overrides } = extractOverrides(process.argv.slice(2));\n\nexport const program = new Command();\n\nprogram\n .name('axiom')\n .description(\"Axiom's CLI to manage your objects and run evals\")\n .version(__SDK_VERSION__);\n\n// Global auth hook - runs before all commands except auth commands\nprogram.hook('preAction', async (_, actionCommand: Command) => {\n // Skip auth setup for auth commands and version command\n // Check both the command name and parent command name for nested commands\n const commandName = actionCommand.name();\n const parentCommand = actionCommand.parent;\n const parentName = parentCommand?.name();\n\n if (commandName === 'auth' || parentName === 'auth' || commandName === 'version') {\n return;\n }\n\n try {\n await setupGlobalAuth();\n } catch (error) {\n if (error instanceof Error) {\n console.error(`\\n❌ ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${String(error)}\\n`);\n }\n process.exit(1);\n }\n});\n\nloadAuthCommand(program);\nloadEvalCommand(program, overrides);\nloadVersionCommand(program);\n\n// Parse cleaned argv (without --flag.* arguments)\nprogram.parse(['node', 'axiom', ...cleanedArgv]);\n","import type { Command } from 'commander';\nimport { loadAuthLoginCommand } from './auth-login.command';\nimport { loadAuthLogoutCommand } from './auth-logout.command';\nimport { loadAuthStatusCommand } from './auth-status.command';\nimport { loadAuthSwitchCommand } from './auth-switch.command';\n\nexport function loadAuthCommand(program: Command): void {\n const auth = program.command('auth').description('Manage authentication with Axiom');\n\n loadAuthLoginCommand(auth, program);\n loadAuthLogoutCommand(auth, program);\n loadAuthStatusCommand(auth, program);\n loadAuthSwitchCommand(auth, program);\n}\n","import type { Command } from 'commander';\nimport { OAuth } from '../auth/oauth';\nimport { startCallbackServer, waitForCallback } from '../auth/callback-server';\nimport { getGlobalConfigPath, loadGlobalConfig, saveGlobalConfig } from '../auth/config';\nimport { fetchOrganizations, verifyToken } from '../auth/api';\nimport { AxiomCLIError } from '../../util/errors';\n\nconst BASE_HOSTNAME = 'axiom.co';\n\nconst getApiUrl = (hostname: string) => {\n return `https://api.${hostname}`;\n};\n\nconst getOauthUrl = (hostname: string) => {\n return `https://login.${hostname}`;\n};\n\nasync function promptSelect<T>(\n message: string,\n choices: Array<{ name: string; value: T }>,\n): Promise<T> {\n console.log(`\\n${message}`);\n choices.forEach((choice, index) => {\n console.log(` ${index + 1}. ${choice.name}`);\n });\n\n const readline = await import('readline');\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n const askQuestion = () => {\n rl.question(`\\nSelect (1-${choices.length}): `, (answer) => {\n const index = parseInt(answer.trim(), 10) - 1;\n if (index >= 0 && index < choices.length) {\n rl.close();\n resolve(choices[index].value);\n } else {\n console.log('Invalid selection. Please try again.');\n askQuestion();\n }\n });\n };\n askQuestion();\n });\n}\n\nasync function promptInput(message: string, defaultValue?: string): Promise<string> {\n const readline = await import('readline');\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n const prompt = defaultValue ? `${message} (${defaultValue}): ` : `${message}: `;\n rl.question(prompt, (answer) => {\n rl.close();\n resolve(answer.trim() || defaultValue || '');\n });\n });\n}\n\nasync function openBrowser(url: string): Promise<void> {\n const { default: open } = await import('open');\n await open(url);\n}\n\nexport async function loginCommand(hostname: string): Promise<void> {\n try {\n console.log('🔐 Starting authentication flow...\\n');\n\n const codeVerifier = OAuth.generateCodeVerifier();\n const codeChallenge = OAuth.generateCodeChallenge(codeVerifier);\n const state = OAuth.generateState();\n const oauth = new OAuth(getOauthUrl(hostname));\n\n const { server, url: redirectUri } = await startCallbackServer();\n console.log(`✓ Started local callback server on ${redirectUri}\\n`);\n\n const authUrl = oauth.buildAuthUrl({\n redirectUri,\n state,\n codeChallenge,\n });\n\n console.log('Opening browser for authentication...');\n console.log(`If the browser doesn't open, visit: ${authUrl}\\n`);\n\n try {\n await openBrowser(authUrl);\n } catch {\n console.log('Could not open browser automatically.\\n');\n }\n\n console.log('Waiting for authentication...');\n const { code } = await waitForCallback(server, state);\n\n console.log('✓ Authentication successful, exchanging code for token...\\n');\n\n const accessToken = await oauth.exchangeCodeForToken({\n code,\n redirectUri,\n codeVerifier,\n });\n\n console.log('✓ Token received, fetching organizations...\\n');\n\n const organizations = await fetchOrganizations(accessToken, getApiUrl(hostname));\n\n if (organizations.length === 0) {\n throw new AxiomCLIError('No organizations found for this account');\n }\n\n let selectedOrgId: string;\n if (organizations.length === 1) {\n selectedOrgId = organizations[0].id;\n console.log(`✓ Using organization: ${organizations[0].name}\\n`);\n } else {\n selectedOrgId = await promptSelect(\n 'Select an organization:',\n organizations.map((org) => ({\n name: `${org.name} (${org.id})`,\n value: org.id,\n })),\n );\n }\n\n const selectedOrg = organizations.find((org) => org.id === selectedOrgId)!;\n const defaultAlias = selectedOrg.slug || selectedOrg.name.toLowerCase().replace(/\\s+/g, '-');\n\n const alias = await promptInput('Enter profile alias', defaultAlias);\n\n console.log('\\n✓ Verifying credentials...\\n');\n const isValid = await verifyToken(accessToken, selectedOrgId, getApiUrl(hostname));\n\n if (!isValid) {\n throw new AxiomCLIError('Token verification failed');\n }\n\n const config = await loadGlobalConfig();\n config.active_profile = alias;\n config.profiles[alias] = {\n url: getApiUrl(hostname),\n token: accessToken,\n org_id: selectedOrgId,\n };\n\n await saveGlobalConfig(config);\n\n console.log(`✓ Successfully logged in as ${alias}`);\n console.log(`✓ Configuration saved to ${getGlobalConfigPath()}\\n`);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n throw error;\n }\n throw new AxiomCLIError(`Login failed: ${(error as Error).message}`);\n }\n}\n\nexport function loadAuthLoginCommand(auth: Command, root: Command): void {\n [auth, root].forEach((program) => {\n program\n .command('login')\n .description('Authenticate with Axiom')\n .option('--hostname <hostname>', 'Axiom hostname (default: axiom.co)')\n .action(async (options) => {\n try {\n await loginCommand(options.hostname ?? BASE_HOSTNAME);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadGlobalConfig, saveGlobalConfig } from '../auth/config';\nimport { AxiomCLIError } from '../../util/errors';\n\nexport async function logoutCommand(alias?: string): Promise<void> {\n const config = await loadGlobalConfig();\n\n const profileToRemove = alias || config.active_profile;\n\n if (!profileToRemove) {\n throw new AxiomCLIError('No active profile. Use --alias to specify which profile to remove.');\n }\n\n if (!config.profiles[profileToRemove]) {\n throw new AxiomCLIError(`Profile \"${profileToRemove}\" not found`);\n }\n\n delete config.profiles[profileToRemove];\n\n if (config.active_profile === profileToRemove) {\n const remainingProfiles = Object.keys(config.profiles);\n config.active_profile = remainingProfiles.length > 0 ? remainingProfiles[0] : undefined;\n }\n\n await saveGlobalConfig(config);\n\n console.log(`✓ Logged out from ${profileToRemove}`);\n if (config.active_profile) {\n console.log(`✓ Active profile is now: ${config.active_profile}`);\n } else {\n console.log('No active profiles remaining. Run \"axiom auth login\" to authenticate.');\n }\n}\n\nexport function loadAuthLogoutCommand(auth: Command, root: Command): void {\n [auth, root].forEach((program) => {\n program\n .command('logout')\n .description('Remove authentication credentials')\n .option('-a, --alias <alias>', 'Profile alias to remove')\n .action(async (options) => {\n try {\n await logoutCommand(options.alias);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadGlobalConfig, getActiveProfile } from '../auth/config';\nimport { verifyToken } from '../auth/api';\nimport { AxiomCLIError } from '../../util/errors';\n\nexport async function statusCommand(): Promise<void> {\n const config = await loadGlobalConfig();\n\n if (Object.keys(config.profiles).length === 0) {\n console.log('No authenticated profiles found.');\n console.log('Run \"axiom auth login\" to authenticate.');\n return;\n }\n\n console.log('\\nAuthentication Status:\\n');\n\n for (const [alias, profile] of Object.entries(config.profiles)) {\n const isActive = config.active_profile === alias;\n const marker = isActive ? '→' : ' ';\n\n try {\n const isValid = await verifyToken(profile.token, profile.org_id, profile.url);\n const status = isValid ? '✓' : '✗';\n const statusText = isValid ? 'Valid' : 'Invalid';\n\n console.log(`${marker} ${status} ${alias}`);\n console.log(` URL: ${profile.url}`);\n console.log(` Org ID: ${profile.org_id}`);\n console.log(` Status: ${statusText}`);\n if (isActive) {\n console.log(` (Active)`);\n }\n console.log();\n } catch (error) {\n console.log(`${marker} ✗ ${alias}`);\n console.log(` URL: ${profile.url}`);\n console.log(` Org ID: ${profile.org_id}`);\n console.log(` Status: Error - ${(error as Error).message}`);\n if (isActive) {\n console.log(` (Active)`);\n }\n console.log();\n }\n }\n\n const activeProfile = getActiveProfile(config);\n if (process.env.AXIOM_TOKEN) {\n console.log('Note: Using AXIOM_TOKEN environment variable (overrides config file)\\n');\n } else if (activeProfile && config.active_profile) {\n console.log(`Active profile: ${config.active_profile}\\n`);\n }\n}\n\nexport function loadAuthStatusCommand(auth: Command, program: Command): void {\n [auth, program].forEach((program) => {\n program\n .command('status')\n .description('Check authentication status for all profiles')\n .action(async () => {\n try {\n await statusCommand();\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadGlobalConfig, saveGlobalConfig } from '../auth/config';\nimport { AxiomCLIError } from '../../util/errors';\n\nasync function promptSelect<T>(\n message: string,\n choices: Array<{ name: string; value: T }>,\n): Promise<T> {\n console.log(`\\n${message}`);\n choices.forEach((choice, index) => {\n console.log(` ${index + 1}. ${choice.name}`);\n });\n\n const readline = await import('readline');\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n const askQuestion = () => {\n rl.question(`\\nSelect (1-${choices.length}): `, (answer) => {\n const index = parseInt(answer.trim(), 10) - 1;\n if (index >= 0 && index < choices.length) {\n rl.close();\n resolve(choices[index].value);\n } else {\n console.log('Invalid selection. Please try again.');\n askQuestion();\n }\n });\n };\n askQuestion();\n });\n}\n\nexport async function switchCommand(alias?: string): Promise<void> {\n const config = await loadGlobalConfig();\n\n if (Object.keys(config.profiles).length === 0) {\n throw new AxiomCLIError(\n 'No authenticated profiles found. Run \"axiom auth login\" to authenticate.',\n );\n }\n\n let selectedAlias: string;\n\n if (alias) {\n // Use provided alias\n if (!config.profiles[alias]) {\n throw new AxiomCLIError(`Profile \"${alias}\" not found`);\n }\n selectedAlias = alias;\n } else {\n // Prompt for selection\n const profiles = Object.entries(config.profiles).map(([alias, profile]) => ({\n name: `${alias} (${profile.url})`,\n value: alias,\n }));\n\n if (profiles.length === 1) {\n selectedAlias = profiles[0].value;\n console.log(`✓ Using profile: ${selectedAlias}\\n`);\n } else {\n selectedAlias = await promptSelect('Select a profile to switch to:', profiles);\n }\n }\n\n // Check if already active\n if (config.active_profile === selectedAlias) {\n console.log(`✓ Profile \"${selectedAlias}\" is already active\\n`);\n return;\n }\n\n // Set as active\n config.active_profile = selectedAlias;\n await saveGlobalConfig(config);\n\n console.log(`✓ Switched to profile: ${selectedAlias}\\n`);\n}\n\nexport function loadAuthSwitchCommand(auth: Command, root: Command): void {\n [auth, root].forEach((program) => {\n program\n .command('switch')\n .description('Switch to a different profile')\n .argument('[alias]', 'Profile alias to switch to')\n .action(async (alias?: string) => {\n try {\n await switchCommand(alias);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import { Command } from 'commander';\n\nexport const loadVersionCommand = (program: Command) => {\n return program.addCommand(\n new Command('version').description('cli version').action(() => {\n console.log(__SDK_VERSION__);\n }),\n );\n};\n"],"mappings":"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","names":["Command","program","program","program","promptSelect","alias","program","program","program","Command"]}
|
|
1
|
+
{"version":3,"sources":["../src/bin.ts","../src/cli/commands/auth-login.command.ts","../src/cli/commands/auth-logout.command.ts","../src/cli/commands/auth-status.command.ts","../src/cli/commands/auth-switch.command.ts","../src/cli/commands/auth.command.ts","../src/cli/commands/version.command.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { Command } from 'commander';\nimport { loadEvalCommand } from './cli/commands/eval.command';\nimport { loadAuthCommand } from './cli/commands/auth.command';\nimport { extractOverrides } from './cli/utils/parse-flag-overrides';\nimport { setupGlobalAuth } from './cli/auth/global-auth';\n\n// Load environment variables using @next/env\nimport pkg from '@next/env';\nimport { loadVersionCommand } from './cli/commands/version.command';\nconst { loadEnvConfig } = pkg;\n\n// Load .env files from the current working directory\nloadEnvConfig(process.cwd());\n\nconst { cleanedArgv, overrides } = extractOverrides(process.argv.slice(2));\n\nexport const program = new Command();\n\nprogram\n .name('axiom')\n .description(\"Axiom's CLI to manage your objects and run evals\")\n .version(__SDK_VERSION__);\n\n// Global auth hook - runs before all commands except auth commands\nprogram.hook('preAction', async (_, actionCommand: Command) => {\n // Skip auth setup for auth commands and version command\n // Check both the command name and parent command name for nested commands\n const commandName = actionCommand.name();\n const parentCommand = actionCommand.parent;\n const parentName = parentCommand?.name();\n\n if (commandName === 'auth' || parentName === 'auth' || commandName === 'version') {\n return;\n }\n\n try {\n await setupGlobalAuth();\n } catch (error) {\n if (error instanceof Error) {\n console.error(`\\n❌ ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${String(error)}\\n`);\n }\n process.exit(1);\n }\n});\n\nloadAuthCommand(program);\nloadEvalCommand(program, overrides);\nloadVersionCommand(program);\n\n// Parse cleaned argv (without --flag.* arguments)\nprogram.parse(['node', 'axiom', ...cleanedArgv]);\n","import type { Command } from 'commander';\nimport { OAuth } from '../auth/oauth';\nimport { startCallbackServer, waitForCallback } from '../auth/callback-server';\nimport { getGlobalConfigPath, loadGlobalConfig, saveGlobalConfig } from '../auth/config';\nimport { fetchOrganizations, verifyToken } from '../auth/api';\nimport { AxiomCLIError } from '../../util/errors';\n\nconst BASE_HOSTNAME = 'axiom.co';\n\nconst getApiUrl = (hostname: string) => {\n return `https://api.${hostname}`;\n};\n\nconst getOauthUrl = (hostname: string) => {\n return `https://login.${hostname}`;\n};\n\nasync function promptSelect<T>(\n message: string,\n choices: Array<{ name: string; value: T }>,\n): Promise<T> {\n console.log(`\\n${message}`);\n choices.forEach((choice, index) => {\n console.log(` ${index + 1}. ${choice.name}`);\n });\n\n const readline = await import('readline');\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n const askQuestion = () => {\n rl.question(`\\nSelect (1-${choices.length}): `, (answer) => {\n const index = parseInt(answer.trim(), 10) - 1;\n if (index >= 0 && index < choices.length) {\n rl.close();\n resolve(choices[index].value);\n } else {\n console.log('Invalid selection. Please try again.');\n askQuestion();\n }\n });\n };\n askQuestion();\n });\n}\n\nasync function promptInput(message: string, defaultValue?: string): Promise<string> {\n const readline = await import('readline');\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n const prompt = defaultValue ? `${message} (${defaultValue}): ` : `${message}: `;\n rl.question(prompt, (answer) => {\n rl.close();\n resolve(answer.trim() || defaultValue || '');\n });\n });\n}\n\nasync function openBrowser(url: string): Promise<void> {\n const { default: open } = await import('open');\n await open(url);\n}\n\nexport async function loginCommand(hostname: string): Promise<void> {\n try {\n console.log('🔐 Starting authentication flow...\\n');\n\n const codeVerifier = OAuth.generateCodeVerifier();\n const codeChallenge = OAuth.generateCodeChallenge(codeVerifier);\n const state = OAuth.generateState();\n const oauth = new OAuth(getOauthUrl(hostname));\n\n const { server, url: redirectUri } = await startCallbackServer();\n console.log(`✓ Started local callback server on ${redirectUri}\\n`);\n\n const authUrl = oauth.buildAuthUrl({\n redirectUri,\n state,\n codeChallenge,\n });\n\n console.log('Opening browser for authentication...');\n console.log(`If the browser doesn't open, visit: ${authUrl}\\n`);\n\n try {\n await openBrowser(authUrl);\n } catch {\n console.log('Could not open browser automatically.\\n');\n }\n\n console.log('Waiting for authentication...');\n const { code } = await waitForCallback(server, state);\n\n console.log('✓ Authentication successful, exchanging code for token...\\n');\n\n const accessToken = await oauth.exchangeCodeForToken({\n code,\n redirectUri,\n codeVerifier,\n });\n\n console.log('✓ Token received, fetching organizations...\\n');\n\n const organizations = await fetchOrganizations(accessToken, getApiUrl(hostname));\n\n if (organizations.length === 0) {\n throw new AxiomCLIError('No organizations found for this account');\n }\n\n let selectedOrgId: string;\n if (organizations.length === 1) {\n selectedOrgId = organizations[0].id;\n console.log(`✓ Using organization: ${organizations[0].name}\\n`);\n } else {\n selectedOrgId = await promptSelect(\n 'Select an organization:',\n organizations.map((org) => ({\n name: `${org.name} (${org.id})`,\n value: org.id,\n })),\n );\n }\n\n const selectedOrg = organizations.find((org) => org.id === selectedOrgId)!;\n const defaultAlias = selectedOrg.slug || selectedOrg.name.toLowerCase().replace(/\\s+/g, '-');\n\n const alias = await promptInput('Enter profile alias', defaultAlias);\n\n console.log('\\n✓ Verifying credentials...\\n');\n const isValid = await verifyToken(accessToken, selectedOrgId, getApiUrl(hostname));\n\n if (!isValid) {\n throw new AxiomCLIError('Token verification failed');\n }\n\n const config = await loadGlobalConfig();\n config.active_profile = alias;\n config.profiles[alias] = {\n url: getApiUrl(hostname),\n token: accessToken,\n org_id: selectedOrgId,\n };\n\n await saveGlobalConfig(config);\n\n console.log(`✓ Successfully logged in as ${alias}`);\n console.log(`✓ Configuration saved to ${getGlobalConfigPath()}\\n`);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n throw error;\n }\n throw new AxiomCLIError(`Login failed: ${(error as Error).message}`);\n }\n}\n\nexport function loadAuthLoginCommand(auth: Command, root: Command): void {\n [auth, root].forEach((program) => {\n program\n .command('login')\n .description('Authenticate with Axiom')\n .option('--hostname <hostname>', 'Axiom hostname (default: axiom.co)')\n .action(async (options) => {\n try {\n await loginCommand(options.hostname ?? BASE_HOSTNAME);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadGlobalConfig, saveGlobalConfig } from '../auth/config';\nimport { AxiomCLIError } from '../../util/errors';\n\nexport async function logoutCommand(alias?: string): Promise<void> {\n const config = await loadGlobalConfig();\n\n const profileToRemove = alias || config.active_profile;\n\n if (!profileToRemove) {\n throw new AxiomCLIError('No active profile. Use --alias to specify which profile to remove.');\n }\n\n if (!config.profiles[profileToRemove]) {\n throw new AxiomCLIError(`Profile \"${profileToRemove}\" not found`);\n }\n\n delete config.profiles[profileToRemove];\n\n if (config.active_profile === profileToRemove) {\n const remainingProfiles = Object.keys(config.profiles);\n config.active_profile = remainingProfiles.length > 0 ? remainingProfiles[0] : undefined;\n }\n\n await saveGlobalConfig(config);\n\n console.log(`✓ Logged out from ${profileToRemove}`);\n if (config.active_profile) {\n console.log(`✓ Active profile is now: ${config.active_profile}`);\n } else {\n console.log('No active profiles remaining. Run \"axiom auth login\" to authenticate.');\n }\n}\n\nexport function loadAuthLogoutCommand(auth: Command, root: Command): void {\n [auth, root].forEach((program) => {\n program\n .command('logout')\n .description('Remove authentication credentials')\n .option('-a, --alias <alias>', 'Profile alias to remove')\n .action(async (options) => {\n try {\n await logoutCommand(options.alias);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadGlobalConfig, getActiveProfile } from '../auth/config';\nimport { verifyToken } from '../auth/api';\nimport { AxiomCLIError } from '../../util/errors';\n\nexport async function statusCommand(): Promise<void> {\n const config = await loadGlobalConfig();\n\n if (Object.keys(config.profiles).length === 0) {\n console.log('No authenticated profiles found.');\n console.log('Run \"axiom auth login\" to authenticate.');\n return;\n }\n\n console.log('\\nAuthentication Status:\\n');\n\n for (const [alias, profile] of Object.entries(config.profiles)) {\n const isActive = config.active_profile === alias;\n const marker = isActive ? '→' : ' ';\n\n try {\n const isValid = await verifyToken(profile.token, profile.org_id, profile.url);\n const status = isValid ? '✓' : '✗';\n const statusText = isValid ? 'Valid' : 'Invalid';\n\n console.log(`${marker} ${status} ${alias}`);\n console.log(` URL: ${profile.url}`);\n console.log(` Org ID: ${profile.org_id}`);\n console.log(` Status: ${statusText}`);\n if (isActive) {\n console.log(` (Active)`);\n }\n console.log();\n } catch (error) {\n console.log(`${marker} ✗ ${alias}`);\n console.log(` URL: ${profile.url}`);\n console.log(` Org ID: ${profile.org_id}`);\n console.log(` Status: Error - ${(error as Error).message}`);\n if (isActive) {\n console.log(` (Active)`);\n }\n console.log();\n }\n }\n\n const activeProfile = getActiveProfile(config);\n if (process.env.AXIOM_TOKEN) {\n console.log('Note: Using AXIOM_TOKEN environment variable (overrides config file)\\n');\n } else if (activeProfile && config.active_profile) {\n console.log(`Active profile: ${config.active_profile}\\n`);\n }\n}\n\nexport function loadAuthStatusCommand(auth: Command, program: Command): void {\n [auth, program].forEach((program) => {\n program\n .command('status')\n .description('Check authentication status for all profiles')\n .action(async () => {\n try {\n await statusCommand();\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadGlobalConfig, saveGlobalConfig } from '../auth/config';\nimport { AxiomCLIError } from '../../util/errors';\n\nasync function promptSelect<T>(\n message: string,\n choices: Array<{ name: string; value: T }>,\n): Promise<T> {\n console.log(`\\n${message}`);\n choices.forEach((choice, index) => {\n console.log(` ${index + 1}. ${choice.name}`);\n });\n\n const readline = await import('readline');\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n const askQuestion = () => {\n rl.question(`\\nSelect (1-${choices.length}): `, (answer) => {\n const index = parseInt(answer.trim(), 10) - 1;\n if (index >= 0 && index < choices.length) {\n rl.close();\n resolve(choices[index].value);\n } else {\n console.log('Invalid selection. Please try again.');\n askQuestion();\n }\n });\n };\n askQuestion();\n });\n}\n\nexport async function switchCommand(alias?: string): Promise<void> {\n const config = await loadGlobalConfig();\n\n if (Object.keys(config.profiles).length === 0) {\n throw new AxiomCLIError(\n 'No authenticated profiles found. Run \"axiom auth login\" to authenticate.',\n );\n }\n\n let selectedAlias: string;\n\n if (alias) {\n // Use provided alias\n if (!config.profiles[alias]) {\n throw new AxiomCLIError(`Profile \"${alias}\" not found`);\n }\n selectedAlias = alias;\n } else {\n // Prompt for selection\n const profiles = Object.entries(config.profiles).map(([alias, profile]) => ({\n name: `${alias} (${profile.url})`,\n value: alias,\n }));\n\n if (profiles.length === 1) {\n selectedAlias = profiles[0].value;\n console.log(`✓ Using profile: ${selectedAlias}\\n`);\n } else {\n selectedAlias = await promptSelect('Select a profile to switch to:', profiles);\n }\n }\n\n // Check if already active\n if (config.active_profile === selectedAlias) {\n console.log(`✓ Profile \"${selectedAlias}\" is already active\\n`);\n return;\n }\n\n // Set as active\n config.active_profile = selectedAlias;\n await saveGlobalConfig(config);\n\n console.log(`✓ Switched to profile: ${selectedAlias}\\n`);\n}\n\nexport function loadAuthSwitchCommand(auth: Command, root: Command): void {\n [auth, root].forEach((program) => {\n program\n .command('switch')\n .description('Switch to a different profile')\n .argument('[alias]', 'Profile alias to switch to')\n .action(async (alias?: string) => {\n try {\n await switchCommand(alias);\n } catch (error) {\n if (error instanceof AxiomCLIError) {\n console.error(`\\n❌ Error: ${error.message}\\n`);\n } else {\n console.error(`\\n❌ Unexpected error: ${(error as Error).message}\\n`);\n }\n process.exit(1);\n }\n });\n });\n}\n","import type { Command } from 'commander';\nimport { loadAuthLoginCommand } from './auth-login.command';\nimport { loadAuthLogoutCommand } from './auth-logout.command';\nimport { loadAuthStatusCommand } from './auth-status.command';\nimport { loadAuthSwitchCommand } from './auth-switch.command';\n\nexport function loadAuthCommand(program: Command): void {\n const auth = program.command('auth').description('Manage authentication with Axiom');\n\n loadAuthLoginCommand(auth, program);\n loadAuthLogoutCommand(auth, program);\n loadAuthStatusCommand(auth, program);\n loadAuthSwitchCommand(auth, program);\n}\n","import { Command } from 'commander';\n\nexport const loadVersionCommand = (program: Command) => {\n return program.addCommand(\n new Command('version').description('cli version').action(() => {\n console.log(__SDK_VERSION__);\n }),\n );\n};\n"],"mappings":"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","names":["Command","program","program","program","promptSelect","alias","program","program","program","Command"]}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AxiomCLIError
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import {
|
|
5
|
-
init_esm_shims
|
|
6
|
-
} from "./chunk-4VNFFUM5.js";
|
|
7
|
-
|
|
8
|
-
// src/cli/auth/global-auth.ts
|
|
9
|
-
init_esm_shims();
|
|
3
|
+
} from "./chunk-ISSDOC43.js";
|
|
10
4
|
|
|
11
5
|
// src/cli/auth/config.ts
|
|
12
|
-
init_esm_shims();
|
|
13
6
|
import { promises as fs } from "fs";
|
|
14
7
|
import path from "path";
|
|
15
8
|
import os from "os";
|
|
@@ -81,17 +74,9 @@ async function setupGlobalAuth() {
|
|
|
81
74
|
}
|
|
82
75
|
|
|
83
76
|
// src/config/index.ts
|
|
84
|
-
init_esm_shims();
|
|
85
77
|
import "zod";
|
|
86
78
|
|
|
87
|
-
// src/cli/auth/index.ts
|
|
88
|
-
init_esm_shims();
|
|
89
|
-
|
|
90
|
-
// src/cli/auth/types.ts
|
|
91
|
-
init_esm_shims();
|
|
92
|
-
|
|
93
79
|
// src/cli/auth/oauth.ts
|
|
94
|
-
init_esm_shims();
|
|
95
80
|
import { randomBytes, createHash } from "crypto";
|
|
96
81
|
var OAUTH_CLIENT_ID = "264d906a404efc209b027f6595e6b616";
|
|
97
82
|
var OAUTH_AUTH_PATH = "/oauth/authorize";
|
|
@@ -146,7 +131,6 @@ var OAuth = class {
|
|
|
146
131
|
};
|
|
147
132
|
|
|
148
133
|
// src/cli/auth/api.ts
|
|
149
|
-
init_esm_shims();
|
|
150
134
|
async function fetchOrganizations(token, apiBaseUrl) {
|
|
151
135
|
const response = await fetch(`${apiBaseUrl}/v2/orgs`, {
|
|
152
136
|
headers: {
|
|
@@ -174,7 +158,6 @@ async function verifyToken(token, orgId, apiBaseUrl) {
|
|
|
174
158
|
}
|
|
175
159
|
|
|
176
160
|
// src/cli/auth/callback-server.ts
|
|
177
|
-
init_esm_shims();
|
|
178
161
|
import http from "http";
|
|
179
162
|
function escapeHtml(text) {
|
|
180
163
|
const map = {
|
|
@@ -423,4 +406,4 @@ export {
|
|
|
423
406
|
createPartialDefaults,
|
|
424
407
|
validateConfig
|
|
425
408
|
};
|
|
426
|
-
//# sourceMappingURL=chunk-
|
|
409
|
+
//# sourceMappingURL=chunk-3VKWOZAQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/auth/config.ts","../src/cli/auth/global-auth.ts","../src/config/index.ts","../src/cli/auth/oauth.ts","../src/cli/auth/api.ts","../src/cli/auth/callback-server.ts"],"sourcesContent":["import { promises as fs } from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport type { Config, Profile } from './types';\n\nconst CONFIG_FILENAME = 'config.json';\nconst CONFIG_DIR_NAME = 'axiom';\n\n/**\n * Gets the OS-appropriate config directory path.\n * - Linux/Unix: ~/.config/axiom\n * - macOS: ~/Library/Application Support/axiom\n * - Windows: %APPDATA%\\axiom\n */\nexport function getConfigDir(): string {\n const platform = process.platform;\n const homeDir = os.homedir();\n\n // Linux/Unix: ~/.config/axiom (or $XDG_CONFIG_HOME/axiom if set)\n const xdgConfigHome = process.env.XDG_CONFIG_HOME;\n if (xdgConfigHome) {\n return path.join(xdgConfigHome, CONFIG_DIR_NAME);\n }\n\n if (platform === 'win32') {\n // Windows: %APPDATA%\\axiom\n const appData = process.env.APPDATA;\n if (appData) {\n return path.join(appData, CONFIG_DIR_NAME);\n }\n // Fallback to home directory if APPDATA is not set\n return path.join(homeDir, 'AppData', 'Roaming', CONFIG_DIR_NAME);\n }\n\n return path.join(homeDir, '.config', CONFIG_DIR_NAME);\n}\n\n/**\n * Gets the full path to the config file.\n */\nexport function getGlobalConfigPath(): string {\n return path.join(getConfigDir(), CONFIG_FILENAME);\n}\n\nexport async function loadGlobalConfig(): Promise<Config> {\n const configPath = getGlobalConfigPath();\n try {\n const content = await fs.readFile(configPath, 'utf-8');\n return JSON.parse(content);\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') {\n return { profiles: {} };\n }\n throw error;\n }\n}\n\nexport async function saveGlobalConfig(config: Config): Promise<void> {\n const configPath = getGlobalConfigPath();\n const configDir = path.dirname(configPath);\n const content = JSON.stringify(config, null, 2);\n\n // Ensure config directory exists\n await fs.mkdir(configDir, { recursive: true, mode: 0o700 });\n\n // Write config file\n await fs.writeFile(configPath, content, 'utf-8');\n\n // Set restrictive permissions (read/write for owner only)\n // Note: chmod is a no-op on Windows, but that's fine\n await fs.chmod(configPath, 0o600);\n}\n\nexport function getActiveProfile(config: Config): Profile | null {\n // Get from config\n const profileName = config.active_profile;\n if (!profileName) return null;\n\n const profile = config.profiles[profileName];\n if (!profile) return null;\n\n return profile;\n}\n","import { loadGlobalConfig, getActiveProfile } from './config';\n\nexport interface AuthContext {\n readonly token: string;\n readonly url: string;\n readonly orgId: string;\n}\n\n/**\n * Module-level store for auth context.\n * This provides explicit, type-safe access to auth credentials.\n */\nlet authContext: AuthContext | null = null;\n\n/**\n * Gets the current auth context.\n * Returns null if auth hasn't been set up yet.\n */\nexport function getAuthContext(): AuthContext | null {\n return authContext;\n}\n\n/**\n * Sets up authentication context by loading config and storing it.\n *\n * @throws {AxiomCLIError} If no active profile is found\n */\nexport async function setupGlobalAuth(): Promise<AuthContext | null> {\n const config = await loadGlobalConfig();\n const profile = getActiveProfile(config);\n if (profile) {\n // Store in module-level context for explicit access\n authContext = {\n token: profile.token,\n url: profile.url,\n orgId: profile.org_id,\n };\n }\n\n return authContext;\n}\n\n/**\n * Resets the auth context (useful for testing).\n */\nexport function resetAuthContext(): void {\n authContext = null;\n}\n","import type { TracerProvider } from '@opentelemetry/api';\nimport { type z } from 'zod';\nimport { AxiomCLIError } from '../util/errors';\nimport { getAuthContext } from '../cli/auth';\n\n/**\n * Utility type to make all properties in T required recursively.\n * Keeps the types as-is but removes the optionality.\n */\ntype DeepRequired<T> =\n T extends Array<infer U>\n ? Array<U>\n : T extends (...args: any[]) => any\n ? T\n : T extends object\n ? {\n [P in keyof T]-?: DeepRequired<T[P]>;\n }\n : T;\n\n/**\n * Axiom API connection configuration\n */\nexport interface AxiomConnectionConfig {\n /**\n * Axiom API URL\n * @default 'https://api.axiom.co'\n * @example 'https://api.axiom.co'\n */\n url?: string;\n\n /**\n * Axiom Edge URL for ingest and query operations.\n * When set, this URL is used for sending traces and querying data,\n * while the regular `url` is used for API/console operations.\n * Falls back to `url` if not specified.\n * @example 'https://eu-central-1.aws.edge.axiom.co'\n */\n edgeUrl?: string;\n\n /**\n * Axiom API token (can be undefined if not set)\n * @example process.env.AXIOM_TOKEN\n */\n token?: string | undefined;\n\n /**\n * Axiom dataset name\n * @example process.env.AXIOM_DATASET\n */\n dataset?: string;\n\n /**\n * Axiom organization ID\n * @example process.env.AXIOM_ORG_ID\n */\n orgId?: string;\n}\n\n/**\n * Options passed to the instrumentation hook\n * - url: string\n * - token: string\n * - dataset: string\n */\nexport interface AxiomEvalInstrumentationOptions {\n url: string;\n edgeUrl: string;\n token: string;\n dataset: string;\n orgId?: string;\n}\n\n/**\n * Result returned from the instrumentation hook\n */\nexport interface AxiomEvalInstrumentationResult {\n /**\n * TracerProvider to be flushed when eval finishes.\n *\n * If you use the NodeSDK or register your provider globally, you don't need to return it\n * here as the NodeSDK automatically flushes the global provider.\n *\n * Only return a provider if you want Axiom to explicitly flush it for you and it's not\n * registered as the global tracer provider.\n */\n provider?: TracerProvider;\n}\n\nexport type SyncAxiomEvalInstrumentationHook = (\n options: AxiomEvalInstrumentationOptions,\n) => AxiomEvalInstrumentationResult;\n\nexport type AsyncAxiomEvalInstrumentationHook = (\n options: AxiomEvalInstrumentationOptions,\n) => Promise<AxiomEvalInstrumentationResult>;\n\n/**\n * Hook function to initialize application OpenTelemetry instrumentation.\n * Called before eval execution with resolved Axiom connection details.\n *\n * @param options - Configuration options\n * @param options.url - Axiom API URL\n * @param options.token - Axiom API token\n * @param options.dataset - Axiom dataset name\n * @returns TracerProvider or Promise resolving to TracerProvider\n *\n * @example\n * ```typescript\n * instrumentation: ({ url, token, dataset }) => {\n * return setupAppInstrumentation({ url, token, dataset });\n * }\n * ```\n */\nexport type AxiomEvalInstrumentationHook = (\n options: AxiomEvalInstrumentationOptions,\n) => AxiomEvalInstrumentationResult | Promise<AxiomEvalInstrumentationResult>;\n\n/**\n * Axiom AI SDK base configuration (user-facing, all optional)\n */\nexport const DEFAULT_EVAL_INCLUDE = ['**/*.eval.{ts,js,mts,mjs,cts,cjs}'] as const;\n\nexport interface AxiomConfigBase {\n /**\n * Eval configuration settings\n *\n * @example\n * ```typescript\n * eval: {\n * url: process.env.AXIOM_URL,\n * token: process.env.AXIOM_TOKEN,\n * dataset: process.env.AXIOM_DATASET\n * }\n * ```\n */\n eval?: AxiomConnectionConfig & {\n /**\n * Zod schema for flag validation.\n * When provided, CLI flags (--flag.*) are validated against this schema\n * before eval execution begins.\n *\n * @example\n * ```typescript\n * import { z } from 'zod';\n *\n * export default defineConfig({\n * eval: {\n * flagSchema: z.object({\n * model: z.object({\n * temperature: z.number().min(0).max(2).default(0.7),\n * name: z.string().default('gpt-4o'),\n * }),\n * }),\n * }\n * });\n * ```\n */\n flagSchema?: z.ZodObject<any> | null;\n /**\n * Optional hook to initialize application OpenTelemetry instrumentation.\n * Called before eval execution with resolved Axiom connection details.\n * Return your configured tracer provider/tracer (or void) after registering them.\n */\n instrumentation?: AxiomEvalInstrumentationHook | null;\n /**\n * Timeout for eval execution in milliseconds\n * @default 60000\n */\n timeoutMs?: number;\n /**\n * Glob patterns to include when running evals\n * @default ['**\\/*.eval.{ts,js,mts,mjs,cts,cjs}']\n * @example ['**\\/*.eval.ts', 'tests/**\\/*.test.ts']\n */\n include?: string[];\n /**\n * Glob patterns to exclude when running evals\n * @default ['**\\/node_modules/**', '**\\/dist/**', '**\\/build/**']\n * @example ['**\\/node_modules/**', '**\\/.next/**']\n */\n exclude?: string[];\n };\n}\n\n/**\n * Resolved Axiom AI SDK configuration with all required keys.\n * This is the type returned after merging user config with defaults.\n *\n * Uses DeepRequired to ensure all optional properties from AxiomConfigBase\n * become required, preventing missing properties in the resolved config.\n */\nexport type ResolvedAxiomConfig = DeepRequired<AxiomConfigBase>;\n\n/**\n * Axiom AI SDK configuration with optional environment-specific overrides.\n *\n * Supports c12 environment overrides using $development, $production, etc.\n *\n * @example\n * ```typescript\n * export default defineConfig({\n * eval: {\n * url: process.env.AXIOM_URL,\n * token: process.env.AXIOM_TOKEN,\n * dataset: process.env.AXIOM_DATASET,\n * },\n * })\n * ```\n */\nexport interface AxiomConfig extends AxiomConfigBase {\n /**\n * Allow c12 environment-specific overrides ($development, $production, $test etc.)\n * but don't show them in autocomplete for now\n */\n [key: `$${string}`]: Partial<AxiomConfigBase> | undefined;\n}\n\n/**\n * Type-safe helper for defining Axiom configuration.\n *\n * @param config - The configuration object\n * @returns The same configuration object with type checking\n *\n * @example\n * ```typescript\n * import { defineConfig } from 'axiom/ai/config';\n *\n * export default defineConfig({\n * eval: {\n * url: process.env.AXIOM_URL,\n * token: process.env.AXIOM_TOKEN,\n * dataset: process.env.AXIOM_DATASET,\n * include: ['**\\/*.eval.{ts,js}'],\n * instrumentation: ({ url, token, dataset }) => setupAppInstrumentation({ url, token, dataset }),\n * },\n * });\n * ```\n */\nexport function defineConfig(config: AxiomConfig): AxiomConfig {\n return config;\n}\n\n/**\n * Create partial default configuration from auth context or environment variables.\n * Does not throw if required values are missing - validation happens after merge.\n *\n * @returns Partial configuration with defaults and auth/env var values\n * @internal\n */\nexport function createPartialDefaults(): Partial<AxiomConfigBase> {\n // Try to get auth context first (available when running via CLI)\n // Fall back to process.env for backward compatibility (e.g., when used outside CLI)\n let token: string | undefined;\n let url: string | undefined;\n let orgId: string | undefined;\n\n try {\n const authContext = getAuthContext();\n if (authContext) {\n token = authContext.token;\n url = authContext.url;\n orgId = authContext.orgId;\n }\n } catch {\n // Auth context not available, fall back to env vars\n }\n\n // Fall back to process.env if auth context not available\n token = token || process.env.AXIOM_TOKEN;\n url = url || process.env.AXIOM_URL;\n orgId = orgId || process.env.AXIOM_ORG_ID;\n\n // Edge URL for ingest and query operations\n const edgeUrl = process.env.AXIOM_EDGE_URL;\n\n return {\n eval: {\n url: url || 'https://api.axiom.co',\n edgeUrl: edgeUrl,\n orgId,\n token,\n dataset: process.env.AXIOM_DATASET,\n flagSchema: undefined,\n instrumentation: null,\n include: [...DEFAULT_EVAL_INCLUDE],\n exclude: [],\n timeoutMs: 60_000,\n },\n };\n}\n\n/**\n * Validates and returns a fully resolved Axiom configuration.\n *\n * @param config - Partial configuration to validate\n * @returns Fully resolved configuration with all required fields\n * @throws {AxiomCLIError} If required fields are missing or invalid\n * @internal\n */\nexport function validateConfig(config: Partial<AxiomConfigBase>): ResolvedAxiomConfig {\n const errors: string[] = [];\n const isDebug = process.env.AXIOM_DEBUG === 'true';\n\n if (!isDebug) {\n if (!config.eval?.token) {\n errors.push(\n 'eval.token is required (set in axiom.config.ts or AXIOM_TOKEN environment variable)',\n );\n }\n if (!config.eval?.dataset) {\n errors.push(\n 'eval.dataset is required (set in axiom.config.ts or AXIOM_DATASET environment variable)',\n );\n }\n\n if (!config.eval?.url) {\n console.log(\n 'eval.url was not specified. Defaulting to `https://api.axiom.co`. Please set it in axiom.config.ts or AXIOM_URL environment variable if you want to use a different endpoint.',\n );\n }\n }\n\n const instrumentation = config.eval?.instrumentation;\n if (\n instrumentation !== null &&\n instrumentation !== undefined &&\n typeof instrumentation !== 'function'\n ) {\n errors.push(\n 'eval.instrumentation must be a function returning OTEL setup information or null.',\n );\n }\n\n if (errors.length > 0) {\n throw new AxiomCLIError(`Invalid Axiom configuration:\\n - ${errors.join('\\n - ')}`);\n }\n\n return config as ResolvedAxiomConfig;\n}\n","import { randomBytes, createHash } from 'crypto';\nimport type { OAuthTokenResponse } from './types';\n\nconst OAUTH_CLIENT_ID = '264d906a404efc209b027f6595e6b616';\nconst OAUTH_AUTH_PATH = '/oauth/authorize';\nconst OAUTH_TOKEN_PATH = '/oauth/token';\n\nexport interface BuildAuthUrlParams {\n redirectUri: string;\n state: string;\n codeChallenge: string;\n}\n\nexport interface ExchangeCodeParams {\n code: string;\n redirectUri: string;\n codeVerifier: string;\n}\n\nexport class OAuth {\n constructor(private readonly oauthBaseUrl: string) {}\n\n static generateCodeVerifier(): string {\n return randomBytes(32).toString('base64url');\n }\n\n static generateCodeChallenge(verifier: string): string {\n return createHash('sha256').update(verifier).digest('base64url');\n }\n\n static generateState(): string {\n return randomBytes(16).toString('hex');\n }\n\n public buildAuthUrl(params: BuildAuthUrlParams): string {\n const url = new URL(OAUTH_AUTH_PATH, this.oauthBaseUrl);\n url.searchParams.set('client_id', OAUTH_CLIENT_ID);\n url.searchParams.set('redirect_uri', params.redirectUri);\n url.searchParams.set('response_type', 'code');\n url.searchParams.set('state', params.state);\n url.searchParams.set('code_challenge', params.codeChallenge);\n url.searchParams.set('code_challenge_method', 'S256');\n url.searchParams.set('scope', '*');\n return url.toString();\n }\n\n public async exchangeCodeForToken(params: ExchangeCodeParams): Promise<string> {\n const tokenUrl = new URL(OAUTH_TOKEN_PATH, this.oauthBaseUrl);\n\n const body = new URLSearchParams({\n grant_type: 'authorization_code',\n client_id: OAUTH_CLIENT_ID,\n code: params.code,\n redirect_uri: params.redirectUri,\n code_verifier: params.codeVerifier,\n });\n\n const response = await fetch(tokenUrl.toString(), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: body.toString(),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(`Token exchange failed: ${response.status} ${errorText}`);\n }\n\n const data: OAuthTokenResponse = await response.json();\n return data.access_token;\n }\n}\n","import { AxiomCLIError } from '../../util/errors';\nimport type { Organization } from './types';\n\nexport async function fetchOrganizations(\n token: string,\n apiBaseUrl: string,\n): Promise<Organization[]> {\n const response = await fetch(`${apiBaseUrl}/v2/orgs`, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new AxiomCLIError(\n `Failed to fetch organizations: ${response.status} ${response.statusText}`,\n );\n }\n\n const data = await response.json();\n return data as Organization[];\n}\n\nexport async function verifyToken(\n token: string,\n orgId: string,\n apiBaseUrl: string,\n): Promise<boolean> {\n const response = await fetch(`${apiBaseUrl}/v2/user`, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'X-Axiom-Org-Id': orgId,\n 'Content-Type': 'application/json',\n },\n });\n\n return response.ok;\n}\n","import http, { type IncomingMessage, type ServerResponse } from 'http';\nimport type { AddressInfo } from 'net';\n\nfunction escapeHtml(text: string): string {\n const map: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n };\n return text.replace(/[&<>\"']/g, (m) => map[m] || m);\n}\n\nconst SVG_LOGO = `<svg width=\"124\" height=\"24\" viewBox=\"0 0 124 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"logo\">\n<path d=\"M42.9919 16.8116H36.3696L35.5537 19.1572C35.4209 19.539 34.9714 19.8513 34.5548 19.8513H30.9779C30.5614 19.8513 30.3459 19.5449 30.499 19.1703L36.9816 3.31644C37.1346 2.9419 37.6009 2.63546 38.0174 2.63546H41.3718C41.7883 2.63546 42.2541 2.94207 42.4067 3.3168L48.8634 19.17C49.016 19.5447 48.8 19.8513 48.3835 19.8513H44.8067C44.3901 19.8513 43.9406 19.539 43.8078 19.1572L42.9919 16.8116ZM41.8232 13.4223L39.6807 7.18148L37.5383 13.4223H41.8232ZM64.1105 19.8513C63.694 19.8513 63.1767 19.5694 62.9611 19.2247L59.9029 14.3369L56.8447 19.2247C56.6291 19.5694 56.1119 19.8513 55.6953 19.8513H51.3392C50.9227 19.8513 50.7754 19.5801 51.0119 19.2486L56.8978 11.0013L51.5315 3.24414C51.2999 2.90937 51.4513 2.63546 51.8679 2.63546H55.89C56.3066 2.63546 56.8268 2.91563 57.0461 3.25807L59.9029 7.71959L62.7343 3.25955C62.9522 2.9163 63.4713 2.63546 63.8879 2.63546H67.938C68.3545 2.63546 68.5048 2.90868 68.272 3.24261L62.8801 10.9743L68.7935 19.2489C69.0303 19.5802 68.8832 19.8513 68.4666 19.8513H64.1105ZM76.525 19.119C76.525 19.5218 76.1841 19.8513 75.7675 19.8513H72.5522C72.1356 19.8513 71.7947 19.5218 71.7947 19.119V3.36771C71.7947 2.96498 72.1356 2.63546 72.5522 2.63546H75.7675C76.1841 2.63546 76.525 2.96498 76.525 3.36771V19.119ZM79.3736 11.1896C79.3736 6.18625 83.2688 2.15134 89.2511 2.15134C95.2334 2.15134 99.1289 6.18625 99.1289 11.1896C99.1289 16.2199 95.2334 20.2548 89.2511 20.2548C83.2688 20.2548 79.3736 16.2199 79.3736 11.1896ZM94.2873 11.1896C94.2873 8.58038 92.3953 6.21307 89.2511 6.21307C86.1349 6.21307 84.2149 8.58038 84.2149 11.1896C84.2149 13.7989 86.1349 16.2199 89.2511 16.2199C92.3675 16.2199 94.2873 13.7989 94.2873 11.1896ZM119.318 19.8513C118.902 19.8513 118.517 19.5245 118.463 19.1251L117.225 9.89847L113.65 19.1652C113.505 19.5426 113.045 19.8513 112.628 19.8513H111.055C110.638 19.8513 110.179 19.5423 110.034 19.1645L106.457 9.81766L105.218 19.125C105.165 19.5245 104.781 19.8513 104.364 19.8513H101.344C100.927 19.8513 100.633 19.5249 100.69 19.1259L102.932 3.3609C102.988 2.96191 103.376 2.63546 103.792 2.63546H106.59C107.007 2.63546 107.469 2.94351 107.617 3.32002L111.827 14.041L116.064 3.31949C116.213 2.94327 116.676 2.63546 117.092 2.63546H119.89C120.307 2.63546 120.694 2.96191 120.751 3.3609L122.993 19.1259C123.05 19.5249 122.755 19.8513 122.339 19.8513H119.318ZM23.9616 15.6531L18.8054 6.97021C18.5689 6.57115 17.9863 6.24465 17.5106 6.24465H14.2915C13.5433 6.24465 13.2365 5.73171 13.6097 5.1048L15.375 2.13986C15.5151 1.90455 15.5148 1.61487 15.3743 1.37981C15.2337 1.14476 14.9741 1 14.6933 1H10.2025C9.72681 1 9.14291 1.32577 8.90491 1.72395L0.17865 16.3217C-0.0594434 16.7199 -0.0595348 17.3715 0.178285 17.7698L2.42362 21.5297C2.79777 22.1561 3.41129 22.1569 3.78699 21.5313L5.54143 18.6103C5.91722 17.9847 6.53065 17.9854 6.9048 18.6119L8.49538 21.2754C8.7332 21.6737 9.317 21.9995 9.79273 21.9995H20.1698C20.6455 21.9995 21.2293 21.6737 21.4672 21.2754L23.959 17.1028C24.1968 16.7045 24.198 16.0521 23.9616 15.6531ZM16.9981 15.2352C17.3699 15.8629 17.0619 16.3765 16.3136 16.3765H8.24192C7.49372 16.3765 7.1876 15.864 7.56175 15.2375L11.6007 8.47417C11.9748 7.84772 12.5869 7.84774 12.9611 8.47421L16.9981 15.2352Z\" fill=\"#121224\"/>\n</svg>`;\n\nfunction renderCallbackPage(error?: string): string {\n const errorClass = error ? ' class=\"error\"' : '';\n const errorMessage = error ? escapeHtml(error) : '';\n\n return `<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n <title>Axiom</title>\n <link rel=\"icon\" href=\"https://app.axiom.co/static/favicon.ico\">\n <meta name=\"description\" content=\"Axiom CLI\">\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n <style>\n html,\n body,\n .root {\n width: 100%;\n height: 100%;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n }\n body {\n color: #334155;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;\n font-size: 14px;\n font-weight: 500;\n font-variant: tabular-nums;\n line-height: 1.5;\n background-color: #fff;\n font-feature-settings: \"tnum\";\n margin: 0;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: .5em;\n font-weight: 500;\n }\n p {\n margin-top: 0;\n margin-bottom: 1em;\n }\n h2 {\n font-size: 16px;\n font-weight: 600;\n }\n .root {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .logo {\n width: 92px;\n float: left;\n position: absolute;\n top: 16px;\n left: 16px;\n }\n .center p {\n padding: 8px 0;\n }\n .error .center {\n color: #bf0e08;\n }\n </style>\n</head>\n<body${errorClass}>\n <div class=\"root\">\n <a class=\"\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://axiom.co\">\n ${SVG_LOGO}\n </svg>\n </a>\n <div class=\"center\">\n ${\n error\n ? `<h2 id=\"msg\">Login failed</h2>\n <p id=\"details\">${errorMessage}</p>`\n : `<h2 id=\"msg\">Login successful</h2>\n <p id=\"details\">You can close this page and return to your CLI.</p>`\n }\n </div>\n </div>\n <script>\n window.history.replaceState({}, '', \\`\\${window.location.pathname}\\`);\n </script>\n</body>\n</html>`;\n}\n\nexport interface CallbackServerResult {\n server: http.Server;\n port: number;\n url: string;\n}\n\nexport async function startCallbackServer(): Promise<CallbackServerResult> {\n return new Promise((resolve) => {\n const server = http.createServer();\n server.listen(0, '127.0.0.1', () => {\n const address = server.address() as AddressInfo;\n resolve({\n server,\n port: address.port,\n url: `http://127.0.0.1:${address.port}`,\n });\n });\n });\n}\n\nexport interface CallbackResult {\n code: string;\n}\n\nexport async function waitForCallback(\n server: http.Server,\n expectedState: string,\n): Promise<CallbackResult> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(\n () => {\n server.close();\n reject(new Error('Authentication timeout after 5 minutes'));\n },\n 5 * 60 * 1000,\n ); // 5 minute timeout\n\n server.on('request', (req: IncomingMessage, res: ServerResponse) => {\n const url = new URL(req.url || '', `http://${req.headers.host}`);\n const code = url.searchParams.get('code');\n const state = url.searchParams.get('state');\n const error = url.searchParams.get('error');\n const errorDescription = url.searchParams.get('error_description');\n\n if (error) {\n const errorMsg = errorDescription || error;\n res.writeHead(400, { 'Content-Type': 'text/html' });\n res.end(renderCallbackPage(errorMsg));\n clearTimeout(timeout);\n server.close();\n reject(new Error(`OAuth error: ${errorMsg}`));\n return;\n }\n\n if (!code || !state) {\n res.writeHead(400, { 'Content-Type': 'text/html' });\n res.end(renderCallbackPage('Missing code or state parameter'));\n return;\n }\n\n if (state !== expectedState) {\n res.writeHead(400, { 'Content-Type': 'text/html' });\n res.end(renderCallbackPage('Invalid state parameter (CSRF protection)'));\n clearTimeout(timeout);\n server.close();\n reject(new Error('Invalid state parameter'));\n return;\n }\n\n res.writeHead(200, { 'Content-Type': 'text/html' });\n res.end(renderCallbackPage());\n\n clearTimeout(timeout);\n server.close();\n resolve({ code });\n });\n });\n}\n"],"mappings":"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","names":["authContext"]}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
init_esm_shims
|
|
3
|
-
} from "./chunk-4VNFFUM5.js";
|
|
4
|
-
|
|
5
1
|
// src/otel/semconv/attributes.ts
|
|
6
|
-
init_esm_shims();
|
|
7
2
|
import {
|
|
8
3
|
ATTR_ERROR_TYPE,
|
|
9
4
|
ATTR_HTTP_RESPONSE_STATUS_CODE
|
|
10
5
|
} from "@opentelemetry/semantic-conventions";
|
|
11
6
|
|
|
12
7
|
// src/otel/semconv/eval_proposal.ts
|
|
13
|
-
init_esm_shims();
|
|
14
8
|
var ATTR_EVAL_ID = "eval.id";
|
|
15
9
|
var ATTR_EVAL_NAME = "eval.name";
|
|
16
10
|
var ATTR_EVAL_VERSION = "eval.version";
|
|
@@ -48,6 +42,10 @@ var ATTR_EVAL_SCORE_IS_BOOLEAN = "eval.score.is_boolean";
|
|
|
48
42
|
var ATTR_EVAL_SCORE_METADATA = "eval.score.metadata";
|
|
49
43
|
var ATTR_EVAL_SCORE_AGGREGATION = "eval.score.aggregation";
|
|
50
44
|
var ATTR_EVAL_SCORE_TRIALS = "eval.score.trials";
|
|
45
|
+
var ATTR_EVAL_ONLINE_SCORERS_TOTAL = "eval.online.scorers.total";
|
|
46
|
+
var ATTR_EVAL_ONLINE_SCORERS_RAN = "eval.online.scorers.ran";
|
|
47
|
+
var ATTR_EVAL_ONLINE_SCORERS_SAMPLED_OUT = "eval.online.scorers.sampled_out";
|
|
48
|
+
var ATTR_EVAL_ONLINE_SCORERS_FAILED = "eval.online.scorers.failed";
|
|
51
49
|
var ATTR_EVAL_USER_NAME = "eval.user.name";
|
|
52
50
|
var ATTR_EVAL_USER_EMAIL = "eval.user.email";
|
|
53
51
|
|
|
@@ -311,6 +309,14 @@ var Attr = {
|
|
|
311
309
|
},
|
|
312
310
|
Tags: ATTR_EVAL_TAGS,
|
|
313
311
|
Metadata: ATTR_EVAL_METADATA,
|
|
312
|
+
Online: {
|
|
313
|
+
Scorers: {
|
|
314
|
+
Total: ATTR_EVAL_ONLINE_SCORERS_TOTAL,
|
|
315
|
+
Ran: ATTR_EVAL_ONLINE_SCORERS_RAN,
|
|
316
|
+
SampledOut: ATTR_EVAL_ONLINE_SCORERS_SAMPLED_OUT,
|
|
317
|
+
Failed: ATTR_EVAL_ONLINE_SCORERS_FAILED
|
|
318
|
+
}
|
|
319
|
+
},
|
|
314
320
|
Collection: {
|
|
315
321
|
ID: ATTR_EVAL_COLLECTION_ID,
|
|
316
322
|
Name: ATTR_EVAL_COLLECTION_NAME,
|
|
@@ -369,4 +375,4 @@ var Attr = {
|
|
|
369
375
|
export {
|
|
370
376
|
Attr
|
|
371
377
|
};
|
|
372
|
-
//# sourceMappingURL=chunk-
|
|
378
|
+
//# sourceMappingURL=chunk-4TKUTT24.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/otel/semconv/attributes.ts","../src/otel/semconv/eval_proposal.ts"],"sourcesContent":["import {\n ATTR_ERROR_TYPE,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n} from '@opentelemetry/semantic-conventions';\n\nimport {\n ATTR_EVAL_CASE_INDEX,\n ATTR_EVAL_CASE_EXPECTED,\n ATTR_EVAL_CASE_INPUT,\n ATTR_EVAL_CASE_OUTPUT,\n ATTR_EVAL_CASE_METADATA,\n ATTR_EVAL_CASE_SCORES,\n ATTR_EVAL_CASE_TRIALS,\n ATTR_EVAL_SCORE_PASSED,\n ATTR_EVAL_SCORE_IS_BOOLEAN,\n ATTR_EVAL_SCORE_VALUE,\n ATTR_EVAL_SCORE_NAME,\n ATTR_EVAL_SCORE_THRESHOLD,\n ATTR_EVAL_SCORE_METADATA,\n ATTR_EVAL_SCORE_AGGREGATION,\n ATTR_EVAL_SCORE_TRIALS,\n ATTR_EVAL_TASK_TYPE,\n ATTR_EVAL_TASK_NAME,\n ATTR_EVAL_TASK_OUTPUT,\n ATTR_EVAL_COLLECTION_NAME,\n ATTR_EVAL_COLLECTION_SIZE,\n ATTR_EVAL_ID,\n ATTR_EVAL_BASELINE_ID,\n ATTR_EVAL_BASELINE_NAME,\n ATTR_EVAL_BASELINE_VERSION,\n ATTR_EVAL_NAME,\n ATTR_EVAL_TAGS,\n ATTR_EVAL_TYPE,\n ATTR_EVAL_TRIALS,\n ATTR_EVAL_TRIAL_INDEX,\n ATTR_EVAL_TRIAL_ERROR,\n ATTR_EVAL_COLLECTION_ID,\n ATTR_EVAL_USER_NAME,\n ATTR_EVAL_USER_EMAIL,\n ATTR_EVAL_VERSION,\n ATTR_EVAL_RUN_ID,\n ATTR_EVAL_METADATA,\n ATTR_EVAL_CONFIG_FLAGS,\n ATTR_EVAL_CAPABILITY_NAME,\n ATTR_EVAL_STEP_NAME,\n ATTR_EVAL_ONLINE_SCORERS_TOTAL,\n ATTR_EVAL_ONLINE_SCORERS_RAN,\n ATTR_EVAL_ONLINE_SCORERS_SAMPLED_OUT,\n ATTR_EVAL_ONLINE_SCORERS_FAILED,\n} from './eval_proposal';\n\nimport {\n ATTR_ERROR_MESSAGE,\n ATTR_GEN_AI_AGENT_DESCRIPTION,\n ATTR_GEN_AI_AGENT_ID,\n ATTR_GEN_AI_AGENT_NAME,\n ATTR_GEN_AI_CONVERSATION_ID,\n ATTR_GEN_AI_INPUT_MESSAGES,\n ATTR_GEN_AI_OPERATION_NAME,\n ATTR_GEN_AI_OUTPUT_MESSAGES,\n ATTR_GEN_AI_OUTPUT_TYPE,\n ATTR_GEN_AI_PROVIDER_NAME,\n ATTR_GEN_AI_REQUEST_CHOICE_COUNT,\n ATTR_GEN_AI_REQUEST_ENCODING_FORMATS,\n ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY,\n ATTR_GEN_AI_REQUEST_MAX_TOKENS,\n ATTR_GEN_AI_REQUEST_MODEL,\n ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY,\n ATTR_GEN_AI_REQUEST_SEED,\n ATTR_GEN_AI_REQUEST_STOP_SEQUENCES,\n ATTR_GEN_AI_REQUEST_TEMPERATURE,\n ATTR_GEN_AI_REQUEST_TOP_K,\n ATTR_GEN_AI_REQUEST_TOP_P,\n ATTR_GEN_AI_RESPONSE_FINISH_REASONS,\n ATTR_GEN_AI_RESPONSE_ID,\n ATTR_GEN_AI_RESPONSE_MODEL,\n ATTR_GEN_AI_TOOL_CALL_ID,\n ATTR_GEN_AI_TOOL_DESCRIPTION,\n ATTR_GEN_AI_TOOL_NAME,\n ATTR_GEN_AI_TOOL_TYPE,\n ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n GEN_AI_OPERATION_NAME_VALUE_CHAT,\n GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT,\n GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS,\n GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL,\n GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT,\n GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT,\n GEN_AI_OUTPUT_TYPE_VALUE_IMAGE,\n GEN_AI_OUTPUT_TYPE_VALUE_JSON,\n GEN_AI_OUTPUT_TYPE_VALUE_SPEECH,\n GEN_AI_OUTPUT_TYPE_VALUE_TEXT,\n GEN_AI_PROVIDER_NAME_VALUE_ANTHROPIC,\n GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,\n GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_INFERENCE,\n GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_OPENAI,\n GEN_AI_PROVIDER_NAME_VALUE_COHERE,\n GEN_AI_PROVIDER_NAME_VALUE_DEEPSEEK,\n GEN_AI_PROVIDER_NAME_VALUE_GCP_GEMINI,\n GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI,\n GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI,\n GEN_AI_PROVIDER_NAME_VALUE_GROQ,\n GEN_AI_PROVIDER_NAME_VALUE_IBM_WATSONX_AI,\n GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,\n GEN_AI_PROVIDER_NAME_VALUE_OPENAI,\n GEN_AI_PROVIDER_NAME_VALUE_PERPLEXITY,\n GEN_AI_PROVIDER_NAME_VALUE_X_AI,\n} from '@opentelemetry/semantic-conventions/incubating';\n\n/**\n * PROPRIETARY ATTRIBUTES (o11y)\n *\n * @see: https://axiom.co/docs/ai-engineering/semantic-conventions\n */\n\nconst ATTR_AXIOM_GEN_AI_SCHEMA_URL = 'axiom.gen_ai.schema_url';\nconst ATTR_AXIOM_GEN_AI_SDK_NAME = 'axiom.gen_ai.sdk.name';\nconst ATTR_AXIOM_GEN_AI_SDK_VERSION = 'axiom.gen_ai.sdk.version';\nconst ATTR_GEN_AI_CAPABILITY_NAME = 'gen_ai.capability.name';\nconst ATTR_GEN_AI_STEP_NAME = 'gen_ai.step.name';\nconst ATTR_GEN_AI_TOOL_ARGUMENTS = 'gen_ai.tool.arguments'; // deprecated by OTel\nconst ATTR_GEN_AI_TOOL_MESSAGE = 'gen_ai.tool.message'; // deprecated by OTel\n\nconst GEN_AI_PROVIDER_NAME_VALUE_ASSEMBLYAI = 'assemblyai';\nconst GEN_AI_PROVIDER_NAME_VALUE_CEREBRAS = 'cerebras';\nconst GEN_AI_PROVIDER_NAME_VALUE_DEEPGRAM = 'deepgram';\nconst GEN_AI_PROVIDER_NAME_VALUE_DEEPINFRA = 'deepinfra';\nconst GEN_AI_PROVIDER_NAME_VALUE_ELEVENLABS = 'elevenlabs';\nconst GEN_AI_PROVIDER_NAME_VALUE_FAL = 'fal';\nconst GEN_AI_PROVIDER_NAME_VALUE_FIREWORKS = 'fireworks';\nconst GEN_AI_PROVIDER_NAME_VALUE_GLADIA = 'gladia';\nconst GEN_AI_PROVIDER_NAME_VALUE_HUME = 'hume';\nconst GEN_AI_PROVIDER_NAME_VALUE_LMNT = 'lmnt';\nconst GEN_AI_PROVIDER_NAME_VALUE_LUMA = 'luma';\nconst GEN_AI_PROVIDER_NAME_VALUE_REPLICATE = 'replicate';\nconst GEN_AI_PROVIDER_NAME_VALUE_REVAI = 'revai';\nconst GEN_AI_PROVIDER_NAME_VALUE_TOGETHERAI = 'togetherai';\nconst GEN_AI_PROVIDER_NAME_VALUE_VERCEL = 'vercel';\n\n/**\n * When adding something new here, please:\n * 1. Make sure it doesn't already exist as part of OTel Semantic Conventions (use that instead)\n * 2. Make sure to use standard naming schema, ie snake_case\n * 3. If a specific feature has an attribute you would like to use, extract it to the shared section\n *\n * Also Experimental Attributes should always be imported here and then used from the CustomAttributes object\n * because they are unstable.\n *\n * @see: https://github.com/open-telemetry/opentelemetry-js/tree/c89cb38d0fec39d54cf3fcb35c429a8129e9c909/semantic-conventions#unstable-semconv\n */\nexport const Attr = {\n __EXPERIMENTAL_Flag: (flagName: string) => `flag.${flagName}`,\n __EXPERIMENTAL_Fact: (factName: string) => `fact.${factName}`,\n Axiom: {\n GenAI: {\n SchemaURL: ATTR_AXIOM_GEN_AI_SCHEMA_URL,\n SDK: {\n Name: ATTR_AXIOM_GEN_AI_SDK_NAME,\n Version: ATTR_AXIOM_GEN_AI_SDK_VERSION,\n },\n },\n },\n GenAI: {\n PromptMetadata: {\n ID: 'axiom.gen_ai.prompt.id',\n Name: 'axiom.gen_ai.prompt.name',\n Slug: 'axiom.gen_ai.prompt.slug',\n Version: 'axiom.gen_ai.prompt.version',\n },\n /**\n * These two are used to identify the span\n */\n Capability: {\n Name: ATTR_GEN_AI_CAPABILITY_NAME,\n },\n Step: {\n Name: ATTR_GEN_AI_STEP_NAME,\n },\n Provider: {\n Name: ATTR_GEN_AI_PROVIDER_NAME,\n Name_Values: {\n Anthropic: GEN_AI_PROVIDER_NAME_VALUE_ANTHROPIC,\n AssemblyAI: GEN_AI_PROVIDER_NAME_VALUE_ASSEMBLYAI,\n AWSBedrock: GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK,\n AzureAIInference: GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_INFERENCE,\n AzureAIOpenAI: GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_OPENAI,\n Cerebras: GEN_AI_PROVIDER_NAME_VALUE_CEREBRAS,\n Cohere: GEN_AI_PROVIDER_NAME_VALUE_COHERE,\n Deepgram: GEN_AI_PROVIDER_NAME_VALUE_DEEPGRAM,\n DeepInfra: GEN_AI_PROVIDER_NAME_VALUE_DEEPINFRA,\n Deepseek: GEN_AI_PROVIDER_NAME_VALUE_DEEPSEEK,\n ElevenLabs: GEN_AI_PROVIDER_NAME_VALUE_ELEVENLABS,\n Fal: GEN_AI_PROVIDER_NAME_VALUE_FAL,\n Fireworks: GEN_AI_PROVIDER_NAME_VALUE_FIREWORKS,\n GCPGemini: GEN_AI_PROVIDER_NAME_VALUE_GCP_GEMINI,\n GCPGenAI: GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI,\n GCPVertexAI: GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI,\n Gladia: GEN_AI_PROVIDER_NAME_VALUE_GLADIA,\n Groq: GEN_AI_PROVIDER_NAME_VALUE_GROQ,\n Hume: GEN_AI_PROVIDER_NAME_VALUE_HUME,\n IBMWatsonxAI: GEN_AI_PROVIDER_NAME_VALUE_IBM_WATSONX_AI,\n Lmnt: GEN_AI_PROVIDER_NAME_VALUE_LMNT,\n Luma: GEN_AI_PROVIDER_NAME_VALUE_LUMA,\n MistralAI: GEN_AI_PROVIDER_NAME_VALUE_MISTRAL_AI,\n OpenAI: GEN_AI_PROVIDER_NAME_VALUE_OPENAI,\n Perplexity: GEN_AI_PROVIDER_NAME_VALUE_PERPLEXITY,\n Replicate: GEN_AI_PROVIDER_NAME_VALUE_REPLICATE,\n RevAI: GEN_AI_PROVIDER_NAME_VALUE_REVAI,\n TogetherAI: GEN_AI_PROVIDER_NAME_VALUE_TOGETHERAI,\n Vercel: GEN_AI_PROVIDER_NAME_VALUE_VERCEL,\n XAI: GEN_AI_PROVIDER_NAME_VALUE_X_AI,\n },\n },\n /**\n * Regular attributes\n */\n Agent: {\n Description: ATTR_GEN_AI_AGENT_DESCRIPTION, // not yet used by axiom-ai\n ID: ATTR_GEN_AI_AGENT_ID, // not yet used by axiom-ai\n Name: ATTR_GEN_AI_AGENT_NAME, // not yet used by axiom-ai\n },\n Conversation: {\n ID: ATTR_GEN_AI_CONVERSATION_ID, // not yet used by axiom-ai, anyway probably needs to be provided by user\n },\n Input: {\n Messages: ATTR_GEN_AI_INPUT_MESSAGES,\n },\n Operation: {\n Name: ATTR_GEN_AI_OPERATION_NAME,\n Name_Values: {\n /**\n * Note that \"text_completion\" is deprecated in favor of \"chat\" for both OpenAI and Anthropic\n */\n Chat: GEN_AI_OPERATION_NAME_VALUE_CHAT,\n CreateAgent: GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT,\n Embeddings: GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS,\n ExecuteTool: GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL,\n GenerateContent: GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT,\n InvokeAgent: GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT,\n },\n },\n Output: {\n Messages: ATTR_GEN_AI_OUTPUT_MESSAGES,\n Type: ATTR_GEN_AI_OUTPUT_TYPE,\n Type_Values: {\n Text: GEN_AI_OUTPUT_TYPE_VALUE_TEXT,\n Json: GEN_AI_OUTPUT_TYPE_VALUE_JSON,\n Image: GEN_AI_OUTPUT_TYPE_VALUE_IMAGE,\n Speech: GEN_AI_OUTPUT_TYPE_VALUE_SPEECH,\n },\n },\n /**\n * The provider that is hosting the model, eg AWS Bedrock\n * There doesn't seem to be a semconv for this\n */\n Request: {\n ChoiceCount: ATTR_GEN_AI_REQUEST_CHOICE_COUNT, // not yet used by axiom-ai\n EncodingFormats: ATTR_GEN_AI_REQUEST_ENCODING_FORMATS, // not yet used by axiom-ai\n FrequencyPenalty: ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY,\n MaxTokens: ATTR_GEN_AI_REQUEST_MAX_TOKENS,\n /**\n * The model you asked for\n */\n Model: ATTR_GEN_AI_REQUEST_MODEL,\n PresencePenalty: ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY,\n Seed: ATTR_GEN_AI_REQUEST_SEED,\n StopSequences: ATTR_GEN_AI_REQUEST_STOP_SEQUENCES,\n Temperature: ATTR_GEN_AI_REQUEST_TEMPERATURE,\n TopK: ATTR_GEN_AI_REQUEST_TOP_K,\n TopP: ATTR_GEN_AI_REQUEST_TOP_P,\n },\n Response: {\n FinishReasons: ATTR_GEN_AI_RESPONSE_FINISH_REASONS,\n ID: ATTR_GEN_AI_RESPONSE_ID,\n /**\n * The model that was actually used (might be different bc routing) - only ever get this from the response, otherwise omit\n */\n Model: ATTR_GEN_AI_RESPONSE_MODEL, // somehow not landing on the span for google models? check up on this...\n },\n Tool: {\n CallID: ATTR_GEN_AI_TOOL_CALL_ID,\n Description: ATTR_GEN_AI_TOOL_DESCRIPTION,\n Name: ATTR_GEN_AI_TOOL_NAME,\n Type: ATTR_GEN_AI_TOOL_TYPE,\n /**\n * Note, OTel Semantic Convention suggest only putting tool inputs/outputs on the parent chat span\n * But we at least want to give users THE OPTION to put them on the tool spans themselves as well\n * Because it enables a lot of things with querying\n * @see https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.37.0\n */\n Arguments: ATTR_GEN_AI_TOOL_ARGUMENTS,\n /**\n * Note, OTel Semantic Convention suggest only putting tool inputs/outputs on the parent chat span\n * But we at least want to give users THE OPTION to put them on the tool spans themselves as well\n * Because it enables a lot of things with querying\n * @see https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.37.0\n */\n Message: ATTR_GEN_AI_TOOL_MESSAGE,\n },\n Usage: {\n InputTokens: ATTR_GEN_AI_USAGE_INPUT_TOKENS,\n OutputTokens: ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,\n },\n },\n Eval: {\n ID: ATTR_EVAL_ID,\n Name: ATTR_EVAL_NAME,\n Version: ATTR_EVAL_VERSION,\n Type: ATTR_EVAL_TYPE,\n Trials: ATTR_EVAL_TRIALS,\n Baseline: {\n ID: ATTR_EVAL_BASELINE_ID,\n Name: ATTR_EVAL_BASELINE_NAME,\n Version: ATTR_EVAL_BASELINE_VERSION,\n },\n Capability: {\n Name: ATTR_EVAL_CAPABILITY_NAME,\n },\n Step: {\n Name: ATTR_EVAL_STEP_NAME,\n },\n Tags: ATTR_EVAL_TAGS,\n Metadata: ATTR_EVAL_METADATA,\n Online: {\n Scorers: {\n Total: ATTR_EVAL_ONLINE_SCORERS_TOTAL,\n Ran: ATTR_EVAL_ONLINE_SCORERS_RAN,\n SampledOut: ATTR_EVAL_ONLINE_SCORERS_SAMPLED_OUT,\n Failed: ATTR_EVAL_ONLINE_SCORERS_FAILED,\n },\n },\n Collection: {\n ID: ATTR_EVAL_COLLECTION_ID,\n Name: ATTR_EVAL_COLLECTION_NAME,\n Size: ATTR_EVAL_COLLECTION_SIZE,\n },\n Config: {\n Flags: ATTR_EVAL_CONFIG_FLAGS,\n },\n Run: {\n ID: ATTR_EVAL_RUN_ID,\n },\n Trial: {\n Index: ATTR_EVAL_TRIAL_INDEX,\n Error: ATTR_EVAL_TRIAL_ERROR,\n },\n Case: {\n Index: ATTR_EVAL_CASE_INDEX,\n Input: ATTR_EVAL_CASE_INPUT,\n Output: ATTR_EVAL_CASE_OUTPUT,\n Expected: ATTR_EVAL_CASE_EXPECTED,\n Scores: ATTR_EVAL_CASE_SCORES,\n Metadata: ATTR_EVAL_CASE_METADATA,\n Trials: ATTR_EVAL_CASE_TRIALS,\n },\n Task: {\n Output: ATTR_EVAL_TASK_OUTPUT,\n Name: ATTR_EVAL_TASK_NAME,\n Type: ATTR_EVAL_TASK_TYPE,\n },\n Score: {\n Name: ATTR_EVAL_SCORE_NAME,\n Value: ATTR_EVAL_SCORE_VALUE,\n Threshold: ATTR_EVAL_SCORE_THRESHOLD,\n Passed: ATTR_EVAL_SCORE_PASSED,\n IsBoolean: ATTR_EVAL_SCORE_IS_BOOLEAN,\n Metadata: ATTR_EVAL_SCORE_METADATA,\n Aggregation: ATTR_EVAL_SCORE_AGGREGATION,\n Trials: ATTR_EVAL_SCORE_TRIALS,\n },\n User: {\n Name: ATTR_EVAL_USER_NAME,\n Email: ATTR_EVAL_USER_EMAIL,\n },\n },\n Error: {\n Type: ATTR_ERROR_TYPE,\n Message: ATTR_ERROR_MESSAGE,\n },\n HTTP: {\n Response: {\n StatusCode: ATTR_HTTP_RESPONSE_STATUS_CODE,\n },\n },\n} as const;\n","// experiment\nexport const ATTR_EVAL_ID = 'eval.id' as const;\nexport const ATTR_EVAL_NAME = 'eval.name' as const;\nexport const ATTR_EVAL_VERSION = 'eval.version' as const;\nexport const ATTR_EVAL_TYPE = 'eval.type' as const;\nexport const ATTR_EVAL_TAGS = 'eval.tags' as const;\nexport const ATTR_EVAL_BASELINE_ID = 'eval.baseline.id' as const;\nexport const ATTR_EVAL_BASELINE_NAME = 'eval.baseline.name' as const;\nexport const ATTR_EVAL_BASELINE_VERSION = 'eval.baseline.version' as const;\nexport const ATTR_EVAL_METADATA = 'eval.metadata' as const;\nexport const ATTR_EVAL_TRIALS = 'eval.trials' as const;\n// capability\nexport const ATTR_EVAL_CAPABILITY_NAME = 'eval.capability.name' as const;\nexport const ATTR_EVAL_STEP_NAME = 'eval.step.name' as const;\n// collection\nexport const ATTR_EVAL_COLLECTION_ID = 'eval.collection.id' as const;\nexport const ATTR_EVAL_COLLECTION_SIZE = 'eval.collection.size' as const;\nexport const ATTR_EVAL_COLLECTION_NAME = 'eval.collection.name' as const;\n// config\nexport const ATTR_EVAL_CONFIG_FLAGS = 'eval.config.flags' as const;\n// case\nexport const ATTR_EVAL_CASE_INDEX = 'eval.case.index' as const;\nexport const ATTR_EVAL_CASE_INPUT = 'eval.case.input' as const;\nexport const ATTR_EVAL_CASE_OUTPUT = 'eval.case.output' as const;\nexport const ATTR_EVAL_CASE_EXPECTED = 'eval.case.expected' as const;\nexport const ATTR_EVAL_CASE_SCORES = 'eval.case.scores' as const;\nexport const ATTR_EVAL_CASE_METADATA = 'eval.case.metadata' as const;\nexport const ATTR_EVAL_CASE_TRIALS = 'eval.case.trials' as const;\n// trial\nexport const ATTR_EVAL_TRIAL_INDEX = 'eval.trial.index' as const;\nexport const ATTR_EVAL_TRIAL_ERROR = 'eval.trial.error' as const;\n// task\nexport const ATTR_EVAL_TASK_OUTPUT = 'eval.task.output' as const;\nexport const ATTR_EVAL_TASK_NAME = 'eval.task.name' as const;\nexport const ATTR_EVAL_TASK_TYPE = 'eval.task.type' as const;\n// run\nexport const ATTR_EVAL_RUN_ID = 'eval.run.id' as const;\n// score\nexport const ATTR_EVAL_SCORE_NAME = 'eval.score.name' as const;\nexport const ATTR_EVAL_SCORE_VALUE = 'eval.score.value' as const;\nexport const ATTR_EVAL_SCORE_THRESHOLD = 'eval.score.threshold' as const;\nexport const ATTR_EVAL_SCORE_PASSED = 'eval.score.passed' as const;\nexport const ATTR_EVAL_SCORE_IS_BOOLEAN = 'eval.score.is_boolean' as const;\nexport const ATTR_EVAL_SCORE_SCORER = 'eval.score.scorer' as const;\nexport const ATTR_EVAL_SCORE_METADATA = 'eval.score.metadata' as const;\nexport const ATTR_EVAL_SCORE_AGGREGATION = 'eval.score.aggregation' as const;\nexport const ATTR_EVAL_SCORE_TRIALS = 'eval.score.trials' as const;\n// online\nexport const ATTR_EVAL_ONLINE_SCORERS_TOTAL = 'eval.online.scorers.total' as const;\nexport const ATTR_EVAL_ONLINE_SCORERS_RAN = 'eval.online.scorers.ran' as const;\nexport const ATTR_EVAL_ONLINE_SCORERS_SAMPLED_OUT = 'eval.online.scorers.sampled_out' as const;\nexport const ATTR_EVAL_ONLINE_SCORERS_FAILED = 'eval.online.scorers.failed' as const;\n// user\nexport const ATTR_EVAL_USER_NAME = 'eval.user.name';\nexport const ATTR_EVAL_USER_EMAIL = 'eval.user.email';\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createPartialDefaults,
|
|
3
3
|
getAuthContext,
|
|
4
4
|
validateConfig
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3VKWOZAQ.js";
|
|
6
6
|
import {
|
|
7
7
|
EVAL_CONTEXT,
|
|
8
8
|
assertZodV4,
|
|
@@ -16,17 +16,13 @@ import {
|
|
|
16
16
|
putOnSpan,
|
|
17
17
|
setGlobalFlagOverrides,
|
|
18
18
|
withEvalContext
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-QRQVSBSO.js";
|
|
20
20
|
import {
|
|
21
21
|
AxiomCLIError,
|
|
22
22
|
errorToString
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import {
|
|
25
|
-
init_esm_shims
|
|
26
|
-
} from "./chunk-4VNFFUM5.js";
|
|
23
|
+
} from "./chunk-ISSDOC43.js";
|
|
27
24
|
|
|
28
25
|
// src/cli/utils/parse-flag-overrides.ts
|
|
29
|
-
init_esm_shims();
|
|
30
26
|
import "zod";
|
|
31
27
|
import { readFileSync } from "fs";
|
|
32
28
|
import { resolve } from "path";
|
|
@@ -172,11 +168,7 @@ function extractOverrides(argv) {
|
|
|
172
168
|
return { cleanedArgv, overrides };
|
|
173
169
|
}
|
|
174
170
|
|
|
175
|
-
// ../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.js
|
|
176
|
-
init_esm_shims();
|
|
177
|
-
|
|
178
171
|
// ../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js
|
|
179
|
-
init_esm_shims();
|
|
180
172
|
var f = {
|
|
181
173
|
reset: [0, 0],
|
|
182
174
|
bold: [1, 22, "\x1B[22m\x1B[1m"],
|
|
@@ -261,16 +253,11 @@ var r = process.env.FORCE_TTY !== void 0 || s(1);
|
|
|
261
253
|
var u = p(r);
|
|
262
254
|
|
|
263
255
|
// src/cli/commands/eval.command.ts
|
|
264
|
-
init_esm_shims();
|
|
265
256
|
import { Command, Argument, Option } from "commander";
|
|
266
257
|
import { customAlphabet } from "nanoid";
|
|
267
258
|
import { lstatSync } from "fs";
|
|
268
259
|
|
|
269
|
-
// src/cli/utils/eval-context-runner.ts
|
|
270
|
-
init_esm_shims();
|
|
271
|
-
|
|
272
260
|
// src/context.ts
|
|
273
|
-
init_esm_shims();
|
|
274
261
|
function overrideFlags(partial) {
|
|
275
262
|
const current = getEvalContext();
|
|
276
263
|
if (!current) {
|
|
@@ -307,13 +294,11 @@ async function runEvalWithContext(overrides, runFn) {
|
|
|
307
294
|
}
|
|
308
295
|
|
|
309
296
|
// src/cli/utils/glob-utils.ts
|
|
310
|
-
init_esm_shims();
|
|
311
297
|
function isGlob(str) {
|
|
312
298
|
return /[*?[\]{}!]/.test(str);
|
|
313
299
|
}
|
|
314
300
|
|
|
315
301
|
// src/config/loader.ts
|
|
316
|
-
init_esm_shims();
|
|
317
302
|
import { loadConfig as c12LoadConfig } from "c12";
|
|
318
303
|
import { defu } from "defu";
|
|
319
304
|
function customMerger(target, source) {
|
|
@@ -437,7 +422,7 @@ var loadEvalCommand = (program, flagOverrides = {}) => {
|
|
|
437
422
|
consoleUrl = options.consoleUrl;
|
|
438
423
|
let runVitestModule;
|
|
439
424
|
try {
|
|
440
|
-
runVitestModule = await import("./run-vitest-
|
|
425
|
+
runVitestModule = await import("./run-vitest-H3HHFEZD.js");
|
|
441
426
|
} catch (err) {
|
|
442
427
|
if (err && typeof err === "object" && "code" in err && (err.code === "ERR_MODULE_NOT_FOUND" || err.code === "MODULE_NOT_FOUND")) {
|
|
443
428
|
throw new AxiomCLIError("Failed to load vitest.");
|
|
@@ -480,4 +465,4 @@ export {
|
|
|
480
465
|
getConsoleUrl,
|
|
481
466
|
loadEvalCommand
|
|
482
467
|
};
|
|
483
|
-
//# sourceMappingURL=chunk-
|
|
468
|
+
//# sourceMappingURL=chunk-6ZENNC22.js.map
|