@descryy/core 0.4.0 → 0.5.1

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 (361) hide show
  1. package/dist/budget/reply.d.ts +11 -46
  2. package/dist/budget/reply.d.ts.map +1 -1
  3. package/dist/budget/reply.js +10 -39
  4. package/dist/budget/reply.js.map +1 -1
  5. package/dist/budget/size.d.ts +2 -21
  6. package/dist/budget/size.d.ts.map +1 -1
  7. package/dist/budget/size.js +3 -24
  8. package/dist/budget/size.js.map +1 -1
  9. package/dist/capabilities/preconditions.d.ts +7 -68
  10. package/dist/capabilities/preconditions.d.ts.map +1 -1
  11. package/dist/capabilities/preconditions.js +6 -57
  12. package/dist/capabilities/preconditions.js.map +1 -1
  13. package/dist/contracts/engine.d.ts +23 -11
  14. package/dist/contracts/engine.d.ts.map +1 -1
  15. package/dist/contracts/engine.js +23 -11
  16. package/dist/contracts/engine.js.map +1 -1
  17. package/dist/contracts/orphans.d.ts +18 -122
  18. package/dist/contracts/orphans.d.ts.map +1 -1
  19. package/dist/contracts/orphans.js +36 -134
  20. package/dist/contracts/orphans.js.map +1 -1
  21. package/dist/contracts/paths.d.ts +4 -114
  22. package/dist/contracts/paths.d.ts.map +1 -1
  23. package/dist/contracts/paths.js +7 -140
  24. package/dist/contracts/paths.js.map +1 -1
  25. package/dist/contracts/shapes.d.ts +13 -66
  26. package/dist/contracts/shapes.d.ts.map +1 -1
  27. package/dist/contracts/shapes.js +20 -91
  28. package/dist/contracts/shapes.js.map +1 -1
  29. package/dist/governance/budget.d.ts +12 -48
  30. package/dist/governance/budget.d.ts.map +1 -1
  31. package/dist/governance/budget.js +12 -48
  32. package/dist/governance/budget.js.map +1 -1
  33. package/dist/governance/candidate-boundary.d.ts +4 -32
  34. package/dist/governance/candidate-boundary.d.ts.map +1 -1
  35. package/dist/governance/candidate-boundary.js +4 -32
  36. package/dist/governance/candidate-boundary.js.map +1 -1
  37. package/dist/governance/escalation.d.ts +7 -45
  38. package/dist/governance/escalation.d.ts.map +1 -1
  39. package/dist/governance/escalation.js +7 -45
  40. package/dist/governance/escalation.js.map +1 -1
  41. package/dist/governance/fact-boundary.d.ts +7 -49
  42. package/dist/governance/fact-boundary.d.ts.map +1 -1
  43. package/dist/governance/fact-boundary.js +5 -43
  44. package/dist/governance/fact-boundary.js.map +1 -1
  45. package/dist/governance/finding-funnel.d.ts +11 -72
  46. package/dist/governance/finding-funnel.d.ts.map +1 -1
  47. package/dist/governance/finding-funnel.js +9 -68
  48. package/dist/governance/finding-funnel.js.map +1 -1
  49. package/dist/graph/build.d.ts +9 -90
  50. package/dist/graph/build.d.ts.map +1 -1
  51. package/dist/graph/build.js +15 -62
  52. package/dist/graph/build.js.map +1 -1
  53. package/dist/graph/cross-language.d.ts +4 -43
  54. package/dist/graph/cross-language.d.ts.map +1 -1
  55. package/dist/graph/cross-language.js +9 -77
  56. package/dist/graph/cross-language.js.map +1 -1
  57. package/dist/graph/merge.d.ts +8 -88
  58. package/dist/graph/merge.d.ts.map +1 -1
  59. package/dist/graph/merge.js +9 -93
  60. package/dist/graph/merge.js.map +1 -1
  61. package/dist/graph/observed-tests.d.ts +7 -68
  62. package/dist/graph/observed-tests.d.ts.map +1 -1
  63. package/dist/graph/observed-tests.js +5 -60
  64. package/dist/graph/observed-tests.js.map +1 -1
  65. package/dist/graph/persist.d.ts +2 -25
  66. package/dist/graph/persist.d.ts.map +1 -1
  67. package/dist/graph/persist.js +2 -25
  68. package/dist/graph/persist.js.map +1 -1
  69. package/dist/graph/runtime-confirmation.d.ts +14 -91
  70. package/dist/graph/runtime-confirmation.d.ts.map +1 -1
  71. package/dist/graph/runtime-confirmation.js +19 -103
  72. package/dist/graph/runtime-confirmation.js.map +1 -1
  73. package/dist/ledger/mint.d.ts +9 -43
  74. package/dist/ledger/mint.d.ts.map +1 -1
  75. package/dist/ledger/mint.js +15 -65
  76. package/dist/ledger/mint.js.map +1 -1
  77. package/dist/ledger/resolve.d.ts +13 -81
  78. package/dist/ledger/resolve.d.ts.map +1 -1
  79. package/dist/ledger/resolve.js +13 -76
  80. package/dist/ledger/resolve.js.map +1 -1
  81. package/dist/multipr/fingerprint.d.ts +5 -46
  82. package/dist/multipr/fingerprint.d.ts.map +1 -1
  83. package/dist/multipr/fingerprint.js +22 -74
  84. package/dist/multipr/fingerprint.js.map +1 -1
  85. package/dist/multipr/hidden-dependency.d.ts +13 -73
  86. package/dist/multipr/hidden-dependency.d.ts.map +1 -1
  87. package/dist/multipr/hidden-dependency.js +12 -63
  88. package/dist/multipr/hidden-dependency.js.map +1 -1
  89. package/dist/multipr/mechanical.d.ts +25 -160
  90. package/dist/multipr/mechanical.d.ts.map +1 -1
  91. package/dist/multipr/mechanical.js +21 -137
  92. package/dist/multipr/mechanical.js.map +1 -1
  93. package/dist/multipr/migration-heads.d.ts +18 -105
  94. package/dist/multipr/migration-heads.d.ts.map +1 -1
  95. package/dist/multipr/migration-heads.js +15 -84
  96. package/dist/multipr/migration-heads.js.map +1 -1
  97. package/dist/multipr/overlap.d.ts +16 -94
  98. package/dist/multipr/overlap.d.ts.map +1 -1
  99. package/dist/multipr/overlap.js +25 -105
  100. package/dist/multipr/overlap.js.map +1 -1
  101. package/dist/multipr/scope-store.d.ts +15 -80
  102. package/dist/multipr/scope-store.d.ts.map +1 -1
  103. package/dist/multipr/scope-store.js +17 -87
  104. package/dist/multipr/scope-store.js.map +1 -1
  105. package/dist/multipr/superseded.d.ts +10 -95
  106. package/dist/multipr/superseded.d.ts.map +1 -1
  107. package/dist/multipr/superseded.js +7 -60
  108. package/dist/multipr/superseded.js.map +1 -1
  109. package/dist/query/confirmed-facts.d.ts +12 -58
  110. package/dist/query/confirmed-facts.d.ts.map +1 -1
  111. package/dist/query/confirmed-facts.js +8 -47
  112. package/dist/query/confirmed-facts.js.map +1 -1
  113. package/dist/query/declared-value-closure.d.ts +13 -104
  114. package/dist/query/declared-value-closure.d.ts.map +1 -1
  115. package/dist/query/declared-value-closure.js +15 -104
  116. package/dist/query/declared-value-closure.js.map +1 -1
  117. package/dist/query/memory.d.ts +4 -16
  118. package/dist/query/memory.d.ts.map +1 -1
  119. package/dist/query/memory.js +9 -22
  120. package/dist/query/memory.js.map +1 -1
  121. package/dist/query/prominence.d.ts +6 -55
  122. package/dist/query/prominence.d.ts.map +1 -1
  123. package/dist/query/prominence.js +6 -55
  124. package/dist/query/prominence.js.map +1 -1
  125. package/dist/query/provider.d.ts +27 -93
  126. package/dist/query/provider.d.ts.map +1 -1
  127. package/dist/query/provider.js +8 -29
  128. package/dist/query/provider.js.map +1 -1
  129. package/dist/query/queries.d.ts +15 -65
  130. package/dist/query/queries.d.ts.map +1 -1
  131. package/dist/query/queries.js +30 -104
  132. package/dist/query/queries.js.map +1 -1
  133. package/dist/query/refusal-fetch.d.ts +8 -85
  134. package/dist/query/refusal-fetch.d.ts.map +1 -1
  135. package/dist/query/refusal-fetch.js +11 -93
  136. package/dist/query/refusal-fetch.js.map +1 -1
  137. package/dist/query/refusal-questions.d.ts +17 -92
  138. package/dist/query/refusal-questions.d.ts.map +1 -1
  139. package/dist/query/refusal-questions.js +14 -78
  140. package/dist/query/refusal-questions.js.map +1 -1
  141. package/dist/query/resolution-floor.d.ts +3 -23
  142. package/dist/query/resolution-floor.d.ts.map +1 -1
  143. package/dist/query/resolution-floor.js +3 -23
  144. package/dist/query/resolution-floor.js.map +1 -1
  145. package/dist/query/root-cause-score.d.ts +11 -161
  146. package/dist/query/root-cause-score.d.ts.map +1 -1
  147. package/dist/query/root-cause-score.js +6 -137
  148. package/dist/query/root-cause-score.js.map +1 -1
  149. package/dist/query/row-closure-picture.d.ts +5 -67
  150. package/dist/query/row-closure-picture.d.ts.map +1 -1
  151. package/dist/query/row-closure-picture.js +6 -67
  152. package/dist/query/row-closure-picture.js.map +1 -1
  153. package/dist/query/similar-incidents.d.ts +6 -41
  154. package/dist/query/similar-incidents.d.ts.map +1 -1
  155. package/dist/query/similar-incidents.js +15 -69
  156. package/dist/query/similar-incidents.js.map +1 -1
  157. package/dist/query/sqlite.d.ts +3 -7
  158. package/dist/query/sqlite.d.ts.map +1 -1
  159. package/dist/query/sqlite.js +9 -19
  160. package/dist/query/sqlite.js.map +1 -1
  161. package/dist/query/test-coverage.d.ts +5 -45
  162. package/dist/query/test-coverage.d.ts.map +1 -1
  163. package/dist/query/test-coverage.js +10 -53
  164. package/dist/query/test-coverage.js.map +1 -1
  165. package/dist/query/traverse.d.ts +22 -126
  166. package/dist/query/traverse.d.ts.map +1 -1
  167. package/dist/query/traverse.js +25 -126
  168. package/dist/query/traverse.js.map +1 -1
  169. package/dist/query/unresolved.d.ts +19 -164
  170. package/dist/query/unresolved.d.ts.map +1 -1
  171. package/dist/query/unresolved.js +11 -138
  172. package/dist/query/unresolved.js.map +1 -1
  173. package/dist/query/verification-status.d.ts +12 -109
  174. package/dist/query/verification-status.d.ts.map +1 -1
  175. package/dist/query/verification-status.js +9 -99
  176. package/dist/query/verification-status.js.map +1 -1
  177. package/dist/recording/migrate.d.ts +4 -10
  178. package/dist/recording/migrate.d.ts.map +1 -1
  179. package/dist/recording/migrate.js +4 -10
  180. package/dist/recording/migrate.js.map +1 -1
  181. package/dist/recording/reader.d.ts +2 -7
  182. package/dist/recording/reader.d.ts.map +1 -1
  183. package/dist/recording/reader.js +2 -7
  184. package/dist/recording/reader.js.map +1 -1
  185. package/dist/recording/redact.d.ts +6 -57
  186. package/dist/recording/redact.d.ts.map +1 -1
  187. package/dist/recording/redact.js +8 -64
  188. package/dist/recording/redact.js.map +1 -1
  189. package/dist/recording/schema.d.ts +3 -38
  190. package/dist/recording/schema.d.ts.map +1 -1
  191. package/dist/recording/schema.js +3 -38
  192. package/dist/recording/schema.js.map +1 -1
  193. package/dist/recording/writer.d.ts +11 -74
  194. package/dist/recording/writer.d.ts.map +1 -1
  195. package/dist/recording/writer.js +3 -43
  196. package/dist/recording/writer.js.map +1 -1
  197. package/dist/scoping/fanout.d.ts +6 -68
  198. package/dist/scoping/fanout.d.ts.map +1 -1
  199. package/dist/scoping/fanout.js +6 -68
  200. package/dist/scoping/fanout.js.map +1 -1
  201. package/dist/scoping/score.d.ts +20 -70
  202. package/dist/scoping/score.d.ts.map +1 -1
  203. package/dist/scoping/score.js +20 -70
  204. package/dist/scoping/score.js.map +1 -1
  205. package/dist/scoping/tiers.d.ts +4 -16
  206. package/dist/scoping/tiers.d.ts.map +1 -1
  207. package/dist/scoping/tiers.js +4 -16
  208. package/dist/scoping/tiers.js.map +1 -1
  209. package/dist/scoping/traverse.d.ts +3 -25
  210. package/dist/scoping/traverse.d.ts.map +1 -1
  211. package/dist/scoping/traverse.js +14 -49
  212. package/dist/scoping/traverse.js.map +1 -1
  213. package/dist/scoping/weights.d.ts +10 -74
  214. package/dist/scoping/weights.d.ts.map +1 -1
  215. package/dist/scoping/weights.js +14 -86
  216. package/dist/scoping/weights.js.map +1 -1
  217. package/dist/sources/confirmed/incidents.d.ts +5 -35
  218. package/dist/sources/confirmed/incidents.d.ts.map +1 -1
  219. package/dist/sources/confirmed/incidents.js +14 -48
  220. package/dist/sources/confirmed/incidents.js.map +1 -1
  221. package/dist/sources/git/diff.d.ts +93 -63
  222. package/dist/sources/git/diff.d.ts.map +1 -1
  223. package/dist/sources/git/diff.js +200 -81
  224. package/dist/sources/git/diff.js.map +1 -1
  225. package/dist/sources/git/env.d.ts +7 -0
  226. package/dist/sources/git/env.d.ts.map +1 -1
  227. package/dist/sources/git/env.js +10 -11
  228. package/dist/sources/git/env.js.map +1 -1
  229. package/dist/sources/git/history.d.ts +64 -84
  230. package/dist/sources/git/history.d.ts.map +1 -1
  231. package/dist/sources/git/history.js +141 -112
  232. package/dist/sources/git/history.js.map +1 -1
  233. package/dist/sources/git/incidents.d.ts +13 -75
  234. package/dist/sources/git/incidents.d.ts.map +1 -1
  235. package/dist/sources/git/incidents.js +21 -91
  236. package/dist/sources/git/incidents.js.map +1 -1
  237. package/dist/sources/git/index.d.ts +5 -3
  238. package/dist/sources/git/index.d.ts.map +1 -1
  239. package/dist/sources/git/index.js +3 -2
  240. package/dist/sources/git/index.js.map +1 -1
  241. package/dist/sources/git/source.d.ts +9 -79
  242. package/dist/sources/git/source.d.ts.map +1 -1
  243. package/dist/sources/git/source.js +33 -133
  244. package/dist/sources/git/source.js.map +1 -1
  245. package/dist/sources/migrations/across-change.d.ts +94 -0
  246. package/dist/sources/migrations/across-change.d.ts.map +1 -0
  247. package/dist/sources/migrations/across-change.js +278 -0
  248. package/dist/sources/migrations/across-change.js.map +1 -0
  249. package/dist/sources/migrations/dialects.d.ts +20 -36
  250. package/dist/sources/migrations/dialects.d.ts.map +1 -1
  251. package/dist/sources/migrations/dialects.js +11 -36
  252. package/dist/sources/migrations/dialects.js.map +1 -1
  253. package/dist/sources/migrations/index.d.ts +3 -1
  254. package/dist/sources/migrations/index.d.ts.map +1 -1
  255. package/dist/sources/migrations/index.js +2 -1
  256. package/dist/sources/migrations/index.js.map +1 -1
  257. package/dist/sources/migrations/read.d.ts +14 -79
  258. package/dist/sources/migrations/read.d.ts.map +1 -1
  259. package/dist/sources/migrations/read.js +14 -89
  260. package/dist/sources/migrations/read.js.map +1 -1
  261. package/dist/sources/workspace/workspace.d.ts +6 -42
  262. package/dist/sources/workspace/workspace.d.ts.map +1 -1
  263. package/dist/sources/workspace/workspace.js +10 -53
  264. package/dist/sources/workspace/workspace.js.map +1 -1
  265. package/dist/store/driver/driver.d.ts +9 -38
  266. package/dist/store/driver/driver.d.ts.map +1 -1
  267. package/dist/store/driver/driver.js +4 -22
  268. package/dist/store/driver/driver.js.map +1 -1
  269. package/dist/store/driver/node-sqlite.d.ts +3 -12
  270. package/dist/store/driver/node-sqlite.d.ts.map +1 -1
  271. package/dist/store/driver/node-sqlite.js +4 -18
  272. package/dist/store/driver/node-sqlite.js.map +1 -1
  273. package/dist/store/index.d.ts +2 -7
  274. package/dist/store/index.d.ts.map +1 -1
  275. package/dist/store/index.js +4 -10
  276. package/dist/store/index.js.map +1 -1
  277. package/dist/store/migrate.d.ts +14 -50
  278. package/dist/store/migrate.d.ts.map +1 -1
  279. package/dist/store/migrate.js +15 -52
  280. package/dist/store/migrate.js.map +1 -1
  281. package/dist/store/reader.d.ts +19 -84
  282. package/dist/store/reader.d.ts.map +1 -1
  283. package/dist/store/reader.js +25 -92
  284. package/dist/store/reader.js.map +1 -1
  285. package/dist/store/schema.d.ts +14 -76
  286. package/dist/store/schema.d.ts.map +1 -1
  287. package/dist/store/schema.js +14 -76
  288. package/dist/store/schema.js.map +1 -1
  289. package/dist/store/writer.d.ts +14 -88
  290. package/dist/store/writer.d.ts.map +1 -1
  291. package/dist/store/writer.js +29 -123
  292. package/dist/store/writer.js.map +1 -1
  293. package/dist/tiers/certify.d.ts +46 -281
  294. package/dist/tiers/certify.d.ts.map +1 -1
  295. package/dist/tiers/certify.js +46 -226
  296. package/dist/tiers/certify.js.map +1 -1
  297. package/dist/tiers/ladder.d.ts +7 -51
  298. package/dist/tiers/ladder.d.ts.map +1 -1
  299. package/dist/tiers/ladder.js +13 -89
  300. package/dist/tiers/ladder.js.map +1 -1
  301. package/dist/validation/attributes.d.ts +6 -55
  302. package/dist/validation/attributes.d.ts.map +1 -1
  303. package/dist/validation/attributes.js +6 -55
  304. package/dist/validation/attributes.js.map +1 -1
  305. package/dist/validation/config-graph.d.ts +7 -56
  306. package/dist/validation/config-graph.d.ts.map +1 -1
  307. package/dist/validation/config-graph.js +15 -61
  308. package/dist/validation/config-graph.js.map +1 -1
  309. package/dist/validation/env.d.ts +47 -8
  310. package/dist/validation/env.d.ts.map +1 -1
  311. package/dist/validation/env.js +119 -31
  312. package/dist/validation/env.js.map +1 -1
  313. package/dist/validation/index.d.ts +2 -0
  314. package/dist/validation/index.d.ts.map +1 -1
  315. package/dist/validation/index.js +1 -0
  316. package/dist/validation/index.js.map +1 -1
  317. package/dist/validation/join-substitution.d.ts +22 -120
  318. package/dist/validation/join-substitution.d.ts.map +1 -1
  319. package/dist/validation/join-substitution.js +13 -90
  320. package/dist/validation/join-substitution.js.map +1 -1
  321. package/dist/validation/migration-integrity.d.ts +11 -72
  322. package/dist/validation/migration-integrity.d.ts.map +1 -1
  323. package/dist/validation/migration-integrity.js +16 -79
  324. package/dist/validation/migration-integrity.js.map +1 -1
  325. package/dist/validation/migrations.d.ts +22 -101
  326. package/dist/validation/migrations.d.ts.map +1 -1
  327. package/dist/validation/migrations.js +19 -83
  328. package/dist/validation/migrations.js.map +1 -1
  329. package/dist/validation/nodes.d.ts +3 -1
  330. package/dist/validation/nodes.d.ts.map +1 -1
  331. package/dist/validation/nodes.js +3 -1
  332. package/dist/validation/nodes.js.map +1 -1
  333. package/dist/validation/orm-registration.d.ts +106 -0
  334. package/dist/validation/orm-registration.d.ts.map +1 -0
  335. package/dist/validation/orm-registration.js +191 -0
  336. package/dist/validation/orm-registration.js.map +1 -0
  337. package/dist/validation/rollback.d.ts +10 -73
  338. package/dist/validation/rollback.d.ts.map +1 -1
  339. package/dist/validation/rollback.js +15 -82
  340. package/dist/validation/rollback.js.map +1 -1
  341. package/dist/validation/route-drift.d.ts +9 -62
  342. package/dist/validation/route-drift.d.ts.map +1 -1
  343. package/dist/validation/route-drift.js +7 -52
  344. package/dist/validation/route-drift.js.map +1 -1
  345. package/dist/validation/sources.d.ts +16 -94
  346. package/dist/validation/sources.d.ts.map +1 -1
  347. package/dist/validation/sources.js +51 -147
  348. package/dist/validation/sources.js.map +1 -1
  349. package/dist/worker/pool.d.ts +6 -45
  350. package/dist/worker/pool.d.ts.map +1 -1
  351. package/dist/worker/pool.js +5 -42
  352. package/dist/worker/pool.js.map +1 -1
  353. package/dist/worker/protocol.d.ts +7 -20
  354. package/dist/worker/protocol.d.ts.map +1 -1
  355. package/dist/worker/protocol.js +3 -10
  356. package/dist/worker/protocol.js.map +1 -1
  357. package/dist/worker/traversal.worker.d.ts +2 -21
  358. package/dist/worker/traversal.worker.d.ts.map +1 -1
  359. package/dist/worker/traversal.worker.js +4 -23
  360. package/dist/worker/traversal.worker.js.map +1 -1
  361. package/package.json +11 -2
