@mastra/factory 0.15.1-alpha.0 → 0.16.0-alpha.11

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 (372) hide show
  1. package/README.md +41 -3
  2. package/dist/auth.js +1 -1
  3. package/dist/auth.js.map +1 -1
  4. package/dist/boards/index.d.ts +1 -1
  5. package/dist/boards/index.d.ts.map +1 -1
  6. package/dist/boards/index.js +2 -2
  7. package/dist/boards/index.js.map +1 -1
  8. package/dist/boards/review.d.ts.map +1 -1
  9. package/dist/boards/review.js +23 -9
  10. package/dist/boards/review.js.map +1 -1
  11. package/dist/boards/semantics.d.ts +7 -0
  12. package/dist/boards/semantics.d.ts.map +1 -1
  13. package/dist/boards/semantics.js +15 -1
  14. package/dist/boards/semantics.js.map +1 -1
  15. package/dist/boards/work.d.ts.map +1 -1
  16. package/dist/boards/work.js +68 -6
  17. package/dist/boards/work.js.map +1 -1
  18. package/dist/capabilities/intake.d.ts +8 -0
  19. package/dist/capabilities/intake.d.ts.map +1 -1
  20. package/dist/capabilities/version-control.d.ts +15 -0
  21. package/dist/capabilities/version-control.d.ts.map +1 -1
  22. package/dist/factory.d.ts +8 -5
  23. package/dist/factory.d.ts.map +1 -1
  24. package/dist/factory.js +136 -53
  25. package/dist/factory.js.map +1 -1
  26. package/dist/integrations/base.d.ts +5 -0
  27. package/dist/integrations/base.d.ts.map +1 -1
  28. package/dist/integrations/github/integration.d.ts.map +1 -1
  29. package/dist/integrations/github/integration.js +21 -0
  30. package/dist/integrations/github/integration.js.map +1 -1
  31. package/dist/integrations/github/routes.js +2 -1
  32. package/dist/integrations/github/routes.js.map +1 -1
  33. package/dist/integrations/github/sandbox.d.ts +41 -42
  34. package/dist/integrations/github/sandbox.d.ts.map +1 -1
  35. package/dist/integrations/github/sandbox.js +416 -227
  36. package/dist/integrations/github/sandbox.js.map +1 -1
  37. package/dist/integrations/github/webhook.d.ts +2 -5
  38. package/dist/integrations/github/webhook.d.ts.map +1 -1
  39. package/dist/integrations/github/webhook.js +8 -48
  40. package/dist/integrations/github/webhook.js.map +1 -1
  41. package/dist/integrations/gitlab/agent-tools.d.ts +14 -0
  42. package/dist/integrations/gitlab/agent-tools.d.ts.map +1 -0
  43. package/dist/integrations/gitlab/agent-tools.js +42 -0
  44. package/dist/integrations/gitlab/agent-tools.js.map +1 -0
  45. package/dist/integrations/gitlab/api.d.ts +222 -0
  46. package/dist/integrations/gitlab/api.d.ts.map +1 -0
  47. package/dist/integrations/gitlab/api.js +274 -0
  48. package/dist/integrations/gitlab/api.js.map +1 -0
  49. package/dist/integrations/gitlab/default-rules.d.ts +125 -0
  50. package/dist/integrations/gitlab/default-rules.d.ts.map +1 -0
  51. package/dist/integrations/gitlab/default-rules.js +172 -0
  52. package/dist/integrations/gitlab/default-rules.js.map +1 -0
  53. package/dist/integrations/gitlab/integration.d.ts +138 -0
  54. package/dist/integrations/gitlab/integration.d.ts.map +1 -0
  55. package/dist/integrations/gitlab/integration.js +705 -0
  56. package/dist/integrations/gitlab/integration.js.map +1 -0
  57. package/dist/integrations/gitlab/issue-reconciler.d.ts +6 -0
  58. package/dist/integrations/gitlab/issue-reconciler.d.ts.map +1 -0
  59. package/dist/integrations/gitlab/issue-reconciler.js +123 -0
  60. package/dist/integrations/gitlab/issue-reconciler.js.map +1 -0
  61. package/dist/integrations/gitlab/merge-request-reconciler.d.ts +6 -0
  62. package/dist/integrations/gitlab/merge-request-reconciler.d.ts.map +1 -0
  63. package/dist/integrations/gitlab/merge-request-reconciler.js +267 -0
  64. package/dist/integrations/gitlab/merge-request-reconciler.js.map +1 -0
  65. package/dist/integrations/gitlab/reconciler.d.ts +5 -0
  66. package/dist/integrations/gitlab/reconciler.d.ts.map +1 -0
  67. package/dist/integrations/gitlab/reconciler.js +31 -0
  68. package/dist/integrations/gitlab/reconciler.js.map +1 -0
  69. package/dist/integrations/gitlab/reconciliation-config.d.ts +3 -0
  70. package/dist/integrations/gitlab/reconciliation-config.d.ts.map +1 -0
  71. package/dist/integrations/gitlab/reconciliation-config.js +17 -0
  72. package/dist/integrations/gitlab/reconciliation-config.js.map +1 -0
  73. package/dist/integrations/gitlab/routes.d.ts +20 -0
  74. package/dist/integrations/gitlab/routes.d.ts.map +1 -0
  75. package/dist/integrations/gitlab/routes.js +473 -0
  76. package/dist/integrations/gitlab/routes.js.map +1 -0
  77. package/dist/integrations/gitlab/rules.d.ts +35 -0
  78. package/dist/integrations/gitlab/rules.d.ts.map +1 -0
  79. package/dist/integrations/gitlab/rules.js +391 -0
  80. package/dist/integrations/gitlab/rules.js.map +1 -0
  81. package/dist/integrations/gitlab/session-subscriptions.d.ts +32 -0
  82. package/dist/integrations/gitlab/session-subscriptions.d.ts.map +1 -0
  83. package/dist/integrations/gitlab/session-subscriptions.js +192 -0
  84. package/dist/integrations/gitlab/session-subscriptions.js.map +1 -0
  85. package/dist/integrations/gitlab/subscriptions.d.ts +70 -0
  86. package/dist/integrations/gitlab/subscriptions.d.ts.map +1 -0
  87. package/dist/integrations/gitlab/subscriptions.js +76 -0
  88. package/dist/integrations/gitlab/subscriptions.js.map +1 -0
  89. package/dist/integrations/gitlab/version-control.d.ts +16 -0
  90. package/dist/integrations/gitlab/version-control.d.ts.map +1 -0
  91. package/dist/integrations/gitlab/version-control.js +622 -0
  92. package/dist/integrations/gitlab/version-control.js.map +1 -0
  93. package/dist/integrations/gitlab/webhook-dispatch.d.ts +75 -0
  94. package/dist/integrations/gitlab/webhook-dispatch.d.ts.map +1 -0
  95. package/dist/integrations/gitlab/webhook-dispatch.js +235 -0
  96. package/dist/integrations/gitlab/webhook-dispatch.js.map +1 -0
  97. package/dist/integrations/gitlab/webhook.d.ts +72 -0
  98. package/dist/integrations/gitlab/webhook.d.ts.map +1 -0
  99. package/dist/integrations/gitlab/webhook.js +201 -0
  100. package/dist/integrations/gitlab/webhook.js.map +1 -0
  101. package/dist/integrations/incidentio/agent-tools.d.ts +49 -0
  102. package/dist/integrations/incidentio/agent-tools.d.ts.map +1 -0
  103. package/dist/integrations/incidentio/agent-tools.js +90 -0
  104. package/dist/integrations/incidentio/agent-tools.js.map +1 -0
  105. package/dist/integrations/incidentio/claim.d.ts +8 -0
  106. package/dist/integrations/incidentio/claim.d.ts.map +1 -0
  107. package/dist/integrations/incidentio/claim.js +14 -0
  108. package/dist/integrations/incidentio/claim.js.map +1 -0
  109. package/dist/integrations/incidentio/default-rules.d.ts +46 -0
  110. package/dist/integrations/incidentio/default-rules.d.ts.map +1 -0
  111. package/dist/integrations/incidentio/default-rules.js +66 -0
  112. package/dist/integrations/incidentio/default-rules.js.map +1 -0
  113. package/dist/integrations/incidentio/integration.d.ts +48 -2
  114. package/dist/integrations/incidentio/integration.d.ts.map +1 -1
  115. package/dist/integrations/incidentio/integration.js +89 -3
  116. package/dist/integrations/incidentio/integration.js.map +1 -1
  117. package/dist/integrations/incidentio/issue-reconciler.d.ts +2 -0
  118. package/dist/integrations/incidentio/issue-reconciler.d.ts.map +1 -1
  119. package/dist/integrations/incidentio/issue-reconciler.js +38 -2
  120. package/dist/integrations/incidentio/issue-reconciler.js.map +1 -1
  121. package/dist/integrations/incidentio/routes.d.ts +71 -0
  122. package/dist/integrations/incidentio/routes.d.ts.map +1 -0
  123. package/dist/integrations/incidentio/routes.js +245 -0
  124. package/dist/integrations/incidentio/routes.js.map +1 -0
  125. package/dist/integrations/incidentio/rules.d.ts +55 -0
  126. package/dist/integrations/incidentio/rules.d.ts.map +1 -0
  127. package/dist/integrations/incidentio/rules.js +175 -0
  128. package/dist/integrations/incidentio/rules.js.map +1 -0
  129. package/dist/integrations/issue-reconciler.d.ts +3 -3
  130. package/dist/integrations/issue-reconciler.d.ts.map +1 -1
  131. package/dist/integrations/issue-reconciler.js +22 -2
  132. package/dist/integrations/issue-reconciler.js.map +1 -1
  133. package/dist/integrations/jira/adf.d.ts +26 -0
  134. package/dist/integrations/jira/adf.d.ts.map +1 -0
  135. package/dist/integrations/jira/adf.js +73 -0
  136. package/dist/integrations/jira/adf.js.map +1 -0
  137. package/dist/integrations/jira/agent-tools.d.ts +45 -0
  138. package/dist/integrations/jira/agent-tools.d.ts.map +1 -0
  139. package/dist/integrations/jira/agent-tools.js +87 -0
  140. package/dist/integrations/jira/agent-tools.js.map +1 -0
  141. package/dist/integrations/jira/api.d.ts +157 -0
  142. package/dist/integrations/jira/api.d.ts.map +1 -0
  143. package/dist/integrations/jira/api.js +141 -0
  144. package/dist/integrations/jira/api.js.map +1 -0
  145. package/dist/integrations/jira/claim.d.ts +9 -0
  146. package/dist/integrations/jira/claim.d.ts.map +1 -0
  147. package/dist/integrations/jira/claim.js +15 -0
  148. package/dist/integrations/jira/claim.js.map +1 -0
  149. package/dist/integrations/jira/default-rules.d.ts +47 -0
  150. package/dist/integrations/jira/default-rules.d.ts.map +1 -0
  151. package/dist/integrations/jira/default-rules.js +67 -0
  152. package/dist/integrations/jira/default-rules.js.map +1 -0
  153. package/dist/integrations/jira/integration.d.ts +114 -0
  154. package/dist/integrations/jira/integration.d.ts.map +1 -0
  155. package/dist/integrations/jira/integration.js +401 -0
  156. package/dist/integrations/jira/integration.js.map +1 -0
  157. package/dist/integrations/jira/issue-reconciler.d.ts +10 -0
  158. package/dist/integrations/jira/issue-reconciler.d.ts.map +1 -0
  159. package/dist/integrations/jira/issue-reconciler.js +70 -0
  160. package/dist/integrations/jira/issue-reconciler.js.map +1 -0
  161. package/dist/integrations/jira/reconciliation-config.d.ts +3 -0
  162. package/dist/integrations/jira/reconciliation-config.d.ts.map +1 -0
  163. package/dist/integrations/jira/reconciliation-config.js +17 -0
  164. package/dist/integrations/jira/reconciliation-config.js.map +1 -0
  165. package/dist/integrations/jira/routes.d.ts +54 -0
  166. package/dist/integrations/jira/routes.d.ts.map +1 -0
  167. package/dist/integrations/jira/routes.js +260 -0
  168. package/dist/integrations/jira/routes.js.map +1 -0
  169. package/dist/integrations/jira/rules.d.ts +57 -0
  170. package/dist/integrations/jira/rules.d.ts.map +1 -0
  171. package/dist/integrations/jira/rules.js +175 -0
  172. package/dist/integrations/jira/rules.js.map +1 -0
  173. package/dist/integrations/linear/claim.d.ts +8 -0
  174. package/dist/integrations/linear/claim.d.ts.map +1 -0
  175. package/dist/integrations/linear/claim.js +14 -0
  176. package/dist/integrations/linear/claim.js.map +1 -0
  177. package/dist/integrations/linear/default-rules.d.ts +1 -0
  178. package/dist/integrations/linear/default-rules.d.ts.map +1 -1
  179. package/dist/integrations/linear/default-rules.js +2 -0
  180. package/dist/integrations/linear/default-rules.js.map +1 -1
  181. package/dist/integrations/linear/integration.d.ts +24 -6
  182. package/dist/integrations/linear/integration.d.ts.map +1 -1
  183. package/dist/integrations/linear/integration.js +257 -37
  184. package/dist/integrations/linear/integration.js.map +1 -1
  185. package/dist/integrations/linear/routes.d.ts +10 -0
  186. package/dist/integrations/linear/routes.d.ts.map +1 -1
  187. package/dist/integrations/linear/routes.js +74 -10
  188. package/dist/integrations/linear/routes.js.map +1 -1
  189. package/dist/integrations/linear/rules.d.ts +1 -1
  190. package/dist/integrations/linear/rules.d.ts.map +1 -1
  191. package/dist/integrations/linear/rules.js +27 -2
  192. package/dist/integrations/linear/rules.js.map +1 -1
  193. package/dist/integrations/platform/connect/routes.d.ts +39 -0
  194. package/dist/integrations/platform/connect/routes.d.ts.map +1 -0
  195. package/dist/integrations/platform/connect/routes.js +129 -0
  196. package/dist/integrations/platform/connect/routes.js.map +1 -0
  197. package/dist/integrations/platform/github/event-worker.js +1 -1
  198. package/dist/integrations/platform/github/integration.d.ts.map +1 -1
  199. package/dist/integrations/platform/github/integration.js +22 -1
  200. package/dist/integrations/platform/github/integration.js.map +1 -1
  201. package/dist/integrations/platform/gitlab/event-worker.d.ts +64 -0
  202. package/dist/integrations/platform/gitlab/event-worker.d.ts.map +1 -0
  203. package/dist/integrations/platform/gitlab/event-worker.js +306 -0
  204. package/dist/integrations/platform/gitlab/event-worker.js.map +1 -0
  205. package/dist/integrations/platform/gitlab/integration.d.ts +57 -0
  206. package/dist/integrations/platform/gitlab/integration.d.ts.map +1 -0
  207. package/dist/integrations/platform/gitlab/integration.js +125 -0
  208. package/dist/integrations/platform/gitlab/integration.js.map +1 -0
  209. package/dist/integrations/platform/incidentio/integration.d.ts +61 -4
  210. package/dist/integrations/platform/incidentio/integration.d.ts.map +1 -1
  211. package/dist/integrations/platform/incidentio/integration.js +372 -23
  212. package/dist/integrations/platform/incidentio/integration.js.map +1 -1
  213. package/dist/integrations/platform/jira/agent-tools.d.ts +36 -0
  214. package/dist/integrations/platform/jira/agent-tools.d.ts.map +1 -0
  215. package/dist/integrations/platform/jira/agent-tools.js +85 -0
  216. package/dist/integrations/platform/jira/agent-tools.js.map +1 -0
  217. package/dist/integrations/platform/jira/integration.d.ts +65 -0
  218. package/dist/integrations/platform/jira/integration.d.ts.map +1 -0
  219. package/dist/integrations/platform/jira/integration.js +540 -0
  220. package/dist/integrations/platform/jira/integration.js.map +1 -0
  221. package/dist/integrations/platform/jira/routes.d.ts +55 -0
  222. package/dist/integrations/platform/jira/routes.d.ts.map +1 -0
  223. package/dist/integrations/platform/jira/routes.js +274 -0
  224. package/dist/integrations/platform/jira/routes.js.map +1 -0
  225. package/dist/integrations/platform/linear/integration.d.ts +34 -1
  226. package/dist/integrations/platform/linear/integration.d.ts.map +1 -1
  227. package/dist/integrations/platform/linear/integration.js +271 -48
  228. package/dist/integrations/platform/linear/integration.js.map +1 -1
  229. package/dist/integrations/slack/integration.d.ts.map +1 -1
  230. package/dist/integrations/slack/integration.js +3 -3
  231. package/dist/integrations/slack/integration.js.map +1 -1
  232. package/dist/integrations/slack/slack.d.ts +2 -0
  233. package/dist/integrations/slack/slack.d.ts.map +1 -1
  234. package/dist/integrations/slack/slack.js +21 -7
  235. package/dist/integrations/slack/slack.js.map +1 -1
  236. package/dist/integrations/subscription-session.d.ts +37 -0
  237. package/dist/integrations/subscription-session.d.ts.map +1 -0
  238. package/dist/integrations/subscription-session.js +83 -0
  239. package/dist/integrations/subscription-session.js.map +1 -0
  240. package/dist/packages/_internals/workspace/dist/index.js +1 -11
  241. package/dist/packages/_internals/workspace/dist/index.js.map +1 -1
  242. package/dist/routes/intake.d.ts.map +1 -1
  243. package/dist/routes/intake.js +16 -4
  244. package/dist/routes/intake.js.map +1 -1
  245. package/dist/routes/oauth.js +3 -6
  246. package/dist/routes/oauth.js.map +1 -1
  247. package/dist/routes/projects.d.ts +1 -0
  248. package/dist/routes/projects.d.ts.map +1 -1
  249. package/dist/routes/projects.js +1 -0
  250. package/dist/routes/projects.js.map +1 -1
  251. package/dist/routes/source-control-sessions.d.ts +20 -0
  252. package/dist/routes/source-control-sessions.d.ts.map +1 -0
  253. package/dist/routes/source-control-sessions.js +319 -0
  254. package/dist/routes/source-control-sessions.js.map +1 -0
  255. package/dist/routes/source-control-settings.d.ts +10 -0
  256. package/dist/routes/source-control-settings.d.ts.map +1 -0
  257. package/dist/routes/source-control-settings.js +87 -0
  258. package/dist/routes/source-control-settings.js.map +1 -0
  259. package/dist/routes/surface.d.ts +3 -3
  260. package/dist/routes/surface.d.ts.map +1 -1
  261. package/dist/routes/surface.js +79 -17
  262. package/dist/routes/surface.js.map +1 -1
  263. package/dist/routes/tenant-credentials.d.ts +8 -0
  264. package/dist/routes/tenant-credentials.d.ts.map +1 -1
  265. package/dist/routes/tenant-credentials.js +20 -3
  266. package/dist/routes/tenant-credentials.js.map +1 -1
  267. package/dist/routes/work-items.d.ts.map +1 -1
  268. package/dist/routes/work-items.js +1 -1
  269. package/dist/routes/work-items.js.map +1 -1
  270. package/dist/rules/dispatch-errors.d.ts.map +1 -1
  271. package/dist/rules/dispatch-errors.js +8 -0
  272. package/dist/rules/dispatch-errors.js.map +1 -1
  273. package/dist/rules/dispatcher.d.ts +1 -0
  274. package/dist/rules/dispatcher.d.ts.map +1 -1
  275. package/dist/rules/dispatcher.js +186 -106
  276. package/dist/rules/dispatcher.js.map +1 -1
  277. package/dist/rules/index.d.ts +2 -2
  278. package/dist/rules/index.d.ts.map +1 -1
  279. package/dist/rules/index.js +2 -2
  280. package/dist/rules/start-coordinator.d.ts +1 -1
  281. package/dist/rules/start-coordinator.d.ts.map +1 -1
  282. package/dist/rules/start-coordinator.js +7 -3
  283. package/dist/rules/start-coordinator.js.map +1 -1
  284. package/dist/rules/terminal-cleanup.d.ts +14 -1
  285. package/dist/rules/terminal-cleanup.d.ts.map +1 -1
  286. package/dist/rules/terminal-cleanup.js +20 -0
  287. package/dist/rules/terminal-cleanup.js.map +1 -1
  288. package/dist/rules/tools.d.ts +2 -0
  289. package/dist/rules/tools.d.ts.map +1 -1
  290. package/dist/rules/tools.js +30 -2
  291. package/dist/rules/tools.js.map +1 -1
  292. package/dist/rules/transition-service.d.ts +3 -0
  293. package/dist/rules/transition-service.d.ts.map +1 -1
  294. package/dist/rules/transition-service.js +10 -5
  295. package/dist/rules/transition-service.js.map +1 -1
  296. package/dist/rules/types.d.ts +136 -3
  297. package/dist/rules/types.d.ts.map +1 -1
  298. package/dist/rules/types.js +31 -2
  299. package/dist/rules/types.js.map +1 -1
  300. package/dist/rules/validation.d.ts.map +1 -1
  301. package/dist/rules/validation.js +15 -2
  302. package/dist/rules/validation.js.map +1 -1
  303. package/dist/sandbox/git-ref.d.ts +7 -0
  304. package/dist/sandbox/git-ref.d.ts.map +1 -0
  305. package/dist/sandbox/git-ref.js +15 -0
  306. package/dist/sandbox/git-ref.js.map +1 -0
  307. package/dist/sandbox/session-retirement.js +1 -1
  308. package/dist/sandbox/workdir.d.ts.map +1 -1
  309. package/dist/sandbox/workdir.js +6 -6
  310. package/dist/sandbox/workdir.js.map +1 -1
  311. package/dist/session/factory-session.d.ts +31 -1
  312. package/dist/session/factory-session.d.ts.map +1 -1
  313. package/dist/session/factory-session.js +60 -1
  314. package/dist/session/factory-session.js.map +1 -1
  315. package/dist/session/run-audit.d.ts +9 -0
  316. package/dist/session/run-audit.d.ts.map +1 -1
  317. package/dist/session/run-audit.js +37 -6
  318. package/dist/session/run-audit.js.map +1 -1
  319. package/dist/session/source-control-tools.d.ts +16 -0
  320. package/dist/session/source-control-tools.d.ts.map +1 -0
  321. package/dist/session/source-control-tools.js +464 -0
  322. package/dist/session/source-control-tools.js.map +1 -0
  323. package/dist/skills/service.d.ts +12 -0
  324. package/dist/skills/service.d.ts.map +1 -1
  325. package/dist/skills/service.js +27 -1
  326. package/dist/skills/service.js.map +1 -1
  327. package/dist/storage/domains/intake/base.d.ts +18 -0
  328. package/dist/storage/domains/intake/base.d.ts.map +1 -1
  329. package/dist/storage/domains/intake/base.js +77 -0
  330. package/dist/storage/domains/intake/base.js.map +1 -1
  331. package/dist/storage/domains/work-items/base.d.ts +41 -2
  332. package/dist/storage/domains/work-items/base.d.ts.map +1 -1
  333. package/dist/storage/domains/work-items/base.js +159 -12
  334. package/dist/storage/domains/work-items/base.js.map +1 -1
  335. package/dist/supervisor/session-messaging.d.ts +23 -0
  336. package/dist/supervisor/session-messaging.d.ts.map +1 -0
  337. package/dist/supervisor/session-messaging.js +15 -0
  338. package/dist/supervisor/session-messaging.js.map +1 -0
  339. package/dist/supervisor/write-tools.d.ts +2 -1
  340. package/dist/supervisor/write-tools.d.ts.map +1 -1
  341. package/dist/supervisor/write-tools.js +11 -7
  342. package/dist/supervisor/write-tools.js.map +1 -1
  343. package/dist/work-item-branch.d.ts +3 -1
  344. package/dist/work-item-branch.d.ts.map +1 -1
  345. package/dist/work-item-branch.js +26 -6
  346. package/dist/work-item-branch.js.map +1 -1
  347. package/dist/workspace.d.ts +15 -1
  348. package/dist/workspace.d.ts.map +1 -1
  349. package/dist/workspace.js +57 -23
  350. package/dist/workspace.js.map +1 -1
  351. package/factory-skills/factory-gitlab-rereview/SKILL.md +19 -0
  352. package/factory-skills/factory-gitlab-review/SKILL.md +30 -0
  353. package/factory-skills/factory-rereview/SKILL.md +13 -6
  354. package/factory-skills/factory-review/SKILL.md +13 -6
  355. package/factory-skills/factory-review/references/archaeology.md +225 -0
  356. package/factory-skills/factory-review/references/categories/README.md +34 -0
  357. package/factory-skills/factory-review/references/categories/behavior-change.md +36 -0
  358. package/factory-skills/factory-review/references/categories/bug-fix.md +37 -0
  359. package/factory-skills/factory-review/references/categories/docs.md +32 -0
  360. package/factory-skills/factory-review/references/categories/experimental-flagged.md +34 -0
  361. package/factory-skills/factory-review/references/categories/infra-tooling.md +37 -0
  362. package/factory-skills/factory-review/references/categories/internal-capability.md +35 -0
  363. package/factory-skills/factory-review/references/categories/large-cross-cutting.md +35 -0
  364. package/factory-skills/factory-review/references/categories/mechanical.md +36 -0
  365. package/factory-skills/factory-review/references/categories/performance.md +33 -0
  366. package/factory-skills/factory-review/references/categories/public-api.md +38 -0
  367. package/factory-skills/factory-review/references/categories/refactor.md +35 -0
  368. package/factory-skills/factory-review/references/categories/revert.md +31 -0
  369. package/factory-skills/factory-review/references/categories/schema-storage.md +39 -0
  370. package/factory-skills/factory-review/references/categories/security.md +35 -0
  371. package/factory-skills/factory-review/references/categories/tests-only.md +38 -0
  372. package/package.json +12 -12
