crewly 1.3.30 → 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 (673) 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 +106 -3
  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 +178 -49
  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 +57 -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 +259 -67
  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 +150 -5
  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 +426 -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 +46 -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/in-process-log-buffer.d.ts +23 -1
  302. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -1
  303. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +37 -8
  304. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -1
  305. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +3 -1
  306. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -1
  307. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +3 -1
  308. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -1
  309. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +135 -0
  310. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +1 -0
  311. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +185 -0
  312. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +1 -0
  313. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +10 -2
  314. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
  315. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +27 -9
  316. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
  317. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +143 -0
  318. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -0
  319. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +264 -0
  320. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -0
  321. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +2 -2
  322. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +64 -2
  323. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  324. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +927 -39
  325. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  326. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +166 -3
  327. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  328. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +55 -1
  329. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  330. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  331. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +17 -2
  332. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  333. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +37 -0
  334. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  335. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +170 -3
  336. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  337. package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts +108 -0
  338. package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts.map +1 -0
  339. package/dist/backend/backend/src/services/browser/chrome-discovery.service.js +251 -0
  340. package/dist/backend/backend/src/services/browser/chrome-discovery.service.js.map +1 -0
  341. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +12 -0
  342. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  343. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +19 -0
  344. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  345. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +191 -0
  346. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -0
  347. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +415 -0
  348. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js.map +1 -0
  349. package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts +89 -0
  350. package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts.map +1 -0
  351. package/dist/backend/backend/src/services/cloud/device-identity.service.js +148 -0
  352. package/dist/backend/backend/src/services/cloud/device-identity.service.js.map +1 -0
  353. package/dist/backend/backend/src/services/core/tracing.service.d.ts +127 -0
  354. package/dist/backend/backend/src/services/core/tracing.service.d.ts.map +1 -0
  355. package/dist/backend/backend/src/services/core/tracing.service.js +238 -0
  356. package/dist/backend/backend/src/services/core/tracing.service.js.map +1 -0
  357. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  358. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +11 -3
  359. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  360. package/dist/backend/backend/src/services/index.d.ts +1 -0
  361. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  362. package/dist/backend/backend/src/services/index.js +1 -0
  363. package/dist/backend/backend/src/services/index.js.map +1 -1
  364. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
  365. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
  366. package/dist/backend/backend/src/services/knowledge/embedding-provider.js +164 -0
  367. package/dist/backend/backend/src/services/knowledge/embedding-provider.js.map +1 -0
  368. package/dist/backend/backend/src/services/knowledge/index.d.ts +1 -0
  369. package/dist/backend/backend/src/services/knowledge/index.d.ts.map +1 -1
  370. package/dist/backend/backend/src/services/knowledge/index.js +1 -0
  371. package/dist/backend/backend/src/services/knowledge/index.js.map +1 -1
  372. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +91 -11
  373. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  374. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +244 -15
  375. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  376. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts +331 -0
  377. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -0
  378. package/dist/backend/backend/src/services/knowledge/vector-store.service.js +814 -0
  379. package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -0
  380. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  381. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +8 -11
  382. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  383. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
  384. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +1 -0
  385. package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
  386. package/dist/backend/backend/src/services/memory/context-flush.service.d.ts +73 -0
  387. package/dist/backend/backend/src/services/memory/context-flush.service.d.ts.map +1 -0
  388. package/dist/backend/backend/src/services/memory/context-flush.service.js +131 -0
  389. package/dist/backend/backend/src/services/memory/context-flush.service.js.map +1 -0
  390. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts +23 -2
  391. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts.map +1 -1
  392. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js +78 -16
  393. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js.map +1 -1
  394. package/dist/backend/backend/src/services/memory/memory.service.d.ts +38 -0
  395. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  396. package/dist/backend/backend/src/services/memory/memory.service.js +121 -2
  397. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  398. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +29 -207
  399. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -1
  400. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +97 -683
  401. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -1
  402. package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
  403. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +13 -12
  404. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
  405. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +2 -0
  406. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  407. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +6 -23
  408. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  409. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +48 -184
  410. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  411. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  412. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +51 -5
  413. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  414. package/dist/backend/backend/src/services/orchestrator/index.d.ts +1 -1
  415. package/dist/backend/backend/src/services/orchestrator/index.d.ts.map +1 -1
  416. package/dist/backend/backend/src/services/orchestrator/index.js +1 -1
  417. package/dist/backend/backend/src/services/orchestrator/index.js.map +1 -1
  418. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +65 -0
  419. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  420. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +165 -2
  421. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  422. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +8 -0
  423. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  424. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +23 -0
  425. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  426. package/dist/backend/backend/src/services/payment/stripe.service.d.ts +95 -43
  427. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
  428. package/dist/backend/backend/src/services/payment/stripe.service.js +229 -190
  429. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
  430. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts +181 -0
  431. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -0
  432. package/dist/backend/backend/src/services/pr-review/pr-review.service.js +336 -0
  433. package/dist/backend/backend/src/services/pr-review/pr-review.service.js.map +1 -0
  434. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +23 -0
  435. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  436. package/dist/backend/backend/src/services/project/task-tracking.service.js +88 -0
  437. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  438. package/dist/backend/backend/src/services/session/index.d.ts +2 -0
  439. package/dist/backend/backend/src/services/session/index.d.ts.map +1 -1
  440. package/dist/backend/backend/src/services/session/index.js +2 -0
  441. package/dist/backend/backend/src/services/session/index.js.map +1 -1
  442. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +260 -0
  443. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
  444. package/dist/backend/backend/src/services/session/session-handoff.service.js +565 -0
  445. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -0
  446. package/dist/backend/backend/src/services/skill/index.d.ts +1 -0
  447. package/dist/backend/backend/src/services/skill/index.d.ts.map +1 -1
  448. package/dist/backend/backend/src/services/skill/index.js +1 -0
  449. package/dist/backend/backend/src/services/skill/index.js.map +1 -1
  450. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +25 -6
  451. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  452. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +78 -20
  453. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  454. package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts +116 -0
  455. package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts.map +1 -0
  456. package/dist/backend/backend/src/services/skill/skill-tier.service.js +155 -0
  457. package/dist/backend/backend/src/services/skill/skill-tier.service.js.map +1 -0
  458. package/dist/backend/backend/src/services/skill/skill.service.d.ts +35 -7
  459. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  460. package/dist/backend/backend/src/services/skill/skill.service.js +128 -35
  461. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  462. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +50 -47
  463. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  464. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +267 -202
  465. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  466. package/dist/backend/backend/src/services/slack/slack.service.d.ts +28 -2
  467. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  468. package/dist/backend/backend/src/services/slack/slack.service.js +69 -3
  469. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  470. package/dist/backend/backend/src/services/template/template.service.d.ts +19 -1
  471. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  472. package/dist/backend/backend/src/services/template/template.service.js +110 -3
  473. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  474. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +11 -0
  475. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
  476. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +57 -3
  477. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
  478. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  479. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +6 -0
  480. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  481. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +52 -0
  482. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  483. package/dist/backend/backend/src/services/workflow/scheduler.service.js +319 -6
  484. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  485. package/dist/backend/backend/src/types/chat.types.d.ts +2 -2
  486. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  487. package/dist/backend/backend/src/types/chat.types.js +18 -22
  488. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  489. package/dist/backend/backend/src/types/index.d.ts +38 -1
  490. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  491. package/dist/backend/backend/src/types/index.js.map +1 -1
  492. package/dist/backend/backend/src/types/marketplace.types.d.ts +1 -1
  493. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  494. package/dist/backend/backend/src/types/scheduler.types.d.ts +4 -0
  495. package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -1
  496. package/dist/backend/backend/src/types/scheduler.types.js.map +1 -1
  497. package/dist/backend/backend/src/types/skill.types.d.ts +4 -0
  498. package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
  499. package/dist/backend/backend/src/types/skill.types.js.map +1 -1
  500. package/dist/backend/backend/src/types/task-tracking.types.d.ts +6 -0
  501. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  502. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  503. package/dist/backend/backend/src/types/team-template.types.d.ts +2 -0
  504. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  505. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  506. package/dist/backend/backend/src/utils/skill-md-parser.d.ts +38 -0
  507. package/dist/backend/backend/src/utils/skill-md-parser.d.ts.map +1 -0
  508. package/dist/backend/backend/src/utils/skill-md-parser.js +47 -0
  509. package/dist/backend/backend/src/utils/skill-md-parser.js.map +1 -0
  510. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +49 -139
  511. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  512. package/dist/backend/backend/src/websocket/terminal.gateway.js +143 -502
  513. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  514. package/dist/backend/config/constants.d.ts +18 -3
  515. package/dist/backend/config/constants.d.ts.map +1 -1
  516. package/dist/backend/config/constants.js +18 -3
  517. package/dist/backend/config/constants.js.map +1 -1
  518. package/dist/cli/backend/src/constants.d.ts +80 -11
  519. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  520. package/dist/cli/backend/src/constants.js +85 -11
  521. package/dist/cli/backend/src/constants.js.map +1 -1
  522. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
  523. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
  524. package/dist/cli/backend/src/services/knowledge/embedding-provider.js +164 -0
  525. package/dist/cli/backend/src/services/knowledge/embedding-provider.js.map +1 -0
  526. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +91 -11
  527. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  528. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +244 -15
  529. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  530. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts +331 -0
  531. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -0
  532. package/dist/cli/backend/src/services/knowledge/vector-store.service.js +814 -0
  533. package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -0
  534. package/dist/cli/backend/src/services/memory/memory.service.d.ts +38 -0
  535. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  536. package/dist/cli/backend/src/services/memory/memory.service.js +121 -2
  537. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  538. package/dist/cli/backend/src/types/chat.types.d.ts +2 -2
  539. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  540. package/dist/cli/backend/src/types/chat.types.js +18 -22
  541. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  542. package/dist/cli/backend/src/types/index.d.ts +38 -1
  543. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  544. package/dist/cli/backend/src/types/index.js.map +1 -1
  545. package/dist/cli/backend/src/types/scheduler.types.d.ts +4 -0
  546. package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -1
  547. package/dist/cli/backend/src/types/scheduler.types.js.map +1 -1
  548. package/dist/cli/backend/src/types/skill.types.d.ts +4 -0
  549. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
  550. package/dist/cli/backend/src/types/skill.types.js.map +1 -1
  551. package/dist/cli/cli/src/commands/onboard.d.ts +19 -2
  552. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  553. package/dist/cli/cli/src/commands/onboard.js +58 -15
  554. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  555. package/dist/cli/cli/src/commands/pair.d.ts +46 -0
  556. package/dist/cli/cli/src/commands/pair.d.ts.map +1 -0
  557. package/dist/cli/cli/src/commands/pair.js +258 -0
  558. package/dist/cli/cli/src/commands/pair.js.map +1 -0
  559. package/dist/cli/cli/src/commands/service.d.ts +86 -0
  560. package/dist/cli/cli/src/commands/service.d.ts.map +1 -0
  561. package/dist/cli/cli/src/commands/service.js +687 -0
  562. package/dist/cli/cli/src/commands/service.js.map +1 -0
  563. package/dist/cli/cli/src/index.js +17 -0
  564. package/dist/cli/cli/src/index.js.map +1 -1
  565. package/dist/cli/config/constants.d.ts +18 -3
  566. package/dist/cli/config/constants.d.ts.map +1 -1
  567. package/dist/cli/config/constants.js +18 -3
  568. package/dist/cli/config/constants.js.map +1 -1
  569. package/frontend/dist/assets/index-1d23cce8.js +4919 -0
  570. package/frontend/dist/assets/index-60a9e4ea.css +33 -0
  571. package/frontend/dist/index.html +2 -2
  572. package/package.json +22 -9
  573. package/config/skills/agent/browse-stealth/skill.json +0 -20
  574. package/config/skills/agent/competitor-content-tracker/skill.json +0 -22
  575. package/config/skills/agent/computer-use/skill.json +0 -29
  576. package/config/skills/agent/content-calendar/skill.json +0 -22
  577. package/config/skills/agent/content-repurposer/skill.json +0 -22
  578. package/config/skills/agent/content-writer/skill.json +0 -22
  579. package/config/skills/agent/core/accept-task/skill.json +0 -20
  580. package/config/skills/agent/core/block-task/skill.json +0 -20
  581. package/config/skills/agent/core/check-quality-gates/skill.json +0 -20
  582. package/config/skills/agent/core/complete-task/skill.json +0 -20
  583. package/config/skills/agent/core/generate-pdf/skill.json +0 -20
  584. package/config/skills/agent/core/get-my-context/skill.json +0 -20
  585. package/config/skills/agent/core/get-sops/skill.json +0 -20
  586. package/config/skills/agent/core/get-team-status/instructions.md +0 -17
  587. package/config/skills/agent/core/get-team-status/skill.json +0 -20
  588. package/config/skills/agent/core/heartbeat/skill.json +0 -20
  589. package/config/skills/agent/core/marketplace-search/skill.json +0 -20
  590. package/config/skills/agent/core/query-knowledge/skill.json +0 -20
  591. package/config/skills/agent/core/read-task/instructions.md +0 -19
  592. package/config/skills/agent/core/read-task/skill.json +0 -20
  593. package/config/skills/agent/core/recall/skill.json +0 -20
  594. package/config/skills/agent/core/record-learning/skill.json +0 -20
  595. package/config/skills/agent/core/register-self/instructions.md +0 -18
  596. package/config/skills/agent/core/register-self/skill.json +0 -20
  597. package/config/skills/agent/core/remember/skill.json +0 -20
  598. package/config/skills/agent/core/reply-chat/skill.json +0 -20
  599. package/config/skills/agent/core/report-progress/skill.json +0 -20
  600. package/config/skills/agent/core/report-status/skill.json +0 -20
  601. package/config/skills/agent/core/send-chat-response/skill.json +0 -20
  602. package/config/skills/agent/core/send-message/instructions.md +0 -20
  603. package/config/skills/agent/core/send-message/skill.json +0 -20
  604. package/config/skills/agent/desktop-app-control/skill.json +0 -33
  605. package/config/skills/agent/trend-monitor/skill.json +0 -22
  606. package/config/skills/agent/vnc-browser/skill.json +0 -20
  607. package/config/skills/orchestrator/assign-task/instructions.md +0 -17
  608. package/config/skills/orchestrator/assign-task/skill.json +0 -20
  609. package/config/skills/orchestrator/assign-team-to-project/skill.json +0 -20
  610. package/config/skills/orchestrator/broadcast/skill.json +0 -20
  611. package/config/skills/orchestrator/broadcast-to-org/skill.json +0 -20
  612. package/config/skills/orchestrator/cancel-all-schedules/skill.json +0 -17
  613. package/config/skills/orchestrator/cancel-schedule/instructions.md +0 -19
  614. package/config/skills/orchestrator/cancel-schedule/skill.json +0 -20
  615. package/config/skills/orchestrator/complete-task/instructions.md +0 -17
  616. package/config/skills/orchestrator/complete-task/skill.json +0 -20
  617. package/config/skills/orchestrator/create-project/skill.json +0 -20
  618. package/config/skills/orchestrator/create-team/skill.json +0 -20
  619. package/config/skills/orchestrator/delegate-task/skill.json +0 -20
  620. package/config/skills/orchestrator/get-agent-logs/skill.json +0 -20
  621. package/config/skills/orchestrator/get-agent-status/skill.json +0 -20
  622. package/config/skills/orchestrator/get-project-overview/instructions.md +0 -17
  623. package/config/skills/orchestrator/get-project-overview/skill.json +0 -20
  624. package/config/skills/orchestrator/get-tasks/instructions.md +0 -17
  625. package/config/skills/orchestrator/get-tasks/skill.json +0 -20
  626. package/config/skills/orchestrator/get-team-status/instructions.md +0 -17
  627. package/config/skills/orchestrator/get-team-status/skill.json +0 -20
  628. package/config/skills/orchestrator/handle-agent-failure/skill.json +0 -20
  629. package/config/skills/orchestrator/heartbeat/skill.json +0 -20
  630. package/config/skills/orchestrator/list-schedules/skill.json +0 -12
  631. package/config/skills/orchestrator/list-subscriptions/instructions.md +0 -17
  632. package/config/skills/orchestrator/list-subscriptions/skill.json +0 -20
  633. package/config/skills/orchestrator/query-knowledge/skill.json +0 -20
  634. package/config/skills/orchestrator/read-session-logs/skill.json +0 -20
  635. package/config/skills/orchestrator/read-system-logs/skill.json +0 -20
  636. package/config/skills/orchestrator/recall/skill.json +0 -20
  637. package/config/skills/orchestrator/record-failure/skill.json +0 -20
  638. package/config/skills/orchestrator/record-learning/skill.json +0 -20
  639. package/config/skills/orchestrator/record-success/skill.json +0 -20
  640. package/config/skills/orchestrator/register-self/skill.json +0 -20
  641. package/config/skills/orchestrator/remember/skill.json +0 -20
  642. package/config/skills/orchestrator/reply-chat/skill.json +0 -20
  643. package/config/skills/orchestrator/reply-gchat/skill.json +0 -20
  644. package/config/skills/orchestrator/reply-slack/skill.json +0 -20
  645. package/config/skills/orchestrator/report-bug/skill.json +0 -20
  646. package/config/skills/orchestrator/restart-crewly/skill.json +0 -20
  647. package/config/skills/orchestrator/resume-session/skill.json +0 -20
  648. package/config/skills/orchestrator/schedule-check/skill.json +0 -20
  649. package/config/skills/orchestrator/send-key/skill.json +0 -20
  650. package/config/skills/orchestrator/send-message/skill.json +0 -20
  651. package/config/skills/orchestrator/send-pdf-to-slack/skill.json +0 -20
  652. package/config/skills/orchestrator/set-goal/skill.json +0 -20
  653. package/config/skills/orchestrator/start-agent/skill.json +0 -20
  654. package/config/skills/orchestrator/start-team/skill.json +0 -20
  655. package/config/skills/orchestrator/stop-agent/skill.json +0 -20
  656. package/config/skills/orchestrator/stop-team/instructions.md +0 -19
  657. package/config/skills/orchestrator/stop-team/skill.json +0 -20
  658. package/config/skills/orchestrator/subscribe-event/skill.json +0 -20
  659. package/config/skills/orchestrator/terminate-agent/skill.json +0 -20
  660. package/config/skills/orchestrator/unsubscribe-event/instructions.md +0 -19
  661. package/config/skills/orchestrator/unsubscribe-event/skill.json +0 -20
  662. package/config/skills/orchestrator/update-focus/skill.json +0 -20
  663. package/config/skills/orchestrator/update-team/skill.json +0 -20
  664. package/config/skills/team-leader/aggregate-results/skill.json +0 -20
  665. package/config/skills/team-leader/decompose-goal/skill.json +0 -20
  666. package/config/skills/team-leader/delegate-task/skill.json +0 -20
  667. package/config/skills/team-leader/handle-failure/skill.json +0 -20
  668. package/config/skills/team-leader/schedule-check/skill.json +0 -20
  669. package/config/skills/team-leader/start-agent/skill.json +0 -20
  670. package/config/skills/team-leader/stop-agent/skill.json +0 -20
  671. package/config/skills/team-leader/verify-output/skill.json +0 -20
  672. package/frontend/dist/assets/index-0e5673b0.css +0 -33
  673. package/frontend/dist/assets/index-adae9eb6.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
  */
