@mastra/factory 0.0.0-aggregate-trace-20261015182851

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 (926) hide show
  1. package/LICENSE.md +32 -0
  2. package/README.md +671 -0
  3. package/dist/auth.d.ts +201 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +623 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/boards/define-board.d.ts +111 -0
  8. package/dist/boards/define-board.d.ts.map +1 -0
  9. package/dist/boards/define-board.js +156 -0
  10. package/dist/boards/define-board.js.map +1 -0
  11. package/dist/boards/index.d.ts +14 -0
  12. package/dist/boards/index.d.ts.map +1 -0
  13. package/dist/boards/index.js +21 -0
  14. package/dist/boards/index.js.map +1 -0
  15. package/dist/boards/registry.d.ts +16 -0
  16. package/dist/boards/registry.d.ts.map +1 -0
  17. package/dist/boards/registry.js +25 -0
  18. package/dist/boards/registry.js.map +1 -0
  19. package/dist/boards/relocate.d.ts +21 -0
  20. package/dist/boards/relocate.d.ts.map +1 -0
  21. package/dist/boards/relocate.js +58 -0
  22. package/dist/boards/relocate.js.map +1 -0
  23. package/dist/boards/review.d.ts +6 -0
  24. package/dist/boards/review.d.ts.map +1 -0
  25. package/dist/boards/review.js +104 -0
  26. package/dist/boards/review.js.map +1 -0
  27. package/dist/boards/semantics.d.ts +68 -0
  28. package/dist/boards/semantics.d.ts.map +1 -0
  29. package/dist/boards/semantics.js +119 -0
  30. package/dist/boards/semantics.js.map +1 -0
  31. package/dist/boards/transition-policy.d.ts +67 -0
  32. package/dist/boards/transition-policy.d.ts.map +1 -0
  33. package/dist/boards/transition-policy.js +36 -0
  34. package/dist/boards/transition-policy.js.map +1 -0
  35. package/dist/boards/work-tool-rules.d.ts +8 -0
  36. package/dist/boards/work-tool-rules.d.ts.map +1 -0
  37. package/dist/boards/work-tool-rules.js +20 -0
  38. package/dist/boards/work-tool-rules.js.map +1 -0
  39. package/dist/boards/work-transition-policy.d.ts +3 -0
  40. package/dist/boards/work-transition-policy.d.ts.map +1 -0
  41. package/dist/boards/work-transition-policy.js +46 -0
  42. package/dist/boards/work-transition-policy.js.map +1 -0
  43. package/dist/boards/work.d.ts +4 -0
  44. package/dist/boards/work.d.ts.map +1 -0
  45. package/dist/boards/work.js +222 -0
  46. package/dist/boards/work.js.map +1 -0
  47. package/dist/capabilities/connection.d.ts +9 -0
  48. package/dist/capabilities/connection.d.ts.map +1 -0
  49. package/dist/capabilities/connection.js +1 -0
  50. package/dist/capabilities/intake.d.ts +153 -0
  51. package/dist/capabilities/intake.d.ts.map +1 -0
  52. package/dist/capabilities/intake.js +1 -0
  53. package/dist/capabilities/version-control.d.ts +268 -0
  54. package/dist/capabilities/version-control.d.ts.map +1 -0
  55. package/dist/capabilities/version-control.js +1 -0
  56. package/dist/environment/build-runner.d.ts +72 -0
  57. package/dist/environment/build-runner.d.ts.map +1 -0
  58. package/dist/environment/build-runner.js +131 -0
  59. package/dist/environment/build-runner.js.map +1 -0
  60. package/dist/environment/build-schedule.d.ts +40 -0
  61. package/dist/environment/build-schedule.d.ts.map +1 -0
  62. package/dist/environment/build-schedule.js +94 -0
  63. package/dist/environment/build-schedule.js.map +1 -0
  64. package/dist/environment/build-workflow.d.ts +62 -0
  65. package/dist/environment/build-workflow.d.ts.map +1 -0
  66. package/dist/environment/build-workflow.js +149 -0
  67. package/dist/environment/build-workflow.js.map +1 -0
  68. package/dist/environment/build.d.ts +111 -0
  69. package/dist/environment/build.d.ts.map +1 -0
  70. package/dist/environment/build.js +344 -0
  71. package/dist/environment/build.js.map +1 -0
  72. package/dist/environment/heads.d.ts +36 -0
  73. package/dist/environment/heads.d.ts.map +1 -0
  74. package/dist/environment/heads.js +60 -0
  75. package/dist/environment/heads.js.map +1 -0
  76. package/dist/factory.d.ts +225 -0
  77. package/dist/factory.d.ts.map +1 -0
  78. package/dist/factory.js +1006 -0
  79. package/dist/factory.js.map +1 -0
  80. package/dist/feed-events.d.ts +13 -0
  81. package/dist/feed-events.d.ts.map +1 -0
  82. package/dist/feed-events.js +25 -0
  83. package/dist/feed-events.js.map +1 -0
  84. package/dist/index.d.ts +22 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +15 -0
  87. package/dist/integrations/base.d.ts +302 -0
  88. package/dist/integrations/base.d.ts.map +1 -0
  89. package/dist/integrations/base.js +1 -0
  90. package/dist/integrations/github/acceptance-labels.d.ts +16 -0
  91. package/dist/integrations/github/acceptance-labels.d.ts.map +1 -0
  92. package/dist/integrations/github/acceptance-labels.js +55 -0
  93. package/dist/integrations/github/acceptance-labels.js.map +1 -0
  94. package/dist/integrations/github/app-identity.d.ts +43 -0
  95. package/dist/integrations/github/app-identity.d.ts.map +1 -0
  96. package/dist/integrations/github/app-identity.js +62 -0
  97. package/dist/integrations/github/app-identity.js.map +1 -0
  98. package/dist/integrations/github/commits.d.ts +40 -0
  99. package/dist/integrations/github/commits.d.ts.map +1 -0
  100. package/dist/integrations/github/commits.js +48 -0
  101. package/dist/integrations/github/commits.js.map +1 -0
  102. package/dist/integrations/github/config.d.ts +60 -0
  103. package/dist/integrations/github/config.d.ts.map +1 -0
  104. package/dist/integrations/github/config.js +42 -0
  105. package/dist/integrations/github/config.js.map +1 -0
  106. package/dist/integrations/github/default-rules.d.ts +218 -0
  107. package/dist/integrations/github/default-rules.d.ts.map +1 -0
  108. package/dist/integrations/github/default-rules.js +296 -0
  109. package/dist/integrations/github/default-rules.js.map +1 -0
  110. package/dist/integrations/github/integration.d.ts +270 -0
  111. package/dist/integrations/github/integration.d.ts.map +1 -0
  112. package/dist/integrations/github/integration.js +1375 -0
  113. package/dist/integrations/github/integration.js.map +1 -0
  114. package/dist/integrations/github/issue-reconciler.d.ts +28 -0
  115. package/dist/integrations/github/issue-reconciler.d.ts.map +1 -0
  116. package/dist/integrations/github/issue-reconciler.js +138 -0
  117. package/dist/integrations/github/issue-reconciler.js.map +1 -0
  118. package/dist/integrations/github/pat.d.ts +38 -0
  119. package/dist/integrations/github/pat.d.ts.map +1 -0
  120. package/dist/integrations/github/pat.js +59 -0
  121. package/dist/integrations/github/pat.js.map +1 -0
  122. package/dist/integrations/github/provenance.d.ts +34 -0
  123. package/dist/integrations/github/provenance.d.ts.map +1 -0
  124. package/dist/integrations/github/provenance.js +91 -0
  125. package/dist/integrations/github/provenance.js.map +1 -0
  126. package/dist/integrations/github/reconcile-worker.d.ts +45 -0
  127. package/dist/integrations/github/reconcile-worker.d.ts.map +1 -0
  128. package/dist/integrations/github/reconcile-worker.js +189 -0
  129. package/dist/integrations/github/reconcile-worker.js.map +1 -0
  130. package/dist/integrations/github/reconciliation-config.d.ts +3 -0
  131. package/dist/integrations/github/reconciliation-config.d.ts.map +1 -0
  132. package/dist/integrations/github/reconciliation-config.js +19 -0
  133. package/dist/integrations/github/reconciliation-config.js.map +1 -0
  134. package/dist/integrations/github/routes.d.ts +90 -0
  135. package/dist/integrations/github/routes.d.ts.map +1 -0
  136. package/dist/integrations/github/routes.js +1362 -0
  137. package/dist/integrations/github/routes.js.map +1 -0
  138. package/dist/integrations/github/rules.d.ts +173 -0
  139. package/dist/integrations/github/rules.d.ts.map +1 -0
  140. package/dist/integrations/github/rules.js +1021 -0
  141. package/dist/integrations/github/rules.js.map +1 -0
  142. package/dist/integrations/github/sandbox-release.d.ts +25 -0
  143. package/dist/integrations/github/sandbox-release.d.ts.map +1 -0
  144. package/dist/integrations/github/sandbox-release.js +38 -0
  145. package/dist/integrations/github/sandbox-release.js.map +1 -0
  146. package/dist/integrations/github/sandbox.d.ts +234 -0
  147. package/dist/integrations/github/sandbox.d.ts.map +1 -0
  148. package/dist/integrations/github/sandbox.js +947 -0
  149. package/dist/integrations/github/sandbox.js.map +1 -0
  150. package/dist/integrations/github/session-subscriptions.d.ts +28 -0
  151. package/dist/integrations/github/session-subscriptions.d.ts.map +1 -0
  152. package/dist/integrations/github/session-subscriptions.js +283 -0
  153. package/dist/integrations/github/session-subscriptions.js.map +1 -0
  154. package/dist/integrations/github/settle-or-abort.d.ts +7 -0
  155. package/dist/integrations/github/settle-or-abort.d.ts.map +1 -0
  156. package/dist/integrations/github/settle-or-abort.js +25 -0
  157. package/dist/integrations/github/settle-or-abort.js.map +1 -0
  158. package/dist/integrations/github/stale-reviews.d.ts +22 -0
  159. package/dist/integrations/github/stale-reviews.d.ts.map +1 -0
  160. package/dist/integrations/github/stale-reviews.js +70 -0
  161. package/dist/integrations/github/stale-reviews.js.map +1 -0
  162. package/dist/integrations/github/subscriptions.d.ts +54 -0
  163. package/dist/integrations/github/subscriptions.d.ts.map +1 -0
  164. package/dist/integrations/github/subscriptions.js +64 -0
  165. package/dist/integrations/github/subscriptions.js.map +1 -0
  166. package/dist/integrations/github/token-refresh.d.ts +31 -0
  167. package/dist/integrations/github/token-refresh.d.ts.map +1 -0
  168. package/dist/integrations/github/token-refresh.js +42 -0
  169. package/dist/integrations/github/token-refresh.js.map +1 -0
  170. package/dist/integrations/github/webhook.d.ts +139 -0
  171. package/dist/integrations/github/webhook.d.ts.map +1 -0
  172. package/dist/integrations/github/webhook.js +432 -0
  173. package/dist/integrations/github/webhook.js.map +1 -0
  174. package/dist/integrations/gitlab/agent-tools.d.ts +14 -0
  175. package/dist/integrations/gitlab/agent-tools.d.ts.map +1 -0
  176. package/dist/integrations/gitlab/agent-tools.js +42 -0
  177. package/dist/integrations/gitlab/agent-tools.js.map +1 -0
  178. package/dist/integrations/gitlab/api.d.ts +222 -0
  179. package/dist/integrations/gitlab/api.d.ts.map +1 -0
  180. package/dist/integrations/gitlab/api.js +274 -0
  181. package/dist/integrations/gitlab/api.js.map +1 -0
  182. package/dist/integrations/gitlab/default-rules.d.ts +125 -0
  183. package/dist/integrations/gitlab/default-rules.d.ts.map +1 -0
  184. package/dist/integrations/gitlab/default-rules.js +180 -0
  185. package/dist/integrations/gitlab/default-rules.js.map +1 -0
  186. package/dist/integrations/gitlab/integration.d.ts +138 -0
  187. package/dist/integrations/gitlab/integration.d.ts.map +1 -0
  188. package/dist/integrations/gitlab/integration.js +705 -0
  189. package/dist/integrations/gitlab/integration.js.map +1 -0
  190. package/dist/integrations/gitlab/issue-reconciler.d.ts +6 -0
  191. package/dist/integrations/gitlab/issue-reconciler.d.ts.map +1 -0
  192. package/dist/integrations/gitlab/issue-reconciler.js +123 -0
  193. package/dist/integrations/gitlab/issue-reconciler.js.map +1 -0
  194. package/dist/integrations/gitlab/merge-request-reconciler.d.ts +6 -0
  195. package/dist/integrations/gitlab/merge-request-reconciler.d.ts.map +1 -0
  196. package/dist/integrations/gitlab/merge-request-reconciler.js +267 -0
  197. package/dist/integrations/gitlab/merge-request-reconciler.js.map +1 -0
  198. package/dist/integrations/gitlab/reconciler.d.ts +5 -0
  199. package/dist/integrations/gitlab/reconciler.d.ts.map +1 -0
  200. package/dist/integrations/gitlab/reconciler.js +31 -0
  201. package/dist/integrations/gitlab/reconciler.js.map +1 -0
  202. package/dist/integrations/gitlab/reconciliation-config.d.ts +3 -0
  203. package/dist/integrations/gitlab/reconciliation-config.d.ts.map +1 -0
  204. package/dist/integrations/gitlab/reconciliation-config.js +17 -0
  205. package/dist/integrations/gitlab/reconciliation-config.js.map +1 -0
  206. package/dist/integrations/gitlab/routes.d.ts +20 -0
  207. package/dist/integrations/gitlab/routes.d.ts.map +1 -0
  208. package/dist/integrations/gitlab/routes.js +474 -0
  209. package/dist/integrations/gitlab/routes.js.map +1 -0
  210. package/dist/integrations/gitlab/rules.d.ts +35 -0
  211. package/dist/integrations/gitlab/rules.d.ts.map +1 -0
  212. package/dist/integrations/gitlab/rules.js +502 -0
  213. package/dist/integrations/gitlab/rules.js.map +1 -0
  214. package/dist/integrations/gitlab/session-subscriptions.d.ts +32 -0
  215. package/dist/integrations/gitlab/session-subscriptions.d.ts.map +1 -0
  216. package/dist/integrations/gitlab/session-subscriptions.js +193 -0
  217. package/dist/integrations/gitlab/session-subscriptions.js.map +1 -0
  218. package/dist/integrations/gitlab/subscriptions.d.ts +70 -0
  219. package/dist/integrations/gitlab/subscriptions.d.ts.map +1 -0
  220. package/dist/integrations/gitlab/subscriptions.js +76 -0
  221. package/dist/integrations/gitlab/subscriptions.js.map +1 -0
  222. package/dist/integrations/gitlab/version-control.d.ts +16 -0
  223. package/dist/integrations/gitlab/version-control.d.ts.map +1 -0
  224. package/dist/integrations/gitlab/version-control.js +621 -0
  225. package/dist/integrations/gitlab/version-control.js.map +1 -0
  226. package/dist/integrations/gitlab/webhook-dispatch.d.ts +75 -0
  227. package/dist/integrations/gitlab/webhook-dispatch.d.ts.map +1 -0
  228. package/dist/integrations/gitlab/webhook-dispatch.js +235 -0
  229. package/dist/integrations/gitlab/webhook-dispatch.js.map +1 -0
  230. package/dist/integrations/gitlab/webhook.d.ts +72 -0
  231. package/dist/integrations/gitlab/webhook.d.ts.map +1 -0
  232. package/dist/integrations/gitlab/webhook.js +201 -0
  233. package/dist/integrations/gitlab/webhook.js.map +1 -0
  234. package/dist/integrations/incidentio/agent-tools.d.ts +49 -0
  235. package/dist/integrations/incidentio/agent-tools.d.ts.map +1 -0
  236. package/dist/integrations/incidentio/agent-tools.js +90 -0
  237. package/dist/integrations/incidentio/agent-tools.js.map +1 -0
  238. package/dist/integrations/incidentio/api.d.ts +400 -0
  239. package/dist/integrations/incidentio/api.d.ts.map +1 -0
  240. package/dist/integrations/incidentio/api.js +192 -0
  241. package/dist/integrations/incidentio/api.js.map +1 -0
  242. package/dist/integrations/incidentio/claim.d.ts +8 -0
  243. package/dist/integrations/incidentio/claim.d.ts.map +1 -0
  244. package/dist/integrations/incidentio/claim.js +14 -0
  245. package/dist/integrations/incidentio/claim.js.map +1 -0
  246. package/dist/integrations/incidentio/default-rules.d.ts +46 -0
  247. package/dist/integrations/incidentio/default-rules.d.ts.map +1 -0
  248. package/dist/integrations/incidentio/default-rules.js +68 -0
  249. package/dist/integrations/incidentio/default-rules.js.map +1 -0
  250. package/dist/integrations/incidentio/intake.d.ts +10 -0
  251. package/dist/integrations/incidentio/intake.d.ts.map +1 -0
  252. package/dist/integrations/incidentio/intake.js +307 -0
  253. package/dist/integrations/incidentio/intake.js.map +1 -0
  254. package/dist/integrations/incidentio/integration.d.ts +63 -0
  255. package/dist/integrations/incidentio/integration.d.ts.map +1 -0
  256. package/dist/integrations/incidentio/integration.js +141 -0
  257. package/dist/integrations/incidentio/integration.js.map +1 -0
  258. package/dist/integrations/incidentio/issue-reconciler.d.ts +10 -0
  259. package/dist/integrations/incidentio/issue-reconciler.d.ts.map +1 -0
  260. package/dist/integrations/incidentio/issue-reconciler.js +75 -0
  261. package/dist/integrations/incidentio/issue-reconciler.js.map +1 -0
  262. package/dist/integrations/incidentio/reconciliation-config.d.ts +3 -0
  263. package/dist/integrations/incidentio/reconciliation-config.d.ts.map +1 -0
  264. package/dist/integrations/incidentio/reconciliation-config.js +17 -0
  265. package/dist/integrations/incidentio/reconciliation-config.js.map +1 -0
  266. package/dist/integrations/incidentio/routes.d.ts +76 -0
  267. package/dist/integrations/incidentio/routes.d.ts.map +1 -0
  268. package/dist/integrations/incidentio/routes.js +249 -0
  269. package/dist/integrations/incidentio/routes.js.map +1 -0
  270. package/dist/integrations/incidentio/rules.d.ts +55 -0
  271. package/dist/integrations/incidentio/rules.d.ts.map +1 -0
  272. package/dist/integrations/incidentio/rules.js +189 -0
  273. package/dist/integrations/incidentio/rules.js.map +1 -0
  274. package/dist/integrations/issue-reconcile-worker.d.ts +19 -0
  275. package/dist/integrations/issue-reconcile-worker.d.ts.map +1 -0
  276. package/dist/integrations/issue-reconcile-worker.js +97 -0
  277. package/dist/integrations/issue-reconcile-worker.js.map +1 -0
  278. package/dist/integrations/issue-reconciler.d.ts +51 -0
  279. package/dist/integrations/issue-reconciler.d.ts.map +1 -0
  280. package/dist/integrations/issue-reconciler.js +158 -0
  281. package/dist/integrations/issue-reconciler.js.map +1 -0
  282. package/dist/integrations/jira/adf.d.ts +26 -0
  283. package/dist/integrations/jira/adf.d.ts.map +1 -0
  284. package/dist/integrations/jira/adf.js +73 -0
  285. package/dist/integrations/jira/adf.js.map +1 -0
  286. package/dist/integrations/jira/agent-tools.d.ts +45 -0
  287. package/dist/integrations/jira/agent-tools.d.ts.map +1 -0
  288. package/dist/integrations/jira/agent-tools.js +87 -0
  289. package/dist/integrations/jira/agent-tools.js.map +1 -0
  290. package/dist/integrations/jira/api.d.ts +157 -0
  291. package/dist/integrations/jira/api.d.ts.map +1 -0
  292. package/dist/integrations/jira/api.js +141 -0
  293. package/dist/integrations/jira/api.js.map +1 -0
  294. package/dist/integrations/jira/claim.d.ts +9 -0
  295. package/dist/integrations/jira/claim.d.ts.map +1 -0
  296. package/dist/integrations/jira/claim.js +15 -0
  297. package/dist/integrations/jira/claim.js.map +1 -0
  298. package/dist/integrations/jira/default-rules.d.ts +47 -0
  299. package/dist/integrations/jira/default-rules.d.ts.map +1 -0
  300. package/dist/integrations/jira/default-rules.js +69 -0
  301. package/dist/integrations/jira/default-rules.js.map +1 -0
  302. package/dist/integrations/jira/integration.d.ts +114 -0
  303. package/dist/integrations/jira/integration.d.ts.map +1 -0
  304. package/dist/integrations/jira/integration.js +407 -0
  305. package/dist/integrations/jira/integration.js.map +1 -0
  306. package/dist/integrations/jira/issue-reconciler.d.ts +10 -0
  307. package/dist/integrations/jira/issue-reconciler.d.ts.map +1 -0
  308. package/dist/integrations/jira/issue-reconciler.js +70 -0
  309. package/dist/integrations/jira/issue-reconciler.js.map +1 -0
  310. package/dist/integrations/jira/reconciliation-config.d.ts +3 -0
  311. package/dist/integrations/jira/reconciliation-config.d.ts.map +1 -0
  312. package/dist/integrations/jira/reconciliation-config.js +17 -0
  313. package/dist/integrations/jira/reconciliation-config.js.map +1 -0
  314. package/dist/integrations/jira/routes.d.ts +54 -0
  315. package/dist/integrations/jira/routes.d.ts.map +1 -0
  316. package/dist/integrations/jira/routes.js +260 -0
  317. package/dist/integrations/jira/routes.js.map +1 -0
  318. package/dist/integrations/jira/rules.d.ts +57 -0
  319. package/dist/integrations/jira/rules.d.ts.map +1 -0
  320. package/dist/integrations/jira/rules.js +189 -0
  321. package/dist/integrations/jira/rules.js.map +1 -0
  322. package/dist/integrations/linear/agent-tools.d.ts +34 -0
  323. package/dist/integrations/linear/agent-tools.d.ts.map +1 -0
  324. package/dist/integrations/linear/agent-tools.js +87 -0
  325. package/dist/integrations/linear/agent-tools.js.map +1 -0
  326. package/dist/integrations/linear/claim.d.ts +8 -0
  327. package/dist/integrations/linear/claim.d.ts.map +1 -0
  328. package/dist/integrations/linear/claim.js +14 -0
  329. package/dist/integrations/linear/claim.js.map +1 -0
  330. package/dist/integrations/linear/default-rules.d.ts +46 -0
  331. package/dist/integrations/linear/default-rules.d.ts.map +1 -0
  332. package/dist/integrations/linear/default-rules.js +70 -0
  333. package/dist/integrations/linear/default-rules.js.map +1 -0
  334. package/dist/integrations/linear/integration.d.ts +260 -0
  335. package/dist/integrations/linear/integration.d.ts.map +1 -0
  336. package/dist/integrations/linear/integration.js +900 -0
  337. package/dist/integrations/linear/integration.js.map +1 -0
  338. package/dist/integrations/linear/issue-reconciler.d.ts +8 -0
  339. package/dist/integrations/linear/issue-reconciler.d.ts.map +1 -0
  340. package/dist/integrations/linear/issue-reconciler.js +73 -0
  341. package/dist/integrations/linear/issue-reconciler.js.map +1 -0
  342. package/dist/integrations/linear/reconciliation-config.d.ts +3 -0
  343. package/dist/integrations/linear/reconciliation-config.d.ts.map +1 -0
  344. package/dist/integrations/linear/reconciliation-config.js +21 -0
  345. package/dist/integrations/linear/reconciliation-config.js.map +1 -0
  346. package/dist/integrations/linear/routes.d.ts +81 -0
  347. package/dist/integrations/linear/routes.d.ts.map +1 -0
  348. package/dist/integrations/linear/routes.js +380 -0
  349. package/dist/integrations/linear/routes.js.map +1 -0
  350. package/dist/integrations/linear/rules.d.ts +54 -0
  351. package/dist/integrations/linear/rules.d.ts.map +1 -0
  352. package/dist/integrations/linear/rules.js +189 -0
  353. package/dist/integrations/linear/rules.js.map +1 -0
  354. package/dist/integrations/linear/storage.d.ts +65 -0
  355. package/dist/integrations/linear/storage.d.ts.map +1 -0
  356. package/dist/integrations/linear/storage.js +1 -0
  357. package/dist/integrations/platform/api-client.d.ts +26 -0
  358. package/dist/integrations/platform/api-client.d.ts.map +1 -0
  359. package/dist/integrations/platform/api-client.js +177 -0
  360. package/dist/integrations/platform/api-client.js.map +1 -0
  361. package/dist/integrations/platform/connect/routes.d.ts +39 -0
  362. package/dist/integrations/platform/connect/routes.d.ts.map +1 -0
  363. package/dist/integrations/platform/connect/routes.js +133 -0
  364. package/dist/integrations/platform/connect/routes.js.map +1 -0
  365. package/dist/integrations/platform/github/event-worker.d.ts +58 -0
  366. package/dist/integrations/platform/github/event-worker.d.ts.map +1 -0
  367. package/dist/integrations/platform/github/event-worker.js +449 -0
  368. package/dist/integrations/platform/github/event-worker.js.map +1 -0
  369. package/dist/integrations/platform/github/integration.d.ts +89 -0
  370. package/dist/integrations/platform/github/integration.d.ts.map +1 -0
  371. package/dist/integrations/platform/github/integration.js +1266 -0
  372. package/dist/integrations/platform/github/integration.js.map +1 -0
  373. package/dist/integrations/platform/gitlab/event-worker.d.ts +64 -0
  374. package/dist/integrations/platform/gitlab/event-worker.d.ts.map +1 -0
  375. package/dist/integrations/platform/gitlab/event-worker.js +305 -0
  376. package/dist/integrations/platform/gitlab/event-worker.js.map +1 -0
  377. package/dist/integrations/platform/gitlab/integration.d.ts +57 -0
  378. package/dist/integrations/platform/gitlab/integration.d.ts.map +1 -0
  379. package/dist/integrations/platform/gitlab/integration.js +113 -0
  380. package/dist/integrations/platform/gitlab/integration.js.map +1 -0
  381. package/dist/integrations/platform/incidentio/integration.d.ts +74 -0
  382. package/dist/integrations/platform/incidentio/integration.d.ts.map +1 -0
  383. package/dist/integrations/platform/incidentio/integration.js +406 -0
  384. package/dist/integrations/platform/incidentio/integration.js.map +1 -0
  385. package/dist/integrations/platform/jira/agent-tools.d.ts +36 -0
  386. package/dist/integrations/platform/jira/agent-tools.d.ts.map +1 -0
  387. package/dist/integrations/platform/jira/agent-tools.js +85 -0
  388. package/dist/integrations/platform/jira/agent-tools.js.map +1 -0
  389. package/dist/integrations/platform/jira/integration.d.ts +65 -0
  390. package/dist/integrations/platform/jira/integration.d.ts.map +1 -0
  391. package/dist/integrations/platform/jira/integration.js +546 -0
  392. package/dist/integrations/platform/jira/integration.js.map +1 -0
  393. package/dist/integrations/platform/jira/routes.d.ts +55 -0
  394. package/dist/integrations/platform/jira/routes.d.ts.map +1 -0
  395. package/dist/integrations/platform/jira/routes.js +274 -0
  396. package/dist/integrations/platform/jira/routes.js.map +1 -0
  397. package/dist/integrations/platform/linear/event-worker.d.ts +105 -0
  398. package/dist/integrations/platform/linear/event-worker.d.ts.map +1 -0
  399. package/dist/integrations/platform/linear/event-worker.js +379 -0
  400. package/dist/integrations/platform/linear/event-worker.js.map +1 -0
  401. package/dist/integrations/platform/linear/integration.d.ts +92 -0
  402. package/dist/integrations/platform/linear/integration.d.ts.map +1 -0
  403. package/dist/integrations/platform/linear/integration.js +754 -0
  404. package/dist/integrations/platform/linear/integration.js.map +1 -0
  405. package/dist/integrations/pull-request-head.d.ts +18 -0
  406. package/dist/integrations/pull-request-head.d.ts.map +1 -0
  407. package/dist/integrations/pull-request-head.js +45 -0
  408. package/dist/integrations/pull-request-head.js.map +1 -0
  409. package/dist/integrations/reconciliation-config.d.ts +3 -0
  410. package/dist/integrations/reconciliation-config.d.ts.map +1 -0
  411. package/dist/integrations/reconciliation-config.js +16 -0
  412. package/dist/integrations/reconciliation-config.js.map +1 -0
  413. package/dist/integrations/slack/connect-route.d.ts +46 -0
  414. package/dist/integrations/slack/connect-route.d.ts.map +1 -0
  415. package/dist/integrations/slack/connect-route.js +186 -0
  416. package/dist/integrations/slack/connect-route.js.map +1 -0
  417. package/dist/integrations/slack/emoji-shortcodes.generated.d.ts +8 -0
  418. package/dist/integrations/slack/emoji-shortcodes.generated.d.ts.map +1 -0
  419. package/dist/integrations/slack/emoji-shortcodes.generated.js +1985 -0
  420. package/dist/integrations/slack/emoji-shortcodes.generated.js.map +1 -0
  421. package/dist/integrations/slack/emoji.d.ts +3 -0
  422. package/dist/integrations/slack/emoji.d.ts.map +1 -0
  423. package/dist/integrations/slack/emoji.js +12 -0
  424. package/dist/integrations/slack/emoji.js.map +1 -0
  425. package/dist/integrations/slack/feed-publisher.d.ts +26 -0
  426. package/dist/integrations/slack/feed-publisher.d.ts.map +1 -0
  427. package/dist/integrations/slack/feed-publisher.js +44 -0
  428. package/dist/integrations/slack/feed-publisher.js.map +1 -0
  429. package/dist/integrations/slack/integration.d.ts +80 -0
  430. package/dist/integrations/slack/integration.d.ts.map +1 -0
  431. package/dist/integrations/slack/integration.js +93 -0
  432. package/dist/integrations/slack/integration.js.map +1 -0
  433. package/dist/integrations/slack/slack.d.ts +205 -0
  434. package/dist/integrations/slack/slack.d.ts.map +1 -0
  435. package/dist/integrations/slack/slack.js +653 -0
  436. package/dist/integrations/slack/slack.js.map +1 -0
  437. package/dist/integrations/subscription-session.d.ts +49 -0
  438. package/dist/integrations/subscription-session.d.ts.map +1 -0
  439. package/dist/integrations/subscription-session.js +103 -0
  440. package/dist/integrations/subscription-session.js.map +1 -0
  441. package/dist/integrations/workos/integration.d.ts +39 -0
  442. package/dist/integrations/workos/integration.d.ts.map +1 -0
  443. package/dist/integrations/workos/integration.js +91 -0
  444. package/dist/integrations/workos/integration.js.map +1 -0
  445. package/dist/packages/_internals/workspace/dist/index.js +48 -0
  446. package/dist/packages/_internals/workspace/dist/index.js.map +1 -0
  447. package/dist/platform-auth-host.d.ts +4 -0
  448. package/dist/platform-auth-host.d.ts.map +1 -0
  449. package/dist/platform-auth-host.js +18 -0
  450. package/dist/platform-auth-host.js.map +1 -0
  451. package/dist/review-verdict.d.ts +6 -0
  452. package/dist/review-verdict.d.ts.map +1 -0
  453. package/dist/review-verdict.js +14 -0
  454. package/dist/review-verdict.js.map +1 -0
  455. package/dist/routes/attention-activity.d.ts +23 -0
  456. package/dist/routes/attention-activity.d.ts.map +1 -0
  457. package/dist/routes/attention-activity.js +152 -0
  458. package/dist/routes/attention-activity.js.map +1 -0
  459. package/dist/routes/attention-parked.d.ts +22 -0
  460. package/dist/routes/attention-parked.d.ts.map +1 -0
  461. package/dist/routes/attention-parked.js +136 -0
  462. package/dist/routes/attention-parked.js.map +1 -0
  463. package/dist/routes/attention-proposed.d.ts +3 -0
  464. package/dist/routes/attention-proposed.d.ts.map +1 -0
  465. package/dist/routes/attention-proposed.js +21 -0
  466. package/dist/routes/attention-proposed.js.map +1 -0
  467. package/dist/routes/attention-providers.d.ts +159 -0
  468. package/dist/routes/attention-providers.d.ts.map +1 -0
  469. package/dist/routes/attention-providers.js +524 -0
  470. package/dist/routes/attention-providers.js.map +1 -0
  471. package/dist/routes/attention.d.ts +23 -0
  472. package/dist/routes/attention.d.ts.map +1 -0
  473. package/dist/routes/attention.js +219 -0
  474. package/dist/routes/attention.js.map +1 -0
  475. package/dist/routes/automation-runs.d.ts +37 -0
  476. package/dist/routes/automation-runs.d.ts.map +1 -0
  477. package/dist/routes/automation-runs.js +196 -0
  478. package/dist/routes/automation-runs.js.map +1 -0
  479. package/dist/routes/config.d.ts +238 -0
  480. package/dist/routes/config.d.ts.map +1 -0
  481. package/dist/routes/config.js +1011 -0
  482. package/dist/routes/config.js.map +1 -0
  483. package/dist/routes/contracts.d.ts +1080 -0
  484. package/dist/routes/contracts.d.ts.map +1 -0
  485. package/dist/routes/contracts.js +673 -0
  486. package/dist/routes/contracts.js.map +1 -0
  487. package/dist/routes/custom-provider-source.d.ts +52 -0
  488. package/dist/routes/custom-provider-source.d.ts.map +1 -0
  489. package/dist/routes/custom-provider-source.js +124 -0
  490. package/dist/routes/custom-provider-source.js.map +1 -0
  491. package/dist/routes/fs.d.ts +189 -0
  492. package/dist/routes/fs.d.ts.map +1 -0
  493. package/dist/routes/fs.js +916 -0
  494. package/dist/routes/fs.js.map +1 -0
  495. package/dist/routes/intake.d.ts +64 -0
  496. package/dist/routes/intake.d.ts.map +1 -0
  497. package/dist/routes/intake.js +627 -0
  498. package/dist/routes/intake.js.map +1 -0
  499. package/dist/routes/knowledge.d.ts +247 -0
  500. package/dist/routes/knowledge.d.ts.map +1 -0
  501. package/dist/routes/knowledge.js +1128 -0
  502. package/dist/routes/knowledge.js.map +1 -0
  503. package/dist/routes/oauth.d.ts +43 -0
  504. package/dist/routes/oauth.d.ts.map +1 -0
  505. package/dist/routes/oauth.js +477 -0
  506. package/dist/routes/oauth.js.map +1 -0
  507. package/dist/routes/projects.d.ts +68 -0
  508. package/dist/routes/projects.d.ts.map +1 -0
  509. package/dist/routes/projects.js +919 -0
  510. package/dist/routes/projects.js.map +1 -0
  511. package/dist/routes/provider-credentials.d.ts +82 -0
  512. package/dist/routes/provider-credentials.d.ts.map +1 -0
  513. package/dist/routes/provider-credentials.js +80 -0
  514. package/dist/routes/provider-credentials.js.map +1 -0
  515. package/dist/routes/route.d.ts +48 -0
  516. package/dist/routes/route.d.ts.map +1 -0
  517. package/dist/routes/route.js +15 -0
  518. package/dist/routes/route.js.map +1 -0
  519. package/dist/routes/skills.d.ts +30 -0
  520. package/dist/routes/skills.d.ts.map +1 -0
  521. package/dist/routes/skills.js +198 -0
  522. package/dist/routes/skills.js.map +1 -0
  523. package/dist/routes/source-control-sessions.d.ts +22 -0
  524. package/dist/routes/source-control-sessions.d.ts.map +1 -0
  525. package/dist/routes/source-control-sessions.js +356 -0
  526. package/dist/routes/source-control-sessions.js.map +1 -0
  527. package/dist/routes/source-control-settings.d.ts +10 -0
  528. package/dist/routes/source-control-settings.d.ts.map +1 -0
  529. package/dist/routes/source-control-settings.js +87 -0
  530. package/dist/routes/source-control-settings.js.map +1 -0
  531. package/dist/routes/supervisor.d.ts +25 -0
  532. package/dist/routes/supervisor.d.ts.map +1 -0
  533. package/dist/routes/supervisor.js +35 -0
  534. package/dist/routes/supervisor.js.map +1 -0
  535. package/dist/routes/surface.d.ts +133 -0
  536. package/dist/routes/surface.d.ts.map +1 -0
  537. package/dist/routes/surface.js +518 -0
  538. package/dist/routes/surface.js.map +1 -0
  539. package/dist/routes/telemetry.d.ts +13 -0
  540. package/dist/routes/telemetry.d.ts.map +1 -0
  541. package/dist/routes/telemetry.js +60 -0
  542. package/dist/routes/telemetry.js.map +1 -0
  543. package/dist/routes/tenant-credentials.d.ts +87 -0
  544. package/dist/routes/tenant-credentials.d.ts.map +1 -0
  545. package/dist/routes/tenant-credentials.js +219 -0
  546. package/dist/routes/tenant-credentials.js.map +1 -0
  547. package/dist/routes/work-items.d.ts +49 -0
  548. package/dist/routes/work-items.d.ts.map +1 -0
  549. package/dist/routes/work-items.js +633 -0
  550. package/dist/routes/work-items.js.map +1 -0
  551. package/dist/rules/binding-context.d.ts +59 -0
  552. package/dist/rules/binding-context.d.ts.map +1 -0
  553. package/dist/rules/binding-context.js +134 -0
  554. package/dist/rules/binding-context.js.map +1 -0
  555. package/dist/rules/decision-applicability.d.ts +32 -0
  556. package/dist/rules/decision-applicability.d.ts.map +1 -0
  557. package/dist/rules/decision-applicability.js +56 -0
  558. package/dist/rules/decision-applicability.js.map +1 -0
  559. package/dist/rules/dispatch-errors.d.ts +13 -0
  560. package/dist/rules/dispatch-errors.d.ts.map +1 -0
  561. package/dist/rules/dispatch-errors.js +105 -0
  562. package/dist/rules/dispatch-errors.js.map +1 -0
  563. package/dist/rules/dispatcher.d.ts +86 -0
  564. package/dist/rules/dispatcher.d.ts.map +1 -0
  565. package/dist/rules/dispatcher.js +1159 -0
  566. package/dist/rules/dispatcher.js.map +1 -0
  567. package/dist/rules/event-rules.d.ts +23 -0
  568. package/dist/rules/event-rules.d.ts.map +1 -0
  569. package/dist/rules/event-rules.js +46 -0
  570. package/dist/rules/event-rules.js.map +1 -0
  571. package/dist/rules/index.d.ts +6 -0
  572. package/dist/rules/index.d.ts.map +1 -0
  573. package/dist/rules/index.js +4 -0
  574. package/dist/rules/processor.d.ts +90 -0
  575. package/dist/rules/processor.d.ts.map +1 -0
  576. package/dist/rules/processor.js +486 -0
  577. package/dist/rules/processor.js.map +1 -0
  578. package/dist/rules/resolve.d.ts +15 -0
  579. package/dist/rules/resolve.d.ts.map +1 -0
  580. package/dist/rules/resolve.js +23 -0
  581. package/dist/rules/resolve.js.map +1 -0
  582. package/dist/rules/review-source-tool.d.ts +105 -0
  583. package/dist/rules/review-source-tool.d.ts.map +1 -0
  584. package/dist/rules/review-source-tool.js +109 -0
  585. package/dist/rules/review-source-tool.js.map +1 -0
  586. package/dist/rules/start-coordinator.d.ts +64 -0
  587. package/dist/rules/start-coordinator.d.ts.map +1 -0
  588. package/dist/rules/start-coordinator.js +246 -0
  589. package/dist/rules/start-coordinator.js.map +1 -0
  590. package/dist/rules/terminal-cleanup.d.ts +38 -0
  591. package/dist/rules/terminal-cleanup.d.ts.map +1 -0
  592. package/dist/rules/terminal-cleanup.js +68 -0
  593. package/dist/rules/terminal-cleanup.js.map +1 -0
  594. package/dist/rules/tools.d.ts +15 -0
  595. package/dist/rules/tools.d.ts.map +1 -0
  596. package/dist/rules/tools.js +185 -0
  597. package/dist/rules/tools.js.map +1 -0
  598. package/dist/rules/transition-service.d.ts +93 -0
  599. package/dist/rules/transition-service.d.ts.map +1 -0
  600. package/dist/rules/transition-service.js +402 -0
  601. package/dist/rules/transition-service.js.map +1 -0
  602. package/dist/rules/types.d.ts +553 -0
  603. package/dist/rules/types.d.ts.map +1 -0
  604. package/dist/rules/types.js +154 -0
  605. package/dist/rules/types.js.map +1 -0
  606. package/dist/rules/validation.d.ts +21 -0
  607. package/dist/rules/validation.d.ts.map +1 -0
  608. package/dist/rules/validation.js +327 -0
  609. package/dist/rules/validation.js.map +1 -0
  610. package/dist/sandbox/callback-factory-sandbox.d.ts +15 -0
  611. package/dist/sandbox/callback-factory-sandbox.d.ts.map +1 -0
  612. package/dist/sandbox/callback-factory-sandbox.js +22 -0
  613. package/dist/sandbox/callback-factory-sandbox.js.map +1 -0
  614. package/dist/sandbox/git-ref.d.ts +7 -0
  615. package/dist/sandbox/git-ref.d.ts.map +1 -0
  616. package/dist/sandbox/git-ref.js +15 -0
  617. package/dist/sandbox/git-ref.js.map +1 -0
  618. package/dist/sandbox/local-factory-sandbox.d.ts +20 -0
  619. package/dist/sandbox/local-factory-sandbox.d.ts.map +1 -0
  620. package/dist/sandbox/local-factory-sandbox.js +27 -0
  621. package/dist/sandbox/local-factory-sandbox.js.map +1 -0
  622. package/dist/sandbox/materialization.d.ts +41 -0
  623. package/dist/sandbox/materialization.d.ts.map +1 -0
  624. package/dist/sandbox/materialization.js +18 -0
  625. package/dist/sandbox/materialization.js.map +1 -0
  626. package/dist/sandbox/session-retirement.d.ts +45 -0
  627. package/dist/sandbox/session-retirement.d.ts.map +1 -0
  628. package/dist/sandbox/session-retirement.js +153 -0
  629. package/dist/sandbox/session-retirement.js.map +1 -0
  630. package/dist/sandbox/session-sandbox.d.ts +185 -0
  631. package/dist/sandbox/session-sandbox.d.ts.map +1 -0
  632. package/dist/sandbox/session-sandbox.js +248 -0
  633. package/dist/sandbox/session-sandbox.js.map +1 -0
  634. package/dist/sandbox/workdir.d.ts +45 -0
  635. package/dist/sandbox/workdir.d.ts.map +1 -0
  636. package/dist/sandbox/workdir.js +64 -0
  637. package/dist/sandbox/workdir.js.map +1 -0
  638. package/dist/secret-encryption.d.ts +25 -0
  639. package/dist/secret-encryption.d.ts.map +1 -0
  640. package/dist/secret-encryption.js +107 -0
  641. package/dist/secret-encryption.js.map +1 -0
  642. package/dist/server-error.d.ts +12 -0
  643. package/dist/server-error.d.ts.map +1 -0
  644. package/dist/server-error.js +16 -0
  645. package/dist/server-error.js.map +1 -0
  646. package/dist/session/credential-policy.d.ts +20 -0
  647. package/dist/session/credential-policy.d.ts.map +1 -0
  648. package/dist/session/credential-policy.js +70 -0
  649. package/dist/session/credential-policy.js.map +1 -0
  650. package/dist/session/default-model-hydration.d.ts +46 -0
  651. package/dist/session/default-model-hydration.d.ts.map +1 -0
  652. package/dist/session/default-model-hydration.js +85 -0
  653. package/dist/session/default-model-hydration.js.map +1 -0
  654. package/dist/session/environment-repositories.d.ts +31 -0
  655. package/dist/session/environment-repositories.d.ts.map +1 -0
  656. package/dist/session/environment-repositories.js +89 -0
  657. package/dist/session/environment-repositories.js.map +1 -0
  658. package/dist/session/environment-state-processor.d.ts +59 -0
  659. package/dist/session/environment-state-processor.d.ts.map +1 -0
  660. package/dist/session/environment-state-processor.js +105 -0
  661. package/dist/session/environment-state-processor.js.map +1 -0
  662. package/dist/session/factory-session.d.ts +159 -0
  663. package/dist/session/factory-session.d.ts.map +1 -0
  664. package/dist/session/factory-session.js +226 -0
  665. package/dist/session/factory-session.js.map +1 -0
  666. package/dist/session/filesystem-capture.d.ts +50 -0
  667. package/dist/session/filesystem-capture.d.ts.map +1 -0
  668. package/dist/session/filesystem-capture.js +231 -0
  669. package/dist/session/filesystem-capture.js.map +1 -0
  670. package/dist/session/first-exec-capture.d.ts +38 -0
  671. package/dist/session/first-exec-capture.d.ts.map +1 -0
  672. package/dist/session/first-exec-capture.js +91 -0
  673. package/dist/session/first-exec-capture.js.map +1 -0
  674. package/dist/session/first-message-capture.d.ts +33 -0
  675. package/dist/session/first-message-capture.d.ts.map +1 -0
  676. package/dist/session/first-message-capture.js +35 -0
  677. package/dist/session/first-message-capture.js.map +1 -0
  678. package/dist/session/live-sessions.d.ts +63 -0
  679. package/dist/session/live-sessions.d.ts.map +1 -0
  680. package/dist/session/live-sessions.js +90 -0
  681. package/dist/session/live-sessions.js.map +1 -0
  682. package/dist/session/memory-settings-hydration.d.ts +36 -0
  683. package/dist/session/memory-settings-hydration.d.ts.map +1 -0
  684. package/dist/session/memory-settings-hydration.js +43 -0
  685. package/dist/session/memory-settings-hydration.js.map +1 -0
  686. package/dist/session/org-seed.d.ts +67 -0
  687. package/dist/session/org-seed.d.ts.map +1 -0
  688. package/dist/session/org-seed.js +53 -0
  689. package/dist/session/org-seed.js.map +1 -0
  690. package/dist/session/run-audit.d.ts +54 -0
  691. package/dist/session/run-audit.d.ts.map +1 -0
  692. package/dist/session/run-audit.js +124 -0
  693. package/dist/session/run-audit.js.map +1 -0
  694. package/dist/session/session-title.d.ts +7 -0
  695. package/dist/session/session-title.d.ts.map +1 -0
  696. package/dist/session/session-title.js +14 -0
  697. package/dist/session/session-title.js.map +1 -0
  698. package/dist/session/shell-commands.d.ts +5 -0
  699. package/dist/session/shell-commands.d.ts.map +1 -0
  700. package/dist/session/shell-commands.js +25 -0
  701. package/dist/session/shell-commands.js.map +1 -0
  702. package/dist/session/source-control-tools.d.ts +25 -0
  703. package/dist/session/source-control-tools.d.ts.map +1 -0
  704. package/dist/session/source-control-tools.js +594 -0
  705. package/dist/session/source-control-tools.js.map +1 -0
  706. package/dist/session/thread-title-mirror.d.ts +35 -0
  707. package/dist/session/thread-title-mirror.d.ts.map +1 -0
  708. package/dist/session/thread-title-mirror.js +51 -0
  709. package/dist/session/thread-title-mirror.js.map +1 -0
  710. package/dist/session/work-item-repository.d.ts +21 -0
  711. package/dist/session/work-item-repository.d.ts.map +1 -0
  712. package/dist/session/work-item-repository.js +113 -0
  713. package/dist/session/work-item-repository.js.map +1 -0
  714. package/dist/skills/catalog.d.ts +14 -0
  715. package/dist/skills/catalog.d.ts.map +1 -0
  716. package/dist/skills/catalog.js +62 -0
  717. package/dist/skills/catalog.js.map +1 -0
  718. package/dist/skills/service.d.ts +70 -0
  719. package/dist/skills/service.d.ts.map +1 -0
  720. package/dist/skills/service.js +88 -0
  721. package/dist/skills/service.js.map +1 -0
  722. package/dist/spa-static.d.ts +33 -0
  723. package/dist/spa-static.d.ts.map +1 -0
  724. package/dist/spa-static.js +104 -0
  725. package/dist/spa-static.js.map +1 -0
  726. package/dist/state-signing.d.ts +59 -0
  727. package/dist/state-signing.d.ts.map +1 -0
  728. package/dist/state-signing.js +83 -0
  729. package/dist/state-signing.js.map +1 -0
  730. package/dist/storage/domains/audit/actions.d.ts +24 -0
  731. package/dist/storage/domains/audit/actions.d.ts.map +1 -0
  732. package/dist/storage/domains/audit/actions.js +69 -0
  733. package/dist/storage/domains/audit/actions.js.map +1 -0
  734. package/dist/storage/domains/audit/actors.d.ts +5 -0
  735. package/dist/storage/domains/audit/actors.d.ts.map +1 -0
  736. package/dist/storage/domains/audit/actors.js +25 -0
  737. package/dist/storage/domains/audit/actors.js.map +1 -0
  738. package/dist/storage/domains/audit/agent-audit.d.ts +30 -0
  739. package/dist/storage/domains/audit/agent-audit.d.ts.map +1 -0
  740. package/dist/storage/domains/audit/agent-audit.js +93 -0
  741. package/dist/storage/domains/audit/agent-audit.js.map +1 -0
  742. package/dist/storage/domains/audit/base.d.ts +133 -0
  743. package/dist/storage/domains/audit/base.d.ts.map +1 -0
  744. package/dist/storage/domains/audit/base.js +206 -0
  745. package/dist/storage/domains/audit/base.js.map +1 -0
  746. package/dist/storage/domains/audit/domain.d.ts +79 -0
  747. package/dist/storage/domains/audit/domain.d.ts.map +1 -0
  748. package/dist/storage/domains/audit/domain.js +248 -0
  749. package/dist/storage/domains/audit/domain.js.map +1 -0
  750. package/dist/storage/domains/audit/wire.d.ts +24 -0
  751. package/dist/storage/domains/audit/wire.d.ts.map +1 -0
  752. package/dist/storage/domains/audit/wire.js +16 -0
  753. package/dist/storage/domains/audit/wire.js.map +1 -0
  754. package/dist/storage/domains/channel-identity/base.d.ts +100 -0
  755. package/dist/storage/domains/channel-identity/base.d.ts.map +1 -0
  756. package/dist/storage/domains/channel-identity/base.js +164 -0
  757. package/dist/storage/domains/channel-identity/base.js.map +1 -0
  758. package/dist/storage/domains/comments/activity.d.ts +40 -0
  759. package/dist/storage/domains/comments/activity.d.ts.map +1 -0
  760. package/dist/storage/domains/comments/activity.js +94 -0
  761. package/dist/storage/domains/comments/activity.js.map +1 -0
  762. package/dist/storage/domains/comments/actor.d.ts +51 -0
  763. package/dist/storage/domains/comments/actor.d.ts.map +1 -0
  764. package/dist/storage/domains/comments/actor.js +38 -0
  765. package/dist/storage/domains/comments/actor.js.map +1 -0
  766. package/dist/storage/domains/comments/base.d.ts +245 -0
  767. package/dist/storage/domains/comments/base.d.ts.map +1 -0
  768. package/dist/storage/domains/comments/base.js +533 -0
  769. package/dist/storage/domains/comments/base.js.map +1 -0
  770. package/dist/storage/domains/comments/domain.d.ts +135 -0
  771. package/dist/storage/domains/comments/domain.d.ts.map +1 -0
  772. package/dist/storage/domains/comments/domain.js +285 -0
  773. package/dist/storage/domains/comments/domain.js.map +1 -0
  774. package/dist/storage/domains/comments/feed-context.d.ts +22 -0
  775. package/dist/storage/domains/comments/feed-context.d.ts.map +1 -0
  776. package/dist/storage/domains/comments/feed-context.js +89 -0
  777. package/dist/storage/domains/comments/feed-context.js.map +1 -0
  778. package/dist/storage/domains/comments/feed-sync.d.ts +21 -0
  779. package/dist/storage/domains/comments/feed-sync.d.ts.map +1 -0
  780. package/dist/storage/domains/comments/feed-sync.js +1 -0
  781. package/dist/storage/domains/comments/parse.d.ts +23 -0
  782. package/dist/storage/domains/comments/parse.d.ts.map +1 -0
  783. package/dist/storage/domains/comments/parse.js +90 -0
  784. package/dist/storage/domains/comments/parse.js.map +1 -0
  785. package/dist/storage/domains/comments/routes.d.ts +24 -0
  786. package/dist/storage/domains/comments/routes.d.ts.map +1 -0
  787. package/dist/storage/domains/comments/routes.js +302 -0
  788. package/dist/storage/domains/comments/routes.js.map +1 -0
  789. package/dist/storage/domains/comments/schema.d.ts +5 -0
  790. package/dist/storage/domains/comments/schema.d.ts.map +1 -0
  791. package/dist/storage/domains/comments/schema.js +179 -0
  792. package/dist/storage/domains/comments/schema.js.map +1 -0
  793. package/dist/storage/domains/comments/wire.d.ts +40 -0
  794. package/dist/storage/domains/comments/wire.d.ts.map +1 -0
  795. package/dist/storage/domains/comments/wire.js +37 -0
  796. package/dist/storage/domains/comments/wire.js.map +1 -0
  797. package/dist/storage/domains/credentials/base.d.ts +136 -0
  798. package/dist/storage/domains/credentials/base.d.ts.map +1 -0
  799. package/dist/storage/domains/credentials/base.js +294 -0
  800. package/dist/storage/domains/credentials/base.js.map +1 -0
  801. package/dist/storage/domains/custom-providers/base.d.ts +59 -0
  802. package/dist/storage/domains/custom-providers/base.d.ts.map +1 -0
  803. package/dist/storage/domains/custom-providers/base.js +176 -0
  804. package/dist/storage/domains/custom-providers/base.js.map +1 -0
  805. package/dist/storage/domains/filesystem/base.d.ts +26 -0
  806. package/dist/storage/domains/filesystem/base.d.ts.map +1 -0
  807. package/dist/storage/domains/filesystem/base.js +74 -0
  808. package/dist/storage/domains/filesystem/base.js.map +1 -0
  809. package/dist/storage/domains/intake/base.d.ts +150 -0
  810. package/dist/storage/domains/intake/base.d.ts.map +1 -0
  811. package/dist/storage/domains/intake/base.js +431 -0
  812. package/dist/storage/domains/intake/base.js.map +1 -0
  813. package/dist/storage/domains/integrations/base.d.ts +128 -0
  814. package/dist/storage/domains/integrations/base.d.ts.map +1 -0
  815. package/dist/storage/domains/integrations/base.js +333 -0
  816. package/dist/storage/domains/integrations/base.js.map +1 -0
  817. package/dist/storage/domains/memory-settings/base.d.ts +58 -0
  818. package/dist/storage/domains/memory-settings/base.d.ts.map +1 -0
  819. package/dist/storage/domains/memory-settings/base.js +129 -0
  820. package/dist/storage/domains/memory-settings/base.js.map +1 -0
  821. package/dist/storage/domains/model-defaults/base.d.ts +29 -0
  822. package/dist/storage/domains/model-defaults/base.d.ts.map +1 -0
  823. package/dist/storage/domains/model-defaults/base.js +79 -0
  824. package/dist/storage/domains/model-defaults/base.js.map +1 -0
  825. package/dist/storage/domains/projects/base.d.ts +191 -0
  826. package/dist/storage/domains/projects/base.d.ts.map +1 -0
  827. package/dist/storage/domains/projects/base.js +352 -0
  828. package/dist/storage/domains/projects/base.js.map +1 -0
  829. package/dist/storage/domains/queue-health/base.d.ts +52 -0
  830. package/dist/storage/domains/queue-health/base.d.ts.map +1 -0
  831. package/dist/storage/domains/queue-health/base.js +122 -0
  832. package/dist/storage/domains/queue-health/base.js.map +1 -0
  833. package/dist/storage/domains/source-control/base.d.ts +422 -0
  834. package/dist/storage/domains/source-control/base.d.ts.map +1 -0
  835. package/dist/storage/domains/source-control/base.js +1114 -0
  836. package/dist/storage/domains/source-control/base.js.map +1 -0
  837. package/dist/storage/domains/source-control/inmemory.d.ts +147 -0
  838. package/dist/storage/domains/source-control/inmemory.d.ts.map +1 -0
  839. package/dist/storage/domains/source-control/inmemory.js +416 -0
  840. package/dist/storage/domains/source-control/inmemory.js.map +1 -0
  841. package/dist/storage/domains/work-items/base.d.ts +794 -0
  842. package/dist/storage/domains/work-items/base.d.ts.map +1 -0
  843. package/dist/storage/domains/work-items/base.js +2747 -0
  844. package/dist/storage/domains/work-items/base.js.map +1 -0
  845. package/dist/storage/domains/work-items/board-version.d.ts +26 -0
  846. package/dist/storage/domains/work-items/board-version.d.ts.map +1 -0
  847. package/dist/storage/domains/work-items/board-version.js +110 -0
  848. package/dist/storage/domains/work-items/board-version.js.map +1 -0
  849. package/dist/storage/domains/work-items/metrics.d.ts +97 -0
  850. package/dist/storage/domains/work-items/metrics.d.ts.map +1 -0
  851. package/dist/storage/domains/work-items/metrics.js +226 -0
  852. package/dist/storage/domains/work-items/metrics.js.map +1 -0
  853. package/dist/supervisor/health-worker.d.ts +19 -0
  854. package/dist/supervisor/health-worker.d.ts.map +1 -0
  855. package/dist/supervisor/health-worker.js +74 -0
  856. package/dist/supervisor/health-worker.js.map +1 -0
  857. package/dist/supervisor/health.d.ts +79 -0
  858. package/dist/supervisor/health.d.ts.map +1 -0
  859. package/dist/supervisor/health.js +228 -0
  860. package/dist/supervisor/health.js.map +1 -0
  861. package/dist/supervisor/instructions.d.ts +6 -0
  862. package/dist/supervisor/instructions.d.ts.map +1 -0
  863. package/dist/supervisor/instructions.js +66 -0
  864. package/dist/supervisor/instructions.js.map +1 -0
  865. package/dist/supervisor/read-tools.d.ts +43 -0
  866. package/dist/supervisor/read-tools.d.ts.map +1 -0
  867. package/dist/supervisor/read-tools.js +343 -0
  868. package/dist/supervisor/read-tools.js.map +1 -0
  869. package/dist/supervisor/session-messaging.d.ts +26 -0
  870. package/dist/supervisor/session-messaging.d.ts.map +1 -0
  871. package/dist/supervisor/session-messaging.js +21 -0
  872. package/dist/supervisor/session-messaging.js.map +1 -0
  873. package/dist/supervisor/session.d.ts +38 -0
  874. package/dist/supervisor/session.d.ts.map +1 -0
  875. package/dist/supervisor/session.js +79 -0
  876. package/dist/supervisor/session.js.map +1 -0
  877. package/dist/supervisor/write-tools.d.ts +30 -0
  878. package/dist/supervisor/write-tools.d.ts.map +1 -0
  879. package/dist/supervisor/write-tools.js +231 -0
  880. package/dist/supervisor/write-tools.js.map +1 -0
  881. package/dist/telemetry-types.d.ts +7 -0
  882. package/dist/telemetry-types.d.ts.map +1 -0
  883. package/dist/telemetry-types.js +24 -0
  884. package/dist/telemetry-types.js.map +1 -0
  885. package/dist/telemetry.d.ts +9 -0
  886. package/dist/telemetry.d.ts.map +1 -0
  887. package/dist/telemetry.js +47 -0
  888. package/dist/telemetry.js.map +1 -0
  889. package/dist/timing.d.ts +15 -0
  890. package/dist/timing.d.ts.map +1 -0
  891. package/dist/timing.js +34 -0
  892. package/dist/timing.js.map +1 -0
  893. package/dist/work-item-branch.d.ts +33 -0
  894. package/dist/work-item-branch.d.ts.map +1 -0
  895. package/dist/work-item-branch.js +70 -0
  896. package/dist/work-item-branch.js.map +1 -0
  897. package/dist/workspace.d.ts +131 -0
  898. package/dist/workspace.d.ts.map +1 -0
  899. package/dist/workspace.js +995 -0
  900. package/dist/workspace.js.map +1 -0
  901. package/factory-skills/configure-factory-rules/SKILL.md +122 -0
  902. package/factory-skills/factory-complete-issue/SKILL.md +24 -0
  903. package/factory-skills/factory-gitlab-rereview/SKILL.md +22 -0
  904. package/factory-skills/factory-gitlab-review/SKILL.md +48 -0
  905. package/factory-skills/factory-plan/SKILL.md +72 -0
  906. package/factory-skills/factory-rereview/SKILL.md +225 -0
  907. package/factory-skills/factory-review/SKILL.md +214 -0
  908. package/factory-skills/factory-review/references/archaeology.md +225 -0
  909. package/factory-skills/factory-review/references/categories/README.md +34 -0
  910. package/factory-skills/factory-review/references/categories/behavior-change.md +36 -0
  911. package/factory-skills/factory-review/references/categories/bug-fix.md +37 -0
  912. package/factory-skills/factory-review/references/categories/docs.md +32 -0
  913. package/factory-skills/factory-review/references/categories/experimental-flagged.md +34 -0
  914. package/factory-skills/factory-review/references/categories/infra-tooling.md +37 -0
  915. package/factory-skills/factory-review/references/categories/internal-capability.md +35 -0
  916. package/factory-skills/factory-review/references/categories/large-cross-cutting.md +35 -0
  917. package/factory-skills/factory-review/references/categories/mechanical.md +36 -0
  918. package/factory-skills/factory-review/references/categories/performance.md +33 -0
  919. package/factory-skills/factory-review/references/categories/public-api.md +38 -0
  920. package/factory-skills/factory-review/references/categories/refactor.md +35 -0
  921. package/factory-skills/factory-review/references/categories/revert.md +31 -0
  922. package/factory-skills/factory-review/references/categories/schema-storage.md +39 -0
  923. package/factory-skills/factory-review/references/categories/security.md +35 -0
  924. package/factory-skills/factory-review/references/categories/tests-only.md +38 -0
  925. package/factory-skills/factory-triage/SKILL.md +197 -0
  926. package/package.json +92 -0
