clearotron 0.2.0 → 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 (629) hide show
  1. package/.env.example +105 -0
  2. package/CONTRIBUTING.md +3 -3
  3. package/INSTALL.md +57 -52
  4. package/README.md +2 -1
  5. package/bin/brandowner.mjs +1 -1
  6. package/bin/clearotron.mjs +4 -4
  7. package/bin/connect.mjs +2 -2
  8. package/bin/example.mjs +114 -37
  9. package/bin/grant.mjs +3 -3
  10. package/bin/key.mjs +1 -1
  11. package/bin/onboard.mjs +97 -119
  12. package/bin/start.mjs +29 -25
  13. package/bin/stop.mjs +65 -3
  14. package/bin/update.mjs +7 -7
  15. package/bin/uspto-sync.mjs +1 -1
  16. package/build-info.json +2 -2
  17. package/docs/DELIVERY.md +6 -2
  18. package/docs/RELEASES.md +6 -4
  19. package/docs/architecture/01-product-overview.md +2 -2
  20. package/docs/architecture/02-architecture.md +2 -2
  21. package/docs/architecture/04-configuration-reference.md +7 -4
  22. package/docs/architecture/05-config-governance.md +38 -5
  23. package/docs/architecture/06-operations-runbook.md +13 -1
  24. package/docs/architecture/09-security-and-data.md +1 -1
  25. package/docs/decisions/0004-documentation-structure.md +1 -1
  26. package/driver/CHANGELOG.md +95 -1
  27. package/driver/README.md +2 -2
  28. package/driver/ask-ledger.mjs +72 -4
  29. package/driver/authority-trees.mjs +1 -1
  30. package/driver/call-capture.mjs +1 -1
  31. package/driver/card-frame.mjs +1 -1
  32. package/driver/case-law-ledger.mjs +1 -1
  33. package/driver/claim-liveness.mjs +1 -1
  34. package/driver/common-law-receipts.mjs +1 -1
  35. package/driver/commonlaw-carry.mjs +1 -1
  36. package/driver/config-inventory.mjs +1 -1
  37. package/driver/connotation-search.mjs +12 -12
  38. package/driver/contract-audit.mjs +5 -5
  39. package/driver/contract-dictation-registry.mjs +4 -4
  40. package/driver/contract-dictation.mjs +2 -2
  41. package/driver/contract-e3-backlog.mjs +6 -6
  42. package/driver/contract-vocabulary.mjs +3 -3
  43. package/driver/corrections-feedforward.mjs +1 -1
  44. package/driver/coverage-form-io.mjs +2 -2
  45. package/driver/coverage-form.mjs +4 -4
  46. package/driver/coverage-ledger.mjs +3 -3
  47. package/driver/coverage-union.mjs +1 -1
  48. package/driver/declination-call.mjs +35 -3
  49. package/driver/declination-duty.mjs +1 -1
  50. package/driver/deliver-trigger.sh +3 -3
  51. package/driver/deploy-live-run-guard.mjs +6 -2
  52. package/driver/dev-portal.mjs +1 -1
  53. package/driver/disposition-call.mjs +4 -4
  54. package/driver/disposition-tool.mjs +4 -4
  55. package/driver/disposition-union.mjs +2 -2
  56. package/driver/doc-constants.mjs +1 -1
  57. package/driver/door-gates.mjs +2 -2
  58. package/driver/doubt-selection.mjs +2 -2
  59. package/driver/drainer-identity.mjs +1 -1
  60. package/driver/driver.config.mjs +63 -11
  61. package/driver/e2e-rounds.mjs +2 -2
  62. package/driver/effort-model.mjs +2 -2
  63. package/driver/engine/anthropic-agent.mjs +24 -24
  64. package/driver/engine/auth.mjs +1 -1
  65. package/driver/engine/common.mjs +1 -1
  66. package/driver/engine/deny-authority-write.mjs +1 -1
  67. package/driver/engine/jx-turn.mjs +1 -1
  68. package/driver/engine/mcp/clarivate-server.mjs +1 -1
  69. package/driver/engine/mcp/corsearch-server.mjs +1 -1
  70. package/driver/engine/mcp/declination-server.mjs +1 -1
  71. package/driver/engine/mcp/dispositions-server.mjs +1 -1
  72. package/driver/engine/mcp/euipo-server.mjs +1 -1
  73. package/driver/engine/mcp/fetch-server.mjs +1 -1
  74. package/driver/engine/mcp/free-tier-server.mjs +2 -2
  75. package/driver/engine/mcp/gather-config.mjs +11 -11
  76. package/driver/engine/mcp/perplexity-server.mjs +1 -1
  77. package/driver/engine/mcp/recording-server.mjs +8 -4
  78. package/driver/engine/mcp/signa-server.mjs +1 -1
  79. package/driver/engine/mcp/uspto-local-server.mjs +1 -1
  80. package/driver/engine/openai-agent.mjs +2 -2
  81. package/driver/engine-build.mjs +2 -2
  82. package/driver/enqueue-schema.mjs +2 -2
  83. package/driver/enqueue.mjs +1 -1
  84. package/driver/envelope-settle.mjs +1 -1
  85. package/driver/evidence-claim-invariant.mjs +2 -2
  86. package/driver/findings-model.mjs +8 -8
  87. package/driver/floor-duty.mjs +1 -1
  88. package/driver/form-neighbourhood.mjs +1 -1
  89. package/driver/framework.mjs +1 -1
  90. package/driver/gateway.mjs +28 -23
  91. package/driver/grounds-grammar.mjs +1 -1
  92. package/driver/hit-list.mjs +1 -1
  93. package/driver/jurisdiction-systems.mjs +1 -1
  94. package/driver/jx-lanes.mjs +1 -1
  95. package/driver/jx-units.mjs +1 -1
  96. package/driver/jx.mjs +3 -3
  97. package/driver/knockout-assess-record.mjs +5 -1
  98. package/driver/narrative-refutation-record.mjs +3 -3
  99. package/driver/numeric-setting.mjs +1 -1
  100. package/driver/owner-use-check.mjs +184 -0
  101. package/driver/package.json +2 -2
  102. package/driver/phase0.mjs +1 -1
  103. package/driver/pipeline-knockout.mjs +52 -4
  104. package/driver/pipeline.mjs +215 -63
  105. package/driver/placement-diff.mjs +2 -2
  106. package/driver/placement-form.mjs +4 -4
  107. package/driver/placement-union.mjs +1 -1
  108. package/driver/portal-acks.mjs +1 -1
  109. package/driver/portal-config-view.mjs +2 -2
  110. package/driver/portal-local-auth.mjs +1 -1
  111. package/driver/portal-report.mjs +6 -6
  112. package/driver/portal-service.mjs +15 -15
  113. package/driver/predelivery-lint.mjs +29 -11
  114. package/driver/prelim-variants-record.mjs +2 -2
  115. package/driver/profile-page.html +1 -1
  116. package/driver/profile-selection.mjs +1 -1
  117. package/driver/profile-service.mjs +2 -2
  118. package/driver/profiles.mjs +1 -1
  119. package/driver/progress.mjs +6 -6
  120. package/driver/provider-usage.mjs +1 -1
  121. package/driver/publish/demo-marking.mjs +1 -1
  122. package/driver/publish/index.mjs +47 -6
  123. package/driver/publish/knockout.mjs +36 -14
  124. package/driver/publish/parse.mjs +4 -4
  125. package/driver/publish/publish-inputs.mjs +2 -2
  126. package/driver/publish/register-presence.mjs +1 -1
  127. package/driver/publish/render-knockout.mjs +198 -31
  128. package/driver/publish/report-data.mjs +13 -3
  129. package/driver/publish/seed-pool.mjs +24 -9
  130. package/driver/queue-watch-probe.mjs +1 -1
  131. package/driver/queue-watch-verdict.mjs +1 -1
  132. package/driver/recall-reconciliation.mjs +1 -1
  133. package/driver/recipe-service.mjs +1 -1
  134. package/driver/record-carry.mjs +141 -2
  135. package/driver/recording-agreement.mjs +3 -3
  136. package/driver/reference-score.mjs +59 -9
  137. package/driver/reference-strip-signatures.mjs +68 -0
  138. package/driver/refusal-bound.mjs +3 -3
  139. package/driver/register-availability.mjs +2 -2
  140. package/driver/register-count.mjs +1 -1
  141. package/driver/register-digest-record.mjs +31 -1
  142. package/driver/register-grant-vocabulary.mjs +2 -2
  143. package/driver/register-plan.mjs +8 -8
  144. package/driver/register-records.mjs +2 -2
  145. package/driver/registry-fidelity.mjs +3 -3
  146. package/driver/remedy-accounting.mjs +1 -1
  147. package/driver/repair-composers.mjs +2 -2
  148. package/driver/repair-digest.mjs +3 -3
  149. package/driver/repairs.mjs +7 -7
  150. package/driver/replay-archive.mjs +2 -0
  151. package/driver/report-card-record.mjs +2 -2
  152. package/driver/result-noun-fields.mjs +10 -3
  153. package/driver/run-economics.mjs +2 -2
  154. package/driver/run-integrity.mjs +1 -1
  155. package/driver/runner.mjs +22 -22
  156. package/driver/scope-rules.mjs +1 -1
  157. package/driver/search-policy.mjs +3 -3
  158. package/driver/skeptic-search.mjs +1 -1
  159. package/driver/skills/blind-frame/SKILL.md +1 -1
  160. package/driver/skills/case-law-citation/SKILL.md +2 -2
  161. package/driver/skills/knockout-assess/SKILL.md +10 -4
  162. package/driver/skills/prelim-search/SKILL.md +2 -2
  163. package/driver/skills/prelim-search/template-formatting.md +1 -1
  164. package/driver/skills/prelim-search/templates/email/generic.md +1 -1
  165. package/driver/skills/prelim-search/worked-examples.md +1 -1
  166. package/driver/skills/prelim-variants/SKILL.md +2 -2
  167. package/driver/stage-context.mjs +1 -1
  168. package/driver/stages-knockout.mjs +55 -4
  169. package/driver/stages.mjs +97 -40
  170. package/driver/stray-artifacts.mjs +2 -2
  171. package/driver/suite-census.json +188 -44
  172. package/driver/synthesis-record.mjs +1 -1
  173. package/driver/systemd/clearotron-client-mcp.service +1 -1
  174. package/driver/systemd/clearotron-portal.service +1 -1
  175. package/driver/systemd/render-units.mjs +1 -1
  176. package/driver/tokens.mjs +1 -1
  177. package/driver/tool-calls.mjs +1 -1
  178. package/driver/turnaround-bands.mjs +1 -1
  179. package/driver/unit-file-drift.mjs +1 -1
  180. package/driver/unit-inventory.mjs +121 -61
  181. package/driver/unit-state-verdict.mjs +20 -12
  182. package/driver/verify-knockout.mjs +10 -2
  183. package/driver/verify.mjs +14 -14
  184. package/driver/whatif-memo-run.mjs +46 -5
  185. package/driver/whatif-queue.mjs +1 -1
  186. package/driver/whatif-worker.mjs +1 -1
  187. package/mcp-server/CHANGELOG.md +12 -0
  188. package/mcp-server/README.md +3 -3
  189. package/mcp-server/http-server.mjs +44 -1
  190. package/mcp-server/key-socket.mjs +184 -0
  191. package/mcp-server/lib/audit-view.mjs +69 -2
  192. package/mcp-server/lib/brief.mjs +15 -0
  193. package/mcp-server/lib/driver.mjs +7 -1
  194. package/mcp-server/lib/events.mjs +1 -1
  195. package/mcp-server/lib/http-handler.mjs +1 -1
  196. package/mcp-server/lib/knockout.mjs +435 -0
  197. package/mcp-server/lib/ops.mjs +4 -4
  198. package/mcp-server/lib/options.mjs +1 -1
  199. package/mcp-server/lib/plan.mjs +1 -1
  200. package/mcp-server/lib/runs.mjs +1 -1
  201. package/mcp-server/lib/scrub.mjs +1 -1
  202. package/mcp-server/lib/whatif.mjs +12 -3
  203. package/mcp-server/mint-token.mjs +1 -1
  204. package/mcp-server/package.json +2 -2
  205. package/mcp-server/server.mjs +76 -11
  206. package/package.json +3 -3
  207. package/portal-ui/package.json +1 -1
  208. package/providers/_shared/enumerate.mjs +1 -1
  209. package/providers/_shared/ledger-path.mjs +3 -3
  210. package/providers/_shared/ledger.mjs +1 -1
  211. package/providers/_shared/result-shape.mjs +3 -3
  212. package/providers/_shared/term-shape.mjs +1 -1
  213. package/providers/corsearch/src/core.js +1 -1
  214. package/providers/jx-subclass/BUILDING.md +1 -1
  215. package/providers/oauth-mcp-bridge/CHANGELOG.md +12 -0
  216. package/providers/oauth-mcp-bridge/package.json +1 -1
  217. package/providers/oauth-mcp-bridge/stdin-guard.mjs +2 -2
  218. package/scripts/README.md +1 -1
  219. package/scripts/added-reference-check.mjs +29 -1
  220. package/scripts/ai-page-render-check.mjs +2 -1
  221. package/scripts/authority-boundary-probe.mjs +1 -1
  222. package/scripts/backfill-started-at.mjs +1 -1
  223. package/scripts/citation-line-check.mjs +3 -3
  224. package/scripts/clearances-render-check.mjs +4 -3
  225. package/scripts/compare.mjs +2 -2
  226. package/scripts/composer-render-check.mjs +6 -6
  227. package/scripts/contract-dictation-scan.mjs +2 -2
  228. package/scripts/dead-names.mjs +1 -1
  229. package/scripts/drain-preflight.mjs +5 -5
  230. package/scripts/e2e-unread-terminals.mjs +1 -1
  231. package/scripts/e2e.mjs +8 -8
  232. package/scripts/env-audit.mjs +27 -7
  233. package/scripts/env-classify.mjs +139 -15
  234. package/scripts/freeze-example-run.mjs +3 -3
  235. package/scripts/head-arrived-gated.mjs +1 -1
  236. package/scripts/headless-page.mjs +274 -0
  237. package/scripts/home-render-check.mjs +3 -2
  238. package/scripts/live-surface-check.mjs +92 -19
  239. package/scripts/main-health.mjs +1 -1
  240. package/scripts/merge-presence-check.mjs +3 -3
  241. package/scripts/mint-reference-strip-backlog.mjs +41 -0
  242. package/scripts/mint-suite-census.mjs +6 -6
  243. package/scripts/nightly-notice.mjs +1 -1
  244. package/scripts/portal-lifecycle-check.mjs +3 -3
  245. package/scripts/reconcile-runs.mjs +1 -1
  246. package/scripts/release-await-cut.mjs +101 -11
  247. package/scripts/release-version-pr-checks.mjs +26 -2
  248. package/scripts/release-version.mjs +2 -2
  249. package/scripts/render-check.mjs +66 -7
  250. package/scripts/report-frame-check.mjs +12 -0
  251. package/scripts/report-screenshot.mjs +62 -2
  252. package/scripts/revisit-render-check.mjs +3 -2
  253. package/scripts/score.mjs +18 -4
  254. package/scripts/strip-tracker-citations.mjs +116 -0
  255. package/scripts/test-run.mjs +3 -3
  256. package/scripts/third-party-notices.mjs +3 -3
  257. package/scripts/travelling-predicates.mjs +3 -3
  258. package/scripts/unexecuted-asserts.mjs +2 -2
  259. package/scripts/verify-publishable.mjs +2 -2
  260. package/scripts/write-up-form-census.mjs +1 -1
  261. package/shared/access-audience.mjs +215 -0
  262. package/shared/brand.mjs +13 -13
  263. package/shared/citation-scan.mjs +1 -1
  264. package/shared/client-door.mjs +7 -7
  265. package/shared/driver-dir.mjs +1 -1
  266. package/shared/env-aliases.mjs +0 -48
  267. package/shared/env-local.mjs +1 -1
  268. package/shared/identifier-scan.mjs +3 -3
  269. package/shared/invocation.mjs +1 -1
  270. package/shared/names-in-force.mjs +2 -0
  271. package/shared/product-owned-names.mjs +1 -1
  272. package/shared/register-selection.mjs +1 -1
  273. package/shared/scope.mjs +5 -5
  274. package/shared/server-units.mjs +4 -4
  275. package/shared/store-in-repo.mjs +2 -2
  276. package/shared/suite-census.mjs +4 -4
  277. package/shared/tracked-files.mjs +31 -0
  278. package/shared/tty-style.mjs +1 -1
  279. package/shared/uspto-index-size.mjs +1 -1
  280. package/shared/vacuous-pass.mjs +1 -1
  281. package/skills/clearotron-account/SKILL.md +42 -13
  282. package/driver/systemd/prelim-driver.path +0 -69
  283. package/driver/systemd/prelim-driver.service +0 -86
  284. package/driver/systemd/prelim-driver.timer +0 -14
  285. package/driver/systemd/prelim-outbox.path +0 -27
  286. package/driver/systemd/prelim-outbox.service +0 -37
  287. package/driver/systemd/prelim-outbox.timer +0 -21
  288. package/node_modules/exceljs/README_zh.md +0 -2878
  289. package/node_modules/exceljs/dist/LICENSE +0 -22
  290. package/node_modules/exceljs/dist/es5/csv/csv.js +0 -182
  291. package/node_modules/exceljs/dist/es5/csv/csv.js.map +0 -1
  292. package/node_modules/exceljs/dist/es5/csv/line-buffer.js +0 -68
  293. package/node_modules/exceljs/dist/es5/csv/line-buffer.js.map +0 -1
  294. package/node_modules/exceljs/dist/es5/csv/stream-converter.js +0 -110
  295. package/node_modules/exceljs/dist/es5/csv/stream-converter.js.map +0 -1
  296. package/node_modules/exceljs/dist/es5/doc/anchor.js +0 -73
  297. package/node_modules/exceljs/dist/es5/doc/anchor.js.map +0 -1
  298. package/node_modules/exceljs/dist/es5/doc/cell.js +0 -961
  299. package/node_modules/exceljs/dist/es5/doc/cell.js.map +0 -1
  300. package/node_modules/exceljs/dist/es5/doc/column.js +0 -274
  301. package/node_modules/exceljs/dist/es5/doc/column.js.map +0 -1
  302. package/node_modules/exceljs/dist/es5/doc/data-validations.js +0 -18
  303. package/node_modules/exceljs/dist/es5/doc/data-validations.js.map +0 -1
  304. package/node_modules/exceljs/dist/es5/doc/defined-names.js +0 -173
  305. package/node_modules/exceljs/dist/es5/doc/defined-names.js.map +0 -1
  306. package/node_modules/exceljs/dist/es5/doc/enums.js +0 -49
  307. package/node_modules/exceljs/dist/es5/doc/enums.js.map +0 -1
  308. package/node_modules/exceljs/dist/es5/doc/image.js +0 -69
  309. package/node_modules/exceljs/dist/es5/doc/image.js.map +0 -1
  310. package/node_modules/exceljs/dist/es5/doc/modelcontainer.js +0 -16
  311. package/node_modules/exceljs/dist/es5/doc/modelcontainer.js.map +0 -1
  312. package/node_modules/exceljs/dist/es5/doc/note.js +0 -64
  313. package/node_modules/exceljs/dist/es5/doc/note.js.map +0 -1
  314. package/node_modules/exceljs/dist/es5/doc/range.js +0 -229
  315. package/node_modules/exceljs/dist/es5/doc/range.js.map +0 -1
  316. package/node_modules/exceljs/dist/es5/doc/row.js +0 -382
  317. package/node_modules/exceljs/dist/es5/doc/row.js.map +0 -1
  318. package/node_modules/exceljs/dist/es5/doc/table.js +0 -443
  319. package/node_modules/exceljs/dist/es5/doc/table.js.map +0 -1
  320. package/node_modules/exceljs/dist/es5/doc/workbook.js +0 -202
  321. package/node_modules/exceljs/dist/es5/doc/workbook.js.map +0 -1
  322. package/node_modules/exceljs/dist/es5/doc/worksheet.js +0 -900
  323. package/node_modules/exceljs/dist/es5/doc/worksheet.js.map +0 -1
  324. package/node_modules/exceljs/dist/es5/exceljs.bare.js +0 -14
  325. package/node_modules/exceljs/dist/es5/exceljs.bare.js.map +0 -1
  326. package/node_modules/exceljs/dist/es5/exceljs.browser.js +0 -36
  327. package/node_modules/exceljs/dist/es5/exceljs.browser.js.map +0 -1
  328. package/node_modules/exceljs/dist/es5/exceljs.nodejs.js +0 -15
  329. package/node_modules/exceljs/dist/es5/exceljs.nodejs.js.map +0 -1
  330. package/node_modules/exceljs/dist/es5/index.js +0 -15
  331. package/node_modules/exceljs/dist/es5/stream/xlsx/hyperlink-reader.js +0 -90
  332. package/node_modules/exceljs/dist/es5/stream/xlsx/hyperlink-reader.js.map +0 -1
  333. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-comments-writer.js +0 -94
  334. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-comments-writer.js.map +0 -1
  335. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-rels-writer.js +0 -94
  336. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-rels-writer.js.map +0 -1
  337. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js +0 -362
  338. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js.map +0 -1
  339. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-writer.js +0 -347
  340. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-writer.js.map +0 -1
  341. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-reader.js +0 -392
  342. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-reader.js.map +0 -1
  343. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-writer.js +0 -652
  344. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-writer.js.map +0 -1
  345. package/node_modules/exceljs/dist/es5/utils/auto-drain.js +0 -18
  346. package/node_modules/exceljs/dist/es5/utils/auto-drain.js.map +0 -1
  347. package/node_modules/exceljs/dist/es5/utils/browser-buffer-decode.js +0 -15
  348. package/node_modules/exceljs/dist/es5/utils/browser-buffer-decode.js.map +0 -1
  349. package/node_modules/exceljs/dist/es5/utils/browser-buffer-encode.js +0 -18
  350. package/node_modules/exceljs/dist/es5/utils/browser-buffer-encode.js.map +0 -1
  351. package/node_modules/exceljs/dist/es5/utils/cell-matrix.js +0 -149
  352. package/node_modules/exceljs/dist/es5/utils/cell-matrix.js.map +0 -1
  353. package/node_modules/exceljs/dist/es5/utils/col-cache.js +0 -258
  354. package/node_modules/exceljs/dist/es5/utils/col-cache.js.map +0 -1
  355. package/node_modules/exceljs/dist/es5/utils/copy-style.js +0 -43
  356. package/node_modules/exceljs/dist/es5/utils/copy-style.js.map +0 -1
  357. package/node_modules/exceljs/dist/es5/utils/encryptor.js +0 -58
  358. package/node_modules/exceljs/dist/es5/utils/encryptor.js.map +0 -1
  359. package/node_modules/exceljs/dist/es5/utils/iterate-stream.js +0 -46
  360. package/node_modules/exceljs/dist/es5/utils/iterate-stream.js.map +0 -1
  361. package/node_modules/exceljs/dist/es5/utils/parse-sax.js +0 -47
  362. package/node_modules/exceljs/dist/es5/utils/parse-sax.js.map +0 -1
  363. package/node_modules/exceljs/dist/es5/utils/shared-formula.js +0 -42
  364. package/node_modules/exceljs/dist/es5/utils/shared-formula.js.map +0 -1
  365. package/node_modules/exceljs/dist/es5/utils/shared-strings.js +0 -32
  366. package/node_modules/exceljs/dist/es5/utils/shared-strings.js.map +0 -1
  367. package/node_modules/exceljs/dist/es5/utils/stream-base64.js +0 -66
  368. package/node_modules/exceljs/dist/es5/utils/stream-base64.js.map +0 -1
  369. package/node_modules/exceljs/dist/es5/utils/stream-buf.js +0 -343
  370. package/node_modules/exceljs/dist/es5/utils/stream-buf.js.map +0 -1
  371. package/node_modules/exceljs/dist/es5/utils/string-buf.js +0 -73
  372. package/node_modules/exceljs/dist/es5/utils/string-buf.js.map +0 -1
  373. package/node_modules/exceljs/dist/es5/utils/string-builder.js +0 -32
  374. package/node_modules/exceljs/dist/es5/utils/string-builder.js.map +0 -1
  375. package/node_modules/exceljs/dist/es5/utils/stuttered-pipe.js +0 -61
  376. package/node_modules/exceljs/dist/es5/utils/stuttered-pipe.js.map +0 -1
  377. package/node_modules/exceljs/dist/es5/utils/typed-stack.js +0 -23
  378. package/node_modules/exceljs/dist/es5/utils/typed-stack.js.map +0 -1
  379. package/node_modules/exceljs/dist/es5/utils/under-dash.js +0 -168
  380. package/node_modules/exceljs/dist/es5/utils/under-dash.js.map +0 -1
  381. package/node_modules/exceljs/dist/es5/utils/utils.js +0 -171
  382. package/node_modules/exceljs/dist/es5/utils/utils.js.map +0 -1
  383. package/node_modules/exceljs/dist/es5/utils/xml-stream.js +0 -151
  384. package/node_modules/exceljs/dist/es5/utils/xml-stream.js.map +0 -1
  385. package/node_modules/exceljs/dist/es5/utils/zip-stream.js +0 -79
  386. package/node_modules/exceljs/dist/es5/utils/zip-stream.js.map +0 -1
  387. package/node_modules/exceljs/dist/es5/xlsx/defaultnumformats.js +0 -230
  388. package/node_modules/exceljs/dist/es5/xlsx/defaultnumformats.js.map +0 -1
  389. package/node_modules/exceljs/dist/es5/xlsx/rel-type.js +0 -18
  390. package/node_modules/exceljs/dist/es5/xlsx/rel-type.js.map +0 -1
  391. package/node_modules/exceljs/dist/es5/xlsx/xform/base-xform.js +0 -139
  392. package/node_modules/exceljs/dist/es5/xlsx/xform/base-xform.js.map +0 -1
  393. package/node_modules/exceljs/dist/es5/xlsx/xform/book/defined-name-xform.js +0 -85
  394. package/node_modules/exceljs/dist/es5/xlsx/xform/book/defined-name-xform.js.map +0 -1
  395. package/node_modules/exceljs/dist/es5/xlsx/xform/book/sheet-xform.js +0 -32
  396. package/node_modules/exceljs/dist/es5/xlsx/xform/book/sheet-xform.js.map +0 -1
  397. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +0 -24
  398. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +0 -1
  399. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-properties-xform.js +0 -27
  400. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +0 -1
  401. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-view-xform.js +0 -51
  402. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +0 -1
  403. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-xform.js +0 -234
  404. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-xform.js.map +0 -1
  405. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comment-xform.js +0 -103
  406. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comment-xform.js.map +0 -1
  407. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js +0 -76
  408. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js.map +0 -1
  409. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +0 -35
  410. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +0 -1
  411. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +0 -32
  412. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +0 -1
  413. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +0 -53
  414. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +0 -1
  415. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +0 -97
  416. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +0 -1
  417. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-notes-xform.js +0 -107
  418. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +0 -1
  419. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-shape-xform.js +0 -92
  420. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +0 -1
  421. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +0 -61
  422. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +0 -1
  423. package/node_modules/exceljs/dist/es5/xlsx/xform/composite-xform.js +0 -51
  424. package/node_modules/exceljs/dist/es5/xlsx/xform/composite-xform.js.map +0 -1
  425. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +0 -30
  426. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +0 -1
  427. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +0 -27
  428. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +0 -1
  429. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-xform.js +0 -93
  430. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-xform.js.map +0 -1
  431. package/node_modules/exceljs/dist/es5/xlsx/xform/core/content-types-xform.js +0 -112
  432. package/node_modules/exceljs/dist/es5/xlsx/xform/core/content-types-xform.js.map +0 -1
  433. package/node_modules/exceljs/dist/es5/xlsx/xform/core/core-xform.js +0 -158
  434. package/node_modules/exceljs/dist/es5/xlsx/xform/core/core-xform.js.map +0 -1
  435. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationship-xform.js +0 -23
  436. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationship-xform.js.map +0 -1
  437. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationships-xform.js +0 -65
  438. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationships-xform.js.map +0 -1
  439. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +0 -47
  440. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +0 -1
  441. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +0 -61
  442. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +0 -1
  443. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-xform.js +0 -40
  444. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-xform.js.map +0 -1
  445. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +0 -35
  446. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +0 -1
  447. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +0 -62
  448. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +0 -1
  449. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/cell-position-xform.js +0 -82
  450. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +0 -1
  451. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/drawing-xform.js +0 -98
  452. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +0 -1
  453. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +0 -40
  454. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +0 -1
  455. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-xform.js +0 -38
  456. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-xform.js.map +0 -1
  457. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +0 -38
  458. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +0 -1
  459. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +0 -59
  460. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +0 -1
  461. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +0 -63
  462. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +0 -1
  463. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/pic-xform.js +0 -67
  464. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/pic-xform.js.map +0 -1
  465. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js +0 -30
  466. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js.map +0 -1
  467. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +0 -62
  468. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +0 -1
  469. package/node_modules/exceljs/dist/es5/xlsx/xform/list-xform.js +0 -91
  470. package/node_modules/exceljs/dist/es5/xlsx/xform/list-xform.js.map +0 -1
  471. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +0 -40
  472. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +0 -1
  473. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cell-xform.js +0 -451
  474. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cell-xform.js.map +0 -1
  475. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +0 -275
  476. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +0 -1
  477. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +0 -25
  478. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +0 -1
  479. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +0 -38
  480. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +0 -1
  481. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +0 -45
  482. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +0 -1
  483. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +0 -77
  484. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +0 -1
  485. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +0 -42
  486. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +0 -1
  487. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +0 -71
  488. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +0 -1
  489. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +0 -22
  490. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +0 -1
  491. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +0 -43
  492. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +0 -1
  493. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +0 -28
  494. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +0 -1
  495. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +0 -88
  496. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +0 -1
  497. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +0 -38
  498. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +0 -1
  499. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +0 -52
  500. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +0 -1
  501. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +0 -43
  502. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +0 -1
  503. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +0 -75
  504. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +0 -1
  505. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +0 -22
  506. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +0 -1
  507. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +0 -66
  508. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +0 -1
  509. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +0 -22
  510. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +0 -1
  511. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/col-xform.js +0 -78
  512. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/col-xform.js.map +0 -1
  513. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/data-validations-xform.js +0 -247
  514. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +0 -1
  515. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/dimension-xform.js +0 -28
  516. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +0 -1
  517. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/drawing-xform.js +0 -32
  518. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +0 -1
  519. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +0 -69
  520. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +0 -1
  521. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/header-footer-xform.js +0 -126
  522. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +0 -1
  523. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +0 -50
  524. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +0 -1
  525. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +0 -26
  526. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +0 -1
  527. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merges.js +0 -52
  528. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merges.js.map +0 -1
  529. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +0 -35
  530. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +0 -1
  531. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +0 -24
  532. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +0 -1
  533. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-margins-xform.js +0 -46
  534. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +0 -1
  535. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +0 -32
  536. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +0 -1
  537. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-xform.js +0 -99
  538. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +0 -1
  539. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/picture-xform.js +0 -32
  540. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/picture-xform.js.map +0 -1
  541. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/print-options-xform.js +0 -45
  542. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +0 -1
  543. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +0 -37
  544. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +0 -1
  545. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-xform.js +0 -128
  546. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-xform.js.map +0 -1
  547. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +0 -51
  548. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +0 -1
  549. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +0 -83
  550. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +0 -1
  551. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +0 -84
  552. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +0 -1
  553. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +0 -190
  554. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +0 -1
  555. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/table-part-xform.js +0 -32
  556. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +0 -1
  557. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/worksheet-xform.js +0 -513
  558. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +0 -1
  559. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/boolean-xform.js +0 -27
  560. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/boolean-xform.js.map +0 -1
  561. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/date-xform.js +0 -58
  562. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/date-xform.js.map +0 -1
  563. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/float-xform.js +0 -47
  564. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/float-xform.js.map +0 -1
  565. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/integer-xform.js +0 -53
  566. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/integer-xform.js.map +0 -1
  567. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/string-xform.js +0 -47
  568. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/string-xform.js.map +0 -1
  569. package/node_modules/exceljs/dist/es5/xlsx/xform/static-xform.js +0 -61
  570. package/node_modules/exceljs/dist/es5/xlsx/xform/static-xform.js.map +0 -1
  571. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +0 -98
  572. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +0 -1
  573. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/rich-text-xform.js +0 -92
  574. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +0 -1
  575. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-string-xform.js +0 -99
  576. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +0 -1
  577. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-strings-xform.js +0 -114
  578. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +0 -1
  579. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/text-xform.js +0 -39
  580. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/text-xform.js.map +0 -1
  581. package/node_modules/exceljs/dist/es5/xlsx/xform/style/alignment-xform.js +0 -139
  582. package/node_modules/exceljs/dist/es5/xlsx/xform/style/alignment-xform.js.map +0 -1
  583. package/node_modules/exceljs/dist/es5/xlsx/xform/style/border-xform.js +0 -185
  584. package/node_modules/exceljs/dist/es5/xlsx/xform/style/border-xform.js.map +0 -1
  585. package/node_modules/exceljs/dist/es5/xlsx/xform/style/color-xform.js +0 -66
  586. package/node_modules/exceljs/dist/es5/xlsx/xform/style/color-xform.js.map +0 -1
  587. package/node_modules/exceljs/dist/es5/xlsx/xform/style/dxf-xform.js +0 -106
  588. package/node_modules/exceljs/dist/es5/xlsx/xform/style/dxf-xform.js.map +0 -1
  589. package/node_modules/exceljs/dist/es5/xlsx/xform/style/fill-xform.js +0 -308
  590. package/node_modules/exceljs/dist/es5/xlsx/xform/style/fill-xform.js.map +0 -1
  591. package/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js +0 -175
  592. package/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js.map +0 -1
  593. package/node_modules/exceljs/dist/es5/xlsx/xform/style/numfmt-xform.js +0 -59
  594. package/node_modules/exceljs/dist/es5/xlsx/xform/style/numfmt-xform.js.map +0 -1
  595. package/node_modules/exceljs/dist/es5/xlsx/xform/style/protection-xform.js +0 -53
  596. package/node_modules/exceljs/dist/es5/xlsx/xform/style/protection-xform.js.map +0 -1
  597. package/node_modules/exceljs/dist/es5/xlsx/xform/style/style-xform.js +0 -118
  598. package/node_modules/exceljs/dist/es5/xlsx/xform/style/style-xform.js.map +0 -1
  599. package/node_modules/exceljs/dist/es5/xlsx/xform/style/styles-xform.js +0 -612
  600. package/node_modules/exceljs/dist/es5/xlsx/xform/style/styles-xform.js.map +0 -1
  601. package/node_modules/exceljs/dist/es5/xlsx/xform/style/underline-xform.js +0 -46
  602. package/node_modules/exceljs/dist/es5/xlsx/xform/style/underline-xform.js.map +0 -1
  603. package/node_modules/exceljs/dist/es5/xlsx/xform/table/auto-filter-xform.js +0 -75
  604. package/node_modules/exceljs/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +0 -1
  605. package/node_modules/exceljs/dist/es5/xlsx/xform/table/custom-filter-xform.js +0 -30
  606. package/node_modules/exceljs/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +0 -1
  607. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-column-xform.js +0 -89
  608. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-column-xform.js.map +0 -1
  609. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-xform.js +0 -28
  610. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-xform.js.map +0 -1
  611. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-column-xform.js +0 -42
  612. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-column-xform.js.map +0 -1
  613. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-style-info-xform.js +0 -40
  614. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +0 -1
  615. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-xform.js +0 -123
  616. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-xform.js.map +0 -1
  617. package/node_modules/exceljs/dist/es5/xlsx/xlsx.js +0 -697
  618. package/node_modules/exceljs/dist/es5/xlsx/xlsx.js.map +0 -1
  619. package/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js +0 -5
  620. package/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js.map +0 -1
  621. package/node_modules/exceljs/dist/exceljs.bare.js +0 -55253
  622. package/node_modules/exceljs/dist/exceljs.bare.js.map +0 -761
  623. package/node_modules/exceljs/dist/exceljs.bare.min.js +0 -45
  624. package/node_modules/exceljs/dist/exceljs.bare.min.js.map +0 -1
  625. package/node_modules/exceljs/dist/exceljs.js +0 -59900
  626. package/node_modules/exceljs/dist/exceljs.js.map +0 -1083
  627. package/node_modules/exceljs/dist/exceljs.min.js +0 -45
  628. package/node_modules/exceljs/dist/exceljs.min.js.map +0 -1
  629. package/scripts/deploy-test.sh +0 -309