package/dist/factory.js CHANGED
@@ -1,35 +1,39 @@
1
1
  import { timedPhase } from "./timing.js";
2
2
  import { buildAuthRoutes, createFactoryAuthGate, createFactoryRouteAuth, getFactoryAuthOrgId, getFactoryAuthUserFromContext, getFactoryAuthUserId } from "./auth.js";
3
3
  import { assertFactoryConfigVersion } from "./rules/validation.js";
4
- import { workItemPhaseSemantics } from "./boards/semantics.js";
4
+ import { isTerminalWorkItem } from "./boards/semantics.js";
5
5
  import { createBoardRegistry } from "./boards/registry.js";
6
6
  import "./boards/index.js";
7
7
  import { touchFeed } from "./feed-events.js";
8
8
  import { reconcileGithubAcceptanceLabels } from "./integrations/github/acceptance-labels.js";
9
9
  import { recordFactoryPullRequestProvenance, resolveFactoryPullRequestParentWorkItemId } from "./integrations/github/provenance.js";
10
- import { isValidGitRef } from "./integrations/github/sandbox.js";
10
+ import { PlatformApiClient, platformApiClientConfigFromEnv } from "./integrations/platform/api-client.js";
11
+ import { buildPlatformConnectRoutes } from "./integrations/platform/connect/routes.js";
11
12
  import { WorkItemsStorage } from "./storage/domains/work-items/base.js";
