metaharness 0.4.0 → 0.4.2

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 (346) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +96 -96
  3. package/dist/completions-cmd.js +94 -94
  4. package/dist/index.js +74 -74
  5. package/dist/meta-proxy.d.ts +1 -1
  6. package/dist/meta-proxy.js +1 -1
  7. package/dist/with-wasm.js +43 -43
  8. package/genomes/README.md +23 -23
  9. package/genomes/genome-promoted-cand6-edit-by-midpoint.json +26 -26
  10. package/package.json +126 -126
  11. package/templates/catalog.def.mjs +542 -542
  12. package/templates/catalog.json +1274 -1274
  13. package/templates/minimal/.claude/settings.json.tmpl +18 -18
  14. package/templates/minimal/.claude-plugin/plugin.json.tmpl +13 -13
  15. package/templates/minimal/CLAUDE.md.tmpl +26 -26
  16. package/templates/minimal/README.md.tmpl +20 -20
  17. package/templates/minimal/__tests__/smoke.test.ts.tmpl +37 -37
  18. package/templates/minimal/bin/cli.js.tmpl +100 -100
  19. package/templates/minimal/manifest.json +20 -20
  20. package/templates/minimal/package.json.tmpl +31 -31
  21. package/templates/minimal/src/init.ts.tmpl +21 -21
  22. package/templates/minimal/tsconfig.json.tmpl +19 -19
  23. package/templates/minimal/vitest.config.ts.tmpl +23 -23
  24. package/templates/vertical_advertising/.claude/commands/doctor.md.tmpl +12 -12
  25. package/templates/vertical_advertising/.claude/settings.json.tmpl +33 -33
  26. package/templates/vertical_advertising/.claude/skills/media-plan/SKILL.md.tmpl +13 -13
  27. package/templates/vertical_advertising/.claude-plugin/plugin.json.tmpl +23 -23
  28. package/templates/vertical_advertising/CLAUDE.md.tmpl +30 -30
  29. package/templates/vertical_advertising/README.md.tmpl +29 -29
  30. package/templates/vertical_advertising/__tests__/smoke.test.ts.tmpl +37 -37
  31. package/templates/vertical_advertising/bin/cli.js.tmpl +100 -100
  32. package/templates/vertical_advertising/manifest.json +101 -101
  33. package/templates/vertical_advertising/package.json.tmpl +30 -30
  34. package/templates/vertical_advertising/src/agents/copywriter.ts.tmpl +7 -7
  35. package/templates/vertical_advertising/src/agents/media-planner.ts.tmpl +7 -7
  36. package/templates/vertical_advertising/src/agents/performance-analyst.ts.tmpl +7 -7
  37. package/templates/vertical_advertising/src/init.ts.tmpl +21 -21
  38. package/templates/vertical_advertising/tsconfig.json.tmpl +19 -19
  39. package/templates/vertical_advertising/vitest.config.ts.tmpl +23 -23
  40. package/templates/vertical_agentics/.claude/commands/doctor.md.tmpl +12 -12
  41. package/templates/vertical_agentics/.claude/settings.json.tmpl +33 -33
  42. package/templates/vertical_agentics/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  43. package/templates/vertical_agentics/.claude/skills/run-swarm/SKILL.md.tmpl +14 -14
  44. package/templates/vertical_agentics/.claude-plugin/plugin.json.tmpl +23 -23
  45. package/templates/vertical_agentics/CLAUDE.md.tmpl +32 -32
  46. package/templates/vertical_agentics/README.md.tmpl +30 -30
  47. package/templates/vertical_agentics/__tests__/smoke.test.ts.tmpl +37 -37
  48. package/templates/vertical_agentics/bin/cli.js.tmpl +100 -100
  49. package/templates/vertical_agentics/manifest.json +111 -111
  50. package/templates/vertical_agentics/package.json.tmpl +30 -30
  51. package/templates/vertical_agentics/src/agents/critic.ts.tmpl +7 -7
  52. package/templates/vertical_agentics/src/agents/orchestrator.ts.tmpl +7 -7
  53. package/templates/vertical_agentics/src/agents/planner.ts.tmpl +7 -7
  54. package/templates/vertical_agentics/src/agents/worker.ts.tmpl +7 -7
  55. package/templates/vertical_agentics/src/init.ts.tmpl +21 -21
  56. package/templates/vertical_agentics/tsconfig.json.tmpl +19 -19
  57. package/templates/vertical_agentics/vitest.config.ts.tmpl +23 -23
  58. package/templates/vertical_ai/.claude/commands/doctor.md.tmpl +12 -12
  59. package/templates/vertical_ai/.claude/settings.json.tmpl +35 -35
  60. package/templates/vertical_ai/.claude/skills/eval-report/SKILL.md.tmpl +13 -13
  61. package/templates/vertical_ai/.claude-plugin/plugin.json.tmpl +23 -23
  62. package/templates/vertical_ai/CLAUDE.md.tmpl +31 -31
  63. package/templates/vertical_ai/README.md.tmpl +30 -30
  64. package/templates/vertical_ai/__tests__/smoke.test.ts.tmpl +37 -37
  65. package/templates/vertical_ai/bin/cli.js.tmpl +100 -100
  66. package/templates/vertical_ai/manifest.json +106 -106
  67. package/templates/vertical_ai/package.json.tmpl +30 -30
  68. package/templates/vertical_ai/src/agents/data-curator.ts.tmpl +7 -7
  69. package/templates/vertical_ai/src/agents/deployer.ts.tmpl +7 -7
  70. package/templates/vertical_ai/src/agents/evaluator.ts.tmpl +7 -7
  71. package/templates/vertical_ai/src/agents/trainer.ts.tmpl +7 -7
  72. package/templates/vertical_ai/src/init.ts.tmpl +21 -21
  73. package/templates/vertical_ai/tsconfig.json.tmpl +19 -19
  74. package/templates/vertical_ai/vitest.config.ts.tmpl +23 -23
  75. package/templates/vertical_business/.claude/commands/doctor.md.tmpl +12 -12
  76. package/templates/vertical_business/.claude/settings.json.tmpl +33 -33
  77. package/templates/vertical_business/.claude/skills/quarterly-plan/SKILL.md.tmpl +13 -13
  78. package/templates/vertical_business/.claude-plugin/plugin.json.tmpl +23 -23
  79. package/templates/vertical_business/CLAUDE.md.tmpl +30 -30
  80. package/templates/vertical_business/README.md.tmpl +29 -29
  81. package/templates/vertical_business/__tests__/smoke.test.ts.tmpl +37 -37
  82. package/templates/vertical_business/bin/cli.js.tmpl +100 -100
  83. package/templates/vertical_business/manifest.json +101 -101
  84. package/templates/vertical_business/package.json.tmpl +30 -30
  85. package/templates/vertical_business/src/agents/analyst.ts.tmpl +7 -7
  86. package/templates/vertical_business/src/agents/ops-coordinator.ts.tmpl +7 -7
  87. package/templates/vertical_business/src/agents/strategist.ts.tmpl +7 -7
  88. package/templates/vertical_business/src/init.ts.tmpl +21 -21
  89. package/templates/vertical_business/tsconfig.json.tmpl +19 -19
  90. package/templates/vertical_business/vitest.config.ts.tmpl +23 -23
  91. package/templates/vertical_coding/.claude/commands/doctor.md.tmpl +12 -12
  92. package/templates/vertical_coding/.claude/commands/review-diff.md.tmpl +10 -10
  93. package/templates/vertical_coding/.claude/settings.json.tmpl +40 -40
  94. package/templates/vertical_coding/.claude/skills/plan-change/SKILL.md.tmpl +15 -15
  95. package/templates/vertical_coding/.claude-plugin/plugin.json.tmpl +23 -23
  96. package/templates/vertical_coding/CLAUDE.md.tmpl +32 -32
  97. package/templates/vertical_coding/README.md.tmpl +30 -30
  98. package/templates/vertical_coding/__tests__/smoke.test.ts.tmpl +37 -37
  99. package/templates/vertical_coding/bin/cli.js.tmpl +100 -100
  100. package/templates/vertical_coding/manifest.json +111 -111
  101. package/templates/vertical_coding/package.json.tmpl +30 -30
  102. package/templates/vertical_coding/src/agents/architect.ts.tmpl +7 -7
  103. package/templates/vertical_coding/src/agents/implementer.ts.tmpl +7 -7
  104. package/templates/vertical_coding/src/agents/reviewer.ts.tmpl +7 -7
  105. package/templates/vertical_coding/src/agents/test-writer.ts.tmpl +7 -7
  106. package/templates/vertical_coding/src/init.ts.tmpl +21 -21
  107. package/templates/vertical_coding/tsconfig.json.tmpl +19 -19
  108. package/templates/vertical_coding/vitest.config.ts.tmpl +23 -23
  109. package/templates/vertical_crm/.claude/commands/doctor.md.tmpl +12 -12
  110. package/templates/vertical_crm/.claude/settings.json.tmpl +33 -33
  111. package/templates/vertical_crm/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  112. package/templates/vertical_crm/.claude-plugin/plugin.json.tmpl +23 -23
  113. package/templates/vertical_crm/CLAUDE.md.tmpl +30 -30
  114. package/templates/vertical_crm/README.md.tmpl +29 -29
  115. package/templates/vertical_crm/__tests__/smoke.test.ts.tmpl +37 -37
  116. package/templates/vertical_crm/bin/cli.js.tmpl +100 -100
  117. package/templates/vertical_crm/manifest.json +101 -101
  118. package/templates/vertical_crm/package.json.tmpl +30 -30
  119. package/templates/vertical_crm/src/agents/account-manager.ts.tmpl +7 -7
  120. package/templates/vertical_crm/src/agents/churn-watcher.ts.tmpl +7 -7
  121. package/templates/vertical_crm/src/agents/lead-qualifier.ts.tmpl +7 -7
  122. package/templates/vertical_crm/src/init.ts.tmpl +21 -21
  123. package/templates/vertical_crm/tsconfig.json.tmpl +19 -19
  124. package/templates/vertical_crm/vitest.config.ts.tmpl +23 -23
  125. package/templates/vertical_devops/.claude/settings.json.tmpl +36 -36
  126. package/templates/vertical_devops/.claude-plugin/plugin.json.tmpl +23 -23
  127. package/templates/vertical_devops/CLAUDE.md.tmpl +34 -34
  128. package/templates/vertical_devops/README.md.tmpl +27 -27
  129. package/templates/vertical_devops/__tests__/smoke.test.ts.tmpl +37 -37
  130. package/templates/vertical_devops/bin/cli.js.tmpl +100 -100
  131. package/templates/vertical_devops/manifest.json +100 -100
  132. package/templates/vertical_devops/package.json.tmpl +27 -27
  133. package/templates/vertical_devops/runbooks/README.md.tmpl +32 -32
  134. package/templates/vertical_devops/src/agents/escalator.ts.tmpl +19 -19
  135. package/templates/vertical_devops/src/agents/postmortem.ts.tmpl +23 -23
  136. package/templates/vertical_devops/src/agents/responder.ts.tmpl +14 -14
  137. package/templates/vertical_devops/src/agents/runbook-runner.ts.tmpl +17 -17
  138. package/templates/vertical_devops/src/init.ts.tmpl +23 -23
  139. package/templates/vertical_devops/tsconfig.json.tmpl +19 -19
  140. package/templates/vertical_devops/vitest.config.ts.tmpl +23 -23
  141. package/templates/vertical_education/.claude/commands/doctor.md.tmpl +12 -12
  142. package/templates/vertical_education/.claude/commands/mastery-report.md.tmpl +12 -12
  143. package/templates/vertical_education/.claude/settings.json.tmpl +45 -45
  144. package/templates/vertical_education/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  145. package/templates/vertical_education/.claude/skills/teach-next/SKILL.md.tmpl +16 -16
  146. package/templates/vertical_education/.claude-plugin/plugin.json.tmpl +23 -23
  147. package/templates/vertical_education/CLAUDE.md.tmpl +33 -33
  148. package/templates/vertical_education/README.md.tmpl +30 -30
  149. package/templates/vertical_education/__tests__/smoke.test.ts.tmpl +37 -37
  150. package/templates/vertical_education/bin/cli.js.tmpl +100 -100
  151. package/templates/vertical_education/manifest.json +116 -116
  152. package/templates/vertical_education/package.json.tmpl +30 -30
  153. package/templates/vertical_education/src/agents/explainer.ts.tmpl +7 -7
  154. package/templates/vertical_education/src/agents/grader.ts.tmpl +7 -7
  155. package/templates/vertical_education/src/agents/quiz-master.ts.tmpl +7 -7
  156. package/templates/vertical_education/src/agents/tutor.ts.tmpl +7 -7
  157. package/templates/vertical_education/src/init.ts.tmpl +21 -21
  158. package/templates/vertical_education/tsconfig.json.tmpl +19 -19
  159. package/templates/vertical_education/vitest.config.ts.tmpl +23 -23
  160. package/templates/vertical_exotic/.claude/commands/doctor.md.tmpl +12 -12
  161. package/templates/vertical_exotic/.claude/settings.json.tmpl +44 -44
  162. package/templates/vertical_exotic/.claude/skills/evolve/SKILL.md.tmpl +14 -14
  163. package/templates/vertical_exotic/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  164. package/templates/vertical_exotic/.claude-plugin/plugin.json.tmpl +23 -23
  165. package/templates/vertical_exotic/CLAUDE.md.tmpl +31 -31
  166. package/templates/vertical_exotic/README.md.tmpl +29 -29
  167. package/templates/vertical_exotic/__tests__/smoke.test.ts.tmpl +37 -37
  168. package/templates/vertical_exotic/bin/cli.js.tmpl +100 -100
  169. package/templates/vertical_exotic/manifest.json +106 -106
  170. package/templates/vertical_exotic/package.json.tmpl +30 -30
  171. package/templates/vertical_exotic/src/agents/experimenter.ts.tmpl +7 -7
  172. package/templates/vertical_exotic/src/agents/federator.ts.tmpl +7 -7
  173. package/templates/vertical_exotic/src/agents/hypothesizer.ts.tmpl +7 -7
  174. package/templates/vertical_exotic/src/init.ts.tmpl +21 -21
  175. package/templates/vertical_exotic/tsconfig.json.tmpl +19 -19
  176. package/templates/vertical_exotic/vitest.config.ts.tmpl +23 -23
  177. package/templates/vertical_gaming/.claude/commands/design-doc-diff.md.tmpl +13 -13
  178. package/templates/vertical_gaming/.claude/commands/doctor.md.tmpl +12 -12
  179. package/templates/vertical_gaming/.claude/settings.json.tmpl +45 -45
  180. package/templates/vertical_gaming/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  181. package/templates/vertical_gaming/.claude/skills/playtest-recap/SKILL.md.tmpl +16 -16
  182. package/templates/vertical_gaming/.claude-plugin/plugin.json.tmpl +23 -23
  183. package/templates/vertical_gaming/CLAUDE.md.tmpl +33 -33
  184. package/templates/vertical_gaming/README.md.tmpl +30 -30
  185. package/templates/vertical_gaming/__tests__/smoke.test.ts.tmpl +37 -37
  186. package/templates/vertical_gaming/bin/cli.js.tmpl +100 -100
  187. package/templates/vertical_gaming/manifest.json +116 -116
  188. package/templates/vertical_gaming/package.json.tmpl +30 -30
  189. package/templates/vertical_gaming/src/agents/balance-critic.ts.tmpl +7 -7
  190. package/templates/vertical_gaming/src/agents/economy-modeler.ts.tmpl +7 -7
  191. package/templates/vertical_gaming/src/agents/narrative-keeper.ts.tmpl +7 -7
  192. package/templates/vertical_gaming/src/agents/playtest-reader.ts.tmpl +7 -7
  193. package/templates/vertical_gaming/src/init.ts.tmpl +21 -21
  194. package/templates/vertical_gaming/tsconfig.json.tmpl +19 -19
  195. package/templates/vertical_gaming/vitest.config.ts.tmpl +23 -23
  196. package/templates/vertical_health/.claude/commands/doctor.md.tmpl +12 -12
  197. package/templates/vertical_health/.claude/settings.json.tmpl +33 -33
  198. package/templates/vertical_health/.claude/skills/wellness-intake/SKILL.md.tmpl +15 -15
  199. package/templates/vertical_health/.claude-plugin/plugin.json.tmpl +23 -23
  200. package/templates/vertical_health/CLAUDE.md.tmpl +30 -30
  201. package/templates/vertical_health/README.md.tmpl +29 -29
  202. package/templates/vertical_health/__tests__/smoke.test.ts.tmpl +37 -37
  203. package/templates/vertical_health/bin/cli.js.tmpl +100 -100
  204. package/templates/vertical_health/manifest.json +101 -101
  205. package/templates/vertical_health/package.json.tmpl +30 -30
  206. package/templates/vertical_health/src/agents/care-coordinator.ts.tmpl +7 -7
  207. package/templates/vertical_health/src/agents/intake.ts.tmpl +7 -7
  208. package/templates/vertical_health/src/agents/triage.ts.tmpl +7 -7
  209. package/templates/vertical_health/src/init.ts.tmpl +21 -21
  210. package/templates/vertical_health/tsconfig.json.tmpl +19 -19
  211. package/templates/vertical_health/vitest.config.ts.tmpl +23 -23
  212. package/templates/vertical_legal/.claude/settings.json.tmpl +10 -10
  213. package/templates/vertical_legal/.claude-plugin/plugin.json.tmpl +23 -23
  214. package/templates/vertical_legal/CLAUDE.md.tmpl +24 -24
  215. package/templates/vertical_legal/README.md.tmpl +21 -21
  216. package/templates/vertical_legal/__tests__/smoke.test.ts.tmpl +37 -37
  217. package/templates/vertical_legal/bin/cli.js.tmpl +100 -100
  218. package/templates/vertical_legal/manifest.json +90 -90
  219. package/templates/vertical_legal/package.json.tmpl +14 -14
  220. package/templates/vertical_legal/src/agents/citation-checker.ts.tmpl +7 -7
  221. package/templates/vertical_legal/src/agents/redline.ts.tmpl +7 -7
  222. package/templates/vertical_legal/src/agents/risk-rater.ts.tmpl +8 -8
  223. package/templates/vertical_legal/src/init.ts.tmpl +13 -13
  224. package/templates/vertical_legal/tsconfig.json.tmpl +19 -19
  225. package/templates/vertical_legal/vitest.config.ts.tmpl +23 -23
  226. package/templates/vertical_marketing/.claude/commands/doctor.md.tmpl +12 -12
  227. package/templates/vertical_marketing/.claude/settings.json.tmpl +33 -33
  228. package/templates/vertical_marketing/.claude/skills/campaign-brief/SKILL.md.tmpl +13 -13
  229. package/templates/vertical_marketing/.claude-plugin/plugin.json.tmpl +23 -23
  230. package/templates/vertical_marketing/CLAUDE.md.tmpl +30 -30
  231. package/templates/vertical_marketing/README.md.tmpl +29 -29
  232. package/templates/vertical_marketing/__tests__/smoke.test.ts.tmpl +37 -37
  233. package/templates/vertical_marketing/bin/cli.js.tmpl +100 -100
  234. package/templates/vertical_marketing/manifest.json +101 -101
  235. package/templates/vertical_marketing/package.json.tmpl +30 -30
  236. package/templates/vertical_marketing/src/agents/content-creator.ts.tmpl +7 -7
  237. package/templates/vertical_marketing/src/agents/seo-analyst.ts.tmpl +7 -7
  238. package/templates/vertical_marketing/src/agents/strategist.ts.tmpl +7 -7
  239. package/templates/vertical_marketing/src/init.ts.tmpl +21 -21
  240. package/templates/vertical_marketing/tsconfig.json.tmpl +19 -19
  241. package/templates/vertical_marketing/vitest.config.ts.tmpl +23 -23
  242. package/templates/vertical_repo-maintainer/.claude/commands/doctor.md.tmpl +12 -12
  243. package/templates/vertical_repo-maintainer/.claude/commands/release-check.md.tmpl +13 -13
  244. package/templates/vertical_repo-maintainer/.claude/commands/repo-triage.md.tmpl +16 -16
  245. package/templates/vertical_repo-maintainer/.claude/settings.json.tmpl +44 -44
  246. package/templates/vertical_repo-maintainer/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  247. package/templates/vertical_repo-maintainer/.claude/skills/plan-change/SKILL.md.tmpl +15 -15
  248. package/templates/vertical_repo-maintainer/.claude-plugin/plugin.json.tmpl +23 -23
  249. package/templates/vertical_repo-maintainer/CLAUDE.md.tmpl +34 -34
  250. package/templates/vertical_repo-maintainer/README.md.tmpl +30 -30
  251. package/templates/vertical_repo-maintainer/__tests__/smoke.test.ts.tmpl +37 -37
  252. package/templates/vertical_repo-maintainer/bin/cli.js.tmpl +100 -100
  253. package/templates/vertical_repo-maintainer/manifest.json +121 -121
  254. package/templates/vertical_repo-maintainer/package.json.tmpl +30 -30
  255. package/templates/vertical_repo-maintainer/src/agents/benchmarker.ts.tmpl +7 -7
  256. package/templates/vertical_repo-maintainer/src/agents/maintainer.ts.tmpl +7 -7
  257. package/templates/vertical_repo-maintainer/src/agents/release.ts.tmpl +7 -7
  258. package/templates/vertical_repo-maintainer/src/agents/security.ts.tmpl +7 -7
  259. package/templates/vertical_repo-maintainer/src/init.ts.tmpl +21 -21
  260. package/templates/vertical_repo-maintainer/tsconfig.json.tmpl +19 -19
  261. package/templates/vertical_repo-maintainer/vitest.config.ts.tmpl +23 -23
  262. package/templates/vertical_research/.claude/settings.json.tmpl +9 -9
  263. package/templates/vertical_research/.claude-plugin/plugin.json.tmpl +23 -23
  264. package/templates/vertical_research/CLAUDE.md.tmpl +33 -33
  265. package/templates/vertical_research/README.md.tmpl +17 -17
  266. package/templates/vertical_research/__tests__/smoke.test.ts.tmpl +37 -37
  267. package/templates/vertical_research/bin/cli.js.tmpl +100 -100
  268. package/templates/vertical_research/manifest.json +105 -105
  269. package/templates/vertical_research/package.json.tmpl +14 -14
  270. package/templates/vertical_research/src/agents/citer.ts.tmpl +8 -8
  271. package/templates/vertical_research/src/agents/fact-checker.ts.tmpl +8 -8
  272. package/templates/vertical_research/src/agents/scout.ts.tmpl +7 -7
  273. package/templates/vertical_research/src/agents/source-grader.ts.tmpl +10 -10
  274. package/templates/vertical_research/src/agents/synthesizer.ts.tmpl +8 -8
  275. package/templates/vertical_research/src/agents/web-searcher.ts.tmpl +6 -6
  276. package/templates/vertical_research/src/init.ts.tmpl +13 -13
  277. package/templates/vertical_research/tsconfig.json.tmpl +19 -19
  278. package/templates/vertical_research/vitest.config.ts.tmpl +23 -23
  279. package/templates/vertical_ruview/.claude/commands/doctor.md.tmpl +12 -12
  280. package/templates/vertical_ruview/.claude/settings.json.tmpl +33 -33
  281. package/templates/vertical_ruview/.claude/skills/index-and-ask/SKILL.md.tmpl +15 -15
  282. package/templates/vertical_ruview/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  283. package/templates/vertical_ruview/.claude-plugin/plugin.json.tmpl +23 -23
  284. package/templates/vertical_ruview/CLAUDE.md.tmpl +31 -31
  285. package/templates/vertical_ruview/README.md.tmpl +29 -29
  286. package/templates/vertical_ruview/__tests__/smoke.test.ts.tmpl +37 -37
  287. package/templates/vertical_ruview/bin/cli.js.tmpl +100 -100
  288. package/templates/vertical_ruview/manifest.json +106 -106
  289. package/templates/vertical_ruview/package.json.tmpl +30 -30
  290. package/templates/vertical_ruview/src/agents/indexer.ts.tmpl +7 -7
  291. package/templates/vertical_ruview/src/agents/retriever.ts.tmpl +7 -7
  292. package/templates/vertical_ruview/src/agents/reviewer.ts.tmpl +7 -7
  293. package/templates/vertical_ruview/src/init.ts.tmpl +21 -21
  294. package/templates/vertical_ruview/tsconfig.json.tmpl +19 -19
  295. package/templates/vertical_ruview/vitest.config.ts.tmpl +23 -23
  296. package/templates/vertical_sales/.claude/commands/doctor.md.tmpl +12 -12
  297. package/templates/vertical_sales/.claude/commands/pipeline-report.md.tmpl +13 -13
  298. package/templates/vertical_sales/.claude/settings.json.tmpl +45 -45
  299. package/templates/vertical_sales/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  300. package/templates/vertical_sales/.claude/skills/qualify-lead/SKILL.md.tmpl +15 -15
  301. package/templates/vertical_sales/.claude-plugin/plugin.json.tmpl +23 -23
  302. package/templates/vertical_sales/CLAUDE.md.tmpl +33 -33
  303. package/templates/vertical_sales/README.md.tmpl +30 -30
  304. package/templates/vertical_sales/__tests__/smoke.test.ts.tmpl +37 -37
  305. package/templates/vertical_sales/bin/cli.js.tmpl +100 -100
  306. package/templates/vertical_sales/manifest.json +116 -116
  307. package/templates/vertical_sales/package.json.tmpl +30 -30
  308. package/templates/vertical_sales/src/agents/closer.ts.tmpl +7 -7
  309. package/templates/vertical_sales/src/agents/demo-coach.ts.tmpl +7 -7
  310. package/templates/vertical_sales/src/agents/prospector.ts.tmpl +7 -7
  311. package/templates/vertical_sales/src/agents/qualifier.ts.tmpl +7 -7
  312. package/templates/vertical_sales/src/init.ts.tmpl +21 -21
  313. package/templates/vertical_sales/tsconfig.json.tmpl +19 -19
  314. package/templates/vertical_sales/vitest.config.ts.tmpl +23 -23
  315. package/templates/vertical_support/.claude/settings.json.tmpl +25 -25
  316. package/templates/vertical_support/.claude-plugin/plugin.json.tmpl +23 -23
  317. package/templates/vertical_support/CLAUDE.md.tmpl +34 -34
  318. package/templates/vertical_support/README.md.tmpl +16 -16
  319. package/templates/vertical_support/__tests__/smoke.test.ts.tmpl +37 -37
  320. package/templates/vertical_support/bin/cli.js.tmpl +100 -100
  321. package/templates/vertical_support/kb/README.md.tmpl +23 -23
  322. package/templates/vertical_support/manifest.json +100 -100
  323. package/templates/vertical_support/package.json.tmpl +25 -25
  324. package/templates/vertical_support/src/agents/escalator.ts.tmpl +6 -6
  325. package/templates/vertical_support/src/agents/kb-searcher.ts.tmpl +6 -6
  326. package/templates/vertical_support/src/agents/responder.ts.tmpl +7 -7
  327. package/templates/vertical_support/src/agents/triager.ts.tmpl +6 -6
  328. package/templates/vertical_support/src/init.ts.tmpl +16 -16
  329. package/templates/vertical_support/tsconfig.json.tmpl +19 -19
  330. package/templates/vertical_support/vitest.config.ts.tmpl +23 -23
  331. package/templates/vertical_trading/.claude/settings.json.tmpl +20 -20
  332. package/templates/vertical_trading/.claude-plugin/plugin.json.tmpl +23 -23
  333. package/templates/vertical_trading/CLAUDE.md.tmpl +24 -24
  334. package/templates/vertical_trading/README.md.tmpl +17 -17
  335. package/templates/vertical_trading/__tests__/smoke.test.ts.tmpl +37 -37
  336. package/templates/vertical_trading/bin/cli.js.tmpl +100 -100
  337. package/templates/vertical_trading/manifest.json +100 -100
  338. package/templates/vertical_trading/package.json.tmpl +14 -14
  339. package/templates/vertical_trading/src/agents/executor.ts.tmpl +8 -8
  340. package/templates/vertical_trading/src/agents/market-watcher.ts.tmpl +7 -7
  341. package/templates/vertical_trading/src/agents/postmortem.ts.tmpl +8 -8
  342. package/templates/vertical_trading/src/agents/risk-checker.ts.tmpl +11 -11
  343. package/templates/vertical_trading/src/agents/signal-gen.ts.tmpl +8 -8
  344. package/templates/vertical_trading/src/init.ts.tmpl +20 -20
  345. package/templates/vertical_trading/tsconfig.json.tmpl +19 -19
  346. package/templates/vertical_trading/vitest.config.ts.tmpl +23 -23
