maestro-flow 0.3.0 → 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 (425) hide show
  1. package/.claude/commands/maestro-overlay.md +178 -122
  2. package/.claude/commands/manage-harvest.md +4 -4
  3. package/.codex/skills/maestro-coordinate/SKILL.md +3 -4
  4. package/dist/src/commands/launcher.js +1 -1
  5. package/dist/src/commands/launcher.js.map +1 -1
  6. package/dist/src/commands/overlay-ui/OverlayList.d.ts +35 -0
  7. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -0
  8. package/dist/src/commands/overlay-ui/OverlayList.js +143 -0
  9. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -0
  10. package/dist/src/commands/overlay-ui/index.d.ts +2 -0
  11. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -0
  12. package/dist/src/commands/overlay-ui/index.js +188 -0
  13. package/dist/src/commands/overlay-ui/index.js.map +1 -0
  14. package/dist/src/commands/overlay.d.ts.map +1 -1
  15. package/dist/src/commands/overlay.js +79 -59
  16. package/dist/src/commands/overlay.js.map +1 -1
  17. package/dist/src/core/overlay/applier.d.ts +32 -1
  18. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  19. package/dist/src/core/overlay/applier.js +109 -1
  20. package/dist/src/core/overlay/applier.js.map +1 -1
  21. package/package.json +1 -1
  22. package/dist/agents/cli-agent-runner.d.ts +0 -131
  23. package/dist/agents/cli-agent-runner.d.ts.map +0 -1
  24. package/dist/agents/cli-agent-runner.js +0 -688
  25. package/dist/agents/cli-agent-runner.js.map +0 -1
  26. package/dist/agents/cli-history-store.d.ts +0 -63
  27. package/dist/agents/cli-history-store.d.ts.map +0 -1
  28. package/dist/agents/cli-history-store.js +0 -242
  29. package/dist/agents/cli-history-store.js.map +0 -1
  30. package/dist/agents/dashboard-bridge.d.ts +0 -39
  31. package/dist/agents/dashboard-bridge.d.ts.map +0 -1
  32. package/dist/agents/dashboard-bridge.js +0 -76
  33. package/dist/agents/dashboard-bridge.js.map +0 -1
  34. package/dist/agents/parallel-cli-runner.d.ts +0 -46
  35. package/dist/agents/parallel-cli-runner.d.ts.map +0 -1
  36. package/dist/agents/parallel-cli-runner.js +0 -277
  37. package/dist/agents/parallel-cli-runner.js.map +0 -1
  38. package/dist/agents/terminal-adapter.d.ts +0 -94
  39. package/dist/agents/terminal-adapter.d.ts.map +0 -1
  40. package/dist/agents/terminal-adapter.js +0 -132
  41. package/dist/agents/terminal-adapter.js.map +0 -1
  42. package/dist/agents/terminal-backend.d.ts +0 -53
  43. package/dist/agents/terminal-backend.d.ts.map +0 -1
  44. package/dist/agents/terminal-backend.js +0 -286
  45. package/dist/agents/terminal-backend.js.map +0 -1
  46. package/dist/async/delegate-broker-client.d.ts +0 -22
  47. package/dist/async/delegate-broker-client.d.ts.map +0 -1
  48. package/dist/async/delegate-broker-client.js +0 -47
  49. package/dist/async/delegate-broker-client.js.map +0 -1
  50. package/dist/async/delegate-broker.d.ts +0 -180
  51. package/dist/async/delegate-broker.d.ts.map +0 -1
  52. package/dist/async/delegate-broker.js +0 -1040
  53. package/dist/async/delegate-broker.js.map +0 -1
  54. package/dist/async/delegate-control.d.ts +0 -37
  55. package/dist/async/delegate-control.d.ts.map +0 -1
  56. package/dist/async/delegate-control.js +0 -155
  57. package/dist/async/delegate-control.js.map +0 -1
  58. package/dist/async/index.d.ts +0 -3
  59. package/dist/async/index.d.ts.map +0 -1
  60. package/dist/async/index.js +0 -3
  61. package/dist/async/index.js.map +0 -1
  62. package/dist/cli.d.ts +0 -2
  63. package/dist/cli.d.ts.map +0 -1
  64. package/dist/cli.js +0 -40
  65. package/dist/cli.js.map +0 -1
  66. package/dist/commands/cli.d.ts +0 -3
  67. package/dist/commands/cli.d.ts.map +0 -1
  68. package/dist/commands/cli.js +0 -262
  69. package/dist/commands/cli.js.map +0 -1
  70. package/dist/commands/coordinate.d.ts +0 -3
  71. package/dist/commands/coordinate.d.ts.map +0 -1
  72. package/dist/commands/coordinate.js +0 -275
  73. package/dist/commands/coordinate.js.map +0 -1
  74. package/dist/commands/delegate.d.ts +0 -37
  75. package/dist/commands/delegate.d.ts.map +0 -1
  76. package/dist/commands/delegate.js +0 -470
  77. package/dist/commands/delegate.js.map +0 -1
  78. package/dist/commands/ext.d.ts +0 -3
  79. package/dist/commands/ext.d.ts.map +0 -1
  80. package/dist/commands/ext.js +0 -28
  81. package/dist/commands/ext.js.map +0 -1
  82. package/dist/commands/hooks.d.ts +0 -3
  83. package/dist/commands/hooks.d.ts.map +0 -1
  84. package/dist/commands/hooks.js +0 -126
  85. package/dist/commands/hooks.js.map +0 -1
  86. package/dist/commands/install.d.ts +0 -3
  87. package/dist/commands/install.d.ts.map +0 -1
  88. package/dist/commands/install.js +0 -621
  89. package/dist/commands/install.js.map +0 -1
  90. package/dist/commands/launcher.d.ts +0 -3
  91. package/dist/commands/launcher.d.ts.map +0 -1
  92. package/dist/commands/launcher.js +0 -635
  93. package/dist/commands/launcher.js.map +0 -1
  94. package/dist/commands/link-coordinate.d.ts +0 -3
  95. package/dist/commands/link-coordinate.d.ts.map +0 -1
  96. package/dist/commands/link-coordinate.js +0 -225
  97. package/dist/commands/link-coordinate.js.map +0 -1
  98. package/dist/commands/msg.d.ts +0 -3
  99. package/dist/commands/msg.d.ts.map +0 -1
  100. package/dist/commands/msg.js +0 -110
  101. package/dist/commands/msg.js.map +0 -1
  102. package/dist/commands/overlay.d.ts +0 -3
  103. package/dist/commands/overlay.d.ts.map +0 -1
  104. package/dist/commands/overlay.js +0 -243
  105. package/dist/commands/overlay.js.map +0 -1
  106. package/dist/commands/run.d.ts +0 -3
  107. package/dist/commands/run.d.ts.map +0 -1
  108. package/dist/commands/run.js +0 -15
  109. package/dist/commands/run.js.map +0 -1
  110. package/dist/commands/serve.d.ts +0 -3
  111. package/dist/commands/serve.d.ts.map +0 -1
  112. package/dist/commands/serve.js +0 -16
  113. package/dist/commands/serve.js.map +0 -1
  114. package/dist/commands/spec.d.ts +0 -8
  115. package/dist/commands/spec.d.ts.map +0 -1
  116. package/dist/commands/spec.js +0 -147
  117. package/dist/commands/spec.js.map +0 -1
  118. package/dist/commands/stop.d.ts +0 -3
  119. package/dist/commands/stop.d.ts.map +0 -1
  120. package/dist/commands/stop.js +0 -218
  121. package/dist/commands/stop.js.map +0 -1
  122. package/dist/commands/tool.d.ts +0 -3
  123. package/dist/commands/tool.d.ts.map +0 -1
  124. package/dist/commands/tool.js +0 -29
  125. package/dist/commands/tool.js.map +0 -1
  126. package/dist/commands/uninstall.d.ts +0 -3
  127. package/dist/commands/uninstall.d.ts.map +0 -1
  128. package/dist/commands/uninstall.js +0 -77
  129. package/dist/commands/uninstall.js.map +0 -1
  130. package/dist/commands/view.d.ts +0 -3
  131. package/dist/commands/view.d.ts.map +0 -1
  132. package/dist/commands/view.js +0 -337
  133. package/dist/commands/view.js.map +0 -1
  134. package/dist/config/cli-tools-config.d.ts +0 -26
  135. package/dist/config/cli-tools-config.d.ts.map +0 -1
  136. package/dist/config/cli-tools-config.js +0 -49
  137. package/dist/config/cli-tools-config.js.map +0 -1
  138. package/dist/config/cli-tools-config.test.d.ts +0 -2
  139. package/dist/config/cli-tools-config.test.d.ts.map +0 -1
  140. package/dist/config/cli-tools-config.test.js +0 -59
  141. package/dist/config/cli-tools-config.test.js.map +0 -1
  142. package/dist/config/index.d.ts +0 -4
  143. package/dist/config/index.d.ts.map +0 -1
  144. package/dist/config/index.js +0 -27
  145. package/dist/config/index.js.map +0 -1
  146. package/dist/config/paths.d.ts +0 -15
  147. package/dist/config/paths.d.ts.map +0 -1
  148. package/dist/config/paths.js +0 -27
  149. package/dist/config/paths.js.map +0 -1
  150. package/dist/config/template-discovery.d.ts +0 -32
  151. package/dist/config/template-discovery.d.ts.map +0 -1
  152. package/dist/config/template-discovery.js +0 -128
  153. package/dist/config/template-discovery.js.map +0 -1
  154. package/dist/coordinator/cli-executor.d.ts +0 -22
  155. package/dist/coordinator/cli-executor.d.ts.map +0 -1
  156. package/dist/coordinator/cli-executor.js +0 -49
  157. package/dist/coordinator/cli-executor.js.map +0 -1
  158. package/dist/coordinator/expr-evaluator.d.ts +0 -11
  159. package/dist/coordinator/expr-evaluator.d.ts.map +0 -1
  160. package/dist/coordinator/expr-evaluator.js +0 -351
  161. package/dist/coordinator/expr-evaluator.js.map +0 -1
  162. package/dist/coordinator/graph-loader.d.ts +0 -16
  163. package/dist/coordinator/graph-loader.d.ts.map +0 -1
  164. package/dist/coordinator/graph-loader.js +0 -190
  165. package/dist/coordinator/graph-loader.js.map +0 -1
  166. package/dist/coordinator/graph-types.d.ts +0 -304
  167. package/dist/coordinator/graph-types.d.ts.map +0 -1
  168. package/dist/coordinator/graph-types.js +0 -6
  169. package/dist/coordinator/graph-types.js.map +0 -1
  170. package/dist/coordinator/graph-walker.d.ts +0 -51
  171. package/dist/coordinator/graph-walker.d.ts.map +0 -1
  172. package/dist/coordinator/graph-walker.js +0 -666
  173. package/dist/coordinator/graph-walker.js.map +0 -1
  174. package/dist/coordinator/index.d.ts +0 -13
  175. package/dist/coordinator/index.d.ts.map +0 -1
  176. package/dist/coordinator/index.js +0 -14
  177. package/dist/coordinator/index.js.map +0 -1
  178. package/dist/coordinator/intent-router.d.ts +0 -11
  179. package/dist/coordinator/intent-router.d.ts.map +0 -1
  180. package/dist/coordinator/intent-router.js +0 -65
  181. package/dist/coordinator/intent-router.js.map +0 -1
  182. package/dist/coordinator/link-session.d.ts +0 -29
  183. package/dist/coordinator/link-session.d.ts.map +0 -1
  184. package/dist/coordinator/link-session.js +0 -192
  185. package/dist/coordinator/link-session.js.map +0 -1
  186. package/dist/coordinator/link-walker.d.ts +0 -56
  187. package/dist/coordinator/link-walker.d.ts.map +0 -1
  188. package/dist/coordinator/link-walker.js +0 -548
  189. package/dist/coordinator/link-walker.js.map +0 -1
  190. package/dist/coordinator/output-parser.d.ts +0 -5
  191. package/dist/coordinator/output-parser.d.ts.map +0 -1
  192. package/dist/coordinator/output-parser.js +0 -114
  193. package/dist/coordinator/output-parser.js.map +0 -1
  194. package/dist/coordinator/parallel-executor.d.ts +0 -24
  195. package/dist/coordinator/parallel-executor.d.ts.map +0 -1
  196. package/dist/coordinator/parallel-executor.js +0 -43
  197. package/dist/coordinator/parallel-executor.js.map +0 -1
  198. package/dist/coordinator/prompt-assembler.d.ts +0 -15
  199. package/dist/coordinator/prompt-assembler.d.ts.map +0 -1
  200. package/dist/coordinator/prompt-assembler.js +0 -228
  201. package/dist/coordinator/prompt-assembler.js.map +0 -1
  202. package/dist/coordinator/step-analyzer.d.ts +0 -8
  203. package/dist/coordinator/step-analyzer.d.ts.map +0 -1
  204. package/dist/coordinator/step-analyzer.js +0 -82
  205. package/dist/coordinator/step-analyzer.js.map +0 -1
  206. package/dist/core/extension-loader.d.ts +0 -11
  207. package/dist/core/extension-loader.d.ts.map +0 -1
  208. package/dist/core/extension-loader.js +0 -54
  209. package/dist/core/extension-loader.js.map +0 -1
  210. package/dist/core/manifest.d.ts +0 -24
  211. package/dist/core/manifest.d.ts.map +0 -1
  212. package/dist/core/manifest.js +0 -139
  213. package/dist/core/manifest.js.map +0 -1
  214. package/dist/core/mcp-tool-registry.integration.test.d.ts +0 -2
  215. package/dist/core/mcp-tool-registry.integration.test.d.ts.map +0 -1
  216. package/dist/core/mcp-tool-registry.integration.test.js +0 -220
  217. package/dist/core/mcp-tool-registry.integration.test.js.map +0 -1
  218. package/dist/core/overlay/applier.d.ts +0 -73
  219. package/dist/core/overlay/applier.d.ts.map +0 -1
  220. package/dist/core/overlay/applier.js +0 -248
  221. package/dist/core/overlay/applier.js.map +0 -1
  222. package/dist/core/overlay/loader.d.ts +0 -26
  223. package/dist/core/overlay/loader.d.ts.map +0 -1
  224. package/dist/core/overlay/loader.js +0 -199
  225. package/dist/core/overlay/loader.js.map +0 -1
  226. package/dist/core/overlay/patcher.d.ts +0 -26
  227. package/dist/core/overlay/patcher.d.ts.map +0 -1
  228. package/dist/core/overlay/patcher.js +0 -212
  229. package/dist/core/overlay/patcher.js.map +0 -1
  230. package/dist/core/overlay/section-parser.d.ts +0 -25
  231. package/dist/core/overlay/section-parser.d.ts.map +0 -1
  232. package/dist/core/overlay/section-parser.js +0 -99
  233. package/dist/core/overlay/section-parser.js.map +0 -1
  234. package/dist/core/overlay/types.d.ts +0 -51
  235. package/dist/core/overlay/types.d.ts.map +0 -1
  236. package/dist/core/overlay/types.js +0 -15
  237. package/dist/core/overlay/types.js.map +0 -1
  238. package/dist/core/tool-registry.d.ts +0 -10
  239. package/dist/core/tool-registry.d.ts.map +0 -1
  240. package/dist/core/tool-registry.js +0 -29
  241. package/dist/core/tool-registry.js.map +0 -1
  242. package/dist/core/tool-registry.test.d.ts +0 -2
  243. package/dist/core/tool-registry.test.d.ts.map +0 -1
  244. package/dist/core/tool-registry.test.js +0 -78
  245. package/dist/core/tool-registry.test.js.map +0 -1
  246. package/dist/db/connection-pool.d.ts +0 -21
  247. package/dist/db/connection-pool.d.ts.map +0 -1
  248. package/dist/db/connection-pool.js +0 -53
  249. package/dist/db/connection-pool.js.map +0 -1
  250. package/dist/db/index.d.ts +0 -6
  251. package/dist/db/index.d.ts.map +0 -1
  252. package/dist/db/index.js +0 -9
  253. package/dist/db/index.js.map +0 -1
  254. package/dist/db/schema/core/index.d.ts +0 -5
  255. package/dist/db/schema/core/index.d.ts.map +0 -1
  256. package/dist/db/schema/core/index.js +0 -5
  257. package/dist/db/schema/core/index.js.map +0 -1
  258. package/dist/db/schema/core/organizations.d.ts +0 -244
  259. package/dist/db/schema/core/organizations.d.ts.map +0 -1
  260. package/dist/db/schema/core/organizations.js +0 -44
  261. package/dist/db/schema/core/organizations.js.map +0 -1
  262. package/dist/db/schema/core/permissions.d.ts +0 -158
  263. package/dist/db/schema/core/permissions.d.ts.map +0 -1
  264. package/dist/db/schema/core/permissions.js +0 -62
  265. package/dist/db/schema/core/permissions.js.map +0 -1
  266. package/dist/db/schema/core/refresh-tokens.d.ts +0 -147
  267. package/dist/db/schema/core/refresh-tokens.d.ts.map +0 -1
  268. package/dist/db/schema/core/refresh-tokens.js +0 -22
  269. package/dist/db/schema/core/refresh-tokens.js.map +0 -1
  270. package/dist/db/schema/core/users.d.ts +0 -178
  271. package/dist/db/schema/core/users.d.ts.map +0 -1
  272. package/dist/db/schema/core/users.js +0 -14
  273. package/dist/db/schema/core/users.js.map +0 -1
  274. package/dist/db/tenant-migrator.d.ts +0 -11
  275. package/dist/db/tenant-migrator.d.ts.map +0 -1
  276. package/dist/db/tenant-migrator.js +0 -74
  277. package/dist/db/tenant-migrator.js.map +0 -1
  278. package/dist/db/tenant-schema.d.ts +0 -290
  279. package/dist/db/tenant-schema.d.ts.map +0 -1
  280. package/dist/db/tenant-schema.js +0 -32
  281. package/dist/db/tenant-schema.js.map +0 -1
  282. package/dist/hooks/constants.d.ts +0 -40
  283. package/dist/hooks/constants.d.ts.map +0 -1
  284. package/dist/hooks/constants.js +0 -53
  285. package/dist/hooks/constants.js.map +0 -1
  286. package/dist/hooks/context-monitor.d.ts +0 -33
  287. package/dist/hooks/context-monitor.d.ts.map +0 -1
  288. package/dist/hooks/context-monitor.js +0 -117
  289. package/dist/hooks/context-monitor.js.map +0 -1
  290. package/dist/hooks/delegate-monitor.d.ts +0 -24
  291. package/dist/hooks/delegate-monitor.d.ts.map +0 -1
  292. package/dist/hooks/delegate-monitor.js +0 -76
  293. package/dist/hooks/delegate-monitor.js.map +0 -1
  294. package/dist/hooks/index.d.ts +0 -4
  295. package/dist/hooks/index.d.ts.map +0 -1
  296. package/dist/hooks/index.js +0 -4
  297. package/dist/hooks/index.js.map +0 -1
  298. package/dist/hooks/statusline.d.ts +0 -29
  299. package/dist/hooks/statusline.d.ts.map +0 -1
  300. package/dist/hooks/statusline.js +0 -134
  301. package/dist/hooks/statusline.js.map +0 -1
  302. package/dist/index.d.ts +0 -8
  303. package/dist/index.d.ts.map +0 -1
  304. package/dist/index.js +0 -6
  305. package/dist/index.js.map +0 -1
  306. package/dist/mcp/delegate-channel-relay.d.ts +0 -51
  307. package/dist/mcp/delegate-channel-relay.d.ts.map +0 -1
  308. package/dist/mcp/delegate-channel-relay.js +0 -307
  309. package/dist/mcp/delegate-channel-relay.js.map +0 -1
  310. package/dist/mcp/server.d.ts +0 -6
  311. package/dist/mcp/server.d.ts.map +0 -1
  312. package/dist/mcp/server.js +0 -64
  313. package/dist/mcp/server.js.map +0 -1
  314. package/dist/middleware/auth.d.ts +0 -13
  315. package/dist/middleware/auth.d.ts.map +0 -1
  316. package/dist/middleware/auth.js +0 -27
  317. package/dist/middleware/auth.js.map +0 -1
  318. package/dist/middleware/permission.d.ts +0 -9
  319. package/dist/middleware/permission.d.ts.map +0 -1
  320. package/dist/middleware/permission.js +0 -19
  321. package/dist/middleware/permission.js.map +0 -1
  322. package/dist/middleware/rate-limit.d.ts +0 -9
  323. package/dist/middleware/rate-limit.d.ts.map +0 -1
  324. package/dist/middleware/rate-limit.js +0 -40
  325. package/dist/middleware/rate-limit.js.map +0 -1
  326. package/dist/middleware/tenant.d.ts +0 -17
  327. package/dist/middleware/tenant.d.ts.map +0 -1
  328. package/dist/middleware/tenant.js +0 -57
  329. package/dist/middleware/tenant.js.map +0 -1
  330. package/dist/middleware/validation.d.ts +0 -40
  331. package/dist/middleware/validation.d.ts.map +0 -1
  332. package/dist/middleware/validation.js +0 -51
  333. package/dist/middleware/validation.js.map +0 -1
  334. package/dist/routes/auth.d.ts +0 -3
  335. package/dist/routes/auth.d.ts.map +0 -1
  336. package/dist/routes/auth.js +0 -77
  337. package/dist/routes/auth.js.map +0 -1
  338. package/dist/routes/members.d.ts +0 -4
  339. package/dist/routes/members.d.ts.map +0 -1
  340. package/dist/routes/members.js +0 -114
  341. package/dist/routes/members.js.map +0 -1
  342. package/dist/routes/organizations.d.ts +0 -5
  343. package/dist/routes/organizations.d.ts.map +0 -1
  344. package/dist/routes/organizations.js +0 -97
  345. package/dist/routes/organizations.js.map +0 -1
  346. package/dist/services/auth.service.d.ts +0 -24
  347. package/dist/services/auth.service.d.ts.map +0 -1
  348. package/dist/services/auth.service.js +0 -70
  349. package/dist/services/auth.service.js.map +0 -1
  350. package/dist/services/password.service.d.ts +0 -3
  351. package/dist/services/password.service.d.ts.map +0 -1
  352. package/dist/services/password.service.js +0 -18
  353. package/dist/services/password.service.js.map +0 -1
  354. package/dist/services/rbac.service.d.ts +0 -7
  355. package/dist/services/rbac.service.d.ts.map +0 -1
  356. package/dist/services/rbac.service.js +0 -36
  357. package/dist/services/rbac.service.js.map +0 -1
  358. package/dist/services/token.service.d.ts +0 -18
  359. package/dist/services/token.service.d.ts.map +0 -1
  360. package/dist/services/token.service.js +0 -86
  361. package/dist/services/token.service.js.map +0 -1
  362. package/dist/tools/core-memory.d.ts +0 -12
  363. package/dist/tools/core-memory.d.ts.map +0 -1
  364. package/dist/tools/core-memory.js +0 -276
  365. package/dist/tools/core-memory.js.map +0 -1
  366. package/dist/tools/edit-file.d.ts +0 -25
  367. package/dist/tools/edit-file.d.ts.map +0 -1
  368. package/dist/tools/edit-file.js +0 -462
  369. package/dist/tools/edit-file.js.map +0 -1
  370. package/dist/tools/index.d.ts +0 -8
  371. package/dist/tools/index.d.ts.map +0 -1
  372. package/dist/tools/index.js +0 -536
  373. package/dist/tools/index.js.map +0 -1
  374. package/dist/tools/read-file.d.ts +0 -13
  375. package/dist/tools/read-file.d.ts.map +0 -1
  376. package/dist/tools/read-file.js +0 -91
  377. package/dist/tools/read-file.js.map +0 -1
  378. package/dist/tools/read-many-files.d.ts +0 -15
  379. package/dist/tools/read-many-files.d.ts.map +0 -1
  380. package/dist/tools/read-many-files.js +0 -187
  381. package/dist/tools/read-many-files.js.map +0 -1
  382. package/dist/tools/spec-index-builder.d.ts +0 -58
  383. package/dist/tools/spec-index-builder.d.ts.map +0 -1
  384. package/dist/tools/spec-index-builder.js +0 -211
  385. package/dist/tools/spec-index-builder.js.map +0 -1
  386. package/dist/tools/spec-init.d.ts +0 -17
  387. package/dist/tools/spec-init.d.ts.map +0 -1
  388. package/dist/tools/spec-init.js +0 -215
  389. package/dist/tools/spec-init.js.map +0 -1
  390. package/dist/tools/spec-keyword-extractor.d.ts +0 -24
  391. package/dist/tools/spec-keyword-extractor.d.ts.map +0 -1
  392. package/dist/tools/spec-keyword-extractor.js +0 -84
  393. package/dist/tools/spec-keyword-extractor.js.map +0 -1
  394. package/dist/tools/spec-keyword-extractor.test.d.ts +0 -2
  395. package/dist/tools/spec-keyword-extractor.test.d.ts.map +0 -1
  396. package/dist/tools/spec-keyword-extractor.test.js +0 -99
  397. package/dist/tools/spec-keyword-extractor.test.js.map +0 -1
  398. package/dist/tools/spec-loader.d.ts +0 -15
  399. package/dist/tools/spec-loader.d.ts.map +0 -1
  400. package/dist/tools/spec-loader.js +0 -93
  401. package/dist/tools/spec-loader.js.map +0 -1
  402. package/dist/tools/team-msg.d.ts +0 -52
  403. package/dist/tools/team-msg.d.ts.map +0 -1
  404. package/dist/tools/team-msg.js +0 -449
  405. package/dist/tools/team-msg.js.map +0 -1
  406. package/dist/tools/write-file.d.ts +0 -19
  407. package/dist/tools/write-file.d.ts.map +0 -1
  408. package/dist/tools/write-file.js +0 -165
  409. package/dist/tools/write-file.js.map +0 -1
  410. package/dist/types/index.d.ts +0 -47
  411. package/dist/types/index.d.ts.map +0 -1
  412. package/dist/types/index.js +0 -2
  413. package/dist/types/index.js.map +0 -1
  414. package/dist/types/tool-schema.d.ts +0 -37
  415. package/dist/types/tool-schema.d.ts.map +0 -1
  416. package/dist/types/tool-schema.js +0 -24
  417. package/dist/types/tool-schema.js.map +0 -1
  418. package/dist/utils/file-reader.d.ts +0 -74
  419. package/dist/utils/file-reader.d.ts.map +0 -1
  420. package/dist/utils/file-reader.js +0 -217
  421. package/dist/utils/file-reader.js.map +0 -1
  422. package/dist/utils/path-validator.d.ts +0 -52
  423. package/dist/utils/path-validator.d.ts.map +0 -1
  424. package/dist/utils/path-validator.js +0 -151
  425. 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":"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"}
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,SAAS,QAAQ,CAAC,IAAY,EAAE,OAAyB;IACvD,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,cAAc,IAAI,EAAE;QACjC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAChC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;SACpD,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,QAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACnC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CACtD,kCAAkC,CACnC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,QAAQ,CAAC,QAAQ,CACf,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;aACnE,CAAC,CAAC,CACJ,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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"}