daftari 1.29.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 (369) hide show
  1. package/CHANGELOG.md +281 -0
  2. package/README.md +263 -9
  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/asof/git-read.d.ts +17 -0
  8. package/dist/asof/git-read.d.ts.map +1 -0
  9. package/dist/asof/git-read.js +163 -0
  10. package/dist/asof/git-read.js.map +1 -0
  11. package/dist/asof/index.d.ts +2 -0
  12. package/dist/asof/index.d.ts.map +1 -0
  13. package/dist/asof/index.js +151 -0
  14. package/dist/asof/index.js.map +1 -0
  15. package/dist/asof/report.d.ts +11 -0
  16. package/dist/asof/report.d.ts.map +1 -0
  17. package/dist/asof/report.js +119 -0
  18. package/dist/asof/report.js.map +1 -0
  19. package/dist/asof/snapshot.d.ts +72 -0
  20. package/dist/asof/snapshot.d.ts.map +1 -0
  21. package/dist/asof/snapshot.js +207 -0
  22. package/dist/asof/snapshot.js.map +1 -0
  23. package/dist/audit/checks/broken_refs.d.ts +1 -1
  24. package/dist/audit/checks/broken_refs.d.ts.map +1 -1
  25. package/dist/audit/checks/broken_refs.js +77 -22
  26. package/dist/audit/checks/broken_refs.js.map +1 -1
  27. package/dist/audit/collect.d.ts +1 -0
  28. package/dist/audit/collect.d.ts.map +1 -1
  29. package/dist/audit/collect.js +22 -2
  30. package/dist/audit/collect.js.map +1 -1
  31. package/dist/audit/index.d.ts.map +1 -1
  32. package/dist/audit/index.js +9 -3
  33. package/dist/audit/index.js.map +1 -1
  34. package/dist/audit/links.d.ts.map +1 -1
  35. package/dist/audit/links.js +9 -3
  36. package/dist/audit/links.js.map +1 -1
  37. package/dist/audit/report.d.ts.map +1 -1
  38. package/dist/audit/report.js +2 -0
  39. package/dist/audit/report.js.map +1 -1
  40. package/dist/audit/types.d.ts +4 -1
  41. package/dist/audit/types.d.ts.map +1 -1
  42. package/dist/audit/types.js.map +1 -1
  43. package/dist/backfill/apply.js +2 -2
  44. package/dist/backfill/apply.js.map +1 -1
  45. package/dist/backfill/derive.d.ts.map +1 -1
  46. package/dist/backfill/derive.js +1 -0
  47. package/dist/backfill/derive.js.map +1 -1
  48. package/dist/backfill/plan.js +2 -2
  49. package/dist/backfill/plan.js.map +1 -1
  50. package/dist/cli.d.ts.map +1 -1
  51. package/dist/cli.js +36 -0
  52. package/dist/cli.js.map +1 -1
  53. package/dist/consolidate/call-budget.d.ts +3 -0
  54. package/dist/consolidate/call-budget.d.ts.map +1 -0
  55. package/dist/consolidate/call-budget.js +37 -0
  56. package/dist/consolidate/call-budget.js.map +1 -0
  57. package/dist/consolidate/constants.d.ts +1 -0
  58. package/dist/consolidate/constants.d.ts.map +1 -1
  59. package/dist/consolidate/constants.js +5 -0
  60. package/dist/consolidate/constants.js.map +1 -1
  61. package/dist/consolidate/index.d.ts.map +1 -1
  62. package/dist/consolidate/index.js +96 -27
  63. package/dist/consolidate/index.js.map +1 -1
  64. package/dist/court/docket.d.ts +39 -0
  65. package/dist/court/docket.d.ts.map +1 -0
  66. package/dist/court/docket.js +103 -0
  67. package/dist/court/docket.js.map +1 -0
  68. package/dist/court/index.d.ts +2 -0
  69. package/dist/court/index.d.ts.map +1 -0
  70. package/dist/court/index.js +169 -0
  71. package/dist/court/index.js.map +1 -0
  72. package/dist/court/precedent.d.ts +18 -0
  73. package/dist/court/precedent.d.ts.map +1 -0
  74. package/dist/court/precedent.js +89 -0
  75. package/dist/court/precedent.js.map +1 -0
  76. package/dist/court/report.d.ts +10 -0
  77. package/dist/court/report.d.ts.map +1 -0
  78. package/dist/court/report.js +77 -0
  79. package/dist/court/report.js.map +1 -0
  80. package/dist/curation/consumes.d.ts +24 -0
  81. package/dist/curation/consumes.d.ts.map +1 -0
  82. package/dist/curation/consumes.js +122 -0
  83. package/dist/curation/consumes.js.map +1 -0
  84. package/dist/curation/edge-staleness.d.ts +47 -0
  85. package/dist/curation/edge-staleness.d.ts.map +1 -0
  86. package/dist/curation/edge-staleness.js +258 -0
  87. package/dist/curation/edge-staleness.js.map +1 -0
  88. package/dist/curation/edges.d.ts.map +1 -1
  89. package/dist/curation/edges.js +164 -10
  90. package/dist/curation/edges.js.map +1 -1
  91. package/dist/curation/lint.d.ts +4 -1
  92. package/dist/curation/lint.d.ts.map +1 -1
  93. package/dist/curation/lint.js +61 -6
  94. package/dist/curation/lint.js.map +1 -1
  95. package/dist/curation/provenance.d.ts +2 -0
  96. package/dist/curation/provenance.d.ts.map +1 -1
  97. package/dist/curation/provenance.js +2 -0
  98. package/dist/curation/provenance.js.map +1 -1
  99. package/dist/curation/read-log.d.ts +19 -0
  100. package/dist/curation/read-log.d.ts.map +1 -0
  101. package/dist/curation/read-log.js +120 -0
  102. package/dist/curation/read-log.js.map +1 -0
  103. package/dist/curation/review-throughput.d.ts +24 -0
  104. package/dist/curation/review-throughput.d.ts.map +1 -0
  105. package/dist/curation/review-throughput.js +102 -0
  106. package/dist/curation/review-throughput.js.map +1 -0
  107. package/dist/curation/staged-actions.d.ts +11 -1
  108. package/dist/curation/staged-actions.d.ts.map +1 -1
  109. package/dist/curation/staged-actions.js +117 -30
  110. package/dist/curation/staged-actions.js.map +1 -1
  111. package/dist/curation/staleness.js +1 -1
  112. package/dist/curation/staleness.js.map +1 -1
  113. package/dist/curation/structural.d.ts +16 -0
  114. package/dist/curation/structural.d.ts.map +1 -0
  115. package/dist/curation/structural.js +64 -0
  116. package/dist/curation/structural.js.map +1 -0
  117. package/dist/curation/tension-access.d.ts +7 -0
  118. package/dist/curation/tension-access.d.ts.map +1 -0
  119. package/dist/curation/tension-access.js +44 -0
  120. package/dist/curation/tension-access.js.map +1 -0
  121. package/dist/curation/tension-blast.d.ts +6 -1
  122. package/dist/curation/tension-blast.d.ts.map +1 -1
  123. package/dist/curation/tension-blast.js +11 -2
  124. package/dist/curation/tension-blast.js.map +1 -1
  125. package/dist/curation/tension-clusters.d.ts +1 -1
  126. package/dist/curation/tension-clusters.d.ts.map +1 -1
  127. package/dist/curation/tension-clusters.js +5 -2
  128. package/dist/curation/tension-clusters.js.map +1 -1
  129. package/dist/curation/tension.d.ts +6 -2
  130. package/dist/curation/tension.d.ts.map +1 -1
  131. package/dist/curation/tension.js +86 -35
  132. package/dist/curation/tension.js.map +1 -1
  133. package/dist/curation/tier0.d.ts +27 -0
  134. package/dist/curation/tier0.d.ts.map +1 -0
  135. package/dist/curation/tier0.js +196 -0
  136. package/dist/curation/tier0.js.map +1 -0
  137. package/dist/curation/tier1.d.ts +30 -0
  138. package/dist/curation/tier1.d.ts.map +1 -0
  139. package/dist/curation/tier1.js +142 -0
  140. package/dist/curation/tier1.js.map +1 -0
  141. package/dist/curation/tier2.d.ts +43 -0
  142. package/dist/curation/tier2.d.ts.map +1 -0
  143. package/dist/curation/tier2.js +182 -0
  144. package/dist/curation/tier2.js.map +1 -0
  145. package/dist/curation/vault-docs.d.ts +5 -1
  146. package/dist/curation/vault-docs.d.ts.map +1 -1
  147. package/dist/curation/vault-docs.js +15 -1
  148. package/dist/curation/vault-docs.js.map +1 -1
  149. package/dist/eval/generate.js +22 -5
  150. package/dist/eval/generate.js.map +1 -1
  151. package/dist/eval/index.d.ts.map +1 -1
  152. package/dist/eval/index.js +173 -25
  153. package/dist/eval/index.js.map +1 -1
  154. package/dist/eval/llm-openrouter.d.ts +9 -0
  155. package/dist/eval/llm-openrouter.d.ts.map +1 -0
  156. package/dist/eval/llm-openrouter.js +171 -0
  157. package/dist/eval/llm-openrouter.js.map +1 -0
  158. package/dist/eval/llm.js +1 -1
  159. package/dist/eval/llm.js.map +1 -1
  160. package/dist/eval/prune.d.ts +24 -0
  161. package/dist/eval/prune.d.ts.map +1 -0
  162. package/dist/eval/prune.js +83 -0
  163. package/dist/eval/prune.js.map +1 -0
  164. package/dist/eval/storage.d.ts +3 -0
  165. package/dist/eval/storage.d.ts.map +1 -1
  166. package/dist/eval/storage.js +14 -0
  167. package/dist/eval/storage.js.map +1 -1
  168. package/dist/frontmatter/parser.d.ts +1 -0
  169. package/dist/frontmatter/parser.d.ts.map +1 -1
  170. package/dist/frontmatter/parser.js +12 -0
  171. package/dist/frontmatter/parser.js.map +1 -1
  172. package/dist/frontmatter/schema.d.ts.map +1 -1
  173. package/dist/frontmatter/schema.js +38 -3
  174. package/dist/frontmatter/schema.js.map +1 -1
  175. package/dist/frontmatter/types.d.ts +4 -1
  176. package/dist/frontmatter/types.d.ts.map +1 -1
  177. package/dist/frontmatter/types.js +8 -0
  178. package/dist/frontmatter/types.js.map +1 -1
  179. package/dist/import/index.d.ts.map +1 -1
  180. package/dist/import/index.js +44 -9
  181. package/dist/import/index.js.map +1 -1
  182. package/dist/import/langgraph-store.d.ts +53 -0
  183. package/dist/import/langgraph-store.d.ts.map +1 -0
  184. package/dist/import/langgraph-store.js +292 -0
  185. package/dist/import/langgraph-store.js.map +1 -0
  186. package/dist/index.d.ts +5 -0
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +56 -18
  189. package/dist/index.js.map +1 -1
  190. package/dist/lifecycle/lock.d.ts +9 -1
  191. package/dist/lifecycle/lock.d.ts.map +1 -1
  192. package/dist/lifecycle/lock.js +34 -9
  193. package/dist/lifecycle/lock.js.map +1 -1
  194. package/dist/okf/export.d.ts +12 -0
  195. package/dist/okf/export.d.ts.map +1 -0
  196. package/dist/okf/export.js +115 -0
  197. package/dist/okf/export.js.map +1 -0
  198. package/dist/okf/import.d.ts +24 -0
  199. package/dist/okf/import.d.ts.map +1 -0
  200. package/dist/okf/import.js +107 -0
  201. package/dist/okf/import.js.map +1 -0
  202. package/dist/okf/index.d.ts +2 -0
  203. package/dist/okf/index.d.ts.map +1 -0
  204. package/dist/okf/index.js +147 -0
  205. package/dist/okf/index.js.map +1 -0
  206. package/dist/okf/map.d.ts +16 -0
  207. package/dist/okf/map.d.ts.map +1 -0
  208. package/dist/okf/map.js +149 -0
  209. package/dist/okf/map.js.map +1 -0
  210. package/dist/okf/types.d.ts +9 -0
  211. package/dist/okf/types.d.ts.map +1 -0
  212. package/dist/okf/types.js +48 -0
  213. package/dist/okf/types.js.map +1 -0
  214. package/dist/search/contested.d.ts +18 -0
  215. package/dist/search/contested.d.ts.map +1 -0
  216. package/dist/search/contested.js +119 -0
  217. package/dist/search/contested.js.map +1 -0
  218. package/dist/search/coverage.d.ts.map +1 -1
  219. package/dist/search/coverage.js +1 -1
  220. package/dist/search/coverage.js.map +1 -1
  221. package/dist/search/hybrid.d.ts +23 -0
  222. package/dist/search/hybrid.d.ts.map +1 -1
  223. package/dist/search/hybrid.js +75 -15
  224. package/dist/search/hybrid.js.map +1 -1
  225. package/dist/search/reindex.d.ts +1 -0
  226. package/dist/search/reindex.d.ts.map +1 -1
  227. package/dist/search/reindex.js +57 -24
  228. package/dist/search/reindex.js.map +1 -1
  229. package/dist/search/watcher.d.ts +2 -0
  230. package/dist/search/watcher.d.ts.map +1 -1
  231. package/dist/search/watcher.js +23 -12
  232. package/dist/search/watcher.js.map +1 -1
  233. package/dist/serve/index.d.ts +36 -0
  234. package/dist/serve/index.d.ts.map +1 -0
  235. package/dist/serve/index.js +507 -0
  236. package/dist/serve/index.js.map +1 -0
  237. package/dist/server.d.ts +10 -1
  238. package/dist/server.d.ts.map +1 -1
  239. package/dist/server.js +91 -12
  240. package/dist/server.js.map +1 -1
  241. package/dist/sleep/cycle.d.ts +59 -0
  242. package/dist/sleep/cycle.d.ts.map +1 -0
  243. package/dist/sleep/cycle.js +127 -0
  244. package/dist/sleep/cycle.js.map +1 -0
  245. package/dist/sleep/index.d.ts +5 -0
  246. package/dist/sleep/index.d.ts.map +1 -0
  247. package/dist/sleep/index.js +320 -0
  248. package/dist/sleep/index.js.map +1 -0
  249. package/dist/sleep/report.d.ts +14 -0
  250. package/dist/sleep/report.d.ts.map +1 -0
  251. package/dist/sleep/report.js +139 -0
  252. package/dist/sleep/report.js.map +1 -0
  253. package/dist/sleep/tension-scan-state.d.ts +19 -0
  254. package/dist/sleep/tension-scan-state.d.ts.map +1 -0
  255. package/dist/sleep/tension-scan-state.js +0 -0
  256. package/dist/sleep/tension-scan-state.js.map +1 -0
  257. package/dist/sleep/tension-scan.d.ts +44 -0
  258. package/dist/sleep/tension-scan.d.ts.map +1 -0
  259. package/dist/sleep/tension-scan.js +0 -0
  260. package/dist/sleep/tension-scan.js.map +1 -0
  261. package/dist/storage/backend.d.ts +12 -0
  262. package/dist/storage/backend.d.ts.map +1 -0
  263. package/dist/storage/backend.js +231 -0
  264. package/dist/storage/backend.js.map +1 -0
  265. package/dist/storage/backends/fs.d.ts +4 -0
  266. package/dist/storage/backends/fs.d.ts.map +1 -0
  267. package/dist/storage/backends/fs.js +99 -0
  268. package/dist/storage/backends/fs.js.map +1 -0
  269. package/dist/storage/fs-walk.d.ts +5 -0
  270. package/dist/storage/fs-walk.d.ts.map +1 -0
  271. package/dist/storage/fs-walk.js +28 -0
  272. package/dist/storage/fs-walk.js.map +1 -0
  273. package/dist/storage/index-db.d.ts +18 -0
  274. package/dist/storage/index-db.d.ts.map +1 -1
  275. package/dist/storage/index-db.js +159 -22
  276. package/dist/storage/index-db.js.map +1 -1
  277. package/dist/storage/local.d.ts +7 -1
  278. package/dist/storage/local.d.ts.map +1 -1
  279. package/dist/storage/local.js +42 -4
  280. package/dist/storage/local.js.map +1 -1
  281. package/dist/storage/sync.d.ts +25 -0
  282. package/dist/storage/sync.d.ts.map +1 -0
  283. package/dist/storage/sync.js +308 -0
  284. package/dist/storage/sync.js.map +1 -0
  285. package/dist/sync/index.d.ts +2 -0
  286. package/dist/sync/index.d.ts.map +1 -0
  287. package/dist/sync/index.js +136 -0
  288. package/dist/sync/index.js.map +1 -0
  289. package/dist/themes/clustering.d.ts +6 -11
  290. package/dist/themes/clustering.d.ts.map +1 -1
  291. package/dist/themes/clustering.js +76 -84
  292. package/dist/themes/clustering.js.map +1 -1
  293. package/dist/tools/consumes.d.ts +14 -0
  294. package/dist/tools/consumes.d.ts.map +1 -0
  295. package/dist/tools/consumes.js +99 -0
  296. package/dist/tools/consumes.js.map +1 -0
  297. package/dist/tools/curation.d.ts +2 -0
  298. package/dist/tools/curation.d.ts.map +1 -1
  299. package/dist/tools/curation.js +102 -7
  300. package/dist/tools/curation.js.map +1 -1
  301. package/dist/tools/edge-staleness.d.ts +28 -0
  302. package/dist/tools/edge-staleness.d.ts.map +1 -0
  303. package/dist/tools/edge-staleness.js +205 -0
  304. package/dist/tools/edge-staleness.js.map +1 -0
  305. package/dist/tools/edges.d.ts.map +1 -1
  306. package/dist/tools/edges.js +28 -22
  307. package/dist/tools/edges.js.map +1 -1
  308. package/dist/tools/read.d.ts +15 -1
  309. package/dist/tools/read.d.ts.map +1 -1
  310. package/dist/tools/read.js +144 -31
  311. package/dist/tools/read.js.map +1 -1
  312. package/dist/tools/receipt.d.ts +65 -0
  313. package/dist/tools/receipt.d.ts.map +1 -0
  314. package/dist/tools/receipt.js +257 -0
  315. package/dist/tools/receipt.js.map +1 -0
  316. package/dist/tools/search.d.ts +1 -0
  317. package/dist/tools/search.d.ts.map +1 -1
  318. package/dist/tools/search.js +186 -12
  319. package/dist/tools/search.js.map +1 -1
  320. package/dist/tools/staged-actions.d.ts +3 -0
  321. package/dist/tools/staged-actions.d.ts.map +1 -1
  322. package/dist/tools/staged-actions.js +228 -23
  323. package/dist/tools/staged-actions.js.map +1 -1
  324. package/dist/tools/themes.d.ts +9 -0
  325. package/dist/tools/themes.d.ts.map +1 -1
  326. package/dist/tools/themes.js +333 -133
  327. package/dist/tools/themes.js.map +1 -1
  328. package/dist/tools/tier1.d.ts +14 -0
  329. package/dist/tools/tier1.d.ts.map +1 -0
  330. package/dist/tools/tier1.js +169 -0
  331. package/dist/tools/tier1.js.map +1 -0
  332. package/dist/tools/tier2.d.ts +27 -0
  333. package/dist/tools/tier2.d.ts.map +1 -0
  334. package/dist/tools/tier2.js +344 -0
  335. package/dist/tools/tier2.js.map +1 -0
  336. package/dist/tools/witness.d.ts +9 -0
  337. package/dist/tools/witness.d.ts.map +1 -0
  338. package/dist/tools/witness.js +66 -0
  339. package/dist/tools/witness.js.map +1 -0
  340. package/dist/tools/write.d.ts +9 -1
  341. package/dist/tools/write.d.ts.map +1 -1
  342. package/dist/tools/write.js +593 -59
  343. package/dist/tools/write.js.map +1 -1
  344. package/dist/utils/config.d.ts +54 -0
  345. package/dist/utils/config.d.ts.map +1 -1
  346. package/dist/utils/config.js +420 -4
  347. package/dist/utils/config.js.map +1 -1
  348. package/dist/utils/paths.d.ts +2 -0
  349. package/dist/utils/paths.d.ts.map +1 -0
  350. package/dist/utils/paths.js +15 -0
  351. package/dist/utils/paths.js.map +1 -0
  352. package/dist/utils/redos.d.ts +2 -0
  353. package/dist/utils/redos.d.ts.map +1 -0
  354. package/dist/utils/redos.js +101 -0
  355. package/dist/utils/redos.js.map +1 -0
  356. package/dist/utils/run-id.d.ts +3 -0
  357. package/dist/utils/run-id.d.ts.map +1 -0
  358. package/dist/utils/run-id.js +19 -0
  359. package/dist/utils/run-id.js.map +1 -0
  360. package/dist/utils/vault-gitignore.d.ts +1 -1
  361. package/dist/utils/vault-gitignore.d.ts.map +1 -1
  362. package/dist/utils/vault-gitignore.js +6 -1
  363. package/dist/utils/vault-gitignore.js.map +1 -1
  364. package/dist/witness/track-record.d.ts +42 -0
  365. package/dist/witness/track-record.d.ts.map +1 -0
  366. package/dist/witness/track-record.js +189 -0
  367. package/dist/witness/track-record.js.map +1 -0
  368. package/package.json +27 -2
  369. package/templates/config.yaml +8 -0