@@ -115,7 +115,7 @@ export const config = {
115
115
  // configured, because a whitespace-only string is TRUTHY in JavaScript — so a variable set to spaces
116
116
  // did not fall through to the default, it BECAME the path. `poolRoot` alone trimmed, so "blank" meant
117
117
  // two different things depending on which accessor you asked, and `queueDirs` resolved a RELATIVE
118
- // queue directory under the process cwd, which is 's own incident shape.
118
+ // queue directory under the process cwd, which is its own incident shape.
119
119
  //
120
120
  // Owner ruling 2026-08-19: a whitespace-only value counts as UNSET, everywhere. `X=` already meant
121
121
  // "not configured" and this is that rule finishing its sentence — not a reversal of it, which
@@ -229,7 +229,7 @@ export const config = {
229
229
  /**
230
230
  * Every skills root handed to the engine's file tools (overlay + base, deduped).
231
231
  *
232
- * NAMED FOR WHAT IT IS, not what we want it to be (, 2026-08-14): it was `skillsReadRoots`, and the
232
+ * NAMED FOR WHAT IT IS, not what we want it to be (2026-08-14): it was `skillsReadRoots`, and the
233
233
  * engine passes it to `--add-dir`, which has no read-only form. The read-only INTENT is real and is
234
234
  * enforced by the deny-hook at driver/engine/deny-authority-write.mjs — not by this name.
235
235
  */
@@ -252,7 +252,7 @@ export const config = {
252
252
  get skillsRoot() { return dirname(this.skillsDir); },
253
253
 
254
254
  // ── Per-agent paths ───────────────────────────────────────────────────────
255
- // A prelim job is enqueued into the FORWARDING agent's OWN workspace queue (that agent's `write` tool
255
+ // A clearotron job is enqueued into the FORWARDING agent's OWN workspace queue (that agent's `write` tool
256
256
  // is sandboxed there), and we run the whole pipeline as that same agent so the reply tool
257
257
  // (`clawdi_send_<user>`), the run-dir, and the agent's memory all line up. The queue LOCATION therefore
258
258
  // encodes the agent identity — the driver derives {agentId, studioRoot} from where it claimed the job,
@@ -269,6 +269,13 @@ export const config = {
269
269
  },
270
270
  // Escaped prefix for the reverse regexes below (a custom prefix may carry regex metachars).
271
271
  get workspacePrefixRe() { return this.workspacePrefix.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); },
272
+ // `prelim-search` IS NOT A PRODUCT NAME HERE and does not follow the product rename. It is a
273
+ // directory segment on disk, and every archived run — its slug dirs, its `archive/`, its matter
274
+ // ledger — was written under it. Renaming the segment does not move those runs; it points the
275
+ // reader somewhere empty, and an empty directory reads as "no runs" rather than as an error.
276
+ // The rule the tree already enforces elsewhere: a token that is read back out of an archive keeps
277
+ // its old spelling, or the code refuses its own archive. Thirteen sites compute this segment and
278
+ // all thirteen stay.
272
279
  studioRootForAgent(agentId) {
273
280
  return join(this.workspaceRoot, this.workspaceDirName(agentId), "studio", "prelim-search");
274
281
  },
@@ -283,7 +290,7 @@ export const config = {
283
290
  const m = new RegExp(`(?:^|/)${this.workspacePrefixRe}([^/]+)/studio/prelim-search/queue/?$`).exec(qdir);
284
291
  return m ? m[1] : null;
285
292
  },
286
- // Every agent workspace's prelim queue. The systemd `.path` watches these and the runner drains ALL of
293
+ // Every agent workspace's clearotron queue. The systemd `.path` watches these and the runner drains ALL of
287
294
  // them on each trigger (+ a timer fallback), so a request from ANY forwarder runs. (Pre-fix the watcher
288
295
  // and runner only looked at workspace-clawdi, silently orphaning every Alex/Sam job — the bug this fixes.)
289
296
  //
@@ -485,7 +492,7 @@ export const config = {
485
492
  // jobs AND manual pipeline.mjs invocations alike. WS-C raised the V4-7 stopgap's 1 → 3 (one per agent).
486
493
  // Phase-4: 3 → 6 + per-agent admission LIFTED (pipeline.acquireRunSlot no longer tags by agent). The
487
494
  // 2026-06-12 starvation that forced one-run-at-a-time (parallel runs → every gateway lane busy → 75s
488
- // heartbeat timeouts → a lost mid-run reply) was a GATEWAY phenomenon; prelim COMPUTE now runs off the
495
+ // heartbeat timeouts → a lost mid-run reply) was a GATEWAY phenomenon; clearotron COMPUTE now runs off the
489
496
  // gateway on the standalone claude -p engine, so concurrent runs no longer starve the heartbeat. The TURN
490
497
  // cap below still bounds the (now light) intake/delivery gateway demand. The runner serializes only the
491
498
  // cheap claim+dedup per queue and runs pipelines concurrently up to this cap (same-matter dedup stays
@@ -493,14 +500,22 @@ export const config = {
493
500
  // if the env is unset — keep the two in sync). Set to 2 on 2026-06-18 (was 6): 2 parallel is enough for now,
494
501
  // and bounds Max-5x rate-limit thrash. To change the live cap, set the env on the VM (no code deploy needed).
495
502
  get maxConcurrentRuns() { return Math.max(1, numericSetting("CLEAROTRON_MAX_CONCURRENT_RUNS")); },
503
+ // ON-DISK NAME, NOT A PRODUCT NAME: an install that never set the variable is already using this
504
+ // directory, so renaming the default moves the install to an empty one and nothing migrates. Here
505
+ // the orphaned files are run-slot locks, so a live run's slot goes unseen and the global cap is
506
+ // silently exceeded rather than enforced. Owner ruling, tracker issue 308.
496
507
  get runLockDir() { return this.envValue("CLEAROTRON_RUN_LOCK_DIR") || join(this.workspaceRoot, "prelim-run-locks"); },
497
508
 
498
509
  // Delivery outbox (Workstream B). On a handoff-mode finish the driver drops <runId>.pending here (naming
499
- // the forwarder agent); the systemd-user prelim-outbox.path unit fires an INSTANT prelim-deliver wake off
510
+ // the forwarder agent); the systemd-user prelim-outbox.path unit fires an INSTANT clearotron-deliver wake off
500
511
  // it, so a finished run sends in seconds instead of waiting ≤55m for the HEARTBEAT completion-watch (which
501
512
  // stays as the backstop). Mirrors runLockDir's derivation; env-overridable for dev/prod parity.
502
513
  // Phase 2: the outbox is ALSO the event seam for every other requester-facing event (run-failed,
503
514
  // intake-rejected, duplicate-skipped, late-bind-ack) — self-contained JSON packets via outbox.mjs.
515
+ // ON-DISK NAME, NOT A PRODUCT NAME: an install that never set the variable is already using this
516
+ // directory, so renaming the default moves the install to an empty one and nothing migrates. Here
517
+ // the orphaned files are requester-facing events — delivered, run-failed, intake-rejected — so the
518
+ // visible failure is a requester never told their run finished. Owner ruling, tracker issue 308.
504
519
  get outboxDir() { return this.envValue("CLEAROTRON_OUTBOX_DIR") || join(this.workspaceRoot, "prelim-outbox"); },
505
520
 
506
521
  // ── Delivery/comms (Phase 2, standalone product) ─────────────────────────────────────────────────
@@ -516,8 +531,25 @@ export const config = {
516
531
 
517
532
  // Fallback execution agent when a job's origin agent can't be derived from its queue dir (shouldn't
518
533
  // happen in normal operation). The real per-run agent is the forwarding agent, derived from the queue
519
- // LOCATION (see studioRootForAgent / agentIdFromQueueDir above). `clawdi` carries all the prelim tools.
520
- get defaultAgent() { return process.env.CLEAROTRON_DEFAULT_AGENT || "clawdi"; },
534
+ // LOCATION (see studioRootForAgent / agentIdFromQueueDir above).
535
+ //
536
+ // THE DEFAULT IS PART OF A PATH, so changing it moves where an install looks for its own runs:
537
+ // every run dir is `<workspaceRoot>/workspace-<agent>/studio/prelim-search/…`. An install created
538
+ // before this default changed keeps its runs under the old id and must pin it — both spellings,
539
+ // because the gather servers read their own variable:
540
+ //
541
+ // CLEAROTRON_DEFAULT_AGENT=clawdi
542
+ // CLEAROTRON_GATHER_AGENT=clawdi
543
+ //
544
+ // Unpinned, such an install starts a fresh empty workspace and its existing runs read as absent
545
+ // rather than as an error. Said again where upgrades are described (INSTALL.md, ops runbook).
546
+ //
547
+ // THE ID IS ALSO A KEY, not only a path segment. `AGENT_WHATSAPP` in stages.mjs is keyed by agent
548
+ // id, so the demo roster has to carry this value or the reference deployment resolves no operator
549
+ // number and the hole reads as "no copy configured" rather than as a miss. Both ids are in that
550
+ // roster for the same reason the pin above exists. (The roster stays one line: 32 backlog rows
551
+ // cite line numbers in stages.mjs, so a comment added there repoints all of them.)
552
+ get defaultAgent() { return process.env.CLEAROTRON_DEFAULT_AGENT || "localagent"; },
521
553
 
522
554
  // Per-stage retry budget (fresh session key per retry).
523
555
  get maxRetries() { return numericSetting("CLEAROTRON_MAX_RETRIES"); },
@@ -612,6 +644,26 @@ const MODEL_FAMILY_RE = /(?:^|\/)(?:claude-)?(opus|sonnet|haiku)(?:[-.]|$)/i;
612
644
  // mini one would then read as agreement, which is exactly the corruption this gauge exists to catch.
613
645
  const OPENAI_ID_RE = /^(?:openai\/)?(gpt-[\w.-]+|o\d[\w.-]*)$/i;
614
646
  const DATE_SUFFIX_RE = /-(?:\d{8}|\d{4}-\d{2}-\d{2})$/;
647
+
648
+ /**
649
+ * Is this model id a DATED SNAPSHOT, or an undated alias that a provider may repoint?
650
+ *
651
+ * `modelBasis: "actual"` says the provider answered rather than that we guessed — it does not say the
652
+ * answer names a fixed build. Measured across three archived runs: haiku came back
653
+ * `claude-haiku-4-5-20251001`, opus and sonnet came back `claude-opus-5` and `claude-sonnet-5`. All
654
+ * three were recorded identically as observed, and two of them name something the provider can move
655
+ * underneath us. A snapshot rotation behind either alias between two runs leaves EXACTLY that record and
656
+ * is invisible, which is how an A/B across time ends up eliminating the seat on evidence that could not
657
+ * have shown it either way.
658
+ *
659
+ * Returns "snapshot", "alias", or null when there is no id to judge — null is a could-not-look and is
660
+ * never collapsed into "alias". PURE.
661
+ */
662
+ export function modelSnapshotKind(model) {
663
+ const id = String(model ?? "").trim();
664
+ if (!id) return null;
665
+ return DATE_SUFFIX_RE.test(id) ? "snapshot" : "alias";
666
+ }
615
667
  export function modelFamily(model) {
616
668
  if (!model) return null;
617
669
  const resolved = resolveModel(String(model));
@@ -714,7 +766,7 @@ export const REGISTER_PROVIDER = (() => {
714
766
  // created this constant, so neither branch's tests covered it — it surfaced from reading the two diffs
715
767
  // side by side, not from a red run.
716
768
  //
717
- // SIX values now: 's `free-tier` composes the two free sources into ONE register, so an EU+US
769
+ // SIX values now: the `free-tier` composes the two free sources into ONE register, so an EU+US
718
770
  // clearance needs no paid vendor. It is a TIER, not a fourth free source — precedence runs between
719
771
  // tiers, never within one: a paid vendor configured IS the register alone, and the free sources are not
720
772
  // run beside it (corsearch and clarivate already aggregate both offices, so the second call buys
@@ -1314,7 +1366,7 @@ export const PROVIDERS = {
1314
1366
  // It also gated the wrong thing in practice. The US index is the one piece of this tier an operator
1315
1367
  // cannot get in a minute — it is a 41.5 GB build over two bulk products, behind an account with ID.me
1316
1368
  // identity verification, and it takes hours — so requiring it made the free tier unusable for exactly
1317
- // the person it exists for. 's CODE was merged; the INDEX is what no box had, and that was enough
1369
+ // the person it exists for. That CODE was merged; the INDEX is what no box had, and that was enough
1318
1370
  // to keep and from ever being exercised.
1319
1371
  //
1320
1372
  // The EU pair stays REQUIRED: a free tier with no configured member at all is not degraded, it is
@@ -1419,7 +1471,7 @@ export function providerIdFrom(env) {
1419
1471
  // the CURRENT spelling, through `currentName`, on purpose. Reading only the legacy name answered
1420
1472
  // `null` for a file that names the provider on the one line an operator can see, and `activeProvider`
1421
1473
  // reads that null as "this environment said nothing" and falls back to the ambient value. That is
1422
- // 's defect exactly, wearing the new name.
1474
+ // That defect exactly, wearing the new name.
1423
1475
  for (const name of ["CLEAROTRON_DATABASE"]) {
1424
1476
  const v = String(env?.[name] ?? "").trim().toLowerCase();
1425
1477
  if (v) return v;
@@ -4,7 +4,7 @@
4
4
  //
5
5
  // ── the defect this exists to remove ──────────────────────────────────────────────────────────
6
6
  //
7
- // 's noise floor needs the SAME scenario run twice on one commit. Until this module, `run` wrote
7
+ // That noise floor needs the SAME scenario run twice on one commit. Until this module, `run` wrote
8
8
  // `_e2e-doors-<ID>.json` holding exactly one token and `report` scoped itself to whatever token it found
9
9
  // there — so the second run of a pair OVERWROTE the only record of the first round's token, and the
10
10
  // first half became unreportable. Silently: `report` then described the second run, thirty seconds into
@@ -305,7 +305,7 @@ function runStart(hit) {
305
305
  /**
306
306
  * The rounds visible ON DISK, grouped by round token.
307
307
  *
308
- * `untokened` counts runs whose ref carries no round token — a pre- round, or one submitted by
308
+ * `untokened` counts runs whose ref carries no round token — a pre-change round, or one submitted by
309
309
  * hand. They belong to no nameable round, and saying how many there are is the difference between
310
310
  * "these are all the rounds" and "these are the rounds I could name".
311
311
  */
@@ -223,7 +223,7 @@ export const costBand = (i) => Math.max(1, Math.min(5, Math.ceil(effortUnits(i)
223
223
  * WHAT THIS REPLACED, and why a constant beat a model. The old quote was a base plus one adder per lane:
224
224
  * 1.5h, +0.5 for case law, +0.5 for a native-language lane, +0.5 for a single territory. It missed the
225
225
  * actual wall by +66%, +82% and −22% on three consecutive delivered runs, in BOTH directions, on one
226
- * engine build in one night ('s table). Every wall I could find from either source, eight runs:
226
+ * engine build in one night (the table). Every wall I could find from either source, eight runs:
227
227
  *
228
228
  * quoted 1.5h ×6 → actual 2.23 2.28 2.38 2.40 2.49 2.49
229
229
  * quoted 3.0h ×1 → actual 2.33 (the run with the MOST lanes came in SHORTER than five others)
@@ -246,7 +246,7 @@ export const TURNAROUND_QUOTE = Object.freeze({
246
246
  clearance: Object.freeze({ lowHours: 1.5, highHours: 2.5 }),
247
247
  // — OWNER RULING: a knockout quotes 5-10 MINUTES, a range, not a flat figure.
248
248
  //
249
- // The flat 0.25 came from 's "no compute, just say it, keep it simple", and that ruling is
249
+ // The flat 0.25 came from the "no compute, just say it, keep it simple", and that ruling is
250
250
  // untouched here: this is still one stated figure per pipeline with nothing computed from levers. What
251
251
  // changed is the figure, and the shape of it.
252
252
  //
@@ -102,7 +102,7 @@ const engineMaxBufferChars = () => Math.max(1024, Number(process.env.CLEAROTRON_
102
102
  // `gemini-flash: "sonnet"`, `deepseek-v4-pro: "opus"` and `azure: "sonnet"`, and the fall-through below
103
103
  // mapped ANY unrecognised alias to "sonnet". So `--model gemini` ran sonnet while the telemetry logged
104
104
  // `google/gemini-3.1-pro-preview` (gateway stamps `resolveModel(<requested alias>)`), and every
105
- // attribution downstream of that row — the A/B arm, the token rollup, 's billing classes — was
105
+ // attribution downstream of that row — the A/B arm, the token rollup, the billing classes — was
106
106
  // keyed to a model that never ran. Nothing said so, because a substitution has no error to report.
107
107
  //
108
108
  // The four cross-provider aliases were already dead before this change: the model-failover chain was
@@ -237,7 +237,7 @@ export function absolutizeSkillRefs(message, skillsDir, resolve = null) {
237
237
  //
238
238
  // ANTHROPIC-ONLY, AND MEASURED RATHER THAN ASSUMED. The obvious next step is to apply the same rule to
239
239
  // openai-agent's `--add-dir` (buildCodexArgs pushes the identical root), and it would accomplish nothing:
240
- // that engine spawns with `cwd = resolveSpawnCwd({cwd, runDir})` — the RUN DIR (, deliberately) —
240
+ // that engine spawns with `cwd = resolveSpawnCwd({cwd, runDir})` — the RUN DIR (deliberately) —
241
241
  // under `--sandbox workspace-write`, which makes cwd a writable root on its own. Dropping the flag there
242
242
  // would remove a grant the seat still holds by another door and let this comment claim an isolation the
243
243
  // engine does not have. Codex-side isolation is a cwd question, and a separate decision.
@@ -377,7 +377,7 @@ export function writeBoundarySettings({ skillsRoots = [], profilesDir = null, ru
377
377
  return JSON.stringify({
378
378
  hooks: {
379
379
  PreToolUse: [{
380
- // tracker issue 997 — Bash is in the matcher because seats have it and it walked past this hook entirely.
380
+ // Bash is in the matcher because seats have it and it walked past this hook entirely.
381
381
  // What the Bash arm can and cannot do is stated at its declaration in deny-authority-write.mjs;
382
382
  // it is a detector, and naming it here does not make it a boundary.
383
383
  matcher: "Write|Edit|MultiEdit|NotebookEdit|Bash",
@@ -401,7 +401,7 @@ export function synthesizeEnvelope({ resultEvent, usage, killed }) {
401
401
 
402
402
  export const anthropicAgentEngine = {
403
403
  name: "anthropic-agent",
404
- // tracker issue 954 — WHAT THIS ENGINE GUARANTEES ABOUT SEAT WRITES, said out loud in the run record.
404
+ // WHAT THIS ENGINE GUARANTEES ABOUT SEAT WRITES, said out loud in the run record.
405
405
  // `deny-authority-write.mjs` is a `claude -p` PreToolUse hook, so it refuses a seat's writes into the
406
406
  // doctrine tree, the profile store and `<runDir>/_driver/` at the moment of the write. That is a real
407
407
  // boundary and this engine has it.
@@ -409,7 +409,7 @@ export const anthropicAgentEngine = {
409
409
  async runTurn({ message, model, thinking, timeoutSec, resumeRef, mcpConfig, allowedTools, cwd, skillsDir, skillsGrantRoots, profilesDir, resolveSkill, runDir, seatWrites = null, stallSec, progressFiles } = {}) {
410
410
  if (!message) throw new Error("anthropic-agent.runTurn: message is required");
411
411
  const { args, input, grantNote } = buildClaudeArgs({ message, model, thinking, resumeRef, mcpConfig, allowedTools, cwd, skillsDir, skillsGrantRoots, profilesDir, resolveSkill, runDir, seatWrites });
412
- // tracker issue 1022 — the cross-check speaks. Driver stderr is what an operator reads, and it is where the other
412
+ // the cross-check speaks. Driver stderr is what an operator reads, and it is where the other
413
413
  // drift notices in this engine already land ([ledger], [env-aliases], [queue-watch]).
414
414
  if (grantNote) process.stderr.write(`${grantNote}\n`);
415
415
  const t0 = Date.now();
@@ -435,7 +435,7 @@ export const anthropicAgentEngine = {
435
435
  // inheriting that would load the dev-assistant instructions into every stage (context pollution +
436
436
  // cost). It also avoids the EACCES when the inherited cwd is unreadable by the runner's user.
437
437
  //
438
- // tracker issue 524 — cwd is a granted WRITE root here (file tools are confined to cwd + --add-dir), so it is
438
+ // cwd is a granted WRITE root here (file tools are confined to cwd + --add-dir), so it is
439
439
  // the run dir when there is one. See resolveSpawnCwd in common.mjs for why, and for what it deletes.
440
440
  const spawnCwd = resolveSpawnCwd({ cwd, runDir });
441
441
  // stdin is a PIPE (not "ignore"): the prompt rides stdin, not a `-p` argv element, so it is never
@@ -446,7 +446,7 @@ export const anthropicAgentEngine = {
446
446
  // Detached makes claude its own process-group leader, so the watchdog's kills reach the whole tree.
447
447
  try { child = spawn(claudeBin(), args, { stdio: ["pipe", "pipe", "pipe"], cwd: spawnCwd, env: spawnEnv(), detached: true }); }
448
448
  catch (e) { return resolve(errResult(t0, e, resumeRef)); }
449
- // tracker issue 2076 — THE SECOND SPAWN PATH, and it has to record too. This engine does not go
449
+ // THE SECOND SPAWN PATH, and it has to record too. This engine does not go
450
450
  // through runStreamingChild; wiring one and assuming the other follows is the exact defect shape
451
451
  // 2122 was raised on the same day (the demo banner reached the clearance renderer and not the
452
452
  // knockout one). Best effort, never fatal.
@@ -525,7 +525,7 @@ export const anthropicAgentEngine = {
525
525
  // (A repeat of an already-recorded path is NOT truncation — nothing is lost.)
526
526
  const READS_CAP = 500;
527
527
  let readsTruncated = false;
528
- // ── tracker issue 1111 — THE TWO NUMBERS THAT MAKE A SLOW TURN A DIAGNOSIS RATHER THAN AN INFERENCE ────────
528
+ // ── THE TWO NUMBERS THAT MAKE A SLOW TURN A DIAGNOSIS RATHER THAN AN INFERENCE ────────
529
529
  //
530
530
  // `tokensPerSec` says so itself: "the denominator still contains the turn's own tool waits… it
531
531
  // records the ratio; it does not diagnose it." Establishing that a slow stage was WAITING rather
@@ -543,7 +543,7 @@ export const anthropicAgentEngine = {
543
543
  let toolCalls = 0;
544
544
  let toolWaitMs = 0;
545
545
  let toolAskedAt = null;
546
- // tracker issue 1111 — WHAT THE WAIT IS MADE OF, keyed by the tool(s) that caused it.
546
+ // WHAT THE WAIT IS MADE OF, keyed by the tool(s) that caused it.
547
547
  //
548
548
  // The total alone cannot answer the question it was collected for. "Exclude tool wait from the kill
549
549
  // clock because a turn waiting on a tool is the harness working" is TRUE of `register_execute_plan`
@@ -554,7 +554,7 @@ export const anthropicAgentEngine = {
554
554
  // sorted set joined by "+". Every millisecond is attributed exactly once and the values sum to
555
555
  // `toolWaitMs` — a per-name split would double-count a concurrent ask and quietly break that identity.
556
556
  let toolAskedNames = null;
557
- // tracker issue 1828 — WHICH CHUNK an ask arrived in. Every line in one stdout chunk is parsed in
557
+ // WHICH CHUNK an ask arrived in. Every line in one stdout chunk is parsed in
558
558
  // one synchronous loop, so they all share a single Date.now(). If an ask and its result land in
559
559
  // the SAME chunk, the parent was not running between them and the gap it measures is 0 — for a
560
560
  // wait that really happened. Reproduced deterministically by blocking this process's event loop:
@@ -595,7 +595,7 @@ export const anthropicAgentEngine = {
595
595
  const openAsks = []; // ask records still outstanding, oldest first
596
596
  const askById = new Map(); // tool_use_id → its ask record
597
597
  let periodStart = null; // when the current outstanding-SET period began
598
- let periodChunk = null; // the chunk it began in — tracker issue 1828's unmeasurable flag
598
+ let periodChunk = null; // the chunk it began in — the unmeasurable flag
599
599
  let anonSeq = 0; // ids are on the wire, but never assume: synthesize if absent
600
600
  const periodKey = () =>
601
601
  [...new Set(openAsks.flatMap((r) => r.names))].sort().join("+");
@@ -709,7 +709,7 @@ export const anthropicAgentEngine = {
709
709
  progress();
710
710
  }
711
711
  else if (ev.type === "user") {
712
- // tracker issue 1111 — the result of the ask above. Only counted when an ask is outstanding, so a `user`
712
+ // the result of the ask above. Only counted when an ask is outstanding, so a `user`
713
713
  // event with no preceding tool_use adds nothing rather than charging the turn for a gap it
714
714
  // never spent waiting.
715
715
  // Which ask is this the result OF? The id on the wire answers it. Falling back to the
@@ -776,7 +776,7 @@ export const anthropicAgentEngine = {
776
776
  const watchdog = setInterval(() => {
777
777
  artifactProgress();
778
778
  const now = Date.now();
779
- // tracker issue 1780 — THE STARTUP DEBT. tracker issue 1692 widened the deadline below until the first byte but left this
779
+ // THE STARTUP DEBT. tracker issue 1692 widened the deadline below until the first byte but left this
780
780
  // clock's ORIGIN at spawn, so the startup interval stayed on the meter: the moment the grace let
781
781
  // go, progIdle already WAS the whole boot, and any NOPROG shorter than startup had expired before
782
782
  // the child was observed at all. The kill then landed on the next tick, before the ask could reach
@@ -784,7 +784,7 @@ export const anthropicAgentEngine = {
784
784
  // Releasing a clock is not starting one: the first byte is this clock's origin, not its green light.
785
785
  const progFrom = firstOutputAt === null ? lastProgress : Math.max(lastProgress, firstOutputAt);
786
786
  const idle = now - lastMove, progIdle = now - progFrom;
787
- // ── tracker issue 1692 — STARTUP IS NEITHER SILENCE NOR WORK ──────────────────────────────────────────────
787
+ // ── STARTUP IS NEITHER SILENCE NOR WORK ──────────────────────────────────────────────
788
788
  // Every clock here USED TO start at SPAWN, so until the child's first byte they were all timing
789
789
  // process startup: an idle clock that had not yet seen silence, and an active clock that had not
790
790
  // yet seen work. Past tense deliberately — tracker issue 1780 finished this, and the sentence stayed true of
@@ -800,7 +800,7 @@ export const anthropicAgentEngine = {
800
800
  // kill it NOW, well below the wall, and record it as a STALL — never let the ceiling raise turn
801
801
  // into extended stall burn, and never let this kill read as "the stage needed more time".
802
802
  else if (progIdle >= (started ? NOPROG : Math.max(NOPROG, GRACE))) { stallKill = true; noProgressKill = true; killed = true; killTree(); }
803
- // ── tracker issue 1111 — THE CEILING MEASURES ACTIVE TIME, NOT ELAPSED ────────────────────────────────────
803
+ // ── THE CEILING MEASURES ACTIVE TIME, NOT ELAPSED ────────────────────────────────────
804
804
  //
805
805
  // Owner ruling: "there isnt such thing as a hung model. it always delivers something or fails."
806
806
  // So this ceiling exists for the harness's own failure modes, not to budget the model, and a turn
@@ -824,7 +824,7 @@ export const anthropicAgentEngine = {
824
824
  // quantity: a long turn has three causes — tool latency, a generation stall, and sheer VOLUME
825
825
  // (one healthy stage ran 40.9 minutes at a normal rate producing 186k tokens) — and nothing that
826
826
  // keys on elapsed can tell them apart.
827
- // tracker issue 1692: measured from the FIRST BYTE, never from spawn. Startup is not active time either, and
827
+ // measured from the FIRST BYTE, never from spawn. Startup is not active time either, and
828
828
  // against a tight pin it was the whole budget — a 900ms spawn hit a 500ms ceiling having done
829
829
  // nothing at all, and the turn died carrying `hardWall` with zero tool calls to explain it.
830
830
  else if (started && activeElapsedMs({ wall: now - firstOutputAt, toolWaitMs, toolAskedAt, now }) >= hardMs) {
@@ -840,7 +840,7 @@ export const anthropicAgentEngine = {
840
840
  child.stdout.on("data", (d) => {
841
841
  if (settled || overflow) return;
842
842
  if (firstOutputAt === null) firstOutputAt = Date.now(); // #1692 — the child has spoken; startup is over
843
- chunkSeq += 1; // tracker issue 1828 — see toolAskedChunk
843
+ chunkSeq += 1; // see toolAskedChunk
844
844
  chunkBytes = d.length;
845
845
  chunkGapMs = prevChunkAt === null ? 0 : Date.now() - prevChunkAt;
846
846
  prevChunkAt = Date.now();
@@ -852,7 +852,7 @@ export const anthropicAgentEngine = {
852
852
  });
853
853
  child.stderr.on("data", (d) => {
854
854
  if (settled || overflow) return;
855
- // tracker issue 1813 — STDERR DOES NOT START THE CLOCKS, and this line used to. This engine's protocol is
855
+ // STDERR DOES NOT START THE CLOCKS, and this line used to. This engine's protocol is
856
856
  // stream-json on STDOUT; stderr carries node warnings and CLI notices, which a child can emit
857
857
  // before it has done anything at all. Treating one as "the child has spoken" ended the grace and
858
858
  // — since tracker issue 1780, which made the first byte the progress clock's ORIGIN — started that clock too,
@@ -870,7 +870,7 @@ export const anthropicAgentEngine = {
870
870
  child.on("error", (e) => { if (settled) return; settled = true; clearInterval(watchdog); resolve(errResult(t0, e, resumeRef)); });
871
871
  child.on("close", (code) => settle(code));
872
872
  function settle(code) {
873
- // tracker issue 2076 — the turn is over; the record must not outlive it, and is cleared only if
873
+ // the turn is over; the record must not outlive it, and is cleared only if
874
874
  // it still names THIS child.
875
875
  clearEngineChild(runDir, child?.pid);
876
876
  if (settled) return; settled = true;
@@ -889,7 +889,7 @@ export const anthropicAgentEngine = {
889
889
  // defect from the inside.
890
890
  const endedAt = Date.now();
891
891
  const wall = (endedAt - t0) / 1000;
892
- // tracker issue 1111 — THE TWO CLOCKS MUST TILE THE WALL, in every case including the one that matters.
892
+ // THE TWO CLOCKS MUST TILE THE WALL, in every case including the one that matters.
893
893
  //
894
894
  // A turn killed mid-tool-call has an OPEN ask that `toolWaitMs` has not closed. Reporting the
895
895
  // unclosed accumulator left `activeMs + toolWaitMs` short of the wall by exactly that gap — and
@@ -924,7 +924,7 @@ export const anthropicAgentEngine = {
924
924
  const stderrOut = overflow
925
925
  ? (stderr + `\nanthropic-agent output overflow: stdout/stderr exceeded ${maxBuffer} chars — killed the tree and failed the turn (truncated tail never parsed)`)
926
926
  : noProgressKill
927
- // tracker issue 1780 — THE SPECIMEN RIDES THE FAILURE, because the broken state expires. This kill has
927
+ // THE SPECIMEN RIDES THE FAILURE, because the broken state expires. This kill has
928
928
  // twice reddened `main` from a test whose ANTI-VACUITY check failed — the turn died having
929
929
  // opened no tool ask — and neither the box's ambient load nor a full-suite run reproduces
930
930
  // it on demand. So the discriminating bit is recorded HERE, where the kill happens, rather
@@ -962,11 +962,11 @@ export const anthropicAgentEngine = {
962
962
  // from this list is unreliable and the consumer must downgrade it to "not observed").
963
963
  reads: [...reads], readsTruncated,
964
964
  toolCalls, toolWaitMs: settledToolWaitMs, // #1111 — two integers, no content
965
- // tracker issue 1780 — ms from spawn to the child's FIRST byte, or null when it never spoke. RECORDING
965
+ // ms from spawn to the child's FIRST byte, or null when it never spoke. RECORDING
966
966
  // ONLY: nothing branches on it. A recording field is protected by a test or by nothing, so
967
967
  // engine.anthropic.test.mjs pins it — deleting it must red something.
968
968
  firstByteMs: firstOutputAt === null ? null : Math.round(firstOutputAt - t0),
969
- // tracker issue 1111 — WHICH CLOCK RAN OUT, and WHAT the wait was made of.
969
+ // WHICH CLOCK RAN OUT, and WHAT the wait was made of.
970
970
  //
971
971
  // The hard wall measures ELAPSED, and elapsed includes time the model spent waiting on tools
972
972
  // rather than generating. A wall kill whose elapsed is mostly tool wait is a different event from
@@ -982,7 +982,7 @@ export const anthropicAgentEngine = {
982
982
  // "this record predates the gauge".
983
983
  activeMs: Math.max(0, Math.round(wall * 1000) - settledToolWaitMs),
984
984
  toolWaitByTool: { ...toolWaitByTool },
985
- // tracker issue 1828 — the asks whose wait this process COULD NOT MEASURE, because the ask and
985
+ // the asks whose wait this process COULD NOT MEASURE, because the ask and
986
986
  // its result were delivered in one chunk. An ARRAY is a measurement (possibly `[]`: measured,
987
987
  // nothing unmeasurable), following toolWaitByTool's own rule that absence and "cannot report"
988
988
  // must not look alike. `toolWaitMs` and the per-tool split are untouched.
@@ -20,7 +20,7 @@
20
20
  // spelling list let the OpenAI half decide how an Anthropic run bills. deleted the old names, so
21
21
  // there is one variable, only the selected engine is ever consulted, and the hazard has no route left.
22
22
  //
23
- // And deliberately written OUT at each site rather than through a helper: 's guard in
23
+ // And deliberately written OUT at each site rather than through a helper: the guard in
24
24
  // `env-governance.test.mjs` finds a product read by the literal `env.NAME`, so a helper taking the
25
25
  // name as an argument makes both reads invisible to it — measured, it turned them harness-only and
26
26
  // put both names on the "no longer read by product code" list. The repetition is what keeps them
@@ -157,7 +157,7 @@ export function runStreamingChild({
157
157
  // timeout; NaN/≤0 clamps to 660s so the wall never silently disables. A non-positive or unparseable
158
158
  // PIN falls through to that derivation for the same reason — a pin is an instrument, never an off
159
159
  // switch. Without it the floor here is 61 SECONDS at the shortest, which is why this clock had no arm
160
- // and why 's grace never reached the line below: no test could drive it without sitting for a
160
+ // and why the grace never reached the line below: no test could drive it without sitting for a
161
161
  // minute.
162
162
  const pinnedHard = Number(process.env.CLEAROTRON_HARD_MS);
163
163
  const hardMs = pinnedHard > 0 ? pinnedHard : (Number(timeoutSec) > 0 ? Number(timeoutSec) + 60 : 660) * 1000;
@@ -10,7 +10,7 @@
10
10
  //
11
11
  // ── WHY A HOOK, AND NOT THE THING YOU WOULD TRY FIRST ────────────────────────────────────────────────
12
12
  //
13
- // 's incident was a live clearance writing two files into the skills tree. The obvious reading is
13
+ // That incident was a live clearance writing two files into the skills tree. The obvious reading is
14
14
  // "a seat did something it should not". Reading the grant layer first says otherwise: `buildClaudeArgs`
15
15
  // grants that tree with `--add-dir`, WHICH HAS NO READ-ONLY FORM, under `--permission-mode acceptEdits`
16
16
  // which auto-approves Write/Edit so each stage can save its output without prompting. The tree was
@@ -78,7 +78,7 @@ export function readJxTuple(tuple, { vendor, authMode, engine }) {
78
78
  const usage = u ? { input: u.input ?? 0, output: u.output ?? 0, cacheRead: u.cacheRead ?? 0,
79
79
  cacheWrite: u.cacheWrite ?? 0, total: u.total ?? 0 }
80
80
  : null;
81
- // The model that actually served the turn, never the alias we asked for — 's criterion 4 is that
81
+ // The model that actually served the turn, never the alias we asked for — the criterion 4 is that
82
82
  // the receipt names who did the native-language work, and an alias does not name anyone. Both adapters
83
83
  // populate it (anthropic-agent from the assistant/init events, openai-agent from `ev.model`).
84
84
  const model = tuple?.modelWire ?? null;
@@ -38,7 +38,7 @@ const API_KEY = process.env.CLARIVATE_API_KEY || "";
38
38
  const BASE = process.env.CLARIVATE_API_BASE || DEFAULT_BASE;
39
39
  const tctx = (kind) => ({
40
40
  kind,
41
- agentId: process.env.CLEAROTRON_GATHER_AGENT || "clawdi",
41
+ agentId: process.env.CLEAROTRON_GATHER_AGENT || "localagent",
42
42
  sessionKey: process.env.CLEAROTRON_GATHER_SESSION_KEY || "", // run session key — telemetry attribution
43
43
  sessionId: process.env.CLEAROTRON_GATHER_SESSION_ID || "",
44
44
  });
@@ -13,7 +13,7 @@ import { proposeSupplemental } from "./supplemental.mjs";
13
13
  const COOKIE = process.env.CORSEARCH_SESSION_KEY || "";
14
14
  const tctx = (kind) => ({
15
15
  kind,
16
- agentId: process.env.CLEAROTRON_GATHER_AGENT || "clawdi",
16
+ agentId: process.env.CLEAROTRON_GATHER_AGENT || "localagent",
17
17
  sessionKey: process.env.CLEAROTRON_GATHER_SESSION_KEY || "", // run session key — telemetry attribution
18
18
  sessionId: process.env.CLEAROTRON_GATHER_SESSION_ID || "",
19
19
  });
@@ -65,7 +65,7 @@ function loadDeclinationSpec(runDir) {
65
65
 
66
66
  async function record_declination(params) {
67
67
  // `CLEAROTRON_BAND_RUN_DIR` at CALL TIME, and there is no `run_dir` parameter — the run is not the seat's
68
- // to name. 's lesson, where an invented fallback sat two lines under a promise never to guess.
68
+ // to name. That lesson, where an invented fallback sat two lines under a promise never to guess.
69
69
  const runDir = String(process.env.CLEAROTRON_BAND_RUN_DIR ?? "");
70
70
  if (!runDir) {
71
71
  return { error: "this server was started without a run — the driver wires it per run; there is no parameter for it and this tool never guesses one" };
@@ -66,7 +66,7 @@ import { MAX_ROWS_PER_CALL } from "../../disposition-call.mjs";
66
66
  // can have. Here the serialization is ours, so the class is gone rather than caught.
67
67
  //
68
68
  // THE SPEC PATH IS THE SEAT'S ONLY PATH ARGUMENT, and it is the same driver-written file the grid tool
69
- // was given. 's rule: the path is the DRIVER'S, taken from the spec it wrote. Two derivations of one
69
+ // was given. That rule: the path is the DRIVER'S, taken from the spec it wrote. Two derivations of one
70
70
  // filename is the drift that cost weeks.
71
71
  async function record_dispositions(params) {
72
72
  const { grid_spec_path, rows } = params ?? {};
@@ -46,7 +46,7 @@ const AUTH = {
46
46
  };
47
47
  const tctx = (kind) => ({
48
48
  kind,
49
- agentId: process.env.CLEAROTRON_GATHER_AGENT || "clawdi",
49
+ agentId: process.env.CLEAROTRON_GATHER_AGENT || "localagent",
50
50
  sessionKey: process.env.CLEAROTRON_GATHER_SESSION_KEY || "",
51
51
  sessionId: process.env.CLEAROTRON_GATHER_SESSION_ID || "",
52
52
  });
@@ -30,7 +30,7 @@ serve({
30
30
  const ctrl = new AbortController();
31
31
  const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
32
32
  try {
33
- const res = await fetch(url, { redirect: "follow", signal: ctrl.signal, headers: { "user-agent": "cordillera-prelim-fetch/0.1" } });
33
+ const res = await fetch(url, { redirect: "follow", signal: ctrl.signal, headers: { "user-agent": "cordillera-clearotron-fetch/0.1" } });
34
34
  const body = await res.text();
35
35
  const text = body.length > MAX_CHARS ? body.slice(0, MAX_CHARS) + `\n…[truncated at ${MAX_CHARS} chars]` : body;
36
36
  return { isError: res.ok ? undefined : true, text: `HTTP ${res.status} ${res.statusText} — ${url}\n\n${text}` };
@@ -42,7 +42,7 @@ const AUTH = null;
42
42
 
43
43
  const tctx = (kind) => ({
44
44
  kind,
45
- agentId: process.env.CLEAROTRON_GATHER_AGENT || "clawdi",
45
+ agentId: process.env.CLEAROTRON_GATHER_AGENT || "localagent",
46
46
  sessionKey: process.env.CLEAROTRON_GATHER_SESSION_KEY || "",
47
47
  sessionId: process.env.CLEAROTRON_GATHER_SESSION_ID || "",
48
48
  });
@@ -56,7 +56,7 @@ const CAPABILITY_OFFICES = CAPABILITIES.offices.covered.join("+");
56
56
  // it a third. It did. This is that third site, and it went on requiring USPTO_LOCAL_DB after the other
57
57
  // two stopped.
58
58
  //
59
- // The cost was total. On an EU-only box 's whole path worked — preflight passed, the plan compiled
59
+ // The cost was total. On an EU-only box the whole path worked — preflight passed, the plan compiled
60
60
  // with the US split off as a disclosed deferral, the EU entry was executable — and then EVERY register_*
61
61
  // tool the seat called was refused here, so the EU half never ran. Everything upstream was right and
62
62
  // nothing downstream happened, which is the least legible way for a fix to fail.