crewly 1.3.31 → 1.4.0

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 (665) hide show
  1. package/config/constants.ts +18 -3
  2. package/config/hooks/install-hooks.sh +88 -0
  3. package/config/hooks/pre-commit +104 -0
  4. package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +17 -24
  5. package/config/roles/auditor/role.json +13 -0
  6. package/config/roles/orchestrator/prompt.md +25 -0
  7. package/config/roles/product-manager/prompt.md +18 -1
  8. package/config/roles/researcher/prompt.md +110 -0
  9. package/config/roles/team-leader/prompt.md +31 -8
  10. package/config/roles/team-leader/tl-addon.md +40 -9
  11. package/config/roles/ux-designer/prompt.md +111 -0
  12. package/config/skills/_common/lib.sh +33 -0
  13. package/config/skills/agent/browse-stealth/{instructions.md → SKILL.md} +40 -0
  14. package/config/skills/agent/chrome-attach/SKILL.md +84 -0
  15. package/config/skills/agent/chrome-attach/execute.sh +279 -0
  16. package/config/skills/agent/competitor-content-tracker/{instructions.md → SKILL.md} +34 -0
  17. package/config/skills/agent/computer-use/{instructions.md → SKILL.md} +43 -0
  18. package/config/skills/agent/content-calendar/{instructions.md → SKILL.md} +32 -0
  19. package/config/skills/agent/content-repurposer/{instructions.md → SKILL.md} +38 -0
  20. package/config/skills/agent/content-writer/{instructions.md → SKILL.md} +38 -0
  21. package/config/skills/agent/core/accept-task/{instructions.md → SKILL.md} +37 -0
  22. package/config/skills/agent/core/block-task/{instructions.md → SKILL.md} +37 -0
  23. package/config/skills/agent/core/check-quality-gates/{instructions.md → SKILL.md} +40 -0
  24. package/config/skills/agent/core/complete-task/{instructions.md → SKILL.md} +37 -0
  25. package/config/skills/agent/core/complete-task/execute.sh +15 -0
  26. package/config/skills/agent/core/generate-pdf/{instructions.md → SKILL.md} +42 -0
  27. package/config/skills/agent/core/get-my-context/{instructions.md → SKILL.md} +38 -0
  28. package/config/skills/agent/core/get-sops/{instructions.md → SKILL.md} +38 -0
  29. package/config/skills/agent/core/get-team-norms/execute.sh +106 -0
  30. package/config/skills/agent/core/get-team-status/SKILL.md +55 -0
  31. package/config/skills/agent/core/handoff-task/execute.sh +150 -0
  32. package/config/skills/agent/core/heartbeat/{instructions.md → SKILL.md} +27 -0
  33. package/config/skills/agent/core/marketplace-search/{instructions.md → SKILL.md} +41 -0
  34. package/config/skills/agent/core/query-knowledge/{instructions.md → SKILL.md} +40 -0
  35. package/config/skills/agent/core/read-task/SKILL.md +56 -0
  36. package/config/skills/agent/core/recall/{instructions.md → SKILL.md} +38 -0
  37. package/config/skills/agent/core/record-learning/{instructions.md → SKILL.md} +38 -0
  38. package/config/skills/agent/core/register-self/SKILL.md +54 -0
  39. package/config/skills/agent/core/remember/{instructions.md → SKILL.md} +37 -0
  40. package/config/skills/agent/core/remember/execute.sh +6 -0
  41. package/config/skills/agent/core/reply-chat/{instructions.md → SKILL.md} +37 -0
  42. package/config/skills/agent/core/report-progress/{instructions.md → SKILL.md} +38 -0
  43. package/config/skills/agent/core/report-status/{instructions.md → SKILL.md} +39 -0
  44. package/config/skills/agent/core/send-chat-response/{instructions.md → SKILL.md} +37 -0
  45. package/config/skills/agent/core/send-message/SKILL.md +58 -0
  46. package/config/skills/agent/core/update-team-norm/execute.sh +115 -0
  47. package/config/skills/agent/desktop-app-control/{instructions.md → SKILL.md} +42 -0
  48. package/config/skills/agent/trend-monitor/{instructions.md → SKILL.md} +34 -0
  49. package/config/skills/agent/vnc-browser/{instructions.md → SKILL.md} +38 -0
  50. package/config/skills/auditor/score-task/SKILL.md +28 -0
  51. package/config/skills/auditor/score-task/execute.sh +21 -0
  52. package/config/skills/examples/enterprise-skill-example.json +22 -0
  53. package/config/skills/examples/premium-skill-example.json +22 -0
  54. package/config/skills/orchestrator/assign-task/SKILL.md +41 -0
  55. package/config/skills/orchestrator/assign-team-to-project/{instructions.md → SKILL.md} +25 -0
  56. package/config/skills/orchestrator/broadcast/{instructions.md → SKILL.md} +24 -0
  57. package/config/skills/orchestrator/broadcast-to-org/{instructions.md → SKILL.md} +25 -0
  58. package/config/skills/orchestrator/cancel-all-schedules/{instructions.md → SKILL.md} +5 -0
  59. package/config/skills/orchestrator/cancel-schedule/SKILL.md +43 -0
  60. package/config/skills/orchestrator/complete-task/SKILL.md +41 -0
  61. package/config/skills/orchestrator/create-project/{instructions.md → SKILL.md} +24 -0
  62. package/config/skills/orchestrator/create-team/{instructions.md → SKILL.md} +24 -0
  63. package/config/skills/orchestrator/delegate-task/{instructions.md → SKILL.md} +27 -0
  64. package/config/skills/orchestrator/delegate-task/execute.sh +31 -2
  65. package/config/skills/orchestrator/get-agent-logs/{instructions.md → SKILL.md} +25 -0
  66. package/config/skills/orchestrator/get-agent-status/{instructions.md → SKILL.md} +24 -0
  67. package/config/skills/orchestrator/get-project-overview/SKILL.md +41 -0
  68. package/config/skills/orchestrator/get-tasks/SKILL.md +41 -0
  69. package/config/skills/orchestrator/get-team-status/SKILL.md +43 -0
  70. package/config/skills/orchestrator/handle-agent-failure/{instructions.md → SKILL.md} +27 -0
  71. package/config/skills/orchestrator/heartbeat/{instructions.md → SKILL.md} +24 -0
  72. package/config/skills/orchestrator/list-schedules/{instructions.md → SKILL.md} +5 -0
  73. package/config/skills/orchestrator/list-subscriptions/SKILL.md +41 -0
  74. package/config/skills/orchestrator/query-knowledge/{instructions.md → SKILL.md} +28 -0
  75. package/config/skills/orchestrator/read-session-logs/{instructions.md → SKILL.md} +26 -0
  76. package/config/skills/orchestrator/read-system-logs/{instructions.md → SKILL.md} +25 -0
  77. package/config/skills/orchestrator/recall/{instructions.md → SKILL.md} +24 -0
  78. package/config/skills/orchestrator/record-failure/{instructions.md → SKILL.md} +27 -0
  79. package/config/skills/orchestrator/record-learning/{instructions.md → SKILL.md} +24 -0
  80. package/config/skills/orchestrator/record-success/{instructions.md → SKILL.md} +26 -0
  81. package/config/skills/orchestrator/register-self/{instructions.md → SKILL.md} +24 -0
  82. package/config/skills/orchestrator/remember/{instructions.md → SKILL.md} +24 -0
  83. package/config/skills/orchestrator/reply-chat/{instructions.md → SKILL.md} +25 -0
  84. package/config/skills/orchestrator/reply-chat/execute.sh +0 -13
  85. package/config/skills/orchestrator/reply-gchat/{instructions.md → SKILL.md} +25 -0
  86. package/config/skills/orchestrator/reply-gchat/execute.sh +0 -18
  87. package/config/skills/orchestrator/reply-slack/{instructions.md → SKILL.md} +24 -0
  88. package/config/skills/orchestrator/reply-slack/execute.sh +18 -31
  89. package/config/skills/orchestrator/report-bug/{instructions.md → SKILL.md} +26 -0
  90. package/config/skills/orchestrator/restart-crewly/{instructions.md → SKILL.md} +26 -0
  91. package/config/skills/orchestrator/resume-session/{instructions.md → SKILL.md} +24 -0
  92. package/config/skills/orchestrator/schedule-check/{instructions.md → SKILL.md} +24 -0
  93. package/config/skills/orchestrator/send-key/{instructions.md → SKILL.md} +26 -0
  94. package/config/skills/orchestrator/send-message/{instructions.md → SKILL.md} +24 -0
  95. package/config/skills/orchestrator/send-pdf-to-slack/{instructions.md → SKILL.md} +27 -0
  96. package/config/skills/orchestrator/set-goal/{instructions.md → SKILL.md} +26 -0
  97. package/config/skills/orchestrator/start-agent/{instructions.md → SKILL.md} +24 -0
  98. package/config/skills/orchestrator/start-team/{instructions.md → SKILL.md} +24 -0
  99. package/config/skills/orchestrator/stop-agent/{instructions.md → SKILL.md} +24 -0
  100. package/config/skills/orchestrator/stop-team/SKILL.md +43 -0
  101. package/config/skills/orchestrator/subscribe-event/{instructions.md → SKILL.md} +24 -0
  102. package/config/skills/orchestrator/terminate-agent/{instructions.md → SKILL.md} +24 -0
  103. package/config/skills/orchestrator/unsubscribe-event/SKILL.md +42 -0
  104. package/config/skills/orchestrator/update-focus/{instructions.md → SKILL.md} +26 -0
  105. package/config/skills/orchestrator/update-team/{instructions.md → SKILL.md} +24 -0
  106. package/config/skills/team-leader/aggregate-results/{instructions.md → SKILL.md} +26 -0
  107. package/config/skills/team-leader/decompose-goal/{instructions.md → SKILL.md} +26 -0
  108. package/config/skills/team-leader/delegate-task/{instructions.md → SKILL.md} +26 -0
  109. package/config/skills/team-leader/delegate-task/execute.sh +14 -6
  110. package/config/skills/team-leader/delegate-task/execute.test.sh +401 -0
  111. package/config/skills/team-leader/handle-failure/{instructions.md → SKILL.md} +27 -0
  112. package/config/skills/team-leader/schedule-check/{instructions.md → SKILL.md} +26 -0
  113. package/config/skills/team-leader/start-agent/{instructions.md → SKILL.md} +26 -0
  114. package/config/skills/team-leader/stop-agent/{instructions.md → SKILL.md} +26 -0
  115. package/config/skills/team-leader/verify-output/{instructions.md → SKILL.md} +27 -0
  116. package/config/templates/agent-agents-md.md +35 -0
  117. package/config/templates/agent-gemini-md.md +35 -0
  118. package/config/templates/code-review-team/team-config.json +7 -0
  119. package/config/templates/content-generation-team/norms/brand-guidelines.md +64 -0
  120. package/config/templates/content-generation-team/norms/content-review.md +66 -0
  121. package/config/templates/content-generation-team/norms/publish-checklist.md +58 -0
  122. package/config/templates/content-generation-team/team-config.json +8 -0
  123. package/config/templates/dev-fullstack/norms/code-commit-sop.md +40 -0
  124. package/config/templates/dev-fullstack/norms/quality-gates.md +35 -0
  125. package/config/templates/dev-fullstack/template.json +17 -1
  126. package/config/templates/education-smb/template.json +10 -1
  127. package/config/templates/insurance-smb/template.json +10 -1
  128. package/config/templates/research-analysis/norms/research-methodology.md +36 -0
  129. package/config/templates/research-analysis/norms/source-citation.md +33 -0
  130. package/config/templates/research-analysis/template.json +17 -1
  131. package/config/templates/security-audit-team.json +67 -0
  132. package/config/templates/social-media-ops/norms/engagement-rules.md +35 -0
  133. package/config/templates/social-media-ops/norms/posting-schedule.md +43 -0
  134. package/config/templates/social-media-ops/template.json +17 -1
  135. package/config/templates/video-production/template.json +10 -1
  136. package/dist/backend/backend/src/constants.d.ts +80 -11
  137. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  138. package/dist/backend/backend/src/constants.js +85 -11
  139. package/dist/backend/backend/src/constants.js.map +1 -1
  140. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +99 -0
  141. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -0
  142. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +183 -0
  143. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -0
  144. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts +15 -0
  145. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -0
  146. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +27 -0
  147. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -0
  148. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts +70 -0
  149. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts.map +1 -0
  150. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js +368 -0
  151. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js.map +1 -0
  152. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +24 -0
  153. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  154. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +195 -3
  155. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  156. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +9 -4
  157. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
  158. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +19 -5
  159. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
  160. package/dist/backend/backend/src/controllers/cloud/index.d.ts +1 -0
  161. package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -1
  162. package/dist/backend/backend/src/controllers/cloud/index.js +1 -0
  163. package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -1
  164. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  165. package/dist/backend/backend/src/controllers/index.js +2 -0
  166. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  167. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +1 -1
  168. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  169. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +3 -3
  170. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +9 -9
  171. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -1
  172. package/dist/backend/backend/src/controllers/memory/memory.controller.js +6 -6
  173. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  174. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +0 -7
  175. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  176. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +2 -135
  177. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  178. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +14 -0
  179. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  180. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +96 -1
  181. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  182. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
  183. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +8 -1
  184. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
  185. package/dist/backend/backend/src/controllers/payment/payment.controller.js +2 -2
  186. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
  187. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +3 -3
  188. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -1
  189. package/dist/backend/backend/src/controllers/payment/payment.routes.js +4 -14
  190. package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -1
  191. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +15 -94
  192. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
  193. package/dist/backend/backend/src/controllers/payment/payment.types.js +11 -35
  194. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
  195. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.d.ts +49 -0
  196. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.d.ts.map +1 -0
  197. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.js +138 -0
  198. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.js.map +1 -0
  199. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.d.ts +20 -0
  200. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.d.ts.map +1 -0
  201. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.js +30 -0
  202. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.js.map +1 -0
  203. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts +12 -0
  204. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts.map +1 -1
  205. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js +107 -0
  206. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js.map +1 -1
  207. package/dist/backend/backend/src/controllers/request-types.d.ts +20 -1
  208. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  209. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  210. package/dist/backend/backend/src/controllers/slack/slack.controller.js +11 -5
  211. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  212. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +46 -0
  213. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  214. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +598 -326
  215. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  216. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +12 -0
  217. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  218. package/dist/backend/backend/src/controllers/team/team.controller.js +105 -36
  219. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  220. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  221. package/dist/backend/backend/src/controllers/team/team.routes.js +2 -1
  222. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  223. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +11 -0
  224. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
  225. package/dist/backend/backend/src/controllers/template/template.controller.js +59 -0
  226. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
  227. package/dist/backend/backend/src/controllers/template/template.routes.d.ts.map +1 -1
  228. package/dist/backend/backend/src/controllers/template/template.routes.js +2 -1
  229. package/dist/backend/backend/src/controllers/template/template.routes.js.map +1 -1
  230. package/dist/backend/backend/src/controllers/workspace/workspace.controller.d.ts +39 -0
  231. package/dist/backend/backend/src/controllers/workspace/workspace.controller.d.ts.map +1 -0
  232. package/dist/backend/backend/src/controllers/workspace/workspace.controller.js +120 -0
  233. package/dist/backend/backend/src/controllers/workspace/workspace.controller.js.map +1 -0
  234. package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts +18 -0
  235. package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts.map +1 -0
  236. package/dist/backend/backend/src/controllers/workspace/workspace.routes.js +27 -0
  237. package/dist/backend/backend/src/controllers/workspace/workspace.routes.js.map +1 -0
  238. package/dist/backend/backend/src/index.d.ts.map +1 -1
  239. package/dist/backend/backend/src/index.js +108 -15
  240. package/dist/backend/backend/src/index.js.map +1 -1
  241. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +20 -0
  242. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -0
  243. package/dist/backend/backend/src/middleware/require-auth.middleware.js +21 -0
  244. package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -0
  245. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  246. package/dist/backend/backend/src/routes/api.routes.js +18 -5
  247. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  248. package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts +2 -1
  249. package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts.map +1 -1
  250. package/dist/backend/backend/src/routes/modules/quality-gate.routes.js +4 -2
  251. package/dist/backend/backend/src/routes/modules/quality-gate.routes.js.map +1 -1
  252. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  253. package/dist/backend/backend/src/routes/modules/task-management.routes.js +8 -0
  254. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  255. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts.map +1 -1
  256. package/dist/backend/backend/src/routes/modules/terminal.routes.js +4 -0
  257. package/dist/backend/backend/src/routes/modules/terminal.routes.js.map +1 -1
  258. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.d.ts +149 -0
  259. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.d.ts.map +1 -0
  260. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.js +200 -0
  261. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.js.map +1 -0
  262. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +13 -0
  263. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  264. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +65 -6
  265. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  266. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +36 -0
  267. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  268. package/dist/backend/backend/src/services/agent/agent-registration.service.js +174 -52
  269. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  270. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts +66 -20
  271. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
  272. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +261 -60
  273. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
  274. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +19 -0
  275. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  276. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +80 -0
  277. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  278. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +11 -0
  279. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  280. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +49 -1
  281. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  282. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +74 -3
  283. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  284. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +248 -18
  285. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  286. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.d.ts +161 -0
  287. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.d.ts.map +1 -0
  288. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.js +237 -0
  289. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.js.map +1 -0
  290. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +74 -0
  291. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +1 -0
  292. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +140 -0
  293. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +1 -0
  294. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -1
  295. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +50 -2
  296. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -1
  297. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +16 -1
  298. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
  299. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +45 -5
  300. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
  301. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +3 -1
  302. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -1
  303. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +3 -1
  304. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -1
  305. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +135 -0
  306. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +1 -0
  307. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +185 -0
  308. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +1 -0
  309. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +10 -2
  310. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
  311. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +22 -2
  312. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
  313. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +143 -0
  314. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -0
  315. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +264 -0
  316. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -0
  317. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +2 -2
  318. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +55 -1
  319. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  320. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +660 -45
  321. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  322. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +75 -3
  323. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  324. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +49 -2
  325. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  326. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  327. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +17 -2
  328. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  329. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +37 -0
  330. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  331. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +170 -3
  332. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  333. package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts +108 -0
  334. package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts.map +1 -0
  335. package/dist/backend/backend/src/services/browser/chrome-discovery.service.js +251 -0
  336. package/dist/backend/backend/src/services/browser/chrome-discovery.service.js.map +1 -0
  337. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +12 -0
  338. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  339. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +19 -0
  340. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  341. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +191 -0
  342. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -0
  343. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +415 -0
  344. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js.map +1 -0
  345. package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts +89 -0
  346. package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts.map +1 -0
  347. package/dist/backend/backend/src/services/cloud/device-identity.service.js +148 -0
  348. package/dist/backend/backend/src/services/cloud/device-identity.service.js.map +1 -0
  349. package/dist/backend/backend/src/services/core/tracing.service.d.ts +127 -0
  350. package/dist/backend/backend/src/services/core/tracing.service.d.ts.map +1 -0
  351. package/dist/backend/backend/src/services/core/tracing.service.js +238 -0
  352. package/dist/backend/backend/src/services/core/tracing.service.js.map +1 -0
  353. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  354. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +11 -3
  355. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  356. package/dist/backend/backend/src/services/index.d.ts +1 -0
  357. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  358. package/dist/backend/backend/src/services/index.js +1 -0
  359. package/dist/backend/backend/src/services/index.js.map +1 -1
  360. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
  361. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
  362. package/dist/backend/backend/src/services/knowledge/embedding-provider.js +164 -0
  363. package/dist/backend/backend/src/services/knowledge/embedding-provider.js.map +1 -0
  364. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +39 -13
  365. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  366. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +114 -17
  367. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  368. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts +170 -23
  369. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
  370. package/dist/backend/backend/src/services/knowledge/vector-store.service.js +565 -73
  371. package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
  372. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  373. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +8 -11
  374. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  375. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
  376. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +1 -0
  377. package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
  378. package/dist/backend/backend/src/services/memory/context-flush.service.d.ts +73 -0
  379. package/dist/backend/backend/src/services/memory/context-flush.service.d.ts.map +1 -0
  380. package/dist/backend/backend/src/services/memory/context-flush.service.js +131 -0
  381. package/dist/backend/backend/src/services/memory/context-flush.service.js.map +1 -0
  382. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts +23 -2
  383. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts.map +1 -1
  384. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js +78 -16
  385. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js.map +1 -1
  386. package/dist/backend/backend/src/services/memory/memory.service.d.ts +38 -0
  387. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  388. package/dist/backend/backend/src/services/memory/memory.service.js +121 -2
  389. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  390. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +29 -207
  391. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -1
  392. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +97 -683
  393. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -1
  394. package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
  395. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +13 -12
  396. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
  397. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +2 -0
  398. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  399. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +6 -23
  400. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  401. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +48 -184
  402. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  403. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  404. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +51 -5
  405. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  406. package/dist/backend/backend/src/services/orchestrator/index.d.ts +1 -1
  407. package/dist/backend/backend/src/services/orchestrator/index.d.ts.map +1 -1
  408. package/dist/backend/backend/src/services/orchestrator/index.js +1 -1
  409. package/dist/backend/backend/src/services/orchestrator/index.js.map +1 -1
  410. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +65 -0
  411. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  412. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +165 -2
  413. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  414. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +8 -0
  415. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  416. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +23 -0
  417. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  418. package/dist/backend/backend/src/services/payment/stripe.service.d.ts +95 -43
  419. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
  420. package/dist/backend/backend/src/services/payment/stripe.service.js +229 -190
  421. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
  422. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts +181 -0
  423. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -0
  424. package/dist/backend/backend/src/services/pr-review/pr-review.service.js +336 -0
  425. package/dist/backend/backend/src/services/pr-review/pr-review.service.js.map +1 -0
  426. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +23 -0
  427. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  428. package/dist/backend/backend/src/services/project/task-tracking.service.js +88 -0
  429. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  430. package/dist/backend/backend/src/services/session/index.d.ts +2 -0
  431. package/dist/backend/backend/src/services/session/index.d.ts.map +1 -1
  432. package/dist/backend/backend/src/services/session/index.js +2 -0
  433. package/dist/backend/backend/src/services/session/index.js.map +1 -1
  434. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +260 -0
  435. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
  436. package/dist/backend/backend/src/services/session/session-handoff.service.js +565 -0
  437. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -0
  438. package/dist/backend/backend/src/services/skill/index.d.ts +1 -0
  439. package/dist/backend/backend/src/services/skill/index.d.ts.map +1 -1
  440. package/dist/backend/backend/src/services/skill/index.js +1 -0
  441. package/dist/backend/backend/src/services/skill/index.js.map +1 -1
  442. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +25 -6
  443. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  444. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +78 -20
  445. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  446. package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts +116 -0
  447. package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts.map +1 -0
  448. package/dist/backend/backend/src/services/skill/skill-tier.service.js +155 -0
  449. package/dist/backend/backend/src/services/skill/skill-tier.service.js.map +1 -0
  450. package/dist/backend/backend/src/services/skill/skill.service.d.ts +35 -7
  451. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  452. package/dist/backend/backend/src/services/skill/skill.service.js +128 -35
  453. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  454. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +50 -47
  455. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  456. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +267 -202
  457. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  458. package/dist/backend/backend/src/services/slack/slack.service.d.ts +28 -2
  459. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  460. package/dist/backend/backend/src/services/slack/slack.service.js +69 -3
  461. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  462. package/dist/backend/backend/src/services/template/template.service.d.ts +19 -1
  463. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  464. package/dist/backend/backend/src/services/template/template.service.js +110 -3
  465. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  466. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +11 -0
  467. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
  468. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +57 -3
  469. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
  470. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  471. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +6 -0
  472. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  473. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +52 -0
  474. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  475. package/dist/backend/backend/src/services/workflow/scheduler.service.js +319 -6
  476. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  477. package/dist/backend/backend/src/types/chat.types.d.ts +2 -2
  478. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  479. package/dist/backend/backend/src/types/chat.types.js +18 -22
  480. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  481. package/dist/backend/backend/src/types/index.d.ts +37 -0
  482. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  483. package/dist/backend/backend/src/types/index.js.map +1 -1
  484. package/dist/backend/backend/src/types/marketplace.types.d.ts +1 -1
  485. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  486. package/dist/backend/backend/src/types/scheduler.types.d.ts +4 -0
  487. package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -1
  488. package/dist/backend/backend/src/types/scheduler.types.js.map +1 -1
  489. package/dist/backend/backend/src/types/skill.types.d.ts +4 -0
  490. package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
  491. package/dist/backend/backend/src/types/skill.types.js.map +1 -1
  492. package/dist/backend/backend/src/types/task-tracking.types.d.ts +6 -0
  493. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  494. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  495. package/dist/backend/backend/src/types/team-template.types.d.ts +2 -0
  496. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  497. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  498. package/dist/backend/backend/src/utils/skill-md-parser.d.ts +38 -0
  499. package/dist/backend/backend/src/utils/skill-md-parser.d.ts.map +1 -0
  500. package/dist/backend/backend/src/utils/skill-md-parser.js +47 -0
  501. package/dist/backend/backend/src/utils/skill-md-parser.js.map +1 -0
  502. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +0 -154
  503. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  504. package/dist/backend/backend/src/websocket/terminal.gateway.js +0 -515
  505. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  506. package/dist/backend/config/constants.d.ts +18 -3
  507. package/dist/backend/config/constants.d.ts.map +1 -1
  508. package/dist/backend/config/constants.js +18 -3
  509. package/dist/backend/config/constants.js.map +1 -1
  510. package/dist/cli/backend/src/constants.d.ts +80 -11
  511. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  512. package/dist/cli/backend/src/constants.js +85 -11
  513. package/dist/cli/backend/src/constants.js.map +1 -1
  514. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
  515. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
  516. package/dist/cli/backend/src/services/knowledge/embedding-provider.js +164 -0
  517. package/dist/cli/backend/src/services/knowledge/embedding-provider.js.map +1 -0
  518. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +39 -13
  519. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  520. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +114 -17
  521. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  522. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts +170 -23
  523. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
  524. package/dist/cli/backend/src/services/knowledge/vector-store.service.js +565 -73
  525. package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
  526. package/dist/cli/backend/src/services/memory/memory.service.d.ts +38 -0
  527. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  528. package/dist/cli/backend/src/services/memory/memory.service.js +121 -2
  529. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  530. package/dist/cli/backend/src/types/chat.types.d.ts +2 -2
  531. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  532. package/dist/cli/backend/src/types/chat.types.js +18 -22
  533. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  534. package/dist/cli/backend/src/types/index.d.ts +37 -0
  535. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  536. package/dist/cli/backend/src/types/index.js.map +1 -1
  537. package/dist/cli/backend/src/types/scheduler.types.d.ts +4 -0
  538. package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -1
  539. package/dist/cli/backend/src/types/scheduler.types.js.map +1 -1
  540. package/dist/cli/backend/src/types/skill.types.d.ts +4 -0
  541. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
  542. package/dist/cli/backend/src/types/skill.types.js.map +1 -1
  543. package/dist/cli/cli/src/commands/onboard.d.ts +19 -2
  544. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  545. package/dist/cli/cli/src/commands/onboard.js +58 -15
  546. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  547. package/dist/cli/cli/src/commands/pair.d.ts +46 -0
  548. package/dist/cli/cli/src/commands/pair.d.ts.map +1 -0
  549. package/dist/cli/cli/src/commands/pair.js +258 -0
  550. package/dist/cli/cli/src/commands/pair.js.map +1 -0
  551. package/dist/cli/cli/src/commands/service.d.ts +86 -0
  552. package/dist/cli/cli/src/commands/service.d.ts.map +1 -0
  553. package/dist/cli/cli/src/commands/service.js +687 -0
  554. package/dist/cli/cli/src/commands/service.js.map +1 -0
  555. package/dist/cli/cli/src/index.js +17 -0
  556. package/dist/cli/cli/src/index.js.map +1 -1
  557. package/dist/cli/config/constants.d.ts +18 -3
  558. package/dist/cli/config/constants.d.ts.map +1 -1
  559. package/dist/cli/config/constants.js +18 -3
  560. package/dist/cli/config/constants.js.map +1 -1
  561. package/frontend/dist/assets/index-1d23cce8.js +4919 -0
  562. package/frontend/dist/assets/index-60a9e4ea.css +33 -0
  563. package/frontend/dist/index.html +2 -2
  564. package/package.json +22 -10
  565. package/config/skills/agent/browse-stealth/skill.json +0 -20
  566. package/config/skills/agent/competitor-content-tracker/skill.json +0 -22
  567. package/config/skills/agent/computer-use/skill.json +0 -29
  568. package/config/skills/agent/content-calendar/skill.json +0 -22
  569. package/config/skills/agent/content-repurposer/skill.json +0 -22
  570. package/config/skills/agent/content-writer/skill.json +0 -22
  571. package/config/skills/agent/core/accept-task/skill.json +0 -20
  572. package/config/skills/agent/core/block-task/skill.json +0 -20
  573. package/config/skills/agent/core/check-quality-gates/skill.json +0 -20
  574. package/config/skills/agent/core/complete-task/skill.json +0 -20
  575. package/config/skills/agent/core/generate-pdf/skill.json +0 -20
  576. package/config/skills/agent/core/get-my-context/skill.json +0 -20
  577. package/config/skills/agent/core/get-sops/skill.json +0 -20
  578. package/config/skills/agent/core/get-team-status/instructions.md +0 -17
  579. package/config/skills/agent/core/get-team-status/skill.json +0 -20
  580. package/config/skills/agent/core/heartbeat/skill.json +0 -20
  581. package/config/skills/agent/core/marketplace-search/skill.json +0 -20
  582. package/config/skills/agent/core/query-knowledge/skill.json +0 -20
  583. package/config/skills/agent/core/read-task/instructions.md +0 -19
  584. package/config/skills/agent/core/read-task/skill.json +0 -20
  585. package/config/skills/agent/core/recall/skill.json +0 -20
  586. package/config/skills/agent/core/record-learning/skill.json +0 -20
  587. package/config/skills/agent/core/register-self/instructions.md +0 -18
  588. package/config/skills/agent/core/register-self/skill.json +0 -20
  589. package/config/skills/agent/core/remember/skill.json +0 -20
  590. package/config/skills/agent/core/reply-chat/skill.json +0 -20
  591. package/config/skills/agent/core/report-progress/skill.json +0 -20
  592. package/config/skills/agent/core/report-status/skill.json +0 -20
  593. package/config/skills/agent/core/send-chat-response/skill.json +0 -20
  594. package/config/skills/agent/core/send-message/instructions.md +0 -20
  595. package/config/skills/agent/core/send-message/skill.json +0 -20
  596. package/config/skills/agent/desktop-app-control/skill.json +0 -33
  597. package/config/skills/agent/trend-monitor/skill.json +0 -22
  598. package/config/skills/agent/vnc-browser/skill.json +0 -20
  599. package/config/skills/orchestrator/assign-task/instructions.md +0 -17
  600. package/config/skills/orchestrator/assign-task/skill.json +0 -20
  601. package/config/skills/orchestrator/assign-team-to-project/skill.json +0 -20
  602. package/config/skills/orchestrator/broadcast/skill.json +0 -20
  603. package/config/skills/orchestrator/broadcast-to-org/skill.json +0 -20
  604. package/config/skills/orchestrator/cancel-all-schedules/skill.json +0 -17
  605. package/config/skills/orchestrator/cancel-schedule/instructions.md +0 -19
  606. package/config/skills/orchestrator/cancel-schedule/skill.json +0 -20
  607. package/config/skills/orchestrator/complete-task/instructions.md +0 -17
  608. package/config/skills/orchestrator/complete-task/skill.json +0 -20
  609. package/config/skills/orchestrator/create-project/skill.json +0 -20
  610. package/config/skills/orchestrator/create-team/skill.json +0 -20
  611. package/config/skills/orchestrator/delegate-task/skill.json +0 -20
  612. package/config/skills/orchestrator/get-agent-logs/skill.json +0 -20
  613. package/config/skills/orchestrator/get-agent-status/skill.json +0 -20
  614. package/config/skills/orchestrator/get-project-overview/instructions.md +0 -17
  615. package/config/skills/orchestrator/get-project-overview/skill.json +0 -20
  616. package/config/skills/orchestrator/get-tasks/instructions.md +0 -17
  617. package/config/skills/orchestrator/get-tasks/skill.json +0 -20
  618. package/config/skills/orchestrator/get-team-status/instructions.md +0 -17
  619. package/config/skills/orchestrator/get-team-status/skill.json +0 -20
  620. package/config/skills/orchestrator/handle-agent-failure/skill.json +0 -20
  621. package/config/skills/orchestrator/heartbeat/skill.json +0 -20
  622. package/config/skills/orchestrator/list-schedules/skill.json +0 -12
  623. package/config/skills/orchestrator/list-subscriptions/instructions.md +0 -17
  624. package/config/skills/orchestrator/list-subscriptions/skill.json +0 -20
  625. package/config/skills/orchestrator/query-knowledge/skill.json +0 -20
  626. package/config/skills/orchestrator/read-session-logs/skill.json +0 -20
  627. package/config/skills/orchestrator/read-system-logs/skill.json +0 -20
  628. package/config/skills/orchestrator/recall/skill.json +0 -20
  629. package/config/skills/orchestrator/record-failure/skill.json +0 -20
  630. package/config/skills/orchestrator/record-learning/skill.json +0 -20
  631. package/config/skills/orchestrator/record-success/skill.json +0 -20
  632. package/config/skills/orchestrator/register-self/skill.json +0 -20
  633. package/config/skills/orchestrator/remember/skill.json +0 -20
  634. package/config/skills/orchestrator/reply-chat/skill.json +0 -20
  635. package/config/skills/orchestrator/reply-gchat/skill.json +0 -20
  636. package/config/skills/orchestrator/reply-slack/skill.json +0 -20
  637. package/config/skills/orchestrator/report-bug/skill.json +0 -20
  638. package/config/skills/orchestrator/restart-crewly/skill.json +0 -20
  639. package/config/skills/orchestrator/resume-session/skill.json +0 -20
  640. package/config/skills/orchestrator/schedule-check/skill.json +0 -20
  641. package/config/skills/orchestrator/send-key/skill.json +0 -20
  642. package/config/skills/orchestrator/send-message/skill.json +0 -20
  643. package/config/skills/orchestrator/send-pdf-to-slack/skill.json +0 -20
  644. package/config/skills/orchestrator/set-goal/skill.json +0 -20
  645. package/config/skills/orchestrator/start-agent/skill.json +0 -20
  646. package/config/skills/orchestrator/start-team/skill.json +0 -20
  647. package/config/skills/orchestrator/stop-agent/skill.json +0 -20
  648. package/config/skills/orchestrator/stop-team/instructions.md +0 -19
  649. package/config/skills/orchestrator/stop-team/skill.json +0 -20
  650. package/config/skills/orchestrator/subscribe-event/skill.json +0 -20
  651. package/config/skills/orchestrator/terminate-agent/skill.json +0 -20
  652. package/config/skills/orchestrator/unsubscribe-event/instructions.md +0 -19
  653. package/config/skills/orchestrator/unsubscribe-event/skill.json +0 -20
  654. package/config/skills/orchestrator/update-focus/skill.json +0 -20
  655. package/config/skills/orchestrator/update-team/skill.json +0 -20
  656. package/config/skills/team-leader/aggregate-results/skill.json +0 -20
  657. package/config/skills/team-leader/decompose-goal/skill.json +0 -20
  658. package/config/skills/team-leader/delegate-task/skill.json +0 -20
  659. package/config/skills/team-leader/handle-failure/skill.json +0 -20
  660. package/config/skills/team-leader/schedule-check/skill.json +0 -20
  661. package/config/skills/team-leader/start-agent/skill.json +0 -20
  662. package/config/skills/team-leader/stop-agent/skill.json +0 -20
  663. package/config/skills/team-leader/verify-output/skill.json +0 -20
  664. package/frontend/dist/assets/index-0e5673b0.css +0 -33
  665. package/frontend/dist/assets/index-e6d7db4a.js +0 -5213
