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