12
13
  import { IntakeStorage } from "./storage/domains/intake/base.js";
14
+ import { isValidGitRef } from "./sandbox/git-ref.js";
15
+ import { createPlaintextFactorySecretEncryption } from "./secret-encryption.js";
16
+ import { ModelCredentialsStorage } from "./storage/domains/credentials/base.js";
17
+ import { createTenantCredentialPrimer, primeTenantCredentials, registerTenantCredentialResolver } from "./routes/tenant-credentials.js";
13
18
  import { PlatformGithubIntegration } from "./integrations/platform/github/integration.js";
19
+ import { PlatformGitLabIntegration } from "./integrations/platform/gitlab/integration.js";
14
20
  import { PlatformIncidentioIntegration } from "./integrations/platform/incidentio/integration.js";
21
+ import { PlatformJiraIntegration } from "./integrations/platform/jira/integration.js";
15
22
  import { PlatformLinearIntegration } from "./integrations/platform/linear/integration.js";
16
23
  import { createCustomProvidersPrimer, registerCustomProvidersSource } from "./routes/custom-provider-source.js";
17
24
  import { ProjectRoutes } from "./routes/projects.js";
18
25
  import { MemorySettingsStorage } from "./storage/domains/memory-settings/base.js";
26
+ import { SourceControlStorage } from "./storage/domains/source-control/base.js";
19
27
  import { hydrateSessionMemorySettings } from "./session/memory-settings-hydration.js";
