@event4u/agent-config 8.1.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +3 -3
- package/CHANGELOG.md +83 -292
- package/MIGRATION.md +18 -0
- package/README.md +86 -3
- package/dist/agent-src/commands/agents/init.md +3 -3
- package/dist/agent-src/commands/chat-history/import.md +5 -5
- package/dist/agent-src/commands/chat-history.md +1 -1
- package/dist/agent-src/commands/condense.md +1 -1
- package/dist/agent-src/commands/context/create.md +1 -1
- package/dist/agent-src/commands/council/analysis.md +2 -2
- package/dist/agent-src/commands/council/default.md +3 -3
- package/dist/agent-src/commands/council/design.md +2 -2
- package/dist/agent-src/commands/council/optimize.md +1 -1
- package/dist/agent-src/commands/council/pr.md +2 -2
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +1 -1
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/implement-ticket.md +2 -2
- package/dist/agent-src/commands/judge/on-diff.md +1 -1
- package/dist/agent-src/commands/judge/steps.md +3 -1
- package/dist/agent-src/commands/memory/add.md +2 -2
- package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
- package/dist/agent-src/commands/memory/load.md +1 -1
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +1 -1
- package/dist/agent-src/commands/memory/propose.md +1 -1
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +3 -3
- package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/optimize-project.md +1 -1
- package/dist/agent-src/commands/orchestrate.md +2 -2
- package/dist/agent-src/commands/project-analyze.md +1 -1
- package/dist/agent-src/commands/project-health.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +2 -2
- package/dist/agent-src/commands/roadmap/process-full.md +3 -1
- package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
- package/dist/agent-src/commands/roadmap/process-step.md +3 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +7 -7
- package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
- package/dist/agent-src/commands/sync-gitignore.md +4 -4
- package/dist/agent-src/commands/work.md +3 -3
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
- package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/presets/README.md +1 -1
- package/dist/agent-src/profiles/README.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +2 -2
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
- package/dist/agent-src/rules/media-governance-routing.md +1 -1
- package/dist/agent-src/rules/no-roadmap-references.md +3 -3
- package/dist/agent-src/rules/preservation-guard.md +2 -2
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
- package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
- package/dist/agent-src/rules/source-confidentiality.md +1 -1
- package/dist/agent-src/rules/telegraph-speak.md +1 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
- package/dist/agent-src/skills/api-design/SKILL.md +1 -1
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
- package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
- package/dist/agent-src/skills/code-review/SKILL.md +3 -4
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
- package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
- package/dist/agent-src/skills/database/SKILL.md +2 -1
- package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
- package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
- package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
- package/dist/agent-src/skills/flux/SKILL.md +10 -9
- package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
- package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
- package/dist/agent-src/skills/livewire/SKILL.md +10 -9
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
- package/dist/agent-src/skills/module-management/SKILL.md +2 -2
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
- package/dist/agent-src/skills/premortem/SKILL.md +1 -1
- package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
- package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
- package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
- package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
- package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
- package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
- package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
- package/dist/agent-src/templates/agent-settings.md +34 -25
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
- package/dist/agent-src/templates/agents/proposal.example.md +4 -4
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
- package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
- package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
- package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
- package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
- package/dist/agent-src/templates/roadmaps.md +9 -4
- package/dist/agent-src/templates/rule.md +3 -3
- package/dist/agent-src/templates/scripts/README.md +6 -6
- package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
- package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
- package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
- package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
- package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
- package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
- package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
- package/dist/agent-src/templates/skill.md +2 -2
- package/dist/cli/python/knowledge_ingest.js +24 -3
- package/dist/cli/python/knowledge_ingest.js.map +1 -1
- package/dist/cli/python/workspace_analytics.js +23 -3
- package/dist/cli/python/workspace_analytics.js.map +1 -1
- package/dist/cli/python/workspace_crypto.js +23 -3
- package/dist/cli/python/workspace_crypto.js.map +1 -1
- package/dist/cli/python/workspace_documents.js +23 -3
- package/dist/cli/python/workspace_documents.js.map +1 -1
- package/dist/cli/python/workspace_drive.js +24 -3
- package/dist/cli/python/workspace_drive.js.map +1 -1
- package/dist/cli/python/workspace_drive_health.js +23 -3
- package/dist/cli/python/workspace_drive_health.js.map +1 -1
- package/dist/cli/python/workspace_explain.js +23 -3
- package/dist/cli/python/workspace_explain.js.map +1 -1
- package/dist/cli/python/workspace_hosts.js +23 -3
- package/dist/cli/python/workspace_hosts.js.map +1 -1
- package/dist/cli/python/workspace_inbox.js +23 -3
- package/dist/cli/python/workspace_inbox.js.map +1 -1
- package/dist/cli/python/workspace_render.js +23 -3
- package/dist/cli/python/workspace_render.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +23 -3
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli/python/workspace_sessions.js +23 -3
- package/dist/cli/python/workspace_sessions.js.map +1 -1
- package/dist/cli/python/workspace_skills.js +23 -3
- package/dist/cli/python/workspace_skills.js.map +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +118 -118
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +2 -2
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +3 -3
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +3 -3
- package/dist/install/install.mjs +647 -408
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/routes/settings.js +4 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +1 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +2 -2
- package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
- package/docs/benchmark.md +40 -0
- package/docs/contracts/CHANGELOG-conventions.md +8 -5
- package/docs/contracts/branch-protection-policy.md +14 -5
- package/docs/contracts/mcp-phase-1-scope.md +75 -0
- package/docs/contracts/mcp-tool-inventory.md +22 -15
- package/docs/contracts/release-pr-gating.md +22 -11
- package/docs/contracts/skill-bundled-assets.md +2 -2
- package/docs/customization.md +1 -1
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
- package/docs/decisions/ADR-111-canonical-glama-listing.md +97 -0
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +92 -0
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +201 -0
- package/docs/decisions/INDEX.md +3 -0
- package/docs/distribution/registry-submissions.md +1 -1
- package/docs/getting-started.md +8 -6
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
- package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
- package/docs/guidelines/agent-infra/layered-settings.md +4 -4
- package/docs/guidelines/agent-infra/memory-access.md +19 -18
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
- package/docs/guidelines/agent-infra/role-contracts.md +1 -1
- package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
- package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/installation.md +13 -14
- package/docs/mcp-server.md +32 -20
- package/docs/proof.md +1 -1
- package/docs/setup/mcp-cloud-endpoints.md +9 -2
- package/docs/setup/per-ide/claude-code.md +10 -4
- package/package.json +4 -3
- package/src/config/agent-settings.template.yml +31 -17
- package/src/config/host-capabilities.yml +25 -16
- package/src/config/profiles/balanced.ini +5 -3
- package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
- package/src/scripts/_cli/cmd_conformance.ts +23 -4
- package/src/scripts/_cli/cmd_doctor.ts +196 -8
- package/src/scripts/_cli/cmd_explain.ts +23 -4
- package/src/scripts/_cli/cmd_export.ts +23 -4
- package/src/scripts/_cli/cmd_fleet.ts +23 -4
- package/src/scripts/_cli/cmd_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_preflight.ts +24 -4
- package/src/scripts/_cli/cmd_prune.ts +23 -4
- package/src/scripts/_cli/cmd_refresh.ts +23 -4
- package/src/scripts/_cli/cmd_settings_check.ts +23 -4
- package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_sync.ts +23 -4
- package/src/scripts/_cli/cmd_uninstall.ts +45 -4
- package/src/scripts/_cli/cmd_update.ts +23 -4
- package/src/scripts/_cli/cmd_upgrade.ts +307 -17
- package/src/scripts/_cli/cmd_validate.ts +23 -4
- package/src/scripts/_cli/cmd_versions.ts +23 -4
- package/src/scripts/_dispatch.bash +62 -19
- package/src/scripts/_lib/claude_plugin.ts +83 -0
- package/src/scripts/_lib/claude_settings_hooks.ts +251 -0
- package/src/scripts/_lib/knowledge_global.ts +24 -2
- package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
- package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
- package/src/scripts/_lib/link_crypto.ts +24 -5
- package/src/scripts/_lib/pin_resolver.ts +24 -3
- package/src/scripts/adoption_report.ts +23 -4
- package/src/scripts/adoption_snapshot.ts +23 -1
- package/src/scripts/adoption_status.ts +23 -4
- package/src/scripts/adr/regenerate_index.ts +24 -3
- package/src/scripts/ai_council/airgap.ts +25 -2
- package/src/scripts/ai_council/compile_corpus.ts +24 -2
- package/src/scripts/ai_council/pricing.ts +11 -1
- package/src/scripts/analysis_freshness.ts +23 -4
- package/src/scripts/annotate_discovery.ts +23 -1
- package/src/scripts/apply_modules_config.ts +23 -4
- package/src/scripts/audit_adr_coverage.ts +23 -4
- package/src/scripts/audit_auto_rules.ts +23 -1
- package/src/scripts/audit_cloud_compatibility.ts +23 -4
- package/src/scripts/audit_command_surface.ts +23 -4
- package/src/scripts/audit_initial_context.ts +23 -3
- package/src/scripts/audit_likelihood.ts +23 -1
- package/src/scripts/audit_mcp_tools.ts +23 -3
- package/src/scripts/audit_overlap.ts +23 -1
- package/src/scripts/audit_skill_descriptions.ts +24 -2
- package/src/scripts/audit_skill_overlap.ts +23 -1
- package/src/scripts/audit_user_type_axis.ts +23 -4
- package/src/scripts/backfill_model_tier.ts +23 -4
- package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
- package/src/scripts/bench_ab_clone.ts +23 -1
- package/src/scripts/bench_ab_diff.ts +23 -1
- package/src/scripts/bench_ab_integrity.ts +23 -1
- package/src/scripts/bench_ab_run.ts +23 -2
- package/src/scripts/bench_ab_task_runner.ts +23 -1
- package/src/scripts/bench_ab_tracka_run.ts +23 -2
- package/src/scripts/bench_ab_v2_run.ts +23 -1
- package/src/scripts/bench_ab_v2_stats.ts +23 -1
- package/src/scripts/bench_baseline_ready.ts +23 -1
- package/src/scripts/bench_condense_memory.ts +23 -1
- package/src/scripts/bench_drift_check.ts +23 -2
- package/src/scripts/bench_matrix.ts +23 -4
- package/src/scripts/bench_per_tool.ts +23 -1
- package/src/scripts/bench_quality_run.ts +23 -2
- package/src/scripts/bench_rtk_savings.ts +23 -1
- package/src/scripts/bench_rule_load_latency.ts +23 -2
- package/src/scripts/bench_run.ts +23 -2
- package/src/scripts/bench_runner.ts +23 -1
- package/src/scripts/build_cloud_bundle.ts +23 -3
- package/src/scripts/build_discovery_manifest.ts +23 -4
- package/src/scripts/build_linear_digest.ts +23 -3
- package/src/scripts/build_mcp_registry_manifest.ts +23 -4
- package/src/scripts/build_rule_trigger_matrix.ts +23 -4
- package/src/scripts/capture_showcase_session.ts +23 -1
- package/src/scripts/chat_history.ts +24 -3
- package/src/scripts/check_always_budget.ts +23 -2
- package/src/scripts/check_artefact_checksums.ts +23 -4
- package/src/scripts/check_augment_description_cap.ts +23 -4
- package/src/scripts/check_augmentignore.ts +23 -4
- package/src/scripts/check_beta_review_markers.ts +23 -4
- package/src/scripts/check_cluster_patterns.ts +23 -4
- package/src/scripts/check_command_count_messaging.ts +23 -4
- package/src/scripts/check_comparison.ts +23 -1
- package/src/scripts/check_condensation.ts +24 -3
- package/src/scripts/check_condensed_paths.ts +23 -2
- package/src/scripts/check_context_paths.ts +23 -4
- package/src/scripts/check_council_config_location.ts +23 -4
- package/src/scripts/check_council_layout.ts +23 -4
- package/src/scripts/check_council_references.ts +23 -4
- package/src/scripts/check_discovery_determinism.ts +24 -4
- package/src/scripts/check_gate_paths.ts +23 -4
- package/src/scripts/check_generated_artefact_headers.ts +23 -4
- package/src/scripts/check_generator_output_coverage.ts +23 -4
- package/src/scripts/check_gitignore_freshness.ts +23 -4
- package/src/scripts/check_iron_law_prominence.ts +23 -4
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_kernel_rule_bundle.ts +23 -4
- package/src/scripts/check_knowledge_cards.ts +23 -1
- package/src/scripts/check_md_language.ts +23 -4
- package/src/scripts/check_media_deps.ts +24 -1
- package/src/scripts/check_memory.ts +24 -2
- package/src/scripts/check_memory_proposal.ts +23 -4
- package/src/scripts/check_module_management_neutral.ts +23 -4
- package/src/scripts/check_no_conflict_markers.ts +23 -4
- package/src/scripts/check_no_external_sources.ts +23 -4
- package/src/scripts/check_no_local_settings_committed.ts +24 -4
- package/src/scripts/check_no_new_legacy_path.ts +23 -4
- package/src/scripts/check_no_roadmap_refs.ts +23 -4
- package/src/scripts/check_one_off_location.ts +23 -4
- package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
- package/src/scripts/check_portability.ts +24 -3
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_public_catalog_links.ts +23 -4
- package/src/scripts/check_public_links.ts +23 -4
- package/src/scripts/check_quality_regression.ts +23 -2
- package/src/scripts/check_references.ts +23 -4
- package/src/scripts/check_release_includes_discovery.ts +23 -4
- package/src/scripts/check_release_pr_shape.ts +23 -4
- package/src/scripts/check_release_published.ts +23 -4
- package/src/scripts/check_release_trunk_sync.ts +23 -4
- package/src/scripts/check_reply_consistency.ts +23 -4
- package/src/scripts/check_roadmap_trackable.ts +23 -4
- package/src/scripts/check_role_doc_links.ts +23 -4
- package/src/scripts/check_safety_floor_untouched.ts +24 -4
- package/src/scripts/check_site_links.ts +23 -1
- package/src/scripts/check_skill_gaps.ts +23 -1
- package/src/scripts/check_skill_requires.ts +23 -4
- package/src/scripts/check_structural_breaking.ts +24 -4
- package/src/scripts/check_surface_tiers.ts +23 -4
- package/src/scripts/check_template_pin_drift.ts +23 -4
- package/src/scripts/check_test_coverage_diff.ts +23 -4
- package/src/scripts/check_token_optimizer_freshness.ts +23 -4
- package/src/scripts/check_token_quality_golden.ts +23 -2
- package/src/scripts/check_token_regression.ts +23 -2
- package/src/scripts/check_tracked_but_ignored.ts +24 -4
- package/src/scripts/check_trigger_evals.ts +23 -4
- package/src/scripts/check_trunk_drift.ts +24 -1
- package/src/scripts/check_update_banner.ts +23 -4
- package/src/scripts/ci_summary.ts +23 -4
- package/src/scripts/ci_time_ratio.ts +23 -4
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +23 -4
- package/src/scripts/condense.ts +30 -31
- package/src/scripts/condense_memory.ts +24 -2
- package/src/scripts/config/packs.ts +24 -4
- package/src/scripts/config/session_profiles.ts +23 -4
- package/src/scripts/context_hygiene_hook.ts +24 -3
- package/src/scripts/cost_by_conversation.ts +23 -4
- package/src/scripts/cost_summary.ts +23 -4
- package/src/scripts/council_cli.ts +35 -7
- package/src/scripts/council_prune.ts +25 -2
- package/src/scripts/cross_repo_retrieve.ts +23 -4
- package/src/scripts/discovery_stats.ts +23 -4
- package/src/scripts/evidence_report.ts +23 -1
- package/src/scripts/export_replay_corpus.ts +23 -2
- package/src/scripts/extract_audit_patterns.ts +23 -1
- package/src/scripts/first_run_gate_hook.ts +24 -3
- package/src/scripts/gen_discovery_baseline.ts +23 -4
- package/src/scripts/generate_capabilities_index.ts +24 -5
- package/src/scripts/generate_capability_matrix.ts +23 -4
- package/src/scripts/generate_catalog.ts +23 -1
- package/src/scripts/generate_command_flows.ts +23 -4
- package/src/scripts/generate_cookbook.ts +23 -4
- package/src/scripts/generate_index.ts +23 -4
- package/src/scripts/generate_ownership_matrix.ts +23 -1
- package/src/scripts/generate_pack_manifests.ts +24 -5
- package/src/scripts/generate_role_experiences_catalog.ts +23 -4
- package/src/scripts/hooks/block_no_verify.ts +23 -4
- package/src/scripts/hooks/design_slop_hook.ts +24 -3
- package/src/scripts/hooks/dispatch_hook.ts +47 -14
- package/src/scripts/hooks/replay_hook.ts +23 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
- package/src/scripts/hooks_doctor.ts +23 -2
- package/src/scripts/hooks_status.ts +23 -2
- package/src/scripts/injection_scan_hook.ts +24 -5
- package/src/scripts/install +23 -4
- package/src/scripts/install.ts +102 -44
- package/src/scripts/inventory_abstraction_budget.ts +23 -1
- package/src/scripts/inventory_frontmatter.ts +23 -1
- package/src/scripts/inventory_meta_layers.ts +23 -1
- package/src/scripts/iron_law_sha.ts +23 -4
- package/src/scripts/janitor.ts +23 -4
- package/src/scripts/knowledge_global_cli.ts +24 -2
- package/src/scripts/linked_projects_list.ts +23 -4
- package/src/scripts/lint_agent_security.ts +23 -4
- package/src/scripts/lint_agent_skill_names.ts +23 -4
- package/src/scripts/lint_agents_layout.ts +23 -4
- package/src/scripts/lint_agents_md.ts +23 -4
- package/src/scripts/lint_archived_skills.ts +23 -4
- package/src/scripts/lint_artefact_frontmatter.ts +23 -4
- package/src/scripts/lint_bench_ab.ts +23 -4
- package/src/scripts/lint_bench_corpus.ts +23 -2
- package/src/scripts/lint_command_flow_coverage.ts +23 -4
- package/src/scripts/lint_command_routing.ts +23 -4
- package/src/scripts/lint_command_tiers.ts +23 -2
- package/src/scripts/lint_command_verbs.ts +23 -4
- package/src/scripts/lint_commit_subjects.ts +24 -4
- package/src/scripts/lint_confusables.ts +25 -5
- package/src/scripts/lint_context_spine_usage.ts +23 -4
- package/src/scripts/lint_discovery_manifest.ts +23 -4
- package/src/scripts/lint_discovery_vocabulary.ts +23 -4
- package/src/scripts/lint_empty_roadmaps.ts +23 -4
- package/src/scripts/lint_eval_freshness.ts +23 -4
- package/src/scripts/lint_examples.ts +23 -4
- package/src/scripts/lint_explain_trace.ts +23 -4
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_flows.ts +23 -4
- package/src/scripts/lint_framework_leakage.ts +23 -4
- package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
- package/src/scripts/lint_ghostwriter_source.ts +23 -4
- package/src/scripts/lint_glama_drift.ts +75 -0
- package/src/scripts/lint_global_paths.ts +23 -2
- package/src/scripts/lint_handoffs.ts +23 -4
- package/src/scripts/lint_hidden_unicode.ts +24 -5
- package/src/scripts/lint_hook_concern_budget.ts +23 -4
- package/src/scripts/lint_hook_manifest.ts +23 -2
- package/src/scripts/lint_instruction_smuggling.ts +25 -5
- package/src/scripts/lint_legal_pack.ts +23 -1
- package/src/scripts/lint_load_context.ts +23 -4
- package/src/scripts/lint_marketplace.ts +24 -3
- package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
- package/src/scripts/lint_mcp_config_security.ts +25 -5
- package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
- package/src/scripts/lint_media_policy_linkage.ts +23 -4
- package/src/scripts/lint_missions.ts +23 -4
- package/src/scripts/lint_model_tier_coverage.ts +23 -4
- package/src/scripts/lint_namespace.ts +23 -4
- package/src/scripts/lint_namespace_collisions.ts +23 -4
- package/src/scripts/lint_new_skill_gate.ts +23 -4
- package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
- package/src/scripts/lint_one_off_age.ts +23 -4
- package/src/scripts/lint_orchestration_dsl.ts +23 -4
- package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
- package/src/scripts/lint_pack_boundaries.ts +23 -4
- package/src/scripts/lint_pack_dependencies.ts +23 -2
- package/src/scripts/lint_pack_first_win.ts +23 -4
- package/src/scripts/lint_pack_risk_class.ts +23 -1
- package/src/scripts/lint_persona_governance.ts +23 -4
- package/src/scripts/lint_positioning.ts +23 -4
- package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
- package/src/scripts/lint_readme_jargon.ts +23 -4
- package/src/scripts/lint_readme_size.ts +23 -4
- package/src/scripts/lint_regression.ts +23 -4
- package/src/scripts/lint_roadmap_blockers.ts +23 -4
- package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
- package/src/scripts/lint_roadmap_complexity.ts +23 -4
- package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
- package/src/scripts/lint_role_experiences.ts +23 -4
- package/src/scripts/lint_rule_interactions.ts +23 -4
- package/src/scripts/lint_rule_tiers.ts +24 -3
- package/src/scripts/lint_showcase_sessions.ts +23 -4
- package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
- package/src/scripts/lint_skill_originality.ts +23 -4
- package/src/scripts/lint_skill_tools.ts +23 -4
- package/src/scripts/lint_subagent_determinism.ts +23 -4
- package/src/scripts/lint_ticket_buildable.ts +23 -4
- package/src/scripts/lint_topics_yaml.ts +23 -4
- package/src/scripts/lint_trust_coherence.ts +23 -4
- package/src/scripts/lint_value_dashboard.ts +23 -4
- package/src/scripts/lint_workflow_security.ts +23 -4
- package/src/scripts/lint_workspace_boundary.ts +23 -4
- package/src/scripts/mcp_exec/safety_envelope.ts +105 -0
- package/src/scripts/mcp_parity_smoke.ts +23 -2
- package/src/scripts/mcp_registry_submit.sh +14 -3
- package/src/scripts/mcp_render.ts +23 -4
- package/src/scripts/mcp_server/__main__.ts +6 -8
- package/src/scripts/mcp_server/consumer_tool_catalog.json +78 -3
- package/src/scripts/mcp_server/tools.ts +731 -0
- package/src/scripts/mcp_telemetry_health.ts +23 -4
- package/src/scripts/mcp_telemetry_query.ts +23 -4
- package/src/scripts/mcp_telemetry_store.ts +23 -4
- package/src/scripts/measure_augment_budget.ts +23 -1
- package/src/scripts/measure_density.ts +23 -1
- package/src/scripts/measure_frugality_savings.ts +23 -1
- package/src/scripts/measure_markitdown_lift.ts +23 -1
- package/src/scripts/measure_patterns.ts +23 -1
- package/src/scripts/measure_projection_bytes.ts +23 -1
- package/src/scripts/measure_rule_budget.ts +23 -4
- package/src/scripts/measure_skill_reduction.ts +23 -1
- package/src/scripts/memory_hash.ts +24 -2
- package/src/scripts/memory_lookup.ts +24 -2
- package/src/scripts/memory_report.ts +24 -2
- package/src/scripts/memory_signal.ts +24 -2
- package/src/scripts/memory_status.ts +26 -2
- package/src/scripts/migrate_command_suggestions.ts +23 -4
- package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
- package/src/scripts/migration_status.ts +25 -4
- package/src/scripts/mine_missing_guardrails.ts +23 -1
- package/src/scripts/mine_session.ts +23 -1
- package/src/scripts/minimal_safe_diff_hook.ts +24 -3
- package/src/scripts/new_skill.ts +23 -3
- package/src/scripts/onboarding_gate_hook.ts +24 -3
- package/src/scripts/parity/coverage_diff.ts +25 -3
- package/src/scripts/parity/phase_gate.ts +25 -4
- package/src/scripts/parity/replay.ts +25 -3
- package/src/scripts/pattern_share.ts +23 -4
- package/src/scripts/plan_physical_move.ts +23 -4
- package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
- package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
- package/src/scripts/prediction-pool/score_ev.ts +24 -3
- package/src/scripts/print_required_checks.ts +24 -4
- package/src/scripts/probe_host_compliance.ts +23 -2
- package/src/scripts/probe_projection_fidelity.ts +23 -1
- package/src/scripts/probe_skill_registration.ts +24 -2
- package/src/scripts/profile_staleness_hook.ts +24 -3
- package/src/scripts/profile_use.ts +23 -4
- package/src/scripts/project_thin_rules.ts +23 -3
- package/src/scripts/propose_modules_config.ts +23 -4
- package/src/scripts/prototype_lint_contradictions.ts +23 -1
- package/src/scripts/prove_pack_extractable.ts +23 -4
- package/src/scripts/readme_linter.ts +23 -3
- package/src/scripts/redact_hook_capture.ts +23 -4
- package/src/scripts/refine_ticket_detect.ts +23 -4
- package/src/scripts/release.ts +226 -43
- package/src/scripts/render_benchmark_composite.ts +23 -4
- package/src/scripts/render_benchmark_md.ts +23 -4
- package/src/scripts/roadmap_progress_hook.ts +46 -16
- package/src/scripts/run_skill_evals.ts +23 -4
- package/src/scripts/runtime_dispatcher.ts +23 -4
- package/src/scripts/runtime_registry.ts +23 -4
- package/src/scripts/score_skill_selection.ts +23 -1
- package/src/scripts/security_audit_config.ts +24 -5
- package/src/scripts/skill_collision_clusters.ts +23 -4
- package/src/scripts/skill_discovery.ts +23 -4
- package/src/scripts/skill_linter.ts +23 -2
- package/src/scripts/skill_preview.ts +23 -4
- package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
- package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
- package/src/scripts/skill_usage_collect.ts +23 -4
- package/src/scripts/smoke_path_resolution.ts +23 -4
- package/src/scripts/smoke_quickstart.ts +23 -4
- package/src/scripts/snapshot_agent_outputs.ts +23 -4
- package/src/scripts/spotcheck_thin_root.ts +23 -4
- package/src/scripts/sync_agent_settings.ts +23 -4
- package/src/scripts/sync_github_metadata.ts +23 -4
- package/src/scripts/sync_gitignore.ts +23 -4
- package/src/scripts/telegraph_stats.ts +23 -4
- package/src/scripts/tool_registry.ts +24 -4
- package/src/scripts/trigger_coverage.ts +23 -4
- package/src/scripts/update_counts.ts +23 -4
- package/src/scripts/update_prices.ts +23 -1
- package/src/scripts/validate_agent_settings.ts +23 -4
- package/src/scripts/validate_decision_engine.ts +23 -4
- package/src/scripts/validate_discovery_manifest.ts +23 -4
- package/src/scripts/validate_frontmatter.ts +23 -2
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/validate_safe_paths.ts +24 -4
- package/src/scripts/validate_telegraph_carveouts.ts +23 -4
- package/src/scripts/verify_before_complete_hook.ts +24 -3
- package/src/scripts/verify_physical_move.ts +23 -4
- package/src/scripts/wrapper_freshness_hook.ts +107 -8
- package/tests/fixtures/hooks/README.md +92 -0
- package/tests/fixtures/hooks/agent_error.json +7 -0
- package/tests/fixtures/hooks/post_tool_use.json +13 -0
- package/tests/fixtures/hooks/pre_compact.json +7 -0
- package/tests/fixtures/hooks/pre_tool_use.json +9 -0
- package/tests/fixtures/hooks/session_end.json +6 -0
- package/tests/fixtures/hooks/session_start.json +6 -0
- package/tests/fixtures/hooks/stop.json +6 -0
- package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
import * as fs from 'node:fs';
|
|
34
34
|
import * as path from 'node:path';
|
|
35
35
|
import process from 'node:process';
|
|
36
|
-
import { pathToFileURL } from 'node:url';
|
|
36
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
37
37
|
|
|
38
38
|
import {
|
|
39
39
|
redact_low_impact_entry,
|
|
@@ -440,8 +440,30 @@ function _pyRepr(s: string): string {
|
|
|
440
440
|
return out + quote;
|
|
441
441
|
}
|
|
442
442
|
|
|
443
|
+
function _isCliEntry(): boolean {
|
|
444
|
+
if (process.argv[1] === undefined) {
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
448
|
+
if (import.meta.url === argvUrl) {
|
|
449
|
+
return true;
|
|
450
|
+
}
|
|
451
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
452
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
453
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
454
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
455
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
456
|
+
try {
|
|
457
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
458
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
459
|
+
return here === argv;
|
|
460
|
+
} catch {
|
|
461
|
+
return false;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
443
465
|
const _isMain =
|
|
444
|
-
|
|
466
|
+
_isCliEntry();
|
|
445
467
|
if (_isMain) {
|
|
446
468
|
// Mirror `raise SystemExit(main())`.
|
|
447
469
|
process.exit(main());
|
|
@@ -56,7 +56,7 @@ import * as fs from 'node:fs';
|
|
|
56
56
|
import * as os from 'node:os';
|
|
57
57
|
import * as path from 'node:path';
|
|
58
58
|
import process from 'node:process';
|
|
59
|
-
import { pathToFileURL } from 'node:url';
|
|
59
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
60
60
|
|
|
61
61
|
export const MAGIC = 'ENC1';
|
|
62
62
|
const _SALT_LEN = 16;
|
|
@@ -307,10 +307,29 @@ function _readStdin(): string {
|
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
-
|
|
311
|
-
process.argv[1]
|
|
312
|
-
|
|
313
|
-
|
|
310
|
+
function _isCliEntry(): boolean {
|
|
311
|
+
if (process.argv[1] === undefined) {
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
314
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
315
|
+
if (import.meta.url === argvUrl) {
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
319
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
320
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
321
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
322
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
323
|
+
try {
|
|
324
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
325
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
326
|
+
return here === argv;
|
|
327
|
+
} catch {
|
|
328
|
+
return false;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
if (_isCliEntry()) {
|
|
314
333
|
try {
|
|
315
334
|
process.exit(_cli(process.argv.slice(2)));
|
|
316
335
|
} catch (exc) {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
import { spawnSync } from 'node:child_process';
|
|
35
35
|
import * as fs from 'node:fs';
|
|
36
36
|
import * as path from 'node:path';
|
|
37
|
-
import { pathToFileURL } from 'node:url';
|
|
37
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
38
38
|
|
|
39
39
|
import type { EnvMap } from './user_global_paths';
|
|
40
40
|
|
|
@@ -253,9 +253,30 @@ function _parse_cli(argv: string[]): { cwd: string; installed: string; forward:
|
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
// Script entry — mirrors the Python `if __name__ == "__main__"` block.
|
|
256
|
+
function _isCliEntry(): boolean {
|
|
257
|
+
if (process.argv[1] === undefined) {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
261
|
+
if (import.meta.url === argvUrl) {
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
264
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
265
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
266
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
267
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
268
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
269
|
+
try {
|
|
270
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
271
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
272
|
+
return here === argv;
|
|
273
|
+
} catch {
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
256
278
|
if (
|
|
257
|
-
|
|
258
|
-
import.meta.url === pathToFileURL(process.argv[1]).href
|
|
279
|
+
_isCliEntry()
|
|
259
280
|
) {
|
|
260
281
|
const { cwd, installed, forward } = _parse_cli(process.argv.slice(2));
|
|
261
282
|
// Build the argv the child should see: `agent-config <forward...>`.
|
|
@@ -349,9 +349,28 @@ function _stableSortByKey(rows: JsonObject[], key: (r: JsonObject) => string): J
|
|
|
349
349
|
.map((x) => x.r);
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
process.argv[1]
|
|
354
|
-
|
|
355
|
-
|
|
352
|
+
function _isCliEntry(): boolean {
|
|
353
|
+
if (process.argv[1] === undefined) {
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
356
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
357
|
+
if (import.meta.url === argvUrl) {
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
361
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
362
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
363
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
364
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
365
|
+
try {
|
|
366
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
367
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
368
|
+
return here === argv;
|
|
369
|
+
} catch {
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
356
375
|
process.exit(main());
|
|
357
376
|
}
|
|
@@ -383,7 +383,29 @@ export async function main(argv: string[] | null = null): Promise<number> {
|
|
|
383
383
|
return 0;
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
-
|
|
386
|
+
function _isCliEntry(): boolean {
|
|
387
|
+
if (process.argv[1] === undefined) {
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
391
|
+
if (import.meta.url === argvUrl) {
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
395
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
396
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
397
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
398
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
399
|
+
try {
|
|
400
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
401
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
402
|
+
return here === argv;
|
|
403
|
+
} catch {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
const _isMain = _isCliEntry();
|
|
387
409
|
if (_isMain) {
|
|
388
410
|
// Set exitCode (not process.exit) so stdout drains fully before exit.
|
|
389
411
|
main().then((rc) => {
|
|
@@ -416,9 +416,28 @@ function _dumpString(s: string): string {
|
|
|
416
416
|
return out + '"';
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
-
|
|
420
|
-
process.argv[1]
|
|
421
|
-
|
|
422
|
-
|
|
419
|
+
function _isCliEntry(): boolean {
|
|
420
|
+
if (process.argv[1] === undefined) {
|
|
421
|
+
return false;
|
|
422
|
+
}
|
|
423
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
424
|
+
if (import.meta.url === argvUrl) {
|
|
425
|
+
return true;
|
|
426
|
+
}
|
|
427
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
428
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
429
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
430
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
431
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
432
|
+
try {
|
|
433
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
434
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
435
|
+
return here === argv;
|
|
436
|
+
} catch {
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
423
442
|
process.exit(main());
|
|
424
443
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import * as fs from 'node:fs';
|
|
15
15
|
import * as path from 'node:path';
|
|
16
16
|
import process from 'node:process';
|
|
17
|
-
import { pathToFileURL } from 'node:url';
|
|
17
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
18
18
|
|
|
19
19
|
// ^ADR-(\d{3})-([a-z0-9-]+)\.md$
|
|
20
20
|
const NAMED = /^ADR-(\d{3})-([a-z0-9-]+)\.md$/;
|
|
@@ -249,9 +249,30 @@ export function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
249
249
|
return 0;
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
+
function _isCliEntry(): boolean {
|
|
253
|
+
if (process.argv[1] === undefined) {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
257
|
+
if (import.meta.url === argvUrl) {
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
261
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
262
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
263
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
264
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
265
|
+
try {
|
|
266
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
267
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
268
|
+
return here === argv;
|
|
269
|
+
} catch {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
252
274
|
const _invokedDirectly =
|
|
253
|
-
|
|
254
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
275
|
+
_isCliEntry();
|
|
255
276
|
if (_invokedDirectly) {
|
|
256
277
|
process.exitCode = main();
|
|
257
278
|
}
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
|
|
36
36
|
import { execFileSync } from 'node:child_process';
|
|
37
37
|
import * as path from 'node:path';
|
|
38
|
-
import
|
|
38
|
+
import * as fs from 'node:fs';
|
|
39
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
39
40
|
|
|
40
41
|
export const COUNCIL_PROBE_HOSTS: readonly string[] = [
|
|
41
42
|
'api.anthropic.com',
|
|
@@ -243,7 +244,29 @@ export function main(argv: string[] | null = null): number {
|
|
|
243
244
|
return 0;
|
|
244
245
|
}
|
|
245
246
|
|
|
246
|
-
|
|
247
|
+
function _isCliEntry(): boolean {
|
|
248
|
+
if (process.argv[1] === undefined) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
252
|
+
if (import.meta.url === argvUrl) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
256
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
257
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
258
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
259
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
260
|
+
try {
|
|
261
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
262
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
263
|
+
return here === argv;
|
|
264
|
+
} catch {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
const _isMain = _isCliEntry();
|
|
247
270
|
if (_isMain) {
|
|
248
271
|
process.exitCode = main(process.argv.slice(2));
|
|
249
272
|
}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
import { createHash } from 'node:crypto';
|
|
46
46
|
import * as fs from 'node:fs';
|
|
47
47
|
import * as path from 'node:path';
|
|
48
|
-
import { pathToFileURL } from 'node:url';
|
|
48
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
49
49
|
|
|
50
50
|
import {
|
|
51
51
|
CorpusParseError,
|
|
@@ -675,7 +675,29 @@ export function _main(argv: string[]): number {
|
|
|
675
675
|
return 0;
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
|
|
678
|
+
function _isCliEntry(): boolean {
|
|
679
|
+
if (process.argv[1] === undefined) {
|
|
680
|
+
return false;
|
|
681
|
+
}
|
|
682
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
683
|
+
if (import.meta.url === argvUrl) {
|
|
684
|
+
return true;
|
|
685
|
+
}
|
|
686
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
687
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
688
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
689
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
690
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
691
|
+
try {
|
|
692
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
693
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
694
|
+
return here === argv;
|
|
695
|
+
} catch {
|
|
696
|
+
return false;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
const _isMain = _isCliEntry();
|
|
679
701
|
if (_isMain) {
|
|
680
702
|
process.exitCode = _main(process.argv.slice(2));
|
|
681
703
|
}
|
|
@@ -18,10 +18,20 @@ import { fileURLToPath } from 'node:url';
|
|
|
18
18
|
import { DEFAULT_PRICES, LAST_UPDATED, as_rows, priceKey } from './_default_prices.js';
|
|
19
19
|
|
|
20
20
|
const _HERE = fileURLToPath(import.meta.url);
|
|
21
|
-
// src/scripts/ai_council/pricing.
|
|
21
|
+
// src/scripts/ai_council/pricing.ts → parents[3] == PACKAGE root. Correct
|
|
22
|
+
// only when the council runs inside the agent-config source repo; from an
|
|
23
|
+
// installed package this points INTO the npm prefix — callers that operate
|
|
24
|
+
// on a consumer project must anchor via `prices_file_for(<project root>)`
|
|
25
|
+
// instead (writing into the installed package pollutes it and EACCES-crashes
|
|
26
|
+
// on root-owned npm prefixes).
|
|
22
27
|
export const REPO_ROOT = path.resolve(path.dirname(_HERE), '..', '..', '..');
|
|
23
28
|
export const PRICES_FILE = path.join(REPO_ROOT, 'agents', 'runtime', '.agent-prices.md');
|
|
24
29
|
|
|
30
|
+
/** Prices file anchored to the PROJECT the council operates on. */
|
|
31
|
+
export function prices_file_for(repo_root: string): string {
|
|
32
|
+
return path.join(repo_root, 'agents', 'runtime', '.agent-prices.md');
|
|
33
|
+
}
|
|
34
|
+
|
|
25
35
|
const _CHARS_PER_TOKEN = 4;
|
|
26
36
|
|
|
27
37
|
export interface Price {
|
|
@@ -326,10 +326,29 @@ function main(argv?: readonly string[]): number {
|
|
|
326
326
|
return 0;
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
-
|
|
330
|
-
process.argv[1]
|
|
331
|
-
|
|
332
|
-
|
|
329
|
+
function _isCliEntry(): boolean {
|
|
330
|
+
if (process.argv[1] === undefined) {
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
333
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
334
|
+
if (import.meta.url === argvUrl) {
|
|
335
|
+
return true;
|
|
336
|
+
}
|
|
337
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
338
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
339
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
340
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
341
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
342
|
+
try {
|
|
343
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
344
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
345
|
+
return here === argv;
|
|
346
|
+
} catch {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
333
352
|
process.exitCode = main();
|
|
334
353
|
}
|
|
335
354
|
|
|
@@ -280,7 +280,29 @@ function _dumpsSorted(obj: Record<string, string>): string {
|
|
|
280
280
|
return `{\n${parts.join(',\n')}\n}`;
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
function _isCliEntry(): boolean {
|
|
284
|
+
if (process.argv[1] === undefined) {
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
288
|
+
if (import.meta.url === argvUrl) {
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
292
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
293
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
294
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
295
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
296
|
+
try {
|
|
297
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
298
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
299
|
+
return here === argv;
|
|
300
|
+
} catch {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
const _isMain = _isCliEntry();
|
|
284
306
|
if (_isMain) {
|
|
285
307
|
process.exitCode = main();
|
|
286
308
|
}
|
|
@@ -516,10 +516,29 @@ function _resolvePath(p: string): string {
|
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
518
|
|
|
519
|
-
|
|
520
|
-
process.argv[1]
|
|
521
|
-
|
|
522
|
-
|
|
519
|
+
function _isCliEntry(): boolean {
|
|
520
|
+
if (process.argv[1] === undefined) {
|
|
521
|
+
return false;
|
|
522
|
+
}
|
|
523
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
524
|
+
if (import.meta.url === argvUrl) {
|
|
525
|
+
return true;
|
|
526
|
+
}
|
|
527
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
528
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
529
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
530
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
531
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
532
|
+
try {
|
|
533
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
534
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
535
|
+
return here === argv;
|
|
536
|
+
} catch {
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
523
542
|
process.exitCode = main(process.argv.slice(2));
|
|
524
543
|
}
|
|
525
544
|
|
|
@@ -349,9 +349,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
349
349
|
return cmd_report();
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
process.argv[1]
|
|
354
|
-
|
|
355
|
-
|
|
352
|
+
function _isCliEntry(): boolean {
|
|
353
|
+
if (process.argv[1] === undefined) {
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
356
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
357
|
+
if (import.meta.url === argvUrl) {
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
361
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
362
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
363
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
364
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
365
|
+
try {
|
|
366
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
367
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
368
|
+
return here === argv;
|
|
369
|
+
} catch {
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
356
375
|
process.exit(main());
|
|
357
376
|
}
|
|
@@ -419,7 +419,29 @@ export function main(): number {
|
|
|
419
419
|
return 0;
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
-
|
|
422
|
+
function _isCliEntry(): boolean {
|
|
423
|
+
if (process.argv[1] === undefined) {
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
427
|
+
if (import.meta.url === argvUrl) {
|
|
428
|
+
return true;
|
|
429
|
+
}
|
|
430
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
431
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
432
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
433
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
434
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
435
|
+
try {
|
|
436
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
437
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
438
|
+
return here === argv;
|
|
439
|
+
} catch {
|
|
440
|
+
return false;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
const _isMain = _isCliEntry();
|
|
423
445
|
if (_isMain) {
|
|
424
446
|
process.exitCode = main();
|
|
425
447
|
}
|
|
@@ -600,9 +600,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
600
600
|
return 0;
|
|
601
601
|
}
|
|
602
602
|
|
|
603
|
-
|
|
604
|
-
process.argv[1]
|
|
605
|
-
|
|
606
|
-
|
|
603
|
+
function _isCliEntry(): boolean {
|
|
604
|
+
if (process.argv[1] === undefined) {
|
|
605
|
+
return false;
|
|
606
|
+
}
|
|
607
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
608
|
+
if (import.meta.url === argvUrl) {
|
|
609
|
+
return true;
|
|
610
|
+
}
|
|
611
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
612
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
613
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
614
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
615
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
616
|
+
try {
|
|
617
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
618
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
619
|
+
return here === argv;
|
|
620
|
+
} catch {
|
|
621
|
+
return false;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
607
626
|
process.exit(main());
|
|
608
627
|
}
|
|
@@ -1219,9 +1219,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
1219
1219
|
return 0;
|
|
1220
1220
|
}
|
|
1221
1221
|
|
|
1222
|
-
|
|
1223
|
-
process.argv[1]
|
|
1224
|
-
|
|
1225
|
-
|
|
1222
|
+
function _isCliEntry(): boolean {
|
|
1223
|
+
if (process.argv[1] === undefined) {
|
|
1224
|
+
return false;
|
|
1225
|
+
}
|
|
1226
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
1227
|
+
if (import.meta.url === argvUrl) {
|
|
1228
|
+
return true;
|
|
1229
|
+
}
|
|
1230
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
1231
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
1232
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
1233
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
1234
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
1235
|
+
try {
|
|
1236
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
1237
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
1238
|
+
return here === argv;
|
|
1239
|
+
} catch {
|
|
1240
|
+
return false;
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
1226
1245
|
process.exit(main());
|
|
1227
1246
|
}
|
|
@@ -712,8 +712,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
712
712
|
return 0;
|
|
713
713
|
}
|
|
714
714
|
|
|
715
|
-
|
|
716
|
-
process.argv[1]
|
|
717
|
-
|
|
715
|
+
function _isCliEntry(): boolean {
|
|
716
|
+
if (process.argv[1] === undefined) {
|
|
717
|
+
return false;
|
|
718
|
+
}
|
|
719
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
720
|
+
if (import.meta.url === argvUrl) {
|
|
721
|
+
return true;
|
|
722
|
+
}
|
|
723
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
724
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
725
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
726
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
727
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
728
|
+
try {
|
|
729
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
730
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
731
|
+
return here === argv;
|
|
732
|
+
} catch {
|
|
733
|
+
return false;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
718
738
|
process.exit(main());
|
|
719
739
|
}
|