daftari 1.30.0 → 1.31.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.
Files changed (282) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +139 -4
  3. package/dist/access/rbac.d.ts +1 -0
  4. package/dist/access/rbac.d.ts.map +1 -1
  5. package/dist/access/rbac.js +7 -0
  6. package/dist/access/rbac.js.map +1 -1
  7. package/dist/audit/checks/broken_refs.d.ts +1 -1
  8. package/dist/audit/checks/broken_refs.d.ts.map +1 -1
  9. package/dist/audit/checks/broken_refs.js +77 -22
  10. package/dist/audit/checks/broken_refs.js.map +1 -1
  11. package/dist/audit/collect.d.ts +1 -0
  12. package/dist/audit/collect.d.ts.map +1 -1
  13. package/dist/audit/collect.js +22 -2
  14. package/dist/audit/collect.js.map +1 -1
  15. package/dist/audit/index.d.ts.map +1 -1
  16. package/dist/audit/index.js +9 -3
  17. package/dist/audit/index.js.map +1 -1
  18. package/dist/audit/links.d.ts.map +1 -1
  19. package/dist/audit/links.js +9 -3
  20. package/dist/audit/links.js.map +1 -1
  21. package/dist/audit/report.d.ts.map +1 -1
  22. package/dist/audit/report.js +2 -0
  23. package/dist/audit/report.js.map +1 -1
  24. package/dist/audit/types.d.ts +4 -1
  25. package/dist/audit/types.d.ts.map +1 -1
  26. package/dist/audit/types.js.map +1 -1
  27. package/dist/backfill/derive.d.ts.map +1 -1
  28. package/dist/backfill/derive.js +1 -0
  29. package/dist/backfill/derive.js.map +1 -1
  30. package/dist/cli.d.ts.map +1 -1
  31. package/dist/cli.js +18 -0
  32. package/dist/cli.js.map +1 -1
  33. package/dist/court/precedent.d.ts.map +1 -1
  34. package/dist/court/precedent.js +6 -1
  35. package/dist/court/precedent.js.map +1 -1
  36. package/dist/curation/consumes.d.ts +24 -0
  37. package/dist/curation/consumes.d.ts.map +1 -0
  38. package/dist/curation/consumes.js +122 -0
  39. package/dist/curation/consumes.js.map +1 -0
  40. package/dist/curation/edge-staleness.d.ts +47 -0
  41. package/dist/curation/edge-staleness.d.ts.map +1 -0
  42. package/dist/curation/edge-staleness.js +258 -0
  43. package/dist/curation/edge-staleness.js.map +1 -0
  44. package/dist/curation/edges.d.ts.map +1 -1
  45. package/dist/curation/edges.js +164 -10
  46. package/dist/curation/edges.js.map +1 -1
  47. package/dist/curation/lint.d.ts +4 -1
  48. package/dist/curation/lint.d.ts.map +1 -1
  49. package/dist/curation/lint.js +61 -6
  50. package/dist/curation/lint.js.map +1 -1
  51. package/dist/curation/provenance.d.ts +2 -0
  52. package/dist/curation/provenance.d.ts.map +1 -1
  53. package/dist/curation/provenance.js +2 -0
  54. package/dist/curation/provenance.js.map +1 -1
  55. package/dist/curation/read-log.d.ts +19 -0
  56. package/dist/curation/read-log.d.ts.map +1 -0
  57. package/dist/curation/read-log.js +120 -0
  58. package/dist/curation/read-log.js.map +1 -0
  59. package/dist/curation/review-throughput.d.ts +24 -0
  60. package/dist/curation/review-throughput.d.ts.map +1 -0
  61. package/dist/curation/review-throughput.js +102 -0
  62. package/dist/curation/review-throughput.js.map +1 -0
  63. package/dist/curation/staged-actions.d.ts +11 -1
  64. package/dist/curation/staged-actions.d.ts.map +1 -1
  65. package/dist/curation/staged-actions.js +102 -24
  66. package/dist/curation/staged-actions.js.map +1 -1
  67. package/dist/curation/structural.d.ts +16 -0
  68. package/dist/curation/structural.d.ts.map +1 -0
  69. package/dist/curation/structural.js +64 -0
  70. package/dist/curation/structural.js.map +1 -0
  71. package/dist/curation/tension-blast.d.ts +4 -0
  72. package/dist/curation/tension-blast.d.ts.map +1 -1
  73. package/dist/curation/tension-blast.js +9 -0
  74. package/dist/curation/tension-blast.js.map +1 -1
  75. package/dist/curation/tension.d.ts +5 -2
  76. package/dist/curation/tension.d.ts.map +1 -1
  77. package/dist/curation/tension.js +68 -25
  78. package/dist/curation/tension.js.map +1 -1
  79. package/dist/curation/tier0.d.ts +27 -0
  80. package/dist/curation/tier0.d.ts.map +1 -0
  81. package/dist/curation/tier0.js +196 -0
  82. package/dist/curation/tier0.js.map +1 -0
  83. package/dist/curation/tier1.d.ts +30 -0
  84. package/dist/curation/tier1.d.ts.map +1 -0
  85. package/dist/curation/tier1.js +142 -0
  86. package/dist/curation/tier1.js.map +1 -0
  87. package/dist/curation/tier2.d.ts +43 -0
  88. package/dist/curation/tier2.d.ts.map +1 -0
  89. package/dist/curation/tier2.js +182 -0
  90. package/dist/curation/tier2.js.map +1 -0
  91. package/dist/curation/vault-docs.d.ts +5 -1
  92. package/dist/curation/vault-docs.d.ts.map +1 -1
  93. package/dist/curation/vault-docs.js +14 -0
  94. package/dist/curation/vault-docs.js.map +1 -1
  95. package/dist/eval/generate.js +22 -5
  96. package/dist/eval/generate.js.map +1 -1
  97. package/dist/eval/index.d.ts.map +1 -1
  98. package/dist/eval/index.js +173 -25
  99. package/dist/eval/index.js.map +1 -1
  100. package/dist/eval/llm.js +1 -1
  101. package/dist/eval/llm.js.map +1 -1
  102. package/dist/eval/prune.d.ts +24 -0
  103. package/dist/eval/prune.d.ts.map +1 -0
  104. package/dist/eval/prune.js +83 -0
  105. package/dist/eval/prune.js.map +1 -0
  106. package/dist/eval/storage.d.ts +3 -0
  107. package/dist/eval/storage.d.ts.map +1 -1
  108. package/dist/eval/storage.js +14 -0
  109. package/dist/eval/storage.js.map +1 -1
  110. package/dist/frontmatter/schema.d.ts.map +1 -1
  111. package/dist/frontmatter/schema.js +19 -1
  112. package/dist/frontmatter/schema.js.map +1 -1
  113. package/dist/frontmatter/types.d.ts +4 -1
  114. package/dist/frontmatter/types.d.ts.map +1 -1
  115. package/dist/frontmatter/types.js +8 -0
  116. package/dist/frontmatter/types.js.map +1 -1
  117. package/dist/import/index.d.ts.map +1 -1
  118. package/dist/import/index.js +44 -9
  119. package/dist/import/index.js.map +1 -1
  120. package/dist/import/langgraph-store.d.ts +53 -0
  121. package/dist/import/langgraph-store.d.ts.map +1 -0
  122. package/dist/import/langgraph-store.js +292 -0
  123. package/dist/import/langgraph-store.js.map +1 -0
  124. package/dist/index.d.ts +5 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +56 -18
  127. package/dist/index.js.map +1 -1
  128. package/dist/lifecycle/lock.d.ts +9 -1
  129. package/dist/lifecycle/lock.d.ts.map +1 -1
  130. package/dist/lifecycle/lock.js +34 -9
  131. package/dist/lifecycle/lock.js.map +1 -1
  132. package/dist/okf/export.d.ts +12 -0
  133. package/dist/okf/export.d.ts.map +1 -0
  134. package/dist/okf/export.js +115 -0
  135. package/dist/okf/export.js.map +1 -0
  136. package/dist/okf/import.d.ts +24 -0
  137. package/dist/okf/import.d.ts.map +1 -0
  138. package/dist/okf/import.js +107 -0
  139. package/dist/okf/import.js.map +1 -0
  140. package/dist/okf/index.d.ts +2 -0
  141. package/dist/okf/index.d.ts.map +1 -0
  142. package/dist/okf/index.js +147 -0
  143. package/dist/okf/index.js.map +1 -0
  144. package/dist/okf/map.d.ts +16 -0
  145. package/dist/okf/map.d.ts.map +1 -0
  146. package/dist/okf/map.js +149 -0
  147. package/dist/okf/map.js.map +1 -0
  148. package/dist/okf/types.d.ts +9 -0
  149. package/dist/okf/types.d.ts.map +1 -0
  150. package/dist/okf/types.js +48 -0
  151. package/dist/okf/types.js.map +1 -0
  152. package/dist/search/coverage.d.ts.map +1 -1
  153. package/dist/search/coverage.js +1 -1
  154. package/dist/search/coverage.js.map +1 -1
  155. package/dist/search/hybrid.d.ts +19 -0
  156. package/dist/search/hybrid.d.ts.map +1 -1
  157. package/dist/search/hybrid.js +58 -10
  158. package/dist/search/hybrid.js.map +1 -1
  159. package/dist/search/reindex.d.ts +1 -0
  160. package/dist/search/reindex.d.ts.map +1 -1
  161. package/dist/search/reindex.js +41 -11
  162. package/dist/search/reindex.js.map +1 -1
  163. package/dist/search/watcher.d.ts +2 -0
  164. package/dist/search/watcher.d.ts.map +1 -1
  165. package/dist/search/watcher.js +21 -10
  166. package/dist/search/watcher.js.map +1 -1
  167. package/dist/serve/index.d.ts +36 -0
  168. package/dist/serve/index.d.ts.map +1 -0
  169. package/dist/serve/index.js +507 -0
  170. package/dist/serve/index.js.map +1 -0
  171. package/dist/server.d.ts +10 -1
  172. package/dist/server.d.ts.map +1 -1
  173. package/dist/server.js +89 -14
  174. package/dist/server.js.map +1 -1
  175. package/dist/sleep/index.d.ts +2 -0
  176. package/dist/sleep/index.d.ts.map +1 -1
  177. package/dist/sleep/index.js +212 -21
  178. package/dist/sleep/index.js.map +1 -1
  179. package/dist/sleep/report.d.ts +3 -0
  180. package/dist/sleep/report.d.ts.map +1 -1
  181. package/dist/sleep/report.js +52 -0
  182. package/dist/sleep/report.js.map +1 -1
  183. package/dist/sleep/tension-scan-state.d.ts +19 -0
  184. package/dist/sleep/tension-scan-state.d.ts.map +1 -0
  185. package/dist/sleep/tension-scan-state.js +0 -0
  186. package/dist/sleep/tension-scan-state.js.map +1 -0
  187. package/dist/sleep/tension-scan.d.ts +44 -0
  188. package/dist/sleep/tension-scan.d.ts.map +1 -0
  189. package/dist/sleep/tension-scan.js +0 -0
  190. package/dist/sleep/tension-scan.js.map +1 -0
  191. package/dist/storage/backend.d.ts +12 -0
  192. package/dist/storage/backend.d.ts.map +1 -0
  193. package/dist/storage/backend.js +231 -0
  194. package/dist/storage/backend.js.map +1 -0
  195. package/dist/storage/backends/fs.d.ts +4 -0
  196. package/dist/storage/backends/fs.d.ts.map +1 -0
  197. package/dist/storage/backends/fs.js +99 -0
  198. package/dist/storage/backends/fs.js.map +1 -0
  199. package/dist/storage/fs-walk.d.ts +5 -0
  200. package/dist/storage/fs-walk.d.ts.map +1 -0
  201. package/dist/storage/fs-walk.js +28 -0
  202. package/dist/storage/fs-walk.js.map +1 -0
  203. package/dist/storage/index-db.d.ts +16 -0
  204. package/dist/storage/index-db.d.ts.map +1 -1
  205. package/dist/storage/index-db.js +94 -5
  206. package/dist/storage/index-db.js.map +1 -1
  207. package/dist/storage/local.d.ts +1 -0
  208. package/dist/storage/local.d.ts.map +1 -1
  209. package/dist/storage/local.js +12 -0
  210. package/dist/storage/local.js.map +1 -1
  211. package/dist/storage/sync.d.ts +25 -0
  212. package/dist/storage/sync.d.ts.map +1 -0
  213. package/dist/storage/sync.js +308 -0
  214. package/dist/storage/sync.js.map +1 -0
  215. package/dist/sync/index.d.ts +2 -0
  216. package/dist/sync/index.d.ts.map +1 -0
  217. package/dist/sync/index.js +136 -0
  218. package/dist/sync/index.js.map +1 -0
  219. package/dist/themes/clustering.d.ts +6 -11
  220. package/dist/themes/clustering.d.ts.map +1 -1
  221. package/dist/themes/clustering.js +76 -84
  222. package/dist/themes/clustering.js.map +1 -1
  223. package/dist/tools/consumes.d.ts +14 -0
  224. package/dist/tools/consumes.d.ts.map +1 -0
  225. package/dist/tools/consumes.js +99 -0
  226. package/dist/tools/consumes.js.map +1 -0
  227. package/dist/tools/curation.d.ts +2 -0
  228. package/dist/tools/curation.d.ts.map +1 -1
  229. package/dist/tools/curation.js +53 -15
  230. package/dist/tools/curation.js.map +1 -1
  231. package/dist/tools/edge-staleness.d.ts +28 -0
  232. package/dist/tools/edge-staleness.d.ts.map +1 -0
  233. package/dist/tools/edge-staleness.js +205 -0
  234. package/dist/tools/edge-staleness.js.map +1 -0
  235. package/dist/tools/edges.d.ts.map +1 -1
  236. package/dist/tools/edges.js +27 -21
  237. package/dist/tools/edges.js.map +1 -1
  238. package/dist/tools/read.d.ts +15 -1
  239. package/dist/tools/read.d.ts.map +1 -1
  240. package/dist/tools/read.js +142 -29
  241. package/dist/tools/read.js.map +1 -1
  242. package/dist/tools/receipt.d.ts.map +1 -1
  243. package/dist/tools/receipt.js +16 -7
  244. package/dist/tools/receipt.js.map +1 -1
  245. package/dist/tools/search.d.ts +1 -0
  246. package/dist/tools/search.d.ts.map +1 -1
  247. package/dist/tools/search.js +147 -5
  248. package/dist/tools/search.js.map +1 -1
  249. package/dist/tools/staged-actions.d.ts +3 -0
  250. package/dist/tools/staged-actions.d.ts.map +1 -1
  251. package/dist/tools/staged-actions.js +227 -22
  252. package/dist/tools/staged-actions.js.map +1 -1
  253. package/dist/tools/themes.d.ts +8 -0
  254. package/dist/tools/themes.d.ts.map +1 -1
  255. package/dist/tools/themes.js +208 -122
  256. package/dist/tools/themes.js.map +1 -1
  257. package/dist/tools/tier1.d.ts +14 -0
  258. package/dist/tools/tier1.d.ts.map +1 -0
  259. package/dist/tools/tier1.js +169 -0
  260. package/dist/tools/tier1.js.map +1 -0
  261. package/dist/tools/tier2.d.ts +27 -0
  262. package/dist/tools/tier2.d.ts.map +1 -0
  263. package/dist/tools/tier2.js +344 -0
  264. package/dist/tools/tier2.js.map +1 -0
  265. package/dist/tools/write.d.ts +9 -1
  266. package/dist/tools/write.d.ts.map +1 -1
  267. package/dist/tools/write.js +492 -6
  268. package/dist/tools/write.js.map +1 -1
  269. package/dist/utils/config.d.ts +52 -0
  270. package/dist/utils/config.d.ts.map +1 -1
  271. package/dist/utils/config.js +372 -2
  272. package/dist/utils/config.js.map +1 -1
  273. package/dist/utils/run-id.d.ts +3 -0
  274. package/dist/utils/run-id.d.ts.map +1 -0
  275. package/dist/utils/run-id.js +19 -0
  276. package/dist/utils/run-id.js.map +1 -0
  277. package/dist/utils/vault-gitignore.d.ts +1 -1
  278. package/dist/utils/vault-gitignore.d.ts.map +1 -1
  279. package/dist/utils/vault-gitignore.js +4 -1
  280. package/dist/utils/vault-gitignore.js.map +1 -1
  281. package/package.json +21 -1
  282. package/templates/config.yaml +8 -0
