crewly 1.5.18 → 1.5.20

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 (1158) hide show
  1. package/config/constants.ts +50 -0
  2. package/config/domain-sops/content-production-pipeline.sop.md +76 -0
  3. package/config/domain-sops/content-publishing-policy.sop.md +59 -0
  4. package/config/domain-sops/customer-onboarding.sop.md +74 -0
  5. package/config/domain-sops/expert-distillation.sop.md +70 -0
  6. package/config/domain-sops/innovation-strategy.sop.md +26 -0
  7. package/config/experts/EXAMPLE.json +11 -0
  8. package/config/experts/EXAMPLE.md +41 -0
  9. package/config/experts/empathetic-resolver/expert.json +11 -0
  10. package/config/experts/empathetic-resolver.md +32 -0
  11. package/config/experts/pragmatic-architect/expert.json +11 -0
  12. package/config/experts/pragmatic-architect.md +32 -0
  13. package/config/experts/viral-alchemist/expert.json +11 -0
  14. package/config/experts/viral-alchemist.md +32 -0
  15. package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +2 -2
  16. package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +57 -1
  17. package/config/risk-policies/no-local-browser.policy.md +43 -0
  18. package/config/roles/developer/prompt.md +43 -0
  19. package/config/roles/orchestrator/fragments/role-boundary.md +31 -0
  20. package/config/roles/orchestrator/prompt.md +104 -0
  21. package/config/skills/agent/computer-use/SKILL.md +144 -93
  22. package/config/skills/agent/computer-use/execute.sh +847 -211
  23. package/config/skills/agent/core/break-down-request/SKILL.md +128 -0
  24. package/config/skills/agent/core/break-down-request/execute.sh +200 -0
  25. package/config/skills/agent/core/claim-heartbeat/execute.sh +57 -0
  26. package/config/skills/agent/core/claim-heartbeat/execute.test.sh +130 -0
  27. package/config/skills/agent/core/create-intent-tasks/execute.sh +93 -0
  28. package/config/skills/agent/core/create-mission/SKILL.md +78 -0
  29. package/config/skills/agent/core/create-mission/execute.sh +141 -0
  30. package/config/skills/agent/core/create-request/SKILL.md +132 -0
  31. package/config/skills/agent/core/create-request/execute.sh +176 -0
  32. package/config/skills/agent/core/create-task/SKILL.md +76 -0
  33. package/config/skills/agent/core/create-task/execute.sh +134 -0
  34. package/config/skills/agent/core/decompose-intent/execute.sh +106 -0
  35. package/config/skills/agent/core/extend-lease/execute.sh +63 -0
  36. package/config/skills/agent/core/extend-lease/execute.test.sh +46 -0
  37. package/config/skills/agent/core/get-my-context/execute.sh +85 -8
  38. package/config/skills/agent/core/get-my-tasks/SKILL.md +58 -0
  39. package/config/skills/agent/core/get-my-tasks/execute.sh +77 -6
  40. package/config/skills/agent/core/handoff-task/execute.sh +139 -95
  41. package/config/skills/agent/core/handoff-task/execute.test.sh +348 -0
  42. package/config/skills/agent/core/poll-tasks/execute.sh +182 -0
  43. package/config/skills/agent/core/poll-tasks/execute.test.sh +215 -0
  44. package/config/skills/agent/core/register-self/execute.sh +102 -14
  45. package/config/skills/agent/core/release-claim/execute.sh +53 -0
  46. package/config/skills/agent/core/release-claim/execute.test.sh +46 -0
  47. package/config/skills/agent/core/report-status/execute.sh +44 -0
  48. package/config/skills/agent/core/update-intent-task/execute.sh +93 -0
  49. package/config/skills/agent/core/work-loop/execute.sh +130 -0
  50. package/config/skills/agent/core/work-loop/execute.test.sh +52 -0
  51. package/config/skills/agent/core/workspace/execute.sh +270 -0
  52. package/config/skills/agent/core/workspace/execute.test.sh +185 -0
  53. package/config/skills/agent/remote-browser/SOP-google-flow-video.md +202 -0
  54. package/config/skills/agent/remote-browser/execute.sh +287 -0
  55. package/config/skills/agent/v3/plan-request/SKILL.md +72 -0
  56. package/config/skills/agent/v3/plan-request/execute.sh +116 -0
  57. package/config/skills/orchestrator/decompose-mission/SKILL.md +78 -0
  58. package/config/skills/orchestrator/decompose-mission/execute.sh +138 -0
  59. package/config/skills/orchestrator/delegate-task/SKILL.md +4 -3
  60. package/config/skills/orchestrator/delegate-task/execute.sh +43 -97
  61. package/config/skills/orchestrator/design-team/SKILL.md +51 -0
  62. package/config/skills/orchestrator/design-team/execute.sh +145 -0
  63. package/config/skills/orchestrator/measure-kr/SKILL.md +47 -0
  64. package/config/skills/orchestrator/measure-kr/execute.sh +87 -0
  65. package/config/skills/orchestrator/review-mission/SKILL.md +61 -0
  66. package/config/skills/orchestrator/review-mission/execute.sh +127 -0
  67. package/config/skills/team-leader/aggregate-results/execute.sh +25 -74
  68. package/config/skills/team-leader/delegate-task/SKILL.md +10 -0
  69. package/config/skills/team-leader/delegate-task/execute.sh +42 -3
  70. package/config/skills/team-leader/design-checklist/SKILL.md +122 -0
  71. package/config/skills/team-leader/design-checklist/execute.sh +157 -0
  72. package/config/skills/team-leader/verify-output/execute.sh +42 -0
  73. package/config/sops/xhs-requirement-log.v1.md +238 -0
  74. package/config/templates/agent-gemini-md.md +3 -1
  75. package/config/templates/ai-video-social-team.json +22 -0
  76. package/config/templates/broker-squad-v1.json +22 -0
  77. package/config/templates/customer-loyalty-team.json +44 -0
  78. package/config/templates/customer-ops-team.json +22 -0
  79. package/config/templates/dtc-viral-content-team.json +58 -0
  80. package/config/templates/expert-innovation-team.json +60 -0
  81. package/config/templates/growth-marketing-team.json +22 -0
  82. package/config/templates/pragmatic-mvp-dev-team.json +58 -0
  83. package/config/templates/pro-sops/norms/content-production-pipeline.md +39 -0
  84. package/config/templates/pro-sops/norms/customer-onboarding-sop.md +40 -0
  85. package/config/templates/prop-manager-v1.json +22 -0
  86. package/dist/backend/backend/src/constants.d.ts +5 -0
  87. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  88. package/dist/backend/backend/src/constants.js +5 -0
  89. package/dist/backend/backend/src/constants.js.map +1 -1
  90. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +12 -2
  91. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  92. package/dist/backend/backend/src/controllers/browser/browser.controller.js +34 -20
  93. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  94. package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
  95. package/dist/backend/backend/src/controllers/browser/browser.routes.js +4 -2
  96. package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
  97. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  98. package/dist/backend/backend/src/controllers/chat/chat.controller.js +28 -0
  99. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  100. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  101. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +5 -2
  102. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  103. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts +72 -0
  104. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts.map +1 -0
  105. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js +202 -0
  106. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js.map +1 -0
  107. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts +16 -0
  108. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts.map +1 -0
  109. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js +32 -0
  110. package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js.map +1 -0
  111. package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +63 -0
  112. package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +1 -0
  113. package/dist/backend/backend/src/controllers/eval/eval.controller.js +228 -0
  114. package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +1 -0
  115. package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +23 -0
  116. package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +1 -0
  117. package/dist/backend/backend/src/controllers/eval/eval.routes.js +37 -0
  118. package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +1 -0
  119. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +29 -0
  120. package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -0
  121. package/dist/backend/backend/src/controllers/expert/expert.controller.js +79 -0
  122. package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -0
  123. package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts +15 -0
  124. package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts.map +1 -0
  125. package/dist/backend/backend/src/controllers/expert/expert.routes.js +21 -0
  126. package/dist/backend/backend/src/controllers/expert/expert.routes.js.map +1 -0
  127. package/dist/backend/backend/src/controllers/expert/index.d.ts +9 -0
  128. package/dist/backend/backend/src/controllers/expert/index.d.ts.map +1 -0
  129. package/dist/backend/backend/src/controllers/expert/index.js +9 -0
  130. package/dist/backend/backend/src/controllers/expert/index.js.map +1 -0
  131. package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts +80 -0
  132. package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts.map +1 -0
  133. package/dist/backend/backend/src/controllers/fission/fission.controller.js +264 -0
  134. package/dist/backend/backend/src/controllers/fission/fission.controller.js.map +1 -0
  135. package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts +15 -0
  136. package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts.map +1 -0
  137. package/dist/backend/backend/src/controllers/fission/fission.routes.js +29 -0
  138. package/dist/backend/backend/src/controllers/fission/fission.routes.js.map +1 -0
  139. package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts +29 -0
  140. package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts.map +1 -0
  141. package/dist/backend/backend/src/controllers/growth/growth.controller.js +74 -0
  142. package/dist/backend/backend/src/controllers/growth/growth.controller.js.map +1 -0
  143. package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts +20 -0
  144. package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts.map +1 -0
  145. package/dist/backend/backend/src/controllers/growth/growth.routes.js +26 -0
  146. package/dist/backend/backend/src/controllers/growth/growth.routes.js.map +1 -0
  147. package/dist/backend/backend/src/controllers/index.d.ts +5 -1
  148. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  149. package/dist/backend/backend/src/controllers/index.js +9 -1
  150. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  151. package/dist/backend/backend/src/controllers/intent-task/index.d.ts +9 -0
  152. package/dist/backend/backend/src/controllers/intent-task/index.d.ts.map +1 -0
  153. package/dist/backend/backend/src/controllers/intent-task/index.js +9 -0
  154. package/dist/backend/backend/src/controllers/intent-task/index.js.map +1 -0
  155. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts +85 -0
  156. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts.map +1 -0
  157. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js +356 -0
  158. package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js.map +1 -0
  159. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts +19 -0
  160. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts.map +1 -0
  161. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js +43 -0
  162. package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js.map +1 -0
  163. package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +8 -0
  164. package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +1 -0
  165. package/dist/backend/backend/src/controllers/knowledge-v3/index.js +8 -0
  166. package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +1 -0
  167. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +63 -0
  168. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +1 -0
  169. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +179 -0
  170. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +1 -0
  171. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +22 -0
  172. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +1 -0
  173. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +34 -0
  174. package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +1 -0
  175. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  176. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +38 -1
  177. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  178. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  179. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +11 -0
  180. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  181. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +40 -0
  182. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -0
  183. package/dist/backend/backend/src/controllers/mission/kr.controller.js +131 -0
  184. package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -0
  185. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts +71 -0
  186. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts.map +1 -0
  187. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js +270 -0
  188. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js.map +1 -0
  189. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts +16 -0
  190. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -0
  191. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +327 -0
  192. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -0
  193. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -1
  194. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +5 -1
  195. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -1
  196. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts +19 -0
  197. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts.map +1 -1
  198. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js +36 -0
  199. package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js.map +1 -1
  200. package/dist/backend/backend/src/controllers/onboarding/index.d.ts +7 -0
  201. package/dist/backend/backend/src/controllers/onboarding/index.d.ts.map +1 -0
  202. package/dist/backend/backend/src/controllers/onboarding/index.js +7 -0
  203. package/dist/backend/backend/src/controllers/onboarding/index.js.map +1 -0
  204. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +24 -0
  205. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -0
  206. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +340 -0
  207. package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -0
  208. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts +21 -0
  209. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts.map +1 -0
  210. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js +181 -0
  211. package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js.map +1 -0
  212. package/dist/backend/backend/src/controllers/payment/payment.controller.js +1 -1
  213. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
  214. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +1 -1
  215. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
  216. package/dist/backend/backend/src/controllers/payment/payment.types.js +1 -1
  217. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
  218. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  219. package/dist/backend/backend/src/controllers/project/project.controller.js +0 -2
  220. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  221. package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
  222. package/dist/backend/backend/src/controllers/project/project.routes.js +9 -5
  223. package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
  224. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts +84 -0
  225. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts.map +1 -0
  226. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js +189 -0
  227. package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js.map +1 -0
  228. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts +16 -0
  229. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts.map +1 -0
  230. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js +29 -0
  231. package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js.map +1 -0
  232. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts +51 -0
  233. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts.map +1 -0
  234. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js +106 -0
  235. package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js.map +1 -0
  236. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts +15 -0
  237. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts.map +1 -0
  238. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js +25 -0
  239. package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js.map +1 -0
  240. package/dist/backend/backend/src/controllers/request/request.controller.d.ts +55 -0
  241. package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -0
  242. package/dist/backend/backend/src/controllers/request/request.controller.js +168 -0
  243. package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -0
  244. package/dist/backend/backend/src/controllers/request/request.routes.d.ts +23 -0
  245. package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -0
  246. package/dist/backend/backend/src/controllers/request/request.routes.js +37 -0
  247. package/dist/backend/backend/src/controllers/request/request.routes.js.map +1 -0
  248. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  249. package/dist/backend/backend/src/controllers/slack/slack.controller.js +18 -1
  250. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  251. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +20 -57
  252. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  253. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +283 -385
  254. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  255. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +180 -0
  256. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -0
  257. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +737 -0
  258. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -0
  259. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts +15 -0
  260. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -0
  261. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +45 -0
  262. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -0
  263. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts +75 -0
  264. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts.map +1 -0
  265. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js +170 -0
  266. package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js.map +1 -0
  267. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts +10 -0
  268. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts.map +1 -0
  269. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js +29 -0
  270. package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js.map +1 -0
  271. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  272. package/dist/backend/backend/src/controllers/team/team.routes.js +16 -12
  273. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  274. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +4 -4
  275. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
  276. package/dist/backend/backend/src/controllers/template/template.controller.js +73 -31
  277. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
  278. package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts +50 -0
  279. package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts.map +1 -0
  280. package/dist/backend/backend/src/controllers/trigger/trigger.controller.js +125 -0
  281. package/dist/backend/backend/src/controllers/trigger/trigger.controller.js.map +1 -0
  282. package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts +26 -0
  283. package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts.map +1 -0
  284. package/dist/backend/backend/src/controllers/trigger/trigger.routes.js +38 -0
  285. package/dist/backend/backend/src/controllers/trigger/trigger.routes.js.map +1 -0
  286. package/dist/backend/backend/src/controllers/user/user-validation.d.ts +86 -0
  287. package/dist/backend/backend/src/controllers/user/user-validation.d.ts.map +1 -0
  288. package/dist/backend/backend/src/controllers/user/user-validation.js +165 -0
  289. package/dist/backend/backend/src/controllers/user/user-validation.js.map +1 -0
  290. package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -1
  291. package/dist/backend/backend/src/controllers/user/user.routes.js +7 -4
  292. package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -1
  293. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts +72 -0
  294. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts.map +1 -0
  295. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js +236 -0
  296. package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js.map +1 -0
  297. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts +15 -0
  298. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts.map +1 -0
  299. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js +31 -0
  300. package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js.map +1 -0
  301. package/dist/backend/backend/src/index.d.ts +18 -0
  302. package/dist/backend/backend/src/index.d.ts.map +1 -1
  303. package/dist/backend/backend/src/index.js +643 -11
  304. package/dist/backend/backend/src/index.js.map +1 -1
  305. package/dist/backend/backend/src/middleware/cache.middleware.d.ts +43 -0
  306. package/dist/backend/backend/src/middleware/cache.middleware.d.ts.map +1 -0
  307. package/dist/backend/backend/src/middleware/cache.middleware.js +103 -0
  308. package/dist/backend/backend/src/middleware/cache.middleware.js.map +1 -0
  309. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +49 -9
  310. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -1
  311. package/dist/backend/backend/src/middleware/require-auth.middleware.js +115 -9
  312. package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -1
  313. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  314. package/dist/backend/backend/src/routes/api.routes.js +77 -0
  315. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  316. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  317. package/dist/backend/backend/src/routes/modules/task-management.routes.js +4 -0
  318. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  319. package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts +43 -0
  320. package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts.map +1 -0
  321. package/dist/backend/backend/src/scripts/backfill-mission-priority.js +90 -0
  322. package/dist/backend/backend/src/scripts/backfill-mission-priority.js.map +1 -0
  323. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +6 -9
  324. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  325. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +43 -30
  326. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  327. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  328. package/dist/backend/backend/src/services/agent/agent-registration.service.js +14 -0
  329. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  330. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +66 -1
  331. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  332. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +282 -4
  333. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  334. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +60 -0
  335. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
  336. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +407 -0
  337. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
  338. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +130 -0
  339. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +1 -0
  340. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +406 -0
  341. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +1 -0
  342. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +68 -0
  343. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +1 -0
  344. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +206 -0
  345. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +1 -0
  346. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +32 -0
  347. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +1 -0
  348. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +46 -0
  349. package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +1 -0
  350. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +87 -0
  351. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +1 -0
  352. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +299 -0
  353. package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +1 -0
  354. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +59 -0
  355. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +1 -0
  356. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +218 -0
  357. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +1 -0
  358. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +203 -0
  359. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +1 -0
  360. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +467 -0
  361. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +1 -0
  362. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +313 -0
  363. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +1 -0
  364. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +45 -0
  365. package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +1 -0
  366. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +21 -0
  367. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +1 -0
  368. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +21 -0
  369. package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +1 -0
  370. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +15 -0
  371. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +1 -0
  372. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +349 -0
  373. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +1 -0
  374. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +97 -0
  375. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +1 -0
  376. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +414 -0
  377. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +1 -0
  378. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +42 -0
  379. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +1 -0
  380. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +403 -0
  381. package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +1 -0
  382. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +41 -0
  383. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +1 -0
  384. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +58 -0
  385. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +1 -0
  386. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +15 -0
  387. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +1 -0
  388. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +396 -0
  389. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +1 -0
  390. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +14 -0
  391. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +1 -0
  392. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +564 -0
  393. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +1 -0
  394. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +13 -0
  395. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +1 -0
  396. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +634 -0
  397. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +1 -0
  398. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +21 -0
  399. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +1 -0
  400. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +1036 -0
  401. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +1 -0
  402. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +100 -0
  403. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +1 -0
  404. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +187 -0
  405. package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +1 -0
  406. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  407. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +43 -6
  408. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  409. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +7 -0
  410. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  411. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  412. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +10 -0
  413. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  414. package/dist/backend/backend/src/services/agent/idle-detection.service.js +63 -0
  415. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  416. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
  417. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
  418. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
  419. package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
  420. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  421. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +21 -0
  422. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  423. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
  424. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  425. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  426. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +26 -2
  427. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
  428. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +191 -8
  429. package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
  430. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  431. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +4 -0
  432. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  433. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
  434. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
  435. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
  436. package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
  437. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  438. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +3 -1
  439. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  440. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +11 -2
  441. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  442. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +59 -10
  443. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  444. package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts +115 -0
  445. package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts.map +1 -0
  446. package/dist/backend/backend/src/services/cache/redis-cache.service.js +316 -0
  447. package/dist/backend/backend/src/services/cache/redis-cache.service.js.map +1 -0
  448. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +8 -0
  449. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  450. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +55 -4
  451. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  452. package/dist/backend/backend/src/services/core/logger.service.js +1 -1
  453. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
  454. package/dist/backend/backend/src/services/core/storage.service.d.ts +33 -0
  455. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  456. package/dist/backend/backend/src/services/core/storage.service.js +54 -0
  457. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  458. package/dist/backend/backend/src/services/core/system-health.util.d.ts +23 -0
  459. package/dist/backend/backend/src/services/core/system-health.util.d.ts.map +1 -0
  460. package/dist/backend/backend/src/services/core/system-health.util.js +44 -0
  461. package/dist/backend/backend/src/services/core/system-health.util.js.map +1 -0
  462. package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts +188 -0
  463. package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts.map +1 -0
  464. package/dist/backend/backend/src/services/fission/fission-guard.service.js +372 -0
  465. package/dist/backend/backend/src/services/fission/fission-guard.service.js.map +1 -0
  466. package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts +137 -0
  467. package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts.map +1 -0
  468. package/dist/backend/backend/src/services/fission/fission-guard.types.js +133 -0
  469. package/dist/backend/backend/src/services/fission/fission-guard.types.js.map +1 -0
  470. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts +91 -0
  471. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts.map +1 -0
  472. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js +179 -0
  473. package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js.map +1 -0
  474. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts +138 -0
  475. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts.map +1 -0
  476. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js +244 -0
  477. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js.map +1 -0
  478. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +333 -0
  479. package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -0
  480. package/dist/backend/backend/src/services/intent-task/intent-task.service.js +843 -0
  481. package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -0
  482. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
  483. package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
  484. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +220 -0
  485. package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
  486. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
  487. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
  488. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
  489. package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
  490. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
  491. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
  492. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
  493. package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
  494. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts +34 -0
  495. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts.map +1 -0
  496. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js +128 -0
  497. package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js.map +1 -0
  498. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +11 -0
  499. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  500. package/dist/backend/backend/src/services/memory/agent-memory.service.js +76 -11
  501. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
  502. package/dist/backend/backend/src/services/memory/embedding-provider.d.ts +78 -0
  503. package/dist/backend/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
  504. package/dist/backend/backend/src/services/memory/embedding-provider.js +185 -0
  505. package/dist/backend/backend/src/services/memory/embedding-provider.js.map +1 -0
  506. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts +331 -0
  507. package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
  508. package/dist/backend/backend/src/services/memory/vector-store.service.js +814 -0
  509. package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -0
  510. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +15 -0
  511. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  512. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +42 -0
  513. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  514. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +8 -0
  515. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
  516. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +20 -0
  517. package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
  518. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +17 -0
  519. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  520. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +62 -0
  521. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  522. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +81 -0
  523. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -0
  524. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +287 -0
  525. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -0
  526. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts +73 -0
  527. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts.map +1 -0
  528. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js +199 -0
  529. package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js.map +1 -0
  530. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +7 -0
  531. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
  532. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +37 -6
  533. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
  534. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +56 -4
  535. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  536. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +102 -7
  537. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  538. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts +5 -1
  539. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts.map +1 -1
  540. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js +41 -0
  541. package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js.map +1 -1
  542. package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts +36 -0
  543. package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts.map +1 -1
  544. package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.js.map +1 -1
  545. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +51 -0
  546. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -0
  547. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +136 -0
  548. package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -0
  549. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts +178 -0
  550. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts.map +1 -0
  551. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js +163 -0
  552. package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js.map +1 -0
  553. package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts +141 -0
  554. package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts.map +1 -0
  555. package/dist/backend/backend/src/services/onboarding/website-analysis.service.js +411 -0
  556. package/dist/backend/backend/src/services/onboarding/website-analysis.service.js.map +1 -0
  557. package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts +129 -0
  558. package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts.map +1 -0
  559. package/dist/backend/backend/src/services/onboarding/website-analysis.types.js +10 -0
  560. package/dist/backend/backend/src/services/onboarding/website-analysis.types.js.map +1 -0
  561. package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts +241 -0
  562. package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts.map +1 -0
  563. package/dist/backend/backend/src/services/onboarding/website-extractor.service.js +605 -0
  564. package/dist/backend/backend/src/services/onboarding/website-extractor.service.js.map +1 -0
  565. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
  566. package/dist/backend/backend/src/services/payment/stripe.service.js +17 -11
  567. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
  568. package/dist/backend/backend/src/services/policy/default-policies.d.ts +66 -0
  569. package/dist/backend/backend/src/services/policy/default-policies.d.ts.map +1 -0
  570. package/dist/backend/backend/src/services/policy/default-policies.js +120 -0
  571. package/dist/backend/backend/src/services/policy/default-policies.js.map +1 -0
  572. package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts +77 -0
  573. package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts.map +1 -0
  574. package/dist/backend/backend/src/services/policy/policy-enforcement.service.js +164 -0
  575. package/dist/backend/backend/src/services/policy/policy-enforcement.service.js.map +1 -0
  576. package/dist/backend/backend/src/services/project/active-projects.service.d.ts +0 -4
  577. package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
  578. package/dist/backend/backend/src/services/project/active-projects.service.js +1 -43
  579. package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
  580. package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
  581. package/dist/backend/backend/src/services/project/task.service.js +88 -48
  582. package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
  583. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts +137 -0
  584. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts.map +1 -0
  585. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js +410 -0
  586. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js.map +1 -0
  587. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts +182 -0
  588. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts.map +1 -0
  589. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js +84 -0
  590. package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js.map +1 -0
  591. package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts +149 -0
  592. package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts.map +1 -0
  593. package/dist/backend/backend/src/services/provisioning/deployment-status.service.js +201 -0
  594. package/dist/backend/backend/src/services/provisioning/deployment-status.service.js.map +1 -0
  595. package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts +135 -0
  596. package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts.map +1 -0
  597. package/dist/backend/backend/src/services/provisioning/provisioning.service.js +261 -0
  598. package/dist/backend/backend/src/services/provisioning/provisioning.service.js.map +1 -0
  599. package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts +184 -0
  600. package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts.map +1 -0
  601. package/dist/backend/backend/src/services/provisioning/provisioning.types.js +119 -0
  602. package/dist/backend/backend/src/services/provisioning/provisioning.types.js.map +1 -0
  603. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +229 -0
  604. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -0
  605. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +666 -0
  606. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -0
  607. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +141 -0
  608. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -0
  609. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +470 -0
  610. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -0
  611. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +144 -0
  612. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -0
  613. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +360 -0
  614. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -0
  615. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  616. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +4 -3
  617. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  618. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  619. package/dist/backend/backend/src/services/session/session-handoff.service.js +13 -0
  620. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  621. package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts +59 -0
  622. package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts.map +1 -0
  623. package/dist/backend/backend/src/services/skill/skill-permission.service.js +141 -0
  624. package/dist/backend/backend/src/services/skill/skill-permission.service.js.map +1 -0
  625. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
  626. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  627. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +124 -0
  628. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  629. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  630. package/dist/backend/backend/src/services/slack/slack.service.js +78 -0
  631. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  632. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +190 -0
  633. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
  634. package/dist/backend/backend/src/services/task-pool/claim.service.js +354 -0
  635. package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -0
  636. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +146 -0
  637. package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
  638. package/dist/backend/backend/src/services/task-pool/pool-storage.js +243 -0
  639. package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -0
  640. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +288 -0
  641. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
  642. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +653 -0
  643. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -0
  644. package/dist/backend/backend/src/services/template/template.service.d.ts +2 -0
  645. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  646. package/dist/backend/backend/src/services/template/template.service.js +17 -3
  647. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  648. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +90 -0
  649. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -0
  650. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +394 -0
  651. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -0
  652. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +100 -0
  653. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
  654. package/dist/backend/backend/src/services/v3/escalation-router.service.js +357 -0
  655. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -0
  656. package/dist/backend/backend/src/services/v3/escalation.service.d.ts +148 -0
  657. package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -0
  658. package/dist/backend/backend/src/services/v3/escalation.service.js +371 -0
  659. package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -0
  660. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +109 -0
  661. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
  662. package/dist/backend/backend/src/services/v3/kr-tracking.service.js +314 -0
  663. package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -0
  664. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts +117 -0
  665. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
  666. package/dist/backend/backend/src/services/v3/mission-executor.service.js +301 -0
  667. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -0
  668. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts +73 -0
  669. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -0
  670. package/dist/backend/backend/src/services/v3/mission-period.service.js +200 -0
  671. package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -0
  672. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +58 -0
  673. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -0
  674. package/dist/backend/backend/src/services/v3/okr-review.service.js +221 -0
  675. package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -0
  676. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +118 -0
  677. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +1 -0
  678. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +326 -0
  679. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +1 -0
  680. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +52 -0
  681. package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +1 -0
  682. package/dist/backend/backend/src/services/v3/request-notification.service.js +161 -0
  683. package/dist/backend/backend/src/services/v3/request-notification.service.js.map +1 -0
  684. package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts +78 -0
  685. package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
  686. package/dist/backend/backend/src/services/v3/request-tracker.service.js +108 -0
  687. package/dist/backend/backend/src/services/v3/request-tracker.service.js.map +1 -0
  688. package/dist/backend/backend/src/services/v3/request.service.d.ts +166 -0
  689. package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -0
  690. package/dist/backend/backend/src/services/v3/request.service.js +310 -0
  691. package/dist/backend/backend/src/services/v3/request.service.js.map +1 -0
  692. package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts +88 -0
  693. package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts.map +1 -0
  694. package/dist/backend/backend/src/services/v3/service-contract-gate.service.js +138 -0
  695. package/dist/backend/backend/src/services/v3/service-contract-gate.service.js.map +1 -0
  696. package/dist/backend/backend/src/services/v3/task-projection.service.d.ts +128 -0
  697. package/dist/backend/backend/src/services/v3/task-projection.service.d.ts.map +1 -0
  698. package/dist/backend/backend/src/services/v3/task-projection.service.js +378 -0
  699. package/dist/backend/backend/src/services/v3/task-projection.service.js.map +1 -0
  700. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts +77 -0
  701. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts.map +1 -0
  702. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js +177 -0
  703. package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js.map +1 -0
  704. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +63 -0
  705. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -0
  706. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +169 -0
  707. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -0
  708. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +263 -0
  709. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -0
  710. package/dist/backend/backend/src/services/v3/trigger-engine.service.js +632 -0
  711. package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -0
  712. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +298 -0
  713. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
  714. package/dist/backend/backend/src/services/v3/v3-data.service.js +1075 -0
  715. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -0
  716. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +5 -11
  717. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  718. package/dist/backend/backend/src/services/workflow/scheduler.service.js +34 -23
  719. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  720. package/dist/backend/backend/src/services/workspace/workspace.service.d.ts +120 -0
  721. package/dist/backend/backend/src/services/workspace/workspace.service.d.ts.map +1 -0
  722. package/dist/backend/backend/src/services/workspace/workspace.service.js +271 -0
  723. package/dist/backend/backend/src/services/workspace/workspace.service.js.map +1 -0
  724. package/dist/backend/backend/src/types/index.d.ts +42 -0
  725. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  726. package/dist/backend/backend/src/types/index.js.map +1 -1
  727. package/dist/backend/backend/src/types/intent-task.types.d.ts +386 -0
  728. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -0
  729. package/dist/backend/backend/src/types/intent-task.types.js +231 -0
  730. package/dist/backend/backend/src/types/intent-task.types.js.map +1 -0
  731. package/dist/backend/backend/src/types/memory.types.d.ts +19 -0
  732. package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
  733. package/dist/backend/backend/src/types/memory.types.js.map +1 -1
  734. package/dist/backend/backend/src/types/team-template.types.d.ts +54 -0
  735. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  736. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  737. package/dist/backend/backend/src/types/v2/claim.types.d.ts +140 -0
  738. package/dist/backend/backend/src/types/v2/claim.types.d.ts.map +1 -0
  739. package/dist/backend/backend/src/types/v2/claim.types.js +180 -0
  740. package/dist/backend/backend/src/types/v2/claim.types.js.map +1 -0
  741. package/dist/backend/backend/src/types/v2/index.d.ts +30 -0
  742. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -0
  743. package/dist/backend/backend/src/types/v2/index.js +22 -0
  744. package/dist/backend/backend/src/types/v2/index.js.map +1 -0
  745. package/dist/backend/backend/src/types/v2/key-result.types.d.ts +195 -0
  746. package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -0
  747. package/dist/backend/backend/src/types/v2/key-result.types.js +194 -0
  748. package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -0
  749. package/dist/backend/backend/src/types/v2/mission.types.d.ts +408 -0
  750. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -0
  751. package/dist/backend/backend/src/types/v2/mission.types.js +482 -0
  752. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -0
  753. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +199 -0
  754. package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
  755. package/dist/backend/backend/src/types/v2/reconcile.types.js +121 -0
  756. package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -0
  757. package/dist/backend/backend/src/types/v2/request.types.d.ts +188 -0
  758. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -0
  759. package/dist/backend/backend/src/types/v2/request.types.js +178 -0
  760. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -0
  761. package/dist/backend/backend/src/types/v2/trigger.types.d.ts +201 -0
  762. package/dist/backend/backend/src/types/v2/trigger.types.d.ts.map +1 -0
  763. package/dist/backend/backend/src/types/v2/trigger.types.js +174 -0
  764. package/dist/backend/backend/src/types/v2/trigger.types.js.map +1 -0
  765. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +333 -0
  766. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -0
  767. package/dist/backend/backend/src/types/v2/work-item.types.js +274 -0
  768. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -0
  769. package/dist/backend/backend/src/types/v2/workspace.types.d.ts +157 -0
  770. package/dist/backend/backend/src/types/v2/workspace.types.d.ts.map +1 -0
  771. package/dist/backend/backend/src/types/v2/workspace.types.js +173 -0
  772. package/dist/backend/backend/src/types/v2/workspace.types.js.map +1 -0
  773. package/dist/backend/backend/src/types/v3/task-record.types.d.ts +98 -0
  774. package/dist/backend/backend/src/types/v3/task-record.types.d.ts.map +1 -0
  775. package/dist/backend/backend/src/types/v3/task-record.types.js +55 -0
  776. package/dist/backend/backend/src/types/v3/task-record.types.js.map +1 -0
  777. package/dist/backend/config/constants.d.ts +47 -0
  778. package/dist/backend/config/constants.d.ts.map +1 -1
  779. package/dist/backend/config/constants.js +49 -0
  780. package/dist/backend/config/constants.js.map +1 -1
  781. package/dist/cli/backend/src/constants.d.ts +5 -0
  782. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  783. package/dist/cli/backend/src/constants.js +5 -0
  784. package/dist/cli/backend/src/constants.js.map +1 -1
  785. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
  786. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  787. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  788. package/dist/cli/backend/src/services/core/logger.service.js +1 -1
  789. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
  790. package/dist/cli/backend/src/services/core/storage.service.d.ts +33 -0
  791. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  792. package/dist/cli/backend/src/services/core/storage.service.js +54 -0
  793. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  794. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
  795. package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
  796. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +220 -0
  797. package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
  798. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
  799. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
  800. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
  801. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
  802. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
  803. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
  804. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
  805. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
  806. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +11 -0
  807. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  808. package/dist/cli/backend/src/services/memory/agent-memory.service.js +76 -11
  809. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
  810. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +78 -0
  811. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
  812. package/dist/cli/backend/src/services/memory/embedding-provider.js +179 -0
  813. package/dist/cli/backend/src/services/memory/embedding-provider.js.map +1 -0
  814. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +331 -0
  815. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
  816. package/dist/cli/backend/src/services/memory/vector-store.service.js +814 -0
  817. package/dist/cli/backend/src/services/memory/vector-store.service.js.map +1 -0
  818. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +190 -0
  819. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
  820. package/dist/cli/backend/src/services/task-pool/claim.service.js +354 -0
  821. package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -0
  822. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +146 -0
  823. package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
  824. package/dist/cli/backend/src/services/task-pool/pool-storage.js +243 -0
  825. package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -0
  826. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +263 -0
  827. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
  828. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +605 -0
  829. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -0
  830. package/dist/cli/backend/src/types/index.d.ts +42 -0
  831. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  832. package/dist/cli/backend/src/types/index.js.map +1 -1
  833. package/dist/cli/backend/src/types/memory.types.d.ts +19 -0
  834. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
  835. package/dist/cli/backend/src/types/memory.types.js.map +1 -1
  836. package/dist/cli/backend/src/types/team-template.types.d.ts +222 -0
  837. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -0
  838. package/dist/cli/backend/src/types/team-template.types.js +139 -0
  839. package/dist/cli/backend/src/types/team-template.types.js.map +1 -0
  840. package/dist/cli/backend/src/types/v2/claim.types.d.ts +143 -0
  841. package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -0
  842. package/dist/cli/backend/src/types/v2/claim.types.js +183 -0
  843. package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -0
  844. package/dist/cli/backend/src/types/v2/trigger.types.d.ts +201 -0
  845. package/dist/cli/backend/src/types/v2/trigger.types.d.ts.map +1 -0
  846. package/dist/cli/backend/src/types/v2/trigger.types.js +174 -0
  847. package/dist/cli/backend/src/types/v2/trigger.types.js.map +1 -0
  848. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +333 -0
  849. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -0
  850. package/dist/cli/backend/src/types/v2/work-item.types.js +274 -0
  851. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -0
  852. package/dist/cli/config/constants.d.ts +47 -0
  853. package/dist/cli/config/constants.d.ts.map +1 -1
  854. package/dist/cli/config/constants.js +49 -0
  855. package/dist/cli/config/constants.js.map +1 -1
  856. package/frontend/dist/assets/index-47564020.css +33 -0
  857. package/frontend/dist/assets/index-5e804749.js +5220 -0
  858. package/frontend/dist/index.html +2 -2
  859. package/package.json +3 -1
  860. package/config/skills/agent/computer-use/lib/accessibility.sh +0 -292
  861. package/config/skills/agent/computer-use/lib/applescript.sh +0 -117
  862. package/config/skills/agent/computer-use/lib/discover.sh +0 -122
  863. package/config/skills/agent/computer-use/lib/playwright.sh +0 -153
  864. package/config/skills/agent/computer-use/lib/screenshot.sh +0 -61
  865. package/config/templates/cloud-deploy.json +0 -119
  866. package/config/templates/code-review-team/README.md +0 -176
  867. package/config/templates/code-review-team/team-config.json +0 -23
  868. package/config/templates/code-review-team.json +0 -62
  869. package/config/templates/content-generation-team/README.md +0 -128
  870. package/config/templates/content-generation-team/norms/publish-checklist.md +0 -64
  871. package/config/templates/content-generation-team/team-config.json +0 -28
  872. package/config/templates/content-generation-team.json +0 -67
  873. package/config/templates/dev-fullstack/norms/docker-deploy-cleanup.md +0 -28
  874. package/config/templates/dev-fullstack/template.json +0 -178
  875. package/config/templates/education-smb/README.md +0 -27
  876. package/config/templates/education-smb/goals.md +0 -16
  877. package/config/templates/education-smb/knowledge/docs/content-standards.md +0 -24
  878. package/config/templates/education-smb/knowledge/docs/education-industry-context.md +0 -13
  879. package/config/templates/education-smb/knowledge/index.json +0 -24
  880. package/config/templates/education-smb/learned-patterns.json +0 -16
  881. package/config/templates/education-smb/quality-gates.yaml +0 -66
  882. package/config/templates/education-smb/roles/analytics-specialist.md +0 -6
  883. package/config/templates/education-smb/roles/content-creator.md +0 -6
  884. package/config/templates/education-smb/roles/curriculum-designer.md +0 -6
  885. package/config/templates/education-smb/roles/engagement-manager.md +0 -6
  886. package/config/templates/education-smb/team.json +0 -40
  887. package/config/templates/education-smb/template.json +0 -35
  888. package/config/templates/education-smb/workflows/course-content-generation.yaml +0 -44
  889. package/config/templates/education-smb/workflows/reporting.yaml +0 -31
  890. package/config/templates/education-smb/workflows/student-communication.yaml +0 -44
  891. package/config/templates/education-smb/workflows.yaml +0 -40
  892. package/config/templates/insurance-smb/README.md +0 -28
  893. package/config/templates/insurance-smb/goals.md +0 -21
  894. package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +0 -28
  895. package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +0 -23
  896. package/config/templates/insurance-smb/knowledge/index.json +0 -24
  897. package/config/templates/insurance-smb/learned-patterns.json +0 -16
  898. package/config/templates/insurance-smb/quality-gates.yaml +0 -54
  899. package/config/templates/insurance-smb/roles/claims-processor.md +0 -6
  900. package/config/templates/insurance-smb/roles/client-manager.md +0 -6
  901. package/config/templates/insurance-smb/roles/compliance-officer.md +0 -6
  902. package/config/templates/insurance-smb/roles/marketing-specialist.md +0 -6
  903. package/config/templates/insurance-smb/roles/policy-analyst.md +0 -6
  904. package/config/templates/insurance-smb/team.json +0 -48
  905. package/config/templates/insurance-smb/template.json +0 -35
  906. package/config/templates/insurance-smb/workflows/claims-processing.yaml +0 -48
  907. package/config/templates/insurance-smb/workflows.yaml +0 -43
  908. package/config/templates/marketing-team/README.md +0 -42
  909. package/config/templates/marketing-team/goals.md +0 -21
  910. package/config/templates/marketing-team/knowledge/docs/brand-voice-guide.md +0 -61
  911. package/config/templates/marketing-team/knowledge/docs/content-best-practices.md +0 -64
  912. package/config/templates/marketing-team/knowledge/index.json +0 -24
  913. package/config/templates/marketing-team/learned-patterns.json +0 -5
  914. package/config/templates/marketing-team/norms/brand-consistency.md +0 -40
  915. package/config/templates/marketing-team/norms/content-quality-checklist.md +0 -45
  916. package/config/templates/marketing-team/quality-gates.yaml +0 -47
  917. package/config/templates/marketing-team/roles/analyst.md +0 -63
  918. package/config/templates/marketing-team/roles/strategist.md +0 -26
  919. package/config/templates/marketing-team/roles/writer.md +0 -58
  920. package/config/templates/marketing-team/template.json +0 -90
  921. package/config/templates/marketing-team/workflows/weekly-content-cycle.yaml +0 -48
  922. package/config/templates/research-analysis/template.json +0 -133
  923. package/config/templates/security-audit-team.json +0 -67
  924. package/config/templates/social-media-ops/template.json +0 -129
  925. package/config/templates/social-media-ops-team/README.md +0 -145
  926. package/config/templates/social-media-ops-team/team-config.json +0 -21
  927. package/config/templates/social-media-ops-team.json +0 -67
  928. package/config/templates/video-production/template.json +0 -132
  929. package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts +0 -69
  930. package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts.map +0 -1
  931. package/dist/backend/backend/src/controllers/admin/admin.controller.js +0 -187
  932. package/dist/backend/backend/src/controllers/admin/admin.controller.js.map +0 -1
  933. package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts +0 -22
  934. package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts.map +0 -1
  935. package/dist/backend/backend/src/controllers/admin/admin.routes.js +0 -31
  936. package/dist/backend/backend/src/controllers/admin/admin.routes.js.map +0 -1
  937. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts +0 -23
  938. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts.map +0 -1
  939. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js +0 -42
  940. package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js.map +0 -1
  941. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts +0 -56
  942. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts.map +0 -1
  943. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js +0 -173
  944. package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js.map +0 -1
  945. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts +0 -22
  946. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts.map +0 -1
  947. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js +0 -33
  948. package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js.map +0 -1
  949. package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts +0 -7
  950. package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts.map +0 -1
  951. package/dist/backend/backend/src/controllers/cloud/admin/index.js +0 -7
  952. package/dist/backend/backend/src/controllers/cloud/admin/index.js.map +0 -1
  953. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +0 -81
  954. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +0 -1
  955. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +0 -234
  956. package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +0 -1
  957. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +0 -25
  958. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +0 -1
  959. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +0 -42
  960. package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +0 -1
  961. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts +0 -40
  962. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts.map +0 -1
  963. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js +0 -161
  964. package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js.map +0 -1
  965. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +0 -69
  966. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +0 -1
  967. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +0 -165
  968. package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +0 -1
  969. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +0 -23
  970. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +0 -1
  971. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +0 -32
  972. package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +0 -1
  973. package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts +0 -34
  974. package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts.map +0 -1
  975. package/dist/backend/backend/src/controllers/cloud/device.controller.js +0 -70
  976. package/dist/backend/backend/src/controllers/cloud/device.controller.js.map +0 -1
  977. package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts +0 -23
  978. package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts.map +0 -1
  979. package/dist/backend/backend/src/controllers/cloud/device.routes.js +0 -34
  980. package/dist/backend/backend/src/controllers/cloud/device.routes.js.map +0 -1
  981. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +0 -42
  982. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +0 -1
  983. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +0 -138
  984. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +0 -1
  985. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +0 -23
  986. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +0 -1
  987. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +0 -34
  988. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +0 -1
  989. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +0 -43
  990. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +0 -1
  991. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +0 -9
  992. package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +0 -1
  993. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +0 -7
  994. package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +0 -1
  995. package/dist/backend/backend/src/controllers/cloud/files/index.js +0 -7
  996. package/dist/backend/backend/src/controllers/cloud/files/index.js.map +0 -1
  997. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +0 -47
  998. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +0 -1
  999. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +0 -131
  1000. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +0 -1
  1001. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +0 -23
  1002. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +0 -1
  1003. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +0 -30
  1004. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +0 -1
  1005. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +0 -81
  1006. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +0 -1
  1007. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +0 -85
  1008. package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +0 -1
  1009. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +0 -7
  1010. package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +0 -1
  1011. package/dist/backend/backend/src/controllers/cloud/h5/index.js +0 -7
  1012. package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +0 -1
  1013. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +0 -7
  1014. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +0 -1
  1015. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +0 -7
  1016. package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +0 -1
  1017. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +0 -45
  1018. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +0 -1
  1019. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +0 -155
  1020. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +0 -1
  1021. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +0 -25
  1022. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +0 -1
  1023. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +0 -32
  1024. package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +0 -1
  1025. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +0 -97
  1026. package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +0 -1
  1027. package/dist/backend/backend/src/controllers/cloud/relay.controller.js +0 -317
  1028. package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +0 -1
  1029. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +0 -25
  1030. package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +0 -1
  1031. package/dist/backend/backend/src/controllers/cloud/relay.routes.js +0 -35
  1032. package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +0 -1
  1033. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +0 -49
  1034. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +0 -1
  1035. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +0 -152
  1036. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +0 -1
  1037. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +0 -24
  1038. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +0 -1
  1039. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +0 -34
  1040. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +0 -1
  1041. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +0 -90
  1042. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +0 -1
  1043. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +0 -48
  1044. package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +0 -1
  1045. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +0 -10
  1046. package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +0 -1
  1047. package/dist/backend/backend/src/controllers/cloud/tasks/index.js +0 -10
  1048. package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +0 -1
  1049. package/dist/backend/backend/src/controllers/payment/index.d.ts +0 -7
  1050. package/dist/backend/backend/src/controllers/payment/index.d.ts.map +0 -1
  1051. package/dist/backend/backend/src/controllers/payment/index.js +0 -7
  1052. package/dist/backend/backend/src/controllers/payment/index.js.map +0 -1
  1053. package/dist/backend/backend/src/scripts/run-log-rotation.d.ts +0 -3
  1054. package/dist/backend/backend/src/scripts/run-log-rotation.d.ts.map +0 -1
  1055. package/dist/backend/backend/src/scripts/run-log-rotation.js +0 -31
  1056. package/dist/backend/backend/src/scripts/run-log-rotation.js.map +0 -1
  1057. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +0 -70
  1058. package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +0 -1
  1059. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +0 -131
  1060. package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +0 -1
  1061. package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts +0 -18
  1062. package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts.map +0 -1
  1063. package/dist/backend/backend/src/services/cloud/admin-seed.service.js +0 -50
  1064. package/dist/backend/backend/src/services/cloud/admin-seed.service.js.map +0 -1
  1065. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +0 -203
  1066. package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +0 -1
  1067. package/dist/backend/backend/src/services/cloud/auth/auth.service.js +0 -494
  1068. package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +0 -1
  1069. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +0 -110
  1070. package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +0 -1
  1071. package/dist/backend/backend/src/services/cloud/auth/auth.types.js +0 -54
  1072. package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +0 -1
  1073. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +0 -47
  1074. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +0 -1
  1075. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +0 -116
  1076. package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +0 -1
  1077. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts +0 -25
  1078. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts.map +0 -1
  1079. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js +0 -52
  1080. package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js.map +0 -1
  1081. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +0 -61
  1082. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +0 -1
  1083. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +0 -203
  1084. package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +0 -1
  1085. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +0 -136
  1086. package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +0 -1
  1087. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +0 -204
  1088. package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +0 -1
  1089. package/dist/backend/backend/src/services/cloud/cloud-features.d.ts +0 -19
  1090. package/dist/backend/backend/src/services/cloud/cloud-features.d.ts.map +0 -1
  1091. package/dist/backend/backend/src/services/cloud/cloud-features.js +0 -23
  1092. package/dist/backend/backend/src/services/cloud/cloud-features.js.map +0 -1
  1093. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +0 -97
  1094. package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +0 -1
  1095. package/dist/backend/backend/src/services/cloud/cloud-file.service.js +0 -184
  1096. package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +0 -1
  1097. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +0 -114
  1098. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +0 -1
  1099. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +0 -196
  1100. package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +0 -1
  1101. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +0 -118
  1102. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +0 -1
  1103. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +0 -326
  1104. package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +0 -1
  1105. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +0 -115
  1106. package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +0 -1
  1107. package/dist/backend/backend/src/services/cloud/cloud-task.service.js +0 -265
  1108. package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +0 -1
  1109. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts +0 -103
  1110. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts.map +0 -1
  1111. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js +0 -143
  1112. package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js.map +0 -1
  1113. package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts +0 -45
  1114. package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts.map +0 -1
  1115. package/dist/backend/backend/src/services/cloud/mongodb.service.js +0 -76
  1116. package/dist/backend/backend/src/services/cloud/mongodb.service.js.map +0 -1
  1117. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +0 -245
  1118. package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +0 -1
  1119. package/dist/backend/backend/src/services/cloud/relay-client.service.js +0 -586
  1120. package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +0 -1
  1121. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +0 -87
  1122. package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +0 -1
  1123. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +0 -140
  1124. package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +0 -1
  1125. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +0 -181
  1126. package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +0 -1
  1127. package/dist/backend/backend/src/services/cloud/relay-server.service.js +0 -485
  1128. package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +0 -1
  1129. package/dist/backend/backend/src/services/cloud/relay.types.d.ts +0 -195
  1130. package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +0 -1
  1131. package/dist/backend/backend/src/services/cloud/relay.types.js +0 -69
  1132. package/dist/backend/backend/src/services/cloud/relay.types.js.map +0 -1
  1133. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts +0 -47
  1134. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts.map +0 -1
  1135. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js +0 -69
  1136. package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js.map +0 -1
  1137. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +0 -69
  1138. package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +0 -1
  1139. package/dist/backend/backend/src/services/payment/magic-moment.service.js +0 -158
  1140. package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +0 -1
  1141. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +0 -95
  1142. package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +0 -1
  1143. package/dist/backend/backend/src/services/payment/magic-moment.types.js +0 -91
  1144. package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +0 -1
  1145. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts +0 -69
  1146. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts.map +0 -1
  1147. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js +0 -133
  1148. package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js.map +0 -1
  1149. package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts +0 -51
  1150. package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts.map +0 -1
  1151. package/dist/backend/backend/src/services/wechat/wechat.controller.js +0 -104
  1152. package/dist/backend/backend/src/services/wechat/wechat.controller.js.map +0 -1
  1153. package/dist/backend/backend/src/services/wechat/wechat.service.d.ts +0 -171
  1154. package/dist/backend/backend/src/services/wechat/wechat.service.d.ts.map +0 -1
  1155. package/dist/backend/backend/src/services/wechat/wechat.service.js +0 -411
  1156. package/dist/backend/backend/src/services/wechat/wechat.service.js.map +0 -1
  1157. package/frontend/dist/assets/index-58e9f83b.js +0 -5215
  1158. package/frontend/dist/assets/index-a2db8a73.css +0 -33
