paperlint 3.1.3 → 4.0.0
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/.github/workflows/ci.yml +12 -7
- package/CLAUDE.md +5 -5
- package/CONTRIBUTING.md +34 -5
- package/dist/adapters/banal/failure.d.ts +1 -7
- package/dist/adapters/banal/failure.d.ts.map +1 -1
- package/dist/adapters/banal/failure.js +5 -7
- package/dist/adapters/banal/failure.js.map +1 -1
- package/dist/adapters/banal/index.d.ts.map +1 -1
- package/dist/adapters/banal/index.js +4 -3
- package/dist/adapters/banal/index.js.map +1 -1
- package/dist/adapters/banal/install.d.ts.map +1 -1
- package/dist/adapters/banal/install.js +4 -3
- package/dist/adapters/banal/install.js.map +1 -1
- package/dist/adapters/banal/invocation.d.ts +10 -5
- package/dist/adapters/banal/invocation.d.ts.map +1 -1
- package/dist/adapters/banal/invocation.js +13 -1
- package/dist/adapters/banal/invocation.js.map +1 -1
- package/dist/adapters/banal/locate.d.ts +12 -9
- package/dist/adapters/banal/locate.d.ts.map +1 -1
- package/dist/adapters/banal/locate.js +19 -12
- package/dist/adapters/banal/locate.js.map +1 -1
- package/dist/adapters/banal/run.d.ts +10 -1
- package/dist/adapters/banal/run.d.ts.map +1 -1
- package/dist/adapters/banal/run.js +8 -4
- package/dist/adapters/banal/run.js.map +1 -1
- package/dist/adapters/banal/settings.d.ts +1 -1
- package/dist/adapters/banal/settings.d.ts.map +1 -1
- package/dist/adapters/banal/settings.js +2 -1
- package/dist/adapters/banal/settings.js.map +1 -1
- package/dist/adapters/memory/index.d.ts.map +1 -1
- package/dist/adapters/memory/index.js +8 -2
- package/dist/adapters/memory/index.js.map +1 -1
- package/dist/adapters/node/files.io.d.ts.map +1 -1
- package/dist/adapters/node/files.io.js +2 -1
- package/dist/adapters/node/files.io.js.map +1 -1
- package/dist/adapters/node/process.io.d.ts +5 -7
- package/dist/adapters/node/process.io.d.ts.map +1 -1
- package/dist/adapters/node/process.io.js +4 -3
- package/dist/adapters/node/process.io.js.map +1 -1
- package/dist/adapters/node/workspace.io.d.ts.map +1 -1
- package/dist/adapters/node/workspace.io.js +4 -2
- package/dist/adapters/node/workspace.io.js.map +1 -1
- package/dist/adapters/pdfjs/fill.d.ts.map +1 -1
- package/dist/adapters/pdfjs/fill.js +13 -7
- package/dist/adapters/pdfjs/fill.js.map +1 -1
- package/dist/adapters/references/index.d.ts.map +1 -1
- package/dist/adapters/references/index.js +8 -7
- package/dist/adapters/references/index.js.map +1 -1
- package/dist/adapters/references/pool.d.ts.map +1 -1
- package/dist/adapters/references/pool.js +4 -5
- package/dist/adapters/references/pool.js.map +1 -1
- package/dist/adapters/references/reach.io.d.ts.map +1 -1
- package/dist/adapters/references/reach.io.js +2 -1
- package/dist/adapters/references/reach.io.js.map +1 -1
- package/dist/build-engine.d.ts +1 -1
- package/dist/build-engine.d.ts.map +1 -1
- package/dist/build-engine.js +10 -3
- package/dist/build-engine.js.map +1 -1
- package/dist/build.d.ts +2 -3
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +19 -17
- package/dist/build.js.map +1 -1
- package/dist/caller-path.d.ts +3 -0
- package/dist/caller-path.d.ts.map +1 -0
- package/dist/caller-path.js +13 -0
- package/dist/caller-path.js.map +1 -0
- package/dist/cli.d.ts +10 -17
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +93 -46
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +12 -3
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +5 -3
- package/dist/doctor.js.map +1 -1
- package/dist/domain/lookup-cache.d.ts.map +1 -1
- package/dist/domain/lookup-cache.js +10 -8
- package/dist/domain/lookup-cache.js.map +1 -1
- package/dist/domain/paths.d.ts +8 -2
- package/dist/domain/paths.d.ts.map +1 -1
- package/dist/domain/paths.js +12 -1
- package/dist/domain/paths.js.map +1 -1
- package/dist/domain/ready.d.ts +24 -0
- package/dist/domain/ready.d.ts.map +1 -0
- package/dist/domain/ready.js +11 -0
- package/dist/domain/ready.js.map +1 -0
- package/dist/domain/record.d.ts +8 -0
- package/dist/domain/record.d.ts.map +1 -0
- package/dist/domain/record.js +8 -0
- package/dist/domain/record.js.map +1 -0
- package/dist/domain/sha256.d.ts.map +1 -1
- package/dist/domain/sha256.js +4 -2
- package/dist/domain/sha256.js.map +1 -1
- package/dist/domain/text.d.ts +12 -0
- package/dist/domain/text.d.ts.map +1 -1
- package/dist/domain/text.js +17 -0
- package/dist/domain/text.js.map +1 -1
- package/dist/engine.d.ts +23 -22
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +4 -3
- package/dist/engine.js.map +1 -1
- package/dist/eslint-rules/bib-reachable-entry.d.ts +22 -0
- package/dist/eslint-rules/bib-reachable-entry.d.ts.map +1 -0
- package/dist/eslint-rules/bib-reachable-entry.js +75 -0
- package/dist/eslint-rules/bib-reachable-entry.js.map +1 -0
- package/dist/eslint-rules/install-path-literals.d.ts +80 -0
- package/dist/eslint-rules/install-path-literals.d.ts.map +1 -0
- package/dist/eslint-rules/install-path-literals.js +105 -0
- package/dist/eslint-rules/install-path-literals.js.map +1 -0
- package/dist/eslint-rules/latex-language.d.ts +136 -0
- package/dist/eslint-rules/latex-language.d.ts.map +1 -0
- package/dist/eslint-rules/latex-language.js +639 -0
- package/dist/eslint-rules/latex-language.js.map +1 -0
- package/dist/eslint-rules/paper-research-question.d.ts +31 -0
- package/dist/eslint-rules/paper-research-question.d.ts.map +1 -0
- package/dist/eslint-rules/paper-research-question.js +188 -0
- package/dist/eslint-rules/paper-research-question.js.map +1 -0
- package/dist/eslint-rules/paper-stages.d.ts +83 -0
- package/dist/eslint-rules/paper-stages.d.ts.map +1 -0
- package/dist/eslint-rules/paper-stages.js +358 -0
- package/dist/eslint-rules/paper-stages.js.map +1 -0
- package/dist/eslint-rules/paper-typography.d.ts +74 -0
- package/dist/eslint-rules/paper-typography.d.ts.map +1 -0
- package/dist/eslint-rules/paper-typography.js +404 -0
- package/dist/eslint-rules/paper-typography.js.map +1 -0
- package/dist/eslint-rules/papers.d.ts +42 -0
- package/dist/eslint-rules/papers.d.ts.map +1 -0
- package/dist/eslint-rules/papers.js +145 -0
- package/dist/eslint-rules/papers.js.map +1 -0
- package/dist/eslint-rules/pdf-last-page-balance.d.ts +72 -0
- package/dist/eslint-rules/pdf-last-page-balance.d.ts.map +1 -0
- package/dist/eslint-rules/pdf-last-page-balance.js +237 -0
- package/dist/eslint-rules/pdf-last-page-balance.js.map +1 -0
- package/dist/eslint-rules/review-frontmatter.d.ts +57 -0
- package/dist/eslint-rules/review-frontmatter.d.ts.map +1 -0
- package/dist/eslint-rules/review-frontmatter.js +126 -0
- package/dist/eslint-rules/review-frontmatter.js.map +1 -0
- package/dist/eslint-rules/review-frontmatter.schema.json +36 -0
- package/dist/eslint-rules/rule-context.d.ts +55 -0
- package/dist/eslint-rules/rule-context.d.ts.map +1 -0
- package/dist/eslint-rules/rule-context.js +9 -0
- package/dist/eslint-rules/rule-context.js.map +1 -0
- package/dist/eslint-rules/sibling-frontmatter.d.ts +25 -0
- package/dist/eslint-rules/sibling-frontmatter.d.ts.map +1 -0
- package/dist/eslint-rules/sibling-frontmatter.js +16 -0
- package/dist/eslint-rules/sibling-frontmatter.js.map +1 -0
- package/dist/eslint-rules/sibling-frontmatter.schema.json +14 -0
- package/dist/eslint-rules/temp-root-realpath.d.ts +71 -0
- package/dist/eslint-rules/temp-root-realpath.d.ts.map +1 -0
- package/dist/eslint-rules/temp-root-realpath.js +139 -0
- package/dist/eslint-rules/temp-root-realpath.js.map +1 -0
- package/dist/eslint-rules/tex-build.d.ts +35 -0
- package/dist/eslint-rules/tex-build.d.ts.map +1 -0
- package/dist/eslint-rules/tex-build.js +313 -0
- package/dist/eslint-rules/tex-build.js.map +1 -0
- package/dist/facts-file.d.ts.map +1 -1
- package/dist/facts-file.js +31 -27
- package/dist/facts-file.js.map +1 -1
- package/dist/hooks-settings.d.ts +1 -1
- package/dist/hooks-settings.d.ts.map +1 -1
- package/dist/hooks-settings.js +31 -11
- package/dist/hooks-settings.js.map +1 -1
- package/dist/init.d.ts +8 -9
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +33 -15
- package/dist/init.js.map +1 -1
- package/dist/latex-loop.d.ts +2 -2
- package/dist/latex-loop.d.ts.map +1 -1
- package/dist/latex-loop.js +2 -2
- package/dist/latex-loop.js.map +1 -1
- package/dist/lib/agent-cli-version.d.ts +65 -0
- package/dist/lib/agent-cli-version.d.ts.map +1 -0
- package/dist/lib/agent-cli-version.js +77 -0
- package/dist/lib/agent-cli-version.js.map +1 -0
- package/dist/lib/check.d.ts +19 -0
- package/dist/lib/check.d.ts.map +1 -0
- package/dist/lib/check.js +52 -0
- package/dist/lib/check.js.map +1 -0
- package/dist/lib/markdown.d.ts +180 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +302 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/paper-config.d.ts +84 -0
- package/dist/lib/paper-config.d.ts.map +1 -0
- package/dist/lib/paper-config.js +138 -0
- package/dist/lib/paper-config.js.map +1 -0
- package/dist/lib/skill-eval-fixture.d.ts +29 -0
- package/dist/lib/skill-eval-fixture.d.ts.map +1 -0
- package/dist/lib/skill-eval-fixture.js +62 -0
- package/dist/lib/skill-eval-fixture.js.map +1 -0
- package/dist/link-skills.d.ts.map +1 -1
- package/dist/link-skills.js +5 -4
- package/dist/link-skills.js.map +1 -1
- package/dist/new-paper.d.ts.map +1 -1
- package/dist/new-paper.js +7 -3
- package/dist/new-paper.js.map +1 -1
- package/dist/paper-files.d.ts +4 -4
- package/dist/paper-files.d.ts.map +1 -1
- package/dist/paper-files.js +6 -6
- package/dist/paper-files.js.map +1 -1
- package/dist/paper-settings.d.ts.map +1 -1
- package/dist/paper-settings.js +8 -7
- package/dist/paper-settings.js.map +1 -1
- package/dist/pdf-facts.d.ts +51 -1
- package/dist/pdf-facts.d.ts.map +1 -1
- package/dist/pdf-facts.js +25 -16
- package/dist/pdf-facts.js.map +1 -1
- package/dist/pdf-geometry.d.ts.map +1 -1
- package/dist/pdf-geometry.js +3 -4
- package/dist/pdf-geometry.js.map +1 -1
- package/dist/ports/tool-installer.d.ts +2 -14
- package/dist/ports/tool-installer.d.ts.map +1 -1
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +19 -6
- package/dist/presets.js.map +1 -1
- package/dist/references.d.ts.map +1 -1
- package/dist/references.js +15 -10
- package/dist/references.js.map +1 -1
- package/dist/rules-config.d.ts +26 -1
- package/dist/rules-config.d.ts.map +1 -1
- package/dist/rules-config.js +15 -12
- package/dist/rules-config.js.map +1 -1
- package/dist/structure.js +1 -1
- package/dist/structure.js.map +1 -1
- package/dist/tex-requirements.d.ts +4 -0
- package/dist/tex-requirements.d.ts.map +1 -1
- package/dist/tex-requirements.js +22 -5
- package/dist/tex-requirements.js.map +1 -1
- package/dist/toolchain.d.ts.map +1 -1
- package/dist/toolchain.js +21 -16
- package/dist/toolchain.js.map +1 -1
- package/dist/types.d.ts +5 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/venue-rules.d.ts.map +1 -1
- package/dist/venue-rules.js +21 -8
- package/dist/venue-rules.js.map +1 -1
- package/docs/configuration.md +2 -2
- package/docs/e2e.md +7 -7
- package/docs/install.md +1 -1
- package/docs/prior-art/README.md +1 -1
- package/docs/prior-art/package-location.md +5 -5
- package/docs/prior-art/repro/README.md +1 -1
- package/docs/prior-art/test-tooling.md +2 -2
- package/docs/testing.md +11 -8
- package/docs/toolchain.md +1 -1
- package/eslint-rules/{bib-reachable-entry.mjs → bib-reachable-entry.ts} +5 -4
- package/eslint-rules/install-path-literals.harness.mjs +1 -1
- package/eslint-rules/{install-path-literals.mjs → install-path-literals.ts} +18 -10
- package/eslint-rules/latex-language.harness.mjs +2 -2
- package/eslint-rules/latex-language.test.mjs +7 -1
- package/eslint-rules/{latex-language.mjs → latex-language.ts} +297 -109
- package/eslint-rules/paper-research-question.harness.mjs +3 -3
- package/eslint-rules/{paper-research-question.mjs → paper-research-question.ts} +35 -16
- package/eslint-rules/paper-stages.harness.mjs +2 -2
- package/eslint-rules/paper-stages.test.mjs +8 -2
- package/eslint-rules/{paper-stages.mjs → paper-stages.ts} +76 -31
- package/eslint-rules/paper-typography.test.mjs +3 -3
- package/eslint-rules/{paper-typography.mjs → paper-typography.ts} +134 -56
- package/eslint-rules/papers.harness.mjs +2 -2
- package/eslint-rules/{papers.mjs → papers.ts} +7 -4
- package/eslint-rules/pdf-last-page-balance.harness.mjs +3 -3
- package/eslint-rules/{pdf-last-page-balance.mjs → pdf-last-page-balance.ts} +89 -32
- package/eslint-rules/review-frontmatter.test.mjs +2 -2
- package/eslint-rules/{review-frontmatter.mjs → review-frontmatter.ts} +38 -16
- package/eslint-rules/rule-context.ts +62 -0
- package/eslint-rules/{sibling-frontmatter.mjs → sibling-frontmatter.ts} +1 -1
- package/eslint-rules/temp-root-realpath.harness.mjs +1 -1
- package/eslint-rules/{temp-root-realpath.mjs → temp-root-realpath.ts} +20 -7
- package/eslint-rules/tex-build.harness.mjs +2 -2
- package/eslint-rules/{tex-build.mjs → tex-build.ts} +6 -5
- package/eslint.config.mjs +146 -30
- package/fixtures/install-path-literals/clean.fixture.mjs +1 -1
- package/fixtures/install-path-literals/clean.md +2 -2
- package/fixtures/install-path-literals/defect.fixture.mjs +1 -1
- package/fixtures/install-path-literals/defect.md +2 -2
- package/fixtures/pdf-facts/README.md +2 -2
- package/fixtures/real-markdown-paper/{baseline.mjs → baseline.ts} +31 -10
- package/hooks/{hooks.harness.mjs → hooks.harness.ts} +51 -34
- package/hooks/paper-edit-guard.hook.mjs +1 -1
- package/hooks/{paper-edit-guard.test.mjs → paper-edit-guard.test.ts} +3 -7
- package/hooks/paper-skills-nudge.hook.mjs +1 -1
- package/hooks/{paper-skills-nudge.test.mjs → paper-skills-nudge.test.ts} +2 -6
- package/hooks/paper-status-gates.sh +9 -19
- package/hooks/{paper-status-gates.test.mjs → paper-status-gates.test.ts} +2 -6
- package/lib/agent-cli-version.harness.mjs +1 -1
- package/lib/{agent-cli-version.mjs → agent-cli-version.ts} +32 -18
- package/lib/check.test.ts +14 -9
- package/lib/{check.mjs → check.ts} +22 -9
- package/lib/markdown.test.mjs +7 -7
- package/lib/{markdown.mjs → markdown.ts} +68 -29
- package/lib/paper-config.harness.mjs +9 -9
- package/lib/{paper-config.mjs → paper-config.ts} +20 -19
- package/lib/skill-checks.mjs +24 -381
- package/lib/skill-checks.test.mjs +64 -116
- package/lib/skill-corpus.mjs +10 -251
- package/lib/skill-corpus.test.mjs +2 -13
- package/lib/skill-eval-kit.mjs +1 -1
- package/lib/skill-trigger-cases.mjs +1 -1
- package/package.json +42 -10
- package/scripts/{check.harness.mjs → check.harness.ts} +111 -10
- package/scripts/{check.test.mjs → check.test.ts} +13 -10
- package/scripts/{check.mjs → check.ts} +116 -42
- package/scripts/coverage-config.test.ts +80 -38
- package/scripts/eslint-report-guard.test.mjs +1 -1
- package/scripts/harness-api.frozen.json +14 -16
- package/scripts/harness-api.test.ts +8 -5
- package/scripts/layer-legacy-frozen.test.ts +17 -13
- package/scripts/{layer-legacy-frozen.mjs → layer-legacy-frozen.ts} +128 -39
- package/scripts/release-config.test.ts +12 -4
- package/scripts/rules-see-files.test.mjs +1 -1
- package/scripts/test.test.ts +78 -0
- package/scripts/test.ts +87 -0
- package/skills/analyze-sibling-paper/SKILL.md +1 -39
- package/skills/analyze-sibling-paper/SKILL.md.spec.ts +0 -38
- package/skills/argument-arc/SKILL.md +2 -36
- package/skills/argument-arc/SKILL.md.spec.ts +1 -43
- package/skills/build-benchmark/SKILL.md +1 -41
- package/skills/build-benchmark/SKILL.md.spec.ts +0 -40
- package/skills/camera-ready/SKILL.md +1 -34
- package/skills/camera-ready/SKILL.md.spec.ts +0 -33
- package/skills/cold-read-diff/SKILL.md +1 -35
- package/skills/cold-read-diff/SKILL.md.spec.ts +0 -34
- package/skills/draft-paper/SKILL.md +2 -41
- package/skills/draft-paper/SKILL.md.spec.ts +1 -50
- package/skills/extend-paper/SKILL.md +2 -33
- package/skills/extend-paper/SKILL.md.spec.ts +1 -42
- package/skills/find-venue/SKILL.md +2 -38
- package/skills/find-venue/SKILL.md.spec.ts +1 -47
- package/skills/grade-paper-writing/SKILL.md +3 -38
- package/skills/grade-paper-writing/SKILL.md.spec.ts +2 -47
- package/skills/grade-paper-writing/prose-lint.mjs +3 -4
- package/skills/grade-paper-writing/{prose-lint.test.mjs → prose-lint.test.ts} +3 -3
- package/skills/harden-paper/SKILL.md +1 -39
- package/skills/harden-paper/SKILL.md.spec.ts +0 -38
- package/skills/map-prior-work/SKILL.md +1 -35
- package/skills/map-prior-work/SKILL.md.spec.ts +0 -34
- package/skills/osf-artifact-upload/{osf-artifact-upload.harness.mjs → osf-artifact-upload.harness.ts} +3 -4
- package/skills/paper-adversarial-review/SKILL.md +2 -35
- package/skills/paper-adversarial-review/SKILL.md.spec.ts +1 -43
- package/skills/paper-pipeline/SKILL.md +2 -28
- package/skills/paper-pipeline/SKILL.md.spec.ts +1 -27
- package/skills/paper-pipeline/description-language.eval.mjs +1 -1
- package/skills/paper-pipeline/framing-vs-vocabulary.eval.mjs +1 -1
- package/skills/paper-pipeline/grade-paper-writing-ablation.eval.mjs +2 -2
- package/skills/paper-pipeline/paper-pipeline.harness.mjs +25 -40
- package/skills/paper-pipeline/pipeline-firing.eval.mjs +1 -1
- package/skills/paper-pipeline/pipeline-language.eval.mjs +1 -1
- package/skills/paper-pipeline/references/acceptance-gate.md +1 -6
- package/skills/paper-pipeline/references/pipeline-status-template.md +8 -35
- package/skills/paper-pipeline/scripts/README.md +30 -225
- package/skills/paper-pipeline/scripts/artifact-coverage.harness.mjs +4 -8
- package/skills/paper-pipeline/scripts/artifact-coverage.mjs +1 -1
- package/skills/paper-pipeline/scripts/{artifact-coverage.test.mjs → artifact-coverage.test.ts} +2 -2
- package/skills/paper-pipeline/scripts/consumer.harness.mjs +6 -104
- package/skills/paper-pipeline/scripts/consumer.mjs +24 -109
- package/skills/paper-pipeline/scripts/consumer.test.mjs +1 -1
- package/skills/paper-pipeline/scripts/extract-ref-facts.harness.mjs +1 -1
- package/skills/paper-pipeline/scripts/extract-ref-facts.mjs +1 -4
- package/skills/paper-pipeline/scripts/extract-ref-facts.test.mjs +1 -1
- package/skills/paper-pipeline/scripts/generated-code.harness.mjs +2 -3
- package/skills/paper-pipeline/scripts/{generated-code.test.mjs → generated-code.test.ts} +3 -3
- package/skills/paper-pipeline/scripts/population-map.harness.mjs +3 -3
- package/skills/paper-pipeline/scripts/population-map.mjs +1 -4
- package/skills/paper-pipeline/scripts/population-map.test.mjs +1 -1
- package/skills/paper-pipeline/scripts/{round-diff.harness.mjs → round-diff.harness.ts} +45 -18
- package/skills/paper-pipeline/scripts/round-diff.mjs +1 -1
- package/skills/paper-pipeline/scripts/round-diff.test.mjs +1 -1
- package/skills/paper-status/SKILL.md +2 -42
- package/skills/paper-status/SKILL.md.spec.ts +1 -41
- package/skills/pc-panel-review/SKILL.md +2 -46
- package/skills/pc-panel-review/SKILL.md.spec.ts +1 -45
- package/skills/plan-paper-timeline/SKILL.md +2 -36
- package/skills/plan-paper-timeline/SKILL.md.spec.ts +0 -36
- package/skills/plan-paper-timeline/fixtures/{fake-google-calendar.mjs → fake-google-calendar.ts} +101 -70
- package/skills/plan-paper-timeline/plan-paper-timeline.effects.harness.mjs +3 -3
- package/skills/render-paper/SKILL.md +1 -37
- package/skills/render-paper/SKILL.md.spec.ts +0 -36
- package/skills/render-paper/{extract-pdf-facts.harness.mjs → extract-pdf-facts.harness.ts} +34 -9
- package/skills/render-paper/render-paper.harness.mjs +2 -2
- package/skills/research-ideate/SKILL.md +2 -39
- package/skills/research-ideate/SKILL.md.spec.ts +1 -47
- package/skills/study-accepted-papers/SKILL.md +1 -34
- package/skills/study-accepted-papers/SKILL.md.spec.ts +0 -33
- package/skills/submit-paper/SKILL.md +1 -33
- package/skills/submit-paper/SKILL.md.spec.ts +0 -32
- package/skills/sweep-design-space/SKILL.md +1 -38
- package/skills/sweep-design-space/SKILL.md.spec.ts +0 -37
- package/skills/tighten-paper/SKILL.md +2 -39
- package/skills/tighten-paper/SKILL.md.spec.ts +1 -47
- package/skills/tighten-paper/structure.mjs +5 -12
- package/skills/tighten-paper/{structure.test.mjs → structure.test.ts} +4 -3
- package/skills/verify-citations/SKILL.md +2 -38
- package/skills/verify-citations/SKILL.md.spec.ts +1 -37
- package/skills/verify-citations/scripts/{bib-authors.cli.test.mjs → bib-authors.cli.test.ts} +14 -4
- package/skills/verify-citations/scripts/bib-authors.d.mts +63 -0
- package/skills/verify-citations/scripts/bib-authors.mjs +1 -4
- package/skills/verify-citations/scripts/{verify-cites.cli.test.mjs → verify-cites.cli.test.ts} +32 -9
- package/skills/verify-citations/scripts/verify-cites.d.mts +58 -0
- package/src/CLAUDE.md +1 -1
- package/src/adapters/banal/failure.ts +9 -10
- package/src/adapters/banal/index.test.ts +5 -8
- package/src/adapters/banal/index.ts +8 -7
- package/src/adapters/banal/install.ts +9 -4
- package/src/adapters/banal/invocation.test.ts +23 -9
- package/src/adapters/banal/invocation.ts +24 -9
- package/src/adapters/banal/locate.test.ts +2 -2
- package/src/adapters/banal/locate.ts +27 -21
- package/src/adapters/banal/output.test.ts +1 -1
- package/src/adapters/banal/run.test.ts +5 -5
- package/src/adapters/banal/run.ts +16 -10
- package/src/adapters/banal/settings.ts +2 -2
- package/src/adapters/banal/xml.test.ts +1 -1
- package/src/adapters/curl/download.test.ts +8 -6
- package/src/adapters/memory/index.ts +4 -3
- package/src/adapters/node/files.io.ts +2 -2
- package/src/adapters/node/files.test.ts +8 -4
- package/src/adapters/node/process.io.ts +13 -5
- package/src/adapters/node/process.test.ts +5 -5
- package/src/adapters/node/workspace.io.ts +9 -4
- package/src/adapters/node/workspace.test.ts +3 -1
- package/src/adapters/pdfjs/fill.test.ts +2 -2
- package/src/adapters/pdfjs/fill.ts +14 -7
- package/src/adapters/references/index.test.ts +31 -38
- package/src/adapters/references/index.ts +33 -60
- package/src/adapters/references/pool.ts +3 -5
- package/src/adapters/references/reach.io.ts +2 -1
- package/src/build-engine.harness.mjs +1 -1
- package/src/build-engine.test.ts +13 -8
- package/src/build-engine.ts +12 -7
- package/src/build.harness.mjs +2 -2
- package/src/build.test.ts +24 -24
- package/src/build.ts +34 -26
- package/src/caller-path.ts +13 -0
- package/src/cli.harness.mjs +6 -8
- package/src/cli.test.ts +31 -13
- package/src/cli.ts +117 -58
- package/src/doctor.harness.mjs +3 -3
- package/src/doctor.test.ts +1 -1
- package/src/doctor.ts +17 -7
- package/src/domain/lookup-cache.ts +21 -11
- package/src/domain/paths.test.ts +15 -0
- package/src/domain/paths.ts +20 -1
- package/src/domain/ready.ts +31 -0
- package/src/domain/record.test.ts +20 -0
- package/src/domain/record.ts +12 -0
- package/src/domain/result.test.ts +2 -2
- package/src/domain/sha256.ts +5 -3
- package/src/domain/text.test.ts +32 -0
- package/src/domain/text.ts +23 -0
- package/src/engine.harness.mjs +2 -2
- package/src/engine.ts +34 -5
- package/src/facts-file.test.ts +9 -7
- package/src/facts-file.ts +45 -29
- package/src/{hooks-settings.harness.mjs → hooks-settings.harness.ts} +56 -20
- package/src/hooks-settings.ts +48 -13
- package/src/init.test.ts +37 -14
- package/src/init.ts +48 -24
- package/src/{latex-log.harness.mjs → latex-log.harness.ts} +14 -14
- package/src/{latex-loop.harness.mjs → latex-loop.harness.ts} +64 -36
- package/src/latex-loop.ts +3 -3
- package/src/{link-skills.harness.mjs → link-skills.harness.ts} +19 -19
- package/src/link-skills.test.ts +3 -3
- package/src/link-skills.ts +5 -4
- package/src/lint-fix.test.ts +4 -6
- package/src/linted-set.test.ts +2 -2
- package/src/new-paper.harness.mjs +9 -25
- package/src/new-paper.test.ts +8 -10
- package/src/new-paper.ts +9 -5
- package/src/paper-files.test.ts +25 -24
- package/src/paper-files.ts +16 -27
- package/src/paper-settings-commands.test.ts +5 -4
- package/src/paper-settings.test.ts +7 -7
- package/src/paper-settings.ts +13 -14
- package/src/{pdf-facts.harness.mjs → pdf-facts.harness.ts} +9 -8
- package/src/pdf-facts.test.ts +25 -15
- package/src/pdf-facts.ts +81 -23
- package/src/{pdf-geometry.harness.mjs → pdf-geometry.harness.ts} +19 -12
- package/src/pdf-geometry.ts +8 -4
- package/src/ports/tool-installer.ts +2 -17
- package/src/presets.ts +31 -16
- package/src/references.test.ts +76 -62
- package/src/references.ts +18 -12
- package/src/{rules-config.harness.mjs → rules-config.harness.ts} +7 -13
- package/src/rules-config.ts +46 -14
- package/src/rules-off.test.ts +6 -4
- package/src/{structure.harness.mjs → structure.harness.ts} +26 -15
- package/src/structure.ts +1 -1
- package/src/{tex-requirements.harness.mjs → tex-requirements.harness.ts} +50 -22
- package/src/tex-requirements.test.ts +21 -0
- package/src/tex-requirements.ts +37 -11
- package/src/toolchain.harness.mjs +2 -2
- package/src/toolchain.test.ts +10 -6
- package/src/toolchain.ts +31 -17
- package/src/types.ts +5 -3
- package/src/venue-rules.test.ts +70 -68
- package/src/venue-rules.ts +22 -12
- package/tsconfig.json +6 -3
- package/tsconfig.pkg.json +10 -0
- package/lib/check.d.mts +0 -17
- package/lib/paper-config.d.mts +0 -31
- package/scripts/layer-legacy-frozen.d.mts +0 -36
- package/scripts/rules-are-content-only.harness.mjs +0 -105
- package/scripts/rules-are-content-only.mjs +0 -148
- package/scripts/rules-are-content-only.test.mjs +0 -61
- package/scripts/test.mjs +0 -44
- package/scripts/test.test.mjs +0 -52
- package/skills/paper-pipeline/scripts/announce.mjs +0 -67
- package/skills/paper-pipeline/scripts/announce.test.mjs +0 -102
- package/skills/paper-pipeline/scripts/fixtures/clean/PIPELINE-STATUS.md +0 -51
- package/skills/paper-pipeline/scripts/fixtures/dirty/PIPELINE-STATUS.md +0 -52
- package/skills/paper-pipeline/scripts/fixtures/dirty/paper.md +0 -6
- package/skills/paper-pipeline/scripts/fixtures/scorecard.mjs +0 -71
- package/skills/paper-pipeline/scripts/ledger.cli.test.mjs +0 -302
- package/skills/paper-pipeline/scripts/ledger.mjs +0 -623
- package/skills/paper-pipeline/scripts/ledger.test.mjs +0 -254
- package/skills/paper-pipeline/scripts/pipeline-check.cli.test.mjs +0 -474
- package/skills/paper-pipeline/scripts/pipeline-check.harness.mjs +0 -328
- package/skills/paper-pipeline/scripts/pipeline-check.mjs +0 -753
- package/skills/paper-pipeline/scripts/pipeline-edges.mjs +0 -169
- package/skills/paper-pipeline/scripts/pipeline-edges.test.mjs +0 -73
- package/skills/paper-pipeline/scripts/run-mechanical.mjs +0 -648
- package/skills/paper-pipeline/scripts/run-mechanical.test.mjs +0 -468
- package/skills/paper-pipeline/scripts/status.mjs +0 -295
- package/skills/paper-pipeline/scripts/status.test.mjs +0 -232
- /package/bin/{paperlint.test.mjs → paperlint.test.ts} +0 -0
- /package/lib/{skill-eval-fixture.mjs → skill-eval-fixture.ts} +0 -0
- /package/skills/grade-paper-writing/__snapshots__/{prose-lint.test.mjs.snap → prose-lint.test.ts.snap} +0 -0
- /package/skills/tighten-paper/__snapshots__/{structure.test.mjs.snap → structure.test.ts.snap} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tex-build.js","sourceRoot":"","sources":["../../eslint-rules/tex-build.ts"],"names":[],"mappings":"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"}
|
package/dist/facts-file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facts-file.d.ts","sourceRoot":"","sources":["../src/facts-file.ts"],"names":[],"mappings":"AAgCA,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAmB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA0B,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"facts-file.d.ts","sourceRoot":"","sources":["../src/facts-file.ts"],"names":[],"mappings":"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"}
|
package/dist/facts-file.js
CHANGED
|
@@ -34,19 +34,16 @@ import { classifyLastPage, popplerType, } from "./pdf-geometry.js";
|
|
|
34
34
|
import { describeFailure } from "./pdf-facts.js";
|
|
35
35
|
import { flatGeometry, } from "./domain/geometry.js";
|
|
36
36
|
import { parseSha256, sha256Hex } from "./domain/sha256.js";
|
|
37
|
+
import { callerPath } from "./caller-path.js";
|
|
37
38
|
import { err, ok } from "./domain/result.js";
|
|
38
39
|
import { paperPreset, paperPresetProblem } from "./presets.js";
|
|
39
40
|
import { packageVenuesDir } from "../skills/paper-pipeline/scripts/consumer.mjs";
|
|
41
|
+
import { messageOf } from "./domain/text.js";
|
|
40
42
|
export const FACTS_SCHEMA = 2;
|
|
41
43
|
export const FACTS_DIR = "_build";
|
|
42
44
|
export const FACTS_FILE = "paper.facts.json";
|
|
43
45
|
/** Where a paper's facts live. */
|
|
44
46
|
export const factsPath = (paperDir) => join(paperDir, FACTS_DIR, FACTS_FILE);
|
|
45
|
-
/**
|
|
46
|
-
* A path as the caller gave it. The `Files` adapter resolves a relative one against the process's
|
|
47
|
-
* cwd, which is what these callers have always meant; the brand is not a claim this code checked it.
|
|
48
|
-
*/
|
|
49
|
-
const at = (p) => p;
|
|
50
47
|
/**
|
|
51
48
|
* What a paper's `paperlint.json` declares, or null when it has none. THROWS with a one-line reason
|
|
52
49
|
* when the file does not parse or its `extends` does not resolve: the build reports that as its
|
|
@@ -111,7 +108,7 @@ export async function measurePaper(paperDir, pdf, o) {
|
|
|
111
108
|
const r = await o.readPdf(pdf);
|
|
112
109
|
if (!r.ok)
|
|
113
110
|
return err(describeFailure(r, pdf));
|
|
114
|
-
const bytes = o.files.readBytes(
|
|
111
|
+
const bytes = o.files.readBytes(callerPath(pdf));
|
|
115
112
|
if (bytes === null)
|
|
116
113
|
return err(`${pdf}: gone after pdf.js read it`);
|
|
117
114
|
const geometry = o.measure.measure(r.facts.layout);
|
|
@@ -132,7 +129,7 @@ export async function measurePaper(paperDir, pdf, o) {
|
|
|
132
129
|
*/
|
|
133
130
|
export function writeFactsFile(files, paperDir, facts) {
|
|
134
131
|
const out = factsPath(paperDir);
|
|
135
|
-
files.writeAtomic(
|
|
132
|
+
files.writeAtomic(callerPath(out), new TextEncoder().encode(`${JSON.stringify(facts, null, 2)}\n`));
|
|
136
133
|
return out;
|
|
137
134
|
}
|
|
138
135
|
const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
@@ -157,30 +154,37 @@ const MAYBE_NUMBERS = [
|
|
|
157
154
|
"ref_pt",
|
|
158
155
|
];
|
|
159
156
|
const NUMBERS = ["body_pages", "ref_pages", "appendix_pages"];
|
|
157
|
+
const isCounts = (v) => isRecord(v) && Object.values(v).every(isNum);
|
|
158
|
+
/** Every geometry column has its type: the check the type claims, and nothing else. */
|
|
159
|
+
const hasGeometryColumns = (d) => MAYBE_NUMBERS.every((k) => numOrNull(d[k])) &&
|
|
160
|
+
NUMBERS.every((k) => isNum(d[k])) &&
|
|
161
|
+
isCounts(d["pages_by_type"]);
|
|
162
|
+
/** Which geometry column is wrong, for a record `hasGeometryColumns` refused. */
|
|
163
|
+
function geometryError(d) {
|
|
164
|
+
const bad = MAYBE_NUMBERS.find((k) => !numOrNull(d[k])) ??
|
|
165
|
+
NUMBERS.find((k) => !isNum(d[k]));
|
|
166
|
+
return bad
|
|
167
|
+
? `\`${bad}\` is not a number`
|
|
168
|
+
: "`pages_by_type` is not an object of page counts";
|
|
169
|
+
}
|
|
160
170
|
/** The geometry columns when a measurer ran; the shape error otherwise. */
|
|
161
171
|
function geometryOf(d) {
|
|
162
172
|
if (d["geometry_source"] === null)
|
|
163
173
|
return ok(null);
|
|
164
174
|
if (typeof d["geometry_source"] !== "string")
|
|
165
175
|
return err("`geometry_source` is neither a measurer's name nor null");
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if (bad)
|
|
169
|
-
return err(`\`${bad}\` is not a number`);
|
|
170
|
-
const pagesByType = d["pages_by_type"];
|
|
171
|
-
if (!isRecord(pagesByType) || !Object.values(pagesByType).every(isNum))
|
|
172
|
-
return err("`pages_by_type` is not an object of page counts");
|
|
173
|
-
const n = (k) => d[k];
|
|
176
|
+
if (!hasGeometryColumns(d))
|
|
177
|
+
return err(geometryError(d));
|
|
174
178
|
return ok({
|
|
175
|
-
page_w_in:
|
|
176
|
-
page_h_in:
|
|
177
|
-
columns:
|
|
178
|
-
body_pt:
|
|
179
|
-
ref_pt:
|
|
180
|
-
body_pages: d
|
|
181
|
-
ref_pages: d
|
|
182
|
-
appendix_pages: d
|
|
183
|
-
pages_by_type:
|
|
179
|
+
page_w_in: d.page_w_in,
|
|
180
|
+
page_h_in: d.page_h_in,
|
|
181
|
+
columns: d.columns,
|
|
182
|
+
body_pt: d.body_pt,
|
|
183
|
+
ref_pt: d.ref_pt,
|
|
184
|
+
body_pages: d.body_pages,
|
|
185
|
+
ref_pages: d.ref_pages,
|
|
186
|
+
appendix_pages: d.appendix_pages,
|
|
187
|
+
pages_by_type: d.pages_by_type,
|
|
184
188
|
});
|
|
185
189
|
}
|
|
186
190
|
/** The PDF the facts describe: its path and its sha256. */
|
|
@@ -206,7 +210,7 @@ export function parseFactsText(text) {
|
|
|
206
210
|
d = JSON.parse(text);
|
|
207
211
|
}
|
|
208
212
|
catch (e) {
|
|
209
|
-
return err({ kind: "broken", why: `not JSON (${e
|
|
213
|
+
return err({ kind: "broken", why: `not JSON (${messageOf(e)})` });
|
|
210
214
|
}
|
|
211
215
|
if (!isRecord(d))
|
|
212
216
|
return err({ kind: "broken", why: "not a JSON object" });
|
|
@@ -217,7 +221,7 @@ export function parseFactsText(text) {
|
|
|
217
221
|
return err({ kind: "broken", why: artifact.error });
|
|
218
222
|
const rawFonts = d["fonts"];
|
|
219
223
|
const fonts = Array.isArray(rawFonts) ? rawFonts.map(fontOf) : null;
|
|
220
|
-
if (fonts === null || fonts.
|
|
224
|
+
if (fonts === null || !fonts.every((f) => f !== null))
|
|
221
225
|
return err({
|
|
222
226
|
kind: "broken",
|
|
223
227
|
why: "`fonts` is not a list of { name, type, embedded, program }",
|
|
@@ -227,7 +231,7 @@ export function parseFactsText(text) {
|
|
|
227
231
|
return err({ kind: "broken", why: geometry.error });
|
|
228
232
|
return ok({
|
|
229
233
|
...artifact.value,
|
|
230
|
-
fonts
|
|
234
|
+
fonts,
|
|
231
235
|
geometry: geometry.value,
|
|
232
236
|
});
|
|
233
237
|
}
|
package/dist/facts-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facts-file.js","sourceRoot":"","sources":["../src/facts-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,WAAW,GAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAiC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EACL,YAAY,GAIb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAe,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"facts-file.js","sourceRoot":"","sources":["../src/facts-file.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks-settings.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export declare function wiredCounts(settings: Settings, names: readonly string[]
|
|
|
51
51
|
export type SettingsRead = {
|
|
52
52
|
readonly status: "absent";
|
|
53
53
|
readonly path: string;
|
|
54
|
-
readonly settings:
|
|
54
|
+
readonly settings: Settings;
|
|
55
55
|
} | {
|
|
56
56
|
readonly status: "read";
|
|
57
57
|
readonly path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-settings.d.ts","sourceRoot":"","sources":["../src/hooks-settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks-settings.d.ts","sourceRoot":"","sources":["../src/hooks-settings.ts"],"names":[],"mappings":"AAmCA,+FAA+F;AAC/F,eAAO,MAAM,aAAa,QAAmC,CAAC;AAE9D,iGAAiG;AACjG,eAAO,MAAM,WAAW,QAEvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAA6C,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC;AACD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC;AAEtE,+FAA+F;AAC/F,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,qEAAqE;AACrE,MAAM,MAAM,KAAK,GAAG,CAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,KACd,QAAQ,CAAC;AAyDd,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,GAAG,IAAI,CAGP;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,GACjB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CASxD;AA4BD,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAoB,GAAG,MAAM,CAehE;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,iGAAiG;AACjG,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,SAAS,EAAE,CAYtB;AAID,MAAM,MAAM,YAAY,GACpB;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAYvD;AAED,MAAM,MAAM,UAAU,GAClB;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,GAAE,MAAwB,GAC/B,UAAU,CAuBZ;AAED,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,QAAiI,CAAC;AAE/J;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAwB,GAC/B,MAAM,EAAE,CAwCV"}
|
package/dist/hooks-settings.js
CHANGED
|
@@ -27,6 +27,8 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
27
27
|
import { basename, dirname, join, posix } from "node:path";
|
|
28
28
|
import { fileURLToPath } from "node:url";
|
|
29
29
|
import { BIN_FILE, PACKAGE_NAME, } from "../skills/paper-pipeline/scripts/consumer.mjs";
|
|
30
|
+
import { messageOf } from "./domain/text.js";
|
|
31
|
+
import { fieldOf, isRecord } from "./domain/record.js";
|
|
30
32
|
/** The committed, shared settings file — husky's `.husky/` analogue, except git carries it. */
|
|
31
33
|
export const SETTINGS_PATH = join(".claude", "settings.json");
|
|
32
34
|
/** Where the wiring lives in this package. The same file the plugin serves, read, not copied. */
|
|
@@ -86,24 +88,42 @@ export function hookRun(command) {
|
|
|
86
88
|
}
|
|
87
89
|
/** Every command in a settings object, with the event it hangs off. */
|
|
88
90
|
export function commandsIn(settings) {
|
|
89
|
-
const hooks = settings["hooks"];
|
|
90
|
-
if (!hooks || typeof hooks !== "object")
|
|
91
|
-
return [];
|
|
92
91
|
const out = [];
|
|
93
|
-
for (const [event, entries] of Object.entries(hooks))
|
|
94
|
-
for (const entry of
|
|
95
|
-
for (const h of
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
for (const [event, entries] of Object.entries(prop(settings["hooks"]) ?? {}))
|
|
93
|
+
for (const entry of listOf(entries))
|
|
94
|
+
for (const h of listOf(prop(entry)?.["hooks"])) {
|
|
95
|
+
const command = prop(h)?.["command"];
|
|
96
|
+
if (typeof command === "string")
|
|
97
|
+
out.push({ event, command });
|
|
98
|
+
}
|
|
98
99
|
return out;
|
|
99
100
|
}
|
|
101
|
+
/** The settings file is the user's: any level may be missing or of the wrong kind. */
|
|
102
|
+
const listOf = (v) => (Array.isArray(v) ? v : []);
|
|
103
|
+
const prop = (v) => typeof v === "object" && v !== null
|
|
104
|
+
? Object.fromEntries(Object.entries(v))
|
|
105
|
+
: undefined;
|
|
106
|
+
const isHookCommand = (v) => typeof fieldOf(v, "type") === "string" &&
|
|
107
|
+
typeof fieldOf(v, "command") === "string";
|
|
108
|
+
function isHookEntry(v) {
|
|
109
|
+
const matcher = fieldOf(v, "matcher");
|
|
110
|
+
const hooks = fieldOf(v, "hooks");
|
|
111
|
+
return (["undefined", "string"].includes(typeof matcher) &&
|
|
112
|
+
Array.isArray(hooks) &&
|
|
113
|
+
hooks.every(isHookCommand));
|
|
114
|
+
}
|
|
115
|
+
/** A `hooks` map of the shape Claude Code reads: event → entries → commands. */
|
|
116
|
+
const isHooksMap = (v) => isRecord(v) &&
|
|
117
|
+
Object.values(v).every((es) => Array.isArray(es) && es.every(isHookEntry));
|
|
100
118
|
/**
|
|
101
119
|
* The shipped wiring, and the hook names it runs. An unreadable file or zero names THROWS: a
|
|
102
120
|
* check that silently wired nothing would report "✓ wired" over an empty set.
|
|
103
121
|
*/
|
|
104
122
|
export function shippedWiring(file = WIRING_FILE) {
|
|
105
123
|
const json = JSON.parse(readFileSync(file, "utf8"));
|
|
106
|
-
const compiled = json
|
|
124
|
+
const compiled = fieldOf(json, "hooks") ?? {};
|
|
125
|
+
if (!isHooksMap(compiled))
|
|
126
|
+
throw new Error(`${file}: "hooks" is not a map of event → [{ matcher?, hooks: [{ type, command }] }]`);
|
|
107
127
|
const names = commandsIn({ hooks: compiled })
|
|
108
128
|
.map((c) => hookRun(c.command)?.name)
|
|
109
129
|
.filter((n) => typeof n === "string");
|
|
@@ -132,12 +152,12 @@ export function readSettings(root) {
|
|
|
132
152
|
const raw = readFileSync(path, "utf8");
|
|
133
153
|
try {
|
|
134
154
|
const parsed = JSON.parse(raw);
|
|
135
|
-
if (!
|
|
155
|
+
if (!isRecord(parsed))
|
|
136
156
|
return { status: "unparsable", path, reason: "not a JSON object" };
|
|
137
157
|
return { status: "read", path, settings: parsed, raw };
|
|
138
158
|
}
|
|
139
159
|
catch (e) {
|
|
140
|
-
return { status: "unparsable", path, reason: e
|
|
160
|
+
return { status: "unparsable", path, reason: messageOf(e) };
|
|
141
161
|
}
|
|
142
162
|
}
|
|
143
163
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-settings.js","sourceRoot":"","sources":["../src/hooks-settings.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hooks-settings.js","sourceRoot":"","sources":["../src/hooks-settings.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PROGRAMS } from "./doctor.ts";
|
|
1
|
+
import { PROGRAMS, type ProgramProbe } from "./doctor.ts";
|
|
3
2
|
import { type LinkReport } from "./link-skills.ts";
|
|
4
3
|
import { type Merge, type WireResult } from "./hooks-settings.ts";
|
|
5
4
|
import { type PaperFormat } from "./new-paper.ts";
|
|
@@ -97,11 +96,11 @@ export declare function offerWorkflow(root: string, papers: string, { ask, inter
|
|
|
97
96
|
ask?: (q: string) => Promise<string>;
|
|
98
97
|
interactive: boolean;
|
|
99
98
|
/** The running package's version; see `InitOptions.version`. */
|
|
100
|
-
version?: string;
|
|
99
|
+
version?: string | undefined;
|
|
101
100
|
}): Promise<WorkflowResult>;
|
|
102
101
|
/** What `init` says about the CI workflow — and, when none was written, the step to paste. */
|
|
103
102
|
export declare function reportWorkflow(wf: WorkflowResult, { version, papersDir, why, }: {
|
|
104
|
-
version?: string;
|
|
103
|
+
version?: string | undefined;
|
|
105
104
|
papersDir: string;
|
|
106
105
|
why: string;
|
|
107
106
|
}): string[];
|
|
@@ -110,7 +109,7 @@ export declare function reportWorkflow(wf: WorkflowResult, { version, papersDir,
|
|
|
110
109
|
* without it, which is the only reason the list is worth printing: a missing checker and a
|
|
111
110
|
* passing checker produce the same silence.
|
|
112
111
|
*/
|
|
113
|
-
export declare function missingPrograms(run?:
|
|
112
|
+
export declare function missingPrograms(run?: ProgramProbe): readonly (typeof PROGRAMS)[number][];
|
|
114
113
|
/**
|
|
115
114
|
* What is left after `init` — commands only, all typed in the same terminal.
|
|
116
115
|
*
|
|
@@ -141,7 +140,7 @@ export declare function offerHooks(root: string, { hooks, interactive, ask, merg
|
|
|
141
140
|
hooks: boolean;
|
|
142
141
|
interactive: boolean;
|
|
143
142
|
ask?: (q: string) => Promise<string>;
|
|
144
|
-
merge?: Merge;
|
|
143
|
+
merge?: Merge | undefined;
|
|
145
144
|
}): Promise<HooksOutcome>;
|
|
146
145
|
/** The hooks section of init's report. Every default names the flag that changes it. */
|
|
147
146
|
export declare function reportHooks(outcome: HooksOutcome, { how, here }: {
|
|
@@ -170,7 +169,7 @@ export interface InitOptions {
|
|
|
170
169
|
/** `false` is `--no-hooks`. */
|
|
171
170
|
hooks?: boolean;
|
|
172
171
|
/** vigiles' merge. Injected only so a test can observe or replace it. */
|
|
173
|
-
merge?: Merge;
|
|
172
|
+
merge?: Merge | undefined;
|
|
174
173
|
/** `--paper <name>`: create this paper, even without a terminal. */
|
|
175
174
|
paper?: string | null;
|
|
176
175
|
/** `--format tex|md` for that paper. */
|
|
@@ -180,7 +179,7 @@ export interface InitOptions {
|
|
|
180
179
|
* `new` cannot drift into two implementations.
|
|
181
180
|
*/
|
|
182
181
|
createPaper?: (papersRoot: string, name: string, format: PaperFormat) => Promise<number>;
|
|
183
|
-
run?:
|
|
182
|
+
run?: ProgramProbe;
|
|
184
183
|
/**
|
|
185
184
|
* What `paperlint lint` would resolve from the declaration, asked of the CLI's OWN reader. A second
|
|
186
185
|
* implementation here would be a second source of truth — the very defect `doctor` reports.
|
|
@@ -192,7 +191,7 @@ export interface InitOptions {
|
|
|
192
191
|
* The version of the running package, read by the CLI from its own `package.json`. The CI
|
|
193
192
|
* workflow is pinned to its release tag (`actionRef`); absent or unreleased, the placeholder.
|
|
194
193
|
*/
|
|
195
|
-
version?: string;
|
|
194
|
+
version?: string | undefined;
|
|
196
195
|
/**
|
|
197
196
|
* TeX Live for `paperlint build`: whether paperlint's own tree is installed, and how to install
|
|
198
197
|
* it (`paperlint toolchain`). Passed in by the CLI; without them the step only names the command.
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/init.js
CHANGED
|
@@ -42,15 +42,18 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync,
|
|
|
42
42
|
// eslint-disable-next-line boundaries/dependencies -- legacy I/O, moves behind a port in #76
|
|
43
43
|
import { spawnSync } from "node:child_process";
|
|
44
44
|
import { dirname, join, relative, resolve } from "node:path";
|
|
45
|
-
import { doctor, detectPapers, found, PROGRAMS } from "./doctor.js";
|
|
45
|
+
import { doctor, detectPapers, found, PROGRAMS, } from "./doctor.js";
|
|
46
46
|
import { PAPER_MARKERS, papersIn } from "./build.js";
|
|
47
47
|
import { linkSkills, SKILLS_HOME } from "./link-skills.js";
|
|
48
48
|
import { actionRef } from "./action-ref.js";
|
|
49
49
|
import { FRESH_CLONE_NOTE, SETTINGS_PATH, shippedWiring, wireHooks, } from "./hooks-settings.js";
|
|
50
50
|
import { DEFAULT_FORMAT, isFormat, nameProblem, } from "./new-paper.js";
|
|
51
|
-
// The one source for the consumer's config key lives in the
|
|
52
|
-
//
|
|
53
|
-
|
|
51
|
+
// The one source for the consumer's config key lives in lib/ (the ESLint rules and the skill scripts
|
|
52
|
+
// import it too). It is imported compiled, from dist/, the one path that resolves the same from src/
|
|
53
|
+
// and from dist/ — see CONTRIBUTING.md.
|
|
54
|
+
import { CONFIG_FILE, DEFAULT_PAPERS_ROOT, PAPERS_DIR_FIELD, } from "#lib/paper-config";
|
|
55
|
+
import { messageOf } from "./domain/text.js";
|
|
56
|
+
import { isRecord } from "./domain/record.js";
|
|
54
57
|
/**
|
|
55
58
|
* 🔴 A QUESTION CAN FAIL, AND ITS FAILURE MUST NOT BE THE COMMAND'S. Measured 2026-09-18 on a
|
|
56
59
|
* real pseudo-terminal: `readline`'s `question()` REJECTS with `AbortError: Aborted with Ctrl+D`
|
|
@@ -86,12 +89,18 @@ export function interactivity({ stdinTTY, stdoutTTY, env, yes, }) {
|
|
|
86
89
|
return { interactive: false, why: "stdout is not a terminal" };
|
|
87
90
|
return { interactive: true, why: "a terminal on both ends" };
|
|
88
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Whether a standard stream is a terminal. Node types `isTTY` as `boolean`, but on a stream that
|
|
94
|
+
* is NOT a terminal (a pipe, a file) the property is absent — `undefined` — so it is read as the
|
|
95
|
+
* optional it really is.
|
|
96
|
+
*/
|
|
97
|
+
const isTty = (stream) => stream.isTTY === true;
|
|
89
98
|
/** The mode of THIS process — the one place `process` is read for it. */
|
|
90
99
|
export const processInteractivity = (yes) => interactivity({
|
|
91
100
|
// eslint-disable-next-line no-restricted-globals -- legacy I/O, moves behind a port in #76
|
|
92
|
-
stdinTTY:
|
|
101
|
+
stdinTTY: isTty(process.stdin),
|
|
93
102
|
// eslint-disable-next-line no-restricted-globals -- legacy I/O, moves behind a port in #76
|
|
94
|
-
stdoutTTY:
|
|
103
|
+
stdoutTTY: isTty(process.stdout),
|
|
95
104
|
// eslint-disable-next-line no-restricted-globals -- legacy I/O, moves behind a port in #76
|
|
96
105
|
env: process.env,
|
|
97
106
|
yes,
|
|
@@ -134,12 +143,16 @@ export async function declarePapers(root, choose) {
|
|
|
134
143
|
const raw = existsSync(path) ? readFileSync(path, "utf8") : null;
|
|
135
144
|
let settings = {};
|
|
136
145
|
if (raw !== null) {
|
|
146
|
+
let parsed;
|
|
137
147
|
try {
|
|
138
|
-
|
|
148
|
+
parsed = JSON.parse(raw);
|
|
139
149
|
}
|
|
140
150
|
catch (e) {
|
|
141
|
-
return { status: "unparsable", path, reason: e
|
|
151
|
+
return { status: "unparsable", path, reason: messageOf(e) };
|
|
142
152
|
}
|
|
153
|
+
if (!isRecord(parsed))
|
|
154
|
+
return { status: "unparsable", path, reason: "not a JSON object" };
|
|
155
|
+
settings = parsed;
|
|
143
156
|
const existing = settings[PAPERS_DIR_FIELD];
|
|
144
157
|
if (existing !== undefined)
|
|
145
158
|
return { status: "kept", path, papers: existing };
|
|
@@ -273,7 +286,7 @@ export async function offerHooks(root, { hooks, interactive, ask, merge, }) {
|
|
|
273
286
|
return wireHooks(root, m, shippedWiring());
|
|
274
287
|
}
|
|
275
288
|
catch (e) {
|
|
276
|
-
return { status: "failed", reason: e
|
|
289
|
+
return { status: "failed", reason: messageOf(e) };
|
|
277
290
|
}
|
|
278
291
|
}
|
|
279
292
|
/** The hooks section of init's report. Every default names the flag that changes it. */
|
|
@@ -460,15 +473,24 @@ export async function init(dir, opts = {}) {
|
|
|
460
473
|
log(line);
|
|
461
474
|
log(``);
|
|
462
475
|
log(`settings`);
|
|
463
|
-
|
|
476
|
+
// Every step below uses the DECLARED directory. A kept declaration outranks what init
|
|
477
|
+
// measured or guessed: otherwise the first paper and the workflow would land in the
|
|
478
|
+
// guessed directory while lint and the hooks keep reading the declared one.
|
|
479
|
+
let papersDir;
|
|
480
|
+
if (decl.status === "written") {
|
|
481
|
+
papersDir = decl.papers;
|
|
464
482
|
log(` ✓ ${here(decl.path)} → { "${PAPERS_DIR_FIELD}": ${JSON.stringify(decl.papers)} }`);
|
|
465
|
-
|
|
483
|
+
}
|
|
484
|
+
else if (decl.status === "default") {
|
|
485
|
+
papersDir = decl.papers;
|
|
466
486
|
log(` ✓ nothing to write — "${decl.papers}" is the default, so no ${CONFIG_FILE} is needed`);
|
|
487
|
+
}
|
|
467
488
|
else if (decl.status === "kept") {
|
|
468
489
|
if (typeof decl.papers !== "string") {
|
|
469
490
|
err(` ✗ ${here(decl.path)} declares ${PAPERS_DIR_FIELD} = ${JSON.stringify(decl.papers)} — it must be a directory path (a string)`);
|
|
470
491
|
return 2;
|
|
471
492
|
}
|
|
493
|
+
papersDir = decl.papers;
|
|
472
494
|
log(` ✓ ${here(decl.path)} already declares ${PAPERS_DIR_FIELD} = ${JSON.stringify(decl.papers)} — kept, nothing overwritten`);
|
|
473
495
|
}
|
|
474
496
|
else {
|
|
@@ -477,10 +499,6 @@ export async function init(dir, opts = {}) {
|
|
|
477
499
|
err(` refuse every Bash command while it cannot be parsed — fix the JSON first.`);
|
|
478
500
|
return 2;
|
|
479
501
|
}
|
|
480
|
-
// Every step below uses the DECLARED directory. A kept declaration outranks what init
|
|
481
|
-
// measured or guessed: otherwise the first paper and the workflow would land in the
|
|
482
|
-
// guessed directory while lint and the hooks keep reading the declared one.
|
|
483
|
-
const papersDir = decl.papers;
|
|
484
502
|
// ── 3. the skills, linked where Claude Code looks for them ─────────────────────────────
|
|
485
503
|
for (const line of reportSkillLinks(link(root), here))
|
|
486
504
|
log(line);
|