@ls-stack/agent-eval 0.35.1 → 0.37.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,7 +1,7 @@
1
- import { A as createRunRequestSchema, j as updateManualScoreRequestSchema } from "./runOrchestration-V1TxX8es.mjs";
2
- import { o as stageManualInputFile } from "./cli-Dg3abrOv.mjs";
3
- import "./src-DBypR4TV.mjs";
4
- import { t as getRunnerInstance } from "./runner-BCs5rzej.mjs";
1
+ import { F as extractCacheEntries, M as createRunRequestSchema, N as updateManualScoreRequestSchema } from "./runOrchestration-C4o5TcIu.mjs";
2
+ import { o as stageManualInputFile } from "./cli-CwGcJYWe.mjs";
3
+ import "./src--13_4uDG.mjs";
4
+ import { t as getRunnerInstance } from "./runner-BTH8m_Er.mjs";
5
5
  import { readFile } from "node:fs/promises";
6
6
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
7
7
  import { z } from "zod/v4";
@@ -53,6 +53,8 @@ const assetsRoutes = new Hono().get("/repo-file", async (c) => {
53
53
  * - `GET /:namespace/:key` returns the full cache entry (including its
54
54
  * recording / return value) for a single namespace+key pair.
55
55
  * - `DELETE /` clears the entire cache directory.
56
+ * - `DELETE /actions/eval?evalKey=<key>` clears entries recorded by saved runs
57
+ * for one exact eval identity.
56
58
  * - `DELETE /:namespace` clears one namespace.
57
59
  * - `DELETE /:namespace/:key` clears a single entry by its key hash.
58
60
  */
@@ -68,6 +70,19 @@ const cacheRoutes = new Hono().get("/", async (c) => {
68
70
  }).delete("/", async (c) => {
69
71
  await getRunnerInstance().clearCache();
70
72
  return c.json({ ok: true }, 200);
73
+ }).delete("/actions/eval", async (c) => {
74
+ const evalKey = c.req.query("evalKey");
75
+ if (evalKey === void 0 || evalKey.length === 0) return c.json({ error: "evalKey query param is required" }, 400);
76
+ const runner = getRunnerInstance();
77
+ const entries = getCacheEntriesForEvalRuns(runner, evalKey);
78
+ await Promise.all(entries.map((entry) => runner.clearCache({
79
+ namespace: entry.namespace,
80
+ key: entry.key
81
+ })));
82
+ return c.json({
83
+ ok: true,
84
+ deletedEntries: entries.length
85
+ }, 200);
71
86
  }).delete("/:namespace", async (c) => {
72
87
  const namespace = c.req.param("namespace");
73
88
  await getRunnerInstance().clearCache({ namespace });
@@ -81,6 +96,26 @@ const cacheRoutes = new Hono().get("/", async (c) => {
81
96
  });
82
97
  return c.json({ ok: true }, 200);
83
98
  });
99
+ function getCacheEntriesForEvalRuns(runner, evalKey) {
100
+ const entries = /* @__PURE__ */ new Map();
101
+ for (const manifest of runner.getRuns()) {
102
+ const run = runner.getRun(manifest.id);
103
+ if (run === void 0) continue;
104
+ for (const caseRow of run.cases) {
105
+ if (caseRow.evalKey !== evalKey) continue;
106
+ const caseDetail = runner.getCaseDetail(manifest.id, caseRow.caseId);
107
+ if (caseDetail === void 0) continue;
108
+ for (const entry of extractCacheEntries(caseDetail.trace, caseDetail.cacheRefs)) {
109
+ if (!entry.stored) continue;
110
+ entries.set(`${entry.namespace}\u0000${entry.key}`, {
111
+ namespace: entry.namespace,
112
+ key: entry.key
113
+ });
114
+ }
115
+ }
116
+ }
117
+ return [...entries.values()];
118
+ }
84
119
  //#endregion
85
120
  //#region ../../apps/server/src/routes/evals.ts
86
121
  const evalsRoutes = new Hono().get("/", (c) => {