@@ -1,228 +1,864 @@
1
1
  #!/usr/bin/env bash
2
2
  # =============================================================================
3
- # Agent BrowserUniversal Desktop Control
4
- # Main entry point with subcommands for app discovery, AppleScript,
5
- # Accessibility API, and Playwright CDP integration.
3
+ # Computer UseSelf-Contained macOS Desktop Control
4
+ #
5
+ # A single-file skill for programmatic desktop interaction on macOS.
6
+ # Uses CoreGraphics (kCGSessionEventTap), screencapture, and AppleScript.
6
7
  #
7
8
  # Usage:
8
- # bash execute.sh <subcommand> [--options...]
9
+ # bash execute.sh '{"action":"screenshot"}'
10
+ # bash execute.sh '{"action":"click","x":500,"y":300}'
11
+ # bash execute.sh '{"action":"type","text":"hello"}'
12
+ # bash execute.sh '{"action":"find","mode":"button"}'
9
13
  #
10
- # Subcommands:
11
- # list-apps List all controllable GUI apps
12
- # app-info --app NAME Get detailed app info
13
- # ui-tree --app NAME Read UI element tree (Accessibility)
14
- # click --app NAME Click element or coordinates
15
- # type --text TEXT Type text in focused field
16
- # get-text --app NAME Extract all text from app
17
- # scroll --app NAME Scroll within app
18
- # focus --app NAME Bring app to foreground
19
- # screenshot [--app NAME] Screenshot app or full screen
20
- # applescript --code CODE Run custom AppleScript
21
- # applescript --preset NAME Run preset AppleScript
22
- # check-access Check Accessibility permission
23
- # chrome-connect [--port N] Connect to Chrome CDP
24
- # chrome-tabs [--port N] List Chrome tabs
25
- # chrome-eval --code JS Evaluate JS in Chrome tab
14
+ # All coordinates are in SCREEN POINTS (not backing pixels).
15
+ # Screenshots are automatically downscaled to match screen coordinates.
26
16
  # =============================================================================
