crewly 1.2.3 → 1.2.4

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 (610) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/config/constants.ts +44 -1
  4. package/config/index.ts +4 -0
  5. package/config/roles/orchestrator/prompt.md +30 -2
  6. package/config/roles/team-leader/prompt.md +169 -0
  7. package/config/roles/team-leader/role.json +13 -0
  8. package/config/roles/team-leader/tl-addon.md +142 -0
  9. package/config/runtime_scripts/runtime-config.json +7 -0
  10. package/config/skills/_common/lib.sh +37 -0
  11. package/config/skills/agent/computer-use/execute.sh +228 -0
  12. package/config/skills/agent/computer-use/instructions.md +103 -0
  13. package/config/skills/agent/computer-use/lib/accessibility.sh +292 -0
  14. package/config/skills/agent/computer-use/lib/applescript.sh +117 -0
  15. package/config/skills/agent/computer-use/lib/discover.sh +122 -0
  16. package/config/skills/agent/computer-use/lib/playwright.sh +153 -0
  17. package/config/skills/agent/computer-use/lib/screenshot.sh +61 -0
  18. package/config/skills/agent/computer-use/skill.json +29 -0
  19. package/config/skills/agent/core/accept-task/execute.sh +7 -1
  20. package/config/skills/agent/core/complete-task/execute.sh +38 -1
  21. package/config/skills/agent/core/report-status/execute.sh +51 -2
  22. package/config/skills/agent/desktop-app-control/execute.sh +561 -0
  23. package/config/skills/agent/desktop-app-control/instructions.md +102 -0
  24. package/config/skills/agent/desktop-app-control/skill.json +33 -0
  25. package/config/skills/orchestrator/broadcast-to-org/execute.sh +88 -0
  26. package/config/skills/orchestrator/broadcast-to-org/instructions.md +51 -0
  27. package/config/skills/orchestrator/broadcast-to-org/skill.json +20 -0
  28. package/config/skills/orchestrator/delegate-task/execute.sh +75 -10
  29. package/config/skills/orchestrator/delegate-task/instructions.md +11 -1
  30. package/config/skills/orchestrator/handle-agent-failure/execute.sh +45 -0
  31. package/config/skills/orchestrator/handle-agent-failure/instructions.md +29 -0
  32. package/config/skills/orchestrator/handle-agent-failure/skill.json +20 -0
  33. package/config/skills/orchestrator/restart-crewly/instructions.md +9 -2
  34. package/config/skills/team-leader/_common/lib.sh +4 -0
  35. package/config/skills/team-leader/aggregate-results/execute.sh +168 -0
  36. package/config/skills/team-leader/aggregate-results/instructions.md +89 -0
  37. package/config/skills/team-leader/aggregate-results/skill.json +20 -0
  38. package/config/skills/team-leader/decompose-goal/execute.sh +86 -0
  39. package/config/skills/team-leader/decompose-goal/instructions.md +84 -0
  40. package/config/skills/team-leader/decompose-goal/skill.json +20 -0
  41. package/config/skills/team-leader/delegate-task/execute.sh +142 -0
  42. package/config/skills/team-leader/delegate-task/instructions.md +55 -0
  43. package/config/skills/team-leader/delegate-task/skill.json +20 -0
  44. package/config/skills/team-leader/handle-failure/execute.sh +119 -0
  45. package/config/skills/team-leader/handle-failure/instructions.md +93 -0
  46. package/config/skills/team-leader/handle-failure/skill.json +20 -0
  47. package/config/skills/team-leader/schedule-check/execute.sh +65 -0
  48. package/config/skills/team-leader/schedule-check/execute.test.sh +247 -0
  49. package/config/skills/team-leader/schedule-check/instructions.md +49 -0
  50. package/config/skills/team-leader/schedule-check/skill.json +20 -0
  51. package/config/skills/team-leader/start-agent/execute.sh +39 -0
  52. package/config/skills/team-leader/start-agent/instructions.md +48 -0
  53. package/config/skills/team-leader/start-agent/skill.json +20 -0
  54. package/config/skills/team-leader/stop-agent/execute.sh +39 -0
  55. package/config/skills/team-leader/stop-agent/instructions.md +49 -0
  56. package/config/skills/team-leader/stop-agent/skill.json +20 -0
  57. package/config/skills/team-leader/verify-output/execute.sh +296 -0
  58. package/config/skills/team-leader/verify-output/instructions.md +122 -0
  59. package/config/skills/team-leader/verify-output/skill.json +20 -0
  60. package/config/templates/core-team/demo-script.md +41 -0
  61. package/config/templates/core-team/goals.md +20 -0
  62. package/config/templates/core-team/team.json +22 -0
  63. package/config/templates/dev-fullstack/template.json +115 -0
  64. package/config/templates/education-smb/README.md +27 -0
  65. package/config/templates/education-smb/goals.md +16 -0
  66. package/config/templates/education-smb/knowledge/docs/content-standards.md +24 -0
  67. package/config/templates/education-smb/knowledge/docs/education-industry-context.md +13 -0
  68. package/config/templates/education-smb/knowledge/index.json +24 -0
  69. package/config/templates/education-smb/learned-patterns.json +16 -0
  70. package/config/templates/education-smb/quality-gates.yaml +66 -0
  71. package/config/templates/education-smb/roles/analytics-specialist.md +6 -0
  72. package/config/templates/education-smb/roles/content-creator.md +6 -0
  73. package/config/templates/education-smb/roles/curriculum-designer.md +6 -0
  74. package/config/templates/education-smb/roles/engagement-manager.md +6 -0
  75. package/config/templates/education-smb/team.json +40 -0
  76. package/config/templates/education-smb/template.json +26 -0
  77. package/config/templates/education-smb/workflows/course-content-generation.yaml +44 -0
  78. package/config/templates/education-smb/workflows/reporting.yaml +31 -0
  79. package/config/templates/education-smb/workflows/student-communication.yaml +44 -0
  80. package/config/templates/education-smb/workflows.yaml +40 -0
  81. package/config/templates/insurance-smb/README.md +28 -0
  82. package/config/templates/insurance-smb/goals.md +21 -0
  83. package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +28 -0
  84. package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +23 -0
  85. package/config/templates/insurance-smb/knowledge/index.json +24 -0
  86. package/config/templates/insurance-smb/learned-patterns.json +16 -0
  87. package/config/templates/insurance-smb/quality-gates.yaml +54 -0
  88. package/config/templates/insurance-smb/roles/claims-processor.md +6 -0
  89. package/config/templates/insurance-smb/roles/client-manager.md +6 -0
  90. package/config/templates/insurance-smb/roles/compliance-officer.md +6 -0
  91. package/config/templates/insurance-smb/roles/marketing-specialist.md +6 -0
  92. package/config/templates/insurance-smb/roles/policy-analyst.md +6 -0
  93. package/config/templates/insurance-smb/team.json +48 -0
  94. package/config/templates/insurance-smb/template.json +26 -0
  95. package/config/templates/insurance-smb/workflows/claims-processing.yaml +48 -0
  96. package/config/templates/insurance-smb/workflows.yaml +43 -0
  97. package/config/templates/research-analysis/template.json +88 -0
  98. package/config/templates/social-media-ops/template.json +85 -0
  99. package/config/templates/video-production/template.json +123 -0
  100. package/dist/backend/backend/src/constants.d.ts +303 -15
  101. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  102. package/dist/backend/backend/src/constants.js +296 -15
  103. package/dist/backend/backend/src/constants.js.map +1 -1
  104. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  105. package/dist/backend/backend/src/controllers/chat/chat.controller.js +69 -48
  106. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  107. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +81 -0
  108. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +1 -0
  109. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +234 -0
  110. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +1 -0
  111. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +25 -0
  112. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +1 -0
  113. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +38 -0
  114. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +1 -0
  115. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +69 -0
  116. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +1 -0
  117. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +165 -0
  118. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +1 -0
  119. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +23 -0
  120. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +1 -0
  121. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +32 -0
  122. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +1 -0
  123. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +52 -0
  124. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -0
  125. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +122 -0
  126. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -0
  127. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +21 -0
  128. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -0
  129. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +32 -0
  130. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -0
  131. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +42 -0
  132. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +1 -0
  133. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +138 -0
  134. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +1 -0
  135. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +23 -0
  136. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +1 -0
  137. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +34 -0
  138. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +1 -0
  139. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +43 -0
  140. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +1 -0
  141. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +9 -0
  142. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +1 -0
  143. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +7 -0
  144. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +1 -0
  145. package/dist/backend/backend/src/controllers/cloud/files/index.js +7 -0
  146. package/dist/backend/backend/src/controllers/cloud/files/index.js.map +1 -0
  147. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +47 -0
  148. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +1 -0
  149. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +131 -0
  150. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +1 -0
  151. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +23 -0
  152. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +1 -0
  153. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +30 -0
  154. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +1 -0
  155. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +81 -0
  156. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +1 -0
  157. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +85 -0
  158. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +1 -0
  159. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +7 -0
  160. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +1 -0
  161. package/dist/backend/backend/src/controllers/cloud/h5/index.js +7 -0
  162. package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +1 -0
  163. package/dist/backend/backend/src/controllers/cloud/index.d.ts +14 -0
  164. package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -0
  165. package/dist/backend/backend/src/controllers/cloud/index.js +14 -0
  166. package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -0
  167. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +7 -0
  168. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +1 -0
  169. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +7 -0
  170. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +1 -0
  171. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +45 -0
  172. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +1 -0
  173. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +155 -0
  174. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +1 -0
  175. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +25 -0
  176. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +1 -0
  177. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +32 -0
  178. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +1 -0
  179. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +101 -0
  180. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +1 -0
  181. package/dist/backend/backend/src/controllers/cloud/relay.controller.js +343 -0
  182. package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +1 -0
  183. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +29 -0
  184. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +1 -0
  185. package/dist/backend/backend/src/controllers/cloud/relay.routes.js +44 -0
  186. package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +1 -0
  187. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +49 -0
  188. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +1 -0
  189. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +152 -0
  190. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +1 -0
  191. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +24 -0
  192. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +1 -0
  193. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +34 -0
  194. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +1 -0
  195. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +90 -0
  196. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +1 -0
  197. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +48 -0
  198. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +1 -0
  199. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +7 -0
  200. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +1 -0
  201. package/dist/backend/backend/src/controllers/cloud/tasks/index.js +7 -0
  202. package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +1 -0
  203. package/dist/backend/backend/src/controllers/marketplace/index.d.ts +2 -0
  204. package/dist/backend/backend/src/controllers/marketplace/index.d.ts.map +1 -1
  205. package/dist/backend/backend/src/controllers/marketplace/index.js +3 -0
  206. package/dist/backend/backend/src/controllers/marketplace/index.js.map +1 -1
  207. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +12 -12
  208. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  209. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +1 -18
  210. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  211. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  212. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +3 -0
  213. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  214. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.d.ts +111 -0
  215. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.d.ts.map +1 -0
  216. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.js +220 -0
  217. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.js.map +1 -0
  218. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +33 -0
  219. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts.map +1 -0
  220. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +50 -0
  221. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -0
  222. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  223. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +4 -1
  224. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  225. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  226. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +18 -2
  227. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  228. package/dist/backend/backend/src/controllers/payment/index.d.ts +7 -0
  229. package/dist/backend/backend/src/controllers/payment/index.d.ts.map +1 -0
  230. package/dist/backend/backend/src/controllers/payment/index.js +7 -0
  231. package/dist/backend/backend/src/controllers/payment/index.js.map +1 -0
  232. package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts +57 -0
  233. package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts.map +1 -0
  234. package/dist/backend/backend/src/controllers/payment/payment.controller.js +136 -0
  235. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -0
  236. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +27 -0
  237. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -0
  238. package/dist/backend/backend/src/controllers/payment/payment.routes.js +38 -0
  239. package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -0
  240. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +109 -0
  241. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -0
  242. package/dist/backend/backend/src/controllers/payment/payment.types.js +54 -0
  243. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -0
  244. package/dist/backend/backend/src/controllers/request-types.d.ts +34 -5
  245. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  246. package/dist/backend/backend/src/controllers/session/session.controller.d.ts +14 -0
  247. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  248. package/dist/backend/backend/src/controllers/session/session.controller.js +48 -0
  249. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  250. package/dist/backend/backend/src/controllers/session/session.routes.d.ts.map +1 -1
  251. package/dist/backend/backend/src/controllers/session/session.routes.js +3 -1
  252. package/dist/backend/backend/src/controllers/session/session.routes.js.map +1 -1
  253. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
  254. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +4 -3
  255. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
  256. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  257. package/dist/backend/backend/src/controllers/system/system.controller.js +13 -15
  258. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  259. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
  260. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
  261. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  262. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +40 -4
  263. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  264. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  265. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  266. package/dist/backend/backend/src/controllers/team/team.controller.js +259 -13
  267. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  268. package/dist/backend/backend/src/controllers/template/index.d.ts +8 -0
  269. package/dist/backend/backend/src/controllers/template/index.d.ts.map +1 -0
  270. package/dist/backend/backend/src/controllers/template/index.js +8 -0
  271. package/dist/backend/backend/src/controllers/template/index.js.map +1 -0
  272. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +63 -0
  273. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -0
  274. package/dist/backend/backend/src/controllers/template/template.controller.js +112 -0
  275. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -0
  276. package/dist/backend/backend/src/controllers/template/template.routes.d.ts +24 -0
  277. package/dist/backend/backend/src/controllers/template/template.routes.d.ts.map +1 -0
  278. package/dist/backend/backend/src/controllers/template/template.routes.js +33 -0
  279. package/dist/backend/backend/src/controllers/template/template.routes.js.map +1 -0
  280. package/dist/backend/backend/src/index.d.ts.map +1 -1
  281. package/dist/backend/backend/src/index.js +105 -13
  282. package/dist/backend/backend/src/index.js.map +1 -1
  283. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js +3 -3
  284. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js.map +1 -1
  285. package/dist/backend/backend/src/models/Team.d.ts +5 -0
  286. package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
  287. package/dist/backend/backend/src/models/Team.js +24 -0
  288. package/dist/backend/backend/src/models/Team.js.map +1 -1
  289. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  290. package/dist/backend/backend/src/routes/api.routes.js +21 -0
  291. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  292. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +1 -6
  293. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  294. package/dist/backend/backend/src/services/agent/agent-registration.service.js +211 -287
  295. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  296. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +7 -1
  297. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  298. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +11 -2
  299. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  300. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +1 -0
  301. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  302. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +30 -43
  303. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  304. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
  305. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
  306. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +496 -0
  307. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
  308. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +70 -0
  309. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +1 -0
  310. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +131 -0
  311. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +1 -0
  312. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +21 -1
  313. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  314. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +32 -1
  315. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  316. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +77 -3
  317. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  318. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +281 -30
  319. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  320. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  321. package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
  322. package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  323. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +49 -2
  324. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  325. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +124 -2
  326. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  327. package/dist/backend/backend/src/services/chat/chat.service.d.ts +10 -2
  328. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  329. package/dist/backend/backend/src/services/chat/chat.service.js +49 -8
  330. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  331. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +174 -0
  332. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +1 -0
  333. package/dist/backend/backend/src/services/cloud/auth/auth.service.js +402 -0
  334. package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +1 -0
  335. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +110 -0
  336. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +1 -0
  337. package/dist/backend/backend/src/services/cloud/auth/auth.types.js +54 -0
  338. package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +1 -0
  339. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts +36 -0
  340. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts.map +1 -0
  341. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js +31 -0
  342. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js.map +1 -0
  343. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +47 -0
  344. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +1 -0
  345. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +116 -0
  346. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +1 -0
  347. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +61 -0
  348. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +1 -0
  349. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +203 -0
  350. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +1 -0
  351. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts +46 -0
  352. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts.map +1 -0
  353. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js +95 -0
  354. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js.map +1 -0
  355. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +136 -0
  356. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +1 -0
  357. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +204 -0
  358. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +1 -0
  359. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +179 -0
  360. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -0
  361. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +237 -0
  362. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -0
  363. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +97 -0
  364. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +1 -0
  365. package/dist/backend/backend/src/services/cloud/cloud-file.service.js +184 -0
  366. package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +1 -0
  367. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +114 -0
  368. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +1 -0
  369. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +196 -0
  370. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +1 -0
  371. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +118 -0
  372. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +1 -0
  373. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +322 -0
  374. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +1 -0
  375. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +115 -0
  376. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +1 -0
  377. package/dist/backend/backend/src/services/cloud/cloud-task.service.js +265 -0
  378. package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +1 -0
  379. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +175 -0
  380. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +1 -0
  381. package/dist/backend/backend/src/services/cloud/relay-client.service.js +392 -0
  382. package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +1 -0
  383. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +87 -0
  384. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +1 -0
  385. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +140 -0
  386. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +1 -0
  387. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +183 -0
  388. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +1 -0
  389. package/dist/backend/backend/src/services/cloud/relay-server.service.js +523 -0
  390. package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +1 -0
  391. package/dist/backend/backend/src/services/cloud/relay.types.d.ts +170 -0
  392. package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +1 -0
  393. package/dist/backend/backend/src/services/cloud/relay.types.js +69 -0
  394. package/dist/backend/backend/src/services/cloud/relay.types.js.map +1 -0
  395. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts +9 -1
  396. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -1
  397. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js +18 -4
  398. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -1
  399. package/dist/backend/backend/src/services/core/env.config.d.ts +147 -0
  400. package/dist/backend/backend/src/services/core/env.config.d.ts.map +1 -0
  401. package/dist/backend/backend/src/services/core/env.config.js +226 -0
  402. package/dist/backend/backend/src/services/core/env.config.js.map +1 -0
  403. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  404. package/dist/backend/backend/src/services/core/storage.service.js +5 -0
  405. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  406. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +20 -0
  407. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  408. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +35 -0
  409. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  410. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.d.ts +160 -0
  411. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.d.ts.map +1 -0
  412. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.js +261 -0
  413. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.js.map +1 -0
  414. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.d.ts +161 -0
  415. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.d.ts.map +1 -0
  416. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.js +276 -0
  417. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.js.map +1 -0
  418. package/dist/backend/backend/src/services/marketplace/index.d.ts +1 -0
  419. package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -1
  420. package/dist/backend/backend/src/services/marketplace/index.js +2 -0
  421. package/dist/backend/backend/src/services/marketplace/index.js.map +1 -1
  422. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +2 -2
  423. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.d.ts +149 -0
  424. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.d.ts.map +1 -0
  425. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.js +500 -0
  426. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.js.map +1 -0
  427. package/dist/backend/backend/src/services/mcp-server.js +1 -1
  428. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  429. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +90 -0
  430. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -0
  431. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +233 -0
  432. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -0
  433. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +1 -1
  434. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  435. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +1 -1
  436. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  437. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  438. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +3 -3
  439. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  440. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  441. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +29 -5
  442. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  443. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +69 -0
  444. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +1 -0
  445. package/dist/backend/backend/src/services/payment/magic-moment.service.js +158 -0
  446. package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +1 -0
  447. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +95 -0
  448. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +1 -0
  449. package/dist/backend/backend/src/services/payment/magic-moment.types.js +91 -0
  450. package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +1 -0
  451. package/dist/backend/backend/src/services/payment/stripe.service.d.ts +122 -0
  452. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -0
  453. package/dist/backend/backend/src/services/payment/stripe.service.js +403 -0
  454. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -0
  455. package/dist/backend/backend/src/services/plugin/index.d.ts +9 -0
  456. package/dist/backend/backend/src/services/plugin/index.d.ts.map +1 -0
  457. package/dist/backend/backend/src/services/plugin/index.js +8 -0
  458. package/dist/backend/backend/src/services/plugin/index.js.map +1 -0
  459. package/dist/backend/backend/src/services/plugin/plugin.service.d.ts +102 -0
  460. package/dist/backend/backend/src/services/plugin/plugin.service.d.ts.map +1 -0
  461. package/dist/backend/backend/src/services/plugin/plugin.service.js +179 -0
  462. package/dist/backend/backend/src/services/plugin/plugin.service.js.map +1 -0
  463. package/dist/backend/backend/src/services/plugin/plugin.types.d.ts +88 -0
  464. package/dist/backend/backend/src/services/plugin/plugin.types.d.ts.map +1 -0
  465. package/dist/backend/backend/src/services/plugin/plugin.types.js +17 -0
  466. package/dist/backend/backend/src/services/plugin/plugin.types.js.map +1 -0
  467. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +17 -0
  468. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  469. package/dist/backend/backend/src/services/project/task-tracking.service.js +63 -0
  470. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  471. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +14 -0
  472. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  473. package/dist/backend/backend/src/services/session/session-command-helper.js +54 -0
  474. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  475. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  476. package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
  477. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  478. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  479. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +15 -5
  480. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  481. package/dist/backend/backend/src/services/template/template.service.d.ts +153 -0
  482. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -0
  483. package/dist/backend/backend/src/services/template/template.service.js +372 -0
  484. package/dist/backend/backend/src/services/template/template.service.js.map +1 -0
  485. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +51 -0
  486. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  487. package/dist/backend/backend/src/services/workflow/scheduler.service.js +118 -2
  488. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  489. package/dist/backend/backend/src/types/chat.types.d.ts +39 -1
  490. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  491. package/dist/backend/backend/src/types/chat.types.js +45 -2
  492. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  493. package/dist/backend/backend/src/types/event-bus.types.d.ts +14 -2
  494. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  495. package/dist/backend/backend/src/types/event-bus.types.js +15 -0
  496. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  497. package/dist/backend/backend/src/types/hierarchy-message.types.d.ts +101 -0
  498. package/dist/backend/backend/src/types/hierarchy-message.types.d.ts.map +1 -0
  499. package/dist/backend/backend/src/types/hierarchy-message.types.js +15 -0
  500. package/dist/backend/backend/src/types/hierarchy-message.types.js.map +1 -0
  501. package/dist/backend/backend/src/types/index.d.ts +54 -4
  502. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  503. package/dist/backend/backend/src/types/index.js.map +1 -1
  504. package/dist/backend/backend/src/types/marketplace.types.d.ts +99 -0
  505. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  506. package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
  507. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  508. package/dist/backend/backend/src/types/settings.types.js +4 -0
  509. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  510. package/dist/backend/backend/src/types/task-tracking.types.d.ts +79 -1
  511. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  512. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  513. package/dist/backend/backend/src/types/team-template.types.d.ts +166 -0
  514. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -0
  515. package/dist/backend/backend/src/types/team-template.types.js +139 -0
  516. package/dist/backend/backend/src/types/team-template.types.js.map +1 -0
  517. package/dist/backend/backend/src/utils/async-handler.d.ts +20 -0
  518. package/dist/backend/backend/src/utils/async-handler.d.ts.map +1 -0
  519. package/dist/backend/backend/src/utils/async-handler.js +29 -0
  520. package/dist/backend/backend/src/utils/async-handler.js.map +1 -0
  521. package/dist/backend/backend/src/utils/defaultPrompts.d.ts +4 -4
  522. package/dist/backend/backend/src/utils/defaultPrompts.d.ts.map +1 -1
  523. package/dist/backend/backend/src/utils/defaultPrompts.js +16 -0
  524. package/dist/backend/backend/src/utils/defaultPrompts.js.map +1 -1
  525. package/dist/backend/backend/src/utils/gemini-trusted-folders.d.ts +43 -0
  526. package/dist/backend/backend/src/utils/gemini-trusted-folders.d.ts.map +1 -0
  527. package/dist/backend/backend/src/utils/gemini-trusted-folders.js +94 -0
  528. package/dist/backend/backend/src/utils/gemini-trusted-folders.js.map +1 -0
  529. package/dist/backend/backend/src/utils/message-serializer.d.ts +74 -0
  530. package/dist/backend/backend/src/utils/message-serializer.d.ts.map +1 -0
  531. package/dist/backend/backend/src/utils/message-serializer.js +380 -0
  532. package/dist/backend/backend/src/utils/message-serializer.js.map +1 -0
  533. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  534. package/dist/backend/backend/src/utils/terminal-string-ops.js +20 -11
  535. package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -1
  536. package/dist/backend/config/constants.d.ts +40 -1
  537. package/dist/backend/config/constants.d.ts.map +1 -1
  538. package/dist/backend/config/constants.js +41 -1
  539. package/dist/backend/config/constants.js.map +1 -1
  540. package/dist/backend/config/index.d.ts +2 -2
  541. package/dist/backend/config/index.d.ts.map +1 -1
  542. package/dist/backend/config/index.js +2 -2
  543. package/dist/backend/config/index.js.map +1 -1
  544. package/dist/cli/backend/src/constants.d.ts +303 -15
  545. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  546. package/dist/cli/backend/src/constants.js +296 -15
  547. package/dist/cli/backend/src/constants.js.map +1 -1
  548. package/dist/cli/backend/src/models/Team.d.ts +5 -0
  549. package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
  550. package/dist/cli/backend/src/models/Team.js +24 -0
  551. package/dist/cli/backend/src/models/Team.js.map +1 -1
  552. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  553. package/dist/cli/backend/src/services/core/storage.service.js +5 -0
  554. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  555. package/dist/cli/backend/src/services/mcp-server.js +1 -1
  556. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  557. package/dist/cli/backend/src/types/chat.types.d.ts +39 -1
  558. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  559. package/dist/cli/backend/src/types/chat.types.js +45 -2
  560. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  561. package/dist/cli/backend/src/types/index.d.ts +54 -4
  562. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  563. package/dist/cli/backend/src/types/index.js.map +1 -1
  564. package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
  565. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  566. package/dist/cli/backend/src/types/settings.types.js +4 -0
  567. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  568. package/dist/cli/backend/src/utils/gemini-trusted-folders.d.ts +43 -0
  569. package/dist/cli/backend/src/utils/gemini-trusted-folders.d.ts.map +1 -0
  570. package/dist/cli/backend/src/utils/gemini-trusted-folders.js +94 -0
  571. package/dist/cli/backend/src/utils/gemini-trusted-folders.js.map +1 -0
  572. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  573. package/dist/cli/backend/src/utils/terminal-string-ops.js +20 -11
  574. package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -1
  575. package/dist/cli/cli/src/commands/onboard.d.ts +2 -1
  576. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  577. package/dist/cli/cli/src/commands/onboard.js +21 -8
  578. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  579. package/dist/cli/cli/src/commands/start.d.ts +1 -0
  580. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  581. package/dist/cli/cli/src/commands/start.js +71 -23
  582. package/dist/cli/cli/src/commands/start.js.map +1 -1
  583. package/dist/cli/cli/src/constants.d.ts +1 -1
  584. package/dist/cli/cli/src/constants.d.ts.map +1 -1
  585. package/dist/cli/cli/src/constants.js +1 -1
  586. package/dist/cli/cli/src/constants.js.map +1 -1
  587. package/dist/cli/cli/src/index.js +1 -0
  588. package/dist/cli/cli/src/index.js.map +1 -1
  589. package/dist/cli/cli/src/utils/project-scaffold.d.ts +109 -0
  590. package/dist/cli/cli/src/utils/project-scaffold.d.ts.map +1 -0
  591. package/dist/cli/cli/src/utils/project-scaffold.js +346 -0
  592. package/dist/cli/cli/src/utils/project-scaffold.js.map +1 -0
  593. package/dist/cli/cli/src/utils/templates.d.ts +7 -2
  594. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
  595. package/dist/cli/cli/src/utils/templates.js +76 -7
  596. package/dist/cli/cli/src/utils/templates.js.map +1 -1
  597. package/dist/cli/config/constants.d.ts +40 -1
  598. package/dist/cli/config/constants.d.ts.map +1 -1
  599. package/dist/cli/config/constants.js +41 -1
  600. package/dist/cli/config/constants.js.map +1 -1
  601. package/dist/cli/config/index.d.ts +2 -2
  602. package/dist/cli/config/index.d.ts.map +1 -1
  603. package/dist/cli/config/index.js +2 -2
  604. package/dist/cli/config/index.js.map +1 -1
  605. package/frontend/dist/assets/index-510ab719.css +33 -0
  606. package/frontend/dist/assets/index-935cd846.js +4961 -0
  607. package/frontend/dist/index.html +2 -2
  608. package/package.json +9 -4
  609. package/frontend/dist/assets/index-a23214ae.js +0 -4919
  610. package/frontend/dist/assets/index-c407fe13.css +0 -33
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Payment REST Controller
3
+ *
4
+ * Handles Stripe payment endpoints: checkout session creation,
5
+ * subscription queries, customer portal sessions, and webhook events.
6
+ *
7
+ * All endpoints except the webhook require Supabase authentication.
8
+ * The webhook endpoint receives raw body for Stripe signature verification.
9
+ *
10
+ * @module controllers/payment/payment.controller
11
+ */
12
+ import { StripeService } from '../../services/payment/stripe.service.js';
13
+ import { isValidPlanId, isValidBillingInterval } from './payment.types.js';
14
+ import { asyncHandler } from '../../utils/async-handler.js';
15
+ // ---------------------------------------------------------------------------
16
+ // Handlers
17
+ // ---------------------------------------------------------------------------
18
+ /**
19
+ * POST /api/payment/checkout
20
+ *
21
+ * Creates a Stripe Checkout Session for a subscription plan.
22
+ * Requires Supabase auth. The authenticated user ID is attached
23
+ * as session metadata for post-checkout correlation.
24
+ *
25
+ * @param req - Request with body: { planId, interval, successUrl, cancelUrl }
26
+ * @param res - Response with { success, data: { checkoutUrl, sessionId } }
27
+ */
28
+ export const handleCreateCheckout = asyncHandler(async (req, res) => {
29
+ const { planId, interval, successUrl, cancelUrl } = req.body;
30
+ if (!planId || !isValidPlanId(planId)) {
31
+ res.status(400).json({ success: false, error: 'planId must be one of: free, solo, team, full' });
32
+ return;
33
+ }
34
+ if (!interval || !isValidBillingInterval(interval)) {
35
+ res.status(400).json({ success: false, error: 'interval must be one of: month, year' });
36
+ return;
37
+ }
38
+ if (!successUrl || !cancelUrl) {
39
+ res.status(400).json({ success: false, error: 'successUrl and cancelUrl are required' });
40
+ return;
41
+ }
42
+ // Validate URLs to prevent open redirects
43
+ for (const url of [successUrl, cancelUrl]) {
44
+ try {
45
+ const parsed = new URL(url);
46
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
47
+ res.status(400).json({ success: false, error: 'URLs must use http or https protocol' });
48
+ return;
49
+ }
50
+ }
51
+ catch {
52
+ res.status(400).json({ success: false, error: 'Invalid URL format' });
53
+ return;
54
+ }
55
+ }
56
+ const userId = req.user.userId;
57
+ const stripe = StripeService.getInstance();
58
+ const result = await stripe.createCheckoutSession(userId, planId, interval, successUrl, cancelUrl);
59
+ if (!result.success) {
60
+ res.status(result.message.includes('not configured') ? 503 : 400).json(result);
61
+ return;
62
+ }
63
+ res.json({ success: true, data: result.data });
64
+ });
65
+ /**
66
+ * POST /api/payment/webhook
67
+ *
68
+ * Receives Stripe webhook events. Does NOT require Supabase auth —
69
+ * authentication is done via Stripe signature verification.
70
+ *
71
+ * Expects raw body (application/json with raw Buffer) and the
72
+ * Stripe-Signature header.
73
+ *
74
+ * @param req - Request with raw body and Stripe-Signature header
75
+ * @param res - Response with 200 on success, 400 on failure
76
+ */
77
+ export const handleWebhook = asyncHandler(async (req, res) => {
78
+ const signature = req.headers['stripe-signature'] || '';
79
+ const rawBody = req.body;
80
+ if (!Buffer.isBuffer(rawBody)) {
81
+ res.status(400).json({ success: false, error: 'Webhook requires raw body' });
82
+ return;
83
+ }
84
+ const stripe = StripeService.getInstance();
85
+ const result = await stripe.handleWebhookEvent(rawBody, signature);
86
+ if (!result.success) {
87
+ res.status(400).json(result);
88
+ return;
89
+ }
90
+ // Always return 200 to Stripe to acknowledge receipt
91
+ res.json({ success: true, received: true });
92
+ });
93
+ /**
94
+ * GET /api/payment/subscription
95
+ *
96
+ * Returns the current subscription status for the authenticated user.
97
+ * Requires Supabase auth.
98
+ *
99
+ * @param req - Authenticated request
100
+ * @param res - Response with { success, data: SubscriptionInfo }
101
+ */
102
+ export const handleGetSubscription = asyncHandler(async (req, res) => {
103
+ const userId = req.user.userId;
104
+ const stripe = StripeService.getInstance();
105
+ const result = await stripe.getSubscription(userId);
106
+ if (!result.success) {
107
+ res.status(503).json(result);
108
+ return;
109
+ }
110
+ res.json({ success: true, data: result.data });
111
+ });
112
+ /**
113
+ * POST /api/payment/portal
114
+ *
115
+ * Creates a Stripe Customer Portal session for subscription management.
116
+ * Requires Supabase auth.
117
+ *
118
+ * @param req - Request with body: { returnUrl }
119
+ * @param res - Response with { success, data: { portalUrl } }
120
+ */
121
+ export const handleCreatePortal = asyncHandler(async (req, res) => {
122
+ const { returnUrl } = req.body;
123
+ if (!returnUrl) {
124
+ res.status(400).json({ success: false, error: 'returnUrl is required' });
125
+ return;
126
+ }
127
+ const userId = req.user.userId;
128
+ const stripe = StripeService.getInstance();
129
+ const result = await stripe.createPortalSession(userId, returnUrl);
130
+ if (!result.success) {
131
+ res.status(result.message.includes('not configured') ? 503 : 400).json(result);
132
+ return;
133
+ }
134
+ res.json({ success: true, data: result.data });
135
+ });
136
+ //# sourceMappingURL=payment.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/payment/payment.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IACrG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAKvD,CAAC;IAEF,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC,CAAC;QACjG,OAAO;IACR,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACxF,OAAO;IACR,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC;QACzF,OAAO;IACR,CAAC;IAED,0CAA0C;IAC1C,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;gBACxF,OAAO;YACR,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACtE,OAAO;QACR,CAAC;IACF,CAAC;IAED,MAAM,MAAM,GAAI,GAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAEnG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,OAAO;IACR,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IAC9F,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAW,IAAI,EAAE,CAAC;IAClE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAc,CAAC;IAEnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAC7E,OAAO;IACR,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO;IACR,CAAC;IAED,qDAAqD;IACrD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IACtG,MAAM,MAAM,GAAI,GAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAEpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO;IACR,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IACnG,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAA8B,CAAC;IAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACzE,OAAO;IACR,CAAC;IAED,MAAM,MAAM,GAAI,GAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,OAAO;IACR,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Payment REST Routes
3
+ *
4
+ * Router configuration for Stripe payment endpoints.
5
+ *
6
+ * All endpoints except the webhook require Supabase authentication.
7
+ * The webhook endpoint uses raw body parsing for Stripe signature
8
+ * verification (configured at the Express app level).
9
+ *
10
+ * @module controllers/payment/payment.routes
11
+ */
12
+ import { Router } from 'express';
13
+ /**
14
+ * Creates the payment router with all Stripe payment endpoints.
15
+ *
16
+ * Authenticated endpoints (require Supabase JWT):
17
+ * - POST /checkout - Create a Stripe Checkout Session
18
+ * - GET /subscription - Get current subscription status
19
+ * - POST /portal - Create a Stripe Customer Portal session
20
+ *
21
+ * Public endpoints (Stripe signature verification):
22
+ * - POST /webhook - Receive Stripe webhook events (raw body)
23
+ *
24
+ * @returns Express router configured with payment routes
25
+ */
26
+ export declare function createPaymentRouter(): Router;
27
+ //# sourceMappingURL=payment.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/payment/payment.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AASjC;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAY5C"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Payment REST Routes
3
+ *
4
+ * Router configuration for Stripe payment endpoints.
5
+ *
6
+ * All endpoints except the webhook require Supabase authentication.
7
+ * The webhook endpoint uses raw body parsing for Stripe signature
8
+ * verification (configured at the Express app level).
9
+ *
10
+ * @module controllers/payment/payment.routes
11
+ */
12
+ import { Router } from 'express';
13
+ import { handleCreateCheckout, handleWebhook, handleGetSubscription, handleCreatePortal, } from './payment.controller.js';
14
+ import { requireSupabaseAuth } from '../../services/cloud/auth/supabase-auth.middleware.js';
15
+ /**
16
+ * Creates the payment router with all Stripe payment endpoints.
17
+ *
18
+ * Authenticated endpoints (require Supabase JWT):
19
+ * - POST /checkout - Create a Stripe Checkout Session
20
+ * - GET /subscription - Get current subscription status
21
+ * - POST /portal - Create a Stripe Customer Portal session
22
+ *
23
+ * Public endpoints (Stripe signature verification):
24
+ * - POST /webhook - Receive Stripe webhook events (raw body)
25
+ *
26
+ * @returns Express router configured with payment routes
27
+ */
28
+ export function createPaymentRouter() {
29
+ const router = Router();
30
+ // Authenticated endpoints (Supabase JWT required)
31
+ router.post('/checkout', requireSupabaseAuth, handleCreateCheckout);
32
+ router.get('/subscription', requireSupabaseAuth, handleGetSubscription);
33
+ router.post('/portal', requireSupabaseAuth, handleCreatePortal);
34
+ // Webhook endpoint (Stripe signature verification, no Supabase auth)
35
+ router.post('/webhook', handleWebhook);
36
+ return router;
37
+ }
38
+ //# sourceMappingURL=payment.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/payment/payment.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACN,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAE5F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB;IAClC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,kDAAkD;IAClD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IAEhE,qEAAqE;IACrE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Payment Type Definitions
3
+ *
4
+ * Types for Stripe-based payment processing including checkout sessions,
5
+ * subscriptions, webhook events, and customer portal sessions.
6
+ *
7
+ * @module controllers/payment/payment.types
8
+ */
9
+ /** Available subscription plan identifiers. */
10
+ export type PlanId = 'free' | 'solo' | 'team' | 'full';
11
+ /** Billing interval for subscriptions. */
12
+ export type BillingInterval = 'month' | 'year';
13
+ /** Subscription status mirroring Stripe's status values. */
14
+ export type SubscriptionStatus = 'active' | 'past_due' | 'canceled' | 'incomplete' | 'trialing' | 'unpaid' | 'paused';
15
+ /** Request body for POST /api/payment/checkout. */
16
+ export interface CreateCheckoutRequest {
17
+ /** Plan to subscribe to */
18
+ planId: PlanId;
19
+ /** Billing interval */
20
+ interval: BillingInterval;
21
+ /** URL to redirect to after successful checkout */
22
+ successUrl: string;
23
+ /** URL to redirect to if user cancels */
24
+ cancelUrl: string;
25
+ }
26
+ /** Response from POST /api/payment/checkout. */
27
+ export interface CreateCheckoutResponse {
28
+ /** Stripe Checkout Session URL to redirect the user to */
29
+ checkoutUrl: string;
30
+ /** Stripe Checkout Session ID */
31
+ sessionId: string;
32
+ }
33
+ /** Subscription details returned by GET /api/payment/subscription. */
34
+ export interface SubscriptionInfo {
35
+ /** Whether the user has an active subscription */
36
+ active: boolean;
37
+ /** Current plan */
38
+ planId: PlanId;
39
+ /** Subscription status */
40
+ status: SubscriptionStatus | null;
41
+ /** Current billing period end (ISO timestamp) */
42
+ currentPeriodEnd: string | null;
43
+ /** Whether the subscription is set to cancel at period end */
44
+ cancelAtPeriodEnd: boolean;
45
+ }
46
+ /** Request body for POST /api/payment/portal. */
47
+ export interface CreatePortalRequest {
48
+ /** URL to redirect to when the user is done managing their subscription */
49
+ returnUrl: string;
50
+ }
51
+ /** Response from POST /api/payment/portal. */
52
+ export interface CreatePortalResponse {
53
+ /** Stripe Customer Portal URL */
54
+ portalUrl: string;
55
+ }
56
+ /** Relevant Stripe webhook event types we handle. */
57
+ export type PaymentWebhookEventType = 'checkout.session.completed' | 'customer.subscription.updated' | 'customer.subscription.deleted' | 'invoice.payment_succeeded' | 'invoice.payment_failed';
58
+ /** Processed webhook event payload (subset of Stripe event). */
59
+ export interface WebhookEventPayload {
60
+ /** Stripe event ID */
61
+ eventId: string;
62
+ /** Event type */
63
+ type: PaymentWebhookEventType;
64
+ /** Supabase user ID extracted from metadata */
65
+ userId: string | null;
66
+ /** Stripe customer ID */
67
+ customerId: string | null;
68
+ /** Stripe subscription ID */
69
+ subscriptionId: string | null;
70
+ /** Plan ID from metadata */
71
+ planId: PlanId | null;
72
+ }
73
+ /** Result wrapper for payment operations. */
74
+ export interface PaymentOperationResult<T = unknown> {
75
+ /** Whether the operation succeeded */
76
+ success: boolean;
77
+ /** Human-readable message */
78
+ message: string;
79
+ /** Result data, if any */
80
+ data?: T;
81
+ }
82
+ /** Valid plan IDs for validation. */
83
+ export declare const VALID_PLAN_IDS: PlanId[];
84
+ /** Valid billing intervals for validation. */
85
+ export declare const VALID_BILLING_INTERVALS: BillingInterval[];
86
+ /** Webhook event types we process. */
87
+ export declare const HANDLED_WEBHOOK_EVENTS: PaymentWebhookEventType[];
88
+ /**
89
+ * Check whether a value is a valid PlanId.
90
+ *
91
+ * @param value - Value to check
92
+ * @returns true if value is a valid PlanId
93
+ */
94
+ export declare function isValidPlanId(value: unknown): value is PlanId;
95
+ /**
96
+ * Check whether a value is a valid BillingInterval.
97
+ *
98
+ * @param value - Value to check
99
+ * @returns true if value is a valid BillingInterval
100
+ */
101
+ export declare function isValidBillingInterval(value: unknown): value is BillingInterval;
102
+ /**
103
+ * Check whether a value is a handled webhook event type.
104
+ *
105
+ * @param value - Value to check
106
+ * @returns true if value is a handled webhook event type
107
+ */
108
+ export declare function isHandledWebhookEvent(value: unknown): value is PaymentWebhookEventType;
109
+ //# sourceMappingURL=payment.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/payment/payment.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Payment Type Definitions
3
+ *
4
+ * Types for Stripe-based payment processing including checkout sessions,
5
+ * subscriptions, webhook events, and customer portal sessions.
6
+ *
7
+ * @module controllers/payment/payment.types
8
+ */
9
+ // ---------------------------------------------------------------------------
10
+ // Constants
11
+ // ---------------------------------------------------------------------------
12
+ /** Valid plan IDs for validation. */
13
+ export const VALID_PLAN_IDS = ['free', 'solo', 'team', 'full'];
14
+ /** Valid billing intervals for validation. */
15
+ export const VALID_BILLING_INTERVALS = ['month', 'year'];
16
+ /** Webhook event types we process. */
17
+ export const HANDLED_WEBHOOK_EVENTS = [
18
+ 'checkout.session.completed',
19
+ 'customer.subscription.updated',
20
+ 'customer.subscription.deleted',
21
+ 'invoice.payment_succeeded',
22
+ 'invoice.payment_failed',
23
+ ];
24
+ // ---------------------------------------------------------------------------
25
+ // Type guards
26
+ // ---------------------------------------------------------------------------
27
+ /**
28
+ * Check whether a value is a valid PlanId.
29
+ *
30
+ * @param value - Value to check
31
+ * @returns true if value is a valid PlanId
32
+ */
33
+ export function isValidPlanId(value) {
34
+ return typeof value === 'string' && VALID_PLAN_IDS.includes(value);
35
+ }
36
+ /**
37
+ * Check whether a value is a valid BillingInterval.
38
+ *
39
+ * @param value - Value to check
40
+ * @returns true if value is a valid BillingInterval
41
+ */
42
+ export function isValidBillingInterval(value) {
43
+ return typeof value === 'string' && VALID_BILLING_INTERVALS.includes(value);
44
+ }
45
+ /**
46
+ * Check whether a value is a handled webhook event type.
47
+ *
48
+ * @param value - Value to check
49
+ * @returns true if value is a handled webhook event type
50
+ */
51
+ export function isHandledWebhookEvent(value) {
52
+ return typeof value === 'string' && HANDLED_WEBHOOK_EVENTS.includes(value);
53
+ }
54
+ //# sourceMappingURL=payment.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.types.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/payment/payment.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0HH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,qCAAqC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE5E,sCAAsC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAA8B;IAChE,4BAA4B;IAC5B,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;IAC3B,wBAAwB;CACxB,CAAC;AAEF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAe,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAC;AAChG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAgC,CAAC,CAAC;AACvG,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * These interfaces replace `any` type assertions in controller files,
5
5
  * providing compile-time type safety for incoming HTTP requests.