@@ -1,16 +1,16 @@
1
- ---
2
- name: playtest-recap
3
- description: "Run one full playtest analysis cycle: read → critique balance → model economy → check narrative."
4
- ---
5
-
6
- # playtest-recap
7
-
8
- Run one playtest recap cycle.
9
-
10
- 1. Playtest reader pulls the latest session telemetry/transcripts from memory and surfaces 5-10 raw observations.
11
- 2. Balance critic reads observations + numeric design doc; flags 0-3 mechanic imbalances with specific proposals + second-order predictions.
12
- 3. Economy modeler simulates the proposals against the economy spreadsheet in memory; reports projected source/sink changes.
13
- 4. Narrative keeper diffs the new build's dialog against the lore memory; flags contradictions or dropped threads.
14
- 5. Output: ONE design doc patch the designer can review in <10 minutes.
15
-
16
- Avoid the highlight-reel trap — report the boring middle where bugs live.
1
+ ---
2
+ name: playtest-recap
3
+ description: "Run one full playtest analysis cycle: read → critique balance → model economy → check narrative."
4
+ ---
5
+
6
+ # playtest-recap
7
+
8
+ Run one playtest recap cycle.
9
+
10
+ 1. Playtest reader pulls the latest session telemetry/transcripts from memory and surfaces 5-10 raw observations.
11
+ 2. Balance critic reads observations + numeric design doc; flags 0-3 mechanic imbalances with specific proposals + second-order predictions.
12
+ 3. Economy modeler simulates the proposals against the economy spreadsheet in memory; reports projected source/sink changes.
13
+ 4. Narrative keeper diffs the new build's dialog against the lore memory; flags contradictions or dropped threads.
14
+ 5. Output: ONE design doc patch the designer can review in <10 minutes.
15
+
16
+ Avoid the highlight-reel trap — report the boring middle where bugs live.
@@ -1,23 +1,23 @@
1
- {
2
- "name": "{{name}}",
3
- "version": "0.1.0",
4
- "description": "{{description}}",
5
- "author": {
6
- "displayName": "Generated by metaharness",
7
- "url": "https://www.npmjs.com/package/metaharness"
8
- },
9
- "license": "MIT",
10
- "categories": [
11
- "agent-harness",
12
- "metaharness-scaffold",
13
- "Frontier",
14
- "gaming"
15
- ],
16
- "tags": [
17
- "metaharness",
18
- "agent-harness",
19
- "vertical:gaming",
20
- "gaming"
21
- ],
22
- "homepage": "https://github.com/ruvnet/agent-harness-generator"
23
- }
1
+ {
2
+ "name": "{{name}}",
3
+ "version": "0.1.0",
4
+ "description": "{{description}}",
5
+ "author": {
6
+ "displayName": "Generated by metaharness",
7
+ "url": "https://www.npmjs.com/package/metaharness"
8
+ },
9
+ "license": "MIT",
10
+ "categories": [
11
+ "agent-harness",
12
+ "metaharness-scaffold",
13
+ "Frontier",
14
+ "gaming"
15
+ ],
16
+ "tags": [
17
+ "metaharness",
18
+ "agent-harness",
19
+ "vertical:gaming",
20
+ "gaming"
21
+ ],
22
+ "homepage": "https://github.com/ruvnet/agent-harness-generator"
23
+ }
@@ -1,33 +1,33 @@
1
- # {{name}}
2
-
3
- {{description}}
4
-
5
- > Game Design / Playtest harness · domain: `gaming`. Generated with [create-agent-harness](https://github.com/ruvnet/agent-harness-generator).
6
-
7
- ## Behavioral rules
8
-
9
- - Use the harness's MCP tools (`mcp__{{name}}__*`) for orchestration
10
- - Memory and routing are handled by the kernel — you don't need to learn them
11
- - Defer destructive operations to the user
12
-
13
- ## Agents
14
-
15
- | Agent | Tier | Role |
16
- |---|---|---|
17
- | `playtest-reader` | sonnet | Reads playtest sessions and surfaces the signal. |
18
- | `balance-critic` | opus | Critiques mechanic balance with concrete proposals. |
19
- | `economy-modeler` | opus | Models in-game economy flows. |
20
- | `narrative-keeper` | sonnet | Maintains narrative + lore consistency across builds. |
21
- ## Skills
22
-
23
- - `/memory-inspect` — Search and inspect the harness memory namespace (HNSW + emergent-time decay).
24
- - `/playtest-recap` — Run one full playtest analysis cycle: read → critique balance → model economy → check narrative.
25
-
26
- ## Commands
27
-
28
- - `doctor` — Health-check the harness: kernel load, MCP wiring, memory backend, host adapter.
29
- - `design-doc-diff` — Diff the current design doc against the previous build and surface unresolved tensions.
30
-
31
- ## Architecture
32
-
33
- This harness uses [@metaharness/kernel](https://www.npmjs.com/package/@metaharness/kernel) — a Rust-compiled WASM module with a NAPI-RS native fallback — so the same code runs identically on every platform.
1
+ # {{name}}
2
+
3
+ {{description}}
4
+
5
+ > Game Design / Playtest harness · domain: `gaming`. Generated with [create-agent-harness](https://github.com/ruvnet/agent-harness-generator).
6
+
7
+ ## Behavioral rules
8
+
9
+ - Use the harness's MCP tools (`mcp__{{name}}__*`) for orchestration
10
+ - Memory and routing are handled by the kernel — you don't need to learn them
11
+ - Defer destructive operations to the user
12
+
13
+ ## Agents
14
+
15
+ | Agent | Tier | Role |
16
+ |---|---|---|
17
+ | `playtest-reader` | sonnet | Reads playtest sessions and surfaces the signal. |
18
+ | `balance-critic` | opus | Critiques mechanic balance with concrete proposals. |
19
+ | `economy-modeler` | opus | Models in-game economy flows. |
20
+ | `narrative-keeper` | sonnet | Maintains narrative + lore consistency across builds. |
21
+ ## Skills
22
+
23
+ - `/memory-inspect` — Search and inspect the harness memory namespace (HNSW + emergent-time decay).
24
+ - `/playtest-recap` — Run one full playtest analysis cycle: read → critique balance → model economy → check narrative.
25
+
26
+ ## Commands
27
+
28
+ - `doctor` — Health-check the harness: kernel load, MCP wiring, memory backend, host adapter.
29
+ - `design-doc-diff` — Diff the current design doc against the previous build and surface unresolved tensions.
30
+
31
+ ## Architecture
32
+
33
+ This harness uses [@metaharness/kernel](https://www.npmjs.com/package/@metaharness/kernel) — a Rust-compiled WASM module with a NAPI-RS native fallback — so the same code runs identically on every platform.
@@ -1,30 +1,30 @@
1
- # {{name}}
2
-
3
- {{description}}
4
-
5
- > **Game Design / Playtest** — Playtest reader → balance critic → economy modeler → narrative keeper over per-build telemetry memory.
6
- >
7
- > Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator). Multi-host scaffolding with a kernel that resolves native → wasm → js (js backend in the published beta; see `harness doctor`).
8
-
9
- ## Install
10
-
11
- ```bash
12
- npm install -g {{name}}
13
- {{name}} init
14
- {{name}} doctor
15
- ```
16
-
17
- ## Agents
18
-
19
- | Agent | Role |
20
- |---|---|
21
- | `playtest-reader` | Reads playtest sessions and surfaces the signal. |
22
- | `balance-critic` | Critiques mechanic balance with concrete proposals. |
23
- | `economy-modeler` | Models in-game economy flows. |
24
- | `narrative-keeper` | Maintains narrative + lore consistency across builds. |
25
-
26
- This harness ships with the **{{host}}** adapter.
27
-
28
- ## License
29
-
30
- MIT
1
+ # {{name}}
2
+
3
+ {{description}}
4
+
5
+ > **Game Design / Playtest** — Playtest reader → balance critic → economy modeler → narrative keeper over per-build telemetry memory.
6
+ >
7
+ > Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator). Multi-host scaffolding with a kernel that resolves native → wasm → js (js backend in the published beta; see `harness doctor`).
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install -g {{name}}
13
+ {{name}} init
14
+ {{name}} doctor
15
+ ```
16
+
17
+ ## Agents
18
+
19
+ | Agent | Role |
20
+ |---|---|
21
+ | `playtest-reader` | Reads playtest sessions and surfaces the signal. |
22
+ | `balance-critic` | Critiques mechanic balance with concrete proposals. |
23
+ | `economy-modeler` | Models in-game economy flows. |
24
+ | `narrative-keeper` | Maintains narrative + lore consistency across builds. |
25
+
26
+ This harness ships with the **{{host}}** adapter.
27
+
28
+ ## License
29
+
30
+ MIT
@@ -1,37 +1,37 @@
1
- // SPDX-License-Identifier: MIT
2
- // Generated by metaharness — a real smoke test for {{name}}.
3
- //
4
- // This is NOT a placeholder: it boots the actual kernel + host adapter the
5
- // harness depends on, so `npm test` fails loudly if @metaharness/kernel or
6
- // @metaharness/host-{{host}} is missing, broken, or version-skewed. It is the
7
- // fastest signal that `npm install` produced a runnable harness.
8
-
9
- import { describe, it, expect } from 'vitest';
10
- import { loadKernel } from '@metaharness/kernel';
11
- import adapter from '@metaharness/host-{{host}}';
12
- import { run } from '../bin/cli.js';
13
-
14
- describe('{{name}} — install smoke test', () => {
15
- it('loads the kernel and reports a version + a known backend', async () => {
16
- const kernel = await loadKernel();
17
- const info = kernel.kernelInfo();
18
- expect(typeof info.version).toBe('string');
19
- expect(info.version.length).toBeGreaterThan(0);
20
- expect(['native', 'wasm', 'js']).toContain(kernel.backend);
21
- });
22
-
23
- it('resolves the host adapter with a name', () => {
24
- expect(typeof adapter.name).toBe('string');
25
- expect(adapter.name.length).toBeGreaterThan(0);
26
- });
27
-
28
- it('the CLI doctor command succeeds (exit 0)', async () => {
29
- const code = await run(['doctor']);
30
- expect(code).toBe(0);
31
- });
32
-
33
- it('an unknown CLI command exits non-zero', async () => {
34
- const code = await run(['definitely-not-a-command']);
35
- expect(code).not.toBe(0);
36
- });
37
- });
1
+ // SPDX-License-Identifier: MIT
2
+ // Generated by metaharness — a real smoke test for {{name}}.
3
+ //
4
+ // This is NOT a placeholder: it boots the actual kernel + host adapter the
5
+ // harness depends on, so `npm test` fails loudly if @metaharness/kernel or
6
+ // @metaharness/host-{{host}} is missing, broken, or version-skewed. It is the
7
+ // fastest signal that `npm install` produced a runnable harness.
8
+
9
+ import { describe, it, expect } from 'vitest';
10
+ import { loadKernel } from '@metaharness/kernel';
11
+ import adapter from '@metaharness/host-{{host}}';
12
+ import { run } from '../bin/cli.js';
13
+
14
+ describe('{{name}} — install smoke test', () => {
15
+ it('loads the kernel and reports a version + a known backend', async () => {
16
+ const kernel = await loadKernel();
17
+ const info = kernel.kernelInfo();
18
+ expect(typeof info.version).toBe('string');
19
+ expect(info.version.length).toBeGreaterThan(0);
20
+ expect(['native', 'wasm', 'js']).toContain(kernel.backend);
21
+ });
22
+
23
+ it('resolves the host adapter with a name', () => {
24
+ expect(typeof adapter.name).toBe('string');
25
+ expect(adapter.name.length).toBeGreaterThan(0);
26
+ });
27
+
28
+ it('the CLI doctor command succeeds (exit 0)', async () => {
29
+ const code = await run(['doctor']);
30
+ expect(code).toBe(0);
31
+ });
32
+
33
+ it('an unknown CLI command exits non-zero', async () => {
34
+ const code = await run(['definitely-not-a-command']);
35
+ expect(code).not.toBe(0);
36
+ });
37
+ });
@@ -1,100 +1,100 @@
1
- #!/usr/bin/env node
2
- // SPDX-License-Identifier: MIT
3
- // Generated by metaharness — the `{{name}}` CLI entry point.
4
- //
5
- // This is plain ESM JavaScript on purpose: it runs as-is via `npx {{name}}`
6
- // with NO build step. `npm run build` (tsc) is only needed if you extend the
7
- // TypeScript in src/. The published package ships this file directly (see the
8
- // "bin" + "files" fields in package.json), so `npx {{name}}` works the moment
9
- // `npm install` has resolved @metaharness/kernel + @metaharness/host-{{host}}.
10
-
11
- import { loadKernel } from '@metaharness/kernel';
12
- import adapter from '@metaharness/host-{{host}}';
13
-
14
- const HARNESS_NAME = '{{name}}';
15
-
16
- /** `{{name}} init` — boot the kernel + host adapter and report status. */
17
- async function init() {
18
- const kernel = await loadKernel();
19
- const info = kernel.kernelInfo();
20
- console.log(`${HARNESS_NAME} — kernel ${info.version} (${kernel.backend})`);
21
- console.log(`Host adapter: ${adapter.name}`);
22
- console.log(`Run \`${HARNESS_NAME} doctor\` to verify the install.`);
23
- return 0;
24
- }
25
-
26
- /** `{{name}} doctor` — verify the install end-to-end (kernel + host resolve). */
27
- async function doctor() {
28
- const kernel = await loadKernel();
29
- const info = kernel.kernelInfo();
30
- const checks = [
31
- ['kernel loads', !!kernel],
32
- ['kernel reports a version', typeof info.version === 'string' && info.version.length > 0],
33
- ['kernel backend is native|wasm|js', ['native', 'wasm', 'js'].includes(kernel.backend)],
34
- ['host adapter has a name', typeof adapter?.name === 'string' && adapter.name.length > 0],
35
- ];
36
- let ok = true;
37
- for (const [label, pass] of checks) {
38
- console.log(`${pass ? 'PASS' : 'FAIL'} ${label}`);
39
- if (!pass) ok = false;
40
- }
41
- console.log(
42
- ok
43
- ? `\n${HARNESS_NAME}: all checks passed (kernel ${info.version}, ${kernel.backend} backend, host ${adapter.name})`
44
- : `\n${HARNESS_NAME}: doctor found problems`,
45
- );
46
- return ok ? 0 : 1;
47
- }
48
-
49
- /**
50
- * Dispatch one CLI invocation. Exported (not just run on import) so a test can
51
- * drive it without spawning a subprocess. Returns the intended exit code.
52
- */
53
- export async function run(argv) {
54
- const cmd = argv[0] ?? 'init';
55
- switch (cmd) {
56
- case 'init':
57
- return init();
58
- case 'doctor':
59
- return doctor();
60
- case '--version':
61
- case '-v': {
62
- const kernel = await loadKernel();
63
- console.log(kernel.version());
64
- return 0;
65
- }
66
- case '--help':
67
- case '-h':
68
- console.log(`Usage: ${HARNESS_NAME} <command>\n\n init boot the kernel + host adapter (default)\n doctor verify the install end-to-end\n --version print the kernel version`);
69
- return 0;
70
- default:
71
- console.error(`Unknown command: ${cmd}. Try \`${HARNESS_NAME} --help\`.`);
72
- return 2;
73
- }
74
- }
75
-
76
- // CLI guard: execute only when invoked directly (not when imported by a test).
77
- // npm's bin shims pass a NON-normalized argv[1] (e.g. ".../.bin/../<pkg>/bin/cli.js"
78
- // on Windows) and may differ in case, so realpath BOTH sides before comparing —
79
- // a naive string === misses the npx/shim path and the CLI silently no-ops.
80
- import { fileURLToPath } from 'node:url';
81
- import { realpathSync } from 'node:fs';
82
- import { argv } from 'node:process';
83
- const invokedDirectly = (() => {
84
- if (!argv[1]) return false;
85
- try {
86
- const a = realpathSync(argv[1]);
87
- const b = realpathSync(fileURLToPath(import.meta.url));
88
- return process.platform === 'win32' ? a.toLowerCase() === b.toLowerCase() : a === b;
89
- } catch {
90
- return false;
91
- }
92
- })();
93
- if (invokedDirectly) {
94
- run(argv.slice(2))
95
- .then((code) => process.exit(code))
96
- .catch((err) => {
97
- console.error(err);
98
- process.exit(1);
99
- });
100
- }
1
+ #!/usr/bin/env node
2
+ // SPDX-License-Identifier: MIT
3
+ // Generated by metaharness — the `{{name}}` CLI entry point.
4
+ //
5
+ // This is plain ESM JavaScript on purpose: it runs as-is via `npx {{name}}`
6
+ // with NO build step. `npm run build` (tsc) is only needed if you extend the
7
+ // TypeScript in src/. The published package ships this file directly (see the
8
+ // "bin" + "files" fields in package.json), so `npx {{name}}` works the moment
9
+ // `npm install` has resolved @metaharness/kernel + @metaharness/host-{{host}}.
10
+
11
+ import { loadKernel } from '@metaharness/kernel';
12
+ import adapter from '@metaharness/host-{{host}}';
13
+
14
+ const HARNESS_NAME = '{{name}}';
15
+
16
+ /** `{{name}} init` — boot the kernel + host adapter and report status. */
17
+ async function init() {
18
+ const kernel = await loadKernel();
19
+ const info = kernel.kernelInfo();
20
+ console.log(`${HARNESS_NAME} — kernel ${info.version} (${kernel.backend})`);
21
+ console.log(`Host adapter: ${adapter.name}`);
22
+ console.log(`Run \`${HARNESS_NAME} doctor\` to verify the install.`);
23
+ return 0;
24
+ }
25
+
26
+ /** `{{name}} doctor` — verify the install end-to-end (kernel + host resolve). */
27
+ async function doctor() {
28
+ const kernel = await loadKernel();
29
+ const info = kernel.kernelInfo();
30
+ const checks = [
31
+ ['kernel loads', !!kernel],
32
+ ['kernel reports a version', typeof info.version === 'string' && info.version.length > 0],
33
+ ['kernel backend is native|wasm|js', ['native', 'wasm', 'js'].includes(kernel.backend)],
34
+ ['host adapter has a name', typeof adapter?.name === 'string' && adapter.name.length > 0],
35
+ ];
36
+ let ok = true;
37
+ for (const [label, pass] of checks) {
38
+ console.log(`${pass ? 'PASS' : 'FAIL'} ${label}`);
39
+ if (!pass) ok = false;
40
+ }
41
+ console.log(
42
+ ok
43
+ ? `\n${HARNESS_NAME}: all checks passed (kernel ${info.version}, ${kernel.backend} backend, host ${adapter.name})`
44
+ : `\n${HARNESS_NAME}: doctor found problems`,
45
+ );
46
+ return ok ? 0 : 1;
47
+ }
48
+
49
+ /**
50
+ * Dispatch one CLI invocation. Exported (not just run on import) so a test can
51
+ * drive it without spawning a subprocess. Returns the intended exit code.
52
+ */
53
+ export async function run(argv) {
54
+ const cmd = argv[0] ?? 'init';
55
+ switch (cmd) {
56
+ case 'init':
57
+ return init();
58
+ case 'doctor':
59
+ return doctor();
60
+ case '--version':
61
+ case '-v': {
62
+ const kernel = await loadKernel();
63
+ console.log(kernel.version());
64
+ return 0;
65
+ }
66
+ case '--help':
67
+ case '-h':
68
+ console.log(`Usage: ${HARNESS_NAME} <command>\n\n init boot the kernel + host adapter (default)\n doctor verify the install end-to-end\n --version print the kernel version`);
69
+ return 0;
70
+ default:
71
+ console.error(`Unknown command: ${cmd}. Try \`${HARNESS_NAME} --help\`.`);
72
+ return 2;
73
+ }
74
+ }
75
+
76
+ // CLI guard: execute only when invoked directly (not when imported by a test).
77
+ // npm's bin shims pass a NON-normalized argv[1] (e.g. ".../.bin/../<pkg>/bin/cli.js"
78
+ // on Windows) and may differ in case, so realpath BOTH sides before comparing —
79
+ // a naive string === misses the npx/shim path and the CLI silently no-ops.
80
+ import { fileURLToPath } from 'node:url';
81
+ import { realpathSync } from 'node:fs';
82
+ import { argv } from 'node:process';
83
+ const invokedDirectly = (() => {
84
+ if (!argv[1]) return false;
85
+ try {
86
+ const a = realpathSync(argv[1]);
87
+ const b = realpathSync(fileURLToPath(import.meta.url));
88
+ return process.platform === 'win32' ? a.toLowerCase() === b.toLowerCase() : a === b;
89
+ } catch {
90
+ return false;
91
+ }
92
+ })();
93
+ if (invokedDirectly) {
94
+ run(argv.slice(2))
95
+ .then((code) => process.exit(code))
96
+ .catch((err) => {
97
+ console.error(err);
98
+ process.exit(1);
99
+ });
100
+ }