@@ -56,6 +56,8 @@ export class AgentRegistrationService {
56
56
  // In-process Crewly Agent runtimes (sessionName → runtime instance).
57
57
  // Used for crewly-agent runtimeType agents that run without PTY sessions.
58
58
  inProcessRuntimes = new Map();
59
+ /** #167: Optional scheduler service for DLQ drain on agent activation. */
60
+ schedulerService = null;
59
61
  // Terminal patterns are now centralized in TERMINAL_PATTERNS constant
60
62
  // Keeping prompt chars as static getter for backwards compatibility within the class
61
63
  static get CLAUDE_PROMPT_INDICATORS() {
@@ -76,6 +78,14 @@ export class AgentRegistrationService {
76
78
  }
77
79
  });
78
80
  }
81
+ /**
82
+ * #167: Inject scheduler service for dead-letter queue drain on agent activation.
83
+ *
84
+ * @param scheduler - Scheduler service with drainDeadLetterQueue method
85
+ */
86
+ setSchedulerService(scheduler) {
87
+ this.schedulerService = scheduler;
88
+ }
79
89
  /**
80
90
  * Cancel a pending registration prompt for a session.
81
91
  * Called by RuntimeExitMonitorService when a runtime exit is detected.
@@ -159,8 +169,52 @@ export class AgentRegistrationService {
159
169
  error: error instanceof Error ? error.message : String(error),
160
170
  });
161
171
  }
172
+ // Check in-process runtimes before defaulting to CLAUDE_CODE.
173
+ // crewly-agent runtimes may not have a team config entry yet.
174
+ if (this.inProcessRuntimes.has(sessionName)) {
175
+ return RUNTIME_TYPES.CREWLY_AGENT;
176
+ }
162
177
  return RUNTIME_TYPES.CLAUDE_CODE;
163
178
  }
179
+ /**
180
+ * Route a crewly-agent in-process response to the originating chat conversation.
181
+ *
182
+ * PTY-based runtimes emit [NOTIFY] markers that the terminal gateway parses.
183
+ * In-process crewly-agents have no terminal output, so this method provides
184
+ * the equivalent routing for their text responses.
185
+ *
186
+ * @param sessionName - Agent session that produced the response
187
+ * @param text - Response text from the agent
188
+ * @param conversationId - Chat conversation to route the response to
189
+ */
190
+ routeInProcessResponseToChat(sessionName, text, conversationId) {
191
+ // Lazy import to avoid circular dependencies at module load time
192
+ import('../../websocket/chat.gateway.js')
193
+ .then(({ getChatGateway }) => {
194
+ const chatGateway = getChatGateway();
195
+ if (!chatGateway) {
196
+ this.logger.debug('ChatGateway not available, skipping response routing', {
197
+ sessionName, conversationId,
198
+ });
199
+ return;
200
+ }
201
+ return chatGateway.processNotifyMessage(sessionName, text, conversationId, { source: 'crewly-agent' });
202
+ })
203
+ .then((chatMessage) => {
204
+ if (chatMessage) {
205
+ this.logger.debug('Routed in-process agent response to chat', {
206
+ sessionName, conversationId,
207
+ messageId: typeof chatMessage === 'object' ? chatMessage.id : undefined,
208
+ });
209
+ }
210
+ })
211
+ .catch((err) => {
212
+ this.logger.warn('Failed to route in-process agent response to chat', {
213
+ sessionName, conversationId,
214
+ error: err instanceof Error ? err.message : String(err),
215
+ });
216
+ });
217
+ }
164
218
  /**
165
219
  * Find the project root by looking for package.json
166
220
  */