6
6
  */
7
- import type { TeamMember, Project } from '../types/index.js';
7
+ import type { TeamMember, TeamMemberRole, Project } from '../types/index.js';
8
8
  /**
9
9
  * Request body for creating a new project
10
10
  */
@@ -86,12 +86,16 @@ export interface ProjectContextOptionsQuery {
86
86
  */
87
87
  export interface CreateTeamMemberInput {
88
88
  name: string;
89
- role: TeamMember['role'];
89
+ role: TeamMemberRole;
90
90
  systemPrompt: string;
91
91
  runtimeType?: TeamMember['runtimeType'];
92
92
  avatar?: string;
93
93
  skillOverrides?: string[];
94
94
  excludedRoleSkills?: string[];
95
+ /** Whether this member can delegate tasks (for hierarchical teams). */
96
+ canDelegate?: boolean;
97
+ /** Hierarchy level override (auto-set if not provided). */
98
+ hierarchyLevel?: number;
95
99
  }
96
100
  /**
97
101
  * Request body for creating a new team
@@ -103,6 +107,12 @@ export interface CreateTeamRequestBody {
103
107
  projectPath?: string;
104
108
  currentProject?: string;
105
109
  projectIds?: string[];
110
+ /** Whether this team uses hierarchical management (TL -> Workers). */
111
+ hierarchical?: boolean;
112
+ /** Template ID to create team from. */
113
+ templateId?: string;
114
+ /** Parent team ID for organization grouping. */
115
+ parentTeamId?: string;
106
116
  }
