crewly 1.2.1 → 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 (642) 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/architect/prompt.md +7 -5
  6. package/config/roles/backend-developer/prompt.md +8 -4
  7. package/config/roles/content-strategist/prompt.md +12 -4
  8. package/config/roles/designer/prompt.md +8 -4
  9. package/config/roles/developer/prompt.md +7 -4
  10. package/config/roles/frontend-developer/prompt.md +8 -4
  11. package/config/roles/fullstack-dev/prompt.md +8 -4
  12. package/config/roles/generalist/prompt.md +7 -4
  13. package/config/roles/ops/prompt.md +7 -4
  14. package/config/roles/orchestrator/prompt.md +52 -3
  15. package/config/roles/product-manager/prompt.md +8 -4
  16. package/config/roles/qa/prompt.md +8 -4
  17. package/config/roles/qa-engineer/prompt.md +8 -4
  18. package/config/roles/sales/prompt.md +8 -4
  19. package/config/roles/support/prompt.md +8 -4
  20. package/config/roles/team-leader/prompt.md +169 -0
  21. package/config/roles/team-leader/role.json +13 -0
  22. package/config/roles/team-leader/tl-addon.md +142 -0
  23. package/config/roles/tpm/prompt.md +8 -4
  24. package/config/runtime_scripts/runtime-config.json +7 -0
  25. package/config/skills/_common/lib.sh +37 -0
  26. package/config/skills/agent/computer-use/execute.sh +228 -0
  27. package/config/skills/agent/computer-use/instructions.md +103 -0
  28. package/config/skills/agent/computer-use/lib/accessibility.sh +292 -0
  29. package/config/skills/agent/computer-use/lib/applescript.sh +117 -0
  30. package/config/skills/agent/computer-use/lib/discover.sh +122 -0
  31. package/config/skills/agent/computer-use/lib/playwright.sh +153 -0
  32. package/config/skills/agent/computer-use/lib/screenshot.sh +61 -0
  33. package/config/skills/agent/computer-use/skill.json +29 -0
  34. package/config/skills/agent/core/accept-task/execute.sh +7 -1
  35. package/config/skills/agent/core/complete-task/execute.sh +38 -1
  36. package/config/skills/agent/core/report-status/execute.sh +51 -2
  37. package/config/skills/agent/desktop-app-control/execute.sh +561 -0
  38. package/config/skills/agent/desktop-app-control/instructions.md +102 -0
  39. package/config/skills/agent/desktop-app-control/skill.json +33 -0
  40. package/config/skills/orchestrator/broadcast-to-org/execute.sh +88 -0
  41. package/config/skills/orchestrator/broadcast-to-org/instructions.md +51 -0
  42. package/config/skills/orchestrator/broadcast-to-org/skill.json +20 -0
  43. package/config/skills/orchestrator/delegate-task/execute.sh +76 -11
  44. package/config/skills/orchestrator/delegate-task/instructions.md +11 -1
  45. package/config/skills/orchestrator/handle-agent-failure/execute.sh +45 -0
  46. package/config/skills/orchestrator/handle-agent-failure/instructions.md +29 -0
  47. package/config/skills/orchestrator/handle-agent-failure/skill.json +20 -0
  48. package/config/skills/orchestrator/restart-crewly/instructions.md +9 -2
  49. package/config/skills/team-leader/_common/lib.sh +4 -0
  50. package/config/skills/team-leader/aggregate-results/execute.sh +168 -0
  51. package/config/skills/team-leader/aggregate-results/instructions.md +89 -0
  52. package/config/skills/team-leader/aggregate-results/skill.json +20 -0
  53. package/config/skills/team-leader/decompose-goal/execute.sh +86 -0
  54. package/config/skills/team-leader/decompose-goal/instructions.md +84 -0
  55. package/config/skills/team-leader/decompose-goal/skill.json +20 -0
  56. package/config/skills/team-leader/delegate-task/execute.sh +142 -0
  57. package/config/skills/team-leader/delegate-task/instructions.md +55 -0
  58. package/config/skills/team-leader/delegate-task/skill.json +20 -0
  59. package/config/skills/team-leader/handle-failure/execute.sh +119 -0
  60. package/config/skills/team-leader/handle-failure/instructions.md +93 -0
  61. package/config/skills/team-leader/handle-failure/skill.json +20 -0
  62. package/config/skills/team-leader/schedule-check/execute.sh +65 -0
  63. package/config/skills/team-leader/schedule-check/execute.test.sh +247 -0
  64. package/config/skills/team-leader/schedule-check/instructions.md +49 -0
  65. package/config/skills/team-leader/schedule-check/skill.json +20 -0
  66. package/config/skills/team-leader/start-agent/execute.sh +39 -0
  67. package/config/skills/team-leader/start-agent/instructions.md +48 -0
  68. package/config/skills/team-leader/start-agent/skill.json +20 -0
  69. package/config/skills/team-leader/stop-agent/execute.sh +39 -0
  70. package/config/skills/team-leader/stop-agent/instructions.md +49 -0
  71. package/config/skills/team-leader/stop-agent/skill.json +20 -0
  72. package/config/skills/team-leader/verify-output/execute.sh +296 -0
  73. package/config/skills/team-leader/verify-output/instructions.md +122 -0
  74. package/config/skills/team-leader/verify-output/skill.json +20 -0
  75. package/config/templates/agent-claude-md.md +10 -5
  76. package/config/templates/core-team/demo-script.md +41 -0
  77. package/config/templates/core-team/goals.md +20 -0
  78. package/config/templates/core-team/team.json +22 -0
  79. package/config/templates/dev-fullstack/template.json +115 -0
  80. package/config/templates/education-smb/README.md +27 -0
  81. package/config/templates/education-smb/goals.md +16 -0
  82. package/config/templates/education-smb/knowledge/docs/content-standards.md +24 -0
  83. package/config/templates/education-smb/knowledge/docs/education-industry-context.md +13 -0
  84. package/config/templates/education-smb/knowledge/index.json +24 -0
  85. package/config/templates/education-smb/learned-patterns.json +16 -0
  86. package/config/templates/education-smb/quality-gates.yaml +66 -0
  87. package/config/templates/education-smb/roles/analytics-specialist.md +6 -0
  88. package/config/templates/education-smb/roles/content-creator.md +6 -0
  89. package/config/templates/education-smb/roles/curriculum-designer.md +6 -0
  90. package/config/templates/education-smb/roles/engagement-manager.md +6 -0
  91. package/config/templates/education-smb/team.json +40 -0
  92. package/config/templates/education-smb/template.json +26 -0
  93. package/config/templates/education-smb/workflows/course-content-generation.yaml +44 -0
  94. package/config/templates/education-smb/workflows/reporting.yaml +31 -0
  95. package/config/templates/education-smb/workflows/student-communication.yaml +44 -0
  96. package/config/templates/education-smb/workflows.yaml +40 -0
  97. package/config/templates/insurance-smb/README.md +28 -0
  98. package/config/templates/insurance-smb/goals.md +21 -0
  99. package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +28 -0
  100. package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +23 -0
  101. package/config/templates/insurance-smb/knowledge/index.json +24 -0
  102. package/config/templates/insurance-smb/learned-patterns.json +16 -0
  103. package/config/templates/insurance-smb/quality-gates.yaml +54 -0
  104. package/config/templates/insurance-smb/roles/claims-processor.md +6 -0
  105. package/config/templates/insurance-smb/roles/client-manager.md +6 -0
  106. package/config/templates/insurance-smb/roles/compliance-officer.md +6 -0
  107. package/config/templates/insurance-smb/roles/marketing-specialist.md +6 -0
  108. package/config/templates/insurance-smb/roles/policy-analyst.md +6 -0
  109. package/config/templates/insurance-smb/team.json +48 -0
  110. package/config/templates/insurance-smb/template.json +26 -0
  111. package/config/templates/insurance-smb/workflows/claims-processing.yaml +48 -0
  112. package/config/templates/insurance-smb/workflows.yaml +43 -0
  113. package/config/templates/research-analysis/template.json +88 -0
  114. package/config/templates/social-media-ops/template.json +85 -0
  115. package/config/templates/video-production/template.json +123 -0
  116. package/dist/backend/backend/src/constants.d.ts +310 -84
  117. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  118. package/dist/backend/backend/src/constants.js +303 -89
  119. package/dist/backend/backend/src/constants.js.map +1 -1
  120. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  121. package/dist/backend/backend/src/controllers/chat/chat.controller.js +86 -26
  122. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  123. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +81 -0
  124. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +1 -0
  125. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +234 -0
  126. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +1 -0
  127. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +25 -0
  128. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +1 -0
  129. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +38 -0
  130. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +1 -0
  131. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +69 -0
  132. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +1 -0
  133. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +165 -0
  134. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +1 -0
  135. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +23 -0
  136. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +1 -0
  137. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +32 -0
  138. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +1 -0
  139. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +52 -0
  140. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -0
  141. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +122 -0
  142. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -0
  143. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +21 -0
  144. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -0
  145. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +32 -0
  146. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -0
  147. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +42 -0
  148. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +1 -0
  149. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +138 -0
  150. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +1 -0
  151. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +23 -0
  152. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +1 -0
  153. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +34 -0
  154. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +1 -0
  155. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +43 -0
  156. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +1 -0
  157. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +9 -0
  158. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +1 -0
  159. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +7 -0
  160. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +1 -0
  161. package/dist/backend/backend/src/controllers/cloud/files/index.js +7 -0
  162. package/dist/backend/backend/src/controllers/cloud/files/index.js.map +1 -0
  163. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +47 -0
  164. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +1 -0
  165. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +131 -0
  166. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +1 -0
  167. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +23 -0
  168. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +1 -0
  169. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +30 -0
  170. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +1 -0
  171. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +81 -0
  172. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +1 -0
  173. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +85 -0
  174. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +1 -0
  175. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +7 -0
  176. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +1 -0
  177. package/dist/backend/backend/src/controllers/cloud/h5/index.js +7 -0
  178. package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +1 -0
  179. package/dist/backend/backend/src/controllers/cloud/index.d.ts +14 -0
  180. package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -0
  181. package/dist/backend/backend/src/controllers/cloud/index.js +14 -0
  182. package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -0
  183. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +7 -0
  184. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +1 -0
  185. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +7 -0
  186. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +1 -0
  187. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +45 -0
  188. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +1 -0
  189. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +155 -0
  190. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +1 -0
  191. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +25 -0
  192. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +1 -0
  193. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +32 -0
  194. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +1 -0
  195. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +101 -0
  196. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +1 -0
  197. package/dist/backend/backend/src/controllers/cloud/relay.controller.js +343 -0
  198. package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +1 -0
  199. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +29 -0
  200. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +1 -0
  201. package/dist/backend/backend/src/controllers/cloud/relay.routes.js +44 -0
  202. package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +1 -0
  203. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +49 -0
  204. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +1 -0
  205. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +152 -0
  206. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +1 -0
  207. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +24 -0
  208. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +1 -0
  209. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +34 -0
  210. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +1 -0
  211. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +90 -0
  212. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +1 -0
  213. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +48 -0
  214. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +1 -0
  215. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +7 -0
  216. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +1 -0
  217. package/dist/backend/backend/src/controllers/cloud/tasks/index.js +7 -0
  218. package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +1 -0
  219. package/dist/backend/backend/src/controllers/marketplace/index.d.ts +2 -0
  220. package/dist/backend/backend/src/controllers/marketplace/index.d.ts.map +1 -1
  221. package/dist/backend/backend/src/controllers/marketplace/index.js +3 -0
  222. package/dist/backend/backend/src/controllers/marketplace/index.js.map +1 -1
  223. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +12 -12
  224. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  225. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +1 -18
  226. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  227. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  228. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +3 -0
  229. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  230. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.d.ts +111 -0
  231. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.d.ts.map +1 -0
  232. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.js +220 -0
  233. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.controller.js.map +1 -0
  234. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +33 -0
  235. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts.map +1 -0
  236. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +50 -0
  237. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -0
  238. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  239. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +4 -1
  240. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  241. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  242. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +18 -2
  243. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  244. package/dist/backend/backend/src/controllers/payment/index.d.ts +7 -0
  245. package/dist/backend/backend/src/controllers/payment/index.d.ts.map +1 -0
  246. package/dist/backend/backend/src/controllers/payment/index.js +7 -0
  247. package/dist/backend/backend/src/controllers/payment/index.js.map +1 -0
  248. package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts +57 -0
  249. package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts.map +1 -0
  250. package/dist/backend/backend/src/controllers/payment/payment.controller.js +136 -0
  251. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -0
  252. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +27 -0
  253. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -0
  254. package/dist/backend/backend/src/controllers/payment/payment.routes.js +38 -0
  255. package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -0
  256. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +109 -0
  257. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -0
  258. package/dist/backend/backend/src/controllers/payment/payment.types.js +54 -0
  259. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -0
  260. package/dist/backend/backend/src/controllers/request-types.d.ts +34 -5
  261. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  262. package/dist/backend/backend/src/controllers/session/session.controller.d.ts +14 -0
  263. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  264. package/dist/backend/backend/src/controllers/session/session.controller.js +48 -0
  265. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  266. package/dist/backend/backend/src/controllers/session/session.routes.d.ts.map +1 -1
  267. package/dist/backend/backend/src/controllers/session/session.routes.js +3 -1
  268. package/dist/backend/backend/src/controllers/session/session.routes.js.map +1 -1
  269. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
  270. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +4 -3
  271. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
  272. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  273. package/dist/backend/backend/src/controllers/system/system.controller.js +13 -15
  274. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  275. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
  276. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
  277. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  278. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +40 -4
  279. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  280. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  281. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  282. package/dist/backend/backend/src/controllers/team/team.controller.js +259 -13
  283. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  284. package/dist/backend/backend/src/controllers/template/index.d.ts +8 -0
  285. package/dist/backend/backend/src/controllers/template/index.d.ts.map +1 -0
  286. package/dist/backend/backend/src/controllers/template/index.js +8 -0
  287. package/dist/backend/backend/src/controllers/template/index.js.map +1 -0
  288. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +63 -0
  289. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -0
  290. package/dist/backend/backend/src/controllers/template/template.controller.js +112 -0
  291. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -0
  292. package/dist/backend/backend/src/controllers/template/template.routes.d.ts +24 -0
  293. package/dist/backend/backend/src/controllers/template/template.routes.d.ts.map +1 -0
  294. package/dist/backend/backend/src/controllers/template/template.routes.js +33 -0
  295. package/dist/backend/backend/src/controllers/template/template.routes.js.map +1 -0
  296. package/dist/backend/backend/src/index.d.ts.map +1 -1
  297. package/dist/backend/backend/src/index.js +105 -13
  298. package/dist/backend/backend/src/index.js.map +1 -1
  299. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js +3 -3
  300. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js.map +1 -1
  301. package/dist/backend/backend/src/models/Team.d.ts +5 -0
  302. package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
  303. package/dist/backend/backend/src/models/Team.js +24 -0
  304. package/dist/backend/backend/src/models/Team.js.map +1 -1
  305. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  306. package/dist/backend/backend/src/routes/api.routes.js +21 -0
  307. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  308. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +3 -19
  309. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  310. package/dist/backend/backend/src/services/agent/agent-registration.service.js +274 -398
  311. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  312. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +7 -1
  313. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  314. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +11 -2
  315. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  316. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +2 -1
  317. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  318. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +38 -51
  319. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  320. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
  321. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
  322. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +496 -0
  323. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
  324. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +70 -0
  325. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +1 -0
  326. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +131 -0
  327. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +1 -0
  328. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +21 -1
  329. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  330. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +32 -1
  331. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  332. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +77 -3
  333. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  334. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +281 -30
  335. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  336. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  337. package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
  338. package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  339. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +49 -2
  340. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  341. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +124 -2
  342. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  343. package/dist/backend/backend/src/services/chat/chat.service.d.ts +10 -2
  344. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  345. package/dist/backend/backend/src/services/chat/chat.service.js +49 -8
  346. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  347. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +174 -0
  348. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +1 -0
  349. package/dist/backend/backend/src/services/cloud/auth/auth.service.js +402 -0
  350. package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +1 -0
  351. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +110 -0
  352. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +1 -0
  353. package/dist/backend/backend/src/services/cloud/auth/auth.types.js +54 -0
  354. package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +1 -0
  355. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts +36 -0
  356. package/dist/backend/backend/src/services/cloud/auth/auth.utils.d.ts.map +1 -0
  357. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js +31 -0
  358. package/dist/backend/backend/src/services/cloud/auth/auth.utils.js.map +1 -0
  359. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +47 -0
  360. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +1 -0
  361. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +116 -0
  362. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +1 -0
  363. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +61 -0
  364. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +1 -0
  365. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +203 -0
  366. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +1 -0
  367. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts +46 -0
  368. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts.map +1 -0
  369. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js +95 -0
  370. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js.map +1 -0
  371. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +136 -0
  372. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +1 -0
  373. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +204 -0
  374. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +1 -0
  375. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +179 -0
  376. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -0
  377. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +237 -0
  378. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -0
  379. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +97 -0
  380. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +1 -0
  381. package/dist/backend/backend/src/services/cloud/cloud-file.service.js +184 -0
  382. package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +1 -0
  383. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +114 -0
  384. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +1 -0
  385. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +196 -0
  386. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +1 -0
  387. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +118 -0
  388. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +1 -0
  389. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +322 -0
  390. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +1 -0
  391. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +115 -0
  392. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +1 -0
  393. package/dist/backend/backend/src/services/cloud/cloud-task.service.js +265 -0
  394. package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +1 -0
  395. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +175 -0
  396. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +1 -0
  397. package/dist/backend/backend/src/services/cloud/relay-client.service.js +392 -0
  398. package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +1 -0
  399. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +87 -0
  400. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +1 -0
  401. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +140 -0
  402. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +1 -0
  403. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +183 -0
  404. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +1 -0
  405. package/dist/backend/backend/src/services/cloud/relay-server.service.js +523 -0
  406. package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +1 -0
  407. package/dist/backend/backend/src/services/cloud/relay.types.d.ts +170 -0
  408. package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +1 -0
  409. package/dist/backend/backend/src/services/cloud/relay.types.js +69 -0
  410. package/dist/backend/backend/src/services/cloud/relay.types.js.map +1 -0
  411. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts +9 -1
  412. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -1
  413. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js +18 -4
  414. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -1
  415. package/dist/backend/backend/src/services/core/env.config.d.ts +147 -0
  416. package/dist/backend/backend/src/services/core/env.config.d.ts.map +1 -0
  417. package/dist/backend/backend/src/services/core/env.config.js +226 -0
  418. package/dist/backend/backend/src/services/core/env.config.js.map +1 -0
  419. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  420. package/dist/backend/backend/src/services/core/storage.service.js +5 -0
  421. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  422. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +20 -7
  423. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  424. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +35 -31
  425. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  426. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.d.ts +160 -0
  427. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.d.ts.map +1 -0
  428. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.js +261 -0
  429. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation.service.js.map +1 -0
  430. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.d.ts +161 -0
  431. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.d.ts.map +1 -0
  432. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.js +276 -0
  433. package/dist/backend/backend/src/services/hierarchy/hierarchy-reporting.service.js.map +1 -0
  434. package/dist/backend/backend/src/services/marketplace/index.d.ts +1 -0
  435. package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -1
  436. package/dist/backend/backend/src/services/marketplace/index.js +2 -0
  437. package/dist/backend/backend/src/services/marketplace/index.js.map +1 -1
  438. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +2 -2
  439. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.d.ts +149 -0
  440. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.d.ts.map +1 -0
  441. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.js +500 -0
  442. package/dist/backend/backend/src/services/marketplace/template-marketplace.service.js.map +1 -0
  443. package/dist/backend/backend/src/services/mcp-server.js +1 -1
  444. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  445. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +90 -0
  446. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -0
  447. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +233 -0
  448. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -0
  449. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +1 -1
  450. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  451. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +1 -1
  452. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  453. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +28 -4
  454. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  455. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +113 -60
  456. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  457. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  458. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +29 -8
  459. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  460. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +69 -0
  461. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +1 -0
  462. package/dist/backend/backend/src/services/payment/magic-moment.service.js +158 -0
  463. package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +1 -0
  464. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +95 -0
  465. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +1 -0
  466. package/dist/backend/backend/src/services/payment/magic-moment.types.js +91 -0
  467. package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +1 -0
  468. package/dist/backend/backend/src/services/payment/stripe.service.d.ts +122 -0
  469. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -0
  470. package/dist/backend/backend/src/services/payment/stripe.service.js +403 -0
  471. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -0
  472. package/dist/backend/backend/src/services/plugin/index.d.ts +9 -0
  473. package/dist/backend/backend/src/services/plugin/index.d.ts.map +1 -0
  474. package/dist/backend/backend/src/services/plugin/index.js +8 -0
  475. package/dist/backend/backend/src/services/plugin/index.js.map +1 -0
  476. package/dist/backend/backend/src/services/plugin/plugin.service.d.ts +102 -0
  477. package/dist/backend/backend/src/services/plugin/plugin.service.d.ts.map +1 -0
  478. package/dist/backend/backend/src/services/plugin/plugin.service.js +179 -0
  479. package/dist/backend/backend/src/services/plugin/plugin.service.js.map +1 -0
  480. package/dist/backend/backend/src/services/plugin/plugin.types.d.ts +88 -0
  481. package/dist/backend/backend/src/services/plugin/plugin.types.d.ts.map +1 -0
  482. package/dist/backend/backend/src/services/plugin/plugin.types.js +17 -0
  483. package/dist/backend/backend/src/services/plugin/plugin.types.js.map +1 -0
  484. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +17 -0
  485. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  486. package/dist/backend/backend/src/services/project/task-tracking.service.js +63 -0
  487. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  488. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +1 -1
  489. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  490. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +14 -0
  491. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  492. package/dist/backend/backend/src/services/session/session-command-helper.js +70 -4
  493. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  494. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  495. package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
  496. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  497. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  498. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +15 -5
  499. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  500. package/dist/backend/backend/src/services/template/template.service.d.ts +153 -0
  501. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -0
  502. package/dist/backend/backend/src/services/template/template.service.js +372 -0
  503. package/dist/backend/backend/src/services/template/template.service.js.map +1 -0
  504. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +51 -0
  505. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  506. package/dist/backend/backend/src/services/workflow/scheduler.service.js +118 -2
  507. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  508. package/dist/backend/backend/src/types/chat.types.d.ts +39 -1
  509. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  510. package/dist/backend/backend/src/types/chat.types.js +45 -2
  511. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  512. package/dist/backend/backend/src/types/event-bus.types.d.ts +14 -2
  513. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  514. package/dist/backend/backend/src/types/event-bus.types.js +15 -0
  515. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  516. package/dist/backend/backend/src/types/hierarchy-message.types.d.ts +101 -0
  517. package/dist/backend/backend/src/types/hierarchy-message.types.d.ts.map +1 -0
  518. package/dist/backend/backend/src/types/hierarchy-message.types.js +15 -0
  519. package/dist/backend/backend/src/types/hierarchy-message.types.js.map +1 -0
  520. package/dist/backend/backend/src/types/index.d.ts +54 -4
  521. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  522. package/dist/backend/backend/src/types/index.js.map +1 -1
  523. package/dist/backend/backend/src/types/marketplace.types.d.ts +99 -0
  524. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  525. package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
  526. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  527. package/dist/backend/backend/src/types/settings.types.js +4 -0
  528. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  529. package/dist/backend/backend/src/types/task-tracking.types.d.ts +79 -1
  530. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  531. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  532. package/dist/backend/backend/src/types/team-template.types.d.ts +166 -0
  533. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -0
  534. package/dist/backend/backend/src/types/team-template.types.js +139 -0
  535. package/dist/backend/backend/src/types/team-template.types.js.map +1 -0
  536. package/dist/backend/backend/src/utils/async-handler.d.ts +20 -0
  537. package/dist/backend/backend/src/utils/async-handler.d.ts.map +1 -0
  538. package/dist/backend/backend/src/utils/async-handler.js +29 -0
  539. package/dist/backend/backend/src/utils/async-handler.js.map +1 -0
  540. package/dist/backend/backend/src/utils/defaultPrompts.d.ts +4 -4
  541. package/dist/backend/backend/src/utils/defaultPrompts.d.ts.map +1 -1
  542. package/dist/backend/backend/src/utils/defaultPrompts.js +16 -0
  543. package/dist/backend/backend/src/utils/defaultPrompts.js.map +1 -1
  544. package/dist/backend/backend/src/utils/gemini-trusted-folders.d.ts +43 -0
  545. package/dist/backend/backend/src/utils/gemini-trusted-folders.d.ts.map +1 -0
  546. package/dist/backend/backend/src/utils/gemini-trusted-folders.js +94 -0
  547. package/dist/backend/backend/src/utils/gemini-trusted-folders.js.map +1 -0
  548. package/dist/backend/backend/src/utils/message-serializer.d.ts +74 -0
  549. package/dist/backend/backend/src/utils/message-serializer.d.ts.map +1 -0
  550. package/dist/backend/backend/src/utils/message-serializer.js +380 -0
  551. package/dist/backend/backend/src/utils/message-serializer.js.map +1 -0
  552. package/dist/backend/backend/src/utils/terminal-output.utils.d.ts +2 -1
  553. package/dist/backend/backend/src/utils/terminal-output.utils.d.ts.map +1 -1
  554. package/dist/backend/backend/src/utils/terminal-output.utils.js +2 -28
  555. package/dist/backend/backend/src/utils/terminal-output.utils.js.map +1 -1
  556. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts +183 -0
  557. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -0
  558. package/dist/backend/backend/src/utils/terminal-string-ops.js +726 -0
  559. package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -0
  560. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  561. package/dist/backend/backend/src/websocket/terminal.gateway.js +22 -27
  562. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  563. package/dist/backend/config/constants.d.ts +40 -1
  564. package/dist/backend/config/constants.d.ts.map +1 -1
  565. package/dist/backend/config/constants.js +41 -1
  566. package/dist/backend/config/constants.js.map +1 -1
  567. package/dist/backend/config/index.d.ts +2 -2
  568. package/dist/backend/config/index.d.ts.map +1 -1
  569. package/dist/backend/config/index.js +2 -2
  570. package/dist/backend/config/index.js.map +1 -1
  571. package/dist/cli/backend/src/constants.d.ts +310 -84
  572. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  573. package/dist/cli/backend/src/constants.js +303 -89
  574. package/dist/cli/backend/src/constants.js.map +1 -1
  575. package/dist/cli/backend/src/models/Team.d.ts +5 -0
  576. package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
  577. package/dist/cli/backend/src/models/Team.js +24 -0
  578. package/dist/cli/backend/src/models/Team.js.map +1 -1
  579. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  580. package/dist/cli/backend/src/services/core/storage.service.js +5 -0
  581. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  582. package/dist/cli/backend/src/services/mcp-server.js +1 -1
  583. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  584. package/dist/cli/backend/src/types/chat.types.d.ts +39 -1
  585. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  586. package/dist/cli/backend/src/types/chat.types.js +45 -2
  587. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  588. package/dist/cli/backend/src/types/index.d.ts +54 -4
  589. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  590. package/dist/cli/backend/src/types/index.js.map +1 -1
  591. package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
  592. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  593. package/dist/cli/backend/src/types/settings.types.js +4 -0
  594. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  595. package/dist/cli/backend/src/utils/gemini-trusted-folders.d.ts +43 -0
  596. package/dist/cli/backend/src/utils/gemini-trusted-folders.d.ts.map +1 -0
  597. package/dist/cli/backend/src/utils/gemini-trusted-folders.js +94 -0
  598. package/dist/cli/backend/src/utils/gemini-trusted-folders.js.map +1 -0
  599. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts +2 -1
  600. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts.map +1 -1
  601. package/dist/cli/backend/src/utils/terminal-output.utils.js +2 -28
  602. package/dist/cli/backend/src/utils/terminal-output.utils.js.map +1 -1
  603. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts +183 -0
  604. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -0
  605. package/dist/cli/backend/src/utils/terminal-string-ops.js +726 -0
  606. package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -0
  607. package/dist/cli/cli/src/commands/onboard.d.ts +2 -1
  608. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  609. package/dist/cli/cli/src/commands/onboard.js +21 -8
  610. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  611. package/dist/cli/cli/src/commands/start.d.ts +1 -0
  612. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  613. package/dist/cli/cli/src/commands/start.js +71 -23
  614. package/dist/cli/cli/src/commands/start.js.map +1 -1
  615. package/dist/cli/cli/src/constants.d.ts +1 -1
  616. package/dist/cli/cli/src/constants.d.ts.map +1 -1
  617. package/dist/cli/cli/src/constants.js +1 -1
  618. package/dist/cli/cli/src/constants.js.map +1 -1
  619. package/dist/cli/cli/src/index.js +1 -0
  620. package/dist/cli/cli/src/index.js.map +1 -1
  621. package/dist/cli/cli/src/utils/project-scaffold.d.ts +109 -0
  622. package/dist/cli/cli/src/utils/project-scaffold.d.ts.map +1 -0
  623. package/dist/cli/cli/src/utils/project-scaffold.js +346 -0
  624. package/dist/cli/cli/src/utils/project-scaffold.js.map +1 -0
  625. package/dist/cli/cli/src/utils/templates.d.ts +7 -2
  626. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
  627. package/dist/cli/cli/src/utils/templates.js +76 -7
  628. package/dist/cli/cli/src/utils/templates.js.map +1 -1
  629. package/dist/cli/config/constants.d.ts +40 -1
  630. package/dist/cli/config/constants.d.ts.map +1 -1
  631. package/dist/cli/config/constants.js +41 -1
  632. package/dist/cli/config/constants.js.map +1 -1
  633. package/dist/cli/config/index.d.ts +2 -2
  634. package/dist/cli/config/index.d.ts.map +1 -1
  635. package/dist/cli/config/index.js +2 -2
  636. package/dist/cli/config/index.js.map +1 -1
  637. package/frontend/dist/assets/index-510ab719.css +33 -0
  638. package/frontend/dist/assets/index-935cd846.js +4961 -0
  639. package/frontend/dist/index.html +2 -2
  640. package/package.json +9 -4
  641. package/frontend/dist/assets/index-a23214ae.js +0 -4919
  642. package/frontend/dist/assets/index-c407fe13.css +0 -33
