@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,353 +0,0 @@
1
- # tool-name-map.yml
2
- # nexus standard tool names (PascalCase) -> 3 harness native mapping
3
- # Used by wrapper (runtime.ts) for alias transformation and Bash command parsing
4
- #
5
- # Sources:
6
- # - plan.json Issue #3 decision (tool name standard + Bash parsing)
7
- # - plan.json Issue #4 decision (Codex limit workarounds, extended Bash parse patterns)
8
- # - plan.json Issue #5 decision §6 (PascalCase standard for matcher)
9
- # - .nexus/memory/external-codex-hooks-tools.md §8 (3-harness tool mapping table)
10
- #
11
- # null = tool not natively supported by that harness
12
- # Codex shell tools: primary is "shell" (most general); aliases listed for alias transformation
13
-
14
- tools:
15
-
16
- # ── General tools ────────────────────────────────────────────────────────────
17
-
18
- Bash:
19
- claude: Bash
20
- codex:
21
- primary: shell
22
- aliases: [shell_command, exec_command, exec]
23
- opencode: bash
24
-
25
- Read:
26
- claude: Read
27
- codex: null # No standalone Read; uses shell cat/head/tail (see bash_parse_patterns)
28
- opencode: read
29
-
30
- Edit:
31
- claude: Edit
32
- codex: apply_patch # Codex uses apply_patch for all file edits
33
- opencode: edit
34
-
35
- Write:
36
- claude: Write
37
- codex: apply_patch
38
- opencode: write
39
-
40
- MultiEdit:
41
- claude: MultiEdit
42
- codex: apply_patch
43
- opencode: edit
44
-
45
- # ApplyPatch: Codex-native concept; Claude decomposes into Edit/MultiEdit
46
- ApplyPatch:
47
- claude: [Edit, MultiEdit] # Claude has no single ApplyPatch; uses per-file tools
48
- codex: apply_patch
49
- opencode: [apply_patch, edit] # OpenCode supports both forms
50
-
51
- Grep:
52
- claude: Grep
53
- codex: null # Uses shell + rg (see bash_parse_patterns)
54
- opencode: grep
55
-
56
- Glob:
57
- claude: Glob
58
- codex: null # Uses shell + find (see bash_parse_patterns)
59
- opencode: glob
60
-
61
- LS:
62
- claude: LS
63
- codex: list_dir
64
- opencode: list
65
-
66
- WebFetch:
67
- claude: WebFetch
68
- codex: null # No equivalent; web_search only
69
- opencode: webfetch
70
-
71
- WebSearch:
72
- claude: WebSearch
73
- codex: web_search
74
- opencode: websearch
75
-
76
- ViewImage:
77
- claude: Read # Claude handles images via Read (branch on mime type)
78
- codex: view_image
79
- opencode: null # Confirmed unavailable per memory §8
80
-
81
- REPL:
82
- claude: REPL
83
- codex: [js_repl, js_repl_reset]
84
- opencode: null # Confirmed unavailable per memory §8
85
-
86
- ToolSearch:
87
- claude: ToolSearch
88
- codex: [tool_search, tool_suggest]
89
- opencode: null # Confirmed unavailable per memory §8
90
-
91
- # ── Meta tools — invocation guidance only; wrapper mapping not required (#3 decision) ──
92
-
93
- Task: # Subagent spawn
94
- claude: Agent # Claude exposes this as the Agent tool (also called Task in docs)
95
- codex: spawn_agent
96
- opencode: task
97
-
98
- Skill:
99
- claude: Skill
100
- codex: null # Codex uses $skill-name syntax directly in composer (no tool call)
101
- opencode: skill
102
-
103
- TodoWrite:
104
- claude: TodoWrite
105
- codex: update_plan
106
- opencode: todowrite
107
-
108
- TodoRead:
109
- claude: TodoRead
110
- codex: update_plan # update_plan subsumes read via plan/step/status fields
111
- opencode: todoread
112
-
113
- AskUserQuestion:
114
- claude: AskUserQuestion
115
- codex: request_user_input
116
- opencode: question
117
-
118
- RequestPermissions:
119
- claude: null # Claude uses PermissionRequest hook event, not a tool
120
- codex: request_permissions
121
- opencode: null # permission.ask (#7006) confirmed non-firing; out of portable scope
122
-
123
- # ── MCP tool prefix convention ────────────────────────────────────────────────
124
- # MCP tools are exposed under a namespaced prefix in all three harnesses.
125
- # wrapper normalizes any mcp__<server>__<tool> name to this canonical form.
126
- mcp_tool_prefix: "mcp__<server>__<tool>"
127
-
128
- # ── Bash parse patterns ───────────────────────────────────────────────────────
129
- # Used by wrapper to normalize Codex Bash (shell) commands into nexus standard tool_name.
130
- # Applies to: PreToolUse / PostToolUse tool_input.command (Codex), post-tool-telemetry matcher.
131
- # Strategy: best-effort single-entrypoint match on command string prefix.
132
- # Compound commands, pipes, and sudo are NOT matched and remain tool_name=Bash.
133
- #
134
- # Source: plan.json Issue #3 section "Bash parsing" + Issue #4 section 2 "Bash parsing extension"
135
-
136
- bash_parse_patterns:
137
-
138
- Read:
139
- - "^(cat|head|tail|less|more) "
140
-
141
- LS:
142
- - "^ls( |$)"
143
-
144
- Glob:
145
- - "^find "
146
-
147
- Grep:
148
- - "^(rg|grep) "
149
-
150
- Write:
151
- - "^echo .+ > " # stdout redirect (overwrite)
152
- - "^touch "
153
- - "^tee "
154
- - "^cp "
155
- - "^cat > .+ <<" # heredoc write
156
-
157
- Edit:
158
- - "^echo .+ >> " # stdout redirect (append)
159
- - "^sed -i "
160
- - "^mv "
161
-
162
- # ── Capability notes (non-normative) ─────────────────────────────────────────
163
- # Authoritative capability data lives in assets/hooks/capability-matrix.yml.
164
- # These notes summarize key harness gaps relevant to alias mapping.
165
- #
166
- # Codex:
167
- # - No standalone Read/Edit/Write tools; file operations go through apply_patch or shell
168
- # - apply_patch does not emit PreToolUse/PostToolUse as of 2026-04-18
169
- # (PR #18391 pending merge; capability matrix entry: event.pre_tool_use.edit.codex=false)
170
- # - MCP tools do not emit PreToolUse/PostToolUse (Codex #16732, Claude-only)
171
- # - Skill invocation is $skill-name syntax, not a tool call
172
- #
173
- # OpenCode:
174
- # - permission.ask (#7006) confirmed non-firing; RequestPermissions out of portable scope
175
- # - PostToolUse additional_context injection not adopted as standard (YAGNI, plan.json #6)
176
-
177
- # ── invocations ───────────────────────────────────────────────────────────────
178
- # Canonical invocation patterns for cross-harness agent/skill coordination.
179
- # These are NOT wrapper-normalized tool names — they are prose/template references
180
- # for skill authors and build scripts that emit harness-specific call syntax.
181
- #
182
- # Each template uses {placeholder} for substituted values.
183
- # Optional arguments are shown as {arg?} — omit the surrounding delimiters when absent.
184
- # Build scripts must strip optional segments when the corresponding arg is absent.
185
- #
186
- # Sources (per template):
187
- # Claude Agent tool: https://code.claude.com/docs/en/sub-agents
188
- # Verified: .nexus/memory/external-claude-code-hooks-tools.md §6 (Agent/Task tool)
189
- # Claude Skill tool: https://code.claude.com/docs/en/skills
190
- # Verified: .nexus/memory/external-claude-code-hooks-tools.md — Skill §
191
- # OpenCode task tool: https://opencode.ai/docs/tools/ (task tool Zod schema)
192
- # Verified: .nexus/memory/external-opencode-hooks-tools.md §15 (official params)
193
- # OpenCode skill tool: https://opencode.ai/docs/skills/
194
- # Verified: .nexus/memory/external-opencode-hooks-tools.md — Skill § (name param only)
195
- # Codex spawn_agent: https://developers.openai.com/codex/config-reference
196
- # Verified: .nexus/memory/external-codex-hooks-tools.md §7-5
197
- # Codex skill ($prefix): https://developers.openai.com/codex/skills
198
- # Verified: .nexus/memory/external-codex-hooks-tools.md — Skill §
199
- # Codex update_plan: .nexus/memory/external-codex-hooks-tools.md §7-4
200
- # Codex request_user_input: .nexus/memory/external-codex-hooks-tools.md §7-4
201
-
202
- invocations:
203
-
204
- # subagent_spawn — spawn a new subagent from within a skill or agent body.
205
- #
206
- # args:
207
- # target_role : string — role/type ID of the agent to spawn (e.g. "engineer")
208
- # prompt : string — instruction text delivered to the subagent
209
- # name : string? — optional human-readable label / description
210
- #
211
- # Claude — Agent tool (also referred to as "Task" in docs).
212
- # subagent_type selects the agent role. description is the optional display label.
213
- # Source: https://code.claude.com/docs/en/sub-agents (Agent tool: subagent_type, prompt, description)
214
- # Verified: .nexus/memory/external-claude-code-hooks-tools.md §6
215
- #
216
- # OpenCode — task tool. Official Zod schema: { subagent_type, prompt, description, task_id? }
217
- # description is required in OpenCode (unlike Claude where it is optional).
218
- # task_id is used to resume a prior session; omitted on initial spawn.
219
- # Source: https://opencode.ai/docs/tools/
220
- # Verified: .nexus/memory/external-opencode-hooks-tools.md §15 (source-confirmed schema)
221
- #
222
- # Codex — spawn_agent tool. Second arg is the instruction prompt.
223
- # Codex agent roles are resolved from native agent config (config.toml [agents.*]).
224
- # Source: https://developers.openai.com/codex/config-reference
225
- # Verified: .nexus/memory/external-codex-hooks-tools.md §7-5
226
- subagent_spawn:
227
- args: [target_role, prompt, name] # name is optional
228
- templates:
229
- claude: 'Agent({ subagent_type: "{target_role}", prompt: "{prompt}", description: "{name}" })'
230
- opencode: 'task({ subagent_type: "{target_role}", prompt: "{prompt}", description: "{name}" })'
231
- codex: 'spawn_agent("{target_role}", "{prompt}")'
232
- notes:
233
- claude: >
234
- description field is optional; omit when name arg is absent.
235
- model field may be added to override the spawned agent's model.
236
- opencode: >
237
- description is required by OpenCode's Zod schema — use target_role as
238
- fallback when name is absent. task_id param enables session resume (§15).
239
- codex: >
240
- Agent role must be pre-registered in config.toml [agents.<target_role>].
241
- No description equivalent in spawn_agent call signature.
242
-
243
- # skill_activation — invoke a skill from within an agent or skill body.
244
- #
245
- # args:
246
- # skill : string — canonical skill name (e.g. "nx-plan")
247
- # mode : string? — optional argument / mode string passed to the skill
248
- #
249
- # Claude — Skill tool. Single `command` string parameter only; no `args` field.
250
- # Plugin-namespaced skills use "plugin:skill" form (e.g. "claude-nexus:nx-plan").
251
- # Source: https://code.claude.com/docs/en/skills
252
- # Verified: .nexus/memory/external-claude-code-hooks-tools.md — Skill § (command param schema)
253
- #
254
- # OpenCode — skill tool. Single `name` string parameter; no `args` parameter.
255
- # $ARGUMENTS placeholder substitution in SKILL.md body is unconfirmed.
256
- # Source: https://opencode.ai/docs/skills/
257
- # Verified: .nexus/memory/external-opencode-hooks-tools.md — Skill § (name param only)
258
- #
259
- # Codex — $skill-name composer prefix, not a tool call. Positional and KEY=value
260
- # args are theoretically supported but confirmed only for Custom Prompts, not Skills.
261
- # Source: https://developers.openai.com/codex/skills
262
- # Verified: .nexus/memory/external-codex-hooks-tools.md — Skill § ($ prefix syntax)
263
- skill_activation:
264
- args: [skill, mode] # mode is optional
265
- templates:
266
- claude: 'Skill({ command: "{skill}" })'
267
- opencode: 'skill({ name: "{skill}" })'
268
- codex: '${skill}'
269
- notes:
270
- claude: >
271
- The Skill tool accepts only the `command` string; mode/args cannot be
272
- passed as a separate parameter. Mode must be embedded in the SKILL.md body
273
- via $ARGUMENTS placeholder substitution.
274
- opencode: >
275
- The skill tool accepts only `name`; args passing is unconfirmed per source
276
- review. Design skills to be args-free or embed defaults in SKILL.md body.
277
- codex: >
278
- Positional args: "$skill-name {mode}". Named args: "$skill-name MODE={mode}".
279
- Confirmed only for Custom Prompts; treat as best-effort for Skills.
280
- $ prefix is literal in composer input, not a tool call.
281
-
282
- # task_register — register or update a task in the plan tracker.
283
- #
284
- # args:
285
- # label : string — task subject / display label
286
- # state : string — task status (e.g. "in_progress", "completed", "blocked")
287
- #
288
- # Claude — TaskCreate tool for new tasks; TaskUpdate (nx_task_update MCP tool) for state.
289
- # TaskCreate is a Claude Code native meta tool.
290
- # Source: https://code.claude.com/docs/en/sub-agents
291
- # Verified: .nexus/memory/external-claude-code-hooks-tools.md §6 (TaskCreate tool entry)
292
- # Note: nx_task_update refers to the MCP tool exposed by nexus-core server.
293
- #
294
- # OpenCode — nx_task_add MCP tool to create; nx_task_update MCP tool to update state.
295
- # MCP tool names are identical across harnesses (server exposes same tool names).
296
- # Source: nexus-core MCP server implementation (src/mcp/tools/)
297
- #
298
- # Codex — update_plan native tool manages plan steps including state.
299
- # plan/step/status sub-fields subsume both create and update operations.
300
- # Source: https://developers.openai.com/codex/config-reference
301
- # Verified: .nexus/memory/external-codex-hooks-tools.md §7-4
302
- task_register:
303
- args: [label, state]
304
- templates:
305
- claude: 'TaskCreate({ subject: "{label}" }) then nx_task_update({ taskId, status: "{state}" })'
306
- opencode: 'nx_task_add({ subject: "{label}" }) then nx_task_update({ taskId, status: "{state}" })'
307
- codex: 'update_plan([{ name: "{label}", state: "{state}" }])'
308
- notes:
309
- claude: >
310
- TaskCreate is a Claude Code native tool (not MCP). nx_task_update is the
311
- nexus-core MCP tool — full name mcp__plugin_claude-nexus_nx__nx_task_update.
312
- taskId is returned by TaskCreate and must be threaded to the update call.
313
- opencode: >
314
- Both nx_task_add and nx_task_update are nexus-core MCP tools exposed via
315
- the nexus MCP server. task_id returned by nx_task_add must be threaded to update.
316
- codex: >
317
- update_plan subsumes creation and update in a single call via plan/step/status
318
- fields. No separate create/update step is needed.
319
-
320
- # user_question — request structured input from the user.
321
- #
322
- # args:
323
- # question : string — the question text to present
324
- # options : string[] — list of choices (may be empty for free-text responses)
325
- #
326
- # Claude — AskUserQuestion tool. questions[] array supports multiple simultaneous
327
- # questions; single-question usage is the standard nexus pattern.
328
- # Source: https://code.claude.com/docs/en/sub-agents (AskUserQuestion tool)
329
- # Verified: .nexus/memory/external-claude-code-hooks-tools.md §6
330
- #
331
- # OpenCode — question tool. Single question with choices array.
332
- # Source: https://opencode.ai/docs/tools/
333
- # Verified: .nexus/memory/external-opencode-hooks-tools.md §7 (question tool entry)
334
- #
335
- # Codex — request_user_input native tool.
336
- # Source: https://developers.openai.com/codex/config-reference
337
- # Verified: .nexus/memory/external-codex-hooks-tools.md §7-4
338
- user_question:
339
- args: [question, options]
340
- templates:
341
- claude: 'AskUserQuestion({ questions: [{ question: "{question}", options: {options} }] })'
342
- opencode: 'question({ question: "{question}", choices: {options} })'
343
- codex: 'request_user_input({ prompt: "{question}", options: {options} })'
344
- notes:
345
- claude: >
346
- options is a JSON array of strings. Omit the options field (not an empty array)
347
- for free-text responses. Multiple questions can be batched in the questions[] array.
348
- opencode: >
349
- choices field name (not options). Omit choices for free-text input.
350
- codex: >
351
- Exact request_user_input schema (options field name, types) is not fully
352
- documented — treat as best-effort. Verified as a native Codex tool in
353
- external-codex-hooks-tools.md §7-4.
@@ -1,4 +0,0 @@
1
- import type { HookHandler } from "../../../src/hooks/types.js";
2
- declare const handler: HookHandler;
3
- export default handler;
4
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../assets/hooks/agent-bootstrap/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAoF/D,QAAA,MAAM,OAAO,EAAE,WA6Cd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,114 +0,0 @@
1
- import { updateJsonFileLocked } from "../../../src/shared/json-store.js";
2
- import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
3
- import { join } from "node:path";
4
- const CORE_INDEX_SIZE_LIMIT = 2 * 1024; // 2KB
5
- function loadValidRoles(cwd) {
6
- const inlined = globalThis.__NEXUS_INLINE_AGENT_ROLES__;
7
- if (Array.isArray(inlined))
8
- return inlined;
9
- const agentsDir = join(cwd, "assets/agents");
10
- if (!existsSync(agentsDir))
11
- return [];
12
- return readdirSync(agentsDir, { withFileTypes: true })
13
- .filter((e) => e.isDirectory())
14
- .map((e) => e.name);
15
- }
16
- function readFirstLine(path) {
17
- try {
18
- const content = readFileSync(path, "utf-8");
19
- const firstNonEmpty = content.split("\n").find((l) => l.trim().length > 0) ?? "";
20
- return firstNonEmpty.replace(/^#+\s*/, "").slice(0, 80);
21
- }
22
- catch {
23
- return "";
24
- }
25
- }
26
- function buildCoreIndex(cwd) {
27
- const entries = [];
28
- for (const sub of [".nexus/memory", ".nexus/context"]) {
29
- const absDir = join(cwd, sub);
30
- if (!existsSync(absDir))
31
- continue;
32
- for (const f of readdirSync(absDir, { withFileTypes: true })) {
33
- if (!f.isFile() || !f.name.endsWith(".md"))
34
- continue;
35
- const full = join(absDir, f.name);
36
- entries.push({
37
- path: `${sub}/${f.name}`,
38
- mtime: statSync(full).mtimeMs,
39
- line: readFirstLine(full),
40
- });
41
- }
42
- }
43
- entries.sort((a, b) => b.mtime - a.mtime);
44
- const lines = [];
45
- let bytes = 0;
46
- for (const e of entries) {
47
- const formatted = `- ${e.path}: ${e.line}`;
48
- if (bytes + formatted.length + 1 > CORE_INDEX_SIZE_LIMIT)
49
- break;
50
- lines.push(formatted);
51
- bytes += formatted.length + 1;
52
- }
53
- return lines.length > 0
54
- ? "Available memory/context:\n" + lines.join("\n")
55
- : "";
56
- }
57
- function getResumeCount(cwd, sessionId, agentId) {
58
- const trackerPath = join(cwd, ".nexus/state", sessionId, "agent-tracker.json");
59
- if (!existsSync(trackerPath))
60
- return 0;
61
- try {
62
- const tracker = JSON.parse(readFileSync(trackerPath, "utf-8"));
63
- const entry = Array.isArray(tracker)
64
- ? tracker.find((e) => e.agent_id === agentId)
65
- : null;
66
- return entry?.resume_count ?? 0;
67
- }
68
- catch {
69
- return 0;
70
- }
71
- }
72
- const handler = async (input) => {
73
- if (input.hook_event_name !== "SubagentStart")
74
- return;
75
- const { cwd, session_id, agent_type, agent_id } = input;
76
- // fresh only — skip on resume
77
- const resumeCount = getResumeCount(cwd, session_id, agent_id);
78
- if (resumeCount > 0)
79
- return;
80
- // unregistered role: silent skip
81
- const validRoles = loadValidRoles(cwd);
82
- if (!validRoles.includes(agent_type))
83
- return;
84
- const trackerPath = join(cwd, ".nexus/state", session_id, "agent-tracker.json");
85
- await updateJsonFileLocked(trackerPath, [], (tracker) => {
86
- const list = Array.isArray(tracker) ? tracker : [];
87
- if (list.find((e) => e["agent_id"] === agent_id))
88
- return list;
89
- list.push({
90
- agent_id,
91
- agent_type,
92
- started_at: new Date().toISOString(),
93
- status: "running",
94
- });
95
- return list;
96
- });
97
- const parts = [];
98
- const coreIndex = buildCoreIndex(cwd);
99
- if (coreIndex) {
100
- parts.push(`<system-notice>\n${coreIndex}\n</system-notice>`);
101
- }
102
- const rulePath = join(cwd, ".nexus/rules", `${agent_type}.md`);
103
- if (existsSync(rulePath)) {
104
- const ruleContent = readFileSync(rulePath, "utf-8").trim();
105
- if (ruleContent) {
106
- parts.push(`<system-notice>\nCustom rule for ${agent_type}:\n${ruleContent}\n</system-notice>`);
107
- }
108
- }
109
- if (parts.length === 0)
110
- return;
111
- return { additional_context: parts.join("\n\n") };
112
- };
113
- export default handler;
114
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../assets/hooks/agent-bootstrap/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM;AAE9C,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAI,UAAqE,CAAC,4BAA4B,CAAC;IACpH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,aAAa,GACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,OAAO,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAyD,EAAE,CAAC;IAEzE,KAAK,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QAClC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE;gBACxB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO;gBAC7B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,qBAAqB;YAAE,MAAM;QAChE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,6BAA6B,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,cAAc,CACrB,GAAW,EACX,SAAiB,EACjB,OAAe;IAEf,MAAM,WAAW,GAAG,IAAI,CACtB,GAAG,EACH,cAAc,EACd,SAAS,EACT,oBAAoB,CACrB,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;YACpE,CAAC,CAAC,IAAI,CAAC;QACT,OAAQ,KAA0C,EAAE,YAAY,IAAI,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAgB,KAAK,EAAE,KAAK,EAAE,EAAE;IAC3C,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe;QAAE,OAAO;IAEtD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAExD,8BAA8B;IAC9B,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO;IAE5B,iCAAiC;IACjC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO;IAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAChF,MAAM,oBAAoB,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,OAAuC,EAAE,EAAE;QACtF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC;YACR,QAAQ;YACR,UAAU;YACV,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,UAAU,KAAK,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CACR,oCAAoC,UAAU,MAAM,WAAW,oBAAoB,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { HookHandler } from "../../../src/hooks/types.js";
2
- declare const handler: HookHandler;
3
- export default handler;
4
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../assets/hooks/agent-finalize/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAK/D,QAAA,MAAM,OAAO,EAAE,WAoEd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,63 +0,0 @@
1
- import { updateJsonFileLocked } from "../../../src/shared/json-store.js";
2
- import { existsSync, readFileSync } from "node:fs";
3
- import { join } from "node:path";
4
- const handler = async (input) => {
5
- if (input.hook_event_name !== "SubagentStop")
6
- return;
7
- const { cwd, session_id, agent_type, agent_id } = input;
8
- const lastMessage = (input.last_assistant_message ?? "").slice(0, 500);
9
- const sessionDir = join(cwd, ".nexus/state", session_id);
10
- const trackerPath = join(sessionDir, "agent-tracker.json");
11
- const toolLogPath = join(sessionDir, "tool-log.jsonl");
12
- const tasksPath = join(sessionDir, "tasks.json");
13
- // 1. tracker update + files_touched aggregation (locked)
14
- await updateJsonFileLocked(trackerPath, [], (tracker) => {
15
- const entry = tracker.find((e) => e["agent_id"] === agent_id);
16
- if (!entry)
17
- return tracker;
18
- entry["status"] = "completed";
19
- entry["stopped_at"] = new Date().toISOString();
20
- entry["last_message"] = lastMessage;
21
- if (existsSync(toolLogPath)) {
22
- const files = new Set();
23
- const raw = readFileSync(toolLogPath, "utf-8");
24
- for (const line of raw.split("\n")) {
25
- if (!line.trim())
26
- continue;
27
- try {
28
- const log = JSON.parse(line);
29
- if (log["agent_id"] === agent_id && typeof log["file"] === "string") {
30
- files.add(log["file"]);
31
- }
32
- }
33
- catch {
34
- // skip malformed lines
35
- }
36
- }
37
- entry["files_touched"] = [...files];
38
- }
39
- return tracker;
40
- });
41
- // 2. pending tasks alert (owner.role === agent_type)
42
- if (!existsSync(tasksPath))
43
- return;
44
- try {
45
- const tasksData = JSON.parse(readFileSync(tasksPath, "utf-8"));
46
- const tasks = Array.isArray(tasksData?.["tasks"])
47
- ? tasksData["tasks"]
48
- : [];
49
- const incomplete = tasks.filter((t) => t["owner"]?.["role"] === agent_type &&
50
- t["status"] !== "completed");
51
- if (incomplete.length === 0)
52
- return;
53
- const ids = incomplete.map((t) => t["id"]).join(", ");
54
- return {
55
- additional_context: `<system-notice>\nSubagent "${agent_type}" finished. Tasks still pending with this role: ${ids}. Review status and coordinate remaining subagent delegation.\n</system-notice>`,
56
- };
57
- }
58
- catch {
59
- return;
60
- }
61
- };
62
- export default handler;
63
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../assets/hooks/agent-finalize/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,GAAgB,KAAK,EAAE,KAAK,EAAE,EAAE;IAC3C,IAAI,KAAK,CAAC,eAAe,KAAK,cAAc;QAAE,OAAO;IAErD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACxD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAEjD,yDAAyD;IACzD,MAAM,oBAAoB,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,OAAkB,EAAE,EAAE;QACjE,MAAM,KAAK,GAAI,OAAqC,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,CAClC,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC;QAE3B,KAAK,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QAC9B,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,KAAK,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QAEpC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;oBACxD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACpE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;YACD,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO;IAEnC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAY,CAAC;QAC1E,MAAM,KAAK,GAA8B,KAAK,CAAC,OAAO,CACnD,SAAqC,EAAE,CAAC,OAAO,CAAC,CAClD;YACC,CAAC,CAAG,SAAqC,CAAC,OAAO,CAA+B;YAChF,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CACH,CAAC,CAAC,OAAO,CAAyC,EAAE,CAAC,MAAM,CAAC,KAAK,UAAU;YAC5E,CAAC,CAAC,QAAQ,CAAC,KAAK,WAAW,CAC9B,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEpC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO;YACL,kBAAkB,EAAE,8BAA8B,UAAU,mDAAmD,GAAG,iFAAiF;SACpM,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { HookHandler } from "../../../src/hooks/types.js";
2
- declare const handler: HookHandler;
3
- export default handler;
4
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../assets/hooks/post-tool-telemetry/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY/D,QAAA,MAAM,OAAO,EAAE,WAkCd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,40 +0,0 @@
1
- import { appendJsonLine } from "../../../src/shared/json-store.js";
2
- import { join, resolve, relative } from "node:path";
3
- const EDIT_TOOLS = new Set(["Edit", "Write", "MultiEdit", "ApplyPatch", "NotebookEdit"]);
4
- function isWithinMemory(filePath, projectRoot) {
5
- const memRoot = resolve(projectRoot, ".nexus/memory");
6
- const abs = resolve(filePath);
7
- return abs.startsWith(memRoot + "/") || abs === memRoot;
8
- }
9
- const handler = async (input) => {
10
- if (input.hook_event_name !== "PostToolUse")
11
- return;
12
- const { cwd, session_id, tool_name, agent_id } = input;
13
- const toolInput = (input.tool_input ?? {});
14
- // 1. Memory access tracking (Read)
15
- if (tool_name === "Read") {
16
- const filePath = toolInput.file_path;
17
- if (filePath && isWithinMemory(filePath, cwd)) {
18
- appendJsonLine(join(cwd, ".nexus/memory-access.jsonl"), {
19
- path: relative(cwd, resolve(filePath)),
20
- accessed_at: new Date().toISOString(),
21
- agent: agent_id ?? null,
22
- });
23
- }
24
- }
25
- // 2. Tool-log append (edit tools + agent_id present)
26
- if (EDIT_TOOLS.has(tool_name) && agent_id) {
27
- const filePath = (toolInput.file_path ?? toolInput.notebook_path);
28
- if (filePath) {
29
- appendJsonLine(join(cwd, ".nexus/state", session_id, "tool-log.jsonl"), {
30
- ts: new Date().toISOString(),
31
- agent_id,
32
- tool: tool_name,
33
- file: relative(cwd, resolve(filePath)),
34
- status: "ok",
35
- });
36
- }
37
- }
38
- };
39
- export default handler;
40
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../assets/hooks/post-tool-telemetry/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;AAEzF,SAAS,cAAc,CAAC,QAAgB,EAAE,WAAmB;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,GAAgB,KAAK,EAAE,KAAK,EAAE,EAAE;IAC3C,IAAI,KAAK,CAAC,eAAe,KAAK,aAAa;QAAE,OAAO;IAEpD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACvD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAEtE,mCAAmC;IACnC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,SAA+B,CAAC;QAC3D,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9C,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,EAAE;gBACtD,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,KAAK,EAAE,QAAQ,IAAI,IAAI;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,aAAa,CAAuB,CAAC;QACxF,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,CACZ,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,EACvD;gBACE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,QAAQ;gBACR,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,EAAE,IAAI;aACb,CACF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { HookHandler } from "../../../src/hooks/types.js";
2
- declare const handler: HookHandler;
3
- export default handler;
4
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../assets/hooks/prompt-router/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AA8GhF,QAAA,MAAM,OAAO,EAAE,WA+Jd,CAAC;AAEF,eAAe,OAAO,CAAC"}