@@ -410,7 +464,7 @@ export class AgentRegistrationService {
410
464
  // Clear any pending slash command from detection. Claude detection already
411
465
  // exits slash mode. Gemini CLI: skip — Ctrl+C at empty prompt exits CLI,
412
466
  // Escape defocuses TUI, Ctrl+U is ignored. The prompt should be clean.
413
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
467
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
414
468
  const promptDelivered = await this.sendPromptRobustly(sessionName, prompt, runtimeType);
415
469
  if (!promptDelivered) {
416
470
  this.logger.warn('Failed to deliver registration prompt', { sessionName, role });
@@ -456,7 +510,7 @@ export class AgentRegistrationService {
456
510
  let promptFilePath;
457
511
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
458
512
  try {
459
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
513
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
460
514
  promptFilePath = await this.writePromptFile(sessionName, prompt);
461
515
  }
462
516
  catch (promptError) {
@@ -531,16 +585,6 @@ export class AgentRegistrationService {
531
585
  role,
532
586
  runtimeType,
533
587
  });
534
- // Register Gemini CLI sessions with terminal gateway so NOTIFY
535
- // marker processing is skipped (Gemini TUI garbles markers).
536
- if (runtimeType === RUNTIME_TYPES.GEMINI_CLI) {
537
- import('../../websocket/terminal.gateway.js').then(({ getTerminalGateway }) => {
538
- const tg = getTerminalGateway();
539
- if (tg) {
540
- tg.registerGeminiCliSession(sessionName);
541
- }
542
- }).catch(() => { });
543
- }
544
588
  // Background: detect and store session ID for resume-on-restart
545
589
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
546
590
  const detectPath = projectPath || process.cwd();
@@ -618,6 +662,60 @@ export class AgentRegistrationService {
618
662
  });
619
663
  }
620
664
  }