@@ -0,0 +1,561 @@
1
+ #!/usr/bin/env bash
2
+ # =============================================================================
3
+ # Desktop App Control — Crewly Skill wrapping agent-browser (Vercel Labs)
4
+ #
5
+ # Controls Electron desktop apps and Chrome browsers via CDP using
6
+ # agent-browser's accessibility snapshot + ref system.
7
+ #
8
+ # Usage:
9
+ # bash execute.sh <subcommand> [--options...]
10
+ #
11
+ # Subcommands:
12
+ # scan Scan for controllable apps
13
+ # launch --app NAME --port N Launch app with CDP enabled
14
+ # connect --port N Connect to app via CDP
15
+ # snapshot [--interactive] Accessibility snapshot with refs
16
+ # click --ref @eN Click element by ref
17
+ # fill --ref @eN --text TEXT Fill element with text
18
+ # press --key KEY Press keyboard key
19
+ # type-text --text TEXT Type text with keystrokes
20
+ # screenshot [--output PATH] Take screenshot
21
+ # get-text --ref @eN Get text content of element
22
+ # scroll [--direction DIR] Scroll (up/down/left/right)
23
+ # tabs List tabs/targets
24
+ # tab --index N Switch to tab by index
25
+ # eval --code JS Run JavaScript
26
+ # close Close browser connection
27
+ # status Check agent-browser status
28
+ # =============================================================================
29
+
30
+ set -euo pipefail
31
+
32
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
33
+ LOG_DIR="${HOME}/.crewly/logs"
34
+ LOG_FILE="${LOG_DIR}/desktop-app-control.log"
35
+
36
+ # Ensure log directory exists
37
+ mkdir -p "$LOG_DIR"
38
+
39
+ # -----------------------------------------------------------------------------
40
+ # Helpers
41
+ # -----------------------------------------------------------------------------
42
+ log_action() {
43
+ local timestamp
44
+ timestamp=$(date '+%Y-%m-%d %H:%M:%S')
45
+ echo "[$timestamp] $*" >> "$LOG_FILE"
46
+ }
47
+
48
+ error_exit() {
49
+ echo "{\"error\":\"$1\"}" >&2
50
+ exit 1
51
+ }
52
+
53
+ require_agent_browser() {
54
+ if ! command -v agent-browser &>/dev/null; then
55
+ error_exit "agent-browser not installed. Run: npm install -g agent-browser && agent-browser install"
56
+ fi
57
+ }
58
+
59
+ json_escape() {
60
+ # Escape string for JSON embedding
61
+ printf '%s' "$1" | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read()), end="")'
62
+ }
63
+
64
+ # Known apps: "name|port" format (avoid associative arrays for set -u compat)
65
+ KNOWN_ELECTRON_APPS="Slack|9222
66
+ Visual Studio Code|9223
67
+ Discord|9225
68
+ Notion|9224
69
+ Figma|9227
70
+ Spotify|9228
71
+ Postman|9229
72
+ MongoDB Compass|0
73
+ Termius|0
74
+ FloPost|0
75
+ Antigravity|0"
76
+
77
+ KNOWN_BROWSERS="Google Chrome|9226
78
+ Brave Browser|0
79
+ Microsoft Edge|0
80
+ Arc|0"
81
+
82
+ # Get default port for an app name
83
+ get_default_port() {
84
+ local name="$1"
85
+ local entry
86
+ entry=$(echo "$KNOWN_ELECTRON_APPS" | grep "^${name}|" || echo "$KNOWN_BROWSERS" | grep "^${name}|" || echo "")
87
+ if [ -n "$entry" ]; then
88
+ echo "$entry" | cut -d'|' -f2
89
+ else
90
+ echo "9222"
91
+ fi
92
+ }
93
+
94
+ # -----------------------------------------------------------------------------
95
+ # scan — Find controllable apps on this machine
96
+ # -----------------------------------------------------------------------------
97
+ do_scan() {
98
+ log_action "scan"
99
+
100
+ local apps_json="["
101
+ local first=true
102
+
103
+ # Helper to add an app entry
104
+ _add_app() {
105
+ local name="$1" type="$2" running="$3" port="$4" cdp="$5"
106
+ [ "$first" = true ] && first=false || apps_json+=","
107
+ apps_json+="{\"name\":\"$name\",\"type\":\"$type\",\"installed\":true,\"running\":$running,\"defaultPort\":$port,\"cdpActive\":$cdp}"
108
+ }
109
+
110
+ # Scan for Electron apps by checking framework directory
111
+ for app_dir in /Applications/*.app; do
112
+ [ ! -d "$app_dir" ] && continue
113
+ if [ -d "$app_dir/Contents/Frameworks/Electron Framework.framework" ]; then
114
+ local app_name
115
+ app_name=$(basename "$app_dir" .app)
116
+ local running="false"
117
+ if pgrep -f "$(basename "$app_dir")" > /dev/null 2>&1; then
118
+ running="true"
119
+ fi
120
+
121
+ local port
122
+ port=$(get_default_port "$app_name")
123
+
124
+ local cdp_active="false"
125
+ if [ "$port" -gt 0 ] 2>/dev/null; then
126
+ local cdp_check
127
+ cdp_check=$(curl -s --connect-timeout 1 "http://127.0.0.1:${port}/json/version" 2>/dev/null || echo "")
128
+ if [ -n "$cdp_check" ]; then
129
+ cdp_active="true"
130
+ fi
131
+ fi
132
+
133
+ _add_app "$app_name" "electron" "$running" "$port" "$cdp_active"
134
+ fi
135
+ done
136
+
137
+ # Scan Chrome-based browsers (inline loop, no subshell)
138
+ local browser port
139
+ while IFS='|' read -r browser port; do
140
+ [ -z "$browser" ] && continue
141
+ if [ -d "/Applications/$browser.app" ]; then
142
+ local running="false"
143
+ if pgrep -f "$browser" > /dev/null 2>&1; then
144
+ running="true"
145
+ fi
146
+ local cdp_active="false"
147
+ if [ "$port" -gt 0 ] 2>/dev/null; then
148
+ local cdp_check
149
+ cdp_check=$(curl -s --connect-timeout 1 "http://127.0.0.1:${port}/json/version" 2>/dev/null || echo "")
150
+ if [ -n "$cdp_check" ]; then
151
+ cdp_active="true"
152
+ fi
153
+ fi
154
+ _add_app "$browser" "browser" "$running" "$port" "$cdp_active"
155
+ fi
156
+ done <<< "$KNOWN_BROWSERS"
157
+
158
+ # Probe common CDP ports
159
+ local active_ports="["
160
+ local first_port=true
161
+ for probe_port in 9222 9223 9224 9225 9226 9227 9228 9229; do
162
+ local result
163
+ result=$(curl -s --connect-timeout 1 "http://127.0.0.1:${probe_port}/json/version" 2>/dev/null || echo "")
164
+ if [ -n "$result" ]; then
165
+ local browser_name
166
+ browser_name=$(echo "$result" | jq -r '.Browser // "unknown"' 2>/dev/null || echo "unknown")
167
+ [ "$first_port" = true ] && first_port=false || active_ports+=","
168
+ active_ports+="{\"port\":$probe_port,\"browser\":\"$browser_name\"}"
169
+ fi
170
+ done
171
+ active_ports+="]"
172
+
173
+ apps_json+="]"
174
+ echo "{\"success\":true,\"action\":\"scan\",\"apps\":$apps_json,\"activeCdpPorts\":$active_ports}"
175
+ }
176
+
177
+ # -----------------------------------------------------------------------------
178
+ # launch — Launch an app with CDP enabled
179
+ # Params: appName, port
180
+ # -----------------------------------------------------------------------------
181
+ do_launch() {
182
+ local app_name="$1"
183
+ local port="$2"
184
+
185
+ [ -z "$app_name" ] && error_exit "Missing --app parameter"
186
+ [ -z "$port" ] && port=$(get_default_port "$app_name")
187
+
188
+ # Check if already running with CDP
189
+ local cdp_check
190
+ cdp_check=$(curl -s --connect-timeout 1 "http://127.0.0.1:${port}/json/version" 2>/dev/null || echo "")
191
+ if [ -n "$cdp_check" ]; then
192
+ echo "{\"success\":true,\"action\":\"launch\",\"app\":\"$app_name\",\"port\":$port,\"status\":\"already_connected\",\"message\":\"App already running with CDP on port $port\"}"
193
+ return 0
194
+ fi
195
+
196
+ # Launch the app
197
+ log_action "launch app=$app_name port=$port"
198
+ open -a "$app_name" --args --remote-debugging-port="$port" 2>/dev/null || {
199
+ error_exit "Failed to launch '$app_name'. Is it installed?"
200
+ }
201
+
202
+ # Wait for CDP to become available
203
+ local retries=10
204
+ while [ $retries -gt 0 ]; do
205
+ sleep 1
206
+ cdp_check=$(curl -s --connect-timeout 1 "http://127.0.0.1:${port}/json/version" 2>/dev/null || echo "")
207
+ if [ -n "$cdp_check" ]; then
208
+ local browser_name
209
+ browser_name=$(echo "$cdp_check" | jq -r '.Browser // "unknown"' 2>/dev/null || echo "unknown")
210
+ echo "{\"success\":true,\"action\":\"launch\",\"app\":\"$app_name\",\"port\":$port,\"browser\":\"$browser_name\",\"status\":\"launched\"}"
211
+ return 0
212
+ fi
213
+ retries=$((retries - 1))
214
+ done
215
+
216
+ echo "{\"success\":true,\"action\":\"launch\",\"app\":\"$app_name\",\"port\":$port,\"status\":\"launched_no_cdp\",\"message\":\"App launched but CDP not yet available. The app may need to be quit first and relaunched. Try: quit the app manually, then run this command again.\"}"
217
+ }
218
+
219
+ # -----------------------------------------------------------------------------
220
+ # Subcommands that wrap agent-browser
221
+ # -----------------------------------------------------------------------------
222
+
223
+ do_connect() {
224
+ local port="$1"
225
+ [ -z "$port" ] && error_exit "Missing --port parameter"
226
+ require_agent_browser
227
+ log_action "connect port=$port"
228
+
229
+ local session="${SESSION_NAME:-}"
230
+ local session_flag=""
231
+ [ -n "$session" ] && session_flag="--session $session"
232
+
233
+ local output
234
+ # shellcheck disable=SC2086
235
+ output=$(agent-browser $session_flag connect "$port" 2>&1) || {
236
+ echo "{\"success\":false,\"action\":\"connect\",\"port\":$port,\"error\":$(json_escape "$output")}"
237
+ return 1
238
+ }
239
+ echo "{\"success\":true,\"action\":\"connect\",\"port\":$port,\"output\":$(json_escape "$output")}"
240
+ }
241
+
242
+ do_snapshot() {
243
+ require_agent_browser
244
+ log_action "snapshot interactive=$INTERACTIVE"
245
+
246
+ local flags=""
247
+ [ "$INTERACTIVE" = "true" ] && flags="-i"
248
+ [ -n "$COMPACT" ] && flags="$flags -c"
249
+
250
+ local session_flag=""
251
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
252
+
253
+ local output
254
+ # shellcheck disable=SC2086
255
+ output=$(agent-browser $session_flag snapshot $flags 2>&1) || {
256
+ echo "{\"success\":false,\"action\":\"snapshot\",\"error\":$(json_escape "$output")}"
257
+ return 1
258
+ }
259
+ echo "{\"success\":true,\"action\":\"snapshot\",\"output\":$(json_escape "$output")}"
260
+ }
261
+
262
+ do_click() {
263
+ local ref="$1"
264
+ [ -z "$ref" ] && error_exit "Missing --ref parameter"
265
+ require_agent_browser
266
+ log_action "click ref=$ref"
267
+
268
+ local session_flag=""
269
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
270
+
271
+ local output
272
+ # shellcheck disable=SC2086
273
+ output=$(agent-browser $session_flag click "$ref" 2>&1) || {
274
+ echo "{\"success\":false,\"action\":\"click\",\"ref\":\"$ref\",\"error\":$(json_escape "$output")}"
275
+ return 1
276
+ }
277
+ echo "{\"success\":true,\"action\":\"click\",\"ref\":\"$ref\",\"output\":$(json_escape "$output")}"
278
+ }
279
+
280
+ do_fill() {
281
+ local ref="$1"
282
+ local text="$2"
283
+ [ -z "$ref" ] && error_exit "Missing --ref parameter"
284
+ [ -z "$text" ] && error_exit "Missing --text parameter"
285
+ require_agent_browser
286
+ log_action "fill ref=$ref"
287
+
288
+ local session_flag=""
289
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
290
+
291
+ local output
292
+ # shellcheck disable=SC2086
293
+ output=$(agent-browser $session_flag fill "$ref" "$text" 2>&1) || {
294
+ echo "{\"success\":false,\"action\":\"fill\",\"ref\":\"$ref\",\"error\":$(json_escape "$output")}"
295
+ return 1
296
+ }
297
+ echo "{\"success\":true,\"action\":\"fill\",\"ref\":\"$ref\"}"
298
+ }
299
+
300
+ do_press() {
301
+ local key="$1"
302
+ [ -z "$key" ] && error_exit "Missing --key parameter"
303
+ require_agent_browser
304
+ log_action "press key=$key"
305
+
306
+ local session_flag=""
307
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
308
+
309
+ local output
310
+ # shellcheck disable=SC2086
311
+ output=$(agent-browser $session_flag press "$key" 2>&1) || {
312
+ echo "{\"success\":false,\"action\":\"press\",\"key\":\"$key\",\"error\":$(json_escape "$output")}"
313
+ return 1
314
+ }
315
+ echo "{\"success\":true,\"action\":\"press\",\"key\":\"$key\"}"
316
+ }
317
+
318
+ do_type_text() {
319
+ local text="$1"
320
+ [ -z "$text" ] && error_exit "Missing --text parameter"
321
+ require_agent_browser
322
+ log_action "type-text chars=${#text}"
323
+
324
+ local session_flag=""
325
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
326
+
327
+ local output
328
+ # shellcheck disable=SC2086
329
+ output=$(agent-browser $session_flag keyboard type "$text" 2>&1) || {
330
+ echo "{\"success\":false,\"action\":\"type-text\",\"error\":$(json_escape "$output")}"
331
+ return 1
332
+ }
333
+ echo "{\"success\":true,\"action\":\"type-text\",\"characters\":${#text}}"
334
+ }
335
+
336
+ do_screenshot() {
337
+ local output_path="${1:-/tmp/desktop-app-screenshot.png}"
338
+ require_agent_browser
339
+ log_action "screenshot output=$output_path"
340
+
341
+ local session_flag=""
342
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
343
+
344
+ local result
345
+ # shellcheck disable=SC2086
346
+ result=$(agent-browser $session_flag screenshot "$output_path" 2>&1) || {
347
+ echo "{\"success\":false,\"action\":\"screenshot\",\"error\":$(json_escape "$result")}"
348
+ return 1
349
+ }
350
+
351
+ if [ -f "$output_path" ]; then
352
+ local size
353
+ size=$(stat -f%z "$output_path" 2>/dev/null || stat -c%s "$output_path" 2>/dev/null || echo "0")
354
+ echo "{\"success\":true,\"action\":\"screenshot\",\"file\":\"$output_path\",\"size\":$size}"
355
+ else
356
+ echo "{\"success\":true,\"action\":\"screenshot\",\"output\":$(json_escape "$result")}"
357
+ fi
358
+ }
359
+
360
+ do_get_text() {
361
+ local ref="$1"
362
+ [ -z "$ref" ] && error_exit "Missing --ref parameter"
363
+ require_agent_browser
364
+ log_action "get-text ref=$ref"
365
+
366
+ local session_flag=""
367
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
368
+
369
+ local output
370
+ # shellcheck disable=SC2086
371
+ output=$(agent-browser $session_flag get text "$ref" 2>&1) || {
372
+ echo "{\"success\":false,\"action\":\"get-text\",\"ref\":\"$ref\",\"error\":$(json_escape "$output")}"
373
+ return 1
374
+ }
375
+ echo "{\"success\":true,\"action\":\"get-text\",\"ref\":\"$ref\",\"text\":$(json_escape "$output")}"
376
+ }
377
+
378
+ do_scroll() {
379
+ local direction="${1:-down}"
380
+ local amount="${2:-}"
381
+ require_agent_browser
382
+ log_action "scroll direction=$direction amount=${amount:-default}"
383
+
384
+ local session_flag=""
385
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
386
+
387
+ local output
388
+ # shellcheck disable=SC2086
389
+ output=$(agent-browser $session_flag scroll "$direction" $amount 2>&1) || {
390
+ echo "{\"success\":false,\"action\":\"scroll\",\"error\":$(json_escape "$output")}"
391
+ return 1
392
+ }
393
+ echo "{\"success\":true,\"action\":\"scroll\",\"direction\":\"$direction\"}"
394
+ }
395
+
396
+ do_tabs() {
397
+ require_agent_browser
398
+ log_action "tabs"
399
+
400
+ local session_flag=""
401
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
402
+
403
+ local output
404
+ # shellcheck disable=SC2086
405
+ output=$(agent-browser $session_flag tab 2>&1) || {
406
+ echo "{\"success\":false,\"action\":\"tabs\",\"error\":$(json_escape "$output")}"
407
+ return 1
408
+ }
409
+ echo "{\"success\":true,\"action\":\"tabs\",\"output\":$(json_escape "$output")}"
410
+ }
411
+
412
+ do_tab_switch() {
413
+ local index="$1"
414
+ [ -z "$index" ] && error_exit "Missing --index parameter"
415
+ require_agent_browser
416
+ log_action "tab index=$index"
417
+
418
+ local session_flag=""
419
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
420
+
421
+ local output
422
+ # shellcheck disable=SC2086
423
+ output=$(agent-browser $session_flag tab "$index" 2>&1) || {
424
+ echo "{\"success\":false,\"action\":\"tab\",\"error\":$(json_escape "$output")}"
425
+ return 1
426
+ }
427
+ echo "{\"success\":true,\"action\":\"tab\",\"index\":$index}"
428
+ }
429
+
430
+ do_eval() {
431
+ local code="$1"
432
+ [ -z "$code" ] && error_exit "Missing --code parameter"
433
+ require_agent_browser
434
+ log_action "eval"
435
+
436
+ local session_flag=""
437
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
438
+
439
+ local output
440
+ # shellcheck disable=SC2086
441
+ output=$(agent-browser $session_flag eval "$code" 2>&1) || {
442
+ echo "{\"success\":false,\"action\":\"eval\",\"error\":$(json_escape "$output")}"
443
+ return 1
444
+ }
445
+ echo "{\"success\":true,\"action\":\"eval\",\"result\":$(json_escape "$output")}"
446
+ }
447
+
448
+ do_close() {
449
+ require_agent_browser
450
+ log_action "close"
451
+
452
+ local session_flag=""
453
+ [ -n "${SESSION_NAME:-}" ] && session_flag="--session $SESSION_NAME"
454
+
455
+ local output
456
+ # shellcheck disable=SC2086
457
+ output=$(agent-browser $session_flag close 2>&1) || true
458
+ echo "{\"success\":true,\"action\":\"close\"}"
459
+ }
460
+
461
+ do_status() {
462
+ require_agent_browser
463
+ local version
464
+ version=$(agent-browser --version 2>&1 || echo "unknown")
465
+
466
+ local sessions
467
+ sessions=$(agent-browser session list 2>&1 || echo "none")
468
+
469
+ echo "{\"success\":true,\"action\":\"status\",\"version\":$(json_escape "$version"),\"sessions\":$(json_escape "$sessions")}"
470
+ }
471
+
472
+ # -----------------------------------------------------------------------------
473
+ # Argument parsing
474
+ # -----------------------------------------------------------------------------
475
+ SUBCOMMAND="${1:-}"
476
+ shift 2>/dev/null || true
477
+
478
+ APP_NAME=""
479
+ PORT=""
480
+ REF=""
481
+ TEXT=""
482
+ KEY=""
483
+ CODE=""
484
+ OUTPUT=""
485
+ DIRECTION=""
486
+ AMOUNT=""
487
+ INDEX=""
488
+ SESSION_NAME=""
489
+ INTERACTIVE="false"
490
+ COMPACT=""
491
+
492
+ while [ $# -gt 0 ]; do
493
+ case "$1" in
494
+ --app) shift; APP_NAME="${1:-}" ;;
495
+ --port) shift; PORT="${1:-}" ;;
496
+ --ref) shift; REF="${1:-}" ;;
497
+ --text) shift; TEXT="${1:-}" ;;
498
+ --key) shift; KEY="${1:-}" ;;
499
+ --code) shift; CODE="${1:-}" ;;
500
+ --output) shift; OUTPUT="${1:-}" ;;
501
+ --direction) shift; DIRECTION="${1:-}" ;;
502
+ --amount) shift; AMOUNT="${1:-}" ;;
503
+ --index) shift; INDEX="${1:-}" ;;
504
+ --session) shift; SESSION_NAME="${1:-}" ;;
505
+ --interactive|-i) INTERACTIVE="true" ;;
506
+ --compact|-c) COMPACT="true" ;;
507
+ *) ;; # Ignore unknown args
508
+ esac
509
+ shift 2>/dev/null || true
510
+ done
511
+
512
+ # -----------------------------------------------------------------------------
513
+ # Dispatch
514
+ # -----------------------------------------------------------------------------
515
+ if [ -z "$SUBCOMMAND" ]; then
516
+ cat <<'USAGE'
517
+ Usage: bash execute.sh <subcommand> [--options...]
518
+
519
+ Subcommands:
520
+ scan Scan for controllable apps
521
+ launch --app NAME [--port N] Launch app with CDP enabled
522
+ connect --port N Connect to app via CDP
523
+ snapshot [--interactive] [--compact] Accessibility snapshot with refs
524
+ click --ref @eN Click element by ref
525
+ fill --ref @eN --text TEXT Fill element with text
526
+ press --key KEY Press keyboard key
527
+ type-text --text TEXT Type text with keystrokes
528
+ screenshot [--output PATH] Take screenshot
529
+ get-text --ref @eN Get text content
530
+ scroll [--direction DIR] [--amount] Scroll page
531
+ tabs List tabs/targets
532
+ tab --index N Switch tab
533
+ eval --code 'JS' Run JavaScript
534
+ close Close connection
535
+ status Check agent-browser status
536
+
537
+ Options:
538
+ --session NAME Use named session (for multi-app control)
539
+ USAGE
540
+ exit 1
541
+ fi
542
+
543
+ case "$SUBCOMMAND" in
544
+ scan) do_scan ;;
545
+ launch) do_launch "$APP_NAME" "$PORT" ;;
546
+ connect) do_connect "$PORT" ;;
547
+ snapshot) do_snapshot ;;
548
+ click) do_click "$REF" ;;
549
+ fill) do_fill "$REF" "$TEXT" ;;
550
+ press) do_press "$KEY" ;;
551
+ type-text) do_type_text "$TEXT" ;;
552
+ screenshot) do_screenshot "$OUTPUT" ;;
553
+ get-text) do_get_text "$REF" ;;
554
+ scroll) do_scroll "$DIRECTION" "$AMOUNT" ;;
555
+ tabs) do_tabs ;;
556
+ tab) do_tab_switch "$INDEX" ;;
557
+ eval) do_eval "$CODE" ;;
558
+ close) do_close ;;
559
+ status) do_status ;;
560
+ *) error_exit "Unknown subcommand: $SUBCOMMAND" ;;
561
+ esac
@@ -0,0 +1,102 @@
1
+ # Desktop App Control (agent-browser)
2
+
3
+ Control Electron desktop apps and Chrome browsers using [agent-browser](https://github.com/vercel-labs/agent-browser) by Vercel Labs. Uses accessibility snapshots with ref-based interaction for 82-96% token savings.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # Scan for controllable apps
9
+ bash execute.sh scan
10
+
11
+ # Launch an app with CDP enabled
12
+ bash execute.sh launch --app 'Slack' --port 9222
13
+
14
+ # Connect to a running app
15
+ bash execute.sh connect --port 9222
16
+
17
+ # Take accessibility snapshot (shows refs like @e1, @e2)
18
+ bash execute.sh snapshot
19
+
20
+ # Interactive elements only (recommended for AI)
21
+ bash execute.sh snapshot --interactive
22
+
23
+ # Click an element by ref
24
+ bash execute.sh click --ref @e5
25
+
26
+ # Type text into a field
27
+ bash execute.sh fill --ref @e3 --text 'Hello World'
28
+
29
+ # Press a key
30
+ bash execute.sh press --key Enter
31
+
32
+ # Take screenshot
33
+ bash execute.sh screenshot --output /tmp/app.png
34
+
35
+ # Get text content of element
36
+ bash execute.sh get-text --ref @e1
37
+
38
+ # Scroll
39
+ bash execute.sh scroll --direction down
40
+
41
+ # List tabs/windows
42
+ bash execute.sh tabs
43
+
44
+ # Switch to a tab
45
+ bash execute.sh tab --index 2
46
+
47
+ # Disconnect
48
+ bash execute.sh close
49
+
50
+ # Check agent-browser status and version
51
+ bash execute.sh status
52
+ ```
53
+
54
+ ## Architecture
55
+
56
+ ```
57
+ agent-browser (Vercel Labs)
58
+ ├── Rust CLI — Fast command parsing
59
+ ├── Node.js Daemon — Playwright browser lifecycle
60
+ └── CDP Connection — Chrome DevTools Protocol
61
+ ```
62
+
63
+ **Snapshot + Refs Workflow:**
64
+ 1. `snapshot` returns accessibility tree with `[ref=e1]` markers
65
+ 2. Use `@e1` to interact: `click @e1`, `fill @e3 "text"`, `get text @e1`
66
+ 3. Re-snapshot after actions to get updated refs
67
+
68
+ ## Controllable Apps
69
+
70
+ **Electron Apps** (launch with `--remote-debugging-port`):
71
+ - VS Code, Slack, Discord, Notion, Figma, Spotify, Postman, MongoDB Compass, Termius, etc.
72
+
73
+ **Chrome-based Browsers:**
74
+ - Google Chrome, Brave, Microsoft Edge, Chromium, Arc
75
+
76
+ **Any Electron App** — if it's built on Electron, it can be controlled.
77
+
78
+ ## Multi-App Control
79
+
80
+ Use sessions to control multiple apps simultaneously:
81
+
82
+ ```bash
83
+ bash execute.sh launch --app 'Slack' --port 9222 --session slack
84
+ bash execute.sh launch --app 'Visual Studio Code' --port 9223 --session vscode
85
+
86
+ bash execute.sh snapshot --session slack --interactive
87
+ bash execute.sh snapshot --session vscode --interactive
88
+ ```
89
+
90
+ ## Safety Rules
91
+
92
+ 1. NEVER close or kill apps without explicit user permission
93
+ 2. NEVER interact with password fields or sensitive data
94
+ 3. Always snapshot BEFORE and AFTER any action for verification
95
+ 4. All actions logged to `~/.crewly/logs/desktop-app-control.log`
96
+ 5. Only connect to locally running apps (127.0.0.1)
97
+
98
+ ## Requirements
99
+
100
+ - `agent-browser` (npm install -g agent-browser && agent-browser install)
101
+ - macOS / Linux / Windows
102
+ - Target apps must be relaunched with `--remote-debugging-port` flag
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "desktop-app-control",
3
+ "name": "Desktop App Control (agent-browser)",
4
+ "description": "Control desktop Electron apps and Chrome-based browsers via agent-browser (Vercel Labs). Uses CDP (Chrome DevTools Protocol) with accessibility snapshots and ref-based interaction — 82-96% token savings vs raw Playwright. Supports VS Code, Slack, Discord, Notion, Figma, Spotify, Chrome, and any Electron app.",
5
+ "category": "automation",
6
+ "skillType": "claude-skill",
7
+ "promptFile": "instructions.md",
8
+ "execution": {
9
+ "type": "script",
10
+ "script": {
11
+ "file": "execute.sh",
12
+ "interpreter": "bash",
13
+ "timeoutMs": 60000
14
+ }
15
+ },
16
+ "triggers": [
17
+ "desktop app", "electron", "browser control", "agent-browser",
18
+ "slack control", "vscode control", "notion control", "discord control",
19
+ "chrome control", "cdp", "accessibility snapshot", "desktop automation"
20
+ ],
21
+ "tags": [
22
+ "automation", "desktop", "electron", "cdp", "agent-browser",
23
+ "browser", "playwright", "accessibility", "snapshot"
24
+ ],
25
+ "assignableRoles": ["developer", "generalist", "designer", "qa"],
26
+ "dependencies": {
27
+ "required": ["agent-browser"],
28
+ "install": "npm install -g agent-browser && agent-browser install"
29
+ },
30
+ "version": "1.0.0",
31
+ "createdAt": "2026-03-06T00:00:00.000Z",
32
+ "updatedAt": "2026-03-06T00:00:00.000Z"
33
+ }