@@ -1,57 +1,7 @@
1
1
  /**
2
- * Runtime confirmation — architecture §11B.3, the R4 half of the moat.
3
- *
4
- * > *"A purely static code-graph tool is capped at R3 permanently. It has no
5
- * > runtime. This is the one accuracy source that cannot be copied without
6
- * > also building the testing half, and it should be treated as the core
7
- * > technical moat rather than the graph itself."* — §11B.3
8
- *
9
- * The schema has held `observed_edges` and `edge_corrections` since the store
10
- * was first written, both on the EARNED side of DEC-017's partition, both
11
- * carrying a comment explaining why they cannot be recomputed. **Nothing read
12
- * or wrote either one.** This module is what they were for.
13
- *
14
- * ## The three arrows §11B.3 draws, and where each one lands
15
- *
16
- * | Observation | What happens |
17
- * | --- | --- |
18
- * | confirms an edge the graph already has, below R4 | **promote** to R4, `observed_by_run` set |
19
- * | confirms an edge the graph does not have | **create** it at R4 — "recall gap closed" |
20
- * | denies an edge the graph has, below R4 | **correct** it: an `edge_corrections` row, and a {@link GraphDefectRecord} out |
21
- *
22
- * ## Why a denial demotes confidence and does not delete the edge
23
- *
24
- * `edges` is DERIVED. Deleting a row there is undone by the next index, which
25
- * regenerates the identical guess from the identical source and has no memory
26
- * of the run that disproved it — the correction would evaporate exactly when
27
- * it was needed again. §11B.5 already states the answer: corrections are
28
- * *"stored as graph overrides keyed by stable node IDs, surviving re-index and
29
- * adapter upgrades."* So the durable statement is the `edge_corrections` row,
30
- * and the effect on the derived graph is a confidence demotion that
31
- * {@link reapplyEarnedOverlays} re-applies after every rebuild.
32
- *
33
- * Demotion rather than deletion is also DEC-284's own stated direction — *"it
34
- * fails toward demote, which is the safe direction"* — and it keeps rule 2
35
- * intact from the other side: a wrong edge stops being load-bearing without
36
- * the graph asserting a *new* fact (that the call does not exist) that no
37
- * single observation actually establishes.
38
- *
39
- * ## What this module refuses to do
40
- *
41
- * - **Invent a node.** An observation naming a node this graph does not hold
42
- * is refused with its reason, never created. Rule 2, and the same posture
43
- * `correlateExecution` takes one layer down for an ambiguous resolution.
44
- * - **Adjudicate R4 against R4.** A denial against an edge already at R4 is
45
- * two runtime observations disagreeing across time — a staleness question
46
- * whose policy is decided (DEC-284 + a 7-day backstop) but whose consumer
47
- * does not exist yet. `contradiction.ts` excludes the case by construction
48
- * and this module reports it as {@link RuntimeConfirmationResult.staleR4}
49
- * rather than laundering it through a path that looks decided.
50
- * - **Judge a finding.** Resolution has no opinion on confidence (RT-027).
51
- * Nothing here reads or writes a finding, a hypothesis or a category.
52
- *
53
- * @see `packages/ir/src/contradiction.ts` — the pure detection this persists.
54
- * @see `documents/plans/ai-layer-plan.md` §10 — *"the valuable half."*
2
+ * Runtime confirmation (§11B.3, the R4 moat): what `observed_edges`/`edge_corrections` (EARNED, DEC-017) were for.
3
+ * Confirms → promote/create at R4; denies → demote confidence, never delete (edges are DERIVED; DEC-284 fails toward demote).
4
+ * Refuses to invent nodes (rule 2), adjudicate R4-vs-R4 (`staleR4`), or judge a finding (RT-027).
55
5
  */