@@ -7,35 +7,42 @@ import { resolve } from "node:path";
7
7
  import { generateQuestions } from "./generate.js";
8
8
  import { createAnthropicClient } from "./llm.js";
9
9
  import { PROMPT_VERSION } from "./prompts.js";
10
+ import { parseOlderThan, prune } from "./prune.js";
10
11
  import { runAnswerer } from "./run.js";
11
12
  import { aggregateScore, gradeAnswer } from "./score.js";
12
- import { appendHistory, readQuestionSet, readResults, writeQuestionSet, writeResults, writeScore, } from "./storage.js";
13
+ import { appendHistory, readQuestionSet, readResults, resultsExists, writeQuestionSet, writeResults, writeScore, } from "./storage.js";
13
14
  import { sampleSubgraph } from "./subgraph.js";
14
15
  import { SPEC_VERSION, TIERS, } from "./types.js";
15
16
  const HELP = `daftari eval — cortex quality metric.
16
17
 
17
18
  Usage:
18
- daftari eval [--vault <path>] [--n <count>] [--k <count>] [--seed <str>]
19
- daftari eval generate [--vault <path>] [--n <count>] [--seed <str>]
19
+ daftari eval [--vault <path>] [--n <count>] [--k <count>] [--seed <str>] [--max-nodes <count>]
20
+ daftari eval generate [--vault <path>] [--n <count>] [--seed <str>] [--max-nodes <count>]
20
21
  daftari eval run [--questions <id>] [--vault <path>] [--model <id>] [--k <count>] [--resume <results-id>]
21
22
  daftari eval score [--results <id>] [--vault <path>] [--grader-model <id>]
23
+ daftari eval prune [--vault <path>] [--keep <count>] [--older-than <age>] [--dry-run]
22
24
 
23
25
  (--questions and --results take the artifact id printed by a prior stage,
24
26
  not a file path; artifacts live under .daftari/eval/.)
25
27
 
26
28
  Defaults:
27
- --n 15 total questions across three tiers (5 each)
28
- --k 2 runs per question for variance estimation
29
- --model claude-sonnet-4-6 (DEFAULT_MODEL in src/eval/index.ts)
30
- --vault current working directory
29
+ --n 15 total questions across three tiers (5 each)
30
+ --k 2 runs per question for variance estimation
31
+ --model claude-sonnet-4-6 (DEFAULT_MODEL in src/eval/index.ts)
32
+ --vault current working directory
33
+ --max-nodes 5 subgraph size cap for question generation
31
34
 
32
35
  Environment:
33
36
  ANTHROPIC_API_KEY required for any LLM-mediated stage
34
37
 
35
38
  Disk usage:
36
- .daftari/eval/results/ and scores/ grow without bound across runs. v1
37
- recovery is a manual rm -rf .daftari/eval/results/; rerunning regenerates
38
- what's needed. A daftari eval prune command is the planned v2 follow-up.
39
+ .daftari/eval/results/ and scores/ grow without bound across runs. Use
40
+ daftari eval prune to reclaim space: --keep <count> retains the N most
41
+ recent artifacts per directory, --older-than <age> (30d, 12h) retains
42
+ anything younger, and a file survives if EITHER given rule retains it.
43
+ At least one rule is required; --dry-run lists deletions without acting.
44
+ history.json and questions/ are never touched. Selection is by file
45
+ mtime. Prune needs no API key.
39
46
 
40
47
  Exit codes:
41
48
  0 — eval completed
@@ -58,6 +65,8 @@ export async function runEval(argv) {
58
65
  return await runRun(rest);
59
66
  case "score":
60
67
  return await runScore(rest);
68
+ case "prune":
69
+ return runPrune(rest);
61
70
  default:
62
71
  return await runTopLevel(argv);
63
72
  }
@@ -82,6 +91,29 @@ function intFlag(argv, name, def) {
82
91
  throw new Error(`--${name} must be an integer`);
83
92
  return n;
84
93
  }
94
+ // --max-nodes (#102): subgraph size cap, default 5 (the v1 hardcode). The
95
+ // throw lands in runEval's catch → config exit 2, like any bad flag.
96
+ function maxNodesFlag(argv) {
97
+ const n = intFlag(argv, "max-nodes", 5);
98
+ if (n <= 0)
99
+ throw new Error("--max-nodes must be a positive integer");
100
+ return n;
101
+ }
102
+ // Persists an artifact, translating a throw into the RUNTIME exit code.
103
+ // Storage writes run after config validation succeeded: a failure here is
104
+ // disk-full/permissions (#102), and letting it bubble to runEval's catch-all
105
+ // would mislabel it as a config error (2). Returns 0 on success so callers
106
+ // can `if (code) return code;`.
107
+ async function persistOrRuntimeExit(what, op) {
108
+ try {
109
+ await op();
110
+ return 0;
111
+ }
112
+ catch (e) {
113
+ process.stderr.write(`failed to write ${what}: ${e instanceof Error ? e.message : String(e)}\n`);
114
+ return 3;
115
+ }
116
+ }
85
117
  function vaultHash(vault) {
86
118
  return createHash("sha256").update(resolve(vault)).digest("hex").slice(0, 12);
87
119
  }
@@ -98,7 +130,8 @@ async function runGenerate(argv) {
98
130
  const vault = flag(argv, "vault") ?? process.cwd();
99
131
  const n = intFlag(argv, "n", 15);
100
132
  const seed = flag(argv, "seed") ?? defaultSeed(vault);
101
- const sg = await sampleSubgraph(vault, seed, { maxNodes: 5 });
133
+ const maxNodes = maxNodesFlag(argv);
134
+ const sg = await sampleSubgraph(vault, seed, { maxNodes });
102
135
  if (!sg.ok) {
103
136
  process.stderr.write(`${sg.error.message}\n`);
104
137
  return 3;
@@ -116,7 +149,9 @@ async function runGenerate(argv) {
116
149
  }
117
150
  qs.value.timestamp = new Date().toISOString();
118
151
  qs.value.id = `${qs.value.vault_hash}-${qs.value.seed}-${qs.value.timestamp}`;
119
- await writeQuestionSet(vault, qs.value);
152
+ const wrote = await persistOrRuntimeExit("question set", () => writeQuestionSet(vault, qs.value));
153
+ if (wrote)
154
+ return wrote;
120
155
  process.stdout.write(`wrote question set ${qs.value.id} (${qs.value.questions.length} questions)\n`);
121
156
  return 0;
122
157
  }
@@ -141,9 +176,22 @@ async function runRun(argv) {
141
176
  let resumeFrom;
142
177
  const resumeId = flag(argv, "resume");
143
178
  if (resumeId) {
179
+ // A NONEXISTENT --resume id is a config error (#102): silently starting
180
+ // a FRESH run would discard the partial work the caller was explicitly
181
+ // trying to continue. A read failure on a file that EXISTS (corruption
182
+ // from a crashed write, permissions) is a runtime error like every other
183
+ // artifact-read failure here — readResults flattens both to one kind, so
184
+ // existence is checked separately.
185
+ if (!resultsExists(vault, resumeId)) {
186
+ process.stderr.write(`--resume ${resumeId}: no such results id\n`);
187
+ return 2;
188
+ }
144
189
  const r = await readResults(vault, resumeId);
145
- if (r.ok)
146
- resumeFrom = r.value;
190
+ if (!r.ok) {
191
+ process.stderr.write(`--resume ${resumeId}: ${r.error.message}\n`);
192
+ return 3;
193
+ }
194
+ resumeFrom = r.value;
147
195
  }
148
196
  // Mint the stable id + timestamp up front so the on-disk file path is stable
149
197
  // across the run and any later --resume; persist incrementally so a mid-run
@@ -157,17 +205,38 @@ async function runRun(argv) {
157
205
  resumeFrom,
158
206
  runId,
159
207
  timestamp,
160
- persist: (r) => writeResults(vault, r),
208
+ persist: makeBestEffortPersist(vault),
161
209
  });
162
210
  if (!run.ok) {
163
211
  process.stderr.write(`${run.error.message}\n`);
164
212
  process.stderr.write(`partial results saved as ${runId}; resume with: daftari eval run --questions ${questionsId} --resume ${runId}\n`);
165
213
  return 3;
166
214
  }
167
- await writeResults(vault, run.value); // final write (covers the zero-question edge where persist never fired)
215
+ // Final write (covers the zero-question edge where persist never fired).
216
+ const wrote = await persistOrRuntimeExit("results", () => writeResults(vault, run.value));
217
+ if (wrote)
218
+ return wrote;
168
219
  process.stdout.write(`wrote results ${run.value.id}\n`);
169
220
  return 0;
170
221
  }
222
+ // Mid-run incremental persistence is best-effort: a transient write failure
223
+ // must not abort a healthy run (the final write reports failures with the
224
+ // runtime exit code). Warns once PER RUN — the flag lives in the closure, not
225
+ // at module scope, so an in-process re-invocation of runEval warns afresh.
226
+ function makeBestEffortPersist(vault) {
227
+ let warned = false;
228
+ return async (r) => {
229
+ try {
230
+ await writeResults(vault, r);
231
+ }
232
+ catch (e) {
233
+ if (!warned) {
234
+ warned = true;
235
+ process.stderr.write(`warning: incremental results write failed (will retry at end): ${e instanceof Error ? e.message : String(e)}\n`);
236
+ }
237
+ }
238
+ };
239
+ }
171
240
  async function runScore(argv) {
172
241
  const vault = flag(argv, "vault") ?? process.cwd();
173
242
  const resultsId = flag(argv, "results");
@@ -195,12 +264,28 @@ async function runScore(argv) {
195
264
  const grader = createAnthropicClient();
196
265
  const grades = [];
197
266
  const traces = new Map();
267
+ // Dropped-run accounting (#102): a run can fall out of the score because it
268
+ // never completed, because grading failed, or because it was NEVER
269
+ // ATTEMPTED — a process killed between two incremental persists leaves no
270
+ // entry at all for the remaining (question, k) pairs, so the denominator
271
+ // must be the PLANNED grid, not whatever happens to be in the file. All
272
+ // three buckets are counted and reported, so a thin score cannot be
273
+ // mistaken for a complete one.
274
+ const plannedRuns = qs.questions.length * run.k;
275
+ let skippedIncomplete = 0;
276
+ let skippedGradeFailures = 0;
277
+ let presentRuns = 0;
198
278
  for (const [, pr] of Object.entries(run.runs)) {
199
- if (pr.status !== "complete" || !pr.trace)
279
+ presentRuns += 1;
280
+ if (pr.status !== "complete" || !pr.trace) {
281
+ skippedIncomplete += 1;
200
282
  continue;
283
+ }
201
284
  const q = qs.questions[pr.question_index];
202
- if (!q)
285
+ if (!q) {
286
+ skippedIncomplete += 1;
203
287
  continue;
288
+ }
204
289
  const g = await gradeAnswer(q, pr.question_index, pr.k_index, pr.trace, grader, {
205
290
  model: graderModel,
206
291
  });
@@ -208,6 +293,9 @@ async function runScore(argv) {
208
293
  grades.push(g.value);
209
294
  traces.set(`${q.id}:${pr.k_index}`, pr.trace);
210
295
  }
296
+ else {
297
+ skippedGradeFailures += 1;
298
+ }
211
299
  }
212
300
  const score = aggregateScore(grades, qs.questions, { traces });
213
301
  score.models = {
@@ -223,7 +311,9 @@ async function runScore(argv) {
223
311
  score.k = run.k;
224
312
  score.n = qs.questions.length;
225
313
  score.timestamp = new Date().toISOString();
226
- await writeScore(vault, score);
314
+ const wroteScore = await persistOrRuntimeExit("score", () => writeScore(vault, score));
315
+ if (wroteScore)
316
+ return wroteScore;
227
317
  const histEntry = {
228
318
  score_id: score.results_id,
229
319
  score: score.score,
@@ -241,13 +331,65 @@ async function runScore(argv) {
241
331
  prompt_version: score.prompt_version,
242
332
  spec_version: score.spec_version,
243
333
  };
244
- await appendHistory(vault, histEntry);
245
- // Pretty-print headline + per-tier means.
334
+ const wroteHistory = await persistOrRuntimeExit("history", () => appendHistory(vault, histEntry));
335
+ if (wroteHistory)
336
+ return wroteHistory;
337
+ // Pretty-print headline + per-tier means, and the coverage line (#102):
338
+ // how many answerer runs the score actually stands on.
246
339
  process.stdout.write(`score: ${score.score.toFixed(3)} ± ${score.score_std.toFixed(3)}\n`);
247
340
  for (const t of TIERS) {
248
341
  const ts = score.by_tier[t];
249
342
  process.stdout.write(` ${t.padEnd(16)}: ${ts.mean.toFixed(3)} (n=${ts.n}, efficiency=${ts.trace_efficiency.toFixed(1)} calls)\n`);
250
343
  }
344
+ const neverAttempted = Math.max(0, plannedRuns - presentRuns);
345
+ process.stdout.write(`graded ${grades.length}/${plannedRuns} runs\n`);
346
+ if (skippedIncomplete > 0 || skippedGradeFailures > 0 || neverAttempted > 0) {
347
+ process.stderr.write(`warning: score is PARTIAL — ${skippedIncomplete} incomplete run(s), ` +
348
+ `${skippedGradeFailures} grading failure(s), and ${neverAttempted} ` +
349
+ `never-attempted run(s) were skipped; resume the run to complete it\n`);
350
+ }
351
+ return 0;
352
+ }
353
+ // `daftari eval prune` (#100): explicit local housekeeping — no API key
354
+ // gate, unlike every LLM-mediated stage. Synchronous by design (small
355
+ // directory listings + unlinks).
356
+ function runPrune(argv) {
357
+ const vault = flag(argv, "vault") ?? process.cwd();
358
+ const keepRaw = flag(argv, "keep");
359
+ const olderRaw = flag(argv, "older-than");
360
+ const dryRun = argv.includes("--dry-run");
361
+ if (keepRaw === undefined && olderRaw === undefined) {
362
+ process.stderr.write("eval prune: at least one retention rule is required (--keep <count> and/or --older-than <age>)\n");
363
+ return 2;
364
+ }
365
+ const rules = {};
366
+ if (keepRaw !== undefined) {
367
+ const keep = intFlag(argv, "keep", 0);
368
+ if (keep < 0)
369
+ throw new Error("--keep must be a non-negative integer");
370
+ rules.keep = keep;
371
+ }
372
+ if (olderRaw !== undefined)
373
+ rules.maxAgeMs = parseOlderThan(olderRaw);
374
+ // Deletion failures are runtime errors (exit 3), same class as every other
375
+ // artifact-IO failure in this CLI.
376
+ let dirResults;
377
+ try {
378
+ dirResults = prune(vault, rules, { dryRun, nowMs: Date.now() });
379
+ }
380
+ catch (e) {
381
+ process.stderr.write(`prune failed: ${e instanceof Error ? e.message : String(e)}\n`);
382
+ return 3;
383
+ }
384
+ const verb = dryRun ? "would delete" : "deleted";
385
+ for (const { dir, plan } of dirResults) {
386
+ const bytes = plan.deleted.reduce((acc, c) => acc + c.size, 0);
387
+ process.stdout.write(`${dir}: ${verb} ${plan.deleted.length} file(s) (${bytes} bytes), kept ${plan.kept.length}\n`);
388
+ if (dryRun) {
389
+ for (const c of plan.deleted)
390
+ process.stdout.write(` ${c.name}\n`);
391
+ }
392
+ }
251
393
  return 0;
252
394
  }
253
395
  async function runTopLevel(argv) {
@@ -264,8 +406,9 @@ async function runTopLevel(argv) {
264
406
  const k = intFlag(argv, "k", 2);
265
407
  const seed = flag(argv, "seed") ?? defaultSeed(vault);
266
408
  const model = flag(argv, "model") ?? DEFAULT_MODEL;
409
+ const maxNodes = maxNodesFlag(argv);
267
410
  // 1. Generate
268
- const sg = await sampleSubgraph(vault, seed, { maxNodes: 5 });
411
+ const sg = await sampleSubgraph(vault, seed, { maxNodes });
269
412
  if (!sg.ok) {
270
413
  process.stderr.write(`${sg.error.message}\n`);
271
414
  return 3;
@@ -284,7 +427,9 @@ async function runTopLevel(argv) {
284
427
  const qs = qsRes.value;
285
428
  qs.timestamp = new Date().toISOString();
286
429
  qs.id = `${qs.vault_hash}-${qs.seed}-${qs.timestamp}`;
287
- await writeQuestionSet(vault, qs);
430
+ const wroteQs = await persistOrRuntimeExit("question set", () => writeQuestionSet(vault, qs));
431
+ if (wroteQs)
432
+ return wroteQs;
288
433
  process.stdout.write(`generated ${qs.questions.length} questions (id=${qs.id})\n`);
289
434
  // 2. Run — mint the stable id + timestamp up front and persist incrementally
290
435
  // so a mid-run failure leaves a resumable partial file.
@@ -295,7 +440,7 @@ async function runTopLevel(argv) {
295
440
  model,
296
441
  runId,
297
442
  timestamp: runTimestamp,
298
- persist: (r) => writeResults(vault, r),
443
+ persist: makeBestEffortPersist(vault),
299
444
  });
300
445
  if (!runRes.ok) {
301
446
  process.stderr.write(`${runRes.error.message}\n`);
@@ -303,7 +448,10 @@ async function runTopLevel(argv) {
303
448
  return 3;
304
449
  }
305
450
  const run = runRes.value;
306
- await writeResults(vault, run); // final write (covers the zero-question edge where persist never fired)
451
+ // Final write (covers the zero-question edge where persist never fired).
452
+ const wroteRun = await persistOrRuntimeExit("results", () => writeResults(vault, run));
453
+ if (wroteRun)
454
+ return wroteRun;
307
455
  process.stdout.write(`ran ${Object.keys(run.runs).length} answerer invocations (id=${run.id})\n`);
308
456
  // 3. Score — invoke the same grading logic runScore uses, in-process.
309
457
  return await runScore(["--vault", vault, "--results", run.id, "--grader-model", model]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"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"}
package/dist/eval/llm.js CHANGED
@@ -141,7 +141,7 @@ export async function retry(fn) {
141
141
  const r = await fn();
142
142
  if (r.ok)
143
143
  return r;
144
- if (!r.error || r.error.kind !== "llm" || !r.error.retryable)
144
+ if (r.error?.kind !== "llm" || !r.error.retryable)
145
145
  return r;
146
146
  lastErr = r.error;
147
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/eval/llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/eval/llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export interface PruneRules {
2
+ keep?: number;
3
+ maxAgeMs?: number;
4
+ }
5
+ export interface PruneCandidate {
6
+ name: string;
7
+ mtimeMs: number;
8
+ size: number;
9
+ }
10
+ export interface PrunePlan {
11
+ kept: PruneCandidate[];
12
+ deleted: PruneCandidate[];
13
+ }
14
+ export declare function planPrune(candidates: PruneCandidate[], rules: PruneRules, nowMs: number): PrunePlan;
15
+ export declare function parseOlderThan(value: string): number;
16
+ export interface DirPruneResult {
17
+ dir: string;
18
+ plan: PrunePlan;
19
+ }
20
+ export declare function prune(vault: string, rules: PruneRules, opts: {
21
+ dryRun: boolean;
22
+ nowMs: number;
23
+ }): DirPruneResult[];
24
+ //# sourceMappingURL=prune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/eval/prune.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IAEzB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAOD,wBAAgB,SAAS,CACvB,UAAU,EAAE,cAAc,EAAE,EAC5B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,GACZ,SAAS,CAcX;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;CACjB;AA4BD,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvC,cAAc,EAAE,CAYlB"}
@@ -0,0 +1,83 @@
1
+ // `daftari eval prune` (#100) — explicit, user-invoked housekeeping for the
2
+ // two unbounded artifact directories, .daftari/eval/results/ and scores/.
3
+ // history.json (self-rotating) and questions/ (cheap, referenced by results)
4
+ // are never touched. Selection is by file mtime: this is disk housekeeping,
5
+ // so the filesystem's own clock is the honest ordering — it never depends on
6
+ // parsing artifact contents that may be truncated or malformed.
7
+ import { readdirSync, rmSync, statSync } from "node:fs";
8
+ import { join } from "node:path";
9
+ import { resultsDir, scoresDir } from "./storage.js";
10
+ // Splits candidates into kept/deleted under the LEAST-DESTRUCTION reading of
11
+ // combined rules: a file SURVIVES if any given rule retains it — within the
12
+ // keep-N most recent, OR younger than the age cutoff. Only files failing
13
+ // every supplied rule are deleted. Pure; ordering ties break by name so the
14
+ // plan is deterministic for identical mtimes.
15
+ export function planPrune(candidates, rules, nowMs) {
16
+ const sorted = [...candidates].sort((a, b) => b.mtimeMs - a.mtimeMs || a.name.localeCompare(b.name));
17
+ const kept = [];
18
+ const deleted = [];
19
+ for (let i = 0; i < sorted.length; i++) {
20
+ const c = sorted[i];
21
+ const keptByCount = rules.keep !== undefined && i < rules.keep;
22
+ const keptByAge = rules.maxAgeMs !== undefined && nowMs - c.mtimeMs < rules.maxAgeMs;
23
+ if (keptByCount || keptByAge)
24
+ kept.push(c);
25
+ else
26
+ deleted.push(c);
27
+ }
28
+ return { kept, deleted };
29
+ }
30
+ // Parses the --older-than value: <N>d (days) or <N>h (hours). Throws on any
31
+ // other shape — the CLI boundary maps the throw to the config exit code.
32
+ export function parseOlderThan(value) {
33
+ const m = /^(\d+)([dh])$/.exec(value.trim());
34
+ if (!m) {
35
+ throw new Error(`--older-than must look like 30d or 12h (got '${value}')`);
36
+ }
37
+ const n = parseInt(m[1], 10);
38
+ const unitMs = m[2] === "d" ? 86_400_000 : 3_600_000;
39
+ return n * unitMs;
40
+ }
41
+ // Lists the .json artifacts of one directory as prune candidates. A missing
42
+ // directory is an empty candidate set — nothing to prune is not an error.
43
+ function listCandidates(dir) {
44
+ let names;
45
+ try {
46
+ names = readdirSync(dir);
47
+ }
48
+ catch {
49
+ return [];
50
+ }
51
+ const out = [];
52
+ for (const name of names) {
53
+ if (!name.endsWith(".json"))
54
+ continue;
55
+ try {
56
+ const st = statSync(join(dir, name));
57
+ if (!st.isFile())
58
+ continue;
59
+ out.push({ name, mtimeMs: st.mtimeMs, size: st.size });
60
+ }
61
+ catch {
62
+ // Raced deletion; skip.
63
+ }
64
+ }
65
+ return out;
66
+ }
67
+ // Plans (and unless dryRun, performs) the prune over results/ and scores/.
68
+ // Deletion failures throw — the CLI boundary maps them to the runtime exit
69
+ // code, consistent with every other artifact-IO failure in the eval CLI.
70
+ export function prune(vault, rules, opts) {
71
+ const results = [];
72
+ for (const dir of [resultsDir(vault), scoresDir(vault)]) {
73
+ const plan = planPrune(listCandidates(dir), rules, opts.nowMs);
74
+ if (!opts.dryRun) {
75
+ for (const c of plan.deleted) {
76
+ rmSync(join(dir, c.name));
77
+ }
78
+ }
79
+ results.push({ dir, plan });
80
+ }
81
+ return results;
82
+ }
83
+ //# sourceMappingURL=prune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/eval/prune.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { type Result } from "../frontmatter/types.js";
2
2
  import { type CortexEvalError, type EvalRun, type HistoryEntry, type HistoryFile, type QuestionSet, type Score } from "./types.js";
3
+ export declare function resultsDir(vault: string): string;
4
+ export declare function scoresDir(vault: string): string;
3
5
  export declare function writeQuestionSet(vault: string, qs: QuestionSet): Promise<void>;
4
6
  export declare function readQuestionSet(vault: string, id: string): Promise<Result<QuestionSet, CortexEvalError>>;
5
7
  export declare function writeResults(vault: string, run: EvalRun): Promise<void>;
6
8
  export declare function readResults(vault: string, id: string): Promise<Result<EvalRun, CortexEvalError>>;
9
+ export declare function resultsExists(vault: string, id: string): boolean;
7
10
  export declare function writeScore(vault: string, score: Score): Promise<void>;
8
11
  export declare function appendHistory(vault: string, entry: HistoryEntry): Promise<void>;
9
12
  export declare function readHistory(vault: string): Promise<Result<HistoryFile, CortexEvalError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/eval/storage.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,OAAO,EAEZ,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AA0BpB,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAE/C;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAEhG;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrF;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAY9F"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/eval/storage.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,OAAO,EAEZ,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AAUpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAoBD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAE/C;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAEhG;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrF;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAY9F"}
@@ -11,6 +11,14 @@ const QS_DIR = (vault) => join(EVAL_DIR(vault), "questions");
11
11
  const RES_DIR = (vault) => join(EVAL_DIR(vault), "results");
12
12
  const SCORE_DIR = (vault) => join(EVAL_DIR(vault), "scores");
13
13
  const HIST_FILE = (vault) => join(EVAL_DIR(vault), "history.json");
14
+ // Directory locations for `daftari eval prune` (#100) — the two unbounded
15
+ // artifact stores it is allowed to touch.
16
+ export function resultsDir(vault) {
17
+ return RES_DIR(vault);
18
+ }
19
+ export function scoresDir(vault) {
20
+ return SCORE_DIR(vault);
21
+ }
14
22
  async function ensureDir(p) {
15
23
  await mkdir(p, { recursive: true });
16
24
  }
@@ -41,6 +49,12 @@ export async function writeResults(vault, run) {
41
49
  export function readResults(vault, id) {
42
50
  return readJson(join(RES_DIR(vault), `${id}.json`));
43
51
  }
52
+ // Whether a results artifact exists at all — lets the CLI distinguish a
53
+ // typo'd --resume id (config error) from a real read failure on an existing
54
+ // file (runtime error), which readJson's flattened error cannot (#102).
55
+ export function resultsExists(vault, id) {
56
+ return existsSync(join(RES_DIR(vault), `${id}.json`));
57
+ }
44
58
  export async function writeScore(vault, score) {
45
59
  await ensureDir(SCORE_DIR(vault));
46
60
  await writeJson(join(SCORE_DIR(vault), `${score.results_id}.json`), score);
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/eval/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/eval/storage.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,0EAA0E;AAC1E,2EAA2E;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAGL,iBAAiB,GAKlB,MAAM,YAAY,CAAC;AAEpB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;AACrE,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;AACpE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;AAE3E,0EAA0E;AAC1E,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,CAAS;IAChC,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAI,IAAY,EAAE,KAAQ;IAC1C,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,QAAQ,CAAI,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,EAAe;IACnE,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,EAAU;IAEV,OAAO,QAAQ,CAAc,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,GAAY;IAC5D,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,EAAU;IACnD,OAAO,QAAQ,CAAU,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,EAAU;IACrD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,KAAY;IAC1D,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAa,EAAE,KAAmB;IACpE,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAmB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACvD,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAc,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,CAAC,CAAC,KAAK,CAAC,OAAO,mDAAmD,CACzG,CAAC;QACF,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}