@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
|
@@ -365,10 +365,29 @@ function main(): number {
|
|
|
365
365
|
}
|
|
366
366
|
|
|
367
367
|
const _HERE = fileURLToPath(import.meta.url);
|
|
368
|
-
|
|
369
|
-
process.argv[1]
|
|
370
|
-
|
|
371
|
-
|
|
368
|
+
function _isCliEntry(): boolean {
|
|
369
|
+
if (process.argv[1] === undefined) {
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
373
|
+
if (import.meta.url === argvUrl) {
|
|
374
|
+
return true;
|
|
375
|
+
}
|
|
376
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
377
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
378
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
379
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
380
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
381
|
+
try {
|
|
382
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
383
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
384
|
+
return here === argv;
|
|
385
|
+
} catch {
|
|
386
|
+
return false;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
372
391
|
process.exit(main());
|
|
373
392
|
}
|
|
374
393
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import { execFileSync } from 'node:child_process';
|
|
15
|
+
import * as fs from 'node:fs';
|
|
15
16
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
16
17
|
import * as path from 'node:path';
|
|
17
18
|
|
|
@@ -61,7 +62,29 @@ export function main(): number {
|
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
const _HERE = fileURLToPath(import.meta.url);
|
|
64
|
-
|
|
65
|
+
function _isCliEntry(): boolean {
|
|
66
|
+
if (process.argv[1] === undefined) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
70
|
+
if (import.meta.url === argvUrl) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
74
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
75
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
76
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
77
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
78
|
+
try {
|
|
79
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
80
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
81
|
+
return here === argv;
|
|
82
|
+
} catch {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (_isCliEntry()) {
|
|
65
88
|
process.exit(main());
|
|
66
89
|
}
|
|
67
90
|
void _HERE;
|
|
@@ -133,10 +133,29 @@ async function main(argv: readonly string[] = process.argv.slice(2)): Promise<nu
|
|
|
133
133
|
return 0;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
|
|
137
|
-
process.argv[1]
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
function _isCliEntry(): boolean {
|
|
137
|
+
if (process.argv[1] === undefined) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
141
|
+
if (import.meta.url === argvUrl) {
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
145
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
146
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
147
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
148
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
149
|
+
try {
|
|
150
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
151
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
152
|
+
return here === argv;
|
|
153
|
+
} catch {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
140
159
|
void main().then((code) => process.exit(code));
|
|
141
160
|
}
|
|
142
161
|
|
|
@@ -227,9 +227,28 @@ export function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
227
227
|
return 0;
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
|
|
231
|
-
process.argv[1]
|
|
232
|
-
|
|
233
|
-
|
|
230
|
+
function _isCliEntry(): boolean {
|
|
231
|
+
if (process.argv[1] === undefined) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
235
|
+
if (import.meta.url === argvUrl) {
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
239
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
240
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
241
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
242
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
243
|
+
try {
|
|
244
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
245
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
246
|
+
return here === argv;
|
|
247
|
+
} catch {
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
234
253
|
process.exit(main());
|
|
235
254
|
}
|
|
@@ -518,9 +518,28 @@ function _dumpString(s: string): string {
|
|
|
518
518
|
return out + '"';
|
|
519
519
|
}
|
|
520
520
|
|
|
521
|
-
|
|
522
|
-
process.argv[1]
|
|
523
|
-
|
|
524
|
-
|
|
521
|
+
function _isCliEntry(): boolean {
|
|
522
|
+
if (process.argv[1] === undefined) {
|
|
523
|
+
return false;
|
|
524
|
+
}
|
|
525
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
526
|
+
if (import.meta.url === argvUrl) {
|
|
527
|
+
return true;
|
|
528
|
+
}
|
|
529
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
530
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
531
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
532
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
533
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
534
|
+
try {
|
|
535
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
536
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
537
|
+
return here === argv;
|
|
538
|
+
} catch {
|
|
539
|
+
return false;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
525
544
|
process.exitCode = main();
|
|
526
545
|
}
|
|
Binary file
|
|
@@ -316,9 +316,28 @@ export function main(argv: readonly string[]): number {
|
|
|
316
316
|
return 0;
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
|
|
320
|
-
process.argv[1]
|
|
321
|
-
|
|
322
|
-
|
|
319
|
+
function _isCliEntry(): boolean {
|
|
320
|
+
if (process.argv[1] === undefined) {
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
324
|
+
if (import.meta.url === argvUrl) {
|
|
325
|
+
return true;
|
|
326
|
+
}
|
|
327
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
328
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
329
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
330
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
331
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
332
|
+
try {
|
|
333
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
334
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
335
|
+
return here === argv;
|
|
336
|
+
} catch {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
323
342
|
process.exit(main(process.argv.slice(2)));
|
|
324
343
|
}
|
package/src/scripts/condense.ts
CHANGED
|
@@ -2362,9 +2362,30 @@ export function main(argv: readonly string[] = process.argv.slice(2)): number {
|
|
|
2362
2362
|
return 0;
|
|
2363
2363
|
}
|
|
2364
2364
|
|
|
2365
|
+
function _isCliEntry(): boolean {
|
|
2366
|
+
if (process.argv[1] === undefined) {
|
|
2367
|
+
return false;
|
|
2368
|
+
}
|
|
2369
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
2370
|
+
if (import.meta.url === argvUrl) {
|
|
2371
|
+
return true;
|
|
2372
|
+
}
|
|
2373
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
2374
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
2375
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
2376
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
2377
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
2378
|
+
try {
|
|
2379
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
2380
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
2381
|
+
return here === argv;
|
|
2382
|
+
} catch {
|
|
2383
|
+
return false;
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
|
|
2365
2387
|
const isMain =
|
|
2366
|
-
|
|
2367
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
2388
|
+
_isCliEntry();
|
|
2368
2389
|
|
|
2369
2390
|
if (isMain) {
|
|
2370
2391
|
process.exit(main());
|
|
@@ -26,7 +26,7 @@ import * as crypto from 'node:crypto';
|
|
|
26
26
|
import * as fs from 'node:fs';
|
|
27
27
|
import * as path from 'node:path';
|
|
28
28
|
import process from 'node:process';
|
|
29
|
-
import { pathToFileURL } from 'node:url';
|
|
29
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
30
30
|
|
|
31
31
|
import { SensitivePathError, assert_safe } from './validate_safe_paths.js';
|
|
32
32
|
|
|
@@ -327,8 +327,30 @@ export function _main(argv: string[]): number {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
|
|
330
|
+
function _isCliEntry(): boolean {
|
|
331
|
+
if (process.argv[1] === undefined) {
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
335
|
+
if (import.meta.url === argvUrl) {
|
|
336
|
+
return true;
|
|
337
|
+
}
|
|
338
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
339
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
340
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
341
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
342
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
343
|
+
try {
|
|
344
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
345
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
346
|
+
return here === argv;
|
|
347
|
+
} catch {
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
330
352
|
const _isMain =
|
|
331
|
-
|
|
353
|
+
_isCliEntry();
|
|
332
354
|
if (_isMain) {
|
|
333
355
|
process.exit(_main(process.argv.slice(2)));
|
|
334
356
|
}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
//
|
|
21
21
|
// Twin of `src/scripts/config/packs.py`.
|
|
22
22
|
import * as path from 'node:path';
|
|
23
|
+
import * as fs from 'node:fs';
|
|
23
24
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
24
25
|
|
|
25
26
|
// Reuse the vocab / closure / manifest loaders — single source of truth.
|
|
@@ -302,9 +303,28 @@ function _encStr(s: string): string {
|
|
|
302
303
|
// --- entrypoint ------------------------------------------------------------
|
|
303
304
|
|
|
304
305
|
const _HERE = fileURLToPath(import.meta.url);
|
|
305
|
-
|
|
306
|
-
process.argv[1]
|
|
307
|
-
|
|
308
|
-
|
|
306
|
+
function _isCliEntry(): boolean {
|
|
307
|
+
if (process.argv[1] === undefined) {
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
310
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
311
|
+
if (import.meta.url === argvUrl) {
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
315
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
316
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
317
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
318
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
319
|
+
try {
|
|
320
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
321
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
322
|
+
return here === argv;
|
|
323
|
+
} catch {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
309
329
|
process.exitCode = main();
|
|
310
330
|
}
|
|
@@ -1056,9 +1056,28 @@ function _scalarToken(value: string): string {
|
|
|
1056
1056
|
// --- entrypoint ------------------------------------------------------------
|
|
1057
1057
|
|
|
1058
1058
|
const _HERE = fileURLToPath(import.meta.url);
|
|
1059
|
-
|
|
1060
|
-
process.argv[1]
|
|
1061
|
-
|
|
1062
|
-
|
|
1059
|
+
function _isCliEntry(): boolean {
|
|
1060
|
+
if (process.argv[1] === undefined) {
|
|
1061
|
+
return false;
|
|
1062
|
+
}
|
|
1063
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
1064
|
+
if (import.meta.url === argvUrl) {
|
|
1065
|
+
return true;
|
|
1066
|
+
}
|
|
1067
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
1068
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
1069
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
1070
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
1071
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
1072
|
+
try {
|
|
1073
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
1074
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
1075
|
+
return here === argv;
|
|
1076
|
+
} catch {
|
|
1077
|
+
return false;
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
1063
1082
|
process.exitCode = main();
|
|
1064
1083
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
import fs from "node:fs";
|
|
32
32
|
import path from "node:path";
|
|
33
|
-
import { pathToFileURL } from "node:url";
|
|
33
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
34
34
|
|
|
35
35
|
// Re-use the shared atomic-write helper so concerns honour the single
|
|
36
36
|
// `agents/runtime/state/.dispatcher.lock` discipline (hook-architecture-v1.md
|
|
@@ -264,9 +264,30 @@ export function main(argv?: string[]): number {
|
|
|
264
264
|
return run(_readStdin(), { consumer_root: process.cwd(), verbose: args.verbose });
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
+
function _isCliEntry(): boolean {
|
|
268
|
+
if (process.argv[1] === undefined) {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
272
|
+
if (import.meta.url === argvUrl) {
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
276
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
277
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
278
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
279
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
280
|
+
try {
|
|
281
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
282
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
283
|
+
return here === argv;
|
|
284
|
+
} catch {
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
267
289
|
const isCliEntry =
|
|
268
|
-
|
|
269
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
290
|
+
_isCliEntry();
|
|
270
291
|
if (isCliEntry) {
|
|
271
292
|
process.exit(main(process.argv.slice(2)));
|
|
272
293
|
}
|
|
@@ -436,9 +436,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
436
436
|
return 0;
|
|
437
437
|
}
|
|
438
438
|
|
|
439
|
-
|
|
440
|
-
process.argv[1]
|
|
441
|
-
|
|
442
|
-
|
|
439
|
+
function _isCliEntry(): boolean {
|
|
440
|
+
if (process.argv[1] === undefined) {
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
443
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
444
|
+
if (import.meta.url === argvUrl) {
|
|
445
|
+
return true;
|
|
446
|
+
}
|
|
447
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
448
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
449
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
450
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
451
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
452
|
+
try {
|
|
453
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
454
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
455
|
+
return here === argv;
|
|
456
|
+
} catch {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
if (_isCliEntry()) {
|
|
443
462
|
process.exit(main());
|
|
444
463
|
}
|
|
@@ -399,9 +399,28 @@ export function main(argv: readonly string[] = process.argv.slice(2)): number {
|
|
|
399
399
|
return 0;
|
|
400
400
|
}
|
|
401
401
|
|
|
402
|
-
|
|
403
|
-
process.argv[1]
|
|
404
|
-
|
|
405
|
-
|
|
402
|
+
function _isCliEntry(): boolean {
|
|
403
|
+
if (process.argv[1] === undefined) {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
407
|
+
if (import.meta.url === argvUrl) {
|
|
408
|
+
return true;
|
|
409
|
+
}
|
|
410
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
411
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
412
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
413
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
414
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
415
|
+
try {
|
|
416
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
417
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
418
|
+
return here === argv;
|
|
419
|
+
} catch {
|
|
420
|
+
return false;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
406
425
|
process.exit(main());
|
|
407
426
|
}
|
|
@@ -96,6 +96,7 @@ import {
|
|
|
96
96
|
type PriceTable,
|
|
97
97
|
estimate_cost,
|
|
98
98
|
load_prices,
|
|
99
|
+
prices_file_for,
|
|
99
100
|
} from './ai_council/pricing.js';
|
|
100
101
|
import { detect_project_context } from './ai_council/project_context.js';
|
|
101
102
|
import {
|
|
@@ -1181,7 +1182,10 @@ function cmd_estimate(
|
|
|
1181
1182
|
});
|
|
1182
1183
|
}
|
|
1183
1184
|
if (table === null) {
|
|
1184
|
-
|
|
1185
|
+
// Anchor to the PROJECT root — the module default writes into the
|
|
1186
|
+
// installed package dir when run from a consumer (pollutes the npm
|
|
1187
|
+
// prefix; EACCES on root-owned prefixes).
|
|
1188
|
+
table = load_prices(prices_file_for(REPO_ROOT));
|
|
1185
1189
|
}
|
|
1186
1190
|
const [question] = build_question({
|
|
1187
1191
|
input_path: args.question as string,
|
|
@@ -1680,7 +1684,10 @@ function cmd_run(
|
|
|
1680
1684
|
_emit_shadow_slo_banner();
|
|
1681
1685
|
}
|
|
1682
1686
|
if (table === null) {
|
|
1683
|
-
|
|
1687
|
+
// Anchor to the PROJECT root — the module default writes into the
|
|
1688
|
+
// installed package dir when run from a consumer (pollutes the npm
|
|
1689
|
+
// prefix; EACCES on root-owned prefixes).
|
|
1690
|
+
table = load_prices(prices_file_for(REPO_ROOT));
|
|
1684
1691
|
}
|
|
1685
1692
|
const [question, artefact] = build_question({
|
|
1686
1693
|
input_path: args.question as string,
|
|
@@ -1986,7 +1993,10 @@ function cmd_debate(
|
|
|
1986
1993
|
});
|
|
1987
1994
|
}
|
|
1988
1995
|
if (table === null) {
|
|
1989
|
-
|
|
1996
|
+
// Anchor to the PROJECT root — the module default writes into the
|
|
1997
|
+
// installed package dir when run from a consumer (pollutes the npm
|
|
1998
|
+
// prefix; EACCES on root-owned prefixes).
|
|
1999
|
+
table = load_prices(prices_file_for(REPO_ROOT));
|
|
1990
2000
|
}
|
|
1991
2001
|
const [question, artefact] = build_question({
|
|
1992
2002
|
input_path: args.question as string,
|
|
@@ -2792,11 +2802,29 @@ function main(argv: string[] | null = null): number {
|
|
|
2792
2802
|
}
|
|
2793
2803
|
|
|
2794
2804
|
// CLI entry.
|
|
2795
|
-
|
|
2796
|
-
process.argv[1]
|
|
2797
|
-
|
|
2805
|
+
function _isCliEntry(): boolean {
|
|
2806
|
+
if (process.argv[1] === undefined) {
|
|
2807
|
+
return false;
|
|
2808
|
+
}
|
|
2809
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
2810
|
+
if (import.meta.url === argvUrl) {
|
|
2811
|
+
return true;
|
|
2812
|
+
}
|
|
2813
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
2814
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
2815
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
2816
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
2817
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
2818
|
+
try {
|
|
2819
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
2820
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
2821
|
+
return here === argv;
|
|
2822
|
+
} catch {
|
|
2823
|
+
return false;
|
|
2824
|
+
}
|
|
2825
|
+
}
|
|
2798
2826
|
|
|
2799
|
-
if (_isCliEntry) {
|
|
2827
|
+
if (_isCliEntry()) {
|
|
2800
2828
|
try {
|
|
2801
2829
|
process.exitCode = main(process.argv.slice(2));
|
|
2802
2830
|
} catch (err) {
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
import * as path from 'node:path';
|
|
33
|
-
import
|
|
33
|
+
import * as fs from 'node:fs';
|
|
34
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
34
35
|
|
|
35
36
|
import { _load_retention_days, prune_all_council_artifacts } from './ai_council/session.js';
|
|
36
37
|
|
|
@@ -147,7 +148,29 @@ export function main(argv: string[]): number {
|
|
|
147
148
|
return 0;
|
|
148
149
|
}
|
|
149
150
|
|
|
150
|
-
|
|
151
|
+
function _isCliEntry(): boolean {
|
|
152
|
+
if (process.argv[1] === undefined) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
156
|
+
if (import.meta.url === argvUrl) {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
160
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
161
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
162
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
163
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
164
|
+
try {
|
|
165
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
166
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
167
|
+
return here === argv;
|
|
168
|
+
} catch {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const _isMain = _isCliEntry();
|
|
151
174
|
if (_isMain) {
|
|
152
175
|
process.exitCode = main(process.argv.slice(2));
|
|
153
176
|
}
|
|
@@ -670,10 +670,29 @@ function _dumpString(s: string): string {
|
|
|
670
670
|
return out + '"';
|
|
671
671
|
}
|
|
672
672
|
|
|
673
|
-
|
|
674
|
-
process.argv[1]
|
|
675
|
-
|
|
676
|
-
|
|
673
|
+
function _isCliEntry(): boolean {
|
|
674
|
+
if (process.argv[1] === undefined) {
|
|
675
|
+
return false;
|
|
676
|
+
}
|
|
677
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
678
|
+
if (import.meta.url === argvUrl) {
|
|
679
|
+
return true;
|
|
680
|
+
}
|
|
681
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
682
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
683
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
684
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
685
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
686
|
+
try {
|
|
687
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
688
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
689
|
+
return here === argv;
|
|
690
|
+
} catch {
|
|
691
|
+
return false;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
677
696
|
process.exitCode = main();
|
|
678
697
|
}
|
|
679
698
|
|
|
@@ -210,9 +210,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
210
210
|
return 0;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
|
|
214
|
-
process.argv[1]
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
function _isCliEntry(): boolean {
|
|
214
|
+
if (process.argv[1] === undefined) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
218
|
+
if (import.meta.url === argvUrl) {
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
222
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
223
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
224
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
225
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
226
|
+
try {
|
|
227
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
228
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
229
|
+
return here === argv;
|
|
230
|
+
} catch {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
217
236
|
process.exit(main());
|
|
218
237
|
}
|