27
17
 
28
18
  set -euo pipefail
29
19
 
30
20
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
31
- LIB_DIR="${SCRIPT_DIR}/lib"
32
- LOG_DIR="${HOME}/.crewly/logs"
33
- LOG_FILE="${LOG_DIR}/computer-use.log"
34
-
35
- # Source lib files
36
- source "${LIB_DIR}/discover.sh"
37
- source "${LIB_DIR}/applescript.sh"
38
- source "${LIB_DIR}/accessibility.sh"
39
- source "${LIB_DIR}/screenshot.sh"
40
- source "${LIB_DIR}/playwright.sh"
41
-
42
- # Ensure log directory exists
43
- mkdir -p "$LOG_DIR"
44
-
45
- # -----------------------------------------------------------------------------
46
- # Logging all actions are logged for audit trail
47
- # -----------------------------------------------------------------------------
48
- log_action() {
49
- local timestamp
50
- timestamp=$(date '+%Y-%m-%d %H:%M:%S')
51
- echo "[$timestamp] $*" >> "$LOG_FILE"
21
+
22
+ # Source common library for read_json_input, error_exit, require_param
23
+ source "${SCRIPT_DIR}/../_common/lib.sh"
24
+
25
+ # Temp directory for screenshots
26
+ TMPDIR_CU="${TMPDIR:-/tmp}/crewly-computer-use"
27
+ mkdir -p "$TMPDIR_CU"
28
+
29
+ # ---------------------------------------------------------------------------
30
+ # Read and parse JSON input
31
+ # ---------------------------------------------------------------------------
32
+ INPUT=$(read_json_input "${1:-}")
33
+ [ -z "$INPUT" ] && error_exit "No JSON input provided"
34
+
35
+ ACTION=$(echo "$INPUT" | jq -r '.action // empty')
36
+ [ -z "$ACTION" ] && error_exit "Missing required parameter: action"
37
+
38
+ # ---------------------------------------------------------------------------
39
+ # Helper: get screen dimensions and scale factor
40
+ # ---------------------------------------------------------------------------
41
+ get_screen_info() {
42
+ osascript -l JavaScript -e '
43
+ ObjC.import("AppKit");
44
+ var screen = $.NSScreen.mainScreen;
45
+ var frame = screen.frame;
46
+ var w = frame.size.width;
47
+ var h = frame.size.height;
48
+ var scale = screen.backingScaleFactor;
49
+ JSON.stringify({width: w, height: h, scale: scale});
50
+ '
52
51
  }
53
52
 
54
- # -----------------------------------------------------------------------------
55
- # Argument parsing
56
- # -----------------------------------------------------------------------------
57
- SUBCOMMAND="${1:-}"
58
- shift 2>/dev/null || true
59
-
60
- # Parse named arguments
61
- APP_NAME=""
62
- ELEMENT=""
63
- TEXT=""
64
- CODE=""
65
- PRESET=""
66
- OUTPUT=""
67
- DEPTH=""
68
- DIRECTION=""
69
- AMOUNT=""
70
- PORT=""
71
- TAB=""
72
- X_COORD=""
73
- Y_COORD=""
74
- MENU=""
75
- ITEM=""
76
- FILE_PATH=""
77
-
78
- while [ $# -gt 0 ]; do
79
- case "$1" in
80
- --app) shift; APP_NAME="${1:-}" ;;
81
- --element) shift; ELEMENT="${1:-}" ;;
82
- --text) shift; TEXT="${1:-}" ;;
83
- --code) shift; CODE="${1:-}" ;;
84
- --preset) shift; PRESET="${1:-}" ;;
85
- --output) shift; OUTPUT="${1:-}" ;;
86
- --depth) shift; DEPTH="${1:-}" ;;
87
- --direction) shift; DIRECTION="${1:-}" ;;
88
- --amount) shift; AMOUNT="${1:-}" ;;
89
- --port) shift; PORT="${1:-}" ;;
90
- --tab) shift; TAB="${1:-}" ;;
91
- --x) shift; X_COORD="${1:-}" ;;
92
- --y) shift; Y_COORD="${1:-}" ;;
93
- --menu) shift; MENU="${1:-}" ;;
94
- --item) shift; ITEM="${1:-}" ;;
95
- --path) shift; FILE_PATH="${1:-}" ;;
96
- *) ;; # Ignore unknown args
53
+ # ---------------------------------------------------------------------------
54
+ # Action: screenshot
55
+ # Captures screen, downscales to screen coordinates (1px = 1 screen point),
56
+ # optionally overlays a grid, optionally crops.
57
+ # ---------------------------------------------------------------------------
58
+ do_screenshot() {
59
+ local output="${TMPDIR_CU}/screen_$(date +%s%N).png"
60
+ local grid=$(echo "$INPUT" | jq -r '.grid // empty')
61
+ local crop_json=$(echo "$INPUT" | jq -r '.crop // empty')
62
+
63
+ # Capture full screen (silent)
64
+ screencapture -x "$output"
65
+
66
+ # Get backing scale factor
67
+ local scale_int
68
+ scale_int=$(osascript -l JavaScript -e 'ObjC.import("AppKit"); Math.round($.NSScreen.mainScreen.backingScaleFactor);')
69
+
70
+ # Get pixel dimensions of captured image
71
+ local img_w
72
+ img_w=$(sips -g pixelWidth "$output" | tail -1 | awk '{print $2}')
73
+
74
+ # Downscale so 1 pixel = 1 screen point
75
+ if [ "$scale_int" -gt 1 ]; then
76
+ local target_w=$((img_w / scale_int))
77
+ sips --resampleWidth "$target_w" "$output" --out "$output" >/dev/null 2>&1
78
+ fi
79
+
80
+ # Re-read dimensions after downscale
81
+ img_w=$(sips -g pixelWidth "$output" | tail -1 | awk '{print $2}')
82
+ local img_h
83
+ img_h=$(sips -g pixelHeight "$output" | tail -1 | awk '{print $2}')
84
+
85
+ # Crop FIRST, then grid — so grid labels show absolute screen coordinates
86
+ local origin_x=0 origin_y=0
87
+ if [ -n "$crop_json" ]; then
88
+ local cx cy cw ch
89
+ cx=$(echo "$INPUT" | jq -r '.crop.x')
90
+ cy=$(echo "$INPUT" | jq -r '.crop.y')
91
+ cw=$(echo "$INPUT" | jq -r '.crop.w')
92
+ ch=$(echo "$INPUT" | jq -r '.crop.h')
93
+ origin_x="$cx"
94
+ origin_y="$cy"
95
+ local cropped="${TMPDIR_CU}/crop_$(date +%s%N).png"
96
+ python3 - "$output" "$cx" "$cy" "$cw" "$ch" "$cropped" <<'PYEOF'
97
+ import sys
98
+ from PIL import Image
99
+ path, cx, cy, cw, ch, out = sys.argv[1], int(sys.argv[2]), int(sys.argv[3]), int(sys.argv[4]), int(sys.argv[5]), sys.argv[6]
100
+ img = Image.open(path)
101
+ cropped = img.crop((cx, cy, cx + cw, cy + ch))
102
+ cropped.save(out)
103
+ PYEOF
104
+ output="$cropped"
105
+ img_w="$cw"
106
+ img_h="$ch"
107
+ fi
108
+
109
+ # Grid overlay — labels show ABSOLUTE screen coordinates
110
+ # Grid step adapts to image size: dense for small crops, sparse for full screen
111
+ if [ "$grid" = "true" ]; then
112
+ python3 - "$output" "$origin_x" "$origin_y" <<'PYEOF'
113
+ import sys
114
+ from PIL import Image, ImageDraw, ImageFont
115
+
116
+ path = sys.argv[1]
117
+ ox, oy = int(sys.argv[2]), int(sys.argv[3])
118
+ img = Image.open(path)
119
+ draw = ImageDraw.Draw(img)
120
+ w, h = img.size
121
+
122
+ # Adaptive grid step: aim for ~8-12 cells across the image
123
+ step = max(25, min(100, w // 10))
124
+ # Round to nearest 25
125
+ step = (step // 25) * 25
126
+
127
+ try:
128
+ font = ImageFont.truetype("/System/Library/Fonts/Helvetica.ttc", max(10, min(14, w // 80)))
129
+ except Exception:
130
+ font = ImageFont.load_default()
131
+
132
+ # Vertical lines with absolute X labels
133
+ for x in range(0, w, step):
134
+ draw.line([(x, 0), (x, h)], fill="red", width=1)
135
+ label = str(ox + x) # absolute screen coordinate
136
+ draw.text((x + 2, 2), label, fill="red", font=font)
137
+
138
+ # Horizontal lines with absolute Y labels
139
+ for y in range(0, h, step):
140
+ draw.line([(0, y), (w, y)], fill="red", width=1)
141
+ label = str(oy + y)
142
+ draw.text((2, y + 2), label, fill="red", font=font)
143
+
144
+ img.save(path)
145
+ PYEOF
146
+ fi
147
+
148
+ # Return result as JSON
149
+ jq -n \
150
+ --arg path "$output" \
151
+ --argjson width "$img_w" \
152
+ --argjson height "$img_h" \
153
+ --argjson scale "$scale_int" \
154
+ '{action:"screenshot", path:$path, width:$width, height:$height, scale:$scale, note:"Coordinates are in screen points. 1 pixel = 1 screen point."}'
155
+ }
156
+
157
+ # ---------------------------------------------------------------------------
158
+ # Action: click (left, right, double)
159
+ # Uses CoreGraphics with kCGSessionEventTap for reliable clicking.
160
+ # ---------------------------------------------------------------------------
161
+ do_click() {
162
+ local x y button
163
+ x=$(echo "$INPUT" | jq -r '.x // empty')
164
+ y=$(echo "$INPUT" | jq -r '.y // empty')
165
+ button=$(echo "$INPUT" | jq -r '.button // "left"')
166
+ require_param "x" "$x"
167
+ require_param "y" "$y"
168
+
169
+ case "$button" in
170
+ left)
171
+ osascript -l JavaScript -e "
172
+ ObjC.import('CoreGraphics');
173
+ var p = \$.CGPointMake($x, $y);
174
+ var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
175
+ \$.CGEventPost(\$.kCGSessionEventTap, mv);
176
+ delay(0.1);
177
+ var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, p, 0);
178
+ \$.CGEventPost(\$.kCGSessionEventTap, dn);
179
+ delay(0.05);
180
+ var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, p, 0);
181
+ \$.CGEventPost(\$.kCGSessionEventTap, up);
182
+ "
183
+ ;;
184
+ right)
185
+ osascript -l JavaScript -e "
186
+ ObjC.import('CoreGraphics');
187
+ var p = \$.CGPointMake($x, $y);
188
+ var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
189
+ \$.CGEventPost(\$.kCGSessionEventTap, mv);
190
+ delay(0.1);
191
+ var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventRightMouseDown, p, 0);
192
+ \$.CGEventPost(\$.kCGSessionEventTap, dn);
193
+ delay(0.05);
194
+ var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventRightMouseUp, p, 0);
195
+ \$.CGEventPost(\$.kCGSessionEventTap, up);
196
+ "
197
+ ;;
198
+ double)
199
+ osascript -l JavaScript -e "
200
+ ObjC.import('CoreGraphics');
201
+ var p = \$.CGPointMake($x, $y);
202
+ var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
203
+ \$.CGEventPost(\$.kCGSessionEventTap, mv);
204
+ delay(0.1);
205
+ var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, p, 0);
206
+ \$.CGEventSetIntegerValueField(dn, \$.kCGMouseEventClickState, 2);
207
+ \$.CGEventPost(\$.kCGSessionEventTap, dn);
208
+ delay(0.05);
209
+ var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, p, 0);
210
+ \$.CGEventSetIntegerValueField(up, \$.kCGMouseEventClickState, 2);
211
+ \$.CGEventPost(\$.kCGSessionEventTap, up);
212
+ "
213
+ ;;
214
+ *)
215
+ error_exit "Unknown button type: $button (use left, right, or double)"
216
+ ;;
97
217
  esac
