@event4u/agent-config 8.0.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 +53 -568
- 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/commit-policy.md +10 -0
- 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 +119 -119
- 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.0.0.md +301 -0
- 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
|
@@ -469,6 +469,28 @@ function _splitMax(s: string, sep: string, maxsplit: number): string[] {
|
|
|
469
469
|
return parts;
|
|
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
|
+
if (_isCliEntry()) {
|
|
473
495
|
process.exitCode = main();
|
|
474
496
|
}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
import * as crypto from 'node:crypto';
|
|
32
32
|
import * as fs from 'node:fs';
|
|
33
33
|
import * as path from 'node:path';
|
|
34
|
-
import { pathToFileURL } from 'node:url';
|
|
34
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
35
35
|
|
|
36
36
|
export const TOOL_IDS = ['claude', 'augment', 'cursor', 'cline', 'windsurf', 'copilot'] as const;
|
|
37
37
|
export const SCOPE_IDS = ['user', 'project'] as const;
|
|
@@ -782,6 +782,28 @@ function _pyPathCmp(a: string, b: string): number {
|
|
|
782
782
|
return pa.length - pb.length;
|
|
783
783
|
}
|
|
784
784
|
|
|
785
|
-
|
|
785
|
+
function _isCliEntry(): boolean {
|
|
786
|
+
if (process.argv[1] === undefined) {
|
|
787
|
+
return false;
|
|
788
|
+
}
|
|
789
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
790
|
+
if (import.meta.url === argvUrl) {
|
|
791
|
+
return true;
|
|
792
|
+
}
|
|
793
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
794
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
795
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
796
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
797
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
798
|
+
try {
|
|
799
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
800
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
801
|
+
return here === argv;
|
|
802
|
+
} catch {
|
|
803
|
+
return false;
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
if (_isCliEntry()) {
|
|
786
808
|
process.exitCode = main();
|
|
787
809
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
import fs from "node:fs";
|
|
31
31
|
import path from "node:path";
|
|
32
|
-
import { pathToFileURL } from "node:url";
|
|
32
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
33
33
|
import { parse as parseYaml } from "yaml";
|
|
34
34
|
|
|
35
35
|
import {
|
|
@@ -161,9 +161,30 @@ export function main(argv?: string[]): number {
|
|
|
161
161
|
return 0;
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
+
function _isCliEntry(): boolean {
|
|
165
|
+
if (process.argv[1] === undefined) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
169
|
+
if (import.meta.url === argvUrl) {
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
173
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
174
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
175
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
176
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
177
|
+
try {
|
|
178
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
179
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
180
|
+
return here === argv;
|
|
181
|
+
} catch {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
164
186
|
const isCliEntry =
|
|
165
|
-
|
|
166
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
187
|
+
_isCliEntry();
|
|
167
188
|
if (isCliEntry) {
|
|
168
189
|
process.exit(main(process.argv.slice(2)));
|
|
169
190
|
}
|
|
@@ -219,9 +219,28 @@ function _mkdirParents(p: string): void {
|
|
|
219
219
|
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
|
|
223
|
-
process.argv[1]
|
|
224
|
-
|
|
225
|
-
|
|
222
|
+
function _isCliEntry(): boolean {
|
|
223
|
+
if (process.argv[1] === undefined) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
227
|
+
if (import.meta.url === argvUrl) {
|
|
228
|
+
return true;
|
|
229
|
+
}
|
|
230
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
231
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
232
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
233
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
234
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
235
|
+
try {
|
|
236
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
237
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
238
|
+
return here === argv;
|
|
239
|
+
} catch {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
226
245
|
process.exit(main());
|
|
227
246
|
}
|
|
@@ -484,8 +484,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
484
484
|
return 0;
|
|
485
485
|
}
|
|
486
486
|
|
|
487
|
-
|
|
488
|
-
process.argv[1]
|
|
489
|
-
|
|
487
|
+
function _isCliEntry(): boolean {
|
|
488
|
+
if (process.argv[1] === undefined) {
|
|
489
|
+
return false;
|
|
490
|
+
}
|
|
491
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
492
|
+
if (import.meta.url === argvUrl) {
|
|
493
|
+
return true;
|
|
494
|
+
}
|
|
495
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
496
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
497
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
498
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
499
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
500
|
+
try {
|
|
501
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
502
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
503
|
+
return here === argv;
|
|
504
|
+
} catch {
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
490
510
|
process.exit(main());
|
|
491
511
|
}
|
|
@@ -296,10 +296,29 @@ function main(argv?: readonly string[]): number {
|
|
|
296
296
|
return 0;
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
|
|
300
|
-
process.argv[1]
|
|
301
|
-
|
|
302
|
-
|
|
299
|
+
function _isCliEntry(): boolean {
|
|
300
|
+
if (process.argv[1] === undefined) {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
304
|
+
if (import.meta.url === argvUrl) {
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
308
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
309
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
310
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
311
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
312
|
+
try {
|
|
313
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
314
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
315
|
+
return here === argv;
|
|
316
|
+
} catch {
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
303
322
|
process.exitCode = main();
|
|
304
323
|
}
|
|
305
324
|
|
|
@@ -406,7 +406,29 @@ function _dumpsWithFloats(obj: Json, level = 0): string {
|
|
|
406
406
|
return `{\n${parts.join(',\n')}\n${closePad}}`;
|
|
407
407
|
}
|
|
408
408
|
|
|
409
|
-
|
|
409
|
+
function _isCliEntry(): boolean {
|
|
410
|
+
if (process.argv[1] === undefined) {
|
|
411
|
+
return false;
|
|
412
|
+
}
|
|
413
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
414
|
+
if (import.meta.url === argvUrl) {
|
|
415
|
+
return true;
|
|
416
|
+
}
|
|
417
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
418
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
419
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
420
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
421
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
422
|
+
try {
|
|
423
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
424
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
425
|
+
return here === argv;
|
|
426
|
+
} catch {
|
|
427
|
+
return false;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
const _isMain = _isCliEntry();
|
|
410
432
|
if (_isMain) {
|
|
411
433
|
process.exitCode = main();
|
|
412
434
|
}
|
|
@@ -380,9 +380,28 @@ function _sortedReprList(items: string[]): string {
|
|
|
380
380
|
return '[' + items.map((s) => `'${s}'`).join(', ') + ']';
|
|
381
381
|
}
|
|
382
382
|
|
|
383
|
-
|
|
384
|
-
process.argv[1]
|
|
385
|
-
|
|
386
|
-
|
|
383
|
+
function _isCliEntry(): boolean {
|
|
384
|
+
if (process.argv[1] === undefined) {
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
388
|
+
if (import.meta.url === argvUrl) {
|
|
389
|
+
return true;
|
|
390
|
+
}
|
|
391
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
392
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
393
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
394
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
395
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
396
|
+
try {
|
|
397
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
398
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
399
|
+
return here === argv;
|
|
400
|
+
} catch {
|
|
401
|
+
return false;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
387
406
|
process.exitCode = main();
|
|
388
407
|
}
|
|
@@ -906,8 +906,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
906
906
|
void _isFile;
|
|
907
907
|
|
|
908
908
|
const _HERE = fileURLToPath(import.meta.url);
|
|
909
|
-
|
|
910
|
-
process.argv[1]
|
|
911
|
-
|
|
909
|
+
function _isCliEntry(): boolean {
|
|
910
|
+
if (process.argv[1] === undefined) {
|
|
911
|
+
return false;
|
|
912
|
+
}
|
|
913
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
914
|
+
if (import.meta.url === argvUrl) {
|
|
915
|
+
return true;
|
|
916
|
+
}
|
|
917
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
918
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
919
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
920
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
921
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
922
|
+
try {
|
|
923
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
924
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
925
|
+
return here === argv;
|
|
926
|
+
} catch {
|
|
927
|
+
return false;
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
912
932
|
process.exitCode = main();
|
|
913
933
|
}
|
|
@@ -317,9 +317,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
317
317
|
return 0;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
-
|
|
321
|
-
process.argv[1]
|
|
322
|
-
|
|
323
|
-
|
|
320
|
+
function _isCliEntry(): boolean {
|
|
321
|
+
if (process.argv[1] === undefined) {
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
325
|
+
if (import.meta.url === argvUrl) {
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
329
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
330
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
331
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
332
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
333
|
+
try {
|
|
334
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
335
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
336
|
+
return here === argv;
|
|
337
|
+
} catch {
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
324
343
|
process.exitCode = main();
|
|
325
344
|
}
|
|
@@ -695,9 +695,28 @@ function main(): void {
|
|
|
695
695
|
}
|
|
696
696
|
}
|
|
697
697
|
|
|
698
|
-
|
|
699
|
-
process.argv[1]
|
|
700
|
-
|
|
701
|
-
|
|
698
|
+
function _isCliEntry(): boolean {
|
|
699
|
+
if (process.argv[1] === undefined) {
|
|
700
|
+
return false;
|
|
701
|
+
}
|
|
702
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
703
|
+
if (import.meta.url === argvUrl) {
|
|
704
|
+
return true;
|
|
705
|
+
}
|
|
706
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
707
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
708
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
709
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
710
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
711
|
+
try {
|
|
712
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
713
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
714
|
+
return here === argv;
|
|
715
|
+
} catch {
|
|
716
|
+
return false;
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
702
721
|
main();
|
|
703
722
|
}
|
package/src/scripts/release.ts
CHANGED
|
@@ -1732,10 +1732,29 @@ function main(argv: readonly string[] | null = null): number {
|
|
|
1732
1732
|
|
|
1733
1733
|
// ─── CLI entry (release.py:1090-1091 `raise SystemExit(main())`) ──────────────
|
|
1734
1734
|
|
|
1735
|
-
|
|
1736
|
-
process.argv[1]
|
|
1737
|
-
|
|
1738
|
-
|
|
1735
|
+
function _isCliEntry(): boolean {
|
|
1736
|
+
if (process.argv[1] === undefined) {
|
|
1737
|
+
return false;
|
|
1738
|
+
}
|
|
1739
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
1740
|
+
if (import.meta.url === argvUrl) {
|
|
1741
|
+
return true;
|
|
1742
|
+
}
|
|
1743
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
1744
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
1745
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
1746
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
1747
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
1748
|
+
try {
|
|
1749
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
1750
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
1751
|
+
return here === argv;
|
|
1752
|
+
} catch {
|
|
1753
|
+
return false;
|
|
1754
|
+
}
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
1739
1758
|
try {
|
|
1740
1759
|
// main() can return an int directly OR throw SystemExitError via die();
|
|
1741
1760
|
// both flow into process.exitCode. CalledProcessError is intentionally
|
|
@@ -370,9 +370,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
370
370
|
|
|
371
371
|
// --- CLI entry ---
|
|
372
372
|
|
|
373
|
-
|
|
374
|
-
process.argv[1]
|
|
375
|
-
|
|
376
|
-
|
|
373
|
+
function _isCliEntry(): boolean {
|
|
374
|
+
if (process.argv[1] === undefined) {
|
|
375
|
+
return false;
|
|
376
|
+
}
|
|
377
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
378
|
+
if (import.meta.url === argvUrl) {
|
|
379
|
+
return true;
|
|
380
|
+
}
|
|
381
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
382
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
383
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
384
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
385
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
386
|
+
try {
|
|
387
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
388
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
389
|
+
return here === argv;
|
|
390
|
+
} catch {
|
|
391
|
+
return false;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
377
396
|
process.exitCode = main(process.argv.slice(2));
|
|
378
397
|
}
|
|
@@ -656,9 +656,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
656
656
|
return render(args.quiet);
|
|
657
657
|
}
|
|
658
658
|
|
|
659
|
-
|
|
660
|
-
process.argv[1]
|
|
661
|
-
|
|
662
|
-
|
|
659
|
+
function _isCliEntry(): boolean {
|
|
660
|
+
if (process.argv[1] === undefined) {
|
|
661
|
+
return false;
|
|
662
|
+
}
|
|
663
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
664
|
+
if (import.meta.url === argvUrl) {
|
|
665
|
+
return true;
|
|
666
|
+
}
|
|
667
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
668
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
669
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
670
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
671
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
672
|
+
try {
|
|
673
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
674
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
675
|
+
return here === argv;
|
|
676
|
+
} catch {
|
|
677
|
+
return false;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
663
682
|
process.exit(main());
|
|
664
683
|
}
|
|
@@ -289,24 +289,33 @@ function _isFile(p: string): boolean {
|
|
|
289
289
|
/**
|
|
290
290
|
* Resolve how to run the `.ts` regenerator: prefer the `tsx` binary from a
|
|
291
291
|
* `node_modules/.bin` directory found by walking up from the regenerator's
|
|
292
|
-
* directory
|
|
293
|
-
* `dispatch_hook.ts::_resolve_tsx_invocation` so the
|
|
294
|
-
* TypeScript with no python3 dependency
|
|
295
|
-
*
|
|
292
|
+
* directory, then from THIS module's own package tree; only then fall back
|
|
293
|
+
* to `npx tsx`. Mirrors `dispatch_hook.ts::_resolve_tsx_invocation` so the
|
|
294
|
+
* regenerator runs as TypeScript with no python3 dependency. The package-
|
|
295
|
+
* tree branch matters when the regenerator lives in a consumer
|
|
296
|
+
* `.augment/scripts/` whose tree carries no tsx — `npx tsx` there runs
|
|
297
|
+
* against the consumer's npm config and fails hard on e.g. devEngines pins
|
|
298
|
+
* (the 8.1.0 EBADDEVENGINES regression).
|
|
296
299
|
*/
|
|
297
300
|
function _resolve_tsx_invocation(scriptPath: string): { command: string; args: string[] } {
|
|
298
301
|
const binName = process.platform === "win32" ? "tsx.cmd" : "tsx";
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
302
|
+
const walkUp = (start: string): string | null => {
|
|
303
|
+
let dir = start;
|
|
304
|
+
for (;;) {
|
|
305
|
+
const candidate = path.join(dir, "node_modules", ".bin", binName);
|
|
306
|
+
if (_isFile(candidate)) {
|
|
307
|
+
return candidate;
|
|
308
|
+
}
|
|
309
|
+
const parent = path.dirname(dir);
|
|
310
|
+
if (parent === dir) {
|
|
311
|
+
return null;
|
|
312
|
+
}
|
|
313
|
+
dir = parent;
|
|
308
314
|
}
|
|
309
|
-
|
|
315
|
+
};
|
|
316
|
+
const tsx = walkUp(path.dirname(scriptPath)) ?? walkUp(path.dirname(fileURLToPath(import.meta.url)));
|
|
317
|
+
if (tsx !== null) {
|
|
318
|
+
return { command: tsx, args: [scriptPath] };
|
|
310
319
|
}
|
|
311
320
|
return { command: "npx", args: ["tsx", scriptPath] };
|
|
312
321
|
}
|
|
@@ -460,9 +469,30 @@ export function main(argv?: string[]): number {
|
|
|
460
469
|
return run(_readStdin(), { consumer_root: root, verbose: args.verbose });
|
|
461
470
|
}
|
|
462
471
|
|
|
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
|
+
|
|
463
494
|
const isCliEntry =
|
|
464
|
-
|
|
465
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
495
|
+
_isCliEntry();
|
|
466
496
|
if (isCliEntry) {
|
|
467
497
|
process.exit(main(process.argv.slice(2)));
|
|
468
498
|
}
|
|
@@ -507,9 +507,28 @@ function _runCli(): number {
|
|
|
507
507
|
}
|
|
508
508
|
}
|
|
509
509
|
|
|
510
|
-
|
|
511
|
-
process.argv[1]
|
|
512
|
-
|
|
513
|
-
|
|
510
|
+
function _isCliEntry(): boolean {
|
|
511
|
+
if (process.argv[1] === undefined) {
|
|
512
|
+
return false;
|
|
513
|
+
}
|
|
514
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
515
|
+
if (import.meta.url === argvUrl) {
|
|
516
|
+
return true;
|
|
517
|
+
}
|
|
518
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
519
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
520
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
521
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
522
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
523
|
+
try {
|
|
524
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
525
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
526
|
+
return here === argv;
|
|
527
|
+
} catch {
|
|
528
|
+
return false;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
514
533
|
process.exit(_runCli());
|
|
515
534
|
}
|
|
@@ -571,10 +571,29 @@ export function main(argv: string[]): number {
|
|
|
571
571
|
return result.request.is_ready || result.request.status === 'blocked' ? 0 : 1;
|
|
572
572
|
}
|
|
573
573
|
|
|
574
|
-
|
|
575
|
-
process.argv[1]
|
|
576
|
-
|
|
577
|
-
|
|
574
|
+
function _isCliEntry(): boolean {
|
|
575
|
+
if (process.argv[1] === undefined) {
|
|
576
|
+
return false;
|
|
577
|
+
}
|
|
578
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
579
|
+
if (import.meta.url === argvUrl) {
|
|
580
|
+
return true;
|
|
581
|
+
}
|
|
582
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
583
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
584
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
585
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
586
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
587
|
+
try {
|
|
588
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
589
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
590
|
+
return here === argv;
|
|
591
|
+
} catch {
|
|
592
|
+
return false;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
578
597
|
try {
|
|
579
598
|
process.exitCode = main(process.argv.slice(2));
|
|
580
599
|
} catch (err) {
|
|
@@ -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
|
}
|