@event4u/agent-config 16.5.0 → 17.1.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 +114 -530
- package/CONTRIBUTING.md +47 -0
- package/README.md +25 -24
- 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 +10 -2
- 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 +44 -2
- 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-2Y5AMLMY.js +136 -0
- package/dist/cli-delegate/chunk-3PK3VZHB.js +235 -0
- package/dist/cli-delegate/{chunk-OKJUIAPS.js → chunk-4E2W63DA.js} +1 -62
- 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-F3QDG2GT.js → chunk-BZJ4Y3CI.js} +259 -159
- package/dist/cli-delegate/{chunk-5GPULQBE.js → chunk-CMZEKSNN.js} +4280 -705
- package/dist/cli-delegate/chunk-DSY6LLCQ.js +127 -0
- package/dist/cli-delegate/{chunk-ZUZKZYCN.js → chunk-E3CFULNX.js} +67 -13
- 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-I4KJYVPB.js +69 -0
- package/dist/cli-delegate/{chunk-JQOM7TTM.js → chunk-IDAOTDPE.js} +1 -100
- package/dist/cli-delegate/chunk-J2SJZICO.js +698 -0
- package/dist/cli-delegate/chunk-KR5ZIFPO.js +581 -0
- 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-QBHEI5N4.js +919 -0
- package/dist/cli-delegate/{chunk-F7DQWYR5.js → chunk-RAXQOETZ.js} +6 -2
- 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-T7XSJSUQ.js → chunk-VYZGJLCA.js} +1000 -814
- package/dist/cli-delegate/chunk-W5JXMF2T.js +77 -0
- 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-6SRJTYJS.js → chunk-XIAPY44N.js} +37 -16
- package/dist/cli-delegate/{chunk-H76PHZBI.js → chunk-XLY5G3CM.js} +14 -19
- package/dist/cli-delegate/{chunk-6YQC2HLF.js → chunk-YHAPONWV.js} +54 -40
- 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 +487 -820
- 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 +15 -12
- package/dist/cli-delegate/cmd_fleet.js +6 -4
- 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 +8 -6
- package/dist/cli-delegate/cmd_prune.js +17 -14
- 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 +15 -12
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +17 -14
- package/dist/cli-delegate/cmd_uninstall.js +186 -32
- package/dist/cli-delegate/cmd_update.js +76 -16
- package/dist/cli-delegate/cmd_upgrade.js +38 -7
- package/dist/cli-delegate/cmd_validate.js +17 -14
- 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 +17450 -18612
- 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/claudeRuleRewrite.js +10 -3
- package/dist/install/conflict.js +59 -7
- package/dist/install/conflictTracker.js +93 -8
- package/dist/install/detect.js +3 -3
- package/dist/install/hostPermissionsAdapter.js +106 -0
- package/dist/install/install.mjs +3234 -1961
- package/dist/install/installThinLayer.js +2 -1
- package/dist/install/loggedWrites.js +142 -0
- 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/paths.js +12 -2
- package/dist/install/plan.js +1 -1
- package/dist/install/preflight.js +39 -8
- package/dist/install/preserve.js +96 -13
- 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/txlog.js +10 -6
- 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 +10716 -5880
- 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 +769 -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 +57 -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 +33 -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 +45 -1
- 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 +176 -10
- package/src/config/gate-reachability-exemptions.json +3 -5
- package/src/config/gate-violation-baselines.json +32 -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/production-entries.json +18 -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/release-gate-locality.yml +0 -7
- 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/claudeRuleRewrite.ts +10 -1
- package/src/install/conflict.ts +61 -6
- package/src/install/conflictTracker.ts +143 -9
- package/src/install/detect.ts +3 -3
- package/src/install/hostPermissionsAdapter.ts +136 -0
- package/src/install/installThinLayer.ts +12 -1
- package/src/install/loggedWrites.ts +148 -0
- 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/paths.ts +11 -2
- package/src/install/plan.ts +1 -1
- package/src/install/preflight.ts +42 -10
- package/src/install/preserve.ts +131 -13
- 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/txlog.ts +10 -6
- 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_conformance.ts +3 -2
- 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 +49 -18
- 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/council_settings_block.ts +9 -2
- 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 +899 -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 +44 -7
- 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 +62 -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/price_freshness.ts +112 -0
- package/src/scripts/_lib/procedure_checks.ts +5 -0
- package/src/scripts/_lib/production_reach.ts +194 -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 +29 -14
- 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 +36 -311
- 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 +268 -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 +20 -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 +56 -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 +288 -0
- package/src/scripts/ai_council/free_route.ts +216 -0
- package/src/scripts/ai_council/free_route_catalog.ts +310 -0
- package/src/scripts/ai_council/free_route_client.ts +99 -0
- package/src/scripts/ai_council/free_rung.ts +61 -0
- package/src/scripts/ai_council/hand_payload.ts +338 -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 +23 -26
- 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 +114 -0
- package/src/scripts/ai_council/seat_policy.ts +47 -0
- package/src/scripts/ai_council/seat_resume.ts +40 -0
- package/src/scripts/ai_council/self_hosted_probe.ts +327 -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 +39 -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 +406 -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 +174 -73
- 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 +8 -3
- 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_production_reach.ts +257 -0
- 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 +56 -44
- 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 +68 -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 +14 -13
- 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 +43 -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 +162 -10
- package/src/scripts/hooks/state_io.ts +2 -2
- package/src/scripts/hooks/subagent_ledger_hook.ts +80 -0
- 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 +61 -92
- 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_decision_classes.ts +34 -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 +118 -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 +114 -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 +31 -64
- package/src/scripts/release_drill.ts +63 -188
- package/src/scripts/release_env.ts +37 -0
- package/src/scripts/release_publication.ts +11 -10
- package/src/scripts/report_consumer_gate_reach.ts +233 -0
- package/src/scripts/report_merge_gate_load.ts +295 -0
- package/src/scripts/report_production_reach.ts +35 -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 +519 -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-A4QJ6ENT.js +0 -50
- 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
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Flags:
|
|
16
16
|
*
|
|
17
|
-
* - `--check` — print the available latest version + return; no write.
|
|
17
|
+
* - `--check` — print the available latest version + return; no write. In a
|
|
18
|
+
* project that pins a version, also list what the latest release's impact
|
|
19
|
+
* map records between the pin and latest (skipped with `--offline`).
|
|
18
20
|
* - `--to <version>` — pin to an exact version (registry-existence checked).
|
|
19
21
|
* Downgrades are allowed; the pin is a project decision.
|
|
20
22
|
* - (no flag) — pin to the registry's `latest` tag.
|
|
@@ -68,6 +70,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
68
70
|
import * as installed_lock from '../_lib/installed_lock.js';
|
|
69
71
|
import * as update_check from '../_lib/update_check.js';
|
|
70
72
|
import { resolvePackageRoot } from '../_lib/package_root.js';
|
|
73
|
+
import { pin_advice_lines } from '../_lib/pin_advice.js';
|
|
71
74
|
import {
|
|
72
75
|
DEFAULT_PROJECT_FILE,
|
|
73
76
|
LOCAL_PROJECT_FILE,
|
|
@@ -291,6 +294,30 @@ function _read_pin_line(p: string): number | null {
|
|
|
291
294
|
return null;
|
|
292
295
|
}
|
|
293
296
|
|
|
297
|
+
/** The pinned version in `p`, unquoted; `null` when the file carries no pin. */
|
|
298
|
+
function _read_pin_value(p: string): string | null {
|
|
299
|
+
const idx = _read_pin_line(p);
|
|
300
|
+
if (idx === null) return null;
|
|
301
|
+
const line = _splitlinesKeepends(fs.readFileSync(p, { encoding: 'utf-8' }))[idx] as string;
|
|
302
|
+
const raw = (PIN_LINE_RE.exec(line)?.[2] ?? '').replace(/\s+#.*$/, '').trim().replace(/^["']|["']$/g, '');
|
|
303
|
+
return raw === '' ? null : _normalize(raw);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** The release's `agentConfig.impact`: `null` when the document carries none, `undefined` when it could not be fetched. */
|
|
307
|
+
async function _fetch_impact_map(version: string, timeout = 1.0): Promise<unknown> {
|
|
308
|
+
try {
|
|
309
|
+
const resp = await fetch(REGISTRY_VERSION_URL.replace('{version}', _normalize(version)), {
|
|
310
|
+
headers: { Accept: 'application/json' },
|
|
311
|
+
signal: AbortSignal.timeout(timeout * 1000),
|
|
312
|
+
});
|
|
313
|
+
if (resp.status !== 200) return undefined;
|
|
314
|
+
const doc = (await resp.json()) as { agentConfig?: { impact?: unknown } } | null;
|
|
315
|
+
return doc?.agentConfig?.impact ?? null;
|
|
316
|
+
} catch {
|
|
317
|
+
return undefined;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
294
321
|
/** Rewrite the pin in `path`; return `true` if the file changed. */
|
|
295
322
|
function _write_pin(p: string, new_version: string): boolean {
|
|
296
323
|
const target = `agent_config_version: "${_normalize(new_version)}"\n`;
|
|
@@ -374,6 +401,7 @@ interface MainOptions {
|
|
|
374
401
|
fetcher?: () => string | null | Promise<string | null>;
|
|
375
402
|
version_checker?: (version: string) => boolean | Promise<boolean>;
|
|
376
403
|
cache_warmer?: (version: string) => void;
|
|
404
|
+
impact_fetcher?: (version: string) => unknown;
|
|
377
405
|
state_path?: string | null;
|
|
378
406
|
out?: OutSink;
|
|
379
407
|
err?: OutSink;
|
|
@@ -490,6 +518,11 @@ export async function main(argv: string[] | null = null, options: MainOptions =
|
|
|
490
518
|
} else {
|
|
491
519
|
_print(out, `agent-config is up to date (${installed_version}).`);
|
|
492
520
|
}
|
|
521
|
+
const pin = _read_pin_value(_find_pin_file(cwd));
|
|
522
|
+
if (pin !== null && !offline) {
|
|
523
|
+
const fetch_impact = options.impact_fetcher ?? _fetch_impact_map;
|
|
524
|
+
for (const line of pin_advice_lines(pin, latest, await fetch_impact(latest), args.to ? 'target' : 'latest')) _print(out, line);
|
|
525
|
+
}
|
|
493
526
|
return 0;
|
|
494
527
|
}
|
|
495
528
|
|
|
@@ -509,7 +542,7 @@ export async function main(argv: string[] | null = null, options: MainOptions =
|
|
|
509
542
|
cache_warmer(latest);
|
|
510
543
|
}
|
|
511
544
|
_refresh_state(latest, latest, state_path);
|
|
512
|
-
|
|
545
|
+
_report_global_install(latest, out);
|
|
513
546
|
return 0;
|
|
514
547
|
}
|
|
515
548
|
|
|
@@ -523,30 +556,28 @@ function _relativeToOr(target: string, base: string): string {
|
|
|
523
556
|
}
|
|
524
557
|
|
|
525
558
|
/**
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
* Resolution prefers `~/.event4u/agent-config/installed.lock` and falls back to
|
|
529
|
-
* the legacy `~/.config/agent-config/installed.lock`.
|
|
559
|
+
* Name `agent-config upgrade` when the global install is older than the pin.
|
|
530
560
|
*
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
561
|
+
* Read-only by design: `installed.lock` records what the global install
|
|
562
|
+
* deployed, and `upgrade` (plus its `--check` and unattended paths) reads it as
|
|
563
|
+
* the installed version. This command used to rewrite it to the pin, so after
|
|
564
|
+
* `update` the lock claimed a version no `npm install -g` had installed and
|
|
565
|
+
* `upgrade --check` reported "up to date" over the old binary.
|
|
534
566
|
*/
|
|
535
|
-
function
|
|
536
|
-
const
|
|
537
|
-
const write_path = installed_lock.lockfile_write_path();
|
|
538
|
-
const existing = installed_lock.read_lockfile(read_path);
|
|
567
|
+
function _report_global_install(version: string, out: OutSink): void {
|
|
568
|
+
const existing = installed_lock.read_lockfile(installed_lock.lockfile_path());
|
|
539
569
|
if (existing === null) {
|
|
540
570
|
return;
|
|
541
571
|
}
|
|
542
572
|
const recorded = (existing as unknown as Record<string, unknown>)['agent_config_version'];
|
|
543
|
-
|
|
544
|
-
if (recorded === version && read_path === write_path) {
|
|
545
|
-
_print(out, `ℹ️ ${write_path} already records ${version}.`);
|
|
573
|
+
if (typeof recorded !== 'string' || !update_check._is_newer(version, _normalize(recorded))) {
|
|
546
574
|
return;
|
|
547
575
|
}
|
|
548
|
-
|
|
549
|
-
|
|
576
|
+
_print(
|
|
577
|
+
out,
|
|
578
|
+
`ℹ️ The global install is ${_normalize(recorded)}; this pin does not change it. ` +
|
|
579
|
+
`Run \`agent-config upgrade\` to install ${version} globally.`,
|
|
580
|
+
);
|
|
550
581
|
}
|
|
551
582
|
|
|
552
583
|
/** Read `version` from the package's own `package.json`. */
|
|
@@ -94,6 +94,7 @@ import { event4u_root, write_target } from '../_lib/user_global_paths.js';
|
|
|
94
94
|
import { project_settings_path } from '../_lib/agent_settings.js';
|
|
95
95
|
import { _is_source_repo } from './cmd_refresh.js';
|
|
96
96
|
import { resolvePackageRoot } from '../_lib/package_root.js';
|
|
97
|
+
import { parse_version } from '../_lib/version_order.js';
|
|
97
98
|
|
|
98
99
|
const PACKAGE_NAME = '@event4u/agent-config';
|
|
99
100
|
const PACKAGE_ROOT = resolvePackageRoot(import.meta.url);
|
|
@@ -409,10 +410,12 @@ interface Args {
|
|
|
409
410
|
check: boolean;
|
|
410
411
|
dry_run: boolean;
|
|
411
412
|
converge: boolean;
|
|
413
|
+
unattended: boolean;
|
|
414
|
+
skip: string | null;
|
|
412
415
|
}
|
|
413
416
|
|
|
414
417
|
const PROG = 'agent-config upgrade';
|
|
415
|
-
const USAGE = `usage: ${PROG} [-h] [--check] [--dry-run] [--converge]\n`;
|
|
418
|
+
const USAGE = `usage: ${PROG} [-h] [--check] [--dry-run] [--converge] [--unattended] [--skip VERSION]\n`;
|
|
416
419
|
|
|
417
420
|
function _argError(msg: string): never {
|
|
418
421
|
_stderr.write(USAGE);
|
|
@@ -421,7 +424,7 @@ function _argError(msg: string): never {
|
|
|
421
424
|
}
|
|
422
425
|
|
|
423
426
|
function _parse(argv: string[]): Args {
|
|
424
|
-
const args: Args = { check: false, dry_run: false, converge: false };
|
|
427
|
+
const args: Args = { check: false, dry_run: false, converge: false, unattended: false, skip: null };
|
|
425
428
|
const positionals: string[] = [];
|
|
426
429
|
let i = 0;
|
|
427
430
|
while (i < argv.length) {
|
|
@@ -457,6 +460,23 @@ function _parse(argv: string[]): Args {
|
|
|
457
460
|
i += 1;
|
|
458
461
|
continue;
|
|
459
462
|
}
|
|
463
|
+
if (flag === '--unattended') {
|
|
464
|
+
if (inlineVal !== null) {
|
|
465
|
+
_argError(`argument --unattended: ignored explicit argument '${inlineVal}'`);
|
|
466
|
+
}
|
|
467
|
+
args.unattended = true;
|
|
468
|
+
i += 1;
|
|
469
|
+
continue;
|
|
470
|
+
}
|
|
471
|
+
if (flag === '--skip') {
|
|
472
|
+
const value = inlineVal ?? argv[i + 1];
|
|
473
|
+
if (value === undefined || value === '' || (inlineVal === null && value.startsWith('-'))) {
|
|
474
|
+
_argError('argument --skip: expected one argument');
|
|
475
|
+
}
|
|
476
|
+
args.skip = lstripV(value.trim());
|
|
477
|
+
i += inlineVal === null ? 2 : 1;
|
|
478
|
+
continue;
|
|
479
|
+
}
|
|
460
480
|
if (a.startsWith('-') && a !== '-') {
|
|
461
481
|
_argError(`unrecognized arguments: ${a}`);
|
|
462
482
|
}
|
|
@@ -466,6 +486,15 @@ function _parse(argv: string[]): Args {
|
|
|
466
486
|
if (positionals.length > 0) {
|
|
467
487
|
_argError(`unrecognized arguments: ${positionals.join(' ')}`);
|
|
468
488
|
}
|
|
489
|
+
if (args.unattended && (args.check || args.converge || args.skip !== null)) {
|
|
490
|
+
_argError('argument --unattended: not allowed with --check, --converge or --skip');
|
|
491
|
+
}
|
|
492
|
+
if (args.skip !== null && (args.check || args.dry_run || args.converge)) {
|
|
493
|
+
_argError('argument --skip: not allowed with --check, --dry-run or --converge');
|
|
494
|
+
}
|
|
495
|
+
if (args.skip !== null && parse_version(args.skip) === null) {
|
|
496
|
+
_argError(`argument --skip: '${args.skip}' is not a version`);
|
|
497
|
+
}
|
|
469
498
|
return args;
|
|
470
499
|
}
|
|
471
500
|
|
|
@@ -485,6 +514,13 @@ export async function main(argv: string[] | null = null, options: MainOptions =
|
|
|
485
514
|
const err = options.err ?? _stderr;
|
|
486
515
|
const args = _parse(argv ?? process.argv.slice(2));
|
|
487
516
|
|
|
517
|
+
if (args.skip !== null || args.unattended) {
|
|
518
|
+
const unattended = await import('./upgrade_unattended.js');
|
|
519
|
+
return args.skip !== null
|
|
520
|
+
? unattended.skip_version(args.skip, out)
|
|
521
|
+
: unattended.run_unattended_default({ dryRun: args.dry_run, out, err, agentConfigBin: _agent_config_bin() });
|
|
522
|
+
}
|
|
523
|
+
|
|
488
524
|
const installed =
|
|
489
525
|
options.installed !== undefined && options.installed !== null
|
|
490
526
|
? options.installed
|
|
@@ -418,6 +418,13 @@ export function renderSpendDisclosure(report: DetectionReport): string {
|
|
|
418
418
|
if (free.length > 0) {
|
|
419
419
|
segments.push(`${free.length} manual (no provider call): ${free.map((r) => r.provider).join(', ')}`);
|
|
420
420
|
}
|
|
421
|
+
const unmetered = billed.filter((r) => r.billing === 'free-quota' || r.billing === 'self-hosted');
|
|
422
|
+
if (unmetered.length > 0) {
|
|
423
|
+
segments.push(
|
|
424
|
+
`${unmetered.length} unmetered route(s): ` +
|
|
425
|
+
unmetered.map((r) => `${r.provider}→${r.billing}`).join(', '),
|
|
426
|
+
);
|
|
427
|
+
}
|
|
421
428
|
|
|
422
429
|
return `council spend disclosure · ${segments.join(' · ')}${excludedTail}`;
|
|
423
430
|
}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* The `execution` block of `agent-config doctor --json`.
|
|
3
3
|
*
|
|
4
4
|
* `road-to-adversarial-verification-and-long-runs` Phase 0.3. Its own module
|
|
5
|
-
* rather than a function inside `cmd_doctor.ts`
|
|
6
|
-
* `_lib/continuation_ladder.ts` states for itself: `check_source_size_budget` is
|
|
5
|
+
* rather than a function inside `cmd_doctor.ts` because `check_source_size_budget` is
|
|
7
6
|
* a shrink-only ratchet and `cmd_doctor.ts` sits far past the 1,500-line cap, so
|
|
8
7
|
* every line added there is an added violation. A phase pays for its additions by
|
|
9
8
|
* putting new code in a file under the cap rather than by raising a baseline.
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
import * as fs from 'node:fs';
|
|
18
18
|
import * as path from 'node:path';
|
|
19
19
|
|
|
20
|
+
import type { InstallOrigin } from '../_lib/classify_update.js';
|
|
21
|
+
import { classify_install_origin } from '../_lib/update_check.js';
|
|
22
|
+
|
|
20
23
|
function isFile(p: string): boolean {
|
|
21
24
|
try {
|
|
22
25
|
return fs.statSync(p).isFile();
|
|
@@ -39,6 +42,21 @@ function isDir(p: string): boolean {
|
|
|
39
42
|
* the install-mode marker (written on every install) or the `agents/overrides/`
|
|
40
43
|
* scaffold. Either is sufficient.
|
|
41
44
|
*/
|
|
45
|
+
/**
|
|
46
|
+
* Whether the PACKAGE we are running from is a source checkout rather than an
|
|
47
|
+
* installed release — a different question from `_is_source_repo`, which asks
|
|
48
|
+
* whether a directory is an agent-config tree at all.
|
|
49
|
+
*
|
|
50
|
+
* A `.git` entry is the only signal that separates the two: npm never ships
|
|
51
|
+
* one, while both of `_is_source_repo`'s positive signals — a `dist/agent-src/`
|
|
52
|
+
* directory and a `package.json` named `@event4u/agent-config` — are present in
|
|
53
|
+
* every published tarball. `.git` is a directory in a normal clone and a file
|
|
54
|
+
* in a worktree, so existence is tested, never the kind.
|
|
55
|
+
*/
|
|
56
|
+
export function isSourceCheckoutPackage(packageRoot: string): boolean {
|
|
57
|
+
return fs.existsSync(path.join(packageRoot, '.git'));
|
|
58
|
+
}
|
|
59
|
+
|
|
42
60
|
export const INSTALL_MODE_MARKER_RELATIVE = 'agents/.agent-state/install-mode.txt';
|
|
43
61
|
|
|
44
62
|
export function _is_global_only_consumer(project_root: string): boolean {
|
|
@@ -47,3 +65,24 @@ export function _is_global_only_consumer(project_root: string): boolean {
|
|
|
47
65
|
isDir(path.join(project_root, 'agents', 'overrides'))
|
|
48
66
|
);
|
|
49
67
|
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The install origin of a package root, as the unattended gates and the
|
|
71
|
+
* `update-notice` session concern read it.
|
|
72
|
+
*
|
|
73
|
+
* Lives beside {@link isSourceCheckoutPackage} rather than in
|
|
74
|
+
* `upgrade_unattended.ts`, where it started, because two surfaces now ask the
|
|
75
|
+
* question and the second one is a hook: importing the unattended runner to
|
|
76
|
+
* reach one predicate would pull the registry fetch, the provenance verifier
|
|
77
|
+
* and the install lock into the bundle every hook event loads.
|
|
78
|
+
*
|
|
79
|
+
* Exported rather than inlined because `running_origin` resolves its own root
|
|
80
|
+
* from `import.meta.url` and so cannot be pointed at a fixture: in this
|
|
81
|
+
* repository the answer is legitimately `source-checkout`, and a test calling
|
|
82
|
+
* it here would pass for the wrong reason. The distinguishing input is a tree
|
|
83
|
+
* that carries the shipped `dist/agent-src/` and no `.git`.
|
|
84
|
+
*/
|
|
85
|
+
export function originForPackageRoot(root: string): InstallOrigin {
|
|
86
|
+
if (isSourceCheckoutPackage(root)) return 'source-checkout';
|
|
87
|
+
return classify_install_origin({ package_root: root, project_pin: null, latest: null, is_global_consumer: false });
|
|
88
|
+
}
|
|
@@ -76,9 +76,9 @@ export interface TrafficVariable {
|
|
|
76
76
|
* May THIS PACKAGE write the variable into the host env block?
|
|
77
77
|
*
|
|
78
78
|
* `false` on both traffic variables and it is not a policy setting — it is a
|
|
79
|
-
* structural fact: `
|
|
80
|
-
*
|
|
81
|
-
*
|
|
79
|
+
* structural fact: `WRITABLE_HOST_ENV` is an allow table naming neither
|
|
80
|
+
* traffic variable, and the settings schema admits no key for either, so
|
|
81
|
+
* neither is expressible anywhere in the write path. Reported
|
|
82
82
|
* because a consumer reading `set` on a row deserves to know whether this
|
|
83
83
|
* package could have been the one that set it.
|
|
84
84
|
*/
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `doctor` reads the user-scoped ownership ledger.
|
|
3
|
+
*
|
|
4
|
+
* `cmd_doctor` classified only PROJECT-scope manifest entries and skipped every
|
|
5
|
+
* global-scope tool, so a globally installed file the installer had just
|
|
6
|
+
* preserved — exit 3, "the active installation is not current" — was invisible
|
|
7
|
+
* to it, and the two surfaces reporting on one install disagreed by
|
|
8
|
+
* construction. The ledger is the record of what every global deploy wrote,
|
|
9
|
+
* wherever it ran from, so it is what doctor reads for global scope.
|
|
10
|
+
*
|
|
11
|
+
* A file is reported `modified` exactly when the installer would preserve it
|
|
12
|
+
* ON THE EVIDENCE DOCTOR HAS: the shared classifier says `recorded-modified`
|
|
13
|
+
* and the package still ships it. A retired file the user edited is kept by
|
|
14
|
+
* the installer without failing the run, so doctor does not fail on it either
|
|
15
|
+
* — reporting it here would make the two surfaces disagree in the other
|
|
16
|
+
* direction.
|
|
17
|
+
*
|
|
18
|
+
* THE ONE CASE THIS CANNOT COVER, named rather than left to be discovered.
|
|
19
|
+
* The installer also preserves a path the ledger LISTS but holds no digest
|
|
20
|
+
* for — an install predating the ledger — when the bytes on disk differ from
|
|
21
|
+
* what it would write. Doctor cannot reach that verdict, and the reason is
|
|
22
|
+
* structural rather than an omission: the test is "does this differ from what
|
|
23
|
+
* we WOULD write", and doctor is not installing, so it has no packaged digest
|
|
24
|
+
* to compare against. `recorded_digests` returns only paths carrying a digest,
|
|
25
|
+
* so such a path is not even enumerated here.
|
|
26
|
+
*
|
|
27
|
+
* It is left uncovered rather than guessed at. Reporting every digest-less
|
|
28
|
+
* ledger path as `modified` would assert an edit nobody proved, which is the
|
|
29
|
+
* claim the installer's own migration branch exists because it cannot make.
|
|
30
|
+
* The divergence is asserted in `tests/install/ownership_parity.test.ts` so it
|
|
31
|
+
* stays a known gap instead of becoming a surprise.
|
|
32
|
+
*
|
|
33
|
+
* Its own module because `cmd_doctor.ts` sits far above the 1,500-line source
|
|
34
|
+
* ceiling `check_source_size_budget` ratchets.
|
|
35
|
+
*/
|
|
36
|
+
import * as os from 'node:os';
|
|
37
|
+
import * as path from 'node:path';
|
|
38
|
+
|
|
39
|
+
import { classifyFileState, ownershipOfState } from '../../install/recordedOwnership.js';
|
|
40
|
+
import * as global_deploy_inventory from '../_lib/global_deploy_inventory.js';
|
|
41
|
+
|
|
42
|
+
/** Re-exported so `cmd_doctor`'s manifest classifier is the installer's own. */
|
|
43
|
+
export { classifyOwnership } from '../../install/recordedOwnership.js';
|
|
44
|
+
|
|
45
|
+
type Dict = Record<string, unknown>;
|
|
46
|
+
|
|
47
|
+
/** Expand a leading `~` against `home`. */
|
|
48
|
+
function expandAt(p: string, home: string): string {
|
|
49
|
+
if (p === '~') return home;
|
|
50
|
+
if (p.startsWith('~/')) return path.join(home, p.slice(2));
|
|
51
|
+
return p;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* `modified` records for every ledger-recorded global file the installer would
|
|
56
|
+
* preserve. `inventoryPath` / `home` default to the running process's own.
|
|
57
|
+
*/
|
|
58
|
+
export function ledgerModifiedRecords(inventoryPath?: string | null, home?: string | null): Dict[] {
|
|
59
|
+
const inventory = global_deploy_inventory.load_inventory(inventoryPath ?? null);
|
|
60
|
+
const tools = (inventory['tools'] as Record<string, unknown> | undefined) ?? {};
|
|
61
|
+
const out: Dict[] = [];
|
|
62
|
+
for (const tool_id of Object.keys(tools).sort()) {
|
|
63
|
+
const entry = tools[tool_id];
|
|
64
|
+
if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) continue;
|
|
65
|
+
const anchor = (entry as Dict)['anchor'];
|
|
66
|
+
if (typeof anchor !== 'string') continue;
|
|
67
|
+
const expanded = expandAt(anchor, home ?? os.homedir());
|
|
68
|
+
const digests = global_deploy_inventory.recorded_digests(tool_id, expanded, inventory);
|
|
69
|
+
for (const rel of [...digests.keys()].sort()) {
|
|
70
|
+
const rec = digests.get(rel) as global_deploy_inventory.LedgerDigest;
|
|
71
|
+
if (rec.kind === 'sidecar' || rec.packaged_sha256 === null) continue;
|
|
72
|
+
const target = path.join(expanded, rel);
|
|
73
|
+
const state = classifyFileState(
|
|
74
|
+
rec.installed_sha256,
|
|
75
|
+
rec.packaged_sha256,
|
|
76
|
+
global_deploy_inventory.file_sha256(target),
|
|
77
|
+
);
|
|
78
|
+
if (ownershipOfState(state) !== 'recorded-modified') continue;
|
|
79
|
+
out.push({
|
|
80
|
+
tool: tool_id,
|
|
81
|
+
path: target,
|
|
82
|
+
kind: 'deployed',
|
|
83
|
+
state,
|
|
84
|
+
fix: 'merge the staged *.agent-config.new into it, or re-install with --force',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** Tools the global deploy ledger records at least one file for. */
|
|
92
|
+
export function globalInstalledTools(inventoryPath?: string | null): string[] {
|
|
93
|
+
const inventory = global_deploy_inventory.load_inventory(inventoryPath ?? null);
|
|
94
|
+
const tools = (inventory['tools'] as Record<string, unknown> | undefined) ?? {};
|
|
95
|
+
return Object.keys(tools)
|
|
96
|
+
.filter((id) => {
|
|
97
|
+
const e = tools[id];
|
|
98
|
+
const files = typeof e === 'object' && e !== null ? (e as Dict)['files'] : null;
|
|
99
|
+
return Array.isArray(files) && files.length > 0;
|
|
100
|
+
})
|
|
101
|
+
.sort();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* What `doctor` says about a project that has no project-scope install.
|
|
106
|
+
*
|
|
107
|
+
* It used to say one thing — "no project lockfile and no consumer install
|
|
108
|
+
* marker", as a warning — whether or not the machine had a working GLOBAL
|
|
109
|
+
* install. A global-only consumer is the shape ADR-020 makes the default, and
|
|
110
|
+
* every fresh worktree of any project has no project-scope install by
|
|
111
|
+
* construction, so the warning fired on exactly the healthy case. It now says
|
|
112
|
+
* which scopes it checked and what it found in each.
|
|
113
|
+
*/
|
|
114
|
+
export function noProjectInstallLines(projectRoot: string, inventoryPath?: string | null): Array<['out' | 'err', string]> {
|
|
115
|
+
const global = globalInstalledTools(inventoryPath);
|
|
116
|
+
if (global.length > 0) {
|
|
117
|
+
return [
|
|
118
|
+
['out', ` ℹ️ global install present (${global.join(', ')}); no project-scope install at ${projectRoot}`],
|
|
119
|
+
['out', ' expected for a global-only consumer — checked: global deploy ledger, project lockfile, project install marker'],
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
return [
|
|
123
|
+
['err', ` ⚠️ no agent-config install found — not globally (deploy ledger empty) and not at ${projectRoot}`],
|
|
124
|
+
['err', ' run `agent-config init` (global install) or `agent-config refresh --project` (global-only consumer)'],
|
|
125
|
+
];
|
|
126
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `update_verdict` block of `doctor --json`: `classifyUpdate`'s verdict on
|
|
3
|
+
* the newest version the update probe has cached, with its reasons. Nothing acts
|
|
4
|
+
* on it — it is a report, the surface ADR-041 names instead of a new verb.
|
|
5
|
+
*
|
|
6
|
+
* It reads the cached `update-check.json` and never writes it, and it never
|
|
7
|
+
* queries the registry: the banner owns that file and its 24 h cadence. The
|
|
8
|
+
* cache keeps only the version, so the impact map, `engines.node` and the
|
|
9
|
+
* provenance attestation reach the classifier as unknowns, and an unknown never
|
|
10
|
+
* resolves to `auto`. The verdict is the one a terminal session would get, so a
|
|
11
|
+
* piped `doctor --json` does not report itself as non-interactive.
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from 'node:fs';
|
|
14
|
+
|
|
15
|
+
import * as agent_settings from '../_lib/agent_settings.js';
|
|
16
|
+
import { classifyUpdate, type InstallOrigin } from '../_lib/classify_update.js';
|
|
17
|
+
import type { EnvMap } from '../_lib/user_global_paths.js';
|
|
18
|
+
import * as user_global_paths from '../_lib/user_global_paths.js';
|
|
19
|
+
import { STATE_FILENAME, classify_install_origin } from '../_lib/update_check.js';
|
|
20
|
+
import { _is_global_only_consumer, isSourceCheckoutPackage } from './doctor_install_mode.js';
|
|
21
|
+
|
|
22
|
+
export interface UpdateVerdictSources {
|
|
23
|
+
readonly installed: string | null;
|
|
24
|
+
/** The parsed `update-check.json`; `{}` when absent or unreadable. */
|
|
25
|
+
readonly state: Record<string, unknown>;
|
|
26
|
+
readonly origin: InstallOrigin;
|
|
27
|
+
readonly env: EnvMap;
|
|
28
|
+
readonly nodeVersion: string;
|
|
29
|
+
readonly now: Date;
|
|
30
|
+
readonly projectPin: string | null;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Read the cached probe state, read-only. A missing or corrupt file is an empty cache. */
|
|
34
|
+
export function readCachedUpdateState(statePath: string | null = user_global_paths.resolve_with_fallback(STATE_FILENAME)): Record<string, unknown> {
|
|
35
|
+
if (statePath === null) return {};
|
|
36
|
+
try {
|
|
37
|
+
const data: unknown = JSON.parse(fs.readFileSync(statePath, 'utf-8'));
|
|
38
|
+
return data !== null && typeof data === 'object' && !Array.isArray(data) ? (data as Record<string, unknown>) : {};
|
|
39
|
+
} catch {
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** What the probe cache does not keep, so the classifier sees it as unknown rather than absent. */
|
|
45
|
+
const NOT_CACHED = ['agentConfig.impact', 'engines', 'dist.attestations', 'time', 'deprecated'] as const;
|
|
46
|
+
|
|
47
|
+
export function updateVerdictJson(src: UpdateVerdictSources): Record<string, unknown> {
|
|
48
|
+
const seen = src.state['last_seen_version'];
|
|
49
|
+
const candidate = typeof seen === 'string' && seen.trim() !== '' ? seen.trim() : null;
|
|
50
|
+
const head = { installed: src.installed, candidate, origin: src.origin, reporting_read_only: true, not_cached: NOT_CACHED };
|
|
51
|
+
if (src.installed === null) return { ...head, action: 'none', reasons: ['installed version unreadable'] };
|
|
52
|
+
if (candidate === null) {
|
|
53
|
+
return { ...head, action: 'none', reasons: ['no cached registry version: the update probe has not run'] };
|
|
54
|
+
}
|
|
55
|
+
const verdict = classifyUpdate({
|
|
56
|
+
installed: src.installed,
|
|
57
|
+
candidate,
|
|
58
|
+
origin: src.origin,
|
|
59
|
+
env: {
|
|
60
|
+
ci: src.env['CI'] === '1' || src.env['CI'] === 'true' || src.env['GITHUB_ACTIONS'] === 'true',
|
|
61
|
+
interactive: true,
|
|
62
|
+
noUpdateCheck: src.env['AGENT_CONFIG_NO_UPDATE_CHECK'] === '1',
|
|
63
|
+
nodeVersion: src.nodeVersion,
|
|
64
|
+
now: src.now.toISOString(),
|
|
65
|
+
},
|
|
66
|
+
impactMap: null,
|
|
67
|
+
engines: null,
|
|
68
|
+
publishedAt: null,
|
|
69
|
+
deprecated: null,
|
|
70
|
+
provenance: null,
|
|
71
|
+
settings: { projectPin: src.projectPin },
|
|
72
|
+
});
|
|
73
|
+
return { ...head, action: verdict.action, reasons: [...verdict.reasons] };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function readProjectPin(projectRoot: string): string | null {
|
|
77
|
+
try {
|
|
78
|
+
const pin = agent_settings.load_agent_settings({ cwd: projectRoot })['agent_config_version'];
|
|
79
|
+
return typeof pin === 'string' && pin.trim() !== '' ? pin.trim() : null;
|
|
80
|
+
} catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Gather the sources and report. The source-checkout test is shared with
|
|
87
|
+
* `upgrade --unattended` (`isSourceCheckoutPackage`) so the two surfaces cannot
|
|
88
|
+
* drift: both ask whether the running package is a checkout or a release, and a
|
|
89
|
+
* `.git` entry is the only signal that answers it.
|
|
90
|
+
*/
|
|
91
|
+
export function updateVerdictFor(projectRoot: string, packageRoot: string, installed: string | null): Record<string, unknown> {
|
|
92
|
+
const state = readCachedUpdateState();
|
|
93
|
+
const projectPin = readProjectPin(projectRoot);
|
|
94
|
+
const seen = state['last_seen_version'];
|
|
95
|
+
const origin: InstallOrigin = isSourceCheckoutPackage(packageRoot)
|
|
96
|
+
? 'source-checkout'
|
|
97
|
+
: classify_install_origin({
|
|
98
|
+
package_root: packageRoot,
|
|
99
|
+
project_pin: projectPin,
|
|
100
|
+
latest: typeof seen === 'string' ? seen : null,
|
|
101
|
+
is_global_consumer: _is_global_only_consumer(projectRoot),
|
|
102
|
+
});
|
|
103
|
+
return updateVerdictJson({ installed, state, origin, env: process.env, nodeVersion: process.version, now: new Date(), projectPin });
|
|
104
|
+
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Masks applied (resolution order):
|
|
18
18
|
*
|
|
19
|
-
* 1. Raw-key secret prefixes (
|
|
19
|
+
* 1. Raw-key secret prefixes (the rule table's, at a token start) and inline
|
|
20
20
|
* `api_key=…` shapes → `<secret>`.
|
|
21
21
|
* 2. Emails → `<email>`.
|
|
22
22
|
* 3. Absolute file paths (`/Users/…`, `/home/…`, `C:\…`) → `<path>`.
|
|
@@ -39,31 +39,19 @@
|
|
|
39
39
|
* matching the original's `f"<{len(out)} chars>"`.
|
|
40
40
|
*/
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const _RAW_KEY_PREFIXES: readonly string[] = [
|
|
45
|
-
'sk_live_', 'sk_test_', 'ghp_', 'github_pat_', 'gho_', 'ghs_',
|
|
46
|
-
'ghu_', 'xoxb-', 'xoxp-', 'AIza', 'AKIA',
|
|
47
|
-
];
|
|
42
|
+
import { assignmentPattern, rawKeyPrefixPattern } from '../../_lib/egress_rules.js';
|
|
48
43
|
|
|
49
|
-
|
|
50
|
-
function _reEscape(literal: string): string {
|
|
51
|
-
// Python `re.escape` escapes non-alphanumerics; under the `u` flag a
|
|
52
|
-
// `\-` is an illegal escape, so `-` is escaped via its unicode form.
|
|
53
|
-
// The fixed prefixes only contain `-` (e.g. `xoxb-`), so this is the
|
|
54
|
-
// sole case that matters; the broad class covers the rest faithfully.
|
|
55
|
-
return literal.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(/-/g, '\\u002d');
|
|
56
|
-
}
|
|
44
|
+
export const LONG_STRING_THRESHOLD = 200;
|
|
57
45
|
|
|
58
46
|
// Unicode word-char class standing in for Python's default-mode `\w`.
|
|
59
47
|
const _W = '\\p{L}\\p{N}_';
|
|
60
48
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
);
|
|
65
|
-
const _API_KEY_RE =
|
|
66
|
-
'
|
|
49
|
+
// The raw-key prefixes are the rule table's (road-to-one-detector-and-the-
|
|
50
|
+
// senders-we-own 2.2); this surface keeps its own policy: prefix plus six key
|
|
51
|
+
// characters is enough to mask, because it cannot refuse.
|
|
52
|
+
const _RAW_KEY_RE = rawKeyPrefixPattern(6);
|
|
53
|
+
const _API_KEY_RE = assignmentPattern(
|
|
54
|
+
{ keywords: ['apiKey'], before: '\\b', after: '\\b', value: '[A-Za-z0-9+/=_-]{12,}' },
|
|
67
55
|
'giu',
|
|
68
56
|
);
|
|
69
57
|
const _EMAIL_RE = new RegExp(
|