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
package/bin/onboard.mjs CHANGED
@@ -133,7 +133,7 @@ const PROBE_ENGINE = has("--probe-engine");
133
133
  // issue 1871 — the same opt-in shape, for the credentials that had no proof at all. Never implied by
134
134
  // a plain --check: this SPENDS, and on two of the register adapters the count IS a billable search.
135
135
  const PROBE_PROVIDERS = has("--probe-providers");
136
- // tracker issue 149 — the same opt-in shape again, and this one WRITES: every registration it gets
136
+ // the same opt-in shape again, and this one WRITES: every registration it gets
137
137
  // accepted CREATES an OAuth client on the operator's account. `doctor` promises in INSTALL.md that it
138
138
  // writes nothing, and that promise is why a reader runs it on a production box without thinking. So
139
139
  // this is never implied, it says what it is about to create before it creates it, and it reports what
@@ -141,7 +141,7 @@ const PROBE_PROVIDERS = has("--probe-providers");
141
141
  const PROBE_CONNECTOR = has("--probe-connector");
142
142
 
143
143
  // ── output ───────────────────────────────────────────────────────────────────────────────────────────
144
- // WEIGHT WHERE THE MEANING IS (, owner ruling 2026-08-31). Every line here used to
144
+ // WEIGHT WHERE THE MEANING IS (owner ruling 2026-08-31). Every line here used to
145
145
  // be the same weight, which is why the passphrase and the coverage reason both disappeared into their
146
146
  // surroundings — two defects on that issue that are formatting defects wearing other clothes.
147
147
  //