107
117
  /**
108
118
  * Request body for starting a team
@@ -115,8 +125,14 @@ export interface StartTeamRequestBody {
115
125
  */
116
126
  export interface AddTeamMemberRequestBody {
117
127
  name: string;
118
- role: TeamMember['role'];
128
+ role: TeamMemberRole;
119
129
  avatar?: string;
130
+ /** Whether this member can delegate tasks (for hierarchical teams). */
131
+ canDelegate?: boolean;
132
+ /** Hierarchy level override. */
133
+ hierarchyLevel?: number;
134
+ /** Parent member ID (for hierarchical teams). */
135
+ parentMemberId?: string;
120
136
  }
121
137
  /**
122
138
  * Request body for updating a team member
@@ -168,7 +184,7 @@ export interface GenerateMemberContextQuery {
168
184
  * Request body for updating team member runtime type
169
185
  */
170
186
  export interface UpdateTeamMemberRuntimeRequestBody {
171
- runtimeType: 'claude-code' | 'gemini-cli' | 'codex-cli';
187
+ runtimeType: 'claude-code' | 'gemini-cli' | 'codex-cli' | 'openhands';
172
188
  }
173
189
  /**
174
190
  * Member update data in team update request
@@ -177,7 +193,7 @@ export interface TeamMemberUpdate {
177
193
  name: string;
178
194
  role: string;
179
195
  systemPrompt: string;
180
- runtimeType?: 'claude-code' | 'gemini-cli' | 'codex-cli';
196
+ runtimeType?: 'claude-code' | 'gemini-cli' | 'codex-cli' | 'openhands';
181
197
  avatar?: string;
182
198
  skillOverrides?: string[];
183
199
  excludedRoleSkills?: string[];
@@ -190,6 +206,14 @@ export interface UpdateTeamRequestBody {
190
206
  description?: string;
191
207
  projectIds?: string[];
192
208
  members?: TeamMemberUpdate[];
209
+ /** Toggle hierarchical team management */
210
+ hierarchical?: boolean;
211
+ /** @deprecated Use `leaderIds` instead. */
212
+ leaderId?: string;
213
+ /** Member IDs of the team leaders (supports multiple TLs). */
214
+ leaderIds?: string[];
215
+ /** Parent team ID for organization grouping. */
216
+ parentTeamId?: string | null;
193
217
  }
