clearotron 0.2.1 → 0.2.2

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 (622) hide show
  1. package/.env.example +54 -1
  2. package/CONTRIBUTING.md +3 -3
  3. package/INSTALL.md +53 -49
  4. package/bin/brandowner.mjs +1 -1
  5. package/bin/clearotron.mjs +4 -4
  6. package/bin/connect.mjs +2 -2
  7. package/bin/example.mjs +27 -11
  8. package/bin/grant.mjs +3 -3
  9. package/bin/key.mjs +1 -1
  10. package/bin/onboard.mjs +58 -118
  11. package/bin/start.mjs +22 -25
  12. package/bin/stop.mjs +65 -3
  13. package/bin/update.mjs +7 -7
  14. package/bin/uspto-sync.mjs +1 -1
  15. package/build-info.json +2 -2
  16. package/docs/DELIVERY.md +6 -2
  17. package/docs/architecture/01-product-overview.md +2 -2
  18. package/docs/architecture/02-architecture.md +2 -2
  19. package/docs/architecture/04-configuration-reference.md +6 -3
  20. package/docs/architecture/05-config-governance.md +38 -5
  21. package/docs/architecture/06-operations-runbook.md +13 -1
  22. package/docs/architecture/09-security-and-data.md +1 -1
  23. package/docs/decisions/0004-documentation-structure.md +1 -1
  24. package/driver/CHANGELOG.md +65 -1
  25. package/driver/README.md +2 -2
  26. package/driver/ask-ledger.mjs +3 -3
  27. package/driver/authority-trees.mjs +1 -1
  28. package/driver/call-capture.mjs +1 -1
  29. package/driver/card-frame.mjs +1 -1
  30. package/driver/case-law-ledger.mjs +1 -1
  31. package/driver/claim-liveness.mjs +1 -1
  32. package/driver/common-law-receipts.mjs +1 -1
  33. package/driver/commonlaw-carry.mjs +1 -1
  34. package/driver/config-inventory.mjs +1 -1
  35. package/driver/connotation-search.mjs +12 -12
  36. package/driver/contract-audit.mjs +5 -5
  37. package/driver/contract-dictation-registry.mjs +4 -4
  38. package/driver/contract-dictation.mjs +2 -2
  39. package/driver/contract-e3-backlog.mjs +6 -6
  40. package/driver/contract-vocabulary.mjs +3 -3
  41. package/driver/corrections-feedforward.mjs +1 -1
  42. package/driver/coverage-form-io.mjs +2 -2
  43. package/driver/coverage-form.mjs +4 -4
  44. package/driver/coverage-ledger.mjs +3 -3
  45. package/driver/coverage-union.mjs +1 -1
  46. package/driver/declination-call.mjs +35 -3
  47. package/driver/declination-duty.mjs +1 -1
  48. package/driver/deliver-trigger.sh +3 -3
  49. package/driver/deploy-live-run-guard.mjs +6 -2
  50. package/driver/dev-portal.mjs +1 -1
  51. package/driver/disposition-call.mjs +4 -4
  52. package/driver/disposition-tool.mjs +4 -4
  53. package/driver/disposition-union.mjs +2 -2
  54. package/driver/doc-constants.mjs +1 -1
  55. package/driver/door-gates.mjs +2 -2
  56. package/driver/doubt-selection.mjs +2 -2
  57. package/driver/drainer-identity.mjs +1 -1
  58. package/driver/driver.config.mjs +63 -11
  59. package/driver/e2e-rounds.mjs +2 -2
  60. package/driver/effort-model.mjs +2 -2
  61. package/driver/engine/anthropic-agent.mjs +24 -24
  62. package/driver/engine/auth.mjs +1 -1
  63. package/driver/engine/common.mjs +1 -1
  64. package/driver/engine/deny-authority-write.mjs +1 -1
  65. package/driver/engine/jx-turn.mjs +1 -1
  66. package/driver/engine/mcp/clarivate-server.mjs +1 -1
  67. package/driver/engine/mcp/corsearch-server.mjs +1 -1
  68. package/driver/engine/mcp/declination-server.mjs +1 -1
  69. package/driver/engine/mcp/dispositions-server.mjs +1 -1
  70. package/driver/engine/mcp/euipo-server.mjs +1 -1
  71. package/driver/engine/mcp/fetch-server.mjs +1 -1
  72. package/driver/engine/mcp/free-tier-server.mjs +2 -2
  73. package/driver/engine/mcp/gather-config.mjs +11 -11
  74. package/driver/engine/mcp/perplexity-server.mjs +1 -1
  75. package/driver/engine/mcp/recording-server.mjs +8 -4
  76. package/driver/engine/mcp/signa-server.mjs +1 -1
  77. package/driver/engine/mcp/uspto-local-server.mjs +1 -1
  78. package/driver/engine/openai-agent.mjs +2 -2
  79. package/driver/engine-build.mjs +2 -2
  80. package/driver/enqueue-schema.mjs +2 -2
  81. package/driver/enqueue.mjs +1 -1
  82. package/driver/envelope-settle.mjs +1 -1
  83. package/driver/evidence-claim-invariant.mjs +2 -2
  84. package/driver/findings-model.mjs +8 -8
  85. package/driver/floor-duty.mjs +1 -1
  86. package/driver/form-neighbourhood.mjs +1 -1
  87. package/driver/framework.mjs +1 -1
  88. package/driver/gateway.mjs +28 -23
  89. package/driver/grounds-grammar.mjs +1 -1
  90. package/driver/hit-list.mjs +1 -1
  91. package/driver/jurisdiction-systems.mjs +1 -1
  92. package/driver/jx-lanes.mjs +1 -1
  93. package/driver/jx-units.mjs +1 -1
  94. package/driver/jx.mjs +3 -3
  95. package/driver/knockout-assess-record.mjs +5 -1
  96. package/driver/narrative-refutation-record.mjs +3 -3
  97. package/driver/numeric-setting.mjs +1 -1
  98. package/driver/owner-use-check.mjs +184 -0
  99. package/driver/package.json +2 -2
  100. package/driver/phase0.mjs +1 -1
  101. package/driver/pipeline-knockout.mjs +52 -4
  102. package/driver/pipeline.mjs +175 -62
  103. package/driver/placement-diff.mjs +2 -2
  104. package/driver/placement-form.mjs +4 -4
  105. package/driver/placement-union.mjs +1 -1
  106. package/driver/portal-acks.mjs +1 -1
  107. package/driver/portal-config-view.mjs +2 -2
  108. package/driver/portal-local-auth.mjs +1 -1
  109. package/driver/portal-report.mjs +6 -6
  110. package/driver/portal-service.mjs +15 -15
  111. package/driver/predelivery-lint.mjs +28 -10
  112. package/driver/prelim-variants-record.mjs +2 -2
  113. package/driver/profile-page.html +1 -1
  114. package/driver/profile-selection.mjs +1 -1
  115. package/driver/profile-service.mjs +2 -2
  116. package/driver/profiles.mjs +1 -1
  117. package/driver/progress.mjs +6 -6
  118. package/driver/provider-usage.mjs +1 -1
  119. package/driver/publish/demo-marking.mjs +1 -1
  120. package/driver/publish/index.mjs +47 -6
  121. package/driver/publish/knockout.mjs +36 -14
  122. package/driver/publish/parse.mjs +4 -4
  123. package/driver/publish/publish-inputs.mjs +2 -2
  124. package/driver/publish/register-presence.mjs +1 -1
  125. package/driver/publish/render-knockout.mjs +198 -31
  126. package/driver/publish/report-data.mjs +13 -3
  127. package/driver/queue-watch-probe.mjs +1 -1
  128. package/driver/queue-watch-verdict.mjs +1 -1
  129. package/driver/recall-reconciliation.mjs +1 -1
  130. package/driver/recipe-service.mjs +1 -1
  131. package/driver/record-carry.mjs +5 -5
  132. package/driver/recording-agreement.mjs +3 -3
  133. package/driver/reference-score.mjs +7 -7
  134. package/driver/refusal-bound.mjs +3 -3
  135. package/driver/register-availability.mjs +2 -2
  136. package/driver/register-count.mjs +1 -1
  137. package/driver/register-grant-vocabulary.mjs +2 -2
  138. package/driver/register-plan.mjs +8 -8
  139. package/driver/register-records.mjs +2 -2
  140. package/driver/registry-fidelity.mjs +3 -3
  141. package/driver/remedy-accounting.mjs +1 -1
  142. package/driver/repair-composers.mjs +2 -2
  143. package/driver/repair-digest.mjs +3 -3
  144. package/driver/repairs.mjs +6 -6
  145. package/driver/replay-archive.mjs +2 -0
  146. package/driver/report-card-record.mjs +2 -2
  147. package/driver/result-noun-fields.mjs +10 -3
  148. package/driver/run-economics.mjs +2 -2
  149. package/driver/run-integrity.mjs +1 -1
  150. package/driver/runner.mjs +22 -22
  151. package/driver/scope-rules.mjs +1 -1
  152. package/driver/search-policy.mjs +3 -3
  153. package/driver/skeptic-search.mjs +1 -1
  154. package/driver/skills/blind-frame/SKILL.md +1 -1
  155. package/driver/skills/case-law-citation/SKILL.md +2 -2
  156. package/driver/skills/knockout-assess/SKILL.md +10 -4
  157. package/driver/skills/prelim-search/SKILL.md +2 -2
  158. package/driver/skills/prelim-search/template-formatting.md +1 -1
  159. package/driver/skills/prelim-search/templates/email/generic.md +1 -1
  160. package/driver/skills/prelim-search/worked-examples.md +1 -1
  161. package/driver/skills/prelim-variants/SKILL.md +2 -2
  162. package/driver/stage-context.mjs +1 -1
  163. package/driver/stages-knockout.mjs +55 -4
  164. package/driver/stages.mjs +97 -40
  165. package/driver/stray-artifacts.mjs +2 -2
  166. package/driver/suite-census.json +146 -32
  167. package/driver/synthesis-record.mjs +1 -1
  168. package/driver/systemd/clearotron-client-mcp.service +1 -1
  169. package/driver/systemd/clearotron-portal.service +1 -1
  170. package/driver/systemd/render-units.mjs +1 -1
  171. package/driver/tokens.mjs +1 -1
  172. package/driver/tool-calls.mjs +1 -1
  173. package/driver/turnaround-bands.mjs +1 -1
  174. package/driver/unit-file-drift.mjs +1 -1
  175. package/driver/unit-inventory.mjs +121 -61
  176. package/driver/unit-state-verdict.mjs +20 -12
  177. package/driver/verify-knockout.mjs +10 -2
  178. package/driver/verify.mjs +12 -12
  179. package/driver/whatif-memo-run.mjs +46 -5
  180. package/driver/whatif-queue.mjs +1 -1
  181. package/driver/whatif-worker.mjs +1 -1
  182. package/mcp-server/CHANGELOG.md +4 -0
  183. package/mcp-server/README.md +3 -3
  184. package/mcp-server/http-server.mjs +44 -1
  185. package/mcp-server/key-socket.mjs +184 -0
  186. package/mcp-server/lib/audit-view.mjs +69 -2
  187. package/mcp-server/lib/brief.mjs +15 -0
  188. package/mcp-server/lib/driver.mjs +7 -1
  189. package/mcp-server/lib/events.mjs +1 -1
  190. package/mcp-server/lib/http-handler.mjs +1 -1
  191. package/mcp-server/lib/knockout.mjs +435 -0
  192. package/mcp-server/lib/ops.mjs +4 -4
  193. package/mcp-server/lib/options.mjs +1 -1
  194. package/mcp-server/lib/plan.mjs +1 -1
  195. package/mcp-server/lib/runs.mjs +1 -1
  196. package/mcp-server/lib/scrub.mjs +1 -1
  197. package/mcp-server/lib/whatif.mjs +3 -3
  198. package/mcp-server/mint-token.mjs +1 -1
  199. package/mcp-server/package.json +2 -2
  200. package/mcp-server/server.mjs +76 -11
  201. package/package.json +3 -3
  202. package/portal-ui/package.json +1 -1
  203. package/providers/_shared/enumerate.mjs +1 -1
  204. package/providers/_shared/ledger-path.mjs +3 -3
  205. package/providers/_shared/ledger.mjs +1 -1
  206. package/providers/_shared/result-shape.mjs +3 -3
  207. package/providers/_shared/term-shape.mjs +1 -1
  208. package/providers/corsearch/src/core.js +1 -1
  209. package/providers/jx-subclass/BUILDING.md +1 -1
  210. package/providers/oauth-mcp-bridge/CHANGELOG.md +4 -0
  211. package/providers/oauth-mcp-bridge/package.json +1 -1
  212. package/providers/oauth-mcp-bridge/stdin-guard.mjs +2 -2
  213. package/scripts/README.md +1 -1
  214. package/scripts/added-reference-check.mjs +29 -1
  215. package/scripts/ai-page-render-check.mjs +1 -1
  216. package/scripts/authority-boundary-probe.mjs +1 -1
  217. package/scripts/backfill-started-at.mjs +1 -1
  218. package/scripts/citation-line-check.mjs +3 -3
  219. package/scripts/clearances-render-check.mjs +3 -3
  220. package/scripts/compare.mjs +2 -2
  221. package/scripts/composer-render-check.mjs +6 -6
  222. package/scripts/contract-dictation-scan.mjs +2 -2
  223. package/scripts/dead-names.mjs +1 -1
  224. package/scripts/drain-preflight.mjs +5 -5
  225. package/scripts/e2e-unread-terminals.mjs +1 -1
  226. package/scripts/e2e.mjs +8 -8
  227. package/scripts/env-audit.mjs +7 -7
  228. package/scripts/env-classify.mjs +139 -15
  229. package/scripts/freeze-example-run.mjs +3 -3
  230. package/scripts/head-arrived-gated.mjs +1 -1
  231. package/scripts/headless-page.mjs +51 -2
  232. package/scripts/home-render-check.mjs +2 -2
  233. package/scripts/live-surface-check.mjs +92 -19
  234. package/scripts/main-health.mjs +1 -1
  235. package/scripts/merge-presence-check.mjs +3 -3
  236. package/scripts/mint-suite-census.mjs +6 -6
  237. package/scripts/nightly-notice.mjs +1 -1
  238. package/scripts/portal-lifecycle-check.mjs +3 -3
  239. package/scripts/reconcile-runs.mjs +1 -1
  240. package/scripts/release-await-cut.mjs +6 -4
  241. package/scripts/release-version-pr-checks.mjs +1 -1
  242. package/scripts/release-version.mjs +2 -2
  243. package/scripts/render-check.mjs +66 -7
  244. package/scripts/report-frame-check.mjs +1 -1
  245. package/scripts/report-screenshot.mjs +1 -1
  246. package/scripts/revisit-render-check.mjs +1 -1
  247. package/scripts/score.mjs +4 -4
  248. package/scripts/strip-tracker-citations.mjs +116 -0
  249. package/scripts/test-run.mjs +3 -3
  250. package/scripts/third-party-notices.mjs +3 -3
  251. package/scripts/travelling-predicates.mjs +3 -3
  252. package/scripts/unexecuted-asserts.mjs +2 -2
  253. package/scripts/verify-publishable.mjs +2 -2
  254. package/scripts/write-up-form-census.mjs +1 -1
  255. package/shared/access-audience.mjs +1 -1
  256. package/shared/brand.mjs +13 -13
  257. package/shared/citation-scan.mjs +1 -1
  258. package/shared/client-door.mjs +7 -7
  259. package/shared/driver-dir.mjs +1 -1
  260. package/shared/env-aliases.mjs +0 -48
  261. package/shared/env-local.mjs +1 -1
  262. package/shared/identifier-scan.mjs +3 -3
  263. package/shared/invocation.mjs +1 -1
  264. package/shared/names-in-force.mjs +2 -0
  265. package/shared/product-owned-names.mjs +1 -1
  266. package/shared/register-selection.mjs +1 -1
  267. package/shared/scope.mjs +5 -5
  268. package/shared/server-units.mjs +4 -4
  269. package/shared/store-in-repo.mjs +2 -2
  270. package/shared/suite-census.mjs +4 -4
  271. package/shared/tty-style.mjs +1 -1
  272. package/shared/uspto-index-size.mjs +1 -1
  273. package/shared/vacuous-pass.mjs +1 -1
  274. package/skills/clearotron-account/SKILL.md +42 -13
  275. package/driver/systemd/prelim-driver.path +0 -69
  276. package/driver/systemd/prelim-driver.service +0 -86
  277. package/driver/systemd/prelim-driver.timer +0 -14
  278. package/driver/systemd/prelim-outbox.path +0 -27
  279. package/driver/systemd/prelim-outbox.service +0 -37
  280. package/driver/systemd/prelim-outbox.timer +0 -21
  281. package/node_modules/exceljs/README_zh.md +0 -2878
  282. package/node_modules/exceljs/dist/LICENSE +0 -22
  283. package/node_modules/exceljs/dist/es5/csv/csv.js +0 -182
  284. package/node_modules/exceljs/dist/es5/csv/csv.js.map +0 -1
  285. package/node_modules/exceljs/dist/es5/csv/line-buffer.js +0 -68
  286. package/node_modules/exceljs/dist/es5/csv/line-buffer.js.map +0 -1
  287. package/node_modules/exceljs/dist/es5/csv/stream-converter.js +0 -110
  288. package/node_modules/exceljs/dist/es5/csv/stream-converter.js.map +0 -1
  289. package/node_modules/exceljs/dist/es5/doc/anchor.js +0 -73
  290. package/node_modules/exceljs/dist/es5/doc/anchor.js.map +0 -1
  291. package/node_modules/exceljs/dist/es5/doc/cell.js +0 -961
  292. package/node_modules/exceljs/dist/es5/doc/cell.js.map +0 -1
  293. package/node_modules/exceljs/dist/es5/doc/column.js +0 -274
  294. package/node_modules/exceljs/dist/es5/doc/column.js.map +0 -1
  295. package/node_modules/exceljs/dist/es5/doc/data-validations.js +0 -18
  296. package/node_modules/exceljs/dist/es5/doc/data-validations.js.map +0 -1
  297. package/node_modules/exceljs/dist/es5/doc/defined-names.js +0 -173
  298. package/node_modules/exceljs/dist/es5/doc/defined-names.js.map +0 -1
  299. package/node_modules/exceljs/dist/es5/doc/enums.js +0 -49
  300. package/node_modules/exceljs/dist/es5/doc/enums.js.map +0 -1
  301. package/node_modules/exceljs/dist/es5/doc/image.js +0 -69
  302. package/node_modules/exceljs/dist/es5/doc/image.js.map +0 -1
  303. package/node_modules/exceljs/dist/es5/doc/modelcontainer.js +0 -16
  304. package/node_modules/exceljs/dist/es5/doc/modelcontainer.js.map +0 -1
  305. package/node_modules/exceljs/dist/es5/doc/note.js +0 -64
  306. package/node_modules/exceljs/dist/es5/doc/note.js.map +0 -1
  307. package/node_modules/exceljs/dist/es5/doc/range.js +0 -229
  308. package/node_modules/exceljs/dist/es5/doc/range.js.map +0 -1
  309. package/node_modules/exceljs/dist/es5/doc/row.js +0 -382
  310. package/node_modules/exceljs/dist/es5/doc/row.js.map +0 -1
  311. package/node_modules/exceljs/dist/es5/doc/table.js +0 -443
  312. package/node_modules/exceljs/dist/es5/doc/table.js.map +0 -1
  313. package/node_modules/exceljs/dist/es5/doc/workbook.js +0 -202
  314. package/node_modules/exceljs/dist/es5/doc/workbook.js.map +0 -1
  315. package/node_modules/exceljs/dist/es5/doc/worksheet.js +0 -900
  316. package/node_modules/exceljs/dist/es5/doc/worksheet.js.map +0 -1
  317. package/node_modules/exceljs/dist/es5/exceljs.bare.js +0 -14
  318. package/node_modules/exceljs/dist/es5/exceljs.bare.js.map +0 -1
  319. package/node_modules/exceljs/dist/es5/exceljs.browser.js +0 -36
  320. package/node_modules/exceljs/dist/es5/exceljs.browser.js.map +0 -1
  321. package/node_modules/exceljs/dist/es5/exceljs.nodejs.js +0 -15
  322. package/node_modules/exceljs/dist/es5/exceljs.nodejs.js.map +0 -1
  323. package/node_modules/exceljs/dist/es5/index.js +0 -15
  324. package/node_modules/exceljs/dist/es5/stream/xlsx/hyperlink-reader.js +0 -90
  325. package/node_modules/exceljs/dist/es5/stream/xlsx/hyperlink-reader.js.map +0 -1
  326. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-comments-writer.js +0 -94
  327. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-comments-writer.js.map +0 -1
  328. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-rels-writer.js +0 -94
  329. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-rels-writer.js.map +0 -1
  330. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js +0 -362
  331. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js.map +0 -1
  332. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-writer.js +0 -347
  333. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-writer.js.map +0 -1
  334. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-reader.js +0 -392
  335. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-reader.js.map +0 -1
  336. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-writer.js +0 -652
  337. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-writer.js.map +0 -1
  338. package/node_modules/exceljs/dist/es5/utils/auto-drain.js +0 -18
  339. package/node_modules/exceljs/dist/es5/utils/auto-drain.js.map +0 -1
  340. package/node_modules/exceljs/dist/es5/utils/browser-buffer-decode.js +0 -15
  341. package/node_modules/exceljs/dist/es5/utils/browser-buffer-decode.js.map +0 -1
  342. package/node_modules/exceljs/dist/es5/utils/browser-buffer-encode.js +0 -18
  343. package/node_modules/exceljs/dist/es5/utils/browser-buffer-encode.js.map +0 -1
  344. package/node_modules/exceljs/dist/es5/utils/cell-matrix.js +0 -149
  345. package/node_modules/exceljs/dist/es5/utils/cell-matrix.js.map +0 -1
  346. package/node_modules/exceljs/dist/es5/utils/col-cache.js +0 -258
  347. package/node_modules/exceljs/dist/es5/utils/col-cache.js.map +0 -1
  348. package/node_modules/exceljs/dist/es5/utils/copy-style.js +0 -43
  349. package/node_modules/exceljs/dist/es5/utils/copy-style.js.map +0 -1
  350. package/node_modules/exceljs/dist/es5/utils/encryptor.js +0 -58
  351. package/node_modules/exceljs/dist/es5/utils/encryptor.js.map +0 -1
  352. package/node_modules/exceljs/dist/es5/utils/iterate-stream.js +0 -46
  353. package/node_modules/exceljs/dist/es5/utils/iterate-stream.js.map +0 -1
  354. package/node_modules/exceljs/dist/es5/utils/parse-sax.js +0 -47
  355. package/node_modules/exceljs/dist/es5/utils/parse-sax.js.map +0 -1
  356. package/node_modules/exceljs/dist/es5/utils/shared-formula.js +0 -42
  357. package/node_modules/exceljs/dist/es5/utils/shared-formula.js.map +0 -1
  358. package/node_modules/exceljs/dist/es5/utils/shared-strings.js +0 -32
  359. package/node_modules/exceljs/dist/es5/utils/shared-strings.js.map +0 -1
  360. package/node_modules/exceljs/dist/es5/utils/stream-base64.js +0 -66
  361. package/node_modules/exceljs/dist/es5/utils/stream-base64.js.map +0 -1
  362. package/node_modules/exceljs/dist/es5/utils/stream-buf.js +0 -343
  363. package/node_modules/exceljs/dist/es5/utils/stream-buf.js.map +0 -1
  364. package/node_modules/exceljs/dist/es5/utils/string-buf.js +0 -73
  365. package/node_modules/exceljs/dist/es5/utils/string-buf.js.map +0 -1
  366. package/node_modules/exceljs/dist/es5/utils/string-builder.js +0 -32
  367. package/node_modules/exceljs/dist/es5/utils/string-builder.js.map +0 -1
  368. package/node_modules/exceljs/dist/es5/utils/stuttered-pipe.js +0 -61
  369. package/node_modules/exceljs/dist/es5/utils/stuttered-pipe.js.map +0 -1
  370. package/node_modules/exceljs/dist/es5/utils/typed-stack.js +0 -23
  371. package/node_modules/exceljs/dist/es5/utils/typed-stack.js.map +0 -1
  372. package/node_modules/exceljs/dist/es5/utils/under-dash.js +0 -168
  373. package/node_modules/exceljs/dist/es5/utils/under-dash.js.map +0 -1
  374. package/node_modules/exceljs/dist/es5/utils/utils.js +0 -171
  375. package/node_modules/exceljs/dist/es5/utils/utils.js.map +0 -1
  376. package/node_modules/exceljs/dist/es5/utils/xml-stream.js +0 -151
  377. package/node_modules/exceljs/dist/es5/utils/xml-stream.js.map +0 -1
  378. package/node_modules/exceljs/dist/es5/utils/zip-stream.js +0 -79
  379. package/node_modules/exceljs/dist/es5/utils/zip-stream.js.map +0 -1
  380. package/node_modules/exceljs/dist/es5/xlsx/defaultnumformats.js +0 -230
  381. package/node_modules/exceljs/dist/es5/xlsx/defaultnumformats.js.map +0 -1
  382. package/node_modules/exceljs/dist/es5/xlsx/rel-type.js +0 -18
  383. package/node_modules/exceljs/dist/es5/xlsx/rel-type.js.map +0 -1
  384. package/node_modules/exceljs/dist/es5/xlsx/xform/base-xform.js +0 -139
  385. package/node_modules/exceljs/dist/es5/xlsx/xform/base-xform.js.map +0 -1
  386. package/node_modules/exceljs/dist/es5/xlsx/xform/book/defined-name-xform.js +0 -85
  387. package/node_modules/exceljs/dist/es5/xlsx/xform/book/defined-name-xform.js.map +0 -1
  388. package/node_modules/exceljs/dist/es5/xlsx/xform/book/sheet-xform.js +0 -32
  389. package/node_modules/exceljs/dist/es5/xlsx/xform/book/sheet-xform.js.map +0 -1
  390. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +0 -24
  391. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +0 -1
  392. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-properties-xform.js +0 -27
  393. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +0 -1
  394. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-view-xform.js +0 -51
  395. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +0 -1
  396. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-xform.js +0 -234
  397. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-xform.js.map +0 -1
  398. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comment-xform.js +0 -103
  399. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comment-xform.js.map +0 -1
  400. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js +0 -76
  401. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js.map +0 -1
  402. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +0 -35
  403. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +0 -1
  404. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +0 -32
  405. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +0 -1
  406. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +0 -53
  407. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +0 -1
  408. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +0 -97
  409. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +0 -1
  410. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-notes-xform.js +0 -107
  411. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +0 -1
  412. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-shape-xform.js +0 -92
  413. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +0 -1
  414. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +0 -61
  415. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +0 -1
  416. package/node_modules/exceljs/dist/es5/xlsx/xform/composite-xform.js +0 -51
  417. package/node_modules/exceljs/dist/es5/xlsx/xform/composite-xform.js.map +0 -1
  418. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +0 -30
  419. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +0 -1
  420. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +0 -27
  421. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +0 -1
  422. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-xform.js +0 -93
  423. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-xform.js.map +0 -1
  424. package/node_modules/exceljs/dist/es5/xlsx/xform/core/content-types-xform.js +0 -112
  425. package/node_modules/exceljs/dist/es5/xlsx/xform/core/content-types-xform.js.map +0 -1
  426. package/node_modules/exceljs/dist/es5/xlsx/xform/core/core-xform.js +0 -158
  427. package/node_modules/exceljs/dist/es5/xlsx/xform/core/core-xform.js.map +0 -1
  428. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationship-xform.js +0 -23
  429. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationship-xform.js.map +0 -1
  430. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationships-xform.js +0 -65
  431. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationships-xform.js.map +0 -1
  432. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +0 -47
  433. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +0 -1
  434. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +0 -61
  435. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +0 -1
  436. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-xform.js +0 -40
  437. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-xform.js.map +0 -1
  438. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +0 -35
  439. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +0 -1
  440. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +0 -62
  441. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +0 -1
  442. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/cell-position-xform.js +0 -82
  443. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +0 -1
  444. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/drawing-xform.js +0 -98
  445. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +0 -1
  446. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +0 -40
  447. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +0 -1
  448. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-xform.js +0 -38
  449. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-xform.js.map +0 -1
  450. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +0 -38
  451. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +0 -1
  452. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +0 -59
  453. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +0 -1
  454. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +0 -63
  455. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +0 -1
  456. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/pic-xform.js +0 -67
  457. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/pic-xform.js.map +0 -1
  458. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js +0 -30
  459. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js.map +0 -1
  460. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +0 -62
  461. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +0 -1
  462. package/node_modules/exceljs/dist/es5/xlsx/xform/list-xform.js +0 -91
  463. package/node_modules/exceljs/dist/es5/xlsx/xform/list-xform.js.map +0 -1
  464. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +0 -40
  465. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +0 -1
  466. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cell-xform.js +0 -451
  467. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cell-xform.js.map +0 -1
  468. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +0 -275
  469. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +0 -1
  470. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +0 -25
  471. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +0 -1
  472. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +0 -38
  473. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +0 -1
  474. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +0 -45
  475. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +0 -1
  476. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +0 -77
  477. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +0 -1
  478. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +0 -42
  479. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +0 -1
  480. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +0 -71
  481. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +0 -1
  482. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +0 -22
  483. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +0 -1
  484. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +0 -43
  485. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +0 -1
  486. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +0 -28
  487. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +0 -1
  488. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +0 -88
  489. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +0 -1
  490. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +0 -38
  491. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +0 -1
  492. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +0 -52
  493. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +0 -1
  494. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +0 -43
  495. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +0 -1
  496. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +0 -75
  497. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +0 -1
  498. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +0 -22
  499. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +0 -1
  500. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +0 -66
  501. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +0 -1
  502. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +0 -22
  503. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +0 -1
  504. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/col-xform.js +0 -78
  505. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/col-xform.js.map +0 -1
  506. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/data-validations-xform.js +0 -247
  507. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +0 -1
  508. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/dimension-xform.js +0 -28
  509. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +0 -1
  510. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/drawing-xform.js +0 -32
  511. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +0 -1
  512. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +0 -69
  513. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +0 -1
  514. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/header-footer-xform.js +0 -126
  515. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +0 -1
  516. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +0 -50
  517. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +0 -1
  518. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +0 -26
  519. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +0 -1
  520. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merges.js +0 -52
  521. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merges.js.map +0 -1
  522. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +0 -35
  523. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +0 -1
  524. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +0 -24
  525. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +0 -1
  526. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-margins-xform.js +0 -46
  527. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +0 -1
  528. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +0 -32
  529. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +0 -1
  530. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-xform.js +0 -99
  531. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +0 -1
  532. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/picture-xform.js +0 -32
  533. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/picture-xform.js.map +0 -1
  534. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/print-options-xform.js +0 -45
  535. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +0 -1
  536. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +0 -37
  537. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +0 -1
  538. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-xform.js +0 -128
  539. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-xform.js.map +0 -1
  540. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +0 -51
  541. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +0 -1
  542. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +0 -83
  543. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +0 -1
  544. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +0 -84
  545. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +0 -1
  546. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +0 -190
  547. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +0 -1
  548. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/table-part-xform.js +0 -32
  549. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +0 -1
  550. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/worksheet-xform.js +0 -513
  551. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +0 -1
  552. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/boolean-xform.js +0 -27
  553. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/boolean-xform.js.map +0 -1
  554. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/date-xform.js +0 -58
  555. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/date-xform.js.map +0 -1
  556. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/float-xform.js +0 -47
  557. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/float-xform.js.map +0 -1
  558. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/integer-xform.js +0 -53
  559. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/integer-xform.js.map +0 -1
  560. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/string-xform.js +0 -47
  561. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/string-xform.js.map +0 -1
  562. package/node_modules/exceljs/dist/es5/xlsx/xform/static-xform.js +0 -61
  563. package/node_modules/exceljs/dist/es5/xlsx/xform/static-xform.js.map +0 -1
  564. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +0 -98
  565. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +0 -1
  566. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/rich-text-xform.js +0 -92
  567. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +0 -1
  568. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-string-xform.js +0 -99
  569. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +0 -1
  570. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-strings-xform.js +0 -114
  571. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +0 -1
  572. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/text-xform.js +0 -39
  573. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/text-xform.js.map +0 -1
  574. package/node_modules/exceljs/dist/es5/xlsx/xform/style/alignment-xform.js +0 -139
  575. package/node_modules/exceljs/dist/es5/xlsx/xform/style/alignment-xform.js.map +0 -1
  576. package/node_modules/exceljs/dist/es5/xlsx/xform/style/border-xform.js +0 -185
  577. package/node_modules/exceljs/dist/es5/xlsx/xform/style/border-xform.js.map +0 -1
  578. package/node_modules/exceljs/dist/es5/xlsx/xform/style/color-xform.js +0 -66
  579. package/node_modules/exceljs/dist/es5/xlsx/xform/style/color-xform.js.map +0 -1
  580. package/node_modules/exceljs/dist/es5/xlsx/xform/style/dxf-xform.js +0 -106
  581. package/node_modules/exceljs/dist/es5/xlsx/xform/style/dxf-xform.js.map +0 -1
  582. package/node_modules/exceljs/dist/es5/xlsx/xform/style/fill-xform.js +0 -308
  583. package/node_modules/exceljs/dist/es5/xlsx/xform/style/fill-xform.js.map +0 -1
  584. package/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js +0 -175
  585. package/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js.map +0 -1
  586. package/node_modules/exceljs/dist/es5/xlsx/xform/style/numfmt-xform.js +0 -59
  587. package/node_modules/exceljs/dist/es5/xlsx/xform/style/numfmt-xform.js.map +0 -1
  588. package/node_modules/exceljs/dist/es5/xlsx/xform/style/protection-xform.js +0 -53
  589. package/node_modules/exceljs/dist/es5/xlsx/xform/style/protection-xform.js.map +0 -1
  590. package/node_modules/exceljs/dist/es5/xlsx/xform/style/style-xform.js +0 -118
  591. package/node_modules/exceljs/dist/es5/xlsx/xform/style/style-xform.js.map +0 -1
  592. package/node_modules/exceljs/dist/es5/xlsx/xform/style/styles-xform.js +0 -612
  593. package/node_modules/exceljs/dist/es5/xlsx/xform/style/styles-xform.js.map +0 -1
  594. package/node_modules/exceljs/dist/es5/xlsx/xform/style/underline-xform.js +0 -46
  595. package/node_modules/exceljs/dist/es5/xlsx/xform/style/underline-xform.js.map +0 -1
  596. package/node_modules/exceljs/dist/es5/xlsx/xform/table/auto-filter-xform.js +0 -75
  597. package/node_modules/exceljs/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +0 -1
  598. package/node_modules/exceljs/dist/es5/xlsx/xform/table/custom-filter-xform.js +0 -30
  599. package/node_modules/exceljs/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +0 -1
  600. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-column-xform.js +0 -89
  601. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-column-xform.js.map +0 -1
  602. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-xform.js +0 -28
  603. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-xform.js.map +0 -1
  604. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-column-xform.js +0 -42
  605. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-column-xform.js.map +0 -1
  606. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-style-info-xform.js +0 -40
  607. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +0 -1
  608. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-xform.js +0 -123
  609. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-xform.js.map +0 -1
  610. package/node_modules/exceljs/dist/es5/xlsx/xlsx.js +0 -697
  611. package/node_modules/exceljs/dist/es5/xlsx/xlsx.js.map +0 -1
  612. package/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js +0 -5
  613. package/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js.map +0 -1
  614. package/node_modules/exceljs/dist/exceljs.bare.js +0 -55253
  615. package/node_modules/exceljs/dist/exceljs.bare.js.map +0 -761
  616. package/node_modules/exceljs/dist/exceljs.bare.min.js +0 -45
  617. package/node_modules/exceljs/dist/exceljs.bare.min.js.map +0 -1
  618. package/node_modules/exceljs/dist/exceljs.js +0 -59900
  619. package/node_modules/exceljs/dist/exceljs.js.map +0 -1083
  620. package/node_modules/exceljs/dist/exceljs.min.js +0 -45
  621. package/node_modules/exceljs/dist/exceljs.min.js.map +0 -1
  622. package/scripts/deploy-test.sh +0 -309