@@ -0,0 +1,653 @@
1
+ import { actorFromChannelAuthor } from "../../storage/domains/comments/actor.js";
2
+ import { primeTenantCredentialsForRequestContext, primeTenantCredentialsForTenant } from "../../routes/tenant-credentials.js";
3
+ import { readRequestContextOrgId, seedSessionOrg } from "../../session/org-seed.js";
4
+ import { FactorySourceControlConflictError, createSourceControlSessionLookup, hydrateFactorySession, resolveFactorySessionModel, resolveFactorySourceControl, resolvePrimaryEnvironmentRepository } from "../../session/factory-session.js";
5
+ import { prepareSessionRunContext } from "../subscription-session.js";
6
+ import { resolveEmojiShortcodes } from "./emoji.js";
7
+ import { slackCommentSource } from "./feed-publisher.js";
8
+ import { ChannelSessionRejectedError } from "@mastra/core/channels";
9
+ import { migratePersistedModelSelection } from "@mastra/core/agent-controller";
10
+ import { createSlackAdapter } from "@mastra/slack";
11
+ import { Actions, Card, CardText, LinkButton } from "chat";
12
+ //#region src/integrations/slack/slack.ts
13
+ const SLACK_REQUEST_TIMEOUT_MS = 15e3;
14
+ var SlackSessionStartError = class extends Error {};
15
+ function configuredSourceControls(deps) {
16
+ return deps.sourceControls ?? (deps.sourceControl ? [deps.sourceControl] : []);
17
+ }
18
+ /**
19
+ * Read the Slack team id off a raw platform payload (Events API envelope or
20
+ * slash-command body — both carry `team_id`), duck-typed to build the
21
+ * workspace-scoped account-link key.
22
+ */
23
+ function rawTeamId(rawPayload) {
24
+ if (!rawPayload || typeof rawPayload !== "object") return void 0;
25
+ const raw = rawPayload;
26
+ if (typeof raw.team_id === "string" && raw.team_id) return raw.team_id;
27
+ if (typeof raw.team === "string" && raw.team) return raw.team;
28
+ if (raw.team && typeof raw.team === "object") {
29
+ const id = raw.team.id;
30
+ if (typeof id === "string" && id) return id;
31
+ }
32
+ }
33
+ /**
34
+ * The Slack team id survives onto a normalized chat Message only on
35
+ * `message.raw` (the Slack Events API envelope).
36
+ */
37
+ function slackTeamId(message) {
38
+ return rawTeamId(message.raw);
39
+ }
40
+ /**
41
+ * Resolve the web-UI origin for links humans open in a browser (Connect card,
42
+ * session deep links). Prefers `MASTRACODE_PUBLIC_URL` — the origin auth
43
+ * cookies and OAuth redirect allow-lists are registered against — over the
44
+ * channels tunnel, which only Slack's servers need to reach.
45
+ */
46
+ function webPublicUrl() {
47
+ return process.env.MASTRACODE_PUBLIC_URL ?? process.env.MASTRACODE_CHANNELS_PUBLIC_URL;
48
+ }
49
+ /**
50
+ * Resolve the sender's account link, posting an ephemeral "connect your
51
+ * account" card (visible only to the sender) linking into the web UI's
52
+ * Slack-connect flow when they're unlinked.
53
+ */
54
+ async function resolveLinkedSender({ thread, message, accountLinks }) {
55
+ if (!accountLinks) return { status: "ungated" };
56
+ const platform = thread.adapter.name;
57
+ const externalUserId = message.author.userId;
58
+ const externalTeamId = slackTeamId(message);
59
+ const key = externalTeamId ? {
60
+ platform,
61
+ externalTeamId,
62
+ externalUserId
63
+ } : void 0;
64
+ const link = key ? await accountLinks.getAccountLink(key) : null;
65
+ if (link && key) return {
66
+ status: "linked",
67
+ link,
68
+ key
69
+ };
70
+ const publicUrl = webPublicUrl();
71
+ if (publicUrl) await thread.postEphemeral(message.author, buildConnectCard(publicUrl, thread), { fallbackToDM: true });
72
+ return { status: "blocked" };
73
+ }
74
+ const retryHint = (thread) => thread.isDM ? "message me again" : "mention me again";
75
+ /**
76
+ * The "connect your account" card. The link is deliberately identity-free —
77
+ * `/connect/slack` sends the visitor to Connections, where "Connect Slack"
78
+ * runs the OIDC flow and Slack itself asserts the (team, user) pair.
79
+ */
80
+ function buildConnectCard(publicUrl, thread) {
81
+ return Card({
82
+ title: "Connect your account",
83
+ children: [CardText(`Connect your account to use this agent, then ${retryHint(thread)}.`), Actions([LinkButton({
84
+ url: `${publicUrl}/connect/slack`,
85
+ label: "Connect account"
86
+ })])]
87
+ });
88
+ }
89
+ /**
90
+ * Decide which Factory project a linked sender's run belongs to:
91
+ *
92
+ * 1. The link's `defaultFactoryProjectId`, when it still exists (a stale id —
93
+ * deleted factory — falls through as if unset).
94
+ * 2. Else, the tenant's only factory, stamped back onto the link so it shows
95
+ * up (and stays editable) in Connected Accounts settings.
96
+ * 3. Else — zero or several factories — a "pick a default factory" card
97
+ * posted publicly in the thread so Slack notifies the sender, and the run is
98
+ * blocked.
99
+ */
100
+ async function resolveFactoryForLink({ thread, link, key, accountLinks, projects }) {
101
+ if (!projects) return { status: "ungated" };
102
+ const orgId = link.orgId ?? "";
103
+ if (link.defaultFactoryProjectId) {
104
+ const existing = await projects.get({
105
+ orgId,
106
+ id: link.defaultFactoryProjectId
107
+ });
108
+ if (existing) return {
109
+ status: "resolved",
110
+ factoryProjectId: existing.id
111
+ };
112
+ }
113
+ const factories = orgId ? await projects.list({ orgId }) : [];
114
+ if (factories.length === 1) {
115
+ const only = factories[0];
116
+ await accountLinks.setDefaultFactory({
117
+ ...key,
118
+ userId: link.userId,
119
+ factoryProjectId: only.id
120
+ });
121
+ return {
122
+ status: "resolved",
123
+ factoryProjectId: only.id
124
+ };
125
+ }
126
+ const publicUrl = webPublicUrl();
127
+ if (publicUrl) await thread.post(Card({
128
+ title: "Pick a default factory",
129
+ children: [CardText(factories.length === 0 ? `Your account has no factory yet. Create one in the web app, then ${retryHint(thread)}.` : `Your account has several factories. Pick which one Slack sessions should go to, then ${retryHint(thread)}.`), Actions([LinkButton({
130
+ url: `${publicUrl}/settings/connections`,
131
+ label: "Open settings"
132
+ })])]
133
+ }));
134
+ return { status: "blocked" };
135
+ }
136
+ /**
137
+ * Deterministic per-thread branch name: `slack/{threadTs}` with characters
138
+ * outside the sandbox git-ref allow-list (`[A-Za-z0-9_./-]`, and `.` for
139
+ * readability) mapped to `-`. `thread.id` is `{channelId}:{threadTs}`
140
+ * (platform-prefixed on handler threads) — the trailing segment is the ts.
141
+ *
142
+ * Top-level DM and channel conversations use the empty-threadTs thread form,
143
+ * so the trailing segment can be empty; a bare `slack/` is not a valid git
144
+ * ref. Fall back to the last non-empty segment (the channel id): one
145
+ * deterministic branch per top-level conversation.
146
+ */
147
+ function threadBranch(threadId) {
148
+ return `slack/${(threadId.split(":").findLast((segment) => segment.length > 0) ?? threadId).replace(/[^A-Za-z0-9_/-]/g, "-")}`;
149
+ }
150
+ /**
151
+ * Resolve the resourceId for a NEW Slack channel thread. A linked sender whose
152
+ * factory has a repository gets a Factory user-session id — the controller
153
+ * session then materializes the repo sandbox via the factory's dynamic
154
+ * workspace (clone + PAT), the session shows up in the web Sessions list, and
155
+ * View Session deep-links land on the normal workspace route.
156
+ *
157
+ * A gated deployment refuses a thread it cannot place, rather than falling back
158
+ * to a chat-only session: a repo-backed thread is the whole point of the
159
+ * integration, and answering in a chat-only one would run the sender's request
160
+ * in no project, on the SDK's built-in defaults. A linked sender whose project
161
+ * cannot start a session gets an actionable error in Slack; the dispatch gate
162
+ * handles unlinked or unrouted senders before this hook runs.
163
+ * The hook only runs when a NEW thread is actually created (`getOrCreateThread`
164
+ * resolves the owner lazily), so an established conversation is never touched:
165
+ * it keeps its session, its model, and its history.
166
+ *
167
+ * The chat-only `channel:...` id survives for two cases where refusing would be
168
+ * wrong: a deployment that cannot produce a repo-backed thread at all (no
169
+ * account linking, no projects, or no source-control integration registered),
170
+ * and a message carrying no sender id. In both, a `channel:` thread is the only
171
+ * shape a session can take.
172
+ *
173
+ * Pure lookups only — cards for unlinked/unrouted senders are the dispatch
174
+ * gate's job; this hook must never post.
175
+ */
176
+ function createChannelResourceIdResolver(deps) {
177
+ const { accountLinks, projects } = deps;
178
+ const sourceControls = configuredSourceControls(deps);
179
+ return async ({ platform, thread, message }) => {
180
+ const chatOnlyResourceId = `channel:${thread.id}`;
181
+ if (!accountLinks || !projects || sourceControls.length === 0) return chatOnlyResourceId;
182
+ if (!message.author.userId) return chatOnlyResourceId;
183
+ const externalTeamId = rawTeamId(message.raw);
184
+ if (!externalTeamId) throw new ChannelSessionRejectedError("No Slack workspace id on the message — the sender cannot be identified");
185
+ try {
186
+ const link = await accountLinks.getAccountLink({
187
+ platform,
188
+ externalTeamId,
189
+ externalUserId: message.author.userId
190
+ });
191
+ if (!link) throw new ChannelSessionRejectedError(`Slack sender ${message.author.userId} is not linked to a Factory account`);
192
+ const orgId = link.orgId ?? "";
193
+ let factoryProjectId;
194
+ if (link.defaultFactoryProjectId && await projects.get({
195
+ orgId,
196
+ id: link.defaultFactoryProjectId
197
+ })) factoryProjectId = link.defaultFactoryProjectId;
198
+ else if (orgId) {
199
+ const factories = await projects.list({ orgId });
200
+ if (factories.length === 1) factoryProjectId = factories[0].id;
201
+ }
202
+ if (!factoryProjectId) throw new ChannelSessionRejectedError(`Linked Slack sender ${message.author.userId} has no Factory project`);
203
+ const sourceControl = await resolveFactorySourceControl({
204
+ sourceControls,
205
+ orgId,
206
+ factoryProjectId
207
+ });
208
+ if (!sourceControl) throw new SlackSessionStartError((await Promise.all(sourceControls.map((sourceControl) => sourceControl.connections.list({
209
+ orgId,
210
+ factoryProjectId
211
+ })))).some((rows) => rows.length > 0) ? "Could not start a session: link a repository to this Factory project." : "Could not start a session: connect source control to this Factory project.");
212
+ const repo = await resolvePrimaryEnvironmentRepository({
213
+ sourceControl,
214
+ orgId,
215
+ factoryProjectId
216
+ });
217
+ if (!repo.found) throw new SlackSessionStartError(repo.reason === "connection" ? "Could not start a session: connect source control to this Factory project." : "Could not start a session: link a repository to this Factory project.");
218
+ const branch = threadBranch(thread.id);
219
+ const existing = await sourceControl.sessions.getForBranch({
220
+ factoryProjectId,
221
+ userId: link.userId,
222
+ branch
223
+ });
224
+ if (existing) return existing.sessionId;
225
+ return (await sourceControl.sessions.create({
226
+ sessionId: globalThis.crypto.randomUUID(),
227
+ projectRepositoryId: repo.projectRepositoryId,
228
+ factoryProjectId,
229
+ orgId,
230
+ userId: link.userId,
231
+ branch,
232
+ baseBranch: repo.baseBranch,
233
+ visibility: thread.isDM ? "private" : "org"
234
+ })).sessionId;
235
+ } catch (error) {
236
+ if (error instanceof ChannelSessionRejectedError || error instanceof SlackSessionStartError) throw error;
237
+ if (error instanceof FactorySourceControlConflictError) throw new SlackSessionStartError("Could not start a session: this Factory project has repositories from more than one source-control provider.", { cause: error });
238
+ console.error("[slack] failed to start repo-backed session for thread", thread.id, error);
239
+ throw new SlackSessionStartError("Could not start a session right now. Please try again later.", { cause: error });
240
+ }
241
+ };
242
+ }
243
+ /**
244
+ * Thread id for a NEW Slack channel thread. Repo-backed threads take the
245
+ * user-session id AS their thread id, matching the web convention
246
+ * (FactoryStartCoordinator seeds threads with threadId = sessionId) so
247
+ * `/workspaces/{sessionId}/threads/{sessionId}` resolves Slack-created
248
+ * sessions exactly like web-created ones — no `?resourceId=` override needed.
249
+ * Chat-only threads keep the default random id: their `channel:...`
250
+ * resourceId is a memory key, not a unique thread id.
251
+ */
252
+ const resolveChannelThreadId = ({ resourceId, defaultThreadId }) => resourceId.startsWith("channel:") ? defaultThreadId : resourceId;
253
+ /** Create channel sessions with their Factory ownership present in initial controller state. */
254
+ function createChannelSessionResolver(deps) {
255
+ const sourceControlSessions = createSourceControlSessionLookup(configuredSourceControls(deps));
256
+ return async ({ controller, thread, requestContext }) => {
257
+ const sourceControl = thread.resourceId.startsWith("channel:") ? null : await sourceControlSessions.getSourceControlBySessionId(thread.resourceId);
258
+ const session = sourceControl ? await sourceControl.sessions.getBySessionId(thread.resourceId) : null;
259
+ return controller.createSession({
260
+ id: thread.resourceId,
261
+ ownerId: controller.id,
262
+ resourceId: thread.resourceId,
263
+ threadId: thread.id,
264
+ requestContext,
265
+ ...session?.factoryProjectId ? { tags: { factoryProjectId: session.factoryProjectId } } : {}
266
+ });
267
+ };
268
+ }
269
+ /**
270
+ * Apply the factory's configuration to a Slack-created session the first time
271
+ * its thread reaches the controller.
272
+ *
273
+ * Without this a Slack session runs on the SDK's built-in mode default
274
+ * (`openai/gpt-5.5`), so a factory configured for any other provider fails every
275
+ * message with a missing-credentials error. The web kickoff has always applied
276
+ * the factory default; this brings Slack to the same footing.
277
+ *
278
+ * Only repo-backed threads are configured. Their resourceId IS the Factory
279
+ * session id, which the source-control rows turn back into a project — a
280
+ * chat-only `channel:...` id names no project, so there is nothing to read.
281
+ *
282
+ * The model this session starts on is picked here, once, from the project's
283
+ * effective model scope for a session: the Factory default or the durable session owner's
284
+ * default, else the SDK's built-in model. The choice is persisted on the thread
285
+ * as `currentModelId`, so it outlives the process that made it.
286
+ *
287
+ * The model resolution is skipped on a session that already has a model
288
+ * persisted on the thread. That is the durable record of a deliberate choice —
289
+ * either an earlier start or a user's own switch — and re-applying a preference
290
+ * over it would undo the user's selection every time the process restarts.
291
+ */
292
+ function createChannelSessionStartHook(deps) {
293
+ const { projects, modelDefaults } = deps;
294
+ const sourceControlSessions = createSourceControlSessionLookup(configuredSourceControls(deps));
295
+ return async ({ session, thread, requestContext }) => {
296
+ await seedSessionOrg(session, readRequestContextOrgId(requestContext));
297
+ if (!projects) return;
298
+ if (thread.resourceId.startsWith("channel:")) return;
299
+ const sourceControl = await sourceControlSessions.getSourceControlBySessionId(thread.resourceId);
300
+ if (!sourceControl) return;
301
+ const sourceSession = await sourceControl.sessions.getBySessionId(thread.resourceId);
302
+ if (!sourceSession?.factoryProjectId) return;
303
+ const threadId = session.thread.getId();
304
+ const binding = threadId && deps.workItems ? await deps.workItems.findRunBindingByThread({
305
+ orgId: sourceSession.orgId,
306
+ resourceId: thread.resourceId,
307
+ sessionId: thread.resourceId,
308
+ threadId,
309
+ rejectAmbiguous: true
310
+ }) : null;
311
+ const owner = {
312
+ factoryProjectId: binding?.factoryProjectId ?? sourceSession.factoryProjectId,
313
+ orgId: sourceSession.orgId,
314
+ userId: sourceSession.userId
315
+ };
316
+ const sessionModel = await resolveFactorySessionModel({
317
+ projects,
318
+ modelDefaults,
319
+ factoryProjectId: owner.factoryProjectId,
320
+ orgId: owner.orgId,
321
+ ownerUserId: owner.userId,
322
+ context: binding ? "run" : "session"
323
+ });
324
+ await session.state.set({
325
+ factoryProjectId: owner.factoryProjectId,
326
+ factoryModelScope: sessionModel.modelScope,
327
+ factoryOwnerUserId: owner.userId
328
+ });
329
+ await seedSessionOrg(session, owner.orgId);
330
+ await primeTenantCredentialsForTenant({
331
+ orgId: owner.orgId,
332
+ userId: owner.userId,
333
+ credentialScope: sessionModel.modelScope
334
+ });
335
+ const modeId = session.mode.get();
336
+ const activeThreadId = session.thread.getId();
337
+ if (await migratePersistedModelSelection({
338
+ getMetadata: async () => activeThreadId ? (await session.thread.getById({ threadId: activeThreadId }))?.metadata ?? {} : {},
339
+ modeId,
340
+ set: (key, value) => activeThreadId ? session.thread.setSettingOn({
341
+ threadId: activeThreadId,
342
+ key,
343
+ value
344
+ }) : Promise.resolve(),
345
+ threadId: activeThreadId ?? void 0
346
+ })) for (const agentType of SUBAGENT_TYPES) {
347
+ const modelId = await session.thread.getSetting({ key: pinnedSubagentModelKey(agentType) });
348
+ if (typeof modelId === "string") await applySubagentModel(session, agentType, modelId);
349
+ }
350
+ else {
351
+ await hydrateFactorySession(session, {
352
+ orgId: owner.orgId,
353
+ modelScope: sessionModel.modelScope,
354
+ ownerUserId: owner.userId,
355
+ defaultModelId: sessionModel.modelId
356
+ });
357
+ const selectedModelId = sessionModel.modelId ?? session.mode.resolve().defaultModelId ?? session.model.get();
358
+ for (const agentType of SUBAGENT_TYPES) {
359
+ if (!selectedModelId) continue;
360
+ if (await applySubagentModel(session, agentType, selectedModelId)) await session.thread.setSetting({
361
+ key: pinnedSubagentModelKey(agentType),
362
+ value: selectedModelId
363
+ });
364
+ }
365
+ }
366
+ };
367
+ }
368
+ const SUBAGENT_TYPES = [
369
+ "explore",
370
+ "plan",
371
+ "execute"
372
+ ];
373
+ const pinnedSubagentModelKey = (agentType) => `slackSubagentModelId_${agentType}`;
374
+ /** Best-effort: a subagent model that can't be applied must not fail the message. */
375
+ async function applySubagentModel(session, agentType, modelId) {
376
+ try {
377
+ await session.subagents.model.set({
378
+ modelId,
379
+ agentType
380
+ });
381
+ return true;
382
+ } catch (error) {
383
+ console.warn("[slack] Failed to apply the subagent model", {
384
+ agentType,
385
+ modelId,
386
+ error: error instanceof Error ? error.message : String(error)
387
+ });
388
+ return false;
389
+ }
390
+ }
391
+ /**
392
+ * The internal Mastra thread the framework created for a channel conversation.
393
+ * The handler's `thread.id` is the platform thread id (e.g. `slack:C123:ts`),
394
+ * NOT the internal UUID — the mapping lives in the stored thread's channel
395
+ * metadata.
396
+ */
397
+ async function findInternalThread(mastra, thread) {
398
+ const { threads } = await (await mastra?.getStorage()?.getStore("memory"))?.listThreads({
399
+ filter: { metadata: {
400
+ channel_platform: thread.adapter.name,
401
+ channel_externalThreadId: thread.id,
402
+ channel_externalChannelId: thread.channelId
403
+ } },
404
+ perPage: 1
405
+ }) ?? { threads: [] };
406
+ return threads[0];
407
+ }
408
+ async function prepareExistingSessionOwnerContext(thread, deps, ctx, options) {
409
+ const sourceControls = configuredSourceControls(deps);
410
+ if (sourceControls.length === 0 && !options.requireInternalThread) return "ready";
411
+ const internalThread = await findInternalThread(ctx.mastra, thread);
412
+ if (!internalThread) {
413
+ if (options.requireInternalThread) throw new Error(`Could not resolve the internal Slack thread for ${thread.id}.`);
414
+ return "ready";
415
+ }
416
+ if (sourceControls.length === 0 || internalThread.resourceId.startsWith("channel:")) return "ready";
417
+ if (!options.expectedOrgId) throw new Error(`Could not authorize the owner of Slack Factory session ${internalThread.resourceId}.`);
418
+ const preparation = await prepareSessionRunContext(ctx.requestContext, internalThread.resourceId, { sessions: createSourceControlSessionLookup(sourceControls) }, { expectedOrgId: options.expectedOrgId });
419
+ if (preparation === "organization-mismatch") return preparation;
420
+ if (preparation === "unavailable") throw new Error(`Could not authorize the owner of Slack Factory session ${internalThread.resourceId}.`);
421
+ return "ready";
422
+ }
423
+ /**
424
+ * Build the "new session" handler for mention / direct-message events. A mention or
425
+ * DM on a not-yet-subscribed thread starts a NEW session; once subscribed, later
426
+ * events are follow-ups and don't re-announce.
427
+ */
428
+ /**
429
+ * Run the account-link + factory-routing gates for one inbound message.
430
+ * Returns `null` when the run must not dispatch (a prompt card was posted
431
+ * where possible); otherwise the dispatch context — with `routed` present
432
+ * only when a linked sender resolved to a factory.
433
+ */
434
+ async function gateDispatch(thread, message, deps, ctx, options = { requireInternalThread: false }) {
435
+ const { accountLinks, projects } = deps;
436
+ const sender = await resolveLinkedSender({
437
+ thread,
438
+ message,
439
+ accountLinks
440
+ });
441
+ if (sender.status === "blocked") return null;
442
+ if (sender.status === "linked" && accountLinks) {
443
+ ctx.requestContext.set("user", {
444
+ id: sender.link.userId,
445
+ organizationId: sender.link.orgId
446
+ });
447
+ if (await prepareExistingSessionOwnerContext(thread, deps, ctx, {
448
+ expectedOrgId: sender.link.orgId,
449
+ requireInternalThread: options.requireInternalThread
450
+ }) === "organization-mismatch") {
451
+ await thread.post("This thread belongs to a Factory session in another organization.");
452
+ return null;
453
+ }
454
+ await primeTenantCredentialsForRequestContext(ctx.requestContext);
455
+ const route = await resolveFactoryForLink({
456
+ thread,
457
+ ...sender,
458
+ accountLinks,
459
+ projects
460
+ });
461
+ if (route.status === "blocked") return null;
462
+ if (route.status === "resolved") return { routed: {
463
+ link: sender.link,
464
+ factoryProjectId: route.factoryProjectId
465
+ } };
466
+ }
467
+ return {};
468
+ }
469
+ /**
470
+ * A channel id and a `ts` name a thread only inside the workspace that issued
471
+ * them, so the team scopes the card's key — without it two workspaces could
472
+ * hold one key and an aside would land on another tenant's card.
473
+ */
474
+ function slackThreadSource(thread, teamId) {
475
+ return {
476
+ integrationId: thread.adapter.name,
477
+ type: "slack-thread",
478
+ ...teamId ? { workspaceId: teamId } : {},
479
+ externalId: thread.id
480
+ };
481
+ }
482
+ /** Cards written before the key carried a team are still keyed bare. */
483
+ async function findThreadWorkItem(workItems, thread, teamId) {
484
+ const scoped = await workItems.getBySource(slackThreadSource(thread, teamId));
485
+ if (scoped || !teamId) return scoped;
486
+ return workItems.getBySource(slackThreadSource(thread));
487
+ }
488
+ function preDispatchErrorDetails(error) {
489
+ const readMessage = (value) => {
490
+ const message = typeof value === "string" ? value : value && typeof value === "object" && "message" in value ? value.message : void 0;
491
+ return typeof message === "string" && message.length > 0 ? message : void 0;
492
+ };
493
+ try {
494
+ const message = readMessage(error) ?? "Unknown error";
495
+ const cause = error && typeof error === "object" && "cause" in error ? readMessage(error.cause) : void 0;
496
+ return {
497
+ message,
498
+ ...cause ? { cause: { message: cause } } : {}
499
+ };
500
+ } catch {
501
+ return { message: "Error details unavailable" };
502
+ }
503
+ }
504
+ async function reportPreDispatchError(thread, message, ctx, error) {
505
+ try {
506
+ if (error instanceof ChannelSessionRejectedError) return;
507
+ } catch {}
508
+ const correlation = {
509
+ platform: thread.adapter.name,
510
+ threadId: thread.id,
511
+ messageId: message.id,
512
+ authorId: message.author.userId
513
+ };
514
+ const logger = typeof ctx.mastra?.getLogger === "function" ? ctx.mastra.getLogger() : void 0;
515
+ const logError = (line) => logger ? logger.error(line) : console.error(line);
516
+ logError(`[slack] Pre-dispatch failure ${JSON.stringify({
517
+ ...correlation,
518
+ error: preDispatchErrorDetails(error)
519
+ })}`);
520
+ try {
521
+ await thread.post(`Couldn’t start processing your message. Please try again.\n\`messageId: ${message.id}\``);
522
+ } catch (deliveryError) {
523
+ logError(`[slack] Failed to deliver pre-dispatch error reply ${JSON.stringify({
524
+ ...correlation,
525
+ error: preDispatchErrorDetails(deliveryError)
526
+ })}`);
527
+ }
528
+ }
529
+ function createNewSessionChatHandler(deps) {
530
+ return async (thread, message, defaultHandler, ctx) => {
531
+ let gate;
532
+ let isNewSession;
533
+ try {
534
+ gate = await gateDispatch(thread, message, deps, ctx);
535
+ if (!gate) return;
536
+ isNewSession = !await thread.isSubscribed();
537
+ } catch (error) {
538
+ await reportPreDispatchError(thread, message, ctx, error);
539
+ return;
540
+ }
541
+ await defaultHandler(thread, message);
542
+ if (!isNewSession) return;
543
+ const internalThread = await findInternalThread(ctx.mastra, thread);
544
+ if (!internalThread) {
545
+ console.warn("[onMention] no internal thread found for", thread.id);
546
+ return;
547
+ }
548
+ const isChatOnly = internalThread.resourceId.startsWith("channel:");
549
+ const workspaceSegment = isChatOnly ? "channel" : encodeURIComponent(internalThread.resourceId);
550
+ const threadPath = gate.routed ? `/factories/${encodeURIComponent(gate.routed.factoryProjectId)}/workspaces/${workspaceSegment}/threads/${encodeURIComponent(internalThread.id)}` : `/threads/${internalThread.id}`;
551
+ const needsResourceParam = isChatOnly || !gate.routed;
552
+ const deepLink = process.env.MASTRACODE_PUBLIC_URL ? needsResourceParam ? `${process.env.MASTRACODE_PUBLIC_URL}${threadPath}?resourceId=${encodeURIComponent(internalThread.resourceId)}` : `${process.env.MASTRACODE_PUBLIC_URL}${threadPath}` : void 0;
553
+ if (!deepLink) return;
554
+ await thread.post(Card({
555
+ title: "New session started",
556
+ children: [Actions([LinkButton({
557
+ url: deepLink,
558
+ label: "View session"
559
+ })])]
560
+ }));
561
+ };
562
+ }
563
+ /**
564
+ * An `aside` never reaches the agent, but it is still part of the conversation:
565
+ * record it on the card the thread already has. The link is resolved here rather
566
+ * than through `gateDispatch`, which posts a Connect card an aside must not
567
+ * trigger. Best-effort — nothing here may surface in the Slack thread.
568
+ */
569
+ async function ingestAside(thread, message, { feed, workItems, accountLinks }) {
570
+ if (!feed || !workItems) return;
571
+ const body = resolveEmojiShortcodes(message.text.replace(/^aside\b[,:]?\s*/i, "").trim());
572
+ if (!body) return;
573
+ try {
574
+ const teamId = slackTeamId(message);
575
+ const workItem = await findThreadWorkItem(workItems, thread, teamId);
576
+ if (!workItem) return;
577
+ const external = {
578
+ platform: thread.adapter.name,
579
+ ...teamId ? { teamId } : {},
580
+ messageId: message.id,
581
+ userId: message.author.userId,
582
+ userName: message.author.userName,
583
+ fullName: message.author.fullName,
584
+ isBot: message.author.isBot
585
+ };
586
+ const link = accountLinks && teamId ? await accountLinks.getAccountLink({
587
+ platform: external.platform,
588
+ externalTeamId: teamId,
589
+ externalUserId: external.userId
590
+ }) : null;
591
+ const result = await feed.createComment({
592
+ orgId: workItem.orgId,
593
+ workItemId: workItem.id,
594
+ author: actorFromChannelAuthor(external, link),
595
+ body,
596
+ occurredAt: message.metadata.dateSent,
597
+ externalSource: slackCommentSource(thread.id, message.id, teamId)
598
+ });
599
+ if (result.status !== "created") console.warn("[slack] aside not ingested", {
600
+ thread: thread.id,
601
+ messageTs: message.id,
602
+ status: result.status
603
+ });
604
+ } catch (error) {
605
+ console.warn("[slack] aside ingest failed", {
606
+ thread: thread.id,
607
+ messageTs: message.id,
608
+ error
609
+ });
610
+ }
611
+ }
612
+ const createHandlers = (deps) => {
613
+ const newSessionChatHandler = createNewSessionChatHandler(deps);
614
+ return {
615
+ onSubscribedMessage: async (thread, message, defaultHandler, ctx) => {
616
+ if (/^aside\b/i.test(message.text)) return ingestAside(thread, message, deps);
617
+ try {
618
+ if (!await gateDispatch(thread, message, deps, ctx, { requireInternalThread: true })) return;
619
+ } catch (error) {
620
+ await reportPreDispatchError(thread, message, ctx, error);
621
+ return;
622
+ }
623
+ await defaultHandler(thread, message);
624
+ },
625
+ onMention: newSessionChatHandler,
626
+ onDirectMessage: newSessionChatHandler
627
+ };
628
+ };
629
+ function createSlackChannelsConfig(deps) {
630
+ const adapter = createSlackAdapter({
631
+ ...deps.slack,
632
+ webClientOptions: { timeout: SLACK_REQUEST_TIMEOUT_MS }
633
+ });
634
+ return {
635
+ adapters: { slack: deps.adapterOptions?.streaming === false ? {
636
+ adapter,
637
+ ...deps.adapterOptions
638
+ } : {
639
+ adapter,
640
+ ...deps.adapterOptions,
641
+ streaming: deps.adapterOptions?.streaming ?? true
642
+ } },
643
+ handlers: createHandlers(deps),
644
+ resolveResourceId: createChannelResourceIdResolver(deps),
645
+ resolveThreadId: resolveChannelThreadId,
646
+ resolveSession: createChannelSessionResolver(deps),
647
+ onSessionStart: createChannelSessionStartHook(deps)
648
+ };
649
+ }
650
+ //#endregion
651
+ export { createChannelResourceIdResolver, createChannelSessionResolver, createChannelSessionStartHook, createHandlers, createSlackChannelsConfig, resolveChannelThreadId, resolveFactoryForLink, resolveLinkedSender, slackThreadSource };
652
+
653
+ //# sourceMappingURL=slack.js.map