@event4u/agent-config 8.1.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +50 -297
  3. package/dist/agent-src/commands/agents/init.md +3 -3
  4. package/dist/agent-src/commands/chat-history/import.md +5 -5
  5. package/dist/agent-src/commands/chat-history.md +1 -1
  6. package/dist/agent-src/commands/condense.md +1 -1
  7. package/dist/agent-src/commands/context/create.md +1 -1
  8. package/dist/agent-src/commands/council/analysis.md +2 -2
  9. package/dist/agent-src/commands/council/default.md +3 -3
  10. package/dist/agent-src/commands/council/design.md +2 -2
  11. package/dist/agent-src/commands/council/optimize.md +1 -1
  12. package/dist/agent-src/commands/council/pr.md +2 -2
  13. package/dist/agent-src/commands/council.md +1 -1
  14. package/dist/agent-src/commands/feature/plan.md +1 -1
  15. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  16. package/dist/agent-src/commands/ghostwriter/write.md +1 -1
  17. package/dist/agent-src/commands/ghostwriter.md +1 -1
  18. package/dist/agent-src/commands/implement-ticket.md +2 -2
  19. package/dist/agent-src/commands/judge/on-diff.md +1 -1
  20. package/dist/agent-src/commands/judge/steps.md +3 -1
  21. package/dist/agent-src/commands/memory/add.md +2 -2
  22. package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
  23. package/dist/agent-src/commands/memory/load.md +1 -1
  24. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  25. package/dist/agent-src/commands/memory/promote.md +1 -1
  26. package/dist/agent-src/commands/memory/propose.md +1 -1
  27. package/dist/agent-src/commands/mission/upgrade.md +1 -1
  28. package/dist/agent-src/commands/module/explore.md +3 -3
  29. package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
  30. package/dist/agent-src/commands/optimize/skills.md +1 -1
  31. package/dist/agent-src/commands/optimize-project.md +1 -1
  32. package/dist/agent-src/commands/orchestrate.md +2 -2
  33. package/dist/agent-src/commands/project-analyze.md +1 -1
  34. package/dist/agent-src/commands/project-health.md +1 -1
  35. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  36. package/dist/agent-src/commands/roadmap/create.md +2 -2
  37. package/dist/agent-src/commands/roadmap/process-full.md +3 -1
  38. package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
  39. package/dist/agent-src/commands/roadmap/process-step.md +3 -1
  40. package/dist/agent-src/commands/security-audit-config.md +1 -1
  41. package/dist/agent-src/commands/sync-agent-settings.md +7 -7
  42. package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
  43. package/dist/agent-src/commands/sync-gitignore.md +4 -4
  44. package/dist/agent-src/commands/work.md +3 -3
  45. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  46. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
  47. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
  48. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
  49. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  50. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
  51. package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
  52. package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
  53. package/dist/agent-src/packs/README.md +1 -1
  54. package/dist/agent-src/presets/README.md +1 -1
  55. package/dist/agent-src/profiles/README.md +1 -1
  56. package/dist/agent-src/rules/architecture.md +2 -2
  57. package/dist/agent-src/rules/context-hygiene.md +2 -2
  58. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
  59. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  60. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
  61. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
  62. package/dist/agent-src/rules/media-governance-routing.md +1 -1
  63. package/dist/agent-src/rules/no-roadmap-references.md +3 -3
  64. package/dist/agent-src/rules/preservation-guard.md +2 -2
  65. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
  66. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
  67. package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
  68. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  69. package/dist/agent-src/rules/telegraph-speak.md +1 -1
  70. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  71. package/dist/agent-src/rules/ui-audit-gate.md +1 -1
  72. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
  73. package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
  74. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
  75. package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
  76. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  77. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  78. package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
  79. package/dist/agent-src/skills/api-design/SKILL.md +1 -1
  80. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
  81. package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
  82. package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
  83. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
  84. package/dist/agent-src/skills/code-review/SKILL.md +3 -4
  85. package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
  86. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  87. package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
  88. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  89. package/dist/agent-src/skills/context-document/SKILL.md +1 -1
  90. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
  91. package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
  92. package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
  93. package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
  94. package/dist/agent-src/skills/database/SKILL.md +2 -1
  95. package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
  96. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
  97. package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
  98. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
  99. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
  100. package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
  101. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
  102. package/dist/agent-src/skills/flux/SKILL.md +10 -9
  103. package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
  104. package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
  105. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
  106. package/dist/agent-src/skills/livewire/SKILL.md +10 -9
  107. package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
  108. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
  109. package/dist/agent-src/skills/module-management/SKILL.md +2 -2
  110. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
  111. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
  112. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
  113. package/dist/agent-src/skills/premortem/SKILL.md +1 -1
  114. package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
  115. package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
  116. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
  117. package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
  118. package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
  119. package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
  120. package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
  121. package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
  122. package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
  123. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  124. package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
  125. package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
  126. package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
  127. package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
  128. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
  129. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  130. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
  131. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
  132. package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
  133. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  134. package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
  135. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
  136. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
  137. package/dist/agent-src/templates/agent-settings.md +34 -25
  138. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  139. package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
  140. package/dist/agent-src/templates/agents/proposal.example.md +4 -4
  141. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  142. package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
  143. package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
  144. package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
  145. package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
  146. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
  147. package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
  148. package/dist/agent-src/templates/roadmaps.md +9 -4
  149. package/dist/agent-src/templates/rule.md +3 -3
  150. package/dist/agent-src/templates/scripts/README.md +6 -6
  151. package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
  152. package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
  153. package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
  154. package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
  155. package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
  156. package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
  157. package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
  158. package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
  159. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  160. package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
  161. package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
  162. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  163. package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
  164. package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
  165. package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
  166. package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
  167. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
  168. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
  169. package/dist/agent-src/templates/skill.md +2 -2
  170. package/dist/cli/python/knowledge_ingest.js +24 -3
  171. package/dist/cli/python/knowledge_ingest.js.map +1 -1
  172. package/dist/cli/python/workspace_analytics.js +23 -3
  173. package/dist/cli/python/workspace_analytics.js.map +1 -1
  174. package/dist/cli/python/workspace_crypto.js +23 -3
  175. package/dist/cli/python/workspace_crypto.js.map +1 -1
  176. package/dist/cli/python/workspace_documents.js +23 -3
  177. package/dist/cli/python/workspace_documents.js.map +1 -1
  178. package/dist/cli/python/workspace_drive.js +24 -3
  179. package/dist/cli/python/workspace_drive.js.map +1 -1
  180. package/dist/cli/python/workspace_drive_health.js +23 -3
  181. package/dist/cli/python/workspace_drive_health.js.map +1 -1
  182. package/dist/cli/python/workspace_explain.js +23 -3
  183. package/dist/cli/python/workspace_explain.js.map +1 -1
  184. package/dist/cli/python/workspace_hosts.js +23 -3
  185. package/dist/cli/python/workspace_hosts.js.map +1 -1
  186. package/dist/cli/python/workspace_inbox.js +23 -3
  187. package/dist/cli/python/workspace_inbox.js.map +1 -1
  188. package/dist/cli/python/workspace_render.js +23 -3
  189. package/dist/cli/python/workspace_render.js.map +1 -1
  190. package/dist/cli/python/workspace_roles.js +23 -3
  191. package/dist/cli/python/workspace_roles.js.map +1 -1
  192. package/dist/cli/python/workspace_sessions.js +23 -3
  193. package/dist/cli/python/workspace_sessions.js.map +1 -1
  194. package/dist/cli/python/workspace_skills.js +23 -3
  195. package/dist/cli/python/workspace_skills.js.map +1 -1
  196. package/dist/cli/registry.js +2 -0
  197. package/dist/cli/registry.js.map +1 -1
  198. package/dist/discovery/deprecation-report.md +1 -1
  199. package/dist/discovery/discovery-manifest.json +118 -118
  200. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  201. package/dist/discovery/discovery-manifest.summary.md +2 -2
  202. package/dist/discovery/orphan-report.md +1 -1
  203. package/dist/discovery/packs.json +3 -3
  204. package/dist/discovery/trust-report.md +1 -1
  205. package/dist/discovery/workspaces.json +3 -3
  206. package/dist/install/install.mjs +67 -28
  207. package/dist/mcp/registry-manifest.json +2 -2
  208. package/dist/server/routes/settings.js +4 -4
  209. package/dist/server/routes/settings.js.map +1 -1
  210. package/dist/server/schemas/settings.js +1 -1
  211. package/dist/server/schemas/settings.js.map +1 -1
  212. package/docs/CLAIMS.md +2 -2
  213. package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
  214. package/docs/benchmark.md +40 -0
  215. package/docs/contracts/skill-bundled-assets.md +2 -2
  216. package/docs/customization.md +1 -1
  217. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
  218. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
  219. package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
  220. package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
  221. package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
  222. package/docs/guidelines/agent-infra/layered-settings.md +4 -4
  223. package/docs/guidelines/agent-infra/memory-access.md +19 -18
  224. package/docs/guidelines/agent-infra/naming.md +1 -1
  225. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
  226. package/docs/guidelines/agent-infra/role-contracts.md +1 -1
  227. package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
  228. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
  229. package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
  230. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  231. package/docs/guidelines/augment-portability-patterns.md +1 -1
  232. package/docs/proof.md +1 -1
  233. package/docs/setup/per-ide/claude-code.md +10 -4
  234. package/package.json +3 -2
  235. package/src/config/agent-settings.template.yml +31 -17
  236. package/src/config/host-capabilities.yml +25 -16
  237. package/src/config/profiles/balanced.ini +5 -3
  238. package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
  239. package/src/scripts/_cli/cmd_conformance.ts +23 -4
  240. package/src/scripts/_cli/cmd_doctor.ts +96 -8
  241. package/src/scripts/_cli/cmd_explain.ts +23 -4
  242. package/src/scripts/_cli/cmd_export.ts +23 -4
  243. package/src/scripts/_cli/cmd_fleet.ts +23 -4
  244. package/src/scripts/_cli/cmd_migrate.ts +23 -4
  245. package/src/scripts/_cli/cmd_preflight.ts +24 -4
  246. package/src/scripts/_cli/cmd_prune.ts +23 -4
  247. package/src/scripts/_cli/cmd_refresh.ts +23 -4
  248. package/src/scripts/_cli/cmd_settings_check.ts +23 -4
  249. package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
  250. package/src/scripts/_cli/cmd_sync.ts +23 -4
  251. package/src/scripts/_cli/cmd_uninstall.ts +23 -4
  252. package/src/scripts/_cli/cmd_update.ts +23 -4
  253. package/src/scripts/_cli/cmd_upgrade.ts +238 -9
  254. package/src/scripts/_cli/cmd_validate.ts +23 -4
  255. package/src/scripts/_cli/cmd_versions.ts +23 -4
  256. package/src/scripts/_dispatch.bash +62 -19
  257. package/src/scripts/_lib/claude_plugin.ts +83 -0
  258. package/src/scripts/_lib/knowledge_global.ts +24 -2
  259. package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
  260. package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
  261. package/src/scripts/_lib/link_crypto.ts +24 -5
  262. package/src/scripts/_lib/pin_resolver.ts +24 -3
  263. package/src/scripts/adoption_report.ts +23 -4
  264. package/src/scripts/adoption_snapshot.ts +23 -1
  265. package/src/scripts/adoption_status.ts +23 -4
  266. package/src/scripts/adr/regenerate_index.ts +24 -3
  267. package/src/scripts/ai_council/airgap.ts +25 -2
  268. package/src/scripts/ai_council/compile_corpus.ts +24 -2
  269. package/src/scripts/ai_council/pricing.ts +11 -1
  270. package/src/scripts/analysis_freshness.ts +23 -4
  271. package/src/scripts/annotate_discovery.ts +23 -1
  272. package/src/scripts/apply_modules_config.ts +23 -4
  273. package/src/scripts/audit_adr_coverage.ts +23 -4
  274. package/src/scripts/audit_auto_rules.ts +23 -1
  275. package/src/scripts/audit_cloud_compatibility.ts +23 -4
  276. package/src/scripts/audit_command_surface.ts +23 -4
  277. package/src/scripts/audit_initial_context.ts +23 -3
  278. package/src/scripts/audit_likelihood.ts +23 -1
  279. package/src/scripts/audit_mcp_tools.ts +23 -3
  280. package/src/scripts/audit_overlap.ts +23 -1
  281. package/src/scripts/audit_skill_descriptions.ts +24 -2
  282. package/src/scripts/audit_skill_overlap.ts +23 -1
  283. package/src/scripts/audit_user_type_axis.ts +23 -4
  284. package/src/scripts/backfill_model_tier.ts +23 -4
  285. package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
  286. package/src/scripts/bench_ab_clone.ts +23 -1
  287. package/src/scripts/bench_ab_diff.ts +23 -1
  288. package/src/scripts/bench_ab_integrity.ts +23 -1
  289. package/src/scripts/bench_ab_run.ts +23 -2
  290. package/src/scripts/bench_ab_task_runner.ts +23 -1
  291. package/src/scripts/bench_ab_tracka_run.ts +23 -2
  292. package/src/scripts/bench_ab_v2_run.ts +23 -1
  293. package/src/scripts/bench_ab_v2_stats.ts +23 -1
  294. package/src/scripts/bench_baseline_ready.ts +23 -1
  295. package/src/scripts/bench_condense_memory.ts +23 -1
  296. package/src/scripts/bench_drift_check.ts +23 -2
  297. package/src/scripts/bench_matrix.ts +23 -4
  298. package/src/scripts/bench_per_tool.ts +23 -1
  299. package/src/scripts/bench_quality_run.ts +23 -2
  300. package/src/scripts/bench_rtk_savings.ts +23 -1
  301. package/src/scripts/bench_rule_load_latency.ts +23 -2
  302. package/src/scripts/bench_run.ts +23 -2
  303. package/src/scripts/bench_runner.ts +23 -1
  304. package/src/scripts/build_cloud_bundle.ts +23 -3
  305. package/src/scripts/build_discovery_manifest.ts +23 -4
  306. package/src/scripts/build_linear_digest.ts +23 -3
  307. package/src/scripts/build_mcp_registry_manifest.ts +23 -4
  308. package/src/scripts/build_rule_trigger_matrix.ts +23 -4
  309. package/src/scripts/capture_showcase_session.ts +23 -1
  310. package/src/scripts/chat_history.ts +24 -3
  311. package/src/scripts/check_always_budget.ts +23 -2
  312. package/src/scripts/check_artefact_checksums.ts +23 -4
  313. package/src/scripts/check_augment_description_cap.ts +23 -4
  314. package/src/scripts/check_augmentignore.ts +23 -4
  315. package/src/scripts/check_beta_review_markers.ts +23 -4
  316. package/src/scripts/check_cluster_patterns.ts +23 -4
  317. package/src/scripts/check_command_count_messaging.ts +23 -4
  318. package/src/scripts/check_comparison.ts +23 -1
  319. package/src/scripts/check_condensation.ts +24 -3
  320. package/src/scripts/check_condensed_paths.ts +23 -2
  321. package/src/scripts/check_context_paths.ts +23 -4
  322. package/src/scripts/check_council_config_location.ts +23 -4
  323. package/src/scripts/check_council_layout.ts +23 -4
  324. package/src/scripts/check_council_references.ts +23 -4
  325. package/src/scripts/check_discovery_determinism.ts +24 -4
  326. package/src/scripts/check_gate_paths.ts +23 -4
  327. package/src/scripts/check_generated_artefact_headers.ts +23 -4
  328. package/src/scripts/check_generator_output_coverage.ts +23 -4
  329. package/src/scripts/check_gitignore_freshness.ts +23 -4
  330. package/src/scripts/check_iron_law_prominence.ts +23 -4
  331. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  332. package/src/scripts/check_kernel_rule_bundle.ts +23 -4
  333. package/src/scripts/check_knowledge_cards.ts +23 -1
  334. package/src/scripts/check_md_language.ts +23 -4
  335. package/src/scripts/check_media_deps.ts +24 -1
  336. package/src/scripts/check_memory.ts +24 -2
  337. package/src/scripts/check_memory_proposal.ts +23 -4
  338. package/src/scripts/check_module_management_neutral.ts +23 -4
  339. package/src/scripts/check_no_conflict_markers.ts +23 -4
  340. package/src/scripts/check_no_external_sources.ts +23 -4
  341. package/src/scripts/check_no_local_settings_committed.ts +24 -4
  342. package/src/scripts/check_no_new_legacy_path.ts +23 -4
  343. package/src/scripts/check_no_roadmap_refs.ts +23 -4
  344. package/src/scripts/check_one_off_location.ts +23 -4
  345. package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
  346. package/src/scripts/check_portability.ts +24 -3
  347. package/src/scripts/check_proposal.ts +0 -0
  348. package/src/scripts/check_public_catalog_links.ts +23 -4
  349. package/src/scripts/check_public_links.ts +23 -4
  350. package/src/scripts/check_quality_regression.ts +23 -2
  351. package/src/scripts/check_references.ts +23 -4
  352. package/src/scripts/check_release_includes_discovery.ts +23 -4
  353. package/src/scripts/check_release_pr_shape.ts +23 -4
  354. package/src/scripts/check_release_published.ts +23 -4
  355. package/src/scripts/check_release_trunk_sync.ts +23 -4
  356. package/src/scripts/check_reply_consistency.ts +23 -4
  357. package/src/scripts/check_roadmap_trackable.ts +23 -4
  358. package/src/scripts/check_role_doc_links.ts +23 -4
  359. package/src/scripts/check_safety_floor_untouched.ts +24 -4
  360. package/src/scripts/check_site_links.ts +23 -1
  361. package/src/scripts/check_skill_gaps.ts +23 -1
  362. package/src/scripts/check_skill_requires.ts +23 -4
  363. package/src/scripts/check_structural_breaking.ts +24 -4
  364. package/src/scripts/check_surface_tiers.ts +23 -4
  365. package/src/scripts/check_template_pin_drift.ts +23 -4
  366. package/src/scripts/check_test_coverage_diff.ts +23 -4
  367. package/src/scripts/check_token_optimizer_freshness.ts +23 -4
  368. package/src/scripts/check_token_quality_golden.ts +23 -2
  369. package/src/scripts/check_token_regression.ts +23 -2
  370. package/src/scripts/check_tracked_but_ignored.ts +24 -4
  371. package/src/scripts/check_trigger_evals.ts +23 -4
  372. package/src/scripts/check_trunk_drift.ts +24 -1
  373. package/src/scripts/check_update_banner.ts +23 -4
  374. package/src/scripts/ci_summary.ts +23 -4
  375. package/src/scripts/ci_time_ratio.ts +23 -4
  376. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  377. package/src/scripts/compile_router.ts +23 -4
  378. package/src/scripts/condense.ts +23 -2
  379. package/src/scripts/condense_memory.ts +24 -2
  380. package/src/scripts/config/packs.ts +24 -4
  381. package/src/scripts/config/session_profiles.ts +23 -4
  382. package/src/scripts/context_hygiene_hook.ts +24 -3
  383. package/src/scripts/cost_by_conversation.ts +23 -4
  384. package/src/scripts/cost_summary.ts +23 -4
  385. package/src/scripts/council_cli.ts +35 -7
  386. package/src/scripts/council_prune.ts +25 -2
  387. package/src/scripts/cross_repo_retrieve.ts +23 -4
  388. package/src/scripts/discovery_stats.ts +23 -4
  389. package/src/scripts/evidence_report.ts +23 -1
  390. package/src/scripts/export_replay_corpus.ts +23 -2
  391. package/src/scripts/extract_audit_patterns.ts +23 -1
  392. package/src/scripts/first_run_gate_hook.ts +24 -3
  393. package/src/scripts/gen_discovery_baseline.ts +23 -4
  394. package/src/scripts/generate_capabilities_index.ts +24 -5
  395. package/src/scripts/generate_capability_matrix.ts +23 -4
  396. package/src/scripts/generate_catalog.ts +23 -1
  397. package/src/scripts/generate_command_flows.ts +23 -4
  398. package/src/scripts/generate_cookbook.ts +23 -4
  399. package/src/scripts/generate_index.ts +23 -4
  400. package/src/scripts/generate_ownership_matrix.ts +23 -1
  401. package/src/scripts/generate_pack_manifests.ts +24 -5
  402. package/src/scripts/generate_role_experiences_catalog.ts +23 -4
  403. package/src/scripts/hooks/block_no_verify.ts +23 -4
  404. package/src/scripts/hooks/design_slop_hook.ts +24 -3
  405. package/src/scripts/hooks/dispatch_hook.ts +47 -14
  406. package/src/scripts/hooks/replay_hook.ts +23 -2
  407. package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
  408. package/src/scripts/hooks_doctor.ts +23 -2
  409. package/src/scripts/hooks_status.ts +23 -2
  410. package/src/scripts/injection_scan_hook.ts +24 -5
  411. package/src/scripts/install.ts +72 -44
  412. package/src/scripts/inventory_abstraction_budget.ts +23 -1
  413. package/src/scripts/inventory_frontmatter.ts +23 -1
  414. package/src/scripts/inventory_meta_layers.ts +23 -1
  415. package/src/scripts/iron_law_sha.ts +23 -4
  416. package/src/scripts/janitor.ts +23 -4
  417. package/src/scripts/knowledge_global_cli.ts +24 -2
  418. package/src/scripts/linked_projects_list.ts +23 -4
  419. package/src/scripts/lint_agent_security.ts +23 -4
  420. package/src/scripts/lint_agent_skill_names.ts +23 -4
  421. package/src/scripts/lint_agents_layout.ts +23 -4
  422. package/src/scripts/lint_agents_md.ts +23 -4
  423. package/src/scripts/lint_archived_skills.ts +23 -4
  424. package/src/scripts/lint_artefact_frontmatter.ts +23 -4
  425. package/src/scripts/lint_bench_ab.ts +23 -4
  426. package/src/scripts/lint_bench_corpus.ts +23 -2
  427. package/src/scripts/lint_command_flow_coverage.ts +23 -4
  428. package/src/scripts/lint_command_routing.ts +23 -4
  429. package/src/scripts/lint_command_tiers.ts +23 -2
  430. package/src/scripts/lint_command_verbs.ts +23 -4
  431. package/src/scripts/lint_commit_subjects.ts +24 -4
  432. package/src/scripts/lint_confusables.ts +25 -5
  433. package/src/scripts/lint_context_spine_usage.ts +23 -4
  434. package/src/scripts/lint_discovery_manifest.ts +23 -4
  435. package/src/scripts/lint_discovery_vocabulary.ts +23 -4
  436. package/src/scripts/lint_empty_roadmaps.ts +23 -4
  437. package/src/scripts/lint_eval_freshness.ts +23 -4
  438. package/src/scripts/lint_examples.ts +23 -4
  439. package/src/scripts/lint_explain_trace.ts +23 -4
  440. package/src/scripts/lint_featured_skills.ts +0 -0
  441. package/src/scripts/lint_flows.ts +23 -4
  442. package/src/scripts/lint_framework_leakage.ts +23 -4
  443. package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
  444. package/src/scripts/lint_ghostwriter_source.ts +23 -4
  445. package/src/scripts/lint_global_paths.ts +23 -2
  446. package/src/scripts/lint_handoffs.ts +23 -4
  447. package/src/scripts/lint_hidden_unicode.ts +24 -5
  448. package/src/scripts/lint_hook_concern_budget.ts +23 -4
  449. package/src/scripts/lint_hook_manifest.ts +23 -2
  450. package/src/scripts/lint_instruction_smuggling.ts +25 -5
  451. package/src/scripts/lint_legal_pack.ts +23 -1
  452. package/src/scripts/lint_load_context.ts +23 -4
  453. package/src/scripts/lint_marketplace.ts +24 -3
  454. package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
  455. package/src/scripts/lint_mcp_config_security.ts +25 -5
  456. package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
  457. package/src/scripts/lint_media_policy_linkage.ts +23 -4
  458. package/src/scripts/lint_missions.ts +23 -4
  459. package/src/scripts/lint_model_tier_coverage.ts +23 -4
  460. package/src/scripts/lint_namespace.ts +23 -4
  461. package/src/scripts/lint_namespace_collisions.ts +23 -4
  462. package/src/scripts/lint_new_skill_gate.ts +23 -4
  463. package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
  464. package/src/scripts/lint_one_off_age.ts +23 -4
  465. package/src/scripts/lint_orchestration_dsl.ts +23 -4
  466. package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
  467. package/src/scripts/lint_pack_boundaries.ts +23 -4
  468. package/src/scripts/lint_pack_dependencies.ts +23 -2
  469. package/src/scripts/lint_pack_first_win.ts +23 -4
  470. package/src/scripts/lint_pack_risk_class.ts +23 -1
  471. package/src/scripts/lint_persona_governance.ts +23 -4
  472. package/src/scripts/lint_positioning.ts +23 -4
  473. package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
  474. package/src/scripts/lint_readme_jargon.ts +23 -4
  475. package/src/scripts/lint_readme_size.ts +23 -4
  476. package/src/scripts/lint_regression.ts +23 -4
  477. package/src/scripts/lint_roadmap_blockers.ts +23 -4
  478. package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
  479. package/src/scripts/lint_roadmap_complexity.ts +23 -4
  480. package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
  481. package/src/scripts/lint_role_experiences.ts +23 -4
  482. package/src/scripts/lint_rule_interactions.ts +23 -4
  483. package/src/scripts/lint_rule_tiers.ts +24 -3
  484. package/src/scripts/lint_showcase_sessions.ts +23 -4
  485. package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
  486. package/src/scripts/lint_skill_originality.ts +23 -4
  487. package/src/scripts/lint_skill_tools.ts +23 -4
  488. package/src/scripts/lint_subagent_determinism.ts +23 -4
  489. package/src/scripts/lint_ticket_buildable.ts +23 -4
  490. package/src/scripts/lint_topics_yaml.ts +23 -4
  491. package/src/scripts/lint_trust_coherence.ts +23 -4
  492. package/src/scripts/lint_value_dashboard.ts +23 -4
  493. package/src/scripts/lint_workflow_security.ts +23 -4
  494. package/src/scripts/lint_workspace_boundary.ts +23 -4
  495. package/src/scripts/mcp_parity_smoke.ts +23 -2
  496. package/src/scripts/mcp_render.ts +23 -4
  497. package/src/scripts/mcp_telemetry_health.ts +23 -4
  498. package/src/scripts/mcp_telemetry_query.ts +23 -4
  499. package/src/scripts/mcp_telemetry_store.ts +23 -4
  500. package/src/scripts/measure_augment_budget.ts +23 -1
  501. package/src/scripts/measure_density.ts +23 -1
  502. package/src/scripts/measure_frugality_savings.ts +23 -1
  503. package/src/scripts/measure_markitdown_lift.ts +23 -1
  504. package/src/scripts/measure_patterns.ts +23 -1
  505. package/src/scripts/measure_projection_bytes.ts +23 -1
  506. package/src/scripts/measure_rule_budget.ts +23 -4
  507. package/src/scripts/measure_skill_reduction.ts +23 -1
  508. package/src/scripts/memory_hash.ts +24 -2
  509. package/src/scripts/memory_lookup.ts +24 -2
  510. package/src/scripts/memory_report.ts +24 -2
  511. package/src/scripts/memory_signal.ts +24 -2
  512. package/src/scripts/memory_status.ts +26 -2
  513. package/src/scripts/migrate_command_suggestions.ts +23 -4
  514. package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
  515. package/src/scripts/migration_status.ts +25 -4
  516. package/src/scripts/mine_missing_guardrails.ts +23 -1
  517. package/src/scripts/mine_session.ts +23 -1
  518. package/src/scripts/minimal_safe_diff_hook.ts +24 -3
  519. package/src/scripts/new_skill.ts +23 -3
  520. package/src/scripts/onboarding_gate_hook.ts +24 -3
  521. package/src/scripts/parity/coverage_diff.ts +25 -3
  522. package/src/scripts/parity/phase_gate.ts +25 -4
  523. package/src/scripts/parity/replay.ts +25 -3
  524. package/src/scripts/pattern_share.ts +23 -4
  525. package/src/scripts/plan_physical_move.ts +23 -4
  526. package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
  527. package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
  528. package/src/scripts/prediction-pool/score_ev.ts +24 -3
  529. package/src/scripts/print_required_checks.ts +24 -4
  530. package/src/scripts/probe_host_compliance.ts +23 -2
  531. package/src/scripts/probe_projection_fidelity.ts +23 -1
  532. package/src/scripts/probe_skill_registration.ts +24 -2
  533. package/src/scripts/profile_staleness_hook.ts +24 -3
  534. package/src/scripts/profile_use.ts +23 -4
  535. package/src/scripts/project_thin_rules.ts +23 -3
  536. package/src/scripts/propose_modules_config.ts +23 -4
  537. package/src/scripts/prototype_lint_contradictions.ts +23 -1
  538. package/src/scripts/prove_pack_extractable.ts +23 -4
  539. package/src/scripts/readme_linter.ts +23 -3
  540. package/src/scripts/redact_hook_capture.ts +23 -4
  541. package/src/scripts/refine_ticket_detect.ts +23 -4
  542. package/src/scripts/release.ts +23 -4
  543. package/src/scripts/render_benchmark_composite.ts +23 -4
  544. package/src/scripts/render_benchmark_md.ts +23 -4
  545. package/src/scripts/roadmap_progress_hook.ts +46 -16
  546. package/src/scripts/run_skill_evals.ts +23 -4
  547. package/src/scripts/runtime_dispatcher.ts +23 -4
  548. package/src/scripts/runtime_registry.ts +23 -4
  549. package/src/scripts/score_skill_selection.ts +23 -1
  550. package/src/scripts/security_audit_config.ts +24 -5
  551. package/src/scripts/skill_collision_clusters.ts +23 -4
  552. package/src/scripts/skill_discovery.ts +23 -4
  553. package/src/scripts/skill_linter.ts +23 -2
  554. package/src/scripts/skill_preview.ts +23 -4
  555. package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
  556. package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
  557. package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
  558. package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
  559. package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
  560. package/src/scripts/skill_usage_collect.ts +23 -4
  561. package/src/scripts/smoke_path_resolution.ts +23 -4
  562. package/src/scripts/smoke_quickstart.ts +23 -4
  563. package/src/scripts/snapshot_agent_outputs.ts +23 -4
  564. package/src/scripts/spotcheck_thin_root.ts +23 -4
  565. package/src/scripts/sync_agent_settings.ts +23 -4
  566. package/src/scripts/sync_github_metadata.ts +23 -4
  567. package/src/scripts/sync_gitignore.ts +23 -4
  568. package/src/scripts/telegraph_stats.ts +23 -4
  569. package/src/scripts/tool_registry.ts +24 -4
  570. package/src/scripts/trigger_coverage.ts +23 -4
  571. package/src/scripts/update_counts.ts +23 -4
  572. package/src/scripts/update_prices.ts +23 -1
  573. package/src/scripts/validate_agent_settings.ts +23 -4
  574. package/src/scripts/validate_decision_engine.ts +23 -4
  575. package/src/scripts/validate_discovery_manifest.ts +23 -4
  576. package/src/scripts/validate_frontmatter.ts +23 -2
  577. package/src/scripts/validate_pack_yaml.ts +0 -0
  578. package/src/scripts/validate_safe_paths.ts +24 -4
  579. package/src/scripts/validate_telegraph_carveouts.ts +23 -4
  580. package/src/scripts/verify_before_complete_hook.ts +24 -3
  581. package/src/scripts/verify_physical_move.ts +23 -4
  582. package/src/scripts/wrapper_freshness_hook.ts +107 -8
  583. package/tests/fixtures/hooks/README.md +92 -0
  584. package/tests/fixtures/hooks/agent_error.json +7 -0
  585. package/tests/fixtures/hooks/post_tool_use.json +13 -0
  586. package/tests/fixtures/hooks/pre_compact.json +7 -0
  587. package/tests/fixtures/hooks/pre_tool_use.json +9 -0
  588. package/tests/fixtures/hooks/session_end.json +6 -0
  589. package/tests/fixtures/hooks/session_start.json +6 -0
  590. package/tests/fixtures/hooks/stop.json +6 -0
  591. package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