@@ -693,8 +693,8 @@ export async function preflightCandidate(candidate) {
693
693
  /** Ask EUIPO for a token. This is the check that makes "refuses to persist a bad secret" true. */
694
694
  export async function validateEuipo({ clientId, clientSecret, environment }) {
695
695
  try {
696
- const { resolveConfig } = await import(join(REPO, "providers", "euipo", "src", "core.js"));
697
- const { getAccessToken } = await import(join(REPO, "providers", "euipo", "src", "euipo-client.js"));
696
+ const { resolveConfig } = await import(pathToFileURL(join(REPO, "providers", "euipo", "src", "core.js")).href);
697
+ const { getAccessToken } = await import(pathToFileURL(join(REPO, "providers", "euipo", "src", "euipo-client.js")).href);
698
698
  await getAccessToken(resolveConfig({ clientId, clientSecret, environment }), { force: true });
699
699
  return { ok: true };
700
700
  } catch (e) {
@@ -705,7 +705,7 @@ export async function validateEuipo({ clientId, clientSecret, environment }) {
705
705
  /** One minimal Perplexity call. Costs a request, so it is never made without being asked for. */
706
706
  export async function validatePerplexity(apiKey) {
707
707
  try {
708
- const { buildRequestBody, callAgentAPI } = await import(join(REPO, "providers", "perplexity", "src", "core.js"));
708
+ const { buildRequestBody, callAgentAPI } = await import(pathToFileURL(join(REPO, "providers", "perplexity", "src", "core.js")).href);
709
709
  await callAgentAPI(apiKey, buildRequestBody({ task: "Reply with the single word: ok.", preset: "fast-search" }), { retries: 0 });
710
710
  return { ok: true };
711
711
  } catch (e) {
@@ -1053,7 +1053,7 @@ export async function runCheck() {
1053
1053
  // deliberate — a second reader would drift from this one exactly as the composer and the checker did
1054
1054
  // in F41, and the drift is invisible because both sides keep passing their own arms.
1055
1055
  const unitDir = join(homedir(), ".config", "systemd", "user");
1056
- const { BACKGROUND_UNITS } = await import(join(REPO, "bin", "start.mjs"));
1056
+ const { BACKGROUND_UNITS } = await import(pathToFileURL(join(REPO, "bin", "start.mjs")).href);
1057
1057
  const hosted = BACKGROUND_UNITS.some((u) => existsSync(join(unitDir, u)));
1058
1058
  const unitEnv = hosted
1059
1059
  ? unitEnvironment({
@@ -1166,8 +1166,8 @@ export async function runCheck() {
1166
1166
  + "and the MCP connection are live right now; `npm run example` needs no engine.");
1167
1167
  info(`To leave demo: install ${engSpec.vendor}'s CLI (\`${engSpec.fallback}\`), then ${engSpec.signIn}.`);
1168
1168
  } else {
1169
- info("MODE: engine attached, sign-in UNPROVEN a binary resolves, and whether it can complete a turn "
1170
- + "is not knowable from the filesystem. --probe-engine is what settles it.");
1169
+ info("The engine program is installed. Whether it is signed in cannot be read from disk: run "
1170
+ + "clearotron doctor --probe-engine to find out.");
1171
1171
  }
1172
1172
 
1173
1173
  // item 5 — WHICH BILLING LANE, reported rather than left to be inferred from a variable's
@@ -1188,8 +1188,8 @@ export async function runCheck() {
1188
1188
  if (e) envForResolve[k] = e.v;
1189
1189
  }
1190
1190
  const auth = resolveAuthMode({ engineName: engineId, env: envForResolve });
1191
- if (auth.mode === "unknown") info(`billing lane: not policied for ${engineId} — this engine declares no auth modes`);
1192
- else ok(`billing lane: ${auth.mode}${auth.apiBilled ? ` — metered per token against ${engSpec.apiKeyEnv}` : " — drawn against the signed-in subscription, not metered per token"}`);
1191
+ if (auth.mode === "unknown") info(`billing: no policy for ${engineId} — this engine declares no sign-in modes`);
1192
+ else ok(`billing: ${auth.mode}${auth.apiBilled ? ` — charged per token against ${engSpec.apiKeyEnv}` : " — charged to the signed-in subscription, not per token"}`);
1193
1193
  } catch (e) {
1194
1194
  problem(String(e?.message ?? e));
1195
1195
  }
@@ -1366,7 +1366,7 @@ export async function runCheck() {
1366
1366
  // Both lines were honest about their own source and neither said what it was. The first reads this
1367
1367
  // command's env file; the second reads THIS PROCESS's resolution, and a CLI is started by a login
1368
1368
  // shell that carries none of the units' `EnvironmentFile`. The deployment was correct and served
1369
- // celsius, microsoft and generic throughout.
1369
+ // zephyr, aurora and generic throughout.
1370
1370
  //
1371
1371
  // THE UNITS' ENV IS NOT PASSED INTO `profileStoreResolution`, deliberately. `PROFILES_OVERLAY_DIR`
1372
1372
  // is captured when profiles.mjs LOADS, so handing it the units' value would set `live` with no
@@ -1513,7 +1513,7 @@ export async function runCheck() {
1513
1513
  //
1514
1514
  // REPORTS, NEVER JUDGES: nothing here sets `problem()`. Drift is information for the reader, not a
1515
1515
  // fault in their install, and a doctor that called their own overrides broken would be wrong.
1516
- say("\n Doctrine overlay");
1516
+ say("\n Custom instructions");
1517
1517
  try {
1518
1518
  const report = overlayReport({ baseRoot: config.skillsBaseDir, overlayRoot: config.skillsOverlayDir });
1519
1519
  for (const line of renderOverlayReport(report, { indent: "" })) say(` ${line}`);
@@ -1528,7 +1528,7 @@ export async function runCheck() {
1528
1528
  // answer for somebody running the engine by hand. This line is what the services see.
1529
1529
  const svcDoctrine = effectiveForService("CLEAROTRON_INSTRUCTIONS_DIR");
1530
1530
  if (hosted && serviceKnown && svcDoctrine?.v && svcDoctrine.v !== config.skillsOverlayDir) {
1531
- info(`the services read a doctrine overlay this process does not: ${svcDoctrine.v} `
1531
+ info(`the services read custom instructions this process does not: ${svcDoctrine.v} `
1532
1532
  + `(${svcDoctrine.from}). The lines above are this command's own environment — a CLI is not `
1533
1533
  + "started by the units' EnvironmentFile, so \"none configured\" here is not a statement about "
1534
1534
  + "the deployment");
@@ -1541,7 +1541,7 @@ export async function runCheck() {
1541
1541
  // An unreadable overlay THROWS by design (config.resolveSkillPath refuses rather than falling back
1542
1542
  // to the product's copy). Surfaced here rather than allowed to abort the whole check: the doctor's
1543
1543
  // job is to report every section, and a section that kills the run tells the reader least.
1544
- problem(`the doctrine overlay could not be read — ${e.message}`);
1544
+ problem(`the custom instructions could not be read — ${e.message}`);
1545
1545
  }
1546
1546
 
1547
1547
  say("\n Register provider");
@@ -1585,7 +1585,7 @@ export async function runCheck() {
1585
1585
  say("\n Research provider");
1586
1586
  const px = effective("PERPLEXITY_API_KEY");
1587
1587
  if (px) ok(`PERPLEXITY_API_KEY present (${px.from}) — presence only; add --probe-providers to prove it answers`);
1588
- else info("PERPLEXITY_API_KEY is not set — the three clearance searches carry the common-law grid and cannot switch it off, so a clearance refuses at preflight; a Knockout search still runs and discloses the half it skipped");
1588
+ else info("PERPLEXITY_API_KEY is not set — the three clearance searches carry the common-law grid and cannot switch it off, so a clearance stops before it starts, and names the missing key; a Knockout search still runs and discloses the half it skipped");
1589
1589
 
1590
1590
  // ── — THE LANES A PRODUCT DECLARES IT NEEDS, BEFORE A REPORT NAMES THEM ──
1591
1591
  //
@@ -1663,7 +1663,7 @@ export async function runCheck() {
1663
1663
  // could print, and the portal's own config view does — is deliberately not printed here: `doctor` goes
1664
1664
  // to a terminal, into a paste, into an issue.
1665
1665
  // THE ONE CONDITION THAT STOPS THE PORTAL RENDERING, and `doctor` said nothing about it at all
1666
- // (bb8, F2). `portal-ui/dist` is committed, so an absent bundle means a bad checkout on
1666
+ // (found in review). `portal-ui/dist` is committed, so an absent bundle means a bad checkout on
1667
1667
  // a deployment and an unbuilt tree on a source clone; the service already answers 503 and says so in
1668
1668
  // its boot log, but a reader who runs `doctor` BEFORE `start` — which is the order every document
1669
1669
  // gives — had no way to learn it. The product's OWN predicate decides rather than a second existence
@@ -1770,7 +1770,7 @@ export async function runCheck() {
1770
1770
  }
1771
1771
  }
1772
1772
 
1773
- say("\n Portal door");
1773
+ say("\n Portal sign-in");
1774
1774
  {
1775
1775
  const { authView } = await import("../driver/portal-config-view.mjs");
1776
1776
  const door = authView({
@@ -1785,10 +1785,11 @@ export async function runCheck() {
1785
1785
  // NOT A TICK, AND THAT IS THE POINT. This reads the environment THIS command is
1786
1786
  // typed in. `bin/start.mjs` INJECTS `PORTAL_AUTH_MODE: "local"` into the portal's own environment,
1787
1787
  // and a systemd unit's EnvironmentFile can name a third thing — so a green tick here was a
1788
- // confident claim about a door the running service may not be serving. Measured on the test box:
1789
- // doctor said `auth-proxy door (PORTAL_AUTH_MODE is unset)` with a tick while the box served
1790
- // cf-access, and said `local passphrase door` with a tick while it still served cf-access. Both
1791
- // green, neither the door a caller meets.
1788
+ // confident claim about a door the running service may not be serving. Measured on the test
1789
+ // machine, in the wording doctor used at the time: it said `auth-proxy door (PORTAL_AUTH_MODE is
1790
+ // unset)` with a tick while the machine served cf-access, and said `local passphrase door` with a
1791
+ // tick while it still served cf-access. Both green, neither the door a caller meets. Those two
1792
+ // lines read differently now; what they claimed is the point, not how they were worded.
1792
1793
  //
1793
1794
  // The reading is still worth printing — it is what a hand-run process here would use, and it is
1794
1795
  // what `clearotron start` would launch from. It is stated as that, and the sentence below says
@@ -1808,7 +1809,7 @@ export async function runCheck() {
1808
1809
  say(` · local passphrase door (${typed}) — one operator, one passphrase, no identity provider`);
1809
1810
  info(`a lost passphrase is recoverable: ${invocationPrefix()}clearotron passphrase --reset`);
1810
1811
  } else if (door.shape === "fronted") {
1811
- say(` · auth-proxy door (${typed}) — identity is proved by whatever sits in front, and this process trusts it`);
1812
+ say(` · Sign-in: handled by a proxy in front (${typed}) — identity is proved by whatever sits in front, and this process trusts it`);
1812
1813
  for (const v of door.proxyValues) {
1813
1814
  if (v.present) ok(` ${v.name} present`);
1814
1815
  else info(` ${v.name} not set`);
@@ -1908,8 +1909,8 @@ export async function runCheck() {
1908
1909
  say("\n Register lane — proven, not inferred");
1909
1910
  try {
1910
1911
  const [{ activeProvider }, { makeLaneProbe, probeSpend, DEFAULT_CONTROLS, loadProviderCapabilities }] = await Promise.all([
1911
- import(join(REPO, "driver", "driver.config.mjs")),
1912
- import(join(REPO, "providers", "_shared", "lane-probe.mjs")),
1912
+ import(pathToFileURL(join(REPO, "driver", "driver.config.mjs")).href),
1913
+ import(pathToFileURL(join(REPO, "providers", "_shared", "lane-probe.mjs")).href),
1913
1914
  ]);
1914
1915
  const adapter = activeProvider();
1915
1916
  // NOT `adapter.capabilities` — that is null on every adapter, and reading it announced a LOCAL
@@ -1952,7 +1953,7 @@ export async function runCheck() {
1952
1953
  }
1953
1954
  }
1954
1955
 
1955
- say("\n Data-plane paths");
1956
+ say("\n Where files are stored");
1956
1957
  // Each entry is a FUNCTION, called only on the branch that prints it, so a getter is read at access
1957
1958
  // time and never captured as a constant here. The reader of this command is deciding what to
1958
1959
  // provision; a default quoted from memory is the one thing that can send them to the wrong path and
@@ -1963,7 +1964,7 @@ export async function runCheck() {
1963
1964
  // whole rather than summarised: a summary is a second copy, and a second copy is what drifted.
1964
1965
  ["CLEAROTRON_REPORTS_DIR", (name) => {
1965
1966
  const d = defaultWith(name, () => config.poolRoot);
1966
- return d.refusal ?? `${name} is not set — the published-report pool falls back to ${d.value}`;
1967
+ return d.refusal ?? `${name} is not set — the published-reports folder falls back to ${d.value}`;
1967
1968
  }],
1968
1969
  ["CLEAROTRON_WORK_DIR", (name) => {
1969
1970
  const d = defaultWith(name, () => config.workspaceRoot);
@@ -1985,67 +1986,6 @@ export async function runCheck() {
1985
1986
  // The status surface the ruling names: "status should say whether a key is still valid". Stopping
1986
1987
  // the door revokes nothing — a key outlives every teardown until it expires or its id is denylisted —
1987
1988
  // so a doctor that reported the unit and stayed silent about the keys would bless exactly the state
1988
- // the issue was filed about. Judged by the verifier's own pieces (`connectKeyReport` takes the real
1989
- // `isRevoked`), never by a second opinion written here.
1990
- // ── THE PROFILE STORE RESOLVES, OR THE PORTAL 500s ────────────────────────
1991
- //
1992
- // Asked by RUNNING the engine's own resolution, not by re-deriving it: loadProfiles() layers the
1993
- // configured store over the bundled base with generic falling through by name, and its refusal text
1994
- // is the exact line the portal prints on every screen when this is broken. A doctor that stayed
1995
- // green over that state would bless the owner's fresh-install 500.
1996
- say("\n Profile store");
1997
- try {
1998
- const { loadProfiles } = await import(join(REPO, "driver", "profiles.mjs"));
1999
- const resolved = loadProfiles({ force: true });
2000
- const named = [...resolved.keys()];
2001
- ok(`resolves: ${named.length} profile(s) (${named.slice(0, 6).join(", ")}${named.length > 6 ? ", …" : ""}) — the universal fallback is present`);
2002
- } catch (e) {
2003
- problem(`the profile store does NOT resolve — every portal profile screen and every run refuses on this: ${e.message}`);
2004
- }
2005
-
2006
- // ── THE SUBMIT LANE, WALKED (the owner's 502, 2026-09-02) ────────────────────────────────────────
2007
- //
2008
- // Every surface on that box was green while the portal's Start button had no engine to call. This is
2009
- // the only check that asks the question the client's own path asks, so it goes before the connector
2010
- // section: a dead submit lane matters more than a connector nobody has configured yet.
2011
- // ── SETTINGS THIS BUILD DOES NOT READ ( tracker issue 168) ────────────────────────────────────────
2012
- //
2013
- // THE SURFACE AN OPERATOR CHECKS AFTER AN UPGRADE, and until now the surface that told them
2014
- // everything was fine. Upgrading the production install across the `PRELIM_*` rename left thirteen
2015
- // configured settings with no reader in the new build; doctor exited 0 and mentioned none of them.
2016
- //
2017
- // EVERY ENVIRONMENT THE DEPLOYMENT ACTUALLY READS, not this shell's alone — the F34 lesson one step
2018
- // on. A hosted box's values live in the file the units load, so checking `process.env` here would
2019
- // pass a box whose units carry thirteen dead lines. Each source is named in its own row: "it is in
2020
- // your env file" and "it is in the units' environment" are different fixes.
2021
- //
2022
- // A source that could not be read is NOT reported as clean. `unitEnvironment` already distinguishes
2023
- // that, and an unreadable unit environment is said out loud rather than counted as zero dead names —
2024
- // an absence of evidence is not evidence of absence, and this whole check exists because something
2025
- // invisible was being read as fine.
2026
- {
2027
- const { retiredSpellingsIn, retiredSpellingLine } = await import(join(REPO, "shared", "env-aliases.mjs"));
2028
- const sources = [
2029
- { label: "your environment file", env: fileEnv, known: true },
2030
- { label: "this shell's environment", env: process.env, known: true },
2031
- ];
2032
- if (hosted) sources.push({ label: "the units' environment", env: unitEnv?.env, known: unitEnv?.known === true });
2033
-
2034
- const seen = new Set();
2035
- let anyUnknown = false;
2036
- for (const src of sources) {
2037
- if (!src.known || !src.env) { if (src.label === "the units' environment") anyUnknown = true; continue; }
2038
- for (const row of retiredSpellingsIn(src.env)) {
2039
- // One row per NAME, not per source: a name set in both the file and the units is one thing to
2040
- // fix, and two rows would read as two faults.
2041
- if (seen.has(row.name)) continue;
2042
- seen.add(row.name);
2043
- inertSetting(`${retiredSpellingLine(row)} (found in ${src.label})`);
2044
- }
2045
- }
2046
- if (anyUnknown) warn(couldNotDetermine("retired setting names", unitEnv));
2047
- if (!seen.size && !anyUnknown) ok("no retired setting names — every configured name is one this build reads");
2048
- }
2049
1989
 
2050
1990
  // LINGERING, WHICH NOTHING ELSE CHECKS ( — F9). `--background` installs USER units,
2051
1991
  // and a user manager without lingering is torn down at logout: the units stop with the session and
@@ -2075,9 +2015,9 @@ export async function runCheck() {
2075
2015
  + "failing to look, not a report that it is off.");
2076
2016
  }
2077
2017
 
2078
- say("\n Submit lane");
2018
+ say("\n Start-button path");
2079
2019
  try {
2080
- const { triggerLaneVerdict, HOSTED, SUPERVISED } = await import(join(REPO, "shared", "trigger-lane.mjs"));
2020
+ const { triggerLaneVerdict, HOSTED, SUPERVISED } = await import(pathToFileURL(join(REPO, "shared", "trigger-lane.mjs")).href);
2081
2021
  // POSTURE FROM THE BOX, NOT FROM A FLAG. Units installed means the units serve, and the units read
2082
2022
  // %h/.env — so an absent value there is the incident. No units means `start` supervises and derives
2083
2023
  // the value at runtime, where reading this process's environment says nothing either way.
@@ -2117,7 +2057,7 @@ export async function runCheck() {
2117
2057
  // Stop control's availability on — one reader, two surfaces.
2118
2058
  let verbs = null;
2119
2059
  try {
2120
- const { opsTokenPosture } = await import(join(REPO, "driver", "portal-service.mjs"));
2060
+ const { opsTokenPosture } = await import(pathToFileURL(join(REPO, "driver", "portal-service.mjs")).href);
2121
2061
  verbs = opsTokenPosture(opsToken).verbs;
2122
2062
  } catch { /* unreadable posture leaves verbs null, which reads as full ops — see the verdict */ }
2123
2063
  let probe = null;
@@ -2153,12 +2093,12 @@ export async function runCheck() {
2153
2093
  } catch (e) { warn(`the submit lane could not be read: ${e.message}`); }
2154
2094
 
2155
2095
  say("\n Client connector");
2156
- // THE REVOCATION LIST, REPORTED ( bb8's F14). `isRevoked` treats an unreadable
2096
+ // THE REVOCATION LIST, REPORTED (found in review). `isRevoked` treats an unreadable
2157
2097
  // denylist as "not revoked", so a named-but-absent file makes every revocation silently ineffective:
2158
2098
  // measured on a default install, a revoked key completed a full handshake with nothing logged. Nothing
2159
2099
  // surfaced that state anywhere, which is why it survived to be found by hand.
2160
2100
  {
2161
- const { defaultDenylistPath } = await import(join(REPO, "shared", "client-door.mjs"));
2101
+ const { defaultDenylistPath } = await import(pathToFileURL(join(REPO, "shared", "client-door.mjs")).href);
2162
2102
  const dl = effective("TRADEMARK_MCP_TOKEN_DENYLIST")?.v || defaultDenylistPath(homedir());
2163
2103
  try {
2164
2104
  const n = readFileSync(dl, "utf8").split("\n").map((l) => l.trim()).filter((l) => l && !l.startsWith("#")).length;
@@ -2172,8 +2112,8 @@ export async function runCheck() {
2172
2112
  }
2173
2113
  }
2174
2114
  try {
2175
- const { clientDoorState: doorState, describeDoorState, connectKeyReport, CLIENT_DOOR_UNIT: doorUnit } = await import(join(REPO, "shared", "client-door.mjs"));
2176
- const { loadGrants: readGrantsFile, isRevoked: revokedCheck } = await import(join(REPO, "shared", "scope.mjs"));
2115
+ const { clientDoorState: doorState, describeDoorState, connectKeyReport, CLIENT_DOOR_UNIT: doorUnit } = await import(pathToFileURL(join(REPO, "shared", "client-door.mjs")).href);
2116
+ const { loadGrants: readGrantsFile, isRevoked: revokedCheck } = await import(pathToFileURL(join(REPO, "shared", "scope.mjs")).href);
2177
2117
  // ── CONFIGURED IS NOT RUNNING, AND THIS IS THE SURFACE IT WAS MEASURED ON ──
2178
2118
  //
2179
2119
  // `describeDoorState` was written for exactly this block and then never called from it: the split
@@ -2242,14 +2182,14 @@ export async function runCheck() {
2242
2182
  const doorEnvKnown = !hosted || unitEnv?.known === true;
2243
2183
  const doorEnv = hosted && unitEnv?.known === true ? unitEnv.env : process.env;
2244
2184
  if (!doorEnvKnown) warn(couldNotDetermine("CLIENT_MCP_ACCOUNT_ACCESS", unitEnv));
2245
- // THE PORT AND ITS ALLOW-LIST ARE ONE SETTING, AND NOTHING SAID SO (, Hera's
2246
- // operator pass). `start` derives CLIENT_MCP_ALLOWED_HOSTS from the port it resolved, so moving the
2185
+ // THE PORT AND ITS ALLOW-LIST ARE ONE SETTING, AND NOTHING SAID SO (found in an operator pass).
2186
+ // `start` derives CLIENT_MCP_ALLOWED_HOSTS from the port it resolved, so moving the
2247
2187
  // port THROUGH start works. Moving it in the env file the units load does not: the door binds the
2248
2188
  // new port and then answers "403 Invalid Host header" on every request, because the allow-list still
2249
2189
  // names the old one. A door that is up, listening, and refuses everything is the worst of the three
2250
2190
  // states to debug, and nothing surfaced the mismatch.
2251
2191
  {
2252
- const { clientDoorPort: portOf, allowedHosts: hostsFor } = await import(join(REPO, "shared", "client-door.mjs"));
2192
+ const { clientDoorPort: portOf, allowedHosts: hostsFor } = await import(pathToFileURL(join(REPO, "shared", "client-door.mjs")).href);
2253
2193
  const declared = String(effective("CLIENT_MCP_ALLOWED_HOSTS")?.v ?? "").trim();
2254
2194
  if (declared) {
2255
2195
  const port = portOf(doorEnv);
@@ -2265,14 +2205,14 @@ export async function runCheck() {
2265
2205
  }
2266
2206
  }
2267
2207
 
2268
- // IS ANYTHING ANSWERING? ( bb8's F11.) The unit file is evidence about the
2208
+ // IS ANYTHING ANSWERING? (found in review) The unit file is evidence about the
2269
2209
  // background shape only. A foreground `clearotron start` runs the door as its own child with no unit
2270
2210
  // at all, and this section then told a reader whose door was listening that it "is not set up here",
2271
2211
  // pointing them at the command they had just run. One loopback connect settles it, and null stays
2272
2212
  // null — a probe that could not be made is not a door that is absent.
2273
2213
  let doorListening = null;
2274
2214
  try {
2275
- const { clientDoorPort: portOf } = await import(join(REPO, "shared", "client-door.mjs"));
2215
+ const { clientDoorPort: portOf } = await import(pathToFileURL(join(REPO, "shared", "client-door.mjs")).href);
2276
2216
  const { createConnection } = await import("node:net");
2277
2217
  doorListening = await new Promise((resolve) => {
2278
2218
  const sock = createConnection({ host: "127.0.0.1", port: portOf(doorEnv), timeout: 700 });
@@ -2307,10 +2247,10 @@ export async function runCheck() {
2307
2247
  problem("a valid key is on record but NO revocation list is configured (TRADEMARK_MCP_TOKEN_DENYLIST unset) "
2308
2248
  + `— \`${invoke("disconnect")}\` could not actually revoke it. \`${invoke("connect")}\` arms one; set the variable or reconnect.`);
2309
2249
  }
2310
- // THE PUBLISHED ADDRESS, AND WHETHER IT ANSWERS (, acceptance 2). Reported here
2250
+ // THE PUBLISHED ADDRESS, AND WHETHER IT ANSWERS (acceptance 2). Reported here
2311
2251
  // rather than beside the unit, because the unit running and the address being reachable are
2312
2252
  // different facts and the second is the one a client depends on.
2313
- const { clientDoorReachability } = await import(join(REPO, "shared", "client-door.mjs"));
2253
+ const { clientDoorReachability } = await import(pathToFileURL(join(REPO, "shared", "client-door.mjs")).href);
2314
2254
  // FROM THE FILE THE UNITS LOAD, NOT THE SHELL THIS COMMAND WAS TYPED IN (the tracker issue 226
2315
2255
  // family, met again here). On a hosted box the published address lives in the units' environment,
2316
2256
  // and reading `process.env` reported "no client connector address is published — that is correct
@@ -2357,7 +2297,7 @@ export async function runCheck() {
2357
2297
  // No new credential and no provider API: the audience is in the redirect handed to a caller with
2358
2298
  // no session at all, which is the request just made.
2359
2299
  {
2360
- const { readAudience, audienceVerdict } = await import(join(REPO, "shared", "access-audience.mjs"));
2300
+ const { readAudience, audienceVerdict } = await import(pathToFileURL(join(REPO, "shared", "access-audience.mjs")).href);
2361
2301
  const configuredAud = effectiveForService("CLEAROTRON_OIDC_AUDIENCE")?.v ?? "";
2362
2302
  const read = readAudience(probe ?? { error: "the published address was never asked" });
2363
2303
  // NOTHING IS CLAIMED ABOUT A BOX THAT USES NO EDGE. With no audience configured AND no Access
@@ -2383,7 +2323,7 @@ export async function runCheck() {
2383
2323
  // announces the side effect first, and its control runs before any vendor.
2384
2324
  if (PROBE_CONNECTOR && String(published ?? "").trim()) {
2385
2325
  const { registrationEndpointFrom, probeRegistration, describeRegistration } =
2386
- await import(join(REPO, "shared", "connector-signin-probe.mjs"));
2326
+ await import(pathToFileURL(join(REPO, "shared", "connector-signin-probe.mjs")).href);
2387
2327
  say("");
2388
2328
  say(" --probe-connector: asking this door's sign-in whether each assistant vendor could register.");
2389
2329
  say(" Each attempt that SUCCEEDS creates a throwaway OAuth client on your account, which you may");
@@ -2571,7 +2511,7 @@ try {
2571
2511
  // is DERIVED: the engines from ENGINE_BINARIES, the search vendors from the same adapter tables the
2572
2512
  // prompts loop over, each wearing its own table row's where-to-get line. A hand-kept copy here would
2573
2513
  // be the SERPAPI defect again, one screen earlier. Everything is skippable; the list says so.
2574
- // THE BANNER — once, on entry, named (, owner ruling 2026-08-31). Not on every
2514
+ // THE BANNER — once, on entry, named (owner ruling 2026-08-31). Not on every
2575
2515
  // command: a banner every verb prints is how a product becomes tiresome to use twice. It sits here
2576
2516
  // rather than at the top of main() so that `--check`, which writes nothing and is run repeatedly,
2577
2517
  // does not wear it either.
@@ -2581,7 +2521,7 @@ try {
2581
2521
  say("");
2582
2522
  say(` ${style.bold("Before you start")} — what this setup can take, so nothing here surprises you:`);
2583
2523
  // `vendor`, not `label`: the labels are engineer sentences carrying flag names, and a question a
2584
- // lawyer reads may not ('s first rule).
2524
+ // lawyer reads may not (the first rule).
2585
2525
  say(` · Which AI runs the searches (${Object.values(ENGINE_BINARIES).map((e) => e.vendor).join(" or ")}),`);
2586
2526
  say(" and how it bills — the subscription you already sign in with, or an API key.");
2587
2527
  say(" · Your trademark register vendor's credential, if you have one (a register can be chosen later).");
@@ -2855,7 +2795,7 @@ try {
2855
2795
  }
2856
2796
  }
2857
2797
  }
2858
- // — bb8's F9, and the same trap closed one prompt over. The default
2798
+ // — found in review, and the same trap closed one prompt over. The default
2859
2799
  // was YES, so Enter re-ran a probe that CANNOT succeed until the reader has signed in somewhere
2860
2800
  // else — and the wizard's own header tells them Enter is the safe key. Driven with Enter it went
2861
2801
  // 19 attempts, no cap and no escape, in a wizard whose header says everything here is skippable.
@@ -3049,7 +2989,7 @@ try {
3049
2989
  const baseDefault = join(homedir(), "trademark");
3050
2990
  prose("Reports, run workspaces, queues and locks all live under one directory.");
3051
2991
  if (poolDefault.refusal) {
3052
- prose(`Enter accepts ${baseDefault}. There is no built-in default for the pool — left unset a run`,
2992
+ prose(`Enter accepts ${baseDefault}. There is no built-in default for the reports folder — left unset a run`,
3053
2993
  "refuses and names it rather than guessing — so setup gives it a real path under your home,",
3054
2994
  "and this install publishes only where you own the disk.");
3055
2995
  } else {
@@ -3095,7 +3035,7 @@ try {
3095
3035
  // The escape goes in the BRACKETS and the consequence in `skipped`, matching the two prompts that
3096
3036
  // already take this mode — the question no longer carries "(empty for none)" because the bracket now
3097
3037
  // says it, and a prompt that says it twice in two different wordings is how the two drift apart.
3098
- const reportsUrl = await askValue("Public base URL for the pool:", {
3038
+ const reportsUrl = await askValue("Public base URL for the reports folder:", {
3099
3039
  skippable: true,
3100
3040
  skipped: "CLEAROTRON_REPORTS_URL left unset — runs will deliver, and their notifications will carry no link",
3101
3041
  });
@@ -3134,7 +3074,7 @@ try {
3134
3074
  prose("No default — it is your hostname. Skip it and this stays a local install: everything works",
3135
3075
  "here, and the Use-your-AI page says so rather than handing out an address that fails.");
3136
3076
  prose("The usual shape, and why: mcp-server/CONNECT.md.");
3137
- const { clientDoorReachability } = await import(join(REPO, "shared", "client-door.mjs"));
3077
+ const { clientDoorReachability } = await import(pathToFileURL(join(REPO, "shared", "client-door.mjs")).href);
3138
3078
  for (;;) {
3139
3079
  const clientUrl = await askValue("Public connector address:", {
3140
3080
  skippable: true,
@@ -3177,7 +3117,7 @@ try {
3177
3117
  // making a decision about where their customer data lives without being told they had made it.
3178
3118
  const cfgDefault = join(base, "config");
3179
3119
  say("\n Where this install keeps its own configuration");
3180
- prose("Your customers and any doctrine you override live here, outside the checkout — which is what",
3120
+ prose("Your customers and any instructions you override live here, outside the checkout — which is what",
3181
3121
  "lets you take updates with `git pull` instead of merging into files you never meant to own.");
3182
3122
  prose(`Enter accepts ${cfgDefault}, and your customers are written there.`);
3183
3123
  const cfg = await askValue("Configuration directory:", { def: cfgDefault });
@@ -3202,7 +3142,7 @@ try {
3202
3142
  candidate.PROFILE_REPO_ROOT = cfg; // no alias row — this name is current
3203
3143
  for (const k of ["CLEAROTRON_CUSTOMERS_DIR", "PROFILE_REPO_ROOT"]) ok(`${k}=${candidate[k]}`);
3204
3144
 
3205
- // CLEAROTRON_INSTRUCTIONS_DIR IS DELIBERATELY NOT WRITTEN ( bb8's F25).
3145
+ // CLEAROTRON_INSTRUCTIONS_DIR IS DELIBERATELY NOT WRITTEN (found in review).
3206
3146
  //
3207
3147
  // Setup used to point it at `<cfg>/skills` and create that directory empty. `clearotron start` then
3208
3148
  // makes `<cfg>` a git repository for saved searches — so the doctrine store ends up INSIDE a checkout
@@ -3218,7 +3158,7 @@ try {
3218
3158
  // Note for whoever adds an overlay later: it needs this name set, which is why the line below says so
3219
3159
  // rather than leaving a reader to discover that files they dropped in are being ignored.
3220
3160
  info(`doctrine: this install overrides nothing, so CLEAROTRON_INSTRUCTIONS_DIR stays unset and the `
3221
- + `product's own files are used. To override a doctrine file later, put it in ${join(cfg, "skills")}, `
3161
+ + `product's own files are used. To override an instruction file later, put it in ${join(cfg, "skills")}, `
3222
3162
  + `COMMIT it in ${cfg}, and set CLEAROTRON_INSTRUCTIONS_DIR to that directory — an uncommitted store `
3223
3163
  + "cannot be identified, and a run says so rather than guessing.");
3224
3164
 
@@ -3231,7 +3171,7 @@ try {
3231
3171
  // PRECISELY what shows through, because the last wording said "bundled customers" and the loader
3232
3172
  // says otherwise: the demo roster never layers into a deployment (a typo'd key must not resolve to
3233
3173
  // our fixtures), generic.json falls through BY NAME, and doctrine resolves file-by-file.
3234
- say(" Left empty. The house doctrine shows through file-by-file, and generic.json — the universal");
3174
+ say(" Left empty. The bundled instructions show through file-by-file, and generic.json — the universal");
3235
3175
  say(" fallback — falls through by name, so an empty store is a working install. Your own customers");
3236
3176
  say(" are added here by name; the bundled demo customers never show through into your roster.");
3237
3177
 
@@ -3289,7 +3229,7 @@ try {
3289
3229
  // rather than fall back, so a permissions fault can never silently swap a customer's framework for the
3290
3230
  // Generic default). Nothing is written INTO them — see the note at step 7b.
3291
3231
  for (const k of ["CLEAROTRON_CUSTOMERS_DIR"]) mkdirSync(candidate[k], { recursive: true });
3292
- ok(`configuration directories created under ${cfg} (empty — doctrine and the generic fallback show through; customers are yours to add)`);
3232
+ ok(`configuration directories created under ${cfg} (empty — the bundled instructions and the generic fallback show through; customers are yours to add)`);
3293
3233
 
3294
3234
  // 9a ── PUT THE VERB ON THIS OPERATOR'S PATH
3295
3235
  //
@@ -3329,17 +3269,17 @@ try {
3329
3269
  // They are `clearotron` verbs now for a second reason as well: from an INSTALLED package there is
3330
3270
  // no `npm run example` to type — no package.json, no scripts block — so the old advice was not
3331
3271
  // merely misordered there, it was unrunnable.
3332
- // ONE COMMAND, AND WHAT TO EXPECT FROM IT (, the owner's point 10). This screen
3272
+ // ONE COMMAND, AND WHAT TO EXPECT FROM IT (the owner's point 10). This screen
3333
3273
  // offered three, each with a sentence, and a reader who has just answered a page of questions is
3334
3274
  // being asked to make one more choice at the moment they most want to be told what to do. Three
3335
3275
  // equally-weighted options is not generosity; it is the decision handed back.
3336
3276
  //
3337
3277
  // `start` is the one, because it is the product — the other two were already ordered behind it for
3338
- // that reason (, when this screen offered `npm run example` and a raw pipeline invocation and
3278
+ // that reason (when this screen offered `npm run example` and a raw pipeline invocation and
3339
3279
  // named the product nowhere). They keep their place as an afterthought line rather than an option.
3340
3280
  // THE COMMAND LINE STAYS A PLAIN LITERAL, DELIBERATELY. onboard-wizard.test.mjs reads this screen
3341
3281
  // STATICALLY — it extracts every say() literal and asserts which command leads — and that guard is
3342
- // the only thing standing between this screen and 's defect coming back. Wrapping the command in
3282
+ // the only thing standing between this screen and the defect coming back. Wrapping the command in
3343
3283
  // style.bold() puts a nested template literal inside the say(), the extractor stops matching, and the
3344
3284
  // corpus goes empty. Its own comment records the previous generation of exactly this: the arms went
3345
3285
  // vacuous the moment these lines became template literals.
@@ -3360,7 +3300,7 @@ try {
3360
3300
  say(" What this box has now:");
3361
3301
  for (const line of [
3362
3302
  stateLine("register", candidate.CLEAROTRON_DATABASE, "no register, so every search refuses until one is chosen"),
3363
- stateLine("web research", present(candidate.PERPLEXITY_API_KEY) ? "a key" : "", "a clearance refuses at preflight; a knockout search runs and discloses the half it skipped"),
3303
+ stateLine("web research", present(candidate.PERPLEXITY_API_KEY) ? "a key" : "", "a clearance stops before it starts, and names the missing key; a knockout search runs and discloses the half it skipped"),
3364
3304
  stateLine("data directory", candidate.CLEAROTRON_REPORTS_DIR, "unset"),
3365
3305
  stateLine("configuration store", candidate.CLEAROTRON_CUSTOMERS_DIR, "the bundled demo roster"),
3366
3306
  stateLine("notification links", candidate.CLEAROTRON_REPORTS_URL, "notifications carry no link into the report"),