98
- shift 2>/dev/null || true
99
- done
100
-
101
- # Require a subcommand
102
- if [ -z "$SUBCOMMAND" ]; then
103
- cat <<'USAGE'
104
- Usage: bash execute.sh <subcommand> [--options...]
105
-
106
- Subcommands:
107
- list-apps List all controllable GUI apps
108
- app-info --app NAME Get detailed app info
109
- ui-tree --app NAME [--depth] Read UI element tree
110
- click --app NAME --element ROLE:NAME Click by element
111
- click --app NAME --x N --y N Click by coordinates
112
- type --text TEXT Type text in focused field
113
- get-text --app NAME Extract all text from app
114
- scroll --app NAME [--direction up|down] [--amount N]
115
- focus --app NAME Bring app to foreground
116
- screenshot [--app NAME] [--output PATH]
117
- applescript --code 'CODE' Run custom AppleScript
118
- applescript --preset NAME --app NAME [--menu M --item I] [--path P]
119
- check-access Check Accessibility permission
120
- chrome-connect [--port N] Connect to Chrome CDP
121
- chrome-tabs [--port N] List Chrome tabs
122
- chrome-eval [--port N] [--tab N] --code 'JS' Evaluate JS in tab
123
- USAGE
124
- exit 1
125
- fi
126
-
127
- # -----------------------------------------------------------------------------
128
- # Dispatch
129
- # -----------------------------------------------------------------------------
130
- case "$SUBCOMMAND" in
131
- list-apps)
132
- log_action "list-apps"
133
- list_apps
134
- ;;
135
-
136
- app-info)
137
- [ -z "$APP_NAME" ] && { echo '{"error":"Missing --app parameter"}' >&2; exit 1; }
138
- log_action "app-info app=$APP_NAME"
139
- app_info "$APP_NAME"
140
- ;;
141
-
142
- ui-tree)
143
- [ -z "$APP_NAME" ] && { echo '{"error":"Missing --app parameter"}' >&2; exit 1; }
144
- log_action "ui-tree app=$APP_NAME depth=${DEPTH:-8}"
145
- ui_tree "$APP_NAME" "${DEPTH:-8}"
146
- ;;
147
-
148
- click)
149
- [ -z "$APP_NAME" ] && { echo '{"error":"Missing --app parameter"}' >&2; exit 1; }
150
- log_action "click app=$APP_NAME element=${ELEMENT:-} x=${X_COORD:-} y=${Y_COORD:-}"
151
- click_element "$APP_NAME" "$ELEMENT" "$X_COORD" "$Y_COORD"
152
- ;;
153
-
154
- type)
155
- [ -z "$TEXT" ] && { echo '{"error":"Missing --text parameter"}' >&2; exit 1; }
156
- log_action "type chars=${#TEXT}"
157
- type_text "$TEXT"
158
- ;;
159
-
160
- get-text)
161
- [ -z "$APP_NAME" ] && { echo '{"error":"Missing --app parameter"}' >&2; exit 1; }
162
- log_action "get-text app=$APP_NAME depth=${DEPTH:-25}"
163
- get_text "$APP_NAME" "${DEPTH:-25}"
164
- ;;
165
-
166
- scroll)
167
- log_action "scroll app=${APP_NAME:-focused} direction=${DIRECTION:-down} amount=${AMOUNT:-3}"
168
- scroll_app "${DIRECTION:-down}" "${AMOUNT:-3}" "$APP_NAME"
169
- ;;
170
-
171
- focus)
172
- [ -z "$APP_NAME" ] && { echo '{"error":"Missing --app parameter"}' >&2; exit 1; }
173
- log_action "focus app=$APP_NAME"
174
- focus_app "$APP_NAME"
175
- ;;
176
-
177
- screenshot)
178
- log_action "screenshot app=${APP_NAME:-full-screen} output=${OUTPUT:-/tmp/screenshot.png}"
179
- take_screenshot "${OUTPUT:-/tmp/screenshot.png}" "$APP_NAME"
180
- ;;
181
-
182
- applescript)
183
- if [ -n "$PRESET" ]; then
184
- log_action "applescript preset=$PRESET app=${APP_NAME:-} menu=${MENU:-} item=${ITEM:-} path=${FILE_PATH:-}"
185
- case "$PRESET" in
186
- activate-app) run_preset "activate-app" "$APP_NAME" ;;
187
- get-window-list) run_preset "get-window-list" "$APP_NAME" ;;
188
- click-menu-item) run_preset "click-menu-item" "$APP_NAME" "$MENU" "$ITEM" ;;
189
- open-file) run_preset "open-file" "$FILE_PATH" ;;
190
- get-clipboard) run_preset "get-clipboard" ;;
191
- set-clipboard) run_preset "set-clipboard" "$TEXT" ;;
192
- *) echo '{"error":"Unknown preset: '"$PRESET"'"}' >&2; exit 1 ;;
218
+
219
+ jq -n --arg action "click" --arg button "$button" --argjson x "$x" --argjson y "$y" \
220
+ '{action:$action, button:$button, x:$x, y:$y, status:"ok"}'
221
+ }
222
+
223
+ # ---------------------------------------------------------------------------
224
+ # Action: move
225
+ # Moves mouse cursor to given screen coordinates.
226
+ # ---------------------------------------------------------------------------
227
+ do_move() {
228
+ local x y
229
+ x=$(echo "$INPUT" | jq -r '.x // empty')
230
+ y=$(echo "$INPUT" | jq -r '.y // empty')
231
+ require_param "x" "$x"
232
+ require_param "y" "$y"
233
+
234
+ osascript -l JavaScript -e "
235
+ ObjC.import('CoreGraphics');
236
+ var p = \$.CGPointMake($x, $y);
237
+ var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
238
+ \$.CGEventPost(\$.kCGSessionEventTap, mv);
239
+ "
240
+
241
+ jq -n --argjson x "$x" --argjson y "$y" '{action:"move", x:$x, y:$y, status:"ok"}'
242
+ }
243
+
244
+ # ---------------------------------------------------------------------------
245
+ # Action: type
246
+ # Types text using System Events keystroke.
247
+ # Auto-switches to English (ABC) input source first.
248
+ # ---------------------------------------------------------------------------
249
+ do_type() {
250
+ local text
251
+ text=$(echo "$INPUT" | jq -r '.text // empty')
252
+ require_param "text" "$text"
253
+
254
+ # Switch to English (ABC) input source to avoid IME issues
255
+ osascript -l JavaScript -e '
256
+ ObjC.import("Carbon");
257
+ var sources = $.TISCreateInputSourceList($(), false);
258
+ var count = $.CFArrayGetCount(sources);
259
+ for (var i = 0; i < count; i++) {
260
+ var src = $.CFArrayGetValueAtIndex(sources, i);
261
+ var srcId = $.CFStringGetCStringPtr($.TISGetInputSourceProperty(src, $.kTISPropertyInputSourceID), 0);
262
+ if (srcId && (srcId.match(/ABC/) || srcId.match(/US/) || srcId.match(/com\.apple\.keylayout\.ABC/))) {
263
+ $.TISSelectInputSource(src);
264
+ break;
265
+ }
266
+ }
267
+ ' 2>/dev/null || true
268
+
269
+ # Type text via System Events
270
+ osascript -e "tell application \"System Events\" to keystroke \"$text\""
271
+
272
+ jq -n --arg text "$text" '{action:"type", text:$text, status:"ok"}'
273
+ }
274
+
275
+ # ---------------------------------------------------------------------------
276
+ # Action: key
277
+ # Sends a key combination (e.g., "command+c", "return", "shift+tab").
278
+ # ---------------------------------------------------------------------------
279
+ do_key() {
280
+ local combo
281
+ combo=$(echo "$INPUT" | jq -r '.key // empty')
282
+ require_param "key" "$combo"
283
+
284
+ # Parse modifier+key combination
285
+ local modifiers=""
286
+ local key_name=""
287
+ IFS='+' read -ra parts <<< "$combo"
288
+
289
+ if [ ${#parts[@]} -eq 1 ]; then
290
+ key_name="${parts[0]}"
291
+ else
292
+ key_name="${parts[-1]}"
293
+ for ((i=0; i<${#parts[@]}-1; i++)); do
294
+ case "${parts[$i]}" in
295
+ command|cmd) modifiers="${modifiers}command down, " ;;
296
+ shift) modifiers="${modifiers}shift down, " ;;
297
+ option|alt) modifiers="${modifiers}option down, " ;;
298
+ control|ctrl) modifiers="${modifiers}control down, " ;;
193
299
  esac
194
- elif [ -n "$CODE" ]; then
195
- log_action "applescript custom-code"
196
- run_applescript "$CODE"
300
+ done
301
+ modifiers="${modifiers%, }"
302
+ fi
303
+
304
+ # Map common key names to AppleScript key codes
305
+ local key_code=""
306
+ case "$key_name" in
307
+ return|enter) key_code="36" ;;
308
+ tab) key_code="48" ;;
309
+ escape|esc) key_code="53" ;;
310
+ space) key_code="49" ;;
311
+ delete|backspace) key_code="51" ;;
312
+ up) key_code="126" ;;
313
+ down) key_code="125" ;;
314
+ left) key_code="123" ;;
315
+ right) key_code="124" ;;
316
+ f1) key_code="122" ;;
317
+ f2) key_code="120" ;;
318
+ f3) key_code="99" ;;
319
+ f4) key_code="118" ;;
320
+ f5) key_code="96" ;;
321
+ esac
322
+
323
+ if [ -n "$key_code" ]; then
324
+ if [ -n "$modifiers" ]; then
325
+ osascript -e "tell application \"System Events\" to key code $key_code using {$modifiers}"
197
326
  else