56
6
  import { type EdgeType, type GraphDefectRecord, type RuntimeEdgeObservation } from "@descryy/ir";
57
7
  import type { SqlDriver } from "../store/driver/driver.ts";
@@ -104,39 +54,18 @@ export interface EdgeCorrectionRow {
104
54
  readonly reason: string;
105
55
  readonly correctedAt: number;
106
56
  }
107
- /**
108
- * A clock, injected so a test can pin `observed_at`/`corrected_at`. Same shape
109
- * the store's own tests already use.
110
- */
57
+ /** Injected clock so a test can pin `observed_at`/`corrected_at`. */
111
58
  export interface Clock {
112
59
  now(): number;
113
60
  }
114
- /**
115
- * Apply a run's edge observations to the graph, writing the earned record and
116
- * projecting it onto the derived edges in one transaction.
117
- *
118
- * Pure with respect to its inputs and total over them: every observation lands
119
- * in exactly one of the six result arrays, so a caller can account for all of
120
- * them without inspecting the store. Never throws for an observation it cannot
121
- * act on — that is a refusal, per the five-result-states rule the tool contract
122
- * applies one layer up.
123
- */
61
+ /** Applies a run's edge observations, writing the earned record and projecting
62
+ * it onto derived edges in one transaction. Every observation lands in exactly
63
+ * one result array; never throws — an unactionable one is a refusal. */
124
64
  export declare function applyRuntimeObservations(driver: SqlDriver, input: RuntimeConfirmationInput, clock?: Clock): RuntimeConfirmationResult;
