@plumloom/cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +2 -0
- package/README.md +71 -0
- package/dist/actions/configured-runs.d.ts +25 -0
- package/dist/actions/configured-runs.d.ts.map +1 -0
- package/dist/actions/configured-runs.js +35 -0
- package/dist/actions/configured-runs.js.map +1 -0
- package/dist/actions/context.d.ts +5 -0
- package/dist/actions/context.d.ts.map +1 -0
- package/dist/actions/context.js +2 -0
- package/dist/actions/context.js.map +1 -0
- package/dist/actions/doctor.d.ts +46 -0
- package/dist/actions/doctor.d.ts.map +1 -0
- package/dist/actions/doctor.js +130 -0
- package/dist/actions/doctor.js.map +1 -0
- package/dist/actions/evaluations.d.ts +87 -0
- package/dist/actions/evaluations.d.ts.map +1 -0
- package/dist/actions/evaluations.js +307 -0
- package/dist/actions/evaluations.js.map +1 -0
- package/dist/actions/gate.d.ts +63 -0
- package/dist/actions/gate.d.ts.map +1 -0
- package/dist/actions/gate.js +272 -0
- package/dist/actions/gate.js.map +1 -0
- package/dist/actions/identity.d.ts +4 -0
- package/dist/actions/identity.d.ts.map +1 -0
- package/dist/actions/identity.js +4 -0
- package/dist/actions/identity.js.map +1 -0
- package/dist/actions/models.d.ts +4 -0
- package/dist/actions/models.d.ts.map +1 -0
- package/dist/actions/models.js +4 -0
- package/dist/actions/models.js.map +1 -0
- package/dist/actions/quality-standards.d.ts +30 -0
- package/dist/actions/quality-standards.d.ts.map +1 -0
- package/dist/actions/quality-standards.js +86 -0
- package/dist/actions/quality-standards.js.map +1 -0
- package/dist/actions/results.d.ts +12 -0
- package/dist/actions/results.d.ts.map +1 -0
- package/dist/actions/results.js +65 -0
- package/dist/actions/results.js.map +1 -0
- package/dist/actions/runs.d.ts +22 -0
- package/dist/actions/runs.d.ts.map +1 -0
- package/dist/actions/runs.js +59 -0
- package/dist/actions/runs.js.map +1 -0
- package/dist/actions/suite-gate.d.ts +24 -0
- package/dist/actions/suite-gate.d.ts.map +1 -0
- package/dist/actions/suite-gate.js +40 -0
- package/dist/actions/suite-gate.js.map +1 -0
- package/dist/actions/suite.d.ts +49 -0
- package/dist/actions/suite.d.ts.map +1 -0
- package/dist/actions/suite.js +68 -0
- package/dist/actions/suite.js.map +1 -0
- package/dist/actions/validation.d.ts +3 -0
- package/dist/actions/validation.d.ts.map +1 -0
- package/dist/actions/validation.js +26 -0
- package/dist/actions/validation.js.map +1 -0
- package/dist/actions/workspaces.d.ts +13 -0
- package/dist/actions/workspaces.d.ts.map +1 -0
- package/dist/actions/workspaces.js +18 -0
- package/dist/actions/workspaces.js.map +1 -0
- package/dist/api/api.d.ts +237 -0
- package/dist/api/api.d.ts.map +1 -0
- package/dist/api/api.js +396 -0
- package/dist/api/api.js.map +1 -0
- package/dist/api/client.d.ts +38 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +295 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/endpoints.d.ts +31 -0
- package/dist/api/endpoints.d.ts.map +1 -0
- package/dist/api/endpoints.js +32 -0
- package/dist/api/endpoints.js.map +1 -0
- package/dist/api/errors.d.ts +22 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +84 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/schemas.d.ts +169 -0
- package/dist/api/schemas.d.ts.map +1 -0
- package/dist/api/schemas.js +194 -0
- package/dist/api/schemas.js.map +1 -0
- package/dist/auth/credential-store.d.ts +9 -0
- package/dist/auth/credential-store.d.ts.map +1 -0
- package/dist/auth/credential-store.js +2 -0
- package/dist/auth/credential-store.js.map +1 -0
- package/dist/auth/credentials.d.ts +27 -0
- package/dist/auth/credentials.d.ts.map +1 -0
- package/dist/auth/credentials.js +81 -0
- package/dist/auth/credentials.js.map +1 -0
- package/dist/auth/keyring-store.d.ts +9 -0
- package/dist/auth/keyring-store.d.ts.map +1 -0
- package/dist/auth/keyring-store.js +57 -0
- package/dist/auth/keyring-store.js.map +1 -0
- package/dist/auth/login.d.ts +28 -0
- package/dist/auth/login.d.ts.map +1 -0
- package/dist/auth/login.js +27 -0
- package/dist/auth/login.js.map +1 -0
- package/dist/auth/password-prompt.d.ts +5 -0
- package/dist/auth/password-prompt.d.ts.map +1 -0
- package/dist/auth/password-prompt.js +10 -0
- package/dist/auth/password-prompt.js.map +1 -0
- package/dist/auth/redact.d.ts +3 -0
- package/dist/auth/redact.d.ts.map +1 -0
- package/dist/auth/redact.js +69 -0
- package/dist/auth/redact.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/executor.d.ts +36 -0
- package/dist/commands/executor.d.ts.map +1 -0
- package/dist/commands/executor.js +1218 -0
- package/dist/commands/executor.js.map +1 -0
- package/dist/commands/program.d.ts +21 -0
- package/dist/commands/program.d.ts.map +1 -0
- package/dist/commands/program.js +588 -0
- package/dist/commands/program.js.map +1 -0
- package/dist/commands/types.d.ts +139 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +2 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +57 -0
- package/dist/config.js.map +1 -0
- package/dist/configured-run/file-inputs.d.ts +8 -0
- package/dist/configured-run/file-inputs.d.ts.map +1 -0
- package/dist/configured-run/file-inputs.js +160 -0
- package/dist/configured-run/file-inputs.js.map +1 -0
- package/dist/configured-run/validation.d.ts +103 -0
- package/dist/configured-run/validation.d.ts.map +1 -0
- package/dist/configured-run/validation.js +327 -0
- package/dist/configured-run/validation.js.map +1 -0
- package/dist/domain/common.d.ts +6 -0
- package/dist/domain/common.d.ts.map +1 -0
- package/dist/domain/common.js +10 -0
- package/dist/domain/common.js.map +1 -0
- package/dist/domain/types.d.ts +117 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +2 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/errors/autoeval-error.d.ts +13 -0
- package/dist/errors/autoeval-error.d.ts.map +1 -0
- package/dist/errors/autoeval-error.js +36 -0
- package/dist/errors/autoeval-error.js.map +1 -0
- package/dist/errors/hints.d.ts +3 -0
- package/dist/errors/hints.d.ts.map +1 -0
- package/dist/errors/hints.js +43 -0
- package/dist/errors/hints.js.map +1 -0
- package/dist/gate/decision.d.ts +97 -0
- package/dist/gate/decision.d.ts.map +1 -0
- package/dist/gate/decision.js +436 -0
- package/dist/gate/decision.js.map +1 -0
- package/dist/gate/policy.d.ts +31 -0
- package/dist/gate/policy.d.ts.map +1 -0
- package/dist/gate/policy.js +26 -0
- package/dist/gate/policy.js.map +1 -0
- package/dist/guide/eval-creation-backend.d.ts +20 -0
- package/dist/guide/eval-creation-backend.d.ts.map +1 -0
- package/dist/guide/eval-creation-backend.js +16 -0
- package/dist/guide/eval-creation-backend.js.map +1 -0
- package/dist/guide/eval-guide.d.ts +24 -0
- package/dist/guide/eval-guide.d.ts.map +1 -0
- package/dist/guide/eval-guide.js +219 -0
- package/dist/guide/eval-guide.js.map +1 -0
- package/dist/mcp/context.d.ts +21 -0
- package/dist/mcp/context.d.ts.map +1 -0
- package/dist/mcp/context.js +19 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/schemas.d.ts +206 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +80 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +10 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +42 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +287 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp.d.ts +3 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +32 -0
- package/dist/mcp.js.map +1 -0
- package/dist/output/big-digits.d.ts +7 -0
- package/dist/output/big-digits.d.ts.map +1 -0
- package/dist/output/big-digits.js +43 -0
- package/dist/output/big-digits.js.map +1 -0
- package/dist/output/clipboard.d.ts +29 -0
- package/dist/output/clipboard.d.ts.map +1 -0
- package/dist/output/clipboard.js +82 -0
- package/dist/output/clipboard.js.map +1 -0
- package/dist/output/colors.d.ts +21 -0
- package/dist/output/colors.d.ts.map +1 -0
- package/dist/output/colors.js +21 -0
- package/dist/output/colors.js.map +1 -0
- package/dist/output/digest.d.ts +165 -0
- package/dist/output/digest.d.ts.map +1 -0
- package/dist/output/digest.js +771 -0
- package/dist/output/digest.js.map +1 -0
- package/dist/output/human.d.ts +95 -0
- package/dist/output/human.d.ts.map +1 -0
- package/dist/output/human.js +643 -0
- package/dist/output/human.js.map +1 -0
- package/dist/output/json.d.ts +2 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +5 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/layout.d.ts +18 -0
- package/dist/output/layout.d.ts.map +1 -0
- package/dist/output/layout.js +64 -0
- package/dist/output/layout.js.map +1 -0
- package/dist/output/markdown.d.ts +16 -0
- package/dist/output/markdown.d.ts.map +1 -0
- package/dist/output/markdown.js +38 -0
- package/dist/output/markdown.js.map +1 -0
- package/dist/output/progress.d.ts +29 -0
- package/dist/output/progress.d.ts.map +1 -0
- package/dist/output/progress.js +136 -0
- package/dist/output/progress.js.map +1 -0
- package/dist/output/safe-text.d.ts +11 -0
- package/dist/output/safe-text.d.ts.map +1 -0
- package/dist/output/safe-text.js +44 -0
- package/dist/output/safe-text.js.map +1 -0
- package/dist/output/scorecard.d.ts +23 -0
- package/dist/output/scorecard.d.ts.map +1 -0
- package/dist/output/scorecard.js +506 -0
- package/dist/output/scorecard.js.map +1 -0
- package/dist/output/section.d.ts +15 -0
- package/dist/output/section.d.ts.map +1 -0
- package/dist/output/section.js +44 -0
- package/dist/output/section.js.map +1 -0
- package/dist/output/spinner.d.ts +24 -0
- package/dist/output/spinner.d.ts.map +1 -0
- package/dist/output/spinner.js +34 -0
- package/dist/output/spinner.js.map +1 -0
- package/dist/output/splash.d.ts +37 -0
- package/dist/output/splash.d.ts.map +1 -0
- package/dist/output/splash.js +169 -0
- package/dist/output/splash.js.map +1 -0
- package/dist/output/table.d.ts +33 -0
- package/dist/output/table.d.ts.map +1 -0
- package/dist/output/table.js +105 -0
- package/dist/output/table.js.map +1 -0
- package/dist/output/trend.d.ts +19 -0
- package/dist/output/trend.d.ts.map +1 -0
- package/dist/output/trend.js +38 -0
- package/dist/output/trend.js.map +1 -0
- package/dist/output/writer.d.ts +14 -0
- package/dist/output/writer.d.ts.map +1 -0
- package/dist/output/writer.js +33 -0
- package/dist/output/writer.js.map +1 -0
- package/dist/polling/clock.d.ts +9 -0
- package/dist/polling/clock.d.ts.map +1 -0
- package/dist/polling/clock.js +23 -0
- package/dist/polling/clock.js.map +1 -0
- package/dist/polling/wait-for-result.d.ts +16 -0
- package/dist/polling/wait-for-result.d.ts.map +1 -0
- package/dist/polling/wait-for-result.js +29 -0
- package/dist/polling/wait-for-result.js.map +1 -0
- package/dist/polling/wait-for-run.d.ts +14 -0
- package/dist/polling/wait-for-run.d.ts.map +1 -0
- package/dist/polling/wait-for-run.js +36 -0
- package/dist/polling/wait-for-run.js.map +1 -0
- package/dist/quickstart/prompt.d.ts +18 -0
- package/dist/quickstart/prompt.d.ts.map +1 -0
- package/dist/quickstart/prompt.js +37 -0
- package/dist/quickstart/prompt.js.map +1 -0
- package/dist/quickstart/sample.d.ts +28 -0
- package/dist/quickstart/sample.d.ts.map +1 -0
- package/dist/quickstart/sample.js +235 -0
- package/dist/quickstart/sample.js.map +1 -0
- package/dist/quickstart/selection.d.ts +53 -0
- package/dist/quickstart/selection.d.ts.map +1 -0
- package/dist/quickstart/selection.js +97 -0
- package/dist/quickstart/selection.js.map +1 -0
- package/dist/run.d.ts +28 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +134 -0
- package/dist/run.js.map +1 -0
- package/dist/runtime/action-context.d.ts +19 -0
- package/dist/runtime/action-context.d.ts.map +1 -0
- package/dist/runtime/action-context.js +40 -0
- package/dist/runtime/action-context.js.map +1 -0
- package/dist/suite/execution.d.ts +46 -0
- package/dist/suite/execution.d.ts.map +1 -0
- package/dist/suite/execution.js +97 -0
- package/dist/suite/execution.js.map +1 -0
- package/dist/suite/manifest.d.ts +16 -0
- package/dist/suite/manifest.d.ts.map +1 -0
- package/dist/suite/manifest.js +92 -0
- package/dist/suite/manifest.js.map +1 -0
- package/dist/suite/reporting.d.ts +35 -0
- package/dist/suite/reporting.d.ts.map +1 -0
- package/dist/suite/reporting.js +131 -0
- package/dist/suite/reporting.js.map +1 -0
- package/dist/trace/deepseek-harness.d.ts +31 -0
- package/dist/trace/deepseek-harness.d.ts.map +1 -0
- package/dist/trace/deepseek-harness.js +412 -0
- package/dist/trace/deepseek-harness.js.map +1 -0
- package/dist/trace/import.d.ts +9 -0
- package/dist/trace/import.d.ts.map +1 -0
- package/dist/trace/import.js +45 -0
- package/dist/trace/import.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AutoevalError } from '../errors/autoeval-error.js';
|
|
2
|
+
import { isRunNotReady } from '../api/errors.js';
|
|
3
|
+
export async function waitForResult(input) {
|
|
4
|
+
const startedAt = input.clock.now();
|
|
5
|
+
let last;
|
|
6
|
+
while (true) {
|
|
7
|
+
try {
|
|
8
|
+
const value = await input.load();
|
|
9
|
+
if (input.isReady === undefined || input.isReady(value))
|
|
10
|
+
return value;
|
|
11
|
+
last = { value };
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if (!isRunNotReady(error))
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
const elapsedMs = input.clock.now() - startedAt;
|
|
18
|
+
if (elapsedMs >= input.timeoutMs) {
|
|
19
|
+
if (last)
|
|
20
|
+
return last.value;
|
|
21
|
+
throw new AutoevalError('Evaluation results were not ready before the timeout.', {
|
|
22
|
+
kind: 'timeout',
|
|
23
|
+
code: 'RESULT_POLL_TIMEOUT',
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
await input.clock.sleep(Math.min(input.intervalMs, input.timeoutMs - elapsedMs), input.signal);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=wait-for-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-for-result.js","sourceRoot":"","sources":["../../src/polling/wait-for-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,KAatC;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,IAA8B,CAAC;IAEnC,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACtE,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QACzC,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAChD,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC;YAC5B,MAAM,IAAI,aAAa,CAAC,uDAAuD,EAAE;gBAC/E,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PollOutcome, RunStatus } from '../domain/types.js';
|
|
2
|
+
import type { AutoevalApi } from '../api/api.js';
|
|
3
|
+
import type { PollClock } from './clock.js';
|
|
4
|
+
export declare function waitForRun(input: {
|
|
5
|
+
api: AutoevalApi;
|
|
6
|
+
clock: PollClock;
|
|
7
|
+
evaluationId: string;
|
|
8
|
+
runId: string;
|
|
9
|
+
intervalMs: number;
|
|
10
|
+
timeoutMs: number;
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
onStatus?: (status: RunStatus) => void;
|
|
13
|
+
}): Promise<PollOutcome>;
|
|
14
|
+
//# sourceMappingURL=wait-for-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-for-run.d.ts","sourceRoot":"","sources":["../../src/polling/wait-for-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CACxC,GAAG,OAAO,CAAC,WAAW,CAAC,CAmCvB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AutoevalError } from '../errors/autoeval-error.js';
|
|
2
|
+
import { isRunNotReady } from '../api/errors.js';
|
|
3
|
+
const TERMINAL_STATES = new Set(['COMPLETED', 'FAILED', 'CANCELED', 'CANCELLED', 'TERMINATED']);
|
|
4
|
+
export async function waitForRun(input) {
|
|
5
|
+
const startedAt = input.clock.now();
|
|
6
|
+
let lastStatus;
|
|
7
|
+
while (true) {
|
|
8
|
+
if (input.signal?.aborted) {
|
|
9
|
+
throw new AutoevalError('Run polling was canceled.', {
|
|
10
|
+
kind: 'network',
|
|
11
|
+
code: 'REQUEST_ABORTED',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
lastStatus = await input.api.getRunStatus(input.evaluationId, input.runId, input.signal);
|
|
16
|
+
input.onStatus?.(lastStatus);
|
|
17
|
+
if (TERMINAL_STATES.has(lastStatus.state)) {
|
|
18
|
+
return { status: lastStatus, elapsedMs: input.clock.now() - startedAt };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (!isRunNotReady(error))
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
const elapsedMs = input.clock.now() - startedAt;
|
|
26
|
+
if (elapsedMs >= input.timeoutMs) {
|
|
27
|
+
throw new AutoevalError(`Run did not reach a terminal state within ${Math.ceil(input.timeoutMs / 1_000)} seconds.`, {
|
|
28
|
+
kind: 'timeout',
|
|
29
|
+
code: 'RUN_POLL_TIMEOUT',
|
|
30
|
+
cause: lastStatus,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
await input.clock.sleep(Math.min(input.intervalMs, input.timeoutMs - elapsedMs), input.signal);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=wait-for-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-for-run.js","sourceRoot":"","sources":["../../src/polling/wait-for-run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAShC;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,UAAiC,CAAC;IAEtC,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CAAC,2BAA2B,EAAE;gBACnD,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACzF,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QACzC,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAChD,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,aAAa,CACrB,6CAA6C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,EAC1F;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,UAAU;aAClB,CACF,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type ChoiceOption = {
|
|
2
|
+
label: string;
|
|
3
|
+
/** Optional right-hand detail, such as an evaluation count or a provider. */
|
|
4
|
+
detail?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* A numbered terminal picker. Kept behind an interface so quickstart stays
|
|
8
|
+
* deterministic in tests: the runtime implementation is the only place that
|
|
9
|
+
* touches stdin.
|
|
10
|
+
*/
|
|
11
|
+
export interface ChoicePrompt {
|
|
12
|
+
choose(question: string, options: readonly ChoiceOption[]): Promise<number>;
|
|
13
|
+
}
|
|
14
|
+
export declare function renderChoiceList(question: string, options: readonly ChoiceOption[]): string;
|
|
15
|
+
export declare class ReadlineChoicePrompt implements ChoicePrompt {
|
|
16
|
+
choose(question: string, options: readonly ChoiceOption[]): Promise<number>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/quickstart/prompt.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAO3F;AAED,qBAAa,oBAAqB,YAAW,YAAY;IACjD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAuBlF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createInterface } from 'node:readline/promises';
|
|
2
|
+
import { AutoevalError } from '../errors/autoeval-error.js';
|
|
3
|
+
export function renderChoiceList(question, options) {
|
|
4
|
+
const lines = [question];
|
|
5
|
+
options.forEach((option, index) => {
|
|
6
|
+
const detail = option.detail === undefined ? '' : ` ${option.detail}`;
|
|
7
|
+
lines.push(` ${index + 1}. ${option.label}${detail}`);
|
|
8
|
+
});
|
|
9
|
+
return `${lines.join('\n')}\n`;
|
|
10
|
+
}
|
|
11
|
+
export class ReadlineChoicePrompt {
|
|
12
|
+
async choose(question, options) {
|
|
13
|
+
if (options.length === 0) {
|
|
14
|
+
throw new AutoevalError('Nothing to choose from.', {
|
|
15
|
+
kind: 'usage',
|
|
16
|
+
code: 'EMPTY_CHOICE_LIST',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
20
|
+
try {
|
|
21
|
+
process.stderr.write(renderChoiceList(question, options));
|
|
22
|
+
const answer = (await rl.question(`Enter 1-${options.length}: `)).trim();
|
|
23
|
+
const index = Number.parseInt(answer, 10);
|
|
24
|
+
if (!Number.isInteger(index) || index < 1 || index > options.length) {
|
|
25
|
+
throw new AutoevalError(`Pick a number between 1 and ${options.length}.`, {
|
|
26
|
+
kind: 'usage',
|
|
27
|
+
code: 'INVALID_CHOICE',
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return index - 1;
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
rl.close();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/quickstart/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAiB5D,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAgC;IACjF,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,OAAO,oBAAoB;IAC/B,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,OAAgC;QAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE;gBACjD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,mBAAmB;aAC1B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpE,MAAM,IAAI,aAAa,CAAC,+BAA+B,OAAO,CAAC,MAAM,GAAG,EAAE;oBACxE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,gBAAgB;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,GAAG,CAAC,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bundled quickstart samples: an agent trace (default) and a scenario.
|
|
3
|
+
*
|
|
4
|
+
* The published package ships only `dist`, so the samples cannot be read from
|
|
5
|
+
* the repository `examples/` directory on a global install. They live here as
|
|
6
|
+
* source constants; `examples/evals/agent-trace-basic.json` and
|
|
7
|
+
* `examples/evals/scenario-basic.json` stay the repository copies and tests assert
|
|
8
|
+
* the pairs stay identical.
|
|
9
|
+
*
|
|
10
|
+
* The model UUIDs below are placeholders: quickstart replaces them with the
|
|
11
|
+
* models it resolves before any validation or run happens.
|
|
12
|
+
*/
|
|
13
|
+
export declare const QUICKSTART_SCENARIO_SAMPLE_NAME = "examples/evals/scenario-basic.json";
|
|
14
|
+
export declare const QUICKSTART_TRACE_SAMPLE_NAME = "examples/evals/agent-trace-basic.json";
|
|
15
|
+
export declare const QUICKSTART_SCENARIO_SAMPLE: unknown;
|
|
16
|
+
/**
|
|
17
|
+
* The default quickstart sample: a recorded agent trajectory. It is graded by
|
|
18
|
+
* the judge alone, so quickstart never has to resolve a model under test.
|
|
19
|
+
*/
|
|
20
|
+
export declare const QUICKSTART_TRACE_SAMPLE: unknown;
|
|
21
|
+
export type QuickstartSampleKind = 'trace' | 'scenario';
|
|
22
|
+
export declare function quickstartSample(kind: QuickstartSampleKind): {
|
|
23
|
+
data: unknown;
|
|
24
|
+
name: string;
|
|
25
|
+
};
|
|
26
|
+
/** `Quickstart Baseline - <ISO-8601 UTC>`, so the dashboard never shows an untitled record. */
|
|
27
|
+
export declare function quickstartEvaluationName(now: Date): string;
|
|
28
|
+
//# sourceMappingURL=sample.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../src/quickstart/sample.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,uCAAuC,CAAC;AACpF,eAAO,MAAM,4BAA4B,0CAA0C,CAAC;AAEpF,eAAO,MAAM,0BAA0B,EAAE,OAyBxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,OA4LrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAC5D,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAIA;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bundled quickstart samples: an agent trace (default) and a scenario.
|
|
3
|
+
*
|
|
4
|
+
* The published package ships only `dist`, so the samples cannot be read from
|
|
5
|
+
* the repository `examples/` directory on a global install. They live here as
|
|
6
|
+
* source constants; `examples/evals/agent-trace-basic.json` and
|
|
7
|
+
* `examples/evals/scenario-basic.json` stay the repository copies and tests assert
|
|
8
|
+
* the pairs stay identical.
|
|
9
|
+
*
|
|
10
|
+
* The model UUIDs below are placeholders: quickstart replaces them with the
|
|
11
|
+
* models it resolves before any validation or run happens.
|
|
12
|
+
*/
|
|
13
|
+
export const QUICKSTART_SCENARIO_SAMPLE_NAME = 'examples/evals/scenario-basic.json';
|
|
14
|
+
export const QUICKSTART_TRACE_SAMPLE_NAME = 'examples/evals/agent-trace-basic.json';
|
|
15
|
+
export const QUICKSTART_SCENARIO_SAMPLE = {
|
|
16
|
+
methodology: {
|
|
17
|
+
judgeModel: 'GLM 5.2',
|
|
18
|
+
judgeModelId: '11111111-1111-4111-8111-111111111111',
|
|
19
|
+
evaluatorInstructions: 'Score factual accuracy, relevance, and clarity. Penalize unsupported details.',
|
|
20
|
+
},
|
|
21
|
+
configuration: {
|
|
22
|
+
contextName: 'Basic factual questions',
|
|
23
|
+
primaryModelId: '22222222-2222-4222-8222-222222222222',
|
|
24
|
+
comparisonModelIds: [],
|
|
25
|
+
promptText: "Answer the user's factual question directly in one or two sentences.",
|
|
26
|
+
scenarios: [
|
|
27
|
+
{
|
|
28
|
+
id: 'basic-qa-1',
|
|
29
|
+
name: 'Freezing point',
|
|
30
|
+
prompt: 'At standard atmospheric pressure, what is the freezing point of pure water in degrees Celsius?',
|
|
31
|
+
expected: 'The answer states 0 degrees Celsius.',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
referenceDocuments: [],
|
|
35
|
+
selectedMetrics: ['factuality', 'relevance', 'fluency'],
|
|
36
|
+
temperatureContext: 0,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The default quickstart sample: a recorded agent trajectory. It is graded by
|
|
41
|
+
* the judge alone, so quickstart never has to resolve a model under test.
|
|
42
|
+
*/
|
|
43
|
+
export const QUICKSTART_TRACE_SAMPLE = {
|
|
44
|
+
methodology: {
|
|
45
|
+
judgeModel: 'GLM 5.2',
|
|
46
|
+
judgeModelId: '11111111-1111-4111-8111-111111111111',
|
|
47
|
+
evaluatorInstructions: 'Evaluate whether the agent plans a relevant lookup, uses the returned value, and answers without unnecessary steps.',
|
|
48
|
+
},
|
|
49
|
+
configuration: {
|
|
50
|
+
evaluationName: 'Weather lookup',
|
|
51
|
+
contextName: 'Successful tool-grounded lookup',
|
|
52
|
+
contextType: 'agent_trace',
|
|
53
|
+
artifact: {
|
|
54
|
+
trace: {
|
|
55
|
+
resourceSpans: [
|
|
56
|
+
{
|
|
57
|
+
resource: {
|
|
58
|
+
attributes: [
|
|
59
|
+
{
|
|
60
|
+
key: 'service.name',
|
|
61
|
+
value: {
|
|
62
|
+
stringValue: 'synthetic-weather-agent',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
key: 'service.version',
|
|
67
|
+
value: {
|
|
68
|
+
stringValue: 'example-1.0',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
scopeSpans: [
|
|
74
|
+
{
|
|
75
|
+
scope: {
|
|
76
|
+
name: 'example.agent.instrumentation',
|
|
77
|
+
version: '1.0.0',
|
|
78
|
+
},
|
|
79
|
+
spans: [
|
|
80
|
+
{
|
|
81
|
+
traceId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
82
|
+
spanId: '0000000000000001',
|
|
83
|
+
name: 'agent.run',
|
|
84
|
+
kind: 1,
|
|
85
|
+
startTimeUnixNano: '1000000000',
|
|
86
|
+
endTimeUnixNano: '1600000000',
|
|
87
|
+
attributes: [
|
|
88
|
+
{
|
|
89
|
+
key: 'openinference.span.kind',
|
|
90
|
+
value: {
|
|
91
|
+
stringValue: 'AGENT',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
key: 'input.value',
|
|
96
|
+
value: {
|
|
97
|
+
stringValue: 'What is the temperature in Example City right now?',
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
key: 'output.value',
|
|
102
|
+
value: {
|
|
103
|
+
stringValue: 'The current temperature in Example City is 18 degrees Celsius.',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
status: {
|
|
108
|
+
code: 1,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
traceId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
113
|
+
spanId: '0000000000000002',
|
|
114
|
+
parentSpanId: '0000000000000001',
|
|
115
|
+
name: 'llm.plan',
|
|
116
|
+
kind: 1,
|
|
117
|
+
startTimeUnixNano: '1050000000',
|
|
118
|
+
endTimeUnixNano: '1180000000',
|
|
119
|
+
attributes: [
|
|
120
|
+
{
|
|
121
|
+
key: 'openinference.span.kind',
|
|
122
|
+
value: {
|
|
123
|
+
stringValue: 'LLM',
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
key: 'input.value',
|
|
128
|
+
value: {
|
|
129
|
+
stringValue: 'What is the temperature in Example City right now?',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
key: 'output.value',
|
|
134
|
+
value: {
|
|
135
|
+
stringValue: 'Use weather.lookup with city Example City, then report the returned Celsius value.',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
status: {
|
|
140
|
+
code: 1,
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
traceId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
145
|
+
spanId: '0000000000000003',
|
|
146
|
+
parentSpanId: '0000000000000001',
|
|
147
|
+
name: 'tool.weather.lookup',
|
|
148
|
+
kind: 3,
|
|
149
|
+
startTimeUnixNano: '1200000000',
|
|
150
|
+
endTimeUnixNano: '1370000000',
|
|
151
|
+
attributes: [
|
|
152
|
+
{
|
|
153
|
+
key: 'openinference.span.kind',
|
|
154
|
+
value: {
|
|
155
|
+
stringValue: 'TOOL',
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
key: 'tool.name',
|
|
160
|
+
value: {
|
|
161
|
+
stringValue: 'weather.lookup',
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
key: 'input.value',
|
|
166
|
+
value: {
|
|
167
|
+
stringValue: '{"city":"Example City","units":"celsius"}',
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
key: 'output.value',
|
|
172
|
+
value: {
|
|
173
|
+
stringValue: '{"city":"Example City","temperature_c":18,"observed_at":"2030-01-01T09:00:00Z"}',
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
status: {
|
|
178
|
+
code: 1,
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
traceId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
183
|
+
spanId: '0000000000000004',
|
|
184
|
+
parentSpanId: '0000000000000001',
|
|
185
|
+
name: 'llm.respond',
|
|
186
|
+
kind: 1,
|
|
187
|
+
startTimeUnixNano: '1400000000',
|
|
188
|
+
endTimeUnixNano: '1550000000',
|
|
189
|
+
attributes: [
|
|
190
|
+
{
|
|
191
|
+
key: 'openinference.span.kind',
|
|
192
|
+
value: {
|
|
193
|
+
stringValue: 'LLM',
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
key: 'input.value',
|
|
198
|
+
value: {
|
|
199
|
+
stringValue: 'Tool result: {"temperature_c":18}',
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
key: 'output.value',
|
|
204
|
+
value: {
|
|
205
|
+
stringValue: 'The current temperature in Example City is 18 degrees Celsius.',
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
status: {
|
|
210
|
+
code: 1,
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
expected: 'The agent performs one weather lookup, uses the returned value of 18 degrees Celsius, and gives a concise grounded response.',
|
|
221
|
+
referenceDocuments: [],
|
|
222
|
+
selectedMetrics: ['factuality', 'relevance', 'helpfulness'],
|
|
223
|
+
temperatureContext: 0,
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
export function quickstartSample(kind) {
|
|
227
|
+
return kind === 'scenario'
|
|
228
|
+
? { data: QUICKSTART_SCENARIO_SAMPLE, name: QUICKSTART_SCENARIO_SAMPLE_NAME }
|
|
229
|
+
: { data: QUICKSTART_TRACE_SAMPLE, name: QUICKSTART_TRACE_SAMPLE_NAME };
|
|
230
|
+
}
|
|
231
|
+
/** `Quickstart Baseline - <ISO-8601 UTC>`, so the dashboard never shows an untitled record. */
|
|
232
|
+
export function quickstartEvaluationName(now) {
|
|
233
|
+
return `Quickstart Baseline - ${now.toISOString().replace(/\.\d{3}Z$/u, 'Z')}`;
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=sample.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/quickstart/sample.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { SupportedModel, Workspace } from '../domain/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Quickstart resolves the workspace and the two model roles itself so that a
|
|
4
|
+
* first evaluation needs no UUID copy-paste.
|
|
5
|
+
*
|
|
6
|
+
* The model catalog exposes no judge/primary role eligibility: a supported
|
|
7
|
+
* model carries only `isDeprecated` and `isLocked` (see
|
|
8
|
+
* `AutoevalApi.getModels`). So both roles draw from the same candidate set —
|
|
9
|
+
* every enabled model — and no role-eligibility concept is invented here.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Committed, ordered preference for the sample evaluation, best first. Entries
|
|
13
|
+
* are matched case-insensitively against a model's `modelKey`, falling back to
|
|
14
|
+
* its `apiModelId`. Changing this list is a reviewable code change.
|
|
15
|
+
*
|
|
16
|
+
* Quickstart optimises for time-to-first-result, so both roles prefer small,
|
|
17
|
+
* fast models and fall back to larger ones only when no fast model is enabled.
|
|
18
|
+
*/
|
|
19
|
+
export declare const QUICKSTART_JUDGE_PREFERENCE: readonly string[];
|
|
20
|
+
export declare const QUICKSTART_PRIMARY_PREFERENCE: readonly string[];
|
|
21
|
+
export type ModelRole = 'judge' | 'primary';
|
|
22
|
+
export type WorkspaceResolution = {
|
|
23
|
+
kind: 'resolved';
|
|
24
|
+
workspace: Workspace;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'choice-required';
|
|
27
|
+
candidates: readonly Workspace[];
|
|
28
|
+
};
|
|
29
|
+
export type ModelResolution = {
|
|
30
|
+
kind: 'resolved';
|
|
31
|
+
model: SupportedModel;
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'choice-required';
|
|
34
|
+
role: ModelRole;
|
|
35
|
+
candidates: readonly SupportedModel[];
|
|
36
|
+
};
|
|
37
|
+
/** Enabled models, in catalog order. The only eligibility the schema exposes. */
|
|
38
|
+
export declare function enabledModels(models: readonly SupportedModel[]): SupportedModel[];
|
|
39
|
+
/**
|
|
40
|
+
* Workspace rule: an explicit ID wins; a single workspace is used as-is; more
|
|
41
|
+
* than one requires a choice. No workspace is ever created here, and no name
|
|
42
|
+
* such as "Default Workspace" is treated as special.
|
|
43
|
+
*/
|
|
44
|
+
export declare function selectQuickstartWorkspace(workspaces: readonly Workspace[], overrideWorkspaceId?: string): WorkspaceResolution;
|
|
45
|
+
/**
|
|
46
|
+
* Model rule, in order:
|
|
47
|
+
* 1. an explicit `--judge-model-id` / `--primary-model-id` wins;
|
|
48
|
+
* 2. exactly one enabled model (the Free tier shape) is used silently;
|
|
49
|
+
* 3. the first committed preference entry present in the catalog wins;
|
|
50
|
+
* 4. otherwise a choice is required — never an implicit alphabetical pick.
|
|
51
|
+
*/
|
|
52
|
+
export declare function selectQuickstartModel(candidates: readonly SupportedModel[], role: ModelRole, overrideModelId?: string): ModelResolution;
|
|
53
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/quickstart/selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpE;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAMxD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAK1D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAAC;AAExF,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE,CAEjF;AAQD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,mBAAmB,CAAC,EAAE,MAAM,GAC3B,mBAAmB,CA8BrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,IAAI,EAAE,SAAS,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,eAAe,CAiCjB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { AutoevalError } from '../errors/autoeval-error.js';
|
|
2
|
+
/**
|
|
3
|
+
* Quickstart resolves the workspace and the two model roles itself so that a
|
|
4
|
+
* first evaluation needs no UUID copy-paste.
|
|
5
|
+
*
|
|
6
|
+
* The model catalog exposes no judge/primary role eligibility: a supported
|
|
7
|
+
* model carries only `isDeprecated` and `isLocked` (see
|
|
8
|
+
* `AutoevalApi.getModels`). So both roles draw from the same candidate set —
|
|
9
|
+
* every enabled model — and no role-eligibility concept is invented here.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Committed, ordered preference for the sample evaluation, best first. Entries
|
|
13
|
+
* are matched case-insensitively against a model's `modelKey`, falling back to
|
|
14
|
+
* its `apiModelId`. Changing this list is a reviewable code change.
|
|
15
|
+
*
|
|
16
|
+
* Quickstart optimises for time-to-first-result, so both roles prefer small,
|
|
17
|
+
* fast models and fall back to larger ones only when no fast model is enabled.
|
|
18
|
+
*/
|
|
19
|
+
export const QUICKSTART_JUDGE_PREFERENCE = [
|
|
20
|
+
'meta-llama/Llama-3.3-70B-Instruct-Turbo',
|
|
21
|
+
'zai-org/GLM-5.3-Flash',
|
|
22
|
+
'deepseek-ai/DeepSeek-V4-Flash-0731',
|
|
23
|
+
'zai-org/GLM-5.3',
|
|
24
|
+
'deepseek-ai/DeepSeek-V4-Pro-0813',
|
|
25
|
+
];
|
|
26
|
+
export const QUICKSTART_PRIMARY_PREFERENCE = [
|
|
27
|
+
'meta-llama/Llama-3.3-70B-Instruct-Turbo',
|
|
28
|
+
'zai-org/GLM-5.3-Flash',
|
|
29
|
+
'deepseek-ai/DeepSeek-V4-Flash-0731',
|
|
30
|
+
'zai-org/GLM-5.3',
|
|
31
|
+
];
|
|
32
|
+
/** Enabled models, in catalog order. The only eligibility the schema exposes. */
|
|
33
|
+
export function enabledModels(models) {
|
|
34
|
+
return models.filter((model) => !model.isDeprecated && !model.isLocked);
|
|
35
|
+
}
|
|
36
|
+
function modelIdentifiers(model) {
|
|
37
|
+
return [model.modelKey, model.apiModelId]
|
|
38
|
+
.filter((value) => value !== undefined && value !== '')
|
|
39
|
+
.map((value) => value.toLowerCase());
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Workspace rule: an explicit ID wins; a single workspace is used as-is; more
|
|
43
|
+
* than one requires a choice. No workspace is ever created here, and no name
|
|
44
|
+
* such as "Default Workspace" is treated as special.
|
|
45
|
+
*/
|
|
46
|
+
export function selectQuickstartWorkspace(workspaces, overrideWorkspaceId) {
|
|
47
|
+
if (overrideWorkspaceId !== undefined) {
|
|
48
|
+
const wanted = overrideWorkspaceId.toLowerCase();
|
|
49
|
+
const match = workspaces.find((workspace) => workspace.id.toLowerCase() === wanted);
|
|
50
|
+
if (!match) {
|
|
51
|
+
throw new AutoevalError(`Workspace ${overrideWorkspaceId} was not found for this account. Run "autoeval workspace list" to see your workspaces.`, { kind: 'validation', code: 'QUICKSTART_WORKSPACE_NOT_FOUND' });
|
|
52
|
+
}
|
|
53
|
+
return { kind: 'resolved', workspace: match };
|
|
54
|
+
}
|
|
55
|
+
if (workspaces.length === 0) {
|
|
56
|
+
throw new AutoevalError('This account has no workspaces. Create one with "autoeval workspace create --name \'My workspace\'" and run quickstart again.', { kind: 'usage', code: 'QUICKSTART_NO_WORKSPACE' });
|
|
57
|
+
}
|
|
58
|
+
const [only] = workspaces;
|
|
59
|
+
if (workspaces.length === 1 && only) {
|
|
60
|
+
return { kind: 'resolved', workspace: only };
|
|
61
|
+
}
|
|
62
|
+
const ordered = [...workspaces].sort((left, right) => right.evaluationCount - left.evaluationCount || left.name.localeCompare(right.name));
|
|
63
|
+
return { kind: 'choice-required', candidates: ordered };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Model rule, in order:
|
|
67
|
+
* 1. an explicit `--judge-model-id` / `--primary-model-id` wins;
|
|
68
|
+
* 2. exactly one enabled model (the Free tier shape) is used silently;
|
|
69
|
+
* 3. the first committed preference entry present in the catalog wins;
|
|
70
|
+
* 4. otherwise a choice is required — never an implicit alphabetical pick.
|
|
71
|
+
*/
|
|
72
|
+
export function selectQuickstartModel(candidates, role, overrideModelId) {
|
|
73
|
+
if (candidates.length === 0) {
|
|
74
|
+
throw new AutoevalError('No enabled models are available for this account. Run "autoeval models" and enable a model before running quickstart.', { kind: 'validation', code: 'QUICKSTART_NO_ENABLED_MODELS' });
|
|
75
|
+
}
|
|
76
|
+
if (overrideModelId !== undefined) {
|
|
77
|
+
const wanted = overrideModelId.toLowerCase();
|
|
78
|
+
const match = candidates.find((model) => model.id.toLowerCase() === wanted);
|
|
79
|
+
if (!match) {
|
|
80
|
+
throw new AutoevalError(`${role === 'judge' ? 'Judge' : 'Primary'} model ID ${overrideModelId} is not enabled for this account. Run "autoeval models" and choose an enabled model UUID.`, { kind: 'validation', code: 'MODEL_NOT_ENABLED' });
|
|
81
|
+
}
|
|
82
|
+
return { kind: 'resolved', model: match };
|
|
83
|
+
}
|
|
84
|
+
const [only] = candidates;
|
|
85
|
+
if (candidates.length === 1 && only) {
|
|
86
|
+
return { kind: 'resolved', model: only };
|
|
87
|
+
}
|
|
88
|
+
const preference = role === 'judge' ? QUICKSTART_JUDGE_PREFERENCE : QUICKSTART_PRIMARY_PREFERENCE;
|
|
89
|
+
for (const preferred of preference) {
|
|
90
|
+
const wanted = preferred.toLowerCase();
|
|
91
|
+
const match = candidates.find((model) => modelIdentifiers(model).includes(wanted));
|
|
92
|
+
if (match)
|
|
93
|
+
return { kind: 'resolved', model: match };
|
|
94
|
+
}
|
|
95
|
+
return { kind: 'choice-required', role, candidates };
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/quickstart/selection.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ProgramExtension } from './commands/program.js';
|
|
2
|
+
import type { CommandExecutor } from './commands/types.js';
|
|
3
|
+
import { type AutoevalConfiguration } from './config.js';
|
|
4
|
+
export type CliSplashIo = {
|
|
5
|
+
stdinIsTTY: boolean;
|
|
6
|
+
stdoutIsTTY: boolean;
|
|
7
|
+
stderrIsTTY: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function shouldRenderCliSplash(argv: readonly string[], io: CliSplashIo, environment: Readonly<Record<string, string | undefined>>): boolean;
|
|
10
|
+
export type RunCliOptions = {
|
|
11
|
+
argv?: readonly string[];
|
|
12
|
+
/**
|
|
13
|
+
* Extra command registration supplied by the composing distribution. The
|
|
14
|
+
* public CLI passes none, so its surface is exactly the deterministic
|
|
15
|
+
* commands declared in `createProgram`.
|
|
16
|
+
*/
|
|
17
|
+
extend?: (context: {
|
|
18
|
+
configuration: AutoevalConfiguration;
|
|
19
|
+
commandExecutor: CommandExecutor;
|
|
20
|
+
signal: AbortSignal;
|
|
21
|
+
}) => ProgramExtension[] | Promise<ProgramExtension[]>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Builds and runs the CLI program, translating thrown errors into redacted
|
|
25
|
+
* output and process exit codes.
|
|
26
|
+
*/
|
|
27
|
+
export declare function runCli(options?: RunCliOptions): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAe5E,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAwBF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,WAAW,EACf,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GACxD,OAAO,CAYT;AAyBD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QACjB,aAAa,EAAE,qBAAqB,CAAC;QACrC,eAAe,EAAE,eAAe,CAAC;QACjC,MAAM,EAAE,WAAW,CAAC;KACrB,KAAK,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEvE"}
|