@event4u/agent-config 8.1.0 → 8.2.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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +50 -297
- package/dist/agent-src/commands/agents/init.md +3 -3
- package/dist/agent-src/commands/chat-history/import.md +5 -5
- package/dist/agent-src/commands/chat-history.md +1 -1
- package/dist/agent-src/commands/condense.md +1 -1
- package/dist/agent-src/commands/context/create.md +1 -1
- package/dist/agent-src/commands/council/analysis.md +2 -2
- package/dist/agent-src/commands/council/default.md +3 -3
- package/dist/agent-src/commands/council/design.md +2 -2
- package/dist/agent-src/commands/council/optimize.md +1 -1
- package/dist/agent-src/commands/council/pr.md +2 -2
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +1 -1
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/implement-ticket.md +2 -2
- package/dist/agent-src/commands/judge/on-diff.md +1 -1
- package/dist/agent-src/commands/judge/steps.md +3 -1
- package/dist/agent-src/commands/memory/add.md +2 -2
- package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
- package/dist/agent-src/commands/memory/load.md +1 -1
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +1 -1
- package/dist/agent-src/commands/memory/propose.md +1 -1
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +3 -3
- package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/optimize-project.md +1 -1
- package/dist/agent-src/commands/orchestrate.md +2 -2
- package/dist/agent-src/commands/project-analyze.md +1 -1
- package/dist/agent-src/commands/project-health.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +2 -2
- package/dist/agent-src/commands/roadmap/process-full.md +3 -1
- package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
- package/dist/agent-src/commands/roadmap/process-step.md +3 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +7 -7
- package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
- package/dist/agent-src/commands/sync-gitignore.md +4 -4
- package/dist/agent-src/commands/work.md +3 -3
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
- package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/presets/README.md +1 -1
- package/dist/agent-src/profiles/README.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +2 -2
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
- package/dist/agent-src/rules/media-governance-routing.md +1 -1
- package/dist/agent-src/rules/no-roadmap-references.md +3 -3
- package/dist/agent-src/rules/preservation-guard.md +2 -2
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
- package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
- package/dist/agent-src/rules/source-confidentiality.md +1 -1
- package/dist/agent-src/rules/telegraph-speak.md +1 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
- package/dist/agent-src/skills/api-design/SKILL.md +1 -1
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
- package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
- package/dist/agent-src/skills/code-review/SKILL.md +3 -4
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
- package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
- package/dist/agent-src/skills/database/SKILL.md +2 -1
- package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
- package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
- package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
- package/dist/agent-src/skills/flux/SKILL.md +10 -9
- package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
- package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
- package/dist/agent-src/skills/livewire/SKILL.md +10 -9
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
- package/dist/agent-src/skills/module-management/SKILL.md +2 -2
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
- package/dist/agent-src/skills/premortem/SKILL.md +1 -1
- package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
- package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
- package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
- package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
- package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
- package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
- package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
- package/dist/agent-src/templates/agent-settings.md +34 -25
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
- package/dist/agent-src/templates/agents/proposal.example.md +4 -4
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
- package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
- package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
- package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
- package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
- package/dist/agent-src/templates/roadmaps.md +9 -4
- package/dist/agent-src/templates/rule.md +3 -3
- package/dist/agent-src/templates/scripts/README.md +6 -6
- package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
- package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
- package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
- package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
- package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
- package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
- package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
- package/dist/agent-src/templates/skill.md +2 -2
- package/dist/cli/python/knowledge_ingest.js +24 -3
- package/dist/cli/python/knowledge_ingest.js.map +1 -1
- package/dist/cli/python/workspace_analytics.js +23 -3
- package/dist/cli/python/workspace_analytics.js.map +1 -1
- package/dist/cli/python/workspace_crypto.js +23 -3
- package/dist/cli/python/workspace_crypto.js.map +1 -1
- package/dist/cli/python/workspace_documents.js +23 -3
- package/dist/cli/python/workspace_documents.js.map +1 -1
- package/dist/cli/python/workspace_drive.js +24 -3
- package/dist/cli/python/workspace_drive.js.map +1 -1
- package/dist/cli/python/workspace_drive_health.js +23 -3
- package/dist/cli/python/workspace_drive_health.js.map +1 -1
- package/dist/cli/python/workspace_explain.js +23 -3
- package/dist/cli/python/workspace_explain.js.map +1 -1
- package/dist/cli/python/workspace_hosts.js +23 -3
- package/dist/cli/python/workspace_hosts.js.map +1 -1
- package/dist/cli/python/workspace_inbox.js +23 -3
- package/dist/cli/python/workspace_inbox.js.map +1 -1
- package/dist/cli/python/workspace_render.js +23 -3
- package/dist/cli/python/workspace_render.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +23 -3
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli/python/workspace_sessions.js +23 -3
- package/dist/cli/python/workspace_sessions.js.map +1 -1
- package/dist/cli/python/workspace_skills.js +23 -3
- package/dist/cli/python/workspace_skills.js.map +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +118 -118
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +2 -2
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +3 -3
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +3 -3
- package/dist/install/install.mjs +67 -28
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/server/routes/settings.js +4 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +1 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +2 -2
- package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
- package/docs/benchmark.md +40 -0
- package/docs/contracts/skill-bundled-assets.md +2 -2
- package/docs/customization.md +1 -1
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
- package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
- package/docs/guidelines/agent-infra/layered-settings.md +4 -4
- package/docs/guidelines/agent-infra/memory-access.md +19 -18
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
- package/docs/guidelines/agent-infra/role-contracts.md +1 -1
- package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
- package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/proof.md +1 -1
- package/docs/setup/per-ide/claude-code.md +10 -4
- package/package.json +3 -2
- package/src/config/agent-settings.template.yml +31 -17
- package/src/config/host-capabilities.yml +25 -16
- package/src/config/profiles/balanced.ini +5 -3
- package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
- package/src/scripts/_cli/cmd_conformance.ts +23 -4
- package/src/scripts/_cli/cmd_doctor.ts +96 -8
- package/src/scripts/_cli/cmd_explain.ts +23 -4
- package/src/scripts/_cli/cmd_export.ts +23 -4
- package/src/scripts/_cli/cmd_fleet.ts +23 -4
- package/src/scripts/_cli/cmd_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_preflight.ts +24 -4
- package/src/scripts/_cli/cmd_prune.ts +23 -4
- package/src/scripts/_cli/cmd_refresh.ts +23 -4
- package/src/scripts/_cli/cmd_settings_check.ts +23 -4
- package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_sync.ts +23 -4
- package/src/scripts/_cli/cmd_uninstall.ts +23 -4
- package/src/scripts/_cli/cmd_update.ts +23 -4
- package/src/scripts/_cli/cmd_upgrade.ts +238 -9
- package/src/scripts/_cli/cmd_validate.ts +23 -4
- package/src/scripts/_cli/cmd_versions.ts +23 -4
- package/src/scripts/_dispatch.bash +62 -19
- package/src/scripts/_lib/claude_plugin.ts +83 -0
- package/src/scripts/_lib/knowledge_global.ts +24 -2
- package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
- package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
- package/src/scripts/_lib/link_crypto.ts +24 -5
- package/src/scripts/_lib/pin_resolver.ts +24 -3
- package/src/scripts/adoption_report.ts +23 -4
- package/src/scripts/adoption_snapshot.ts +23 -1
- package/src/scripts/adoption_status.ts +23 -4
- package/src/scripts/adr/regenerate_index.ts +24 -3
- package/src/scripts/ai_council/airgap.ts +25 -2
- package/src/scripts/ai_council/compile_corpus.ts +24 -2
- package/src/scripts/ai_council/pricing.ts +11 -1
- package/src/scripts/analysis_freshness.ts +23 -4
- package/src/scripts/annotate_discovery.ts +23 -1
- package/src/scripts/apply_modules_config.ts +23 -4
- package/src/scripts/audit_adr_coverage.ts +23 -4
- package/src/scripts/audit_auto_rules.ts +23 -1
- package/src/scripts/audit_cloud_compatibility.ts +23 -4
- package/src/scripts/audit_command_surface.ts +23 -4
- package/src/scripts/audit_initial_context.ts +23 -3
- package/src/scripts/audit_likelihood.ts +23 -1
- package/src/scripts/audit_mcp_tools.ts +23 -3
- package/src/scripts/audit_overlap.ts +23 -1
- package/src/scripts/audit_skill_descriptions.ts +24 -2
- package/src/scripts/audit_skill_overlap.ts +23 -1
- package/src/scripts/audit_user_type_axis.ts +23 -4
- package/src/scripts/backfill_model_tier.ts +23 -4
- package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
- package/src/scripts/bench_ab_clone.ts +23 -1
- package/src/scripts/bench_ab_diff.ts +23 -1
- package/src/scripts/bench_ab_integrity.ts +23 -1
- package/src/scripts/bench_ab_run.ts +23 -2
- package/src/scripts/bench_ab_task_runner.ts +23 -1
- package/src/scripts/bench_ab_tracka_run.ts +23 -2
- package/src/scripts/bench_ab_v2_run.ts +23 -1
- package/src/scripts/bench_ab_v2_stats.ts +23 -1
- package/src/scripts/bench_baseline_ready.ts +23 -1
- package/src/scripts/bench_condense_memory.ts +23 -1
- package/src/scripts/bench_drift_check.ts +23 -2
- package/src/scripts/bench_matrix.ts +23 -4
- package/src/scripts/bench_per_tool.ts +23 -1
- package/src/scripts/bench_quality_run.ts +23 -2
- package/src/scripts/bench_rtk_savings.ts +23 -1
- package/src/scripts/bench_rule_load_latency.ts +23 -2
- package/src/scripts/bench_run.ts +23 -2
- package/src/scripts/bench_runner.ts +23 -1
- package/src/scripts/build_cloud_bundle.ts +23 -3
- package/src/scripts/build_discovery_manifest.ts +23 -4
- package/src/scripts/build_linear_digest.ts +23 -3
- package/src/scripts/build_mcp_registry_manifest.ts +23 -4
- package/src/scripts/build_rule_trigger_matrix.ts +23 -4
- package/src/scripts/capture_showcase_session.ts +23 -1
- package/src/scripts/chat_history.ts +24 -3
- package/src/scripts/check_always_budget.ts +23 -2
- package/src/scripts/check_artefact_checksums.ts +23 -4
- package/src/scripts/check_augment_description_cap.ts +23 -4
- package/src/scripts/check_augmentignore.ts +23 -4
- package/src/scripts/check_beta_review_markers.ts +23 -4
- package/src/scripts/check_cluster_patterns.ts +23 -4
- package/src/scripts/check_command_count_messaging.ts +23 -4
- package/src/scripts/check_comparison.ts +23 -1
- package/src/scripts/check_condensation.ts +24 -3
- package/src/scripts/check_condensed_paths.ts +23 -2
- package/src/scripts/check_context_paths.ts +23 -4
- package/src/scripts/check_council_config_location.ts +23 -4
- package/src/scripts/check_council_layout.ts +23 -4
- package/src/scripts/check_council_references.ts +23 -4
- package/src/scripts/check_discovery_determinism.ts +24 -4
- package/src/scripts/check_gate_paths.ts +23 -4
- package/src/scripts/check_generated_artefact_headers.ts +23 -4
- package/src/scripts/check_generator_output_coverage.ts +23 -4
- package/src/scripts/check_gitignore_freshness.ts +23 -4
- package/src/scripts/check_iron_law_prominence.ts +23 -4
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_kernel_rule_bundle.ts +23 -4
- package/src/scripts/check_knowledge_cards.ts +23 -1
- package/src/scripts/check_md_language.ts +23 -4
- package/src/scripts/check_media_deps.ts +24 -1
- package/src/scripts/check_memory.ts +24 -2
- package/src/scripts/check_memory_proposal.ts +23 -4
- package/src/scripts/check_module_management_neutral.ts +23 -4
- package/src/scripts/check_no_conflict_markers.ts +23 -4
- package/src/scripts/check_no_external_sources.ts +23 -4
- package/src/scripts/check_no_local_settings_committed.ts +24 -4
- package/src/scripts/check_no_new_legacy_path.ts +23 -4
- package/src/scripts/check_no_roadmap_refs.ts +23 -4
- package/src/scripts/check_one_off_location.ts +23 -4
- package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
- package/src/scripts/check_portability.ts +24 -3
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_public_catalog_links.ts +23 -4
- package/src/scripts/check_public_links.ts +23 -4
- package/src/scripts/check_quality_regression.ts +23 -2
- package/src/scripts/check_references.ts +23 -4
- package/src/scripts/check_release_includes_discovery.ts +23 -4
- package/src/scripts/check_release_pr_shape.ts +23 -4
- package/src/scripts/check_release_published.ts +23 -4
- package/src/scripts/check_release_trunk_sync.ts +23 -4
- package/src/scripts/check_reply_consistency.ts +23 -4
- package/src/scripts/check_roadmap_trackable.ts +23 -4
- package/src/scripts/check_role_doc_links.ts +23 -4
- package/src/scripts/check_safety_floor_untouched.ts +24 -4
- package/src/scripts/check_site_links.ts +23 -1
- package/src/scripts/check_skill_gaps.ts +23 -1
- package/src/scripts/check_skill_requires.ts +23 -4
- package/src/scripts/check_structural_breaking.ts +24 -4
- package/src/scripts/check_surface_tiers.ts +23 -4
- package/src/scripts/check_template_pin_drift.ts +23 -4
- package/src/scripts/check_test_coverage_diff.ts +23 -4
- package/src/scripts/check_token_optimizer_freshness.ts +23 -4
- package/src/scripts/check_token_quality_golden.ts +23 -2
- package/src/scripts/check_token_regression.ts +23 -2
- package/src/scripts/check_tracked_but_ignored.ts +24 -4
- package/src/scripts/check_trigger_evals.ts +23 -4
- package/src/scripts/check_trunk_drift.ts +24 -1
- package/src/scripts/check_update_banner.ts +23 -4
- package/src/scripts/ci_summary.ts +23 -4
- package/src/scripts/ci_time_ratio.ts +23 -4
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +23 -4
- package/src/scripts/condense.ts +23 -2
- package/src/scripts/condense_memory.ts +24 -2
- package/src/scripts/config/packs.ts +24 -4
- package/src/scripts/config/session_profiles.ts +23 -4
- package/src/scripts/context_hygiene_hook.ts +24 -3
- package/src/scripts/cost_by_conversation.ts +23 -4
- package/src/scripts/cost_summary.ts +23 -4
- package/src/scripts/council_cli.ts +35 -7
- package/src/scripts/council_prune.ts +25 -2
- package/src/scripts/cross_repo_retrieve.ts +23 -4
- package/src/scripts/discovery_stats.ts +23 -4
- package/src/scripts/evidence_report.ts +23 -1
- package/src/scripts/export_replay_corpus.ts +23 -2
- package/src/scripts/extract_audit_patterns.ts +23 -1
- package/src/scripts/first_run_gate_hook.ts +24 -3
- package/src/scripts/gen_discovery_baseline.ts +23 -4
- package/src/scripts/generate_capabilities_index.ts +24 -5
- package/src/scripts/generate_capability_matrix.ts +23 -4
- package/src/scripts/generate_catalog.ts +23 -1
- package/src/scripts/generate_command_flows.ts +23 -4
- package/src/scripts/generate_cookbook.ts +23 -4
- package/src/scripts/generate_index.ts +23 -4
- package/src/scripts/generate_ownership_matrix.ts +23 -1
- package/src/scripts/generate_pack_manifests.ts +24 -5
- package/src/scripts/generate_role_experiences_catalog.ts +23 -4
- package/src/scripts/hooks/block_no_verify.ts +23 -4
- package/src/scripts/hooks/design_slop_hook.ts +24 -3
- package/src/scripts/hooks/dispatch_hook.ts +47 -14
- package/src/scripts/hooks/replay_hook.ts +23 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
- package/src/scripts/hooks_doctor.ts +23 -2
- package/src/scripts/hooks_status.ts +23 -2
- package/src/scripts/injection_scan_hook.ts +24 -5
- package/src/scripts/install.ts +72 -44
- package/src/scripts/inventory_abstraction_budget.ts +23 -1
- package/src/scripts/inventory_frontmatter.ts +23 -1
- package/src/scripts/inventory_meta_layers.ts +23 -1
- package/src/scripts/iron_law_sha.ts +23 -4
- package/src/scripts/janitor.ts +23 -4
- package/src/scripts/knowledge_global_cli.ts +24 -2
- package/src/scripts/linked_projects_list.ts +23 -4
- package/src/scripts/lint_agent_security.ts +23 -4
- package/src/scripts/lint_agent_skill_names.ts +23 -4
- package/src/scripts/lint_agents_layout.ts +23 -4
- package/src/scripts/lint_agents_md.ts +23 -4
- package/src/scripts/lint_archived_skills.ts +23 -4
- package/src/scripts/lint_artefact_frontmatter.ts +23 -4
- package/src/scripts/lint_bench_ab.ts +23 -4
- package/src/scripts/lint_bench_corpus.ts +23 -2
- package/src/scripts/lint_command_flow_coverage.ts +23 -4
- package/src/scripts/lint_command_routing.ts +23 -4
- package/src/scripts/lint_command_tiers.ts +23 -2
- package/src/scripts/lint_command_verbs.ts +23 -4
- package/src/scripts/lint_commit_subjects.ts +24 -4
- package/src/scripts/lint_confusables.ts +25 -5
- package/src/scripts/lint_context_spine_usage.ts +23 -4
- package/src/scripts/lint_discovery_manifest.ts +23 -4
- package/src/scripts/lint_discovery_vocabulary.ts +23 -4
- package/src/scripts/lint_empty_roadmaps.ts +23 -4
- package/src/scripts/lint_eval_freshness.ts +23 -4
- package/src/scripts/lint_examples.ts +23 -4
- package/src/scripts/lint_explain_trace.ts +23 -4
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_flows.ts +23 -4
- package/src/scripts/lint_framework_leakage.ts +23 -4
- package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
- package/src/scripts/lint_ghostwriter_source.ts +23 -4
- package/src/scripts/lint_global_paths.ts +23 -2
- package/src/scripts/lint_handoffs.ts +23 -4
- package/src/scripts/lint_hidden_unicode.ts +24 -5
- package/src/scripts/lint_hook_concern_budget.ts +23 -4
- package/src/scripts/lint_hook_manifest.ts +23 -2
- package/src/scripts/lint_instruction_smuggling.ts +25 -5
- package/src/scripts/lint_legal_pack.ts +23 -1
- package/src/scripts/lint_load_context.ts +23 -4
- package/src/scripts/lint_marketplace.ts +24 -3
- package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
- package/src/scripts/lint_mcp_config_security.ts +25 -5
- package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
- package/src/scripts/lint_media_policy_linkage.ts +23 -4
- package/src/scripts/lint_missions.ts +23 -4
- package/src/scripts/lint_model_tier_coverage.ts +23 -4
- package/src/scripts/lint_namespace.ts +23 -4
- package/src/scripts/lint_namespace_collisions.ts +23 -4
- package/src/scripts/lint_new_skill_gate.ts +23 -4
- package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
- package/src/scripts/lint_one_off_age.ts +23 -4
- package/src/scripts/lint_orchestration_dsl.ts +23 -4
- package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
- package/src/scripts/lint_pack_boundaries.ts +23 -4
- package/src/scripts/lint_pack_dependencies.ts +23 -2
- package/src/scripts/lint_pack_first_win.ts +23 -4
- package/src/scripts/lint_pack_risk_class.ts +23 -1
- package/src/scripts/lint_persona_governance.ts +23 -4
- package/src/scripts/lint_positioning.ts +23 -4
- package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
- package/src/scripts/lint_readme_jargon.ts +23 -4
- package/src/scripts/lint_readme_size.ts +23 -4
- package/src/scripts/lint_regression.ts +23 -4
- package/src/scripts/lint_roadmap_blockers.ts +23 -4
- package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
- package/src/scripts/lint_roadmap_complexity.ts +23 -4
- package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
- package/src/scripts/lint_role_experiences.ts +23 -4
- package/src/scripts/lint_rule_interactions.ts +23 -4
- package/src/scripts/lint_rule_tiers.ts +24 -3
- package/src/scripts/lint_showcase_sessions.ts +23 -4
- package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
- package/src/scripts/lint_skill_originality.ts +23 -4
- package/src/scripts/lint_skill_tools.ts +23 -4
- package/src/scripts/lint_subagent_determinism.ts +23 -4
- package/src/scripts/lint_ticket_buildable.ts +23 -4
- package/src/scripts/lint_topics_yaml.ts +23 -4
- package/src/scripts/lint_trust_coherence.ts +23 -4
- package/src/scripts/lint_value_dashboard.ts +23 -4
- package/src/scripts/lint_workflow_security.ts +23 -4
- package/src/scripts/lint_workspace_boundary.ts +23 -4
- package/src/scripts/mcp_parity_smoke.ts +23 -2
- package/src/scripts/mcp_render.ts +23 -4
- package/src/scripts/mcp_telemetry_health.ts +23 -4
- package/src/scripts/mcp_telemetry_query.ts +23 -4
- package/src/scripts/mcp_telemetry_store.ts +23 -4
- package/src/scripts/measure_augment_budget.ts +23 -1
- package/src/scripts/measure_density.ts +23 -1
- package/src/scripts/measure_frugality_savings.ts +23 -1
- package/src/scripts/measure_markitdown_lift.ts +23 -1
- package/src/scripts/measure_patterns.ts +23 -1
- package/src/scripts/measure_projection_bytes.ts +23 -1
- package/src/scripts/measure_rule_budget.ts +23 -4
- package/src/scripts/measure_skill_reduction.ts +23 -1
- package/src/scripts/memory_hash.ts +24 -2
- package/src/scripts/memory_lookup.ts +24 -2
- package/src/scripts/memory_report.ts +24 -2
- package/src/scripts/memory_signal.ts +24 -2
- package/src/scripts/memory_status.ts +26 -2
- package/src/scripts/migrate_command_suggestions.ts +23 -4
- package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
- package/src/scripts/migration_status.ts +25 -4
- package/src/scripts/mine_missing_guardrails.ts +23 -1
- package/src/scripts/mine_session.ts +23 -1
- package/src/scripts/minimal_safe_diff_hook.ts +24 -3
- package/src/scripts/new_skill.ts +23 -3
- package/src/scripts/onboarding_gate_hook.ts +24 -3
- package/src/scripts/parity/coverage_diff.ts +25 -3
- package/src/scripts/parity/phase_gate.ts +25 -4
- package/src/scripts/parity/replay.ts +25 -3
- package/src/scripts/pattern_share.ts +23 -4
- package/src/scripts/plan_physical_move.ts +23 -4
- package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
- package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
- package/src/scripts/prediction-pool/score_ev.ts +24 -3
- package/src/scripts/print_required_checks.ts +24 -4
- package/src/scripts/probe_host_compliance.ts +23 -2
- package/src/scripts/probe_projection_fidelity.ts +23 -1
- package/src/scripts/probe_skill_registration.ts +24 -2
- package/src/scripts/profile_staleness_hook.ts +24 -3
- package/src/scripts/profile_use.ts +23 -4
- package/src/scripts/project_thin_rules.ts +23 -3
- package/src/scripts/propose_modules_config.ts +23 -4
- package/src/scripts/prototype_lint_contradictions.ts +23 -1
- package/src/scripts/prove_pack_extractable.ts +23 -4
- package/src/scripts/readme_linter.ts +23 -3
- package/src/scripts/redact_hook_capture.ts +23 -4
- package/src/scripts/refine_ticket_detect.ts +23 -4
- package/src/scripts/release.ts +23 -4
- package/src/scripts/render_benchmark_composite.ts +23 -4
- package/src/scripts/render_benchmark_md.ts +23 -4
- package/src/scripts/roadmap_progress_hook.ts +46 -16
- package/src/scripts/run_skill_evals.ts +23 -4
- package/src/scripts/runtime_dispatcher.ts +23 -4
- package/src/scripts/runtime_registry.ts +23 -4
- package/src/scripts/score_skill_selection.ts +23 -1
- package/src/scripts/security_audit_config.ts +24 -5
- package/src/scripts/skill_collision_clusters.ts +23 -4
- package/src/scripts/skill_discovery.ts +23 -4
- package/src/scripts/skill_linter.ts +23 -2
- package/src/scripts/skill_preview.ts +23 -4
- package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
- package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
- package/src/scripts/skill_usage_collect.ts +23 -4
- package/src/scripts/smoke_path_resolution.ts +23 -4
- package/src/scripts/smoke_quickstart.ts +23 -4
- package/src/scripts/snapshot_agent_outputs.ts +23 -4
- package/src/scripts/spotcheck_thin_root.ts +23 -4
- package/src/scripts/sync_agent_settings.ts +23 -4
- package/src/scripts/sync_github_metadata.ts +23 -4
- package/src/scripts/sync_gitignore.ts +23 -4
- package/src/scripts/telegraph_stats.ts +23 -4
- package/src/scripts/tool_registry.ts +24 -4
- package/src/scripts/trigger_coverage.ts +23 -4
- package/src/scripts/update_counts.ts +23 -4
- package/src/scripts/update_prices.ts +23 -1
- package/src/scripts/validate_agent_settings.ts +23 -4
- package/src/scripts/validate_decision_engine.ts +23 -4
- package/src/scripts/validate_discovery_manifest.ts +23 -4
- package/src/scripts/validate_frontmatter.ts +23 -2
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/validate_safe_paths.ts +24 -4
- package/src/scripts/validate_telegraph_carveouts.ts +23 -4
- package/src/scripts/verify_before_complete_hook.ts +24 -3
- package/src/scripts/verify_physical_move.ts +23 -4
- package/src/scripts/wrapper_freshness_hook.ts +107 -8
- package/tests/fixtures/hooks/README.md +92 -0
- package/tests/fixtures/hooks/agent_error.json +7 -0
- package/tests/fixtures/hooks/post_tool_use.json +13 -0
- package/tests/fixtures/hooks/pre_compact.json +7 -0
- package/tests/fixtures/hooks/pre_tool_use.json +9 -0
- package/tests/fixtures/hooks/session_end.json +6 -0
- package/tests/fixtures/hooks/session_start.json +6 -0
- package/tests/fixtures/hooks/stop.json +6 -0
- package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
* here; files without frontmatter are skipped (P5.1 contract).
|
|
27
27
|
*
|
|
28
28
|
* Health checks (see `CHECK_IDS`):
|
|
29
|
-
* scope ·
|
|
30
|
-
*
|
|
31
|
-
* tier-usage-readiness · council-cli ·
|
|
32
|
-
* wizard-state.
|
|
29
|
+
* scope · global-binary · claude-plugin · stale-orphans · manifest-integrity ·
|
|
30
|
+
* lockfile-freshness · bridge-drift · mcp-mode · mcp-beta-readiness ·
|
|
31
|
+
* offline-readiness · python-runtime · tier-usage-readiness · council-cli ·
|
|
32
|
+
* unsupported-combos · wizard-state.
|
|
33
33
|
* Each emits a structured `{id, status, message, remedy}` record with
|
|
34
34
|
* `status` ∈ `ok` / `warn` / `fail` / `skipped` (rendered
|
|
35
35
|
* `✅` / `⚠️` / `❌` / `⏭️`). `--check <id>` runs a single check.
|
|
@@ -80,6 +80,8 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
80
80
|
|
|
81
81
|
import * as YAML from 'yaml';
|
|
82
82
|
|
|
83
|
+
import * as claude_plugin from '../_lib/claude_plugin.js';
|
|
84
|
+
import { _is_source_repo } from './cmd_refresh.js';
|
|
83
85
|
import * as installed_lock from '../_lib/installed_lock.js';
|
|
84
86
|
import * as installed_tools from '../_lib/installed_tools.js';
|
|
85
87
|
import * as user_global_paths from '../_lib/user_global_paths.js';
|
|
@@ -727,6 +729,7 @@ function relativeTo(p: string, base: string): string | null {
|
|
|
727
729
|
const CHECK_IDS = [
|
|
728
730
|
'scope',
|
|
729
731
|
'global-binary',
|
|
732
|
+
'claude-plugin',
|
|
730
733
|
'stale-orphans',
|
|
731
734
|
'manifest-integrity',
|
|
732
735
|
'lockfile-freshness',
|
|
@@ -745,6 +748,7 @@ const CHECK_IDS = [
|
|
|
745
748
|
const GLOBAL_CHECK_IDS: ReadonlySet<string> = new Set([
|
|
746
749
|
'scope',
|
|
747
750
|
'global-binary',
|
|
751
|
+
'claude-plugin',
|
|
748
752
|
'stale-orphans',
|
|
749
753
|
'mcp-mode',
|
|
750
754
|
'mcp-beta-readiness',
|
|
@@ -1000,6 +1004,54 @@ function lstripV(s: string): string {
|
|
|
1000
1004
|
return out;
|
|
1001
1005
|
}
|
|
1002
1006
|
|
|
1007
|
+
/**
|
|
1008
|
+
* Claude Code plugin state. The plugin is OPTIONAL — the `~/.claude/` file
|
|
1009
|
+
* projection is a full install on its own — so a missing plugin is `ok`,
|
|
1010
|
+
* never a warning. What DOES warn is a stale installed plugin: Claude Code
|
|
1011
|
+
* pins the plugin to its install-time git SHA, so its command surface
|
|
1012
|
+
* silently lags every upgrade until `claude plugin update` runs
|
|
1013
|
+
* (`agent-config upgrade` now does that automatically).
|
|
1014
|
+
*/
|
|
1015
|
+
function _check_claude_plugin(): Dict {
|
|
1016
|
+
const claude = shutilWhich('claude');
|
|
1017
|
+
if (claude === null) {
|
|
1018
|
+
return {
|
|
1019
|
+
id: 'claude-plugin',
|
|
1020
|
+
status: 'skipped',
|
|
1021
|
+
message: 'Claude Code CLI not on PATH — plugin check not applicable',
|
|
1022
|
+
remedy: '',
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1025
|
+
if (!claude_plugin.claude_plugin_installed()) {
|
|
1026
|
+
return {
|
|
1027
|
+
id: 'claude-plugin',
|
|
1028
|
+
status: 'ok',
|
|
1029
|
+
message:
|
|
1030
|
+
'plugin not installed (optional — the ~/.claude/ file projection ' +
|
|
1031
|
+
'already carries the full skill/command set)',
|
|
1032
|
+
remedy: '',
|
|
1033
|
+
};
|
|
1034
|
+
}
|
|
1035
|
+
const snapshot_v = lstripV(claude_plugin.claude_plugin_snapshot_version() || '');
|
|
1036
|
+
const binary_v = lstripV(_current_package_version() || '');
|
|
1037
|
+
if (snapshot_v && binary_v && snapshot_v !== binary_v) {
|
|
1038
|
+
return {
|
|
1039
|
+
id: 'claude-plugin',
|
|
1040
|
+
status: 'warn',
|
|
1041
|
+
message: `plugin snapshot ${snapshot_v} lags binary ${binary_v} — its command surface is stale`,
|
|
1042
|
+
remedy:
|
|
1043
|
+
'agent-config upgrade (refreshes the plugin), or ' +
|
|
1044
|
+
`claude plugin update ${claude_plugin.CLAUDE_PLUGIN_ID}@${claude_plugin.CLAUDE_MARKETPLACE_NAME}`,
|
|
1045
|
+
};
|
|
1046
|
+
}
|
|
1047
|
+
return {
|
|
1048
|
+
id: 'claude-plugin',
|
|
1049
|
+
status: 'ok',
|
|
1050
|
+
message: `plugin installed${snapshot_v ? ` (snapshot ${snapshot_v})` : ''}`,
|
|
1051
|
+
remedy: '',
|
|
1052
|
+
};
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1003
1055
|
function _check_bridge_drift(
|
|
1004
1056
|
missing: Dict[],
|
|
1005
1057
|
modified: Dict[],
|
|
@@ -1196,6 +1248,20 @@ function _check_python_runtime(): Dict {
|
|
|
1196
1248
|
}
|
|
1197
1249
|
|
|
1198
1250
|
function _check_mcp_beta_readiness(project_root: string): Dict {
|
|
1251
|
+
// Maintainer-scoped gate: the six artefacts live in the agent-config
|
|
1252
|
+
// SOURCE repo. In a consumer project the paths can never exist, so the
|
|
1253
|
+
// check used to emit a meaningless "6/6 gates pending" warning on every
|
|
1254
|
+
// consumer doctor run — skip instead.
|
|
1255
|
+
if (!_is_source_repo(project_root)) {
|
|
1256
|
+
return {
|
|
1257
|
+
id: 'mcp-beta-readiness',
|
|
1258
|
+
status: 'skipped',
|
|
1259
|
+
message:
|
|
1260
|
+
'MCP beta promotion gates apply to the agent-config source repo, ' +
|
|
1261
|
+
'not consumer projects',
|
|
1262
|
+
remedy: '',
|
|
1263
|
+
};
|
|
1264
|
+
}
|
|
1199
1265
|
const pending: string[] = [];
|
|
1200
1266
|
for (const [gate_id, rel] of MCP_BETA_GATES) {
|
|
1201
1267
|
if (!pathExists(path.join(project_root, rel))) {
|
|
@@ -1751,6 +1817,7 @@ function _run_checks(
|
|
|
1751
1817
|
const runners: Record<string, CheckRunner> = {
|
|
1752
1818
|
scope: () => _check_scope(project_root),
|
|
1753
1819
|
'global-binary': () => _check_global_binary(project_root),
|
|
1820
|
+
'claude-plugin': _check_claude_plugin,
|
|
1754
1821
|
'stale-orphans': _check_stale_orphans,
|
|
1755
1822
|
'manifest-integrity': () => _check_manifest_integrity(manifest),
|
|
1756
1823
|
'lockfile-freshness': () => _check_lockfile_freshness(manifest),
|
|
@@ -1822,6 +1889,7 @@ function _run_checks_no_manifest(
|
|
|
1822
1889
|
const runners: Record<string, CheckRunner> = {
|
|
1823
1890
|
scope: () => _check_scope(project_root),
|
|
1824
1891
|
'global-binary': () => _check_global_binary(project_root),
|
|
1892
|
+
'claude-plugin': _check_claude_plugin,
|
|
1825
1893
|
'stale-orphans': _check_stale_orphans,
|
|
1826
1894
|
'manifest-integrity': () => _skipped_manifest_check('manifest-integrity'),
|
|
1827
1895
|
'lockfile-freshness': () => _skipped_manifest_check('lockfile-freshness'),
|
|
@@ -2258,10 +2326,29 @@ function main(argv: string[] | null = null): number {
|
|
|
2258
2326
|
|
|
2259
2327
|
// --- CLI entry ---
|
|
2260
2328
|
|
|
2261
|
-
|
|
2262
|
-
process.argv[1]
|
|
2263
|
-
|
|
2264
|
-
|
|
2329
|
+
function _isCliEntry(): boolean {
|
|
2330
|
+
if (process.argv[1] === undefined) {
|
|
2331
|
+
return false;
|
|
2332
|
+
}
|
|
2333
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
2334
|
+
if (import.meta.url === argvUrl) {
|
|
2335
|
+
return true;
|
|
2336
|
+
}
|
|
2337
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
2338
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
2339
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
2340
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
2341
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
2342
|
+
try {
|
|
2343
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
2344
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
2345
|
+
return here === argv;
|
|
2346
|
+
} catch {
|
|
2347
|
+
return false;
|
|
2348
|
+
}
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
2265
2352
|
try {
|
|
2266
2353
|
process.exitCode = main(process.argv.slice(2));
|
|
2267
2354
|
} catch (e) {
|
|
@@ -2290,6 +2377,7 @@ export {
|
|
|
2290
2377
|
_check_manifest_integrity,
|
|
2291
2378
|
_check_lockfile_freshness,
|
|
2292
2379
|
_check_global_binary,
|
|
2380
|
+
_check_claude_plugin,
|
|
2293
2381
|
_check_bridge_drift,
|
|
2294
2382
|
_check_mcp_mode,
|
|
2295
2383
|
_check_offline_readiness,
|
|
@@ -713,10 +713,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
713
713
|
|
|
714
714
|
// --- CLI entry ---
|
|
715
715
|
|
|
716
|
-
|
|
717
|
-
process.argv[1]
|
|
718
|
-
|
|
719
|
-
|
|
716
|
+
function _isCliEntry(): boolean {
|
|
717
|
+
if (process.argv[1] === undefined) {
|
|
718
|
+
return false;
|
|
719
|
+
}
|
|
720
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
721
|
+
if (import.meta.url === argvUrl) {
|
|
722
|
+
return true;
|
|
723
|
+
}
|
|
724
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
725
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
726
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
727
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
728
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
729
|
+
try {
|
|
730
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
731
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
732
|
+
return here === argv;
|
|
733
|
+
} catch {
|
|
734
|
+
return false;
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
720
739
|
try {
|
|
721
740
|
process.exitCode = main(process.argv.slice(2));
|
|
722
741
|
} catch (e) {
|
|
@@ -359,10 +359,29 @@ export function main(argv: string[] | null = null, options: MainOptions = {}): n
|
|
|
359
359
|
// Python: `if __name__ == "__main__": sys.exit(main())` (argparse reads
|
|
360
360
|
// sys.argv[1:] inside the parser default).
|
|
361
361
|
const _HERE = fileURLToPath(import.meta.url);
|
|
362
|
-
|
|
363
|
-
process.argv[1]
|
|
364
|
-
|
|
365
|
-
|
|
362
|
+
function _isCliEntry(): boolean {
|
|
363
|
+
if (process.argv[1] === undefined) {
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
367
|
+
if (import.meta.url === argvUrl) {
|
|
368
|
+
return true;
|
|
369
|
+
}
|
|
370
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
371
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
372
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
373
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
374
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
375
|
+
try {
|
|
376
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
377
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
378
|
+
return here === argv;
|
|
379
|
+
} catch {
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
366
385
|
try {
|
|
367
386
|
process.exitCode = main();
|
|
368
387
|
} catch (exc) {
|
|
@@ -385,10 +385,29 @@ export async function main(argv: string[] | null = null): Promise<number> {
|
|
|
385
385
|
|
|
386
386
|
// --- CLI entry ---
|
|
387
387
|
|
|
388
|
-
|
|
389
|
-
process.argv[1]
|
|
390
|
-
|
|
391
|
-
|
|
388
|
+
function _isCliEntry(): boolean {
|
|
389
|
+
if (process.argv[1] === undefined) {
|
|
390
|
+
return false;
|
|
391
|
+
}
|
|
392
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
393
|
+
if (import.meta.url === argvUrl) {
|
|
394
|
+
return true;
|
|
395
|
+
}
|
|
396
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
397
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
398
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
399
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
400
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
401
|
+
try {
|
|
402
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
403
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
404
|
+
return here === argv;
|
|
405
|
+
} catch {
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
392
411
|
main(process.argv.slice(2)).then(
|
|
393
412
|
(code) => {
|
|
394
413
|
process.exitCode = code;
|
|
@@ -935,10 +935,29 @@ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
|
|
|
935
935
|
const _bundled =
|
|
936
936
|
typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__;
|
|
937
937
|
const _HERE = fileURLToPath(import.meta.url);
|
|
938
|
-
|
|
939
|
-
process.argv[1]
|
|
940
|
-
|
|
941
|
-
|
|
938
|
+
function _isCliEntry(): boolean {
|
|
939
|
+
if (process.argv[1] === undefined) {
|
|
940
|
+
return false;
|
|
941
|
+
}
|
|
942
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
943
|
+
if (import.meta.url === argvUrl) {
|
|
944
|
+
return true;
|
|
945
|
+
}
|
|
946
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
947
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
948
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
949
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
950
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
951
|
+
try {
|
|
952
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
953
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
954
|
+
return here === argv;
|
|
955
|
+
} catch {
|
|
956
|
+
return false;
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
if (!_bundled && (_isCliEntry() || process.argv[1] === _HERE)) {
|
|
942
961
|
try {
|
|
943
962
|
process.exitCode = main(process.argv.slice(2));
|
|
944
963
|
} catch (exc) {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
import * as os from 'node:os';
|
|
19
19
|
import * as path from 'node:path';
|
|
20
20
|
import process from 'node:process';
|
|
21
|
+
import * as fs from 'node:fs';
|
|
21
22
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
22
23
|
|
|
23
24
|
import {
|
|
@@ -151,9 +152,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
151
152
|
|
|
152
153
|
// --- CLI entry ---
|
|
153
154
|
|
|
154
|
-
|
|
155
|
-
process.argv[1]
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
function _isCliEntry(): boolean {
|
|
156
|
+
if (process.argv[1] === undefined) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
160
|
+
if (import.meta.url === argvUrl) {
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
164
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
165
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
166
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
167
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
168
|
+
try {
|
|
169
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
170
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
171
|
+
return here === argv;
|
|
172
|
+
} catch {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
158
178
|
process.exitCode = main(process.argv.slice(2));
|
|
159
179
|
}
|
|
@@ -594,10 +594,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
594
594
|
|
|
595
595
|
// CLI entry guard — set process.exitCode; never call process.exit().
|
|
596
596
|
const _HERE = fileURLToPath(import.meta.url);
|
|
597
|
-
|
|
598
|
-
process.argv[1]
|
|
599
|
-
|
|
600
|
-
|
|
597
|
+
function _isCliEntry(): boolean {
|
|
598
|
+
if (process.argv[1] === undefined) {
|
|
599
|
+
return false;
|
|
600
|
+
}
|
|
601
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
602
|
+
if (import.meta.url === argvUrl) {
|
|
603
|
+
return true;
|
|
604
|
+
}
|
|
605
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
606
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
607
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
608
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
609
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
610
|
+
try {
|
|
611
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
612
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
613
|
+
return here === argv;
|
|
614
|
+
} catch {
|
|
615
|
+
return false;
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
601
620
|
try {
|
|
602
621
|
process.exitCode = main(process.argv.slice(2));
|
|
603
622
|
} catch (exc) {
|
|
@@ -502,10 +502,29 @@ export function main(argv: string[] | null = null, options: MainOptions = {}): n
|
|
|
502
502
|
|
|
503
503
|
// --- CLI entry ---
|
|
504
504
|
|
|
505
|
-
|
|
506
|
-
process.argv[1]
|
|
507
|
-
|
|
508
|
-
|
|
505
|
+
function _isCliEntry(): boolean {
|
|
506
|
+
if (process.argv[1] === undefined) {
|
|
507
|
+
return false;
|
|
508
|
+
}
|
|
509
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
510
|
+
if (import.meta.url === argvUrl) {
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
514
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
515
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
516
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
517
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
518
|
+
try {
|
|
519
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
520
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
521
|
+
return here === argv;
|
|
522
|
+
} catch {
|
|
523
|
+
return false;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
509
528
|
try {
|
|
510
529
|
process.exitCode = main(process.argv.slice(2));
|
|
511
530
|
} catch (e) {
|
|
@@ -391,10 +391,29 @@ export function main(argv: string[] | null = null, options: MainOptions = {}): n
|
|
|
391
391
|
|
|
392
392
|
// CLI entry guard — set process.exitCode; never call process.exit().
|
|
393
393
|
const _HERE = fileURLToPath(import.meta.url);
|
|
394
|
-
|
|
395
|
-
process.argv[1]
|
|
396
|
-
|
|
397
|
-
|
|
394
|
+
function _isCliEntry(): boolean {
|
|
395
|
+
if (process.argv[1] === undefined) {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
399
|
+
if (import.meta.url === argvUrl) {
|
|
400
|
+
return true;
|
|
401
|
+
}
|
|
402
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
403
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
404
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
405
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
406
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
407
|
+
try {
|
|
408
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
409
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
410
|
+
return here === argv;
|
|
411
|
+
} catch {
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
398
417
|
try {
|
|
399
418
|
process.exitCode = main(process.argv.slice(2));
|
|
400
419
|
} catch (exc) {
|
|
@@ -328,10 +328,29 @@ export function main(argv: string[] | null = null, options: MainOptions = {}): n
|
|
|
328
328
|
// CLI entry guard — set process.exitCode; never call process.exit().
|
|
329
329
|
// Python: `if __name__ == "__main__": sys.exit(main())`.
|
|
330
330
|
const _HERE = fileURLToPath(import.meta.url);
|
|
331
|
-
|
|
332
|
-
process.argv[1]
|
|
333
|
-
|
|
334
|
-
|
|
331
|
+
function _isCliEntry(): boolean {
|
|
332
|
+
if (process.argv[1] === undefined) {
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
336
|
+
if (import.meta.url === argvUrl) {
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
340
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
341
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
342
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
343
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
344
|
+
try {
|
|
345
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
346
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
347
|
+
return here === argv;
|
|
348
|
+
} catch {
|
|
349
|
+
return false;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
335
354
|
try {
|
|
336
355
|
process.exitCode = main();
|
|
337
356
|
} catch (exc) {
|
|
@@ -365,10 +365,29 @@ export function main(argv: string[] | null = null, options: MainOptions = {}): n
|
|
|
365
365
|
// CLI entry guard — set process.exitCode; never call process.exit().
|
|
366
366
|
// Python: `if __name__ == "__main__": sys.exit(main(sys.argv[1:]))`.
|
|
367
367
|
const _HERE = fileURLToPath(import.meta.url);
|
|
368
|
-
|
|
369
|
-
process.argv[1]
|
|
370
|
-
|
|
371
|
-
|
|
368
|
+
function _isCliEntry(): boolean {
|
|
369
|
+
if (process.argv[1] === undefined) {
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
373
|
+
if (import.meta.url === argvUrl) {
|
|
374
|
+
return true;
|
|
375
|
+
}
|
|
376
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
377
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
378
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
379
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
380
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
381
|
+
try {
|
|
382
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
383
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
384
|
+
return here === argv;
|
|
385
|
+
} catch {
|
|
386
|
+
return false;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
372
391
|
try {
|
|
373
392
|
process.exitCode = main(process.argv.slice(2));
|
|
374
393
|
} catch (exc) {
|
|
@@ -817,10 +817,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
817
817
|
|
|
818
818
|
// CLI entry guard — set process.exitCode; never call process.exit().
|
|
819
819
|
const _HERE = fileURLToPath(import.meta.url);
|
|
820
|
-
|
|
821
|
-
process.argv[1]
|
|
822
|
-
|
|
823
|
-
|
|
820
|
+
function _isCliEntry(): boolean {
|
|
821
|
+
if (process.argv[1] === undefined) {
|
|
822
|
+
return false;
|
|
823
|
+
}
|
|
824
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
825
|
+
if (import.meta.url === argvUrl) {
|
|
826
|
+
return true;
|
|
827
|
+
}
|
|
828
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
829
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
830
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
831
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
832
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
833
|
+
try {
|
|
834
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
835
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
836
|
+
return here === argv;
|
|
837
|
+
} catch {
|
|
838
|
+
return false;
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
824
843
|
try {
|
|
825
844
|
process.exitCode = main(process.argv.slice(2));
|
|
826
845
|
} catch (exc) {
|
|
@@ -567,10 +567,29 @@ function _detect_installed_version(): string {
|
|
|
567
567
|
}
|
|
568
568
|
|
|
569
569
|
// CLI entry guard — set process.exitCode; never call process.exit().
|
|
570
|
-
|
|
571
|
-
process.argv[1]
|
|
572
|
-
|
|
573
|
-
|
|
570
|
+
function _isCliEntry(): boolean {
|
|
571
|
+
if (process.argv[1] === undefined) {
|
|
572
|
+
return false;
|
|
573
|
+
}
|
|
574
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
575
|
+
if (import.meta.url === argvUrl) {
|
|
576
|
+
return true;
|
|
577
|
+
}
|
|
578
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
579
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
580
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
581
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
582
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
583
|
+
try {
|
|
584
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
585
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
586
|
+
return here === argv;
|
|
587
|
+
} catch {
|
|
588
|
+
return false;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
574
593
|
main(process.argv.slice(2))
|
|
575
594
|
.then((code) => {
|
|
576
595
|
process.exitCode = code;
|