@@ -0,0 +1,142 @@
1
+ // Tier 1 of tiered compatibility checking (#232) — type-directed dispatch
2
+ // over the edge provenance classes, deterministic and LLM-free.
3
+ //
4
+ // Given a changed unit and the set of fields the change touched, every
5
+ // dependent gets a verdict whose CEILING is set by the provenance class of
6
+ // the edge that connects it (the 2026-07-17 through-line spec's dispatch
7
+ // rule):
8
+ //
9
+ // compiled (consumes) — mechanically certain, so hard verdicts are
10
+ // licensed: `unaffected` when the change misses
11
+ // every consumed field, `affected` when it hits.
12
+ // declared (sources) — a claim, so the positive verdict is only
13
+ // `possibly-affected`; never a hard hit.
14
+ // earned (derives_from) — an LLM inference with a decay schedule; it
15
+ // ROUTES (`semantic-review`, the tier-2 queue)
16
+ // and never decides.
17
+ //
18
+ // One certain verdict cuts across all classes: a change that touched nothing
19
+ // but server bookkeeping fields is `unaffected` for every dependent — the
20
+ // CHANGE side of the judgment is certain even when the edge side is a claim.
21
+ //
22
+ // An artifact reachable through several classes keeps the highest-certainty
23
+ // verdict (compiled > declared > earned): a certain skip beats a claim, and
24
+ // a certain hit makes a semantic review redundant.
25
+ //
26
+ // The #232 acceptance metric falls out of the summary: a change "resolves at
27
+ // tier 1" when no dependent needs semantic review — everything was decided
28
+ // deterministically.
29
+ // Server-stamped bookkeeping — changed on every write, consumed by no one's
30
+ // meaning. Never counts as a content change.
31
+ export const BOOKKEEPING_FIELDS = new Set(["updated", "updated_by"]);
32
+ export function contentChangedFields(fields) {
33
+ const seen = new Set();
34
+ const out = [];
35
+ for (const f of fields) {
36
+ if (BOOKKEEPING_FIELDS.has(f) || seen.has(f))
37
+ continue;
38
+ seen.add(f);
39
+ out.push(f);
40
+ }
41
+ return out;
42
+ }
43
+ // Derives the changed-field set from a provenance entry: the frontmatter
44
+ // diff's keys plus "body" when the body changed. An entry from before the
45
+ // body_changed flag existed reports body as changed for a content write —
46
+ // unknown must over-approximate, never silently skip.
47
+ export function changedFieldsFromProvenance(entry) {
48
+ const fields = Object.keys(entry.frontmatter_diff ?? {});
49
+ const bodyChanged = entry.body_changed ??
50
+ (entry.action === "create" || entry.action === "update" || entry.action === "append");
51
+ if (bodyChanged)
52
+ fields.push("body");
53
+ return contentChangedFields(fields);
54
+ }
55
+ const CLASS_RANK = { compiled: 3, declared: 2, earned: 1 };
56
+ export function tier1Dispatch(input) {
57
+ const changed = contentChangedFields(input.changedFields);
58
+ const noContentChange = changed.length === 0;
59
+ const changedList = changed.join(", ");
60
+ const byArtifact = new Map();
61
+ const put = (v) => {
62
+ const prev = byArtifact.get(v.artifact);
63
+ if (!prev || CLASS_RANK[v.edge_class] > CLASS_RANK[prev.edge_class]) {
64
+ byArtifact.set(v.artifact, v);
65
+ }
66
+ };
67
+ for (const e of input.compiled) {
68
+ if (noContentChange) {
69
+ put({
70
+ artifact: e.artifact,
71
+ verdict: "unaffected",
72
+ edge_class: "compiled",
73
+ reason: "only bookkeeping fields changed",
74
+ });
75
+ continue;
76
+ }
77
+ const consumesAll = e.fields.includes("*");
78
+ const overlap = consumesAll ? changed : e.fields.filter((f) => changed.includes(f));
79
+ if (overlap.length === 0) {
80
+ put({
81
+ artifact: e.artifact,
82
+ verdict: "unaffected",
83
+ edge_class: "compiled",
84
+ reason: `consumed fields [${e.fields.join(", ")}] untouched by change [${changedList}]`,
85
+ });
86
+ }
87
+ else {
88
+ put({
89
+ artifact: e.artifact,
90
+ verdict: "affected",
91
+ edge_class: "compiled",
92
+ reason: `consumed ${consumesAll ? "the whole doc" : `[${overlap.join(", ")}]`}, which the change touched`,
93
+ });
94
+ }
95
+ }
96
+ for (const artifact of input.declaredDependents) {
97
+ put(noContentChange
98
+ ? {
99
+ artifact,
100
+ verdict: "unaffected",
101
+ edge_class: "declared",
102
+ reason: "only bookkeeping fields changed",
103
+ }
104
+ : {
105
+ artifact,
106
+ verdict: "possibly-affected",
107
+ edge_class: "declared",
108
+ reason: `declared sources citation — a claim, so [${changedList}] may or may not matter`,
109
+ });
110
+ }
111
+ for (const artifact of input.earnedDependents) {
112
+ put(noContentChange
113
+ ? {
114
+ artifact,
115
+ verdict: "unaffected",
116
+ edge_class: "earned",
117
+ reason: "only bookkeeping fields changed",
118
+ }
119
+ : {
120
+ artifact,
121
+ verdict: "semantic-review",
122
+ edge_class: "earned",
123
+ reason: "earned derives_from edge — routes to semantic review, never a hard verdict",
124
+ });
125
+ }
126
+ return [...byArtifact.values()].sort((a, b) => a.artifact < b.artifact ? -1 : a.artifact > b.artifact ? 1 : 0);
127
+ }
128
+ export function tier1Summary(verdicts) {
129
+ const counts = { unaffected: 0, affected: 0, possibly_affected: 0, semantic_review: 0 };
130
+ for (const v of verdicts) {
131
+ if (v.verdict === "unaffected")
132
+ counts.unaffected += 1;
133
+ else if (v.verdict === "affected")
134
+ counts.affected += 1;
135
+ else if (v.verdict === "possibly-affected")
136
+ counts.possibly_affected += 1;
137
+ else
138
+ counts.semantic_review += 1;
139
+ }
140
+ return { ...counts, resolved_at_tier1: counts.semantic_review === 0 };
141
+ }
142
+ //# sourceMappingURL=tier1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier1.js","sourceRoot":"","sources":["../../src/curation/tier1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type Result } from "../frontmatter/types.js";
2
+ import type { ProvenanceEntry } from "./provenance.js";
3
+ import type { LoggableTensionKind } from "./tension.js";
4
+ import type { Tier1EdgeClass } from "./tier1.js";
5
+ export declare const NO_CHANGE_TS = "1970-01-01T00:00:00.000Z";
6
+ export declare const TIER2_VERDICT_KINDS: readonly ["still-valid", "broken"];
7
+ export type Tier2VerdictKind = (typeof TIER2_VERDICT_KINDS)[number];
8
+ export interface Tier2Verdict {
9
+ timestamp: string;
10
+ artifact: string;
11
+ unit: string;
12
+ edge_class: Exclude<Tier1EdgeClass, "compiled">;
13
+ judged_change_ts: string;
14
+ verdict: Tier2VerdictKind;
15
+ tension_kind?: LoggableTensionKind;
16
+ tension_id?: string;
17
+ reasoning: string;
18
+ agent: string;
19
+ principal?: string;
20
+ run_id?: string;
21
+ }
22
+ export declare function tier2VerdictsPath(vaultRoot: string): string;
23
+ export declare function recordTier2Verdict(vaultRoot: string, entry: Omit<Tier2Verdict, "timestamp"> & {
24
+ timestamp?: string;
25
+ }): Promise<Result<Tier2Verdict, Error>>;
26
+ export declare function readTier2Verdicts(vaultRoot: string): Promise<Result<Tier2Verdict[], Error>>;
27
+ export declare function latestUnitChangeTs(provenance: ProvenanceEntry[], unit: string): string | null;
28
+ export declare function coveringVerdict(verdicts: Tier2Verdict[], input: {
29
+ artifact: string;
30
+ unit: string;
31
+ edgeClass: Tier1EdgeClass;
32
+ latestChangeTs: string;
33
+ }): Tier2Verdict | null;
34
+ export interface FieldChange {
35
+ before: unknown;
36
+ after: unknown;
37
+ }
38
+ export declare function accumulateFieldChanges(provenance: ProvenanceEntry[], unit: string, baseline: string): Record<string, FieldChange>;
39
+ export declare function extractUsageSpan(artifactBody: string, unit: {
40
+ path: string;
41
+ title?: string;
42
+ }): string | null;
43
+ //# sourceMappingURL=tier2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier2.d.ts","sourceRoot":"","sources":["../../src/curation/tier2.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAEvD,eAAO,MAAM,mBAAmB,oCAAqC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAIhD,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,gBAAgB,CAAC;IAG1B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAuBtC;AAGD,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC,CAuBjG;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO7F;AAKD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,cAAc,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC3F,YAAY,GAAG,IAAI,CASrB;AAOD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAAE,EAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAe7B;AAMD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,MAAM,GAAG,IAAI,CA0Bf"}
@@ -0,0 +1,182 @@
1
+ // Tier 2 of tiered compatibility checking (#232) — the semantic residual,
2
+ // as a QUEUE the server prepares and a VERDICT the server records. The
3
+ // expensive judge itself is the CALLING AGENT: daftari has no LLM, by
4
+ // design. The pattern is the same as earned edges (observeEdge) and
5
+ // tension logging (vault_tension_log) — agents do the semantic work,
6
+ // the server types it, stores it, and derives consequences.
7
+ //
8
+ // The queue IS #234's pending-unchecked staleness class, minus pairs a
9
+ // recorded verdict already covers: declared and earned edges whose upstream
10
+ // changed but whose compatibility structure cannot decide — exactly what
11
+ // the through-line spec routes to "the expensive judges". Compiled edges
12
+ // never queue (tier 1 decides them mechanically, and a semantic opinion
13
+ // must not override mechanical certainty).
14
+ //
15
+ // Constrained input, per the #232 issue: not "do these two documents
16
+ // conflict" but (unit, dependent, edge class, per-field before/after since
17
+ // the edge's baseline, the dependent's usage span) — a specific claim
18
+ // against a specific usage. Output is typed per the existing tension
19
+ // taxonomy: a `broken` verdict names a LoggableTensionKind and is logged
20
+ // as a real tension through addTension; `still-valid` records the
21
+ // certified-compatible judgment.
22
+ //
23
+ // The verdict store (.daftari/tier2-verdicts.jsonl) is append-only local
24
+ // state, git-ignored — the tension log is the durable, caller-visible
25
+ // artifact of a break; the verdict log is what keeps the queue honest.
26
+ // Verdicts, unlike tier-1 classes, MUST be stored: they are expensive LLM
27
+ // judgments that cannot be recomputed at query time. Staleness protects
28
+ // them from going stale: a verdict covers a pair only up to the unit
29
+ // change it judged (judged_change_ts); a newer landed write to the unit
30
+ // re-queues the pair automatically.
31
+ import { mkdirSync } from "node:fs";
32
+ import { appendFile, readFile } from "node:fs/promises";
33
+ import { join } from "node:path";
34
+ import { err, ok } from "../frontmatter/types.js";
35
+ // Sentinel change timestamp for a unit with no provenance history at all: a
36
+ // verdict on such a pair judges "the dependency as it stands", and any
37
+ // later landed write to the unit (whose real timestamp is necessarily
38
+ // greater) re-queues it.
39
+ export const NO_CHANGE_TS = "1970-01-01T00:00:00.000Z";
40
+ export const TIER2_VERDICT_KINDS = ["still-valid", "broken"];
41
+ export function tier2VerdictsPath(vaultRoot) {
42
+ return join(vaultRoot, ".daftari", "tier2-verdicts.jsonl");
43
+ }
44
+ export async function recordTier2Verdict(vaultRoot, entry) {
45
+ const full = {
46
+ timestamp: entry.timestamp ?? new Date().toISOString(),
47
+ artifact: entry.artifact,
48
+ unit: entry.unit,
49
+ edge_class: entry.edge_class,
50
+ judged_change_ts: entry.judged_change_ts,
51
+ verdict: entry.verdict,
52
+ ...(entry.tension_kind ? { tension_kind: entry.tension_kind } : {}),
53
+ ...(entry.tension_id ? { tension_id: entry.tension_id } : {}),
54
+ reasoning: entry.reasoning,
55
+ agent: entry.agent,
56
+ ...(entry.principal ? { principal: entry.principal } : {}),
57
+ ...(entry.run_id ? { run_id: entry.run_id } : {}),
58
+ };
59
+ try {
60
+ mkdirSync(join(vaultRoot, ".daftari"), { recursive: true });
61
+ await appendFile(tier2VerdictsPath(vaultRoot), `${JSON.stringify(full)}\n`);
62
+ return ok(full);
63
+ }
64
+ catch (e) {
65
+ const reason = e instanceof Error ? e.message : String(e);
66
+ return err(new Error(`cannot append tier-2 verdict: ${reason}`));
67
+ }
68
+ }
69
+ // Oldest first; missing log is empty; corrupt lines skipped.
70
+ export async function readTier2Verdicts(vaultRoot) {
71
+ let raw;
72
+ try {
73
+ raw = await readFile(tier2VerdictsPath(vaultRoot), "utf-8");
74
+ }
75
+ catch (e) {
76
+ if (e.code === "ENOENT")
77
+ return ok([]);
78
+ const reason = e instanceof Error ? e.message : String(e);
79
+ return err(new Error(`cannot read tier-2 verdicts: ${reason}`));
80
+ }
81
+ const entries = [];
82
+ for (const line of raw.split("\n")) {
83
+ const trimmed = line.trim();
84
+ if (!trimmed)
85
+ continue;
86
+ try {
87
+ const parsed = JSON.parse(trimmed);
88
+ if (typeof parsed.artifact === "string" && typeof parsed.unit === "string") {
89
+ entries.push(parsed);
90
+ }
91
+ }
92
+ catch {
93
+ // Skip a corrupt line; the log is append-only and best-effort.
94
+ }
95
+ }
96
+ return ok(entries);
97
+ }
98
+ // The unit's latest landed content write — the change identity a verdict
99
+ // judges. Null when the unit has no provenance at all.
100
+ export function latestUnitChangeTs(provenance, unit) {
101
+ let latest = null;
102
+ for (const e of provenance) {
103
+ if (e.file !== unit || e.action === "rejected_stale")
104
+ continue;
105
+ if (latest === null || e.timestamp > latest)
106
+ latest = e.timestamp;
107
+ }
108
+ return latest;
109
+ }
110
+ // The verdict currently in force for a pair, if any: the newest recorded
111
+ // verdict whose judged_change_ts is not older than the unit's latest landed
112
+ // write. An older judgment (the unit changed again) covers nothing.
113
+ export function coveringVerdict(verdicts, input) {
114
+ let found = null;
115
+ for (const v of verdicts) {
116
+ if (v.artifact !== input.artifact || v.unit !== input.unit)
117
+ continue;
118
+ if (v.edge_class !== input.edgeClass)
119
+ continue;
120
+ if (v.judged_change_ts < input.latestChangeTs)
121
+ continue; // stale judgment
122
+ if (found === null || v.timestamp > found.timestamp)
123
+ found = v;
124
+ }
125
+ return found;
126
+ }
127
+ export function accumulateFieldChanges(provenance, unit, baseline) {
128
+ const changes = {};
129
+ let bodyChanged = false;
130
+ for (const e of provenance) {
131
+ if (e.file !== unit || e.action === "rejected_stale" || e.timestamp <= baseline)
132
+ continue;
133
+ for (const [field, diff] of Object.entries(e.frontmatter_diff ?? {})) {
134
+ const existing = changes[field];
135
+ if (existing)
136
+ existing.after = diff.after;
137
+ else
138
+ changes[field] = { before: diff.before, after: diff.after };
139
+ }
140
+ if (e.body_changed ?? (e.action === "create" || e.action === "update" || e.action === "append"))
141
+ bodyChanged = true;
142
+ }
143
+ if (bodyChanged)
144
+ changes.body = { before: null, after: null };
145
+ return changes;
146
+ }
147
+ // Best-effort usage-span extraction: the lines of the dependent's body that
148
+ // mention the unit (by path, basename, or title), each with one line of
149
+ // context, capped. Null when nothing matches — the judge then reads the
150
+ // dependent in full via vault_read.
151
+ export function extractUsageSpan(artifactBody, unit) {
152
+ const needles = [unit.path, unit.path.split("/").pop() ?? "", unit.title ?? ""]
153
+ .map((n) => n.trim().toLowerCase())
154
+ .filter((n) => n.length > 2);
155
+ if (needles.length === 0)
156
+ return null;
157
+ const lines = artifactBody.split("\n");
158
+ const keep = new Set();
159
+ for (let i = 0; i < lines.length; i++) {
160
+ const lower = lines[i]?.toLowerCase() ?? "";
161
+ if (needles.some((n) => lower.includes(n))) {
162
+ for (const j of [i - 1, i, i + 1]) {
163
+ if (j >= 0 && j < lines.length)
164
+ keep.add(j);
165
+ }
166
+ }
167
+ }
168
+ if (keep.size === 0)
169
+ return null;
170
+ const ordered = [...keep].sort((a, b) => a - b);
171
+ const parts = [];
172
+ let prev = -2;
173
+ for (const i of ordered) {
174
+ if (i > prev + 1 && parts.length > 0)
175
+ parts.push("…");
176
+ parts.push(lines[i] ?? "");
177
+ prev = i;
178
+ }
179
+ const span = parts.join("\n");
180
+ return span.length > 1200 ? `${span.slice(0, 1200)}…` : span;
181
+ }
182
+ //# sourceMappingURL=tier2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier2.js","sourceRoot":"","sources":["../../src/curation/tier2.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,12 @@ export interface LoadedDoc {
8
8
  export declare function loadDocuments(vaultRoot: string): Promise<Result<LoadedDoc[], Error>>;
