@event4u/agent-config 16.4.0 → 17.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/skills/install-agent-config/SKILL.md +4 -4
- package/CHANGELOG.md +483 -669
- package/CONTRIBUTING.md +47 -0
- package/README.md +25 -25
- package/dist/agent-src/commands/{design.md → agent-design.md} +11 -7
- package/dist/agent-src/commands/agents/init.md +66 -3
- package/dist/agent-src/commands/agents/user/init.md +3 -0
- package/dist/agent-src/commands/{optimize/deep.md → analyze/and-optimize.md} +72 -33
- package/dist/agent-src/commands/analyze/inbox.md +168 -37
- package/dist/agent-src/commands/analyze/pr.md +144 -0
- package/dist/agent-src/commands/analyze/{repo.md → reference.md} +85 -14
- package/dist/agent-src/commands/analyze/roadmap-repos.md +19 -10
- package/dist/agent-src/commands/analyze.md +28 -12
- package/dist/agent-src/commands/audit.md +115 -0
- package/dist/agent-src/commands/brand/review.md +13 -2
- package/dist/agent-src/commands/brand/tokens.md +3 -3
- package/dist/agent-src/commands/brand/voice.md +8 -5
- package/dist/agent-src/commands/brand.md +2 -2
- package/dist/agent-src/commands/challenge-me/closure.md +25 -0
- package/dist/agent-src/commands/design-system/import.md +8 -3
- package/dist/agent-src/commands/design-system/sync.md +98 -0
- package/dist/agent-src/commands/design-system.md +6 -1
- package/dist/agent-src/commands/evals/analyze.json +44 -0
- package/dist/agent-src/commands/evals/audit.json +12 -0
- package/dist/agent-src/commands/evals/retro.json +12 -0
- package/dist/agent-src/commands/fix/ci.md +10 -8
- package/dist/agent-src/commands/ghostwriter/write.md +22 -0
- package/dist/agent-src/commands/memory/learn-low-impact.md +70 -83
- package/dist/agent-src/commands/memory/propose.md +12 -0
- package/dist/agent-src/commands/memory.md +1 -1
- package/dist/agent-src/commands/optimize.md +4 -3
- package/dist/agent-src/commands/post-as/me.md +18 -0
- package/dist/agent-src/commands/pr/create.md +17 -342
- package/dist/agent-src/commands/pr/merge.md +129 -368
- package/dist/agent-src/commands/retro.md +121 -0
- package/dist/agent-src/commands/review/routing.md +1 -1
- package/dist/agent-src/commands/roadmap/next.md +4 -1
- package/dist/agent-src/commands/roadmap/process-full.md +46 -333
- package/dist/agent-src/commands/roadmap/triage-parked.md +6 -2
- package/dist/agent-src/commands/team-knowledge/consolidate.md +2 -2
- package/dist/agent-src/commands/team-knowledge.md +1 -1
- package/dist/agent-src/commands/threat-model.md +1 -1
- package/dist/agent-src/commands/upstream-contribute.md +91 -101
- package/dist/agent-src/commands/worktree/cleanup.md +18 -11
- package/dist/agent-src/contexts/contracts/consumer-agents-md-guide.md +54 -0
- package/dist/agent-src/contexts/execution/analysis-loop.md +137 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +3 -3
- package/dist/agent-src/contexts/execution/decision-closure-execution.md +1 -1
- package/dist/agent-src/contexts/execution/host-capability-manifest.md +6 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +11 -4
- package/dist/agent-src/contexts/execution/pr-create-branches-content.md +250 -0
- package/dist/agent-src/contexts/execution/pr-create-branches-freshness.md +150 -0
- package/dist/agent-src/contexts/execution/pr-merge-queue.md +287 -0
- package/dist/agent-src/contexts/execution/pr-merge-sync.md +276 -0
- package/dist/agent-src/contexts/execution/pr-merge-trust-boundary.md +69 -0
- package/dist/agent-src/contexts/execution/process-full-all.md +233 -0
- package/dist/agent-src/contexts/execution/process-full-delivery.md +231 -0
- package/dist/agent-src/contexts/execution/roadmap-execution-contract-branches.md +42 -0
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -35
- package/dist/agent-src/contexts/execution/roadmap-process-loop-close.md +235 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop-prescan.md +216 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop-run.md +253 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop-set.md +212 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +25 -864
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +14 -2
- package/dist/agent-src/contexts/execution/subagent-steering.md +65 -8
- package/dist/agent-src/contexts/model-recommendations.md +5 -5
- package/dist/agent-src/contexts/subagent-configuration.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +4 -3
- package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +11 -5
- package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +47 -24
- package/dist/agent-src/guidelines/design-antipatterns.md +6 -1
- package/dist/agent-src/guidelines/design-asset-discipline.md +17 -0
- package/dist/agent-src/guidelines/design-fidelity-routing.md +1 -0
- package/dist/agent-src/guidelines/php/api-design.md +10 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +7 -6
- package/dist/agent-src/rules/code-provenance.md +1 -1
- package/dist/agent-src/rules/context-hygiene.md +0 -1
- package/dist/agent-src/rules/design-fidelity.md +12 -13
- package/dist/agent-src/rules/external-reference-deep-dive.md +2 -2
- package/dist/agent-src/rules/fix-what-you-see.md +1 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +14 -15
- package/dist/agent-src/rules/missing-skill-recovery.md +12 -11
- package/dist/agent-src/rules/neighbour-precedence.md +1 -1
- package/dist/agent-src/rules/recurring-criticism.md +1 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -2
- package/dist/agent-src/rules/self-repair-loop.md +2 -2
- package/dist/agent-src/rules/token-budget-discipline.md +2 -2
- package/dist/agent-src/scripts/dashboard_mode.ts +4 -1
- package/dist/agent-src/scripts/roadmap_age.ts +175 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +10 -2
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -3
- package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +2 -0
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
- package/dist/agent-src/skills/agent-security-review/SKILL.md +2 -2
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +12 -4
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +7 -0
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +11 -1
- package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +7 -0
- package/dist/agent-src/skills/ai-council/references/execution-modes.md +7 -0
- package/dist/agent-src/skills/ai-council/references/output-and-synthesis.md +19 -0
- package/dist/agent-src/skills/ai-council/references/procedure.md +7 -0
- package/dist/agent-src/skills/api-design/SKILL.md +2 -2
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/authz-review/SKILL.md +5 -3
- package/dist/agent-src/skills/blade-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/brand/SKILL.md +7 -3
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +13 -6
- package/dist/agent-src/skills/brand-audit/SKILL.md +2 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +5 -4
- package/dist/agent-src/skills/brand-strategy/SKILL.md +5 -4
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +18 -39
- package/dist/agent-src/skills/brand-to-tokens/templates/marp-brand-deck.md.example +2 -2
- package/dist/agent-src/skills/brand-to-tokens/templates/reveal-brand-deck.yaml +2 -2
- package/dist/agent-src/skills/canvas-design/SKILL.md +16 -4
- package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
- package/dist/agent-src/skills/composer-packages/SKILL.md +18 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/content-funnel-design/SKILL.md +8 -1
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +2 -2
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +6 -6
- package/dist/agent-src/skills/corpus-grounding/scripts/decision_engine.ts +13 -11
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.mjs +1706 -0
- package/dist/agent-src/skills/corpus-grounding/scripts/schema_validator.ts +7 -1
- package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
- package/dist/agent-src/skills/data-flow-mapper/SKILL.md +5 -2
- package/dist/agent-src/skills/database/SKILL.md +5 -4
- package/dist/agent-src/skills/decision-record/references/weighted-matrix.md +12 -0
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +1 -1
- package/dist/agent-src/skills/dependency-upgrade/SKILL.md +61 -11
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/data/landing.csv +1 -1
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +10 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-intelligence/references/design-rules-checklist.md +4 -3
- package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +25 -22
- package/dist/agent-src/skills/{wireframe → design-review}/references/story-beat-ledger.schema.json +1 -1
- package/dist/agent-src/skills/design-review/references/verification-automation.md +11 -3
- package/dist/agent-src/skills/design-system-capture/SKILL.md +15 -10
- package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -5
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +2 -2
- package/dist/agent-src/skills/design-tokens/SKILL.md +23 -23
- package/dist/agent-src/skills/design-tokens/scripts/tokens.mjs +1037 -0
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +336 -13
- package/dist/agent-src/skills/design-tokens/templates/design-tokens-starter.json +52 -53
- package/dist/agent-src/skills/docker/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +14 -276
- package/dist/agent-src/skills/existing-ui-audit/procedure.yaml +44 -0
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/references/steps/00-inspect-stack-and-input.md +4 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/01-enumerate-components.md +26 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/01b-detect-component-taxonomy.md +7 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/02-identify-design-system.md +12 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/03-detect-design-tokens.md +35 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/04-detect-shadcn-inventory.md +13 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/04b-live-storybook-read.md +26 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/05-list-reusable-patterns.md +14 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/06-match-candidates.md +52 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/07-greenfield-branch.md +29 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/08-a11y-baseline.md +40 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/09-validate-and-write.md +5 -0
- package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +65 -4
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +1 -1
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +6 -6
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/form-handler/SKILL.md +15 -2
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
- package/dist/agent-src/skills/git-workflow/SKILL.md +2 -2
- package/dist/agent-src/skills/git-workflow/references/branch-update.md +7 -0
- package/dist/agent-src/skills/git-workflow/references/commit-subject.md +12 -0
- package/dist/agent-src/skills/git-workflow/references/push-closes-its-loop.md +10 -0
- package/dist/agent-src/skills/gtm-launch/SKILL.md +8 -1
- package/dist/agent-src/skills/html-deck/SKILL.md +7 -2
- package/dist/agent-src/skills/humanizer/SKILL.md +16 -3
- package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +13 -1
- package/dist/agent-src/skills/humanizer/references/fixtures.md +8 -0
- package/dist/agent-src/skills/iconography/SKILL.md +4 -2
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +5 -4
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.mjs +197 -0
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +18 -22
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +5 -5
- package/dist/agent-src/skills/livewire/SKILL.md +1 -1
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +18 -0
- package/dist/agent-src/skills/logo-generation/SKILL.md +21 -11
- package/dist/agent-src/skills/market-entry-analysis/SKILL.md +6 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
- package/dist/agent-src/skills/messaging-architecture/SKILL.md +8 -1
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +2 -2
- package/dist/agent-src/skills/playwright-testing/SKILL.md +2 -0
- package/dist/agent-src/skills/positioning-strategy/SKILL.md +10 -2
- package/dist/agent-src/skills/prediction-pool-optimizer/references/ev-fixtures.md +13 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/references/odds-and-bonus.md +7 -0
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analyzer/SKILL.md +14 -75
- package/dist/agent-src/skills/project-analyzer/procedure.yaml +39 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/01-project-overview.md +9 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/02-architecture.md +7 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/03-data-layer.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/04-business-domains.md +7 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/05-api-surface.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/06-service-map.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/07-module-inventory.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/08-infrastructure-and-testing.md +5 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/09-agent-docs-audit.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/10-gap-analysis.md +6 -0
- package/dist/agent-src/skills/quality-tools/references/js-ts-tools.md +10 -0
- package/dist/agent-src/skills/quality-tools/references/php-tools.md +13 -0
- package/dist/agent-src/skills/quality-tools/references/python-tools.md +11 -0
- package/dist/agent-src/skills/react-native-setup/SKILL.md +7 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +5 -1
- package/dist/agent-src/skills/react-shadcn-ui/references/registry.md +13 -0
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.mjs +315 -0
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +6 -6
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/release-comms/SKILL.md +2 -1
- package/dist/agent-src/skills/repomix-packer/SKILL.md +2 -2
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-management/references/archival.md +3 -3
- package/dist/agent-src/skills/roadmap-management/references/authoring.md +9 -2
- package/dist/agent-src/skills/roadmap-management/references/dashboard.md +3 -3
- package/dist/agent-src/skills/roadmap-management/references/lifecycle.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -4
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +1 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +1 -2
- package/dist/agent-src/skills/security/SKILL.md +41 -5
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
- package/dist/agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-writing/SKILL.md +23 -8
- package/dist/agent-src/skills/skill-writing/references/section-patterns.md +19 -1
- package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/standards-from-config/SKILL.md +2 -2
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +5 -0
- package/dist/agent-src/skills/storybook-workshop/scripts/story_contrast_floor.mjs +99 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +13 -13
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +4 -3
- package/dist/agent-src/skills/svg-authoring/SKILL.md +324 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +8 -3
- package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.mjs +482 -0
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +8 -1
- package/dist/agent-src/skills/threat-modeling/data/manifest.json +5 -2
- package/dist/agent-src/skills/threat-modeling/data/reasoning.csv +10 -10
- package/dist/agent-src/skills/threat-modeling/data/surfaces.csv +11 -10
- package/dist/agent-src/skills/threat-modeling/data/threats.csv +34 -20
- package/dist/agent-src/skills/type-design/SKILL.md +196 -0
- package/dist/agent-src/skills/type-design/references/font-spec.md +90 -0
- package/dist/agent-src/skills/type-design/references/gates.md +113 -0
- package/dist/agent-src/skills/type-design/references/toolchain.md +66 -0
- package/dist/agent-src/skills/typography-system/SKILL.md +21 -11
- package/dist/agent-src/skills/typography-system/references/worked-scales.md +85 -0
- package/dist/agent-src/skills/ui-apply-generic/SKILL.md +1 -1
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +120 -125
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -0
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +71 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +5 -2
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +16 -14
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/agents/proposal.example.md +1 -1
- package/dist/agent-src/templates/github-workflows/advisories-daily.yml +85 -0
- package/dist/agent-src/templates/roadmaps.md +39 -1
- package/dist/agent-src/templates/scripts/check_memory.ts +2 -2
- package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +13 -1
- package/dist/agent-src/templates/scripts/work_engine/cli.ts +17 -0
- package/dist/agent-src/templates/scripts/work_engine/cli_args.ts +10 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +22 -13
- package/dist/agent-src/templates/scripts/work_engine/dispatcher.ts +18 -4
- package/dist/agent-src/templates/scripts/work_engine/procedure/checks.ts +283 -0
- package/dist/agent-src/templates/scripts/work_engine/procedure/run.ts +432 -0
- package/dist/agent-src/templates/scripts/work_engine/procedure/sidecar.ts +185 -0
- package/dist/agent-src/templates/scripts/work_engine/state.ts +3 -0
- package/dist/cli/commands/uiRender.js +265 -13
- package/dist/cli/commands/uiRenderAsset.js +1316 -0
- package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
- package/dist/cli/commands/uiRenderAssetFonts.js +158 -0
- package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
- package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
- package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
- package/dist/cli/commands/uiRenderAssetTypes.js +133 -0
- package/dist/cli/initRouting.js +1 -1
- package/dist/cli/main.js +47 -1
- package/dist/cli/mcp/dispatch.js +31 -9
- package/dist/cli/python/knowledge_ingest.js +7 -39
- package/dist/cli/python/workspace_secrets.js +4 -177
- package/dist/cli/registry.js +5 -2
- package/dist/cli-delegate/archive_completed_roadmaps.js +3 -2
- package/dist/cli-delegate/check_update_banner.js +635 -266
- package/dist/cli-delegate/{chunk-AED2VQGM.js → chunk-2CX7NWRB.js} +233 -437
- package/dist/cli-delegate/{chunk-F3QDG2GT.js → chunk-2SFOOFJJ.js} +259 -159
- package/dist/cli-delegate/chunk-2Y5AMLMY.js +136 -0
- package/dist/cli-delegate/{chunk-OKJUIAPS.js → chunk-4E2W63DA.js} +1 -62
- package/dist/cli-delegate/{chunk-6SRJTYJS.js → chunk-4SHNERBL.js} +37 -16
- package/dist/cli-delegate/chunk-5VO3RTMV.js +208 -0
- package/dist/cli-delegate/chunk-6E2LDY4F.js +27 -0
- package/dist/cli-delegate/{chunk-XQTPXKFA.js → chunk-6ZD2QZMN.js} +8 -17
- package/dist/cli-delegate/{chunk-6V5FMA3P.js → chunk-7CEI2YPS.js} +1 -1
- package/dist/cli-delegate/{chunk-DMSZHXZS.js → chunk-7DRWULEQ.js} +80 -7
- package/dist/cli-delegate/chunk-7NXCZSDL.js +54 -0
- package/dist/cli-delegate/chunk-AX3U3UWJ.js +328 -0
- package/dist/cli-delegate/{chunk-WOKWX5PL.js → chunk-BKALSTBZ.js} +18 -3
- package/dist/cli-delegate/chunk-BMGUGSY6.js +103 -0
- package/dist/cli-delegate/chunk-BYV46VRM.js +3309 -0
- package/dist/cli-delegate/{chunk-5GPULQBE.js → chunk-CAL76ADI.js} +4215 -682
- package/dist/cli-delegate/chunk-DSY6LLCQ.js +127 -0
- package/dist/cli-delegate/chunk-E6XNBVE4.js +581 -0
- package/dist/cli-delegate/{chunk-ZUZKZYCN.js → chunk-ESUNQ5XR.js} +46 -10
- package/dist/cli-delegate/{chunk-G5VVIZRC.js → chunk-F7HLSW6P.js} +1 -1
- package/dist/cli-delegate/chunk-FIEEOH5C.js +133 -0
- package/dist/cli-delegate/chunk-FKYZOWVD.js +719 -0
- package/dist/cli-delegate/chunk-GOMILC3O.js +918 -0
- package/dist/cli-delegate/chunk-I4KJYVPB.js +69 -0
- package/dist/cli-delegate/{chunk-JQOM7TTM.js → chunk-IDAOTDPE.js} +1 -100
- package/dist/cli-delegate/chunk-IROAQ77A.js +137 -0
- package/dist/cli-delegate/chunk-J2SJZICO.js +698 -0
- package/dist/cli-delegate/{chunk-6YQC2HLF.js → chunk-JHMMWNJ2.js} +54 -40
- package/dist/cli-delegate/{chunk-WQWXGIWB.js → chunk-M6CRG5O6.js} +165 -15
- package/dist/cli-delegate/{chunk-PHD7OOLE.js → chunk-MQ2UDEGV.js} +14 -3
- package/dist/cli-delegate/chunk-NTM7G2V4.js +220 -0
- package/dist/cli-delegate/chunk-PV7S5DPJ.js +175 -0
- package/dist/cli-delegate/{chunk-F7DQWYR5.js → chunk-RAXQOETZ.js} +6 -2
- package/dist/cli-delegate/{chunk-T7XSJSUQ.js → chunk-SIOMDAKL.js} +980 -784
- package/dist/cli-delegate/{chunk-KR6EM23A.js → chunk-TULVDQ4L.js} +3 -48
- package/dist/cli-delegate/chunk-UUYEKXKR.js +20 -0
- package/dist/cli-delegate/{chunk-7XGD2OEU.js → chunk-UXWHY6CQ.js} +2 -1
- package/dist/cli-delegate/{chunk-PWX7CKMD.js → chunk-VC3ECUEK.js} +1 -1
- package/dist/cli-delegate/{chunk-KXXWJTDO.js → chunk-WMNYVIYX.js} +1 -1
- package/dist/cli-delegate/chunk-XCY5KKUC.js +181 -0
- package/dist/cli-delegate/{chunk-H76PHZBI.js → chunk-XLY5G3CM.js} +14 -19
- package/dist/cli-delegate/cmd_adr_effective.js +41 -2
- package/dist/cli-delegate/cmd_analyze_session.js +7 -7
- package/dist/cli-delegate/cmd_brand_status.js +1287 -10
- package/dist/cli-delegate/cmd_ci_settle.js +330 -0
- package/dist/cli-delegate/cmd_conformance.js +669 -822
- package/dist/cli-delegate/cmd_doctor.js +26 -16
- package/dist/cli-delegate/cmd_doctor_neighbours.js +10 -7
- package/dist/cli-delegate/cmd_explain.js +9 -24
- package/dist/cli-delegate/cmd_export.js +14 -11
- package/dist/cli-delegate/cmd_fleet.js +5 -3
- package/dist/cli-delegate/cmd_git_convention.js +8 -4
- package/dist/cli-delegate/cmd_handoff.js +79 -242
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +4 -2
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +2 -2
- package/dist/cli-delegate/cmd_preflight.js +7 -5
- package/dist/cli-delegate/cmd_prune.js +16 -13
- package/dist/cli-delegate/cmd_route_audit.js +11 -8
- package/dist/cli-delegate/cmd_route_explain.js +649 -16
- package/dist/cli-delegate/cmd_session_recycle.js +15 -6
- package/dist/cli-delegate/cmd_settings_check.js +2 -2
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +14 -11
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +16 -13
- package/dist/cli-delegate/cmd_uninstall.js +185 -31
- package/dist/cli-delegate/cmd_update.js +67 -3
- package/dist/cli-delegate/cmd_upgrade.js +38 -7
- package/dist/cli-delegate/cmd_validate.js +16 -13
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/cli-delegate/dashboard_mode.js +1 -1
- package/dist/cli-delegate/gate_execute.js +4 -3
- package/dist/cli-delegate/roadmap_age.js +22 -0
- package/dist/cli-delegate/roadmap_gates.js +4 -3
- package/dist/cli-delegate/update_roadmap_progress.js +3 -2
- package/dist/cli-delegate/upgrade_unattended-VVL6JLSX.js +541 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +409 -201
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +36 -27
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +25 -16
- package/dist/hooks/chat_history.chunk.cjs +6852 -0
- package/dist/hooks/chat_history.chunk.cjs.sha256 +1 -0
- package/dist/hooks/dispatch.js +17706 -18627
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/hooks/egress_engine.chunk.cjs +915 -0
- package/dist/hooks/egress_engine.chunk.cjs.sha256 +1 -0
- package/dist/hooks/svg_rules.chunk.cjs +1858 -0
- package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
- package/dist/install/conflict.js +36 -6
- package/dist/install/conflictTracker.js +81 -7
- package/dist/install/detect.js +3 -3
- package/dist/install/hostPermissionsAdapter.js +106 -0
- package/dist/install/install.mjs +3117 -1949
- package/dist/install/installThinLayer.js +1 -1
- package/dist/install/manifestFiles.js +21 -0
- package/dist/install/noGoDenyRows.js +300 -0
- package/dist/install/noGoRules.js +368 -0
- package/dist/install/ownershipLedger.js +133 -0
- package/dist/install/plan.js +1 -1
- package/dist/install/preflight.js +39 -8
- package/dist/install/preserve.js +74 -12
- package/dist/install/recordedOwnership.js +88 -5
- package/dist/install/rule_scope.js +20 -3
- package/dist/install/stagedRuntime.js +455 -0
- package/dist/install/toolsArg.js +19 -0
- package/dist/install/userPin.js +47 -0
- package/dist/install/wizard-plan.js +26 -4
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +3 -2
- package/dist/mcp/registry-manifest.json +6 -5
- package/dist/mcp/server.json +3 -3
- package/dist/mcp/server.mjs +9814 -5333
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +7 -12
- package/dist/scripts/_lib/asset_render_record.js +219 -0
- package/dist/scripts/_lib/claude_builtin_names.js +9 -4
- package/dist/scripts/_lib/claude_settings_hooks.js +102 -34
- package/dist/scripts/_lib/egress_rules.js +766 -0
- package/dist/scripts/_lib/environment_detector.js +24 -33
- package/dist/scripts/_lib/global_deploy_inventory.js +146 -9
- package/dist/scripts/_lib/guidelines_lane.js +10 -1
- package/dist/scripts/_lib/identifier_redaction.js +24 -0
- package/dist/scripts/_lib/installed_layer.js +17 -0
- package/dist/scripts/_lib/installed_layer_normalise.js +72 -0
- package/dist/scripts/_lib/lean_projection_mode.js +34 -152
- package/dist/scripts/_lib/project_tree_form.js +118 -0
- package/dist/scripts/_lib/scan_scope.js +105 -0
- package/dist/scripts/_lib/scoped_projection.js +133 -3
- package/dist/scripts/_lib/settings_removed_keys.js +29 -0
- package/dist/scripts/_lib/settings_renamed_keys.js +17 -5
- package/dist/scripts/_lib/subagent_native_fields.js +35 -0
- package/dist/scripts/_lib/svg_dom.js +284 -0
- package/dist/scripts/_lib/svg_filled_counter.js +285 -0
- package/dist/scripts/_lib/svg_geometry.js +477 -0
- package/dist/scripts/_lib/svg_motion.js +179 -0
- package/dist/scripts/_lib/svg_rules.js +1339 -0
- package/dist/scripts/_lib/svg_urls.js +67 -0
- package/dist/scripts/_lib/ui_surface.js +19 -0
- package/dist/scripts/_lib/verification_command.js +364 -0
- package/dist/scripts/_lib/workspace_secrets.js +229 -0
- package/dist/scripts/ai_council/seat_policy.js +27 -0
- package/dist/scripts/ai_council/transport_resolver.js +9 -10
- package/dist/scripts/condense.js +25 -29
- package/dist/scripts/lint_svg_asset.js +324 -0
- package/dist/server/io/substituteTemplate.js +2 -2
- package/dist/server/io/yamlIO.js +2 -2
- package/dist/server/routes/install.js +5 -1
- package/dist/server/routes/settings.js +2 -2
- package/dist/server/routes/wizard.js +1 -1
- package/dist/server/schemas/settings.js +22 -16
- package/dist/server/serverInfo.js +1 -1
- package/dist/shared/brandTokenDocument.js +47 -0
- package/dist/shared/brandTokenPaths.js +43 -0
- package/dist/shared/settingsCarveOut.js +0 -7
- package/dist/shared/skillRanking.js +103 -5
- package/dist/shared/userMd/formAdapter.js +16 -0
- package/dist/shared/userMd/schema.js +17 -0
- package/dist/ui/assets/index-w70Ado09.js +23 -0
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +89 -2
- package/docs/THIRD-PARTY-NOTICES.md +27 -0
- package/docs/contracts/settings-classes.md +27 -9
- package/docs/guidelines/agent-infra/api-cost-levers.md +4 -3
- package/docs/guidelines/agent-infra/model-recommendation.md +11 -5
- package/docs/guidelines/agent-infra/rule-body-migration-inventory.md +1 -1
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +47 -24
- package/docs/guidelines/design-antipatterns.md +6 -1
- package/docs/guidelines/design-asset-discipline.md +17 -0
- package/docs/guidelines/design-fidelity-routing.md +1 -0
- package/docs/guidelines/php/api-design.md +10 -1
- package/llms.txt +12 -10
- package/package.json +15 -5
- package/src/agent-src/scripts/dashboard_mode.ts +4 -1
- package/src/agent-src/scripts/roadmap_age.ts +175 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +10 -2
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/check_memory.ts +2 -2
- package/src/agent-src/templates/scripts/historical-bug-patterns.example.yml +13 -1
- package/src/agent-src/templates/scripts/work_engine/cli.ts +17 -0
- package/src/agent-src/templates/scripts/work_engine/cli_args.ts +10 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +22 -13
- package/src/agent-src/templates/scripts/work_engine/dispatcher.ts +18 -4
- package/src/agent-src/templates/scripts/work_engine/procedure/checks.ts +283 -0
- package/src/agent-src/templates/scripts/work_engine/procedure/run.ts +432 -0
- package/src/agent-src/templates/scripts/work_engine/procedure/sidecar.ts +185 -0
- package/src/agent-src/templates/scripts/work_engine/state.ts +3 -0
- package/src/config/agent-settings.template.yml +120 -57
- package/src/config/agents-paths.yml +13 -7
- package/src/config/ci-local-parity.yml +44 -0
- package/src/config/continuity-surface.json +51 -2
- package/src/config/depth-audit-samples.json +5 -0
- package/src/config/discovery/command-verbs.yml +1 -0
- package/src/config/dispatch-economy-metrics.json +1 -0
- package/src/config/egress-mutations/class-precedence-swapped.json +7 -0
- package/src/config/egress-mutations/credential-token-restores.json +7 -0
- package/src/config/egress-mutations/iban-checksum-disabled.json +7 -0
- package/src/config/egress-mutations/raw-value-in-the-count-record.json +7 -0
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +149 -3
- package/src/config/gate-reachability-exemptions.json +3 -5
- package/src/config/gate-violation-baselines.json +29 -25
- package/src/config/gitignore-block.txt +6 -3
- package/src/config/hook-bundle-budget.json +34 -3
- package/src/config/hook-carrier-probes.json +30 -0
- package/src/config/hook-latency-budget.json +4 -2
- package/src/config/host-injection-effect.json +8 -1
- package/src/config/host-skill-frontmatter-keys.json +56 -0
- package/src/config/layer-form-brakes.json +4 -0
- package/src/config/layer-form-comparison-corpus.json +42 -0
- package/src/config/loop-surfaces.yaml +28 -47
- package/src/config/memory-twin-verdicts.yml +9 -1
- package/src/config/metric-registry.yml +40 -3
- package/src/config/pack-size-budget.json +15 -0
- package/src/config/procedure-core-budget.json +21 -0
- package/src/config/profiles/minimal.ini +1 -1
- package/src/config/project-tree-form.json +24 -0
- package/src/config/reach-channels.yml +3 -3
- package/src/config/reach-prescriptions-intake.yml +1 -1
- package/src/config/roadmap-step-size-baseline.json +118 -0
- package/src/config/routing-coverage-seed.json +100 -2
- package/src/config/skill-body-budget.json +686 -0
- package/src/config/skill-fork-pilot.json +17 -0
- package/src/config/skill-lifecycle-probes-codex.json +57 -0
- package/src/config/skill-lifecycle-probes.json +57 -0
- package/src/config/skill-output-shape.json +316 -0
- package/src/config/step-depth-table.json +58 -0
- package/src/config/turnaround-budget.json +90 -0
- package/src/install/conflict.ts +38 -6
- package/src/install/conflictTracker.ts +126 -8
- package/src/install/detect.ts +3 -3
- package/src/install/hostPermissionsAdapter.ts +136 -0
- package/src/install/installThinLayer.ts +6 -1
- package/src/install/manifestFiles.ts +24 -0
- package/src/install/noGoDenyRows.ts +368 -0
- package/src/install/noGoRules.ts +438 -0
- package/src/install/ownershipLedger.ts +180 -0
- package/src/install/plan.ts +1 -1
- package/src/install/preflight.ts +42 -10
- package/src/install/preserve.ts +94 -12
- package/src/install/recordedOwnership.ts +121 -3
- package/src/install/rule_scope.ts +20 -3
- package/src/install/stagedRuntime.ts +528 -0
- package/src/install/toolsArg.ts +16 -0
- package/src/install/types.ts +23 -2
- package/src/install/userPin.ts +54 -0
- package/src/install/wizard-plan.ts +25 -4
- package/src/scripts/_cli/_doctor_emit.ts +24 -0
- package/src/scripts/_cli/cmd_brand_status.ts +223 -12
- package/src/scripts/_cli/cmd_ci_settle.ts +32 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -44
- package/src/scripts/_cli/cmd_route_explain.ts +176 -2
- package/src/scripts/_cli/cmd_uninstall.ts +270 -26
- package/src/scripts/_cli/cmd_update.ts +34 -1
- package/src/scripts/_cli/cmd_upgrade.ts +38 -2
- package/src/scripts/_cli/detection_report.ts +7 -0
- package/src/scripts/_cli/doctor_execution.ts +1 -2
- package/src/scripts/_cli/doctor_install_mode.ts +39 -0
- package/src/scripts/_cli/doctor_network_posture.ts +3 -3
- package/src/scripts/_cli/doctor_ownership_ledger.ts +126 -0
- package/src/scripts/_cli/doctor_update_verdict.ts +104 -0
- package/src/scripts/_cli/explain_last/scrubber.ts +9 -21
- package/src/scripts/_cli/upgrade_unattended.ts +548 -0
- package/src/scripts/_dispatch.bash +42 -9
- package/src/scripts/_lib/activation_ladder.ts +1 -1
- package/src/scripts/_lib/advisory_inventory.ts +405 -0
- package/src/scripts/_lib/advisory_notice.ts +270 -0
- package/src/scripts/_lib/advisory_sources.ts +752 -0
- package/src/scripts/_lib/advisory_verdicts.ts +363 -0
- package/src/scripts/_lib/agent_artifact_location.ts +177 -0
- package/src/scripts/_lib/agent_settings.ts +7 -12
- package/src/scripts/_lib/arrival_record.ts +217 -0
- package/src/scripts/_lib/asset_render_record.ts +247 -0
- package/src/scripts/_lib/billing_grant.ts +4 -2
- package/src/scripts/_lib/brand_voice_slot.ts +258 -0
- package/src/scripts/_lib/canary_status.ts +24 -0
- package/src/scripts/_lib/cc_transcript.ts +276 -0
- package/src/scripts/_lib/changelog_eras.ts +83 -0
- package/src/scripts/_lib/claim_phrases.ts +71 -0
- package/src/scripts/_lib/classify_update.ts +171 -0
- package/src/scripts/_lib/claude_builtin_names.ts +9 -4
- package/src/scripts/_lib/claude_hook_scope.ts +195 -0
- package/src/scripts/_lib/claude_settings_hooks.ts +118 -34
- package/src/scripts/_lib/codex_resident_set.ts +460 -0
- package/src/scripts/_lib/codex_skill_finder.ts +225 -0
- package/src/scripts/_lib/confusables.ts +19 -0
- package/src/scripts/_lib/consumer_impact.ts +199 -0
- package/src/scripts/_lib/content_class.ts +127 -0
- package/src/scripts/_lib/counted_probe.ts +68 -1
- package/src/scripts/_lib/credential_deny_rows.ts +151 -0
- package/src/scripts/_lib/credential_files.ts +367 -0
- package/src/scripts/_lib/delivery_arm_experiment.ts +2 -2
- package/src/scripts/_lib/depth_flip.ts +141 -0
- package/src/scripts/_lib/design_lock.ts +117 -0
- package/src/scripts/_lib/design_sync_ledger.ts +142 -0
- package/src/scripts/_lib/design_sync_plan.ts +177 -0
- package/src/scripts/_lib/design_sync_reconcile.ts +159 -0
- package/src/scripts/_lib/design_sync_verify.ts +99 -0
- package/src/scripts/_lib/design_system_claude_design.ts +323 -0
- package/src/scripts/_lib/design_system_import.ts +84 -6
- package/src/scripts/_lib/dispatch_import_closure.ts +42 -11
- package/src/scripts/_lib/egress_credential_env.ts +35 -0
- package/src/scripts/_lib/egress_engine.ts +22 -0
- package/src/scripts/_lib/egress_known_values.ts +223 -0
- package/src/scripts/_lib/egress_normalize.ts +67 -0
- package/src/scripts/_lib/egress_prefixes.ts +42 -0
- package/src/scripts/_lib/egress_rules.ts +896 -0
- package/src/scripts/_lib/egress_rules_linearity.ts +56 -0
- package/src/scripts/_lib/egress_sender_scan.ts +290 -0
- package/src/scripts/_lib/egress_session_table.ts +510 -0
- package/src/scripts/_lib/egress_text.ts +63 -0
- package/src/scripts/_lib/egress_token.ts +252 -0
- package/src/scripts/_lib/empty_cycles.ts +1 -1
- package/src/scripts/_lib/environment_detector.ts +45 -30
- package/src/scripts/_lib/exemption_shape.ts +75 -1
- package/src/scripts/_lib/floor_posture.ts +185 -0
- package/src/scripts/_lib/forge_protection.ts +140 -2
- package/src/scripts/_lib/global_deploy_inventory.ts +159 -6
- package/src/scripts/_lib/guidelines_lane.ts +12 -1
- package/src/scripts/_lib/hand_kinds.ts +65 -0
- package/src/scripts/_lib/headless_invocation.ts +3 -3
- package/src/scripts/_lib/host_capability.ts +34 -2
- package/src/scripts/_lib/host_env_write.ts +39 -18
- package/src/scripts/_lib/host_listing_model.ts +14 -7
- package/src/scripts/_lib/identifier_redaction.ts +26 -0
- package/src/scripts/_lib/impact_bump.ts +70 -0
- package/src/scripts/_lib/install_reach_checks.ts +53 -1
- package/src/scripts/_lib/installed_layer.ts +31 -0
- package/src/scripts/_lib/installed_layer_normalise.ts +75 -0
- package/src/scripts/_lib/instructions_loaded_classify.ts +75 -0
- package/src/scripts/_lib/instructions_loaded_event.ts +53 -0
- package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
- package/src/scripts/_lib/layer_form_corpus.ts +165 -0
- package/src/scripts/_lib/layer_form_decision.ts +248 -0
- package/src/scripts/_lib/layer_form_evidence.ts +112 -0
- package/src/scripts/_lib/lean_projection_mode.ts +32 -161
- package/src/scripts/_lib/llm_proposer_transport.ts +1 -0
- package/src/scripts/_lib/loop_guards.ts +8 -120
- package/src/scripts/_lib/major_surface.ts +207 -0
- package/src/scripts/_lib/mcp_bridge.ts +30 -69
- package/src/scripts/_lib/merge_clearance_record.ts +384 -0
- package/src/scripts/_lib/neighbour_census.ts +18 -1
- package/src/scripts/_lib/orchestration_record.ts +61 -0
- package/src/scripts/_lib/outcome_vocabularies.ts +15 -23
- package/src/scripts/_lib/pin_advice.ts +49 -0
- package/src/scripts/_lib/platform_anchor.ts +222 -0
- package/src/scripts/_lib/procedure_checks.ts +5 -0
- package/src/scripts/_lib/project_tree_form.ts +134 -0
- package/src/scripts/_lib/projection_key_migration.ts +122 -0
- package/src/scripts/_lib/prompt_shape.ts +13 -2
- package/src/scripts/_lib/provenance_verify.ts +272 -0
- package/src/scripts/_lib/quota_parked.ts +27 -1
- package/src/scripts/_lib/ratification_artifact.ts +64 -1
- package/src/scripts/_lib/ratification_subject.ts +508 -46
- package/src/scripts/_lib/release_findings_ingest.ts +52 -5
- package/src/scripts/_lib/release_highlights.ts +72 -2
- package/src/scripts/_lib/release_settings_surface.ts +392 -0
- package/src/scripts/_lib/review_round.ts +134 -0
- package/src/scripts/_lib/roadmap_checkboxes.ts +1 -1
- package/src/scripts/_lib/roadmap_slug_lock.ts +254 -0
- package/src/scripts/_lib/roadmap_step_size.ts +75 -0
- package/src/scripts/_lib/run_checkpoint.ts +60 -3
- package/src/scripts/_lib/runtime_wiring_checks.ts +15 -1
- package/src/scripts/_lib/scope_guard.sh +64 -5
- package/src/scripts/_lib/scoped_projection.ts +136 -3
- package/src/scripts/_lib/secret_detector.ts +24 -103
- package/src/scripts/_lib/security_fix.ts +429 -0
- package/src/scripts/_lib/security_fix_context.ts +133 -0
- package/src/scripts/_lib/self_repair.ts +69 -39
- package/src/scripts/_lib/self_repair_outgoing.ts +209 -0
- package/src/scripts/_lib/self_repair_payload.ts +86 -0
- package/src/scripts/_lib/session_eol.ts +3 -0
- package/src/scripts/_lib/session_pr_watch.ts +207 -0
- package/src/scripts/_lib/session_register.ts +51 -1
- package/src/scripts/_lib/session_tag.ts +51 -0
- package/src/scripts/_lib/settings_removed_keys.ts +30 -0
- package/src/scripts/_lib/settings_renamed_keys.ts +19 -5
- package/src/scripts/_lib/skill_catalogue.ts +66 -25
- package/src/scripts/_lib/skill_fork_pilot.ts +121 -0
- package/src/scripts/_lib/skill_leases.ts +203 -0
- package/src/scripts/_lib/skill_listing_overrides.ts +294 -0
- package/src/scripts/_lib/skill_materialisation.ts +388 -0
- package/src/scripts/_lib/skill_materialisation_gate.ts +210 -0
- package/src/scripts/_lib/skill_materialisation_lock.ts +149 -0
- package/src/scripts/_lib/skill_materialisation_triggers.ts +96 -0
- package/src/scripts/_lib/skill_origin.ts +21 -1
- package/src/scripts/_lib/skill_reach.ts +342 -0
- package/src/scripts/_lib/source_shape.ts +7 -2
- package/src/scripts/_lib/sqlite_guard.ts +1 -1
- package/src/scripts/_lib/step_anatomy.ts +330 -0
- package/src/scripts/_lib/subagent_capsule.ts +8 -2
- package/src/scripts/_lib/subagent_native_fields.ts +30 -0
- package/src/scripts/_lib/subagent_spawn.ts +36 -0
- package/src/scripts/_lib/subagent_steering.ts +367 -0
- package/src/scripts/_lib/svg_dom.ts +318 -0
- package/src/scripts/_lib/svg_filled_counter.ts +287 -0
- package/src/scripts/_lib/svg_geometry.ts +480 -0
- package/src/scripts/_lib/svg_motion.ts +208 -0
- package/src/scripts/_lib/svg_rules.ts +1455 -0
- package/src/scripts/_lib/svg_urls.ts +72 -0
- package/src/scripts/_lib/test_delta.ts +89 -6
- package/src/scripts/_lib/tier_downshift_verdict.ts +222 -0
- package/src/scripts/_lib/tool_result_census.ts +62 -0
- package/src/scripts/_lib/trigger_routers.ts +1 -0
- package/src/scripts/_lib/turnaround_throughput.ts +378 -0
- package/src/scripts/_lib/ui_surface.ts +22 -0
- package/src/scripts/_lib/unattended_gates.ts +100 -0
- package/src/scripts/_lib/undeployed_fixes.ts +34 -0
- package/src/scripts/_lib/update_check.ts +143 -12
- package/src/scripts/_lib/update_invite.ts +116 -0
- package/src/scripts/_lib/update_notice.ts +259 -0
- package/src/scripts/_lib/verification_command.ts +59 -0
- package/src/scripts/_lib/verify_clause.ts +31 -19
- package/src/scripts/_lib/version_order.ts +146 -0
- package/src/scripts/_lib/worker_reuse.ts +191 -0
- package/src/scripts/_lib/workspace_secrets.ts +273 -0
- package/src/scripts/_lib/worktree_git.ts +67 -0
- package/src/scripts/_lib/worktree_ignored.ts +116 -0
- package/src/scripts/adoption_status.ts +330 -3
- package/src/scripts/adr_cite_check.ts +93 -0
- package/src/scripts/advisories.ts +803 -0
- package/src/scripts/ai-image/adapters/flux.sh +1 -0
- package/src/scripts/ai-image/adapters/gemini-image.sh +1 -0
- package/src/scripts/ai-image/adapters/ideogram.sh +1 -0
- package/src/scripts/ai-image/adapters/recraft.sh +1 -0
- package/src/scripts/ai-video/adapters/comfyui.sh +1 -0
- package/src/scripts/ai-video/adapters/fal.sh +1 -0
- package/src/scripts/ai-video/adapters/gemini-veo.sh +1 -0
- package/src/scripts/ai-video/adapters/higgsfield.sh +1 -0
- package/src/scripts/ai-video/adapters/kling.sh +1 -0
- package/src/scripts/ai-video/adapters/musetalk.sh +1 -0
- package/src/scripts/ai-video/adapters/openai-images.sh +1 -0
- package/src/scripts/ai-video/adapters/replicate.sh +1 -0
- package/src/scripts/ai-video/adapters/sora.sh +1 -0
- package/src/scripts/ai-video/adapters/syncso.sh +1 -0
- package/src/scripts/ai-video/stitch.sh +115 -2
- package/src/scripts/ai_council/airgap.ts +1 -0
- package/src/scripts/ai_council/api_transport.ts +27 -4
- package/src/scripts/ai_council/budget_guard.ts +300 -11
- package/src/scripts/ai_council/bundler.ts +20 -29
- package/src/scripts/ai_council/chairman.ts +17 -2
- package/src/scripts/ai_council/cli_agency_bounds.ts +158 -0
- package/src/scripts/ai_council/cli_launch_env.ts +54 -0
- package/src/scripts/ai_council/cli_least_agency_canary.ts +18 -2
- package/src/scripts/ai_council/clients.ts +55 -73
- package/src/scripts/ai_council/config.ts +16 -22
- package/src/scripts/ai_council/council_egress.ts +167 -0
- package/src/scripts/ai_council/exposure_ledger.ts +117 -0
- package/src/scripts/ai_council/free_hand_shadow.ts +276 -0
- package/src/scripts/ai_council/free_route.ts +216 -0
- package/src/scripts/ai_council/free_route_catalog.ts +173 -0
- package/src/scripts/ai_council/free_route_client.ts +95 -0
- package/src/scripts/ai_council/free_rung.ts +61 -0
- package/src/scripts/ai_council/hand_payload.ts +230 -0
- package/src/scripts/ai_council/hand_schemas.ts +123 -0
- package/src/scripts/ai_council/jury_aggregate.ts +155 -1
- package/src/scripts/ai_council/kind_flip.ts +221 -0
- package/src/scripts/ai_council/kind_flip_state.ts +19 -0
- package/src/scripts/ai_council/learn_low_impact_preview.ts +50 -22
- package/src/scripts/ai_council/modification_review.ts +98 -5
- package/src/scripts/ai_council/necessity.ts +7 -0
- package/src/scripts/ai_council/orchestrator.ts +16 -16
- package/src/scripts/ai_council/pricing.ts +10 -0
- package/src/scripts/ai_council/redact_low_impact_entry.ts +5 -2
- package/src/scripts/ai_council/response_render.ts +27 -4
- package/src/scripts/ai_council/round_reservations.ts +119 -0
- package/src/scripts/ai_council/route_chooser.ts +161 -0
- package/src/scripts/ai_council/route_liveness.ts +152 -0
- package/src/scripts/ai_council/route_member.ts +52 -0
- package/src/scripts/ai_council/seat_policy.ts +40 -0
- package/src/scripts/ai_council/seat_resume.ts +40 -0
- package/src/scripts/ai_council/shadow_dispatch.ts +13 -3
- package/src/scripts/ai_council/spend_gate.ts +18 -2
- package/src/scripts/ai_council/status_surface.ts +37 -0
- package/src/scripts/ai_council/transport_resolver.ts +15 -18
- package/src/scripts/analysis_analysts.ts +226 -0
- package/src/scripts/analysis_anchors.ts +140 -0
- package/src/scripts/analysis_and_optimize.ts +44 -0
- package/src/scripts/analysis_emit.ts +150 -0
- package/src/scripts/analysis_exchange.ts +186 -0
- package/src/scripts/analysis_gate.ts +158 -0
- package/src/scripts/analysis_inbox_final.ts +173 -0
- package/src/scripts/analysis_ledger.ts +119 -0
- package/src/scripts/analysis_pr_optimize.ts +219 -0
- package/src/scripts/analysis_pr_review.ts +240 -0
- package/src/scripts/analysis_pr_target.ts +121 -0
- package/src/scripts/analysis_prompts.ts +130 -0
- package/src/scripts/analysis_publish.ts +358 -0
- package/src/scripts/analysis_questions.ts +78 -0
- package/src/scripts/analysis_run.ts +248 -0
- package/src/scripts/analysis_run_record.ts +210 -0
- package/src/scripts/analysis_target.ts +343 -0
- package/src/scripts/analysis_validate.ts +161 -0
- package/src/scripts/anchor_eval_falsify.ts +1 -1
- package/src/scripts/arrival_report.ts +115 -0
- package/src/scripts/ask_transport.ts +284 -35
- package/src/scripts/backfill_model_tier.ts +4 -5
- package/src/scripts/before_complete_hook.ts +48 -2
- package/src/scripts/bench_hook_latency.ts +3 -3
- package/src/scripts/bench_procedure_cursor.ts +440 -0
- package/src/scripts/bootstrap.sh +3 -3
- package/src/scripts/build_exit_code_register.ts +440 -0
- package/src/scripts/build_proof.ts +23 -1
- package/src/scripts/cache_realization_report.ts +155 -14
- package/src/scripts/canary_liveness.ts +117 -0
- package/src/scripts/chat_history.ts +12 -15
- package/src/scripts/check_account_surface.ts +318 -0
- package/src/scripts/check_agent_artifact_location.ts +17 -160
- package/src/scripts/check_bundle_path_leakage.ts +6 -0
- package/src/scripts/check_ci_local_parity.ts +21 -13
- package/src/scripts/check_claims.ts +77 -2
- package/src/scripts/check_completion_review.ts +34 -1
- package/src/scripts/check_concern_admissions.ts +41 -5
- package/src/scripts/check_consumer_scope_flip.ts +1 -1
- package/src/scripts/check_context_paths.ts +2 -0
- package/src/scripts/check_council_layout.ts +9 -0
- package/src/scripts/check_credential_spelling.ts +267 -0
- package/src/scripts/check_egress_mutations.ts +239 -0
- package/src/scripts/check_enforcement_coverage.ts +16 -3
- package/src/scripts/check_estate_count.ts +16 -1
- package/src/scripts/check_finding_dispositions.ts +147 -0
- package/src/scripts/check_gate_coverage.ts +123 -21
- package/src/scripts/check_gate_reachability.ts +16 -2
- package/src/scripts/check_generator_sync.ts +46 -0
- package/src/scripts/check_hook_bundle_composition.ts +139 -1
- package/src/scripts/check_host_docs_digest.ts +142 -5
- package/src/scripts/check_kernel_edit_ratified.ts +301 -76
- package/src/scripts/check_kernel_rule_bundle.ts +14 -10
- package/src/scripts/check_knowledge_cards.ts +83 -3
- package/src/scripts/check_memory.ts +13 -3
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_permission_deny_syntax.ts +247 -0
- package/src/scripts/check_platform_anchor.ts +243 -0
- package/src/scripts/check_proposal.ts +183 -1
- package/src/scripts/check_reach_channels.ts +5 -3
- package/src/scripts/check_references.ts +5 -2
- package/src/scripts/check_release_manifest_content.ts +33 -0
- package/src/scripts/check_release_pr_shape.ts +5 -0
- package/src/scripts/check_rule_invariants.ts +9 -1
- package/src/scripts/check_skill_body_budget.ts +343 -0
- package/src/scripts/check_skill_requires.ts +137 -1
- package/src/scripts/check_step_receipts.ts +246 -0
- package/src/scripts/check_structural_breaking.ts +7 -1
- package/src/scripts/check_suppression_hygiene.ts +8 -0
- package/src/scripts/check_test_weakening.ts +14 -0
- package/src/scripts/check_token_quality_golden.ts +5 -1
- package/src/scripts/check_update_banner.ts +50 -3
- package/src/scripts/check_verify_expectation_delta.ts +2 -1
- package/src/scripts/check_voice_lexicon.ts +531 -0
- package/src/scripts/ci_os_attribution.ts +327 -0
- package/src/scripts/ci_platform_scope.ts +69 -0
- package/src/scripts/ci_settle.ts +4 -1
- package/src/scripts/ci_status.ts +0 -1
- package/src/scripts/ci_time_to_green.ts +748 -0
- package/src/scripts/classify_merge_risk.ts +407 -19
- package/src/scripts/code_graph/sqlite_store.ts +1 -1
- package/src/scripts/compile_trigger_evals.ts +353 -0
- package/src/scripts/condense.ts +25 -31
- package/src/scripts/consumer_matrix.ts +61 -3
- package/src/scripts/council_availability_hook.ts +12 -4
- package/src/scripts/council_cli.ts +48 -38
- package/src/scripts/cross_repo_retrieve.ts +9 -72
- package/src/scripts/design_lock.ts +106 -0
- package/src/scripts/design_slop_rules.ts +30 -0
- package/src/scripts/design_sync.ts +264 -0
- package/src/scripts/design_system_import.ts +30 -13
- package/src/scripts/dispatch_economy_report.ts +46 -1
- package/src/scripts/dispatch_r2_reviewer.ts +41 -5
- package/src/scripts/egress_canary.ts +166 -0
- package/src/scripts/egress_sender_census.ts +101 -0
- package/src/scripts/external_sources_denylist.json +94 -12
- package/src/scripts/generate_catalog.ts +6 -2
- package/src/scripts/generate_owned_digest.ts +163 -0
- package/src/scripts/generate_reference_toc.ts +143 -0
- package/src/scripts/generate_subagent_floor.ts +11 -1
- package/src/scripts/handoff_context_hook.ts +34 -0
- package/src/scripts/hook_carrier_census.ts +263 -0
- package/src/scripts/hook_chunks.d.mts +12 -0
- package/src/scripts/hook_chunks.mjs +114 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +65 -42
- package/src/scripts/hooks/block_config_weakening.ts +127 -3
- package/src/scripts/hooks/block_credential_reads.ts +165 -0
- package/src/scripts/hooks/block_no_verify.ts +47 -23
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +54 -8
- package/src/scripts/hooks/category_a.ts +202 -25
- package/src/scripts/hooks/concern_failure_policy.ts +6 -6
- package/src/scripts/hooks/concern_registry.ts +31 -6
- package/src/scripts/hooks/concern_registry_types.ts +11 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +105 -15
- package/src/scripts/hooks/design_pass_hook.ts +199 -13
- package/src/scripts/hooks/dispatch_hook.ts +13 -12
- package/src/scripts/hooks/egress_engine_loader.ts +125 -0
- package/src/scripts/hooks/egress_stage.ts +440 -0
- package/src/scripts/hooks/hook_stdin.ts +29 -4
- package/src/scripts/hooks/host_docs_pages.ts +194 -0
- package/src/scripts/hooks/host_docs_pages.yaml +75 -0
- package/src/scripts/hooks/host_lowering.json +1 -1
- package/src/scripts/hooks/host_lowering.yaml +22 -21
- package/src/scripts/hooks/host_rate_marker_hook.ts +73 -0
- package/src/scripts/hooks/instructions_observer_hook.ts +170 -0
- package/src/scripts/hooks/interruption_ledger_hook.ts +1 -1
- package/src/scripts/hooks/lazy_concern.ts +148 -0
- package/src/scripts/hooks/orchestration_record_hook.ts +80 -2
- package/src/scripts/hooks/payload_stub.ts +16 -6
- package/src/scripts/hooks/permission_gate.ts +7 -7
- package/src/scripts/hooks/push_settle_hook.ts +32 -3
- package/src/scripts/hooks/replay_hook.ts +43 -0
- package/src/scripts/hooks/reread_guard_hook.ts +87 -10
- package/src/scripts/hooks/rtk_wrap_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +8 -1
- package/src/scripts/hooks/session_eol_hook.ts +48 -1
- package/src/scripts/hooks/source_first_gate_hook.ts +6 -8
- package/src/scripts/hooks/spawn_guard_shadow_hook.ts +203 -10
- package/src/scripts/hooks/state_io.ts +2 -2
- package/src/scripts/hooks/svg_obligation.ts +553 -0
- package/src/scripts/hooks/svg_rules_loader.ts +133 -0
- package/src/scripts/hooks/tool_result_bytes_hook.ts +14 -5
- package/src/scripts/hooks/turn_end_gate_hook.ts +5 -3
- package/src/scripts/hooks/ui_route_nudge_hook.ts +2 -12
- package/src/scripts/hooks_doctor.ts +31 -0
- package/src/scripts/hooks_status.ts +58 -3
- package/src/scripts/inbox_source_census.ts +74 -13
- package/src/scripts/install +25 -3
- package/src/scripts/install.ts +60 -91
- package/src/scripts/interruption_report.ts +11 -1
- package/src/scripts/layer_baseline_report.ts +267 -0
- package/src/scripts/learning_sidecar.ts +1 -1
- package/src/scripts/lint_agents_layout.ts +3 -0
- package/src/scripts/lint_blocker_citations.ts +104 -0
- package/src/scripts/lint_breaking_changes_index.ts +40 -7
- package/src/scripts/lint_consolidation_lineage.ts +150 -19
- package/src/scripts/lint_consumer_internal_refs.ts +90 -42
- package/src/scripts/lint_context_spine_usage.ts +21 -0
- package/src/scripts/lint_design_antipattern_parity.ts +39 -7
- package/src/scripts/lint_design_quality.ts +60 -12
- package/src/scripts/lint_evidence_artifacts.ts +31 -0
- package/src/scripts/lint_example_fences.ts +11 -2
- package/src/scripts/lint_ghostwriter_source.ts +42 -10
- package/src/scripts/lint_hook_manifest.ts +94 -0
- package/src/scripts/lint_marketplace_install_completeness.ts +4 -0
- package/src/scripts/lint_mcp_config_security.ts +9 -11
- package/src/scripts/lint_motion_authority_drift.ts +27 -0
- package/src/scripts/lint_plan_risk_register.ts +28 -1
- package/src/scripts/lint_positioning.ts +4 -4
- package/src/scripts/lint_provenance.ts +1 -0
- package/src/scripts/lint_roadmap_blockers.ts +65 -4
- package/src/scripts/lint_roadmap_complexity.ts +98 -0
- package/src/scripts/lint_skill_link_reach.ts +251 -9
- package/src/scripts/lint_skill_procedures.ts +252 -0
- package/src/scripts/lint_skill_scripts_readonly.ts +12 -1
- package/src/scripts/lint_subagent_determinism.ts +14 -1
- package/src/scripts/lint_svg_asset.ts +365 -0
- package/src/scripts/lint_ticked_unmet_criteria.ts +300 -21
- package/src/scripts/mcp_registry_submit.sh +2 -2
- package/src/scripts/mcp_server/consumer_tool_catalog.json +4 -4
- package/src/scripts/mcp_server/suggest_skill.ts +89 -4
- package/src/scripts/mcp_server/tools.ts +2 -33
- package/src/scripts/measure_skill_ranker_baseline.ts +203 -5
- package/src/scripts/measure_turn_end_gate.ts +61 -1
- package/src/scripts/merge_clearance.ts +225 -0
- package/src/scripts/migrate_command_suggestions.ts +1 -1
- package/src/scripts/network_sources.ts +236 -0
- package/src/scripts/no_go_deny_rows.ts +225 -0
- package/src/scripts/orchestration_record.ts +15 -2
- package/src/scripts/plan_test_shards.ts +103 -0
- package/src/scripts/pr_url_reminder_hook.ts +10 -0
- package/src/scripts/print_required_checks.ts +5 -5
- package/src/scripts/probe_depth_shadow.ts +406 -0
- package/src/scripts/probe_turnaround.ts +342 -10
- package/src/scripts/ratification_subject.ts +176 -0
- package/src/scripts/rdp_gate_classify.ts +1 -0
- package/src/scripts/rdp_quality_eval.ts +1 -0
- package/src/scripts/release.ts +26 -55
- package/src/scripts/release_drill.ts +52 -23
- package/src/scripts/release_env.ts +37 -0
- package/src/scripts/release_publication.ts +11 -1
- package/src/scripts/report_consumer_gate_reach.ts +233 -0
- package/src/scripts/report_merge_gate_load.ts +295 -0
- package/src/scripts/report_project_contract.ts +123 -0
- package/src/scripts/report_reducible_classes.ts +342 -0
- package/src/scripts/report_required_checks_drift.ts +5 -3
- package/src/scripts/report_skill_host_census.ts +199 -0
- package/src/scripts/report_standing_payload_by_host.ts +7 -7
- package/src/scripts/retro.ts +758 -0
- package/src/scripts/retro_facts.ts +575 -0
- package/src/scripts/retro_queue.ts +739 -0
- package/src/scripts/retro_session_facts.ts +218 -0
- package/src/scripts/retro_sweep.ts +493 -0
- package/src/scripts/retro_triage.ts +126 -0
- package/src/scripts/roadmap_context.ts +2 -2
- package/src/scripts/roadmap_drain_queue.ts +601 -0
- package/src/scripts/run_supervise.ts +24 -2
- package/src/scripts/schemas/agent-settings.schema.json +0 -16
- package/src/scripts/schemas/command.schema.json +3 -3
- package/src/scripts/schemas/review-findings.schema.json +8 -0
- package/src/scripts/schemas/skill.schema.json +7 -6
- package/src/scripts/schemas/subagent.schema.json +33 -2
- package/src/scripts/score_skill_selection.ts +5 -2
- package/src/scripts/second_brain_retrieval.ts +1 -0
- package/src/scripts/second_brain_run.ts +1 -0
- package/src/scripts/self_repair_cli.ts +563 -87
- package/src/scripts/self_review_gate.ts +59 -4
- package/src/scripts/session_register_hook.ts +91 -4
- package/src/scripts/sessions_cli.ts +100 -5
- package/src/scripts/skill_collision_clusters.ts +1 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +31 -2
- package/src/scripts/skill_trigger_eval.ts +4 -2
- package/src/scripts/source_adapters.ts +183 -0
- package/src/scripts/step_receipt.ts +100 -0
- package/src/scripts/sync_pr_branch.ts +4 -0
- package/src/scripts/test_council_qualification.ts +1 -1
- package/src/scripts/trigger_eval_grandfather.json +3 -49
- package/src/scripts/trigger_eval_rotation.ts +31 -3
- package/src/scripts/ui_conformance_probe.ts +405 -1
- package/src/scripts/update_counts.ts +230 -11
- package/src/scripts/update_invite_hook.ts +245 -0
- package/src/scripts/update_notice_hook.ts +298 -0
- package/src/scripts/validate_frontmatter.ts +85 -0
- package/src/scripts/worker_reuse_shadow_report.ts +121 -0
- package/src/scripts/worktree_cleanup_check.ts +915 -121
- package/src/server/io/yamlIO.ts +2 -2
- package/src/server/schemas/settings.ts +37 -23
- package/src/shared/brandTokenDocument.ts +46 -0
- package/src/shared/brandTokenPaths.ts +43 -0
- package/src/shared/settingsCarveOut.ts +0 -8
- package/src/shared/skillRanking.ts +106 -5
- package/src/shared/userMd/formAdapter.ts +15 -1
- package/src/shared/userMd/schema.ts +22 -0
- package/src/templates/agent-user.md +4 -0
- package/src/templates/agent-user.yml +4 -0
- package/dist/cli-delegate/chunk-523HCFYO.js +0 -90
- package/dist/cli-delegate/chunk-AL3RZ22D.js +0 -74
- package/dist/cli-delegate/chunk-KB5FZ655.js +0 -208
- package/dist/cli-delegate/chunk-MDPPKQCQ.js +0 -875
- package/dist/cli-delegate/chunk-MSUL5NYP.js +0 -1123
- package/dist/cli-delegate/chunk-OAFSJBHH.js +0 -272
- package/dist/ui/assets/index-C3djEJah.js +0 -23
- package/src/scripts/_lib/continuation_ladder.ts +0 -335
- package/src/scripts/hooks/run_continuation_hook.ts +0 -1524
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { HOST_BASENAME, MIN_CONTRAST_RATIO, } from './uiRenderAssetTypes.js';
|
|
2
|
+
/**
|
|
3
|
+
* The per-ground readings — steps 4.1 and 4.2 of
|
|
4
|
+
* `road-to-svg-from-a-live-session`.
|
|
5
|
+
*
|
|
6
|
+
* Three images, read in one scratch page so nothing is decoded twice:
|
|
7
|
+
*
|
|
8
|
+
* transparent the file on no ground at all, which is where its own
|
|
9
|
+
* silhouette comes from. A silhouette taken from the light
|
|
10
|
+
* capture would lose every white part of the graphic, which is
|
|
11
|
+
* precisely the paint these two readings are about.
|
|
12
|
+
* light / dark the two captures the profile already wrote.
|
|
13
|
+
*
|
|
14
|
+
* Inside that silhouette, two counts per ground. A pixel whose contrast ratio
|
|
15
|
+
* against the ground is below 3:1 is hard to see there (4.2) — a wordmark in
|
|
16
|
+
* dark violet shipped unreadable on a dark ground and the variant was never
|
|
17
|
+
* built. A pixel whose colour sits within the anti-alias band of the ground is
|
|
18
|
+
* the ground showing THROUGH the graphic (4.1) — the hairline seams between
|
|
19
|
+
* abutting traced segments, invisible on white and obvious on black.
|
|
20
|
+
*
|
|
21
|
+
* Holes are excluded by declaration, never by geometry: a ring's middle is
|
|
22
|
+
* ground on purpose, and only the author can say which gaps are intended.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* What FRACTION of the capture the graphic covers, width and height.
|
|
26
|
+
*
|
|
27
|
+
* Finding 4 of this change's second completion review. The capture is the
|
|
28
|
+
* VIEWPORT, floored at 64 px, while the page is `margin:0` with
|
|
29
|
+
* `body>svg{width:cssWidth}` — so the graphic sits in the top-left corner and
|
|
30
|
+
* covers only part of the image whenever `cssWidth` is smaller. Every icon is
|
|
31
|
+
* such a case: the sizes are 16/24/48 against a floor of 64. Mapping a
|
|
32
|
+
* user-unit box across the whole capture therefore put every declared hole and
|
|
33
|
+
* every declared-translucent shape 4/3 too far out, and the exclusions the
|
|
34
|
+
* author declared were applied to the wrong part of their own file.
|
|
35
|
+
*
|
|
36
|
+
* A FRACTION rather than a pixel count, because the image's size is known only
|
|
37
|
+
* inside the page while everything this needs is known outside it — which is
|
|
38
|
+
* also what makes the arithmetic testable without a renderer. Clamped to 1:
|
|
39
|
+
* `cssWidth` above the viewport is the graphic filling the capture, not
|
|
40
|
+
* overflowing the coordinate space.
|
|
41
|
+
*/
|
|
42
|
+
export function graphicFraction(spec) {
|
|
43
|
+
if (spec.width <= 0 || spec.height <= 0 || spec.cssWidth <= 0)
|
|
44
|
+
return { w: 1, h: 1 };
|
|
45
|
+
const w = Math.min(1, spec.cssWidth / spec.width);
|
|
46
|
+
const vb = spec.viewBox;
|
|
47
|
+
if (!vb || vb.w <= 0)
|
|
48
|
+
return { w, h: 1 };
|
|
49
|
+
// The rendered height follows the viewBox aspect from the rendered width.
|
|
50
|
+
const cssHeight = spec.cssWidth * (vb.h / vb.w);
|
|
51
|
+
return { w, h: Math.min(1, cssHeight / spec.height) };
|
|
52
|
+
}
|
|
53
|
+
export async function readGrounds(context, openPage, spec) {
|
|
54
|
+
// The transparent render: `omitBackground` leaves alpha 0 where the file
|
|
55
|
+
// paints nothing, which is the only honest source for a silhouette.
|
|
56
|
+
const clear = await openPage(context, {
|
|
57
|
+
url: spec.url,
|
|
58
|
+
hostHtml: spec.hostHtml,
|
|
59
|
+
hostBasename: HOST_BASENAME,
|
|
60
|
+
width: spec.width,
|
|
61
|
+
height: spec.height,
|
|
62
|
+
background: 'transparent',
|
|
63
|
+
cssWidth: spec.cssWidth,
|
|
64
|
+
blocked: spec.blocked,
|
|
65
|
+
});
|
|
66
|
+
let silhouette;
|
|
67
|
+
try {
|
|
68
|
+
silhouette = await clear.screenshot({ omitBackground: true });
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
await clear.close();
|
|
72
|
+
}
|
|
73
|
+
const out = [];
|
|
74
|
+
for (const mode of ['light', 'dark']) {
|
|
75
|
+
const colour = spec.backgrounds[mode];
|
|
76
|
+
const page = await openPage(context, {
|
|
77
|
+
url: spec.url,
|
|
78
|
+
hostHtml: spec.hostHtml,
|
|
79
|
+
hostBasename: HOST_BASENAME,
|
|
80
|
+
width: spec.width,
|
|
81
|
+
height: spec.height,
|
|
82
|
+
background: colour,
|
|
83
|
+
cssWidth: spec.cssWidth,
|
|
84
|
+
blocked: spec.blocked,
|
|
85
|
+
});
|
|
86
|
+
let shot;
|
|
87
|
+
try {
|
|
88
|
+
shot = await page.screenshot();
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
await page.close();
|
|
92
|
+
}
|
|
93
|
+
const scratch = await context.newPage();
|
|
94
|
+
try {
|
|
95
|
+
await scratch.setContent('<!doctype html><body></body>');
|
|
96
|
+
const counts = await scratch.evaluate(async (args) => {
|
|
97
|
+
const load = async (b64) => {
|
|
98
|
+
const img = new Image();
|
|
99
|
+
img.src = `data:image/png;base64,${b64}`;
|
|
100
|
+
try {
|
|
101
|
+
await img.decode();
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return img;
|
|
107
|
+
};
|
|
108
|
+
const a = await load(args.silhouette);
|
|
109
|
+
const b = await load(args.ground);
|
|
110
|
+
if (!a || !b)
|
|
111
|
+
return null;
|
|
112
|
+
const w = Math.min(a.naturalWidth, b.naturalWidth);
|
|
113
|
+
const h = Math.min(a.naturalHeight, b.naturalHeight);
|
|
114
|
+
if (w === 0 || h === 0)
|
|
115
|
+
return null;
|
|
116
|
+
const read = (img) => {
|
|
117
|
+
const c = document.createElement('canvas');
|
|
118
|
+
c.width = w;
|
|
119
|
+
c.height = h;
|
|
120
|
+
const cx = c.getContext('2d', { willReadFrequently: true });
|
|
121
|
+
if (!cx)
|
|
122
|
+
return null;
|
|
123
|
+
cx.clearRect(0, 0, w, h);
|
|
124
|
+
cx.drawImage(img, 0, 0);
|
|
125
|
+
return cx.getImageData(0, 0, w, h).data;
|
|
126
|
+
};
|
|
127
|
+
const alpha = read(a);
|
|
128
|
+
const px = read(b);
|
|
129
|
+
if (!alpha || !px)
|
|
130
|
+
return null;
|
|
131
|
+
const hex = args.colour.trim();
|
|
132
|
+
const parse = (v) => {
|
|
133
|
+
const m3 = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(v);
|
|
134
|
+
if (m3) {
|
|
135
|
+
return [
|
|
136
|
+
parseInt(m3[1].repeat(2), 16),
|
|
137
|
+
parseInt(m3[2].repeat(2), 16),
|
|
138
|
+
parseInt(m3[3].repeat(2), 16),
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
// 4 and 8 digits carry an ALPHA the ground does not
|
|
142
|
+
// need; 6 is the plain case. Finding 5 of the fifth
|
|
143
|
+
// completion review: this handled 3 and 6 while the
|
|
144
|
+
// token reader that produces the value accepts 3 to 8,
|
|
145
|
+
// so a `#rrggbbaa` background fell through to the
|
|
146
|
+
// white fallback and every contrast ratio on that
|
|
147
|
+
// ground was computed against a colour nobody chose —
|
|
148
|
+
// silently, because white is a plausible answer.
|
|
149
|
+
const m68 = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})(?:[0-9a-f]{2})?$/i.exec(v);
|
|
150
|
+
if (m68) {
|
|
151
|
+
return [
|
|
152
|
+
parseInt(m68[1], 16),
|
|
153
|
+
parseInt(m68[2], 16),
|
|
154
|
+
parseInt(m68[3], 16),
|
|
155
|
+
];
|
|
156
|
+
}
|
|
157
|
+
const m4 = /^#([0-9a-f])([0-9a-f])([0-9a-f])[0-9a-f]$/i.exec(v);
|
|
158
|
+
if (m4) {
|
|
159
|
+
return [
|
|
160
|
+
parseInt(m4[1].repeat(2), 16),
|
|
161
|
+
parseInt(m4[2].repeat(2), 16),
|
|
162
|
+
parseInt(m4[3].repeat(2), 16),
|
|
163
|
+
];
|
|
164
|
+
}
|
|
165
|
+
const rgb = /rgba?\(\s*(\d+)[,\s]+(\d+)[,\s]+(\d+)/.exec(v);
|
|
166
|
+
if (rgb) {
|
|
167
|
+
return [Number(rgb[1]), Number(rgb[2]), Number(rgb[3])];
|
|
168
|
+
}
|
|
169
|
+
return [255, 255, 255];
|
|
170
|
+
};
|
|
171
|
+
const ground = parse(hex);
|
|
172
|
+
const lum = (c) => {
|
|
173
|
+
const f = (v) => {
|
|
174
|
+
const x = v / 255;
|
|
175
|
+
return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;
|
|
176
|
+
};
|
|
177
|
+
return 0.2126 * f(c[0]) + 0.7152 * f(c[1]) + 0.0722 * f(c[2]);
|
|
178
|
+
};
|
|
179
|
+
const groundLum = lum(ground);
|
|
180
|
+
const ratio = (c) => {
|
|
181
|
+
const l = lum(c);
|
|
182
|
+
const hi = Math.max(l, groundLum);
|
|
183
|
+
const lo = Math.min(l, groundLum);
|
|
184
|
+
return (hi + 0.05) / (lo + 0.05);
|
|
185
|
+
};
|
|
186
|
+
// Declared holes and translucent shapes, mapped from user
|
|
187
|
+
// units into this image.
|
|
188
|
+
//
|
|
189
|
+
// The graphic's own extent in IMAGE pixels, which is what a
|
|
190
|
+
// user-unit coordinate maps into — not the capture's. The
|
|
191
|
+
// page is `margin:0` with `body>svg{width:cssWidth}`, so it
|
|
192
|
+
// sits at the top-left corner and the height follows the
|
|
193
|
+
// viewBox aspect. A file with no viewBox is not mapped at
|
|
194
|
+
// all (the guard below), so there is no aspect to miss.
|
|
195
|
+
const gW = w * args.graphic.w;
|
|
196
|
+
const gH = h * args.graphic.h;
|
|
197
|
+
const within = (boxes, x, y) => {
|
|
198
|
+
if (!args.vb || boxes.length === 0)
|
|
199
|
+
return false;
|
|
200
|
+
if (gW <= 0 || gH <= 0 || x >= gW || y >= gH)
|
|
201
|
+
return false;
|
|
202
|
+
const ux = args.vb.x + (x / gW) * args.vb.w;
|
|
203
|
+
const uy = args.vb.y + (y / gH) * args.vb.h;
|
|
204
|
+
return boxes.some((box) => ux >= box.x && ux <= box.x + box.w && uy >= box.y && uy <= box.y + box.h);
|
|
205
|
+
};
|
|
206
|
+
const inHole = (x, y) => within(args.holes, x, y);
|
|
207
|
+
const inSoft = (x, y) => within(args.soft, x, y);
|
|
208
|
+
// The OUTER silhouette: flood the transparent region
|
|
209
|
+
// inwards from the border. What the flood cannot reach is
|
|
210
|
+
// inside the graphic — including the hairline gaps between
|
|
211
|
+
// abutting shapes, which is the thing step 4.1 counts and
|
|
212
|
+
// which an `alpha >= 200` definition excludes by
|
|
213
|
+
// construction (measured: 0 bleed pixels on the planted
|
|
214
|
+
// fixture before this).
|
|
215
|
+
const opaque = (i) => alpha[i * 4 + 3] >= 200;
|
|
216
|
+
const outside = new Uint8Array(w * h);
|
|
217
|
+
const stack = [];
|
|
218
|
+
const push = (i) => {
|
|
219
|
+
if (outside[i] === 1 || opaque(i))
|
|
220
|
+
return;
|
|
221
|
+
outside[i] = 1;
|
|
222
|
+
stack.push(i);
|
|
223
|
+
};
|
|
224
|
+
for (let x = 0; x < w; x += 1) {
|
|
225
|
+
push(x);
|
|
226
|
+
push((h - 1) * w + x);
|
|
227
|
+
}
|
|
228
|
+
for (let y = 0; y < h; y += 1) {
|
|
229
|
+
push(y * w);
|
|
230
|
+
push(y * w + (w - 1));
|
|
231
|
+
}
|
|
232
|
+
while (stack.length > 0) {
|
|
233
|
+
const i = stack.pop();
|
|
234
|
+
const x = i % w;
|
|
235
|
+
const y = (i - x) / w;
|
|
236
|
+
if (x > 0)
|
|
237
|
+
push(i - 1);
|
|
238
|
+
if (x + 1 < w)
|
|
239
|
+
push(i + 1);
|
|
240
|
+
if (y > 0)
|
|
241
|
+
push(i - w);
|
|
242
|
+
if (y + 1 < h)
|
|
243
|
+
push(i + w);
|
|
244
|
+
}
|
|
245
|
+
let sil = 0;
|
|
246
|
+
let painted = 0;
|
|
247
|
+
let low = 0;
|
|
248
|
+
let bleed = 0;
|
|
249
|
+
for (let i = 0; i < w * h; i += 1) {
|
|
250
|
+
if (outside[i] === 1)
|
|
251
|
+
continue;
|
|
252
|
+
sil += 1;
|
|
253
|
+
const c = [
|
|
254
|
+
px[i * 4],
|
|
255
|
+
px[i * 4 + 1],
|
|
256
|
+
px[i * 4 + 2],
|
|
257
|
+
];
|
|
258
|
+
// Contrast is asked of PAINTED pixels only: the ratio
|
|
259
|
+
// of a gap against the ground showing through it is the
|
|
260
|
+
// ratio of the ground against itself.
|
|
261
|
+
if (opaque(i)) {
|
|
262
|
+
painted += 1;
|
|
263
|
+
if (ratio(c) < args.minContrast)
|
|
264
|
+
low += 1;
|
|
265
|
+
}
|
|
266
|
+
// Bleed is an INTERIOR pixel the graphic does not fully
|
|
267
|
+
// cover, so the ground shows through it.
|
|
268
|
+
//
|
|
269
|
+
// Measured, and this is the second definition: comparing
|
|
270
|
+
// the pixel's colour against the ground within a
|
|
271
|
+
// tolerance read 0 on the planted fixture, because a
|
|
272
|
+
// half-covered seam composites to a BLEND of the two
|
|
273
|
+
// greys and the ground — nowhere near the ground itself.
|
|
274
|
+
// Alpha is the thing that is actually wrong, and it is
|
|
275
|
+
// the same number whatever colour the ground is, which
|
|
276
|
+
// is why the finding fires on the dark row: that is the
|
|
277
|
+
// capture where the consequence is visible.
|
|
278
|
+
// Finding 7: a legitimately TRANSLUCENT interior is
|
|
279
|
+
// not a seam. A `fill-opacity="0.5"` shape is excluded
|
|
280
|
+
// from `painted` and would otherwise be counted as
|
|
281
|
+
// near-total bleed against a 0.002 threshold — a
|
|
282
|
+
// warning on a correct file, which is the Risk 1
|
|
283
|
+
// failure this whole concern is shaped around. The
|
|
284
|
+
// caller passes those shapes' extents the same way it
|
|
285
|
+
// passes declared holes, because "is this coverage
|
|
286
|
+
// intended" is again a question only the author
|
|
287
|
+
// answers.
|
|
288
|
+
const x = i % w;
|
|
289
|
+
const y = Math.floor(i / w);
|
|
290
|
+
if (!opaque(i) && !inHole(x, y) && !inSoft(x, y))
|
|
291
|
+
bleed += 1;
|
|
292
|
+
}
|
|
293
|
+
return { silhouette: sil, painted, low, bleed };
|
|
294
|
+
}, {
|
|
295
|
+
silhouette: silhouette.toString('base64'),
|
|
296
|
+
ground: shot.toString('base64'),
|
|
297
|
+
colour,
|
|
298
|
+
holes: spec.holeBoxes,
|
|
299
|
+
soft: spec.softBoxes,
|
|
300
|
+
vb: spec.viewBox,
|
|
301
|
+
minContrast: MIN_CONTRAST_RATIO,
|
|
302
|
+
graphic: graphicFraction(spec),
|
|
303
|
+
});
|
|
304
|
+
if (counts === null)
|
|
305
|
+
continue;
|
|
306
|
+
out.push({
|
|
307
|
+
background: mode,
|
|
308
|
+
background_color: colour,
|
|
309
|
+
silhouette_px: counts.silhouette,
|
|
310
|
+
painted_px: counts.painted,
|
|
311
|
+
low_contrast_px: counts.low,
|
|
312
|
+
low_contrast_share: counts.painted === 0 ? 0 : counts.low / counts.painted,
|
|
313
|
+
bleed_px: counts.bleed,
|
|
314
|
+
bleed_share: counts.silhouette === 0 ? 0 : counts.bleed / counts.silhouette,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
finally {
|
|
318
|
+
await scratch.close();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return out;
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=uiRenderAssetGrounds.js.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Isolation of the asset under test — which is untrusted input — during its
|
|
3
|
+
* own witness (16.5.0 release review).
|
|
4
|
+
*
|
|
5
|
+
* Scripts are disabled for the whole browser context, so a `<script>` or `on*`
|
|
6
|
+
* handler in the asset never runs; that is also what keeps WebSocket and
|
|
7
|
+
* WebRTC closed, since `page.route` intercepts neither. A request is allowed
|
|
8
|
+
* only on the `file:`, `data:`, `blob:` and `about:` schemes, and a `file:`
|
|
9
|
+
* request only when it resolves inside the project root or the asset's own
|
|
10
|
+
* directory, so an asset cannot pull an arbitrary local file into a capture.
|
|
11
|
+
* The comparison pages inline everything they read, so they allow no `file:`.
|
|
12
|
+
*
|
|
13
|
+
* The cost, accepted: a host document that builds its visual state with
|
|
14
|
+
* JavaScript is witnessed as its static markup, not as it would run.
|
|
15
|
+
*/
|
|
16
|
+
import * as fs from 'node:fs';
|
|
17
|
+
import * as path from 'node:path';
|
|
18
|
+
import { fileURLToPath } from 'node:url';
|
|
19
|
+
import { ALLOWED_SCHEMES } from './uiRenderAssetTypes.js';
|
|
20
|
+
/** The directories a `file:` request may resolve into for this asset. */
|
|
21
|
+
export function fileRootsFor(projectRoot, file) {
|
|
22
|
+
return [projectRoot, path.dirname(path.resolve(file))];
|
|
23
|
+
}
|
|
24
|
+
/** True unless `url` is a `file:` URL resolving outside `root` (symlinks followed). */
|
|
25
|
+
export function fileInside(url, root) {
|
|
26
|
+
if (!url.startsWith('file:'))
|
|
27
|
+
return true;
|
|
28
|
+
const real = (p) => {
|
|
29
|
+
try {
|
|
30
|
+
return fs.realpathSync(p);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return path.resolve(p);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
let target;
|
|
37
|
+
try {
|
|
38
|
+
target = real(fileURLToPath(url));
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const base = real(root);
|
|
44
|
+
return target === base || target.startsWith(base + path.sep);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* May the witness page load `url`? A `file:` URL needs a root it resolves
|
|
48
|
+
* inside; with no roots — a page that inlines everything it reads — none does.
|
|
49
|
+
*/
|
|
50
|
+
export function requestAllowed(url, fileRoots) {
|
|
51
|
+
if (!ALLOWED_SCHEMES.some((s) => url.startsWith(s)))
|
|
52
|
+
return false;
|
|
53
|
+
return !url.startsWith('file:') || fileRoots.some((root) => fileInside(url, root));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Route every request of `page` through `requestAllowed`, recording what was
|
|
57
|
+
* refused. One opener for every witness page, so no page confines less than
|
|
58
|
+
* another (16.5.0 review: the comparison pages checked the scheme only).
|
|
59
|
+
*/
|
|
60
|
+
export async function confinePage(page, blocked, fileRoots, fulfil) {
|
|
61
|
+
await page.route('**/*', async (route) => {
|
|
62
|
+
if (fulfil && (await fulfil(route)))
|
|
63
|
+
return;
|
|
64
|
+
const url = route.request().url();
|
|
65
|
+
if (!requestAllowed(url, fileRoots)) {
|
|
66
|
+
blocked.push(url);
|
|
67
|
+
await route.abort();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
await route.continue();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Add a stylesheet to the page. Not `page.addStyleTag`: it waits on a
|
|
75
|
+
* page-script `onload`, which never fires with scripts disabled, while
|
|
76
|
+
* `evaluate` runs outside the page's own scripts.
|
|
77
|
+
*/
|
|
78
|
+
export async function injectStyle(page, css) {
|
|
79
|
+
await page.evaluate((text) => {
|
|
80
|
+
const style = document.createElement('style');
|
|
81
|
+
style.textContent = text;
|
|
82
|
+
(document.head ?? document.documentElement).appendChild(style);
|
|
83
|
+
}, css);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=uiRenderAssetIsolation.js.map
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Declared constants — every one of them pre-registered in step 0.3
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export const ASSET_CLASSES = ['icon', 'mark', 'illustration', 'diagram', 'animated'];
|
|
5
|
+
/**
|
|
6
|
+
* Per class, never global. A file is loose BELOW its class threshold.
|
|
7
|
+
* Overridden by a `fill_ratio_thresholds` block in `--thresholds <file>`.
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_FILL_RATIO_THRESHOLDS = {
|
|
10
|
+
icon: 0.3,
|
|
11
|
+
mark: 0.45,
|
|
12
|
+
illustration: 0.4,
|
|
13
|
+
diagram: 0.35,
|
|
14
|
+
animated: 0.35,
|
|
15
|
+
};
|
|
16
|
+
/** Step 2.6's tolerances. Overridden by `geometry_tolerances` in `--thresholds`. */
|
|
17
|
+
export const DEFAULT_GEOMETRY_TOLERANCES = {
|
|
18
|
+
icon: { silhouette_iou_min: 0.98, max_boundary_distance_units: 1 },
|
|
19
|
+
mark: { silhouette_iou_min: 0.98, max_boundary_distance_units: 2 },
|
|
20
|
+
illustration: { silhouette_iou_min: 0.96, max_boundary_distance_units: 3 },
|
|
21
|
+
diagram: { silhouette_iou_min: 0.97, max_boundary_distance_units: 2 },
|
|
22
|
+
animated: { silhouette_iou_min: 0.97, max_boundary_distance_units: 2 },
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Used ONLY when no `tokens.json` resolves. The manifest records
|
|
26
|
+
* `source: "fallback"` whenever these are used, because a reader cannot
|
|
27
|
+
* otherwise tell a project's own background from this module's guess.
|
|
28
|
+
*/
|
|
29
|
+
export const FALLBACK_BACKGROUNDS = { light: '#ffffff', dark: '#111111' };
|
|
30
|
+
/**
|
|
31
|
+
* The four paths the brand resolver searches, in its order. First hit wins.
|
|
32
|
+
*
|
|
33
|
+
* Re-exported from the one declaration. The copy that stood here built its last
|
|
34
|
+
* entry with `path.join`, so on Windows this module searched a back-slash path
|
|
35
|
+
* the scaffold never wrote — two answers to what counts as the project's brand.
|
|
36
|
+
*/
|
|
37
|
+
export { BRAND_TOKEN_PATHS } from '../../shared/brandTokenPaths.js';
|
|
38
|
+
/** Icon sizes are the three the incumbent sets ship at. Other classes: 1x and 2x. */
|
|
39
|
+
export const ICON_SIZES = [16, 24, 48];
|
|
40
|
+
/**
|
|
41
|
+
* A `mark` is captured here too — step 4.3 of
|
|
42
|
+
* `road-to-svg-from-a-live-session`.
|
|
43
|
+
*
|
|
44
|
+
* A review sent an accepted mark back because its face turned to mush at
|
|
45
|
+
* 32 px, and a simplified small-size variant was built. Nothing in the profile
|
|
46
|
+
* produced a capture at those sizes, so the only way to know was to look at
|
|
47
|
+
* something that did not exist. 16 and 32 are the two the review named.
|
|
48
|
+
*/
|
|
49
|
+
export const MARK_SMALL_SIZES = [16, 32];
|
|
50
|
+
/**
|
|
51
|
+
* Below this, a draw-on animation is not reported. The planted row reads
|
|
52
|
+
* 0.283 (a 300-unit dash on a 215-unit path) and its twin reads 0.0, so the
|
|
53
|
+
* band between them is wide; 0.05 is inside it with room on both sides.
|
|
54
|
+
*/
|
|
55
|
+
export const DRAW_ON_DEAD_TIME_THRESHOLD = 0.05;
|
|
56
|
+
/** A channel at or above this, with alpha 1, counts as near-white paint. */
|
|
57
|
+
export const NEAR_WHITE_CHANNEL = 237;
|
|
58
|
+
/**
|
|
59
|
+
* The synthetic host document. Fulfilled by the route handler at a URL inside
|
|
60
|
+
* the asset's OWN directory, so a relative `href` inside the asset resolves
|
|
61
|
+
* exactly as it would in place — without this module ever writing into the
|
|
62
|
+
* directory it is reading.
|
|
63
|
+
*/
|
|
64
|
+
export const HOST_BASENAME = '__agent-config-asset-host__.html';
|
|
65
|
+
/** Schemes a page may reach. Everything else is aborted and counted. */
|
|
66
|
+
export const ALLOWED_SCHEMES = ['file:', 'data:', 'blob:', 'about:'];
|
|
67
|
+
/**
|
|
68
|
+
* How a shape declares that a gap in the silhouette is DELIBERATE.
|
|
69
|
+
*
|
|
70
|
+
* Step 4.1. A ring has a hole in the middle and the ground shows through it on
|
|
71
|
+
* purpose; without a way to say so, every ring reads as a seam. By attribute
|
|
72
|
+
* rather than by geometry, because "is this gap intended" is a question only
|
|
73
|
+
* the author can answer.
|
|
74
|
+
*/
|
|
75
|
+
export const HOLE_ATTRIBUTE = 'data-hole';
|
|
76
|
+
/**
|
|
77
|
+
* The bleed share above which `geometry/background-bleed-inside-silhouette`
|
|
78
|
+
* fires, pre-registered in `fixtures/svg-assets/README.md` before the reading
|
|
79
|
+
* was written.
|
|
80
|
+
*
|
|
81
|
+
* A seam is a hairline: one or two pixels wide along a shared edge. The
|
|
82
|
+
* overlap twin — the same two shapes overlapping by one unit — reads 0. The
|
|
83
|
+
* threshold sits between them with room on both sides.
|
|
84
|
+
*
|
|
85
|
+
* IT DOES MOVE WITH THE RENDER SIZE, and this doc used to claim it does not.
|
|
86
|
+
* Finding 7 of the third completion review. A share is scale-free only when
|
|
87
|
+
* both terms scale together: a seam whose width is a fraction of a USER UNIT
|
|
88
|
+
* grows with the capture and its share is stable, but one that is an
|
|
89
|
+
* anti-aliasing artefact stays one or two DEVICE pixels wide at every size, so
|
|
90
|
+
* its count grows with the perimeter while the denominator grows with the
|
|
91
|
+
* area — the share falls roughly as 1/width. The planted fixture is the second
|
|
92
|
+
* kind (a ring of inner radius 20 against a disc of radius 20), so this number
|
|
93
|
+
* is pre-registered against the capture sizes THIS PROFILE TAKES, which top
|
|
94
|
+
* out at 2x the intrinsic width. A caller rendering the same file at several
|
|
95
|
+
* thousand pixels would read a share below the threshold on a file that still
|
|
96
|
+
* has the seam.
|
|
97
|
+
*
|
|
98
|
+
* Not re-derived here: fixing it means making the reading a function of the
|
|
99
|
+
* seam's width in user units rather than of its pixel count, which is a
|
|
100
|
+
* different measurement and a larger change than a remediation should take.
|
|
101
|
+
* Stated so a reader is not told the opposite.
|
|
102
|
+
*/
|
|
103
|
+
export const BLEED_SHARE_THRESHOLD = 0.002;
|
|
104
|
+
/**
|
|
105
|
+
* Above this share of the registered source's painted pixels lying OUTSIDE the
|
|
106
|
+
* subject, `geometry/foreign-content-in-frame` fires.
|
|
107
|
+
*
|
|
108
|
+
* Finding 14 of this change's completion review: it was an inline `0.02` beside
|
|
109
|
+
* two named, documented, pre-registered thresholds. 2 % is the band an
|
|
110
|
+
* anti-aliased outline can occupy on a small mark without anything foreign
|
|
111
|
+
* being in the frame — it is a NOISE FLOOR, not a measured quality line, and
|
|
112
|
+
* saying so is the difference between a number a reader can argue with and one
|
|
113
|
+
* they cannot find.
|
|
114
|
+
*/
|
|
115
|
+
export const FOREIGN_CONTENT_SHARE_THRESHOLD = 0.02;
|
|
116
|
+
/** Below this contrast ratio against its ground, a painted pixel is hard to see. */
|
|
117
|
+
export const MIN_CONTRAST_RATIO = 3;
|
|
118
|
+
/**
|
|
119
|
+
* The share of painted pixels below {@link MIN_CONTRAST_RATIO} above which
|
|
120
|
+
* `accessibility/low-contrast-on-background` fires.
|
|
121
|
+
*
|
|
122
|
+
* Half the mark, not a few anti-aliased edge pixels: an edge blends into its
|
|
123
|
+
* ground by construction, and a rule that fired on that would fire on every
|
|
124
|
+
* file. Pre-registered with the bleed threshold above.
|
|
125
|
+
*/
|
|
126
|
+
export const LOW_CONTRAST_SHARE_THRESHOLD = 0.5;
|
|
127
|
+
/**
|
|
128
|
+
* The square sample grid both the profile and the comparison rasterise into.
|
|
129
|
+
* One constant because a comparison taken at a different resolution than the
|
|
130
|
+
* reading it is compared against is not a comparison.
|
|
131
|
+
*/
|
|
132
|
+
export const SAMPLE_RES = 256;
|
|
133
|
+
//# sourceMappingURL=uiRenderAssetTypes.js.map
|
package/dist/cli/initRouting.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* `init` is the consumer install entry point. When the browser wizard can
|
|
6
6
|
* actually be used, `init` opens it and lets it drive the whole install via
|
|
7
|
-
* `/api/v1/wizard/apply` → `scripts/install.
|
|
7
|
+
* `/api/v1/wizard/apply` → `src/scripts/install.ts --apply-payload` — no CLI
|
|
8
8
|
* tool-picker, one installer. Otherwise `init` falls back to the bash CLI
|
|
9
9
|
* install. These pure helpers make that decision (and the GUI option mapping)
|
|
10
10
|
* unit-testable, separate from the self-executing CLI entry point.
|
package/dist/cli/main.js
CHANGED
|
@@ -23,6 +23,7 @@ import { runDoctorShell } from './commands/doctorShell.js';
|
|
|
23
23
|
import { runRtkDetect } from './commands/rtkDetect.js';
|
|
24
24
|
import { runUiAudit } from './commands/uiAudit.js';
|
|
25
25
|
import { runUiRender } from './commands/uiRender.js';
|
|
26
|
+
import { parseRegistration } from './commands/uiRenderAssetCompare.js';
|
|
26
27
|
import { runUiServe } from './commands/uiServe.js';
|
|
27
28
|
import { shouldInitLaunchGui, buildInitGuiOptions, buildProjectInitDelegation, findInitGuiConflict, withoutGuiFlag } from './initRouting.js';
|
|
28
29
|
import { maybePrintFirstRunNotice } from './firstRunNotice.js';
|
|
@@ -125,8 +126,53 @@ async function main(rawArgv) {
|
|
|
125
126
|
.option('--json', 'Print the manifest on stdout as well as writing it')
|
|
126
127
|
.option('--project-root <path>', 'Override the project root')
|
|
127
128
|
.option('--slug <name>', 'Override the output directory name')
|
|
129
|
+
.option('--profile <name>', 'page (default) or asset — a single SVG, per class, light and dark')
|
|
130
|
+
.option('--class <name>', 'Asset class: icon | mark | illustration | diagram | animated')
|
|
131
|
+
.option('--delivery <mode>', 'Delivery mode: inline | document | img | css-bg')
|
|
132
|
+
.option('--thresholds <file>', 'JSON carrying fill_ratio_thresholds / geometry_tolerances')
|
|
133
|
+
.option('--icon-set <paths>', 'Comma-separated incumbent icon SVGs, read for their own grid')
|
|
134
|
+
.option('--compare <file>', 'Second render of the same frame to compare against')
|
|
135
|
+
.option('--registration <spec>', 'Raster source region as x,y,w,h[@scale]')
|
|
128
136
|
.action(async (target, opts) => {
|
|
129
|
-
|
|
137
|
+
// Validated, not cast. A cast let `--class Icon` through as an
|
|
138
|
+
// AssetClass that matches no threshold key, so
|
|
139
|
+
// `fill_ratio_threshold` came out `undefined`,
|
|
140
|
+
// `structure/loose-viewbox` could never fire, and the key
|
|
141
|
+
// vanished from the manifest — a silent downgrade of a reading
|
|
142
|
+
// to nothing. `lint_svg_asset` validates the same two
|
|
143
|
+
// vocabularies and exits 1; so does this.
|
|
144
|
+
const ASSET_CLASS_NAMES = ['icon', 'mark', 'illustration', 'diagram', 'animated'];
|
|
145
|
+
const DELIVERY_NAMES = ['inline', 'document', 'img', 'css-bg'];
|
|
146
|
+
if (opts.class !== undefined && !ASSET_CLASS_NAMES.includes(opts.class)) {
|
|
147
|
+
process.stderr.write(`[ui:render] unknown --class "${opts.class}"; expected one of ${ASSET_CLASS_NAMES.join(', ')}\n`);
|
|
148
|
+
process.exitCode = 1;
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (opts.delivery !== undefined && !DELIVERY_NAMES.includes(opts.delivery)) {
|
|
152
|
+
process.stderr.write(`[ui:render] unknown --delivery "${opts.delivery}"; expected one of ${DELIVERY_NAMES.join(', ')}\n`);
|
|
153
|
+
process.exitCode = 1;
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (opts.profile !== undefined && opts.profile !== 'page' && opts.profile !== 'asset') {
|
|
157
|
+
process.stderr.write(`[ui:render] unknown --profile "${opts.profile}"; expected page or asset\n`);
|
|
158
|
+
process.exitCode = 1;
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
process.exitCode = await runUiRender({
|
|
162
|
+
target,
|
|
163
|
+
...(opts.json === undefined ? {} : { json: opts.json }),
|
|
164
|
+
...(opts.projectRoot === undefined ? {} : { projectRoot: opts.projectRoot }),
|
|
165
|
+
...(opts.slug === undefined ? {} : { slug: opts.slug }),
|
|
166
|
+
...(opts.profile === 'asset' ? { profile: 'asset' } : {}),
|
|
167
|
+
...(opts.class === undefined ? {} : { assetClass: opts.class }),
|
|
168
|
+
...(opts.delivery === undefined ? {} : { delivery: opts.delivery }),
|
|
169
|
+
...(opts.thresholds === undefined ? {} : { thresholds: opts.thresholds }),
|
|
170
|
+
...(opts.iconSet === undefined ? {} : { iconSet: opts.iconSet.split(',').map((s) => s.trim()) }),
|
|
171
|
+
...(opts.compare === undefined ? {} : { compareTo: opts.compare }),
|
|
172
|
+
...(parseRegistration(opts.registration) === null
|
|
173
|
+
? {}
|
|
174
|
+
: { registration: parseRegistration(opts.registration) }),
|
|
175
|
+
});
|
|
130
176
|
});
|
|
131
177
|
program
|
|
132
178
|
.command('ui:serve')
|