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.
- package/.env.example +105 -0
- package/CONTRIBUTING.md +3 -3
- package/INSTALL.md +57 -52
- package/README.md +2 -1
- package/bin/brandowner.mjs +1 -1
- package/bin/clearotron.mjs +4 -4
- package/bin/connect.mjs +2 -2
- package/bin/example.mjs +114 -37
- package/bin/grant.mjs +3 -3
- package/bin/key.mjs +1 -1
- package/bin/onboard.mjs +97 -119
- package/bin/start.mjs +29 -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/RELEASES.md +6 -4
- package/docs/architecture/01-product-overview.md +2 -2
- package/docs/architecture/02-architecture.md +2 -2
- package/docs/architecture/04-configuration-reference.md +7 -4
- 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 +95 -1
- package/driver/README.md +2 -2
- package/driver/ask-ledger.mjs +72 -4
- 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 +215 -63
- 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 +29 -11
- 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/publish/seed-pool.mjs +24 -9
- 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 +141 -2
- package/driver/recording-agreement.mjs +3 -3
- package/driver/reference-score.mjs +59 -9
- package/driver/reference-strip-signatures.mjs +68 -0
- package/driver/refusal-bound.mjs +3 -3
- package/driver/register-availability.mjs +2 -2
- package/driver/register-count.mjs +1 -1
- package/driver/register-digest-record.mjs +31 -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 +7 -7
- 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 +188 -44
- 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 +14 -14
- 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 +12 -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 +12 -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 +12 -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 +2 -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 +4 -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 +27 -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 +274 -0
- package/scripts/home-render-check.mjs +3 -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-reference-strip-backlog.mjs +41 -0
- 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 +101 -11
- package/scripts/release-version-pr-checks.mjs +26 -2
- package/scripts/release-version.mjs +2 -2
- package/scripts/render-check.mjs +66 -7
- package/scripts/report-frame-check.mjs +12 -0
- package/scripts/report-screenshot.mjs +62 -2
- package/scripts/revisit-render-check.mjs +3 -2
- package/scripts/score.mjs +18 -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 +215 -0
- 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/tracked-files.mjs +31 -0
- 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
|
@@ -79,7 +79,7 @@ export const REGISTER_SERVERS = {
|
|
|
79
79
|
// register_search / register_record_fetch — served since the thin days.
|
|
80
80
|
// register_enumerate — SERVED and now granted. built the page loop on the shared kernel;
|
|
81
81
|
// capabilities.js records the bounds it runs against as live-probed 2026-08-17 (pageSize 100 is the
|
|
82
|
-
// API's hard refusal, verified at 200/250/500). This is the tool
|
|
82
|
+
// API's hard refusal, verified at 200/250/500). This is the tool the owner-window ceiling is
|
|
83
83
|
// passed into (OWNER_SCOPED_WINDOW → ceilingFor → makeEnumerate), so withholding it put that
|
|
84
84
|
// criterion out of reach of any round.
|
|
85
85
|
// register_execute_plan — SERVED and now granted. Two corrective-ladder hints name it unconditionally
|
|
@@ -188,7 +188,7 @@ export const REGISTER_SERVERS = {
|
|
|
188
188
|
// (server-tools-granted-or-stated.test.mjs: every record tool has exactly one granting stage).
|
|
189
189
|
const RECORDING_SERVER = "recording-server.mjs";
|
|
190
190
|
const RECORDING = Object.freeze({
|
|
191
|
-
// FIRST OCCUPANT — blind-frame (
|
|
191
|
+
// FIRST OCCUPANT — blind-frame (the transport, wired by, dictation deleted by).
|
|
192
192
|
//
|
|
193
193
|
// `seatWrites: false` is the half, and it is the only thing that closes the regression door BY
|
|
194
194
|
// CONSTRUCTION rather than by prose. Once the driver writes blind-frame-model.json, nothing this stage is
|
|
@@ -686,7 +686,7 @@ const LOCAL = {
|
|
|
686
686
|
"unit-note": { script: "unit-note-server.mjs", tools: ["record_unit_note"] },
|
|
687
687
|
// ── RECORDING — DERIVED from the registry above, one entry per stage, in registry order ──────────
|
|
688
688
|
//
|
|
689
|
-
// These rows were hand-written here until
|
|
689
|
+
// These rows were hand-written here until the collapse. They are LAST in this object on purpose:
|
|
690
690
|
// LOCAL_SERVER_SCRIPTS below is `Object.values(LOCAL).map(...)`, so insertion order is part of its
|
|
691
691
|
// value, and `recording-server.mjs` appearing TWICE is the evidence both keys resolve to the one
|
|
692
692
|
// module. recording-grant-preservation.test.mjs pins that array verbatim, duplicates included.
|
|
@@ -695,7 +695,7 @@ const LOCAL = {
|
|
|
695
695
|
};
|
|
696
696
|
|
|
697
697
|
// The scripts LOCAL grants, DERIVED. Exported because the server census would otherwise recite them, and
|
|
698
|
-
// a recited list is one more population to keep in sync by hand —
|
|
698
|
+
// a recited list is one more population to keep in sync by hand — the census derived the register
|
|
699
699
|
// half from REGISTER_SERVERS and hardcoded this half, so wiring a new local server left it reading as
|
|
700
700
|
// ungranted. Derive both halves or neither.
|
|
701
701
|
export const LOCAL_SERVER_SCRIPTS = Object.freeze(Object.values(LOCAL).map((e) => e.script));
|
|
@@ -873,7 +873,7 @@ export function buildGatherMcpConfig(groups = [], { sessionKey, agent, runDir, r
|
|
|
873
873
|
// There is no production caller to break: `driver/gateway.mjs` is the only non-test call site in the
|
|
874
874
|
// tree and it always passes the run it is dispatching for. A caller that reaches this without one has
|
|
875
875
|
// a defect a refusal names immediately, instead of a record body somewhere its run will never look.
|
|
876
|
-
// ORDER MATTERS: resolve the register provider FIRST.
|
|
876
|
+
// ORDER MATTERS: resolve the register provider FIRST. That "CLEAROTRON_DATABASE is not set"
|
|
877
877
|
// is the more fundamental refusal and the one an operator acts on, so it must still come out ahead of
|
|
878
878
|
// this one — a box with neither a provider nor a run should be told about the provider.
|
|
879
879
|
if (localKeys.has("register")) {
|
|
@@ -964,7 +964,7 @@ export function toolGroupsForStage(name = "") {
|
|
|
964
964
|
// the issue predicts, on the one matter where the confirmation step was most clearly indicated (four
|
|
965
965
|
// `loaded` meaning rulings, see).
|
|
966
966
|
//
|
|
967
|
-
// This changes engine behaviour and ships `status:merged-awaiting-e2e`, which
|
|
967
|
+
// This changes engine behaviour and ships `status:merged-awaiting-e2e`, which the out-of-scope block
|
|
968
968
|
// anticipates in as many words. The scoping is doctrine's, not the grant's: SKILL.md already caps it at
|
|
969
969
|
// one probe per review and requires the query and its result recorded verbatim.
|
|
970
970
|
// ── THE ONE BRANCH THAT RETURNS RETRIEVAL *AND* RECORDING, and it has to be here ────────────────
|
|
@@ -1027,7 +1027,7 @@ export function toolGroupsForStage(name = "") {
|
|
|
1027
1027
|
//
|
|
1028
1028
|
// NOT a prefix test, for either form. A prefix would hand the grant to any future stage whose name
|
|
1029
1029
|
// merely began with a recording stage's. The base row must SAY it fans out — declaration, not
|
|
1030
|
-
// inference, the same principle as
|
|
1030
|
+
// inference, the same principle as the declared phase.
|
|
1031
1031
|
for (const [sep, flag] of SUFFIX_FORMS) {
|
|
1032
1032
|
const at = name.lastIndexOf(sep);
|
|
1033
1033
|
if (at <= 0) continue;
|
|
@@ -1153,7 +1153,7 @@ export function recordAxisFor(name = "") {
|
|
|
1153
1153
|
// gains `--mcp-config`, `--strict-mcp-config` AND `--allowedTools` where it previously had none. That is
|
|
1154
1154
|
// a change in KIND and the right one — these stages become constrained for the first time — but it must
|
|
1155
1155
|
// be asserted at the argv level, not inferred from this map.
|
|
1156
|
-
// FIRST OCCUPANT — blind-frame (
|
|
1156
|
+
// FIRST OCCUPANT — blind-frame (the transport, wired here). SECOND — skeptic.
|
|
1157
1157
|
//
|
|
1158
1158
|
// The safety basis is a SAMPLE and is stated as one: O3c measured blind-frame at 0 Bash calls across 15
|
|
1159
1159
|
// attempts, alone among the eleven tool-free stages. That is why it converted first. On attempt 16 a
|
|
@@ -1189,7 +1189,7 @@ export const RECORDING_STAGES = Object.freeze(Object.fromEntries(
|
|
|
1189
1189
|
//
|
|
1190
1190
|
// ── DELIBERATELY NOT DERIVED FROM THE REGISTRY, unlike the four declarations above it ──────────────
|
|
1191
1191
|
//
|
|
1192
|
-
//
|
|
1192
|
+
// That collapse made the LOCAL entries, the group resolution, the stage→group map and RECORDING_STAGES
|
|
1193
1193
|
// derive from one registry. This table did NOT move, and the reason is the whole value of it: O1 asserts
|
|
1194
1194
|
// the resolved grant EQUALS this row. Derive it from the same registry the grant derives from and O1
|
|
1195
1195
|
// compares a value with itself — a guard turned tautology inside the PR that was meant to strengthen it.
|
|
@@ -1211,7 +1211,7 @@ export const RECORDING_TOOLS = Object.freeze({
|
|
|
1211
1211
|
"mcp__recording-matter-frame__search_run_artifacts"]),
|
|
1212
1212
|
skeptic: Object.freeze(["Read", "mcp__recording-skeptic__record_skeptic",
|
|
1213
1213
|
"mcp__recording-skeptic__search_run_artifacts"]),
|
|
1214
|
-
//
|
|
1214
|
+
// That third conversion. `Read` and its one record tool: the stage's reads are its two named input
|
|
1215
1215
|
// files, which the seeded grant serves, and it gets no search tool because a stage with an enumerable
|
|
1216
1216
|
// read set does not need one. BY HAND, like every row here — deriving it from the registry would make
|
|
1217
1217
|
// O1 compare a value with itself.
|
|
@@ -1370,7 +1370,7 @@ export function seatWritesForGroups(groups = []) {
|
|
|
1370
1370
|
}
|
|
1371
1371
|
|
|
1372
1372
|
/**
|
|
1373
|
-
* THE ENUMERATION, derived and not hand-listed (
|
|
1373
|
+
* THE ENUMERATION, derived and not hand-listed (the third proof requirement).
|
|
1374
1374
|
*
|
|
1375
1375
|
* A naive grep for `seatWrites: false` returns TEN hits and the population is EIGHT: two of the hits are
|
|
1376
1376
|
* comment text — one in the blind-frame FIRST OCCUPANT note, one in `allowedToolsFor`'s own
|
|
@@ -135,7 +135,7 @@ function tellObligations(spec, ledgerJson) {
|
|
|
135
135
|
}, null, 2) + "\n",
|
|
136
136
|
);
|
|
137
137
|
// B — NO SEAT-FACING FORM IS WRITTEN, ANY MORE, BY ANYONE. The -era write-back that lived here
|
|
138
|
-
// (a union of the seat's file bytes into a rebuilt seat-facing form, plus
|
|
138
|
+
// (a union of the seat's file bytes into a rebuilt seat-facing form, plus the whose-bytes referee)
|
|
139
139
|
// died with the form path: the seat records rulings only through `record_dispositions`, the
|
|
140
140
|
// accumulator in `_driver/` is the one copy and the tool is its writer mid-turn. What the seat needs
|
|
141
141
|
// at this moment — the obligations, the candidates, the positions and the recording route — is all in
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
//
|
|
25
25
|
// `CLEAROTRON_BAND_RUN_DIR`, read at CALL TIME. `serverEnv()` (gather-config.mjs:162) sets it for every local
|
|
26
26
|
// server, not only band. There is no `run_dir` parameter and there must not be one — the lesson is
|
|
27
|
-
//
|
|
27
|
+
// the earlier one, where an invented `CLEAROTRON_RUN_DIR` fallback sat two lines under a sentence promising the tool
|
|
28
28
|
// never guesses a run. Call time rather than module load: stdio-server.mjs:29-33 states why for this
|
|
29
29
|
// exact variable.
|
|
30
30
|
// ── THE SECOND CAPABILITY CLASS: A SCOPED READ, and why it does not break the sentence above ────────
|
|
31
31
|
//
|
|
32
|
-
// `search_run_artifacts` is the skeptic's sanctioned read surface (
|
|
32
|
+
// `search_run_artifacts` is the skeptic's sanctioned read surface (the ratification hold, unlock
|
|
33
33
|
// path 1): a literal substring search over the calling run's OWN artifact tree, replacing the Bash
|
|
34
34
|
// reads O3c measured the stage using. It still dials nothing and writes nothing — the category's
|
|
35
35
|
// promise is about RETRIEVAL and writes, and a read bounded to CLEAROTRON_BAND_RUN_DIR widens neither.
|
|
@@ -464,7 +464,7 @@ serve({
|
|
|
464
464
|
value: { type: "string", description: "The search term itself — never a label, never an enumeration." },
|
|
465
465
|
// THE CANONICAL ENUM, imported — never a second copy. `parseVariantManifestModel` refuses
|
|
466
466
|
// anything outside it, so a hand-typed list here could drift into promising a category the
|
|
467
|
-
// parser rejects.
|
|
467
|
+
// parser rejects. That brief reads the same constant.
|
|
468
468
|
category: { type: "string", enum: [...VARIANT_CATEGORIES] },
|
|
469
469
|
rationale: { type: "string" },
|
|
470
470
|
romanization: { type: "string", description: "Latin-script form. NON-LATIN VALUES ONLY — a romanisation on a Latin value is refused as an orphan." },
|
|
@@ -848,7 +848,7 @@ serve({
|
|
|
848
848
|
// The reviewer is the report's only check, and it wrote its own review as prose. Everything
|
|
849
849
|
// downstream then parsed that prose back: the verdict token, the flag list, the `[kind:]`/`[on:]`
|
|
850
850
|
// channels, and the count that decides whether a BLOCKING is degenerate. The seat chose the
|
|
851
|
-
// enumeration style, so the parse could miss it —
|
|
851
|
+
// enumeration style, so the parse could miss it — the lettered flags were invisible
|
|
852
852
|
// for exactly that reason. Handing values makes the style the driver's, so a flag the parse cannot
|
|
853
853
|
// see stops being possible rather than being detected afterwards.
|
|
854
854
|
//
|
|
@@ -1120,6 +1120,10 @@ serve({
|
|
|
1120
1120
|
properties: {
|
|
1121
1121
|
recordId: { type: "string", description: "Copied VERBATIM from the filings you were given." },
|
|
1122
1122
|
read: { type: "string", description: "What you concluded about THIS filing." },
|
|
1123
|
+
// Declared here for the reason the comment above gives: `additionalProperties: false`
|
|
1124
|
+
// means an undeclared key is a contradiction between the prose and the schema, and the
|
|
1125
|
+
// seat resolves it whichever way it happens to trust.
|
|
1126
|
+
band: { type: "string", description: "OPTIONAL — how you rate THIS filing, in the framework's own band words. Send it when you formed a view on the filing itself; the card prints it as that filing's rating. Omit it and your read still prints, with no rating claimed." },
|
|
1123
1127
|
},
|
|
1124
1128
|
},
|
|
1125
1129
|
},
|
|
@@ -17,7 +17,7 @@ const API_KEY = process.env.SIGNA_API_KEY || "";
|
|
|
17
17
|
const BASE = process.env.SIGNA_BASE_URL || DEFAULT_BASE;
|
|
18
18
|
const tctx = (kind) => ({
|
|
19
19
|
kind,
|
|
20
|
-
agentId: process.env.CLEAROTRON_GATHER_AGENT || "
|
|
20
|
+
agentId: process.env.CLEAROTRON_GATHER_AGENT || "localagent",
|
|
21
21
|
sessionKey: process.env.CLEAROTRON_GATHER_SESSION_KEY || "", // run session key — telemetry attribution
|
|
22
22
|
sessionId: process.env.CLEAROTRON_GATHER_SESSION_ID || "",
|
|
23
23
|
});
|
|
@@ -43,7 +43,7 @@ const DB_PATH = process.env[DEFAULT_DB_ENV] || "";
|
|
|
43
43
|
const AUTH = { dbPath: DB_PATH };
|
|
44
44
|
const tctx = (kind) => ({
|
|
45
45
|
kind,
|
|
46
|
-
agentId: process.env.CLEAROTRON_GATHER_AGENT || "
|
|
46
|
+
agentId: process.env.CLEAROTRON_GATHER_AGENT || "localagent",
|
|
47
47
|
sessionKey: process.env.CLEAROTRON_GATHER_SESSION_KEY || "", // run session key — telemetry attribution
|
|
48
48
|
sessionId: process.env.CLEAROTRON_GATHER_SESSION_ID || "",
|
|
49
49
|
});
|
|
@@ -446,7 +446,7 @@ function settleTuple({ r, ev, resumeRef }) {
|
|
|
446
446
|
killed, wall: r.wall,
|
|
447
447
|
stdout: text, stderr: stderrOut, laneWaitMs: 0,
|
|
448
448
|
json, usage,
|
|
449
|
-
// MODEL GAUGE (
|
|
449
|
+
// MODEL GAUGE (): the id codex recorded for this turn — from its session rollout under
|
|
450
450
|
// this run's own CODEX_HOME, since the event stream states none. Still two states and never one:
|
|
451
451
|
// null = "this engine did not report", never the requested tier wearing the word "actual".
|
|
452
452
|
// gateway.mjs records the absence as modelBasis:"unknown".
|
|
@@ -478,7 +478,7 @@ function settleTuple({ r, ev, resumeRef }) {
|
|
|
478
478
|
mcpRefused: mcpToolGauge(ev).mcpToolCallsRefused > 0 || undefined,
|
|
479
479
|
rateLimited: rateLimited || undefined,
|
|
480
480
|
rateLimitBasis: rateLimited ? "text-match" : undefined,
|
|
481
|
-
// resetsAtBasis (
|
|
481
|
+
// resetsAtBasis (2026-08-20): same honesty as rateLimitBasis one line up, for the reset
|
|
482
482
|
// CLOCK rather than the classification. codex states its reset as human prose with NO timezone
|
|
483
483
|
// ("try again at Aug 22nd, 2026 9:06 AM"), so the ISO we derive is a reading of that prose in the
|
|
484
484
|
// box's own zone — never a provider fact. Absent when no hint was found, exactly as `resetsAt` is.
|
package/driver/engine-build.mjs
CHANGED
|
@@ -87,11 +87,11 @@ export function resetEngineCommit() { cached = undefined; source = undefined; re
|
|
|
87
87
|
// So attribution has been a reflog reconstruction: join a checkout's reflog against each run's
|
|
88
88
|
// `startedAt`. That reconstruction expires with the reflog, cannot survive a re-clone, is wrong for
|
|
89
89
|
// every run made while the checkout sat detached, and mixes a local-time reflog against UTC stamps.
|
|
90
|
-
// It decided three certifications in one morning (
|
|
90
|
+
// It decided three certifications in one morning () and produced two near-miss
|
|
91
91
|
// wrong rulings in two days.
|
|
92
92
|
//
|
|
93
93
|
// A SIBLING, NOT A WIDER RETURN TYPE. `engineCommit()` keeps its bare-string contract exactly:
|
|
94
|
-
//
|
|
94
|
+
// That guard pins its import line by regex AND pins the literal `engineCommit: engineCommit` in
|
|
95
95
|
// the publisher, four consumers read the string, and `scripts/freeze-example-run.mjs` asserts in prose
|
|
96
96
|
// that it "is cached to one value and cannot differ between the two". Widening it would break all of
|
|
97
97
|
// that to add a field only one new caller wants.
|
|
@@ -663,7 +663,7 @@ export function validateJob(job, { atClaim = false } = {}) {
|
|
|
663
663
|
// Every other check in this build lives at one or two of them: `checkClearanceScopeRules` runs at the
|
|
664
664
|
// runner, the portal and plan_run but at neither start_run nor the CLI; the mark budget and the
|
|
665
665
|
// availability gate run at the runner alone. A rule placed at a door is a rule the other doors do not
|
|
666
|
-
// have, and
|
|
666
|
+
// have, and the acceptance test is that all three refuse the same request in the same words.
|
|
667
667
|
//
|
|
668
668
|
// WHAT IS JUDGED HERE: everything the REQUEST states. Each of the offering's illegal shapes is visible
|
|
669
669
|
// without resolving anything — a narrowed Global preliminary, a two-country Full country search, a
|
|
@@ -983,7 +983,7 @@ export const EXAMPLE_JOB = {
|
|
|
983
983
|
// deliveryRoute: "portal", // OPTIONAL: "email" (default) or "portal" — a portal-route packet
|
|
984
984
|
// is mark_sent by the courier WITHOUT an email send.
|
|
985
985
|
// parentRunId: "novapulse-cedar", // OPTIONAL escalation lineage: the run this one escalates from
|
|
986
|
-
// (e.g. a knockout HIGH mark → this
|
|
986
|
+
// (e.g. a knockout HIGH mark → this clearotron). Recorded, not yet resolved.
|
|
987
987
|
projectKey: "console-ecosystem", // spec 62 (OPTIONAL): the PROJECT/engagement under the customer whose
|
|
988
988
|
// overlay (its own marketplaces/classes/sector/posture) rates this
|
|
989
989
|
// matter; omit ⇒ runs on the customer profile. Unknown key ⇒ clarify.
|
package/driver/enqueue.mjs
CHANGED
|
@@ -245,7 +245,7 @@ async function main(argv) {
|
|
|
245
245
|
try { job = assembleFromFlags(flags); } catch (e) { fail(`could not assemble the job: ${e.message}`); }
|
|
246
246
|
if (!job.forwarder) fail("missing --forwarder — the requester/reply-routing key; the delivery packet needs it to route the report (there is deliberately no default)", 2);
|
|
247
247
|
// THE EARLY --product CHECK IS GONE, and its deletion is the fix. It fired before validateJob and said
|
|
248
|
-
// the same thing in different words — `--product "
|
|
248
|
+
// the same thing in different words — `--product "clearotron"` rather than `product "clearotron"`, and without
|
|
249
249
|
// the `(or omit it for the account's default)` clause, which is the one clause that tells a requester
|
|
250
250
|
// the field is optional. So the CLI's real answer to a typo was not the shared one, and a test that
|
|
251
251
|
// started at assembleFromFlags could never see it. validateJob refuses it now, in the sentence every
|
|
@@ -196,7 +196,7 @@ export async function settleReceipt({ P, plan, receipt, dispatch = null, rejoin
|
|
|
196
196
|
|
|
197
197
|
/**
|
|
198
198
|
* The settled facts a digest dispatch needs, as a message section — mechanical only, quoting the executor's
|
|
199
|
-
* own reason. Every digest pass gets this, not just the first:
|
|
199
|
+
* own reason. Every digest pass gets this, not just the first: the dispatch hint reaches FRESH dispatches
|
|
200
200
|
* by construction (stageOnce ignores `extra` when opts.followup is set), and the flush passes it misses are
|
|
201
201
|
* exactly where the evidence run burned 2,908 seconds failing the same validator twice more.
|
|
202
202
|
*
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
// reading only the claim misses it: the increase is in the evidence stamp.
|
|
27
27
|
//
|
|
28
28
|
// THE LADDER ALREADY EXISTS, so this introduces no vocabulary. `basis` is the run's own certainty
|
|
29
|
-
// ordering and
|
|
29
|
+
// ordering and the demotion is its enforcement; `basis-derivation.json` records every demotion with
|
|
30
30
|
// its reason and its uri. Arm B is a comparison against an artifact the driver already writes, which is
|
|
31
31
|
// why it needs no fetch ledger and no new plumbing.
|
|
32
32
|
//
|
|
33
|
-
// REPORTS, NEVER THROWS. The caller decides what a violation costs —
|
|
33
|
+
// REPORTS, NEVER THROWS. The caller decides what a violation costs — the lesson is that a guard
|
|
34
34
|
// which can kill a run is a guard that eventually kills a run over its own false positive.
|
|
35
35
|
|
|
36
36
|
/** The run's own certainty ordering for a meter's basis. Higher is more certain. */
|
|
@@ -81,7 +81,7 @@ export const DISPOSITIONS = ["adversarial", "coexistence-partner", "distinguishe
|
|
|
81
81
|
// FLOOR 6 and was written as this MOVING constant, which was the same number on the day it was written.
|
|
82
82
|
// Bumping here alone would have made every archived v6 run — v6 shipped 2026-08-03, so real delivered
|
|
83
83
|
// matters carry it — republish through pool-admin doRepublish with the ground-grouped reasoned
|
|
84
|
-
// negatives silently replaced by the pre- region-grouped section. Not a crash: a substance change to
|
|
84
|
+
// negatives silently replaced by the pre-change region-grouped section. Not a crash: a substance change to
|
|
85
85
|
// a report already sent to a client, which is what the render freeze exists to catch. MEASURED at the
|
|
86
86
|
// break: 34,722 → 36,466 body bytes on a three-negative v6 fixture. That line now reads `>= 6`.
|
|
87
87
|
//
|
|
@@ -539,7 +539,7 @@ export function sentenceCaseLead(s) {
|
|
|
539
539
|
return str.slice(0, m[1].length) + m[2].toUpperCase() + str.slice(m[1].length + m[2].length);
|
|
540
540
|
}
|
|
541
541
|
|
|
542
|
-
// ──
|
|
542
|
+
// ── THE ONE BOUND AN ASK STILL HAS, AND THE ONLY ONE ─────────────────────────────────────────
|
|
543
543
|
// The verdict statement renders in index cells, run status, the report hero, the email headline and the
|
|
544
544
|
// xlsx Verdict row — one row each, so an unbounded first condition would swallow the row. This is the
|
|
545
545
|
// last surface in the product that shortens an ask, and it is the honest one: `clipClause` marks the cut
|
|
@@ -813,7 +813,7 @@ const onlyKeys = (obj, allowed, tokenFor) => {
|
|
|
813
813
|
* | finding_bears_on_invalid:<ordinal> | finding_disposition_invalid:<v> | finding_impact_invalid:<ordinal>
|
|
814
814
|
* | finding_deadline_invalid:<ordinal> | finding_deadline_key_unknown:<key> | finding_deadline_date_missing:<ordinal>
|
|
815
815
|
* | findings_context_note_invalid | findings_context_note_key_unknown:<key> | findings_context_note_type_invalid:<v>
|
|
816
|
-
* | findings_net_chained:<ordinal> (
|
|
816
|
+
* | findings_net_chained:<ordinal> (v7 only — PLURAL on purpose; see validateNetShape)
|
|
817
817
|
* (the composite>=3 NON-EMPTY-source gate for use_check/own_rights is raised by the caller in verify.mjs —
|
|
818
818
|
* this parser only enforces SHAPE: object / key-allowlist / source-is-a-string. Both fields are OPTIONAL.)
|
|
819
819
|
*
|
|
@@ -1210,7 +1210,7 @@ export function parseFindingsJsonLenient(raw, opts = {}) {
|
|
|
1210
1210
|
// A1: a withdrawn finding is a non-mergeable singleton — folding a LIVE filing into a
|
|
1211
1211
|
// withdrawn base (or vice versa) would either resurrect a killed conflict or silently kill a live
|
|
1212
1212
|
// one. The `~withdrawn~` suffix keeps it in its own group without touching live-group keys.
|
|
1213
|
-
// ── A LATIN NORMALISER STANDING WHERE A COMPARISON SHOULD BE (
|
|
1213
|
+
// ── A LATIN NORMALISER STANDING WHERE A COMPARISON SHOULD BE (the class, third site) ─────────────
|
|
1214
1214
|
//
|
|
1215
1215
|
// `[^a-z0-9]` folds a CJK, Cyrillic or Arabic value to the EMPTY STRING, and this key is built from two
|
|
1216
1216
|
// of them. Measured on origin/main before the fix:
|
|
@@ -1642,7 +1642,7 @@ function validateBand(f, ord, mode) {
|
|
|
1642
1642
|
// · FACTS AND ASSESSMENT, NEVER AN ACTION PRESCRIPTION. The reader is a lawyer who layers their own
|
|
1643
1643
|
// advice on top. The house prose contract already rules prescriptions out everywhere; on this field
|
|
1644
1644
|
// it is checked, because it is the sentence most likely to drift into advice.
|
|
1645
|
-
// · A CONCLUSION, NEVER A CHAIN (
|
|
1645
|
+
// · A CONCLUSION, NEVER A CHAIN (2026-08-06). See validateNetShape below for the ruling, the two
|
|
1646
1646
|
// mechanical markers it refuses, and why it is the one net rule that had to be version-gated.
|
|
1647
1647
|
// · STILL NO LENGTH MAXIMUM, and now for a second reason. It never came from the validator (a model
|
|
1648
1648
|
// told to be brief writes a shorter sentence and drops a fact), and build 1.3 deletes the renderer's
|
|
@@ -1670,7 +1670,7 @@ const PRESCRIPTION_RE = /\b(we recommend|we advise|we suggest|you should|should
|
|
|
1670
1670
|
// · NOT A QUALITY JUDGMENT. "Does this read as a conclusion" is the lawyer's call and the reviewer
|
|
1671
1671
|
// stage's; code cannot make it without re-judging the finding, which is the rules-engine failure
|
|
1672
1672
|
// this codebase keeps refusing.
|
|
1673
|
-
// · NOT THE WORD "so".
|
|
1673
|
+
// · NOT THE WORD "so". That prose names "a semicolon, an arrow, or the word so", but a word match is
|
|
1674
1674
|
// not mechanical: it fires on "also", "so-called", "so long as the owner". Punctuation cannot be
|
|
1675
1675
|
// mistaken for anything else, and the prose rule survives in synthesis-rules.md where a reader
|
|
1676
1676
|
// applies judgment to it.
|
|
@@ -1910,7 +1910,7 @@ function recordUrlOrigin(value) {
|
|
|
1910
1910
|
* `"not a url"` and `mailto:…` at this site — a documented decision that the host gate does not judge
|
|
1911
1911
|
* them. A blanket not-a-URL rule refutes it silently. So this refuses exactly the shapes names:
|
|
1912
1912
|
* a fragment (addresses THIS document, never a record), a bare path (names no host), and whitespace
|
|
1913
|
-
* (a value that is only shaped like one). Anything else is still
|
|
1913
|
+
* (a value that is only shaped like one). Anything else is still the to rule on.
|
|
1914
1914
|
*
|
|
1915
1915
|
* That leaves `mailto:…` and free text composing a live-but-wrong href rather than a dead anchor. It is
|
|
1916
1916
|
* a real gap and it is NOT this issue's class; recorded on rather than widened into here.
|
|
@@ -2275,7 +2275,7 @@ export function validateKnockoutFinding(f, idx, seenOrdinals = new Set(), opts =
|
|
|
2275
2275
|
throw new Error(`knockout_finding_band_invalid:${kshort(f.band)} (this run's framework "${manifest.framework_key}" rates in EXACTLY these words: ${manifest.bands.map((b) => b.label).join(" / ")})`);
|
|
2276
2276
|
f.band = canonical;
|
|
2277
2277
|
}
|
|
2278
|
-
// THE CONCLUSION SENTENCE —
|
|
2278
|
+
// THE CONCLUSION SENTENCE — the contract, unchanged, on the other product. One rule, one gate: a
|
|
2279
2279
|
// knockout card and a clearance card are read by the same lawyer in the same week.
|
|
2280
2280
|
if (typeof f.net !== "string" || !f.net.trim())
|
|
2281
2281
|
throw new Error(`knockout_finding_net_missing:${ord} (every knockout finding carries the one conclusion sentence the card leads with — see synthesis-rules.md "The finding sentence")`);
|
package/driver/floor-duty.mjs
CHANGED
|
@@ -93,7 +93,7 @@ export const FLOOR_DUTY_STAGE = "placement-inquiry";
|
|
|
93
93
|
* the chance to place the floor or name it with a ground.
|
|
94
94
|
*
|
|
95
95
|
* SAFE TO RE-RUN, and that is measured rather than hoped: the placement form is UNIONED into an
|
|
96
|
-
* accumulator before it is judged and `placements.json` is rendered from the accumulator (
|
|
96
|
+
* accumulator before it is judged and `placements.json` is rendered from the accumulator (after an
|
|
97
97
|
* incident where a killed attempt's finished tiers were thrown away). A second pass merges; it does not
|
|
98
98
|
* start from nothing.
|
|
99
99
|
*
|
|
@@ -483,7 +483,7 @@ export function floorSeeds(manifestMd, { model = null, mark = "" } = {}) {
|
|
|
483
483
|
//
|
|
484
484
|
// It is NOT fixed by romanising. variantCompletenessGaps' per-script floor validates and never
|
|
485
485
|
// generates, on the stated principle that the moment code mints a search term, judgment has moved into
|
|
486
|
-
// the funnel — and that was
|
|
486
|
+
// the funnel — and that was its own reason for excluding non-rule-based transliteration. A
|
|
487
487
|
// romanisation is a minted term. So the deterministic floor genuinely does not exist for this mark, and
|
|
488
488
|
// the honest move is to say which mark, and why, where a reader will see it.
|
|
489
489
|
if (!seeds.length) {
|
package/driver/framework.mjs
CHANGED
|
@@ -97,7 +97,7 @@ export function parseFrameworkManifest(raw) {
|
|
|
97
97
|
return m;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
/** Load + parse the manifest sitting beside a framework .md. rootDir is the
|
|
100
|
+
/** Load + parse the manifest sitting beside a framework .md. rootDir is the clearotron-driver dir (the dir
|
|
101
101
|
* skills/ paths are relative to — the same base reads() uses). */
|
|
102
102
|
// `rootDir` may be a string (legacy: join against it) OR a resolver function taking the manifest's
|
|
103
103
|
// skills-relative path and returning an absolute one — the layered overlay-over-base lookup
|
package/driver/gateway.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, wri
|
|
|
13
13
|
import { join, dirname, basename } from "node:path";
|
|
14
14
|
import { driverDir } from "../shared/driver-dir.mjs"; //
|
|
15
15
|
import { tmpdir } from "node:os";
|
|
16
|
-
import { config, resolveModel, modelFamily, envOn, envGateOn } from "./driver.config.mjs";
|
|
16
|
+
import { config, resolveModel, modelFamily, modelSnapshotKind, envOn, envGateOn } from "./driver.config.mjs";
|
|
17
17
|
import { stageLog, runLog, note, outputMeta } from "./log.mjs";
|
|
18
18
|
// — the closed disposition set has ONE author; this file dictates it and must not retype it.
|
|
19
19
|
import { DISPOSITIONS, POSITION_REQUIRED_DISPOSITIONS } from "./findings-model.mjs";
|
|
@@ -42,7 +42,7 @@ import { FINDINGS_FILE as REGISTER_FINDINGS_FILE, refusalsFor as registerDigestR
|
|
|
42
42
|
// file edit, and this table is what the warm patch reads to know that. It grows by one row per conversion,
|
|
43
43
|
// so its membership IS the conversion record — and a stage absent from it still gets the write-mode tails,
|
|
44
44
|
// correctly, because its seat still holds Write.
|
|
45
|
-
// EXPORTED for
|
|
45
|
+
// EXPORTED for the agreement guard, which derives each recording stage's artifact from this table
|
|
46
46
|
// rather than from a second hand-written list: stage → its granted record tool → the row whose `tool`
|
|
47
47
|
// matches → the basename. A conversion that adds the grant and forgets the row leaves the guard unable to
|
|
48
48
|
// name an artifact for that stage, and it fails there rather than quietly checking one direction less.
|
|
@@ -577,7 +577,7 @@ export function selectEngine() {
|
|
|
577
577
|
// move-blindness this repo has counted seven instances of.
|
|
578
578
|
//
|
|
579
579
|
// What died here with the form path (2026-08-17 owner ruling, delete-not-gate): reading the seat's file
|
|
580
|
-
// as a SUBMISSION, preserving it, refereeing whose bytes it held (
|
|
580
|
+
// as a SUBMISSION, preserving it, refereeing whose bytes it held (the isDriverOwnBytes machinery) and
|
|
581
581
|
// rewriting the seat-facing copy. The seat writes no file, so there is no submission to read, no bytes
|
|
582
582
|
// to referee, and no seat-facing copy to keep in step. The capture duty moved to the receiver
|
|
583
583
|
// (disposition-tool.mjs captureCall — the payload as handed to the process, indexed before the work).
|
|
@@ -618,14 +618,14 @@ export function syncDispositionForm(files) {
|
|
|
618
618
|
let spec = null;
|
|
619
619
|
try { spec = JSON.parse(readFileSync(specPath, "utf8")); }
|
|
620
620
|
catch {
|
|
621
|
-
// No spec sidecar ⇒ a pre- archived resume: nothing dictated, nothing owed, nothing to count.
|
|
621
|
+
// No spec sidecar ⇒ a pre-change archived resume: nothing dictated, nothing owed, nothing to count.
|
|
622
622
|
// A spec that EXISTS and does not parse is a different fact: the stage owes a sweep whose state
|
|
623
623
|
// cannot be counted, and reading that as "owes nothing" would resume a session the veto exists to
|
|
624
624
|
// refuse. The validator fails such a run on grid_spec_unreadable in its own lane.
|
|
625
625
|
return existsSync(specPath) ? { countable: false } : null;
|
|
626
626
|
}
|
|
627
627
|
const formPath = spec?.connotation?.dispositions_path;
|
|
628
|
-
// No dictated path ⇒ a pre- spec (an archived run being resumed). Nothing to count, and the
|
|
628
|
+
// No dictated path ⇒ a pre-change spec (an archived run being resumed). Nothing to count, and the
|
|
629
629
|
// gate has nothing to judge either — the two agree by construction.
|
|
630
630
|
if (!formPath || spec?.connotation?.disposition_required !== true) return null;
|
|
631
631
|
let recorded = null;
|
|
@@ -1142,6 +1142,11 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1142
1142
|
const modelRequested = engine.resolveModelId ? engine.resolveModelId(model) : resolveModel(model);
|
|
1143
1143
|
const modelActual = (typeof turn.modelWire === "string" && turn.modelWire) ? turn.modelWire : null;
|
|
1144
1144
|
const modelBasis = modelActual ? "actual" : "unknown";
|
|
1145
|
+
// WHETHER THE OBSERVED ID NAMES A FIXED BUILD. `modelBasis: "actual"` says the provider answered,
|
|
1146
|
+
// not that the answer is pinned: two of the three tiers come back as undated aliases the provider
|
|
1147
|
+
// may repoint, and recorded beside a dated one they read identically. null when there is nothing to
|
|
1148
|
+
// judge, never collapsed into "alias".
|
|
1149
|
+
const modelSnapshot = modelSnapshotKind(modelActual);
|
|
1145
1150
|
if (modelActual) lastModelWire = modelActual; // — never overwritten with null
|
|
1146
1151
|
// The comparison is by FAMILY (driver.config modelFamily), because `--model haiku` legitimately comes
|
|
1147
1152
|
// back as `claude-haiku-4-5-20251001`. THREE-VALUED: null when either side names no family this
|
|
@@ -1337,7 +1342,7 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1337
1342
|
// turn did not report completion, and completeness of its write is exactly what is unknown.
|
|
1338
1343
|
// Still never applies to a rate-limit rejection either (0 tokens, nothing written).
|
|
1339
1344
|
const killClass = isTaintRow({ fail, code, killed, signals: turn.signals });
|
|
1340
|
-
// ONE artifact judgement, shared by both rescues below (
|
|
1345
|
+
// ONE artifact judgement, shared by both rescues below (the rule: never a second, drifting copy of
|
|
1341
1346
|
// the contract). Present + written by THIS attempt (the per-attempt snapshot — an inherited file and
|
|
1342
1347
|
// equally an earlier attempt's file never rescue a failed turn) + passes the stage's own validator.
|
|
1343
1348
|
const attemptWroteTruth = () => {
|
|
@@ -1477,7 +1482,7 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1477
1482
|
// and `rate_limited` drive retry policies this must not override. `modelMismatch` is journalled on
|
|
1478
1483
|
// the row either way, so the mismatch is never lost — only the classification defers.
|
|
1479
1484
|
//
|
|
1480
|
-
// Default-ON gate through `envGateOn` (
|
|
1485
|
+
// Default-ON gate through `envGateOn` (the rule): `CLEAROTRON_MODEL_WIRE_CHECK=0` disarms it without
|
|
1481
1486
|
// a deploy if a provider ever starts reporting an id this build's family regex misreads. Disarming
|
|
1482
1487
|
// silences the REFUSAL, never the record — `modelActual`/`modelMismatch` keep landing on every row.
|
|
1483
1488
|
if (modelMismatch === true && !fail && envGateOn("CLEAROTRON_MODEL_WIRE_CHECK")) {
|
|
@@ -1545,7 +1550,7 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1545
1550
|
// how a stale build-stage note came to describe a live field as dead. Measured on preserved runs
|
|
1546
1551
|
// whose engine commit is byte-identical to this file: the R5 register-unit attempt row of 08-12
|
|
1547
1552
|
// carries {input:8349, output:18374, cacheRead:1805815, cacheWrite:96608, total:1929146}. Every
|
|
1548
|
-
// figure in
|
|
1553
|
+
// figure in its own table is a verbatim read of these rows — the issue was minted BY reading
|
|
1549
1554
|
// the field this comment called null. The shape is `mapUsage`'s canonical
|
|
1550
1555
|
// {input, output, cacheRead, cacheWrite, total}, written by both engines
|
|
1551
1556
|
// (anthropic-agent.mjs mapUsage, openai-agent.mjs from turn.completed).
|
|
@@ -1570,7 +1575,7 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1570
1575
|
// modelMismatch — true/false when both sides name a family, null when either does not.
|
|
1571
1576
|
// Written even on the rows where they are null, so "this engine cannot report" stays visibly
|
|
1572
1577
|
// different from "this record predates the gauge".
|
|
1573
|
-
modelActual, modelBasis, modelMismatch,
|
|
1578
|
+
modelActual, modelBasis, modelSnapshot, modelMismatch,
|
|
1574
1579
|
// W3 billing telemetry: which engine ran + the RESOLVED billing mode (subscription vs api-key). This
|
|
1575
1580
|
// records INTENT (the mode the engine was configured to bill under), not independent billing evidence
|
|
1576
1581
|
// — the actual proof is the provider console (claude's stream also reports apiKeySource; codex does
|
|
@@ -1696,7 +1701,7 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1696
1701
|
stdoutTail: (fail && !json) ? streamDigest(turn.stdout) || undefined : undefined,
|
|
1697
1702
|
});
|
|
1698
1703
|
// AD-4 — `attempt` lands on run.jsonl too (ADDITIVE: _driver/<stage>.jsonl keeps the full per-attempt
|
|
1699
|
-
// detail and
|
|
1704
|
+
// detail and the harness keeps reading it there; run.jsonl gets the lean per-attempt spine it never
|
|
1700
1705
|
// had — its readers previously saw one "stage" event with attempts:N and no causes, and the knockout
|
|
1701
1706
|
// lane logs no stage events at all, so run.jsonl alone could not distinguish "no retries happened"
|
|
1702
1707
|
// from "retries not recorded here"). Best-effort like every telemetry write.
|
|
@@ -1705,7 +1710,7 @@ async function runStageLadder(name, opts, stageCodexHome = null) {
|
|
|
1705
1710
|
event: "attempt", stage: name, attempt, of: maxRetries + 1, ok: !fail, fail: fail ?? null,
|
|
1706
1711
|
//: the spine carries the same pair as the per-stage log, or the two disagree about what
|
|
1707
1712
|
// ran. `model` stays the requested resolution (its existing readers); `modelActual` is the wire.
|
|
1708
|
-
model: modelRequested, modelActual, modelBasis, modelMismatch,
|
|
1713
|
+
model: modelRequested, modelActual, modelBasis, modelSnapshot, modelMismatch,
|
|
1709
1714
|
wrote, warm: warm || undefined, warmEscalated: attempt === warmEscalatedAt || undefined,
|
|
1710
1715
|
rescued: rescued ?? undefined, killed: killed || undefined,
|
|
1711
1716
|
quiescentMs: Number.isFinite(quiescentMs) ? Math.round(quiescentMs) : undefined, // — see the per-stage row
|
|
@@ -1999,7 +2004,7 @@ export function correctiveMessage(baseMessage, attempt, lastFail, expectFile, {
|
|
|
1999
2004
|
if (!maxTok && !/^(invalid_file|missing_file)/.test(inner)) return baseMessage;
|
|
2000
2005
|
const files = (Array.isArray(expectFile) ? expectFile : [expectFile]).filter(Boolean);
|
|
2001
2006
|
const names = files.map(rel).join(", ");
|
|
2002
|
-
// DIRECTION (b) — THE COLD CORRECTIVE IS A REPAIR SURFACE, AND
|
|
2007
|
+
// DIRECTION (b) — THE COLD CORRECTIVE IS A REPAIR SURFACE, AND the SWEEP STOPPED AT THE WARM ONE.
|
|
2003
2008
|
//
|
|
2004
2009
|
// `warmPatchMessage` consults TOOL_WRITTEN_ARTIFACTS and turns a repair into a CALL. This composer did not,
|
|
2005
2010
|
// so a converted seat that hit the output ceiling was told to "CALL THE WRITE TOOL" for an artifact whose
|
|
@@ -2373,7 +2378,7 @@ export function correctionHint(lastFail, { gridLedgerName = "common-law-grid.jso
|
|
|
2373
2378
|
// — THE REPAIR RIDES THE TYPED TOOL, because the seat no longer holds Write or Edit. This used to
|
|
2374
2379
|
// end "Correct it in place — the file is the stage's only output", which after the conversion orders an
|
|
2375
2380
|
// act the grant denies: a failure on obedience, mid-round, on the first repair rung that fires. Same
|
|
2376
|
-
// shape as
|
|
2381
|
+
// shape as the ten anchor sites, caught before it shipped rather than after. The one-change
|
|
2377
2382
|
// invariant covers a dictation AND the ladder that corrects it.
|
|
2378
2383
|
hint = `the model is a set of VALUES you hand to the \`record_blind_frame\` tool: dominant_element, ` +
|
|
2379
2384
|
`variants[] (each {value, direction (add|drop|phonetic|homophone|neighbour|composite), rationale}), ` +
|
|
@@ -2830,7 +2835,7 @@ export function correctionHint(lastFail, { gridLedgerName = "common-law-grid.jso
|
|
|
2830
2835
|
return hint;
|
|
2831
2836
|
}
|
|
2832
2837
|
|
|
2833
|
-
// ──
|
|
2838
|
+
// ── the DEFERRED-SLICE BLOCK IS GONE ──────────────────────────────────────────────────────
|
|
2834
2839
|
//
|
|
2835
2840
|
// `deferredSlicesRequiredRows` composed a prose block listing every deferred qid and told the stage each
|
|
2836
2841
|
// one "must appear VERBATIM in a Coverage-ledger row". Its own doc block recorded why it had to ship
|
|
@@ -2945,7 +2950,7 @@ const MAX_FORM_REPAIRS = 2;
|
|
|
2945
2950
|
// wrote the quote. R6's four byte-identical attempts were not evidence that warm cannot fix this; they
|
|
2946
2951
|
// were evidence that the seat was told to fix something else. The token now names the state and the arm
|
|
2947
2952
|
// names the remedy, so there is something to change. A warm turn that STILL returns byte-identical output
|
|
2948
|
-
// is
|
|
2953
|
+
// is the subject, not this one, and is handled where byte-identical output is detected.
|
|
2949
2954
|
// connotation_* (the family, via CONNOTATION_FORM_TOKEN_SRC; 2026-08-01 ruling, carried through B's
|
|
2950
2955
|
// typed transport): WHY THESE ARE SAFE TO WARM. Every member is emitted only over an obligation set
|
|
2951
2956
|
// built from `recorded.filter(e => e.results.length)` — a violation is therefore PROOF the meaning sweep
|
|
@@ -3022,12 +3027,12 @@ const WARM_ELIGIBLE_RE = new RegExp(`^(missing_file|invalid_file:[^:]*:(use_chec
|
|
|
3022
3027
|
// instead of a resume, on every timeout, as a side effect of an attribution fix. A rename must not
|
|
3023
3028
|
// change what a failure costs.
|
|
3024
3029
|
//
|
|
3025
|
-
// The issue notes that
|
|
3030
|
+
// The issue notes that the argument applies: "the retry ladder cannot help a deterministic tool
|
|
3026
3031
|
// timeout — this failure class is an argument for the same disclosed-deferral treatment when the ladder
|
|
3027
3032
|
// is provably futile." That is a real question and it is NOT settled here. Two reasons to leave it:
|
|
3028
3033
|
// this issue's OTHER half raised the bridge cap, so a retry is no longer provably futile — R5's four
|
|
3029
3034
|
// attempts all died at a 300s cap that no longer applies; and turning a failure class into a disclosed
|
|
3030
|
-
// deferral is a doctrine change, which is
|
|
3035
|
+
// deferral is a doctrine change, which is the to make and not an attribution fix's.
|
|
3031
3036
|
|
|
3032
3037
|
// — a rejected draft may be CARRIED across a recovery park only when its repair is a PATCH, not a
|
|
3033
3038
|
// re-search. That is exactly the judgement WARM_ELIGIBLE_RE already encodes: the tokens meaning "the
|
|
@@ -3060,7 +3065,7 @@ export function warmEligible(fail, json) {
|
|
|
3060
3065
|
// predicate the gate judges with). It is DELIBERATELY NOT a token list. The first cut keyed this veto on
|
|
3061
3066
|
// TOTAL_DEFECT_TOKENS, a closed list of two form-path tokens — and when the typed transport armed, the
|
|
3062
3067
|
// failure tokens moved out of the list and the veto silently stood down with every assertion still green
|
|
3063
|
-
// (
|
|
3068
|
+
// (the hold). An enrolled-token veto is an ENUMERATED check: a future fifth token forgetting to
|
|
3064
3069
|
// enrol is the move-blindness this repo has counted seven instances of. The direct state keys the veto
|
|
3065
3070
|
// on the condition it exists for, and nothing has to remember to join.
|
|
3066
3071
|
//
|
|
@@ -3105,7 +3110,7 @@ export function vetoResumeRuledNone(attempt, state) {
|
|
|
3105
3110
|
// validation)": framediff_* → frame-diff.json, coverage_* → register-coverage-ledger.json, findings_*
|
|
3106
3111
|
// → findings.json, grid_* → the failing half's own ledger, named_band_* → <axis>-band.json.
|
|
3107
3112
|
//
|
|
3108
|
-
//
|
|
3113
|
+
// That in-dispatch repair has to know that, because it decides whether a repair LANDED by looking at
|
|
3109
3114
|
// a file's bytes — and looking at the expectFile after a sibling repair would read a compliant model's
|
|
3110
3115
|
// correct answer as "wrote nothing". Rather than re-deriving the routing in the gateway (two copies of
|
|
3111
3116
|
// one rule, drifting from the day they are written), the derivation is lifted here and BOTH callers use
|
|
@@ -3210,7 +3215,7 @@ export function warmPatchMessage(lastFail, expectFile, { supplementalLane = fals
|
|
|
3210
3215
|
// rulings reach the driver's accumulator only through `record_dispositions`, so a warm patch that
|
|
3211
3216
|
// ordered any file edit would aim the seat at an artifact it cannot affect — the two halves of one
|
|
3212
3217
|
// message disagreeing about where the work lands, which is the exact defect class the token split and
|
|
3213
|
-
//
|
|
3218
|
+
// That routing fixes each closed one layer up.
|
|
3214
3219
|
if (CONNOTATION_FORM_TOKEN_RE.test(lastFail ?? "") && files.length) {
|
|
3215
3220
|
// The ABSOLUTE spec path, derived from the failing member's own output by exactly the rule
|
|
3216
3221
|
// gridLedgerNameFor states and for exactly the same reason: a warm patch carries no base prompt
|
|
@@ -3218,7 +3223,7 @@ export function warmPatchMessage(lastFail, expectFile, { supplementalLane = fals
|
|
|
3218
3223
|
// name — and a half must be aimed at ITS spec, never the canonical one.
|
|
3219
3224
|
const halfM = basename(String(files[0])).match(/^common-law-findings\.half-([a-z0-9]+)\.md$/);
|
|
3220
3225
|
const specPath = driverDir(dirname(files[0]), halfM ? `grid-spec.half-${halfM[1]}.json` : "grid-spec.json");
|
|
3221
|
-
// THE CLOSING SENTENCE IS PER STATE (
|
|
3226
|
+
// THE CLOSING SENTENCE IS PER STATE (the lesson, kept): "record every outstanding row" is right
|
|
3222
3227
|
// for a partial and WRONG for a quote defect, where every row is ruled and re-recording rulings is
|
|
3223
3228
|
// work already done. A truncated call's close must forbid the one compliance a wrongly-accused seat
|
|
3224
3229
|
// reaches for — re-deriving its rulings.
|
|
@@ -3250,7 +3255,7 @@ export function warmPatchMessage(lastFail, expectFile, { supplementalLane = fals
|
|
|
3250
3255
|
: `Do not stop until the tool's answer reports nothing outstanding.`);
|
|
3251
3256
|
}
|
|
3252
3257
|
const sibling = repairSiblingName(lastFail, files);
|
|
3253
|
-
// ── THE SIBLING BRANCH MUST NOT OUTRANK THE TOOL-WRITTEN ONE (
|
|
3258
|
+
// ── THE SIBLING BRANCH MUST NOT OUTRANK THE TOOL-WRITTEN ONE (third conversion) ────────────
|
|
3254
3259
|
//
|
|
3255
3260
|
// This branch orders "Re-save the COMPLETE corrected JSON at <sibling>", which is a hand-write. For
|
|
3256
3261
|
// frame-diff the sibling IS the tool-written artifact — `frame-diff.json`, with `frame-diff.md` as the
|
|
@@ -3312,7 +3317,7 @@ export function warmPatchMessage(lastFail, expectFile, { supplementalLane = fals
|
|
|
3312
3317
|
// "the turn wrote nothing" — the driver writes the file, so an absent model means the TOOL WAS NEVER
|
|
3313
3318
|
// CALLED. `blindframe_*` means the call arrived and its values failed the parser. One remedy: call it.
|
|
3314
3319
|
//
|
|
3315
|
-
// THE TOKEN-FAMILY LIST IS GONE (
|
|
3320
|
+
// THE TOKEN-FAMILY LIST IS GONE (third conversion), and its removal is the root-cause half. It
|
|
3316
3321
|
// read `/blindframe_|skeptic_/`, which is a second authoring of "which stages are converted" — one that
|
|
3317
3322
|
// this conversion would have had to extend with `framediff_`, and the next one with its own prefix,
|
|
3318
3323
|
// each time by somebody remembering. The right question is not which token fired but whether the
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// "Wikipedia article documenting 1871 race riot, negative historical violence event"
|
|
14
14
|
//
|
|
15
15
|
// Both are true. Neither says what could not be established. A charged judgment recorded without its
|
|
16
|
-
// grounds is the same shape as
|
|
16
|
+
// grounds is the same shape as the `step-silent`: the ledger has a label for the decision and
|
|
17
17
|
// cannot say why for any single one, so a reader cannot tell "correctly judged" from "silently
|
|
18
18
|
// asserted" — which are opposite repairs.
|
|
19
19
|
//
|
package/driver/hit-list.mjs
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
// The line drops `_query`/`_queries`/`screen` — 61% of a band row's bytes — and keeps the qid alone,
|
|
26
26
|
// because the completeness witness needs the join and nothing dismisses a record on its provenance.
|
|
27
27
|
|
|
28
|
-
import { countOrNull } from "./named-band.mjs"; //
|
|
28
|
+
import { countOrNull } from "./named-band.mjs"; // one copy of "a count I could not take is null, not zero"
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* THE FATES. A line ends with exactly one, and the set is closed so completeness is verifiable by
|