665
+ /**
666
+ * Provision the runtime-specific project config file.
667
+ *
668
+ * Each agent CLI reads a different file for project configuration:
669
+ * - Claude Code → .crewly/CLAUDE.md
670
+ * - Gemini CLI → GEMINI.md (project root)
671
+ * - Codex → AGENTS.md (project root)
672
+ *
673
+ * Uses 'wx' flag to avoid overwriting existing files.
674
+ *
675
+ * @param projectPath - Project directory path
676
+ * @param runtimeType - Agent runtime type
677
+ */
678
+ async provisionRuntimeConfigFile(projectPath, runtimeType) {
679
+ // Map runtime type to template file and output path
680
+ const configMap = {
681
+ [RUNTIME_TYPES.CLAUDE_CODE]: {
682
+ template: 'agent-claude-md.md',
683
+ outputPath: path.join(projectPath, '.crewly', 'CLAUDE.md'),
684
+ },
685
+ [RUNTIME_TYPES.GEMINI_CLI]: {
686
+ template: 'agent-gemini-md.md',
687
+ outputPath: path.join(projectPath, 'GEMINI.md'),
688
+ },
689
+ [RUNTIME_TYPES.CODEX_CLI]: {
690
+ template: 'agent-agents-md.md',
691
+ outputPath: path.join(projectPath, 'AGENTS.md'),
692
+ },
693
+ };
694
+ const config = configMap[runtimeType];
695
+ if (!config)
696
+ return; // Unknown runtime — skip
697
+ try {
698
+ // Ensure parent directory exists
699
+ const dir = path.dirname(config.outputPath);
700
+ await mkdir(dir, { recursive: true });
701
+ const templatePath = path.join(this.projectRoot, 'config', 'templates', config.template);
702
+ let content = this.promptCache.get(templatePath);
703
+ if (!content) {
704
+ content = await readFile(templatePath, 'utf8');
705
+ this.promptCache.set(templatePath, content);
706
+ }
707
+ await writeFile(config.outputPath, content, { flag: 'wx' }).catch(() => {
708
+ // File already exists — no action needed
709
+ });
710
+ }
711
+ catch (err) {
712
+ this.logger.warn('Could not provision runtime config file (non-critical)', {
713
+ runtimeType,
714
+ outputPath: config.outputPath,
715
+ error: err instanceof Error ? err.message : String(err),
716
+ });
717
+ }
718
+ }
621
719
  /**
622
720
  * Send registration prompt asynchronously (non-blocking).
623
721
  * Uses an AbortController so the operation can be cancelled if the
@@ -631,7 +729,7 @@ export class AgentRegistrationService {
631
729
  this.logger.info('Loading registration prompt', { sessionName, role, runtimeType });
632
730
  if (controller.signal.aborted)
633
731
  return;
634
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
732
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
635
733
  this.logger.info('Registration prompt loaded, sending to agent', {
636
734
  sessionName, role, runtimeType, promptLength: prompt.length,
637
735
  });
@@ -700,7 +798,7 @@ export class AgentRegistrationService {
700
798
  let promptFilePath;
701
799
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
702
800
  try {
703
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
801
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
704
802
  promptFilePath = await this.writePromptFile(sessionName, prompt);
705
803
  }
706
804
  catch (promptError) {
@@ -877,6 +975,15 @@ export class AgentRegistrationService {
877
975
  }
878
976
  await this.storageService.saveTeam(team);
879
977
  this.logger.info('Member registered as active', { sessionName, teamId: team.id });
978
+ // #167: Drain dead-letter queue for newly active agent
979
+ if (this.schedulerService) {
980
+ this.schedulerService.drainDeadLetterQueue(sessionName).catch((err) => {
981
+ this.logger.warn('Failed to drain DLQ on activation (non-critical)', {
982
+ sessionName,
983
+ error: err.message,
984
+ });
985
+ });
986
+ }
880
987
  return true;
881
988
  }
882
989
  }
@@ -894,7 +1001,7 @@ export class AgentRegistrationService {
894
1001
  /**
895
1002
  * Load registration prompt from config files (with caching to prevent file I/O contention)
896
1003
  */
