@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
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import fs from "node:fs";
|
|
23
23
|
import path from "node:path";
|
|
24
|
-
import { pathToFileURL } from "node:url";
|
|
24
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
25
25
|
|
|
26
26
|
const ROOT = ".";
|
|
27
27
|
const MARKETPLACE = path.join(ROOT, ".claude-plugin", "marketplace.json");
|
|
@@ -272,9 +272,30 @@ function relPosix(child: string, base: string): string {
|
|
|
272
272
|
return path.relative(base, child).split(path.sep).join("/");
|
|
273
273
|
}
|
|
274
274
|
|
|
275
|
+
function _isCliEntry(): boolean {
|
|
276
|
+
if (process.argv[1] === undefined) {
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
280
|
+
if (import.meta.url === argvUrl) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
284
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
285
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
286
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
287
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
288
|
+
try {
|
|
289
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
290
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
291
|
+
return here === argv;
|
|
292
|
+
} catch {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
275
297
|
const isCliEntry =
|
|
276
|
-
|
|
277
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
298
|
+
_isCliEntry();
|
|
278
299
|
if (isCliEntry) {
|
|
279
300
|
try {
|
|
280
301
|
process.exit(main());
|
|
@@ -288,10 +288,29 @@ function main(argv?: readonly string[]): number {
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
-
|
|
292
|
-
process.argv[1]
|
|
293
|
-
|
|
294
|
-
|
|
291
|
+
function _isCliEntry(): boolean {
|
|
292
|
+
if (process.argv[1] === undefined) {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
296
|
+
if (import.meta.url === argvUrl) {
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
300
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
301
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
302
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
303
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
304
|
+
try {
|
|
305
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
306
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
307
|
+
return here === argv;
|
|
308
|
+
} catch {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
295
314
|
process.exit(main());
|
|
296
315
|
}
|
|
297
316
|
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
// Usage: ./scripts-run src/scripts/lint_mcp_config_security [--json]
|
|
21
21
|
|
|
22
22
|
import * as path from 'node:path';
|
|
23
|
-
import
|
|
23
|
+
import * as fs from 'node:fs';
|
|
24
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
24
25
|
|
|
25
26
|
import * as sl from './_lib/security_lint.js';
|
|
26
27
|
|
|
@@ -217,9 +218,28 @@ export function main(argv: readonly string[] | null = null): number {
|
|
|
217
218
|
return sl.report(findings, { check_label: 'mcp-config-security' });
|
|
218
219
|
}
|
|
219
220
|
|
|
220
|
-
|
|
221
|
-
process.argv[1]
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
function _isCliEntry(): boolean {
|
|
222
|
+
if (process.argv[1] === undefined) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
226
|
+
if (import.meta.url === argvUrl) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
230
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
231
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
232
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
233
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
234
|
+
try {
|
|
235
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
236
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
237
|
+
return here === argv;
|
|
238
|
+
} catch {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if (_isCliEntry()) {
|
|
224
244
|
process.exitCode = main();
|
|
225
245
|
}
|
|
@@ -332,10 +332,29 @@ function main(argv: readonly string[]): number {
|
|
|
332
332
|
return 0;
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
|
|
336
|
-
process.argv[1]
|
|
337
|
-
|
|
338
|
-
|
|
335
|
+
function _isCliEntry(): boolean {
|
|
336
|
+
if (process.argv[1] === undefined) {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
340
|
+
if (import.meta.url === argvUrl) {
|
|
341
|
+
return true;
|
|
342
|
+
}
|
|
343
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
344
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
345
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
346
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
347
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
348
|
+
try {
|
|
349
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
350
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
351
|
+
return here === argv;
|
|
352
|
+
} catch {
|
|
353
|
+
return false;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
339
358
|
process.exit(main(process.argv.slice(2)));
|
|
340
359
|
}
|
|
341
360
|
|
|
@@ -214,10 +214,29 @@ function main(): number {
|
|
|
214
214
|
return 0;
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
process.argv[1]
|
|
219
|
-
|
|
220
|
-
|
|
217
|
+
function _isCliEntry(): boolean {
|
|
218
|
+
if (process.argv[1] === undefined) {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
222
|
+
if (import.meta.url === argvUrl) {
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
226
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
227
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
228
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
229
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
230
|
+
try {
|
|
231
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
232
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
233
|
+
return here === argv;
|
|
234
|
+
} catch {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
221
240
|
process.exit(main());
|
|
222
241
|
}
|
|
223
242
|
|
|
@@ -747,10 +747,29 @@ function _sortedMissionDirs(): string[] {
|
|
|
747
747
|
return out;
|
|
748
748
|
}
|
|
749
749
|
|
|
750
|
-
|
|
751
|
-
process.argv[1]
|
|
752
|
-
|
|
753
|
-
|
|
750
|
+
function _isCliEntry(): boolean {
|
|
751
|
+
if (process.argv[1] === undefined) {
|
|
752
|
+
return false;
|
|
753
|
+
}
|
|
754
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
755
|
+
if (import.meta.url === argvUrl) {
|
|
756
|
+
return true;
|
|
757
|
+
}
|
|
758
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
759
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
760
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
761
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
762
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
763
|
+
try {
|
|
764
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
765
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
766
|
+
return here === argv;
|
|
767
|
+
} catch {
|
|
768
|
+
return false;
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
754
773
|
process.exitCode = main();
|
|
755
774
|
}
|
|
756
775
|
|
|
@@ -141,10 +141,29 @@ function parse_args(argv: readonly string[]): boolean {
|
|
|
141
141
|
return quiet;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
process.argv[1]
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
function _isCliEntry(): boolean {
|
|
145
|
+
if (process.argv[1] === undefined) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
149
|
+
if (import.meta.url === argvUrl) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
153
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
154
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
155
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
156
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
157
|
+
try {
|
|
158
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
159
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
160
|
+
return here === argv;
|
|
161
|
+
} catch {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
148
167
|
process.exit(main(process.argv.slice(2)));
|
|
149
168
|
}
|
|
150
169
|
|
|
@@ -271,10 +271,29 @@ function main(argv?: readonly string[]): number {
|
|
|
271
271
|
return 0;
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
|
|
275
|
-
process.argv[1]
|
|
276
|
-
|
|
277
|
-
|
|
274
|
+
function _isCliEntry(): boolean {
|
|
275
|
+
if (process.argv[1] === undefined) {
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
279
|
+
if (import.meta.url === argvUrl) {
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
283
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
284
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
285
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
286
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
287
|
+
try {
|
|
288
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
289
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
290
|
+
return here === argv;
|
|
291
|
+
} catch {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
278
297
|
process.exit(main());
|
|
279
298
|
}
|
|
280
299
|
|
|
@@ -178,10 +178,29 @@ function isPlainObject(v: unknown): v is Record<string, unknown> {
|
|
|
178
178
|
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
|
|
182
|
-
process.argv[1]
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
function _isCliEntry(): boolean {
|
|
182
|
+
if (process.argv[1] === undefined) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
186
|
+
if (import.meta.url === argvUrl) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
190
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
191
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
192
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
193
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
194
|
+
try {
|
|
195
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
196
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
197
|
+
return here === argv;
|
|
198
|
+
} catch {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
185
204
|
try {
|
|
186
205
|
process.exit(main());
|
|
187
206
|
} catch (e) {
|
|
@@ -452,10 +452,29 @@ function _parseArgs(args: string[]): ParsedArgs {
|
|
|
452
452
|
return { baseline, quiet, exit: null };
|
|
453
453
|
}
|
|
454
454
|
|
|
455
|
-
|
|
456
|
-
process.argv[1]
|
|
457
|
-
|
|
458
|
-
|
|
455
|
+
function _isCliEntry(): boolean {
|
|
456
|
+
if (process.argv[1] === undefined) {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
459
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
460
|
+
if (import.meta.url === argvUrl) {
|
|
461
|
+
return true;
|
|
462
|
+
}
|
|
463
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
464
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
465
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
466
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
467
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
468
|
+
try {
|
|
469
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
470
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
471
|
+
return here === argv;
|
|
472
|
+
} catch {
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
459
478
|
process.exit(main());
|
|
460
479
|
}
|
|
461
480
|
|
|
@@ -321,10 +321,29 @@ function main(argv?: readonly string[]): number {
|
|
|
321
321
|
return 0;
|
|
322
322
|
}
|
|
323
323
|
|
|
324
|
-
|
|
325
|
-
process.argv[1]
|
|
326
|
-
|
|
327
|
-
|
|
324
|
+
function _isCliEntry(): boolean {
|
|
325
|
+
if (process.argv[1] === undefined) {
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
329
|
+
if (import.meta.url === argvUrl) {
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
333
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
334
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
335
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
336
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
337
|
+
try {
|
|
338
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
339
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
340
|
+
return here === argv;
|
|
341
|
+
} catch {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
328
347
|
process.exit(main());
|
|
329
348
|
}
|
|
330
349
|
|
|
@@ -338,10 +338,29 @@ export function main(): number {
|
|
|
338
338
|
return findings.some((f) => f.severity === 'fail') ? 1 : 0;
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
|
|
342
|
-
process.argv[1]
|
|
343
|
-
|
|
344
|
-
|
|
341
|
+
function _isCliEntry(): boolean {
|
|
342
|
+
if (process.argv[1] === undefined) {
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
346
|
+
if (import.meta.url === argvUrl) {
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
350
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
351
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
352
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
353
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
354
|
+
try {
|
|
355
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
356
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
357
|
+
return here === argv;
|
|
358
|
+
} catch {
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
345
364
|
process.exit(main());
|
|
346
365
|
}
|
|
347
366
|
|
|
@@ -358,10 +358,29 @@ function _sortedListRepr(s: Set<string>): string {
|
|
|
358
358
|
return '[' + [...s].sort().map((x) => `'${x}'`).join(', ') + ']';
|
|
359
359
|
}
|
|
360
360
|
|
|
361
|
-
|
|
362
|
-
process.argv[1]
|
|
363
|
-
|
|
364
|
-
|
|
361
|
+
function _isCliEntry(): boolean {
|
|
362
|
+
if (process.argv[1] === undefined) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
366
|
+
if (import.meta.url === argvUrl) {
|
|
367
|
+
return true;
|
|
368
|
+
}
|
|
369
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
370
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
371
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
372
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
373
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
374
|
+
try {
|
|
375
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
376
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
377
|
+
return here === argv;
|
|
378
|
+
} catch {
|
|
379
|
+
return false;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
365
384
|
process.exit(main());
|
|
366
385
|
}
|
|
367
386
|
|
|
@@ -169,9 +169,28 @@ export function main(argv?: readonly string[]): number {
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
const _HERE = fileURLToPath(import.meta.url);
|
|
172
|
-
|
|
173
|
-
process.argv[1]
|
|
174
|
-
|
|
175
|
-
|
|
172
|
+
function _isCliEntry(): boolean {
|
|
173
|
+
if (process.argv[1] === undefined) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
177
|
+
if (import.meta.url === argvUrl) {
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
181
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
182
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
183
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
184
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
185
|
+
try {
|
|
186
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
187
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
188
|
+
return here === argv;
|
|
189
|
+
} catch {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
176
195
|
process.exit(main());
|
|
177
196
|
}
|
|
@@ -345,10 +345,29 @@ function main(): number {
|
|
|
345
345
|
return violations.length > 0 ? 1 : 0;
|
|
346
346
|
}
|
|
347
347
|
|
|
348
|
-
|
|
349
|
-
process.argv[1]
|
|
350
|
-
|
|
351
|
-
|
|
348
|
+
function _isCliEntry(): boolean {
|
|
349
|
+
if (process.argv[1] === undefined) {
|
|
350
|
+
return false;
|
|
351
|
+
}
|
|
352
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
353
|
+
if (import.meta.url === argvUrl) {
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
356
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
357
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
358
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
359
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
360
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
361
|
+
try {
|
|
362
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
363
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
364
|
+
return here === argv;
|
|
365
|
+
} catch {
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
352
371
|
process.exit(main());
|
|
353
372
|
}
|
|
354
373
|
|
|
@@ -533,9 +533,30 @@ function pyListRepr(items: string[]): string {
|
|
|
533
533
|
return `[${items.map((s) => `'${s}'`).join(", ")}]`;
|
|
534
534
|
}
|
|
535
535
|
|
|
536
|
+
function _isCliEntry(): boolean {
|
|
537
|
+
if (process.argv[1] === undefined) {
|
|
538
|
+
return false;
|
|
539
|
+
}
|
|
540
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
541
|
+
if (import.meta.url === argvUrl) {
|
|
542
|
+
return true;
|
|
543
|
+
}
|
|
544
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
545
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
546
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
547
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
548
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
549
|
+
try {
|
|
550
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
551
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
552
|
+
return here === argv;
|
|
553
|
+
} catch {
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
536
558
|
const isCliEntry =
|
|
537
|
-
|
|
538
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
559
|
+
_isCliEntry();
|
|
539
560
|
if (isCliEntry) {
|
|
540
561
|
process.exit(main());
|
|
541
562
|
}
|
|
@@ -187,10 +187,29 @@ function main(): number {
|
|
|
187
187
|
return 0;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
|
|
191
|
-
process.argv[1]
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
function _isCliEntry(): boolean {
|
|
191
|
+
if (process.argv[1] === undefined) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
195
|
+
if (import.meta.url === argvUrl) {
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
199
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
200
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
201
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
202
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
203
|
+
try {
|
|
204
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
205
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
206
|
+
return here === argv;
|
|
207
|
+
} catch {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
194
213
|
process.exit(main());
|
|
195
214
|
}
|
|
196
215
|
|
|
@@ -74,6 +74,28 @@ export function main(): number {
|
|
|
74
74
|
return 1;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
function _isCliEntry(): boolean {
|
|
78
|
+
if (process.argv[1] === undefined) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
82
|
+
if (import.meta.url === argvUrl) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
86
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
87
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
88
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
89
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
90
|
+
try {
|
|
91
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
92
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
93
|
+
return here === argv;
|
|
94
|
+
} catch {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (_isCliEntry()) {
|
|
78
100
|
process.exit(main());
|
|
79
101
|
}
|