@@ -103,7 +103,7 @@ export const TRACE_SCOPE = {
103
103
  uninstrumented: [
104
104
  { path: "common-law", reason: "common-law-grid.json → findings is not joined here; a candidate lost on that path emits NO row and this trace can say nothing about it either way" },
105
105
  { path: "case-law", reason: "case-law findings are not traced to a record at all" },
106
- { path: "serp/nativeread", reason: "the #372 slices ARE built and write _driver/jx/zh-grid.json; nothing on them reaches this trace because it traces the register path only. Their carry is #402's, on the common-law tracer, because zh-grid.json carries the common-law cells[]+gaps[] shape and not a register band" },
106
+ { path: "serp/nativeread", reason: "reason: and write _driver/jx/zh-grid.json; nothing on them reaches this trace because it traces the register path only. Their carry is the common-law tracer's, because zh-grid.json carries the common-law cells[]+gaps[] shape and not a register band" },
107
107
  { path: "crowd remainder", reason: "count-only slices have no record bodies — enumerated per slice in untraceable_slices[], never per record" },
108
108
  ],
109
109
  };
@@ -125,7 +125,7 @@ export const TRACE_SCOPE = {
125
125
  // the only direction that also hides the 2 unreasoned drops the common-law trace DID find.
126
126
  //
127
127
  // So the declaration is derived from which sibling tracers actually produced a computable artifact on
128
- // THIS run, exactly as 's dictated set is read from the paths factory and 's obligations are one
128
+ // THIS run, exactly as the dictated set is read from the paths factory and the obligations are one
129
129
  // calculation. A hand-kept list whose staleness is invisible is not a contract; it is a comment.
130
130
  //
131
131
  // UNCHANGED IN THE CONSERVATIVE DIRECTION: a path only moves to `instrumented` on positive evidence that
@@ -840,7 +840,7 @@ export function silentlyLostFindings({ reconciliation = null, carryRows = null,
840
840
  * It also anticipated this gap in writing: "nine divergences from a digest finding-ending, every one of
841
841
  * them `step-stated`". Nine of the shape nothing checked.
842
842
  *
843
- * MEASURED ON R2 `russet-kestrel`, delivered 2026-09-06. The sibling ran and reported
843
+ * MEASURED ON A DELIVERED R2 RUN, 2026-09-06. The sibling ran and reported
844
844
  * `{checked:5, matched:5, lost:0}` — correctly. On that same delivery two marks from the lawyer's final
845
845
  * list, `OSLER DELPHI` and `DELFITY`, one rated HIGH, are absent from `findings.json`. They were dropped
846
846
  * WITH a reason, so they sat outside the sibling's population by design:
@@ -880,12 +880,12 @@ export function statedDivergenceFindings({ reconciliation = null, carryRows = nu
880
880
  //
881
881
  // The first cut of this function gated on the reconciliation's finding-ended positions, mirroring the
882
882
  // sibling. That inherited the sibling's BLIND SPOT along with its shape, and the check was inert on
883
- // the very delivery it was written for. Replayed against R2 `russet-kestrel`:
883
+ // the very delivery it was written for. Replayed against that delivery:
884
884
  //
885
885
  // silentlyLostFindings checked=5 matched=5 lost=0
886
886
  // statedDivergenceFindings checked=5 matched=5 diverged=0 ← should have named two marks
887
887
  //
888
- // The reconciliation names five finding-ended positions and they are five OTHER marks — DELPHIS
888
+ // The reconciliation names five finding-ended positions and they are five OTHER marks — VELTRIN
889
889
  // bioenergetische Kosmetik, DELPHIC HSE, DELPHI, DELPHIN & EMERENCE, DELPHI DIAGNOSTICS. The two that
890
890
  // were lost sit in the CARRY rows and the reconciliation never mentions them:
891
891
  //
@@ -25,7 +25,7 @@
25
25
  // owns. Measured consequence, not a hypothesis: on 2e203b75 a blind-frame seat obeyed the prose and
26
26
  // hand-wrote a 17182B model with no call capture beside it, on a box whose grant already carried
27
27
  // the tool. The dictation deletes are; this direction is what keeps them deleted.
28
- // (c) ORDERED BUT NOT GRANTED. 's seed direction. E12 owns it for skill docs; here it reaches the
28
+ // (c) ORDERED BUT NOT GRANTED. That seed direction. E12 owns it for skill docs; here it reaches the
29
29
  // dispatch and the repair ladder too.
30
30
  //
31
31
  // ── PURE, AND THAT IS WHAT MAKES THE PLANTS CHEAP ────────────────────────────────────────────────────
@@ -182,7 +182,7 @@ export function bareGrant(granted) {
182
182
  * be silent on whichever repair path it did not happen to hold.
183
183
  * @param {Array<{surface:string, kind:string, text:string}>} a.union
184
184
  * @param {string[]} a.toolUniverse every tool name that exists anywhere, for direction (c)
185
- * @param {Array<{stage:string, tool:string}>} [a.backlog] 's named, excused members — ONE list, read
185
+ * @param {Array<{stage:string, tool:string}>} [a.backlog] the named, excused members — ONE list, read
186
186
  * from contract-dictation-registry.mjs. A second excuse list here would be authoring number eight, which
187
187
  * is the failure that registry's own header exists to forbid.
188
188
  * @param {Set<string>} [a.providerConditionalSurfaces] surfaces that are provider-conditional BY
@@ -284,7 +284,7 @@ export function agreementFindings({ stage, granted, artifacts, union, toolUniver
284
284
  const excused = new Set(backlog.filter((b) => b.stage === stage).map((b) => b.tool));
285
285
  for (const tool of [...toolUniverse].sort()) {
286
286
  if (held.has(tool)) continue;
287
- if (excused.has(tool)) continue; // named on 's backlog; the list can only shrink
287
+ if (excused.has(tool)) continue; // named on the backlog; the list can only shrink
288
288
  for (const m of union) {
289
289
  if (!namesTool(m.text, tool)) continue;
290
290
  // ── — A PROVIDER CANNOT SERVE IT, AND THIS ORDER SAYS SO ──────────────────
@@ -235,7 +235,7 @@ export function matchesReference(ref, candidate, { sameOwner = false } = {}) {
235
235
  return null;
236
236
  }
237
237
 
238
- // 3 — ALIAS. splits this in two, on the same precedent as rules 1 and 4 (, "the scorer calls
238
+ // 3 — ALIAS. splits this in two, on the same precedent as rules 1 and 4 ("the scorer calls
239
239
  // a different owner's longer mark a hit"). This rule was the one cross-owner escape left open.
240
240
  //
241
241
  // FULL IDENTITY — one name on each side and they are the same name — is NOT a relaxation and stays
@@ -674,7 +674,7 @@ export function scoreRecall({ reference, findings = [], retrieved = [], scopeCla
674
674
  // proprietor with more than one mark. A large filer can perfectly well have one mark the run withheld
675
675
  // and a DIFFERENT mark, not in the reference, that it surfaced. Both rows are true.
676
676
  //
677
- // It fired on R2 russet-kestrel: `Novartis AG: reference "DELFITY" is withheld, surfaced "DELPHINA"
677
+ // It fired on a delivered R2 run: `<large filer>: reference "DELFITY" is withheld, surfaced "DELPHINA"
678
678
  // is noise`. Different marks, different records, one proprietor that files a great many. And because
679
679
  // score.mjs prints a collision as "do not read the recall numbers above", ONE such proprietor
680
680
  // suppressed the whole run's recall measurement — a real 88% → 63% movement went unquoted on the
@@ -749,7 +749,7 @@ export function scoreRecall({ reference, findings = [], retrieved = [], scopeCla
749
749
  * AND THE DIRECTION IS THE DANGEROUS ONE. A `withheld` that over-counted would be investigated the first
750
750
  * round it appeared. This one reads clean.
751
751
  *
752
- * This does NOT compute carry-through — that needs the run's screened set and is 's acceptance 1.
752
+ * This does NOT compute carry-through — that needs the run's screened set and is the acceptance 1.
753
753
  * What it does is stop a bare `0` from reading as "nothing was dropped", by naming on the line how many
754
754
  * retrieved marks the number could not have spoken to. The file already refuses a bare `0` for the
755
755
  * no-`_driver/` case, in as many words; this is the same refusal for the case that reads clean.
@@ -1638,7 +1638,7 @@ export function ownersMatch(a, b) {
1638
1638
  * derives the same sentence from the delivery-time record instead: slice 1 from its per-lane map
1639
1639
  * (`slices.candidates.lanes[lane]`), slices 2–3 from their own `lane` field. PER LANE, never the
1640
1640
  * run-level join: the SERP grid is zh-only, so `lane ja: executes=candidates+serp-grid` would be a
1641
- * claim about the ja lane that no record supports ('s fix, kept exact here).
1641
+ * claim about the ja lane that no record supports (the fix, kept exact here).
1642
1642
  *
1643
1643
  * THREE ANSWERS, AND THE THIRD IS THE ONE THAT MATTERS:
1644
1644
  * "candidates+serp-grid" the named slices ran for this lane
@@ -1710,7 +1710,7 @@ export function readJxLanes(doc) {
1710
1710
  // — DERIVED from fold.slices, with the declaration as a LEGACY fallback only. Two artifact
1711
1711
  // generations reach this line and they are read in this order deliberately:
1712
1712
  // fold.slices present → derive. The record of what ran wins, always.
1713
- // pre- artifact → its frozen `lanes.<lane>.executes` string, the only thing that run
1713
+ // pre-change artifact → its frozen `lanes.<lane>.executes` string, the only thing that run
1714
1714
  // ever recorded (a run minted between and carries BOTH, and
1715
1715
  // the derived value is the accurate one — hence the order).
1716
1716
  // neither → null ⇒ the scorer prints "(not stated)". Not "none": no statement
@@ -1755,7 +1755,7 @@ export function readJxLanes(doc) {
1755
1755
  why: lanes.length ? null : "_driver/jx-lanes.json is present and declares no lane — the file was written and no jurisdiction lane was built, which is not the same as the file being absent",
1756
1756
  lanes,
1757
1757
  // — the RUN-level statement, three-valued on itself in the same discipline as the rest of this
1758
- // function: present, or absent with a reason. A pre- artifact and a fold that never ran are both
1758
+ // function: present, or absent with a reason. A pre-change artifact and a fold that never ran are both
1759
1759
  // "the run did not state it", and neither is a pass.
1760
1760
  statement: typeof doc.fold?.executes === "string" ? doc.fold.executes : null,
1761
1761
  slices: doc.fold?.slices ?? null,
@@ -1778,7 +1778,7 @@ export function readJxLanes(doc) {
1778
1778
  * present, no units `present:true, units:[]` — its own fact, its own sentence.
1779
1779
  * present, with units each unit's own `degraded` / cause / attempts, nothing inferred.
1780
1780
  *
1781
- * `degraded` is TYPEOF-tested, never coerced. A pre- units.json carries the cause STRING in that
1781
+ * `degraded` is TYPEOF-tested, never coerced. A pre-change units.json carries the cause STRING in that
1782
1782
  * field; `Boolean(r.degraded)` would report an old artifact as having stated something it never stated.
1783
1783
  *
1784
1784
  * PURE.
@@ -2,7 +2,7 @@
2
2
  // Copyright 2026 Cordillera Sàrl. Additional terms under section 7 of the AGPL-3.0 apply — see ADDITIONAL-TERMS.md
3
3
  // ── ONE REFUSAL BOUND FOR EVERY TRANSPORT THAT LOOPS PER-ITEM OBLIGATIONS ─────────────────────────────
4
4
  //
5
- // 's Part 2. is the incident: one row of a meaning sweep was refused 217 times across three
5
+ // That Part 2. is the incident: one row of a meaning sweep was refused 217 times across three
6
6
  // attempts, exhausted the stage's recoveries, and killed a production run that had already ruled 72 of
7
7
  // its 73 obligations. Nothing delivered. The cure at that stage was a per-row bound and a park; this
8
8
  // module is that cure written once, so the other members of the class do not each grow their own.
@@ -33,7 +33,7 @@
33
33
  // 1,256 rows before this was built: present and distinct in every one.
34
34
 
35
35
  /**
36
- * THE BOUND. Thirty, inherited from 's disposition park, where the number was argued from a real
36
+ * THE BOUND. Thirty, inherited from the disposition park, where the number was argued from a real
37
37
  * ledger rather than chosen: twelve is refuted (two rows that were CONVERGING sat at 17), and 30 is still
38
38
  * a sevenfold cut from the 217 that killed the run. That argument is about the SHAPE of a live-lock, not
39
39
  * about meaning obligations, so it carries to the other members unchanged.
@@ -56,7 +56,7 @@ function* refusals(verdicts) {
56
56
  /**
57
57
  * How many times each item has been refused so far. PURE — the park's own evidence.
58
58
  *
59
- * COUNTED PER ITEM ACROSS CALLS, which is the unit 's banner records an earlier investigation dying
59
+ * COUNTED PER ITEM ACROSS CALLS, which is the unit the banner records an earlier investigation dying
60
60
  * on when it joined per-item-final-state instead. A row refused on eight calls and ruled on the ninth
61
61
  * counts eight; a row refused eight times in ONE call also counts eight, because eight refusals is eight
62
62
  * refusals however they were batched.
@@ -17,7 +17,7 @@
17
17
  // The first cut narrowed the contract's covered list to the configured members and handed that
18
18
  // downstream. It is wrong twice over:
19
19
  //
20
- // · 's admission gate reads `offices.covered` to decide which territories a client may ORDER.
20
+ // · the admission gate reads `offices.covered` to decide which territories a client may ORDER.
21
21
  // Narrowing it to EU would refuse a US-only matter AT THE DOOR, on a provider that covers the US.
22
22
  // is the report of that shape of refusal and its acceptance is that a US-only scenario is
23
23
  // admitted rather than vetoed. A door that refuses is not a disclosure.
@@ -130,7 +130,7 @@ export function unavailableByOffice(unavailable) {
130
130
  * against the full declared coverage and hand them straight to the provider adapter. On a composite
131
131
  * that is a fan-out to EVERY member, so the unconfigured one is asked, refuses, and the composite
132
132
  * correctly declines to return a partial sum — killing a lane whose other half works perfectly. That
133
- * is 's observed refusal, and 's acceptance ("free-tier starts and ships a disclosed US
133
+ * is the observed refusal, and the acceptance ("free-tier starts and ships a disclosed US
134
134
  * deferral") was never met on these two lanes.
135
135
  *
136
136
  * @param regions what resolveRegions produced, against the FULL coverage. `[]` is meaningful.
@@ -533,7 +533,7 @@ export function countLine(entry) {
533
533
  //
534
534
  // On the rendered line rather than only in `scope.deferredJurisdictions`, which has been written by
535
535
  // both Depth 2 lanes since they were built and which `git grep` finds no reader for. A field nobody
536
- // sees is not a disclosure — that is 's defect exactly, where `deferred_coverage` rode the plan
536
+ // sees is not a disclosure — that is the defect exactly, where `deferred_coverage` rode the plan
537
537
  // and the run shipped an EU-only clean with no row saying the US register was never searched.
538
538
  const deferred = entry.deferredScope ?? [];
539
539
  const oneDeferred = deferred.length === 1;
@@ -7,7 +7,7 @@
7
7
  // `unit.md` is provider-INDEPENDENT doctrine, and it named three provider-DEPENDENT tools flat:
8
8
  // "Your register key also carries register_record_fetch, register_image_fetch and register_batch_screen."
9
9
  // On a signa deployment two thirds of that sentence is false and the seat is told it holds tools its
10
- // grant does not carry; the same shape is 's subject across six
10
+ // grant does not carry; the same shape is the subject across six
11
11
  // providers. A dispatch that asserts a capability the active provider lacks is the defect, whatever the
12
12
  // seat then does with it.
13
13
  //
@@ -39,7 +39,7 @@ export const HELD_BUT_NOT_CALLED = Object.freeze([
39
39
  * ✕ NULL IS NOT AN EMPTY SENTENCE, and the difference is the defect this exists to fix. Ask
40
40
  * `providerUnavailableRegisterTools` on an unresolved provider and it answers with an empty withheld
41
41
  * set — deliberately, as a reporting helper that must never throw. Composed into this sentence, an empty
42
- * withheld set reads as "your grant carries all of them": 's defect, restored
42
+ * withheld set reads as "your grant carries all of them": the defect, restored
43
43
  * silently, on exactly the `--experiment` single-stage path a diagnosis reaches for. So resolution is
44
44
  * asked for HERE, and an unresolved provider omits the sentence rather than composing a false one.
45
45
  */
@@ -74,7 +74,7 @@ export const PLAN_PREDICATES = ["exact", "default", "wildcard", "phonetic", "own
74
74
  // ratified mark or its dominant element, i.e. run input. Until now the only marking was a `+form` suffix
75
75
  // inside a qid string, and the wildcard fringe carried none at all — so nothing downstream could tell a
76
76
  // generated term from an imagined one without re-deriving the band. OPTIONAL on the entry: a frozen
77
- // pre- plan carries none and resumes byte-identical, and replay verdicts over archived runs never flip.
77
+ // pre-change plan carries none and resumes byte-identical, and replay verdicts over archived runs never flip.
78
78
  /**
79
79
  * THE ROMANISATION THE PLAN ALREADY HOLDS FOR A TERM — (cause 2).
80
80
  *
@@ -470,7 +470,7 @@ const slug = (s) => latinFold(s) || "q";
470
470
  // So a non-Latin term's identity carried nothing about WHICH TERM IT IS. It was its position in the
471
471
  // compile order — and the counter is per-plan, not per-script, so adding a Devanagari term renumbers
472
472
  // the Cyrillic ones. Fourth site of a Latin normaliser standing where an identity should be, after
473
- // 's fold key, 's script-exact arm and 's term-substance check.
473
+ // That fold key, the script-exact arm and the term-substance check.
474
474
  //
475
475
  // ── WHAT IT COSTS, MEASURED ON THE SHIPPED extendRegisterPlan RATHER THAN REASONED ────────────
476
476
  //
@@ -1277,7 +1277,7 @@ export function entryQuestionKey(entry, plan) {
1277
1277
  * straight out of model-authored common-law markdown, and it is where R2b's two heading
1278
1278
  * rows entered a plan that had already been declared clean.
1279
1279
  *
1280
- * — AND IT SCREENS FOR THE QUESTION, not just the qid. Same argument as 's term screen and
1280
+ * — AND IT SCREENS FOR THE QUESTION, not just the qid. Same argument as the term screen and
1281
1281
  * the same funnel: an entry whose resolved question is already in the plan is refused here, because
1282
1282
  * this is the one place that holds both the plan and the incoming row. See entryQuestionKey above
1283
1283
  * for what "the same question" means and why `regions` is the field that hides it.
@@ -1498,7 +1498,7 @@ export function parseRegisterPlan(raw) {
1498
1498
  // owner is a defect, never a silent no-op filter.
1499
1499
  if (e.owner != null && (typeof e.owner !== "string" || !e.owner.trim()))
1500
1500
  throw new Error(`register_plan_owner_invalid:${short(e.qid)} (owner must be a non-empty string when present)`);
1501
- //: optional (a frozen pre- plan has none), closed when present — an off-enum value would
1501
+ //: optional (a frozen pre-change plan has none), closed when present — an off-enum value would
1502
1502
  // make the floor/model marking unreadable exactly where it is load-bearing.
1503
1503
  //: optional (a frozen pre-2050 plan has none), and closed to the single value `true` when
1504
1504
  // present — a falsy or string-shaped stamp would make the depth fold's designation unreadable
@@ -1532,7 +1532,7 @@ export function parseRegisterPlan(raw) {
1532
1532
  * { executed: [{qid, state, records, total_hits}], missing: [qid], skipped: [{qid, guard}],
1533
1533
  * unplanned: [{qid|query}] }
1534
1534
  * `records` and `total_hits` are each a number or null, and BOTH KEYS ARE ALWAYS WRITTEN.
1535
- * That is load-bearing, not tidiness: `planJoinFrom` tells a pre- receipt from a count the
1535
+ * That is load-bearing, not tidiness: `planJoinFrom` tells a pre-change receipt from a count the
1536
1536
  * provider could not take by whether the keys are PRESENT, because `null` and absent are the same
1537
1537
  * value once read. Omit a key here and every new receipt silently reads as legacy — the arm named
1538
1538
  * "the discriminator's PREMISE" fails if this stops holding.
@@ -1628,7 +1628,7 @@ export function joinPlanToBands(plan, bandBlocksByAxis) {
1628
1628
  //
1629
1629
  // 1. THE PROVIDER MUST HAVE ANSWERED. Deferral is earned by a band block stamped `error:true` with the
1630
1630
  // provider's own reason on it. A qid with NO block ran nothing and recorded nothing — an absence,
1631
- // not a finding — and still throws. That is 's condition, untouched: a genuinely-unrun,
1631
+ // not a finding — and still throws. That is the condition, untouched: a genuinely-unrun,
1632
1632
  // undisclosed slice fails the run.
1633
1633
  // 2. THE LADDER MUST BE SPENT, WHERE THE LADDER CAN DO ANYTHING. Only a qid the run has ALREADY
1634
1634
  // recorded as missing (or already deferred this way) converts. On its first fan-in a hard-errored
@@ -1847,7 +1847,7 @@ export function deriveCoverageSkeleton(plan, join) {
1847
1847
  * predicate, no clean-claim precondition — had already fired and returned first. Main's own doc block
1848
1848
  * called that pair a deliberate superset/subset. So the fold removes a token the validator could not
1849
1849
  * reach, not a check. THE FOLD IS PROVED BY THE REPLAY CORPUS, not by that argument: the corpus flips
1850
- * only where the SUPERSET stops firing, and it comes back to 's 9 with the superset alone restored.
1850
+ * only where the SUPERSET stops firing, and it comes back to the 9 with the superset alone restored.
1851
1851
  * (The argument alone has a hole — this function keys its skeleton map on raw `s.axis` and the superset
1852
1852
  * trims, so an untrimmed skeleton axis would separate them. Degenerate, and no preserved run carries it.)
1853
1853
  *
@@ -2066,7 +2066,7 @@ function undisclosedDeferredQids(skeletonAxis, text) {
2066
2066
  * WHY THIS AND NOT A LOUDER HINT. The doctrine already reached the stage as advice on the first dispatch
2067
2067
  * (deferredSlicesRequiredRows, formerly the A8 "hint") and the stage claimed clean anyway, then complied
2068
2068
  * the moment the identical fact came back as a validator failure — R1 681s→202s, R2 515s→77s, every
2069
- * prelim run that reaches the digest. A fact that is obeyed as a failure and ignored as an input is not
2069
+ * clearotron run that reaches the digest. A fact that is obeyed as a failure and ignored as an input is not
2070
2070
  * being said too quietly; it is being offered rather than required. So it is required here.
2071
2071
  *
2072
2072
  * DELIBERATELY A SUPERSET of the deferred branch below, and the older gate is kept rather than folded
@@ -330,7 +330,7 @@ export function recordsForMark(doc, name) {
330
330
  * WHAT REPLACES A FOREIGN URL, and why it is not an origin swap: `null`, so the surfaces fall through to
331
331
  * `recordId` — the `/mark/<cc>/<number>` path that IS the canonical record identity this system stores.
332
332
  * The reader gets the record number in plain text beside the office label, which is word for word the
333
- * remedy 's refusal message prescribes. Composing the run provider's origin onto the path instead
333
+ * remedy the refusal message prescribes. Composing the run provider's origin onto the path instead
334
334
  * would invent a URL nobody fetched, and on `free-tier` there are two offices and no single origin to
335
335
  * swap to.
336
336
  *
@@ -394,7 +394,7 @@ export function recordsLine(entry) {
394
394
  + `appears here.`
395
395
  : "";
396
396
  // — the ordered territories this register never covered. Appended to whichever sentence comes
397
- // back, and needed most in the EMPTY-LIST branch below for the same reason 's note is: "the
397
+ // back, and needed most in the EMPTY-LIST branch below for the same reason the note is: "the
398
398
  // register returned none under the name or any close variation of it" is a clean negative, and over a
399
399
  // matter that ordered Japan on a register with no Japanese coverage it is a false one.
400
400
  const outside = entry.deferredScope ?? [];
@@ -328,7 +328,7 @@ export function assembleRunRecords(runDir, runPrefix,
328
328
  writeFileSync(driverDir(runDir, "receipts.json"), JSON.stringify({ schema_version: 1, receipts: rows }, null, 2) + "\n");
329
329
  }
330
330
  } catch { /* best-effort — the records map above remains the gate substrate */ }
331
- // 's legacy-name notice is REPLACED, not deleted. That one told an operator which of four
331
+ // That legacy-name notice is REPLACED, not deleted. That one told an operator which of four
332
332
  // global candidates was being read; nothing reads any of them for a new run any more, so the sentence
333
333
  // had become false. What an operator still needs is the fact underneath it: a box upgraded across this
334
334
  // change is carrying a large global record log that is now written by nothing and read by nothing —
@@ -338,7 +338,7 @@ export function assembleRunRecords(runDir, runPrefix,
338
338
  //
339
339
  // AND THE CALL LEDGER'S OWN NOTICE MOVES HERE RATHER THAN DYING WITH IT. `ledgerDeprecationNotice` had
340
340
  // exactly one product caller — the record line above — so deleting that line would have left NOTHING
341
- // announcing the ledger that is still global, still live and still on production's pre- filename.
341
+ // announcing the ledger that is still global, still live and still on production's pre-change filename.
342
342
  // Gated on the path ACTUALLY WALKED: the notice re-resolves from the environment, so on a call that
343
343
  // passed an explicit `callLogPath` it would describe a file this assembly never opened, and a
344
344
  // diagnostic that names something other than what happened is worse than no diagnostic.
@@ -951,7 +951,7 @@ const recClasses = (rec) => {
951
951
  * WHICH owner name a delivery artifact SHOWS. ONE definition, deliberately, because the renderer
952
952
  * and bindFindingsToRecords each resolve the owner independently — publish/render.mjs does its own
953
953
  * record lookup and preferred the record outright, so binding the finding alone changed no heading and
954
- * no lint surface. A second copy of the same decision is how 's provider default survived two fixes.
954
+ * no lint surface. A second copy of the same decision is how the provider default survived two fixes.
955
955
  *
956
956
  * The record decides, not a guess about what "looks romanised": a record carrying BOTH a Latin name and
957
957
  * a native-script one is itself saying the Latin field is a transliteration, and only then does a
@@ -227,7 +227,7 @@ export function accountRemedyTerms({ terms = [], blocksByQid = new Map(), execut
227
227
  }
228
228
 
229
229
  /**
230
- * THE CLOSURE READ ('s second criterion). `domClosed` may be true only over the ACCOUNTED set: a
230
+ * THE CLOSURE READ (the second criterion). `domClosed` may be true only over the ACCOUNTED set: a
231
231
  * dominant-element directive must be verified-closed AND every remedy term that directive restated must
232
232
  * be `found` or `searched-empty`. One unaccounted term and the dominant-element gap is not closed —
233
233
  * because it demonstrably is not: something the remedy named either never ran or ran into a shape the
@@ -199,7 +199,7 @@ export const REPAIR_COMPOSERS = [
199
199
  // before/after run-pairs read identically, because a clearance narrative's job IS to state what
200
200
  // was searched and what came back — the legitimate sentence and the defective one have the same
201
201
  // shape and differ only in truth. The typed half of this class IS enforced structurally, on the
202
- // corrective pair, by `evidenceClaimViolations` (, pipeline.mjs ~10973) — but it reads
202
+ // corrective pair, by `evidenceClaimViolations` (pipeline.mjs ~10973) — but it reads
203
203
  // `findings.json` meters, and a narrative sentence with no findings-side counterpart is invisible
204
204
  // to it. That prose gap is conversion-era work, not an instruction. This is the instruction.
205
205
  `A REPAIR MAY NARROW A CLAIM AND MAY NEVER BROADEN ONE. If a flagged statement is wrong because it claims too much, the correction states LESS: strike the claim, or replace it with the smaller claim the evidence actually carries. Never restate the same claim in different words, and never replace a specific sentence with a general one. NARROWING IS NOT HEDGING and the rule above still holds — claiming less is a correction; keeping the claim and wrapping it in "may", "appears to" or "broadly" is the hedge that is forbidden.`,
@@ -233,7 +233,7 @@ export const REPAIR_COMPOSERS = [
233
233
  review,
234
234
  );
235
235
  },
236
- // TWO SAMPLES BECAUSE THE COMPOSER HAS TWO SHAPES, and 's saving is the whole point of the
236
+ // TWO SAMPLES BECAUSE THE COMPOSER HAS TWO SHAPES, and the saving is the whole point of the
237
237
  // second: a declared scope narrows the pass, an undeclared one leaves it byte-identical to what it
238
238
  // was before that existed. A guard walking only one of them walks half the surface.
239
239
  samples: [
@@ -139,7 +139,7 @@ export function aggregateFailureRecurrence({ enumerate = enumerateRuns, now = Da
139
139
  // different orders), so it never enters bySig — but a count that nobody prints is a diagnostic
140
140
  // computed and dropped, which is the class this issue belongs to.
141
141
  const refusals = { count: 0, runIds: [], stages: [] };
142
- // — counted and NAMED, never dropped: 's shape immediately above, for the same reason. A park
142
+ // — counted and NAMED, never dropped: the shape immediately above, for the same reason. A park
143
143
  // whose class was "unknown" over a reason a validator had already structured is a gap in the
144
144
  // classifier, not an unknowable failure, and the digest is where an operator would ever see it. It is
145
145
  // reported BESIDE the groups rather than inside them: it is a fact about how a failure was classified,
@@ -219,7 +219,7 @@ export function renderFailureRecurrence(agg) {
219
219
  ].filter(Boolean).join("\n")
220
220
  : null;
221
221
  if (!agg.groups.length) {
222
- return `No prelim failures or auto-recovery parks in the last ${agg.days} days.${refusalLine ? `\n${refusalLine}` : ""}${gapLine ? `\n${gapLine}` : ""}`;
222
+ return `No clearotron failures or auto-recovery parks in the last ${agg.days} days.${refusalLine ? `\n${refusalLine}` : ""}${gapLine ? `\n${gapLine}` : ""}`;
223
223
  }
224
224
  const head = (g) =>
225
225
  `${n(g.runIds.length, "run")} ${g.sig} [${g.failClass ?? "?"}] ` +
@@ -247,7 +247,7 @@ export function renderFailureRecurrence(agg) {
247
247
  }
248
248
 
249
249
  // CLI: `node repair-digest.mjs [--days N]` — the ops-digest generator (scripts/ops-digest-daily.sh)
250
- // invokes this and pastes the output into its "Prelim Failure Recurrence" section.
250
+ // invokes this and pastes the output into its "Clearotron Failure Recurrence" section.
251
251
  if (isEntrypoint(import.meta.url)) {
252
252
  const ix = process.argv.indexOf("--days");
253
253
  const days = ix >= 0 ? Math.max(1, Number(process.argv[ix + 1]) || 7) : 7;
@@ -59,7 +59,7 @@ export const REFUSAL_TERMINAL_KIND = "designed-refusal";
59
59
  // rejection carried one, and the errno tokens below matched it; but undici reports a codeless fault as
60
60
  // a bare `TypeError: fetch failed` (no cause.code), and that line — transport noise by construction —
61
61
  // carried no token either regex knew, so it classified DETERMINISTIC at fan-in: loud-terminal, but it
62
- // defeated 's weather lane for exactly the unreachable-provider case the lane exists for.
62
+ // defeated the weather lane for exactly the unreachable-provider case the lane exists for.
63
63
  export const TRANSIENT_RE = /\btimeout\b|\blane_wedge\b|\bembedded_fallback\b|\bnonzero_exit|\bunparseable_json\b|\bstatus_(timeout|overloaded|error|aborted|rate_limited)\b|\brate_limited\b|\boverloaded\b|\beconnreset\b|\betimedout\b|\benotfound\b|\beai_again\b|socket hang\s?up|\bhttp\s?5\d\d\b|\btransport failure\b/i;
64
64
 
65
65
  // STRUCTURAL REFUSAL: the provider ANSWERED, and its answer is a verdict on the REQUEST. The remedy is
@@ -140,7 +140,7 @@ export const DETERMINISTIC_RE = /\bhttp\s?4(0[0349]|1[04])\b|uri too long|own no
140
140
  //
141
141
  // The axis outcome survives as evidence in exactly one case: THE AXIS LANDED NOTHING. Zero qid-stamped
142
142
  // blocks means the executor never wrote, so its transport failure really is this slice's story and
143
- // 's weather lane keeps working for the dead-provider case it exists for. Once the axis HAS landed
143
+ // That weather lane keeps working for the dead-provider case it exists for. Once the axis HAS landed
144
144
  // qid-stamped blocks the executor demonstrably ran and wrote, and this qid's absence is an identity or
145
145
  // coverage hole that no repair outcome from its axis speaks to.
146
146
  //
@@ -309,7 +309,7 @@ const overflowOf = (tail) => { const m = OVERFLOW_RE.exec(tail.trim()); return m
309
309
  // The leading CAUSE CENSUS is the exact count stamped at the throw site, so the total is the sum of its
310
310
  // numbers — no comma-splitting, and therefore immune to the over-count a query containing a comma used to
311
311
  // cause. LEGACY SHAPES still parse and must: this text path exists for the run-level catch, which sees
312
- // prose only, and a resumed or archived run can still carry a pre- token
312
+ // prose only, and a resumed or archived run can still carry a pre-change token
313
313
  // (`connotation_undisposed:<census>;…`, `<q1,q2,…>[ (+N more)]`). A stale token that stopped counting
314
314
  // would read as a MISSING quantity, which is what a converged run looks like.
315
315
  // The validator's exact count still rides as `quantity` at the throw site and always wins.
@@ -329,7 +329,7 @@ function undisposedCount(tail) {
329
329
  // was cut short of its payload — ABSENT, not converged.
330
330
  return named ? named + overflow : null;
331
331
  }
332
- // A pre- archived token: `connotation_recurrent_uncited:<one result, ≤80 chars>[ (+N more)]` — ONE
332
+ // A pre-change archived token: `connotation_recurrent_uncited:<one result, ≤80 chars>[ (+N more)]` — ONE
333
333
  // named result plus the overflow. Never split on commas: that payload is a copied result title, not a
334
334
  // joined list. Nothing emits this shape any more; it is kept so a resumed run's own history still counts.
335
335
  function recurrentCount(tail) {
@@ -621,7 +621,7 @@ export function capParkSchedule({ resetsAt = null, attempts = 0, now = Date.now(
621
621
  /**
622
622
  * capWaitFrom — what a run actually spent WAITING on a provider's cap, read off the park history.
623
623
  *
624
- * tracker issue 103's fourth ask: a run that still dies on a cap has to SAY it was a cap, and say how
624
+ * The ask: a run that still dies on a cap has to SAY it was a cap, and say how
625
625
  * long it held out. The park history is the only record that survives a park/resume cycle, so it is the
626
626
  * only place that answer can come from at the terminal.
627
627
  *
@@ -695,7 +695,7 @@ export function humanWait(min) {
695
695
  // failure's `quantity` and the last recorded quantity for the SAME signature in the park history. It
696
696
  // changes no branch below and no caller reads it as an input: the point of the issue is that the
697
697
  // comparison can SEE 25 → 9 → 9 as different from 29 → 11 → 0, where today both hash identically.
698
- // What the machinery DOES with that difference is 's decision, not this function's.
698
+ // What the machinery DOES with that difference is the decision, not this function's.
699
699
  export function decideRecovery({ failClass, sig, reason = "", history = [], priorAttempts = 0, recoveryMax = 3, nonRecoverable = false, hasRunDir = true, runCeiling = null, weatherAttempts = 0, defectAttempts = null, weatherCeiling = null, quantity = null }) {
700
700
  const hist = Array.isArray(history) ? history : [];
701
701
  const sigAttempts = hist.filter((h) => h?.sig === sig).length;
@@ -217,6 +217,8 @@ export function diffSnapshots(prev, curr) {
217
217
 
218
218
  function main() {
219
219
  const args = new Set(process.argv.slice(2));
220
+ // ON-DISK NAME, NOT A PRODUCT NAME: an install that never set the variable already has this file, so
221
+ // renaming the default points the reader at one that does not exist. Owner ruling, tracker issue 308.
220
222
  const snapshotPath = process.env.CLEAROTRON_REPLAY_SNAPSHOT || join(homedir(), ".prelim-replay-snapshot.json");
221
223
  const roots = process.env.CLEAROTRON_REPLAY_ROOTS
222
224
  ? process.env.CLEAROTRON_REPLAY_ROOTS.split(":").filter(Boolean)
@@ -64,7 +64,7 @@ const BODY_FLOOR_CHARS = 60;
64
64
  * READ FROM THE RUN, not from the payload. The card's `- Source:` bullet is declared
65
65
  * `mechanical:code-rendered` and the record already carries `source.resolved_link`, so the seat is not
66
66
  * asked for a URL it would have to compose from a host table it is not even given — the transcription
67
- * class in its purest form, and 's link-to-nowhere in a document a client reads.
67
+ * class in its purest form, and the link-to-nowhere in a document a client reads.
68
68
  */
69
69
  export function findingForOrdinal(runDir, ordinal) {
70
70
  return findingsDocFor(runDir, ordinal).finding;
@@ -187,7 +187,7 @@ export function renderReportCard(model, finding, { registerLabel = "" } = {}) {
187
187
  // ── THE RISK READ IS A STRUCTURE, NOT A DICTATED HABIT ( D3) ─────────────────────────────────
188
188
  //
189
189
  // render.mjs suppresses the typed `legal_position` / `practical_position` pair on any card whose prose
190
- // already carries a "Risk assessment"-led bullet (, ONE ACCOUNT PER FACT). That gate reads a lead
190
+ // already carries a "Risk assessment"-led bullet (ONE ACCOUNT PER FACT). That gate reads a lead
191
191
  // this stage's dispatch calls OPTIONAL and this acceptance never checked — the card contract's §L
192
192
  // requirement was a HABIT, in exactly the sense the card index was one before the driver bound it.
193
193
  //
@@ -12,7 +12,7 @@
12
12
  // property of the WRITING SITE, not of the name — a field called `outcome` carrying an outcome is fine,
13
13
  // and a field called `settled` carrying a dispatch return is the defect. Only reading the writer tells
14
14
  // them apart, so the population is SPLIT and classified rather than filtered down to the offenders.
15
- // Both halves are kept, for 's reason: a filtered population produces no number, and nobody can see
15
+ // Both halves are kept, for the reason: a filtered population produces no number, and nobody can see
16
16
  // what was hidden.
17
17
  //
18
18
  // ── THE TWO HALVES ──────────────────────────────────────────────────────────────────────────────────
@@ -48,7 +48,7 @@
48
48
  // `outcome` for existing readers beside `dispatch` and `verdict`).
49
49
  // "out-of-scope" — never reaches `_driver/*.json` or `run.jsonl`; `atWriteSite` is 0.
50
50
 
51
- /** The result nouns this sweep is about — 's list, verbatim. */
51
+ /** The result nouns this sweep is about — the list, verbatim. */
52
52
  export const RESULT_NOUNS = Object.freeze(["outcome", "executed", "permanent", "settled", "closed", "recovered", "verified"]);
53
53
 
54
54
  export const RESULT_NOUN_FIELDS = Object.freeze([
@@ -66,7 +66,7 @@ export const RESULT_NOUN_FIELDS = Object.freeze([
66
66
  { file: "driver/pipeline.mjs", noun: "executed", sites: 4, atWriteSite: 3, verdict: "result",
67
67
  why: "lengths of the executed set as the join computed it" },
68
68
  { file: "driver/pipeline.mjs", noun: "outcome", sites: 11, atWriteSite: 6, verdict: "result",
69
- why: "the one member that reported an invocation — taint-rerun's `r.ok ? \"ok\" : …`, which travels on a StageFailure packet — now carries a `cleared` sibling read from the taint, #1529's remedy 10/5 -> 11/6 at tracker issue 1886: the profile-store receipt's `outcome: pr.outcome`. Classified by READING ITS WRITING SITE, which is profiles.mjs and not this file: the value is one of three literals chosen by a situation the resolver decided (`overlay` and `bundled-fallback` are `pass`, `env-arrived-late` is `blocked`), never a call's return read as a verdict. `bundled-fallback` being `pass` is the point of the whole receipt — a legitimate install that nobody was told about is what this row says out loud." },
69
+ why: "the one member that reported an invocation — taint-rerun's `r.ok ? \"ok\" : …`, which travels on a StageFailure packet — now carries a `cleared` sibling read from the taint, the remedy 10/5 -> 11/6 at the profile-store receipt's `outcome: pr.outcome`. Classified by READING ITS WRITING SITE, which is profiles.mjs and not this file: the value is one of three literals chosen by a situation the resolver decided (`overlay` and `bundled-fallback` are `pass`, `env-arrived-late` is `blocked`), never a call's return read as a verdict. `bundled-fallback` being `pass` is the point of the whole receipt — a legitimate install that nobody was told about is what this row says out loud." },
70
70
  { file: "driver/pipeline.mjs", noun: "permanent", sites: 1, atWriteSite: 1, verdict: "result",
71
71
  why: "`permanent.length` — a count of the classified set" },
72
72
  { file: "driver/pipeline.mjs", noun: "recovered", sites: 3, atWriteSite: 3, verdict: "result",
@@ -95,6 +95,13 @@ export const RESULT_NOUN_FIELDS = Object.freeze([
95
95
  { file: "driver/skills-store-provenance.mjs", noun: "outcome", sites: 6, atWriteSite: 0, verdict: "out-of-scope" },
96
96
  { file: "driver/status-snapshot.mjs", noun: "outcome", sites: 1, atWriteSite: 0, verdict: "out-of-scope" },
97
97
  { file: "mcp-server/lib/events.mjs", noun: "recovered", sites: 1, atWriteSite: 0, verdict: "out-of-scope" },
98
+ // Read at the writing site, as this table requires. All three sites are in `knockoutSearches`, a
99
+ // READ-ONLY projection that composes the rows `list_searches` answers with: it opens no artifact and
100
+ // writes nothing, so nothing here can reach `_driver/*.json` or `run.jsonl`. Each value is a literal
101
+ // chosen from the run's own stored record — "found" or "no-hit" from whether the mark has findings,
102
+ // and "recorded" for a register term whose stored row says it did NOT answer. None is a call's return
103
+ // read back as a verdict, which is the defect this table exists to find.
104
+ { file: "mcp-server/lib/knockout.mjs", noun: "outcome", sites: 3, atWriteSite: 0, verdict: "out-of-scope" },
98
105
  { file: "mcp-server/lib/ops.mjs", noun: "settled", sites: 1, atWriteSite: 0, verdict: "out-of-scope" },
99
106
  { file: "mcp-server/server.mjs", noun: "outcome", sites: 1, atWriteSite: 0, verdict: "out-of-scope" },
100
107
  { file: "scripts/backfill-started-at.mjs", noun: "outcome", sites: 5, atWriteSite: 0, verdict: "out-of-scope" },
@@ -87,7 +87,7 @@
87
87
  // `modelUsed`. So the rows can now answer "what ran", per record, wherever the wire reported.
88
88
  //
89
89
  // What has NOT changed is this module: `byBilling` / `byStage` / `dispatches` still key on `modelUsed`,
90
- // i.e. on what was asked for. Switching them to prefer `modelActual` is 's call, not a side effect
90
+ // i.e. on what was asked for. Switching them to prefer `modelActual` is the call, not a side effect
91
91
  //, and it cannot be a blanket flip — codex reports no model, and a killed turn may have none,
92
92
  // so a per-record basis is the only honest shape. `tokens.mjs` keys its rollup on the requested alias
93
93
  // for the same reason and is likewise untouched.
@@ -241,7 +241,7 @@ export const vendorOf = (engine) => ENGINE_VENDORS[String(engine ?? "")] ?? null
241
241
  //
242
242
  // CODE-SIDE IS NOT A VENDOR. `code:execute-plan` rides nearly every run (the driver executes the frozen
243
243
  // plan itself), stamps `authMode: "not-provider-billed"`, and costs no provider tokens. Counting it would
244
- // make every run in the product read as multi-vendor — the same defect as 's `web` channel, where a
244
+ // make every run in the product read as multi-vendor — the same defect as the `web` channel, where a
245
245
  // member the driver always adds made every run look unplanned. Provider-billed rows only, and the count
246
246
  // of what was set aside is reported so the exclusion is visible rather than assumed.
247
247
  //
@@ -42,7 +42,7 @@ import { DISPATCH_SUFFIX } from "./dispatch-record.mjs"; // — the dispa
42
42
  *
43
43
  * ONE PREDICATE, so the snapshot and any future arming decision cannot disagree about the set. Named
44
44
  * files are the driver-derived joins and receipts judgment reads; the dispatch records are what was
45
- * actually asked, including 's `.prev-<sha>` supersede chain.
45
+ * actually asked, including the `.prev-<sha>` supersede chain.
46
46
  *
47
47
  * ──: EVERY `.jsonl` IS OUT, BY PATTERN, AND A NEW SINK IS OUT THE MOMENT IT IS CREATED ────────
48
48
  *