9
9
  export declare function extractLinks(content: string): string[];
10
10
  export declare function resolveLink(rawTarget: string, fromPath: string, byPath: Set<string>, byBasename: Map<string, string>): string | null;
11
- export declare function buildPathIndexes(docs: LoadedDoc[]): {
11
+ export declare function buildPathIndexes(docs: Pick<LoadedDoc, "path">[]): {
12
12
  byPath: Set<string>;
13
13
  byBasename: Map<string, string>;
14
14
  };
15
+ export declare function outgoingLinkTargets(content: string, fromPath: string, indexes: {
16
+ byPath: Set<string>;
17
+ byBasename: Map<string, string>;
18
+ }): string[];
15
19
  //# sourceMappingURL=vault-docs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault-docs.d.ts","sourceRoot":"","sources":["../../src/curation/vault-docs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAM,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnG,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAOhB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAKD,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,CAoB1F;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBtD;AAMD,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EACnB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GAAG,IAAI,CAYf;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG;IACnD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAQA"}
1
+ {"version":3,"file":"vault-docs.d.ts","sourceRoot":"","sources":["../../src/curation/vault-docs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAM,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnG,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAOhB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAKD,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,CAoB1F;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBtD;AAMD,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EACnB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GAAG,IAAI,CAYf;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG;IACjE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAQA;AAOD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAChE,MAAM,EAAE,CAOV"}
@@ -21,7 +21,7 @@ export async function loadDocuments(vaultRoot) {
21
21
  const resolved = resolveVaultPath(vaultRoot, relPath);
22
22
  if (!resolved.ok)
23
23
  continue;
24
- const file = await readFile(resolved.value);
24
+ const file = await readFile(resolved.value.absPath);
25
25
  if (!file.ok)
26
26
  continue;
27
27
  const parsed = parseDocument(file.value);
@@ -88,4 +88,18 @@ export function buildPathIndexes(docs) {
88
88
  }
89
89
  return { byPath, byBasename };
90
90
  }
91
+ // The distinct resolved in-vault link targets of one document body, given the
92
+ // known-path universe — the producer side of the materialized inbound-link
93
+ // graph (#8, index-db.ts doc_links). Uses the SAME extraction and resolution
94
+ // as lint's buildInboundMap, so the inline orphan / deprecated-still-linked
95
+ // surfaces can never drift from the vault-global lint findings.
96
+ export function outgoingLinkTargets(content, fromPath, indexes) {
97
+ const out = new Set();
98
+ for (const raw of extractLinks(content)) {
99
+ const target = resolveLink(raw, fromPath, indexes.byPath, indexes.byBasename);
100
+ if (target && target !== fromPath)
101
+ out.add(target);
102
+ }
103
+ return [...out];
104
+ }
91
105
  //# sourceMappingURL=vault-docs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault-docs.js","sourceRoot":"","sources":["../../src/curation/vault-docs.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,qBAAqB;AAErB,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAoB,EAAE,EAAsC,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAe5E,0EAA0E;AAC1E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB;IACnD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,SAAS;QAC3B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,SAAS;QACzB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;YACrC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;SACpC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtD,kEAAkE;QAClE,MAAM,GAAG,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,uCAAuC;AACvC,MAAM,UAAU,WAAW,CACzB,SAAiB,EACjB,QAAgB,EAChB,MAAmB,EACnB,UAA+B;IAE/B,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAElE,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5D,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,uEAAuE;AACvE,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAIhD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"vault-docs.js","sourceRoot":"","sources":["../../src/curation/vault-docs.ts"],"names":[],"mappings":"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"}
@@ -95,9 +95,13 @@ function extractQuestions(parsed) {
95
95
  // Validates each raw question and maps survivors to `Question` records with a
96
96
  // stable id and origin "generated". Reused for both the first call and the
97
97
  // top-up call. Rejects: bad tier, empty question/answer, empty or
98
- // out-of-subgraph expected_sources, and trivial yes/no answers.
98
+ // out-of-subgraph expected_sources, trivial answers (see isTrivial), and
99
+ // intra-call duplicates — two byte-identical questions from one generator
100
+ // call hash to the same id, and both surviving would inflate
101
+ // tier_counts_produced (#102).
99
102
  function validateAndMap(rawQuestions, validNodes) {
100
103
  const out = [];
104
+ const seen = new Set();
101
105
  for (const raw of rawQuestions) {
102
106
  if (typeof raw !== "object" || raw === null)
103
107
  continue;
@@ -117,11 +121,15 @@ function validateAndMap(rawQuestions, validNodes) {
117
121
  continue;
118
122
  if (!sources.every((s) => typeof s === "string" && validNodes.has(s)))
119
123
  continue;
120
- if (isTrivial(question, answer))
124
+ if (isTrivial(tier, answer))
121
125
  continue;
122
126
  const expectedSources = sources;
127
+ const id = questionId(tier, question, expectedSources);
128
+ if (seen.has(id))
129
+ continue;
130
+ seen.add(id);
123
131
  out.push({
124
- id: questionId(tier, question, expectedSources),
132
+ id,
125
133
  tier,
126
134
  question,
127
135
  expected_answer: answer,
@@ -188,9 +196,18 @@ function renderTopUpPrompt(sg, shortfall) {
188
196
  .join(" and ");
189
197
  return `Subgraph docs:\n\n${docs}\n\nYou previously produced too few of some tiers. Produce exactly ${wanted} questions, same rules. Do not produce any other tiers.`;
190
198
  }
191
- function isTrivial(_question, answer) {
199
+ // Bare yes/no answers are trivial on every tier. The length floor is
200
+ // tier-aware (#102): retrieval questions legitimately have short factual
201
+ // answers ("3", "$5", "EU") that a flat < 3 cutoff silently discarded, while
202
+ // cross_reference/contradiction answers that short cannot possibly relate two
203
+ // documents and keep the stricter floor.
204
+ function isTrivial(tier, answer) {
192
205
  const a = answer.trim().toLowerCase();
193
- return a === "yes" || a === "no" || a.length < 3;
206
+ if (a === "yes" || a === "no")
207
+ return true;
208
+ if (tier === "retrieval")
209
+ return false;
210
+ return a.length < 3;
194
211
  }
195
212
  function questionId(tier, question, sources) {
196
213
  const h = createHash("sha256");
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/eval/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/eval/generate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"AA6DA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"AAqEA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB7D"}