897
- async loadRegistrationPrompt(role, sessionName, memberId) {
1004
+ async loadRegistrationPrompt(role, sessionName, memberId, runtimeType = RUNTIME_TYPES.CLAUDE_CODE) {
898
1005
  try {
899
1006
  // Cache key is role only - the template file is the same regardless of memberId
900
1007
  const cacheKey = role;
@@ -948,30 +1055,11 @@ export class AgentRegistrationService {
948
1055
  catch {
949
1056
  // Non-critical - use default project path
950
1057
  }
951
- // Write .crewly/CLAUDE.md in the project directory so Claude Code
1058
+ // Write runtime-specific project config file so the agent CLI
952
1059
  // recognizes Crewly as a legitimate project configuration (fixes #33)
1060
+ // Claude Code → .crewly/CLAUDE.md, Gemini CLI → GEMINI.md, Codex → AGENTS.md
953
1061
  if (role !== ORCHESTRATOR_ROLE) {
954
- try {
955
- const crewlyDir = path.join(projectPath, '.crewly');
956
- const claudeMdPath = path.join(crewlyDir, 'CLAUDE.md');
957
- await mkdir(crewlyDir, { recursive: true });
958
- const templatePath = path.join(this.projectRoot, 'config', 'templates', 'agent-claude-md.md');
959
- let claudeMdContent = this.promptCache.get(templatePath);
960
- if (!claudeMdContent) {
961
- claudeMdContent = await readFile(templatePath, 'utf8');
962
- this.promptCache.set(templatePath, claudeMdContent);
963
- }
964
- await writeFile(claudeMdPath, claudeMdContent, { flag: 'wx' }).catch(() => {
965
- // File already exists — no action needed
966
- });
967
- }
968
- catch (claudeMdError) {
969
- this.logger.warn('Could not provision .crewly/CLAUDE.md for agent trust (non-critical)', {
970
- templatePath: path.join(this.projectRoot, 'config', 'templates', 'agent-claude-md.md'),
971
- projectPath,
972
- error: claudeMdError instanceof Error ? claudeMdError.message : String(claudeMdError),
973
- });
974
- }
1062
+ await this.provisionRuntimeConfigFile(projectPath, runtimeType);
975
1063
  }
976
1064
  // Replace project path placeholder (must happen after project path lookup above)
977
1065
  prompt = prompt.replace(/\{\{PROJECT_PATH\}\}/g, projectPath);
@@ -994,6 +1082,7 @@ export class AgentRegistrationService {
994
1082
  name: subMember.name,
995
1083
  sessionName: subMember.sessionName || '',
996
1084
  role: subMember.role || 'developer',
1085
+ memberId: subMember.id || subId,
997
1086
  };
998
1087
  })
999
1088
  .filter((s) => s !== null);
@@ -1045,6 +1134,19 @@ export class AgentRegistrationService {
1045
1134
  error: briefingError instanceof Error ? briefingError.message : String(briefingError),
1046
1135
  });
1047
1136
  }
