@moreih29/nexus-core 0.17.0 → 0.18.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 (415) hide show
  1. package/README.md +101 -67
  2. package/dist/cli/sync.d.ts +3 -0
  3. package/dist/cli/sync.d.ts.map +1 -0
  4. package/dist/cli/sync.js +59 -0
  5. package/dist/cli/sync.js.map +1 -0
  6. package/dist/generate/index.d.ts +3 -0
  7. package/dist/generate/index.d.ts.map +1 -0
  8. package/dist/generate/index.js +2 -0
  9. package/dist/generate/index.js.map +1 -0
  10. package/dist/generate/load-data.d.ts +8 -0
  11. package/dist/generate/load-data.d.ts.map +1 -0
  12. package/dist/generate/load-data.js +45 -0
  13. package/dist/generate/load-data.js.map +1 -0
  14. package/dist/generate/load-spec.d.ts +3 -0
  15. package/dist/generate/load-spec.d.ts.map +1 -0
  16. package/dist/generate/load-spec.js +48 -0
  17. package/dist/generate/load-spec.js.map +1 -0
  18. package/dist/generate/macros/expand.d.ts +3 -0
  19. package/dist/generate/macros/expand.d.ts.map +1 -0
  20. package/dist/generate/macros/expand.js +48 -0
  21. package/dist/generate/macros/expand.js.map +1 -0
  22. package/dist/generate/macros/parse.d.ts +4 -0
  23. package/dist/generate/macros/parse.d.ts.map +1 -0
  24. package/dist/generate/macros/parse.js +142 -0
  25. package/dist/generate/macros/parse.js.map +1 -0
  26. package/dist/generate/macros/validate.d.ts +3 -0
  27. package/dist/generate/macros/validate.d.ts.map +1 -0
  28. package/dist/generate/macros/validate.js +23 -0
  29. package/dist/generate/macros/validate.js.map +1 -0
  30. package/dist/generate/renderers/claude.d.ts +3 -0
  31. package/dist/generate/renderers/claude.d.ts.map +1 -0
  32. package/dist/generate/renderers/claude.js +48 -0
  33. package/dist/generate/renderers/claude.js.map +1 -0
  34. package/dist/generate/renderers/codex.d.ts +3 -0
  35. package/dist/generate/renderers/codex.d.ts.map +1 -0
  36. package/dist/generate/renderers/codex.js +79 -0
  37. package/dist/generate/renderers/codex.js.map +1 -0
  38. package/dist/generate/renderers/markdown.d.ts +2 -0
  39. package/dist/generate/renderers/markdown.d.ts.map +1 -0
  40. package/dist/generate/renderers/markdown.js +6 -0
  41. package/dist/generate/renderers/markdown.js.map +1 -0
  42. package/dist/generate/renderers/opencode.d.ts +3 -0
  43. package/dist/generate/renderers/opencode.d.ts.map +1 -0
  44. package/dist/generate/renderers/opencode.js +69 -0
  45. package/dist/generate/renderers/opencode.js.map +1 -0
  46. package/dist/generate/sync.d.ts +4 -0
  47. package/dist/generate/sync.d.ts.map +1 -0
  48. package/dist/generate/sync.js +60 -0
  49. package/dist/generate/sync.js.map +1 -0
  50. package/dist/generate/types.d.ts +74 -0
  51. package/dist/generate/types.d.ts.map +1 -0
  52. package/dist/generate/types.js +2 -0
  53. package/dist/generate/types.js.map +1 -0
  54. package/dist/index.d.ts +4 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +2 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/mcp/definitions/artifact.d.ts +20 -0
  59. package/dist/mcp/definitions/artifact.d.ts.map +1 -0
  60. package/dist/mcp/definitions/artifact.js +14 -0
  61. package/dist/mcp/definitions/artifact.js.map +1 -0
  62. package/dist/mcp/definitions/history.d.ts +20 -0
  63. package/dist/mcp/definitions/history.d.ts.map +1 -0
  64. package/dist/mcp/definitions/history.js +18 -0
  65. package/dist/mcp/definitions/history.js.map +1 -0
  66. package/dist/mcp/definitions/index.d.ts +276 -0
  67. package/dist/mcp/definitions/index.d.ts.map +1 -0
  68. package/dist/mcp/definitions/index.js +16 -0
  69. package/dist/mcp/definitions/index.js.map +1 -0
  70. package/dist/mcp/definitions/plan.d.ts +111 -0
  71. package/dist/mcp/definitions/plan.d.ts.map +1 -0
  72. package/dist/mcp/definitions/plan.js +89 -0
  73. package/dist/mcp/definitions/plan.js.map +1 -0
  74. package/dist/mcp/definitions/task.d.ts +138 -0
  75. package/dist/mcp/definitions/task.d.ts.map +1 -0
  76. package/dist/mcp/definitions/task.js +78 -0
  77. package/dist/mcp/definitions/task.js.map +1 -0
  78. package/dist/mcp/handlers/artifact.d.ts.map +1 -0
  79. package/dist/mcp/handlers/artifact.js +42 -0
  80. package/dist/mcp/handlers/artifact.js.map +1 -0
  81. package/dist/mcp/handlers/history.d.ts.map +1 -0
  82. package/dist/mcp/handlers/history.js +35 -0
  83. package/dist/mcp/handlers/history.js.map +1 -0
  84. package/dist/mcp/handlers/plan.d.ts.map +1 -0
  85. package/dist/mcp/handlers/plan.js +324 -0
  86. package/dist/mcp/handlers/plan.js.map +1 -0
  87. package/dist/mcp/handlers/task.d.ts.map +1 -0
  88. package/dist/mcp/handlers/task.js +216 -0
  89. package/dist/mcp/handlers/task.js.map +1 -0
  90. package/dist/{src/mcp → mcp}/server.d.ts +1 -1
  91. package/dist/mcp/server.d.ts.map +1 -0
  92. package/dist/mcp/server.js +58 -0
  93. package/dist/mcp/server.js.map +1 -0
  94. package/dist/shared/json-store.d.ts.map +1 -0
  95. package/dist/{src/shared → shared}/json-store.js +5 -4
  96. package/dist/shared/json-store.js.map +1 -0
  97. package/dist/shared/mcp-utils.d.ts.map +1 -0
  98. package/dist/shared/mcp-utils.js.map +1 -0
  99. package/dist/{src/shared → shared}/paths.d.ts +0 -6
  100. package/dist/shared/paths.d.ts.map +1 -0
  101. package/dist/shared/paths.js +62 -0
  102. package/dist/shared/paths.js.map +1 -0
  103. package/dist/shared/register-tool.d.ts +20 -0
  104. package/dist/shared/register-tool.d.ts.map +1 -0
  105. package/dist/shared/register-tool.js +15 -0
  106. package/dist/shared/register-tool.js.map +1 -0
  107. package/dist/{src/types → types}/state.d.ts +65 -65
  108. package/dist/types/state.d.ts.map +1 -0
  109. package/dist/{src/types → types}/state.js +1 -1
  110. package/dist/types/state.js.map +1 -0
  111. package/harness/claude/agent-rules.yml +21 -0
  112. package/harness/claude/invocations.yml +11 -0
  113. package/harness/claude/layout.yml +3 -0
  114. package/harness/codex/agent-rules.yml +28 -0
  115. package/harness/codex/invocations.yml +13 -0
  116. package/harness/codex/layout.yml +3 -0
  117. package/harness/opencode/agent-rules.yml +18 -0
  118. package/harness/opencode/invocations.yml +12 -0
  119. package/harness/opencode/layout.yml +3 -0
  120. package/package.json +38 -43
  121. package/{assets → spec}/agents/architect/body.ko.md +92 -84
  122. package/spec/agents/architect/body.md +185 -0
  123. package/spec/agents/designer/body.ko.md +330 -0
  124. package/spec/agents/designer/body.md +330 -0
  125. package/spec/agents/engineer/body.ko.md +166 -0
  126. package/spec/agents/engineer/body.md +166 -0
  127. package/spec/agents/lead/body.ko.md +276 -0
  128. package/spec/agents/lead/body.md +276 -0
  129. package/{assets → spec}/agents/postdoc/body.ko.md +116 -46
  130. package/spec/agents/postdoc/body.md +192 -0
  131. package/{assets → spec}/agents/researcher/body.ko.md +131 -45
  132. package/spec/agents/researcher/body.md +223 -0
  133. package/spec/agents/reviewer/body.ko.md +219 -0
  134. package/spec/agents/reviewer/body.md +219 -0
  135. package/{assets → spec}/agents/strategist/body.ko.md +108 -35
  136. package/spec/agents/strategist/body.md +187 -0
  137. package/spec/agents/tester/body.ko.md +272 -0
  138. package/spec/agents/tester/body.md +272 -0
  139. package/{assets → spec}/agents/writer/body.ko.md +109 -33
  140. package/spec/agents/writer/body.md +198 -0
  141. package/spec/skills/nx-auto-plan/body.ko.md +150 -0
  142. package/spec/skills/nx-auto-plan/body.md +150 -0
  143. package/spec/skills/nx-plan/body.ko.md +159 -0
  144. package/spec/skills/nx-plan/body.md +159 -0
  145. package/spec/skills/nx-run/body.ko.md +132 -0
  146. package/spec/skills/nx-run/body.md +132 -0
  147. package/vocabulary/enums/task-register-state.yml +4 -0
  148. package/vocabulary/invocations.yml +43 -0
  149. package/assets/agents/architect/body.md +0 -177
  150. package/assets/agents/designer/body.ko.md +0 -125
  151. package/assets/agents/designer/body.md +0 -125
  152. package/assets/agents/engineer/body.ko.md +0 -106
  153. package/assets/agents/engineer/body.md +0 -106
  154. package/assets/agents/lead/body.ko.md +0 -70
  155. package/assets/agents/lead/body.md +0 -70
  156. package/assets/agents/postdoc/body.md +0 -122
  157. package/assets/agents/researcher/body.md +0 -137
  158. package/assets/agents/reviewer/body.ko.md +0 -138
  159. package/assets/agents/reviewer/body.md +0 -138
  160. package/assets/agents/strategist/body.md +0 -116
  161. package/assets/agents/tester/body.ko.md +0 -195
  162. package/assets/agents/tester/body.md +0 -195
  163. package/assets/agents/writer/body.md +0 -122
  164. package/assets/capability-matrix.yml +0 -200
  165. package/assets/hooks/agent-bootstrap/handler.test.ts +0 -369
  166. package/assets/hooks/agent-bootstrap/handler.ts +0 -132
  167. package/assets/hooks/agent-bootstrap/meta.yml +0 -10
  168. package/assets/hooks/agent-finalize/handler.test.ts +0 -368
  169. package/assets/hooks/agent-finalize/handler.ts +0 -76
  170. package/assets/hooks/agent-finalize/meta.yml +0 -10
  171. package/assets/hooks/capability-matrix.yml +0 -313
  172. package/assets/hooks/post-tool-telemetry/handler.test.ts +0 -302
  173. package/assets/hooks/post-tool-telemetry/handler.ts +0 -49
  174. package/assets/hooks/post-tool-telemetry/meta.yml +0 -10
  175. package/assets/hooks/prompt-router/handler.test.ts +0 -801
  176. package/assets/hooks/prompt-router/handler.ts +0 -272
  177. package/assets/hooks/prompt-router/meta.yml +0 -11
  178. package/assets/hooks/session-init/handler.test.ts +0 -274
  179. package/assets/hooks/session-init/handler.ts +0 -31
  180. package/assets/hooks/session-init/meta.yml +0 -9
  181. package/assets/lsp-servers.json +0 -55
  182. package/assets/schema/lsp-servers.schema.json +0 -67
  183. package/assets/skills/nx-init/body.ko.md +0 -197
  184. package/assets/skills/nx-init/body.md +0 -197
  185. package/assets/skills/nx-plan/body.ko.md +0 -361
  186. package/assets/skills/nx-plan/body.md +0 -361
  187. package/assets/skills/nx-run/body.ko.md +0 -161
  188. package/assets/skills/nx-run/body.md +0 -160
  189. package/assets/skills/nx-sync/body.ko.md +0 -92
  190. package/assets/skills/nx-sync/body.md +0 -92
  191. package/assets/tools/tool-name-map.yml +0 -353
  192. package/dist/assets/hooks/agent-bootstrap/handler.d.ts +0 -4
  193. package/dist/assets/hooks/agent-bootstrap/handler.d.ts.map +0 -1
  194. package/dist/assets/hooks/agent-bootstrap/handler.js +0 -114
  195. package/dist/assets/hooks/agent-bootstrap/handler.js.map +0 -1
  196. package/dist/assets/hooks/agent-finalize/handler.d.ts +0 -4
  197. package/dist/assets/hooks/agent-finalize/handler.d.ts.map +0 -1
  198. package/dist/assets/hooks/agent-finalize/handler.js +0 -63
  199. package/dist/assets/hooks/agent-finalize/handler.js.map +0 -1
  200. package/dist/assets/hooks/post-tool-telemetry/handler.d.ts +0 -4
  201. package/dist/assets/hooks/post-tool-telemetry/handler.d.ts.map +0 -1
  202. package/dist/assets/hooks/post-tool-telemetry/handler.js +0 -40
  203. package/dist/assets/hooks/post-tool-telemetry/handler.js.map +0 -1
  204. package/dist/assets/hooks/prompt-router/handler.d.ts +0 -4
  205. package/dist/assets/hooks/prompt-router/handler.d.ts.map +0 -1
  206. package/dist/assets/hooks/prompt-router/handler.js +0 -214
  207. package/dist/assets/hooks/prompt-router/handler.js.map +0 -1
  208. package/dist/assets/hooks/session-init/handler.d.ts +0 -4
  209. package/dist/assets/hooks/session-init/handler.d.ts.map +0 -1
  210. package/dist/assets/hooks/session-init/handler.js +0 -22
  211. package/dist/assets/hooks/session-init/handler.js.map +0 -1
  212. package/dist/claude/.claude-plugin/marketplace.json +0 -75
  213. package/dist/claude/.claude-plugin/plugin.json +0 -67
  214. package/dist/claude/agents/architect.md +0 -172
  215. package/dist/claude/agents/designer.md +0 -120
  216. package/dist/claude/agents/engineer.md +0 -98
  217. package/dist/claude/agents/lead.md +0 -59
  218. package/dist/claude/agents/postdoc.md +0 -117
  219. package/dist/claude/agents/researcher.md +0 -132
  220. package/dist/claude/agents/reviewer.md +0 -133
  221. package/dist/claude/agents/strategist.md +0 -111
  222. package/dist/claude/agents/tester.md +0 -190
  223. package/dist/claude/agents/writer.md +0 -114
  224. package/dist/claude/dist/hooks/agent-bootstrap.js +0 -238
  225. package/dist/claude/dist/hooks/agent-finalize.js +0 -180
  226. package/dist/claude/dist/hooks/post-tool-telemetry.js +0 -71
  227. package/dist/claude/dist/hooks/prompt-router.js +0 -7336
  228. package/dist/claude/dist/hooks/session-init.js +0 -50
  229. package/dist/claude/hooks/hooks.json +0 -64
  230. package/dist/claude/settings.json +0 -3
  231. package/dist/claude/skills/nx-init/SKILL.md +0 -189
  232. package/dist/claude/skills/nx-plan/SKILL.md +0 -353
  233. package/dist/claude/skills/nx-run/SKILL.md +0 -154
  234. package/dist/claude/skills/nx-sync/SKILL.md +0 -87
  235. package/dist/codex/agents/architect.toml +0 -175
  236. package/dist/codex/agents/designer.toml +0 -123
  237. package/dist/codex/agents/engineer.toml +0 -105
  238. package/dist/codex/agents/lead.toml +0 -64
  239. package/dist/codex/agents/postdoc.toml +0 -120
  240. package/dist/codex/agents/researcher.toml +0 -136
  241. package/dist/codex/agents/reviewer.toml +0 -137
  242. package/dist/codex/agents/strategist.toml +0 -114
  243. package/dist/codex/agents/tester.toml +0 -194
  244. package/dist/codex/agents/writer.toml +0 -121
  245. package/dist/codex/dist/hooks/agent-bootstrap.js +0 -238
  246. package/dist/codex/dist/hooks/agent-finalize.js +0 -180
  247. package/dist/codex/dist/hooks/prompt-router.js +0 -7336
  248. package/dist/codex/dist/hooks/session-init.js +0 -50
  249. package/dist/codex/hooks/hooks.json +0 -28
  250. package/dist/codex/install/AGENTS.fragment.md +0 -60
  251. package/dist/codex/install/config.fragment.toml +0 -5
  252. package/dist/codex/install/install.sh +0 -60
  253. package/dist/codex/package.json +0 -20
  254. package/dist/codex/plugin/.codex-plugin/plugin.json +0 -57
  255. package/dist/codex/plugin/skills/nx-init/SKILL.md +0 -189
  256. package/dist/codex/plugin/skills/nx-plan/SKILL.md +0 -353
  257. package/dist/codex/plugin/skills/nx-run/SKILL.md +0 -154
  258. package/dist/codex/plugin/skills/nx-sync/SKILL.md +0 -87
  259. package/dist/codex/prompts/architect.md +0 -166
  260. package/dist/codex/prompts/designer.md +0 -114
  261. package/dist/codex/prompts/engineer.md +0 -97
  262. package/dist/codex/prompts/lead.md +0 -60
  263. package/dist/codex/prompts/postdoc.md +0 -111
  264. package/dist/codex/prompts/researcher.md +0 -127
  265. package/dist/codex/prompts/reviewer.md +0 -128
  266. package/dist/codex/prompts/strategist.md +0 -105
  267. package/dist/codex/prompts/tester.md +0 -185
  268. package/dist/codex/prompts/writer.md +0 -113
  269. package/dist/hooks/agent-bootstrap.js +0 -238
  270. package/dist/hooks/agent-finalize.js +0 -180
  271. package/dist/hooks/post-tool-telemetry.js +0 -71
  272. package/dist/hooks/prompt-router.js +0 -7336
  273. package/dist/hooks/session-init.js +0 -50
  274. package/dist/manifests/claude-hooks.json +0 -64
  275. package/dist/manifests/codex-hooks.json +0 -28
  276. package/dist/manifests/opencode-manifest.json +0 -54
  277. package/dist/manifests/portability-report.json +0 -75
  278. package/dist/opencode/.opencode/skills/nx-init/SKILL.md +0 -189
  279. package/dist/opencode/.opencode/skills/nx-plan/SKILL.md +0 -353
  280. package/dist/opencode/.opencode/skills/nx-run/SKILL.md +0 -154
  281. package/dist/opencode/.opencode/skills/nx-sync/SKILL.md +0 -87
  282. package/dist/opencode/package.json +0 -23
  283. package/dist/opencode/src/agents/architect.ts +0 -176
  284. package/dist/opencode/src/agents/designer.ts +0 -124
  285. package/dist/opencode/src/agents/engineer.ts +0 -105
  286. package/dist/opencode/src/agents/lead.ts +0 -66
  287. package/dist/opencode/src/agents/postdoc.ts +0 -121
  288. package/dist/opencode/src/agents/researcher.ts +0 -136
  289. package/dist/opencode/src/agents/reviewer.ts +0 -137
  290. package/dist/opencode/src/agents/strategist.ts +0 -115
  291. package/dist/opencode/src/agents/tester.ts +0 -194
  292. package/dist/opencode/src/agents/writer.ts +0 -121
  293. package/dist/opencode/src/index.ts +0 -25
  294. package/dist/opencode/src/plugin.ts +0 -6
  295. package/dist/scripts/build-agents.d.ts +0 -170
  296. package/dist/scripts/build-agents.d.ts.map +0 -1
  297. package/dist/scripts/build-agents.js +0 -907
  298. package/dist/scripts/build-agents.js.map +0 -1
  299. package/dist/scripts/build-hooks.d.ts +0 -57
  300. package/dist/scripts/build-hooks.d.ts.map +0 -1
  301. package/dist/scripts/build-hooks.js +0 -562
  302. package/dist/scripts/build-hooks.js.map +0 -1
  303. package/dist/scripts/cli.d.ts +0 -54
  304. package/dist/scripts/cli.d.ts.map +0 -1
  305. package/dist/scripts/cli.js +0 -504
  306. package/dist/scripts/cli.js.map +0 -1
  307. package/dist/scripts/smoke/smoke-claude.d.ts +0 -2
  308. package/dist/scripts/smoke/smoke-claude.d.ts.map +0 -1
  309. package/dist/scripts/smoke/smoke-claude.js +0 -58
  310. package/dist/scripts/smoke/smoke-claude.js.map +0 -1
  311. package/dist/scripts/smoke/smoke-codex.d.ts +0 -2
  312. package/dist/scripts/smoke/smoke-codex.d.ts.map +0 -1
  313. package/dist/scripts/smoke/smoke-codex.js +0 -50
  314. package/dist/scripts/smoke/smoke-codex.js.map +0 -1
  315. package/dist/scripts/smoke/smoke-consumer.d.ts +0 -2
  316. package/dist/scripts/smoke/smoke-consumer.d.ts.map +0 -1
  317. package/dist/scripts/smoke/smoke-consumer.js +0 -230
  318. package/dist/scripts/smoke/smoke-consumer.js.map +0 -1
  319. package/dist/scripts/smoke/smoke-opencode.d.ts +0 -2
  320. package/dist/scripts/smoke/smoke-opencode.d.ts.map +0 -1
  321. package/dist/scripts/smoke/smoke-opencode.js +0 -99
  322. package/dist/scripts/smoke/smoke-opencode.js.map +0 -1
  323. package/dist/src/hooks/opencode-mount.d.ts +0 -35
  324. package/dist/src/hooks/opencode-mount.d.ts.map +0 -1
  325. package/dist/src/hooks/opencode-mount.js +0 -352
  326. package/dist/src/hooks/opencode-mount.js.map +0 -1
  327. package/dist/src/hooks/runtime.d.ts +0 -37
  328. package/dist/src/hooks/runtime.d.ts.map +0 -1
  329. package/dist/src/hooks/runtime.js +0 -274
  330. package/dist/src/hooks/runtime.js.map +0 -1
  331. package/dist/src/hooks/types.d.ts +0 -196
  332. package/dist/src/hooks/types.d.ts.map +0 -1
  333. package/dist/src/hooks/types.js +0 -85
  334. package/dist/src/hooks/types.js.map +0 -1
  335. package/dist/src/lsp/cache.d.ts +0 -9
  336. package/dist/src/lsp/cache.d.ts.map +0 -1
  337. package/dist/src/lsp/cache.js +0 -216
  338. package/dist/src/lsp/cache.js.map +0 -1
  339. package/dist/src/lsp/client.d.ts +0 -24
  340. package/dist/src/lsp/client.d.ts.map +0 -1
  341. package/dist/src/lsp/client.js +0 -166
  342. package/dist/src/lsp/client.js.map +0 -1
  343. package/dist/src/lsp/detect.d.ts +0 -77
  344. package/dist/src/lsp/detect.d.ts.map +0 -1
  345. package/dist/src/lsp/detect.js +0 -116
  346. package/dist/src/lsp/detect.js.map +0 -1
  347. package/dist/src/mcp/server.d.ts.map +0 -1
  348. package/dist/src/mcp/server.js +0 -34
  349. package/dist/src/mcp/server.js.map +0 -1
  350. package/dist/src/mcp/tools/artifact.d.ts.map +0 -1
  351. package/dist/src/mcp/tools/artifact.js +0 -36
  352. package/dist/src/mcp/tools/artifact.js.map +0 -1
  353. package/dist/src/mcp/tools/history.d.ts.map +0 -1
  354. package/dist/src/mcp/tools/history.js +0 -29
  355. package/dist/src/mcp/tools/history.js.map +0 -1
  356. package/dist/src/mcp/tools/lsp.d.ts +0 -13
  357. package/dist/src/mcp/tools/lsp.d.ts.map +0 -1
  358. package/dist/src/mcp/tools/lsp.js +0 -225
  359. package/dist/src/mcp/tools/lsp.js.map +0 -1
  360. package/dist/src/mcp/tools/plan.d.ts.map +0 -1
  361. package/dist/src/mcp/tools/plan.js +0 -317
  362. package/dist/src/mcp/tools/plan.js.map +0 -1
  363. package/dist/src/mcp/tools/task.d.ts.map +0 -1
  364. package/dist/src/mcp/tools/task.js +0 -252
  365. package/dist/src/mcp/tools/task.js.map +0 -1
  366. package/dist/src/shared/invocations.d.ts +0 -74
  367. package/dist/src/shared/invocations.d.ts.map +0 -1
  368. package/dist/src/shared/invocations.js +0 -247
  369. package/dist/src/shared/invocations.js.map +0 -1
  370. package/dist/src/shared/json-store.d.ts.map +0 -1
  371. package/dist/src/shared/json-store.js.map +0 -1
  372. package/dist/src/shared/mcp-utils.d.ts.map +0 -1
  373. package/dist/src/shared/mcp-utils.js.map +0 -1
  374. package/dist/src/shared/package-root.d.ts +0 -6
  375. package/dist/src/shared/package-root.d.ts.map +0 -1
  376. package/dist/src/shared/package-root.js +0 -19
  377. package/dist/src/shared/package-root.js.map +0 -1
  378. package/dist/src/shared/paths.d.ts.map +0 -1
  379. package/dist/src/shared/paths.js +0 -117
  380. package/dist/src/shared/paths.js.map +0 -1
  381. package/dist/src/shared/tool-log.d.ts +0 -8
  382. package/dist/src/shared/tool-log.d.ts.map +0 -1
  383. package/dist/src/shared/tool-log.js +0 -22
  384. package/dist/src/shared/tool-log.js.map +0 -1
  385. package/dist/src/types/agent-config.d.ts +0 -22
  386. package/dist/src/types/agent-config.d.ts.map +0 -1
  387. package/dist/src/types/agent-config.js +0 -2
  388. package/dist/src/types/agent-config.js.map +0 -1
  389. package/dist/src/types/index.d.ts +0 -2
  390. package/dist/src/types/index.d.ts.map +0 -1
  391. package/dist/src/types/index.js +0 -2
  392. package/dist/src/types/index.js.map +0 -1
  393. package/dist/src/types/state.d.ts.map +0 -1
  394. package/dist/src/types/state.js.map +0 -1
  395. package/docs/consuming/codex-lead-merge.md +0 -106
  396. package/docs/contract/harness-io.md +0 -333
  397. package/docs/plugin-guide.md +0 -355
  398. package/docs/plugin-template/claude/.github/workflows/build.yml +0 -60
  399. package/docs/plugin-template/claude/README.md +0 -110
  400. package/docs/plugin-template/claude/package.json +0 -16
  401. package/docs/plugin-template/codex/.github/workflows/build.yml +0 -51
  402. package/docs/plugin-template/codex/README.md +0 -147
  403. package/docs/plugin-template/codex/install/install.sh +0 -60
  404. package/docs/plugin-template/codex/package.json +0 -17
  405. package/docs/plugin-template/opencode/.github/workflows/build.yml +0 -61
  406. package/docs/plugin-template/opencode/README.md +0 -121
  407. package/docs/plugin-template/opencode/package.json +0 -25
  408. package/docs/plugin-template/opencode/src/plugin.ts +0 -6
  409. /package/dist/{src/mcp/tools → mcp/handlers}/artifact.d.ts +0 -0
  410. /package/dist/{src/mcp/tools → mcp/handlers}/history.d.ts +0 -0
  411. /package/dist/{src/mcp/tools → mcp/handlers}/plan.d.ts +0 -0
  412. /package/dist/{src/mcp/tools → mcp/handlers}/task.d.ts +0 -0
  413. /package/dist/{src/shared → shared}/json-store.d.ts +0 -0
  414. /package/dist/{src/shared → shared}/mcp-utils.d.ts +0 -0
  415. /package/dist/{src/shared → shared}/mcp-utils.js +0 -0