194
218
  /**
195
219
  * TeamMember with updatedAt as a writable property
@@ -213,6 +237,11 @@ export interface MutableTeam {
213
237
  projectIds: string[];
214
238
  createdAt: string;
215
239
  updatedAt: string;
240
+ hierarchical?: boolean;
241
+ leaderId?: string;
242
+ leaderIds?: string[];
243
+ templateId?: string;
244
+ parentTeamId?: string;
216
245
  }
217
246
  /**
218
247
  * Project with mutable fields for internal updates
@@ -1 +1 @@
1
- {"version":3,"file":"request-types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/controllers/request-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/controllers/request-types.ts"],"names":[],"mappings":"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"}
@@ -77,4 +77,18 @@ export declare function getPreviousSessions(this: unknown, req: Request, res: Re
77
77
  * @returns {object} JSON response confirming dismissal
78
78
  */
79
79
  export declare function dismissPreviousSessions(this: unknown, req: Request, res: Response): Promise<void>;
80
+ /**
81
+ * Submit an OAuth authorization code to a session.
82
+ *
83
+ * After an agent's OAuth token expires and /login is sent, the CLI outputs an
84
+ * OAuth URL. The user visits the URL, gets an auth code, and sends it back via
85
+ * this endpoint. The code is written to the agent's PTY session to complete
86
+ * the re-authentication flow.
87
+ *
88
+ * @route POST /api/sessions/:name/oauth-callback
89
+ * @param name - Session name
90
+ * @body {code} - OAuth authorization code from the user
91
+ * @returns {object} JSON response confirming code was submitted
92
+ */
93
+ export declare function submitOAuthCallback(this: unknown, req: Request, res: Response): Promise<void>;
80
94
  //# sourceMappingURL=session.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/session/session.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOjD;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf"}