20
- import { refreshFactorySessionMemorySettings } from "./session/factory-session.js";
28
+ import { createSourceControlSessionLookup, refreshFactorySessionMemorySettings } from "./session/factory-session.js";
21
29
  import { FactoryTransitionService } from "./rules/transition-service.js";
22
- import { SourceControlStorage } from "./storage/domains/source-control/base.js";
23
30
  import { AuditStorage } from "./storage/domains/audit/base.js";
24
31
  import { AuditDomain } from "./storage/domains/audit/domain.js";
25
32
  import { hydrateSessionModelPack } from "./session/model-pack-hydration.js";
26
33
  import { observeSessionFirstExec } from "./session/first-exec-capture.js";
27
34
  import { observeSessionFilesystem } from "./session/filesystem-capture.js";
28
- import { createPlaintextFactorySecretEncryption } from "./secret-encryption.js";
29
- import { ModelCredentialsStorage } from "./storage/domains/credentials/base.js";
30
35
  import { hydrateSupervisorSession, parseSupervisorResourceId, resolveSupervisorScope } from "./supervisor/session.js";
31
36
  import { FactoryWorkspaceRegistry, createWorkspaceFactory } from "./workspace.js";
32
- import { createTenantCredentialPrimer, primeTenantCredentials, registerTenantCredentialResolver } from "./routes/tenant-credentials.js";
33
37
  import { QueueHealthStorage } from "./storage/domains/queue-health/base.js";
