crewly 1.2.3 → 1.2.6

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 (735) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/config/constants.ts +48 -3
  4. package/config/index.ts +4 -0
  5. package/config/roles/auditor/prompt.md +84 -0
  6. package/config/roles/orchestrator/prompt.md +92 -9
  7. package/config/roles/team-leader/prompt.md +169 -0
  8. package/config/roles/team-leader/role.json +13 -0
  9. package/config/roles/team-leader/tl-addon.md +142 -0
  10. package/config/runtime_scripts/runtime-config.json +7 -0
  11. package/config/skills/_common/lib.sh +37 -0
  12. package/config/skills/agent/computer-use/execute.sh +228 -0
  13. package/config/skills/agent/computer-use/instructions.md +103 -0
  14. package/config/skills/agent/computer-use/lib/accessibility.sh +292 -0
  15. package/config/skills/agent/computer-use/lib/applescript.sh +117 -0
  16. package/config/skills/agent/computer-use/lib/discover.sh +122 -0
  17. package/config/skills/agent/computer-use/lib/playwright.sh +153 -0
  18. package/config/skills/agent/computer-use/lib/screenshot.sh +61 -0
  19. package/config/skills/agent/computer-use/skill.json +29 -0
  20. package/config/skills/agent/core/accept-task/execute.sh +7 -1
  21. package/config/skills/agent/core/complete-task/execute.sh +38 -1
  22. package/config/skills/agent/core/report-status/execute.sh +51 -2
  23. package/config/skills/agent/desktop-app-control/execute.sh +561 -0
  24. package/config/skills/agent/desktop-app-control/instructions.md +102 -0
  25. package/config/skills/agent/desktop-app-control/skill.json +33 -0
  26. package/config/skills/orchestrator/broadcast-to-org/execute.sh +88 -0
  27. package/config/skills/orchestrator/broadcast-to-org/instructions.md +51 -0
  28. package/config/skills/orchestrator/broadcast-to-org/skill.json +20 -0
  29. package/config/skills/orchestrator/cancel-all-schedules/execute.sh +24 -0
  30. package/config/skills/orchestrator/cancel-all-schedules/instructions.md +23 -0
  31. package/config/skills/orchestrator/cancel-all-schedules/skill.json +17 -0
  32. package/config/skills/orchestrator/delegate-task/execute.sh +75 -10
  33. package/config/skills/orchestrator/delegate-task/instructions.md +11 -1
  34. package/config/skills/orchestrator/handle-agent-failure/execute.sh +45 -0
  35. package/config/skills/orchestrator/handle-agent-failure/instructions.md +29 -0
  36. package/config/skills/orchestrator/handle-agent-failure/skill.json +20 -0
  37. package/config/skills/orchestrator/list-schedules/execute.sh +19 -0
  38. package/config/skills/orchestrator/list-schedules/instructions.md +24 -0
  39. package/config/skills/orchestrator/list-schedules/skill.json +12 -0
  40. package/config/skills/orchestrator/restart-crewly/instructions.md +9 -2
  41. package/config/skills/team-leader/_common/lib.sh +4 -0
  42. package/config/skills/team-leader/aggregate-results/execute.sh +168 -0
  43. package/config/skills/team-leader/aggregate-results/instructions.md +89 -0
  44. package/config/skills/team-leader/aggregate-results/skill.json +20 -0
  45. package/config/skills/team-leader/decompose-goal/execute.sh +86 -0
  46. package/config/skills/team-leader/decompose-goal/instructions.md +84 -0
  47. package/config/skills/team-leader/decompose-goal/skill.json +20 -0
  48. package/config/skills/team-leader/delegate-task/execute.sh +142 -0
  49. package/config/skills/team-leader/delegate-task/instructions.md +55 -0
  50. package/config/skills/team-leader/delegate-task/skill.json +20 -0
  51. package/config/skills/team-leader/handle-failure/execute.sh +119 -0
  52. package/config/skills/team-leader/handle-failure/instructions.md +93 -0
  53. package/config/skills/team-leader/handle-failure/skill.json +20 -0
  54. package/config/skills/team-leader/schedule-check/execute.sh +65 -0
  55. package/config/skills/team-leader/schedule-check/execute.test.sh +247 -0
  56. package/config/skills/team-leader/schedule-check/instructions.md +49 -0
  57. package/config/skills/team-leader/schedule-check/skill.json +20 -0
  58. package/config/skills/team-leader/start-agent/execute.sh +39 -0
  59. package/config/skills/team-leader/start-agent/instructions.md +48 -0
  60. package/config/skills/team-leader/start-agent/skill.json +20 -0
  61. package/config/skills/team-leader/stop-agent/execute.sh +39 -0
  62. package/config/skills/team-leader/stop-agent/instructions.md +49 -0
  63. package/config/skills/team-leader/stop-agent/skill.json +20 -0
  64. package/config/skills/team-leader/verify-output/execute.sh +296 -0
  65. package/config/skills/team-leader/verify-output/instructions.md +122 -0
  66. package/config/skills/team-leader/verify-output/skill.json +20 -0
  67. package/config/templates/core-team/demo-script.md +41 -0
  68. package/config/templates/core-team/goals.md +20 -0
  69. package/config/templates/core-team/team.json +22 -0
  70. package/config/templates/dev-fullstack/template.json +115 -0
  71. package/config/templates/education-smb/README.md +27 -0
  72. package/config/templates/education-smb/goals.md +16 -0
  73. package/config/templates/education-smb/knowledge/docs/content-standards.md +24 -0
  74. package/config/templates/education-smb/knowledge/docs/education-industry-context.md +13 -0
  75. package/config/templates/education-smb/knowledge/index.json +24 -0
  76. package/config/templates/education-smb/learned-patterns.json +16 -0
  77. package/config/templates/education-smb/quality-gates.yaml +66 -0
  78. package/config/templates/education-smb/roles/analytics-specialist.md +6 -0
  79. package/config/templates/education-smb/roles/content-creator.md +6 -0
  80. package/config/templates/education-smb/roles/curriculum-designer.md +6 -0
  81. package/config/templates/education-smb/roles/engagement-manager.md +6 -0
  82. package/config/templates/education-smb/team.json +40 -0
  83. package/config/templates/education-smb/template.json +26 -0
  84. package/config/templates/education-smb/workflows/course-content-generation.yaml +44 -0
  85. package/config/templates/education-smb/workflows/reporting.yaml +31 -0
  86. package/config/templates/education-smb/workflows/student-communication.yaml +44 -0
  87. package/config/templates/education-smb/workflows.yaml +40 -0
  88. package/config/templates/insurance-smb/README.md +28 -0
  89. package/config/templates/insurance-smb/goals.md +21 -0
  90. package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +28 -0
  91. package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +23 -0
  92. package/config/templates/insurance-smb/knowledge/index.json +24 -0
  93. package/config/templates/insurance-smb/learned-patterns.json +16 -0
  94. package/config/templates/insurance-smb/quality-gates.yaml +54 -0
  95. package/config/templates/insurance-smb/roles/claims-processor.md +6 -0
  96. package/config/templates/insurance-smb/roles/client-manager.md +6 -0
  97. package/config/templates/insurance-smb/roles/compliance-officer.md +6 -0
  98. package/config/templates/insurance-smb/roles/marketing-specialist.md +6 -0
  99. package/config/templates/insurance-smb/roles/policy-analyst.md +6 -0
  100. package/config/templates/insurance-smb/team.json +48 -0
  101. package/config/templates/insurance-smb/template.json +26 -0
  102. package/config/templates/insurance-smb/workflows/claims-processing.yaml +48 -0
  103. package/config/templates/insurance-smb/workflows.yaml +43 -0
  104. package/config/templates/research-analysis/template.json +88 -0
  105. package/config/templates/social-media-ops/template.json +85 -0
  106. package/config/templates/video-production/template.json +123 -0
  107. package/dist/backend/backend/src/constants.d.ts +344 -16
  108. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  109. package/dist/backend/backend/src/constants.js +334 -15
  110. package/dist/backend/backend/src/constants.js.map +1 -1
  111. package/dist/backend/backend/src/controllers/auditor/auditor.controller.d.ts +37 -0
  112. package/dist/backend/backend/src/controllers/auditor/auditor.controller.d.ts.map +1 -0
  113. package/dist/backend/backend/src/controllers/auditor/auditor.controller.js +64 -0
  114. package/dist/backend/backend/src/controllers/auditor/auditor.controller.js.map +1 -0
  115. package/dist/backend/backend/src/controllers/auditor/auditor.routes.d.ts +15 -0
  116. package/dist/backend/backend/src/controllers/auditor/auditor.routes.d.ts.map +1 -0
  117. package/dist/backend/backend/src/controllers/auditor/auditor.routes.js +23 -0
  118. package/dist/backend/backend/src/controllers/auditor/auditor.routes.js.map +1 -0
  119. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  120. package/dist/backend/backend/src/controllers/chat/chat.controller.js +69 -48
  121. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  122. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts +23 -0
  123. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts.map +1 -0
  124. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js +42 -0
  125. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js.map +1 -0
  126. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts +56 -0
  127. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts.map +1 -0
  128. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js +173 -0
  129. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js.map +1 -0
  130. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts +22 -0
  131. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts.map +1 -0
  132. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js +33 -0
  133. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js.map +1 -0
  134. package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts +7 -0
  135. package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts.map +1 -0
  136. package/dist/backend/backend/src/controllers/cloud/admin/index.js +7 -0
  137. package/dist/backend/backend/src/controllers/cloud/admin/index.js.map +1 -0
  138. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +81 -0
  139. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +1 -0
  140. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +234 -0
  141. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +1 -0
  142. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +25 -0
  143. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +1 -0
  144. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +38 -0
  145. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +1 -0
  146. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +69 -0
  147. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +1 -0
  148. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +165 -0
  149. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +1 -0
  150. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +23 -0
  151. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +1 -0
  152. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +32 -0
  153. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +1 -0
  154. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +52 -0
  155. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -0
  156. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +122 -0
  157. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -0
  158. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +21 -0
  159. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -0
  160. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +29 -0
  161. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -0
  162. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +42 -0
  163. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +1 -0
  164. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +138 -0
  165. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +1 -0
  166. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +23 -0
  167. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +1 -0
  168. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +34 -0
  169. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +1 -0
  170. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +43 -0
  171. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +1 -0
  172. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +9 -0
  173. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +1 -0
  174. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +7 -0
  175. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +1 -0
  176. package/dist/backend/backend/src/controllers/cloud/files/index.js +7 -0
  177. package/dist/backend/backend/src/controllers/cloud/files/index.js.map +1 -0
  178. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +47 -0
  179. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +1 -0
  180. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +131 -0
  181. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +1 -0
  182. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +23 -0
  183. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +1 -0
  184. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +30 -0
  185. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +1 -0
  186. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +81 -0
  187. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +1 -0
  188. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +85 -0
  189. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +1 -0
  190. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +7 -0
  191. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +1 -0
  192. package/dist/backend/backend/src/controllers/cloud/h5/index.js +7 -0
  193. package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +1 -0
  194. package/dist/backend/backend/src/controllers/cloud/index.d.ts +9 -0
  195. package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -0
  196. package/dist/backend/backend/src/controllers/cloud/index.js +9 -0
  197. package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -0
  198. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +7 -0
  199. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +1 -0
  200. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +7 -0
  201. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +1 -0
  202. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +45 -0
  203. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +1 -0
  204. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +155 -0
  205. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +1 -0
  206. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +25 -0
  207. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +1 -0
  208. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +32 -0
  209. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +1 -0
  210. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +62 -0
  211. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +1 -0
  212. package/dist/backend/backend/src/controllers/cloud/relay.controller.js +184 -0
  213. package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +1 -0
  214. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +25 -0
  215. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +1 -0
  216. package/dist/backend/backend/src/controllers/cloud/relay.routes.js +34 -0
  217. package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +1 -0
  218. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +49 -0
  219. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +1 -0
  220. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +152 -0
  221. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +1 -0
  222. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +24 -0
  223. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +1 -0
  224. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +34 -0
  225. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +1 -0
  226. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +90 -0
  227. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +1 -0
  228. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +48 -0
  229. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +1 -0
  230. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +10 -0
  231. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +1 -0
  232. package/dist/backend/backend/src/controllers/cloud/tasks/index.js +10 -0
  233. package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +1 -0
  234. package/dist/backend/backend/src/controllers/marketplace/index.d.ts +2 -0
  235. package/dist/backend/backend/src/controllers/marketplace/index.d.ts.map +1 -1
  236. package/dist/backend/backend/src/controllers/marketplace/index.js +3 -0
  237. package/dist/backend/backend/src/controllers/marketplace/index.js.map +1 -1
  238. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +12 -12
  239. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  240. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +1 -18
  241. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  242. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  243. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +3 -0
  244. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  245. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.d.ts +111 -0
  246. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.d.ts.map +1 -0
  247. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.js +220 -0
  248. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.js.map +1 -0
  249. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +37 -0
  250. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts.map +1 -0
  251. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +54 -0
  252. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -0
  253. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  254. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +4 -1
  255. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  256. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  257. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +50 -6
  258. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  259. package/dist/backend/backend/src/controllers/payment/index.d.ts +7 -0
  260. package/dist/backend/backend/src/controllers/payment/index.d.ts.map +1 -0
  261. package/dist/backend/backend/src/controllers/payment/index.js +7 -0
  262. package/dist/backend/backend/src/controllers/payment/index.js.map +1 -0
  263. package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts +68 -0
  264. package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts.map +1 -0
  265. package/dist/backend/backend/src/controllers/payment/payment.controller.js +136 -0
  266. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -0
  267. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +31 -0
  268. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -0
  269. package/dist/backend/backend/src/controllers/payment/payment.routes.js +52 -0
  270. package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -0
  271. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +109 -0
  272. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -0
  273. package/dist/backend/backend/src/controllers/payment/payment.types.js +54 -0
  274. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -0
  275. package/dist/backend/backend/src/controllers/request-types.d.ts +34 -5
  276. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  277. package/dist/backend/backend/src/controllers/session/session.controller.d.ts +14 -0
  278. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  279. package/dist/backend/backend/src/controllers/session/session.controller.js +48 -0
  280. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  281. package/dist/backend/backend/src/controllers/session/session.routes.d.ts.map +1 -1
  282. package/dist/backend/backend/src/controllers/session/session.routes.js +3 -1
  283. package/dist/backend/backend/src/controllers/session/session.routes.js.map +1 -1
  284. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts +19 -0
  285. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
  286. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +55 -3
  287. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
  288. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  289. package/dist/backend/backend/src/controllers/system/system.controller.js +13 -15
  290. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  291. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
  292. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
  293. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  294. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +40 -4
  295. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  296. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  297. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  298. package/dist/backend/backend/src/controllers/team/team.controller.js +272 -18
  299. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  300. package/dist/backend/backend/src/controllers/template/index.d.ts +8 -0
  301. package/dist/backend/backend/src/controllers/template/index.d.ts.map +1 -0
  302. package/dist/backend/backend/src/controllers/template/index.js +8 -0
  303. package/dist/backend/backend/src/controllers/template/index.js.map +1 -0
  304. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +63 -0
  305. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -0
  306. package/dist/backend/backend/src/controllers/template/template.controller.js +112 -0
  307. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -0
  308. package/dist/backend/backend/src/controllers/template/template.routes.d.ts +24 -0
  309. package/dist/backend/backend/src/controllers/template/template.routes.d.ts.map +1 -0
  310. package/dist/backend/backend/src/controllers/template/template.routes.js +33 -0
  311. package/dist/backend/backend/src/controllers/template/template.routes.js.map +1 -0
  312. package/dist/backend/backend/src/index.d.ts.map +1 -1
  313. package/dist/backend/backend/src/index.js +106 -13
  314. package/dist/backend/backend/src/index.js.map +1 -1
  315. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js +3 -3
  316. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js.map +1 -1
  317. package/dist/backend/backend/src/models/Team.d.ts +5 -0
  318. package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
  319. package/dist/backend/backend/src/models/Team.js +24 -0
  320. package/dist/backend/backend/src/models/Team.js.map +1 -1
  321. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  322. package/dist/backend/backend/src/routes/api.routes.js +13 -0
  323. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  324. package/dist/backend/backend/src/routes/modules/log-rotation.routes.d.ts +8 -0
  325. package/dist/backend/backend/src/routes/modules/log-rotation.routes.d.ts.map +1 -0
  326. package/dist/backend/backend/src/routes/modules/log-rotation.routes.js +62 -0
  327. package/dist/backend/backend/src/routes/modules/log-rotation.routes.js.map +1 -0
  328. package/dist/backend/backend/src/routes/modules/scheduler.routes.d.ts.map +1 -1
  329. package/dist/backend/backend/src/routes/modules/scheduler.routes.js +2 -0
  330. package/dist/backend/backend/src/routes/modules/scheduler.routes.js.map +1 -1
  331. package/dist/backend/backend/src/scripts/run-log-rotation.d.ts +3 -0
  332. package/dist/backend/backend/src/scripts/run-log-rotation.d.ts.map +1 -0
  333. package/dist/backend/backend/src/scripts/run-log-rotation.js +31 -0
  334. package/dist/backend/backend/src/scripts/run-log-rotation.js.map +1 -0
  335. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +11 -6
  336. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  337. package/dist/backend/backend/src/services/agent/agent-registration.service.js +296 -288
  338. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  339. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts +150 -0
  340. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -0
  341. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +307 -0
  342. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -0
  343. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +7 -1
  344. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  345. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +11 -2
  346. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  347. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +105 -0
  348. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -0
  349. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +199 -0
  350. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -0
  351. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +68 -0
  352. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +1 -0
  353. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +131 -0
  354. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +1 -0
  355. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +29 -0
  356. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -0
  357. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +229 -0
  358. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -0
  359. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +127 -0
  360. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -0
  361. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +242 -0
  362. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -0
  363. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +95 -0
  364. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -0
  365. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +130 -0
  366. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -0
  367. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +14 -0
  368. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -0
  369. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +14 -0
  370. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -0
  371. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +57 -0
  372. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -0
  373. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +93 -0
  374. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -0
  375. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +13 -0
  376. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +1 -0
  377. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +91 -0
  378. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +1 -0
  379. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +29 -0
  380. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -0
  381. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +519 -0
  382. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -0
  383. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +159 -0
  384. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -0
  385. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +63 -0
  386. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -0
  387. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +1 -0
  388. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  389. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +30 -43
  390. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  391. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
  392. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
  393. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +496 -0
  394. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
  395. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +70 -0
  396. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +1 -0
  397. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +131 -0
  398. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +1 -0
  399. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +21 -1
  400. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  401. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +32 -1
  402. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  403. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +133 -4
  404. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  405. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +492 -183
  406. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  407. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  408. package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
  409. package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  410. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +49 -2
  411. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  412. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +124 -2
  413. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  414. package/dist/backend/backend/src/services/chat/chat.service.d.ts +17 -3
  415. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  416. package/dist/backend/backend/src/services/chat/chat.service.js +63 -13
  417. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  418. package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts +18 -0
  419. package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts.map +1 -0
  420. package/dist/backend/backend/src/services/cloud/admin-seed.service.js +50 -0
  421. package/dist/backend/backend/src/services/cloud/admin-seed.service.js.map +1 -0
  422. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +174 -0
  423. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +1 -0
  424. package/dist/backend/backend/src/services/cloud/auth/auth.service.js +402 -0
  425. package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +1 -0
  426. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +110 -0
  427. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +1 -0
  428. package/dist/backend/backend/src/services/cloud/auth/auth.types.js +54 -0
  429. package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +1 -0
  430. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts +36 -0
  431. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts.map +1 -0
  432. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js +31 -0
  433. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js.map +1 -0
  434. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +47 -0
  435. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +1 -0
  436. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +116 -0
  437. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +1 -0
  438. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +61 -0
  439. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +1 -0
  440. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +203 -0
  441. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +1 -0
  442. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts +46 -0
  443. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts.map +1 -0
  444. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js +95 -0
  445. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js.map +1 -0
  446. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +136 -0
  447. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +1 -0
  448. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +204 -0
  449. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +1 -0
  450. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +179 -0
  451. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -0
  452. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +237 -0
  453. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -0
  454. package/dist/backend/backend/src/services/cloud/cloud-features.d.ts +19 -0
  455. package/dist/backend/backend/src/services/cloud/cloud-features.d.ts.map +1 -0
  456. package/dist/backend/backend/src/services/cloud/cloud-features.js +23 -0
  457. package/dist/backend/backend/src/services/cloud/cloud-features.js.map +1 -0
  458. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +97 -0
  459. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +1 -0
  460. package/dist/backend/backend/src/services/cloud/cloud-file.service.js +184 -0
  461. package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +1 -0
  462. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +114 -0
  463. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +1 -0
  464. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +196 -0
  465. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +1 -0
  466. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +118 -0
  467. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +1 -0
  468. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +326 -0
  469. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +1 -0
  470. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +115 -0
  471. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +1 -0
  472. package/dist/backend/backend/src/services/cloud/cloud-task.service.js +265 -0
  473. package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +1 -0
  474. package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts +45 -0
  475. package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts.map +1 -0
  476. package/dist/backend/backend/src/services/cloud/mongodb.service.js +76 -0
  477. package/dist/backend/backend/src/services/cloud/mongodb.service.js.map +1 -0
  478. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +175 -0
  479. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +1 -0
  480. package/dist/backend/backend/src/services/cloud/relay-client.service.js +392 -0
  481. package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +1 -0
  482. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +87 -0
  483. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +1 -0
  484. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +140 -0
  485. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +1 -0
  486. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +181 -0
  487. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +1 -0
  488. package/dist/backend/backend/src/services/cloud/relay-server.service.js +494 -0
  489. package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +1 -0
  490. package/dist/backend/backend/src/services/cloud/relay.types.d.ts +170 -0
  491. package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +1 -0
  492. package/dist/backend/backend/src/services/cloud/relay.types.js +69 -0
  493. package/dist/backend/backend/src/services/cloud/relay.types.js.map +1 -0
  494. package/dist/backend/backend/src/services/continuation/continuation.service.d.ts.map +1 -1
  495. package/dist/backend/backend/src/services/continuation/continuation.service.js +5 -10
  496. package/dist/backend/backend/src/services/continuation/continuation.service.js.map +1 -1
  497. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts +9 -1
  498. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -1
  499. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js +18 -4
  500. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -1
  501. package/dist/backend/backend/src/services/core/env.config.d.ts +147 -0
  502. package/dist/backend/backend/src/services/core/env.config.d.ts.map +1 -0
  503. package/dist/backend/backend/src/services/core/env.config.js +226 -0
  504. package/dist/backend/backend/src/services/core/env.config.js.map +1 -0
  505. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  506. package/dist/backend/backend/src/services/core/storage.service.js +5 -0
  507. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  508. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +30 -2
  509. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  510. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +82 -12
  511. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  512. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.d.ts +160 -0
  513. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.d.ts.map +1 -0
  514. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.js +261 -0
  515. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.js.map +1 -0
  516. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.d.ts +161 -0
  517. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.d.ts.map +1 -0
  518. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.js +276 -0
  519. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.js.map +1 -0
  520. package/dist/backend/backend/src/services/marketplace/index.d.ts +1 -0
  521. package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -1
  522. package/dist/backend/backend/src/services/marketplace/index.js +2 -0
  523. package/dist/backend/backend/src/services/marketplace/index.js.map +1 -1
  524. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +2 -2
  525. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.d.ts +149 -0
  526. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.d.ts.map +1 -0
  527. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.js +500 -0
  528. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.js.map +1 -0
  529. package/dist/backend/backend/src/services/mcp-server.js +1 -1
  530. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  531. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +90 -0
  532. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -0
  533. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +233 -0
  534. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -0
  535. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  536. package/dist/backend/backend/src/services/messaging/message-queue.service.js +1 -0
  537. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  538. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +1 -1
  539. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  540. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  541. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +23 -5
  542. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  543. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  544. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +3 -3
  545. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  546. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  547. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +29 -5
  548. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  549. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  550. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +6 -0
  551. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  552. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +69 -0
  553. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +1 -0
  554. package/dist/backend/backend/src/services/payment/magic-moment.service.js +158 -0
  555. package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +1 -0
  556. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +95 -0
  557. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +1 -0
  558. package/dist/backend/backend/src/services/payment/magic-moment.types.js +91 -0
  559. package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +1 -0
  560. package/dist/backend/backend/src/services/payment/stripe.service.d.ts +83 -0
  561. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -0
  562. package/dist/backend/backend/src/services/payment/stripe.service.js +279 -0
  563. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -0
  564. package/dist/backend/backend/src/services/plugin/index.d.ts +9 -0
  565. package/dist/backend/backend/src/services/plugin/index.d.ts.map +1 -0
  566. package/dist/backend/backend/src/services/plugin/index.js +8 -0
  567. package/dist/backend/backend/src/services/plugin/index.js.map +1 -0
  568. package/dist/backend/backend/src/services/plugin/plugin.service.d.ts +102 -0
  569. package/dist/backend/backend/src/services/plugin/plugin.service.d.ts.map +1 -0
  570. package/dist/backend/backend/src/services/plugin/plugin.service.js +179 -0
  571. package/dist/backend/backend/src/services/plugin/plugin.service.js.map +1 -0
  572. package/dist/backend/backend/src/services/plugin/plugin.types.d.ts +88 -0
  573. package/dist/backend/backend/src/services/plugin/plugin.types.d.ts.map +1 -0
  574. package/dist/backend/backend/src/services/plugin/plugin.types.js +17 -0
  575. package/dist/backend/backend/src/services/plugin/plugin.types.js.map +1 -0
  576. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +17 -0
  577. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  578. package/dist/backend/backend/src/services/project/task-tracking.service.js +63 -0
  579. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  580. package/dist/backend/backend/src/services/session/index.d.ts +2 -0
  581. package/dist/backend/backend/src/services/session/index.d.ts.map +1 -1
  582. package/dist/backend/backend/src/services/session/index.js +2 -0
  583. package/dist/backend/backend/src/services/session/index.js.map +1 -1
  584. package/dist/backend/backend/src/services/session/log-rotation.service.d.ts +163 -0
  585. package/dist/backend/backend/src/services/session/log-rotation.service.d.ts.map +1 -0
  586. package/dist/backend/backend/src/services/session/log-rotation.service.js +362 -0
  587. package/dist/backend/backend/src/services/session/log-rotation.service.js.map +1 -0
  588. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +14 -0
  589. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  590. package/dist/backend/backend/src/services/session/session-command-helper.js +54 -0
  591. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  592. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  593. package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
  594. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  595. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +11 -0
  596. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  597. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +98 -6
  598. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  599. package/dist/backend/backend/src/services/template/template.service.d.ts +118 -0
  600. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -0
  601. package/dist/backend/backend/src/services/template/template.service.js +299 -0
  602. package/dist/backend/backend/src/services/template/template.service.js.map +1 -0
  603. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +86 -0
  604. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  605. package/dist/backend/backend/src/services/workflow/scheduler.service.js +251 -2
  606. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  607. package/dist/backend/backend/src/types/chat.types.d.ts +39 -1
  608. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  609. package/dist/backend/backend/src/types/chat.types.js +65 -18
  610. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  611. package/dist/backend/backend/src/types/event-bus.types.d.ts +45 -2
  612. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  613. package/dist/backend/backend/src/types/event-bus.types.js +65 -0
  614. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  615. package/dist/backend/backend/src/types/hierarchy-message.types.d.ts +101 -0
  616. package/dist/backend/backend/src/types/hierarchy-message.types.d.ts.map +1 -0
  617. package/dist/backend/backend/src/types/hierarchy-message.types.js +15 -0
  618. package/dist/backend/backend/src/types/hierarchy-message.types.js.map +1 -0
  619. package/dist/backend/backend/src/types/index.d.ts +54 -4
  620. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  621. package/dist/backend/backend/src/types/index.js.map +1 -1
  622. package/dist/backend/backend/src/types/marketplace.types.d.ts +99 -0
  623. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  624. package/dist/backend/backend/src/types/messaging.types.d.ts +4 -0
  625. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  626. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  627. package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
  628. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  629. package/dist/backend/backend/src/types/settings.types.js +4 -0
  630. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  631. package/dist/backend/backend/src/types/task-tracking.types.d.ts +79 -1
  632. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  633. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  634. package/dist/backend/backend/src/types/team-template.types.d.ts +166 -0
  635. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -0
  636. package/dist/backend/backend/src/types/team-template.types.js +139 -0
  637. package/dist/backend/backend/src/types/team-template.types.js.map +1 -0
  638. package/dist/backend/backend/src/utils/async-handler.d.ts +20 -0
  639. package/dist/backend/backend/src/utils/async-handler.d.ts.map +1 -0
  640. package/dist/backend/backend/src/utils/async-handler.js +29 -0
  641. package/dist/backend/backend/src/utils/async-handler.js.map +1 -0
  642. package/dist/backend/backend/src/utils/defaultPrompts.d.ts +4 -4
  643. package/dist/backend/backend/src/utils/defaultPrompts.d.ts.map +1 -1
  644. package/dist/backend/backend/src/utils/defaultPrompts.js +16 -0
  645. package/dist/backend/backend/src/utils/defaultPrompts.js.map +1 -1
  646. package/dist/backend/backend/src/utils/gemini-trusted-folders.d.ts +43 -0
  647. package/dist/backend/backend/src/utils/gemini-trusted-folders.d.ts.map +1 -0
  648. package/dist/backend/backend/src/utils/gemini-trusted-folders.js +94 -0
  649. package/dist/backend/backend/src/utils/gemini-trusted-folders.js.map +1 -0
  650. package/dist/backend/backend/src/utils/message-serializer.d.ts +74 -0
  651. package/dist/backend/backend/src/utils/message-serializer.d.ts.map +1 -0
  652. package/dist/backend/backend/src/utils/message-serializer.js +380 -0
  653. package/dist/backend/backend/src/utils/message-serializer.js.map +1 -0
  654. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  655. package/dist/backend/backend/src/utils/terminal-string-ops.js +20 -11
  656. package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -1
  657. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +4 -4
  658. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  659. package/dist/backend/backend/src/websocket/terminal.gateway.js +9 -6
  660. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  661. package/dist/backend/config/constants.d.ts +44 -3
  662. package/dist/backend/config/constants.d.ts.map +1 -1
  663. package/dist/backend/config/constants.js +45 -3
  664. package/dist/backend/config/constants.js.map +1 -1
  665. package/dist/backend/config/index.d.ts +2 -2
  666. package/dist/backend/config/index.d.ts.map +1 -1
  667. package/dist/backend/config/index.js +2 -2
  668. package/dist/backend/config/index.js.map +1 -1
  669. package/dist/cli/backend/src/constants.d.ts +344 -16
  670. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  671. package/dist/cli/backend/src/constants.js +334 -15
  672. package/dist/cli/backend/src/constants.js.map +1 -1
  673. package/dist/cli/backend/src/models/Team.d.ts +5 -0
  674. package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
  675. package/dist/cli/backend/src/models/Team.js +24 -0
  676. package/dist/cli/backend/src/models/Team.js.map +1 -1
  677. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  678. package/dist/cli/backend/src/services/core/storage.service.js +5 -0
  679. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  680. package/dist/cli/backend/src/services/mcp-server.js +1 -1
  681. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  682. package/dist/cli/backend/src/types/chat.types.d.ts +39 -1
  683. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  684. package/dist/cli/backend/src/types/chat.types.js +65 -18
  685. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  686. package/dist/cli/backend/src/types/index.d.ts +54 -4
  687. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  688. package/dist/cli/backend/src/types/index.js.map +1 -1
  689. package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
  690. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  691. package/dist/cli/backend/src/types/settings.types.js +4 -0
  692. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  693. package/dist/cli/backend/src/utils/gemini-trusted-folders.d.ts +43 -0
  694. package/dist/cli/backend/src/utils/gemini-trusted-folders.d.ts.map +1 -0
  695. package/dist/cli/backend/src/utils/gemini-trusted-folders.js +94 -0
  696. package/dist/cli/backend/src/utils/gemini-trusted-folders.js.map +1 -0
  697. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  698. package/dist/cli/backend/src/utils/terminal-string-ops.js +20 -11
  699. package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -1
  700. package/dist/cli/cli/src/commands/onboard.d.ts +2 -1
  701. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  702. package/dist/cli/cli/src/commands/onboard.js +21 -8
  703. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  704. package/dist/cli/cli/src/commands/start.d.ts +1 -0
  705. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  706. package/dist/cli/cli/src/commands/start.js +71 -23
  707. package/dist/cli/cli/src/commands/start.js.map +1 -1
  708. package/dist/cli/cli/src/constants.d.ts +1 -1
  709. package/dist/cli/cli/src/constants.d.ts.map +1 -1
  710. package/dist/cli/cli/src/constants.js +1 -1
  711. package/dist/cli/cli/src/constants.js.map +1 -1
  712. package/dist/cli/cli/src/index.js +1 -0
  713. package/dist/cli/cli/src/index.js.map +1 -1
  714. package/dist/cli/cli/src/utils/project-scaffold.d.ts +109 -0
  715. package/dist/cli/cli/src/utils/project-scaffold.d.ts.map +1 -0
  716. package/dist/cli/cli/src/utils/project-scaffold.js +346 -0
  717. package/dist/cli/cli/src/utils/project-scaffold.js.map +1 -0
  718. package/dist/cli/cli/src/utils/templates.d.ts +7 -2
  719. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
  720. package/dist/cli/cli/src/utils/templates.js +76 -7
  721. package/dist/cli/cli/src/utils/templates.js.map +1 -1
  722. package/dist/cli/config/constants.d.ts +44 -3
  723. package/dist/cli/config/constants.d.ts.map +1 -1
  724. package/dist/cli/config/constants.js +45 -3
  725. package/dist/cli/config/constants.js.map +1 -1
  726. package/dist/cli/config/index.d.ts +2 -2
  727. package/dist/cli/config/index.d.ts.map +1 -1
  728. package/dist/cli/config/index.js +2 -2
  729. package/dist/cli/config/index.js.map +1 -1
  730. package/frontend/dist/assets/index-3558d1a2.js +4919 -0
  731. package/frontend/dist/assets/index-4c4dcc31.css +33 -0
  732. package/frontend/dist/index.html +2 -2
  733. package/package.json +14 -3
  734. package/frontend/dist/assets/index-a23214ae.js +0 -4919
  735. package/frontend/dist/assets/index-c407fe13.css +0 -33
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Magic Moment Type Definitions
3
+ *
4
+ * Types for the anonymous trial system that allows up to 3 free
5
+ * task submissions without authentication. Trials are tracked by
6
+ * a client-provided device fingerprint.
7
+ *
8
+ * @module services/payment/magic-moment.types
9
+ */
10
+ // ---------------------------------------------------------------------------
11
+ // Constants
12
+ // ---------------------------------------------------------------------------
13
+ /** Magic Moment service configuration. */
14
+ export const MAGIC_MOMENT_CONSTANTS = {
15
+ /** Maximum free trials per device fingerprint */
16
+ MAX_FREE_TRIALS: 3,
17
+ /** Storage directory under ~/.crewly/ */
18
+ STORAGE_DIR: 'cloud/magic-moment',
19
+ /** Trial data file */
20
+ TRIALS_FILE: 'trials.json',
21
+ /** Minimum fingerprint length */
22
+ MIN_FINGERPRINT_LENGTH: 8,
23
+ /** Maximum fingerprint length */
24
+ MAX_FINGERPRINT_LENGTH: 128,
25
+ };
26
+ // ---------------------------------------------------------------------------
27
+ // Type Guards
28
+ // ---------------------------------------------------------------------------
29
+ /** Allowed MIME types for magic moment uploads (matches H5). */
30
+ const ALLOWED_MAGIC_MIME_TYPES = [
31
+ 'image/png',
32
+ 'image/jpeg',
33
+ 'image/gif',
34
+ 'image/webp',
35
+ ];
36
+ /**
37
+ * Checks whether a MIME type is allowed for magic moment uploads.
38
+ *
39
+ * @param mimeType - MIME type to check
40
+ * @returns True if allowed
41
+ */
42
+ export function isAllowedMagicMimeType(mimeType) {
43
+ return ALLOWED_MAGIC_MIME_TYPES.includes(mimeType);
44
+ }
45
+ /**
46
+ * Validates a device fingerprint string.
47
+ *
48
+ * @param fingerprint - Value to validate
49
+ * @returns Error message or null if valid
50
+ */
51
+ export function validateFingerprint(fingerprint) {
52
+ if (!fingerprint || typeof fingerprint !== 'string') {
53
+ return 'fingerprint is required';
54
+ }
55
+ if (fingerprint.length < MAGIC_MOMENT_CONSTANTS.MIN_FINGERPRINT_LENGTH) {
56
+ return `fingerprint must be at least ${MAGIC_MOMENT_CONSTANTS.MIN_FINGERPRINT_LENGTH} characters`;
57
+ }
58
+ if (fingerprint.length > MAGIC_MOMENT_CONSTANTS.MAX_FINGERPRINT_LENGTH) {
59
+ return `fingerprint must be at most ${MAGIC_MOMENT_CONSTANTS.MAX_FINGERPRINT_LENGTH} characters`;
60
+ }
61
+ return null;
62
+ }
63
+ /**
64
+ * Validates a magic moment submit request body.
65
+ *
66
+ * @param body - Request body to validate
67
+ * @returns Error message or null if valid
68
+ */
69
+ export function validateMagicSubmitBody(body) {
70
+ const fpError = validateFingerprint(body.fingerprint);
71
+ if (fpError)
72
+ return fpError;
73
+ const hasPrompt = body.prompt && typeof body.prompt === 'string' && body.prompt.trim().length > 0;
74
+ const hasFile = body.fileData && typeof body.fileData === 'string' && body.fileData.length > 0;
75
+ if (!hasPrompt && !hasFile) {
76
+ return 'At least one of prompt or file is required';
77
+ }
78
+ if (hasFile) {
79
+ if (!body.fileName || typeof body.fileName !== 'string' || body.fileName.trim().length === 0) {
80
+ return 'fileName is required when uploading a file';
81
+ }
82
+ if (!body.fileMimeType || typeof body.fileMimeType !== 'string') {
83
+ return 'fileMimeType is required when uploading a file';
84
+ }
85
+ if (!isAllowedMagicMimeType(body.fileMimeType)) {
86
+ return `Unsupported file type: ${body.fileMimeType}. Only images are allowed for free trials.`;
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ //# sourceMappingURL=magic-moment.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-moment.types.js","sourceRoot":"","sources":["../../../../../../backend/src/services/payment/magic-moment.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,iDAAiD;IACjD,eAAe,EAAE,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,oBAAoB;IACjC,sBAAsB;IACtB,WAAW,EAAE,aAAa;IAC1B,iCAAiC;IACjC,sBAAsB,EAAE,CAAC;IACzB,iCAAiC;IACjC,sBAAsB,EAAE,GAAG;CAClB,CAAC;AAkEX,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,gEAAgE;AAChE,MAAM,wBAAwB,GAAG;IAChC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;CACH,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACtD,OAAQ,wBAA8C,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAoB;IACvD,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,yBAAyB,CAAC;IAClC,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,sBAAsB,CAAC,sBAAsB,EAAE,CAAC;QACxE,OAAO,gCAAgC,sBAAsB,CAAC,sBAAsB,aAAa,CAAC;IACnG,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,sBAAsB,CAAC,sBAAsB,EAAE,CAAC;QACxE,OAAO,+BAA+B,sBAAsB,CAAC,sBAAsB,aAAa,CAAC;IAClG,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAqB;IAC5D,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAE/F,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,4CAA4C,CAAC;IACrD,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9F,OAAO,4CAA4C,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACjE,OAAO,gDAAgD,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,OAAO,0BAA0B,IAAI,CAAC,YAAY,4CAA4C,CAAC;QAChG,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Stripe Payment Service
3
+ *
4
+ * Wraps the Stripe SDK for checkout session creation, subscription
5
+ * management, customer portal, and webhook event processing.
6
+ *
7
+ * Conditionally initialises — if STRIPE_SECRET_KEY is not set, all
8
+ * methods return graceful errors instead of crashing, allowing the
9
+ * rest of the backend to run without Stripe credentials.
10
+ *
11
+ * @module services/payment/stripe.service
12
+ */
13
+ import type { PlanId, BillingInterval, SubscriptionInfo, CreateCheckoutResponse, CreatePortalResponse, WebhookEventPayload, PaymentOperationResult } from '../../controllers/payment/payment.types.js';
14
+ /**
15
+ * Singleton service for Stripe payment operations.
16
+ *
17
+ * All methods check `isConfigured()` first and return a descriptive
18
+ * error when Stripe is not available rather than throwing.
19
+ */
20
+ export declare class StripeService {
21
+ private static instance;
22
+ private readonly logger;
23
+ private readonly secretKey;
24
+ private readonly webhookSecret;
25
+ private constructor();
26
+ /**
27
+ * Get or create the singleton instance.
28
+ *
29
+ * @returns StripeService singleton
30
+ */
31
+ static getInstance(): StripeService;
32
+ /**
33
+ * Reset the singleton (for testing).
34
+ */
35
+ static resetInstance(): void;
36
+ /**
37
+ * Whether Stripe is configured and ready to use.
38
+ *
39
+ * @returns true if the secret key is set
40
+ */
41
+ isConfigured(): boolean;
42
+ /**
43
+ * Create a Stripe Checkout Session for a subscription.
44
+ *
45
+ * @param userId - Supabase user ID (stored in session metadata)
46
+ * @param planId - Plan to subscribe to
47
+ * @param interval - Billing interval
48
+ * @param successUrl - Redirect URL after successful payment
49
+ * @param cancelUrl - Redirect URL if user cancels
50
+ * @returns Result containing the checkout URL and session ID
51
+ */
52
+ createCheckoutSession(userId: string, planId: PlanId, interval: BillingInterval, successUrl: string, cancelUrl: string): Promise<PaymentOperationResult<CreateCheckoutResponse>>;
53
+ /**
54
+ * Get the current subscription for a user.
55
+ *
56
+ * Queries the Supabase `licenses` table (or Stripe customer lookup)
57
+ * to determine the user's active subscription.
58
+ *
59
+ * @param userId - Supabase user ID
60
+ * @returns Subscription info
61
+ */
62
+ getSubscription(userId: string): Promise<PaymentOperationResult<SubscriptionInfo>>;
63
+ /**
64
+ * Create a Stripe Customer Portal session for subscription management.
65
+ *
66
+ * @param userId - Supabase user ID
67
+ * @param returnUrl - URL to redirect to when the user is done
68
+ * @returns Portal URL
69
+ */
70
+ createPortalSession(userId: string, returnUrl: string): Promise<PaymentOperationResult<CreatePortalResponse>>;
71
+ /**
72
+ * Verify and process a Stripe webhook event.
73
+ *
74
+ * Validates the webhook signature, then extracts relevant data
75
+ * from the event payload.
76
+ *
77
+ * @param rawBody - Raw request body (Buffer)
78
+ * @param signature - Stripe-Signature header value
79
+ * @returns Processed webhook event payload
80
+ */
81
+ handleWebhookEvent(rawBody: Buffer, signature: string): Promise<PaymentOperationResult<WebhookEventPayload>>;
82
+ }
83
+ //# sourceMappingURL=stripe.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/payment/stripe.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EACX,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,MAAM,4CAA4C,CAAC;AAmCpD;;;;;GAKG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,OAAO;IAUP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;OAIG;IACH,YAAY,IAAI,OAAO;IAQvB;;;;;;;;;OASG;IACG,qBAAqB,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;IAyC1D;;;;;;;;OAQG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IA8CxF;;;;;;OAMG;IACG,mBAAmB,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IA8BxD;;;;;;;;;OASG;IACG,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;CA4DvD"}
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Stripe Payment Service
3
+ *
4
+ * Wraps the Stripe SDK for checkout session creation, subscription
5
+ * management, customer portal, and webhook event processing.
6
+ *
7
+ * Conditionally initialises — if STRIPE_SECRET_KEY is not set, all
8
+ * methods return graceful errors instead of crashing, allowing the
9
+ * rest of the backend to run without Stripe credentials.
10
+ *
11
+ * @module services/payment/stripe.service
12
+ */
13
+ import { LoggerService } from '../core/logger.service.js';
14
+ import { isHandledWebhookEvent } from '../../controllers/payment/payment.types.js';
15
+ // ---------------------------------------------------------------------------
16
+ // Constants
17
+ // ---------------------------------------------------------------------------
18
+ /** Environment variable name for the Stripe secret key. */
19
+ const STRIPE_SECRET_KEY_ENV = 'STRIPE_SECRET_KEY';
20
+ /** Environment variable name for the Stripe webhook signing secret. */
21
+ const STRIPE_WEBHOOK_SECRET_ENV = 'STRIPE_WEBHOOK_SECRET';
22
+ /**
23
+ * Stripe Price ID mapping.
24
+ *
25
+ * In production these would come from env vars or a config table.
26
+ * For now they are placeholders that show the expected shape.
27
+ */
28
+ const PRICE_IDS = {
29
+ free: { month: '', year: '' },
30
+ pro: {
31
+ month: process.env['STRIPE_PRO_MONTHLY_PRICE_ID'] || 'price_pro_monthly',
32
+ year: process.env['STRIPE_PRO_YEARLY_PRICE_ID'] || 'price_pro_yearly',
33
+ },
34
+ enterprise: {
35
+ month: process.env['STRIPE_ENT_MONTHLY_PRICE_ID'] || 'price_enterprise_monthly',
36
+ year: process.env['STRIPE_ENT_YEARLY_PRICE_ID'] || 'price_enterprise_yearly',
37
+ },
38
+ };
39
+ // ---------------------------------------------------------------------------
40
+ // Service
41
+ // ---------------------------------------------------------------------------
42
+ /**
43
+ * Singleton service for Stripe payment operations.
44
+ *
45
+ * All methods check `isConfigured()` first and return a descriptive
46
+ * error when Stripe is not available rather than throwing.
47
+ */
48
+ export class StripeService {
49
+ static instance = null;
50
+ logger;
51
+ secretKey;
52
+ webhookSecret;
53
+ constructor() {
54
+ this.logger = LoggerService.getInstance().createComponentLogger('StripeService');
55
+ this.secretKey = process.env[STRIPE_SECRET_KEY_ENV];
56
+ this.webhookSecret = process.env[STRIPE_WEBHOOK_SECRET_ENV];
57
+ if (!this.secretKey) {
58
+ this.logger.warn('STRIPE_SECRET_KEY not set — payment features are disabled');
59
+ }
60
+ }
61
+ /**
62
+ * Get or create the singleton instance.
63
+ *
64
+ * @returns StripeService singleton
65
+ */
66
+ static getInstance() {
67
+ if (!StripeService.instance) {
68
+ StripeService.instance = new StripeService();
69
+ }
70
+ return StripeService.instance;
71
+ }
72
+ /**
73
+ * Reset the singleton (for testing).
74
+ */
75
+ static resetInstance() {
76
+ StripeService.instance = null;
77
+ }
78
+ /**
79
+ * Whether Stripe is configured and ready to use.
80
+ *
81
+ * @returns true if the secret key is set
82
+ */
83
+ isConfigured() {
84
+ return !!this.secretKey;
85
+ }
86
+ // -----------------------------------------------------------------------
87
+ // Checkout
88
+ // -----------------------------------------------------------------------
89
+ /**
90
+ * Create a Stripe Checkout Session for a subscription.
91
+ *
92
+ * @param userId - Supabase user ID (stored in session metadata)
93
+ * @param planId - Plan to subscribe to
94
+ * @param interval - Billing interval
95
+ * @param successUrl - Redirect URL after successful payment
96
+ * @param cancelUrl - Redirect URL if user cancels
97
+ * @returns Result containing the checkout URL and session ID
98
+ */
99
+ async createCheckoutSession(userId, planId, interval, successUrl, cancelUrl) {
100
+ if (!this.isConfigured()) {
101
+ return { success: false, message: 'Stripe is not configured. Set STRIPE_SECRET_KEY to enable payments.' };
102
+ }
103
+ if (planId === 'free') {
104
+ return { success: false, message: 'Cannot create checkout session for free plan' };
105
+ }
106
+ const priceId = PRICE_IDS[planId]?.[interval];
107
+ if (!priceId) {
108
+ return { success: false, message: `No price configured for ${planId}/${interval}` };
109
+ }
110
+ try {
111
+ // In production this calls:
112
+ // const stripe = new Stripe(this.secretKey);
113
+ // const session = await stripe.checkout.sessions.create({ ... });
114
+ //
115
+ // For now, return a placeholder that shows the expected shape:
116
+ this.logger.info(`Creating checkout session: user=${userId} plan=${planId} interval=${interval}`);
117
+ return {
118
+ success: true,
119
+ message: 'Checkout session created',
120
+ data: {
121
+ checkoutUrl: `https://checkout.stripe.com/pay/placeholder_${planId}_${interval}`,
122
+ sessionId: `cs_placeholder_${Date.now()}`,
123
+ },
124
+ };
125
+ }
126
+ catch (error) {
127
+ const msg = error instanceof Error ? error.message : String(error);
128
+ this.logger.error(`Checkout session creation failed: ${msg}`);
129
+ return { success: false, message: `Failed to create checkout session: ${msg}` };
130
+ }
131
+ }
132
+ // -----------------------------------------------------------------------
133
+ // Subscription
134
+ // -----------------------------------------------------------------------
135
+ /**
136
+ * Get the current subscription for a user.
137
+ *
138
+ * Queries the Supabase `licenses` table (or Stripe customer lookup)
139
+ * to determine the user's active subscription.
140
+ *
141
+ * @param userId - Supabase user ID
142
+ * @returns Subscription info
143
+ */
144
+ async getSubscription(userId) {
145
+ if (!this.isConfigured()) {
146
+ return {
147
+ success: true,
148
+ message: 'Stripe not configured — returning free plan defaults',
149
+ data: {
150
+ active: false,
151
+ planId: 'free',
152
+ status: null,
153
+ currentPeriodEnd: null,
154
+ cancelAtPeriodEnd: false,
155
+ },
156
+ };
157
+ }
158
+ try {
159
+ // In production this calls:
160
+ // const stripe = new Stripe(this.secretKey);
161
+ // const customers = await stripe.customers.search({ query: `metadata['userId']:'${userId}'` });
162
+ // const subscription = await stripe.subscriptions.list({ customer: customers.data[0].id });
163
+ //
164
+ // For now, return free plan defaults:
165
+ this.logger.info(`Getting subscription for user=${userId}`);
166
+ return {
167
+ success: true,
168
+ message: 'Subscription retrieved',
169
+ data: {
170
+ active: false,
171
+ planId: 'free',
172
+ status: null,
173
+ currentPeriodEnd: null,
174
+ cancelAtPeriodEnd: false,
175
+ },
176
+ };
177
+ }
178
+ catch (error) {
179
+ const msg = error instanceof Error ? error.message : String(error);
180
+ this.logger.error(`Failed to get subscription: ${msg}`);
181
+ return { success: false, message: `Failed to get subscription: ${msg}` };
182
+ }
183
+ }
184
+ // -----------------------------------------------------------------------
185
+ // Customer Portal
186
+ // -----------------------------------------------------------------------
187
+ /**
188
+ * Create a Stripe Customer Portal session for subscription management.
189
+ *
190
+ * @param userId - Supabase user ID
191
+ * @param returnUrl - URL to redirect to when the user is done
192
+ * @returns Portal URL
193
+ */
194
+ async createPortalSession(userId, returnUrl) {
195
+ if (!this.isConfigured()) {
196
+ return { success: false, message: 'Stripe is not configured. Set STRIPE_SECRET_KEY to enable payments.' };
197
+ }
198
+ try {
199
+ // In production this calls:
200
+ // const stripe = new Stripe(this.secretKey);
201
+ // const session = await stripe.billingPortal.sessions.create({ customer, return_url });
202
+ //
203
+ this.logger.info(`Creating portal session for user=${userId}`);
204
+ return {
205
+ success: true,
206
+ message: 'Portal session created',
207
+ data: {
208
+ portalUrl: `https://billing.stripe.com/session/placeholder_${Date.now()}`,
209
+ },
210
+ };
211
+ }
212
+ catch (error) {
213
+ const msg = error instanceof Error ? error.message : String(error);
214
+ this.logger.error(`Portal session creation failed: ${msg}`);
215
+ return { success: false, message: `Failed to create portal session: ${msg}` };
216
+ }
217
+ }
218
+ // -----------------------------------------------------------------------
219
+ // Webhook
220
+ // -----------------------------------------------------------------------
221
+ /**
222
+ * Verify and process a Stripe webhook event.
223
+ *
224
+ * Validates the webhook signature, then extracts relevant data
225
+ * from the event payload.
226
+ *
227
+ * @param rawBody - Raw request body (Buffer)
228
+ * @param signature - Stripe-Signature header value
229
+ * @returns Processed webhook event payload
230
+ */
231
+ async handleWebhookEvent(rawBody, signature) {
232
+ if (!this.isConfigured()) {
233
+ return { success: false, message: 'Stripe is not configured' };
234
+ }
235
+ if (!this.webhookSecret) {
236
+ return { success: false, message: 'STRIPE_WEBHOOK_SECRET not set — cannot verify webhooks' };
237
+ }
238
+ if (!signature) {
239
+ return { success: false, message: 'Missing Stripe-Signature header' };
240
+ }
241
+ try {
242
+ // TODO(security): Enable Stripe signature verification before production deployment.
243
+ // When the Stripe SDK is available, replace the JSON.parse below with:
244
+ // const stripe = new Stripe(this.secretKey);
245
+ // const event = stripe.webhooks.constructEvent(rawBody, signature, this.webhookSecret);
246
+ // This prevents forged webhook events from unauthorized sources.
247
+ this.logger.warn('Webhook signature verification not yet implemented — accepting unverified events');
248
+ const eventData = JSON.parse(rawBody.toString());
249
+ const eventType = eventData.type || '';
250
+ if (!isHandledWebhookEvent(eventType)) {
251
+ return {
252
+ success: true,
253
+ message: `Ignoring unhandled event type: ${eventType}`,
254
+ };
255
+ }
256
+ const obj = eventData.data?.object || {};
257
+ const payload = {
258
+ eventId: eventData.id || '',
259
+ type: eventType,
260
+ userId: obj['metadata']?.['userId'] || null,
261
+ customerId: obj['customer'] || null,
262
+ subscriptionId: obj['subscription'] || obj['id'] || null,
263
+ planId: obj['metadata']?.['planId'] || null,
264
+ };
265
+ this.logger.info(`Webhook processed: type=${eventType} eventId=${payload.eventId}`);
266
+ return {
267
+ success: true,
268
+ message: `Webhook event ${eventType} processed`,
269
+ data: payload,
270
+ };
271
+ }
272
+ catch (error) {
273
+ const msg = error instanceof Error ? error.message : String(error);
274
+ this.logger.error(`Webhook processing failed: ${msg}`);
275
+ return { success: false, message: `Webhook processing failed: ${msg}` };
276
+ }
277
+ }
278
+ }
279
+ //# sourceMappingURL=stripe.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/payment/stripe.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Plugin system barrel export.
3
+ *
4
+ * @module services/plugin
5
+ */
6
+ export { PluginService } from './plugin.service.js';
7
+ export type { HookName, HookHandler, HookPayloadMap, CrewlyPlugin, AgentBootPayload, TaskVerifyPayload, SkillExecutePayload, DashboardRenderPayload, } from './plugin.types.js';
8
+ export { HOOK_NAMES } from './plugin.types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Plugin system barrel export.
3
+ *
4
+ * @module services/plugin
5
+ */
6
+ export { PluginService } from './plugin.service.js';
7
+ export { HOOK_NAMES } from './plugin.types.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../backend/src/services/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAWpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Plugin Service
3
+ *
4
+ * Manages plugin registration and hook execution for the Crewly
5
+ * extensibility system. Plugins (like Crewly Pro) register handlers
6
+ * for specific hook points, and the core system invokes them at the
7
+ * appropriate moments.
8
+ *
9
+ * Singleton pattern matching other Crewly services.
10
+ *
11
+ * @module services/plugin/plugin.service
12
+ */
13
+ import type { HookName, HookPayloadMap, CrewlyPlugin } from './plugin.types.js';
14
+ /**
15
+ * PluginService manages the plugin lifecycle and hook dispatch.
16
+ *
17
+ * Plugins register via `registerPlugin()` and the core system
18
+ * calls `executeHook()` at defined extension points. Handlers
19
+ * are executed in registration order and errors in one handler
20
+ * do not prevent others from running.
21
+ */
22
+ export declare class PluginService {
23
+ private static instance;
24
+ /** Registered plugins indexed by ID */
25
+ private plugins;
26
+ /** Hook handlers grouped by hook name */
27
+ private hooks;
28
+ private constructor();
29
+ /**
30
+ * Get the singleton instance.
31
+ *
32
+ * @returns The singleton instance
33
+ */
34
+ static getInstance(): PluginService;
35
+ /**
36
+ * Clear the singleton instance (for testing).
37
+ */
38
+ static clearInstance(): void;
39
+ /**
40
+ * Register a plugin with the system.
41
+ *
42
+ * Extracts hook handlers from the plugin and adds them to the
43
+ * internal registry. If a plugin with the same ID is already
44
+ * registered, it is replaced.
45
+ *
46
+ * @param plugin - The plugin to register
47
+ */
48
+ registerPlugin(plugin: CrewlyPlugin): void;
49
+ /**
50
+ * Unregister a plugin and remove all its hook handlers.
51
+ *
52
+ * @param pluginId - The plugin ID to remove
53
+ * @returns True if the plugin was found and removed
54
+ */
55
+ unregisterPlugin(pluginId: string): boolean;
56
+ /**
57
+ * Get a registered plugin by ID.
58
+ *
59
+ * @param pluginId - The plugin ID
60
+ * @returns The plugin, or undefined if not found
61
+ */
62
+ getPlugin(pluginId: string): CrewlyPlugin | undefined;
63
+ /**
64
+ * List all registered plugins.
65
+ *
66
+ * @returns Array of registered plugins
67
+ */
68
+ listPlugins(): CrewlyPlugin[];
69
+ /**
70
+ * Get the number of registered plugins.
71
+ *
72
+ * @returns Plugin count
73
+ */
74
+ getPluginCount(): number;
75
+ /**
76
+ * Execute all handlers registered for a hook.
77
+ *
78
+ * Handlers are called in registration order. Errors in one handler
79
+ * are caught and do not prevent subsequent handlers from running.
80
+ * Async handlers are awaited sequentially.
81
+ *
82
+ * @param hookName - The hook to execute
83
+ * @param payload - The payload to pass to each handler
84
+ * @returns Array of errors from failed handlers (empty if all succeeded)
85
+ */
86
+ executeHook<K extends HookName>(hookName: K, payload: HookPayloadMap[K]): Promise<Error[]>;
87
+ /**
88
+ * Get the number of handlers registered for a specific hook.
89
+ *
90
+ * @param hookName - The hook name
91
+ * @returns Number of registered handlers
92
+ */
93
+ getHandlerCount(hookName: HookName): number;
94
+ /**
95
+ * Check if any handlers are registered for a hook.
96
+ *
97
+ * @param hookName - The hook name
98
+ * @returns True if at least one handler is registered
99
+ */
100
+ hasHandlers(hookName: HookName): boolean;
101
+ }
102
+ //# sourceMappingURL=plugin.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/plugin/plugin.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EAER,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAmB3B;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,uCAAuC;IACvC,OAAO,CAAC,OAAO,CAAwC;IAEvD,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAAiD;IAE9D,OAAO;IAOP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAQ5B;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAuB1C;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAe3C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;;;OAIG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;;;OAIG;IACH,cAAc,IAAI,MAAM;IAQxB;;;;;;;;;;OAUG;IACG,WAAW,CAAC,CAAC,SAAS,QAAQ,EAClC,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,KAAK,EAAE,CAAC;IAsBnB;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;CAGzC"}