maestro-flow 0.3.1 → 0.3.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 (424) hide show
  1. package/.claude/commands/maestro-overlay.md +178 -122
  2. package/.codex/skills/maestro-coordinate/SKILL.md +3 -4
  3. package/dist/src/commands/launcher.js +1 -1
  4. package/dist/src/commands/launcher.js.map +1 -1
  5. package/dist/src/commands/overlay-ui/OverlayList.d.ts +35 -0
  6. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -0
  7. package/dist/src/commands/overlay-ui/OverlayList.js +143 -0
  8. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -0
  9. package/dist/src/commands/overlay-ui/index.d.ts +2 -0
  10. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -0
  11. package/dist/src/commands/overlay-ui/index.js +188 -0
  12. package/dist/src/commands/overlay-ui/index.js.map +1 -0
  13. package/dist/src/commands/overlay.d.ts.map +1 -1
  14. package/dist/src/commands/overlay.js +79 -59
  15. package/dist/src/commands/overlay.js.map +1 -1
  16. package/dist/src/core/overlay/applier.d.ts +32 -1
  17. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  18. package/dist/src/core/overlay/applier.js +109 -1
  19. package/dist/src/core/overlay/applier.js.map +1 -1
  20. package/package.json +1 -1
  21. package/dist/agents/cli-agent-runner.d.ts +0 -131
  22. package/dist/agents/cli-agent-runner.d.ts.map +0 -1
  23. package/dist/agents/cli-agent-runner.js +0 -688
  24. package/dist/agents/cli-agent-runner.js.map +0 -1
  25. package/dist/agents/cli-history-store.d.ts +0 -63
  26. package/dist/agents/cli-history-store.d.ts.map +0 -1
  27. package/dist/agents/cli-history-store.js +0 -242
  28. package/dist/agents/cli-history-store.js.map +0 -1
  29. package/dist/agents/dashboard-bridge.d.ts +0 -39
  30. package/dist/agents/dashboard-bridge.d.ts.map +0 -1
  31. package/dist/agents/dashboard-bridge.js +0 -76
  32. package/dist/agents/dashboard-bridge.js.map +0 -1
  33. package/dist/agents/parallel-cli-runner.d.ts +0 -46
  34. package/dist/agents/parallel-cli-runner.d.ts.map +0 -1
  35. package/dist/agents/parallel-cli-runner.js +0 -277
  36. package/dist/agents/parallel-cli-runner.js.map +0 -1
  37. package/dist/agents/terminal-adapter.d.ts +0 -94
  38. package/dist/agents/terminal-adapter.d.ts.map +0 -1
  39. package/dist/agents/terminal-adapter.js +0 -132
  40. package/dist/agents/terminal-adapter.js.map +0 -1
  41. package/dist/agents/terminal-backend.d.ts +0 -53
  42. package/dist/agents/terminal-backend.d.ts.map +0 -1
  43. package/dist/agents/terminal-backend.js +0 -286
  44. package/dist/agents/terminal-backend.js.map +0 -1
  45. package/dist/async/delegate-broker-client.d.ts +0 -22
  46. package/dist/async/delegate-broker-client.d.ts.map +0 -1
  47. package/dist/async/delegate-broker-client.js +0 -47
  48. package/dist/async/delegate-broker-client.js.map +0 -1
  49. package/dist/async/delegate-broker.d.ts +0 -180
  50. package/dist/async/delegate-broker.d.ts.map +0 -1
  51. package/dist/async/delegate-broker.js +0 -1040
  52. package/dist/async/delegate-broker.js.map +0 -1
  53. package/dist/async/delegate-control.d.ts +0 -37
  54. package/dist/async/delegate-control.d.ts.map +0 -1
  55. package/dist/async/delegate-control.js +0 -155
  56. package/dist/async/delegate-control.js.map +0 -1
  57. package/dist/async/index.d.ts +0 -3
  58. package/dist/async/index.d.ts.map +0 -1
  59. package/dist/async/index.js +0 -3
  60. package/dist/async/index.js.map +0 -1
  61. package/dist/cli.d.ts +0 -2
  62. package/dist/cli.d.ts.map +0 -1
  63. package/dist/cli.js +0 -40
  64. package/dist/cli.js.map +0 -1
  65. package/dist/commands/cli.d.ts +0 -3
  66. package/dist/commands/cli.d.ts.map +0 -1
  67. package/dist/commands/cli.js +0 -262
  68. package/dist/commands/cli.js.map +0 -1
  69. package/dist/commands/coordinate.d.ts +0 -3
  70. package/dist/commands/coordinate.d.ts.map +0 -1
  71. package/dist/commands/coordinate.js +0 -275
  72. package/dist/commands/coordinate.js.map +0 -1
  73. package/dist/commands/delegate.d.ts +0 -37
  74. package/dist/commands/delegate.d.ts.map +0 -1
  75. package/dist/commands/delegate.js +0 -470
  76. package/dist/commands/delegate.js.map +0 -1
  77. package/dist/commands/ext.d.ts +0 -3
  78. package/dist/commands/ext.d.ts.map +0 -1
  79. package/dist/commands/ext.js +0 -28
  80. package/dist/commands/ext.js.map +0 -1
  81. package/dist/commands/hooks.d.ts +0 -3
  82. package/dist/commands/hooks.d.ts.map +0 -1
  83. package/dist/commands/hooks.js +0 -126
  84. package/dist/commands/hooks.js.map +0 -1
  85. package/dist/commands/install.d.ts +0 -3
  86. package/dist/commands/install.d.ts.map +0 -1
  87. package/dist/commands/install.js +0 -621
  88. package/dist/commands/install.js.map +0 -1
  89. package/dist/commands/launcher.d.ts +0 -3
  90. package/dist/commands/launcher.d.ts.map +0 -1
  91. package/dist/commands/launcher.js +0 -635
  92. package/dist/commands/launcher.js.map +0 -1
  93. package/dist/commands/link-coordinate.d.ts +0 -3
  94. package/dist/commands/link-coordinate.d.ts.map +0 -1
  95. package/dist/commands/link-coordinate.js +0 -225
  96. package/dist/commands/link-coordinate.js.map +0 -1
  97. package/dist/commands/msg.d.ts +0 -3
  98. package/dist/commands/msg.d.ts.map +0 -1
  99. package/dist/commands/msg.js +0 -110
  100. package/dist/commands/msg.js.map +0 -1
  101. package/dist/commands/overlay.d.ts +0 -3
  102. package/dist/commands/overlay.d.ts.map +0 -1
  103. package/dist/commands/overlay.js +0 -243
  104. package/dist/commands/overlay.js.map +0 -1
  105. package/dist/commands/run.d.ts +0 -3
  106. package/dist/commands/run.d.ts.map +0 -1
  107. package/dist/commands/run.js +0 -15
  108. package/dist/commands/run.js.map +0 -1
  109. package/dist/commands/serve.d.ts +0 -3
  110. package/dist/commands/serve.d.ts.map +0 -1
  111. package/dist/commands/serve.js +0 -16
  112. package/dist/commands/serve.js.map +0 -1
  113. package/dist/commands/spec.d.ts +0 -8
  114. package/dist/commands/spec.d.ts.map +0 -1
  115. package/dist/commands/spec.js +0 -147
  116. package/dist/commands/spec.js.map +0 -1
  117. package/dist/commands/stop.d.ts +0 -3
  118. package/dist/commands/stop.d.ts.map +0 -1
  119. package/dist/commands/stop.js +0 -218
  120. package/dist/commands/stop.js.map +0 -1
  121. package/dist/commands/tool.d.ts +0 -3
  122. package/dist/commands/tool.d.ts.map +0 -1
  123. package/dist/commands/tool.js +0 -29
  124. package/dist/commands/tool.js.map +0 -1
  125. package/dist/commands/uninstall.d.ts +0 -3
  126. package/dist/commands/uninstall.d.ts.map +0 -1
  127. package/dist/commands/uninstall.js +0 -77
  128. package/dist/commands/uninstall.js.map +0 -1
  129. package/dist/commands/view.d.ts +0 -3
  130. package/dist/commands/view.d.ts.map +0 -1
  131. package/dist/commands/view.js +0 -337
  132. package/dist/commands/view.js.map +0 -1
  133. package/dist/config/cli-tools-config.d.ts +0 -26
  134. package/dist/config/cli-tools-config.d.ts.map +0 -1
  135. package/dist/config/cli-tools-config.js +0 -49
  136. package/dist/config/cli-tools-config.js.map +0 -1
  137. package/dist/config/cli-tools-config.test.d.ts +0 -2
  138. package/dist/config/cli-tools-config.test.d.ts.map +0 -1
  139. package/dist/config/cli-tools-config.test.js +0 -59
  140. package/dist/config/cli-tools-config.test.js.map +0 -1
  141. package/dist/config/index.d.ts +0 -4
  142. package/dist/config/index.d.ts.map +0 -1
  143. package/dist/config/index.js +0 -27
  144. package/dist/config/index.js.map +0 -1
  145. package/dist/config/paths.d.ts +0 -15
  146. package/dist/config/paths.d.ts.map +0 -1
  147. package/dist/config/paths.js +0 -27
  148. package/dist/config/paths.js.map +0 -1
  149. package/dist/config/template-discovery.d.ts +0 -32
  150. package/dist/config/template-discovery.d.ts.map +0 -1
  151. package/dist/config/template-discovery.js +0 -128
  152. package/dist/config/template-discovery.js.map +0 -1
  153. package/dist/coordinator/cli-executor.d.ts +0 -22
  154. package/dist/coordinator/cli-executor.d.ts.map +0 -1
  155. package/dist/coordinator/cli-executor.js +0 -49
  156. package/dist/coordinator/cli-executor.js.map +0 -1
  157. package/dist/coordinator/expr-evaluator.d.ts +0 -11
  158. package/dist/coordinator/expr-evaluator.d.ts.map +0 -1
  159. package/dist/coordinator/expr-evaluator.js +0 -351
  160. package/dist/coordinator/expr-evaluator.js.map +0 -1
  161. package/dist/coordinator/graph-loader.d.ts +0 -16
  162. package/dist/coordinator/graph-loader.d.ts.map +0 -1
  163. package/dist/coordinator/graph-loader.js +0 -190
  164. package/dist/coordinator/graph-loader.js.map +0 -1
  165. package/dist/coordinator/graph-types.d.ts +0 -304
  166. package/dist/coordinator/graph-types.d.ts.map +0 -1
  167. package/dist/coordinator/graph-types.js +0 -6
  168. package/dist/coordinator/graph-types.js.map +0 -1
  169. package/dist/coordinator/graph-walker.d.ts +0 -51
  170. package/dist/coordinator/graph-walker.d.ts.map +0 -1
  171. package/dist/coordinator/graph-walker.js +0 -666
  172. package/dist/coordinator/graph-walker.js.map +0 -1
  173. package/dist/coordinator/index.d.ts +0 -13
  174. package/dist/coordinator/index.d.ts.map +0 -1
  175. package/dist/coordinator/index.js +0 -14
  176. package/dist/coordinator/index.js.map +0 -1
  177. package/dist/coordinator/intent-router.d.ts +0 -11
  178. package/dist/coordinator/intent-router.d.ts.map +0 -1
  179. package/dist/coordinator/intent-router.js +0 -65
  180. package/dist/coordinator/intent-router.js.map +0 -1
  181. package/dist/coordinator/link-session.d.ts +0 -29
  182. package/dist/coordinator/link-session.d.ts.map +0 -1
  183. package/dist/coordinator/link-session.js +0 -192
  184. package/dist/coordinator/link-session.js.map +0 -1
  185. package/dist/coordinator/link-walker.d.ts +0 -56
  186. package/dist/coordinator/link-walker.d.ts.map +0 -1
  187. package/dist/coordinator/link-walker.js +0 -548
  188. package/dist/coordinator/link-walker.js.map +0 -1
  189. package/dist/coordinator/output-parser.d.ts +0 -5
  190. package/dist/coordinator/output-parser.d.ts.map +0 -1
  191. package/dist/coordinator/output-parser.js +0 -114
  192. package/dist/coordinator/output-parser.js.map +0 -1
  193. package/dist/coordinator/parallel-executor.d.ts +0 -24
  194. package/dist/coordinator/parallel-executor.d.ts.map +0 -1
  195. package/dist/coordinator/parallel-executor.js +0 -43
  196. package/dist/coordinator/parallel-executor.js.map +0 -1
  197. package/dist/coordinator/prompt-assembler.d.ts +0 -15
  198. package/dist/coordinator/prompt-assembler.d.ts.map +0 -1
  199. package/dist/coordinator/prompt-assembler.js +0 -228
  200. package/dist/coordinator/prompt-assembler.js.map +0 -1
  201. package/dist/coordinator/step-analyzer.d.ts +0 -8
  202. package/dist/coordinator/step-analyzer.d.ts.map +0 -1
  203. package/dist/coordinator/step-analyzer.js +0 -82
  204. package/dist/coordinator/step-analyzer.js.map +0 -1
  205. package/dist/core/extension-loader.d.ts +0 -11
  206. package/dist/core/extension-loader.d.ts.map +0 -1
  207. package/dist/core/extension-loader.js +0 -54
  208. package/dist/core/extension-loader.js.map +0 -1
  209. package/dist/core/manifest.d.ts +0 -24
  210. package/dist/core/manifest.d.ts.map +0 -1
  211. package/dist/core/manifest.js +0 -139
  212. package/dist/core/manifest.js.map +0 -1
  213. package/dist/core/mcp-tool-registry.integration.test.d.ts +0 -2
  214. package/dist/core/mcp-tool-registry.integration.test.d.ts.map +0 -1
  215. package/dist/core/mcp-tool-registry.integration.test.js +0 -220
  216. package/dist/core/mcp-tool-registry.integration.test.js.map +0 -1
  217. package/dist/core/overlay/applier.d.ts +0 -73
  218. package/dist/core/overlay/applier.d.ts.map +0 -1
  219. package/dist/core/overlay/applier.js +0 -248
  220. package/dist/core/overlay/applier.js.map +0 -1
  221. package/dist/core/overlay/loader.d.ts +0 -26
  222. package/dist/core/overlay/loader.d.ts.map +0 -1
  223. package/dist/core/overlay/loader.js +0 -199
  224. package/dist/core/overlay/loader.js.map +0 -1
  225. package/dist/core/overlay/patcher.d.ts +0 -26
  226. package/dist/core/overlay/patcher.d.ts.map +0 -1
  227. package/dist/core/overlay/patcher.js +0 -212
  228. package/dist/core/overlay/patcher.js.map +0 -1
  229. package/dist/core/overlay/section-parser.d.ts +0 -25
  230. package/dist/core/overlay/section-parser.d.ts.map +0 -1
  231. package/dist/core/overlay/section-parser.js +0 -99
  232. package/dist/core/overlay/section-parser.js.map +0 -1
  233. package/dist/core/overlay/types.d.ts +0 -51
  234. package/dist/core/overlay/types.d.ts.map +0 -1
  235. package/dist/core/overlay/types.js +0 -15
  236. package/dist/core/overlay/types.js.map +0 -1
  237. package/dist/core/tool-registry.d.ts +0 -10
  238. package/dist/core/tool-registry.d.ts.map +0 -1
  239. package/dist/core/tool-registry.js +0 -29
  240. package/dist/core/tool-registry.js.map +0 -1
  241. package/dist/core/tool-registry.test.d.ts +0 -2
  242. package/dist/core/tool-registry.test.d.ts.map +0 -1
  243. package/dist/core/tool-registry.test.js +0 -78
  244. package/dist/core/tool-registry.test.js.map +0 -1
  245. package/dist/db/connection-pool.d.ts +0 -21
  246. package/dist/db/connection-pool.d.ts.map +0 -1
  247. package/dist/db/connection-pool.js +0 -53
  248. package/dist/db/connection-pool.js.map +0 -1
  249. package/dist/db/index.d.ts +0 -6
  250. package/dist/db/index.d.ts.map +0 -1
  251. package/dist/db/index.js +0 -9
  252. package/dist/db/index.js.map +0 -1
  253. package/dist/db/schema/core/index.d.ts +0 -5
  254. package/dist/db/schema/core/index.d.ts.map +0 -1
  255. package/dist/db/schema/core/index.js +0 -5
  256. package/dist/db/schema/core/index.js.map +0 -1
  257. package/dist/db/schema/core/organizations.d.ts +0 -244
  258. package/dist/db/schema/core/organizations.d.ts.map +0 -1
  259. package/dist/db/schema/core/organizations.js +0 -44
  260. package/dist/db/schema/core/organizations.js.map +0 -1
  261. package/dist/db/schema/core/permissions.d.ts +0 -158
  262. package/dist/db/schema/core/permissions.d.ts.map +0 -1
  263. package/dist/db/schema/core/permissions.js +0 -62
  264. package/dist/db/schema/core/permissions.js.map +0 -1
  265. package/dist/db/schema/core/refresh-tokens.d.ts +0 -147
  266. package/dist/db/schema/core/refresh-tokens.d.ts.map +0 -1
  267. package/dist/db/schema/core/refresh-tokens.js +0 -22
  268. package/dist/db/schema/core/refresh-tokens.js.map +0 -1
  269. package/dist/db/schema/core/users.d.ts +0 -178
  270. package/dist/db/schema/core/users.d.ts.map +0 -1
  271. package/dist/db/schema/core/users.js +0 -14
  272. package/dist/db/schema/core/users.js.map +0 -1
  273. package/dist/db/tenant-migrator.d.ts +0 -11
  274. package/dist/db/tenant-migrator.d.ts.map +0 -1
  275. package/dist/db/tenant-migrator.js +0 -74
  276. package/dist/db/tenant-migrator.js.map +0 -1
  277. package/dist/db/tenant-schema.d.ts +0 -290
  278. package/dist/db/tenant-schema.d.ts.map +0 -1
  279. package/dist/db/tenant-schema.js +0 -32
  280. package/dist/db/tenant-schema.js.map +0 -1
  281. package/dist/hooks/constants.d.ts +0 -40
  282. package/dist/hooks/constants.d.ts.map +0 -1
  283. package/dist/hooks/constants.js +0 -53
  284. package/dist/hooks/constants.js.map +0 -1
  285. package/dist/hooks/context-monitor.d.ts +0 -33
  286. package/dist/hooks/context-monitor.d.ts.map +0 -1
  287. package/dist/hooks/context-monitor.js +0 -117
  288. package/dist/hooks/context-monitor.js.map +0 -1
  289. package/dist/hooks/delegate-monitor.d.ts +0 -24
  290. package/dist/hooks/delegate-monitor.d.ts.map +0 -1
  291. package/dist/hooks/delegate-monitor.js +0 -76
  292. package/dist/hooks/delegate-monitor.js.map +0 -1
  293. package/dist/hooks/index.d.ts +0 -4
  294. package/dist/hooks/index.d.ts.map +0 -1
  295. package/dist/hooks/index.js +0 -4
  296. package/dist/hooks/index.js.map +0 -1
  297. package/dist/hooks/statusline.d.ts +0 -29
  298. package/dist/hooks/statusline.d.ts.map +0 -1
  299. package/dist/hooks/statusline.js +0 -134
  300. package/dist/hooks/statusline.js.map +0 -1
  301. package/dist/index.d.ts +0 -8
  302. package/dist/index.d.ts.map +0 -1
  303. package/dist/index.js +0 -6
  304. package/dist/index.js.map +0 -1
  305. package/dist/mcp/delegate-channel-relay.d.ts +0 -51
  306. package/dist/mcp/delegate-channel-relay.d.ts.map +0 -1
  307. package/dist/mcp/delegate-channel-relay.js +0 -307
  308. package/dist/mcp/delegate-channel-relay.js.map +0 -1
  309. package/dist/mcp/server.d.ts +0 -6
  310. package/dist/mcp/server.d.ts.map +0 -1
  311. package/dist/mcp/server.js +0 -64
  312. package/dist/mcp/server.js.map +0 -1
  313. package/dist/middleware/auth.d.ts +0 -13
  314. package/dist/middleware/auth.d.ts.map +0 -1
  315. package/dist/middleware/auth.js +0 -27
  316. package/dist/middleware/auth.js.map +0 -1
  317. package/dist/middleware/permission.d.ts +0 -9
  318. package/dist/middleware/permission.d.ts.map +0 -1
  319. package/dist/middleware/permission.js +0 -19
  320. package/dist/middleware/permission.js.map +0 -1
  321. package/dist/middleware/rate-limit.d.ts +0 -9
  322. package/dist/middleware/rate-limit.d.ts.map +0 -1
  323. package/dist/middleware/rate-limit.js +0 -40
  324. package/dist/middleware/rate-limit.js.map +0 -1
  325. package/dist/middleware/tenant.d.ts +0 -17
  326. package/dist/middleware/tenant.d.ts.map +0 -1
  327. package/dist/middleware/tenant.js +0 -57
  328. package/dist/middleware/tenant.js.map +0 -1
  329. package/dist/middleware/validation.d.ts +0 -40
  330. package/dist/middleware/validation.d.ts.map +0 -1
  331. package/dist/middleware/validation.js +0 -51
  332. package/dist/middleware/validation.js.map +0 -1
  333. package/dist/routes/auth.d.ts +0 -3
  334. package/dist/routes/auth.d.ts.map +0 -1
  335. package/dist/routes/auth.js +0 -77
  336. package/dist/routes/auth.js.map +0 -1
  337. package/dist/routes/members.d.ts +0 -4
  338. package/dist/routes/members.d.ts.map +0 -1
  339. package/dist/routes/members.js +0 -114
  340. package/dist/routes/members.js.map +0 -1
  341. package/dist/routes/organizations.d.ts +0 -5
  342. package/dist/routes/organizations.d.ts.map +0 -1
  343. package/dist/routes/organizations.js +0 -97
  344. package/dist/routes/organizations.js.map +0 -1
  345. package/dist/services/auth.service.d.ts +0 -24
  346. package/dist/services/auth.service.d.ts.map +0 -1
  347. package/dist/services/auth.service.js +0 -70
  348. package/dist/services/auth.service.js.map +0 -1
  349. package/dist/services/password.service.d.ts +0 -3
  350. package/dist/services/password.service.d.ts.map +0 -1
  351. package/dist/services/password.service.js +0 -18
  352. package/dist/services/password.service.js.map +0 -1
  353. package/dist/services/rbac.service.d.ts +0 -7
  354. package/dist/services/rbac.service.d.ts.map +0 -1
  355. package/dist/services/rbac.service.js +0 -36
  356. package/dist/services/rbac.service.js.map +0 -1
  357. package/dist/services/token.service.d.ts +0 -18
  358. package/dist/services/token.service.d.ts.map +0 -1
  359. package/dist/services/token.service.js +0 -86
  360. package/dist/services/token.service.js.map +0 -1
  361. package/dist/tools/core-memory.d.ts +0 -12
  362. package/dist/tools/core-memory.d.ts.map +0 -1
  363. package/dist/tools/core-memory.js +0 -276
  364. package/dist/tools/core-memory.js.map +0 -1
  365. package/dist/tools/edit-file.d.ts +0 -25
  366. package/dist/tools/edit-file.d.ts.map +0 -1
  367. package/dist/tools/edit-file.js +0 -462
  368. package/dist/tools/edit-file.js.map +0 -1
  369. package/dist/tools/index.d.ts +0 -8
  370. package/dist/tools/index.d.ts.map +0 -1
  371. package/dist/tools/index.js +0 -536
  372. package/dist/tools/index.js.map +0 -1
  373. package/dist/tools/read-file.d.ts +0 -13
  374. package/dist/tools/read-file.d.ts.map +0 -1
  375. package/dist/tools/read-file.js +0 -91
  376. package/dist/tools/read-file.js.map +0 -1
  377. package/dist/tools/read-many-files.d.ts +0 -15
  378. package/dist/tools/read-many-files.d.ts.map +0 -1
  379. package/dist/tools/read-many-files.js +0 -187
  380. package/dist/tools/read-many-files.js.map +0 -1
  381. package/dist/tools/spec-index-builder.d.ts +0 -58
  382. package/dist/tools/spec-index-builder.d.ts.map +0 -1
  383. package/dist/tools/spec-index-builder.js +0 -211
  384. package/dist/tools/spec-index-builder.js.map +0 -1
  385. package/dist/tools/spec-init.d.ts +0 -17
  386. package/dist/tools/spec-init.d.ts.map +0 -1
  387. package/dist/tools/spec-init.js +0 -215
  388. package/dist/tools/spec-init.js.map +0 -1
  389. package/dist/tools/spec-keyword-extractor.d.ts +0 -24
  390. package/dist/tools/spec-keyword-extractor.d.ts.map +0 -1
  391. package/dist/tools/spec-keyword-extractor.js +0 -84
  392. package/dist/tools/spec-keyword-extractor.js.map +0 -1
  393. package/dist/tools/spec-keyword-extractor.test.d.ts +0 -2
  394. package/dist/tools/spec-keyword-extractor.test.d.ts.map +0 -1
  395. package/dist/tools/spec-keyword-extractor.test.js +0 -99
  396. package/dist/tools/spec-keyword-extractor.test.js.map +0 -1
  397. package/dist/tools/spec-loader.d.ts +0 -15
  398. package/dist/tools/spec-loader.d.ts.map +0 -1
  399. package/dist/tools/spec-loader.js +0 -93
  400. package/dist/tools/spec-loader.js.map +0 -1
  401. package/dist/tools/team-msg.d.ts +0 -52
  402. package/dist/tools/team-msg.d.ts.map +0 -1
  403. package/dist/tools/team-msg.js +0 -449
  404. package/dist/tools/team-msg.js.map +0 -1
  405. package/dist/tools/write-file.d.ts +0 -19
  406. package/dist/tools/write-file.d.ts.map +0 -1
  407. package/dist/tools/write-file.js +0 -165
  408. package/dist/tools/write-file.js.map +0 -1
  409. package/dist/types/index.d.ts +0 -47
  410. package/dist/types/index.d.ts.map +0 -1
  411. package/dist/types/index.js +0 -2
  412. package/dist/types/index.js.map +0 -1
  413. package/dist/types/tool-schema.d.ts +0 -37
  414. package/dist/types/tool-schema.d.ts.map +0 -1
  415. package/dist/types/tool-schema.js +0 -24
  416. package/dist/types/tool-schema.js.map +0 -1
  417. package/dist/utils/file-reader.d.ts +0 -74
  418. package/dist/utils/file-reader.d.ts.map +0 -1
  419. package/dist/utils/file-reader.js +0 -217
  420. package/dist/utils/file-reader.js.map +0 -1
  421. package/dist/utils/path-validator.d.ts +0 -52
  422. package/dist/utils/path-validator.d.ts.map +0 -1
  423. package/dist/utils/path-validator.js +0 -151
  424. package/dist/utils/path-validator.js.map +0 -1