125
- /**
126
- * Re-project the EARNED ledgers onto a freshly rebuilt derived graph.
127
- *
128
- * **This is what makes the DEC-017 partition pay.** `dropDerived()` removes
129
- * `edges` and leaves `observed_edges`/`edge_corrections` standing; a re-index
130
- * then regenerates the same static guesses, at their static resolutions, with
131
- * no memory of any run. Without this call the moat is silently reset on every
132
- * rebuild — the edges would be back at R2 and the R4 rows would sit in a table
133
- * nothing consults, which is indistinguishable from never having observed
134
- * anything.
135
- *
136
- * Observations whose endpoints no longer exist are reported as refusals rather
137
- * than recreated: the code moved, and re-minting a node from an old run's
138
- * record would be the same rule-2 violation one rebuild later.
139
- */
65
+ /** Re-projects the EARNED ledgers onto a freshly rebuilt derived graph — what
66
+ * makes the DEC-017 partition pay. Without this, a re-index silently resets the
67
+ * moat (edges back at R2, R4 rows unconsulted). Endpoints no longer present
68
+ * are refused, not recreated — re-minting from an old run repeats the rule-2 violation. */
140
69
  export declare function reapplyEarnedOverlays(driver: SqlDriver): RuntimeConfirmationResult;
141
70
  /** Every row of the EARNED R4 ledger, oldest first, optionally for one run. */
