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,89 @@
1
+ # Aggregate Results
2
+
3
+ Compiles results from all worker sub-tasks into a structured markdown report for the Orchestrator. Supports milestone, daily, and final report types.
4
+
5
+ ## When to Use
6
+
7
+ - When all sub-tasks for an objective are completed
8
+ - For periodic progress reports (daily/weekly)
9
+ - When the Orchestrator requests a status update
10
+ - Before escalating issues that affect overall objective completion
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ bash {{SKILLS_PATH}}/team-leader/aggregate-results/execute.sh '{"teamId":"team-123","objective":"Build auth module","reportType":"final","taskPaths":["/project/.crewly/tasks/m1/done/task1.md","/project/.crewly/tasks/m1/done/task2.md"],"projectPath":"/path/to/project"}'
16
+ ```
17
+
18
+ ## Parameters
19
+
20
+ | Parameter | Required | Description |
21
+ |-----------|----------|-------------|
22
+ | `teamId` | No | Team ID for report labeling |
23
+ | `objective` | No | High-level objective being reported on |
24
+ | `reportType` | No | Report type: `milestone`, `daily`, `final` (default: `final`) |
25
+ | `taskPaths` | No | Array of task file paths to include |
26
+ | `projectPath` | No | Project path (used for team-progress API fallback) |
27
+ | `includeVerification` | No | Include verification results (default: `true`) |
28
+
29
+ ## Report Types
30
+
31
+ | Type | Use Case | Typical Content |
32
+ |------|----------|----------------|
33
+ | `milestone` | End of a project milestone | Summary of all milestone tasks |
34
+ | `daily` | Daily standup reporting | Today's progress, blockers |
35
+ | `final` | Objective fully completed | Complete results, all deliverables |
36
+
37
+ ## Output
38
+
39
+ ### JSON Response
40
+ ```json
41
+ {
42
+ "success": true,
43
+ "reportType": "final",
44
+ "objective": "Build auth module",
45
+ "reportFile": "/tmp/tl-report-team-123-1709769600.md",
46
+ "timestamp": "2026-03-06T12:00:00Z",
47
+ "stats": {
48
+ "total": 5,
49
+ "completed": 4,
50
+ "failed": 1,
51
+ "blocked": 0,
52
+ "pending": 0
53
+ }
54
+ }
55
+ ```
56
+
57
+ ### Markdown Report Format
58
+
59
+ The report is written to `reportFile` and follows the `[TL_REPORT]` tag convention:
60
+
61
+ ```markdown
62
+ [TL_REPORT]
63
+ # Final Completion Report
64
+ **Objective**: Build auth module
65
+ ...
66
+ ## Summary
67
+ | Metric | Count |
68
+ |--------|-------|
69
+ | Total Tasks | 5 |
70
+ ...
71
+ ## Task Details
72
+ ### [DONE] Implement JWT service
73
+ ...
74
+ ## Action Items
75
+ - 1 task(s) failed — review via handle-failure skill
76
+ ```
77
+
78
+ ## Sending the Report
79
+
80
+ After generating the report, send it to the Orchestrator:
81
+ ```bash
82
+ bash {{SKILLS_PATH}}/agent/core/report-status/execute.sh '{"sessionName":"tl-session","status":"done","summary":"Objective complete: 4/5 tasks passed. Report at /tmp/tl-report-team-123.md"}'
83
+ ```
84
+
85
+ ## Related Skills
86
+
87
+ - `decompose-goal` — Original task creation
88
+ - `verify-output` — Task verification results
89
+ - `handle-failure` — Failed task handling
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "tl-aggregate-results",
3
+ "name": "Aggregate Results",
4
+ "description": "Compile results from all worker sub-tasks into a structured markdown report for the Orchestrator. Supports milestone, daily, and final report types.",
5
+ "category": "reporting",
6
+ "skillType": "claude-skill",
7
+ "promptFile": "instructions.md",
8
+ "execution": {
9
+ "type": "script",
10
+ "script": {
11
+ "file": "execute.sh",
12
+ "interpreter": "bash",
13
+ "timeoutMs": 30000
14
+ }
15
+ },
16
+ "assignableRoles": ["team-leader"],
17
+ "triggers": ["aggregate results", "compile report", "summarize tasks", "generate report"],
18
+ "tags": ["reporting", "aggregation", "summary", "management"],
19
+ "version": "1.0.0"
20
+ }
@@ -0,0 +1,86 @@
1
+ #!/bin/bash
2
+ # Decompose a high-level objective into worker-level sub-tasks.
3
+ # Creates task files in the project's .crewly/tasks/ directory via task-management API.
4
+ set -euo pipefail
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ source "${SCRIPT_DIR}/../_common/lib.sh"
7
+
8
+ INPUT="${1:-}"
9
+ [ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"objective\":\"Build auth module\",\"projectPath\":\"/path/to/project\",\"tasks\":[{\"title\":\"...\",\"description\":\"...\",\"requiredRole\":\"developer\",\"acceptanceCriteria\":\"...\",\"priority\":\"high\"}]}'"
10
+
11
+ OBJECTIVE=$(echo "$INPUT" | jq -r '.objective // empty')
12
+ PROJECT_PATH=$(echo "$INPUT" | jq -r '.projectPath // empty')
13
+ TASKS=$(echo "$INPUT" | jq -c '.tasks // empty')
14
+ MILESTONE=$(echo "$INPUT" | jq -r '.milestone // "delegated"')
15
+ require_param "objective" "$OBJECTIVE"
16
+ require_param "tasks" "$TASKS"
17
+
18
+ # Validate tasks array is non-empty
19
+ TASK_COUNT=$(echo "$TASKS" | jq 'length')
20
+ if [ "$TASK_COUNT" = "0" ]; then
21
+ error_exit "tasks array must contain at least one task"
22
+ fi
23
+
24
+ CREATED_TASKS="[]"
25
+ ERRORS="[]"
26
+
27
+ # Create each sub-task via the task-management API
28
+ for i in $(seq 0 $((TASK_COUNT - 1))); do
29
+ TASK_TITLE=$(echo "$TASKS" | jq -r ".[$i].title // empty")
30
+ TASK_DESC=$(echo "$TASKS" | jq -r ".[$i].description // empty")
31
+ TASK_ROLE=$(echo "$TASKS" | jq -r ".[$i].requiredRole // \"developer\"")
32
+ TASK_CRITERIA=$(echo "$TASKS" | jq -r ".[$i].acceptanceCriteria // empty")
33
+ TASK_PRIORITY=$(echo "$TASKS" | jq -r ".[$i].priority // \"normal\"")
34
+
35
+ if [ -z "$TASK_TITLE" ] || [ -z "$TASK_DESC" ]; then
36
+ ERRORS=$(echo "$ERRORS" | jq --arg idx "$i" --arg msg "Task $i missing title or description" '. + [$msg]')
37
+ continue
38
+ fi
39
+
40
+ # Build task description with acceptance criteria
41
+ FULL_DESC="${TASK_DESC}"
42
+ [ -n "$TASK_CRITERIA" ] && FULL_DESC="${FULL_DESC}\n\n## Acceptance Criteria\n${TASK_CRITERIA}"
43
+ FULL_DESC="${FULL_DESC}\n\n## Context\nParent objective: ${OBJECTIVE}\nRequired role: ${TASK_ROLE}"
44
+
45
+ CREATE_BODY=$(jq -n \
46
+ --arg projectPath "${PROJECT_PATH}" \
47
+ --arg task "$FULL_DESC" \
48
+ --arg priority "$TASK_PRIORITY" \
49
+ --arg milestone "$MILESTONE" \
50
+ --arg title "$TASK_TITLE" \
51
+ '{projectPath: $projectPath, task: $task, priority: $priority, milestone: $milestone, title: $title}')
52
+
53
+ CREATE_RESULT=$(api_call POST "/task-management/create" "$CREATE_BODY" 2>/dev/null || echo '{"error":"Failed to create task"}')
54
+ TASK_PATH=$(echo "$CREATE_RESULT" | jq -r '.taskPath // empty' 2>/dev/null || true)
55
+ TASK_ID=$(echo "$CREATE_RESULT" | jq -r '.taskId // empty' 2>/dev/null || true)
56
+
57
+ if [ -n "$TASK_PATH" ]; then
58
+ CREATED_TASKS=$(echo "$CREATED_TASKS" | jq \
59
+ --arg title "$TASK_TITLE" \
60
+ --arg role "$TASK_ROLE" \
61
+ --arg path "$TASK_PATH" \
62
+ --arg id "$TASK_ID" \
63
+ --arg priority "$TASK_PRIORITY" \
64
+ '. + [{title: $title, requiredRole: $role, taskPath: $path, taskId: $id, priority: $priority}]')
65
+ else
66
+ ERRORS=$(echo "$ERRORS" | jq --arg msg "Failed to create task: ${TASK_TITLE}" '. + [$msg]')
67
+ fi
68
+ done
69
+
70
+ # Output result
71
+ CREATED_COUNT=$(echo "$CREATED_TASKS" | jq 'length')
72
+ ERROR_COUNT=$(echo "$ERRORS" | jq 'length')
73
+
74
+ jq -n \
75
+ --arg objective "$OBJECTIVE" \
76
+ --argjson tasks "$CREATED_TASKS" \
77
+ --argjson errors "$ERRORS" \
78
+ --arg totalCreated "$CREATED_COUNT" \
79
+ --arg totalErrors "$ERROR_COUNT" \
80
+ '{
81
+ success: (($totalErrors | tonumber) == 0),
82
+ objective: $objective,
83
+ tasksCreated: ($totalCreated | tonumber),
84
+ tasks: $tasks,
85
+ errors: $errors
86
+ }'
@@ -0,0 +1,84 @@
1
+ # Decompose Goal
2
+
3
+ Breaks down a high-level objective from the Orchestrator into specific, actionable sub-tasks for workers. Each sub-task is created as a task file in the project's `.crewly/tasks/` directory.
4
+
5
+ ## When to Use
6
+
7
+ - When the Orchestrator sends you a new objective
8
+ - When an existing task is too large for a single worker
9
+ - When a task needs to be split across multiple roles
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ bash {{SKILLS_PATH}}/team-leader/decompose-goal/execute.sh '$(cat /tmp/decompose.json)'
15
+ ```
16
+
17
+ Where `/tmp/decompose.json` contains:
18
+
19
+ ```json
20
+ {
21
+ "objective": "Build user authentication module",
22
+ "projectPath": "/path/to/project",
23
+ "milestone": "m2_auth",
24
+ "tasks": [
25
+ {
26
+ "title": "Implement JWT token service",
27
+ "description": "Create a service that generates and validates JWT tokens for user sessions",
28
+ "requiredRole": "backend-developer",
29
+ "acceptanceCriteria": "- JWT generation works\n- Token validation works\n- Tests pass with 80%+ coverage",
30
+ "priority": "high"
31
+ },
32
+ {
33
+ "title": "Build login form component",
34
+ "description": "Create a React login form with email/password fields and validation",
35
+ "requiredRole": "frontend-developer",
36
+ "acceptanceCriteria": "- Form renders correctly\n- Client-side validation works\n- Accessible (ARIA labels)",
37
+ "priority": "high"
38
+ }
39
+ ]
40
+ }
41
+ ```
42
+
43
+ ## Parameters
44
+
45
+ | Parameter | Required | Description |
46
+ |-----------|----------|-------------|
47
+ | `objective` | Yes | The high-level objective being decomposed |
48
+ | `projectPath` | No | Project path for task file creation |
49
+ | `milestone` | No | Milestone folder name (default: `delegated`) |
50
+ | `tasks` | Yes | Array of sub-task objects |
51
+ | `tasks[].title` | Yes | Sub-task title |
52
+ | `tasks[].description` | Yes | Detailed task description |
53
+ | `tasks[].requiredRole` | No | Role best suited for this task (default: `developer`) |
54
+ | `tasks[].acceptanceCriteria` | No | Criteria for task verification |
55
+ | `tasks[].priority` | No | Task priority: `low`, `normal`, `high` (default: `normal`) |
56
+
57
+ ## Output
58
+
59
+ ```json
60
+ {
61
+ "success": true,
62
+ "objective": "Build user authentication module",
63
+ "tasksCreated": 2,
64
+ "tasks": [
65
+ { "title": "Implement JWT token service", "requiredRole": "backend-developer", "taskPath": "/project/.crewly/tasks/...", "taskId": "abc123", "priority": "high" },
66
+ { "title": "Build login form component", "requiredRole": "frontend-developer", "taskPath": "/project/.crewly/tasks/...", "taskId": "def456", "priority": "high" }
67
+ ],
68
+ "errors": []
69
+ }
70
+ ```
71
+
72
+ ## Best Practices
73
+
74
+ 1. **Be specific**: Each sub-task should be completable by a single worker in one session
75
+ 2. **Include acceptance criteria**: Workers need clear success metrics
76
+ 3. **Match roles**: Set `requiredRole` to help with delegation
77
+ 4. **Order matters**: List tasks in dependency order when possible
78
+ 5. **Don't over-split**: 2-5 sub-tasks per objective is typical
79
+
80
+ ## Related Skills
81
+
82
+ - `delegate-task` — Assign created tasks to specific workers
83
+ - `verify-output` — Verify completed task output
84
+ - `aggregate-results` — Summarize all task results
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "tl-decompose-goal",
3
+ "name": "Decompose Goal",
4
+ "description": "Break down a high-level objective from the Orchestrator into specific, actionable sub-tasks for workers. Creates task files in the project's .crewly/tasks/ directory.",
5
+ "category": "management",
6
+ "skillType": "claude-skill",
7
+ "promptFile": "instructions.md",
8
+ "execution": {
9
+ "type": "script",
10
+ "script": {
11
+ "file": "execute.sh",
12
+ "interpreter": "bash",
13
+ "timeoutMs": 30000
14
+ }
15
+ },
16
+ "assignableRoles": ["team-leader"],
17
+ "triggers": ["decompose goal", "break down objective", "create subtasks", "split task"],
18
+ "tags": ["goal", "decomposition", "planning", "management"],
19
+ "version": "1.0.0"
20
+ }
@@ -0,0 +1,142 @@
1
+ #!/bin/bash
2
+ # Delegate a task to a worker within this Team Leader's subordinate scope.
3
+ # Validates hierarchy (worker.parentMemberId == TL.memberId) before delegation.
4
+ # Reuses the orchestrator delegate-task delivery and monitoring logic.
5
+ set -euo pipefail
6
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7
+ source "${SCRIPT_DIR}/../_common/lib.sh"
8
+
9
+ INPUT="${1:-}"
10
+ [ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"to\":\"worker-session\",\"task\":\"implement feature X\",\"priority\":\"high\",\"teamId\":\"team-123\",\"tlMemberId\":\"tl-member-id\",\"projectPath\":\"/path/to/project\"}'"
11
+
12
+ TO=$(echo "$INPUT" | jq -r '.to // empty')
13
+ TASK=$(echo "$INPUT" | jq -r '.task // empty')
14
+ PRIORITY=$(echo "$INPUT" | jq -r '.priority // "normal"')
15
+ CONTEXT=$(echo "$INPUT" | jq -r '.context // empty')
16
+ PROJECT_PATH=$(echo "$INPUT" | jq -r '.projectPath // empty')
17
+ TEAM_ID=$(echo "$INPUT" | jq -r '.teamId // empty')
18
+ TL_MEMBER_ID=$(echo "$INPUT" | jq -r '.tlMemberId // empty')
19
+ require_param "to" "$TO"
20
+ require_param "task" "$TASK"
21
+
22
+ # Resolve Crewly root from this script path:
23
+ # config/skills/team-leader/delegate-task/execute.sh -> project root
24
+ CREWLY_ROOT="$(cd "${SCRIPT_DIR}/../../../.." && pwd)"
25
+
26
+ # Validate hierarchy: check that target worker belongs to this TL
27
+ if [ -n "$TEAM_ID" ] && [ -n "$TL_MEMBER_ID" ]; then
28
+ # Fetch team data to validate hierarchy
29
+ TEAM_DATA=$(api_call GET "/teams/${TEAM_ID}" 2>/dev/null || echo '{}')
30
+ TEAM_SUCCESS=$(echo "$TEAM_DATA" | jq -r '.success // false' 2>/dev/null || echo "false")
31
+
32
+ if [ "$TEAM_SUCCESS" = "true" ]; then
33
+ # Find the target worker by session name and check parentMemberId
34
+ WORKER_PARENT=$(echo "$TEAM_DATA" | jq -r --arg session "$TO" \
35
+ '.data.members[] | select(.sessionName == $session) | .parentMemberId // empty' 2>/dev/null || true)
36
+
37
+ if [ -n "$WORKER_PARENT" ] && [ "$WORKER_PARENT" != "$TL_MEMBER_ID" ]; then
38
+ error_exit "Hierarchy violation: worker ${TO} (parentMemberId=${WORKER_PARENT}) is not a subordinate of TL ${TL_MEMBER_ID}"
39
+ fi
40
+ fi
41
+ fi
42
+
43
+ # Resolve skill paths to absolute paths
44
+ resolve_skill_paths() {
45
+ local input="$1"
46
+ perl -pe '
47
+ my $root = $ENV{"CREWLY_ROOT"};
48
+ s{\bbash\s+config/skills/}{bash $root/config/skills/}g;
49
+ s{(?<![A-Za-z0-9_./-])config/skills/}{$root/config/skills/}g;
50
+ ' <<< "$input"
51
+ }
52
+
53
+ TASK="$(CREWLY_ROOT="$CREWLY_ROOT" resolve_skill_paths "$TASK")"
54
+ if [ -n "$CONTEXT" ]; then
55
+ CONTEXT="$(CREWLY_ROOT="$CREWLY_ROOT" resolve_skill_paths "$CONTEXT")"
56
+ fi
57
+
58
+ # Build a structured task message from Team Leader
59
+ TASK_MESSAGE="New task from Team Leader (priority: ${PRIORITY}):\n\n${TASK}"
60
+ [ -n "$CONTEXT" ] && TASK_MESSAGE="${TASK_MESSAGE}\n\nContext: ${CONTEXT}"
61
+ TASK_MESSAGE="${TASK_MESSAGE}\n\nWhen done, report back using: bash ${CREWLY_ROOT}/config/skills/agent/core/report-status/execute.sh '{\"sessionName\":\"${TO}\",\"status\":\"done\",\"summary\":\"<brief summary>\"}'"
62
+
63
+ # Deliver the task message with fallback strategy
64
+ BODY=$(jq -n --arg message "$TASK_MESSAGE" '{message: $message, waitForReady: true, waitTimeout: 15000}')
65
+
66
+ DELIVER_OK=true
67
+ api_call POST "/terminal/${TO}/deliver" "$BODY" || DELIVER_OK=false
68
+
69
+ if [ "$DELIVER_OK" = "false" ]; then
70
+ FORCE_BODY=$(jq -n --arg message "$TASK_MESSAGE" '{message: $message, force: true}')
71
+ api_call POST "/terminal/${TO}/deliver" "$FORCE_BODY" || {
72
+ echo '{"error":"Failed to deliver task to '"$TO"'. Session may not exist or agent is not running."}'
73
+ exit 1
74
+ }
75
+ fi
76
+
77
+ # Track the task file path and task ID from create response
78
+ TASK_FILE_PATH=""
79
+ TASK_ID=""
80
+
81
+ # Create task file in project's .crewly/tasks/ directory
82
+ if [ -n "$PROJECT_PATH" ]; then
83
+ CREATE_BODY=$(jq -n \
84
+ --arg projectPath "$PROJECT_PATH" \
85
+ --arg task "$TASK" \
86
+ --arg priority "$PRIORITY" \
87
+ --arg sessionName "$TO" \
88
+ --arg milestone "delegated" \
89
+ '{projectPath: $projectPath, task: $task, priority: $priority, sessionName: $sessionName, milestone: $milestone}')
90
+ CREATE_RESULT=$(api_call POST "/task-management/create" "$CREATE_BODY" 2>/dev/null || true)
91
+ TASK_FILE_PATH=$(echo "$CREATE_RESULT" | jq -r '.taskPath // empty' 2>/dev/null || true)
92
+ TASK_ID=$(echo "$CREATE_RESULT" | jq -r '.taskId // empty' 2>/dev/null || true)
93
+ fi
94
+
95
+ # Set up idle event subscription for TL monitoring
96
+ MONITOR_IDLE=$(echo "$INPUT" | jq -r 'if .monitor.idleEvent == null then true else .monitor.idleEvent end')
97
+ MONITOR_FALLBACK_MINUTES=$(echo "$INPUT" | jq -r 'if .monitor.fallbackCheckMinutes == null then 5 else .monitor.fallbackCheckMinutes end')
98
+
99
+ COLLECTED_SCHEDULE_IDS="[]"
100
+ COLLECTED_SUBSCRIPTION_IDS="[]"
101
+
102
+ if [ "$MONITOR_IDLE" = "true" ]; then
103
+ SUBSCRIBER_SESSION="${CREWLY_SESSION_NAME:-crewly-orc}"
104
+ SUB_BODY=$(jq -n \
105
+ --arg eventType "agent:idle" \
106
+ --arg sessionName "$TO" \
107
+ --arg subscriber "$SUBSCRIBER_SESSION" \
108
+ '{eventType: $eventType, filter: {sessionName: $sessionName}, subscriberSession: $subscriber, oneShot: true, ttlMinutes: 120}')
109
+ SUB_RESULT=$(api_call POST "/events/subscribe" "$SUB_BODY" 2>/dev/null || true)
110
+ SUB_ID=$(echo "$SUB_RESULT" | jq -r '.data.id // empty' 2>/dev/null || true)
111
+ if [ -n "$SUB_ID" ]; then
112
+ COLLECTED_SUBSCRIPTION_IDS=$(echo "$COLLECTED_SUBSCRIPTION_IDS" | jq --arg id "$SUB_ID" '. + [$id]')
113
+ fi
114
+ fi
115
+
116
+ if [ "$MONITOR_FALLBACK_MINUTES" != "0" ] && [ -n "$MONITOR_FALLBACK_MINUTES" ]; then
117
+ SCHEDULE_TARGET="${CREWLY_SESSION_NAME:-crewly-orc}"
118
+ SCHED_BODY=$(jq -n \
119
+ --arg target "$SCHEDULE_TARGET" \
120
+ --arg minutes "$MONITOR_FALLBACK_MINUTES" \
121
+ --arg message "TL progress check: review ${TO} status — task: ${TASK:0:100}" \
122
+ --arg taskId "$TASK_ID" \
123
+ '{targetSession: $target, minutes: ($minutes | tonumber), intervalMinutes: ($minutes | tonumber), message: $message, isRecurring: true} + (if $taskId != "" then {taskId: $taskId} else {} end)' 2>/dev/null) || true
124
+ [ -n "$SCHED_BODY" ] && SCHED_RESULT=$(api_call POST "/schedule" "$SCHED_BODY" 2>/dev/null || true)
125
+ SCHED_ID=$(echo "$SCHED_RESULT" | jq -r '.checkId // .data.checkId // empty' 2>/dev/null || true)
126
+ if [ -n "$SCHED_ID" ]; then
127
+ COLLECTED_SCHEDULE_IDS=$(echo "$COLLECTED_SCHEDULE_IDS" | jq --arg id "$SCHED_ID" '. + [$id]')
128
+ fi
129
+ fi
130
+
131
+ # Store monitoring IDs for auto-cleanup
132
+ HAS_SCHEDULE_IDS=$(echo "$COLLECTED_SCHEDULE_IDS" | jq 'length > 0')
133
+ HAS_SUBSCRIPTION_IDS=$(echo "$COLLECTED_SUBSCRIPTION_IDS" | jq 'length > 0')
134
+
135
+ if [ "$HAS_SCHEDULE_IDS" = "true" ] || [ "$HAS_SUBSCRIPTION_IDS" = "true" ]; then
136
+ MONITOR_BODY=$(jq -n \
137
+ --arg sessionName "$TO" \
138
+ --argjson scheduleIds "$COLLECTED_SCHEDULE_IDS" \
139
+ --argjson subscriptionIds "$COLLECTED_SUBSCRIPTION_IDS" \
140
+ '{sessionName: $sessionName, scheduleIds: $scheduleIds, subscriptionIds: $subscriptionIds}')
141
+ api_call POST "/task-management/add-monitoring" "$MONITOR_BODY" 2>/dev/null || true
142
+ fi
@@ -0,0 +1,55 @@
1
+ # Delegate Task (TL Version)
2
+
3
+ Assigns a task to a worker within the Team Leader's subordinate scope. Validates hierarchy before delegation — the target worker's `parentMemberId` must match the TL's `memberId`.
4
+
5
+ ## When to Use
6
+
7
+ - After `decompose-goal` creates sub-tasks
8
+ - When `handle-failure` decides to `reassign` a task
9
+ - When a new worker needs to be given work
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ bash {{SKILLS_PATH}}/team-leader/delegate-task/execute.sh '{"to":"worker-session","task":"Implement login form","priority":"high","teamId":"team-123","tlMemberId":"tl-member-id","projectPath":"/path/to/project"}'
15
+ ```
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Required | Description |
20
+ |-----------|----------|-------------|
21
+ | `to` | Yes | Target worker's PTY session name |
22
+ | `task` | Yes | Task description (skill paths auto-resolved to absolute) |
23
+ | `priority` | No | Task priority: `low`, `normal`, `high` (default: `normal`) |
24
+ | `context` | No | Additional context for the worker |
25
+ | `teamId` | No | Team ID for hierarchy validation |
26
+ | `tlMemberId` | No | TL's member ID for hierarchy validation |
27
+ | `projectPath` | No | Project path; creates task file in `.crewly/tasks/` |
28
+ | `monitor` | No | Auto-monitoring config (same as orchestrator delegate-task) |
29
+
30
+ ## Hierarchy Validation
31
+
32
+ When `teamId` and `tlMemberId` are provided, the script fetches team data and validates:
33
+ - The target worker exists in the team
34
+ - The worker's `parentMemberId` matches the TL's `memberId`
35
+
36
+ If validation fails, delegation is rejected with a hierarchy violation error.
37
+
38
+ ## Differences from Orchestrator delegate-task
39
+
40
+ | Aspect | Orchestrator | Team Leader |
41
+ |--------|-------------|-------------|
42
+ | Scope | Any agent in any team | Only subordinates |
43
+ | Message prefix | "New task from orchestrator" | "New task from Team Leader" |
44
+ | Hierarchy check | None | Validates parentMemberId |
45
+ | Monitoring subscriber | Orchestrator session | TL session |
46
+
47
+ ## Output
48
+
49
+ JSON confirmation of task delivery, same format as orchestrator delegate-task.
50
+
51
+ ## Related Skills
52
+
53
+ - `decompose-goal` — Create sub-tasks before delegating
54
+ - `verify-output` — Verify completed task output
55
+ - `handle-failure` — Handle delegation failures
@@ -0,0 +1,20 @@
1
+ {
2
+ "id": "tl-delegate-task",
3
+ "name": "Delegate Task (TL)",
4
+ "description": "Assign a task to a worker within the Team Leader's subordinate scope. Validates that the target worker's parentMemberId matches the TL's memberId before delegation. Includes auto-monitoring setup.",
5
+ "category": "management",
6
+ "skillType": "claude-skill",
7
+ "promptFile": "instructions.md",
8
+ "execution": {
9
+ "type": "script",
10
+ "script": {
11
+ "file": "execute.sh",
12
+ "interpreter": "bash",
13
+ "timeoutMs": 30000
14
+ }
15
+ },
16
+ "assignableRoles": ["team-leader"],
17
+ "triggers": ["delegate task", "assign to worker", "send task to worker", "delegate to subordinate"],
18
+ "tags": ["task", "delegation", "management", "hierarchy"],
19
+ "version": "1.0.0"
20
+ }
@@ -0,0 +1,119 @@
1
+ #!/bin/bash
2
+ # Decide the next action when a worker task fails.
3
+ # Decision logic: retry (retries < 2) → reassign (skill mismatch) → escalate (resource/permission)
4
+ set -euo pipefail
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ source "${SCRIPT_DIR}/../_common/lib.sh"
7
+
8
+ INPUT="${1:-}"
9
+ [ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"workerId\":\"worker-1\",\"workerSession\":\"worker-session\",\"teamId\":\"team-123\",\"failureInfo\":{\"error\":\"tests failed\",\"failedSteps\":[\"tests\"],\"retries\":0,\"failureType\":\"verification\"},\"requiredRole\":\"developer\"}'"
10
+
11
+ WORKER_ID=$(echo "$INPUT" | jq -r '.workerId // empty')
12
+ WORKER_SESSION=$(echo "$INPUT" | jq -r '.workerSession // empty')
13
+ TEAM_ID=$(echo "$INPUT" | jq -r '.teamId // empty')
14
+ REQUIRED_ROLE=$(echo "$INPUT" | jq -r '.requiredRole // empty')
15
+ TASK_DESCRIPTION=$(echo "$INPUT" | jq -r '.taskDescription // empty')
16
+
17
+ # Failure info
18
+ RETRIES=$(echo "$INPUT" | jq -r '.failureInfo.retries // 0')
19
+ FAILURE_TYPE=$(echo "$INPUT" | jq -r '.failureInfo.failureType // "unknown"')
20
+ ERROR_MSG=$(echo "$INPUT" | jq -r '.failureInfo.error // "Unknown error"')
21
+ FAILED_STEPS=$(echo "$INPUT" | jq -c '.failureInfo.failedSteps // []')
22
+
23
+ require_param "workerId" "$WORKER_ID"
24
+
25
+ # Decision logic
26
+ ACTION=""
27
+ NEXT_WORKER_ID=""
28
+ NEXT_WORKER_SESSION=""
29
+ INSTRUCTIONS=""
30
+
31
+ # Rule 1: If retries < 2 and failure is recoverable → retry
32
+ if [ "$RETRIES" -lt 2 ]; then
33
+ case "$FAILURE_TYPE" in
34
+ verification|format|test_failure)
35
+ ACTION="retry"
36
+ INSTRUCTIONS="Retry attempt $((RETRIES + 1))/2. Previous failure: ${ERROR_MSG}. Please fix the issues in the failed steps and try again."
37
+ ;;
38
+ pty_error|session_error)
39
+ ACTION="retry"
40
+ INSTRUCTIONS="Session error detected. Retrying after recovery. Previous error: ${ERROR_MSG}"
41
+ ;;
42
+ skill_mismatch)
43
+ # Skill mismatch goes directly to reassign
44
+ ACTION="reassign"
45
+ INSTRUCTIONS="Task requires skills that ${WORKER_ID} does not have."
46
+ ;;
47
+ resource_error|permission_error|budget_error)
48
+ # Resource/permission issues escalate immediately
49
+ ACTION="escalate"
50
+ INSTRUCTIONS="Resource or permission issue cannot be resolved at TL level: ${ERROR_MSG}"
51
+ ;;
52
+ *)
53
+ # Unknown failure types: retry if under limit
54
+ ACTION="retry"
55
+ INSTRUCTIONS="Retry attempt $((RETRIES + 1))/2. Error: ${ERROR_MSG}. Please investigate and try a different approach."
56
+ ;;
57
+ esac
58
+ else
59
+ # Rule 2: Retries exhausted → try reassign, then escalate
60
+ ACTION="reassign"
61
+ INSTRUCTIONS="Worker ${WORKER_ID} failed after ${RETRIES} retries. Reassigning to another worker."
62
+ fi
63
+
64
+ # If action is reassign, find an alternative worker
65
+ if [ "$ACTION" = "reassign" ] && [ -n "$TEAM_ID" ]; then
66
+ TEAM_DATA=$(api_call GET "/teams/${TEAM_ID}" 2>/dev/null || echo '{}')
67
+ TEAM_SUCCESS=$(echo "$TEAM_DATA" | jq -r '.success // false' 2>/dev/null || echo "false")
68
+
69
+ if [ "$TEAM_SUCCESS" = "true" ]; then
70
+ # Find another worker with matching role, excluding the failed worker
71
+ if [ -n "$REQUIRED_ROLE" ]; then
72
+ ALT_WORKER=$(echo "$TEAM_DATA" | jq -r --arg role "$REQUIRED_ROLE" --arg excludeId "$WORKER_ID" \
73
+ '[.data.members[] | select(.role == $role and .id != $excludeId and .agentStatus == "active")] | first | .id // empty' 2>/dev/null || true)
74
+ ALT_SESSION=$(echo "$TEAM_DATA" | jq -r --arg role "$REQUIRED_ROLE" --arg excludeId "$WORKER_ID" \
75
+ '[.data.members[] | select(.role == $role and .id != $excludeId and .agentStatus == "active")] | first | .sessionName // empty' 2>/dev/null || true)
76
+ else
77
+ # No specific role required, find any active non-leader worker
78
+ ALT_WORKER=$(echo "$TEAM_DATA" | jq -r --arg excludeId "$WORKER_ID" \
79
+ '[.data.members[] | select(.id != $excludeId and .role != "team-leader" and .agentStatus == "active")] | first | .id // empty' 2>/dev/null || true)
80
+ ALT_SESSION=$(echo "$TEAM_DATA" | jq -r --arg excludeId "$WORKER_ID" \
81
+ '[.data.members[] | select(.id != $excludeId and .role != "team-leader" and .agentStatus == "active")] | first | .sessionName // empty' 2>/dev/null || true)
82
+ fi
83
+
84
+ if [ -n "$ALT_WORKER" ]; then
85
+ NEXT_WORKER_ID="$ALT_WORKER"
86
+ NEXT_WORKER_SESSION="$ALT_SESSION"
87
+ INSTRUCTIONS="Reassigning from ${WORKER_ID} to ${ALT_WORKER}. Previous worker failed after ${RETRIES} retries: ${ERROR_MSG}"
88
+ else
89
+ # No alternative worker found → escalate
90
+ ACTION="escalate"
91
+ INSTRUCTIONS="No alternative worker available for reassignment. Original worker ${WORKER_ID} failed after ${RETRIES} retries: ${ERROR_MSG}. Escalating to Orchestrator."
92
+ fi
93
+ else
94
+ # Cannot fetch team data → escalate
95
+ ACTION="escalate"
96
+ INSTRUCTIONS="Cannot validate team members for reassignment. Escalating to Orchestrator. Error: ${ERROR_MSG}"
97
+ fi
98
+ fi
99
+
100
+ # Output decision
101
+ jq -n \
102
+ --arg action "$ACTION" \
103
+ --arg nextWorkerId "$NEXT_WORKER_ID" \
104
+ --arg nextWorkerSession "$NEXT_WORKER_SESSION" \
105
+ --arg instructions "$INSTRUCTIONS" \
106
+ --arg originalWorkerId "$WORKER_ID" \
107
+ --arg failureType "$FAILURE_TYPE" \
108
+ --arg retries "$RETRIES" \
109
+ '{
110
+ action: $action,
111
+ nextWorkerId: (if $nextWorkerId != "" then $nextWorkerId else null end),
112
+ nextWorkerSession: (if $nextWorkerSession != "" then $nextWorkerSession else null end),
113
+ instructions: $instructions,
114
+ context: {
115
+ originalWorkerId: $originalWorkerId,
116
+ failureType: $failureType,
117
+ retriesSoFar: ($retries | tonumber)
118
+ }
119
+ }'