1137
+ // Inject mandatory session recovery protocol (recall + get-my-context)
1138
+ try {
1139
+ const recoveryBuilder = new PromptBuilderService(this.projectRoot);
1140
+ const recoverySection = recoveryBuilder.buildSessionRecoverySection(sessionName, role, projectPath);
1141
+ prompt += `\n\n---\n\n${recoverySection}`;
1142
+ this.logger.info('Session recovery protocol injected into prompt', { sessionName, role });
1143
+ }
1144
+ catch (recoveryError) {
1145
+ this.logger.warn('Failed to inject session recovery protocol (non-critical)', {
1146
+ sessionName,
1147
+ error: recoveryError instanceof Error ? recoveryError.message : String(recoveryError),
1148
+ });
1149
+ }
1048
1150
  // Append identity section so the agent knows its session name and project path
1049
1151
  prompt += `\n\n---\n\n## Your Identity\n- **Session Name:** ${sessionName}\n- **Project Path:** ${projectPath}`;
1050
1152
  if (memberId) {
@@ -1252,7 +1354,7 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1252
1354
  });
1253
1355
  }
1254
1356
  // Step 3: Send system prompt with robust delivery mechanism
1255
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
1357
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
1256
1358
  const promptDelivered = await this.sendPromptRobustly(sessionName, prompt, runtimeType);
