@event4u/agent-config 16.5.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 +463 -498
- package/CONTRIBUTING.md +47 -0
- package/README.md +25 -25
- package/dist/agent-src/commands/{design.md → agent-design.md} +10 -6
- 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 +5 -0
- 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 +1 -1
- 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/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 +12 -2
- 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 +14 -14
- 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 +16 -2
- 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/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/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 +9 -3
- 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 +7 -1
- 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/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 +72 -17
- package/dist/cli/commands/uiRenderAsset.js +10 -2
- package/dist/cli/commands/uiRenderAssetFonts.js +158 -0
- package/dist/cli/commands/uiRenderAssetTypes.js +8 -20
- package/dist/cli/initRouting.js +1 -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 +4 -1
- 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-TMWYUOK4.js → chunk-2CX7NWRB.js} +224 -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 +483 -817
- 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 +373 -190
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +5 -5
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +21 -16
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +16 -11
- package/dist/hooks/chat_history.chunk.cjs +6852 -0
- package/dist/hooks/chat_history.chunk.cjs.sha256 +1 -0
- package/dist/hooks/dispatch.js +17506 -18692
- 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 +281 -49
- package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -1
- 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 +9831 -5546
- 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/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_filled_counter.js +285 -0
- package/dist/scripts/_lib/svg_rules.js +2 -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/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 +5 -0
- 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 +13 -4
- 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 +26 -22
- 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 +93 -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_filled_counter.ts +287 -0
- package/src/scripts/_lib/svg_rules.ts +2 -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/verify_clause.ts +4 -2
- 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 +38 -7
- 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 +42 -10
- 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 +75 -19
- package/src/scripts/hooks/tool_result_bytes_hook.ts +14 -5
- package/src/scripts/hooks/turn_end_gate_hook.ts +1 -1
- 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 +144 -16
- 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_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_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_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-4DBG5K7M.js +0 -1123
- 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-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
|
@@ -30,6 +30,8 @@ import {
|
|
|
30
30
|
_load_yaml,
|
|
31
31
|
} from "./hooks/dispatch_hook.js";
|
|
32
32
|
import { loadHostLowering } from "./hooks/host_lowering.js";
|
|
33
|
+
import { type ClaudeHookScope, claudeHookScope } from "./_lib/claude_hook_scope.js";
|
|
34
|
+
import { event4u_root } from "./_lib/user_global_paths.js";
|
|
33
35
|
import { type SlotReading, readSlots } from "./report_enforcement_drift.js";
|
|
34
36
|
|
|
35
37
|
// src/scripts/hooks_status.ts → parents[1] is the repo root (.../parents[2]
|
|
@@ -106,6 +108,13 @@ export interface PlatformRow {
|
|
|
106
108
|
*/
|
|
107
109
|
blocking_enforcement: Record<string, string>;
|
|
108
110
|
hint: string | null;
|
|
111
|
+
/**
|
|
112
|
+
* Claude only. Where the managed hooks are registered (global and/or
|
|
113
|
+
* project), which runtime they would reach, and the resulting state. Present
|
|
114
|
+
* because Claude Code MERGES `~/.claude/settings.json` with the project file,
|
|
115
|
+
* so one file cannot answer "are the hooks installed" for that host.
|
|
116
|
+
*/
|
|
117
|
+
claude_scope?: ClaudeHookScope;
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
export interface StatusMatrix {
|
|
@@ -206,8 +215,27 @@ function _blocking_enforcement(
|
|
|
206
215
|
return out;
|
|
207
216
|
}
|
|
208
217
|
|
|
218
|
+
/** Where to look for the user-scope half of Claude's merged settings. Injected by tests. */
|
|
219
|
+
export interface UserScope {
|
|
220
|
+
home: string;
|
|
221
|
+
runtimeRoot: string;
|
|
222
|
+
pathEnv: string;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function _defaultUserScope(): UserScope {
|
|
226
|
+
return {
|
|
227
|
+
home: process.env["HOME"] ?? "",
|
|
228
|
+
runtimeRoot: path.join(event4u_root(), "runtime"),
|
|
229
|
+
pathEnv: process.env["PATH"] ?? "",
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
|
|
209
233
|
/** Build the runtime matrix as a plain object — JSON-serialisable. */
|
|
210
|
-
export function collect(
|
|
234
|
+
export function collect(
|
|
235
|
+
project_root: string,
|
|
236
|
+
manifest: JsonObject,
|
|
237
|
+
userScope: UserScope = _defaultUserScope(),
|
|
238
|
+
): StatusMatrix {
|
|
211
239
|
const platformsRaw = manifest["platforms"];
|
|
212
240
|
const platforms = _isObject(platformsRaw) ? platformsRaw : {};
|
|
213
241
|
const severities = _severities(manifest);
|
|
@@ -226,9 +254,20 @@ export function collect(project_root: string, manifest: JsonObject): StatusMatri
|
|
|
226
254
|
}
|
|
227
255
|
}
|
|
228
256
|
}
|
|
257
|
+
// Claude merges the user-scope settings file with the project one, so its
|
|
258
|
+
// status comes from the managed commands in BOTH, never from whether the
|
|
259
|
+
// project file merely exists.
|
|
260
|
+
const claude_scope =
|
|
261
|
+
platform === "claude" && !fallback_only
|
|
262
|
+
? claudeHookScope({ projectRoot: project_root, ...userScope })
|
|
263
|
+
: undefined;
|
|
229
264
|
const status = fallback_only
|
|
230
265
|
? "degraded"
|
|
231
|
-
:
|
|
266
|
+
: claude_scope !== undefined
|
|
267
|
+
? claude_scope.registered_in.length > 0
|
|
268
|
+
? "installed"
|
|
269
|
+
: "missing"
|
|
270
|
+
: _bridge_status(project_root, rel);
|
|
232
271
|
rows.push({
|
|
233
272
|
platform,
|
|
234
273
|
status,
|
|
@@ -240,6 +279,7 @@ export function collect(project_root: string, manifest: JsonObject): StatusMatri
|
|
|
240
279
|
hint: ["missing", "empty", "degraded", "n/a"].includes(status)
|
|
241
280
|
? hint
|
|
242
281
|
: null,
|
|
282
|
+
...(claude_scope !== undefined ? { claude_scope } : {}),
|
|
243
283
|
});
|
|
244
284
|
}
|
|
245
285
|
return { schema_version: 1, platforms: rows };
|
|
@@ -277,10 +317,25 @@ export function _render_table(matrix: StatusMatrix): string {
|
|
|
277
317
|
for (const row of matrix.platforms) {
|
|
278
318
|
const marker = _STATUS_MARKER[row.status] ?? "? ";
|
|
279
319
|
let head = `${marker}${row.platform.padEnd(9)} ${row.status}`;
|
|
280
|
-
if (row.
|
|
320
|
+
if (row.claude_scope !== undefined) {
|
|
321
|
+
const where = row.claude_scope.registered_in.length > 0 ? row.claude_scope.registered_in.join(" + ") : "neither scope";
|
|
322
|
+
head += ` (managed hooks in: ${where} — ~/.claude/settings.json and <project>/.claude/settings.json are merged)`;
|
|
323
|
+
} else if (row.bridge_path) {
|
|
281
324
|
head += ` (${row.bridge_path})`;
|
|
282
325
|
}
|
|
283
326
|
lines.push(head);
|
|
327
|
+
if (row.claude_scope !== undefined) {
|
|
328
|
+
const s = row.claude_scope;
|
|
329
|
+
lines.push(` state → ${s.state}`);
|
|
330
|
+
lines.push(
|
|
331
|
+
` runtime → ${s.runtime}` + (s.runtime_version !== null ? ` v${s.runtime_version}` : ""),
|
|
332
|
+
);
|
|
333
|
+
lines.push(
|
|
334
|
+
` managed / foreign → global ${s.managed_commands.global} / ${s.foreign_commands.global}, ` +
|
|
335
|
+
`project ${s.managed_commands.project} / ${s.foreign_commands.project} (foreign hooks are never counted as ours)`,
|
|
336
|
+
);
|
|
337
|
+
if (s.version_skew !== null) lines.push(` ⚠️ ${s.version_skew}`);
|
|
338
|
+
}
|
|
284
339
|
lines.push(
|
|
285
340
|
` ask → ${row.ask}` +
|
|
286
341
|
(row.ask === "native"
|
|
@@ -113,6 +113,13 @@ export interface TopicCensus {
|
|
|
113
113
|
decisionIds: string[];
|
|
114
114
|
fileCount: number;
|
|
115
115
|
anchorTotal: number;
|
|
116
|
+
/**
|
|
117
|
+
* Paths under this topic the census did NOT read, relative to the topic
|
|
118
|
+
* directory. A file the walk skipped is not a file that is not there, and
|
|
119
|
+
* the closing coverage line cannot be read as complete while this is
|
|
120
|
+
* non-empty.
|
|
121
|
+
*/
|
|
122
|
+
uncounted: string[];
|
|
116
123
|
}
|
|
117
124
|
|
|
118
125
|
/**
|
|
@@ -195,13 +202,46 @@ function censusFile(abs: string, rel: string): FileCensus {
|
|
|
195
202
|
};
|
|
196
203
|
}
|
|
197
204
|
|
|
198
|
-
/**
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Every path under `dir`, recursively, split into the text files the census
|
|
207
|
+
* reads and everything else. Both are relative to `dir` and sorted.
|
|
208
|
+
*
|
|
209
|
+
* The recursion is the repair. The previous reader took only the files
|
|
210
|
+
* DIRECTLY in a topic directory, so a nested folder of later-loop plans was
|
|
211
|
+
* invisible while the closing line still claimed every anchor left with a
|
|
212
|
+
* ledger row. Measured on the round that found it: twelve files reported
|
|
213
|
+
* against fourteen present, and zero revision sets against three.
|
|
214
|
+
*/
|
|
215
|
+
function collect(dir: string, recursive: boolean): { text: string[]; other: string[] } {
|
|
216
|
+
const text: string[] = [];
|
|
217
|
+
const other: string[] = [];
|
|
218
|
+
const walk = (abs: string, rel: string): void => {
|
|
219
|
+
for (const d of fs.readdirSync(abs, { withFileTypes: true })) {
|
|
220
|
+
const childRel = rel === '' ? d.name : `${rel}/${d.name}`;
|
|
221
|
+
if (d.isDirectory()) {
|
|
222
|
+
if (recursive) walk(path.join(abs, d.name), childRel);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
if (!d.isFile()) continue;
|
|
226
|
+
if (TEXT_EXT.has(path.extname(d.name).toLowerCase())) text.push(childRel);
|
|
227
|
+
else other.push(childRel);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
walk(dir, '');
|
|
231
|
+
text.sort();
|
|
232
|
+
other.sort();
|
|
233
|
+
return { text, other };
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Group one topic folder's files into source sets and count its anchors.
|
|
238
|
+
*
|
|
239
|
+
* `recursive` is true for a topic, false for the round root — `censusRoot`
|
|
240
|
+
* treats each immediate subdirectory as its own topic, so a recursive root
|
|
241
|
+
* pass would count those files twice.
|
|
242
|
+
*/
|
|
243
|
+
export function censusTopic(dir: string, topic: string, recursive = true): TopicCensus {
|
|
244
|
+
const { text: names, other: uncounted } = collect(dir, recursive);
|
|
205
245
|
|
|
206
246
|
const byStem = new Map<string, FileCensus[]>();
|
|
207
247
|
const ids = new Set<string>();
|
|
@@ -209,7 +249,12 @@ export function censusTopic(dir: string, topic: string): TopicCensus {
|
|
|
209
249
|
const abs = path.join(dir, name);
|
|
210
250
|
const fc = censusFile(abs, name);
|
|
211
251
|
for (const id of decisionIds(fs.readFileSync(abs, 'utf-8'))) ids.add(id);
|
|
212
|
-
|
|
252
|
+
// The stem comes from the BASENAME, so `plan.md` and `v2/plan.md` are
|
|
253
|
+
// one revision set across directory levels. That is the grouping this
|
|
254
|
+
// repair is for; it also means two unrelated files that happen to
|
|
255
|
+
// share a stem at different depths read as one set, which is why each
|
|
256
|
+
// member is printed with its path relative to the topic.
|
|
257
|
+
const stem = stemOf(path.basename(name));
|
|
213
258
|
const bucket = byStem.get(stem);
|
|
214
259
|
if (bucket) bucket.push(fc);
|
|
215
260
|
else byStem.set(stem, [fc]);
|
|
@@ -228,6 +273,7 @@ export function censusTopic(dir: string, topic: string): TopicCensus {
|
|
|
228
273
|
sets,
|
|
229
274
|
decisionIds: [...ids].sort(),
|
|
230
275
|
fileCount: names.length,
|
|
276
|
+
uncounted,
|
|
231
277
|
anchorTotal: sets.reduce(
|
|
232
278
|
(n, s) => n + s.members.reduce((m, f) => m + f.total, 0),
|
|
233
279
|
0,
|
|
@@ -238,12 +284,12 @@ export function censusTopic(dir: string, topic: string): TopicCensus {
|
|
|
238
284
|
/** Walk a round root: each immediate subdirectory is a topic, plus the root itself. */
|
|
239
285
|
export function censusRoot(root: string): TopicCensus[] {
|
|
240
286
|
const out: TopicCensus[] = [];
|
|
241
|
-
const rootLevel = censusTopic(root, '.');
|
|
242
|
-
if (rootLevel.fileCount > 0) out.push(rootLevel);
|
|
287
|
+
const rootLevel = censusTopic(root, '.', false);
|
|
288
|
+
if (rootLevel.fileCount > 0 || rootLevel.uncounted.length > 0) out.push(rootLevel);
|
|
243
289
|
for (const d of fs.readdirSync(root, { withFileTypes: true })) {
|
|
244
290
|
if (!d.isDirectory()) continue;
|
|
245
291
|
const t = censusTopic(path.join(root, d.name), d.name);
|
|
246
|
-
if (t.fileCount > 0) out.push(t);
|
|
292
|
+
if (t.fileCount > 0 || t.uncounted.length > 0) out.push(t);
|
|
247
293
|
}
|
|
248
294
|
return out;
|
|
249
295
|
}
|
|
@@ -252,6 +298,7 @@ function render(topics: TopicCensus[], write: (s: string) => unknown): void {
|
|
|
252
298
|
let files = 0;
|
|
253
299
|
let anchors = 0;
|
|
254
300
|
let revisionSets = 0;
|
|
301
|
+
let uncounted = 0;
|
|
255
302
|
for (const t of topics) {
|
|
256
303
|
write(`\n## ${t.topic}\n`);
|
|
257
304
|
for (const s of t.sets) {
|
|
@@ -268,13 +315,27 @@ function render(topics: TopicCensus[], write: (s: string) => unknown): void {
|
|
|
268
315
|
if (s.isRevisionSet) revisionSets += 1;
|
|
269
316
|
}
|
|
270
317
|
if (t.decisionIds.length > 0) write(` decision ids: ${t.decisionIds.join(' ')}\n`);
|
|
318
|
+
if (t.uncounted.length > 0) {
|
|
319
|
+
write(` not counted (${String(t.uncounted.length)}): ${t.uncounted.join(', ')}\n`);
|
|
320
|
+
}
|
|
271
321
|
files += t.fileCount;
|
|
272
322
|
anchors += t.anchorTotal;
|
|
323
|
+
uncounted += t.uncounted.length;
|
|
273
324
|
}
|
|
274
325
|
write(
|
|
275
326
|
`\ntopics ${String(topics.length)} · files ${String(files)} · ` +
|
|
276
|
-
`revision sets ${String(revisionSets)} · anchors ${String(anchors)}
|
|
277
|
-
|
|
327
|
+
`revision sets ${String(revisionSets)} · anchors ${String(anchors)} · ` +
|
|
328
|
+
`not counted ${String(uncounted)}\n`,
|
|
329
|
+
);
|
|
330
|
+
if (uncounted > 0) {
|
|
331
|
+
write(
|
|
332
|
+
`${String(uncounted)} file(s) are named above and were NOT read — the census reads ` +
|
|
333
|
+
`${[...TEXT_EXT].sort().join(' ')} only. The anchor total below is over what was ` +
|
|
334
|
+
'read, so it is a floor and not a measure of the folder.\n',
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
write(
|
|
338
|
+
'Every anchor leaves the run carrying a ledger row or named in one `no-demand` line.\n' +
|
|
278
339
|
'Every revision set owes a consecutive-member diff (/analyze:inbox Phase 2b).\n',
|
|
279
340
|
);
|
|
280
341
|
}
|
package/src/scripts/install
CHANGED
|
@@ -208,6 +208,15 @@ if $NO_UI; then
|
|
|
208
208
|
export AGENT_CONFIG_NO_UI=1
|
|
209
209
|
fi
|
|
210
210
|
|
|
211
|
+
# `--scope global` is documented above as "same as --global", and it was not:
|
|
212
|
+
# it set SCOPE and nothing else, so the PROJECT payload sync still ran. Under
|
|
213
|
+
# npx that sync auto-detects its target three levels above the package, which
|
|
214
|
+
# is the npx cache, so a global dry-run reported writing `.augment/` there.
|
|
215
|
+
if [[ "${SCOPE:-}" == "global" ]]; then
|
|
216
|
+
GLOBAL=true
|
|
217
|
+
SKIP_SYNC=true
|
|
218
|
+
fi
|
|
219
|
+
|
|
211
220
|
# road-to-global-only-install § Phase 3.3 — consumer-floor gate.
|
|
212
221
|
#
|
|
213
222
|
# Consumer installs are global-only (ADR-020). Explicit --scope=project
|
|
@@ -419,12 +428,19 @@ run_bridges() {
|
|
|
419
428
|
runner=($tsx_bin "$INSTALL_TS")
|
|
420
429
|
fi
|
|
421
430
|
|
|
431
|
+
local args=(--project "$TARGET_DIR" --package "$SOURCE_DIR")
|
|
422
432
|
if $DRY_RUN; then
|
|
423
|
-
|
|
424
|
-
|
|
433
|
+
# The install stage owns the global plan, so a dry run asks IT rather
|
|
434
|
+
# than skipping it: install.ts returns from its plan summary before any
|
|
435
|
+
# write or subprocess. Skipping it here left a global dry run printing
|
|
436
|
+
# nothing but the one stage that does not apply to a global install.
|
|
437
|
+
$GLOBAL && args+=(--global)
|
|
438
|
+
[[ -n "$SCOPE" ]] && args+=(--scope="$SCOPE")
|
|
439
|
+
args+=(--tools="$TOOLS" --no-ui --dry-run)
|
|
440
|
+
"${runner[@]}" "${args[@]}"
|
|
441
|
+
return $?
|
|
425
442
|
fi
|
|
426
443
|
|
|
427
|
-
local args=(--project "$TARGET_DIR" --package "$SOURCE_DIR")
|
|
428
444
|
[[ -n "$PROFILE" ]] && args+=(--profile="$PROFILE")
|
|
429
445
|
[[ -n "$USER_TYPE" ]] && args+=(--user-type="$USER_TYPE")
|
|
430
446
|
$FORCE && args+=(--force)
|
|
@@ -473,6 +489,12 @@ if ! $SKIP_SYNC; then
|
|
|
473
489
|
exit 1
|
|
474
490
|
fi
|
|
475
491
|
run_sync || RC=$?
|
|
492
|
+
elif $DRY_RUN && ! $QUIET; then
|
|
493
|
+
if $GLOBAL; then
|
|
494
|
+
echo " ⏭️ Project payload sync: skipped — a global install writes user-scope host paths only."
|
|
495
|
+
else
|
|
496
|
+
echo " ⏭️ Project payload sync: skipped (--skip-sync)."
|
|
497
|
+
fi
|
|
476
498
|
fi
|
|
477
499
|
|
|
478
500
|
if [[ $RC -ne 0 ]]; then
|
package/src/scripts/install.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Agent Config — Project Bridge Installer (TypeScript twin).
|
|
4
4
|
*
|
|
5
|
-
* Ported from the retired Python
|
|
5
|
+
* Ported from the retired Python installer (ADR-200).
|
|
6
6
|
* The CLI contract pins the historical contract exactly — same flags, same
|
|
7
7
|
* exit codes, same stdout/stderr split, byte-identical emitted output,
|
|
8
8
|
* same filesystem effects, same subprocess argv/cwd/env. No behaviour
|
|
@@ -88,8 +88,9 @@ import * as mcp_consent from './_lib/mcp_consent_residual.js';
|
|
|
88
88
|
import * as scoped_projection from './_lib/scoped_projection.js';
|
|
89
89
|
import { createConflictTracker } from '../install/conflictTracker.js';
|
|
90
90
|
import { mkdirp, pathExists, resolvePath, sha256OfFile } from '../install/fsPrimitives.js';
|
|
91
|
-
import { filesByToolFromBridges as _files_by_tool_from_bridges, filesByToolFromDeploy as _files_by_tool_from_deploy, hydrateRecordedInventories, preservedIndex, readRecordedByTool, reconcileToolFiles, type ManifestFileEntry } from '../install/manifestFiles.js';
|
|
91
|
+
import { dropGlobalScopeFiles, filesByToolFromBridges as _files_by_tool_from_bridges, filesByToolFromDeploy as _files_by_tool_from_deploy, hydrateRecordedInventories, preservedIndex, readRecordedByTool, reconcileToolFiles, type ManifestFileEntry } from '../install/manifestFiles.js';
|
|
92
92
|
import { EXIT_COMPLETED_WITH_CONFLICTS } from '../install/preserve.js';
|
|
93
|
+
import { recordGlobalDeploy, retainedFileMessage } from '../install/ownershipLedger.js';
|
|
93
94
|
import * as surface_tiers from './_lib/surface_tiers.js';
|
|
94
95
|
import * as global_deploy_inventory from './_lib/global_deploy_inventory.js';
|
|
95
96
|
import * as rule_layer_overlap from './_lib/rule_layer_overlap.js';
|
|
@@ -105,8 +106,10 @@ import * as catalogue from './_lib/skill_catalogue.js';
|
|
|
105
106
|
import { isInteractiveSession, type SessionProbe } from '../shared/interactiveContext.js';
|
|
106
107
|
import * as claude_desktop_bundler from './_lib/claude_desktop_bundler.js';
|
|
107
108
|
import * as claude_settings_hooks from './_lib/claude_settings_hooks.js';
|
|
109
|
+
import { applyHostListingPolicies } from './_lib/skill_listing_overrides.js';
|
|
108
110
|
import { hostBindings } from './hooks/host_lowering.js';
|
|
109
111
|
import { find_project_root_with_anchor, load_agent_settings } from './_lib/agent_settings.js';
|
|
112
|
+
import { legacyProjectionPin } from './_lib/projection_key_migration.js';
|
|
110
113
|
import { ruleFileArrives, type RuleScope } from '../install/rule_scope.js';
|
|
111
114
|
import { isExclusivelyPackageOnly, stampHostLayerFingerprint } from '../install/partitionEligibility.js'; // ADR-236
|
|
112
115
|
import * as claude_rule_rewrite from '../install/claudeRuleRewrite.js';
|
|
@@ -116,8 +119,10 @@ import {
|
|
|
116
119
|
thinInstalledRuleLayer,
|
|
117
120
|
} from '../install/installThinLayer.js';
|
|
118
121
|
import { resolveGlobalRuleScope } from '../install/globalRuleScope.js';
|
|
122
|
+
import { deployClaudeCarrier } from '../install/stagedRuntime.js';
|
|
123
|
+
import { mergeToolsAliases as _merge_tools_aliases } from '../install/toolsArg.js';
|
|
119
124
|
import { installerThinsHost } from './_lib/lean_projection_mode.js';
|
|
120
|
-
import { GLOBAL_DEPLOY_SOURCES, RULE_SOURCE_REL } from '../install/wizard-plan.js';
|
|
125
|
+
import { GLOBAL_DEPLOY_SOURCES, RULE_SOURCE_REL, dryRunTargetLines } from '../install/wizard-plan.js';
|
|
121
126
|
import { flattenSurface, computeSurfaceDelta, type SettingsSurface } from '../shared/settingsSurface.js';
|
|
122
127
|
import { settingsSchema } from '../server/schemas/settings.js';
|
|
123
128
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
@@ -348,6 +353,7 @@ const LEGACY_RENAME_MAP: Record<string, string> = {
|
|
|
348
353
|
const state = {
|
|
349
354
|
QUIET: false,
|
|
350
355
|
PROGRESS_NDJSON: false,
|
|
356
|
+
FULL_PIN: false,
|
|
351
357
|
};
|
|
352
358
|
|
|
353
359
|
function _emit_progress(obj: Record<string, unknown>): void {
|
|
@@ -952,13 +958,7 @@ function ensure_claude_bridge(project_root: string, force: boolean): Record<stri
|
|
|
952
958
|
// `_lib/mcp_bridge.ts`; only the call sites are here (see that module's header
|
|
953
959
|
// for why). Names are forwarded so the export surface is unchanged.
|
|
954
960
|
const ensure_mcp_bridge = mcp_bridge.makeEnsureMcpBridge(merge_json_file);
|
|
955
|
-
const _resolve_tier_b = mcp_bridge.resolveTierB;
|
|
956
961
|
const _tier_b_advisory = mcp_bridge.tierBAdvisory;
|
|
957
|
-
const _prune_tier_b_modules = (
|
|
958
|
-
dr: Record<string, DeployResult>,
|
|
959
|
-
tier_b: ReadonlySet<string>,
|
|
960
|
-
): [number, Record<string, DeployResult>] =>
|
|
961
|
-
_prune_modules_by(dr, mcp_bridge.tierBPrunePredicate(tier_b));
|
|
962
962
|
|
|
963
963
|
function _cursor_dispatch_command(ac_event: string, native: string): string {
|
|
964
964
|
// Hook-resilience shim (P1.4): missing binary → silent exit 0; a
|
|
@@ -1935,6 +1935,8 @@ interface Options {
|
|
|
1935
1935
|
interactive: boolean;
|
|
1936
1936
|
no_ui: boolean;
|
|
1937
1937
|
dry_run: boolean;
|
|
1938
|
+
/** `--full`: write the sticky user pin into the install receipt (`src/install/userPin.ts`). */
|
|
1939
|
+
full: boolean;
|
|
1938
1940
|
apply_payload: string | null;
|
|
1939
1941
|
/**
|
|
1940
1942
|
* Which rule layer owns the corpus when both `~/.claude/rules/` and
|
|
@@ -2306,7 +2308,7 @@ function _update_installed_tools_manifest(
|
|
|
2306
2308
|
}
|
|
2307
2309
|
}
|
|
2308
2310
|
|
|
2309
|
-
installed_tools.write_manifest(target, version, entries);
|
|
2311
|
+
installed_tools.write_manifest(target, version, dropGlobalScopeFiles(entries, scope === 'global' ? tools : new Set()));
|
|
2310
2312
|
if (!state.QUIET) {
|
|
2311
2313
|
const rel = isRelativeTo(target, project_root) ? path.relative(project_root, target) : target;
|
|
2312
2314
|
info(`Manifest updated: ${rel}`);
|
|
@@ -2714,7 +2716,7 @@ function _copy_dir_dereferencing_symlinks(
|
|
|
2714
2716
|
return [0, 0, written_paths];
|
|
2715
2717
|
}
|
|
2716
2718
|
mkdirp(path.dirname(dest));
|
|
2717
|
-
const decision = tracker.resolve(dest, force);
|
|
2719
|
+
const decision = tracker.resolve(dest, force, { from: resolved_src, packageRoot: package_root });
|
|
2718
2720
|
if (decision === 'preserve') {
|
|
2719
2721
|
tracker.preserve(dest, resolved_src, package_root);
|
|
2720
2722
|
_log_tx_entry('skip', dest);
|
|
@@ -2789,7 +2791,7 @@ function _copy_dir_dereferencing_symlinks(
|
|
|
2789
2791
|
if (file_filter !== null && !file_filter(entry)) {
|
|
2790
2792
|
continue;
|
|
2791
2793
|
}
|
|
2792
|
-
const decision = tracker.resolve(target, force);
|
|
2794
|
+
const decision = tracker.resolve(target, force, { from: resolved, packageRoot: package_root });
|
|
2793
2795
|
if (decision === 'preserve') {
|
|
2794
2796
|
tracker.preserve(target, resolved, package_root);
|
|
2795
2797
|
skipped += 1;
|
|
@@ -2823,7 +2825,7 @@ function _write_claude_desktop_marker(
|
|
|
2823
2825
|
// Generated, but manifest-recorded with a digest — so it is in the class the
|
|
2824
2826
|
// preservation ruling covers, and it used to write unconditionally, ignoring
|
|
2825
2827
|
// even `--force`, because the tracker was wired only into the copy loop.
|
|
2826
|
-
if (tracker.resolve(target, force) === 'preserve') {
|
|
2828
|
+
if (tracker.resolve(target, force, { content: body }) === 'preserve') {
|
|
2827
2829
|
tracker.preserveContent(target, body);
|
|
2828
2830
|
return [0, 1, []];
|
|
2829
2831
|
}
|
|
@@ -2841,12 +2843,9 @@ function _deploy_claude_desktop(
|
|
|
2841
2843
|
claude_desktop_bundler.build_skill_bundles(package_root, bundles_dir, force);
|
|
2842
2844
|
claude_desktop_bundler.build_command_bundles(package_root, bundles_dir, force);
|
|
2843
2845
|
const bundle_count = countZips(bundles_dir);
|
|
2844
|
-
const [, , marker_paths] = _write_claude_desktop_marker(
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
bundles_dir,
|
|
2848
|
-
bundle_count,
|
|
2849
|
-
);
|
|
2846
|
+
const [, , marker_paths] = _write_claude_desktop_marker(force, lockfile_path, bundles_dir, bundle_count);
|
|
2847
|
+
// The marker's digest is the ledger's to hold: a global lock entry records no files[].
|
|
2848
|
+
recordGlobalDeploy({ toolId: 'claude-desktop', anchorRaw: USER_SCOPE_PATHS['claude-desktop'] as string, anchor: expanduser(USER_SCOPE_PATHS['claude-desktop'] as string), currentFiles: new Set(['agent-config.md']), destSubs: [], packageTag: PACKAGE_TAG_ID, preserved: tracker.conflictState.preserved, staged: tracker.conflictState.staged, recordedFor: tracker.recordedDigest });
|
|
2850
2849
|
return [bundle_count, 0, 'deployed', [bundles_dir, ...marker_paths]];
|
|
2851
2850
|
}
|
|
2852
2851
|
|
|
@@ -3015,18 +3014,11 @@ function _deploy_global_content(
|
|
|
3015
3014
|
);
|
|
3016
3015
|
// Steps 1.1 and 1.4 of road-to-an-installed-layer-that-is-thinned;
|
|
3017
3016
|
// both modules' headers carry the reasoning.
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
preserved: preserved_now,
|
|
3024
|
-
});
|
|
3025
|
-
if (!state.QUIET) for (const l of describeThinInstalledLayer(thin)) info(l);
|
|
3026
|
-
} catch (e) {
|
|
3027
|
-
warn(`claude-code: thinned rule layer not written — ${String(e)}`);
|
|
3028
|
-
}
|
|
3029
|
-
}
|
|
3017
|
+
deployClaudeCarrier({
|
|
3018
|
+
packageRoot: package_root, rulesDir: path.join(anchor, 'rules'), quiet: state.QUIET, info, warn, userPin: state.FULL_PIN,
|
|
3019
|
+
wantsThin: installerThinsHost(tool_id, { packageRoot: package_root }),
|
|
3020
|
+
thin: (bodyLinkRoot) => describeThinInstalledLayer(thinInstalledRuleLayer({ rulesDir: path.join(anchor, 'rules'), packageRoot: package_root, preserved: preserved_now, bodyLinkRoot })),
|
|
3021
|
+
});
|
|
3030
3022
|
if (!state.QUIET) for (const l of installReceiptBudgetLines(package_root, undefined, { thisDeploy: new Map([[anchor, current_files]]) })) info(l);
|
|
3031
3023
|
}
|
|
3032
3024
|
|
|
@@ -3044,25 +3036,14 @@ function _deploy_global_content(
|
|
|
3044
3036
|
}
|
|
3045
3037
|
_emit_progress({ type: 'verified', tool: tool_id });
|
|
3046
3038
|
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
reaped = reaped.concat(
|
|
3056
|
-
global_deploy_inventory.reap_tagged_orphans(
|
|
3057
|
-
anchor,
|
|
3058
|
-
plan.map(([, dest_sub]) => dest_sub),
|
|
3059
|
-
current_files,
|
|
3060
|
-
PACKAGE_TAG_ID,
|
|
3061
|
-
),
|
|
3062
|
-
);
|
|
3063
|
-
reaped = [...new Set(reaped)].sort();
|
|
3064
|
-
global_deploy_inventory.record_deploy(tool_id, anchor_raw, current_files, inventory);
|
|
3065
|
-
global_deploy_inventory.save_inventory(inventory);
|
|
3039
|
+
// Reap, then record the user-scoped ownership ledger — see the module.
|
|
3040
|
+
const { reaped, retained } = recordGlobalDeploy({
|
|
3041
|
+
toolId: tool_id, anchorRaw: anchor_raw, anchor, currentFiles: current_files,
|
|
3042
|
+
destSubs: plan.map(([, dest_sub]) => dest_sub), packageTag: PACKAGE_TAG_ID,
|
|
3043
|
+
preserved: tracker.conflictState.preserved, staged: tracker.conflictState.staged,
|
|
3044
|
+
recordedFor: tracker.recordedDigest,
|
|
3045
|
+
});
|
|
3046
|
+
for (const p of retained) warn(retainedFileMessage(p));
|
|
3066
3047
|
if (reaped.length > 0 && !state.QUIET) {
|
|
3067
3048
|
info(
|
|
3068
3049
|
` ${tool_id}: reaped ${reaped.length} stale deployed file(s) ` +
|
|
@@ -3072,11 +3053,8 @@ function _deploy_global_content(
|
|
|
3072
3053
|
_emit_progress({ type: 'reaped', tool: tool_id, count: reaped.length });
|
|
3073
3054
|
results[tool_id] = [written_total, skipped_total, 'deployed', written_paths];
|
|
3074
3055
|
|
|
3075
|
-
//
|
|
3076
|
-
//
|
|
3077
|
-
// settings file — the marketplace plugin is no longer required for
|
|
3078
|
-
// hooks. Failure here must not sink the content deploy (hooks can
|
|
3079
|
-
// be re-wired via `agent-config refresh --global` / doctor).
|
|
3056
|
+
// The hook matrix registers in the user-scope settings file; failure must not sink the
|
|
3057
|
+
// content deploy (re-wire via `agent-config refresh --global` / doctor).
|
|
3080
3058
|
if (tool_id === 'claude-code') {
|
|
3081
3059
|
try {
|
|
3082
3060
|
const manifest = path.join(package_root, 'src', 'scripts', 'hook_manifest.yaml');
|
|
@@ -3151,6 +3129,8 @@ function _preview_global_reap(
|
|
|
3151
3129
|
current_files,
|
|
3152
3130
|
PACKAGE_TAG_ID,
|
|
3153
3131
|
true,
|
|
3132
|
+
// The ledger spares an edited retired file, so the preview must too.
|
|
3133
|
+
global_deploy_inventory.recorded_digests(tool_id, anchor, inventory),
|
|
3154
3134
|
),
|
|
3155
3135
|
);
|
|
3156
3136
|
const paths = [...new Set(would_reap.map((p) => String(p)))].sort();
|
|
@@ -3296,19 +3276,8 @@ function _rule_filter_for_source(
|
|
|
3296
3276
|
ruleFileArrives(srcFile, scope) && !isExclusivelyPackageOnly(srcFile);
|
|
3297
3277
|
}
|
|
3298
3278
|
|
|
3299
|
-
/**
|
|
3300
|
-
|
|
3301
|
-
* non-empty AND has no intersection with `active_ids`. Untagged artefacts
|
|
3302
|
-
* (empty `packs:` frontmatter) are core/shared and always kept.
|
|
3303
|
-
*/
|
|
3304
|
-
function _prune_scoped_modules(
|
|
3305
|
-
deploy_results: Record<string, DeployResult>,
|
|
3306
|
-
active_ids: ReadonlySet<string>,
|
|
3307
|
-
): [number, Record<string, DeployResult>] {
|
|
3308
|
-
return _prune_modules_by(deploy_results, (p) =>
|
|
3309
|
-
scoped_projection.is_pruned_under_scoped(p, active_ids),
|
|
3310
|
-
);
|
|
3311
|
-
}
|
|
3279
|
+
/** Pack prune that keeps every skill a surviving artefact declares (ADR-289). */
|
|
3280
|
+
const _prune_scoped_modules = scoped_projection.prune_scoped_modules;
|
|
3312
3281
|
|
|
3313
3282
|
function install_global(
|
|
3314
3283
|
tools: Set<string>,
|
|
@@ -3438,13 +3407,6 @@ function install_global(
|
|
|
3438
3407
|
// here and restores the full tree — never a partial or crashed prune.
|
|
3439
3408
|
try {
|
|
3440
3409
|
const { mode, active_packs } = _resolve_scoped_projection(package_root);
|
|
3441
|
-
if (mode === 'tiered') {
|
|
3442
|
-
const outcome = mcp_bridge.applyTieredPrune(deploy_results, package_root, _prune_modules_by);
|
|
3443
|
-
deploy_results = outcome.deployResults;
|
|
3444
|
-
if (!state.QUIET && outcome.message !== null) {
|
|
3445
|
-
(outcome.level === 'warn' ? warn : info)(outcome.message);
|
|
3446
|
-
}
|
|
3447
|
-
}
|
|
3448
3410
|
if (mode === 'scoped') {
|
|
3449
3411
|
const packs_registry = _load_packs_registry(package_root);
|
|
3450
3412
|
const active_ids = _compute_active_pack_ids(packs_registry, active_packs);
|
|
@@ -3463,6 +3425,8 @@ function install_global(
|
|
|
3463
3425
|
warn(`Scoped-projection prune failed — restoring full tree (${String(e)}).`);
|
|
3464
3426
|
}
|
|
3465
3427
|
}
|
|
3428
|
+
// After every prune, so only skills still on disk are computed into the listing override.
|
|
3429
|
+
applyHostListingPolicies({ claudeCode: deploy_results['claude-code']?.[2] === 'deployed', codex: deploy_results['codex']?.[2] === 'deployed' }, os.homedir(), expanduser(USER_SCOPE_PATHS['claude-code']!), state.QUIET ? () => undefined : info);
|
|
3466
3430
|
|
|
3467
3431
|
const failed_tools = new Set<string>(
|
|
3468
3432
|
Object.keys(deploy_results).filter(
|
|
@@ -3758,18 +3722,6 @@ function arrayStrEqual(a: string[], b: string[]): boolean {
|
|
|
3758
3722
|
|
|
3759
3723
|
// --- Argument parsing ---
|
|
3760
3724
|
|
|
3761
|
-
function _merge_tools_aliases(tools: string | null, ai: string | null): string {
|
|
3762
|
-
const items: string[] = [];
|
|
3763
|
-
for (const raw of [tools, ai]) {
|
|
3764
|
-
if (!raw) continue;
|
|
3765
|
-
for (const piece of raw.split(',')) {
|
|
3766
|
-
const stripped = piece.trim();
|
|
3767
|
-
if (stripped && !items.includes(stripped)) items.push(stripped);
|
|
3768
|
-
}
|
|
3769
|
-
}
|
|
3770
|
-
return items.length > 0 ? items.join(',') : 'all';
|
|
3771
|
-
}
|
|
3772
|
-
|
|
3773
3725
|
const PROG = 'agent-config install';
|
|
3774
3726
|
// Verbatim argparse usage block at COLUMNS=80 (captured from the .py). The
|
|
3775
3727
|
// `--help` BODY (per-flag descriptions) is a documented divergence — argparse
|
|
@@ -3782,7 +3734,7 @@ const USAGE =
|
|
|
3782
3734
|
' [--windsurf-user-hooks] [--gemini-user-hooks]\n' +
|
|
3783
3735
|
' [--project PROJECT] [--package PACKAGE] [--quiet]\n' +
|
|
3784
3736
|
' [--tools TOOLS] [--ai AI] [--packs PACKS] [--core-only]\n' +
|
|
3785
|
-
' [--no-smoke] [--global]\n' +
|
|
3737
|
+
' [--no-smoke] [--global] [--full]\n' +
|
|
3786
3738
|
' [--scope {project,global,prompt,auto}]\n' +
|
|
3787
3739
|
' [--layer {global,project,both-acknowledged}]\n' +
|
|
3788
3740
|
' [--custom-path CUSTOM_PATH] [--offline] [--minimal]\n' +
|
|
@@ -3807,6 +3759,7 @@ const _STORE_TRUE_FLAGS: Record<string, keyof Options> = {
|
|
|
3807
3759
|
'--interactive': 'interactive',
|
|
3808
3760
|
'--no-ui': 'no_ui',
|
|
3809
3761
|
'--dry-run': 'dry_run',
|
|
3762
|
+
'--full': 'full',
|
|
3810
3763
|
};
|
|
3811
3764
|
|
|
3812
3765
|
const _VALUE_FLAGS: Record<string, keyof Options> = {
|
|
@@ -3856,6 +3809,7 @@ function parse_options(argv: string[]): Options {
|
|
|
3856
3809
|
interactive: false,
|
|
3857
3810
|
no_ui: false,
|
|
3858
3811
|
dry_run: false,
|
|
3812
|
+
full: false,
|
|
3859
3813
|
apply_payload: null,
|
|
3860
3814
|
layer: null,
|
|
3861
3815
|
};
|
|
@@ -4478,7 +4432,7 @@ function _dry_run_summary(opts: Options): number {
|
|
|
4478
4432
|
process.stdout.write(` user-type: ${opts.user_type || '(none)'}\n`);
|
|
4479
4433
|
process.stdout.write(` scope: ${opts.scope || (opts.global_install ? 'global' : 'auto')}\n`);
|
|
4480
4434
|
process.stdout.write(` tools: ${opts.tools || 'all'}\n`);
|
|
4481
|
-
process.stdout.write(
|
|
4435
|
+
process.stdout.write(dryRunTargetLines(Boolean(opts.global_install) || opts.scope === 'global', _parse_tools(opts.tools || 'all'), target));
|
|
4482
4436
|
process.stdout.write(` minimal: ${pyBool(opts.minimal)}\n`);
|
|
4483
4437
|
process.stdout.write(` force: ${pyBool(opts.force)}\n`);
|
|
4484
4438
|
process.stdout.write(` offline: ${pyBool(opts.offline)}\n`);
|
|
@@ -4567,6 +4521,7 @@ function pyRepr(v: unknown): string {
|
|
|
4567
4521
|
function main(argv: string[]): number {
|
|
4568
4522
|
const opts = parse_options(argv);
|
|
4569
4523
|
state.QUIET = opts.quiet;
|
|
4524
|
+
state.FULL_PIN = opts.full || _legacy_projection_pin();
|
|
4570
4525
|
|
|
4571
4526
|
if (opts.apply_payload) {
|
|
4572
4527
|
const payload_path = resolvePath(opts.apply_payload);
|
|
@@ -4750,6 +4705,22 @@ function _propose_modules_config(project_root: string, is_first_run: boolean): v
|
|
|
4750
4705
|
);
|
|
4751
4706
|
}
|
|
4752
4707
|
|
|
4708
|
+
/**
|
|
4709
|
+
* ADR-293's one-window read of the removed projection keys — rules in
|
|
4710
|
+
* `_lib/projection_key_migration.ts`. MACHINE-global layers only, with the
|
|
4711
|
+
* TEMPLATE isolated (ADR-278 / D3: a template value is not consent, and the
|
|
4712
|
+
* shipped template carried `delivery`), and a layer nothing can read states no
|
|
4713
|
+
* preference. `_ABSENT_LAYER` is [project, template]; no tree contains either.
|
|
4714
|
+
*/
|
|
4715
|
+
const _ABSENT_LAYER: readonly [string, string] = ['project-settings', 'template'].map((n) => path.join(path.sep, 'dev', 'null', `agent-config-absent-${n}.yml`)) as unknown as readonly [string, string];
|
|
4716
|
+
function _legacy_projection_pin(): boolean {
|
|
4717
|
+
let data: Record<string, unknown> | null = null;
|
|
4718
|
+
try {
|
|
4719
|
+
data = load_agent_settings({ project_path: _ABSENT_LAYER[0], template_path: _ABSENT_LAYER[1] });
|
|
4720
|
+
} catch { /* empty */ }
|
|
4721
|
+
return legacyProjectionPin(data, (line) => warn(line));
|
|
4722
|
+
}
|
|
4723
|
+
|
|
4753
4724
|
function _read_consumer_auto_switch(project_root: string): string {
|
|
4754
4725
|
let data: Record<string, unknown>;
|
|
4755
4726
|
try {
|
|
@@ -5101,8 +5072,6 @@ export {
|
|
|
5101
5072
|
ensure_cursor_bridge,
|
|
5102
5073
|
ensure_cline_bridge,
|
|
5103
5074
|
ensure_mcp_bridge,
|
|
5104
|
-
_prune_tier_b_modules,
|
|
5105
|
-
_resolve_tier_b,
|
|
5106
5075
|
_tier_b_advisory,
|
|
5107
5076
|
ensure_windsurf_bridge,
|
|
5108
5077
|
ensure_gemini_bridge,
|
|
@@ -94,7 +94,17 @@ export interface RunReport {
|
|
|
94
94
|
elapsed_minutes: number | null;
|
|
95
95
|
waiting_minutes: number | null;
|
|
96
96
|
working_minutes: number | null;
|
|
97
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* `engage` events for this run in `run-continuation.jsonl`.
|
|
99
|
+
*
|
|
100
|
+
* The concern that wrote that ledger was withdrawn on its own
|
|
101
|
+
* pre-registered kill date (road-to-what-was-built-and-never-ran Phase 4),
|
|
102
|
+
* so this reads a HISTORICAL record: three lines, the last from
|
|
103
|
+
* 2026-08-19. The read is kept because the kill criterion kept the
|
|
104
|
+
* observation record, and a run that engaged before the withdrawal did
|
|
105
|
+
* engage. A fresh checkout has no file and the count is 0, which is the
|
|
106
|
+
* same answer it gave for every run that never engaged.
|
|
107
|
+
*/
|
|
98
108
|
reengagements: number;
|
|
99
109
|
/** `halt-stall` events — the anti-stall rung firing, not the loop working. */
|
|
100
110
|
stall_halts: number;
|