@@ -270,6 +324,19 @@ export class AgentRegistrationService {
270
324
  getInProcessRuntime(sessionName) {
271
325
  return this.inProcessRuntimes.get(sessionName);
272
326
  }
327
+ /**
328
+ * Check if an in-process Crewly Agent runtime is active and ready for a given session.
329
+ *
330
+ * Used by team status resolution to correctly report active status for
331
+ * crewly-agent runtimes that have no PTY session.
332
+ *
333
+ * @param sessionName - The session name to check
334
+ * @returns True if an in-process runtime exists and is ready
335
+ */
336
+ isInProcessRuntimeActive(sessionName) {
337
+ const runtime = this.inProcessRuntimes.get(sessionName);
338
+ return runtime !== undefined && runtime.isReady();
339
+ }
273
340
  /**
274
341
  * Get the check interval based on environment.
275
342
  * Uses shorter intervals in test environment for faster tests.
@@ -397,7 +464,7 @@ export class AgentRegistrationService {
397
464
  // Clear any pending slash command from detection. Claude detection already
398
465
  // exits slash mode. Gemini CLI: skip — Ctrl+C at empty prompt exits CLI,
399
466
  // Escape defocuses TUI, Ctrl+U is ignored. The prompt should be clean.
400
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
467
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
401
468
  const promptDelivered = await this.sendPromptRobustly(sessionName, prompt, runtimeType);
402
469
  if (!promptDelivered) {
403
470
  this.logger.warn('Failed to deliver registration prompt', { sessionName, role });
@@ -443,7 +510,7 @@ export class AgentRegistrationService {
443
510
  let promptFilePath;
444
511
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
445
512
  try {
446
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
513
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
447
514
  promptFilePath = await this.writePromptFile(sessionName, prompt);
448
515
  }
449
516
  catch (promptError) {
@@ -518,16 +585,6 @@ export class AgentRegistrationService {
518
585
  role,
519
586
  runtimeType,
520
587
  });
521
- // Register Gemini CLI sessions with terminal gateway so NOTIFY
522
- // marker processing is skipped (Gemini TUI garbles markers).
523
- if (runtimeType === RUNTIME_TYPES.GEMINI_CLI) {
524
- import('../../websocket/terminal.gateway.js').then(({ getTerminalGateway }) => {
525
- const tg = getTerminalGateway();
526
- if (tg) {
527
- tg.registerGeminiCliSession(sessionName);
528
- }
529
- }).catch(() => { });
530
- }
531
588
  // Background: detect and store session ID for resume-on-restart
532
589
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
533
590
  const detectPath = projectPath || process.cwd();
@@ -605,6 +662,60 @@ export class AgentRegistrationService {
605
662
  });
606
663
  }
607
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
+ }
608
719
  /**
609
720
  * Send registration prompt asynchronously (non-blocking).
610
721
  * Uses an AbortController so the operation can be cancelled if the
@@ -618,7 +729,7 @@ export class AgentRegistrationService {
618
729
  this.logger.info('Loading registration prompt', { sessionName, role, runtimeType });
619
730
  if (controller.signal.aborted)
620
731
  return;
621
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
732
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
622
733
  this.logger.info('Registration prompt loaded, sending to agent', {
623
734
  sessionName, role, runtimeType, promptLength: prompt.length,
624
735
  });
@@ -687,7 +798,7 @@ export class AgentRegistrationService {
687
798
  let promptFilePath;
688
799
  if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE) {
689
800
  try {
690
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
801
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
691
802
  promptFilePath = await this.writePromptFile(sessionName, prompt);
692
803
  }
693
804
  catch (promptError) {
@@ -838,10 +949,59 @@ export class AgentRegistrationService {
838
949
  }
839
950
  return true;
840
951
  }
952
+ /**
953
+ * Register a crewly-agent member as active by updating its team config directly.
954
+ * In-process agents cannot run bash scripts, so this performs the registration
955
+ * that the register-self skill would normally do for PTY-based runtimes.
956
+ *
957
+ * @param sessionName - Agent session name
958
+ * @param role - Agent role
959
+ * @param memberId - Optional member UUID
960
+ * @returns True if registration succeeded
961
+ */
962
+ async registerMemberActive(sessionName, role, memberId) {
963
+ try {
964
+ const teams = await this.storageService.getTeams();
965
+ for (const team of teams) {
966
+ const member = team.members.find((m) => (m.sessionName === sessionName) ||
967
+ (memberId !== undefined && m.id === memberId));
968
+ if (member) {
969
+ member.agentStatus = 'active';
970
+ member.workingStatus = 'idle';
971
+ member.updatedAt = new Date().toISOString();
972
+ // Pre-populate sessionName so register_self tool can find this member
973
+ if (!member.sessionName && sessionName) {
974
+ member.sessionName = sessionName;
975
+ }
976
+ await this.storageService.saveTeam(team);
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
+ }
987
+ return true;
988
+ }
989
+ }
990
+ this.logger.warn('Could not find member to register as active', { sessionName, memberId });
991
+ return false;
992
+ }
993
+ catch (error) {
994
+ this.logger.error('Failed to register member as active', {
995
+ sessionName,
996
+ error: error instanceof Error ? error.message : String(error),
997
+ });
998
+ return false;
999
+ }
1000
+ }
841
1001
  /**
842
1002
  * Load registration prompt from config files (with caching to prevent file I/O contention)
843
1003
  */
