@event4u/agent-config 8.1.0 → 8.3.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 +3 -3
- package/CHANGELOG.md +83 -292
- package/MIGRATION.md +18 -0
- package/README.md +86 -3
- 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 +647 -408
- package/dist/mcp/registry-manifest.json +3 -3
- 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/CHANGELOG-conventions.md +8 -5
- package/docs/contracts/branch-protection-policy.md +14 -5
- package/docs/contracts/mcp-phase-1-scope.md +75 -0
- package/docs/contracts/mcp-tool-inventory.md +22 -15
- package/docs/contracts/release-pr-gating.md +22 -11
- 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/decisions/ADR-111-canonical-glama-listing.md +97 -0
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +92 -0
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +201 -0
- package/docs/decisions/INDEX.md +3 -0
- package/docs/distribution/registry-submissions.md +1 -1
- package/docs/getting-started.md +8 -6
- 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/installation.md +13 -14
- package/docs/mcp-server.md +32 -20
- package/docs/proof.md +1 -1
- package/docs/setup/mcp-cloud-endpoints.md +9 -2
- package/docs/setup/per-ide/claude-code.md +10 -4
- package/package.json +4 -3
- 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 +196 -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 +45 -4
- package/src/scripts/_cli/cmd_update.ts +23 -4
- package/src/scripts/_cli/cmd_upgrade.ts +307 -17
- 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/claude_settings_hooks.ts +251 -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 +30 -31
- 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 +23 -4
- package/src/scripts/install.ts +102 -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_glama_drift.ts +75 -0
- 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_exec/safety_envelope.ts +105 -0
- package/src/scripts/mcp_parity_smoke.ts +23 -2
- package/src/scripts/mcp_registry_submit.sh +14 -3
- package/src/scripts/mcp_render.ts +23 -4
- package/src/scripts/mcp_server/__main__.ts +6 -8
- package/src/scripts/mcp_server/consumer_tool_catalog.json +78 -3
- package/src/scripts/mcp_server/tools.ts +731 -0
- 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 +226 -43
- 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
|
@@ -386,9 +386,28 @@ export function main(argv: string[]): number {
|
|
|
386
386
|
return 0;
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
-
|
|
390
|
-
process.argv[1]
|
|
391
|
-
|
|
392
|
-
|
|
389
|
+
function _isCliEntry(): boolean {
|
|
390
|
+
if (process.argv[1] === undefined) {
|
|
391
|
+
return false;
|
|
392
|
+
}
|
|
393
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
394
|
+
if (import.meta.url === argvUrl) {
|
|
395
|
+
return true;
|
|
396
|
+
}
|
|
397
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
398
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
399
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
400
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
401
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
402
|
+
try {
|
|
403
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
404
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
405
|
+
return here === argv;
|
|
406
|
+
} catch {
|
|
407
|
+
return false;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
393
412
|
process.exitCode = main(process.argv.slice(2));
|
|
394
413
|
}
|
|
@@ -557,7 +557,29 @@ function _pyStrCmp(a: string, b: string): number {
|
|
|
557
557
|
return ca.length - cb.length;
|
|
558
558
|
}
|
|
559
559
|
|
|
560
|
-
|
|
560
|
+
function _isCliEntry(): boolean {
|
|
561
|
+
if (process.argv[1] === undefined) {
|
|
562
|
+
return false;
|
|
563
|
+
}
|
|
564
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
565
|
+
if (import.meta.url === argvUrl) {
|
|
566
|
+
return true;
|
|
567
|
+
}
|
|
568
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
569
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
570
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
571
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
572
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
573
|
+
try {
|
|
574
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
575
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
576
|
+
return here === argv;
|
|
577
|
+
} catch {
|
|
578
|
+
return false;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
if (_isCliEntry()) {
|
|
561
583
|
try {
|
|
562
584
|
process.exitCode = main();
|
|
563
585
|
} catch (e) {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
import * as fs from 'node:fs';
|
|
29
29
|
import * as path from 'node:path';
|
|
30
|
-
import { pathToFileURL } from 'node:url';
|
|
30
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
31
31
|
|
|
32
32
|
import * as sl from './_lib/security_lint.js';
|
|
33
33
|
import { _scan as _scanHiddenUnicode } from './lint_hidden_unicode.js';
|
|
@@ -412,10 +412,29 @@ export function main(argv: readonly string[] | null = null): number {
|
|
|
412
412
|
return 0;
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
-
|
|
416
|
-
process.argv[1]
|
|
417
|
-
|
|
418
|
-
|
|
415
|
+
function _isCliEntry(): boolean {
|
|
416
|
+
if (process.argv[1] === undefined) {
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
420
|
+
if (import.meta.url === argvUrl) {
|
|
421
|
+
return true;
|
|
422
|
+
}
|
|
423
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
424
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
425
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
426
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
427
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
428
|
+
try {
|
|
429
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
430
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
431
|
+
return here === argv;
|
|
432
|
+
} catch {
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
if (_isCliEntry()) {
|
|
419
438
|
process.exitCode = main();
|
|
420
439
|
}
|
|
421
440
|
|
|
@@ -440,9 +440,28 @@ function _dumpString(s: string): string {
|
|
|
440
440
|
return out + '"';
|
|
441
441
|
}
|
|
442
442
|
|
|
443
|
-
|
|
444
|
-
process.argv[1]
|
|
445
|
-
|
|
446
|
-
|
|
443
|
+
function _isCliEntry(): boolean {
|
|
444
|
+
if (process.argv[1] === undefined) {
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
448
|
+
if (import.meta.url === argvUrl) {
|
|
449
|
+
return true;
|
|
450
|
+
}
|
|
451
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
452
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
453
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
454
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
455
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
456
|
+
try {
|
|
457
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
458
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
459
|
+
return here === argv;
|
|
460
|
+
} catch {
|
|
461
|
+
return false;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
447
466
|
process.exitCode = main();
|
|
448
467
|
}
|
|
@@ -682,9 +682,28 @@ function _dumpString(s: string): string {
|
|
|
682
682
|
return out + '"';
|
|
683
683
|
}
|
|
684
684
|
|
|
685
|
-
|
|
686
|
-
process.argv[1]
|
|
687
|
-
|
|
688
|
-
|
|
685
|
+
function _isCliEntry(): boolean {
|
|
686
|
+
if (process.argv[1] === undefined) {
|
|
687
|
+
return false;
|
|
688
|
+
}
|
|
689
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
690
|
+
if (import.meta.url === argvUrl) {
|
|
691
|
+
return true;
|
|
692
|
+
}
|
|
693
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
694
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
695
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
696
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
697
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
698
|
+
try {
|
|
699
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
700
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
701
|
+
return here === argv;
|
|
702
|
+
} catch {
|
|
703
|
+
return false;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
689
708
|
process.exitCode = main();
|
|
690
709
|
}
|
|
@@ -4284,9 +4284,30 @@ function jsonIndent2(payload: unknown): string {
|
|
|
4284
4284
|
}
|
|
4285
4285
|
|
|
4286
4286
|
// CLI entry — only when executed directly, not when imported by tests.
|
|
4287
|
+
function _isCliEntry(): boolean {
|
|
4288
|
+
if (process.argv[1] === undefined) {
|
|
4289
|
+
return false;
|
|
4290
|
+
}
|
|
4291
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
4292
|
+
if (import.meta.url === argvUrl) {
|
|
4293
|
+
return true;
|
|
4294
|
+
}
|
|
4295
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
4296
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
4297
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
4298
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
4299
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
4300
|
+
try {
|
|
4301
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
4302
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
4303
|
+
return here === argv;
|
|
4304
|
+
} catch {
|
|
4305
|
+
return false;
|
|
4306
|
+
}
|
|
4307
|
+
}
|
|
4308
|
+
|
|
4287
4309
|
const isCliEntry =
|
|
4288
|
-
|
|
4289
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
4310
|
+
_isCliEntry();
|
|
4290
4311
|
if (isCliEntry) {
|
|
4291
4312
|
// Set exitCode rather than calling process.exit() so a large stdout write
|
|
4292
4313
|
// to a pipe is fully flushed before the process terminates — process.exit()
|
|
@@ -540,9 +540,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
540
540
|
return 0;
|
|
541
541
|
}
|
|
542
542
|
|
|
543
|
-
|
|
544
|
-
process.argv[1]
|
|
545
|
-
|
|
546
|
-
|
|
543
|
+
function _isCliEntry(): boolean {
|
|
544
|
+
if (process.argv[1] === undefined) {
|
|
545
|
+
return false;
|
|
546
|
+
}
|
|
547
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
548
|
+
if (import.meta.url === argvUrl) {
|
|
549
|
+
return true;
|
|
550
|
+
}
|
|
551
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
552
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
553
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
554
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
555
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
556
|
+
try {
|
|
557
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
558
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
559
|
+
return here === argv;
|
|
560
|
+
} catch {
|
|
561
|
+
return false;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
if (_isCliEntry()) {
|
|
547
566
|
process.exit(main());
|
|
548
567
|
}
|
|
@@ -421,7 +421,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
421
421
|
return 0;
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
-
|
|
424
|
+
function _isCliEntry(): boolean {
|
|
425
|
+
if (process.argv[1] === undefined) {
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
428
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
429
|
+
if (import.meta.url === argvUrl) {
|
|
430
|
+
return true;
|
|
431
|
+
}
|
|
432
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
433
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
434
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
435
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
436
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
437
|
+
try {
|
|
438
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
439
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
440
|
+
return here === argv;
|
|
441
|
+
} catch {
|
|
442
|
+
return false;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
const _isMain = _isCliEntry();
|
|
425
447
|
if (_isMain) {
|
|
426
448
|
process.exitCode = main();
|
|
427
449
|
}
|
|
@@ -501,7 +501,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
501
501
|
return 0;
|
|
502
502
|
}
|
|
503
503
|
|
|
504
|
-
|
|
504
|
+
function _isCliEntry(): boolean {
|
|
505
|
+
if (process.argv[1] === undefined) {
|
|
506
|
+
return false;
|
|
507
|
+
}
|
|
508
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
509
|
+
if (import.meta.url === argvUrl) {
|
|
510
|
+
return true;
|
|
511
|
+
}
|
|
512
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
513
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
514
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
515
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
516
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
517
|
+
try {
|
|
518
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
519
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
520
|
+
return here === argv;
|
|
521
|
+
} catch {
|
|
522
|
+
return false;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
const _isMain = _isCliEntry();
|
|
505
527
|
if (_isMain) {
|
|
506
528
|
process.exitCode = main();
|
|
507
529
|
}
|
|
@@ -367,7 +367,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
367
367
|
return report.pilot_passed ? 0 : 1;
|
|
368
368
|
}
|
|
369
369
|
|
|
370
|
-
|
|
370
|
+
function _isCliEntry(): boolean {
|
|
371
|
+
if (process.argv[1] === undefined) {
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
375
|
+
if (import.meta.url === argvUrl) {
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
378
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
379
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
380
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
381
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
382
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
383
|
+
try {
|
|
384
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
385
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
386
|
+
return here === argv;
|
|
387
|
+
} catch {
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
const _isMain = _isCliEntry();
|
|
371
393
|
if (_isMain) {
|
|
372
394
|
process.exitCode = main();
|
|
373
395
|
}
|
|
@@ -469,7 +469,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
469
469
|
return 0;
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
-
|
|
472
|
+
function _isCliEntry(): boolean {
|
|
473
|
+
if (process.argv[1] === undefined) {
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
477
|
+
if (import.meta.url === argvUrl) {
|
|
478
|
+
return true;
|
|
479
|
+
}
|
|
480
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
481
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
482
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
483
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
484
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
485
|
+
try {
|
|
486
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
487
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
488
|
+
return here === argv;
|
|
489
|
+
} catch {
|
|
490
|
+
return false;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
const _isMain = _isCliEntry();
|
|
473
495
|
if (_isMain) {
|
|
474
496
|
process.exitCode = main();
|
|
475
497
|
}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* No behaviour changes — latent Python quirks replicated.
|
|
26
26
|
*/
|
|
27
27
|
import * as path from 'node:path';
|
|
28
|
+
import * as fs from 'node:fs';
|
|
28
29
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
29
30
|
|
|
30
31
|
import { audit, type PersonaRow } from './audit_persona_coverage.js';
|
|
@@ -282,7 +283,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
282
283
|
return 0;
|
|
283
284
|
}
|
|
284
285
|
|
|
285
|
-
|
|
286
|
+
function _isCliEntry(): boolean {
|
|
287
|
+
if (process.argv[1] === undefined) {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
291
|
+
if (import.meta.url === argvUrl) {
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
295
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
296
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
297
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
298
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
299
|
+
try {
|
|
300
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
301
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
302
|
+
return here === argv;
|
|
303
|
+
} catch {
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
const _isMain = _isCliEntry();
|
|
286
309
|
if (_isMain) {
|
|
287
310
|
process.exitCode = main();
|
|
288
311
|
}
|
|
@@ -457,9 +457,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
457
457
|
return 0;
|
|
458
458
|
}
|
|
459
459
|
|
|
460
|
-
|
|
461
|
-
process.argv[1]
|
|
462
|
-
|
|
463
|
-
|
|
460
|
+
function _isCliEntry(): boolean {
|
|
461
|
+
if (process.argv[1] === undefined) {
|
|
462
|
+
return false;
|
|
463
|
+
}
|
|
464
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
465
|
+
if (import.meta.url === argvUrl) {
|
|
466
|
+
return true;
|
|
467
|
+
}
|
|
468
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
469
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
470
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
471
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
472
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
473
|
+
try {
|
|
474
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
475
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
476
|
+
return here === argv;
|
|
477
|
+
} catch {
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
464
483
|
process.exit(main());
|
|
465
484
|
}
|
|
@@ -186,9 +186,28 @@ export function main(): number {
|
|
|
186
186
|
return 0;
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
process.argv[1]
|
|
191
|
-
|
|
192
|
-
|
|
189
|
+
function _isCliEntry(): boolean {
|
|
190
|
+
if (process.argv[1] === undefined) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
194
|
+
if (import.meta.url === argvUrl) {
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
198
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
199
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
200
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
201
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
202
|
+
try {
|
|
203
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
204
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
205
|
+
return here === argv;
|
|
206
|
+
} catch {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
193
212
|
process.exitCode = main();
|
|
194
213
|
}
|
|
@@ -216,9 +216,28 @@ export function main(): number {
|
|
|
216
216
|
return 0;
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
220
|
-
process.argv[1]
|
|
221
|
-
|
|
222
|
-
|
|
219
|
+
function _isCliEntry(): boolean {
|
|
220
|
+
if (process.argv[1] === undefined) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
224
|
+
if (import.meta.url === argvUrl) {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
228
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
229
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
230
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
231
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
232
|
+
try {
|
|
233
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
234
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
235
|
+
return here === argv;
|
|
236
|
+
} catch {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
223
242
|
process.exitCode = main();
|
|
224
243
|
}
|
|
@@ -367,9 +367,28 @@ function _pyListRepr(items: string[]): string {
|
|
|
367
367
|
return '[' + items.map((s) => `'${s}'`).join(', ') + ']';
|
|
368
368
|
}
|
|
369
369
|
|
|
370
|
-
|
|
371
|
-
process.argv[1]
|
|
372
|
-
|
|
373
|
-
|
|
370
|
+
function _isCliEntry(): boolean {
|
|
371
|
+
if (process.argv[1] === undefined) {
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
375
|
+
if (import.meta.url === argvUrl) {
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
378
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
379
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
380
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
381
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
382
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
383
|
+
try {
|
|
384
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
385
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
386
|
+
return here === argv;
|
|
387
|
+
} catch {
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
374
393
|
process.exit(main());
|
|
375
394
|
}
|
|
@@ -239,9 +239,28 @@ export function main(): number {
|
|
|
239
239
|
return 0;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
|
|
243
|
-
process.argv[1]
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
function _isCliEntry(): boolean {
|
|
243
|
+
if (process.argv[1] === undefined) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
247
|
+
if (import.meta.url === argvUrl) {
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
251
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
252
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
253
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
254
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
255
|
+
try {
|
|
256
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
257
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
258
|
+
return here === argv;
|
|
259
|
+
} catch {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
246
265
|
process.exitCode = main();
|
|
247
266
|
}
|
|
@@ -755,9 +755,28 @@ export function main(argv: readonly string[] = process.argv.slice(2)): number {
|
|
|
755
755
|
return 0;
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
758
|
+
function _isCliEntry(): boolean {
|
|
759
|
+
if (process.argv[1] === undefined) {
|
|
760
|
+
return false;
|
|
761
|
+
}
|
|
762
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
763
|
+
if (import.meta.url === argvUrl) {
|
|
764
|
+
return true;
|
|
765
|
+
}
|
|
766
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
767
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
768
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
769
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
770
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
771
|
+
try {
|
|
772
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
773
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
774
|
+
return here === argv;
|
|
775
|
+
} catch {
|
|
776
|
+
return false;
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
762
781
|
process.exit(main());
|
|
763
782
|
}
|
|
@@ -533,10 +533,29 @@ export function unified_diff(
|
|
|
533
533
|
return out;
|
|
534
534
|
}
|
|
535
535
|
|
|
536
|
-
|
|
537
|
-
process.argv[1]
|
|
538
|
-
|
|
539
|
-
|
|
536
|
+
function _isCliEntry(): boolean {
|
|
537
|
+
if (process.argv[1] === undefined) {
|
|
538
|
+
return false;
|
|
539
|
+
}
|
|
540
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
541
|
+
if (import.meta.url === argvUrl) {
|
|
542
|
+
return true;
|
|
543
|
+
}
|
|
544
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
545
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
546
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
547
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
548
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
549
|
+
try {
|
|
550
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
551
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
552
|
+
return here === argv;
|
|
553
|
+
} catch {
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
540
559
|
main(process.argv.slice(2)).then(
|
|
541
560
|
(code) => process.exit(code),
|
|
542
561
|
(exc: unknown) => {
|