@@ -1,212 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // Patcher — applies overlay patches to command file contents using
3
- // hashed HTML-comment markers for idempotent insertion/removal.
4
- //
5
- // Marker format:
6
- // <!-- maestro-overlay:<name>#<idx> hash=<shortHash> -->
7
- // ...injected content...
8
- // <!-- /maestro-overlay:<name>#<idx> -->
9
- // ---------------------------------------------------------------------------
10
- import { createHash } from 'node:crypto';
11
- import { parseSections, joinLines, findSection, } from './section-parser.js';
12
- export function shortHash(input) {
13
- return createHash('sha256').update(input).digest('hex').slice(0, 8);
14
- }
15
- function markerStart(name, idx, hash) {
16
- return `<!-- maestro-overlay:${name}#${idx} hash=${hash} -->`;
17
- }
18
- function markerEnd(name, idx) {
19
- return `<!-- /maestro-overlay:${name}#${idx} -->`;
20
- }
21
- function makeMarkerBlock(name, idx, content) {
22
- const hash = shortHash(content);
23
- const lines = content.replace(/\r\n/g, '\n').split('\n');
24
- // Strip trailing empty lines so the block stays compact.
25
- while (lines.length > 0 && lines[lines.length - 1] === '')
26
- lines.pop();
27
- return [markerStart(name, idx, hash), ...lines, markerEnd(name, idx)];
28
- }
29
- /** Escape regex metacharacters. */
30
- function escapeRe(s) {
31
- return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
32
- }
33
- /**
34
- * Strip any existing marker block for `(name, idx)` from lines in place.
35
- * Returns the first line index where the block used to start, or -1.
36
- */
37
- function stripExistingMarker(lines, name, idx) {
38
- const startRe = new RegExp(`^<!--\\s*maestro-overlay:${escapeRe(name)}#${idx}\\b.*-->\\s*$`);
39
- const endRe = new RegExp(`^<!--\\s*/maestro-overlay:${escapeRe(name)}#${idx}\\s*-->\\s*$`);
40
- let startLine = -1;
41
- let endLine = -1;
42
- for (let i = 0; i < lines.length; i++) {
43
- if (startRe.test(lines[i])) {
44
- startLine = i;
45
- for (let j = i + 1; j < lines.length; j++) {
46
- if (endRe.test(lines[j])) {
47
- endLine = j;
48
- break;
49
- }
50
- }
51
- break;
52
- }
53
- }
54
- if (startLine === -1)
55
- return -1;
56
- if (endLine === -1) {
57
- throw new Error(`Corrupted overlay marker: start found for ${name}#${idx} but no matching end tag`);
58
- }
59
- lines.splice(startLine, endLine - startLine + 1);
60
- return startLine;
61
- }
62
- /** Strip any marker block for overlay `name`, regardless of patch index. */
63
- function stripAllMarkersForOverlay(lines, name) {
64
- const startRe = new RegExp(`^<!--\\s*maestro-overlay:${escapeRe(name)}#(\\d+)\\b.*-->\\s*$`);
65
- const endRe = (idx) => new RegExp(`^<!--\\s*/maestro-overlay:${escapeRe(name)}#${idx}\\s*-->\\s*$`);
66
- const removedIndices = [];
67
- let i = 0;
68
- while (i < lines.length) {
69
- const m = startRe.exec(lines[i]);
70
- if (!m) {
71
- i++;
72
- continue;
73
- }
74
- const idx = m[1];
75
- const endR = endRe(idx);
76
- let endLine = -1;
77
- for (let j = i + 1; j < lines.length; j++) {
78
- if (endR.test(lines[j])) {
79
- endLine = j;
80
- break;
81
- }
82
- }
83
- if (endLine === -1) {
84
- throw new Error(`Corrupted overlay marker: start found for ${name}#${idx} but no matching end tag`);
85
- }
86
- lines.splice(i, endLine - i + 1);
87
- removedIndices.push(Number(idx));
88
- // Do not advance i — continue scanning from same position after splice.
89
- }
90
- return removedIndices;
91
- }
92
- /**
93
- * Apply all of an overlay's patches to the target file content.
94
- *
95
- * The file is reparsed after each marker edit so subsequent patches see
96
- * the updated line indices.
97
- */
98
- export function applyOverlay(text, overlay, commandName, commandPath) {
99
- const originalText = text;
100
- let parsed = parseSections(text);
101
- let lines = parsed.lines.slice();
102
- const sectionsPatched = [];
103
- const markerIds = [];
104
- overlay.meta.patches.forEach((patch, idx) => {
105
- // Remove any existing block for this (overlay, idx) first — supports
106
- // re-apply when content has changed.
107
- stripExistingMarker(lines, overlay.meta.name, idx);
108
- parsed = parseSections(joinLines(lines, parsed.eol));
109
- lines = parsed.lines.slice();
110
- const applied = applyPatch(lines, parsed, overlay.meta.name, idx, patch);
111
- if (applied) {
112
- sectionsPatched.push(patch.section);
113
- markerIds.push(`${overlay.meta.name}#${idx}`);
114
- parsed = parseSections(joinLines(lines, parsed.eol));
115
- }
116
- });
117
- // Rebuild text preserving original EOL.
118
- let out = joinLines(lines, parsed.eol);
119
- // Normalize trailing newline to exactly one.
120
- out = out.replace(/\r?\n+$/, '') + parsed.eol;
121
- return {
122
- text: out,
123
- unchanged: out === originalText,
124
- applied: {
125
- commandName,
126
- commandPath,
127
- sectionsPatched,
128
- markerIds,
129
- },
130
- };
131
- }
132
- /**
133
- * Apply a single patch to lines. Mutates `lines` in place.
134
- * Returns true if the patch was applied.
135
- */
136
- function applyPatch(lines, parsed, overlayName, patchIdx, patch) {
137
- if (patch.mode === 'new-section') {
138
- return applyNewSection(lines, parsed, overlayName, patchIdx, patch);
139
- }
140
- const span = findSection(parsed, patch.section);
141
- if (!span) {
142
- // Section not found — skip silently. Validation should catch this upstream.
143
- return false;
144
- }
145
- const block = makeMarkerBlock(overlayName, patchIdx, patch.content);
146
- if (patch.mode === 'append') {
147
- // Insert directly before </section>. No padding — round-trip must
148
- // yield the original bytes, and removeOverlay only strips marker lines.
149
- lines.splice(span.closeLine, 0, ...block);
150
- return true;
151
- }
152
- if (patch.mode === 'prepend') {
153
- // Insert directly after <section>. Same reasoning as append.
154
- lines.splice(span.openLine + 1, 0, ...block);
155
- return true;
156
- }
157
- if (patch.mode === 'replace') {
158
- // Replace everything strictly between the open/close tags.
159
- const from = span.openLine + 1;
160
- const to = span.closeLine; // exclusive
161
- lines.splice(from, to - from, ...block);
162
- return true;
163
- }
164
- return false;
165
- }
166
- function applyNewSection(lines, parsed, overlayName, patchIdx, patch) {
167
- // Guard against duplicate section injection.
168
- if (findSection(parsed, patch.section))
169
- return false;
170
- const block = [
171
- `<${patch.section}>`,
172
- ...makeMarkerBlock(overlayName, patchIdx, patch.content),
173
- `</${patch.section}>`,
174
- ];
175
- let insertAt;
176
- if (patch.afterSection) {
177
- const anchor = findSection(parsed, patch.afterSection);
178
- if (!anchor)
179
- return false;
180
- insertAt = anchor.closeLine + 1;
181
- }
182
- else {
183
- insertAt = lines.length;
184
- }
185
- lines.splice(insertAt, 0, '', ...block, '');
186
- return true;
187
- }
188
- /**
189
- * Remove every marker block for a given overlay name from the text.
190
- * Returns the cleaned text and the patch indices that were removed.
191
- */
192
- export function removeOverlay(text, overlayName) {
193
- const parsed = parseSections(text);
194
- const lines = parsed.lines.slice();
195
- const removed = stripAllMarkersForOverlay(lines, overlayName);
196
- if (removed.length === 0) {
197
- return { text, removed };
198
- }
199
- // Also drop any now-empty custom sections that were created by new-section
200
- // patches from this overlay. A custom section is detectable as a <slug>
201
- // block with no meaningful content remaining. Keep this simple: leave
202
- // empty sections in place; user can clean up manually if needed.
203
- let out = joinLines(lines, parsed.eol);
204
- out = out.replace(/\r?\n+$/, '') + parsed.eol;
205
- return { text: out, removed };
206
- }
207
- /** Detect whether `text` already contains markers for this overlay name. */
208
- export function hasMarkers(text, overlayName) {
209
- const re = new RegExp(`<!--\\s*maestro-overlay:${escapeRe(overlayName)}#\\d+\\b`);
210
- return re.test(text);
211
- }
212
- //# sourceMappingURL=patcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../src/core/overlay/patcher.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mEAAmE;AACnE,gEAAgE;AAChE,EAAE;AACF,iBAAiB;AACjB,2DAA2D;AAC3D,2BAA2B;AAC3B,2CAA2C;AAC3C,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,GAEZ,MAAM,qBAAqB,CAAC;AAO7B,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,GAAW,EAAE,IAAY;IAC1D,OAAO,wBAAwB,IAAI,IAAI,GAAG,SAAS,IAAI,MAAM,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,GAAW;IAC1C,OAAO,yBAAyB,IAAI,IAAI,GAAG,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,GAAW,EACX,OAAe;IAEf,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,yDAAyD;IACzD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACvE,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,mCAAmC;AACnC,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,KAAe,EACf,IAAY,EACZ,GAAW;IAEX,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,4BAA4B,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,eAAe,CACjE,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,6BAA6B,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,CACjE,CAAC;IAEF,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,SAAS,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO,GAAG,CAAC,CAAC;oBACZ,MAAM;gBACR,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,IAAI,GAAG,0BAA0B,CACnF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4EAA4E;AAC5E,SAAS,yBAAyB,CAAC,KAAe,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,4BAA4B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CACjE,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAC5B,IAAI,MAAM,CACR,6BAA6B,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,CACjE,CAAC;IAEJ,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,OAAO,GAAG,CAAC,CAAC;gBACZ,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,IAAI,GAAG,0BAA0B,CACnF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,wEAAwE;IAC1E,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,OAAoB,EACpB,WAAmB,EACnB,WAAmB;IAEnB,MAAM,YAAY,GAAG,IAAI,CAAC;IAC1B,IAAI,MAAM,GAAe,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,qEAAqE;QACrE,qCAAqC;QACrC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,6CAA6C;IAC7C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,GAAG,KAAK,YAAY;QAC/B,OAAO,EAAE;YACP,WAAW;YACX,WAAW;YACX,eAAe;YACf,SAAS;SACV;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,KAAe,EACf,MAAkB,EAClB,WAAmB,EACnB,QAAgB,EAChB,KAAmB;IAEnB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,4EAA4E;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAEpE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,kEAAkE;QAClE,wEAAwE;QACxE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,6DAA6D;QAC7D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,2DAA2D;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY;QACvC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CACtB,KAAe,EACf,MAAkB,EAClB,WAAmB,EACnB,QAAgB,EAChB,KAAmB;IAEnB,6CAA6C;IAC7C,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,KAAK,GAAG;QACZ,IAAI,KAAK,CAAC,OAAO,GAAG;QACpB,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;QACxD,KAAK,KAAK,CAAC,OAAO,GAAG;KACtB,CAAC;IAEF,IAAI,QAAgB,CAAC;IACrB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,QAAQ,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,WAAmB;IAEnB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,iEAAiE;IACjE,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;IAC9C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,WAAmB;IAC1D,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,2BAA2B,QAAQ,CAAC,WAAW,CAAC,UAAU,CAC3D,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
@@ -1,25 +0,0 @@
1
- export interface SectionSpan {
2
- name: string;
3
- /** Line index of the opening `<name>` tag (0-based). */
4
- openLine: number;
5
- /** Line index of the closing `</name>` tag (0-based). */
6
- closeLine: number;
7
- }
8
- export interface ParsedFile {
9
- /** Array of lines (no trailing `\n`). */
10
- lines: string[];
11
- /** Detected end-of-line used in the original file (`\n` or `\r\n`). */
12
- eol: '\n' | '\r\n';
13
- /** Line index of `---` opening frontmatter, or -1. */
14
- frontmatterStart: number;
15
- /** Line index of `---` closing frontmatter, or -1. */
16
- frontmatterEnd: number;
17
- sections: SectionSpan[];
18
- }
19
- export declare function detectEol(text: string): '\n' | '\r\n';
20
- export declare function splitLines(text: string): string[];
21
- export declare function joinLines(lines: string[], eol: '\n' | '\r\n'): string;
22
- export declare function parseSections(text: string): ParsedFile;
23
- /** Find a section by name. Returns the first occurrence or undefined. */
24
- export declare function findSection(parsed: ParsedFile, name: string): SectionSpan | undefined;
25
- //# sourceMappingURL=section-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-parser.d.ts","sourceRoot":"","sources":["../../../src/core/overlay/section-parser.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uEAAuE;IACvE,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;IACnB,sDAAsD;IACtD,gBAAgB,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIrD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGjD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CA4EtD;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAErF"}
@@ -1,99 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // Section parser for `.claude/commands/*.md` files.
3
- //
4
- // Parses YAML frontmatter boundary and XML-style section tags
5
- // (<purpose>, <execution>, ...) into line-indexed spans. Pure — no filesystem.
6
- //
7
- // Fenced code blocks (``` and ~~~) are tracked so tag-like lines inside
8
- // fences are ignored.
9
- // ---------------------------------------------------------------------------
10
- const OPEN_TAG = /^<([a-zA-Z][a-zA-Z0-9_]*)>\s*$/;
11
- const CLOSE_TAG = /^<\/([a-zA-Z][a-zA-Z0-9_]*)>\s*$/;
12
- const FENCE = /^(```+|~~~+)/;
13
- export function detectEol(text) {
14
- const firstLf = text.indexOf('\n');
15
- if (firstLf === -1)
16
- return '\n';
17
- return text[firstLf - 1] === '\r' ? '\r\n' : '\n';
18
- }
19
- export function splitLines(text) {
20
- // Strip trailing newline(s) so `lines.join(eol)` round-trips cleanly.
21
- return text.replace(/\r\n/g, '\n').split('\n');
22
- }
23
- export function joinLines(lines, eol) {
24
- return lines.join(eol);
25
- }
26
- export function parseSections(text) {
27
- const eol = detectEol(text);
28
- const lines = splitLines(text);
29
- const sections = [];
30
- const openStack = [];
31
- let frontmatterStart = -1;
32
- let frontmatterEnd = -1;
33
- let fenceOpen = null;
34
- for (let i = 0; i < lines.length; i++) {
35
- const line = lines[i];
36
- // Fenced code block tracking — fences must start at column 0.
37
- const fenceMatch = FENCE.exec(line);
38
- if (fenceMatch) {
39
- const marker = fenceMatch[1][0]; // '`' or '~'
40
- if (!fenceOpen) {
41
- fenceOpen = marker;
42
- }
43
- else if (fenceOpen === marker) {
44
- fenceOpen = null;
45
- }
46
- continue;
47
- }
48
- if (fenceOpen)
49
- continue;
50
- // Frontmatter: first `---` at line 0, matching close later.
51
- if (line === '---') {
52
- if (frontmatterStart === -1 && i === 0) {
53
- frontmatterStart = 0;
54
- continue;
55
- }
56
- if (frontmatterStart === 0 && frontmatterEnd === -1) {
57
- frontmatterEnd = i;
58
- continue;
59
- }
60
- }
61
- // Skip anything inside frontmatter.
62
- if (frontmatterStart === 0 && frontmatterEnd === -1)
63
- continue;
64
- const open = OPEN_TAG.exec(line);
65
- if (open) {
66
- openStack.push({ name: open[1], line: i });
67
- continue;
68
- }
69
- const close = CLOSE_TAG.exec(line);
70
- if (close) {
71
- // Close the nearest matching open on the stack.
72
- for (let s = openStack.length - 1; s >= 0; s--) {
73
- if (openStack[s].name === close[1]) {
74
- sections.push({
75
- name: close[1],
76
- openLine: openStack[s].line,
77
- closeLine: i,
78
- });
79
- openStack.splice(s, 1);
80
- break;
81
- }
82
- }
83
- }
84
- }
85
- // Sort sections by open line for deterministic iteration.
86
- sections.sort((a, b) => a.openLine - b.openLine);
87
- return {
88
- lines,
89
- eol,
90
- frontmatterStart,
91
- frontmatterEnd,
92
- sections,
93
- };
94
- }
95
- /** Find a section by name. Returns the first occurrence or undefined. */
96
- export function findSection(parsed, name) {
97
- return parsed.sections.find((s) => s.name === name);
98
- }
99
- //# sourceMappingURL=section-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-parser.js","sourceRoot":"","sources":["../../../src/core/overlay/section-parser.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- export type OverlayMode = 'append' | 'prepend' | 'replace' | 'new-section';
2
- /** XML-tagged sections recognised in `.claude/commands/*.md` files. */
3
- export declare const KNOWN_SECTIONS: readonly ["purpose", "required_reading", "deferred_reading", "context", "execution", "error_codes", "success_criteria"];
4
- export type KnownSection = (typeof KNOWN_SECTIONS)[number];
5
- export interface OverlayPatch {
6
- /** Target section name (KnownSection for existing sections, any slug for new-section). */
7
- section: string;
8
- mode: OverlayMode;
9
- /** Raw markdown body injected between markers. */
10
- content: string;
11
- /** For `new-section`: insert after this existing section's close tag. */
12
- afterSection?: string;
13
- }
14
- export interface OverlayMeta {
15
- name: string;
16
- description?: string;
17
- targets: string[];
18
- priority?: number;
19
- enabled?: boolean;
20
- scope?: 'global' | 'project' | 'any';
21
- docs?: string[];
22
- patches: OverlayPatch[];
23
- }
24
- export interface OverlayFile {
25
- meta: OverlayMeta;
26
- sourcePath: string;
27
- /** Full file contents (frontmatter + body). */
28
- raw: string;
29
- /** SHA-256 of `raw`, short 8-char form used in markers. */
30
- hash: string;
31
- }
32
- export interface AppliedTarget {
33
- commandName: string;
34
- commandPath: string;
35
- sectionsPatched: string[];
36
- markerIds: string[];
37
- }
38
- export interface AppliedOverlay {
39
- overlayName: string;
40
- overlayHash: string;
41
- targets: AppliedTarget[];
42
- }
43
- export interface OverlayManifest {
44
- version: '1.0';
45
- scope: 'global' | 'project';
46
- targetBase: string;
47
- installedAt: string;
48
- appliedOverlays: AppliedOverlay[];
49
- }
50
- export declare const OVERLAY_MANIFEST_VERSION: "1.0";
51
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/overlay/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAE3E,uEAAuE;AACvE,eAAO,MAAM,cAAc,yHAQjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,EAAG,KAAc,CAAC"}
@@ -1,15 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // Overlay types — shared shapes for overlay loading, patching, and tracking.
3
- // ---------------------------------------------------------------------------
4
- /** XML-tagged sections recognised in `.claude/commands/*.md` files. */
5
- export const KNOWN_SECTIONS = [
6
- 'purpose',
7
- 'required_reading',
8
- 'deferred_reading',
9
- 'context',
10
- 'execution',
11
- 'error_codes',
12
- 'success_criteria',
13
- ];
14
- export const OVERLAY_MANIFEST_VERSION = '1.0';
15
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/overlay/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAI9E,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,kBAAkB;IAClB,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,aAAa;IACb,kBAAkB;CACV,CAAC;AAuDX,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAc,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { Tool, ToolResult } from '../types/index.js';
2
- export declare class ToolRegistry {
3
- private tools;
4
- register(tool: Tool): void;
5
- unregister(name: string): boolean;
6
- get(name: string): Tool | undefined;
7
- list(): Tool[];
8
- execute(name: string, input: Record<string, unknown>): Promise<ToolResult>;
9
- }
10
- //# sourceMappingURL=tool-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/core/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA2B;IAExC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAO1B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC,IAAI,IAAI,IAAI,EAAE;IAIR,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAUjF"}
@@ -1,29 +0,0 @@
1
- export class ToolRegistry {
2
- tools = new Map();
3
- register(tool) {
4
- if (this.tools.has(tool.name)) {
5
- throw new Error(`Tool "${tool.name}" is already registered`);
6
- }
7
- this.tools.set(tool.name, tool);
8
- }
9
- unregister(name) {
10
- return this.tools.delete(name);
11
- }
12
- get(name) {
13
- return this.tools.get(name);
14
- }
15
- list() {
16
- return Array.from(this.tools.values());
17
- }
18
- async execute(name, input) {
19
- const tool = this.tools.get(name);
20
- if (!tool) {
21
- return {
22
- content: [{ type: 'text', text: `Unknown tool: ${name}` }],
23
- isError: true,
24
- };
25
- }
26
- return tool.handler(input);
27
- }
28
- }
29
- //# sourceMappingURL=tool-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/core/tool-registry.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAExC,QAAQ,CAAC,IAAU;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,KAA8B;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tool-registry.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-registry.test.d.ts","sourceRoot":"","sources":["../../src/core/tool-registry.test.ts"],"names":[],"mappings":""}
@@ -1,78 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { ToolRegistry } from './tool-registry.js';
3
- function makeTool(name, handler) {
4
- return {
5
- name,
6
- description: `Test tool: ${name}`,
7
- inputSchema: {},
8
- handler: handler ?? (async () => ({
9
- content: [{ type: 'text', text: `${name} result` }],
10
- })),
11
- };
12
- }
13
- describe('ToolRegistry', () => {
14
- let registry;
15
- beforeEach(() => {
16
- registry = new ToolRegistry();
17
- });
18
- describe('register', () => {
19
- it('registers a tool', () => {
20
- const tool = makeTool('test-tool');
21
- registry.register(tool);
22
- expect(registry.get('test-tool')).toBe(tool);
23
- });
24
- it('throws on duplicate registration', () => {
25
- registry.register(makeTool('dup'));
26
- expect(() => registry.register(makeTool('dup'))).toThrow('Tool "dup" is already registered');
27
- });
28
- });
29
- describe('unregister', () => {
30
- it('removes a registered tool', () => {
31
- registry.register(makeTool('rm'));
32
- expect(registry.unregister('rm')).toBe(true);
33
- expect(registry.get('rm')).toBeUndefined();
34
- });
35
- it('returns false for non-existent tool', () => {
36
- expect(registry.unregister('nope')).toBe(false);
37
- });
38
- });
39
- describe('get', () => {
40
- it('returns undefined for unknown tool', () => {
41
- expect(registry.get('unknown')).toBeUndefined();
42
- });
43
- it('returns the registered tool', () => {
44
- const tool = makeTool('findme');
45
- registry.register(tool);
46
- expect(registry.get('findme')).toBe(tool);
47
- });
48
- });
49
- describe('list', () => {
50
- it('returns empty array when no tools registered', () => {
51
- expect(registry.list()).toEqual([]);
52
- });
53
- it('returns all registered tools', () => {
54
- registry.register(makeTool('a'));
55
- registry.register(makeTool('b'));
56
- const names = registry.list().map((t) => t.name);
57
- expect(names).toContain('a');
58
- expect(names).toContain('b');
59
- expect(names).toHaveLength(2);
60
- });
61
- });
62
- describe('execute', () => {
63
- it('executes a registered tool handler', async () => {
64
- registry.register(makeTool('exec', async (input) => ({
65
- content: [{ type: 'text', text: `got: ${JSON.stringify(input)}` }],
66
- })));
67
- const result = await registry.execute('exec', { key: 'value' });
68
- expect(result.isError).toBeUndefined();
69
- expect(result.content[0].text).toContain('key');
70
- });
71
- it('returns error for unknown tool', async () => {
72
- const result = await registry.execute('missing', {});
73
- expect(result.isError).toBe(true);
74
- expect(result.content[0].text).toContain('Unknown tool: missing');
75
- });
76
- });
77
- });
78
- //# sourceMappingURL=tool-registry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../src/core/tool-registry.test.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { Pool, type PoolClient } from 'pg';
2
- import { type NodePgDatabase } from 'drizzle-orm/node-postgres';
3
- import * as coreSchema from './schema/core/index.js';
4
- import { TenantMigrator } from './tenant-migrator.js';
5
- export declare class TenantConnectionManager {
6
- private pool;
7
- constructor(databaseUrl: string, poolOptions?: {
8
- max?: number;
9
- idleTimeoutMillis?: number;
10
- });
11
- getTenantDb(tenantSlug: string): Promise<{
12
- db: NodePgDatabase<typeof coreSchema>;
13
- client: PoolClient;
14
- }>;
15
- releaseTenantConnection(client: PoolClient): Promise<void>;
16
- createNewTenant(slug: string, migrator: TenantMigrator): Promise<boolean>;
17
- removeTenant(slug: string): Promise<void>;
18
- close(): Promise<void>;
19
- getPool(): Pool;
20
- }
21
- //# sourceMappingURL=connection-pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection-pool.d.ts","sourceRoot":"","sources":["../../src/db/connection-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,IAAI,CAAO;gBAGjB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;IAStD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,EAAE,EAAE,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;QACtC,MAAM,EAAE,UAAU,CAAC;KACpB,CAAC;IAWI,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,IAAI,IAAI;CAGhB"}