844
- async loadRegistrationPrompt(role, sessionName, memberId) {
1004
+ async loadRegistrationPrompt(role, sessionName, memberId, runtimeType = RUNTIME_TYPES.CLAUDE_CODE) {
845
1005
  try {
846
1006
  // Cache key is role only - the template file is the same regardless of memberId
847
1007
  const cacheKey = role;
@@ -895,30 +1055,11 @@ export class AgentRegistrationService {
895
1055
  catch {
896
1056
  // Non-critical - use default project path
897
1057
  }
898
- // Write .crewly/CLAUDE.md in the project directory so Claude Code
1058
+ // Write runtime-specific project config file so the agent CLI
899
1059
  // recognizes Crewly as a legitimate project configuration (fixes #33)
1060
+ // Claude Code → .crewly/CLAUDE.md, Gemini CLI → GEMINI.md, Codex → AGENTS.md
900
1061
  if (role !== ORCHESTRATOR_ROLE) {
901
- try {
902
- const crewlyDir = path.join(projectPath, '.crewly');
903
- const claudeMdPath = path.join(crewlyDir, 'CLAUDE.md');
904
- await mkdir(crewlyDir, { recursive: true });
905
- const templatePath = path.join(this.projectRoot, 'config', 'templates', 'agent-claude-md.md');
906
- let claudeMdContent = this.promptCache.get(templatePath);
907
- if (!claudeMdContent) {
908
- claudeMdContent = await readFile(templatePath, 'utf8');
909
- this.promptCache.set(templatePath, claudeMdContent);
910
- }
911
- await writeFile(claudeMdPath, claudeMdContent, { flag: 'wx' }).catch(() => {
912
- // File already exists — no action needed
913
- });
914
- }
915
- catch (claudeMdError) {
916
- this.logger.warn('Could not provision .crewly/CLAUDE.md for agent trust (non-critical)', {
917
- templatePath: path.join(this.projectRoot, 'config', 'templates', 'agent-claude-md.md'),
918
- projectPath,
919
- error: claudeMdError instanceof Error ? claudeMdError.message : String(claudeMdError),
920
- });
921
- }
1062
+ await this.provisionRuntimeConfigFile(projectPath, runtimeType);
922
1063
  }
923
1064
  // Replace project path placeholder (must happen after project path lookup above)
924
1065
  prompt = prompt.replace(/\{\{PROJECT_PATH\}\}/g, projectPath);
@@ -941,6 +1082,7 @@ export class AgentRegistrationService {
941
1082
  name: subMember.name,
942
1083
  sessionName: subMember.sessionName || '',
943
1084
  role: subMember.role || 'developer',
1085
+ memberId: subMember.id || subId,
944
1086
  };
945
1087
  })
946
1088
  .filter((s) => s !== null);
@@ -992,6 +1134,19 @@ export class AgentRegistrationService {
992
1134
  error: briefingError instanceof Error ? briefingError.message : String(briefingError),
993
1135
  });
994
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
+ }
995
1150
  // Append identity section so the agent knows its session name and project path