198
- echo '{"error":"Missing --code or --preset parameter"}' >&2
199
- exit 1
327
+ osascript -e "tell application \"System Events\" to key code $key_code"
200
328
  fi
201
- ;;
202
-
203
- check-access)
204
- log_action "check-access"
205
- do_check_access
206
- ;;
207
-
208
- chrome-connect)
209
- log_action "chrome-connect port=${PORT:-9222}"
210
- chrome_connect "${PORT:-9222}"
211
- ;;
212
-
213
- chrome-tabs)
214
- log_action "chrome-tabs port=${PORT:-9222}"
215
- chrome_tabs "${PORT:-9222}"
216
- ;;
217
-
218
- chrome-eval)
219
- [ -z "$CODE" ] && { echo '{"error":"Missing --code parameter"}' >&2; exit 1; }
220
- log_action "chrome-eval port=${PORT:-9222} tab=${TAB:-0}"
221
- chrome_eval "${PORT:-9222}" "${TAB:-0}" "$CODE"
222
- ;;
223
-
224
- *)
225
- echo "{\"error\":\"Unknown subcommand: $SUBCOMMAND\"}" >&2
226
- exit 1
227
- ;;
329
+ else
330
+ if [ -n "$modifiers" ]; then
331
+ osascript -e "tell application \"System Events\" to keystroke \"$key_name\" using {$modifiers}"
332
+ else
333
+ osascript -e "tell application \"System Events\" to keystroke \"$key_name\""
334
+ fi
335
+ fi
336
+
337
+ jq -n --arg combo "$combo" '{action:"key", key:$combo, status:"ok"}'
338
+ }
339
+
340
+ # ---------------------------------------------------------------------------
341
+ # Action: scroll
342
+ # Scrolls at the given position (or current mouse location).
343
+ # ---------------------------------------------------------------------------
344
+ do_scroll() {
345
+ local x y dx dy
346
+ x=$(echo "$INPUT" | jq -r '.x // empty')
347
+ y=$(echo "$INPUT" | jq -r '.y // empty')
348
+ dx=$(echo "$INPUT" | jq -r '.dx // "0"')
349
+ dy=$(echo "$INPUT" | jq -r '.dy // "-3"')
350
+
351
+ # Move mouse first if coordinates given
352
+ if [ -n "$x" ] && [ -n "$y" ]; then
353
+ osascript -l JavaScript -e "
354
+ ObjC.import('CoreGraphics');
355
+ var p = \$.CGPointMake($x, $y);
356
+ var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
357
+ \$.CGEventPost(\$.kCGSessionEventTap, mv);
358
+ "
359
+ sleep 0.1
360
+ fi
361
+
362
+ # Scroll using CoreGraphics scroll event
363
+ osascript -l JavaScript -e "
364
+ ObjC.import('CoreGraphics');
365
+ var ev = \$.CGEventCreateScrollWheelEvent(null, \$.kCGScrollEventUnitLine, 2, $dy, $dx);
366
+ \$.CGEventPost(\$.kCGSessionEventTap, ev);
367
+ "
368
+
369
+ jq -n --arg dx "$dx" --arg dy "$dy" '{action:"scroll", dx:$dx, dy:$dy, status:"ok"}'
370
+ }
371
+
372
+ # ---------------------------------------------------------------------------
373
+ # Action: drag
374
+ # Drags from (x1,y1) to (x2,y2).
375
+ # ---------------------------------------------------------------------------
376
+ do_drag() {
377
+ local x1 y1 x2 y2
378
+ x1=$(echo "$INPUT" | jq -r '.x1 // empty')
379
+ y1=$(echo "$INPUT" | jq -r '.y1 // empty')
380
+ x2=$(echo "$INPUT" | jq -r '.x2 // empty')
381
+ y2=$(echo "$INPUT" | jq -r '.y2 // empty')
382
+ require_param "x1" "$x1"
383
+ require_param "y1" "$y1"
384
+ require_param "x2" "$x2"
385
+ require_param "y2" "$y2"
386
+
387
+ osascript -l JavaScript -e "
388
+ ObjC.import('CoreGraphics');
389
+ var p1 = \$.CGPointMake($x1, $y1);
390
+ var p2 = \$.CGPointMake($x2, $y2);
391
+ var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p1, 0);
392
+ \$.CGEventPost(\$.kCGSessionEventTap, mv);
393
+ delay(0.1);
394
+ var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, p1, 0);
395
+ \$.CGEventPost(\$.kCGSessionEventTap, dn);
396
+ delay(0.1);
397
+ var drag = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDragged, p2, 0);
398
+ \$.CGEventPost(\$.kCGSessionEventTap, drag);
399
+ delay(0.1);
400
+ var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, p2, 0);
401
+ \$.CGEventPost(\$.kCGSessionEventTap, up);
402
+ "
403
+
404
+ jq -n --argjson x1 "$x1" --argjson y1 "$y1" --argjson x2 "$x2" --argjson y2 "$y2" \
405
+ '{action:"drag", from:{x:$x1,y:$y1}, to:{x:$x2,y:$y2}, status:"ok"}'
406
+ }
407
+
408
+ # ---------------------------------------------------------------------------
409
+ # Action: focus
410
+ # Brings an application to the foreground.
411
+ # ---------------------------------------------------------------------------
412
+ do_focus() {
413
+ local app
414
+ app=$(echo "$INPUT" | jq -r '.app // empty')
415
+ require_param "app" "$app"
416
+
417
+ osascript -e "
418
+ tell application \"$app\"
419
+ activate
420
+ end tell
421
+ "
422
+ sleep 0.3
423
+
424
+ jq -n --arg app "$app" '{action:"focus", app:$app, status:"ok"}'
425
+ }
426
+
427
+ # ---------------------------------------------------------------------------
428
+ # Action: open-url
429
+ # Opens a URL in a browser. Bypasses keyboard entirely.
430
+ # ---------------------------------------------------------------------------
431
+ do_open_url() {
432
+ local url app_name
433
+ url=$(echo "$INPUT" | jq -r '.url // empty')
434
+ app_name=$(echo "$INPUT" | jq -r '.app // "Safari"')
435
+ require_param "url" "$url"
436
+
437
+ osascript -e "tell application \"$app_name\" to open location \"$url\""
438
+ osascript -e "tell application \"$app_name\" to activate"
439
+ sleep 0.5
440
+
441
+ jq -n --arg url "$url" --arg app "$app_name" '{action:"open-url", url:$url, app:$app, status:"ok"}'
442
+ }
443
+
444
+ # ---------------------------------------------------------------------------
445
+ # Action: list-apps
446
+ # Lists all running GUI applications.
447
+ # ---------------------------------------------------------------------------
448
+ do_list_apps() {
449
+ local apps
450
+ apps=$(osascript -e '
451
+ tell application "System Events"
452
+ set appList to {}
453
+ repeat with proc in (every process whose background only is false)
454
+ set end of appList to name of proc
455
+ end repeat
456
+ set AppleScript'\''s text item delimiters to ","
457
+ return appList as text
458
+ end tell
459
+ ')
460
+
461
+ # Convert comma-separated list to JSON array
462
+ echo "$apps" | tr ',' '\n' | jq -R -s '
463
+ split("\n") | map(gsub("^\\s+|\\s+$"; "")) | map(select(length > 0)) |
464
+ {action: "list-apps", apps: ., count: length}
465
+ '
466
+ }
467
+
468
+ # ---------------------------------------------------------------------------
469
+ # Action: find
470
+ # Locates UI elements by pixel-level color/contrast analysis.
471
+ # Takes a full-resolution screenshot, analyzes it with Python/Pillow,
472
+ # and returns screen-point coordinates of found elements.
473
+ # Modes: button (bright rectangles), avatar (colored circles), color (target RGB).
474
+ # ---------------------------------------------------------------------------
475
+ do_find() {
476
+ local mode target region
477
+ mode=$(printf '%s' "$INPUT" | jq -r '.mode // "button"')
478
+ target=$(printf '%s' "$INPUT" | jq -r '.target // empty')
479
+ region=$(printf '%s' "$INPUT" | jq -c '.region // null')
480
+
481
+ # Take screenshot at FULL resolution for pixel-accurate scanning
482
+ local scan_file="/tmp/cu-find-scan.png"
483
+ screencapture -x "$scan_file" 2>/dev/null
484
+
485
+ local scale_int
486
+ scale_int=$(osascript -l JavaScript -e 'ObjC.import("AppKit"); Math.round($.NSScreen.mainScreen.backingScaleFactor);' 2>/dev/null || echo "2")
487
+
488
+ CU_SCALE="$scale_int" CU_MODE="$mode" CU_TARGET="$target" CU_REGION="$region" python3 << 'PYEOF'
489
+ import json, sys, os
490
+ from PIL import Image, ImageDraw, ImageFont
491
+
492
+ img = Image.open('/tmp/cu-find-scan.png')
493
+ W, H = img.size
494
+ S = int(os.environ.get('CU_SCALE', '2'))
495
+ mode = os.environ.get('CU_MODE', 'button')
496
+ target = os.environ.get('CU_TARGET', '')
497
+ region_json = os.environ.get('CU_REGION', 'null')
498
+
499
+ # Optional region constraint: {"x":100,"y":200,"w":400,"h":300} in screen coords
500
+ region = json.loads(region_json) if region_json != 'null' else None
501
+ if region:
502
+ rx, ry, rw, rh = region['x']*S, region['y']*S, region['w']*S, region['h']*S
503
+ else:
504
+ rx, ry, rw, rh = 0, 0, W, H
505
+
506
+ def px(x, y):
507
+ """Get pixel RGB, clamped to image bounds."""
508
+ x, y = max(0, min(x, W-1)), max(0, min(y, H-1))
509
+ return img.getpixel((x, y))[:3]
510
+
511
+ def to_screen(x, y):
512
+ """Convert pixel coords to screen coords."""
513
+ return x // S, y // S
514
+
515
+ def cluster_points(points, gap=20):
516
+ """Cluster nearby points by Y proximity."""
517
+ if not points:
518
+ return []
519
+ points.sort(key=lambda p: p[1])
520
+ clusters = [[points[0]]]
521
+ for i in range(1, len(points)):
522
+ if points[i][1] - points[i-1][1] < gap:
523
+ clusters[-1].append(points[i])
524
+ else:
525
+ clusters.append([points[i]])
526
+ return [c for c in clusters if len(c) >= 3]
527
+
528
+ # ── MODE: text ──────────────────────────────────────────────────
529
+ # Uses macOS Vision framework OCR for fast, accurate text detection.
530
+ # Finds target text on screen and returns its screen coordinates.
531
+ if mode == 'text' and target:
532
+ import subprocess
533
+ # Call Swift Vision OCR (fast, accurate, built into macOS)
534
+ swift_code = r'''
535
+ import Vision
536
+ import AppKit
537
+ import Foundation
538
+
539
+ let url = URL(fileURLWithPath: "/tmp/cu-find-scan.png")
540
+ guard let image = NSImage(contentsOf: url),
541
+ let tiffData = image.tiffRepresentation,
542
+ let bitmap = NSBitmapImageRep(data: tiffData),
543
+ let cgImage = bitmap.cgImage else {
544
+ print("[]")
545
+ exit(0)
546
+ }
547
+ let imgW = Double(cgImage.width)
548
+ let imgH = Double(cgImage.height)
549
+ let request = VNRecognizeTextRequest()
550
+ request.recognitionLevel = .accurate
551
+ let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
552
+ try? handler.perform([request])
553
+ var results: [[String: Any]] = []
554
+ for obs in request.results ?? [] {
555
+ if let candidate = obs.topCandidates(1).first {
556
+ let box = obs.boundingBox
557
+ // Convert from Vision coords (bottom-left, 0-1) to pixel coords (top-left)
558
+ let px = box.origin.x * imgW + box.size.width * imgW / 2
559
+ let py = (1.0 - box.origin.y - box.size.height) * imgH + box.size.height * imgH / 2
560
+ results.append([
561
+ "text": candidate.string,
562
+ "px": Int(px),
563
+ "py": Int(py),
564
+ "confidence": candidate.confidence
565
+ ])
566
+ }
567
+ }
568
+ let jsonData = try! JSONSerialization.data(withJSONObject: results)
569
+ print(String(data: jsonData, encoding: .utf8) ?? "[]")
570
+ '''
571
+
572
+ proc = subprocess.run(['swift', '-e', swift_code], capture_output=True, text=True, timeout=15)
573
+ ocr_results = json.loads(proc.stdout.strip()) if proc.stdout.strip() else []
574
+
575
+ # Search for target text (case-insensitive substring match)
576
+ target_lower = target.lower()
577
+ matches = []
578
+ for r in ocr_results:
579
+ if target_lower in r['text'].lower():
580
+ sx, sy = r['px'] // S, r['py'] // S
581
+ matches.append({'x': sx, 'y': sy, 'text': r['text'], 'confidence': round(r['confidence'], 3)})
582
+
583
+ if matches:
584
+ best = matches[0]
585
+ print(json.dumps({'found': True, 'x': best['x'], 'y': best['y'], 'text': best['text'], 'confidence': best['confidence'], 'allMatches': matches[:5]}))
586
+ else:
587
+ # Return all detected text for debugging
588
+ all_texts = [r['text'] for r in ocr_results[:15]]
589
+ print(json.dumps({'found': False, 'target': target, 'textsOnScreen': all_texts}))
590
+
591
+ # ── MODE: button ────────────────────────────────────────────────
592
+ # Find button-like rectangles (white on dark OR bordered on light)
593
+ elif mode == 'button':
594
+ buttons = []
595
+ # Scan for horizontal runs of uniform bright OR bordered pixels
596
+ for y in range(ry, ry+rh, 3):
597
+ in_run = False
598
+ run_start = 0
599
+ for x in range(rx, rx+rw, 2):
600
+ r, g, b = px(x, y)
601
+ bright = r > 200 and g > 200 and b > 200
602
+ # Check if this bright pixel has dark neighbors above/below (= button)
603
+ if bright:
604
+ above = px(x, max(0, y-40))
605
+ below = px(x, min(H-1, y+40))
606
+ is_button_pixel = (sum(above)/3 < 120) or (sum(below)/3 < 120)
607
+ else:
608
+ is_button_pixel = False
609
+
610
+ if is_button_pixel and not in_run:
611
+ run_start = x
612
+ in_run = True
613
+ elif not is_button_pixel and in_run:
614
+ run_len = x - run_start
615
+ if run_len > 80:
616
+ cx, cy = to_screen((run_start + x) // 2, y)
617
+ buttons.append({'x': cx, 'y': cy, 'width': run_len // S})
618
+ in_run = False
619
+
620
+ # Cluster
621
+ clusters = []
622
+ buttons.sort(key=lambda b: (b['y'], b['x']))
623
+ if buttons:
624
+ current = [buttons[0]]
625
+ for i in range(1, len(buttons)):
626
+ if abs(buttons[i]['y'] - current[-1]['y']) < 8:
627
+ current.append(buttons[i])
628
+ else:
629
+ if len(current) >= 2:
630
+ cx = sum(b['x'] for b in current) // len(current)
631
+ cy = sum(b['y'] for b in current) // len(current)
632
+ w = max(b['width'] for b in current)
633
+ clusters.append({'x': cx, 'y': cy, 'width': w, 'height': len(current) * 3})
634
+ current = [buttons[i]]
635
+ if len(current) >= 2:
636
+ cx = sum(b['x'] for b in current) // len(current)
637
+ cy = sum(b['y'] for b in current) // len(current)
638
+ w = max(b['width'] for b in current)
639
+ clusters.append({'x': cx, 'y': cy, 'width': w, 'height': len(current) * 3})
640
+
641
+ print(json.dumps({'found': len(clusters), 'elements': clusters[:20]}))
642
+
643
+ # ── MODE: avatar ────────────────────────────────────────────────
644
+ elif mode == 'avatar':
645
+ colored = []
646
+ for y in range(ry + rh//4, ry + 3*rh//4, 2):
647
+ for x in range(rx + rw//4, rx + 3*rw//4, 3):
648
+ r, g, b = px(x, y)
649
+ sat = max(r,g,b) - min(r,g,b)
650
+ if sat > 40 and max(r,g,b) > 80 and min(r,g,b) < 200:
651
+ colored.append((x, y))
652
+
653
+ clusters = cluster_points(colored, gap=15)
654
+ avatars = []
655
+ for c in clusters:
656
+ if len(c) >= 5:
657
+ cx, cy = to_screen(
658
+ sum(p[0] for p in c) // len(c),
659
+ sum(p[1] for p in c) // len(c)
660
+ )
661
+ avatars.append({'x': cx + 50, 'y': cy})
662
+
663
+ print(json.dumps({'found': len(avatars), 'elements': avatars[:10]}))
664
+
665
+ # ── MODE: color ─────────────────────────────────────────────────
666
+ elif mode == 'color' and target:
667
+ parts = target.split(',')
668
+ tr, tg, tb = int(parts[0]), int(parts[1]), int(parts[2])
669
+ tol = 60
670
+ hits = []
671
+ for y in range(ry, ry+rh, 3):
672
+ for x in range(rx, rx+rw, 3):
673
+ r, g, b = px(x, y)
674
+ if abs(r-tr) < tol and abs(g-tg) < tol and abs(b-tb) < tol:
675
+ hits.append((x, y))
676
+ if hits:
677
+ cx, cy = to_screen(
678
+ sum(p[0] for p in hits) // len(hits),
679
+ sum(p[1] for p in hits) // len(hits)
680
+ )
681
+ print(json.dumps({'found': len(hits), 'center': {'x': cx, 'y': cy}}))
682
+ else:
683
+ print(json.dumps({'found': 0}))
684
+
685
+ # ── MODE: contrast ──────────────────────────────────────────────
686
+ # Find high-contrast edges (useful for finding UI element boundaries)
687
+ elif mode == 'contrast':
688
+ edges = []
689
+ for y in range(ry+2, ry+rh-2, 3):
690
+ for x in range(rx+2, rx+rw-2, 3):
691
+ c = px(x, y)
692
+ r_pixel = px(x+4, y)
693
+ d_pixel = px(x, y+4)
694
+ h_diff = abs(sum(c)/3 - sum(r_pixel)/3)
695
+ v_diff = abs(sum(c)/3 - sum(d_pixel)/3)
696
+ if h_diff > 80 or v_diff > 80:
697
+ edges.append((x, y))
698
+ clusters = cluster_points(edges, gap=10)
699
+ elements = []
700
+ for c in clusters:
701
+ if len(c) >= 10:
702
+ cx, cy = to_screen(
703
+ sum(p[0] for p in c) // len(c),
704
+ sum(p[1] for p in c) // len(c)
705
+ )
706
+ elements.append({'x': cx, 'y': cy, 'density': len(c)})
707
+ print(json.dumps({'found': len(elements), 'elements': elements[:20]}))
708
+
709
+ elif mode == 'near':
710
+ # Find an icon/element near a known text anchor.
711
+ # target = the text to anchor on (found via OCR)
712
+ # Uses pixel scanning around the anchor to find nearby non-text elements.
713
+ # Params via env: CU_NEAR_DIR (right|left|above|below), CU_NEAR_DIST (max distance)
714
+ near_dir = os.environ.get('CU_NEAR_DIR', 'right')
715
+ near_dist = int(os.environ.get('CU_NEAR_DIST', '150'))
716
+
717
+ if not target:
718
+ print(json.dumps({'error': 'near mode requires target text'}))
719
+ else:
720
+ # First find anchor text via OCR
721
+ import subprocess
722
+ proc = subprocess.run(['swift', '/tmp/cu-ocr.swift', '/tmp/cu-find-scan.png'],
723
+ capture_output=True, text=True, timeout=15)
724
+ ocr = json.loads(proc.stdout.strip()) if proc.stdout.strip() else []
725
+ anchor = None
726
+ for r in ocr:
727
+ if target.lower() in r['text'].lower():
728
+ anchor = (r['px'], r['py'])
729
+ break
730
+
731
+ if not anchor:
732
+ # Try inverted image for dark themes
733
+ from PIL import ImageOps
734
+ ImageOps.invert(img.convert('RGB')).save('/tmp/cu-find-inverted.png')
735
+ proc2 = subprocess.run(['swift', '/tmp/cu-ocr.swift', '/tmp/cu-find-inverted.png'],
736
+ capture_output=True, text=True, timeout=15)
737
+ ocr2 = json.loads(proc2.stdout.strip()) if proc2.stdout.strip() else []
738
+ for r in ocr2:
739
+ if target.lower() in r['text'].lower():
740
+ anchor = (r['px'], r['py'])
741
+ break
742
+
743
+ if not anchor:
744
+ print(json.dumps({'found': False, 'error': f'Anchor text "{target}" not found'}))
745
+ else:
746
+ ax, ay = anchor
747
+ dist_px = near_dist * S
748
+ # Define scan region based on direction
749
+ if near_dir == 'right':
750
+ scan_x1, scan_y1 = ax + 20, ay - 30
751
+ scan_x2, scan_y2 = ax + dist_px, ay + 30
752
+ elif near_dir == 'left':
753
+ scan_x1, scan_y1 = ax - dist_px, ay - 30
754
+ scan_x2, scan_y2 = ax - 20, ay + 30
755
+ elif near_dir == 'above':
756
+ scan_x1, scan_y1 = ax - 30, ay - dist_px
757
+ scan_x2, scan_y2 = ax + 30, ay - 20
758
+ else: # below
759
+ scan_x1, scan_y1 = ax - 30, ay + 20
760
+ scan_x2, scan_y2 = ax + 30, ay + dist_px
761
+
762
+ # Clamp to image bounds
763
+ scan_x1, scan_y1 = max(0, scan_x1), max(0, scan_y1)
764
+ scan_x2, scan_y2 = min(W-1, scan_x2), min(H-1, scan_y2)
765
+
766
+ # Scan for non-background pixels (icons, buttons)
767
+ icon_pixels = []
768
+ for y in range(scan_y1, scan_y2, 2):
769
+ for x in range(scan_x1, scan_x2, 2):
770
+ r, g, b = px(x, y)
771
+ brightness = (r + g + b) / 3
772
+ # Icon: medium brightness, not pure white/black
773
+ if 60 < brightness < 180:
774
+ icon_pixels.append((x, y))
775
+
776
+ if icon_pixels:
777
+ ix = sum(p[0] for p in icon_pixels) // len(icon_pixels)
778
+ iy = sum(p[1] for p in icon_pixels) // len(icon_pixels)
779
+ sx, sy = to_screen(ix, iy)
780
+ asx, asy = to_screen(ax, ay)
781
+ print(json.dumps({
782
+ 'found': True,
783
+ 'x': sx, 'y': sy,
784
+ 'anchor': {'x': asx, 'y': asy, 'text': target},
785
+ 'direction': near_dir
786
+ }))
787
+ else:
788
+ asx, asy = to_screen(ax, ay)
789
+ print(json.dumps({
790
+ 'found': False,
791
+ 'anchor': {'x': asx, 'y': asy},
792
+ 'error': f'No icon found {near_dir} of "{target}"'
793
+ }))
794
+
795
+ else:
796
+ print(json.dumps({'error': f'Unknown mode: {mode}. Use: text, button, avatar, color, contrast, near'}))
797
+ PYEOF
798
+
799
+ rm -f "$scan_file"
800
+ }
801
+
802
+ # =============================================================================
803
+ # click-text — Find text via OCR and click on it (one-step convenience action)
804
+ # =============================================================================
805
+ do_click_text() {
806
+ local target
807
+ target=$(printf '%s' "$INPUT" | jq -r '.target // .text // empty')
808
+ require_param "target" "$target"
809
+
810
+ # Use find to locate the text
811
+ local find_result
812
+ find_result=$(CU_SCALE="$( osascript -l JavaScript -e 'ObjC.import("AppKit"); Math.round($.NSScreen.mainScreen.backingScaleFactor);' 2>/dev/null || echo 2)" \
813
+ CU_MODE="text" CU_TARGET="$target" CU_REGION="null" \
814
+ bash "${BASH_SOURCE[0]}" "{\"action\":\"find\",\"mode\":\"text\",\"target\":\"$target\"}" 2>&1)
815
+
816
+ local found x y
817
+ found=$(echo "$find_result" | jq -r '.found // false')
818
+ x=$(echo "$find_result" | jq -r '.x // empty')
819
+ y=$(echo "$find_result" | jq -r '.y // empty')
820
+
821
+ if [ "$found" = "true" ] && [ -n "$x" ] && [ -n "$y" ]; then
822
+ # Click at the found position
823
+ do_click_at "$x" "$y"
824
+ echo "{\"success\":true,\"action\":\"click-text\",\"target\":\"$target\",\"x\":$x,\"y\":$y,\"text\":$(echo "$find_result" | jq '.text')}"
825
+ else
826
+ echo "{\"success\":false,\"action\":\"click-text\",\"target\":\"$target\",\"error\":\"Text not found\",\"debug\":$find_result}"
827
+ fi
828
+ }
829
+
830
+ # Helper: click at coordinates (reuses click logic)
831
+ do_click_at() {
832
+ local cx="$1" cy="$2"
833
+ osascript -l JavaScript -e "
834
+ ObjC.import('CoreGraphics');
835
+ var point = \$.CGPointMake($cx, $cy);
836
+ var move = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, point, 0);
837
+ \$.CGEventPost(\$.kCGSessionEventTap, move);
838
+ delay(0.1);
839
+ var down = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, point, 0);
840
+ \$.CGEventPost(\$.kCGSessionEventTap, down);
841
+ delay(0.05);
842
+ var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, point, 0);
843
+ \$.CGEventPost(\$.kCGSessionEventTap, up);
844
+ " >/dev/null 2>&1
845
+ }
846
+
847
+ # ---------------------------------------------------------------------------
848
+ # Action dispatch
849
+ # ---------------------------------------------------------------------------
850
+ case "$ACTION" in
851
+ screenshot) do_screenshot ;;
852
+ click) do_click ;;
853
+ move) do_move ;;
854
+ type) do_type ;;
855
+ key) do_key ;;
856
+ scroll) do_scroll ;;
857
+ drag) do_drag ;;
858
+ focus) do_focus ;;
859
+ open-url) do_open_url ;;
860
+ list-apps) do_list_apps ;;
861
+ find) do_find ;;
862
+ click-text) do_click_text ;;
863
+ *) error_exit "Unknown action: $ACTION. Valid: screenshot, click, move, type, key, scroll, drag, focus, open-url, list-apps, find, click-text" ;;
228
864
  esac