142
71
  export declare function observedEdges(driver: SqlDriver, options?: {
@@ -144,15 +73,9 @@ export declare function observedEdges(driver: SqlDriver, options?: {
144
73
  }): ObservedEdgeRow[];
145
74
  /** Every row of the EARNED correction ledger (§11B.5), oldest first. */
146
75
  export declare function edgeCorrections(driver: SqlDriver): EdgeCorrectionRow[];
147
- /**
148
- * Record a human's verdict on an edge — §11B.5's other producer.
149
- *
150
- * *"On one team's codebase, a few hundred corrections buy more accuracy than a
151
- * quarter of parser work."* Same table the runtime's own denials land in, on
152
- * purpose: an edge is wrong or it is not, and who noticed does not change what
153
- * the graph should do about it. The `reason` is the correction's provenance and
154
- * is never summarised.
155
- */
76
+ /** Records a human's verdict on an edge (§11B.5's other producer) — same table
77
+ * the runtime's own denials land in; who noticed doesn't change what the graph
78
+ * does. `reason` is provenance, never summarised. */
156
79
  export declare function recordEdgeCorrection(driver: SqlDriver, input: {
157
80
  readonly from: string;
158
81
  readonly to: string;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-confirmation.d.ts","sourceRoot":"","sources":["../../src/graph/runtime-confirmation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-confirmation.d.ts","sourceRoot":"","sources":["../../src/graph/runtime-confirmation.ts"],"names":[],"mappings":"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"}
@@ -1,70 +1,13 @@
1
1
  /**
2
- * Runtime confirmation — architecture §11B.3, the R4 half of the moat.
3
- *
4
- * > *"A purely static code-graph tool is capped at R3 permanently. It has no
5
- * > runtime. This is the one accuracy source that cannot be copied without
6
- * > also building the testing half, and it should be treated as the core
7
- * > technical moat rather than the graph itself."* — §11B.3
8
- *
9
- * The schema has held `observed_edges` and `edge_corrections` since the store
10
- * was first written, both on the EARNED side of DEC-017's partition, both
11
- * carrying a comment explaining why they cannot be recomputed. **Nothing read
12
- * or wrote either one.** This module is what they were for.
13
- *
14
- * ## The three arrows §11B.3 draws, and where each one lands
15
- *
16
- * | Observation | What happens |
17
- * | --- | --- |
18
- * | confirms an edge the graph already has, below R4 | **promote** to R4, `observed_by_run` set |
19
- * | confirms an edge the graph does not have | **create** it at R4 — "recall gap closed" |
20
- * | denies an edge the graph has, below R4 | **correct** it: an `edge_corrections` row, and a {@link GraphDefectRecord} out |
21
- *
22
- * ## Why a denial demotes confidence and does not delete the edge
23
- *
24
- * `edges` is DERIVED. Deleting a row there is undone by the next index, which
25
- * regenerates the identical guess from the identical source and has no memory
26
- * of the run that disproved it — the correction would evaporate exactly when
27
- * it was needed again. §11B.5 already states the answer: corrections are
28
- * *"stored as graph overrides keyed by stable node IDs, surviving re-index and
29
- * adapter upgrades."* So the durable statement is the `edge_corrections` row,
30
- * and the effect on the derived graph is a confidence demotion that
31
- * {@link reapplyEarnedOverlays} re-applies after every rebuild.
32
- *
33
- * Demotion rather than deletion is also DEC-284's own stated direction — *"it
34
- * fails toward demote, which is the safe direction"* — and it keeps rule 2
35
- * intact from the other side: a wrong edge stops being load-bearing without
36
- * the graph asserting a *new* fact (that the call does not exist) that no
37
- * single observation actually establishes.
38
- *
39
- * ## What this module refuses to do
40
- *
41
- * - **Invent a node.** An observation naming a node this graph does not hold
42
- * is refused with its reason, never created. Rule 2, and the same posture
43
- * `correlateExecution` takes one layer down for an ambiguous resolution.
44
- * - **Adjudicate R4 against R4.** A denial against an edge already at R4 is
45
- * two runtime observations disagreeing across time — a staleness question
46
- * whose policy is decided (DEC-284 + a 7-day backstop) but whose consumer
47
- * does not exist yet. `contradiction.ts` excludes the case by construction
48
- * and this module reports it as {@link RuntimeConfirmationResult.staleR4}
49
- * rather than laundering it through a path that looks decided.
50
- * - **Judge a finding.** Resolution has no opinion on confidence (RT-027).
51
- * Nothing here reads or writes a finding, a hypothesis or a category.
52
- *
53
- * @see `packages/ir/src/contradiction.ts` — the pure detection this persists.
54
- * @see `documents/plans/ai-layer-plan.md` §10 — *"the valuable half."*
2
+ * Runtime confirmation (§11B.3, the R4 moat): what `observed_edges`/`edge_corrections` (EARNED, DEC-017) were for.
3
+ * Confirms → promote/create at R4; denies → demote confidence, never delete (edges are DERIVED; DEC-284 fails toward demote).
4
+ * Refuses to invent nodes (rule 2), adjudicate R4-vs-R4 (`staleR4`), or judge a finding (RT-027).
55
5
  */
56
6
  import { edgeId } from "@descryy/ir";
57
7
  const SYSTEM_CLOCK = { now: () => Date.now() };
58
- /**
59
- * Apply a run's edge observations to the graph, writing the earned record and
60
- * projecting it onto the derived edges in one transaction.
61
- *
62
- * Pure with respect to its inputs and total over them: every observation lands
63
- * in exactly one of the six result arrays, so a caller can account for all of
64
- * them without inspecting the store. Never throws for an observation it cannot
65
- * act on — that is a refusal, per the five-result-states rule the tool contract
66
- * applies one layer up.
67
- */
8
+ /** Applies a run's edge observations, writing the earned record and projecting
9
+ * it onto derived edges in one transaction. Every observation lands in exactly
10
+ * one result array; never throws — an unactionable one is a refusal. */
68
11
  export function applyRuntimeObservations(driver, input, clock = SYSTEM_CLOCK) {
69
12
  const promoted = [];
70
13
  const created = [];
@@ -78,9 +21,8 @@ export function applyRuntimeObservations(driver, input, clock = SYSTEM_CLOCK) {
78
21
  const id = edgeId(observation.from, observation.to, observation.edgeType);
79
22
  const existing = readEdge(driver, id);
80
23
  if (observation.held) {
81
- // Both endpoints must already be nodes. Creating one would be the
82
- // graph inventing a symbol from a runtime string, which is the exact
83
- // shape rule 2 exists to forbid.
24
+ // Both endpoints must already be nodes — else the graph invents a symbol
25
+ // from a runtime string, exactly what rule 2 forbids.
84
26
  const missing = missingNode(driver, observation.from, observation.to);
85
27
  if (missing !== null) {
86
28
  refused.push({
@@ -135,21 +77,10 @@ export function applyRuntimeObservations(driver, input, clock = SYSTEM_CLOCK) {
135
77
  });
136
78
  return { promoted, created, confirmed, contradictions, staleR4, refused };
137
79
  }
138
- /**
139
- * Re-project the EARNED ledgers onto a freshly rebuilt derived graph.
140
- *
141
- * **This is what makes the DEC-017 partition pay.** `dropDerived()` removes
142
- * `edges` and leaves `observed_edges`/`edge_corrections` standing; a re-index
143
- * then regenerates the same static guesses, at their static resolutions, with
144
- * no memory of any run. Without this call the moat is silently reset on every
145
- * rebuild — the edges would be back at R2 and the R4 rows would sit in a table
146
- * nothing consults, which is indistinguishable from never having observed
147
- * anything.
148
- *
149
- * Observations whose endpoints no longer exist are reported as refusals rather
150
- * than recreated: the code moved, and re-minting a node from an old run's
151
- * record would be the same rule-2 violation one rebuild later.
152
- */
80
+ /** Re-projects the EARNED ledgers onto a freshly rebuilt derived graph — what
81
+ * makes the DEC-017 partition pay. Without this, a re-index silently resets the
82
+ * moat (edges back at R2, R4 rows unconsulted). Endpoints no longer present
83
+ * are refused, not recreated — re-minting from an old run repeats the rule-2 violation. */
153
84
  export function reapplyEarnedOverlays(driver) {
154
85
  const rows = observedEdges(driver);
155
86
  const corrections = edgeCorrections(driver).filter((c) => c.verdict === "wrong");
@@ -183,9 +114,7 @@ export function reapplyEarnedOverlays(driver) {
183
114
  }
184
115
  }
185
116
  for (const correction of corrections) {
186
- // A correction never wins over a later observation: an edge re-observed
187
- // firing is a stronger, more recent statement than the denial that
188
- // demoted it, and `observed_edges` carries the run that saw it.
117
+ // A correction never wins over a later observation firing the edge again.
189
118
  const existing = readEdge(driver, correction.edgeId);
190
119
  if (existing !== undefined && existing.resolution < 4)
191
120
  demoteEdge(driver, correction.edgeId);
@@ -224,15 +153,9 @@ export function edgeCorrections(driver) {
224
153
  correctedAt: row.corrected_at,
225
154
  }));
226
155
  }
227
- /**
228
- * Record a human's verdict on an edge — §11B.5's other producer.
229
- *
230
- * *"On one team's codebase, a few hundred corrections buy more accuracy than a
231
- * quarter of parser work."* Same table the runtime's own denials land in, on
232
- * purpose: an edge is wrong or it is not, and who noticed does not change what
233
- * the graph should do about it. The `reason` is the correction's provenance and
234
- * is never summarised.
235
- */
156
+ /** Records a human's verdict on an edge (§11B.5's other producer) — same table
157
+ * the runtime's own denials land in; who noticed doesn't change what the graph
158
+ * does. `reason` is provenance, never summarised. */
236
159
  export function recordEdgeCorrection(driver, input, clock = SYSTEM_CLOCK) {
237
160
  const id = edgeId(input.from, input.to, input.edgeType);
238
161
  driver.transaction(() => {
@@ -243,9 +166,7 @@ export function recordEdgeCorrection(driver, input, clock = SYSTEM_CLOCK) {
243
166
  });
244
167
  return { edgeId: id };
245
168
  }
246
- // ---------------------------------------------------------------------------
247
169
  // Internals.
248
- // ---------------------------------------------------------------------------
249
170
  function readEdge(driver, id) {
250
171
  return driver
251
172
  .prepare("SELECT id, resolution, observed_by_run FROM edges WHERE id = ?")
@@ -278,9 +199,7 @@ function recordCorrectionRow(driver, id, verdict, reason, now) {
278
199
  .run(id, verdict, reason, now);
279
200
  }
280
201
  function promoteEdge(driver, id, runId) {
281
- // Confidence goes to 1 with the resolution: R4 is unconditionally class A
282
- // (DEC-115), and leaving a witnessed edge at the guess's own confidence
283
- // would let a downstream ranker treat proof as inference.
202
+ // Confidence to 1 with resolution: R4 is unconditionally class A (DEC-115).
284
203
  driver
285
204
  .prepare("UPDATE edges SET resolution = 4, observed_by_run = ?, confidence = 1.0 WHERE id = ?")
286
205
  .run(runId, id);
@@ -289,11 +208,8 @@ function demoteEdge(driver, id) {
289
208
  driver.prepare("UPDATE edges SET confidence = 0.0 WHERE id = ?").run(id);
290
209
  }
291
210
  function insertEdgeAtR4(driver, id, observation, runId, commitSha) {
292
- // `run_id` must reference a real `adapter_runs` row (FK), and this edge was
293
- // produced by a runtime observation rather than by any adapter — so the pass
294
- // owns a run row of its own, created once and reused. Deleting it cascades
295
- // exactly the edges this module minted and nothing else, which is the
296
- // correct blast radius for invalidating a runtime producer.
211
+ // run_id needs a real adapter_runs row (FK); this pass owns one, created once
212
+ // and reused, so deleting it cascades exactly this module's own minted edges.
297
213
  const producerRunId = ensureRuntimeRun(driver, runId, commitSha);
298
214
  driver
299
215
  .prepare("INSERT INTO edges (id, source, target, type, resolution, confidence, produced_by, observed_by_run, attrs, run_id)" +
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-confirmation.js","sourceRoot":"","sources":["../../src/graph/runtime-confirmation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-confirmation.js","sourceRoot":"","sources":["../../src/graph/runtime-confirmation.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,12 @@
1
1
  /**
2
- * DEC-223's answer half, minting side.
3
- *
4
- * `applyConfirmedFacts` (`../query/confirmed-facts.ts`) decides *which*
5
- * refusal-ledger rows a confirmed fact answers. It deliberately does not
6
- * mint an edge — it has no target to join against, and said so in its own
7
- * header. This module owns that join.
8
- *
9
- * The confirmed base URL is testimony: it tells us the call is real, not
10
- * dynamic, and gives a human's word for what the blocked expression
11
- * evaluates to. It is **not** what identifies the endpoint. DEC-054 makes
12
- * `API_ENDPOINT` identity `METHOD + normalisedPath`, base-independent by
13
- * design — the same mechanism that lets a caller in one repository and a
14
- * route in another join on nothing but a shared path template. What
15
- * identifies the endpoint here is the row's own `attrs.path`/`attrs.method`
16
- * — the relative path adapter-typescript already read from the call site,
17
- * before the base blocked it (DEC-260's `templateSuffixAfterFirstSpan`).
18
- *
19
- * No match, no edge. A row whose candidate id is not in the supplied graph
20
- * is reported as an orphan — never guessed into existence (rule 2) and
21
- * never silently dropped (rule 5).
2
+ * DEC-223's minting side. `applyConfirmedFacts` decides which refusal rows a confirmed fact answers but mints no edge (no target to join); this module owns that join.
3
+ * Identity is `METHOD + normalisedPath` (DEC-054), base-independent — the confirmed base URL is testimony, not identity; joins on the row's own `attrs.path`/`attrs.method` instead.
4
+ * No match: reported as an orphan, never guessed into existence (rule 2) or silently dropped (rule 5).
22
5
  */
23
6
  import type { ConfirmedFact, IdentityScope, IREdge, UnresolvedRef } from "@descryy/ir";
24
7
  import type { ConfirmedFactMatch } from "../query/confirmed-facts.ts";
25
- /**
26
- * This module's own `producedBy`, on the same pattern as `git-history`'s
27
- * (`sources/git/source.ts`) — a core-owned synthetic producer, not a
28
- * language adapter. A minted edge's invalidation is scoped to this id, never
29
- * to whichever adapter produced the endpoint or the caller it joins.
30
- */
8
+ /** Own `producedBy`, same pattern as `git-history` — a core-owned synthetic
9
+ * producer, not a language adapter. Invalidation scopes to this id alone. */
31
10
  export declare const MINT_SOURCE_ID = "ledger-mint";
32
11
  export declare const MINT_SOURCE_VERSION = "0.1.0";
33
12
  export declare const MINT_PRODUCED_BY = "ledger-mint@0.1.0";
@@ -60,22 +39,9 @@ export interface EndpointLookup {
60
39
  readonly id: string;
61
40
  } | undefined;
62
41
  }
63
- /**
64
- * Join `applyConfirmedFacts`'s `answered` rows against a real endpoint graph.
65
- *
66
- * `scope` is the *caller's* identity scope (its own repo, plus the workspace
67
- * it shares with whichever repository serves the route) — `API_ENDPOINT`
68
- * being workspace-scoped means the repo half is discarded by `scopeOf`
69
- * whenever a workspace is set, so passing the caller's own repo here is
70
- * correct even though the target endpoint may live in a different one.
71
- *
72
- * `currentCommit` is the repo's `commitSha` for *this* run (`root.commitSha`
73
- * at the call site) — compared against each fact's own `confirmedAtCommit`
74
- * so a minted edge discloses whether the human answer it rests on was given
75
- * against the code as it stands today. This is the disclosure floor named in
76
- * the item this closes, not re-verification: nobody re-checks the fact
77
- * against a live source, the edge just stops reading as unconditionally
78
- * current when it isn't.
79
- */
42
+ /** Joins `applyConfirmedFacts`'s `answered` rows against a real endpoint graph.
43
+ * `scope` is the caller's own identity (`API_ENDPOINT` is workspace-scoped, so
44
+ * the repo half is discarded when a workspace is set). `currentCommit` vs each
45
+ * fact's `confirmedAtCommit` discloses staleness — never re-verifies. */
80
46
  export declare function mintEdgesFromConfirmedFacts(matches: readonly ConfirmedFactMatch[], endpoints: EndpointLookup, scope: IdentityScope, producedBy: string, currentCommit?: string): MintResult;
81
47
  //# sourceMappingURL=mint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/ledger/mint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAgBtE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,gBAAgB,sBAA6C,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,kGAAkG;IAClG,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,sGAAsG;AACtG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED,wHAAwH;AACxH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,UAAU,CAkFZ"}
1
+ {"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/ledger/mint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAStE;8EAC8E;AAC9E,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,gBAAgB,sBAA6C,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,kGAAkG;IAClG,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,sGAAsG;AACtG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED,wHAAwH;AACxH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACvD;AAED;;;0EAG0E;AAC1E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,UAAU,CAyEZ"}
@@ -1,65 +1,24 @@
1
1
  /**
2
- * DEC-223's answer half, minting side.
3
- *
4
- * `applyConfirmedFacts` (`../query/confirmed-facts.ts`) decides *which*
5
- * refusal-ledger rows a confirmed fact answers. It deliberately does not
6
- * mint an edge — it has no target to join against, and said so in its own
7
- * header. This module owns that join.
8
- *
9
- * The confirmed base URL is testimony: it tells us the call is real, not
10
- * dynamic, and gives a human's word for what the blocked expression
11
- * evaluates to. It is **not** what identifies the endpoint. DEC-054 makes
12
- * `API_ENDPOINT` identity `METHOD + normalisedPath`, base-independent by
13
- * design — the same mechanism that lets a caller in one repository and a
14
- * route in another join on nothing but a shared path template. What
15
- * identifies the endpoint here is the row's own `attrs.path`/`attrs.method`
16
- * — the relative path adapter-typescript already read from the call site,
17
- * before the base blocked it (DEC-260's `templateSuffixAfterFirstSpan`).
18
- *
19
- * No match, no edge. A row whose candidate id is not in the supplied graph
20
- * is reported as an orphan — never guessed into existence (rule 2) and
21
- * never silently dropped (rule 5).
2
+ * DEC-223's minting side. `applyConfirmedFacts` decides which refusal rows a confirmed fact answers but mints no edge (no target to join); this module owns that join.
3
+ * Identity is `METHOD + normalisedPath` (DEC-054), base-independent — the confirmed base URL is testimony, not identity; joins on the row's own `attrs.path`/`attrs.method` instead.
4
+ * No match: reported as an orphan, never guessed into existence (rule 2) or silently dropped (rule 5).
22
5
  */
23
6
  import { endpointQsp, nodeId, reliabilityCap, reliabilityNote } from "@descryy/ir";
24
- /**
25
- * The evidence a minted edge rests on: a name-level path/method match against
26
- * a real route, the same strength any other resolved `USES_API` join in this
27
- * adapter carries (`extract.ts` mints those at `resolution: 2` too) — plus
28
- * `humanAsserted: true` for the base itself, which `reliabilityCap` treats as
29
- * a second, independent ceiling. At R2 with `nameLevel: true` the structural
30
- * cap is A; `humanAsserted` pulls that down to B. Not asserted directly —
31
- * computed below, so the class actually reported is whatever the two
32
- * arguments produce, not a hardcoded "B".
33
- */
7
+ /** Name-level R2 match, same strength as any resolved `USES_API` join. `humanAsserted`
8
+ * is a second, independent ceiling — pulls the R2/nameLevel A down to B — computed
9
+ * below, never hardcoded. */
34
10
  const MINT_RESOLUTION = 2;
35
11
  const MINT_NAME_LEVEL = true;
36
12
  const MINT_CONFIDENCE = 0.9;
37
- /**
38
- * This module's own `producedBy`, on the same pattern as `git-history`'s
39
- * (`sources/git/source.ts`) — a core-owned synthetic producer, not a
40
- * language adapter. A minted edge's invalidation is scoped to this id, never
41
- * to whichever adapter produced the endpoint or the caller it joins.
42
- */
13
+ /** Own `producedBy`, same pattern as `git-history` — a core-owned synthetic
14
+ * producer, not a language adapter. Invalidation scopes to this id alone. */
43
15
  export const MINT_SOURCE_ID = "ledger-mint";
44
16
  export const MINT_SOURCE_VERSION = "0.1.0";
45
17
  export const MINT_PRODUCED_BY = `${MINT_SOURCE_ID}@${MINT_SOURCE_VERSION}`;
46
- /**
47
- * Join `applyConfirmedFacts`'s `answered` rows against a real endpoint graph.
48
- *
49
- * `scope` is the *caller's* identity scope (its own repo, plus the workspace
50
- * it shares with whichever repository serves the route) — `API_ENDPOINT`
51
- * being workspace-scoped means the repo half is discarded by `scopeOf`
52
- * whenever a workspace is set, so passing the caller's own repo here is
53
- * correct even though the target endpoint may live in a different one.
54
- *
55
- * `currentCommit` is the repo's `commitSha` for *this* run (`root.commitSha`
56
- * at the call site) — compared against each fact's own `confirmedAtCommit`
57
- * so a minted edge discloses whether the human answer it rests on was given
58
- * against the code as it stands today. This is the disclosure floor named in
59
- * the item this closes, not re-verification: nobody re-checks the fact
60
- * against a live source, the edge just stops reading as unconditionally
61
- * current when it isn't.
62
- */
18
+ /** Joins `applyConfirmedFacts`'s `answered` rows against a real endpoint graph.
19
+ * `scope` is the caller's own identity (`API_ENDPOINT` is workspace-scoped, so
20
+ * the repo half is discarded when a workspace is set). `currentCommit` vs each
21
+ * fact's `confirmedAtCommit` discloses staleness — never re-verifies. */
63
22
  export function mintEdgesFromConfirmedFacts(matches, endpoints, scope, producedBy, currentCommit) {
64
23
  const minted = [];
65
24
  const orphaned = [];
@@ -84,14 +43,8 @@ export function mintEdgesFromConfirmedFacts(matches, endpoints, scope, producedB
84
43
  }
85
44
  const reliabilityClass = reliabilityCap(MINT_RESOLUTION, MINT_NAME_LEVEL, true);
86
45
  const note = reliabilityNote(MINT_RESOLUTION, MINT_NAME_LEVEL, true);
87
- // Staleness disclosure (the item this closes): "current" only when both
88
- // this run's commit and the fact's own commit are known and equal;
89
- // "stale" when both are known and differ; "unknown" when either is
90
- // missing — a fact confirmed before `confirmedAtCommit` existed, or a run
91
- // with no commit available, is disclosed as unknown rather than assumed
92
- // fresh. `staleFact` on the edge is `true` the moment any grounding fact
93
- // is not affirmatively current, so a consumer can filter on one field
94
- // without re-deriving this per-fact logic.
46
+ // "current" only when both commits are known and equal; "stale" when both
47
+ // known and differ; "unknown" when either is missing — never assumed fresh.
95
48
  const factFreshness = facts.map((f) => {
96
49
  const staleness = currentCommit === undefined || f.confirmedAtCommit === undefined
97
50
  ? "unknown"
@@ -117,10 +70,7 @@ export function mintEdgesFromConfirmedFacts(matches, endpoints, scope, producedB
117
70
  reliabilityNote: note,
118
71
  blockedBy: ref.attrs?.["blockedBy"],
119
72
  staleFact,
120
- // Every fact that answered this row, verbatim — never collapsed to
121
- // one value. A row genuinely answered by facts scoped to two
122
- // different environments stays disclosed as two, not silently
123
- // narrowed to whichever sorted first.
73
+ // Every fact that answered this row, verbatim — never collapsed to one.
124
74
  confirmedFacts: factFreshness.map(({ fact: f, staleness }) => ({
125
75
  value: f.value,
126
76
  ...(f.environment === undefined ? {} : { environment: f.environment }),
@@ -1 +1 @@
1
- {"version":3,"file":"mint.js","sourceRoot":"","sources":["../../src/ledger/mint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mint.js","sourceRoot":"","sources":["../../src/ledger/mint.ts"],"names":[],"mappings":"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"}