@@ -1,562 +0,0 @@
1
- /**
2
- * scripts/build-hooks.ts
3
- *
4
- * Build pipeline for the nexus hook system.
5
- *
6
- * Five stages:
7
- * 1. Load assets/hooks/*\/meta.yml + HookMetaSchema zod validation (strict)
8
- * 2. Load capability-matrix.yml + validate capability IDs referenced by hooks
9
- * 3. Warn on event ↔ capability mismatch
10
- * 4. Compute harness portability with fallback policy enforcement
11
- * 5. Emit dist/hooks/*.js (tsc), dist/manifests/*.json, portability-report.json
12
- *
13
- * 결정 참조: plan.json Issue #5 (빌드 검증 5단계)
14
- */
15
- import { HookMetaSchema } from "../src/hooks/types.js";
16
- import { readFileSync, readdirSync, existsSync, mkdirSync, writeFileSync, copyFileSync, rmSync, } from "node:fs";
17
- import { join, dirname } from "node:path";
18
- import { tmpdir } from "node:os";
19
- import { fileURLToPath } from "node:url";
20
- import { execSync } from "node:child_process";
21
- import { parse as parseYaml } from "yaml";
22
- import { findPackageRoot } from "../src/shared/package-root.js";
23
- // ---------------------------------------------------------------------------
24
- // Constants
25
- // ---------------------------------------------------------------------------
26
- const __dirname = dirname(fileURLToPath(import.meta.url));
27
- const ROOT = findPackageRoot(__dirname);
28
- const HOOKS_DIR = join(ROOT, "assets/hooks");
29
- const CAPABILITY_MATRIX_PATH = join(HOOKS_DIR, "capability-matrix.yml");
30
- const TOOL_NAME_MAP_PATH = join(ROOT, "assets/tools/tool-name-map.yml");
31
- const DIST_HOOKS_DIR = join(ROOT, "dist/hooks");
32
- const DIST_MANIFESTS_DIR = join(ROOT, "dist/manifests");
33
- const HARNESSES = ["claude", "codex", "opencode"];
34
- // ---------------------------------------------------------------------------
35
- // Stage 1: Load + validate meta.yml files
36
- // ---------------------------------------------------------------------------
37
- function loadAllHooks() {
38
- const entries = readdirSync(HOOKS_DIR, { withFileTypes: true });
39
- const result = [];
40
- for (const entry of entries) {
41
- if (!entry.isDirectory())
42
- continue;
43
- const metaPath = join(HOOKS_DIR, entry.name, "meta.yml");
44
- const handlerPath = join(HOOKS_DIR, entry.name, "handler.ts");
45
- if (!existsSync(metaPath) || !existsSync(handlerPath))
46
- continue;
47
- const metaRaw = parseYaml(readFileSync(metaPath, "utf-8"));
48
- // HookMetaSchema is .strict() — portability_tier and other unknown fields
49
- // will throw a ZodError here (Acceptance Criteria #5)
50
- let meta;
51
- try {
52
- meta = HookMetaSchema.parse(metaRaw);
53
- }
54
- catch (err) {
55
- throw new Error(`[build-hooks] meta.yml validation failed for "${entry.name}": ${String(err)}`);
56
- }
57
- result.push({ name: entry.name, meta, handlerPath });
58
- }
59
- // Sort by priority descending
60
- result.sort((a, b) => b.meta.priority - a.meta.priority);
61
- return result;
62
- }
63
- // ---------------------------------------------------------------------------
64
- // Stage 2: Load capability matrix + validate capability IDs
65
- // ---------------------------------------------------------------------------
66
- function loadCapabilityMatrix() {
67
- const raw = readFileSync(CAPABILITY_MATRIX_PATH, "utf-8");
68
- return parseYaml(raw);
69
- }
70
- function validateCapabilityIds(hooks, matrix) {
71
- const knownIds = new Set(Object.keys(matrix.capabilities));
72
- for (const hook of hooks) {
73
- for (const capId of hook.meta.requires_capabilities) {
74
- if (!knownIds.has(capId)) {
75
- // Acceptance Criteria #6: unknown capability ID → build failure
76
- throw new Error(`[build-hooks] "${hook.name}" requires unknown capability "${capId}". ` +
77
- `Known IDs: ${[...knownIds].join(", ")}`);
78
- }
79
- }
80
- }
81
- }
82
- /** Capability prefix → events it belongs to */
83
- const CAP_EVENT_MAP = [
84
- { prefix: "event.session_start", events: ["SessionStart"] },
85
- { prefix: "event.user_prompt_submit", events: ["UserPromptSubmit"] },
86
- { prefix: "event.pre_tool_use", events: ["PreToolUse"] },
87
- { prefix: "event.post_tool_use", events: ["PostToolUse"] },
88
- { prefix: "event.subagent_start", events: ["SubagentStart"] },
89
- { prefix: "event.subagent_stop", events: ["SubagentStop"] },
90
- {
91
- prefix: "output.additional_context.session_start",
92
- events: ["SessionStart", "SubagentStart"],
93
- },
94
- { prefix: "output.additional_context.user_prompt", events: ["UserPromptSubmit"] },
95
- { prefix: "output.additional_context.subagent_stop", events: ["SubagentStop"] },
96
- { prefix: "output.additional_context.post_tool", events: ["PostToolUse"] },
97
- { prefix: "output.additional_context.pre_tool", events: ["PreToolUse"] },
98
- ];
99
- function warnOnMismatch(hooks) {
100
- for (const hook of hooks) {
101
- const hookEvents = new Set(hook.meta.events);
102
- for (const capId of hook.meta.requires_capabilities) {
103
- for (const mapping of CAP_EVENT_MAP) {
104
- if (!capId.startsWith(mapping.prefix))
105
- continue;
106
- const capEvents = new Set(mapping.events);
107
- const overlap = mapping.events.some((e) => hookEvents.has(e));
108
- if (!overlap) {
109
- process.stderr.write(`[build-hooks] WARN mismatch: hook "${hook.name}" listens on [${hook.meta.events.join(", ")}] ` +
110
- `but capability "${capId}" applies to [${mapping.events.join(", ")}]\n`);
111
- }
112
- }
113
- }
114
- }
115
- }
116
- // ---------------------------------------------------------------------------
117
- // Stage 4: Harness portability computation + fallback policy
118
- // ---------------------------------------------------------------------------
119
- function computePortability(hooks, matrix) {
120
- const plans = [];
121
- for (const hook of hooks) {
122
- const registeredIn = [];
123
- const excludedFrom = [];
124
- for (const harness of HARNESSES) {
125
- const missingCaps = [];
126
- for (const capId of hook.meta.requires_capabilities) {
127
- const capEntry = matrix.capabilities[capId];
128
- if (!capEntry)
129
- continue; // already caught in validateCapabilityIds
130
- const support = capEntry[harness];
131
- // Only `true` counts as fully supported; false and partial are unsupported
132
- if (support !== true) {
133
- missingCaps.push(capId);
134
- }
135
- }
136
- if (missingCaps.length === 0) {
137
- registeredIn.push(harness);
138
- }
139
- else {
140
- // Determine reason string from capability notes
141
- const reasons = missingCaps
142
- .map((capId) => {
143
- const entry = matrix.capabilities[capId];
144
- if (!entry?.note)
145
- return capId;
146
- // Trim the note to a concise first sentence
147
- const note = entry.note.trim().split(/\.\s/)[0]?.trim() ?? capId;
148
- return note;
149
- })
150
- .join("; ");
151
- // Apply fallback policy (Acceptance Criteria #7)
152
- if (hook.meta.fallback === "error") {
153
- throw new Error(`[build-hooks] Hook "${hook.name}" fallback=error but harness "${harness}" ` +
154
- `is missing capabilities: ${missingCaps.join(", ")}`);
155
- }
156
- if (hook.meta.fallback === "warn") {
157
- process.stderr.write(`[build-hooks] WARN: hook "${hook.name}" excluded from "${harness}" ` +
158
- `(missing: ${missingCaps.join(", ")})\n`);
159
- }
160
- // fallback=skip: no warning, silently excluded
161
- excludedFrom.push({ harness, missing: missingCaps, reason: reasons });
162
- }
163
- }
164
- const tier = deriveTier(registeredIn, hook.meta.fallback);
165
- plans.push({
166
- name: hook.name,
167
- meta: hook.meta,
168
- tier,
169
- registeredIn,
170
- excludedFrom,
171
- capabilitiesRequired: hook.meta.requires_capabilities,
172
- });
173
- }
174
- return plans;
175
- }
176
- function deriveTier(registeredIn, fallback) {
177
- const count = registeredIn.length;
178
- if (count === 3)
179
- return "core";
180
- if (count === 2)
181
- return "extended";
182
- if (count === 1) {
183
- // harness-specific: intentional skip-only registration in one harness
184
- if (fallback === "skip")
185
- return "harness-specific";
186
- return "experimental";
187
- }
188
- // count === 0: excluded everywhere — still experimental (build already failed if fallback=error)
189
- return "experimental";
190
- }
191
- // ---------------------------------------------------------------------------
192
- // Stage 5a: Compile handlers via tsc
193
- //
194
- // Each handler.ts imports from src/ (types, shared utilities), so rootDir
195
- // cannot be scoped to assets/hooks alone. We compile the full project tree
196
- // (rootDir=.) into a temporary directory, then copy only the handler outputs
197
- // to dist/hooks/<name>.js — preserving the flat dist/hooks/<name>.js layout
198
- // required by the manifests.
199
- // ---------------------------------------------------------------------------
200
- /**
201
- * Compile handlers that are registered in at least one harness.
202
- *
203
- * Filters by portability plan so excluded hooks (e.g., post-tool-telemetry
204
- * missing required capabilities in all 3 harnesses) are skipped — the
205
- * previous unfiltered behavior produced unnecessary `bun build` invocations
206
- * and surfaced WARN noise in consumer output (#35 defect #1).
207
- */
208
- function compileHandlers(plans, hookIndex) {
209
- mkdirSync(DIST_HOOKS_DIR, { recursive: true });
210
- for (const plan of plans) {
211
- if (plan.registeredIn.length === 0)
212
- continue;
213
- const hook = hookIndex.get(plan.name);
214
- if (!hook)
215
- continue;
216
- const outFile = join(DIST_HOOKS_DIR, `${hook.name}.js`);
217
- const entryDir = join(tmpdir(), `nexus-hook-entry-${hook.name}-${Date.now()}`);
218
- mkdirSync(entryDir, { recursive: true });
219
- const entryFile = join(entryDir, `${hook.name}-entry.ts`);
220
- try {
221
- // Build the entry lines array. For prompt-router, inline assets data that
222
- // won't be available in a consumer target (#46: assets/ not present at runtime).
223
- const lines = [];
224
- if (hook.name === "prompt-router") {
225
- // Inline invocations map from tool-name-map.yml so prompt-router bundle
226
- // is self-contained — consumer targets have no assets/ directory (#46).
227
- const toolNameMapRaw = readFileSync(TOOL_NAME_MAP_PATH, "utf-8");
228
- const toolNameMapParsed = parseYaml(toolNameMapRaw);
229
- const invocationsJson = JSON.stringify(toolNameMapParsed.invocations ?? {});
230
- // Inline rule targets (agents + skills directory names) for [rule] tag handling.
231
- const agentsDir = join(ROOT, "assets/agents");
232
- const skillsDir = join(ROOT, "assets/skills");
233
- const agentNames = readdirSync(agentsDir, { withFileTypes: true })
234
- .filter((e) => e.isDirectory())
235
- .map((e) => e.name);
236
- const skillNames = readdirSync(skillsDir, { withFileTypes: true })
237
- .filter((e) => e.isDirectory())
238
- .map((e) => e.name);
239
- const ruleTargetsJson = JSON.stringify([...agentNames, ...skillNames]);
240
- // Assign to globalThis before the handler import so the module reads
241
- // these values at load time (cache check runs on first loadInvocations() call).
242
- lines.push("globalThis.__NEXUS_INLINE_INVOCATIONS__ = " + invocationsJson + ";");
243
- lines.push("globalThis.__NEXUS_INLINE_RULE_TARGETS__ = " + ruleTargetsJson + ";");
244
- }
245
- if (hook.name === "agent-bootstrap") {
246
- const agentsDir = join(ROOT, "assets/agents");
247
- const roleNames = readdirSync(agentsDir, { withFileTypes: true })
248
- .filter((e) => e.isDirectory())
249
- .map((e) => e.name);
250
- lines.push("globalThis.__NEXUS_INLINE_AGENT_ROLES__ = " + JSON.stringify(roleNames) + ";");
251
- }
252
- lines.push(`import handler from ${JSON.stringify(hook.handlerPath)};`, `import { readFileSync } from "node:fs";`, `async function main() {`, ` let raw = "";`, ` try { raw = readFileSync(0, "utf-8"); } catch {}`, ` const input = raw ? JSON.parse(raw) : {};`, ` const result = await handler(input);`, ` if (result != null && result !== undefined) {`, ` process.stdout.write(JSON.stringify(result));`, ` }`, `}`, `main().then(`, ` () => process.exit(0),`, ` (err) => { process.stderr.write(String(err?.stack ?? err) + "\\n"); process.exit(1); }`, `);`);
253
- const entryContent = lines.join("\n") + "\n";
254
- writeFileSync(entryFile, entryContent);
255
- try {
256
- execSync(`bun build ${entryFile} --outfile ${outFile} --target node --format esm`, { cwd: ROOT, stdio: "inherit" });
257
- }
258
- catch {
259
- throw new Error(`[build-hooks] Handler compilation failed for "${hook.name}" (bun build exit non-zero)`);
260
- }
261
- }
262
- catch (err) {
263
- process.stderr.write(`[build-hooks] wrapper-emit failed for "${hook.name}": ${String(err)}\n`);
264
- throw err;
265
- }
266
- finally {
267
- try {
268
- rmSync(entryDir, { recursive: true, force: true });
269
- }
270
- catch {
271
- // best effort
272
- }
273
- }
274
- }
275
- }
276
- // ---------------------------------------------------------------------------
277
- // Stage 5b: Write harness manifests
278
- // ---------------------------------------------------------------------------
279
- function loadToolNameMap() {
280
- const raw = readFileSync(TOOL_NAME_MAP_PATH, "utf-8");
281
- return parseYaml(raw);
282
- }
283
- /**
284
- * Translate a nexus PascalCase matcher token to the harness-native tool name(s).
285
- * Returns the original token if no mapping is found.
286
- *
287
- * Acceptance Criteria #8: Bash → shell/bash per harness.
288
- */
289
- function translateMatcherToken(token, harness, toolMap) {
290
- const entry = toolMap.tools[token];
291
- if (!entry)
292
- return token;
293
- const harnessValue = entry[harness];
294
- if (harnessValue === null || harnessValue === undefined)
295
- return token;
296
- if (typeof harnessValue === "string")
297
- return harnessValue;
298
- if (Array.isArray(harnessValue)) {
299
- return harnessValue.join("|");
300
- }
301
- // Codex primary/aliases shape
302
- if (typeof harnessValue === "object" && "primary" in harnessValue) {
303
- return harnessValue.primary;
304
- }
305
- return token;
306
- }
307
- /**
308
- * Translate a pipe-separated matcher string to harness-native names.
309
- * e.g. "Edit|Write|MultiEdit|ApplyPatch" → "Edit|Write|MultiEdit" (claude)
310
- * → "apply_patch" (codex, deduped)
311
- * → "edit|write|apply_patch" (opencode, deduped)
312
- */
313
- function translateMatcher(matcher, harness, toolMap) {
314
- if (matcher === "*")
315
- return "*";
316
- const tokens = matcher.split("|").map((t) => t.trim());
317
- const translated = new Set();
318
- for (const token of tokens) {
319
- const native = translateMatcherToken(token, harness, toolMap);
320
- // native may itself be pipe-separated (Array case collapsed above)
321
- for (const part of native.split("|")) {
322
- if (part.trim())
323
- translated.add(part.trim());
324
- }
325
- }
326
- return [...translated].join("|");
327
- }
328
- function hookCommand(hookName, harness) {
329
- if (harness === "opencode") {
330
- // OpenCode uses mountHooks JS API — command field contains the module reference
331
- return `${hookName}`;
332
- }
333
- return `node \${CLAUDE_PLUGIN_ROOT}/dist/hooks/${hookName}.js`;
334
- }
335
- function buildClaudeManifest(plans, toolMap) {
336
- const hooks = {};
337
- for (const plan of plans) {
338
- if (!plan.registeredIn.includes("claude"))
339
- continue;
340
- for (const event of plan.meta.events) {
341
- if (!hooks[event])
342
- hooks[event] = [];
343
- const matcher = translateMatcher(plan.meta.matcher, "claude", toolMap);
344
- hooks[event].push({
345
- matcher,
346
- hooks: [
347
- {
348
- type: "command",
349
- command: hookCommand(plan.name, "claude"),
350
- timeout: plan.meta.timeout,
351
- },
352
- ],
353
- });
354
- }
355
- }
356
- // Sort events' hook arrays by priority descending (already sorted at plan level)
357
- return { hooks };
358
- }
359
- function buildCodexManifest(plans, toolMap) {
360
- const hooks = {};
361
- for (const plan of plans) {
362
- if (!plan.registeredIn.includes("codex"))
363
- continue;
364
- for (const event of plan.meta.events) {
365
- if (!hooks[event])
366
- hooks[event] = [];
367
- const matcher = translateMatcher(plan.meta.matcher, "codex", toolMap);
368
- const entry = {
369
- command: hookCommand(plan.name, "codex"),
370
- timeout: plan.meta.timeout,
371
- };
372
- if (matcher !== "*")
373
- entry.matcher = matcher;
374
- hooks[event].push(entry);
375
- }
376
- }
377
- return { hooks };
378
- }
379
- function buildOpenCodeManifest(plans) {
380
- const hooks = [];
381
- for (const plan of plans) {
382
- if (!plan.registeredIn.includes("opencode"))
383
- continue;
384
- const entry = {
385
- name: plan.name,
386
- events: [...plan.meta.events],
387
- matcher: plan.meta.matcher ?? "*",
388
- handlerPath: `../hooks/${plan.name}.js`,
389
- priority: plan.meta.priority ?? 0,
390
- timeout: plan.meta.timeout,
391
- };
392
- hooks.push(entry);
393
- }
394
- return { hooks };
395
- }
396
- function writeManifests(plans) {
397
- mkdirSync(DIST_MANIFESTS_DIR, { recursive: true });
398
- const toolMap = loadToolNameMap();
399
- const claude = buildClaudeManifest(plans, toolMap);
400
- const codex = buildCodexManifest(plans, toolMap);
401
- const opencode = buildOpenCodeManifest(plans);
402
- writeFileSync(join(DIST_MANIFESTS_DIR, "claude-hooks.json"), JSON.stringify(claude, null, 2) + "\n");
403
- writeFileSync(join(DIST_MANIFESTS_DIR, "codex-hooks.json"), JSON.stringify(codex, null, 2) + "\n");
404
- writeFileSync(join(DIST_MANIFESTS_DIR, "opencode-manifest.json"), JSON.stringify(opencode, null, 2) + "\n");
405
- }
406
- function writePortabilityReport(plans) {
407
- mkdirSync(DIST_MANIFESTS_DIR, { recursive: true });
408
- const report = {};
409
- for (const plan of plans) {
410
- report[plan.name] = {
411
- tier: plan.tier,
412
- registered_in: plan.registeredIn,
413
- excluded_from: plan.excludedFrom,
414
- capabilities_required: plan.capabilitiesRequired,
415
- };
416
- }
417
- writeFileSync(join(DIST_MANIFESTS_DIR, "portability-report.json"), JSON.stringify(report, null, 2) + "\n");
418
- }
419
- // ---------------------------------------------------------------------------
420
- // Main entry point
421
- // ---------------------------------------------------------------------------
422
- /**
423
- * Authoring-time build.
424
- *
425
- * Run via `bun run build` in the nexus-core dev workspace. Compiles handlers,
426
- * writes manifests, and produces a portability report. The published tarball
427
- * ships these prebuilt artifacts (`dist/hooks/*.js`, `dist/manifests/*.json`),
428
- * and `syncHooksToTarget()` is the consumer-side path that copies them.
429
- *
430
- * This function MUST NOT run in a consumer install context — the source tree
431
- * it compiles against (`src/`) is excluded from the published tarball per
432
- * `files: ["assets", "docs", "dist"]`.
433
- */
434
- export async function buildHooks() {
435
- // Stage 1
436
- const hooks = loadAllHooks();
437
- console.log(`[build-hooks] Loaded ${hooks.length} hooks`);
438
- const hookIndex = new Map();
439
- for (const h of hooks)
440
- hookIndex.set(h.name, h);
441
- // Stage 2
442
- const matrix = loadCapabilityMatrix();
443
- validateCapabilityIds(hooks, matrix);
444
- // Stage 3
445
- warnOnMismatch(hooks);
446
- // Stage 4
447
- const plans = computePortability(hooks, matrix);
448
- // Stage 5 — compile only registered handlers, write manifests + report
449
- compileHandlers(plans, hookIndex);
450
- writeManifests(plans);
451
- writePortabilityReport(plans);
452
- console.log(`[build-hooks] ${hooks.length} hooks processed`);
453
- for (const plan of plans) {
454
- console.log(` ${plan.name}: tier=${plan.tier} registered=[${plan.registeredIn.join(",")}]`);
455
- }
456
- }
457
- // ---------------------------------------------------------------------------
458
- // Consumer-side: copy pre-built artifacts to a target directory
459
- // ---------------------------------------------------------------------------
460
- /**
461
- * Copy the prebuilt Claude/Codex hook manifest and registered handler bundles
462
- * from the published package's `dist/` into the consumer target.
463
- *
464
- * Consumer sync path MUST NOT recompile handlers — the tarball's
465
- * `assets/hooks/*\/handler.ts` imports `../../../src/...` which is excluded
466
- * from the distribution (#34, #35, #36 Bug 2, #37). This function instead
467
- * relies on the prebuilt artifacts shipped in `dist/hooks` + `dist/manifests`.
468
- *
469
- * Layout written to the consumer target:
470
- * - `hooks/hooks.json` ← dist/manifests/<harness>-hooks.json
471
- * - `dist/hooks/<name>.js` ← dist/hooks/<name>.js (only handlers registered in <harness>)
472
- *
473
- * The Claude hooks.json command field resolves to
474
- * `${CLAUDE_PLUGIN_ROOT}/dist/hooks/<name>.js`, which matches the copied
475
- * layout at runtime.
476
- *
477
- * For OpenCode the runtime exports `@moreih29/nexus-core/hooks/opencode-manifest`
478
- * and `mountHooks` resolves handler paths relative to the published package
479
- * itself — no copy is required, so this function is a no-op for opencode.
480
- */
481
- export async function syncHooksToTarget(opts) {
482
- const written = [];
483
- const skipped = [];
484
- if (opts.harness === "opencode") {
485
- // OpenCode consumes `@moreih29/nexus-core/hooks/opencode-manifest` at
486
- // runtime via mountHooks — no filesystem materialization in the target.
487
- skipped.push("hooks/(opencode-manifest resolved at runtime)");
488
- return { written, skipped };
489
- }
490
- const manifestName = opts.harness === "claude" ? "claude-hooks.json" : "codex-hooks.json";
491
- const manifestSrc = join(DIST_MANIFESTS_DIR, manifestName);
492
- if (!existsSync(manifestSrc)) {
493
- throw new Error(`[build-hooks] Missing prebuilt manifest ${manifestSrc}. Did you run \`bun run build\` before publish? ` +
494
- `(Consumer sync must only copy, never compile — see docs/contract/harness-io.md)`);
495
- }
496
- // 1. Parse manifest to learn which handlers are actually registered
497
- const manifestRaw = readFileSync(manifestSrc, "utf-8");
498
- const manifest = JSON.parse(manifestRaw);
499
- const handlerNames = new Set();
500
- for (const eventArr of Object.values(manifest.hooks ?? {})) {
501
- for (const entry of eventArr) {
502
- // Claude: entry.hooks[*].command
503
- if (Array.isArray(entry.hooks)) {
504
- for (const h of entry.hooks) {
505
- if (typeof h.command === "string") {
506
- const name = extractHandlerName(h.command);
507
- if (name)
508
- handlerNames.add(name);
509
- }
510
- }
511
- }
512
- // Codex: entry.command directly
513
- if (typeof entry.command === "string") {
514
- const name = extractHandlerName(entry.command);
515
- if (name)
516
- handlerNames.add(name);
517
- }
518
- }
519
- }
520
- // 2. Copy manifest → <target>/hooks/hooks.json
521
- const hooksJsonDest = join(opts.targetDir, "hooks", "hooks.json");
522
- if (!opts.dryRun) {
523
- mkdirSync(dirname(hooksJsonDest), { recursive: true });
524
- copyFileSync(manifestSrc, hooksJsonDest);
525
- }
526
- written.push("hooks/hooks.json");
527
- // 3. Copy each registered handler → <target>/dist/hooks/<name>.js
528
- for (const name of handlerNames) {
529
- const src = join(DIST_HOOKS_DIR, `${name}.js`);
530
- const dest = join(opts.targetDir, "dist", "hooks", `${name}.js`);
531
- if (!existsSync(src)) {
532
- throw new Error(`[build-hooks] Missing prebuilt handler ${src}. Manifest references "${name}" but the bundle is absent. ` +
533
- `Re-run \`bun run build\` in the nexus-core dev workspace before publishing.`);
534
- }
535
- if (!opts.dryRun) {
536
- mkdirSync(dirname(dest), { recursive: true });
537
- copyFileSync(src, dest);
538
- }
539
- written.push(`dist/hooks/${name}.js`);
540
- }
541
- return { written, skipped };
542
- }
543
- /**
544
- * Extract the handler basename from a Claude/Codex hook command.
545
- *
546
- * Commands look like: `node ${CLAUDE_PLUGIN_ROOT}/dist/hooks/<name>.js`.
547
- * Returns the <name> portion, or null if the command doesn't match.
548
- */
549
- function extractHandlerName(command) {
550
- const match = command.match(/dist\/hooks\/([^/]+)\.js\s*$/);
551
- return match ? match[1] : null;
552
- }
553
- // Run when executed directly (bun run scripts/build-hooks.ts)
554
- if (import.meta.url === `file://${process.argv[1]}` ||
555
- process.argv[1]?.endsWith("build-hooks.ts") ||
556
- process.argv[1]?.endsWith("build-hooks.js")) {
557
- buildHooks().catch((err) => {
558
- process.stderr.write(`[build-hooks] FATAL: ${String(err)}\n`);
559
- process.exit(1);
560
- });
561
- }
562
- //# sourceMappingURL=build-hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-hooks.js","sourceRoot":"","sources":["../../scripts/build-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7C,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AACxE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;AACxE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAExD,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AA+C3D,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAEhE,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAE3D,0EAA0E;QAC1E,sDAAsD;QACtD,IAAI,IAAc,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iDAAiD,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,SAAS,oBAAoB;IAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,SAAS,CAAC,GAAG,CAAqB,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkB,EAAE,MAAwB;IACzE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,gEAAgE;gBAChE,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,IAAI,kCAAkC,KAAK,KAAK;oBACrE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAcD,+CAA+C;AAC/C,MAAM,aAAa,GAAuD;IACxE,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,cAAuB,CAAC,EAAE;IACpE,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,kBAA2B,CAAC,EAAE;IAC7E,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,YAAqB,CAAC,EAAE;IACjE,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,aAAsB,CAAC,EAAE;IACnE,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,eAAwB,CAAC,EAAE;IACtE,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,cAAuB,CAAC,EAAE;IACpE;QACE,MAAM,EAAE,yCAAyC;QACjD,MAAM,EAAE,CAAC,cAAuB,EAAE,eAAwB,CAAC;KAC5D;IACD,EAAE,MAAM,EAAE,uCAAuC,EAAE,MAAM,EAAE,CAAC,kBAA2B,CAAC,EAAE;IAC1F,EAAE,MAAM,EAAE,yCAAyC,EAAE,MAAM,EAAE,CAAC,cAAuB,CAAC,EAAE;IACxF,EAAE,MAAM,EAAE,qCAAqC,EAAE,MAAM,EAAE,CAAC,aAAsB,CAAC,EAAE;IACnF,EAAE,MAAM,EAAE,oCAAoC,EAAE,MAAM,EAAE,CAAC,YAAqB,CAAC,EAAE;CAClF,CAAC;AAEF,SAAS,cAAc,CAAC,KAAkB;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAEhD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;wBAC7F,mBAAmB,KAAK,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAC1E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,KAAkB,EAAE,MAAwB;IACtE,MAAM,KAAK,GAAsB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAc,EAAE,CAAC;QACnC,MAAM,YAAY,GAAsB,EAAE,CAAC;QAE3C,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,WAAW,GAAa,EAAE,CAAC;YAEjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ;oBAAE,SAAS,CAAC,0CAA0C;gBAEnE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClC,2EAA2E;gBAC3E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,MAAM,OAAO,GAAG,WAAW;qBACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACb,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,EAAE,IAAI;wBAAE,OAAO,KAAK,CAAC;oBAC/B,4CAA4C;oBAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC;oBACjE,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEd,iDAAiD;gBACjD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,IAAI,iCAAiC,OAAO,IAAI;wBAC1E,4BAA4B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvD,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,IAAI,CAAC,IAAI,oBAAoB,OAAO,IAAI;wBACnE,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAC3C,CAAC;gBACJ,CAAC;gBACD,+CAA+C;gBAE/C,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1D,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI;YACJ,YAAY;YACZ,YAAY;YACZ,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB;SACtD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CACjB,YAAuB,EACvB,QAA8B;IAE9B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,sEAAsE;QACtE,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,kBAAkB,CAAC;QACnD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,iGAAiG;IACjG,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6BAA6B;AAC7B,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,KAAwB,EAAE,SAAiC;IAClF,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/E,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,0EAA0E;YAC1E,iFAAiF;YACjF,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAClC,wEAAwE;gBACxE,wEAAwE;gBACxE,MAAM,cAAc,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBACjE,MAAM,iBAAiB,GAAG,SAAS,CAAC,cAAc,CAA8B,CAAC;gBACjF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAE5E,iFAAiF;gBACjF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;qBAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;qBAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;gBAEvE,qEAAqE;gBACrE,gFAAgF;gBAChF,KAAK,CAAC,IAAI,CAAC,4CAA4C,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC;gBACjF,KAAK,CAAC,IAAI,CAAC,6CAA6C,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC;YACpF,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;qBAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,4CAA4C,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;YAC7F,CAAC;YAED,KAAK,CAAC,IAAI,CACR,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAC1D,yCAAyC,EACzC,yBAAyB,EACzB,iBAAiB,EACjB,oDAAoD,EACpD,6CAA6C,EAC7C,wCAAwC,EACxC,iDAAiD,EACjD,mDAAmD,EACnD,KAAK,EACL,GAAG,EACH,cAAc,EACd,0BAA0B,EAC1B,0FAA0F,EAC1F,IAAI,CACL,CAAC;YAEF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAE7C,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAEvC,IAAI,CAAC;gBACH,QAAQ,CACN,aAAa,SAAS,cAAc,OAAO,6BAA6B,EACxE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAChC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACb,iDAAiD,IAAI,CAAC,IAAI,6BAA6B,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CACzE,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,SAAS,CAAC,GAAG,CAAgB,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,KAAa,EAAE,OAAgB,EAAE,OAAoB;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtE,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAE1D,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;QAClE,OAAQ,YAAoC,CAAC,OAAO,CAAC;IACvD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,OAAgB,EAAE,OAAoB;IAC/E,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,mEAAmE;QACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,OAAgB;IACrD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,gFAAgF;QAChF,OAAO,GAAG,QAAQ,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,0CAA0C,QAAQ,KAAK,CAAC;AACjE,CAAC;AASD,SAAS,mBAAmB,CAAC,KAAwB,EAAE,OAAoB;IACzE,MAAM,KAAK,GAA6B,EAAE,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAErC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;gBAChB,OAAO;gBACP,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;wBACzC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;qBAC3B;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AASD,SAAS,kBAAkB,CAAC,KAAwB,EAAE,OAAoB;IACxE,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QAEnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAErC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACtE,MAAM,KAAK,GAA2D;gBACpE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;gBACxC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;aAC3B,CAAC;YACF,IAAI,OAAO,KAAK,GAAG;gBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC7C,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAeD,SAAS,qBAAqB,CAAC,KAAwB;IACrD,MAAM,KAAK,GAAgC,EAAE,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAS;QAEtD,MAAM,KAAK,GAA8B;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG;YACjC,WAAW,EAAE,YAAY,IAAI,CAAC,IAAI,KAAK;YACvC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;SAC3B,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE9C,aAAa,CACX,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACvC,CAAC;IACF,aAAa,CACX,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACtC,CAAC;IACF,aAAa,CACX,IAAI,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,EAClD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACzC,CAAC;AACJ,CAAC;AAgBD,SAAS,sBAAsB,CAAC,KAAwB;IACtD,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB;SACjD,CAAC;IACJ,CAAC;IAED,aAAa,CACX,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,EACnD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACvC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,UAAU;IACV,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,UAAU;IACV,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAErC,UAAU;IACV,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtB,UAAU;IACV,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEhD,uEAAuE;IACvE,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAClC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CACT,KAAK,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAChF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAIvC;IACC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChC,sEAAsE;QACtE,wEAAwE;QACxE,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,YAAY,GAChB,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,2CAA2C,WAAW,kDAAkD;YACtG,iFAAiF,CACpF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAKtC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,iCAAiC;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC5B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC3C,IAAI,IAAI;4BAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,gCAAgC;YAChC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,IAAI;oBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEjC,kEAAkE;IAClE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0CAA0C,GAAG,0BAA0B,IAAI,8BAA8B;gBACvG,6EAA6E,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED,8DAA8D;AAC9D,IACE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC3C,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,54 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * scripts/cli.ts
4
- *
5
- * nexus-core CLI — subcommand dispatcher.
6
- *
7
- * Usage:
8
- * nexus-core <command> [flags]
9
- * bun run scripts/cli.ts <command> [flags]
10
- *
11
- * Commands:
12
- * sync Build agents + hooks (build-agents + build-hooks pipeline)
13
- * init Copy plugin template to a target directory
14
- * list List agents, skills, and hooks from assets/
15
- * validate Validate frontmatter and YAML assets
16
- * mcp Start the MCP stdio server (same as nexus-mcp)
17
- *
18
- * Flags:
19
- * --help, -h Show help for the current command
20
- */
21
- export declare const ROOT: string;
22
- export declare const ASSETS_DIR: string;
23
- export interface ParsedFlags {
24
- harness?: string;
25
- target?: string;
26
- dryRun: boolean;
27
- force: boolean;
28
- strict: boolean;
29
- only?: string;
30
- help: boolean;
31
- remaining: string[];
32
- }
33
- export declare function parseFlags(argv: string[]): ParsedFlags;
34
- export declare function runSync(argv: string[]): Promise<void>;
35
- export declare function runInit(argv: string[]): Promise<void>;
36
- interface ListEntry {
37
- kind: "agent" | "skill" | "hook";
38
- name: string;
39
- description: string;
40
- }
41
- export declare function collectListEntries(): ListEntry[];
42
- export declare function runList(argv: string[]): Promise<void>;
43
- export interface ValidationResult {
44
- ok: boolean;
45
- errors: string[];
46
- warnings: string[];
47
- checked: number;
48
- }
49
- export declare function runValidateSync(): ValidationResult;
50
- export declare function runValidate(argv: string[]): Promise<void>;
51
- export declare function runMcp(argv: string[]): Promise<void>;
52
- export declare function main(argv: string[]): Promise<void>;
53
- export {};
54
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../scripts/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG;AAaH,eAAO,MAAM,IAAI,QAA6B,CAAC;AAC/C,eAAO,MAAM,UAAU,QAAuB,CAAC;AAM/C,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CA8BtD;AA4FD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD3D;AAMD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B3D;AAsBD,UAAU,SAAS;IACjB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAsDhD;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B3D;AAMD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAwFlD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/D;AAMD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1D;AAMD,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BxD"}