@@ -747,10 +747,29 @@ function _sortedMissionDirs(): string[] {
747
747
  return out;
748
748
  }
749
749
 
750
- const _isCliEntry =
751
- process.argv[1] !== undefined &&
752
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
753
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
145
- process.argv[1] !== undefined &&
146
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
147
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
275
- process.argv[1] !== undefined &&
276
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
277
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
182
- process.argv[1] !== undefined &&
183
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
184
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
456
- process.argv[1] !== undefined &&
457
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
458
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
325
- process.argv[1] !== undefined &&
326
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
327
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
342
- process.argv[1] !== undefined &&
343
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
344
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
362
- process.argv[1] !== undefined &&
363
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
364
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
173
- process.argv[1] !== undefined &&
174
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
175
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- const _isCliEntry =
349
- process.argv[1] !== undefined &&
350
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
351
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- process.argv[1] !== undefined &&
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
- const _isCliEntry =
191
- process.argv[1] !== undefined &&
192
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
193
- if (_isCliEntry || process.argv[1] === _HERE) {
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
- if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href) {
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
  }
@@ -278,10 +278,29 @@ function main(): number {
278
278
  return 0;
279
279
  }
280
280
 
281
- const _isCliEntry =
282
- process.argv[1] !== undefined &&
283
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
284
- if (_isCliEntry || process.argv[1] === _HERE) {
281
+ function _isCliEntry(): boolean {
282
+ if (process.argv[1] === undefined) {
283
+ return false;
284
+ }
285
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
286
+ if (import.meta.url === argvUrl) {
287
+ return true;
288
+ }
289
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
290
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
291
+ // import.meta.url is the resolved real path while argv[1] keeps the
292
+ // symlink path. Compare realpaths so the entry guard still fires
293
+ // (without this the CLI silently no-ops when run through a symlink).
294
+ try {
295
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
296
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
297
+ return here === argv;
298
+ } catch {
299
+ return false;
300
+ }
301
+ }
302
+
303
+ if (_isCliEntry() || process.argv[1] === _HERE) {
285
304
  process.exit(main());
286
305
  }
287
306
 
@@ -238,10 +238,29 @@ function _pyRepr(s: string): string {
238
238
  return `'${s.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
239
239
  }
240
240
 
241
- const _isCliEntry =
242
- process.argv[1] !== undefined &&
243
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
244
- if (_isCliEntry || process.argv[1] === _HERE) {
241
+ function _isCliEntry(): boolean {
242
+ if (process.argv[1] === undefined) {
243
+ return false;
244
+ }
245
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
246
+ if (import.meta.url === argvUrl) {
247
+ return true;
248
+ }
249
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
250
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
251
+ // import.meta.url is the resolved real path while argv[1] keeps the
252
+ // symlink path. Compare realpaths so the entry guard still fires
253
+ // (without this the CLI silently no-ops when run through a symlink).
254
+ try {
255
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
256
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
257
+ return here === argv;
258
+ } catch {
259
+ return false;
260
+ }
261
+ }
262
+
263
+ if (_isCliEntry() || process.argv[1] === _HERE) {
245
264
  process.exit(main());
246
265
  }
247
266
 
@@ -306,10 +306,29 @@ function lint(quiet = false): number {
306
306
  return 0;
307
307
  }
308
308
 
309
- const _isCliEntry =
310
- process.argv[1] !== undefined &&
311
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
312
- if (_isCliEntry || process.argv[1] === _HERE) {
309
+ function _isCliEntry(): boolean {
310
+ if (process.argv[1] === undefined) {
311
+ return false;
312
+ }
313
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
314
+ if (import.meta.url === argvUrl) {
315
+ return true;
316
+ }
317
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
318
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
319
+ // import.meta.url is the resolved real path while argv[1] keeps the
320
+ // symlink path. Compare realpaths so the entry guard still fires
321
+ // (without this the CLI silently no-ops when run through a symlink).
322
+ try {
323
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
324
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
325
+ return here === argv;
326
+ } catch {
327
+ return false;
328
+ }
329
+ }
330
+
331
+ if (_isCliEntry() || process.argv[1] === _HERE) {
313
332
  process.exit(lint(process.argv.includes('--quiet')));
314
333
  }
315
334
 
@@ -179,10 +179,29 @@ function main(): number {
179
179
  return 0;
180
180
  }
181
181
 
182
- const _isCliEntry =
183
- process.argv[1] !== undefined &&
184
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
185
- if (_isCliEntry || process.argv[1] === _HERE) {
182
+ function _isCliEntry(): boolean {
183
+ if (process.argv[1] === undefined) {
184
+ return false;
185
+ }
186
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
187
+ if (import.meta.url === argvUrl) {
188
+ return true;
189
+ }
190
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
191
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
192
+ // import.meta.url is the resolved real path while argv[1] keeps the
193
+ // symlink path. Compare realpaths so the entry guard still fires
194
+ // (without this the CLI silently no-ops when run through a symlink).
195
+ try {
196
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
197
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
198
+ return here === argv;
199
+ } catch {
200
+ return false;
201
+ }
202
+ }
203
+
204
+ if (_isCliEntry() || process.argv[1] === _HERE) {
186
205
  process.exit(main());
187
206
  }
188
207
 
@@ -63,10 +63,29 @@ function main(): number {
63
63
  return 0;
64
64
  }
65
65
 
66
- const _isCliEntry =
67
- process.argv[1] !== undefined &&
68
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
69
- if (_isCliEntry || process.argv[1] === _HERE) {
66
+ function _isCliEntry(): boolean {
67
+ if (process.argv[1] === undefined) {
68
+ return false;
69
+ }
70
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
71
+ if (import.meta.url === argvUrl) {
72
+ return true;
73
+ }
74
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
75
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
76
+ // import.meta.url is the resolved real path while argv[1] keeps the
77
+ // symlink path. Compare realpaths so the entry guard still fires
78
+ // (without this the CLI silently no-ops when run through a symlink).
79
+ try {
80
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
81
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
82
+ return here === argv;
83
+ } catch {
84
+ return false;
85
+ }
86
+ }
87
+
88
+ if (_isCliEntry() || process.argv[1] === _HERE) {
70
89
  process.exit(main());
71
90
  }
72
91
 
@@ -492,10 +492,29 @@ function _deltaForJson(delta: Delta): unknown {
492
492
  };
493
493
  }
494
494
 
495
- const _isCliEntry =
496
- process.argv[1] !== undefined &&
497
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
498
- if (_isCliEntry || process.argv[1] === fileURLToPath(import.meta.url)) {
495
+ function _isCliEntry(): boolean {
496
+ if (process.argv[1] === undefined) {
497
+ return false;
498
+ }
499
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
500
+ if (import.meta.url === argvUrl) {
501
+ return true;
502
+ }
503
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
504
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
505
+ // import.meta.url is the resolved real path while argv[1] keeps the
506
+ // symlink path. Compare realpaths so the entry guard still fires
507
+ // (without this the CLI silently no-ops when run through a symlink).
508
+ try {
509
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
510
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
511
+ return here === argv;
512
+ } catch {
513
+ return false;
514
+ }
515
+ }
516
+
517
+ if (_isCliEntry() || process.argv[1] === fileURLToPath(import.meta.url)) {
499
518
  process.exit(main());
500
519
  }
501
520