1
+ {"version":3,"file":"session.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/session/session.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQjD;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { getSessionBackendSync, getSessionBackend, getSessionStatePersistence, createSessionCommandHelper } from '../../services/session/index.js';
11
11
  import { LoggerService } from '../../services/core/logger.service.js';
12
+ import { OAuthReloginMonitorService } from '../../services/agent/oauth-relogin-monitor.service.js';
12
13
  import { RUNTIME_TYPES } from '../../constants.js';
13
14
  const logger = LoggerService.getInstance().createComponentLogger('SessionController');
14
15
  /**
@@ -281,4 +282,51 @@ export async function dismissPreviousSessions(req, res) {
281
282
  });
282
283
  }
283
284
  }
285
+ /**
286
+ * Submit an OAuth authorization code to a session.
287
+ *
288
+ * After an agent's OAuth token expires and /login is sent, the CLI outputs an
289
+ * OAuth URL. The user visits the URL, gets an auth code, and sends it back via
290
+ * this endpoint. The code is written to the agent's PTY session to complete
291
+ * the re-authentication flow.
292
+ *
293
+ * @route POST /api/sessions/:name/oauth-callback
294
+ * @param name - Session name
295
+ * @body {code} - OAuth authorization code from the user
296
+ * @returns {object} JSON response confirming code was submitted
297
+ */
298
+ export async function submitOAuthCallback(req, res) {
299
+ try {
300
+ const { name } = req.params;
301
+ const { code } = req.body;
302
+ if (!code || typeof code !== 'string') {
303
+ res.status(400).json({ error: 'OAuth code is required and must be a string' });
304
+ return;
305
+ }
306
+ // Validate session exists
307
+ const backend = getSessionBackendSync();
308
+ if (!backend || !backend.sessionExists(name)) {
309
+ res.status(404).json({ error: `Session '${name}' not found` });
310
+ return;
311
+ }
312
+ // Submit the code to the PTY session
313
+ const success = OAuthReloginMonitorService.submitOAuthCode(name, code);
314
+ if (!success) {
315
+ res.status(500).json({ error: 'Failed to write OAuth code to session' });
316
+ return;
317
+ }
318
+ logger.info('OAuth code submitted to session', { sessionName: name });
319
+ res.json({ success: true, message: `OAuth code submitted to session '${name}'` });
320
+ }
321
+ catch (error) {
322
+ logger.error('Failed to submit OAuth code', {
323
+ name: req.params.name,
324
+ error: error instanceof Error ? error.message : String(error),
325
+ });
326
+ res.status(500).json({
327
+ error: 'Failed to submit OAuth code',
328
+ message: error instanceof Error ? error.message : 'Unknown error',
329
+ });
330
+ }
331
+ }
284
332
  //# sourceMappingURL=session.controller.js.map