@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
@@ -578,7 +578,29 @@ function _yamlSafeLoad(s: string): unknown {
578
578
  return parseYaml(s, { version: '1.1' });
579
579
  }
580
580
 
581
- if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) {
581
+ function _isCliEntry(): boolean {
582
+ if (process.argv[1] === undefined) {
583
+ return false;
584
+ }
585
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
586
+ if (import.meta.url === argvUrl) {
587
+ return true;
588
+ }
589
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
590
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
591
+ // import.meta.url is the resolved real path while argv[1] keeps the
592
+ // symlink path. Compare realpaths so the entry guard still fires
593
+ // (without this the CLI silently no-ops when run through a symlink).
594
+ try {
595
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
596
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
597
+ return here === argv;
598
+ } catch {
599
+ return false;
600
+ }
601
+ }
602
+
603
+ if (_isCliEntry()) {
582
604
  try {
583
605
  process.exitCode = main();
584
606
  } catch (e) {
@@ -243,9 +243,30 @@ function main(argv: string[]): number {
243
243
  return 0;
244
244
  }
245
245
 
246
+ function _isCliEntry(): boolean {
247
+ if (process.argv[1] === undefined) {
248
+ return false;
249
+ }
250
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
251
+ if (import.meta.url === argvUrl) {
252
+ return true;
253
+ }
254
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
255
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
256
+ // import.meta.url is the resolved real path while argv[1] keeps the
257
+ // symlink path. Compare realpaths so the entry guard still fires
258
+ // (without this the CLI silently no-ops when run through a symlink).
259
+ try {
260
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
261
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
262
+ return here === argv;
263
+ } catch {
264
+ return false;
265
+ }
266
+ }
267
+
246
268
  const _IS_MAIN =
247
- process.argv[1] !== undefined &&
248
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
269
+ _isCliEntry();
249
270
  if (_IS_MAIN) {
250
271
  process.exit(main(process.argv.slice(2)));
251
272
  }
@@ -703,8 +703,30 @@ function _jsonStrUnicode(s: string): string {
703
703
  return `${out}"`;
704
704
  }
705
705
 
706
+ function _isCliEntry(): boolean {
707
+ if (process.argv[1] === undefined) {
708
+ return false;
709
+ }
710
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
711
+ if (import.meta.url === argvUrl) {
712
+ return true;
713
+ }
714
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
715
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
716
+ // import.meta.url is the resolved real path while argv[1] keeps the
717
+ // symlink path. Compare realpaths so the entry guard still fires
718
+ // (without this the CLI silently no-ops when run through a symlink).
719
+ try {
720
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
721
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
722
+ return here === argv;
723
+ } catch {
724
+ return false;
725
+ }
726
+ }
727
+
706
728
  const _isMain =
707
- process.argv[1] !== undefined && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
729
+ _isCliEntry();
708
730
  if (_isMain) {
709
731
  process.exit(main());
710
732
  }
@@ -167,9 +167,30 @@ function main(argv: string[]): number {
167
167
  return 0;
168
168
  }
169
169
 
170
+ function _isCliEntry(): boolean {
171
+ if (process.argv[1] === undefined) {
172
+ return false;
173
+ }
174
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
175
+ if (import.meta.url === argvUrl) {
176
+ return true;
177
+ }
178
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
179
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
180
+ // import.meta.url is the resolved real path while argv[1] keeps the
181
+ // symlink path. Compare realpaths so the entry guard still fires
182
+ // (without this the CLI silently no-ops when run through a symlink).
183
+ try {
184
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
185
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
186
+ return here === argv;
187
+ } catch {
188
+ return false;
189
+ }
190
+ }
191
+
170
192
  const _IS_MAIN =
171
- process.argv[1] !== undefined &&
172
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
193
+ _isCliEntry();
173
194
 
174
195
  if (_IS_MAIN) {
175
196
  process.exit(main(process.argv.slice(2)));
@@ -500,9 +500,30 @@ function _pyFixed(x: number, ndigits: number): string {
500
500
  return neg ? `-${result}` : result;
501
501
  }
502
502
 
503
+ function _isCliEntry(): boolean {
504
+ if (process.argv[1] === undefined) {
505
+ return false;
506
+ }
507
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
508
+ if (import.meta.url === argvUrl) {
509
+ return true;
510
+ }
511
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
512
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
513
+ // import.meta.url is the resolved real path while argv[1] keeps the
514
+ // symlink path. Compare realpaths so the entry guard still fires
515
+ // (without this the CLI silently no-ops when run through a symlink).
516
+ try {
517
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
518
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
519
+ return here === argv;
520
+ } catch {
521
+ return false;
522
+ }
523
+ }
524
+
503
525
  const _IS_MAIN =
504
- process.argv[1] !== undefined &&
505
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
526
+ _isCliEntry();
506
527
 
507
528
  if (_IS_MAIN) {
508
529
  process.exit(main());
@@ -506,7 +506,29 @@ function _yamlSafeLoad(s: string): unknown {
506
506
  return parseYaml(s, { version: '1.1' });
507
507
  }
508
508
 
509
- if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) {
509
+ function _isCliEntry(): boolean {
510
+ if (process.argv[1] === undefined) {
511
+ return false;
512
+ }
513
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
514
+ if (import.meta.url === argvUrl) {
515
+ return true;
516
+ }
517
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
518
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
519
+ // import.meta.url is the resolved real path while argv[1] keeps the
520
+ // symlink path. Compare realpaths so the entry guard still fires
521
+ // (without this the CLI silently no-ops when run through a symlink).
522
+ try {
523
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
524
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
525
+ return here === argv;
526
+ } catch {
527
+ return false;
528
+ }
529
+ }
530
+
531
+ if (_isCliEntry()) {
510
532
  try {
511
533
  process.exitCode = main();
512
534
  } catch (e) {
@@ -685,8 +685,28 @@ function _cliMain(): number {
685
685
  }
686
686
  }
687
687
 
688
- const _isCliEntry =
689
- process.argv[1] !== undefined && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
690
- if (_isCliEntry || process.argv[1] === _HERE) {
688
+ function _isCliEntry(): boolean {
689
+ if (process.argv[1] === undefined) {
690
+ return false;
691
+ }
692
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
693
+ if (import.meta.url === argvUrl) {
694
+ return true;
695
+ }
696
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
697
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
698
+ // import.meta.url is the resolved real path while argv[1] keeps the
699
+ // symlink path. Compare realpaths so the entry guard still fires
700
+ // (without this the CLI silently no-ops when run through a symlink).
701
+ try {
702
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
703
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
704
+ return here === argv;
705
+ } catch {
706
+ return false;
707
+ }
708
+ }
709
+
710
+ if (_isCliEntry() || process.argv[1] === _HERE) {
691
711
  process.exit(_cliMain());
692
712
  }
@@ -1367,10 +1367,29 @@ function _writeAllSync(fd: number, buf: Buffer): void {
1367
1367
  }
1368
1368
  }
1369
1369
 
1370
- const _isCliEntry =
1371
- process.argv[1] !== undefined &&
1372
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
1373
- if (_isCliEntry || process.argv[1] === _HERE) {
1370
+ function _isCliEntry(): boolean {
1371
+ if (process.argv[1] === undefined) {
1372
+ return false;
1373
+ }
1374
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
1375
+ if (import.meta.url === argvUrl) {
1376
+ return true;
1377
+ }
1378
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
1379
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
1380
+ // import.meta.url is the resolved real path while argv[1] keeps the
1381
+ // symlink path. Compare realpaths so the entry guard still fires
1382
+ // (without this the CLI silently no-ops when run through a symlink).
1383
+ try {
1384
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
1385
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
1386
+ return here === argv;
1387
+ } catch {
1388
+ return false;
1389
+ }
1390
+ }
1391
+
1392
+ if (_isCliEntry() || process.argv[1] === _HERE) {
1374
1393
  try {
1375
1394
  process.exit(main(process.argv.slice(2)));
1376
1395
  } catch (exc) {
@@ -361,8 +361,28 @@ function _pyListRepr(items: string[]): string {
361
361
  return '[' + items.map((s) => "'" + s.replace(/\\/g, '\\\\').replace(/'/g, "\\'") + "'").join(', ') + ']';
362
362
  }
363
363
 
364
- const _isCliEntry =
365
- process.argv[1] !== undefined && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
366
- if (_isCliEntry || process.argv[1] === _HERE) {
364
+ function _isCliEntry(): boolean {
365
+ if (process.argv[1] === undefined) {
366
+ return false;
367
+ }
368
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
369
+ if (import.meta.url === argvUrl) {
370
+ return true;
371
+ }
372
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
373
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
374
+ // import.meta.url is the resolved real path while argv[1] keeps the
375
+ // symlink path. Compare realpaths so the entry guard still fires
376
+ // (without this the CLI silently no-ops when run through a symlink).
377
+ try {
378
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
379
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
380
+ return here === argv;
381
+ } catch {
382
+ return false;
383
+ }
384
+ }
385
+
386
+ if (_isCliEntry() || process.argv[1] === _HERE) {
367
387
  process.exit(main());
368
388
  }
@@ -335,10 +335,29 @@ export function pyJsonDumps(obj: Json, opts: { indent: number; sortKeys: boolean
335
335
  return enc(obj, 0);
336
336
  }
337
337
 
338
- const _isCliEntry =
339
- process.argv[1] !== undefined &&
340
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
341
- if (_isCliEntry || process.argv[1] === _HERE) {
338
+ function _isCliEntry(): boolean {
339
+ if (process.argv[1] === undefined) {
340
+ return false;
341
+ }
342
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
343
+ if (import.meta.url === argvUrl) {
344
+ return true;
345
+ }
346
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
347
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
348
+ // import.meta.url is the resolved real path while argv[1] keeps the
349
+ // symlink path. Compare realpaths so the entry guard still fires
350
+ // (without this the CLI silently no-ops when run through a symlink).
351
+ try {
352
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
353
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
354
+ return here === argv;
355
+ } catch {
356
+ return false;
357
+ }
358
+ }
359
+
360
+ if (_isCliEntry() || process.argv[1] === _HERE) {
342
361
  try {
343
362
  process.exit(main(process.argv.slice(2)));
344
363
  } catch (exc) {
@@ -459,10 +459,29 @@ function _pyReprList(items: string[]): string {
459
459
  return '[' + items.map((s) => `'${s}'`).join(', ') + ']';
460
460
  }
461
461
 
462
- const _isCliEntry =
463
- process.argv[1] !== undefined &&
464
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
465
- if (_isCliEntry || process.argv[1] === _HERE) {
462
+ function _isCliEntry(): boolean {
463
+ if (process.argv[1] === undefined) {
464
+ return false;
465
+ }
466
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
467
+ if (import.meta.url === argvUrl) {
468
+ return true;
469
+ }
470
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
471
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
472
+ // import.meta.url is the resolved real path while argv[1] keeps the
473
+ // symlink path. Compare realpaths so the entry guard still fires
474
+ // (without this the CLI silently no-ops when run through a symlink).
475
+ try {
476
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
477
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
478
+ return here === argv;
479
+ } catch {
480
+ return false;
481
+ }
482
+ }
483
+
484
+ if (_isCliEntry() || process.argv[1] === _HERE) {
466
485
  process.exitCode = emit();
467
486
  }
468
487
 
@@ -718,7 +718,29 @@ function _checkChoice(v: string, choices: string[], name: string): string {
718
718
  return v;
719
719
  }
720
720
 
721
- const _isMain = import.meta.url === pathToFileURL(path.resolve(process.argv[1] ?? '')).href;
721
+ function _isCliEntry(): boolean {
722
+ if (process.argv[1] === undefined) {
723
+ return false;
724
+ }
725
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
726
+ if (import.meta.url === argvUrl) {
727
+ return true;
728
+ }
729
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
730
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
731
+ // import.meta.url is the resolved real path while argv[1] keeps the
732
+ // symlink path. Compare realpaths so the entry guard still fires
733
+ // (without this the CLI silently no-ops when run through a symlink).
734
+ try {
735
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
736
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
737
+ return here === argv;
738
+ } catch {
739
+ return false;
740
+ }
741
+ }
742
+
743
+ const _isMain = _isCliEntry();
722
744
  if (_isMain) {
723
745
  process.exitCode = main();
724
746
  }
@@ -41,7 +41,7 @@
41
41
  import { createHash } from 'node:crypto';
42
42
  import * as fs from 'node:fs';
43
43
  import * as path from 'node:path';
44
- import { pathToFileURL } from 'node:url';
44
+ import { fileURLToPath, pathToFileURL } from 'node:url';
45
45
 
46
46
  import { load_agent_settings } from './_lib/agent_settings.js';
47
47
 
@@ -2282,9 +2282,30 @@ export function main(argv: string[] = process.argv.slice(2)): number {
2282
2282
  }
2283
2283
  }
2284
2284
 
2285
+ function _isCliEntry(): boolean {
2286
+ if (process.argv[1] === undefined) {
2287
+ return false;
2288
+ }
2289
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
2290
+ if (import.meta.url === argvUrl) {
2291
+ return true;
2292
+ }
2293
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
2294
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
2295
+ // import.meta.url is the resolved real path while argv[1] keeps the
2296
+ // symlink path. Compare realpaths so the entry guard still fires
2297
+ // (without this the CLI silently no-ops when run through a symlink).
2298
+ try {
2299
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
2300
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
2301
+ return here === argv;
2302
+ } catch {
2303
+ return false;
2304
+ }
2305
+ }
2306
+
2285
2307
  const _invokedDirectly =
2286
- process.argv[1] !== undefined &&
2287
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
2308
+ _isCliEntry();
2288
2309
  if (_invokedDirectly) {
2289
2310
  try {
2290
2311
  process.exitCode = main();
@@ -680,9 +680,30 @@ function isDir(p: string): boolean {
680
680
  }
681
681
  }
682
682
 
683
+ function _isCliEntry(): boolean {
684
+ if (process.argv[1] === undefined) {
685
+ return false;
686
+ }
687
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
688
+ if (import.meta.url === argvUrl) {
689
+ return true;
690
+ }
691
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
692
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
693
+ // import.meta.url is the resolved real path while argv[1] keeps the
694
+ // symlink path. Compare realpaths so the entry guard still fires
695
+ // (without this the CLI silently no-ops when run through a symlink).
696
+ try {
697
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
698
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
699
+ return here === argv;
700
+ } catch {
701
+ return false;
702
+ }
703
+ }
704
+
683
705
  const isMain =
684
- process.argv[1] !== undefined &&
685
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
706
+ _isCliEntry();
686
707
 
687
708
  if (isMain) {
688
709
  process.exit(main());
@@ -263,10 +263,29 @@ function main(argv: readonly string[]): number {
263
263
  return 0;
264
264
  }
265
265
 
266
- const _isCliEntry =
267
- process.argv[1] !== undefined &&
268
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
269
- if (_isCliEntry || process.argv[1] === _HERE) {
266
+ function _isCliEntry(): boolean {
267
+ if (process.argv[1] === undefined) {
268
+ return false;
269
+ }
270
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
271
+ if (import.meta.url === argvUrl) {
272
+ return true;
273
+ }
274
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
275
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
276
+ // import.meta.url is the resolved real path while argv[1] keeps the
277
+ // symlink path. Compare realpaths so the entry guard still fires
278
+ // (without this the CLI silently no-ops when run through a symlink).
279
+ try {
280
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
281
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
282
+ return here === argv;
283
+ } catch {
284
+ return false;
285
+ }
286
+ }
287
+
288
+ if (_isCliEntry() || process.argv[1] === _HERE) {
270
289
  process.exit(main(process.argv.slice(2)));
271
290
  }
272
291
 
@@ -123,10 +123,29 @@ export function main(): number {
123
123
  return 0;
124
124
  }
125
125
 
126
- const _isCliEntry =
127
- process.argv[1] !== undefined &&
128
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
129
- if (_isCliEntry || process.argv[1] === _HERE) {
126
+ function _isCliEntry(): boolean {
127
+ if (process.argv[1] === undefined) {
128
+ return false;
129
+ }
130
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
131
+ if (import.meta.url === argvUrl) {
132
+ return true;
133
+ }
134
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
135
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
136
+ // import.meta.url is the resolved real path while argv[1] keeps the
137
+ // symlink path. Compare realpaths so the entry guard still fires
138
+ // (without this the CLI silently no-ops when run through a symlink).
139
+ try {
140
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
141
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
142
+ return here === argv;
143
+ } catch {
144
+ return false;
145
+ }
146
+ }
147
+
148
+ if (_isCliEntry() || process.argv[1] === _HERE) {
130
149
  process.exit(main());
131
150
  }
132
151
 
@@ -98,10 +98,29 @@ function check(): number {
98
98
  return 0;
99
99
  }
100
100
 
101
- const _isCliEntry =
102
- process.argv[1] !== undefined &&
103
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
104
- if (_isCliEntry || process.argv[1] === _HERE) {
101
+ function _isCliEntry(): boolean {
102
+ if (process.argv[1] === undefined) {
103
+ return false;
104
+ }
105
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
106
+ if (import.meta.url === argvUrl) {
107
+ return true;
108
+ }
109
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
110
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
111
+ // import.meta.url is the resolved real path while argv[1] keeps the
112
+ // symlink path. Compare realpaths so the entry guard still fires
113
+ // (without this the CLI silently no-ops when run through a symlink).
114
+ try {
115
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
116
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
117
+ return here === argv;
118
+ } catch {
119
+ return false;
120
+ }
121
+ }
122
+
123
+ if (_isCliEntry() || process.argv[1] === _HERE) {
105
124
  process.exit(check());
106
125
  }
107
126
 
@@ -210,10 +210,29 @@ function main(): number {
210
210
  return violations.some((v) => v.severity === 'error') ? 1 : 0;
211
211
  }
212
212
 
213
- const _isCliEntry =
214
- process.argv[1] !== undefined &&
215
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
216
- if (_isCliEntry || process.argv[1] === _HERE) {
213
+ function _isCliEntry(): boolean {
214
+ if (process.argv[1] === undefined) {
215
+ return false;
216
+ }
217
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
218
+ if (import.meta.url === argvUrl) {
219
+ return true;
220
+ }
221
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
222
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
223
+ // import.meta.url is the resolved real path while argv[1] keeps the
224
+ // symlink path. Compare realpaths so the entry guard still fires
225
+ // (without this the CLI silently no-ops when run through a symlink).
226
+ try {
227
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
228
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
229
+ return here === argv;
230
+ } catch {
231
+ return false;
232
+ }
233
+ }
234
+
235
+ if (_isCliEntry() || process.argv[1] === _HERE) {
217
236
  try {
218
237
  process.exit(main());
219
238
  } catch (exc) {
@@ -275,10 +275,29 @@ function _pyList(items: readonly string[]): string {
275
275
  return '[' + items.map((s) => `'${s}'`).join(', ') + ']';
276
276
  }
277
277
 
278
- const _isCliEntry =
279
- process.argv[1] !== undefined &&
280
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
281
- if (_isCliEntry || process.argv[1] === _HERE) {
278
+ function _isCliEntry(): boolean {
279
+ if (process.argv[1] === undefined) {
280
+ return false;
281
+ }
282
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
283
+ if (import.meta.url === argvUrl) {
284
+ return true;
285
+ }
286
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
287
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
288
+ // import.meta.url is the resolved real path while argv[1] keeps the
289
+ // symlink path. Compare realpaths so the entry guard still fires
290
+ // (without this the CLI silently no-ops when run through a symlink).
291
+ try {
292
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
293
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
294
+ return here === argv;
295
+ } catch {
296
+ return false;
297
+ }
298
+ }
299
+
300
+ if (_isCliEntry() || process.argv[1] === _HERE) {
282
301
  process.exit(main());
283
302
  }
284
303