1257
1359
  if (!promptDelivered) {
1258
1360
  this.logger.warn('Failed to deliver system prompt reliably', {
@@ -1692,6 +1794,8 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1692
1794
  await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_SESSION_NAME, sessionName);
1693
1795
  await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_ROLE, role);
1694
1796
  await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_API_URL, `http://localhost:${WEB_CONSTANTS.PORTS.BACKEND}`);
1797
+ // #187: Set project path so memory skills can auto-inject it
1798
+ await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_PROJECT_PATH, cwdToUse);
1695
1799
  // Inject API keys from settings (with override chain) for all runtimes
1696
1800
  const settingsService = getSettingsService();
1697
1801
  const runtimeContext = { runtime: runtimeType };
@@ -1734,16 +1838,6 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1734
1838
  }
1735
1839
  // Start OAuth relogin monitoring for newly created session
1736
1840
  OAuthReloginMonitorService.getInstance().startMonitoring(sessionName, runtimeType);
1737
- // Register Gemini CLI sessions with terminal gateway so NOTIFY
1738
- // marker processing is skipped (Gemini TUI garbles markers).
1739
- if (runtimeType === RUNTIME_TYPES.GEMINI_CLI) {
1740
- import('../../websocket/terminal.gateway.js').then(({ getTerminalGateway }) => {
1741
- const tg = getTerminalGateway();
1742
- if (tg) {
1743
- tg.registerGeminiCliSession(sessionName);
1744
- }
1745
- }).catch(() => { });
1746
- }
1747
1841
  return {
1748
1842
  success: true,
1749
1843
  sessionName,
@@ -1898,25 +1992,53 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1898
1992
  // Route directly to the in-process runtime, bypassing PTY entirely.
1899
1993
  // Fire-and-forget: mirrors PTY runtimes where the write returns immediately.
1900
1994
  // The LLM processes the message asynchronously in the background.
1901
- if (runtimeType === RUNTIME_TYPES.CREWLY_AGENT) {
1902
- const crewlyRuntime = this.inProcessRuntimes.get(sessionName);
1995
+ //
1996
+ // IMPORTANT: Always check inProcessRuntimes map first, regardless of
1997
+ // the runtimeType parameter. This makes delivery robust against runtime
1998
+ // type misresolution — e.g., when storage lookup fails and defaults to
1999
+ // claude-code for what is actually a crewly-agent session. Without this
2000
+ // fallback, messages to crewly-agent sessions silently fail when routed
2001
+ // through the PTY path (no PTY session exists).
2002
+ const crewlyRuntime = this.inProcessRuntimes.get(sessionName);
2003
+ if (crewlyRuntime || runtimeType === RUNTIME_TYPES.CREWLY_AGENT) {
1903
2004
  if (!crewlyRuntime || !crewlyRuntime.isReady()) {
1904
2005
  return {
1905
2006
  success: false,
1906
2007
  error: `Crewly Agent runtime for '${sessionName}' is not initialized`,
1907
2008
  };
1908
2009
  }
2010
+ // Extract conversationId from [CHAT:xxx] prefix for response routing
2011
+ const chatPrefixMatch = message.match(/^\[CHAT:([^\]]+)\]\s*/);
2012
+ const incomingConversationId = chatPrefixMatch?.[1];
2013
+ // Extract Slack context from [SLACK:channelId:threadTs] marker if present (Bug 5).
2014
+ // This allows crewly-agent to auto-fill reply_slack with the correct thread.
2015
+ let slackMetadata;
2016
+ const slackPrefixMatch = message.match(/\[SLACK:([^:\]]+)(?::([^\]]+))?\]/);
2017
+ if (slackPrefixMatch) {
2018
+ slackMetadata = { channelId: slackPrefixMatch[1] };
2019
+ if (slackPrefixMatch[2])
2020
+ slackMetadata.threadTs = slackPrefixMatch[2];
2021
+ }
1909
2022
  // Process message asynchronously — don't block the caller
1910
- crewlyRuntime.handleMessage(message)
1911
- .then(() => {
2023
+ crewlyRuntime.handleMessage(message, slackMetadata)
2024
+ .then((result) => {
1912
2025
  this.logger.info('Crewly Agent finished processing message', {
1913
2026
  sessionName, messageLength: message.length,
2027
+ responseLength: result.text?.length ?? 0,
1914
2028
  });
2029
+ // Route response text back to the originating chat conversation.
2030
+ // Without this, crewly-agent responses are discarded — the agent
2031
+ // has no terminal output for the NOTIFY pathway used by PTY runtimes.
2032
+ if (result.text && incomingConversationId) {
2033
+ this.routeInProcessResponseToChat(sessionName, result.text, incomingConversationId);
2034
+ }
1915
2035
  })
1916
2036
  .catch(agentError => {
1917
2037
  const errMsg = agentError instanceof Error ? agentError.message : String(agentError);
1918
2038
  this.logger.error('Crewly Agent message handling failed', {
1919
2039
  sessionName, error: errMsg,
2040
+ messageLength: message.length,
2041
+ messagePreview: message.substring(0, 200),
1920
2042
  });
1921
2043
  });
1922
2044
  this.logger.info('Message dispatched to in-process Crewly Agent', {