34
38
  import { assembleFactoryApiRoutes, buildIntegrationContext } from "./routes/surface.js";
35
39
  import { TelemetryRoutes } from "./routes/telemetry.js";
@@ -43,6 +47,7 @@ import { SessionRetirementCoordinator } from "./sandbox/session-retirement.js";
43
47
  import { handleServerError } from "./server-error.js";
44
48
  import { observeSessionFirstMessage } from "./session/first-message-capture.js";
45
49
  import { LiveSessions } from "./session/live-sessions.js";
50
+ import { createSourceControlTools } from "./session/source-control-tools.js";
46
51
  import { observeSessionThreadTitle } from "./session/thread-title-mirror.js";
47
52
  import { createSpaStaticMiddleware, resolveUiDistDir } from "./spa-static.js";
48
53
  import { createStateSigner } from "./state-signing.js";
@@ -58,6 +63,7 @@ import { FactoryProjectsStorage } from "./storage/domains/projects/base.js";
58
63
  import { FactorySupervisorHealthWorker } from "./supervisor/health-worker.js";
59
64
  import { SUPERVISOR_INSTRUCTIONS } from "./supervisor/instructions.js";
60
65
  import { createFactorySupervisorReadTools } from "./supervisor/read-tools.js";
66
+ import { messageWorkerSession } from "./supervisor/session-messaging.js";
61
67
  import { createFactorySupervisorWriteTools } from "./supervisor/write-tools.js";
