@ls-stack/agent-eval 0.16.1 → 0.17.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.
@@ -1,5 +1,5 @@
1
- import { n as createRunner } from "./cli-BmrtjQj_.mjs";
2
- import "./src-CEAJYN_X.mjs";
1
+ import { n as createRunner } from "./cli-CULTt3Xp.mjs";
2
+ import "./src-CNf3xwVw.mjs";
3
3
  //#region ../../apps/server/src/runner.ts
4
4
  let runnerInstance = null;
5
5
  function getRunnerInstance() {
@@ -1,2 +1,2 @@
1
- import { n as initRunner, t as getRunnerInstance } from "./runner-CsZqhbiA.mjs";
1
+ import { n as initRunner, t as getRunnerInstance } from "./runner-BSXZiQIi.mjs";
2
2
  export { getRunnerInstance, initRunner };
@@ -0,0 +1,3 @@
1
+ import "./runOrchestration-D2okEB3I.mjs";
2
+ import "./cli-CULTt3Xp.mjs";
3
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ls-stack/agent-eval",
3
- "version": "0.16.1",
3
+ "version": "0.17.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "agent-evals": "./dist/bin.mjs"
@@ -59,8 +59,8 @@
59
59
  "@types/node": "^24.7.2",
60
60
  "typescript": "^5.9.2",
61
61
  "@agent-evals/runner": "0.0.1",
62
- "@agent-evals/shared": "0.0.1",
63
- "@agent-evals/sdk": "0.0.1"
62
+ "@agent-evals/sdk": "0.0.1",
63
+ "@agent-evals/shared": "0.0.1"
64
64
  },
65
65
  "scripts": {
66
66
  "build": "pnpm --filter @agent-evals/web build && tsdown",
@@ -39,10 +39,10 @@ file wires up cases and scoring; the real `evalTracer.span(...)` calls sit
39
39
  inside the workflow, agent, or tool functions that both production and evals
40
40
  invoke.
41
41
 
42
- `evalTracer`, `evalSpan`, output helpers, and `evalAssert` are ambient no-ops
43
- when called outside an eval case scope, so leaving them in production paths is
44
- safe — they only record anything when the product code runs inside an eval's
45
- `execute`. Use `isInEvalScope()` to branch on eval-only behavior in shared code
42
+ `evalTracer`, `evalSpan`, output helpers, `evalLog`, and `evalAssert` are
43
+ ambient no-ops when called outside an eval case scope, so leaving them in
44
+ production paths is safe — they only record anything when the product code runs
45
+ inside an eval's `execute`. Use `isInEvalScope()` to branch on eval-only behavior in shared code
46
46
  (e.g. skip a real network side effect): it returns `null` outside eval-owned
47
47
  work and returns `'env'`, `'cases'`, `'eval'`, `'derive'`, `'outputsSchema'`, or
48
48
  `'scorer'` during runner phases. Top-level modules imported while a run is being
@@ -52,6 +52,11 @@ prepared see `'env'`; code called from `execute` sees `'eval'`. Use
52
52
  scope it returns `undefined`. Use `nextEvalId()` inside eval-scoped code when a
53
53
  stable generated id is needed; it includes the eval file, eval id, case id, and
54
54
  a per-case sequence number, and throws outside an eval case scope.
55
+ Use `evalLog(level, ...args)` for intentional per-case logs. The runner also
56
+ captures `console.log`, `console.info`, `console.warn`, and `console.error`
57
+ during case-owned phases by default; log arguments are stored as JSON-safe
58
+ values and rendered with the JSON viewer, collapsed previews are capped, and
59
+ logs inside cached operations are not replayed from cache hits.
55
60
 
56
61
  ### Product code (instrumented once, reused everywhere)
57
62
 
@@ -260,6 +265,10 @@ See `EvalScoreDef` / `EvalManualScoreDef` in the types for the full shape
260
265
  `error` read from conventional attribute paths. Override `kinds` or
261
266
  `attributes.<field>` for external tracers, and add `metrics` with the same
262
267
  formats and placements as LLM-call metrics.
268
+ - `runLogs` (in `agent-evals.config.ts`) controls case log capture. Use
269
+ `runLogs: { captureConsole: false }` to keep console output in the terminal
270
+ without persisting console calls to case details. Manual `evalLog(...)` calls
271
+ are still captured.
263
272
 
264
273
  Stats rows and history charts on the eval card are opt-in via `stats` /
265
274
  `charts` on the eval definition. Their shapes live in the types; no need to
@@ -329,6 +338,10 @@ Mental model:
329
338
  `.agent-evals/cache/<owner>.json`; each namespace is capped at 100 entries by
330
339
  default. Configure `cache.maxEntriesPerNamespace` for the default cap and
331
340
  `cache.maxEntriesByNamespace` for exact namespace-specific caps.
341
+ - Authored raw cache keys are stored for debugging under
342
+ `.agent-evals/cache-debug/<owner>.json`. This folder may include prompts,
343
+ user inputs, or other sensitive data, should be gitignored, and is not needed
344
+ for cache reuse. The UI Cache hits tab shows the raw key when it is available.
332
345
  - Cached payloads use advance serialization/deserialization with the Web API plugin set, so return values and
333
346
  recorded SDK effects preserve richer built-ins such as `Date`, `Map`, `Set`,
334
347
  typed arrays, `URL`, `Headers`, `Blob`, and `File` on hits. Cache keys still