996
1151
  prompt += `\n\n---\n\n## Your Identity\n- **Session Name:** ${sessionName}\n- **Project Path:** ${projectPath}`;
997
1152
  if (memberId) {
@@ -1199,7 +1354,7 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1199
1354
  });
1200
1355
  }
1201
1356
  // Step 3: Send system prompt with robust delivery mechanism
1202
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
1357
+ const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId, runtimeType);
1203
1358
  const promptDelivered = await this.sendPromptRobustly(sessionName, prompt, runtimeType);
1204
1359
  if (!promptDelivered) {
1205
1360
  this.logger.warn('Failed to deliver system prompt reliably', {
@@ -1549,23 +1704,35 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1549
1704
  const crewlyRuntime = this.createRuntimeService(runtimeType);
1550
1705
  // Determine role name for system prompt lookup
1551
1706
  const roleName = role === ORCHESTRATOR_ROLE ? 'orchestrator' : role.toLowerCase().replace(/\s+/g, '-');
1552
- await crewlyRuntime.initializeInProcess(sessionName, undefined, roleName);
1707
+ await crewlyRuntime.initializeInProcess(sessionName, { projectPath }, roleName);
1553
1708
  // Track the in-process runtime for message routing
1554
1709
  this.inProcessRuntimes.set(sessionName, crewlyRuntime);
1555
- // Load and deliver registration prompt as the first message
1710
+ // Auto-register agent as active crewly-agent cannot run bash scripts,
1711
+ // so we register on its behalf instead of relying on the register_self tool.
1556
1712
  try {
1557
- const prompt = await this.loadRegistrationPrompt(role, sessionName, memberId);
1558
- this.logger.info('Delivering registration prompt to Crewly Agent', {
1559
- sessionName, promptLength: prompt.length,
1713
+ const registerResult = await this.registerMemberActive(sessionName, role, memberId);
1714
+ this.logger.info('Auto-registered crewly-agent as active', {
1715
+ sessionName, role, success: registerResult,
1560
1716
  });
1561
- await crewlyRuntime.handleMessage(prompt);
1562
1717
  }
1563
- catch (promptError) {
1564
- this.logger.warn('Registration prompt delivery failed (non-fatal for crewly-agent)', {
1718
+ catch (registerErr) {
1719
+ this.logger.warn('Auto-registration failed (non-fatal)', {
1565
1720
  sessionName,
1566
- error: promptError instanceof Error ? promptError.message : String(promptError),
1721
+ error: registerErr instanceof Error ? registerErr.message : String(registerErr),
1567
1722
  });
1568
1723
  }
1724
+ // For crewly-agent, the system prompt is already loaded during initializeInProcess().
1725
+ // Do NOT deliver the full registration prompt as a message — that would trigger
1726
+ // a redundant generateText call (60K chars → rate limits). Instead, send a
1727
+ // lightweight activation message that tells the agent to start working.
1728
+ crewlyRuntime.handleMessage(`You are now active as "${role}" (session: ${sessionName}). ` +
1729
+ 'Your system prompt is already loaded. Begin by calling register_self, ' +
1730
+ 'then wait for tasks.').catch(promptError => {
1731
+ this.logger.warn('Initial activation message failed (non-fatal for crewly-agent)', {
1732
+ sessionName,
1733
+ error: promptError instanceof Error ? promptError.message : String(promptError),
1734
+ });
1735
+ });
1569
1736
  // Start context window monitoring if applicable
1570
1737
  if (role !== ORCHESTRATOR_ROLE && config.teamId && config.memberId) {
1571
1738
  ContextWindowMonitorService.getInstance().startSessionMonitoring(sessionName, config.memberId, config.teamId, role, runtimeType);
@@ -1627,6 +1794,8 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1627
1794
  await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_SESSION_NAME, sessionName);
1628
1795
  await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_ROLE, role);
1629
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);
1630
1799
  // Inject API keys from settings (with override chain) for all runtimes
1631
1800
  const settingsService = getSettingsService();
1632
1801
  const runtimeContext = { runtime: runtimeType };
@@ -1669,16 +1838,6 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1669
1838
  }
1670
1839
  // Start OAuth relogin monitoring for newly created session
1671
1840
  OAuthReloginMonitorService.getInstance().startMonitoring(sessionName, runtimeType);
1672
- // Register Gemini CLI sessions with terminal gateway so NOTIFY
1673
- // marker processing is skipped (Gemini TUI garbles markers).
1674
- if (runtimeType === RUNTIME_TYPES.GEMINI_CLI) {
1675
- import('../../websocket/terminal.gateway.js').then(({ getTerminalGateway }) => {
1676
- const tg = getTerminalGateway();
1677
- if (tg) {
1678
- tg.registerGeminiCliSession(sessionName);
1679
- }
1680
- }).catch(() => { });
1681
- }
1682
1841
  return {
1683
1842
  success: true,
1684
1843
  sessionName,
@@ -1831,28 +1990,61 @@ After checking in, just say "Ready for tasks" and wait for me to send you work.`
1831
1990
  }
1832
1991
  // ===== In-process Crewly Agent delivery =====
1833
1992
  // Route directly to the in-process runtime, bypassing PTY entirely.
1834
- if (runtimeType === RUNTIME_TYPES.CREWLY_AGENT) {
1835
- const crewlyRuntime = this.inProcessRuntimes.get(sessionName);
1993
+ // Fire-and-forget: mirrors PTY runtimes where the write returns immediately.
1994
+ // The LLM processes the message asynchronously in the background.
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) {
1836
2004
  if (!crewlyRuntime || !crewlyRuntime.isReady()) {
1837
2005
  return {
1838
2006
  success: false,
1839
2007
  error: `Crewly Agent runtime for '${sessionName}' is not initialized`,
1840
2008
  };
1841
2009
  }
1842
- try {
1843
- await crewlyRuntime.handleMessage(message);
1844
- this.logger.info('Message delivered to in-process Crewly Agent', {
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
+ }
2022
+ // Process message asynchronously — don't block the caller
2023
+ crewlyRuntime.handleMessage(message, slackMetadata)
2024
+ .then((result) => {
2025
+ this.logger.info('Crewly Agent finished processing message', {
1845
2026
  sessionName, messageLength: message.length,
2027
+ responseLength: result.text?.length ?? 0,
1846
2028
  });
1847
- return { success: true, message: 'Message delivered to Crewly Agent' };
1848
- }
1849
- catch (agentError) {
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
+ }
2035
+ })
2036
+ .catch(agentError => {
1850
2037
  const errMsg = agentError instanceof Error ? agentError.message : String(agentError);
1851
2038
  this.logger.error('Crewly Agent message handling failed', {
1852
2039
  sessionName, error: errMsg,
2040
+ messageLength: message.length,
2041
+ messagePreview: message.substring(0, 200),
1853
2042
  });
1854
- return { success: false, error: `Crewly Agent error: ${errMsg}` };
1855
- }
2043
+ });
2044
+ this.logger.info('Message dispatched to in-process Crewly Agent', {
2045
+ sessionName, messageLength: message.length,
2046
+ });
2047
+ return { success: true, message: 'Message delivered to Crewly Agent' };
1856
2048
  }
1857
2049
  // Get session helper once for this method
1858
2050
  const sessionHelper = await this.getSessionHelper();