62
68
  import { hasAuthInit, isUserProvider } from "@mastra/core/server";
63
69
  import { MastraAuthStudio } from "@mastra/auth-studio";
@@ -70,9 +76,9 @@ import { EventEmitterPubSub } from "@mastra/core/events";
70
76
  *
71
77
  * The consumer's deploy entry constructs deployment-specific config instances
72
78
  * (auth adapter, pubsub) and passes them here explicitly. The only provider
73
- * defaults constructed here are Platform GitHub, incident.io, and Linear
74
- * integrations when Platform credentials exist and the caller did not provide
75
- * those integrations.
79
+ * defaults constructed here are Platform GitHub, GitLab, Jira, incident.io, and
80
+ * Linear integrations when Platform credentials exist and the caller did not
81
+ * provide those integrations.
76
82
  *
77
83
  * `prepare()` resolves feature readiness, threads every dependency explicitly,
78
84
  * assembles the web routes/middleware, and returns the constructor args for
@@ -191,7 +197,9 @@ var MastraFactory = class {
191
197
  const integrations = [...this.#config.integrations ?? []];
192
198
  if (hasPlatformCredentials()) {
193
199
  if (!integrations.some((integration) => integration.id === "github")) integrations.push(new PlatformGithubIntegration({ slug: this.#config.platform?.githubAppSlug }));
194
- if (process.env.MASTRA_INCIDENT_IO_CONNECTION_ID?.trim() && !integrations.some((integration) => integration.id === "incidentio")) integrations.push(new PlatformIncidentioIntegration());
200
+ if (!integrations.some((integration) => integration.id === "incidentio")) integrations.push(new PlatformIncidentioIntegration());
201
+ if (!integrations.some((integration) => integration.id === "jira")) integrations.push(new PlatformJiraIntegration());
202
+ if (!integrations.some((integration) => integration.id === "gitlab")) integrations.push(new PlatformGitLabIntegration());
195
203
  if (!integrations.some((integration) => integration.id === "linear")) integrations.push(new PlatformLinearIntegration());
196
204
  }
197
205
  const integrationIds = /* @__PURE__ */ new Set();
@@ -204,7 +212,7 @@ var MastraFactory = class {
204
212
  const auditStorage = storage.registerDomain(new AuditStorage());
205
213
  const workItemsStorage = storage.registerDomain(new WorkItemsStorage());
206
214
  workItemsStorage.onAttentionChanged((scope) => touchFeed(eventBus, scope));
207
- workItemsStorage.useTerminalPhasePredicate((item) => workItemPhaseSemantics(this.#boards, item)?.kind === "terminal");
215
+ workItemsStorage.useTerminalPhasePredicate((item) => isTerminalWorkItem(this.#boards, item));
208
216
  const modelCredentialsStorage = storage.registerDomain(new ModelCredentialsStorage(secretEncryption));
209
217
  const modelPacksStorage = storage.registerDomain(new ModelPacksStorage());
210
218
  const memorySettingsStorage = storage.registerDomain(new MemorySettingsStorage());
@@ -273,13 +281,17 @@ var MastraFactory = class {
273
281
  authEnabled: Boolean(auth)
274
282
  });
275
283
  for (const integration of integrations) {
284
+ const integrationSourceControl = integration.versionControl ? sourceControlStorage.forIntegration(integration.id) : void 0;
276
285
  integration.initialize?.({
277
286
  storage: integrationStorage.forIntegration(integration.id),
278
287
  projects: factoryProjectsStorage,
279
- auth: routeAuth
288
+ auth: routeAuth,
289
+ intake: intakeStorage,
290
+ ...integrationSourceControl ? { sourceControl: integrationSourceControl } : {}
280
291
  });
281
- if (integration.versionControl) integration.versionControl.initialize({ storage: sourceControlStorage.forIntegration(integration.id) });
292
+ if (integration.versionControl && integrationSourceControl) integration.versionControl.initialize({ storage: integrationSourceControl });
282
293
  }
294
+ const sourceControlSessions = createSourceControlSessionLookup([.../* @__PURE__ */ new Set(["github", ...integrations.filter((integration) => integration.versionControl).map(({ id }) => id)])].map((id) => sourceControlStorage.forIntegration(id)));
283
295
  const integrationRegistrations = integrations.map((integration) => {
284
296
  const requiredDomains = [
285
297
  "integrations",
@@ -298,20 +310,46 @@ var MastraFactory = class {
298
310
  const factoryReady = storage.isDomainReady("projects") && storage.isDomainReady("work-items");
299
311
  const knowledgeEnabled = process.env.MASTRACODE_EXPERIMENTAL_SUBCONSCIOUS === "1";
300
312
  const githubIntegration = integrations.find((integration) => integration.id === "github");
313
+ const gitlabIntegration = integrations.find((integration) => integration.id === "gitlab" && integration.intake && integration.versionControl);
301
314
  const workItemsReady = storage.isDomainReady("work-items");
302
315
  const sessionRetirement = sandboxConfig && storage.isDomainReady("source-control") ? new SessionRetirementCoordinator({ invalidateSession: (sessionId) => workspaceRegistry.invalidateSession(sessionId) }) : void 0;
303
- const retireTerminalSessions = sessionRetirement && githubIntegration && workItemsReady ? async ({ orgId, workItemId }) => sessionRetirement.retireWorkItemSessions({
304
- workItems: workItemsStorage,
305
- sourceControl: sourceControlStorage.forIntegration(githubIntegration.id),
306
- orgId,
307
- workItemId
308
- }) : void 0;
309
- const onTerminalStage = workItemsReady ? createTerminalStageCleanup({
316
+ const retireTerminalSessions = sessionRetirement && workItemsReady ? async ({ orgId, workItemId }) => {
317
+ const item = await workItemsStorage.get({
318
+ orgId,
319
+ id: workItemId
320
+ });
321
+ if (!item) return;
322
+ const sessionIds = [...new Set(Object.values(item.sessions).map((session) => session.sessionId))];
323
+ await Promise.all(sessionIds.map(async (sessionId) => {
324
+ const sourceControl = await sourceControlSessions.getSourceControlBySessionId(sessionId);
325
+ if (!sourceControl) return;
326
+ await sessionRetirement.retireSession({
327
+ sourceControl,
328
+ orgId,
329
+ sessionId,
330
+ deleteSession: false
331
+ });
332
+ }));
333
+ } : void 0;
334
+ const terminalCleanup = workItemsReady ? createTerminalStageCleanup({
310
335
  workItems: workItemsStorage,
311
336
  reconcileBinding: async (binding) => {
312
337
  await factoryProcessor?.reconcileBinding(binding);
313
338
  },
339
+ abortSession: async (binding) => {
340
+ const controller = this.#prepared?.base.controller;
341
+ if (!controller) return;
342
+ const session = await controller.getSessionByResource(binding.resourceId);
343
+ if (session?.stream.isActive()) session.abort();
344
+ },
314
345
  ...retireTerminalSessions ? { releaseSandboxes: retireTerminalSessions } : {}
346
+ }) : void 0;
347
+ const onTerminalStage = terminalCleanup ? (args) => terminalCleanup({
348
+ orgId: args.orgId,
349
+ factoryProjectId: args.factoryProjectId,
350
+ workItemId: args.workItemId,
351
+ revision: args.revision,
352
+ ...args.actor.type === "agent" ? { initiatingBindingId: args.actor.bindingId } : {}
315
353
  }) : retireTerminalSessions;
316
354
  const transitionService = workItemsReady ? new FactoryTransitionService({
317
355
  configVersion,
@@ -333,28 +371,51 @@ var MastraFactory = class {
333
371
  projects: factoryProjectsStorage,
334
372
  sourceControl: sourceControlStorage,
335
373
  versionControlIntegrationIds: integrations.filter((integration) => integration.versionControl).map((integration) => integration.id),
336
- ...githubIntegration ? { resolveRepository: async ({ integrationId, orgId, installationId, externalId, slug }) => {
337
- if (integrationId !== githubIntegration.id) return null;
338
- const installation = await githubIntegration.sourceControlStorage.installations.get({
374
+ ...githubIntegration || gitlabIntegration ? { resolveRepository: async ({ integrationId, orgId, userId, installationId, externalId, slug }) => {
375
+ if (githubIntegration && integrationId === githubIntegration.id) {
376
+ const installation = await githubIntegration.sourceControlStorage.installations.get({
377
+ orgId,
378
+ id: installationId
379
+ });
380
+ if (!installation) return null;
381
+ const selected = (await githubIntegration.listInstallationRepos(Number(installation.externalId))).find((repo) => repo.id.toString() === externalId && repo.fullName === slug);
382
+ if (!selected) return null;
383
+ return githubIntegration.sourceControlStorage.repositories.upsert({
384
+ orgId,
385
+ input: {
386
+ installationId,
387
+ externalId,
388
+ slug: selected.fullName,
389
+ defaultBranch: isValidGitRef(selected.defaultBranch) ? selected.defaultBranch : "main",
390
+ providerMetadata: {
391
+ private: selected.private,
392
+ owner: selected.owner
393
+ }
394
+ }
395
+ });
396
+ }
397
+ if (!gitlabIntegration?.intake || !gitlabIntegration.versionControl || integrationId !== gitlabIntegration.id) return null;
398
+ const installation = await sourceControlStorage.forIntegration(gitlabIntegration.id).installations.get({
339
399
  orgId,
340
400
  id: installationId
341
401
  });
342
402
  if (!installation) return null;
343
- const selected = (await githubIntegration.listInstallationRepos(Number(installation.externalId))).find((repo) => repo.id.toString() === externalId && repo.fullName === slug);
403
+ const selected = (await gitlabIntegration.intake.listSources({
404
+ orgId,
405
+ userId
406
+ })).find((source) => source.name === slug && typeof source.metadata?.projectId === "string" && source.metadata.projectId === externalId && source.metadata.connectionId === installation.externalId);
344
407
  if (!selected) return null;
345
- return githubIntegration.sourceControlStorage.repositories.upsert({
408
+ const [repository] = await gitlabIntegration.versionControl.registerRepositories({
346
409
  orgId,
347
- input: {
348
- installationId,
410
+ installationId,
411
+ repositories: [{
349
412
  externalId,
350
- slug: selected.fullName,
351
- defaultBranch: isValidGitRef(selected.defaultBranch) ? selected.defaultBranch : "main",
352
- providerMetadata: {
353
- private: selected.private,
354
- owner: selected.owner
355
- }
356
- }
413
+ slug,
414
+ defaultBranch: typeof selected.metadata?.defaultBranch === "string" && isValidGitRef(selected.metadata.defaultBranch) ? selected.metadata.defaultBranch : "main",
415
+ metadata: selected.metadata
416
+ }]
357
417
  });
418
+ return repository ?? null;
358
419
  } } : {},
359
420
  ...sessionRetirement ? { sessionRetirement } : {},
360
421
  ...workItemsReady ? { workItems: workItemsStorage } : {}
@@ -381,13 +442,23 @@ var MastraFactory = class {
381
442
  }
382
443
  })();
383
444
  const toolIntegrations = integrationRegistrations.filter(({ integration }) => integration.agentTools || integration.sessionTools);
445
+ const sourceControlToolProviders = integrations.flatMap((integration) => integration.versionControl ? [{
446
+ id: integration.id,
447
+ versionControl: integration.versionControl,
448
+ storage: sourceControlStorage.forIntegration(integration.id)
449
+ }] : []);
384
450
  const prepared = await timedPhase("prepare.controllerMount", () => prepareAgentControllerMount({
385
451
  controllerId: CONTROLLER_ID,
386
452
  coAuthor: { name: "mastra-platform[bot]" },
387
453
  workspace: createWorkspaceFactory({
388
454
  ...sandboxConfig ? { sandbox: sandboxConfig } : {},
389
455
  ...this.#config.sandboxStart ? { sandboxStart: this.#config.sandboxStart } : {},
390
- ...githubIntegration ? { github: githubIntegration } : {},
456
+ sourceControls: integrations.flatMap((integration) => integration.versionControl ? [{
457
+ id: integration.id,
458
+ versionControl: integration.versionControl,
459
+ storage: sourceControlStorage.forIntegration(integration.id),
460
+ ...integration.id === "github" && githubIntegration ? { github: githubIntegration } : {}
461
+ }] : []),
391
462
  ...factoryProjectsStorage ? { projects: factoryProjectsStorage } : {},
392
463
  ...workItemsStorage ? { workItems: workItemsStorage } : {},
393
464
  workspaceRegistry
@@ -408,7 +479,7 @@ var MastraFactory = class {
408
479
  ...mastraStorageBackend ? { storageBackend: mastraStorageBackend } : {},
409
480
  ...factoryProcessor ? { inputProcessors: [factoryProcessor] } : {},
410
481
  ...vector ? { vector } : {},
411
- ...toolIntegrations.length > 0 || workItemsStorage && transitionService ? { extraTools: async ({ requestContext }) => {
482
+ ...toolIntegrations.length > 0 || sourceControlToolProviders.length > 0 || workItemsStorage && transitionService ? { extraTools: async ({ requestContext }) => {
412
483
  const tools = {};
413
484
  const toolOwners = /* @__PURE__ */ new Map();
414
485
  const mergeTools = (ownerId, contributed) => {
@@ -419,12 +490,18 @@ var MastraFactory = class {
419
490
  tools[name] = tool;
420
491
  }
421
492
  };
493
+ if (storage.isDomainReady("source-control")) mergeTools("source-control", createSourceControlTools({
494
+ requestContext,
495
+ providers: sourceControlToolProviders,
496
+ audit: auditDomain
497
+ }));
422
498
  if (workItemsStorage && transitionService) {
423
499
  mergeTools("factory", await createFactoryTransitionTools({
424
500
  requestContext,
425
501
  storage: workItemsStorage,
426
502
  transitionService,
427
- ...storage.isDomainReady("source-control") ? { sessions: sourceControlStorage.forIntegration("github").sessions } : {}
503
+ boards: this.#boards,
504
+ ...storage.isDomainReady("source-control") ? { sessions: sourceControlSessions } : {}
428
505
  }));
429
506
  const supervisorScope = await resolveSupervisorScope({
430
507
  requestContext,
@@ -453,14 +530,13 @@ var MastraFactory = class {
453
530
  audit: auditDomain,
454
531
  transitionService,
455
532
  ...githubIntegration ? { reconcileAcceptanceLabels: (args) => reconcileGithubAcceptanceLabels(githubIntegration, sourceControlStorage.forIntegration(githubIntegration.id), args) } : {},
456
- signalSession: async ({ sessionId, message }) => {
457
- const session = await prepared.base.controller.getSessionByResource(sessionId);
458
- if (!session) throw new Error("The worker session is not currently available.");
459
- await session.sendMessage({
460
- content: message,
461
- ...requestContext ? { requestContext } : {}
462
- });
463
- }
533
+ messageSession: ({ sessionId, message, delivery }) => messageWorkerSession({
534
+ controller: prepared.base.controller,
535
+ sessionId,
536
+ message,
537
+ delivery,
538
+ ...requestContext ? { requestContext } : {}
539
+ })
464
540
  }));
465
541
  }
466
542
  }
@@ -584,7 +660,11 @@ var MastraFactory = class {
584
660
  }),
585
661
  ...projectRoutes.routes(),
586
662
  ...auditDomain.routes(),
587
- ...commentsDomain.routes()
663
+ ...commentsDomain.routes(),
664
+ ...hasPlatformCredentials() ? buildPlatformConnectRoutes({
665
+ auth: routeAuth,
666
+ client: new PlatformApiClient(platformApiClientConfigFromEnv())
667
+ }) : []
588
668
  ],
589
669
  buildServerConfig: () => {
590
670
  const cors = allowedOrigins.length ? { cors: {
@@ -626,11 +706,11 @@ var MastraFactory = class {
626
706
  prepared.base.controller.onSessionCreated((session) => {
627
707
  observeSessionFilesystem(session, {
628
708
  filesystem: filesystemStorage,
629
- sourceControl: sourceControlStorage.forIntegration("github")
709
+ sourceControl: { sessions: sourceControlSessions }
630
710
  });
631
- observeSessionFirstMessage(session, { sourceControl: sourceControlStorage.forIntegration("github") });
632
- observeSessionFirstExec(session, { sourceControl: sourceControlStorage.forIntegration("github") });
633
- observeSessionThreadTitle(session, { sourceControl: sourceControlStorage.forIntegration("github") });
711
+ observeSessionFirstMessage(session, { sourceControl: { sessions: sourceControlSessions } });
712
+ observeSessionFirstExec(session, { sourceControl: { sessions: sourceControlSessions } });
713
+ observeSessionThreadTitle(session, { sourceControl: { sessions: sourceControlSessions } });
634
714
  observeSessionRunEnd(session, { audit: auditDomain });
635
715
  });
636
716
  prepared.base.controller.onSessionCreated((session) => hydrateSupervisorSession(session, {
@@ -640,12 +720,12 @@ var MastraFactory = class {
640
720
  console.warn("[Factory Supervisor] Failed to hydrate supervisor session", { error: error instanceof Error ? error.message : String(error) });
641
721
  }), { blocking: true });
642
722
  prepared.base.controller.onSessionCreated((session) => hydrateSessionMemorySettings(session, {
643
- sourceControl: sourceControlStorage.forIntegration("github"),
723
+ sourceControl: { sessions: sourceControlSessions },
644
724
  projects: factoryProjectsStorage,
645
725
  memorySettings: memorySettingsStorage
646
726
  }), { blocking: true });
647
727
  prepared.base.controller.onSessionCreated((session) => hydrateSessionModelPack(session, {
648
- sourceControl: sourceControlStorage.forIntegration("github"),
728
+ sourceControl: { sessions: sourceControlSessions },
649
729
  workItems: workItemsStorage,
650
730
  modelPacks: modelPacksStorage
651
731
  }), { blocking: true });
@@ -663,6 +743,7 @@ var MastraFactory = class {
663
743
  factoryStorage: storage,
664
744
  integrationStorage,
665
745
  sourceControlStorage,
746
+ integrations: integrationRegistrations,
666
747
  configVersion,
667
748
  boardRegistry: this.#boards,
668
749
  factoryReady,
@@ -682,6 +763,7 @@ var MastraFactory = class {
682
763
  factoryStorage: storage,
683
764
  integrationStorage,
684
765
  sourceControlStorage,
766
+ integrations: integrationRegistrations,
685
767
  configVersion,
686
768
  boardRegistry: this.#boards,
687
769
  factoryReady,
@@ -705,6 +787,7 @@ var MastraFactory = class {
705
787
  factoryStorage: storage,
706
788
  integrationStorage,
707
789
  sourceControlStorage,
790
+ integrations: integrationRegistrations,
708
791
  configVersion,
709
792
  boardRegistry: this.#boards,
710
793
  factoryReady,