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